Mostrando entradas con la etiqueta trucos. Mostrar todas las entradas
Mostrando entradas con la etiqueta trucos. Mostrar todas las entradas

18 junio 2014

Durante los tests de intrusión internos, uno de los hitos más importantes es aquel en el que, si todo va como la seda, consigues el listado de hashes de los usuarios del dominio o locales de algún sistema comprometido.

Desde hace años, la gran ventaja cuando se habla de la explotación y post-explotación en sistemas Windows es la utilización de una técnica llamada "Pass-The-Hash", la cual nos permite realizar autenticación en sistemas Windows utilizando el usuario y el hash obtenido, sin necesidad de su crackeo previo para averiguar la contraseña. Metasploit, el framework por excelencia para la realización de tests de intrusión, permite la introducción de hashes como autenticación (en lugar de la contraseña) tanto para módulos como para exploits que así lo requieran. Un lujo para no tener que dedicar horas a la obtención de contraseñas mediante crackeo que nos harían perder tiempo en situaciones en las que suele ser muy limitado.

Obviamente, la desventaja es si necesitamos acceder a un servicio que tenga integrada la autenticación con el directorio activo, ya que al no disponer de la contraseña y únicamente el hash, no podremos acceder a él. Esta autenticación NTLM nos la podremos encontrar por ejemplo para acceder a sistemas de administración de dispositivos (los cuales disponen de consola HTTP o HTTPS).

Pues bien, echando un vistazo a las slides de la charla que dieron Alva ‘Skip’ Duckwall y Chris Campbell en la BlackHat USA 2012, llamada Still Passing the Hash 15 Years Later… (video disponible en este enlace de Youtube), podremos hacernos con un conjunto de herramientas las cuales han sido parcheadas para que puedan realizar autenticaciones NTLM con usuario y hash una vez lo requieran, como por ejemplo, Samba, WMI, etc.

También publicaron (tanto para Windows como para Linux) una versión del navegador Mozilla Firefox que permite introducir hashes en lugar de contraseñas para realizar autenticación NTLM en servicios que así lo requieran, únicamente activando una opción de la configuración. La slide en la que lo presentan es la siguiente (número 46):



La opción de configuración se puede encontrar, accediendo al about:config y buscando la directiva network.auth.force-generic-ntlm para establecerla de su valor por defecto, false, a true:

Valor por defecto para la directiva network.auth.force-generic-ntlm

Estableciendo a true la opción network.auth.force-generic-ntlm
Sin duda, algo que nos ayudará a no utilizar esta técnica indispensable únicamente en Metasploit. En el mismo repositorio, los autores de la charla han parcheado algunas otras aplicaciones para permitir introducir hashes como contraseñas en caso de requerir autenticación NTLM, como por ejemplo, el cliente web por consola curl o la propia libreria libcurl, además de WMI y WinEXE, clon de psexec. 

En Kali se pueden encontrar un buen conjunto de binarios parcheados para permitir la autenticación NTLM a partir de hashes. En su mayor medida, el parcheo consiste en añadir una opción más de autenticación para que, si se incluye una cadena de texto de longitud NTLM se realice un Pass-The-Hash en vez de autenticación regular. Estos binarios los tenéis ya disponibles, comenzando todos por "pth-":


[+] Blog de passing-the-hash
[+] Repositorio Google Code de la Pass-The-Hash Toolkit
Leer más...

05 septiembre 2012

Trucos para la consola de Windows

Tomo prestada la idea del magnífico blog de Open Security Research para, imitando a las antiguas revistas de papel, publicar algunos trucos de la famosa línea de comandos de Windows 7/2008. Algunos más enfocados a seguridad, otros simplemente prácticos.

1.- Ejecutar CMD como Administrador.
Aunque realmente sirve para cualquier comando, si se pulsan las teclas control+shift y la tecla enter,  una vez se ha buscado por "cmd" en el buscador de Windows 7, directamente se ejecutará con permisos de Administrador. Es una tontería, pero una vez te acostumbras, desplegar las opciones con el botón derecho del ratón para irse sobre "Ejecutar como administrador", se vuelve casi molesto.


