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在本機電腦可以幫我們達成的事。

 

  1. 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

 

  1. 測試HTTP Method

例如: 測試www.example.com 80 port 的 GET Method

 

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

 

若是要測試某網頁資源是否存在,則只要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:

  1. 偽裝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

 

  1. 監聽Local主機

例如:監聽本機的80 port

  • nc -l -p 80

 

  1. 傳送測試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

 

  1. 開啟本機的UDP Port接受遠方送來的封包資料

例如: 想監測本機5050 udp port所接收的資料

  • nc -lu localhost 5050

 

2018年8月26日星期日

文章標籤
創作者介紹
創作者 jackterrylau 的頭像
jackterrylau

儒道哲學的浪漫人生

jackterrylau 發表在 痞客邦 留言(0) 人氣()