- Fotografías (creo que era mas que obvio...).
- Un editor hexadecimal.
- Un interprete de perl.
Antes que nada vamos a explicar que es lo que vamos a hacer:
- Determinar la fecha y hora exacta en que se realizo la fotografía.
- Determinar de que cámara se realizo la fotografía.
- Determinar si la imagen se bajo de internet o es la fotografía original.
Las cámaras fotografías por estándares agregan la fecha y hora exacta en que se realizo la fotografía, y también por lo regular agregan la serie de la cámara (todos estos datos en la sección de EXIF), lo cual nos facilita determinar exactamente de que cámara se tomo la fotografía, de este modo se le puede seguir el rastro a la cámara hasta dar con el autor y a decir verdad en muchos sitios web comienzan a implementar esto, lo cual es un problema de privacidad para el autor pues se puede simplemente buscar la serie y localizar todas las fotografías en base de datos tomadas con esa cámara, para un buen investigador esto puede ser de ayuda para resolver un crimen o localizar a una persona, pero para una persona mal intencionada puede ser una gran arma.
Un detalle que encontró un amigo escritor de este blog (Nosferatu) es que muchas webs con upload de fotografías editan las secciones donde se colocan los datos de la cámara, igual que muchas otras aplicaciones (como photoshop) lo cual nos puede ayudar a determinar si la imagen fue alterada o es la original (obviamente esos campos también se pueden falsificar pero en muchos casos pueden ser una pista muy útil), estos datos por lo regular se encuentran en los offset 0x7A - 0x6e7, ahora procedamos, extraemos los datos en ese rango y procedemos a extraer las cadenas que tenga:

De momento podemos terminar que esa foto fue tomada con una NIKON D300S, con firmware: 1.01, además sabemos que fue tomada el 10 de Agosto del 2010 a las 20:42:17, no tengo idea de que signifique el texto ENEAS ahí pero no nos interesa de momento.
Ahora nos interesa saber exactamente que cámara fue la que lo tomo, en el caso de este modelo el numero de serie seria de 7 números:

Algo mas que hay que resaltar es que algunas webs (como photobuket) no eliminan estos campos de las imágenes, de modo que podemos bajar las fotografías y extraer toda información que encontremos sobre la cámara.
Ahora sin mas un pequeño script en perl que ya nos automatiza el trabajo:
Ahora nos interesa saber exactamente que cámara fue la que lo tomo, en el caso de este modelo el numero de serie seria de 7 números:

Algo mas que hay que resaltar es que algunas webs (como photobuket) no eliminan estos campos de las imágenes, de modo que podemos bajar las fotografías y extraer toda información que encontremos sobre la cámara.
Ahora sin mas un pequeño script en perl que ya nos automatiza el trabajo:
#!/usr/bin/perl
# By Xianur0
# http://hackingtelevision.blogspot.com
# Creditos: Nosferatu
use Switch;
$nombre_archivo = $ARGV[0];
open GESTOR,$nombre_archivo;
my $contenido = "";
while($linea = <GESTOR>) {
$contenido .= $linea;
}
$firmacamara = substr($contenido,122,1767);
$firmacamara =~ s/[^\w\d\s\.\,\-\:]/\n/g;
$firmacamara =~ s/\n.{0,3}\n/\n/g;
$firmacamara =~ s/\n+/\n/g;
@firmas = split(/\n/,$firmacamara);
print "Firma: \n\n";
foreach $firma (@firmas) {
print $firma."\n" if(length($firma)>3);
}
$prefijoserial = '';
switch(true) {
case { $firmacamara =~ /KODAK/i}
{
$prefijoserial = 'K';
print "Camara reconocida: Kodak";
}
}
while($contenido =~ /(\d{4}:\d{2}:\d{2}\s+\d{2}:\d{2}:\d{2})/g) {
$hora = $1;
print "Timestamp encontrado: ".$hora."\n\n";
@matches = ();
}
while($contenido =~ /[^\w\d\.\-\:\s]([\w\d]{7,13})[^\w\d\.\-\:\s]/g) {
$serial = $1;
next if($serial !~ /^[A-Z\d]+$/);
print "Posible Serial de la camara: ".$serial."\n\n" if($serial[0] == $prefijoserial || $prefijoserial == '');
}
By Nosferatu & Xianur0
0 comentarios:
Publicar un comentario en la entrada