Métodos de Compresión para Propósitos Antiforenses

Body

La compresión permite al contenido de un archivo ser reducido en tamaño para propósitos de almacenamiento y transmisión. Los algoritmos de compresión analizan los archivos para determinar como el tamaño de un archivo puede ser reducido para su almacenamiento. Esta reducción se realiza analizando la frecuencia de datos en el archivo, y aplicando un algoritmo como los de deflación para zgip, PKZIP y WinZIP. No es difícil detectar archivos comprimidos, si embargo, muchas herramientas forenses no permiten un acceso directo hacia los archivos comprimidos durante una búsqueda, sin algún tipo de interacción previa.

Acceder a Archivos Comprimidos en Autopsy 4

Por defecto, Autopsy 4 reúne en una categoría de nombre “Archives”, a todos aquellos archivos los cuales ha identificado como un archivo“comprimido”. Siendo factible entonces utilizar la opción “Extract Files” o “Extraer Archivos”, para extraer el archivo hacia un directorio, para posteriormente abrirlo utilizando el visor adecuado.

Mencionar también, Autopsy 4 tiene la capacidad de indexar el contenido de los archivos comprimidos, de tal manera es factible luego realizar búsquedas dentro de estos.

Otro método antiforense es utilizar contraseñas para proteger los archivos comprimidos, lo cual añade otro reto al profesional forense de computadoras. Para este escenario también existen técnicas y herramientas específicas.

Fuentes:

https://www.autopsy.com/
https://en.wikipedia.org/wiki/List_of_archive_formats

Métodos de Codificación para Propósitos Antiforenses

Body

la codificación significa el contenido de un archivo es cambiando de alguna manera, la cual puede ser fácilmente revertida. Muchas veces se utiliza un simple mecanismo de codificación de nombre “ROT13”. (ROT significa Rotación y 13 significa los caracteres son rotados 13 veces). Si alguien ejecutase ROT13, el algoritmo tomará cada carácter proporcionado, y lo reemplazará con un carácter 13 valores delante de este. Por ejemplo, una letra “A” será reemplazada con la letra “N”. (La letra “B” inicia la cuenta como elemento 1). Sin embargo, si se debiera realizar una búsqueda a través de datos codificados, la búsqueda no encontraría datos relevantes, pues la expresión de búsqueda no decodificará ROT13, a menos se lo indique explícitamente.

Detectar Codificación

Para detectar la utilización de algún tipo de codificación , como ROT13, se necesitaría confiar en la firma de un archivo, si la extensión original se mantiene en el nombre del archivo. Sin embargo, ROT13 y algoritmos similares no dejan una firma estándar, y no existe una herramienta simple para detectar automáticamente su presencia. Esto no significa, sin embargo, detectar la codificación no pueda ser realizada. Si un análisis estático se realiza a los datos con un decodificador ROT13, y los datos se comparan con un lenguaje, la distribución debe mostrar ser uniforme por 13 lugares. ROT13 es especialmente popular para ocultar datos contenidos en llaves del registro de Windows.

Es factible encontrar en un archivo símbolos como “\”, “;”, o cualquier otro carácter no alfabético, un decodificador ROT 13 puede ayudar a resolver esto. ROT13 girará y reemplazará únicamente caracteres; espacios, slash, comas; y cualquier otro símbolo no alfabético permanece tal y como está en el archivo después de la codificación. Aunque esto no ayudará en la decodificación automática de los datos mientras se busca a través del disco, una vez se encuentren tales datos, se puede buscarlos subsecuentemente.

Muchas personas quienes intentan ocultar datos no utilizan ROT13; este comúnmente es utilizado para otros propósitos. Sin embargo, Microsoft tiene un cariño de hace muchísimos años por ROT13, de tal manera nunca se debe asumir no se utilizará un decodificador ROT13.

Fuentes:

https://en.wikipedia.org/wiki/ROT13
https://www.rot13.com/

