Herramientas de usuario

Herramientas del sitio


arabia-saudita:descubrir-hosts-gobierno-con-recon-ng

1º mediante google con gov site:.as y otras búsquedas nos hacemos con las urls del gobierno

2º Crear un fichero sin las https: ni http: ni www ni la / final

3º He creado medios.txt con unos 29 dominios saudíes

recon-ng: Es una herramienta de recolección de información con una interfaz similar a metasploit

recon-ng

[recon-ng][default] > workspaces create arabia_saudi

workspaces load arabia_saudi

[recon-ng][arabia_saudi] > marketplace install recon/domains-hosts/hackertarget

[recon-ng][arabia_saudi] > modules search

Recon

-----

recon/domains-contacts/whois_pocs

recon/domains-hosts/hackertarget


[recon-ng][arabia_saudi] > modules load recon/domains-hosts/hackertarget


[recon-ng][arabia_saudi][hackertarget] > options


Manages the current context options


Usage: options <list|set|unset> […]


El módulo cargado lo que hará será intentar obtener todos los subdominios de los dominios o subdominios dados


[recon-ng][arabia_saudi][hackertarget] > options (si le das a tab salen los parámetros de options)


list set unset


[recon-ng][arabia_saudi][hackertarget] > options set SOURCE spa.gov.sa


SOURCE ⇒ spa.gov.sa


[recon-ng][arabia_saudi][hackertarget] > options list


Name Current Value Required Description


  1. —– ————- ——– ———–

SOURCE spa.gov.sa yes source of input (see 'info' for details)


[recon-ng][arabia_saudi][hackertarget] > run (ejecuta el módulo cargado)

muestra subdominios con sus respectivas ips

Pero en en fichero medios.txt teníamos muchos dominios, no podemos ir de uno en uno, es mucho tiempo y repetir las mismas líneas muchas veces, para ello salimos de la interfaz con el comando back 2 veces y utilizamos la opción -r de recon-ng y le damos el fichero con los comandos, pero para crear el fichero con los comandos hay que hacer un script que repita los comandos que hemos puesto en la interfaz, veamos:

#! /bin/bash
 
# Crea el archivo commands
echo "workspaces load arabia_saudi" > commands
echo "modules load recon/domains-hosts/hackertarget" >> commands
 
# Iterar sobre cada dominio en medios.txt
while read domain; do
  echo "options set SOURCE $domain" >> commands
  echo "run" >> commands
done < medios.txt

le damos permisos de ejecución con chmod +x script.sh, ejecutamos con ./script.sh y crea el fichero commands


después hacemos:


recon-ng -r /home/usuario/archivos/arabia_saudi/commands (tiene que ser ruta completa, no puede ser ruta relativa porque da error)


Bien, ahora estamos en la interfaz, vemos que tarda un poco porque está haciendo bastantes cosas (lo que haríamos manualmente, repetir mucho)


Ahora de lo que nos damos cuenta es que al hacer desde el prompt


[recon-ng][arabia_saudi] > show hosts (no entra el resultado en el buffer de la terminal / consola)

Bien, para solucionarlo volcamos el resultado en un fichero haciendo lo siguiente:

spool start /home/usuario/arabia_saudi/volcado.txt

[*]Spooling output to '/home/usuario/arabia_saudi/volcado.txt'.

a partir de ahora todos los resultados de los comandos se guardarán en el fichero volcado.txt

ponemos:

[recon-ng][arabia_saudi] > show hosts

[recon-ng][arabia_saudi] > spool stop

[*]Spooling stopped. Output saved to '/home/usuario/arabia_saudi/volcado.txt'.
[recon-ng][arabia_saudi] >

En volcado.txt si hacemos:

cat volcado.txt | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | wc -l
850

Pero no son todos esos hosts porque hay algunos dominios o subdominios apuntando a mismas ips

Si hacemos:
cat volcado.txt | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq | wc -l
675

Ahí si que se obtiene el número total de hosts físicos. Tal vez pueda interesar donde están físicamente y de alguna manera dibujar un mapa de donde están. Si leíste los anteriores posts recordarás como obtener ubicaciones a partir de la base de datos GeoLite2-City, así que primero creamos un fichero con todas las ips y después un script que itere sobre cada una, se lo de al comando y éste vaya añadiendo la ubicación a un fichero

cat volcado.txt | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq > ips_servidores_gobierno_sa.txt

#! /bin/bash
 
 
# Iterar sobre cada ip en ips_servidores_gobierno_sa.txt
while read ip; do
  echo "$(mmdblookup --file ../GeoLite2-City.mmdb --ip $ip | grep -oE '[0-9]{1,3}\.[0-9]{6}' | tr '\n' ',' | sed 's/,$/\n/')" >> ubicaciones_hosts_gobierno_as.txt
done < ips_servidores_gobierno_sa.txt

chmod +x coordenadas_ips_as.sh
./coordenadas_ips_as.sh

ahora ya tenemos las ubicaciones de los 675 servidores del gobierno y podemos usar por ejemplo qgis para verlas en el mapa

cat ubicaciones_hosts_gobierno_as.csv | sort | uniq 17.372400,78.437800
21.484900,39.192000
21.997400,79.001100
24.094900,38.062900
24.686900,46.722400
24.998600,44.989200
25.020600,37.264300
26.284600,50.208000
26.433600,50.111600
29.971300,40.202700
33.663700,117.174300
37.751000,97.822000
39.046900,77.490300
41.259100,95.851700
43.631900,79.371600
50.118700,8.684200
51.496400,0.122400
52.389100,4.656300

Todos, los 666 están concentrados en 18 ubicaciones, y hay 9 que no tienen ninguna ubicación asignada

hosts_gobierno_as.tar.gz

arabia-saudita/descubrir-hosts-gobierno-con-recon-ng.txt · Última modificación: 2025/01/14 13:30 por anonimo