Banner 1

BUSCANDO NÚMEROS DE CUENTA EN DISCOS DUROS

Este pareser ser uno de los ultimos post de eduardo, esperemos que no sea asi.

-------------------------------------------------------------------------------------------------

Hoy vamos a hablar de cómo buscar lo siguiente en un disco duro robado:

- passwords
- números de cuenta
- números de tarjeta de crédito
- información personal (direcciones, números de teléfono, ...)

En general, buscaremos información de la que podamos sacar un cierto beneficio económico. No nos interesa para nada coleccionar documentos de word, ni mails por los que no nos darían un miserable céntimo, ni tampoco los videos porno que tenga el tío en su PC, por muy entretenido que resulte.

Primero, desde linux, podemos extraer todos los strings del disco duro haciendo esto: strings /dev/sda > strings.txt, y ahora simplemente vamos buscando lo que nos interesa. Para ello, contamos con la ayuda de egrep que, dada una expresión regular, nos buscará patrones coincidentes.

Por ejemplo, podemos buscar números de teléfono así:


egrep "\b[0-9]{3}.[0-9]{2}.[0-9]{2}.[0-9]{2}\b" strings.txt


Que nos devolverá todos los números del tipo 976.66.88.11, con un espacio antes y después. A partir de esta expresión regular, podemos buscar cosas similares, por ejemplo separando con guiones o bien agrupando los números de otra forma. Sirva de ejemplo:


egrep "\b9[0-9]{2}[-|.][0-9]{2}[-|.][0-9]{2}[-|.][0-9]{2}\b" strings.txt


Que buscaría números separados por un guión o por un punto y agrupados como antes. Además, dado que todos (creo) empiezan por 9, le he metido uno como primer dígito, para optimizar la búsqueda. Otra posible forma de buscar sería mirar los strings tfno y teléfono.

Para buscar direcciones de mail, lo más sencillo es intentar encontrar los strings hotmail.com y gmail.com, que son los más probables. A partir de ahí, encontraremos todos los demás.

Y para passwords, pues más de lo mismo: buscamos passwd, password, contraseña y otros strings que se nos ocurran.

Ahora vamos a algo más interesante: intentaremos localizar números de cuenta y de tarjetas de crédito.

Los patrones son muy fáciles de encontrar. En el caso de las visas, bastaría con modificar el algoritmo que en su día vimos en este artículo

Para los números de cuenta, hay que tener en cuenta que tienen el siguiente formato:

XXXX-OOOO-DD-CCCCCCCCCC

Donde:

XXXX: entidad de la cuenta. Para entidades de España tenéis un listado completo aquí.

OOOO: oficina de la cuenta
DD: dígitos de control
CCCCCCCCCC: número de cuenta.

El número de cuenta se suele descomponer a su vez en TT-CCCCCC-DD, que quiere decir TIPO + CUENTA + DIGITOS-DE-CONTROL.

Los dígitos de control se pueden calcular dado el resto de datos y, para que nadie se queje, he programado una función en php que hace esta validación para nosotros. No es muy bonita ni muy rápida, pero funciona:

function validarCCC($entidad, $oficina, $dig1, $dig2, $tipo, $cta, $dig3){

$dc1 = calcularDC1($entidad, $oficina);
if ($dc1 != $dig1) return ERROR_CCC_NOK;

$dc2 = calcularDC2($tipo, $cta, $dig3);
if ($dc2 != $dig2) return ERROR_CCC_NOK;
}


//calculamos el primero de los dígitos de control

function calcularDC1($entidad, $oficina)
{

$d=0;

$d4=$entidad%10;
$d3=($entidad/10)%10;
$d2=($entidad/100)%10;
$d1=($entidad/1000)%10;
$d += $d1*4 + $d2*8 + $d3*5 + $d4*10;

$d4=$oficina%10;
$d3=($oficina/10)%10;
$d2=($oficina/100)%10;
$d1=($oficina/1000)%10;
$d+= $d1*9 + $d2*7 + $d3*3 + $d4*6;

$d%=11;
if ($d==0) return $d;

$d = 11-$d;

if ($d==10) return 1;
else return $d;
}


// calculamos el segundo de los dígitos de control

function calcularDC2($tipo, $cta, $dig3)
{

$d=0;
$d10=$dig3%10;
$d9=($dig3/10)%10;
$d8=$cta%10;
$d7=($cta/10)%10;
$d6=($cta/100)%10;
$d5=($cta/1000)%10;
$d4=($cta/10000)%10;
$d3=($cta/100000)%10;
$d2=($tipo%10);
$d1=($tipo/10)%10;

$d= $d1*1 + $d2*2 +
$d3*4+ $d4*8+ $d5*5+ $d6*10+ $d7*9+ $d8*7 +
$d9*3 + $d10*6;

$d%=11;
if ($d==0) return $d;
$d = 11-$d;

if ($d==10) return 1;
else return $d;

}


Como veis, con la ayuda de las expresiones regulares y de unas llamaditas a funciones de validación, podemos extraer información muy interesante de un disco duro.

Y quien nunca haya guardado números de visa o passwords en un txt que tire la primera piedra ...

Saludos y hasta pronto,

FUENTE Y AGRADECIMIENTOS:

http://hacking-avanzado.blogspot.com/2009/10/computer-forensics-buscando-numeros-de.html

Ojala siga el blog :D

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay