Tech News Blog > Web 2.0 > Instant Messaging > Emesene – Scoprire le Password di un Account [code]
Emesene – Scoprire le Password di un Account [code]
10 maggio 2009 alle 15:46 by Andrea Cirioni  - 1 Commento

Citando una frase famosa…

Il mondo è bello perché è vario

possiamo dire con certezza che anche nell’informatica è così; grazie alla nascita di sistemi operativi liberi è stato possibile sviluppare migliaia di applicativi adatti alle più svariate esigenze.

heyyou

Nel mondo dell’ Instant messaging, le applicazioni non si sono risparmiate; tra queste oggi voglio parlarvi di Emesene:

client di messaggistica istantanea abbastanza famoso, presente di default nei repository di Ubuntu, deve la sua notorietà alla semplicità d’uso e alla grafica accattivante. Soffre però di noto problema che a mio parere lo penalizza molto dal lato della sicurezza, i dati di login sono memorizzati in formato esadecimale in una path prestabilita.

Vediamo come decriptare e scoprire le password degli account:

1) Compilazione dei sorgenti:

a. Copiare e incollare il seguente code in un file con estensione ‘.c’ (senza apici), per compatibilità con il tutorial chiamatelo ‘emesene_pwdfinder.c’ :

/*
Author: darkjoker
Program: Emesene password finder

Emesene saves users passwords in
/home/username/.config/emesene1.0/users.dat
in hexadecimal value.
This program only read that file and
convert the password.
Have fun ^^

*/

#include <stdio.h>
#include <string.h>
#define PRE_USR		"/home/"
#define POST_USR	"/.config/emesene1.0/users.dat"

int str2hex (char* str)
{
int c, dec = 0, exp = 1;
int l = 0;
while (l < 2)
{
if ((str [l] > 64) && (str [l] < 71))
c = str [l] - 55;
else
c = str [l] - 48;

if (exp)
dec += c*16;
else
dec += c;
exp--;
l++;
}
return dec;
}

int main (int argc, char* argv [])
{
if (argc != 2)
{
printf ("\n[?] Emesene password finder"
"\n[?] Author: darkjoker"
"\n[?] Usage : %s <email address>"
"\n\n", argv [0]);
return -1;
}

FILE *usr = popen ("whoami", "r");
char user [15];
int c, o, l;
fgets (user, sizeof (user), usr);
fclose (usr);
user [strlen (user)-1] = '';

char path [34+strlen (user)];
strcpy (path, PRE_USR);
strcat (path, user);
strcat (path, POST_USR);

FILE *emesene = fopen (path, "r");
char str [100];

while (!feof (emesene))
{
fgets (str, sizeof (str), emesene);
if (!strncmp (argv [1], str, strlen (argv [1])))
{
char passwd [strlen (str)];
c = 0;
o = 0;
l = 0;
while (c < strlen (str))
{
if (str [c] == ':')
o++;
if (o == 1)
{
if (str [c] != ':')
{
passwd [l] = str [c];
l++;
}
}
c++;
}
passwd [l] = '';
c = 0;
char ch [2];
printf ("\n[+] Email    : %s\n[+] Password : ", argv [1]);
while (c < strlen (passwd))
{
ch [0] = passwd [c];
ch [1] = passwd [c+1];
printf ("%c", (char) str2hex (ch));
c += 2;
}
printf ("\n\n");
return 0;
}
}
printf ("\n[-] Password not found.\n\n");
return 0;
}

N.B.: il codice va indentato per bene.

.b Aprire il terminale e compilare l'eseguibile con il seguente comando:

gcc emesene_pwdfinder.c -o emesene_pwdfinder

2) Avvio dell'eseguibile e find della password:

./emesene_pwdfinder  <email_account>

L'output del programma sarà simile a questo:
schermata-ciriocirio-laptop-scrivania


Aggiungi commento

Una sola risposta : “ Emesene – Scoprire le Password di un Account [code] ”

  1. 1
    AleXThEBesT :

    Ma io sulla scrivania dovrei fare crea documento e poi file vuoto? Io ho fatto così ho incollato quello che dovevo incollare poi l’ho rinominato… Ma poi dal terminale digitando gcc emesene_pwdfinder.c -o emesene_pwdfinder esce scritto
    gcc: emesene_pwdfinder.c: No such file or directory
    gcc: no input files
    Come posso fare?

Lascia un Commento

XHTML: Puoi usare questi tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>