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 [...] \\ \\ 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 \\ \\ ------ ------------- -------- ----------- \\ 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 \\ {{:arabia-saudita:hosts_arabia_saudi.png?400|}} 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 \\ {{ :arabia-saudita:hosts_gobierno_as.tar.gz |}}