2.- Configuración del firewall.
El comando netsh (Network Shell), sirve para manejar la configuración de red del sistema. Es bastante completo y permite definir un interfaz con direccionamiento DHCP, con una IP estática o incluso mostrar la configuración del firewall de un perfil.

Para ver un resumen: netsh advfirewall show currentprofile


Para obtener las reglas del firewall: netsh advfirewall firewall show rule name=all


Para deshabilitarlo: netsh firewall set opmode disable

3.- Restablecer Winsock2 y TCP/IP.
Con netsh también se puede restablecer la configuración de Winsock2 y TCP/IP si se detectan problemas de conectividad y algunos expedientes X de red (esas cosas que pasan a veces en Windows y que no se solucionan mirando el /var/log/messages)

4.- Contraseña de una conexión Wireless en texto claro.
Mediante el mismo netsh existe la opción de generar un fichero de configuración del perfil actual de la conexión de la configuración wireless. Este fichero almacenará en texto claro (en formato hexadecimal), la contraseña que utiliza el sistema para conectarse al punto de acceso.

Guardar la configuración en el directorio actual: netsh wlan export profile folder=. key=clear




5.- Borrar registro de eventos.
Con el comando wevtutil se gestionan los logs de los sistemas Windows, configuración, borrado, almacenamiento, etcétera. Es bastante completo y para aprender a usarlo nada como leerse su documentación.

Para eliminar los registros de Seguridad, System y Application:
  • wevtutil cl "Security"
  • wevtutil cl "System"
  • wevtutil cl "Application"

6.- Datos del sistema de WMI.
Utilizando el comando wmic es posible hacer consultas al Windows Management Instrumentation (WMI), que entre otras cosas, almacena decenas de tablas con información sobre el sistema.

Algunos ejemplos:
  • Lista completa y detallada de usuarios: wmic useraccount list full
  • Lista de usuarios de sistema: wmic sysaccount list full
  • Direcciones IP y nombres de interfaz de red: wmic nicconfig get index,description,ipaddress
  • Lista de procesos (sustituto de tasklist): wmic process list brief

7.- Modificar el prompt.
Al igual que en Linux se modifica el PROMPT con la variable PS1, en Windows es posible con el comando prompt.
  • Prompt por defect: prompt $p$g
  • Prompt con el nombre del sistema, de usuario y la ruta: prompt [%computername%] [%username%] $p$g

8.- Cambiar color de la terminal.
Para cambiar los colores de la consola no hace falta irse a las propiedades, desde línea de comando y con un simple "color 0a", estaremos en un viejo fósforo P1 a lo Matrix.


El "0" representa el color de fondo (negro) y la "a", el verde de las letras. Con color /? se consultan todas las posibilidades. Otra mucho más útil: color f0, blanco sobre negro, muy práctica para las capturas de pantalla.

9.- Consultar los ficheros que abre cada proceso.
En Windows también se puede averiguar (sin necesidad de herramientas como handle de sysinternals) los ficheros que están abiertos por cada proceso al igual que se hace en Linux con lsof.

Primero se habilita openfiles con la instrucción: openfiles /local on



Una vez se reinicia el sistema (esta es la única pega), tan solo hace falta ejecutar el comando: openfiles


10.- Cambiar el tamaño de la consola.
Ya que el propio cmd no deja redimensionarse horizontalmente, para hacerlo directamente desde el propio cmd sin tener que abrir sus propiedades, se utiliza el comando: mode, seguido de las columnas y líneas que se desean:

Establecer una ventana de 80 caracteres de columna y 40 líneas: mode 80,40


11.- Comparar archivos de texto y buscar textos
También es posible comparar archivos de texto usando fc, que mostrará las diferencias entre ambos, similar al comando diff de sistemas unix:

Diferencias entre el archivo 1.txt y 2.txt (uno tiene la letra d y otro no): fc 1.txt 2.txt


