Recopilar Información sobre un Host utilizando ping (Windows)

Body

Ping verifica la conectividad a nivel de IP con otra computadora TCP/IP, enviando mensajes Echo Request (ICMP). Se muestra la recepción con mensajes Echo Reply, además de tiempos de ida y retorno. Ping es el principal comando TCP/IP utilizado para solucionar problemas de conectividad, accesibilidad, y resolución de nombres. Utilizado sin parámetros este comando muestra su ayuda.

Se puede también utilizar este comando para evaluar ya sea el nombre de la computadora y su dirección IP. Si el ping a la dirección IP tiene éxito, pero hacer lo mismo con el nombre de la computadora no la tiene, entonces se podría tener un problema en la resolución de nombres. En este caso asegurarse el nombre de la computadora especificada, puede ser resuelta a través de un archivo host local utilizando consultas DNS, o a través de técnicas para la resolución de nombres NetBIOS.

Se ejecuta el comando ping sin opción, lo cual muestra un resumen de sus opciones.

C:\>ping

Se sugiere ejecutar ping con privilegios de administrador. Así mismo para detener su ejecución e factible utilizar la combinación de teclas “CTRL + c”.

C:\>ping 66.22 .13.14

La opción “-f” especifica los mensajes Echo Request son enviados con la opción “No fragmentar” en la cabecera IP ajustada con 1 (disponible únicamente con IPv4). El mensaje Echo Request no puede ser fragmentado por los encaminadores en la ruta hacia el destino. Este parámetro es útil para solucionar problemas de PMTU o Unidad Máxima para Transmisión.

La opción “-l”, especifica la longitud en bytes, del campo de Datos en los mensajes Echo Request. Por defecto es 32. El tamaño máximo es 65,527.

C:\> ping -f -l 1500 66.22 .13.14

La respuesta “Packets needs to be fragmented but DF set”, indica la trama es muy grande para estar en la red, y necesita ser fragmentada. El paquete no fue enviado, pues se utiliza la opción “-f” con el comando ping, devolviendo este error.

Se pueden intentar diferentes valores hasta encontrar el tamaño máximo de la trama. Para el presente ejemplo es de 1404. Lo cual indica 1404 bytes son el tamaño máximo de la trama sobre esta máquina en red.

C:\> ping -f -l 1404 66.22 .13.14

En lo referente a descubrir aquello lo cual ocurre cuando el TTL expira. Cada trama en la red tienen un TTL definido. Si el TTL alcanza el valor de cero, el encaminador descarta el paquete. Este mecanismo previene la pérdida de paquetes.

La opción “-i” define el TTL o tiempo de vida. Siendo el máximo valor TTL de 255.

C:\> ping -i 3 66.22 .13.14

El mensaje “TTL expired in transit” significa el encaminador descarta las tramas porque el TTL ha expirado (alcanzó cero).

Se pueden ir modificado los valores de la opción “-i” hasta obtener un ping exitoso. Para el presente ejemplo ese valor es de 13 saltos. Esto implica el valor TTL es de 13

C:\> ping -i 13 66.22 .13.14

Con estos procedimientos es posible recopilar información sobre un host, utilizando el comando ping, como su dirección IP, contabilizar los satos, y valor del tamaño máximo de la trama permitida en la red.

Fuentes:

https://docs.microsoft.com/en-us/windows-server/administration/windows-…

Recopilar Información de los Empleados desde LinkedIn utilizando theharvester

Body

theHarvester es una herramienta simple de utilizar, poderosa, y efectiva, diseñada para ser utilizada en las etapas previas de una prueba de penetración o evaluaciones de equipo rojo. Utiliza recopilación de inteligencia desde fuentes abiertas, para ayudar a determinar la superficie de amenaza externa de la compañía en Internet. La herramienta obtiene correos electrónicos, nombres, subdominios, direcciones IPs, y URLs, utilizando múltiples fuentes de datos públicos.

Se ejecuta theHarvester con la opción “-h”, lo cual muestra un mensaje de ayuda.

$ theHarvester - h

Ahora se ejecuta la herramienta para obtener información de los empleados relacionados con una organización o empresa desde LinkedIn.

LinkedIn es la red profesional más grande del mundo. Se puede utilizar LinkedIn para encontrar el trabajo o internado correcto, conectar y fortalecer relaciones profesionales, además de aprender los conocimientos necesarios para tener éxito en una profesión.

La opción “-d” define el nombre de la compañía o dominio a buscar.

La opción “-l” lista el número de los resultados producto de la búsqueda, por defecto es de 500.

