windows常用后门技术及防范

0x00 前言

维持权限同样是渗透测试非常重要的一环,他可以让我们方便的再次进入系统并且降低被发现的概率,而维持权限的方式也就是留后门,了解一些常见的后门技术,不仅可以在进攻时提供维持权限的思路,同时,在防守时也可以更准确的发现隐患。

0x01 隐藏账户

隐藏账户应该是最常见的后门方式,其设置方式如下:

首先我们在命令行输入,如下命令创建一个隐藏账号

1
net user leticia$ 123456 /add

这个时候,通过net user并不能看到这个账户。

然后我们将它添加到管理员权限。

1
net localgroup administrators leticia$ /add

但是这个“隐藏账户”在用户账户中可以看到,并不能骗过细心的管理员。

这个时候我们可以通过操作注册表,使这个账户在用户账户中也不显示。首先我们输入regedit打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SAM\SAM,我们发现这个时候它是空白的,没有权限进行操作,所以我们要右键权限,将读写权限赋予administrator。

然后我们重启注册表编辑器,发现这个时候已经可以访问了,我们在里面找到刚才创建的leticia$账号和administrator账号对应的键值类型。

然后在上一级文件中找键值类型对应的目录,将administrator对应目录中的F值复制到leticia$对应目录中的F值。

复制完成后,把leticia$和其对应的0000003EA目录先导出并保存。

然后在命令行中删除刚才的账号

1
net user leticia$ /del

最后将刚才导出的注册表文件重新导入,隐藏账户就添加成功了。

此时在用户账户中看不到这个隐藏账户。

这个时候其实已经完成了,但是我们还可以再走一步操作,那就是把注册表刚才赋予administrator的权限禁止掉,这样这个账户就很难被发现了。

防范:

  • 经常检查用户账户、注册表关键位置。
  • 将计算机对用户登陆事件的审核策略打开。

0x02 shift后门

shift后门是很常见的留后门手法,其原理是用cmd.exe替换原先粘滞键,粘滞键的程序sethc.exe可以通过五次shift键调用,这样我们就可以直接通过按五次shift来调用一个system权限的命令行来执行命令、创建用户等。

shift后门有着非常丰富的骚操作,我们先来通过一个最基础的shift后门来学习原理。

制作方法如下:

我们先进入C:\WINDOWS\system32目录,在这里右键打开命令行,依次输入

1
2
move sethc.exe sethc.exe.bak
copy cmd.exe sethc.exe

这两句命令分别是将粘滞键程序备份,然后用cmd.exe覆盖原本的粘滞键程序。

然后我们每次要使用时按5次shift键弹出cmd窗口,可直接以system权限执行系统命令,创建管理员用户,登录服务器等。最后每次删除掉新建的账户,减少被发现的概率。

如图,我们可以在登陆界面就直接调用cmd:

防范:

  • 自行呼出粘滞键检查问题。
  • 禁用粘滞键。

0x03 启动项后门

我们可以让目标机器在每次启动的时候创建一个账户,在这个思路下有很多可以采取的措施,第一种是启动项:

在C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录中,放入我们启动时要运行的批处理代码或其他可运行文件,一般是创建一个管理员账户:

1
2
3
@echo off
net user leticia$ 123456 /add
net localgroup administrators leticia$ /add

防范:

  • 定期检查启动文件夹内容。

0x04 组策略

第二种方法是组策略,可以在gpedit.msc中的windows设置-脚本(启动/关机)中添加新的启动脚本,在开机时就会自动运行。

相比于第一种放在启动目录中,放在组策略中更加隐蔽,一般不容易引起管理员察觉,从而降低被删除的概率。

防范:

  • 定期检查组策略。

0x05 放大镜后门

放大镜后门其实和shift后门很相似,我们可以先备份放大镜程序magnify.exe为magnify2.exe,然后写一个创建新用户并打开真正的放大镜的程序(防止被管理员发现放大镜程序失效),再将其转换为exe文件,并重命名成magnify.exe,然后通过调用放大镜程序来创建新用户供我们登陆。

1
2
3
4
5
@echo off
net user leticia$ 123456 /add
net localgroup administrators leticia$ /add
c:\windows\system32\magnify2.exe
exit

防范:

  • 调用放大镜检查。
  • 定期检查用户组。

0x06 telnet后门

如果我们直接打开远程桌面的3389很容易就会被发现,但是我们打开telnet服务并改变默认端口(23),就可以做一定程度的隐藏,我们在服务中打开telnet服务,然后将windows服务中的telnet客户端打开,然后在我们本机打开telnet服务端,访问目标主机ip和端口并登陆我们的用户名密码即可。

防范:

  • 定期检查服务器的进程端口有没有存在后门程序。

0x07 启用Guest用户

Guest用户本身就存在于计算机中,但是一般默认禁止,且不可登录,我们可以通过命令激活Guest用户并赋予管理员权限,并允许远程桌面登录。

1
2
3
net user Guest /active:yes
net user Guest www.baidu.com
net localgroup Administrators Guest /ADD

gpedit.msc->计算机配置->windows设置->安全设置->本地策略->用户权限分配->允许通过远程桌面服务登录 添加Guest

防范:

  • 定期检查gpedit.msc->计算机配置->windows设置->安全设置->本地策略->用户权限分配中关于Guest用户的权限配置

0x08 总结

留后门的方法有很多很多,但是大部分人会首先从这些方面入手,所以在检查系统有没有被留后门,也可以换位思考,在自己可能留后门的点上多注意一下,或许就会有收获。