Renombrar la Extensión del Archivo para propósitos Antiforenses

Body

De todos los métodos actuales para ocultar algo, el más común y fácil de detectar es el renombramiento de la extensión de un archivo. Esto puede implicar ya sea renombrar el nombre completo de archivo, o únicamente la extensión del archivo, de tal manera se pueda ocultar cual programa puede accederlo. Aunque ahora se puede detectar el renombramiento de un archivo utilizando una diversidad de técnicas automáticas, se debe ser consciente de su impacto en la investigación, especialmente si no se tiene el tiempo para ejecutar estas herramientas (aunque se debe hacer esto en cualquier investigación). Si se está realizando una investigación, y se es consultado para revisar documentos de únicamente un cierto tipo, los archivos renombrados podrían tener como consecuencia el pasar por alto evidencia contenida en estos.

Firmas de Archivos

Las firmas de los archivos permiten determinar cual aplicación ha sido utilizada para crear el archivo, sin importar la extensión o el nombre del archivo. Las firmas del archivo se compara con algún aspecto único del archivo, típicamente la cabecera o parte final del archivo, contra una base de datos de firmas relacionadas hacia una extensión. Una firma en este caso significa una porción única de datos existente en cierto tipo de archivo, lo cual indica cual programa puede accederlo. Por ejemplo, un archivo de imagen GIF siempre contendrá un “GIF8” en la cabecera del archivo. Muchas herramientas pueden ser utilizadas para determinar la firma, y algunas están incorporadas en herramientas forenses.

Comando File

El comando “file” de Linux puede devolver el tipo del archivo de acuerdo a una base de datos de firmas. La base de datos utilizada por “file” es llamada “magic” y se encuentra típicamente en Linux en un directorio definido. Es factible definir también la utilización de un archivo personalizado, lo cual permite al profesional forense definir firmas o extensiones para su investigación.

Para el siguiente ejemplo se ha copiado un archivo de imagen “JPEG” (extensión JPG), hacia un archivo del mismo nombre pero con extensión “DLL”.

$ cp Rosario-Liberti-Alfa-Romeo-33s-4-1200x628.jpg Rosario-Liberti-Alfa-Romeo-33s-4-1200x628.dll
$ file Rosario-Liberti-Alfa-Romeo-33s-4-1200x628.dll

El resultado de ejecutar el comando “file” sobre el archivo de extensión DLL, no únicamente revela información sobre se trata de un archivo de imagen “JPEG”, sino también proporciona aspectos adicionales del archivo, como su resolución, densidad, tamaño, creador, etc.

Entonces el nombre de archivo o su extensión, no afecta la capacidad del comando “file” para detectar el verdadero tipo.

Fuentes:

https://linux.die.net/man/1/file
https://en.wikipedia.org/wiki/File_(command)
https://www.garykessler.net/library/file_sigs.html

Introducción a las Técnicas Antiforenses

Body

Una técnica antiforense es cualquier cambio intencional o accidental, la cual pueda oscurecer, encriptar, u ocultar datos de las herramientas forenses. Muy pocas técnicas antiforenses funcionan de la manera esperada por un criminal. Muchos de ellos creen erróneamente al seguir algunas de las técnicas antiforenses, pueden ocultar completamente sus huellas. Al intentar hacerlo sin embargo, frecuentemente ayudan al profesional forense conozca donde buscar por evidencia. De hecho, un sospechoso o criminal quien intenta ocultar evidencia, realmente puedo fortalecer e incrementar las posibilidades de un profesional forense lo descubra.