La opción “-d” define la fuente donde se realizará la búsqueda. Para propósitos de la presente demostración se define “linkedin”.

$ theHarvester -d presidencia .gob. pe -l 100 -b linkedin

Los resultados presentados por theHarvester se dividen en dos secciones. La primera corresponde a los usuarios encontrados en LinkedIn. Aquí se utiliza el motor de búsqueda Google, específica la búsqueda de usuarios en LinkedIn.

La segunda sección corresponder a enlaces de LinkedIn encontrados.

Mencionar también es factible definir la opción “-b linkedin_links”. Especifica la búsqueda de usuarios en LinkedIn para el dominio en evaluación (Utiliza el buscador Google)

Es importante recordar, como profesionales en Hacking Ético y Pruebas de Penetración es necesario corroborar todos los resultados obtenidos por las herramientas.

Información similar podría ser obtenida realizando la búsqueda “site:linkedin.com presidencia .gob .pe”, en el motor de búsqueda Google

Los resultados obtenidos por theHarvester incluyen algunos falsos positivos, es decir no corresponden a empleados directamente relacionados con el dominio buscado.

Consecuentemente es factible realizar otra búsqueda directamente en Google, la cual se ajuste mejor a nuestros requerimientos; como por ejemplo “site:linkedin.com presidencia de la república del perú”

Algunos de los resultados obtenidos con esta búsqueda manual, también han sido obtenidos por la herramienta theHarvester, en su sección “Enlaces de LinkedIn Encontrados”.

Fuentes:

https://github.com/laramies/theHarvester
https://www.linkedin.com/help/linkedin/answer/a548441/what-is-linkedin-…-?lang=en

Determinar el Sistema Operativo utilizando Censys

Body

Censys crea y mantiene conjuntos de datos altamente indexados con la capacidad de ser buscados, el cual está dirigido a profesionales en seguridad. El inventario sobre hosts públicos, hosts virtuales, y certificados, ayudan en los esfuerzos de hacer los sistemas de cara hacia Intenet, y el Internet en general más seguro y protegido.

Al momento de realizar la presente publicación no es necesario registrarse en Censys para poder realizar esta búsqueda. Aunque se sugiere registrarse para aprovechar otras funcionalidades.

En la página principal de Censys ingresar el dominio a consultar. Asegurarse “Hosts” esté definido. Para luego hacer clic en el botón de nombre “Search”, para realizar la búsqueda.

Si Censys ha registrado previamente información sobre el host buscado, se presentará un resumen de la información recopilada sobre el host, como su dirección IP; proveedor de servicio, ciudad y país, puertos, abiertos, servicio, certificado digital, etc.

Al hacer clic sobre la dirección IP. Censys presentará toda la información recopilada sobre el Host buscado.

Es importante resaltar la fecha de última actualización de los datos. La cual se muestra en la parte inferior de la dirección IP del host.

En la pestaña “Summary” o Resumen, se detalla información básica, como el Sistema Operativo, Red, Encaminamiento, y Protocolos.

Según Censys el Sistema Operativo subyacente del host es Microsoft Windows.

Adicionalmente donde se ubica la información del puerto 443/TCP, se puede obtener información adicional para corroborar el sistema operativo. Este puerto ejecuta un servicio HTTPS, a través del cual se expone la siguiente información sobre el software, Microsoft IIS 10.0. Microsoft Windows, y Microsoft ASP.NET.

En base a la información obtenida desde la documentación oficial en el sitio web de Microsoft. IIS 10.0 es la más reciente versión de IIS, el cual se entrega con Windows 10 y Windows Server 2016.

Consecuentemente se puede inferir, la versión del sistema operativo subyacente del host es Windows Server 2016 o una versión posterior.

Como en todo proyecto de Hacking Ético o Prueba de Penetración, esta información sobre el sistema operativo debe ser corroborada desde diversas fuentes, utilizando otras técnicas y herramientas, con el propósito de obtener la información más precisa, para continuar con etapas posteriores.

Fuente:

https://support.censys.io/hc/en-us
https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/ne…

Instalar el Navegador Tor en Kali Linux

Body

El propósito del encaminamiento cebolla era tener una forma de utilizar Internet con la mayor privacidad posible, y la idea era encaminar el tráfico a través de múltiples servidores, además de encriptarlo en cada paso del camino. Esta es la explicación sencilla de cómo funciona Tor en la actualidad.

Desde su nacimiento en los años noventa, el encaminamiento cebolla fue concebido para basarse en una red descentralizada. La red necesitaba ser operada por entidades con intereses y suposiciones de confianza, además el software necesitaba ser libre y abierto para maximizar la transparencia y descentralización.