También es posible buscar una cadena de texto pasando por una tubería con el comando "find", tal y como se hace con grep:
  • Buscar los archivos que contengan la cadena 'dll': dir | find "dll"
  • Una alternativa es usar el comando findstr
12.- Copias incrementales de ficheros.
Para copiar un directorio y todo su contenido recursivamente, pero tan solo aquellos ficheros que no estén en el destino. Es decir, incrementalmente y manteniendo fechas de timestamp, se puede usar el comando robocopy.

Copia del directorio c:\tmp al directorio c:\tmpbackup:

robocopy c:\tmp c:\tmpbackup /copyall /dcopy:t /mir


13.- Histórico de comandos.
Tan solo pulsando la tecla F7 se abrirá un pseudo pop-up con los últimos comandos ejecutados. Al igual que ocurre cuando se pulsa sobre la tecla de cursores arriba, solo que visualmente.



14.- Averiguar qué proceso abre un puerto.
En Windows 7/2008 existe la posibilidad de conocer cuál es el proceso que está haciendo bind de un determinado puerto con el comando netstat. Tal y como hace el famoso tcpview, solo que desde línea de la terminal.

Para listar todos los puertos y mostrar los ID del proceso que lo usa: netstat -ano
Posteriormente se usa "tasklist" para listar los procesos y "findstr" para filtrar el contenido en base a una cadena de texto.


15.- Copiar al portapapeles la salida de un comando.
Para almacenar la salida de un comando en el portapales directamente, tan solo hay que usar una tubería y el comando clip



Referencias:
Leer más...

11 noviembre 2011

Hoy vamos a hablar de estas funcionalidades de Windows que, bien aprovechadas y dándoles un nuevo enfoque, pueden ofrecernos un método infalible para tareas que anteriormente supondrían utilizar técnicas más engorrosas.

Durante un pentesting típico, uno de los objetivos principales es el de poder acceder, por lo menos, a un sistema, y conseguir credenciales válidas con privilegios máximos que nos permitan comprometer el sistema e incluso otros de su entorno, a los cuales directamente no podríamos acceder en primera instancia. Si bien hasta hace un tiempo, el conseguir los hashes de un Administrador de un sistema Windows hacían que el siguiente paso fuese crackearlas y obtener la correspondiente contraseña, métodos como el pass-the-hash nos hacen poder quitar una barrera sobretodo temporal (el crackeo puede llevarnos segundos, minutos, horas, meses, décadas...), pudiendo autenticarnos en otros sistemas y realizar nuevos ataques utilizando directamente dichos hashes.

Para obtener los hashes, siempre que se tenía acceso físico al sistema, teníamos que recurrir a distribuciones del tipo Backtrack, arrancar la versión live-cd, montar el sistema de ficheros donde se encuentra la instalación de Windows, dirigirnos a la carpeta WINDOWS\system32\config, y ahí recuperar los ficheros system y SAM para seguidamente, utilizar herramientas bkhive y samdump2, como podréis comprobar en manuales típicos de cracking de contraseñas Windows. Si intentamos coger dichos ficheros SYSTEM y SAM de un sistema al que tengamos acceso y en ejecución para volcar los hashes de manera offline en otro equipo, aún siendo usuarios con privilegios máximos en el equipo local, obviamente el sistema operativo nos mostrará un error de que los ficheros se encuentran bloqueados por estar siendo utilizados, imposibilitando su copia a un dispositivo externo:


Pero esto se acabó. Aprovecharemos el Servicio de Instantáneas de Volúmen o Volume Shadow Copy Service (VSS), tecnología proporcionada por la propia Microsoft, cuya definición paso a describir, directamente sacada de la propia Wikipedia:

"El Servicio de Instantáneas de Volúmen (Volume Snapshot Service o Volume Shadow Copy Service o VSS), es una tecnología incluída en Microsoft Windows que permite hacer copias de respaldo tanto manuales como automáticas, también llamadas Instantáneas de datos, incluso si algunos de los archivos se encuentran bloqueados por estar en uso, en un volumen específico a una hora específica, en intervalos regulares."

