Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

domingo, 9 de abril de 2017

Bypasseando Cloudflare y detectando el Sistema Operativo, servicios y sus versiones en un servidor Web.


Como la gran mayoría conoce, Cloudflare es un CDN (Content Delivery Network o Red de Distribución de Contenido) gratuito que actúa como un proxy (intermediario) entre los visitantes del sitio y el servidor. Al actuar como un proxy, CloudFlare guarda temporalmente contenido estático del sitio, el cual disminuye el número de peticiones al servidor pero sigue permitiendo a los visitantes el acceso al sitio. CloudFlare tiene servidores proxy localizados alrededor del mundo. Los servidores proxy están localizados cerca de los visitantes, con lo cual estos podrán cargar el sitio más rápido directo de los servidores proxy, Cloudflare es generalmente utilizado para evitar ataques de tipo DDoS o DoS ya que al actuar como intermediario prohibe que el servidor principal sea atacado interponiendo sus proxys durante el ataque. Para realizar una auditoría a cualquier sistema, sitio web, servidor o maquina remota, es indispensable conocer la verdadera identificación (IP) de la maquina, de lo contrario todo lo que hagamos todo será inutil ya que estaría dirigido a otro objetivo que no nos interesa. A continuación explicare las maneras más efectivas y fáciles de Bypassear Cloudflare y seguidamente explicaré la detección de servicios y sus versiones, así como la manera de encontrar y explotar posibles fallos.

NOTA: Durante este post usaré la web https://hispachan.org para realizar la prueba.

* Bypasseando cloudflare.

Es el primer paso que debemos realizar, para ello podemos usar diversas maneras:
Manualmente: Podemos realizarlo mediante la busqueda manual de subdominios y revisando las IP en caso de encontrarse uno, ya que es algo tedioso podemos usar el navegador y un buscador para realizar la busqueda, por ejemplo: site: *.hispachan.org en Google, realizando un ping a cada subdominio encontrado y luego revisando que no pertenezca a cloudflare dicha IP.

Automaticamente (Con hatclud): Hatcloud es una herramienta especializada para realizar la evasión de Cloudflare, escrita en ruby y disponible en Github. Para su instalación basta con descargarla y ejecutar el script usando el comando ruby hatcloud.rb -b $sitioweb, reemplazando sitio web por el deseado, o bien usando el comando pacman -S hatcloud, este ultimo para aquellos que han seguido nuestros post sobre convertir a ArchLinux en una distro de pentesting.


Ahora probamos abriendo la direccion IP "real" que nos arroja el script y vemos que: Usa Nginx 1.11.12!


Usando bruteforce (fierce): Fierce es un script para la enumeración de DNS, el cual puede buscar todos los NS Records para probar tranferencias de zona o Zone Tranfer, realizar ataques de fuerza bruta automaticos y configurados manualmente, entre otras. Está escrito en perl y disponible los repositorios de las principales distribuciones. Se encuentra en los repositorios de la mayoria de distribuciones. Para su instalación lo hacemos desde nuestro gestor de paquetes, o bien usando pacman -S fierce, y su sintaxis básica es la siguiente: fierce.pl -dns $sitioweb, reemplazando el sitio por el deseado. Nota: Si el sistema no reconoce el comando fierce.pl, prueba con fierce.



Como podemos observar, alternativamente a los DNS de Cloudflare, nos arroja otros muy importantes, mail.hispachan.org y smtp.hispachan.org, los cuales apuntan a la misma dirección IP, abrimos esa IP en el navegador y vemos.


Muy bien, todo parece indicar que es la dirección IP real del servidor principal, para asegurarnos podemos probar un pequeño ataque DDoS y verificar si se trata de la dirección real del servidor, para este paso pueden usar la herramienta que deseen de las muchas que existen.





Bien, al parecer si es la dirección del servidor real, ahora probaremos un escaneo con Nmap para ver que podemos encontrar.

[root@SecHackLabs shl]# nmap -sV -T4 -O -v 89.248.171.171

