首页
社区
课程
招聘
[原创]病毒TXP1atform.exe分析笔记
发表于: 2009-10-5 11:23 10458

[原创]病毒TXP1atform.exe分析笔记

2009-10-5 11:23
10458

前言:前几天突然发现移动硬盘内的exe文件全部被“打包”了,幸好我是在winpe下工作且无内置硬盘损失不是很大。在网上用TXP1atform.exe搜索了一下,发现受害者很多。遂决定写篇分析笔记以消除受害者的恐惧。
   一、主要症状是:我在pe下打开exe文件很慢,出现一个*.exe.exe的文件马上又变成了*.exe,而后才弹出程序界面。立刻察看进程管理器发现多了TXP1atform.exe、IEXPLORE.EXE、cmd.exe这几个进程。
   二、病毒感染的具体实现
     染毒程序运行时首先将尾部的备份程序以后缀为*.exe.exe的形式释放出来,接着生成一个类似20$$.bat的批处理文件并执行,与此同时病毒体将自身拷贝到SYSTEM32\DRIVERS目录中并运行,程序随即退出。此时DRIVERS目录中的病毒体遍历所有分区,找出可以感染的可执行文件如exe、scr、com以及网页文件htm、html、asp、php、jsp、aspx(写入挂马代码好像没有感染我的htm文件),搜索的同时另一个线程进行感染这样效率较高。屏幕保护程序一旦感染,屏保时病毒就会被激活。感染可执行文件时,先把被感染文件读入内存并修改病毒程序图标与其相同,而后将自身从SYSTEM32\DRIVERS下拷贝到被感染程序所在文件夹替换掉原来的程序,接着再将内存中的原程序备份到病毒文件尾部,最后做个标记纪录下备份的数据大小,便于以后运行染毒程序时将其释放执行。
        
            
            

        :try1
        del "X:\Documents and Settings\Default User\桌面\notepad.exe"
        if exist "X:\Documents and Settings\Default User\桌面\notepad.exe" goto try1
        ren "X:\Documents and Settings\Default User\桌面\notepad.exe.exe" "notepad.exe"
        if exist "X:\Documents and Settings\Default User\桌面\notepad.exe.exe" goto try2
        "X:\Documents and Settings\Default User\桌面\notepad.exe"
        :t
     以上是在桌面上运行染毒的notepad.exe时调试中生成的20$$.bat,其实现的功能:先删除带毒的程序,再将解压出来的程序改回原来的名字并执行最后删除批处理文件自身;如果改名不成功就直接删除批处理文件自身。该批处理文件的前面两位数字是随机的,在调试时如果将0012F90C处该为00000001,你将会看到一个dos窗口在执行该批处理文件。
     以下是调试中堆栈中的一些情形,用到这些断点:
        执行生成的批处理文件:
        0012F904   0041EF57  /CALL 到 WinExec 来自 notepad.0041EF52
        0012F908   00E05D54  |CmdLine = "X:\Temp\20$$.bat"
        0012F90C   00000000  \ShowState = SW_HIDE
       
        搜索可感染程序:
        011FFBF4   0041E6AC    /CALL 到 FindNextFileA 来自 TXP1atfo.0041E6A7
        011FFBF8   00E00DA8    |FileName = "D:\dump.exe"
        011FFBFC   011FFE2C    \pFindFileData = 011FFE2C
            
        病毒体替换掉被感染程序
        011FE720   0041F57B     /CALL 到 CopyFileA 来自 TXP1atfo.0041F576
        011FE724   00E19018     |ExistingFileName = "X:\WXPE\SYSTEM32\DRIVERS\TXP1atform.exe"
        011FE728   00E0E81C     |NewFileName = "D:\dump.exe"   //感染D:根目录下的dump.exe

      对注册表的操作:
      1、隐藏文件:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue
      2、对付杀毒软件:感染时在C盘根目录下生成一个临时文件GK.TMP,其中是加密了的注册表相关数据。 染毒程序先解密该文件而后再写入注册             表。见图registry
     
      3、修改启动项:\Documents and Settings\All Users\「开始」菜单\程序\启动\
                    \Documents and Settings\All Users\Start Menu\Programs\Startup\
                    \WINDOWS\Start Menu\Programs\Startup\
                    \WINNT\Profiles\All Users\Start Menu\Programs\Startup\
                    Software\Microsoft\Windows\CurrentVersion\Run

        注册服务并启动:NET START DMusic (注:JM.sys在附件压缩包中,它是病毒从资源中临时释放的,只能在调试过程中获得)
        实现屏蔽几十种杀软和隐藏自身不被查杀的功能是一款驱动级病毒。幸亏我是在pe下运行的,该驱动没有启动成功,惨遭我的蹂躏。
        [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmusic]
        "Type"=dword:00000001
        "Start"=dword:00000003
        "ErrorControl"=dword:00000001
        "ImagePath"="system32\\DRIVERS\\JM.sys"        
        "DisplayName"="Microsoft Kernel DLS Syntheiszer"
        [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\DMusic\Enum]
        "Count"=dword:00000001
        "NextInstance"=dword:00000001
        "0"="Root\\LEGACY_DMUSIC\\0000"
       
        下面是病毒启动服务的过程,启动完后改写注册表隐藏真实驱动的名称并删除sys文件。
        00426F68    55              PUSH EBP
        ..................
        00426F7D    6A 00           PUSH 0
        00426F7F    68 40704200     PUSH TXP1atfo.00427040       ; net stop dmusic
        00426F84    E8 BFFEFDFF     CALL TXP1atfo.00406E48       ; JMP 到 kernel32.WinExec
        00426F89    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
        00426F8C    E8 BB08FEFF     CALL TXP1atfo.0040784C
        00426F91    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
        00426F94    BA 58704200     MOV EDX,TXP1atfo.00427058    ; drivers\jm.sys
        00426F99    E8 4EDDFDFF     CALL TXP1atfo.00404CEC
        00426F9E    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
        00426FA1    E8 3EDFFDFF     CALL TXP1atfo.00404EE4
        00426FA6    8BC8            MOV ECX,EAX
        00426FA8    BA 68704200     MOV EDX,TXP1atfo.00427068     ; qd2
        00426FAD    B8 0A000000     MOV EAX,0A
        00426FB2    E8 250AFEFF     CALL TXP1atfo.004079DC
        00426FB7    B9 74704200     MOV ECX,TXP1atfo.00427074   ; system32\DRIVERS\JM.sys
        00426FBC    BA 94704200     MOV EDX,TXP1atfo.00427094   ; SYSTEM\CurrentControlSet\Services\DMusic\ImagePath
        00426FC1    B8 02000080     MOV EAX,80000002
        00426FC6    E8 11FBFEFF     CALL TXP1atfo.00416ADC      ;写注册表
        00426FCB    6A 00           PUSH 0
        00426FCD    68 C8704200     PUSH TXP1atfo.004270C8      ; NET START DMusic
        00426FD2    E8 71FEFDFF     CALL TXP1atfo.00406E48      ; WinExeC
        00426FD7    68 A00F0000     PUSH 0FA0
        00426FDC    E8 47FEFDFF     CALL TXP1atfo.00406E28      ; Sleep等待启动完成
        00426FE1    B9 E4704200     MOV ECX,TXP1atfo.004270E4   ; system32\DRIVERS\DMusic.sys
        00426FE6    BA 94704200     MOV EDX,TXP1atfo.00427094   ; SYSTEM\CurrentControlSet\Services\DMusic\ImagePath
        00426FEB    B8 02000080     MOV EAX,80000002
        00426FF0    E8 E7FAFEFF     CALL TXP1atfo.00416ADC      ;改写注册表中驱动名称为DMusic.sys原来是JM.sys
        00426FF5    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
        00426FF8    E8 4F08FEFF     CALL TXP1atfo.0040784C
        00426FFD    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
        00427000    BA 58704200     MOV EDX,TXP1atfo.00427058   ; DRIVERS\JM.sys
        00427005    E8 E2DCFDFF     CALL TXP1atfo.00404CEC
        0042700A    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
        0042700D    E8 D2DEFDFF     CALL TXP1atfo.00404EE4
        00427012    50              PUSH EAX                    ;system32\DRIVERS\JM.sys
        00427013    E8 38FCFDFF     CALL TXP1atfo.00406C50      ;调用DeleteFileA,删除掉JM.sys
        ................
        0042703D    C3              retn

      其他的一些操作:   
      删除系统的默认共享,可以独享这台肉鸡。
      cmd.exe /c net share admin$ /del /y
         cmd.exe /c net share C$ /del /y
       
      用命令行实现解压缩下载的木马rar文件到指定的目录并执行,或者打包你的敏感文件后改名并上传。
      如C:\Program Files\WinRAR\myrar.txt 将打包的资料改为txt后缀用于上传,避免被人发现
      "C:\Program Files\WinRAR\winrar.exe" x -inul  -p- "  //解压木马到指定目录
      "C:\Program Files\WinRAR\winrar.exe" u -as -ep1 -inul  "  //快速打包所需的文件
          x       带绝对路径解压     
          u       更新压缩文件中的文件   
          -as     同步压缩文件内容     
          -ep1    从文件名中删除底层目录,压缩后文件内不含底层目录信息
          -inul   Disable all messages
          -p-     Do not query password
       命令rar a -u -as -ep1 backup sources\*.cpp将只压缩目录sources下的*.cpp文件,这个操作比创建新的压缩文件执行得快。

      三、修复方法:
      先搜索染毒程序中的病毒体结束标志“1235c”,这样就找到了备份程序的头,然后在染毒程序的尾部找到备份数据的字节大小,把这段提取即可,编程实现也不复杂,哪位朋友有兴趣就实现一下吧!备注:*.exe.exe文件就是我们原来的的程序,只是名字有所变化,需要从染毒后的程序中提取出来。通过调试发现下面一段代码就是释放备份的原程序且还未执行其他感染行为,所以可以直接用脚本实现。
        00403900    66:8178 04 B2D7 CMP WORD PTR DS:[EAX+4],0D7B2  //是否释放*.exe.exe文件的标志
        00403906    74 0F           JE SHORT shed.00403917   //跳去生成*.exe.exe
         ................................
        00403917    8B78 14         MOV EDI,DWORD PTR DS:[EAX+14]
        0040391A    0378 0C         ADD EDI,DWORD PTR DS:[EAX+C]
        0040391D    8B50 08         MOV EDX,DWORD PTR DS:[EAX+8]
        00403920    2B50 0C         SUB EDX,DWORD PTR DS:[EAX+C]
        00403923    39CA            CMP EDX,ECX
        00403925    7F 20           JG SHORT shed.00403947   //生成*.exe.exe完毕就跳
        00403927    0150 0C         ADD DWORD PTR DS:[EAX+C],EDX
        0040392A    29D1            SUB ECX,EDX
        0040392C    50              PUSH EAX
        0040392D    51              PUSH ECX
        0040392E    89D1            MOV ECX,EDX
        00403930    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
        00403932    FF50 1C         CALL DWORD PTR DS:[EAX+1C]  //WriteFile  每次写80h字节
        00403935    85C0            TEST EAX,EAX
        00403937    75 04           JNZ SHORT shed.0040393D
        00403939    59              POP ECX
        0040393A    58              POP EAX
        0040393B  ^ EB DA           JMP SHORT shed.00403917   //返回继续
        .........................
        00403947    0148 0C         ADD DWORD PTR DS:[EAX+C],ECX
        0040394A    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
        0040394C    5F              POP EDI
        0040394D    5E              POP ESI
       0040394E    C3              RETN
         
        
        
        
        脚本内容:
        var addr
        sto        
        mov addr,esp       //ESP定律
        bphws addr,"r"
        run              
        bphwc  addr        //清除硬件访问断点
        sto                //单步一下来到oep
        mov addr,eip
        and addr, 0f00000
        add addr,3900      
        bp addr         
        run                //来到00403900
        bc addr  
        MSG "You get back it!"
        add addr,47   
        bp addr            
        run               //来到00403947   
        bc addr
        gpa "ExitProcess","kernel32.dll"  //获取ExitProcess的地址
        mov eax,$RESULT
        asm eip, "push 0"
        asm eip+5, "call eax"  
        run              //执行ExitProcess强行退出,这时得到的*.exe.exe文件就是我们原来的程序。

      
       四、总结
           感染该病毒的机器必须将扩展分区和移动硬盘中的染毒文件全部进行修复处理,系统盘ghost恢复一下就安全了。这个病毒的可恶之处就是把我辛辛苦苦从看雪论坛下载的exe文件都打包了,还好没有对rar文件下手,不幸中的万幸。大家得小心啊!(附件:修复脚本和病毒样本)

                                                                  天易love  
                                                                                                 2009-10-4


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
该驱动没有启动成功,惨遭我的蹂躏

2009-10-5 11:35
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
收藏 。。。。。。。。。。。。。。。顶
2009-10-5 11:36
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
就是BMW,山寨的熊猫烧香。
其实修复方法也算简单,不需要修复程序,病毒自己会帮修复:
用组策略禁止运行windows\\system32\\drivers\\*.exe文件运行,然后双击运行感染的文件,就会自动帮你修复了。不过这种方法也有局限性,比如drivers目录下的正常.exe文件也无法运行了。但是一般情况下不会放什么可执行文件到drivers目录下吧
2009-10-5 14:19
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
5
那个其实不是自动修复,是染毒程序把原程序释放出来执行,而你的组策略强奸了转移到driver下后想继续运行的病毒,使它搞不了破坏,却白白的释放出原程序。你的组策略学得不错。感谢指点!
2009-10-5 15:09
0
游客
登录 | 注册 方可回帖
返回
//