Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/whitesy7/public_html/blog/wp-content/themes/Divi/includes/builder/functions.php on line 5689
whitesuit | WhiteSuit Hacking
Phishing con punycode. 

Phishing con punycode. 

 El Phishing… un arte que nunca muere? Porque ya son demasiados años en que ésta práctica se utiliza para el robo de credenciales a los usuarios, porque parece que poco le hace a su efectividad las capacitaciones que se brindan al respecto y porque a pesar del tiempo ni siquiera se ha sofisticado demasiado la técnica de ataque. Siempre es lo mismo, una cabecera de origen de un correo falsificada, un mensaje bonito y un link a un sitio que se apropiará de tus datos si allí los ingresas.

Parece tan tonto, tan obvio de darse cuenta lo que va a pasar… pero no! Lamentablemente miles de usuarios caen a diario en estas trampas y sus credenciales y/o datos confidenciales son robados.

¿Por qué estoy escribiendo una nota de Phishing?

Lei un comentario en el post de ayer que me gusto y quería rescatar ese comenatrio así que tal como mencioné, la técnica no se ha sofisticado demasiado en el tiempo, el común denominador siempre es explotar el factor humano y eso no cambiará, sin embargo, hay algunos conceptos y herramientas de las que me gustaría escribir.

El Phishing comenzó como lo que mencionamos en el primer párrafo, un correo de origen falsificado con un mensaje que pretende engañar al usuario para que entre a determinada página y escriba sus credenciales. Cuando se capacitaba a la gente para prevenirla de caer en esta trampa, a menudo se hacía énfasis en dos cosas: “Revisar si el sitio al que dirige el link del correo falso es HTTPS o no”, “Mirar bien el link, suele ser similar a la URL del sitio que se está falsificando, mas no es exactamente igual”.

¿Por qué estos consejos? Es cierto que la mayoría de los ataques de Phishing se montan sobre sitios web HTTP mientras que los sitios originales siempre los vemos sobre HTTPS. Pero decirle a un usuario que con ver que el sitio al que ingresa es HTTPS ya es suficiente para confiar, es un grave error. Un atacante puede obtener un certificado SSL/TLS para su sitio falso, y convertirlo en HTTPS fácilmente, de hecho, ni siquiera es necesario que invierta dinero, existen páginas como “Let’s Encrypt” que emiten certificados totalmente válidos y gratuitos por varios meses. (DE NADA)

Respecto del segundo consejo habitualmente mencionado, revisar bien la URL, es porque para el sitio falso se suele adquirir un dominio muy similar al del sitio real. La técnica se la suele llamar typosquatting y se trata básicamente de engañar al ojo humano, para que lea por ejemplo “linkedin.com” cuando en realidad dice “likendin.com”. Una alternativa similar, es utilizar el mismo nombre de dominio pero con un TLD diferente, por ejemplo linkedin.tk en lugar de linkedin.com pero el poder hacerlo depende de que dicho dominio esté disponible. Debido a esto, existen numerosas herramientas para hacer un chequeo rápido de los TLD disponibles para un determinado nombre de dominio.

Una herramienta nueva, que me ha gustado mucho es CATPHISH, pueden descargarla de aquí: https://github.com/ring0lab/catphish/.

Como se puede ver en la imagen, nos arroja un listado de dominios muy similares, en este caso al dominio de Twitter, que están disponibles para ser registrados por cualquier persona. Imposible de negar que a “twiiter.com” hasta podríamos entrar por error de tipeo, es bastante riesgoso que dicho dominio “ande libre por ahí”.

Hace realmente muchos años, al menos unos 10… cuando empecé a estudiar estos temas, leí la teoría sobre ataques homógrafos, la cual se basa en registrar un dominio que utiliza caracteres que a la vista son extremadamente similares o prácticamente idénticos a los que se quieren falsificar. Así es como cierta persona registró ɢoogle.com en lugar de google.com (sutil cambio en la letra “g” ¿no?).  Hasta hace algún tiempo atrás, no se escuchaba que esta técnica fuera aprovechada, pero parece que eso está cambiando…

Hace poquito Xudong Zheng registró el dominio xn--80ak6aa92e.com que si hacemos click, notaremos que el navegador lo muestra como apple.com. Es una hermosa demostración del potencial de este tipo de ataque si se lo utiliza con fines delictivos. La realidad, es que no es más que jugar con los caracteres y aprovecharse del sistema “punycode”, utilizado por los servidores DNS para poder gestionar dominios que son registrados en otros caracteres que no son romanos.
La herramienta que mostré anteriormente, se ganó mi cariño por encima de las demás, ya que tiene un parámetro que analiza las posibles URLs que podrían registrarse utilizando caracteres que a la vista del usuario se verán muy similar al dominio original.

