一、病毒简介
SHA256:3110f00c1c48bbba24931042657a21c55e9a07d2ef315c2eae0a422234623194
MD5:ae986dd436082fb9a7fec397c8b6e717
SHA1:31a0168eb814b0d0753f88f6a766c04512b6ef03
二、行为分析
老套路,火绒剑监控:
这边可以看见创建了一个exe,又为他设置了注册表自启动;
这里是进行网络链接操作,同时不断获取信息保存文件到本地,这是请求的信息:
general-second.org-help.com/dl_ex1.png?m=000C29AB634E&NOTE=Ni4xIDogMC4wfDV8djEuMAo=
通过微步云沙箱在线进行扫描,结果如下:
三、静态分析
首先查查壳,这里并没有加壳,导入表信息更多是和网络操作有关的函数:
直接拖到IDA分析:
开局创建互斥体防多开,检测之后就到了关键else中:
3.1 sub_4011E0
这里是解密函数名和模块名,随后进行加载,获取地址,那么对于这种情况没有比动态调试更简单的方法了:
那么解密后的结果如下,根据这些函数也大致知道这个木马做了些什么事:
3.2 sub_403600
查看此函数获取路径:
那么此函数就是获取应用程序路径,继续向下看:
显而易见,这里是查看当前程序路径,如果不是自己拷贝的路径,就自我拷贝,然后在注册表设置自启动,运行成功弹窗。
3.3 sub_401580
GetAdaptersInfo:
Next
类型: 结构_IP_ADAPTER_INFO*
指向适配器列表中的下一个适配器的指针。
ComboIndex
类型:DWORD
保留。
AdapterName[MAX_ADAPTER_NAME_LENGTH + 4]
类型: char[MAX_ADAPTER_NAME_LENGTH + 4]
适配器名称的 ANSI 字符串。
Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4]
类型: char[MAX_ADAPTER_DESCRIPTION_LENGTH + 4]
包含适配器说明的 ANSI 字符串。
AddressLength
类型: UINT
适配器的硬件地址的长度(以字节为单位)。
Address[MAX_ADAPTER_ADDRESS_LENGTH]
类型: BYTE[MAX_ADAPTER_ADDRESS_LENGTH]
表示为 BYTE 数组的适配器的硬件地址。
Index
类型:DWORD
适配器索引。
当禁用并启用适配器或在其他情况下,适配器索引可能会更改,不应被视为持久性。
Type
类型: UINT
适配器类型。 适配器类型的可能值列在 Ipifcons.h 头文件中。
下表列出了适配器类型的常见值,尽管 Windows Vista 及更高版本上可能提供其他值。
Value 含义
MIB_IF_TYPE_OTHER
1
其他类型的网络接口。
MIB_IF_TYPE_ETHERNET
6
以太网网络接口。
IF_TYPE_ISO88025_TOKENRING
9
MIB_IF_TYPE_TOKENRING
MIB_IF_TYPE_PPP
23
PPP 网络接口。
MIB_IF_TYPE_LOOPBACK
24
软件环回网络接口。
MIB_IF_TYPE_SLIP
28
ATM 网络接口。
IF_TYPE_IEEE80211
71
IEEE 802.11 无线网络接口。
注意 此适配器类型在 Windows Vista 及更高版本上返回。 在 Windows Server 2003 和 Windows XP 上,IEEE 802.11 无线网络接口返回 MIB_IF_TYPE_ETHERNET的适配器类型。
DhcpEnabled
类型: UINT
一个选项值,该值指定是否为此适配器启用动态主机配置协议 (DHCP) 。
CurrentIpAddress
类型: PIP_ADDR_STRING
保留。
IpAddressList
类型: IP_ADDR_STRING
与此适配器关联的 IPv4 地址列表表示为 IP_ADDR_STRING 结构的链接列表。 适配器可以分配多个 IPv4 地址。
GatewayList
类型: IP_ADDR_STRING
此适配器的网关的 IPv4 地址,表示为 IP_ADDR_STRING 结构的链接列表。 适配器可以分配多个 IPv4 网关地址。 此列表通常包含此适配器的默认网关的 IPv4 地址的单个条目。
DhcpServer
类型: IP_ADDR_STRING
此适配器的 DHCP 服务器的 IPv4 地址,表示为 IP_ADDR_STRING 结构的链接列表。 此列表包含此适配器的 DHCP 服务器的 IPv4 地址的单个条目。 值为 255.255.255.255 表示无法访问 DHCP 服务器,或者正在达到。
仅当 DhcpEnabled 成员为非零时,此成员才有效。
HaveWins
类型: BOOL
一个选项值,该值指定此适配器是否使用 Windows Internet 名称服务 (WINS) 。
PrimaryWinsServer
类型: IP_ADDR_STRING
主 WINS 服务器的 IPv4 地址,表示为 IP_ADDR_STRING 结构的链接列表。 此列表包含此适配器的主 WINS 服务器 IPv4 地址的单个条目。
仅当 HaveWins 成员为 TRUE 时,此成员才有效。
SecondaryWinsServer
类型: IP_ADDR_STRING
辅助 WINS 服务器的 IPv4 地址表示为 IP_ADDR_STRING 结构的链接列表。 适配器可以分配多个辅助 WINS 服务器地址。
仅当 HaveWins 成员为 TRUE 时,此成员才有效。
LeaseObtained
类型: time_t
获取当前 DHCP 租约的时间。
仅当 DhcpEnabled 成员为非零时,此成员才有效。
LeaseExpires
类型: time_t
当前 DHCP 租约过期的时间。
仅当 DhcpEnabled 成员为非零时,此成员才有效。
那么这里就是获取主机的相关信息,根据后面格式化字符串可推测这里是获取网卡相关信息。
3.4 sub_401770
3.5 sub_402790
3.6 CreateThread
这里进入402520函数,里面有个关键函数402A50:
继续向下就是修改自启动注册表和屏保有关的注册表,拼接请求命令,通过cmd执行: