首页
社区
课程
招聘
[原创]彩虹猫病毒分析
发表于: 2021-10-26 20:30 12509

[原创]彩虹猫病毒分析

2021-10-26 20:30
12509

        这里没有放虚拟机运行,直接放微云沙盒跑,样本运行效果如下

        提示是否要继续运行,之后电脑会出现各种弹窗,然后会重启,重启后直接出现彩虹猫并且播放音频

样本名:彩虹猫

MD5:19dbec50735b5f2a72d4199c4e184960

SHA-1:6fed7732f7cb6f59743795b2ab154a3676f4c822

SHA-256:a3d5715a81f2fbeb5f76c88c9c21eeee87142909716472f911ff6950c790c24d

File size:14.50 KB (14848 bytes)

Detect It Easy(DIE)查看PE信息如下

    是一个32位程序,且无壳。直接查看导入表

SHELL32.dll

    ShellExecuteW 

    ShellExecuteExW 

    CommandLineToArgvW 

    ShellExecuteA

KERNEL32.dll

    CreateToolhelp32Snapshot 

    GetModuleFileNameW 

    GlobalFree 

    ExitProcess 

    LoadLibraryA 

    lstrlenW 

    Process32NextW 

    GetCurrentProcess 

    LocalAlloc 

    OpenProcess 

    GetCommandLineW 

    GetProcAddress 

    Process32FirstW 

    CreateThread 

    lstrcmpA 

    WriteFile 

    CloseHandle 

    lstrcmpW 

    SetPriorityClass 

    LocalFree 

    GlobalAlloc 

    Sleep 

    CreateFileA 

    GetCurrentThreadId

USER32.dll

    DefWindowProcW 

    SendInput 

    GetMessageW 

    GetSystemMetrics 

    MessageBoxW 

    GetWindowRect 

    UnhookWindowsHookEx 

    DrawIcon 

    EnumChildWindows 

    MessageBoxA 

    GetWindowDC 

    TranslateMessage 

    DispatchMessageW 

    RegisterClassExA 

    GetCursorPos 

    ReleaseDC 

    SetCursorPos 

    CallNextHookEx 

    CreateWindowExA 

    GetDesktopWindow 

    SetWindowsHookExW 

    LoadIconW 

    SendMessageTimeoutW 

    ExitWindowsEx

ADVAPI32.dll

    CryptAcquireContextW 

    AdjustTokenPrivileges 

    LookupPrivilegeValueW 

    CryptGenRandom 

    OpenProcessToken

PSAPI.DLL

    GetProcessImageFileNameA

WINMM.dll

    PlaySoundA

GDI32.dll

    StretchBlt 

    BitBlt

        根据导入表的显示,该样本可能存在的操作如下

提权(AdjustTokenPrivileges、LookupPrivilegeValueW、OpenProcessToken、SetPriorityClass)

遍历进程(CreateToolhelp32Snapshot、Process32FirstW、Process32NextW)

遍历窗口(EnumChildWindows)

全局钩子(SetWindowsHookExW、CallNextHookEx、UnhookWindowsHookEx)

鼠标操作(SetCursorPos、GetCursorPos)

键盘操作(SendInput)

创建窗口(CreateWindowExA)

运行程序(ShellExecuteW)

绘图(BitBlt、StretchBlt)

播放音频(PlaySoundA)

        接下来是拖进IDA进一步的分析。

        大概浏览了伪代码之后,得知该样本存在两种运行方式,附带参数分别为 /watchdog/main。首先是分析/watchdog参数。

        以/watchdog方式运行时,会先创建一个线程,然后创建一个窗口。先分析ThreadProc。

        该线程首先是获取自身路径后,进行进程遍历,统计自身进程数,如果自己的数量少了1,则会执行下面的Blue_MsgBox_fixWndSize函数。

        函数首先是启动了20是个线程,然后触发一个蓝屏,如果蓝屏触发失败则会重启。双击StartAddress,发现光标直接跳到return的位置

        于是切换到反汇编查看汇编代码。

        首先调用SetWindowHookExW设置了一个WH_CBT的钩子,钩子函数为fn,这样当窗口有变化时会自动调用fn,紧接从lpText从随机取出一条文本用来弹窗。

.data:004050C8     lpText          dd offset aYouKilledMyTro

.data:004050C8                                             ; DATA XREF: Blue_MsgBox_fixWndSize+10D↑r

.data:004050C8                                             ; "YOU KILLED MY TROJAN!\r\nNow you are go"...

.data:004050CC                     dd offset aRestInPissFore ; "REST IN PISS, FOREVER MISS."

.data:004050D0                     dd offset aIWarnedYou   ; "I WARNED YOU..."

.data:004050D4                     dd offset aHahaN00bL2pG3t ; "HAHA N00B L2P G3T R3KT"

.data:004050D8                     dd offset aYouFailedAtYou ; "You failed at your 1337 h4x0r skillz."


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-10-26 20:30 被PlaneJun编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (1)
雪    币: 9
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
老哥,可以发一下样本吗
2021-10-29 09:29
0
游客
登录 | 注册 方可回帖
返回
//