[BEZ] cviceni ?! pogchamp

Odpovědět
Uživatelský avatar
Destroyer
VCKLAN TEAM
Příspěvky: 812
Registrován: čtv 13. srp 2009 13:50:15
Bydliště: Praha 12
Kontaktovat uživatele:

cviceni ?! pogchamp

Příspěvek od Destroyer » stř 11. bře 2015 4:13:28

nakonec jsem misto bruteforce pouzil slovnikovy utok... ale ne ledajaky slovnik .... hodne velke kladivo
https://crackstation.net/buy-crackstati ... ionary.htm

Kód: Vybrat vše

du -h /media/mirek/Data/crackstation.txt
15G	/media/mirek/Data/crackstation.txt

Kód: Vybrat vše

#include <stdio.h>
#include <string.h>
#include <openssl/evp.h>
 
int main(int argc, char *argv[]){
	    int i = 1; 
while (1)
{
	    unsigned char text[64] = "";
	    char hashFunction[] = "sha256";  // zvolena hashovaci funkce ("sha1", "md5" ...)
	   	
	   	if (fgets(text,128,stdin) == NULL)
	   		break;
		strtok(text, "\n");
	    
	    EVP_MD_CTX ctx;  // struktura kontextu
	    const EVP_MD *type; // typ pouzite hashovaci funkce
	    unsigned char hash[EVP_MAX_MD_SIZE]; // char pole pro hash - 64 bytu (max pro sha 512)
	    int length;  // vysledna delka hashe
	   
	    char buffer1[2];
	    char buffer2[2];
	   
	    /* Inicializace OpenSSL hash funkci */
	    OpenSSL_add_all_digests();
	    /* Zjisteni, jaka hashovaci funkce ma byt pouzita */
	    type = EVP_get_digestbyname(hashFunction);
	   
	    /* Pokud predchozi prirazeni vratilo -1, tak nebyla zadana spravne hashovaci funkce */
	    if(!type) {
	      printf("Hash %s neexistuje.\n", hashFunction);
	      exit(1);
	    }
	   
	    /* Provedeni hashovani */
	    EVP_DigestInit(&ctx, type);  // nastaveni kontextu
	    EVP_DigestUpdate(&ctx, text, strlen(text));  // zahashuje text a ulozi do kontextu
	    EVP_DigestFinal(&ctx, hash, (unsigned int *) &length);  // zjiskani hashe z kontextu

	    // nacteme si vysledek do bufferu
	    sprintf(buffer1,"%02x", hash[0]);
	    sprintf(buffer2,"%02x", hash[1]);
	    // porovname ho na shodu
	    if (!strcmp(buffer1,"aa") && !strcmp(buffer2,"bb"))
	    {
		    printf("Vyhercem se stava:\n%s\nna radku %d\n\nVypis v hexadecimalni podobe:\n",text,i);
		    for(i = 0; i < strlen(text); i++)
		    {
	    			printf("%02x", text[i]);
	  		}
	  		printf("\n");
  			printf("Hash je:\n");
			for(i = 0; i < length; i++){
				printf("%02x", hash[i]);
			}
			printf("\n");
		    return 0;  
	    }
	    i++;
}
  exit(0);
}


Uživatelský avatar
Destroyer
VCKLAN TEAM
Příspěvky: 812
Registrován: čtv 13. srp 2009 13:50:15
Bydliště: Praha 12
Kontaktovat uživatele:

zomg

Příspěvek od Destroyer » stř 11. bře 2015 6:02:56

Kód: Vybrat vše

$ gcc hashfunction.c -Wall -lcrypto 
$ ./a.out < bez.sh Vyhercem se stava:
;, 	:
na radku 1

Vypis v hexadecimalni podobe:
3b2c20093a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Hash je:
aabb6dcdec50b69f6f556ab70bc80bdb8334c0a7

:smile:

Kód: Vybrat vše

$ ./a.out < /media/mirek/Data/crackstation.txt | tee result2
Vyhercem se stava:
00017(Dears限定盤)
na radku 177445
Vypis v hexadecimalni podobe:
3030303137ffffffefffffffbcffffff884465617273ffffffe9ffffff99ffffff90ffffffe5ffffffaeffffff9affffffe7ffffff9bffffffa4ffffffefffffffbcffffff89000000000000000000000000000000000000000000000000000000000000000000000000000000
Hash je:
aabb7fed5fc67b5d88ae1ea1b3908b07bb0e7494

Uživatelský avatar
Maple
VCKLAN TEAM
Příspěvky: 676
Registrován: úte 01. zář 2009 7:40:17
Bydliště: Babákova 2152, Praha 4
Kontaktovat uživatele:

Re: cviceni ?! pogchamp

Příspěvek od Maple » stř 11. bře 2015 18:31:25

Kód: Vybrat vše

#include <stdlib.h>
#include <openssl/evp.h>
#include <string.h>
 
int main(void) {

  //unsigned char ot[1024] = "abcdefghijklmnopqrstuvwxyz0123";  	// znamy text
  unsigned char st[1024];    									// sifrovany text znameho textu
  //unsigned char key[EVP_MAX_KEY_LENGTH];  						// klic pro sifrovani
  //unsigned char iv[EVP_MAX_IV_LENGTH] = "inicial. vektor";  	// inicializacni vektor
  const char cipherName[] = "RC4";
  const EVP_CIPHER * cipher;
 
  OpenSSL_add_all_ciphers();
  /* sifry i hashe by se nahraly pomoci OpenSSL_add_all_algorithms() */
  cipher = EVP_get_cipherbyname(cipherName);
  if(!cipher) {
    printf("Sifra %s neexistuje.\n", cipherName);
    exit(1);
  }
 
  /* Prevod hexa do ST */
  unsigned char hash[EVP_MAX_MD_SIZE] = "f7c909843838bc7eb2bb174ef0f98eb42a178983690011a785369e2ad8d6";
  //sscanf(hash,"%02hhx",st);
  int i,k=0,j=0;
  for (i = 0; i<strlen((char *)hash);i++)
  {
  	sscanf( hash[k] , "%02hhx", st[j] );
  	k += 2;
  	j++;
  }
  printf("%s\n",st);

  //int otLength = strlen((const char*) ot);
  //int stLength = strlen((const char*) st);
  //int tmpLength = 0;



  exit(0);
}

Odpovědět