Primero se procede a actualizar la información sobre los paquetes en Kali Linux.

$ sudo apt update

Primero se necesita instalar el “Lanzador del Navegador Tor”, utilizado el gestor de paquetes de Kali Linux.

$ sudo apt tor torbrowser-launcher

Luego se ejecuta el “Lanzador de Navegador Tor”. Su propósito es facilitar la instalación y uso del Navegador Tor para los usuarios de Linux.

$ torbrowser-launcher

El “Lanzador de Navegador Tor” manejará todo lo siguiente:

  • Descarga e instala la más reciente versión del Navegador Tor en su lenguaje, y para la arquitectura de la computador, o lanza el Navegador Tor si ya ha sido instalado (El Navegador Tor será actualizado automáticamente)
  • Verifica la firma del Navegador Tor, para asegurar la versión descargada fue firmada criptográficamente por los desarrolladores de Tor, y no ha sido manipulada
  • Añade el “Navegador Tor” y los “Ajustes para Lanzador del Navegador Tor” hacia el menú del entorno de escritorio
  • Incluye perfiles AppArmor para hacer el compromiso del Navegador Tor no sea tan malo
  • Opcionalmente reproduce un sonido de módem cuando se apertura el Navegador Tor (Debido a Tor es tan lento)

Automáticamente se abrirá el Navegador Tor para conectarse hacia la Tor. Simplemente hacer clic en el botón de nombre “Connect”.

Utilizando el Navegador Tor es factible tener la experiencia de navegación más privada a nivel mundial.

Fuente:

https://www.torproject.org/
https://www.kali.org/docs/tools/tor/
https://github.com/micahflee/torbrowser-launcher

Recopilar Información desde el Motor de Búsqueda Baidu utilizando theharvester

Body

theHarvester es una herramienta simple de utilizar, poderosa, y efectiva, diseñada para ser utilizada en las etapas previas de una prueba de penetración o evaluaciones de equipo rojo. Utiliza recopilación de inteligencia desde fuentes abiertas, para ayudar a determinar la superficie de amenaza externa de la compañía en Internet. La herramienta obtiene correos electrónicos, nombres, subdominios, direcciones IPs, y URLs, utilizando múltiples fuentes de datos públicos.

Se ejecuta theHarvester con la opción “-h”, lo cual muestra un mensaje de ayuda.

$ theHarvester - h

Ahora se ejecuta la herramienta para obtener información sobre un dominio desde el motor de búsqueda Baidu.

La opción “-d” define el nombre de la compañía o dominio a buscar.

La opción “-l” lista el número de los resultados producto de la búsqueda, por defecto es de 500.

La opción “-d” define la fuente donde se realizará la búsqueda. Para propósitos de la presente demostración se define “baidu”, es decir el motor de búsqueda Baidu.


$ theHarvester -d thomson reuters. com -l 100 -b baidu

En este ejemplo no ha sido factible obtener direcciones IP, pero sí se han obtenido direcciones de correo electrónico correspondientes al dominio buscado.

Así mismo ha sido factible encontrar nombres de hosts o nombres de dominios y subdominios, en base al dominio buscado, desde baidu.

Anotación: Se pueden especificar diferentes fuentes de datos, como bing, dogpile, google, linkeding, twitter, virustotal, etc. Consultar la documentación oficial de theHarvester para obtener un listado completo de las fuentes.

Estos mismos dominios pueden ser obtenidos directamente desde Baidu, utilizando la directiva “site:thomson reuters. com”.

Fuentes:

https://github.com/laramies/theHarvester
http://www.baidu.com/

Descargar Archivos desde Youtube utilizando youtube-dl

Body

youtube-dl es un programa en linea de comando para descargar videos desde Youtube, además de algunos sitios más. Requiere el interprete Python versión 2.6, 2.7, o 3.2+, no siendo específico de plataforma. Puede funcionar en una Unix (Distribuciones GNU/Linux), sobre Windows o en macOS. Se publica para dominio público, lo cual significa puede modificarse, redistribuirse, o utilizarlo como se requiera.

Se ejecuta youtube-dl con la opción “-h”, lo cual muestra una ayuda.

$ youtube-dl -h

A continuación se muestran algunas opciones de Simulación.

La opción “-e” obtiene el título.

$ youtube-dl -e URL_Video

La opción “--get-id” obtiene el ID

$ youtube-dl --get-id URL_Video

La opción “--get-thumbnail” obtiene la URL de una miniatura

$ youtube-dl --get-thumbnail URL_Video

Se apertura la URL de la miniatura en el navegador web.

La opción “--get-description” obtiene la descripción del video