Por ejemplo en la imagen podemos ver que el dominio xn--ppl-rgzsf.com está disponible para ser registrado y a simple vista luce muy parecido al dominio real de Apple.
Tal como comencé escribiendo, los ataques homógrafos llevan muchos años documentados, sin embargo ahora, desde mi punto de vista, estoy observando más casos que lo aprovechan así como también nuevas herramientas que facilitan el llegar a registrar este tipo de dominios.

Bueno, esta nota no tenía otro objetivo más que comentar algunas cosas del tema y compartirles la herramienta catphish que fue de mis preferidas esta semana.

HAPPY HACKING
Atacando equipos con Debian

Atacando equipos con Debian

¡Hola! ¡Buen Viernes!

En el día de ayer estaba leyendo acerca de una herramienta llamada “Kimi“, la cual permite crear paquetes .deb que, al ser instalados en un equipo con Debian, realizan una conexión inversa al equipo atacante entregándole una shell de meterpreter.

Me gustó mucho esta tool porque en realidad, lo que hace es aprovechar el módulo de web_delivery de Metasploit que es mi módulo favorito :).

Si no conocen este módulo los animo a investigarlo, ya que abre un enorme abanico de posibilidades o mejor dicho, de diferentes vías, para lograr que un equipo sea infectado por meterpreter.

Kimi creará un paquete .deb que vía Python realizará la llamada a la URL que se configura en web_delivery para descargar y ejecutar el meterpreter en el equipo atacado.

Veamos paso a paso como utilizar esta herramienta:

Paso 1: Configuración de web_delivery (Opcional)

Este paso es completamente opcional ya que en realidad, al ejecutar Kimi se configura el web_delivery de forma automática en otra terminal. Como a mi no me gustó mucho esa terminal, lo configuré aparte :p.

Abrimos nuestra terminal de Metasploit con el comando msfconsole y seleccionamos el módulo de web_delivery:


En mi lab, la IP del equipo atacante es: 192.168.1.107, por lo tanto usaré esa IP para los parámetros SRVHOST (web_delivery) y LHOST (Payload). Algo super importante para que la tool funcione, es dejar el SRVPORT en 8080 y configurar el URIPATH con el valor “/SecPatch” de la siguiente forma:

Ejecutamos exploit para que el web_delivery comience su trabajo esperando en background a recibir la shell inversa.

Paso 2: Crear el paquete .deb con Kimi

 Podemos obtener la herramienta Kimi desde GitHub: https://github.com/ChaitanyaHaritash/kimi.

Como podemos ver, Kimi requiere muy pocos parámetros: el nombre del paquete, la versión del mismo y la IP de la máquina atacante.

Con ello, ya tenemos nuestro paquete “inocente_1.0.deb” listo para ser ejecutado en la máquina que vamos a atacar.

Paso 3: Infección de la máquina con Debian 

Lo que tenemos en nuestras manos es un paquete .deb y se instala como cualquier otra aplicación:

Paso 4: Recepción de la shell inversa de Meterpreter

Una vez que el equipo con Debian instala el paquete malicioso, en cuestión de segundos recibiremos de forma automática la conexión del Meterpreter en nuestra terminal de Metasploit:

 

Happy Hacking

Vamos a jugar con las redirecciones

Vamos a jugar con las redirecciones

Más allá del clásico uso para phising, las webs que permiten redireccionar hacia donde nosotros deseamos pueden ser aprovechadas en otros escenarios para nuestro beneficio.

Cuando se protegen áreas de una web que requieren cierto privilegio para su visualización (áreas de miembros, zonas de administración, estadísticas, etc.) se suele utilizar una redirección a través de un código 3xx para evitar que un usuario sin dichos privilegios pueda acceder. Realizar esto con PHP, por ejemplo, es algo trivial. ¿Pero qué ocurre si no se implementa de la forma correcta? Veamos el siguiente ejemplo:

<?php


