NetCat 是一網路Telnet工具,其程式名稱為nc( windows下為nc.exe),素有網路瑞士軍刀之稱,由於可以拿來作一些網路伺服器偵測等任務,也可以遠端透過nc來執行shell command,所以一般被防毒軟體視作後門程式。
基本參數
-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的範圍格式。
常見應用
這邊常見應用並不包含需要遠端電腦也安裝nc的用法,因為這一般是hacker試圖需要透過nc在遠端shell控制電腦以取得遠端電腦資源,這涉及到如何將nc上傳到遠端電腦的手法,在此我們只談一些nc在本機電腦可以幫我們達成的事。
- Port Scanning
例如:掃描 10.102.63.38 的 tcp port from 20 to 500
- nc -z 10.102.63.38 20-500
但一般這樣掃port很容易被IDS察覺,所以我們可以作一些偽裝增加掃port成功機率。
例如:掃描 10.102.63.38 的 tcp port from 20 to 500,但必需每隔20秒隨機掃一個port
- nc -v -z -r -i 30 10.102.63.38 20-500
- -i <Seconds>: interval in seconds. -r: random scanning. -v: shown info.
若要掃描UDP port,則只要使用 -u 參數。
例如:掃描 10.102.63.38 的 udp port from 20 to 500
- nc -z -u 10.102.63.38 20-500
- 測試HTTP Method
例如: 測試www.example.com 80 port 的 GET Method
- nc -v example.com 80
- GET /
HTTP 1.1 共支援 8 種HTTP Method:
安全可使用的Method: GET, POST
不安全且不建議使用: HEAD, TRACE, OPTIONS, CONNECT, PUT, DELETE.
其中 OPTIONS 可以用來取得Web Server所允許的HTTP Method有哪些,故該Method 應該被禁止。
若是要指定HTTP Version,可以再加上HTTP Version,但是要記住得在後面附上\r\n\r\n兩個換行符號,否則極可能會收到Request Time Out.
例如: 測試www.example.com 80 port 的 HTTP/1.1 GET Method
- nc -v example.com 80
- GET / HTTP/1.1\r\n\r\n
若是要測試某網頁資源是否存在,則只要GET /<Resource Location> 即可獲得該資源內容或得到404 Not Found.
例如:取得10.1.100.212 80 port的MinionAPI application底下的Monitor.ashx內容( 等同與用browser 訪問該資源)
- nc 10.1.100.212 80
- GET /MinionAPI/Monitor.ashx?Monitor=L4
- Result:
- 偽裝IP
NetCat 可以偽照到達目標機器的過程中所有中繼節點IP,只要透過 -g 參數
即可偽造IP,而且可以做到multiple fake IP, 只要多使用幾次 -g 就可以,但可以偽造的IP有限制,預設最多為8個。
例如:偽造訪問10.1.100.212 ip 透過4個假節點。
- nc –g 10.10.40.51 –g 10.10.115.80 –g 10.10.27.34 –g 10.10.9.9 1.1.1 80
- 監聽Local主機
例如:監聽本機的80 port
- nc -l -p 80
- 傳送測試UDP的封包
例如:一秒內傳送一個字串’Test UDP String’到10.1.100.202 Server的UDP Port 5050
- echo -n " Test UDP String " | nc -u -w 1 192.168.1.8 5050
- 開啟本機的UDP Port接受遠方送來的封包資料
例如: 想監測本機5050 udp port所接收的資料
- nc -lu localhost 5050
2018年8月26日星期日
留言列表