瑞星卡卡安全论坛技术交流区反病毒/反流氓软件论坛 【原创】关于FuckJacks.exe木马是如何关闭IceSword.exe进程的

12   1  /  2  页   跳转

【原创】关于FuckJacks.exe木马是如何关闭IceSword.exe进程的

【原创】关于FuckJacks.exe木马是如何关闭IceSword.exe进程的

很弱智的文章,VC高手就不用看了。

注意:如果在IS启动时用SSM阻止它加载IsDrv120.sys,那么IS还会加载动态驱动.(文件名不定.)

今天测试了一下FuckJacks.exe关闭IceSword的机制,发现它根本就不是通过驱动来关闭IceSword的,即使IS加载的是正确的驱动文件IsDrv120.sys,它还是可以结束的。


其实FuckJacks.exe用的是一个很被人们看不起的方法来关闭IceSword的.那就是调用 ::SendMessage()这个API函数.这个函数PJF以前也提到过,而且也是目前唯一比较简单的关闭IS的方法.我们来看一下SendMessage()函数:

LRESULT WINAPI SendMessage(
                HWND hWnd,      // handle of destination window
                UINT Msg,      // message to send
                WPARAM wParam,  // first message parameter
                LPARAM lParam  // second message parameter
              );

显然,第二个参数Msg需要传递WM_CLOSE,最后两个参数传递0就行了。问题就出在这个接受消息的进程的HANDLE上。利用::OpenProcess()是获得不到正确的IceSword HANDLE的,而且在很长时间里,连得到IS的HANDLE都是一件很麻烦的事。况且IS的标题栏里显示的东西也不是固定的,通过::FindWindow()试图找到HANDLE也会泡汤。听说9月的《黑客防线》的《折断冰刃》一文中有如何得到IS的HANDLE。由于我没有看过这篇文章,于是猜想它是调用了 AdjustTokenPrivileges之类的函数提升自己进程的权限从而得到IS的HANDLE的。

如果得到了HANDLE,那么关闭IS也就容易了。

于是写了个小程序:

// 由于我技术太差,无法用程序得到IS的标题,只好在程序中直接输入IS的标题了。
//这样的方法只能用一次,重启IS后,标题栏又变了,当然不行了。


#include <stdio.h>
#include <windows.h>

void main()
{
    char name[]="16B819";    ///这是我的IS的标题栏
    //printf(" Name \n");
    //scanf("%s",name);
    HANDLE hProcess=::FindWindow(NULL,name);
    if(hProcess!=NULL)
    ::PostMessage((HWND__ *)hProcess,WM_CLOSE,0,0);
    // ::Sleep(10000);
    // ::PostMessage((HWND__ *)hProcess,WM_CHAR,13,NULL);  //如果这个函数能调用成功,那么IS就会被关掉,可惜我不会……
    printf("OK\n");
    getchar();
}



运行这个程序,IS的窗口上便会弹出“确定退出”的对话框。


如果这个时候才传递一个回车消息或者相当于点击“是”的WM_COMMAND消息,那么IS就会被结束。

注意:在测试FuckJacks.exe时,应该会发现,IS被结束时也是出现了“确定退出”的对话框的。

===================

后记:
在PJF的BLOG里,有一位高手曾经这样评价这种关闭IS的方法:

那些木马有本事就来正面的,在IS中隐藏进程,或者直接结束IS进程(而不是玩些乱发消息的把戏)。


及PJF的话:
任何一软件,你针对他做,很弱智的方法就能让他不能正常工作。这种东西可以用没有任何技术含量的手法去做,
纯粹耍流氓而已。随便一个抹去特征的个人IS版本就可让大多数流氓没用了。

这种手法就好比写个软件把系统目录全删了,让windows不能启动,然后就宣称自己的软件比windows系统更牛,典型的哗众取宠。




我的功夫太差,只好说到这里了。
最后编辑2006-12-14 06:08:20
分享到:
gototop
 

正在学习
gototop
 

顶了,让人头疼的C
gototop
 

希望PJF大侠能在新版IS中防住这个机制
gototop
 

另外需要说明的一点是,利用::SendMessage(hProcess,WM_CLOSE,0,0)试图发送消息是会被SSM拦截,并定义为“试图终止”,因此当SSM设置中没有对IS进程保护或者SSM被关闭时,IS会被终止。

我在测试FuckJacks.exe时,.gho结尾的GHOST文件被删除了,而GHS的完好无损
gototop
 

学习了 !!
gototop
 

好东西学习```VB偶超想学中```
gototop
 

我先辙了。。。
::Sleep()....
gototop
 

支持
gototop
 

学习了!!~~顶!~~~~~~~~~~~~~~~~~
gototop
 
12   1  /  2  页   跳转
页面顶部
Powered by Discuz!NT