1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 409 docx

11 85 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 93,88 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Không phải là em phủ nhận công lao của những người đã viết tut , nhưng ý của em ở đây là tut không được nhiều và các cao thủ có lẽ là cũng chưa share hết kiến thức cho mọi người.. Bạn sẽ

Trang 1

mov eax,dtc

add [esi].dtC,eax

mov eax,dtd

add [esi].dtD,eax

add edi,64

sub edx,64

jnz hashloop

; phase IV · results

mov ecx,4

@@: mov eax,dword ptr [esi]

xchg al,ah

rol eax,16

xchg al,ah

mov dword ptr [esi],eax

add esi,4

loop @b

mov esi,ptMD5Result

invoke wsprintfA,ptBuffer,addr

szMD5Format,[esi].dtA,[esi].dtB,[esi].dtC,[esi].dtD

ret

procMD5hash endp

FF proc uses ebx ecx,dta,dtb,dtc,dtd,x,s:byte,t ; a = b + ((a + F(b,c,d) + x + t) << s )

mov eax,dtb

mov ebx,dtc

mov ecx,dtd

; F(x,y,z) = (x and y) or ((not x) and z)

Trang 2

and ebx,eax

not eax

and eax,ecx

or eax,ebx

add eax,dta

add eax,x

add eax,t

mov cl,s

rol eax,cl

add eax,dtb

ret

FF endp

GG proc uses ebx ecx,dta,dtb,dtc,dtd,x,s:byte,t ; a = b + ((a + G(b,c,d) + x + t) << s)

mov eax,dtb

mov ebx,dtc

mov ecx,dtd

; G(x,y,z) = (x and z) or (y and (not z))

and eax,ecx

not ecx

and ecx,ebx

or eax,ecx

add eax,dta

add eax,x

add eax,t

mov cl,s

rol eax,cl

add eax,dtb

Trang 3

ret

GG endp

HH proc uses ebx ecx,dta,dtb,dtc,dtd,x,s:byte,t ; a = b + ((a + H(b,c,d) + x + t) << s)

mov eax,dtb

mov ebx,dtc

mov ecx,dtd

; H(x,y,z) = x xor y xor z

xor eax,ebx

xor eax,ecx

add eax,dta

add eax,x

add eax,t

mov cl,s

rol eax,cl

add eax,dtb

ret

HH endp

II proc uses ebx ecx,dta,dtb,dtc,dtd,x,s:byte,t ; a = b + ((a + I(b,c,d) + x + t) << s)

mov eax,dtb

mov ebx,dtc

mov ecx,dtd

; I(x,y,z) = y xor (x or (not z))

not ecx

or eax,ecx

xor eax,ebx

add eax,dta

Trang 4

add eax,x

add eax,t

mov cl,s

rol eax,cl

add eax,dtb

ret

II endp

end start

Bạn hảy tạo file !!com.bat như sau:

ml /c /coff /Cp ASMmd5hasher.asm

rc RCmd5hasher.rc

link /subsystem:windows /libpath:c:\masm32\lib ASMmd5hasher.obj

RCmd5hasher.res

@del ASMmd5hasher.obj

@del md5hasher.exe

@del RCmd5hasher.res

@ren ASMmd5hasher.exe md5hasher.exe

File RCmd5hasher.rc như sau:

#include "/masm32/include/resource.h"

100 DIALOGEX MOVEABLE PURE LOADONCALL DISCARDABLE 117,

108, 208, 39, 0

STYLE DS_SYSMODAL | 0x0004 | DS_CENTER | WS_CAPTION |

WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED

CAPTION "md5 hasher"

FONT 8, "MS Sans Serif", 700, 0 /*FALSE*/

BEGIN

EDITTEXT 102, 24,2,182,12, ES_AUTOHSCROLL | ES_LEFT, , 0

EDITTEXT 103, 24,14,182,12, ES_AUTOHSCROLL | ES_READONLY | ES_LEFT, , 0

PUSHBUTTON "&about", 101, 168,26,38,13, 0, , 0

LTEXT "text :", -1, 6,3,17,9, SS_LEFT, , 0

Trang 5

LTEXT "hash :", -1, 2,15,21,8, SS_LEFT, , 0

END

200 ICON MOVEABLE PURE LOADONCALL DISCARDABLE

"ICOMD5HASHER.ICO"

Đó là 3 file cần thiết để tạo ra file exe

Traslated : MD5 Hash Cracking !

Lời nói đầu :

Hầu hết tâm lý của mọi người là rất ngại đọc tut bằng tiếng Anh (vì nó không phải

là ngôn ngữ mẹ đẻ của chúng ta mà ! :tongue: ) Nhưng lại ngặt một nỗi , tut tiếng Việt thì lại không sâu và nhiều bằng các tut nước ngoài , vì các Cracker VN đâu có chịu ngồi viết tut để share knowledge với mọi người , chỉ mình mình khám phá , mình mình biết , và mình mình enjoy Không phải là em phủ nhận công lao của những người đã viết tut , nhưng ý của em ở đây là tut không được nhiều và các cao thủ có lẽ là cũng chưa share hết kiến thức cho mọi người Em nói vậy mong các cao thủ đừng giận và quan tâm giùm em :wassat:

Hôm qua em online , thấy tut của chị Nini cũng khá hay nên em xin cáo lỗi chị Nini (cùng anh Còm :) ), mạn phép translate ra cho mọi người cùng học

Hihi… Em cũng rất ngại đọc tut bằng Tiếng Anh Đọc nhiều mệt muốn xỉu ! :happy: Nhưng sau khi xỉu rồi thì thấy knowledge mà mình vừa thu được cũng đáng để lần sau lại xỉu tiếp đây chứ ! Hihiiiiiiii… :)

Author : Kevin

Translated by : Hoadongnoi

Date : 04/11/2004

Tôi không nhận thấy rằng chương trình MD5 của Slarty có thể trở thành một vấn

đề cho mọi người dễ hiểu Giả sử bạn đang sử dụng Windows , mở Windows Brinary (thanks to Enjoi ) Bạn sẽ thấy một prompt như dưới đây :

Code:

MD5 Cracker by Slarty

Windows Brinary by Enjoi

Cách sử dụng : h <plaintext> - tạo hash

Trang 6

Cách sử dụng : c <hash> <độ dài tối thiểu > <độ dài tối đa> - cố gắng để Crack Điều này đúng hơn là không phức tạp , Nhưng để cho những điều đó trở nên sáng

tỏ hơn cho những ai chưa hiểu , tôi sẽ break nó xuống cho bạn

Flag h sẽ chỉ cho chương trình biết cách để tạo ra một MD5 hash của một từ

plaintext mà bạn đã chỉ định ở trên Ví dụ : nếu bạn muốn MD5 hash tạo ra một giới hạn chiều dài “password” bạn sẽ phải gõ như sau :

Code:

C:\Documents and Settings\Owner>"C:\Documents and

Settings\Owner\Desktop\Tutoria

ls\Programs\md5.exe" h password

5f4dcc3b5aa765d61d8327deb882cf99

Như các bạn đã thấy ở trên 5f4dcc3b5aa765d61d8327deb882cf99 là MD5 của bạn trong term “password”

Bây giờ hãy nói là bạn muốn crack một MD5 hash Để thực hiện được điều này , chúng ta sẽ sử dụng một Flag “c” (c để crack … not cocaine ) Cú pháp của một lệnh để crack chương trình này như sau :

Code:

md5.exe c <hash> <độ dài tối thiểu> <độ dài tối đa>

Hiển nhiên , bạn sẽ thay thế : <hash> cho MD5 mà bạn muốn crack , <minlen> cho

độ dài tối thiểu của ký tự của chương trình mà bạn cần crack và <maxlen> cũng cho độ dài tối đa của chương trình đó Chiều cao <maxlen> , chiều dài là những là những cái mà chương trình sẽ dùng để chạy Về cơ bản , bạn sẽ tự hỏi độ dài , độ ngắn của một password là như thế nào ?

Ví dụ để minh hoạ cho điều này : chúng ta sẽ sử dụng một shorter term (cái này dùng cho mục đích là crack time ) Term mà chúng ta sẽ sử dụng là “pass” (ở trên , trong MD5 nó là : “1a1dc91c907325c69271ddf0c944bc72”) Cú pháp cho câu lệnh này như sau :

Code:

C:\Documents and Settings\Owner>"C:\Documents and

Settings\Owner\Desktop\Tutoria

ls\Programs\md5.exe" c 1a1dc91c907325c69271ddf0c944bc72 1 4

Vâng , bây giờ thì chúng ta đã biết được chính xác chiều dài của một từ khoá là gì Tôi hoàn toàn có thể đưa 4 vào như là một độ dài lớn nhất Tuy nhiên bạn sẽ

không thể biết được chiều dài của pass là gì , nó sẽ an toàn hơn khi giả thiết một maxlen là 12 hoặc một cái gì đó tương tự cũng thuộc loại này ….Mặc dù bạn luôn

Trang 7

đặt chiều dài tối thiểu của bạn bằng 1 :D

Trong khoảng thời gian ¼ giây bạn đã crack xong Và bạn sẽ nhìn thấy nó như sau :

Code:

Bạn đã nhập vào :1a1dc91c907325c69271ddf0c944bc72

Ký tự trắng :36

Bạn đã nhập vào :1a1dc91c907325c69271ddf0c944bc72

Ký tự trắng :36

Bạn đã nhập vào :1a1dc91c907325c69271ddf0c944bc72

Ký tự trắng :36

Bạn đã nhập vào :1a1dc91c907325c69271ddf0c944bc72

Ký tự trắng :36

GOT IT after only 911140 guesses!

pass

C:\Documents and Settings\Owner>

Một khi cracker MD5 hash không làm dictionary bị tấn công , hoặc bất cứ cái gì như vậy Nó đơn giản là đang ước chừng chuỗi random này cho đến khi nó tìm thấy một cái thích hợp :tongue: :D

Nó phụ thuộc vào cái strength của pass và tốc độ của bộ xử lý của bạn Để crack được nó bạn có thể mất nhiều phút , nhiều giờ , nhiều ngày , nhiều tuần, nhiều tháng , hoặc nhiều năm :)

Phù ! Xong ! :((

Enjoy ! :)

Hoadongnoi(REA)

MD5 Source Code

Code:

#ifndef _MD5_H

#define _MD5_H

#ifndef uint8

#define uint8 unsigned char

#endif

#ifndef uint32

Trang 8

#define uint32 unsigned long int

#endif

typedef struct

{

uint32 total[2];

uint32 state[4];

uint8 buffer[64];

}

md5_context;

void md5_starts( md5_context *ctx );

void md5_update( md5_context *ctx, uint8 *input, uint32 length );

void md5_finish( md5_context *ctx, uint8 digest[16] );

#endif /* md5.h */

Code:

/*

* RFC 1321 compliant MD5 implementation

*

* Copyright (C) 2001-2003 Christophe Devine

*

* This program is free software; you can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2 of the License, or

* (at your option) any later version

*

* This program is distributed in the hope that it will be useful,

* but WITHOUT ANY WARRANTY; without even the implied warranty of

* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the

* GNU General Public License for more details

*

* You should have received a copy of the GNU General Public License

* along with this program; if not, write to the Free Software

* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */

#include <string.h>

Trang 9

#include "md5.h"

#define GET_UINT32(n,b,i) \

{ \

(n) = ( (uint32) (b)[(i) ] ) \

| ( (uint32) (b)[(i) + 1] << 8 ) \

| ( (uint32) (b)[(i) + 2] << 16 ) \

| ( (uint32) (b)[(i) + 3] << 24 ); \

}

#define PUT_UINT32(n,b,i) \

{ \

(b)[(i) ] = (uint8) ( (n) ); \

(b)[(i) + 1] = (uint8) ( (n) >> 8 ); \

(b)[(i) + 2] = (uint8) ( (n) >> 16 ); \

(b)[(i) + 3] = (uint8) ( (n) >> 24 ); \

}

void md5_starts( md5_context *ctx )

{

ctx->total[0] = 0;

ctx->total[1] = 0;

ctx->state[0] = 0x67452301;

ctx->state[1] = 0xEFCDAB89;

ctx->state[2] = 0x98BADCFE;

ctx->state[3] = 0x10325476;

}

void md5_process( md5_context *ctx, uint8 data[64] ) {

uint32 X[16], A, B, C, D;

GET_UINT32( X[0], data, 0 );

GET_UINT32( X[1], data, 4 );

GET_UINT32( X[2], data, 8 );

GET_UINT32( X[3], data, 12 );

GET_UINT32( X[4], data, 16 );

Trang 10

GET_UINT32( X[5], data, 20 );

GET_UINT32( X[6], data, 24 );

GET_UINT32( X[7], data, 28 );

GET_UINT32( X[8], data, 32 );

GET_UINT32( X[9], data, 36 );

GET_UINT32( X[10], data, 40 );

GET_UINT32( X[11], data, 44 );

GET_UINT32( X[12], data, 48 );

GET_UINT32( X[13], data, 52 );

GET_UINT32( X[14], data, 56 );

GET_UINT32( X[15], data, 60 );

#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))

#define P(a,b,c,d,k,s,t) \

{ \

a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \

}

A = ctx->state[0];

B = ctx->state[1];

C = ctx->state[2];

D = ctx->state[3];

#define F(x,y,z) (z ^ (x & (y ^ z)))

P( A, B, C, D, 0, 7, 0xD76AA478 );

P( D, A, B, C, 1, 12, 0xE8C7B756 );

P( C, D, A, B, 2, 17, 0x242070DB );

P( B, C, D, A, 3, 22, 0xC1BDCEEE );

P( A, B, C, D, 4, 7, 0xF57C0FAF );

P( D, A, B, C, 5, 12, 0x4787C62A );

P( C, D, A, B, 6, 17, 0xA8304613 );

P( B, C, D, A, 7, 22, 0xFD469501 );

P( A, B, C, D, 8, 7, 0x698098D8 );

P( D, A, B, C, 9, 12, 0x8B44F7AF );

P( C, D, A, B, 10, 17, 0xFFFF5BB1 );

P( B, C, D, A, 11, 22, 0x895CD7BE );

P( A, B, C, D, 12, 7, 0x6B901122 );

Ngày đăng: 03/07/2014, 18:20

TỪ KHÓA LIÊN QUAN