运行程序,发现程序持续运行中。。。一直黑屏在跑。在IDA中可以看到是有Sleep函数

问题1:如何实现持久化驻留


程序运行过程中,会开启一个名为MalService的服务


运行net start查看机器当前开启的服务,惊人发现~服务没有开起来,可能是哪个地方姿势不对吧



问题2:程序的互斥量

找到mutex

Name是个常量字符串:HGL345

说明该程序只能运行一个实例

同时打开多个,在几秒钟之内,除了第一个的以外的实例都会自动停止运行

下图是在Process Explorer中找到的mutex信息


也可以用windbg来看,查找所有的句柄handle,然后找到mutex


问题3:程序基于主机的特征

在strings中找特殊字符串也没有找到很明显的。根据问题1和2

基于主机的特征只能从服务和互斥量的两个字符串定位

一个是服务的MalService,另一个互斥量的HGL345



问题4:程序基于网络的特征



问题5:程序目的


程序的几个功能:

A:开启MalService服务

B:使用HGL345互斥量,保证程序只运行一个实例

C:反复尝试连接URL


问题6:程序完成执行的时间

根据Sleep(0xFFFFFFFF)去换算即可


PLUS:

https://hunted.codes/writeups/challenges/practical-malware-analysis/practical-malware-analysis-lab-7-1/

从书后参考答案学习

Q5:程序等待的时间是2100年1月1日

会发送很多请求到一个固定的URL,可能是一次DDOS攻击


Q6:程序永远不会完成,因为每一个线程运行的都是无限循环


OpenSCManager:打开一个服务控制管理器的句柄,以便这个程序可以添加或修改服务。