Descubrir subdominios ocultos para revelar servicios internos con CT-Exposer

CT-exposer

La mayoría de las compañías tienen servicios como portales de inicio de sesión de empleados, subdominios solo internos y servidores de prueba que prefieren mantener privados. Los Red Teams y los hackers White Hat pueden encontrar estos servicios oscuros y, a menudo, vulnerables utilizando una herramienta diseñada para ayudar a proteger a los usuarios de certificados fraudulentos.

¿Qué es un registro de confianza de certificado?

Los certificados se emiten a las compañías que operan servicios en línea por una autoridad de certificación para proteger a los usuarios de ser dirigidos a sitios web fraudulentos. En 2011, las limitaciones en la capacidad de los certificados para proteger a los usuarios se demostraron mediante ataques contra las empresas de autoridad de certificación Comodo y DigiNotar. Debido a que los certificados fraudulentos tardaron mucho tiempo en descubrirse, se crearon registros de confianza de certificados para brindar una mejor transparencia a los usuarios.

Facebook ha utilizado los registros CT para descubrir certificados TLS emitidos incorrectamente y evitar que se utilicen para interceptar el tráfico HTTPS. Este éxito los llevó a lanzar al público una herramienta de registro de CT, con la capacidad de "suscribirse" a un dominio para ver rápidamente los certificados que se le emiten.

Irónicamente, el lanzamiento de esta herramienta condujo directamente a varios informes de recompensas de errores en los que se descubrieron servidores de prueba de Facebook que no tenían los mismos controles de permisos que los servidores de producción, lo que podría generar acceso gratuito a todo tipo de información. Esto ilustra perfectamente cómo los registros de confianza de CT pueden revelar una cantidad involuntaria de información en la empresa mientras intentan detectar dominios mediante certificados fraudulentos.

Los subdominios ocultos pueden revelar páginas ocultas como inicios de sesión de empleados, aplicaciones web en uso, dominios solo internos que solo se pueden visitar desde un DNS interno y dominios antiguos o eliminados. Si bien podemos usar la herramienta de monitoreo de CT en línea de Facebook para encontrar subdominios ocultos, usaremos una herramienta local para obtener más anonimato. Se llama CT-exposer, un escáner OSINT de Python que es fácil de ejecutar en cualquier plataforma. No nos mostrará muchos datos como lo hace la herramienta de Facebook, ni proporcionará tantos resultados, pero la información es mucho más fácil de analizar.

 

· Lo que necesitarás

Para comenzar a usar CT-exposer, deberá asegurarse de que Python3 esté instalado en su computadora. Si no lo tiene, puede descargarlo del sitio web de Python.org. Una vez que tenga Python instalado, puede asegurarse de tener la versión correcta escribiendo python3 en una ventana de terminal. Si la salida se ve similar a la salida de abajo, debería ser bueno. Puede escribir quit () después de >>> para salir.

[email protected] ~ ->
 ➤➤➤➤ ▶ python
Python 3.7.0 (default, Sep 15 2018, 19:13:07) 
[GCC 8.2.1 20180831] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

 

· Paso 1: Descargar e instalar los requisitos

Con Python instalado y su sistema totalmente actualizado, puede comenzar navegando a la página de GitHub para CT-exposer. Una vez allí, copie la URL debajo del botón de clonar o descargar y ejecute el comando git clone en una ventana de terminal, como tal:

git clone https://github.com/chris408/ct-exposer.git

Una vez que los archivos terminen de descargarse, cambie el directorio a la carpeta ct-exposer y ejecute lo siguiente:

pip install -r requeriments.txt --user

Una vez instalados ya podremos usar la herramienta.

· Paso 2: Seleccione un dominio y ejecute un escaneo

Para comenzar a explorar lo que pueden revelar los registros de CT, tome un dominio de prueba y vea qué información puede revelarse desde la perspectiva de un atacante. Para empezar, intentaremos priceline.com.

La URL principal para esta tontería es priceline.com, por lo que ejecute CT-exposer en la URL para ver qué puede encontrar. Asegúrate de estar en la carpeta ct-exposer. Una vez que esté en la carpeta ct-exposer, puede ejecutar el siguiente comando para escanear los registros de confianza de certificados para el dominio priceline.com .

 python ct-exposer.py -d priceline.com 

· Paso 3: Divida e interprete la exploración

En la salida a continuación, vemos los resultados de la exploración de priceline.com. ¡Sí! Hay muchos resultados, pero ¿cómo podrían ser útiles?

[email protected] ~/Git/Hacking-Tools/ct-exposer ->
 ➤➤➤➤ ▶ python ct-exposer.py -d priceline.com
[+]: Downloading domain list...
[+]: Download of domain list complete.
[+]: Parsed 33 domain(s) from list.