$ youtube-dl --get-description URL_Video

La opción “--get-duration” obtiene la longitud del video

$ youtube-dl --get-duration URL_Video

La opción “--get-format” obtiene el formato

$ youtube-dl --get-format URL_Video

Para descargar el video únicamente se debe definir la URL.

$ youtube-dl URL_Video

Finalizada la descarga del archivo en formato MP4, luego se descarga en formato m4a. Los dos formatos se fusionan en el formato MP4. Luego de lo cual se borran los archivos originales. Para mantener los videos utilizar la opción "-k".

Luego de descargado el video este puede ser visualizado con cualquier reproductor de video, o analizado para cualquier otro requerimiento.

Fuentes:

https://youtube-dl.org/
https://github.com/ytdl-org/youtube-dl/

Filtro de Paquetes Berkeley (BPF)

Body

Herramientas como tcpdump, Windump, y Wireshark, utilizan expresiones BPF para especificar aquello lo cual debe o no debe ser recolectado. Si no se especifica ningún filtro BPF, entonces las herramientas recolectarán todo el tráfico por defecto.

BPF es una tecnología utilizada en ciertos sistemas operativos de computadoras, para programas los cuales necesitan entre otras cosas, analizar tráfico de red (eBPF es una máquina virtual extendida BPF JIT en el kernel de Linux). Proporciona una interfaz en bruto para las capas de enlace, permitiendo a los paquetes en bruto de la capa de enlace ser enviados y recibidos. BPF está disponible en la mayoría de sistemas operativos tipo UNIX, y eBPF para Linux y Microsoft Windows. Adicionalmente, si el controlador para la interfaz de red soporta el modo promiscuo, permite la interfaz sea puesta en un modo en el cual todos los paquetes sobre la red pueden ser recibidos, incluso aquellos destinados hacia otros hosts.

BPF soporta el filtrado de paquetes, permitiendo un proceso del espacio de usuario suministre un programa para filtrado, el cual especifique cuales paquetes requiere recibir. Por ejemplo, un proceso Tcpdump puede requerir recibir únicamente los paquetes iniciando una conexión TCP. BPF retornará únicamente paquetes los cuales pasen el filtro suministrado por el proceso. Esto evita la copia de paquetes no requeridos desde el kernel del sistema operativo hacia el proceso, mejorando en gran medida el desempeño.

BPF es algunas veces utilizado para referirse únicamente al mecanismo para filtrado, en lugar de una interfaz completa. Algunos sistemas como Linux y Tru64 UNIX, proporcionan una interfaz en bruto hacia la capa de enlace de datos distinta de la interfaz en bruto BPF, pero utiliza los mecanismos de filtrado BPF para esta interfaz en bruto.

Fuentes:

https://en.wikipedia.org/wiki/Berkeley_Packet_Filter
https://www.tcpdump.org/
https://www.winpcap.org/windump/
https://www.wireshark.org/
http://alumni.cs.ucr.edu/~marios/ethereal-tcpdump.pdf

Controlar el Resultado Generado con Tcpdump

Body

Tcpdump es un programa para analizar paquetes de datos en red, el cual se ejecuta bajo una interfaz en linea de comandos. Permite al usuario mostrar paquetes TCP/IP y otros tipos de paquetes siendo transmitidas o recibidas sobre la red, en la cual la computadora está conectada. Tcpdump funciona en la mayoría de sistemas operativos tipo UNIX. Adicionalmente existe una versión para Windows de nombre WinDump.

Las siguientes son algunas de las opciones más comúnmente utilizadas para controlar los resultados generados con Tcpdump.

-c Esta opción únicamente obtiene X número de paquetes.

$ sudo tcpdump -c 20

-w archivo Esta opción escribe los resultados hacia “archivo”. Esto también podría ser realizado por la redirección de Entrada/Salida en la línea de comando. Sin embargo, la opción “-w” permite utilizar varias opciones afectando la manera en la cual los datos son emitidos.

$ sudo tcpdump -w /tmp/captura

-C tamañoarchivo Esta opción es similar a “-c”, excepto es gobernada por el “tamañoarchivo” en millones de bytes, en lugar del número de paquetes. Este parámetro funciona con el parámetro “-w”. Si el número de paquetes hace el archivo sean mayor a “tamañoarchivo”, entonces un nuevo archivo es creado utilizando el nombre en la opción “-w”, con un número iniciando con 1, e incrementándose hacia arriba.

$ sudo tcpdump -C 1 -w /tmp/captura2