if ($_SESSION[‘log’] !== TRUE) {
header(“Location: http://foo.es/login.php);
}
….
…..
?>
<h1>Texto que no deberías de poder ver porque no estás logueado</h1>

En el ejemplo vemos como símplemente se utiliza la función header() para realizar la redirección pero no se corta el flujo de lo que se muestra después, por lo que si hacemos que se ignore la petición de redirección podremos ver esa web restringida.

El bypass de esta medida se puede realizar fácilmente colocando un proxy en medio para que bloquee el response con el 302, o elimine el header “location”. Otra opción mucho más rápida de implementar es utilizar algún add-on que bloquee las redirecciones cuando se navega, como “NoRedirect” de Firefox. Activando el add-on podremos acceder a las zonas restringidas sin estar logueado.

Otra situación donde podemos abusar de una redirección es cuando ésta es realizada a través de JavaScript (usando document.location.href por ejemplo) y la dirección es pasada a través de una variable a la cual se le realiza un filtrado con htmlentities o funciones similares. De este tipo suelen ser aquellas webs que muestran un mensaje de “Serás redireccionado en X segundos” o te muestran una alerta de que estás abandonando el dominio.

En estas situaciones estamos ante un XSS no-persistente, ya que podemos usar el viejo truco de “data:text/html;base64,AquiJavaScriptenBase64” para ejecutar javascript.  Como ejemplo:

<script language=”JavaScript” type=”text/javascript”>
document.location.href = ‘<?php echo htmlentities($_GET[‘url’]); ?>’;
</script>

Scripts en Nmap

Scripts en Nmap

Nmap… una de las herramientas que más usamos. Se sabe que trae consigo una gran cantidad de scripts pero… posiblemente coincidan conmigo que en el uso diario no los tenemos muy en cuenta. Quizás, en algún caso común, cuando encontramos un SMB por ahí, recordemos que Nmap tiene un script para enumerar usuarios y entonces lo utilizamos.

La realidad, es que Nmap cuenta actualmente con +560 scripts! y si bien, puede haber algún fanático de la herramienta por aquí, estoy segura que la mayoría dejamos al menos el 80% de esos scripts sin utilizar. Pienso que hay dos principales motivos por lo cual ocurre esto, el primero: no conocerlos. ¿Algún loc@ se puso a mirar los 560 scripts? No! Si, yo. Pero me daba curiosidad, y si bien se me hizo largo el camino de conocerlos, descubrí hasta protocolos que ni sabía que existían :O ¡Así que valió la pena!.

El segundo motivo por el cual pienso que no los utilizamos tanto, es no tenerlos a mano en el momento justo. Porque la realidad es que no hay mucho tiempo de moverse a /usr/share/nmap/scripts y empezar a leer toda la lista cuando estamos en pleno pentest. Es por eso que tras mi lectura de los 560 scripts, me anoté separando como me pareció más práctico, todos aquellos scripts que pueden sernos de utilidad en una auditoría. El criterio tiene en cuenta las tecnologías, softwares, protocolos y servicios que nos encontramos con más frecuencia durante una auditoría.

Antes de pasar a la lista, les comento a aquellos que directamente no estén familiarizados con el uso de scripts en Nmap, que los mismos están agrupados por esta herramienta en categorías según su función, algunas de ellas son: discovery, auth, brute, fuzzer, exploit y dos.

Por los nombres podemos darnos cuenta fácilmente que tipo de test realizan. Si quisiéramos podríamos correr todos los scripts asociados a una categoría, durante un mismo escaneo, de la siguiente manera:

nmap <parametros_escaneo> –script auth <ip/rango>

En ese ejemplo, se ejecutarán todos los scripts de la categoría “auth”.

Sino, podemos ejecutar un script específico:

nmap <parámetros_escaneo> –script smb-enum-shares <ip/rango>

También es posible que el script admita parámetros, en ese caso, los especificamos de la siguiente manera:

nmap <parámetros_escaneo> –script smb-enum-shares –script-args=<args> <ip/rango>

EJ: nmap -sV –script smb-enum-shares –script-args=smbuser=admin,smbpass=pass <ip/rango>

Ahora si, les comparto mi lista (Que espero que la dejes en favoritos y vengas a consultarla cada vez que la necesites ;)).

TECNOLOGÍAS
ASP.NET:

  • http-aspnet-debug.nse

PHP:

  • http-php-version.nse



SOFTWARE/PRODUCTOS
AVAYA:

  • http-avaya-ipoffice-users.nse

CITRIX:

  • citrix-brute-xml.nse
  • citrix-enum-apps.nse
  • citrix-enum-servers.nse

JOOMLA:

  • http-joomla-brute.nse

WORDPRESS:

  • http-wordpress-brute.nse
  • http-wordpress-enum.nse
  • http-wordpress-plugins.nse

BASES DE DATOS
CASSANDRA:

  • cassandra-brute.nse
  • cassandra-info.nse

COUCHDB:

  • couchdb-databases.nse
  • couchdb-stats.nse