La mayoría de herramientas utilizadas en la actualidad para el análisis forense, tienden a no confiar en los datos o verlos de la misma manera como era hecha, cuando el forense digital era un campo nuevo. Por ejemplo, las versiones anteriores de herramientas forenses de código abierto o comercial, podrían no estar en la capacidad de encontrar archivos debido a errores lógicos en la codificación, o simplemente por no incluir algún algoritmo o procedimiento para identificar técnicas antiforenses. Aunque muchos de los conceptos abarcados en el ámbito antiforense, deberían trabajar o funcionar como se espera, es mejor ser consciente de los inconvenientes presentados en esta área. .Esto también se debe tener en consideración al diseñas o crear herramientas propias.

Fuentes:

https://en.wikipedia.org/wiki/Anti-computer_forensics
http://www.forensicswiki.org/wiki/Anti-forensic_techniques

Los Servidores HTTP más Frecuentemente utilizados en Dominios GOB.PE

Body

En la actualidad interactuamos constantemente con el entorno web. En consecuencia, uno de los principales vectores de ataque contra los servidores serán sus servicios web, los cuales generalmente están expuestos de manera abierta y pública. En caso el escenario de evaluación implique probar la seguridad de una aplicación web, es fundamental también conocer la infraestructura subyacente a esta, y tratar de obtener conocimiento sobre las potenciales vulnerabilidades existentes en el servidor web. Pues en caso sea factible explotarlo, esto podría facilitar la explotación de una o varias aplicaciones web funcionando sobre esta infraestructura.

El propósito del proceso presentado, es conocer cual es el software más frecuentemente utilizado para implementar servidores web, en dominios GOB. PE o del Gobierno de la República del Perú.

Se ha realizado previamente la extracción de nombres de dominio GOB.PE desde Google, extracción de direcciones IP hacia las cuales resuelven los dominio, y realizado un escaneo utilizando la herramienta “Nmap”, con las opciones pertinentes. Lo cual trata de obtener información más profunda y precisa sobre el servicio, software y versión de aquello ejecutándose en el puerto descubierto.

Esta evaluación se hizo contra aproximadamente 170 direcciones IP. Los resultados del escaneo realizado se almacenaron en tres archivos, los cuales inician con el nombre “google/nmap_ip_dominios_gob_pe”. Estos formatos corresponden a las extensiones .nmap, xml, y .gnmap, cada corresponde a un formato diferente factible de ser generado con herramienta “Nmap”.

Utilizando la shell de Linux, se obtuvo un listado de los puertos TCP correspondientes a servicios http o https más comúnmente encontrados en servidores de dominios GOB. PE.

# grep “http” google/nmap_ip_dominios_gob_pe.nmap | tr -s “ ” | grep -i “open”

Para realizar el ordenamiento, se toma como base la información sobre los servidores web incluidos en el sondeo del sitio web de “Netcraft” del mes en curso.

En las siguientes imágenes se presenta en una primera columna un número, el cual corresponde al número de coincidencias para un servicio en particular. Luego se presenta el número del puerto en donde atiende el servicio. Dado el hecho pueden diferir los nombres de los servicios de un mismo proveedor, en cuanto a su versión, parche, módulos, etc, se presenta todo el listado para una mejor análisis. Adicionalmente tener en consideración algunos servicios no necesariamente exponen esta información, lo cual no está contabilizado.

Microsoft | 23 servidores

# grep “http” google/nmap_ip_dominios_gob_pe.nmap | tr -s “ ” | grep “open” -i “microsoft” | sort -n -r | uniq -c | sort -n -r

Nginx | 57 servidores

# grep “http” google/nmap_ip_dominios_gob_pe.nmap | tr -s “ ” | grep “open” -i “nginx” | sort -n -r | uniq -c | sort -n -r

Apache HTTPD | 121 servidores

# grep “http” google/nmap_ip_dominios_gob_pe.nmap | tr -s “ ” | grep “open” -i “apache httpd” | sort -n -r | uniq -c | sort -n -r

Y como un adicional, algo relacionado a la nube