[+]: Domains found:
23.23.126.26	admin.groupcommerce.com
178.250.2.116	app-install.priceline.com
35.241.46.146	appinstall.priceline.com
64.6.22.95	bomgar.corp.priceline.com
161.47.16.153	careers.priceline.com
209.202.133.98	cruises.priceline.com
64.6.22.95	dealreveal.corp.priceline.com
69.195.35.215	enet.qahotelportal.priceline.com
151.101.56.65	g.ssl.fastly.net
185.28.222.22	h.priceline.com
185.28.222.21	hsecure.priceline.com
64.6.23.100	mail.corp.priceline.com
104.196.14.36	media.priceline.com
64.6.22.95	phantom.corp.priceline.com
104.131.82.197	picme.priceline.com
151.101.204.204	priceline.map.fastly.net
69.195.35.246	qahotelportal.priceline.com
64.6.22.95	splunkes.corp.priceline.com
64.6.22.95	ssh.corp.priceline.com
69.195.35.226	travela.a1.qa.priceline.com
64.6.21.26	travela.priceline.com
69.195.35.166	www.a1.dev.priceline.com
69.195.35.245	www.a1.qa.priceline.com
64.6.23.56	www.a309.corp.priceline.com
69.195.35.167	www.b1.dev.priceline.com
151.101.2.186	www.priceline.com
69.195.35.143	www.qaa.priceline.com

[+]: Domains with no DNS record:
none	fs.corp.priceline.com
none	pcln04.corp.priceline.com
none	rsecure.priceline.com
none	secure.priceline.com

· Ejemplo 1: Subdominios con DNS que no se resuelven

Puede intentar navegar a los diversos subdominios que aparecen. Si no se resuelven, puede tener uno de varios significados.

Vea qué sucede cuando intenta acceder a un servicio interno, ya que en un servicio debe estar conectado a un servidor DNS interno para acceder. Por ejemplo, si intenta navegar a fs.corp.priceline.com desde su navegador web, encontrará lo siguiente.

Not found

Esto no significa que la página a la que intentas ir no existe. Esto existe, simplemente no puedes verlo desde un servidor público. Para un Red Team o un atacante, se acaba de descubrir una parte de la infraestructura interna.

· Ejemplo 2: Subdominios con DNS que resuelven (1)

Algunos subdominios se resuelven y no son tan secretos en absoluto. Sin embargo, para un atacante, conocer esto puede permitirle hacer un pase temprano para explorar una posible vía de ataque.

Por ejemplo, usted ve un subdominio de carreras en careers.priceline.com. Como atacante, acabo de aprender qué tipo de curriculum vitae necesito copiar y dejar en estas publicaciones de trabajo para llamar la atención de un empleado de recursos humanos en Priceline. Tal vez incluso pueda lograr que abran un currículum vitae en PDF con un exploit, pero incluso si utilizan una empresa de contratación externa, puedo conocer las ubicaciones físicas desde las que operan y el tipo de sistemas que utilizan al leer cuidadosamente los requisitos del trabajo.

subd

 

· Ejemplo 3: Subdominios con DNS que resuelven (2)

Al seguir las rutas de navegación del subdominio, puede continuar descubriendo subdominios donde se resuelve el DNS. Otro ejemplo, h.priceline.com , que se resuelve en un sitio web inseguro con una fecha de copyright muy antigua. La página habla de una serie de servicios que ya no ofrecen o publicitan.

subd2

 

· Ejemplo 4: Subdominios con DNS que resuelven (3)

De manera similar, media.priceline.com realmente se resuelve, esta vez a un sitio web seguro que usa HTTPS para la prensa, pero también se actualizó por última vez en 2014. Estoy seguro de que nada ha cambiado desde entonces.

media

 

· Ejemplo 5: Subdominios con DNS que resuelven (4)

En algunos casos, la seguridad de la capa de transporte se romperá, y obtendrá una gran advertencia como la que se muestra a continuación al intentar resolver picme.priceline.com, por ejemplo.

Si lo ignora y continúa, puede ver que todo el servidor está dañado y aparece un mensaje de error con más información al respecto. (Caramba, gracias por la información innecesaria.)

err

Como puede ver, hay un servidor Apache 2.4.18 sentado en un Ubuntu en el puerto 443. Hmm, eso parece un poco viejo. Sigue adelante y busca en Google exactamente para ver si puede haber algo mal. Seguramente la fortaleza de la información que es priceline.com no podría estar exponiendo un servidor antiguo y vulnerable a Internet.

CVE

Hay 16 vulnerabilidades diferentes y hasta un módulo para metasploit. En este caso, podría seguir adelante, asumiendo que esto está tan plagado de problemas que probablemente sea un honeypot. ¿No te sentirías mal pateando esta pobre cosa?

 

· Ejemplo 6: Subdominios con DNS que resuelven (5)