-G segundos_rotar Esta opción rota el archivo de volcado especificado con la opción “-w” cada “segundos_rotar” segundos. Los archivos guardados tendrán el nombre especificado con “-w”, el cual incluye el formato del tiempo definido por strtime. Sino se especifica el formato del tiempo, cada nuevo archivo sobrescribirá el anterior. Si es utilizado en conjunción con la opción “-C”, los nombres del archivo serán tomarán la forma de “archivo(cuenta)”

$ sudo tcpdump -G 30 -w /tmp/captura3

-W Esta opción, cuando es utilizado con la opción “-C”, limitará el número de archivos, e iniciará a sobrescribir archivos desde el principio, creando un buffer “rotativo”. Cuando se utiliza en conjunción con la opción “-G”, limitará el número de archivos volcados rotados a crearse, saliendo cuando se alcance el límite.

$ sudo tcpdump -W 3 -C 2 -w /tmp/captura4

Fuentes:

https://www.tcpdump.org/

Resolver Números en Nombres o No Resolverlos utilizando Tcpdump

Body

Tcpdump imprime una descripción del contenido de los paquetes sobre una interfaz de red, coincidiendo con una expresión booleana; la descripción por defecto es precedida por una marca de tiempo, impresa en horas, minutos, segundos y fracciones de segundo desde la media noche.

Las siguientes son algunas de las opciones más comúnmente utilizadas para definir o no la resolución o no de números en nombres.

-n Esta opción le indica a tcpdump suprimir la resolución de una dirección IP. Resolver nombres genera más tráfico y requiere más tiempo. Aunque este ajuste puede incrementar el desempeño de tcpdump. Si se falla en obtener el nombre del host al mismo tiempo el tráfico de red, puede ser significativo si el host está utilizando tácticas como dns “fast flux”.

$ sudo tcpdump -n

“fast flux” de DNS es una técnica consistente en asociar múltiples direcciones IP hacia un único nombre de dominio y cambiarlas rápidamente. En ocasiones se utilizan cientos o incluso miles de direcciones IP. Los atacantes utilizan lo utilizan para sus propiedades web sigan funcionando, para ocultar el verdadero origen de su actividad maliciosa, y para evitar los equipos de seguridad bloqueen su dirección IP. Esta técnica la suelen utilizar botnets.

-nn En algunas implementaciones este parámetro puede ser utilizado para indicar a tcpdump a no resolver direcciones IP en nombres de host, o números de puerto en nombres de puerto. Si una aplicación creando el tráfico utiliza puertos no estándares, entonces tcpdump lo etiquetará incorrectamente.

$ sudo tcpdump -nn

-f Imprime la dirección IP para todas las direcciones foráneas, foránea significa direcciones no locales. Han existido algunos problemas utilizando este parámetro en implementaciones Linux cuando la captura es realizada utilizando la interfaz “any”. Esta interfaz captura el tráfico desde múltiples interfaces en una sesión de captura.

$ sudo tcpdump -f

Fuentes:

https://www.tcpdump.org
https://www.tcpdump.org/manpages/tcpdump.1.html
https://en.wikipedia.org/wiki/Fast_flux
https://www.cloudflare.com/es-es/learning/dns/dns-fast-flux/

Seleccionar una Interfaz de Red para Capturar Tráfico utilizando Tcpdump

Body

Tcpdump imprime una descripción del contenido de los paquetes sobre una interfaz de red, coincidiendo con una expresión booleana; la descripción es precedida por una marca de tiempo, impresa por defecto en horas, minutos, segundos y fracciones de segundo desde la media noche.

Las siguientes son algunas de las opciones más comúnmente utilizadas para seleccionar una interfaz de red, y de esta manera realizar la captura del tráfico de red.

-i any Utilizar este parámetro para escuchar en todas las interfaces, así mismo para verificar si se está visualizando cualquier tráfico.

$ sudo tcpdump -i any

-D Utilizar este parámetro para listar las interfaces de red disponibles. Esto imprimirá un numero y el nombre de la interfaz, posiblemente seguido por una descripción textual de la interfaz para cada interfaz de red.

$ sudo tcpdump -D

-i [interfaz] Utilizar este parámetro para especificar la interfaz utilizando un nombre de interfaz resultante del comando anteriormente ejecutado “-D”, cuyo tráfico es requerido de capturar (sudo tcpdump -i enp0s17). Se puede también utilizar el número de la interfaz de red correspondiente a la interfaz desde la cual se requiere capturar tráfico (sudo tcpdump -i 1), donde 1 es el número de interfaz asignado a enp0s17.

$ sudo tcpdump -i enp0s17

Fuentes:

https://www.tcpdump.org
https://www.tcpdump.org/manpages/tcpdump.1.html