Con esta información obtenida sobre el tipo de servicio, software del servidor, versiones, módulos, extensiones, etc; resaltar también la posibilidad de obtener indicios sobre el sistema operativo subyacente, sea este un Windows, Linux u otro tipo; un atacante puede iniciar una investigación manual sobre vulnerabilidades, buscando en primera instancia en los sitios web de los proveedores de dicho software por reportes de vulnerabilidades, luego puede buscar también en sitios webs conteniendo bases de datos sobre vulnerabilidades y códigos de explotación.

Fuentes:

https://news.netcraft.com/archives/category/web-server-survey/
https://httpd.apache.org/
https://www.iis.net/
https://www.nginx.com/

Los 10 Puertos TCP y Servicios más Comunes en Servidores GOB.PE

Body

Uno de los principales elementos de información útil para definir y afinar un posterior ataque, es conocer cuales puertos en estado abierto existen en los sistemas bajo evaluación, así como también conocer cuales servicios y versiones están funcionando sobre cada uno de estos puertos.

Un escaneo de puertos es el proceso mediante el cual, se intenta establecer un gran cantidad de conexiones hacia una dirección IP y puertos (o varias direcciones IP y puertos), con el propósito de conocer principalmente cuales puertos están en estado abierto, aunque también se podría conocer otros estados del puerto, como “cerrado” o “filtrado”.

El propósito del proceso presentado, es conocer cuales son los diez puertos TCP más comunes, encontrados en las direcciones IP correspondientes a dominios GOB.PE o del gobierno de la República del Perú.

Como lo sugiere la metodología, se debe escanear la dirección IP y no el nombre del host, razón por la cual lo primero fue obtener las direcciones IP hacia las cuales resuelven los dominios GOB.PE. Esto se realizó mediante solicitudes reiteradas para consultar el registro A de los dominios GOB.PE. Al final del presente escrito se muestra un enlace donde se detalla como realizar un proceso similar.

Al momento de realizar está evaluación se identificaron 169 direcciones IP.

Se utiliza “Nmap” para realizar los escaneos. Nmap es una utilidad libre y open source para el descubrimiento y auditoría de seguridad en redes. Permite realizar diversas tareas, como descubrir host en funcioamiento, puertos abiertos, información sobre versiones de servicio, información sobre el sistema operativo entre otra diversa información relevante.

El escaneo con la herramienta “Nmap”, se realizó contra los 1,000 puertos TCP más populares. Para conocer cuales son estos 1,000 puertos TCP se utiliza el siguiente comando.

# nmap –-top-ports 1000 localhost -v -oG -

Los resultados del escaneo realizado se almacenaron en tres archivos, los cuales inician con el nombre “google/nmap_ip_dominios_gob_pe”. Estos formatos corresponden a las extensiones .nmap, xml, y .gnmap, cada corresponde a un formato diferente factible de ser generado con herramienta “Nmap”.

Utilizando la shell de Linux, se obtuvo un listado de los diez puertos TCP más comúnmente encontrados en servidores GOB.PE.

# grep open google/nmap_ip_dominios_gob_pe | grep tcp | cut -d “/” -f 1 | sort -n -r | uniq -c | sort -n -r

Cantidad : Puerto TCP

162 : 80
126 : 443
65 : 21
63 : 25
60 : 110
59 : 995
58 : 143
57 : 993
53 : 465
49 : 53

Puerto TCP 80

Puerto TCP 443

Puerto TCP 21

Puerto TCP 25

Puerto TCP 110

Puerto TCP 995

Puerto TCP 143

Puerto TCP 993

Puerto TCP 587

Puerto TCP 465

En resumen, en los servidores correspondientes a dominios GOB.PE, los puertos TCP y servicios más comunes corresponden a; 80 HTTP, 443 HTTPS, 21 FTP, 25 SMTP, 110 POP3, 995 POP3S, 143 IMAP, 993 IMAPS, 465 SMTPS y 53 DOMAIN.

Fuentes:

https://nmap.org/
http://www.reydes.com/d/?q=Obtener_un_Listado_de_los_Servidores_de_Nomb…
https://www.iana.org/assignments/service-names-port-numbers/service-nam…

Vulnerabilidades de Transferencia de Zona en Servidores DNS de Dominios GOB.PE

Body

Una transferencia de zona es un tipo de transacción DNS. Es uno de los muchos mecanismos disponibles para los administradores repliquen la base de datos DNS entre un conjunto de servidores DNS. Un cliente solicita un transferencia de zona hacia un servidor esclavo o servidor secundario, solicitando datos desde un servidor maestro, algunas veces denominado como servidor primario. La porción de la base de datos replicada es una zona.

Los datos contenidos en una zona DNS pueden ser muy sensibles desde el aspecto de la seguridad operacional. Esto es porque la información, como los nombres de host del servidor, pueden ser de conocimiento público, lo cual podría ser utilizado para descubrir información sobre la organización, e incluso proporcionar una superficie de ataque mayor.

El objetivo del siguiente procedimiento, es intentar una transferencia de zona desde los servidores DNS de dominios GOB.PE. Estos dominios se encontraron a través de una búsqueda realizada a través de Google.

Para realizar una transferencia de zona es factible utilizar el comando “dig”. El primer requisito es conocer cuales son los servidores DNS del dominio en consulta, pues esos servidores DNS serán contra los cuales se realizarán las peticiones de transferencia de zona.

# dig +short -t NS www. munichugay. gob. pe
# dig +short -t NS www. munichugay. gob. pe @ns3.digitalocean.com.
# dig +short -t AXFR www. munichugay. gob. pe @ns3.digitalocean.com.
# dig +short -t AXFR www. munichugay. gob. pe @ns2.digitalocean.com.
# dig +short -t AXFR www. munichugay. gob. pe @ns1.digitalocean.com.
# dig +short -t AXFR www. munichugay. gob. pe @munichugay.gob.pe

La transferencia de zona inicia con un cliente enviando una consulta (opcode 0), con un tipo especial de consulta “AXFR” (valor 252). Es por ello se lo define utilizando la opción “-t” del comando “dig”. El resultado obtenido indica la transferencia de zona no ha sido exitosa.

Se utiliza un archivo de nombre “google/dominios_gob_pe”, conteniendo aproximadamente 175 dominios GOB.PE, se intentará automatizar la transferencia de zona contra cada servidor DNS de cada dominio.

Se utiliza el comando “dig” dentro de un bucle “for”, para obtener en primera instancia los servidores de DNS de un único dominio GOB.PE. Luego se procede a utilizar otro comando “dig” dentro de otro bucle “for”, para hacer una transferencia de zona de un único dominio contra sus respectivos servidores DNS. Completado el bucle “for” interior, se continúa con el siguiente dominio GOB.PE, hasta finalizar con todos ellos.

# for domino in $(cat google/dominios_gob_pe); do echo -e “Transferencia de Zona para $dominio\r”; dig +short -t NS $dominio > /tmp/servidoresdns.txt; for servidordns in $(cat /tmp/servidoresdns.txt); do echo -e “DNS: $servidordns”; dig +short $dominio -t AXFR @$servidordns; done; done

Al momento de realizar la presente publicación, de los aproximadamente 175 dominios GOB.PE evaluados, se obtuvieron transferencias de zona exitosas para 5 dominios.

Dominio 1

Dominio 2

Dominio 3

Dominio 4

Dominio 5

De lo anteriormente expuesto; un atacante puede explotar una mala configuración en los DNS permitiendo transferencias de zona. Algunos servidores DNS externos podrían devolver una lista de direcciones IP o nombres de hosts válidos. Bajo ciertas condiciones, podría incluso ser posible obtener datos de la zona sobre la red interna de la organización. Cuando esto tiene éxito, un atacante conocerá información valiosa sobre la topología de la red de la organización, incluyendo información sobre servidores particulares, y sus roles dentro de la estructura de tecnologías de la información, además de posiblemente información sobre los sistemas operativos funcionando en la red.

Fuente:

https://en.wikipedia.org/wiki/DNS_zone_transfer
http://capec.mitre.org/data/definitions/291.html

Obtener un Listado de los Servidores de Nombres de Dominios GOB.PE

Body

Un servidor de nombres es un servicio de red el cual proporciona respuestas a consultas adecuadamente realizadas. Esencialmente traduce desde algo con significado para los seres humanos. Un ejemplo de un servidor de nombres, es el componente servidor de Sistema de Nombres de Dominio (DNS). La función más importante de los servidores DNS, es traducir (resolver) nombres de dominio y nombres de host; hacia algo fácilmente recordable para los seres humanos; hacia sus correspondientes direcciones IP.

Desde la perspectiva de la etapa de reconocimiento o captura de información; correspondiente a un Hacking Ético o Pruebas de Penetración; el servidor de nombres puede almacenar información muy relevante para conocer más profundamente el entorno bajo evaluación; como direcciones IP, servidores de correo electrónico, nombres de dominio, subdominios, etc.

El propósito del siguiente procedimiento realizado, es analizar la posibilidad de automatizar la obtención de los servidores de nombres para un conjunto de dominios GOB.PE; correspondientes al gobierno de la república del Perú.

Los dominios GOB.PE están almacenados en un archivo de nombre “dominios_gob_pe”.

La primera acción implica obtener un listado de únicamente dominios, razón por la cual se elimina la cadena de texto “www” de todos ellos, para luego ordenarlos y eliminar los dominios duplicados. Para esto se utiliza el comando “cut”, seleccionando los tres últimos campos, tomando como criterio de separación de campo el símbolo “.” punto.

# cat google_gob_pe | cut -d “.” -f 2,3,4 | sort | uniq

La herramienta “dig” permite interrogar SServidores de Nombres DNS. Realiza consultas DNS y muestra las respuestas devueltas desde los servidores de nombres consultados. Para este caso, se están utilizando los servidores de nombres por defecto del proveedor del servicios de Internet.

La opción “+short” del comando dig, proporcionar una respuesta breve, pues lo normal es mostrar una respuesta verbosa. La opción “-t” define el tipo de registro a consultar, para este caso el registro NS.

# dig +short -t NS gob .pe

Para obtener un listado de los servidores DNS para los dominios GOB. PE, se utiliza el comando “for” el cual permite realizar bucles, así se recorrerán todas las líneas contenidas en el archivo de nombre “dominios_gob_pe”. Sobre cada dominio se ejecuta el comando “dig”, para mostrar luego el nombre del dominio consultado y sus correspondientes servidores DNS.

# for dominio in $(cat dominios_gob_pe); do echo -e “Servidores de Nombres de $dominio”; dig +short -t NS $dominio; echo -e “\r”; done

Es factible también obtener la información sobre los servidores de nombres DNS para estos dominios GOB. PE, pero desde servidores Whois.

Whois es una protocolo de consulta y respuesta, el cual es ampliamente utilizado para consultar bases de datos, las cuales almacenan los usuarios registrados y asignados de un recurso de Internet, como un nombre de dominio, un bloque de direcciones IP, o un sistema autónomo, pero también es utilizado para compartir otra información. El protocolo almacena y entrega el contenido de la base de datos en un formato factible de ser leído.

Para el caso de la república del Perú, el servidor whois tiene por nombre “kero.yachay.pe”. A este servidor Whois se realizan las consultas.

# whois -h kero.yachay.pe gob .pe

Entre la información devuelta por el servidor Whois se muestran líneas “Name Server:”, en las cuales se encuentran los servidores de nombres para el dominio consultado. Adicionalmente otra información como ya se ha mencionado.

Notar la información presentada al momento de recibir la respuesta; la cual versa sobre no se está autorizado para acceder o consultar la base de datos Whois a través del uso de procesos electrónicos, los cuales sean de alto volumen y automáticos.

Para analizar esto se realizó una prueba con un conjunto reducido de dominios, utilizando un comando muy similar al de la consultas DNS.

# for dominio in $(cat dominios_gob_pe); do echo -e “Servidores de Nombres de $dominio”; whois -h kero.yachay.pe $ dominio | grep “Name Server:”; echo -e “\ŗ”; done

Las consultas a los dominios consultados, aproximadamente diez, fueron exitosas.

Pero al realizar la consulta de todos los dominios GOB. PE, los cuales son casi 180. El servidor Whois consultado presenta un mensaje de error; el cual versa sobre haber excedido la cuota de consultas.

# for dominio in $(cat /tmp/testdns.txt); do echo -e “Servidores de Nombres de $dominio”; whois -h kero.yachay.pe $ dominio | grep “Name Server:”; echo -e “\ŗ”; done

Según el análisis realizado la cuota de consultas máxima es de 50. Pero este bloqueo no supera los 60 minutos o una hora. Luego de lo cual sería factible reiniciar las consultas restantes. Se sugiere respetar estos mensajes presentados sobre las restricciones al utilizar el servicio Whois, y así evitar algún inconveniente futuro.

Fuentes:

https://en.wikipedia.org/wiki/Name_server
https://en.wikipedia.org/wiki/WHOIS

Obtener un Listado de Dominios GOB.PE desde Google

Body

El motor de búsqueda Google permite realizar búsquedas complejas o avanzadas, esto utilizando sus directivas y operadores. Estos permiten afinar las búsquedas y sus correspondientes resultados. Existe un termino en idioma inglés “Google Hacking”, el cual es un termino acuñado para expresar la capacidad de utilizar el motor de búsqueda Google en al ámbito del Hacking Ético, siendo factible de esta manera encontrar archivos conteniendo nombres de usuarios, directorios sensibles, servidores vulnerables, páginas conteniendo portales de login, entre otra gran diversidad de información relevante para el ámbito de la seguridad.

El propósito del procedimiento a continuación detallado, es obtener un listado de todos los dominios “gob.pe”, es decir los dominios de páginas relacionadas al gobierno de la república del Perú, los cuales han sido indexados por el motor de búsqueda Google.

Las páginas conteniendo los resultados devueltos por Google, ya han sido descargadas y guardadas. Mencionar también, Google es poco amigable cuando se trata de automatizar las búsquedas, presentando sus mensajes los cuales versan sobre haber detectado tráfico inadecuado, y consecuentemente solicitando resolver un captcha.

La búsqueda utiliza directiva “site” del motor de búsqueda Google; esta directiva permite restringir los resultados a un dominio; esto es seguido de la cadena de texto “gob.pe”.

site:gob.pe

Los resultados presentados por el motor de búsqueda Google, cumplen el criterio requerido.

Se guardaron los resultados en cuatro archivos de extensión html. Pero dado el hecho facilita el procedimiento utilizar archivos en texto en lugar de archivos con fuente html, se utiliza el comando “w3m”. Este comando es un navegador web basado en texto y un paginador, consecuentemente es factible utilizarlo para interpretar fuente html y convertirlo a su respectiva representación textual.

# w3m gobpe0[1-4].html >gobpe.txt

El archivo de nombre “gobpe.txt”, contiene todos los resultados guardados en un único archivo de texto interpretado.

Se ejecuta el primer comando para obtener todas las lineas conteniendo la cadena de texto “.gob.pe”.

# grep “\.gob.pe” gobpe.txt

Se eliminan de todas las líneas la cadena de texto “https://”. Con el propósito de únicamente obtener dominios o subdominios.

# grep “\.gob.pe” gobpe.txt | sed -e ‘s/https:\/\///’

Lo siguiente es únicamente obtener las líneas sin un símbolo “/” al final de la misma. Para esto se utiliza el comando “cut”.

# grep “\.gob.pe” gobpe.txt | sed -e ‘s/https:\/\///’

Se procede a ordenar y eliminar las líneas duplicadas, utilizando los comandos “sort” y “uniq”.

# grep “\.gob.pe” gobpe.txt | sed -e ‘s/https:\/\///’ | cut -d “/” -f 1 | sort | uniq

Dado el hecho en los resultados aún se encuentran líneas con espacios en blanco, el símbolo arroba, o el símbolo dos puntos, se utiliza nuevamente el comando grep de manera inversa, para mostrar las líneas no conteniendo estos criterios.

# grep “\.gob.pe” gobpe.txt | sed -e ‘s/https:\/\///’ | cut -d “/” -f 1 | sort | uniq | grep -v “@” | grep -v “>” | grep -v “:”

Finalmente se obtiene un listado de todos los dominios y subdominios indexados por el motor de búsqueda Google. El resultado del anterior comando se guarda en el archivo de nombre “google_gob_pe”.

# column google_gob_pe

Con esta información se pueden aplicar diversas técnicas correspondientes a la etapa de reconocimiento o captura de información de Hacking Ético o Pruebas de Penetración.

Recordar nuevamente, Google no es muy amigable cuando se detecta tráfico peculiar. Se sugiere tener cautela.


Fuentes:

https://support.google.com/websearch/answer/35890?hl=en
https://www.google.com/advanced_search
https://www.exploit-db.com/google-hacking-database

Entender al Interprete SQL

Body

Uno de los principales aspectos sobre las vulnerabilidades de inyección SQL el cual se debe entender, es como aprovecharse del interprete SQL. Un interprete toma entradas y actúa inmediatamente sobre estas, sin deber pasar a través de los procesos tradicionales de programación, como enlazado, compilación, depuración o ejecución. Por ejemplo, un interprete SQL tiene un rol importante cuando se busca por la información de un usuario. El siguiente código es parte de DVWA (Damn Vulnerable Web Application).

$getid = “SELECT first_name, last_name FROM users WHERE user_id = ‘$id’”;

Cuando se busca por la información de un usuario basándose en su ID de usuario, se realizan los siguientes pasos:

1. El usuario ingresa el ID de usuario dentro del recuadro de búsqueda en la aplicación web para luego hacer clic en el botón “Submit”.

2. La aplicación web almacena la entrada del usuario dentro de la variable de nombre “id”.

3. La aplicación construye una sentencia SQL constituida de código previamente escrito y la variable “id”, la cual fue utilizada en la petición HTTP.

4. La aplicación web envía esta consulta SQL adecuadamente formada hacia la base de datos, donde es ejecutada por el interprete SQL.

5. Los resultados son devueltos hacia la aplicación web, mostrando el nombre y apellido del usuario en el navegador web.

La sintaxis simplificada de la consulta SQL ejecutada cuando se busca el ID de usuario “3” es:

$getid = “SELECT first_name, last_name FROM users WHERE user_id = ‘3’”;

Esto es SQL básico. Se seleccionan simplemente las columnas de nombre “first_name” y “last_name” de la tabla de nombre “users”, los cuales tienen el valor “3” en la columna de nombre “user_id”.

Toda la consulta es tratada como una variable de nombre “getid”, la cual es pasada hacia el interprete, esta es la razón el porque las dobles comillas están presentes antes y después de la sentencia SELECT, terminando con un símbolo de punto y coma.

El usuario proporciona el termino de búsqueda, para luego ser almacenado dentro de comillas simples como una variable. Esta luego se incluye dentro de la sentencia SQL con comillas simples al inicio y al final, pero antes de las dobles comillas finales de la sentencia.

Fuentes:

http://www.dvwa.co.uk/
https://www.w3schools.com/sql/