Finalmente, está la joya de la corona del descubrimiento: inicio de sesión de empleados y puntos finales de aplicación. Estos pozos de agua son donde puede aprender sobre la seguridad de sus objetivos e intentar obtener contraseñas. Por ejemplo, cuando intenta resolver phantom.corp.priceline.com o ssh.corp.priceline.com, se le presenta una página desafiante para iniciar sesión.

login

Incluso si colocamos el puntero en el ícono de información, nos muestra que podemos iniciar sesión con usuarios tanto del dominio priceline.com tanto pricelinegroup.com, demasiada información, podríamos echarle un vistazo a pricelinegroup.com y ver que tan vulnerable es...

También si nos dirigimos a mail.corp.priceline.com sin https, aparentemente es un sitio en blanco, sin embargo tras lanzar un escaneo con nmap nos damos cuenta que usa un servidor IIS https 8.5 y mucha información más.

80/tcp  open  http     Microsoft IIS httpd 8.5
|_http-server-header: Microsoft-IIS/8.5
|_http-title: Site doesn't have a title.
443/tcp open  ssl/http Microsoft IIS httpd 8.5
|_http-favicon: Unknown favicon MD5: 8D47675F4E5405835CF53953FDF0DE1A
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Microsoft-IIS/8.5
| http-title: Outlook
|_Requested resource was https://mail.corp.priceline.com/owa/auth/logon.aspx?url=https%3a%2f%2fmail.corp.priceline.com%2fowa%2f&reason=0
| ssl-cert: Subject: commonName=mail.corp.priceline.com/organizationName=Priceline.com LLC/stateOrProvinceName=Connecticut/countryName=US
| Subject Alternative Name: DNS:mail.corp.priceline.com, DNS:autodiscover.priceline.com, DNS:ews.corp.priceline.com, DNS:ews.priceline.com, DNS:autodiscover.pricelinegroup.com
| Issuer: commonName=GeoTrust RSA CA 2018/organizationName=DigiCert Inc/countryName=US
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2018-02-22T00:00:00
| Not valid after:  2020-04-22T12:00:00
| MD5:   6813 2e01 79e3 18dc 063b 93a2 ed47 714f
|_SHA-1: b6a9 f335 5833 1c94 167d 3a5f bddb b8bc 76e9 8ed0

Además si intentamos entrar vía https, nos encontramos con esto:

mail

Un inicio de sesión del servidor email que adicionalmente al especificar que debemos usar Dominio\usuario y no el tradicional [email protected], está usando los usuarios dentro del Active Directory para el inicio de sesión.

· Ejemplo 7: Subdominios sin registro DNS

También es probable que tenga varios dominios que no tienen registro de DNS. Esto significa que no puede navegar hacia ellos porque no existe una ruta conocida en la Internet pública. Entonces, ¿qué significa esto?

[+]: Domains with no DNS record:
none	fs.corp.priceline.com
none	pcln04.corp.priceline.com
none	rsecure.priceline.com
none	secure.priceline.com

 

Esto significa que son atendidos por un servidor DNS interno o requieren que inicie sesión en una VPN para acceder. Esto hace que estos subdominios sean algunos de los más interesantes de todos, ya que representan superficies internas de ataque a las que aún no tiene acceso. También actúan como información de orientación para sus ataques iniciales y como una forma potencial de engañar a los empleados para que piensen que están en una red privada cuando realmente están en una red pública.

Si fuera un atacante o un Red Team, comenzaría a comprar silenciosamente dominios de suplantación de identidad (phishing) similares a los que se ven aquí, como secure.pricleine.com para intentar engañar a los empleados y hacerles creer que estaban iniciando sesión en un servicio interno.

· El abuso de los registros de certificados de confianza puede revelar información oculta

En un comando corto, un atacante puede echar un vistazo a las superficies de destino disponibles y determinar el mejor método de ataque. En nuestro ejemplo, pudo evaluar las superficies objetivo internas y externas, evaluar la seguridad individual a nivel de empleado en la empresa e identificar diferentes departamentos internos, como la contratación, que puede tener estándares de seguridad más relajados. También pudo encontrar dominios antiguos, internos y totalmente vulnerables simplemente navegando a las URL para las que encontró registros de CT.

Lo que un hacker podría aprender de esto es que el reconocimiento es una habilidad crítica que no tiene por qué ser una tarea que consume mucho tiempo. Si bien CT-exposer debería ser solo una herramienta en su arsenal, puede aprender acerca de la estructura de la presencia en línea de una empresa con relativa facilidad antes de elegir el objetivo perfecto.

Síguenos en FacebookTwitterunete a nuestro chat en Discord y no olvides compartirnos en las redes sociales. También puede hacernos una donación o comprar nuestros servicios.

Acerca del autor

Especialista en Seguridad Informática bajo certificación OSCP, experto en técnicas de privacidad y seguridad en la red, desarrollador back-end, miembro de la FSF y Fundador de Security Hack Labs. Desarrollador de la distribución de hacking BlackArch Linux. Twitter: @edu4rdshl XMPP: [email protected]