PC端恶意代码分析Lab13.1-3:隐藏行为拓展

admin 2022年4月22日22:21:07评论42 views字数 1702阅读5分40秒阅读模式
PC端恶意代码分析Lab13.1-3:隐藏行为拓展

点击蓝字 · 关注我们

前言

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

恶意代码分析是安全从业人员非常重要的一个技能。

之前提到过SSDT hook隐藏和PEB断链隐藏,今天接触一下其他的。

参考书籍:<<恶意代码分析实战>>

               <<Windows核心编程>>

Lab13-1

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

这里先运行一下,可以看到对一个网站的请求。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


然后用IDA查看,没有看到这个域名相关的信息。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


看到这里抽取资源文件,并对资源文件进行了异或操作。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


这里我们对资源文件提取,进行异或操作,可以看到域名。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


之后再调用了一个函数,获得主机名。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


这里之后调用一个函数,我们用od看一下这里干了啥。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

可以知道这里进行了base64编码


然后发送请求

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


读取返回内容。

然后进行判断。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


Lab13-2

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

用IDA打开。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


GetTickCount

 GetTickCount返回(retrieve)从操作系统启动所经过(elapsed)的毫秒数,它的返回值是DWORD。

函数解除锁定的内存块,使指向该内存块的指针无效

GlobalFree

释放指定的全局内存块

GetSystemMetries

 通过设置不同的标识符就可以获取系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度。

GetDesktopWindows

 该函数返回桌面窗口的句柄。桌面窗口覆盖整个屏幕。桌面窗口是一个要在其上绘制所有的图标和其他窗口的区域。

该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。

该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。

CreateCompatibleBitmap

 该函数创建与指定的设备环境相关的设备兼容的位图。

SelectObject

 该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。

GetObjectA

t函数得泛指得到对象,到指定图形对象的信息,根据图形对象,函数把填满的或结构,或表项(用于逻辑调色板)数目放入一个指定的缓冲区。

GlobalAlloc

该函数从堆中分配一定数目的字节数。Win32内存管理器并不提供相互分开的局部和全局堆。提供这个函数只是为了与16位的Windows相兼容。简称全局堆分配

GlobalLock

锁定内存中指定的内存块,并返回一个地址值,令其指向内存块的起始处。

GlobalUnlock

 函数解除锁定的内存块,使指向该内存块的指针无效,GlobalLock锁定的内存,一定要用GlobalUnlock解锁。

GlobalFree

释放指定的全局内存块

ReleaseDC

函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。它只释放公用的和设备上下文环境,对于类或私有的则无效。

DeleteDC

函数删除指定的设备上下文环境(Dc)。

DeleteObject

该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。

先获得操作系统的时间,作为文件名

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


然后截图

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


之后进入一个加密函数

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


最后写入文件

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


那么怎么看到这个截图呢,一种方法是在加密前直接返回。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


还有一种是将加密后的图片内容取出来,放到加密的参数,这里是先假设自定义加密是可逆的进行尝试。按住第一个字节,shift往下脱,在最后一个字节上面按一下。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


Lab13-3

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

放入PEid,无壳,并且可以看到有加密字段。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


放入IDA中查看,这里通过插件可以看到先是调用了AES相关的函数

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


接着启用了socket初始化,与服务器通信

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


然后这里创建了两个管道

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

之后创建了cmd的进程。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


之后创建了一个线程,从socket读取内容。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


这里还涉及到了一个函数,点进去查看,可以得知是base64

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


然后调用了另一个函数,也是读和写的操作,这里进行了AES加密操作。

PC端恶意代码分析Lab13.1-3:隐藏行为拓展


理一下,就是socket获取服务器base64编码后的数据,然后解码传递给cmd,然后cmd运行结果aes加密,然后传递给服务器。

这里通过插件和字符串可以判断出AES加密和base64编码,AES的私钥可以从main函数中得知。


原文始发于微信公众号(Th0r安全):PC端恶意代码分析Lab13.1-3:隐藏行为拓展

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月22日22:21:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PC端恶意代码分析Lab13.1-3:隐藏行为拓展http://cn-sec.com/archives/934418.html

发表评论

匿名网友 填写信息