Nada más que decir ¿verdad?. Casualmente, hace pocos días, Tim Tomes y Mark Baggett dieron una charla en la Hack3rCon II llamada "Lurking the Shadows", en la que, aprovechando esta tecnología, explicaban diferentes maneras de poder esconder malware en sistemas Windows, y también se comentó la posibilidad de acceder a ficheros que se suponían bloqueados por el sistema operativo. Mediante VSS, se crean "espejos" del disco duro incluso encontrándose en un sistema en ejecución, de una forma transparente para el usuario y accesible. Tim y Mark crearon un simple script en Visual Basic, VSSOwn.vbs, para interactuar con este servicio, que permite la creación de volúmenes, listado, eliminación y obtención de información en sistemas Windows. Se está trabajando para ser compatible al completo con otras versiones.

Copiemos el archivo y ejecutémoslo para ver sus opciones:


Queda bastante claro todo su potencial. Procedamos por tanto a poner en funcionamiento el servicio (con la opción /start, puede que ya se esté ejecutando) y a continuación, comprobamos con /status que el servicio se encuentra en ejecución y crearemos nuestra primera copia shadow (con la función /create) del disco duro C:




Para comprobar que la copia ha sido creada, ejecutamos la función /list para listar las copias presentes en el sistema:




El objeto lo podremos encontrar, para el ejemplo de la captura superior, en el dispositivo con ruta 

[*] Device object: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1

El script deja montar esta copia Shadow en una unidad, mediante la aplicación mklink. Como no se encuentra presente en una instalación nativa de Windows 2003 Server (sólo en Windows Vista y 2008), realizaremos el copiado de los ficheros SYSTEM y SAM directamente indicando como primer parámetro, el objeto enumerado anteriormente, seguida de la ruta directa a los ficheros dentro del directorio config, con los siguientes comandos:
  • copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\WINDOWS\system32\config\system .
  • copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\WINDOWS\system32\config\SAM .

¡Conseguido! Ya tenemos los ficheros system y SAM del sistema operativo en ejecución en nuestro Escritorio, para cómodamente copiarlos a un pendrive y así conseguir los hashes mediante bkhive y samdump2. La gran ventaja de este sistema es que la herramienta no es detectada por ningún antivirus, no como los típicos volcadores de hashes de los que disponemos hoy en día.

[+] Safely Dumping Hashes from Live Domain Controllers (pauldotcom.com)
[+] Tim Tomes and Mark Baggett Lurking in the Shadows - Hack3rcon II (video)
Leer más...

15 mayo 2008

Desde hace tiempo se han popularizado en determinadas paginas webs los denominados “teclados virtuales” que básicamente, consisten en simular un teclado en pantalla para introducir las credenciales sin emplear el teclado fisico, y por ende, evitando ser victimas de los Keyloggers . Este tipo de soluciones son muy habituales en las paginas webs de entidades bancarias. La solución, aunque existen numerosas “pruebas de concepto” circulando por Internet que posibilitan saltar estas restricciones, (Logeando posiciones del ratón o incluso directamente grabando el escritorio), resulta interesante, al menos, para quitarte de golpe todas las amenazas clásicas de las que adolecen los sistemas de usuario + contraseña. Por ello, vamos a presentar una solución / truco para poder disponer de un teclado virtual para cualquier web y aplicación. Windows (al menos desde Windows 2000) incorpora dentro del software de accesibilidad un teclado virtual accesible desde:


Inicio --> Ejecutar --> osk.exe



Como se puede ver, es un teclado plenamente funcional que se superpone al resto de aplicaciones que tengamos abiertas. Puede ser interesante tanto para teclear contraseñas en sitios que no disponen de teclados virtuales (por ejemplo www.facebook.com www.gmail.com) o bien para introducir contraseñas en clientes de mensajeria instantánea o correo electrónico.
Leer más...