Starting Nmap 7.40 ( https://nmap.org ) at 2017-04-09 01:29 -05
NSE: Loaded 40 scripts for scanning.
Initiating Ping Scan at 01:29
Scanning 89.248.171.171 [4 ports]
Completed Ping Scan at 01:29, 0.19s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 01:29
Completed Parallel DNS resolution of 1 host. at 01:29, 0.33s elapsed
Initiating SYN Stealth Scan at 01:29
Scanning mail.hispachan.org (89.248.171.171) [1000 ports]
Discovered open port 993/tcp on 89.248.171.171
Discovered open port 587/tcp on 89.248.171.171
Discovered open port 110/tcp on 89.248.171.171
Discovered open port 80/tcp on 89.248.171.171
Discovered open port 111/tcp on 89.248.171.171
Discovered open port 21/tcp on 89.248.171.171
Discovered open port 53/tcp on 89.248.171.171
Discovered open port 22/tcp on 89.248.171.171
Discovered open port 143/tcp on 89.248.171.171
Discovered open port 3306/tcp on 89.248.171.171
Discovered open port 25/tcp on 89.248.171.171
Discovered open port 995/tcp on 89.248.171.171
Discovered open port 443/tcp on 89.248.171.171
Discovered open port 2222/tcp on 89.248.171.171
Discovered open port 465/tcp on 89.248.171.171
Completed SYN Stealth Scan at 01:29, 7.14s elapsed (1000 total ports)
Initiating Service scan at 01:29
Scanning 15 services on mail.hispachan.org (89.248.171.171)
Completed Service scan at 01:30, 48.70s elapsed (15 services on 1 host)
Initiating OS detection (try #1) against mail.hispachan.org (89.248.171.171)
Retrying OS detection (try #2) against mail.hispachan.org (89.248.171.171)
NSE: Script scanning 89.248.171.171.
Initiating NSE at 01:30
Completed NSE at 01:30, 13.24s elapsed
Initiating NSE at 01:30
Completed NSE at 01:30, 0.35s elapsed
Nmap scan report for mail.hispachan.org (89.248.171.171)
Host is up (0.16s latency).
Not shown: 979 closed ports
PORT     STATE    SERVICE        VERSION
21/tcp   open     ftp            Pure-FTPd
22/tcp   open     ssh            OpenSSH 6.6.1 (protocol 2.0)
25/tcp   open     smtp           Exim smtpd 4.87
53/tcp   open     domain         ISC BIND 9.9.4
80/tcp   open     ssl/http       Apache/2
110/tcp  open     pop3           Dovecot DirectAdmin pop3d
111/tcp  open     rpcbind        2-4 (RPC #100000)
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
143/tcp  open     imap           Dovecot imapd
443/tcp  open     ssl/ssl        Apache httpd (SSL-only mode)
445/tcp  filtered microsoft-ds
465/tcp  open     ssl/smtp       Exim smtpd 4.87
587/tcp  open     smtp           Exim smtpd 4.87
593/tcp  filtered http-rpc-epmap
993/tcp  open     ssl/imap       Dovecot DirectAdmin imapd
995/tcp  open     ssl/pop3       Dovecot DirectAdmin pop3d
2222/tcp open     http           DirectAdmin httpd 1.50.1 (Registered to Ecatel International Network)
3306/tcp open     mysql          MariaDB (unauthorized)
4444/tcp filtered krb524
6129/tcp filtered unknown
Device type: general purpose|storage-misc|firewall|WAP
Running (JUST GUESSING): Linux 4.X|3.X|2.6.X|2.4.X (96%), Synology DiskStation Manager 5.X (87%), WatchGuard Fireware 11.X (87%)
OS CPE: cpe:/o:linux:linux_kernel:4.4 cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:2.6.32 cpe:/o:linux:linux_kernel cpe:/a:synology:diskstation_manager:5.1 cpe:/o:watchguard:fireware:11.8 cpe:/o:linux:linux_kernel:2.4
Aggressive OS guesses: Linux 4.4 (96%), Linux 4.0 (93%), Linux 3.11 - 4.1 (92%), Linux 2.6.32 (92%), Linux 2.6.32 or 3.10 (92%), Linux 3.10 - 3.12 (92%), Linux 2.6.32 - 2.6.35 (90%), Linux 3.13 (90%), Linux 2.6.32 - 2.6.39 (90%), Linux 2.6.32 - 3.0 (89%)
No exact OS matches for host (test conditions non-ideal).
Uptime guess: 2.088 days (since Thu Apr  6 23:23:53 2017)
Network Distance: 14 hops
TCP Sequence Prediction: Difficulty=256 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: Host: b06s25.novogara.com; OS: Red Hat Enterprise Linux 7; CPE: cpe:/o:redhat:enterprise_linux:7

Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 96.57 seconds
           Raw packets sent: 1111 (51.064KB) | Rcvd: 1072 (44.920KB)

Como  podemos observar el equipo usa un sistema GNU/Linux y tiene muchos puertos abiertos, los cuales podemos ir probando cada uno a su gusto en su navegador o realizar un escaneo con nmap a un puerto especifico. Existe un puerto en especial, el 2222 que tiene como descripción DirectAdmin httpd 1.50.1 (Registered to Ecatel International Network), lo abrimos y podemos observar que es un panel Login de Administración!





Este servicio lo provee una compañia con esta pagina web https://www.directadmin.com de hecho podemos realizar un demo en la misma pagina web entrando a https://demo.directadmin.com:2222/ usando las credenciales demo_admin y la passwd demo.



 Ahora regresando a nuestra pagina objetivo, nmap nos arroja que la versión de dicho software es 1.50.1, echemos un vistazo para ver si existen vulnerabilidades disponibles.

Aquí encontramos una, la cual afecta a la mencionada versión. Ver vulnerabilidad.

Como podemos observar, si realizamos un procedimiento correcto podemos hacer las cosas de la manera más sencilla y eficiente, no continuaré con el proceso de explotación ya que estaría convirtiendo esto en un post de estilo black-hat y esa no es nuestra filosofia. Aclaramos que de antes de realizar este procedimiento con la anterior pagina web se pidieron los respectivos permisos. Si tienes alguna duda, sugerencia o pregunta, dejala en los comentarios y si les gustó siguenos en Facebook, Twitter y unete a nuestra charla en Riot.

0 comentarios:

Publicar un comentario