锁机木马篇-01

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33528164/article/details/89490812

锁机木马分析

序言

离开了CTF, 踏上了恶意代码分析这条不归路. 第一次分析, 拿了一个锁机木马, 非常简单, 主要是总结一下思路, 留给恶意代码分析的新手.

样本信息

md5: b030d1effac0bc3e0c7dcf89cc6f4960
sha1: 4da2ca78e5abd5703e4875112692f1672ddc4b41
名称: 锁机木马
功能: 修改账户密码, 但对文件不进行加密.

分析

  • 1.IDA Pro

拖入IDA Pro, 可以发现下列字符串

/fullname:要密码加QQ:1463980872'
net user
20040119
GetUserNameA

猜测 : 可能是通过net user命令修改了当前账户的fullname和密码.

  • 2.导入函数
线程/进程 执行命令
CreateThread HeapAlloc ShellExecuteA
CreayeProcessA HeapCreate WinExec
OpenProcessToken HeapDestroy
ExitProcess HeapFree

猜测: 执行net user命令的APIShellExecuteAWinExec, 这两个API0x408630函数被调用, 下断点.

  • 3.OD

F9执行, 虚拟机关机, OD并没有触发断点. 从上面的导入函数可以推测: 程序有可能创建新的线程, 或进程, 来执行修改用户名和密码操作. OD 对于多进程和多线程的支持并不十分友好.

多线程与多进程的调试

自己测试了一下, 多线程OD是可以断下来的, 进程并不会直接断下.

  • 4.验证

利用OD插件在CreateThreadCreateProcess下断点. 运行发现CreateThread断点没有命中, CreateProcess命中.

看一下CreateProcess介绍

BOOL CreateProcessA(
  LPCSTR                lpApplicationName,
  LPSTR                 lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL                  bInheritHandles,
  DWORD                 dwCreationFlags,
  LPVOID                lpEnvironment,
  LPCSTR                lpCurrentDirectory,
  LPSTARTUPINFOA        lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);
重点看lpCommandLine, 可以是一个命令行, 说明了恶意程序使用CreateProcess来执行
net user /fullname: 要密码加QQ:1463980872 和 net user 20040119

fullname
user

实现代码

代码

样本下载

锁机木马

心得

实验之前, 一定要做好快照, 切记.

猜你喜欢

转载自blog.csdn.net/qq_33528164/article/details/89490812