欢迎加入我的知识星球,目前正在更新免杀相关的东西,129/永久,每100人加29,每周更新2-3篇上千字文档。
加好友备注(星球)!!!
攻击者可以修改注册表来达到持久化的目的,如下有一些常见的注册表,比如系统启动项注册表等等。
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
如上的这些注册表分别位于当前用户和本地计算机下,他们的作用是指定在系统启动时自动执行的程序,这种机制通常会被用来权限维持。
除了修改注册表之外,可以添加计划任务来达到持久化的目的。在指定时间去执行恶意文件。
计划任务
针对于计划任务分析,我们这里举一个示例。恶意文件是ssub.exe
。还是之前的老样子,首先启动Processs Hacker
和Noriben.py
,紧接着就是执行恶意文件。
我们日志这里可以看到ssub.exe调用了cmd.exe
来执行schtasks
添加计划任务,而计划任务的名字是MyAPP,而计划任务要执行的路径为C:\ProgramData\WindowsTask\service.exe
。
我们来看文件活动这里发现ssub.exe
会去创建一个名为service.exe
的文件。
我们可以打开csv文件查看时间线。
其实就是先去写入到WindowsTask
目录下文件为service.exe
,紧接着ssub.exe
将调用cmd.exe
去执行schtasks
去添加计划任务。
我们可以通过Autornus.exe
来查看系统添加的计划任务。可以看到这里有一个MyApp
的计划任务。
启动项
接下来我们来看看启动项权限维持。一般我们可以将其恶意文件放置到Windows启动文件夹中,启动文件夹的作用是允许操作系统启动时扫描并执行存储在其中的文件,Windows系统中有两种启动文件夹类型,一种是用户级,它只针对于特定的用户账户,当某个用户登录时,仅运行与该用户关联的启动程序。系统级的话作用于所有用户。
如下两种:
接下来我们来分析一下bllb.exe
这个恶意文件。我们需要知道恶意文件投放的名称是什么,它控制哪些域名或C2,恶意软件是如何在系统上保持持久性的。
还是老样子,Noriben.py
配合Proc Explorer
和Process Hacker
以及Wireshark
。
首先是创建进程活动这里,我们是通过Explorer.exe
去启动的bllb.exe
,而bllb.exe
他会启动一个程序,这个程序位于Abcdef Hijklmno Qrs
目录下的Abcdef Hijklmno Qrs.exe
文件。
紧接着bllb.exe
会去调用cmd.exe
将其自身进行删除。
那么bllb.exe
是如何将Abcdef Hijklmno Qrs.exe
这个程序放到Abcdef Hijklmno Qrs
这个目录中的呢?我们来看一下文件动作活动这里,我们会发现这里有一个CreateFolder
动作,这个动作是创建文件夹的动作。创建好文件夹之后,然后创建Abcdef Hijklmno Qrs.exe
恶意文件。
在下面我们发现还有一些动作,这里在启动项目录创建了一个Abcdef Hijklmno Qrs.exe.lnk
快捷方式。
我们可以查看这个快捷方式文件。可以看到他指向的起始就是这个文件Abcdef Hijklmno Qrs.exe
。
IFEO
IFEO允许直接在调试器下启动可执行文件,开发者可以在注册表中指定的路径下,为目标可执行文件创建一个子键,并将 Debugger
值设置为调试器的路径。注册表的路径为:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<可执行文件名>
在该路径下设置Debugger
的值,指向所需调试器的完整路径。攻击者可能会滥用该注册表来设置恶意软件作为调试器,从而在执行目标程序时启动恶意软件。
我们可以打开这个注册表。
比如说我是可以开发人员,我开发了notepad.exe
,那么我们就可以对其notepad.exe
设置调试器。
我们在这里右键new->key。
将其名称更改为notepad.exe
。在这里创建一个字符串的值,名为Debugger
。
我们将其字符串的值设置为C:\Windows\system32\calc.exe
。
所以当我们去启动notepad.exe
时,操作系统会去检测这个注册表,如果检测到notepad.exe存在调试器设置,操作系统将首先启动注册表中路径的程序。
如下图会发现当启动notepad.exe
时将启动calc.exe
。但是我们会发现calc.exe
并不会启动notepad
,操作系统希望calc.exe
去启动notepad
,但是始终是不会的。
这里我们将去分析一下利用了这个注册表键来权限维持的恶意程序。
我们可以使用Process Hacker打开这个工具。
首先我们可以看到如下日志信息,在这里会去启动LSASSMGR.EXE
这个文件。
这个文件是从哪来的呢?在File活动这里,这个文件是通过dhic.exe
来创建的。除了这个文件之外,我们发现他还创建了一个Internet Explorer
目录下的iexplor.exe
这个文件。
我们再来看看注册表这里,我们会发现这里将其创建的所有恶意文件,都对其注册表进行了劫持。
dhic.exe:4304 > HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run\Layersecurity Servicemonitor = C:\Windows\system32\LSSMON.EXE
[4304 > HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\spoolsv.exe\Debugger = C:\Windows\system32\spool.exe ] dhic.exe:
[4304 > HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\iexplore.exe\Debugger = C:\Program Files (x86)\Internet Explorer\iexplor.exe ] dhic.exe:
[RegSetValue] dhic.exe:4304 > HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\firefox.exe\Debugger = C:\Program Files (x86)\Mozilla Firefox\firefoxe.exe
我们可以来到这几个注册表进行查看。
分析恶意文件
首先在这里bas.exe
启动了一个名为LSPRN.exe
的进程。
我们可以从文件活动这里可以看到,这里是一个CreateFile的动作,创建了LSPRN.EXE这个文件。
我们再来看一下持久性这里,这里我们会发现bas.exe
会向注册表HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run\Printer Driver
和HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\PrinterSecurityLayer
中添加了LSPRN.EXE
。
这里的注册表其实就是自启动的注册表,当系统启动时就会执行LSPRN.EXE
这个文件。
我们再往下看会发现,这里将其regedit.exe的Debugger设置为了0以及将其taskmgr.exe设置为了0.
这意味着如果我们尝试使用regedit
打开注册表我们发现是失败的。
这个其实是一个反分析的一种技巧。
那么我们如何去解决这种问题呢?我们可以使用命令行的方式给他改回来。
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe"
现在就可以正常打开了。