DB2:

  • broadcast-db2-discover.nse
  • db2-das-info.nse
  • drda-info.nse
  • drda-brute.nse

HBASE:

  • hbase-master-info.nse
  • hbase-region-info.nse

INFORMIX:

  • informix-brute.nse
  • drda-info.nse
  • drda-brute.nse

MAXDB:

  • maxdb-info.nse

MONGODB:

  • mongodb-brute.nse
  • mongodb-databases.nse
  • mongodb-info.nse

MSSQL:

  • broadcast-ms-sql-discover.nse
  • ms-sql-brute.nse
  • ms-sql-config.nse
  • ms-sql-empty-password.nse
  • ms-sql-info.nse
  • ms-sql-xp-cmdshell.nse

MYSQL:

  • mysql-audit.nse
  • mysql-brute.nse
  • mysql-databases.nse
  • mysql-empty-password.nse
  • mysql-enum.nse
  • mysql-info.nse

ORACLE:

  • oracle-brute.nse
  • oracle-enum-users.nse

POSTGRESQL:

  • pgsql-brute.nse

REDIS:

  • redis-brute.nse
  • redis-info.nse

RIAK:

  • riak-http-info.nse


INFRAESTRUCTURAS INDUSTRIALES

  • bacnet-info.nse
  • enip-info.nse
  • fox-info.nse
  • modbus-discover.nse
  • mqtt-subscribe-nse
  • omron-info.nse
  • pcworx-info.nse
  • s7-info.nse

SERVICIOS/PROTOCOLOS

DHCP:

  • dhcp-discover.nse
  • broadcast-dhcp-discover.nse
  • broadcast-dhcp6-discover.nse

DNS:

  • dns-brute.nse
  • dns-cache-snoop.nse
  • dns-check-zone.nse
  • dns-fuzz.nse
  • dns-recursion.nse
  • dns-service-discovery.nse
  • dns-srv-enum.nse
  • dns-zone-transfer.nse

FTP:

  • ftp-anon.nse
  • ftp-brute.nse
  • ftp-bounce.nse

HTTP:

  • http-auth.nse
  • http-auth-finder.nse
  • http-backup-finder.nse
  • http-brute.nse
  • http-form-brute.nse
  • http-config-backup.nse
  • http-default-accounts.nse
  • http-enum.nse
  • http-methods.nse
  • http-userdir-enum.nse
  • http-vhosts.nse

IMAP:

  • imap-brute.nse
  • imap-capabilities.nse
  • imap-ntlm-info.nse

LDAP:

  • ldap-brute.nse
  • ldap-search.nse

RDP:

  • rdp-enum-encryption.nse
  • rdp-vuln-ms12-020.nse

RLOGIN:

  • rlogin-brute.nse

SIP:

  • sip-brute.nse
  • sip-call-spoof.nse
  • sip-enum-users.nse
  • sip-methods.nse

SMB:

  • smb-brute.nse
  • smb-enum-domains.nse
  • smb-enum-groups.nse
  • smb-enum-processes.nse
  • smb-enum-sessions.nse
  • smb-enum-shares.nse
  • smb-enum-users.nse
  • smb-flood.nse
  • smb-ls.nse
  • smb-mbenum.nse
  • smb-os-discovery.nse
  • smb-print-text.nse
  • smb-psexec.nse
  • smb-security-mode.nse
  • smb-server-stats.nse
  • smb-system-info.nse
  • smbv2-enabled.nse

SMTP:

  • smtp-brute.nse
  • smtp-commands.nse
  • smtp-enum-users.nse
  • smtp-open-relay.nse

SNMP:

  • snmp-info.nse
  • snmp-interfaces.nse
  • snmp-ios-config.nse
  • snmp-netstat.nse

SSL:

  • ssl-ccs-injection.nse
  • ssl-cert.nse
  • ssl-cert-intaddr.nse
  • ssl-date.nse
  • ssl-dh-params.nse
  • ssl-enum-ciphers.nse
  • ssl-heartbleed.nse
  • ssl-known-key.nse
  • ssl-poodle.nse
  • sslv2.nse
  • sslv2-drown.nse

SVN:

  • svn-brute.nse
  • http-svn-enum.nse
  • http-svn-info.nse

TELNET:

  • telnet-brute.nse

TFTP:

  • tftp-enum.nse

UPNP:

  • upnp-info.nse
  • broadcast-upnp-info.nse

VNC:

  • vnc-brute.nse
  • vnc-info.nse


