恶意软件分析-权限维持

文摘   2024-11-20 20:00   陕西  

欢迎加入我的知识星球,目前正在更新免杀相关的东西,129/永久,每100人加29,每周更新2-3篇上千字文档。

加好友备注(星球)!!!


攻击者可以修改注册表来达到持久化的目的,如下有一些常见的注册表,比如系统启动项注册表等等。

HKCU\Software\Microsoft\Windows\CurrentVersion\RunHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceHKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\RunHKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

如上的这些注册表分别位于当前用户和本地计算机下,他们的作用是指定在系统启动时自动执行的程序,这种机制通常会被用来权限维持。

除了修改注册表之外,可以添加计划任务来达到持久化的目的。在指定时间去执行恶意文件。

计划任务

针对于计划任务分析,我们这里举一个示例。恶意文件是ssub.exe。还是之前的老样子,首先启动Processs HackerNoriben.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 ExplorerProcess 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[RegSetValue] dhic.exe:4304 > HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\spoolsv.exe\Debugger  =  C:\Windows\system32\spool.exe[RegSetValue] dhic.exe:4304 > HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\iexplore.exe\Debugger  =  C:\Program Files (x86)\Internet Explorer\iexplor.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 DriverHKLM\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"

现在就可以正常打开了。

Relay学安全
这是一个纯分享技术的公众号,只想做安全圈的一股清流,不会发任何广告,不会接受任何广告,只会分享纯技术文章,欢迎各行各业的小伙伴关注。让我们一起提升技术。
 最新文章