好友
阅读权限30
听众
最后登录1970-1-1
|
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子! 病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途! 禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
好像最近比较火,我也来凑一发热闹,只为求积分(发现真的好低)
简单分析报告:
基本信息
作者: jwn
样本类型:钓鱼盗号
壳信息:无壳
可能受到威胁的系统:windows
简介:
运行木马后,如果没有运行QQ进程,没有任何反应,若运行qq程序并且点击QQ程序后会弹出钓鱼框,欺骗用户输入,已到达盗号目的
简单分析:
调用LoadStringW函数从资源里加载字符串资源到Buffer 中为后面窗口类名做准备
- 乱序填充字符到前面开辟的空间中, a=x12x&b=_)&c=(*.) 字符串用于后面qq号, 密码 匹配, 还有字符串进程名, 窗口类名(TXGuiFoundtion) 通过Spy++工具,我们可以知道QQ的窗口类名就是 TXGuiFoundtion。
进人call 4010C0
创建互斥体保证只有一个进程运行
h_Mutex = CreateMutex(NULL, FALSE, "wanxinyi");//创建一个互斥对象
if (h_Mutex)
{
if (ERROR_ALREADY_EXISTS == GetLastError())
{
ExitProcess();
}
}
拷贝字符串PE绝对路径到 lpDaddr缓冲区
此段代码就是注册窗口类, 创建主窗口,与两个子窗口, 并且通过调用API设置创建风格, 其中【45F7D4】子窗口(edit)文本框只读
【45F7D8】子窗口(edit)文本框设置为密文文本, 调用MoveWindws函数移动主窗口到指定位置, SetWindowsLongW为子窗口设置回调函数。并且调用setWindows函数设置窗口隐藏。
获取字符串大小(SizeLength), 并将前面开辟空间压栈(lpaddr+[arg2])
call 004065A0 有一个参数edx = 【ecx+1C】,获取拷贝的目的地址lpDaddr
然后调用call 407B50 此call相档于memset(lpaddr, lpDaddr, SizeLength);
打开病毒同目录下的sed文件, 通过调用GetFileSzie 得到文件尺寸,eax = Filesize . 通过eax = eax-16得到文件偏移 ,通过调用
SetFilePointer函数设置文件指针,最后调用ReadFile函数读取sed文件中的 arm字符串。
调用此call 隐藏主窗口
,,,,,,,,,继续跟跟,
走出call 4010C0 之后来到, ,,,,初始化Winsock库, 然后将从文件sed中读出的”amr“字符串压入
跟进403AB0
信息量太大了,,,粘出关键部分, 跟根根,,,,,来到这里 首先开辟一个空间,然后将amr 字符串拷贝到该空间中
之后创建定时器没100ms, 回调函数为系统默认的OnTimer, 当发送WM_TIMER时调用此函数, 调用ShowWindows使窗口隐藏, UndateWindows函数更新当前窗口
继续跟,下面是对设备上下文DC设定,窗口外观等的设置
接下来将进入消息循环:这里要注意要在前面的创建窗口时在窗口的回调函数下断点,这样dispatchMassage 函数才会找到窗口回调函数
通过创建窗口我们可以找到窗口回调函数FuncPro(HWND, MSG, PWARAM, LPARAM); 地址401DD0 ,在此下断
进入401A30 call
乱序填充字符user.dll 与 GetForegroundWindow 最后调用 HWNA GetForegroundWindow()函数 返回用于当前工作窗口 得到前台窗口
就是通过这个函数当只有用户点击QQ进程时, 他才会弹出钓鱼框。
(GetForegroundWindow() 是整个Windows系统的当前激活的窗口 比如桌面。
与之相对应的是 GetActiveWindow() 是你的程序的当前激活的窗口)
跟进401C10 call
同样的方法填入字符串user.dll与GetClassNameA 调用intGetClassName( GetForegroundWindow() ,buffer,intnMaxCount),返回buffer长度
因为当前工作窗口为olldbg, 所以得到窗口类名为OllyDbg
[size=-1]调用 GetClassName后 数据窗口信息
0012F994 4F 6C 6C 79|44 62 67 00|00 00 00 00|00 00 00 00| OllyDbg. 79|44 6
接下来是
拼接QQ窗口类名 调用FindWindow 得到窗口句柄
调用GetWindowTextA 后得到QQ窗口类文本信息
后面是对得到字符串处理 得到qq号
hWnd = FindWindow(_T("ClassNameQQ"), NULL);
if (hWnd != NULL)
{
GetWindowThreadProcessId(hWnd, &dwProcessId1);
GetWindowThreadProcessId(HwndTXGuiFoundtion, &dwProcessId2)
if(dwProcessID1 == dwProcessID2)
{
goto __FindSuccess;
}
}
设置只读文本框为QQ号,密码文本框空,调用GetSystemMetrics函数得到以像素为单位的屏幕尺寸
之后钓鱼框弹出;
点击登录按钮后来到,,,,,这里是得到qq,密码文本,然后处理,将其填入a=x12x&b=_)&c=(*.)后面将作为发送数据发到目的地
使用套接字,将数据(a=qq号&b=密码&c=amr(验证信息))发送到指定目的地址,已达到盗号目的
以上就是整个盗号木马真个分析流程
总结与反思:为什么他能过360等杀毒软件喃?
这个qq钓鱼木马做的比较隐藏,伪装的比较好,当普通用户点击后,没有点击qq窗口他会一直常驻内存,当用户点击qq窗口,就会弹出自己伪造的框。该木马没有使用任何反跟踪技术和变形技术,也没有对注册表,服务等操作,对一些关键的函数,字符串也是做了处理 比如 GetForegroundWindow, TXGuiFoundtion(因为以前的盗号木马都包含这个字符信息),没有危险api的操作,所以一开始跟多杀毒软件无动于衷。
本次分析主要收获:
1,函数CreateMutes的使用 ,保证内存中只存在一个当前进程在运行.
2.函数 GetForegroundWindow ,GetClassName, FindWindow,GetWindowsThreadProcessId,使用
当前台窗口与指定的TXGuiFoundtion窗口PID相等时,就弹出钓鱼窗口。
|
-
-
xx.rar
184.1 KB, 下载次数: 973, 下载积分: 吾爱币 -1 CB
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|