VULNERABILIDADES WEB

  • http-dombased-xss.nse
  • http-stored-xss.nse
  • http-put.nse
  • http-slowloris.nse
  • http-slowloris-check.nse
  • http-sql-injection.nse
  • http-csrf.nse
  • http-fileupload-exploiter.nse
  • http-hsts-verify.nse
  • http-internal-ip-disclosure.nse
  • http-malware-host.nse
  • http-passwd.nse
  • http-referer-checker.nse
  • http-rfi-spider.nse
  • http-trace.nse
  • http-xssed.nse


UTILES

  • whois-domain.nse
  • whois-ip.nse
  • hostmap-ip2hosts.nse
  • hostmap-robtex.nse
  • http-robtex-reverse-ip.nse
  • ip-geolocation-map-google.nse
  • url-snarf.nse
  • sniffer-detect.nse
  • ike-version.nse
  • auth-owners.nse
  • mikrotik-routeros-brute.nse
  • firewalk.nse
  • firewall-bypass.nse
  • http-waf-detect.nse
  • http-waf-fingerprint.nse

Diviertete con nmap…..

¡Happy Hacking!

Tecnica de MITM para tomar screenshot a la víctima

Tecnica de MITM para tomar screenshot a la víctima

Si bien mi herramienta preferida para esto es Bettercap por diversos motivos, MITMf tiene algunos plugins extremadamente interesantes, iremos viendo algunos de ellos. Hoy trataremos “ScreenShotter”.

Como es la primera nota sobre MITMf, a continuación explicaremos cómo descargarla y ejecutarla correctamente.

DESCARGA Y EJECUCIÓN
Hacemos un git clone del siguiente repositorio: https://github.com/byt3bl33d3r/MITMf.
Instalamos las dependencias con el siguiente comando:
sudo apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxml2-dev libxslt1-dev libcapstone3 libcapstone-dev libffi-dev file
Finalmente instalamos las dependencias propias de python, si tenemos pip, nos movemos a la carpeta descargada de MITMf y ejecutamos: sudo pip install -r requirements.txt
Si todo salió bien ya podemos hacer sudo python mitmf.py –help

Como podemos observar, si ejecutamos el comando, la ayuda es bastante larga. MITMf posee muchos plugins. Si buscamos entre ellos, encontraremos ScreenShotter.

Pero antes de poner manos a la obra con este plugin, debemos conocer los parámetros básicos requeridos por MITMf.

Para empezar, MITMf nos pide que sí o sí especifiquemos la IP del gateway, la/s IP de los targets y la interfaz que estamos utilizando. Estos parámetros son: –gateway <ip_gateway>, –targets <ip_targets> y -i <interfaz>.

Luego, como mínimo necesitamos ejecutar un ataque de MITM, para ello le sumaremos a los anteriores, los siguientes dos parámetros: –spoof y –arp.

Dicho esto, un ataque de MITM básico hecho con MITMf nos quedaría así:

sudo python mitmf.py –spoof –arp –gateway 192.168.0.1 –targets 192.168.0.209 -i wlp1s0

Con ello, podremos ver las peticiones HTTP realizadas por el usuario, el contenido POST de las mismas, así como también la información de otros protocolos.
Tal como he mencionado, ahora haremos foco sobre el plugin ScreenShotter, para utilizarlo, simplemente debemos añadir al comando anterior el siguiente parámetro: –screen.

Como vemos, cuando el usuario ingresa a un sitio web vía HTTP, el payload del plugin es inyectado en la respuesta dirigida al usuario. De esta manera se carga en su navegador, permitiéndole al atacante ver la página que está visitando (esto incluye ver lo que está tipeando en los formularios si aplicara el caso).

Por defecto ScreenShotter toma capturas cada 10 segundos.

Podemos alterar este tiempo utilizando el parámetro –interval <segundos> si así lo quisiéramos.
Todas las capturas de pantalla son almacenadas en la carpeta “Logs” dentro de la carpeta de MITMf. Así que nos dirigimos allí y abrimos las capturas con cualquier visor de imágenes.

¿Interesante verdad? Espero que les sea de utilidad!
Happy Hacking

¿Adivino = a Hacker?

¿Adivino = a Hacker?

Hola hackers, en esta ocasión les traigo un vídeo para que se diviertan un rato, la verdad es que no. Es para que me ayudes a compartir la idea de no subir toda nuestra información a Internet.

Alguien con varias habilidades, como se ve el día uno del curso de GHOST que es para recopilar información de nuestra víctima, estos conocimientos se podrían utilizar para el mal.

Bueno dejare de hablar para que puedas disfruta el vídeo.