HE04_Resumen

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

HE04.

Consolidación y utilización de sistemas


comprometidos
o Para gestionar un sist.comprometido utilizamos técnicas de Admón de sistemas de manera remota
 Necesario conocer concepto Admón de sistemas comprometidos de manera remota
 Herramientas Meterpreter Capacidades
 Comandos básicos - Comandos del sistema
 Comandos de red - Carga dinámica de módulos
 Keylogger - Elevación de privilegios
 Volcado de hashes - Borrado de huellas
o Las credenciales son vulnerables mediante Ataques y auditorías de contraseñas Tipos de ataques
 Password guessing
o Requisitos : Recopilación de usuarios -Recopilación de contraseñas
o Herramientas Hydra - Medusa - ncrack -Patator
 Otros ataques a contraseñas Igualmente importantes
 Tablas Rainbow - Contraseñas por defecto
 Password cracking
o Requisitos Hashes - Diccionarios
o Herramientas JhonTheRipper - hashcat
o Accedemos a otras redes gracias a Pivotaje en la red
 Distintas técnicas
o Pivoting con SSH
o Pivoting con HTTP Herramientas : - reGeorg - pivotnacci
o Pivoting con meterpreter
 Para utilizarlo Cliente proxy Herramientas
o Navegador web - Proxychains
o Mantenemos el acceso con Instalación de puertas traseras
o Tipos
 Persistencia en servicio con ejecutable generado
 Persistencia en servicio - Persistencia en registro
o Herramientas - C2 - Metasploit
o Necesario conocer el concepto de Persistencia
1.- Administración de sistemas de manera remota.
1.1.- Introducción admin. sistemas de manera remota. 1.2.- Meterpreter.
2.- Ataques y auditorías de contraseñas.
2.1.- Tipos de ataques a contraseñas. 2.2.- Password guessing.
2.3.- Password cracking. 2.4.- Otros ataques de contraseñas.
3.- Pivotaje en la red.
3.1.- Pivoting con SSH. 3.2.- Pivoting con meterpreter.
3.3.- Pivoting con HTTP. 3.4.- Utilizando el proxy.
4.- Instalación de puertas traseras. (Persistencia)
4.1.- Introducción a la persistencia. 4.2.- Tipos de persistencia.

1.- Administración de sistemas de manera remota.


La admin.sistemas remota permite, entre otros, modificar config.y caract.de un equipo remoto siempre que
tengamos privilegios las tareas. Un atacante, en un principio, no dispone de acceso a máquina remota y
debe conseguir un 1º acceso con vectores de ataque (Unidad 03). Una vez tiene ese primer vector de
acceso  shellcodes y payloads inyectados en equipo remoto xa poder administrar sistema remotamente.
Dependiendo del SO, dispondremos de shellcodes de admin.remota que nos devolverán un intérprete de
comandos del equipo remoto o shellcodes más avanzadas que nos permitan realizar tareas más complejas
que permitan admón remota del sist. comprometido de una manera más sencilla.
1.1.- Introducción a la administración de sistemas de manera remota.
Tras comprometer la máquina remota, se inicia el proceso de Postexplotación que se separa por una fina
línea de la de explotación (su motivo es prácticamente idéntico pero en Postexplotación ya partimos de un
sistema comprometido y el objetivo es administrar el equipo víctima para pivotar en la red o establecer
ciertas opciones de persistencias que nos garanticen accesos sucesivos al equipo).
Dependiendo del SO víctima + o - posibilidades de gestión. Existen payloads más avanzados para Microsoft
que para Linux. El tipo de acciones posibles en sistema remoto mucho mayor si usuario con el que se ha
conseguido acceso tiene privilegios elevados, hay ciertas tareas administrativas que sólo si payload
ejecutando con usuario privilegiado.
1.2.- Meterpreter.
Meterpreter es un payload avanzado de tipo shellcode presente en Metasploit (Windows pero tb hay xa
android y java). Es extensible de manera dinámica mediante la inyección de librerías dlls  se pueden
cargar módulos en el equipo comprometido dinámicamente en caso de que sean necesarios para acción
concreta en fase Postexplotación. Se ejecuta en memoria sin dejar ningún trazas en disco. Puede inyectarse
en distintos procesos siempre que tengamos privilegios elevados para modificar contexto del proceso en el
que se inyecta.. A continuación se muestran los comandos de meterpreter más utilizados:
Comandos básicos y manipulación del sistema de ficheros
 ls: Listar ficheros, directorios. - mkdir: Crea dir.en sistema ficheros remoto.
 upload file: Transfiere fichero al sist. remoto. - download file: Descarga fichero del eq.remoto.
 background: Pone la sesión de meterpreter en background y regresa a la consola de Metasploit.
Comandos del sistema: Permiten interactuar con procesos del sistema, incluso generar nuevos procesos.
 getpid: Indica el proceso al que está inyectado la shellcode meterpreter.
 ps: Lista procesos del sistema remoto.
 migrate “id_proceso”: Migra proceso de meterpreter a otro. Normalmente a un proceso siempre
activo como “explorer.exe”
 execute “comando”: Ejecuta un comando en el sistema remoto.
 getuid: Muestra el contexto del usuario con el que se está ejecutando meterpreter.
Comandos de red: Para comprobar los datos de red en el equipo remoto:
 ipconfig: Muestra las propiedades de red del equipo remoto.
 netstat: Muestra conexiones establecidas actualmente formato IP:Puerto de origen IP:Puerto destino
Carga dinámica de módulos: Que no vienen precargados por defecto en meterpreter.
 load kiwi: Carga módulo Mimikatz  extrae info.sensible de la RAM de Windows (hashes,
credenciales en claro, tokens, etc).
 load incognito: Carga el módulo de incognito, para impersonar usuarios con sesión iniciada en el
equipo remoto impersonando los tickets de Kerberos.
 load priv: Carga un módulo para técnicas de elevación de privilegios.
 load sniffer: Carga módulo para capturar y monitorizar la actividad en red del sistema remoto. Luego
se puede utilizar wireshark para acceder a las capturas de red recopiladas.
Keylogger: Inicia un keylogger en la máquina remota para capturar todas las pulsaciones de teclado.
 keyscan_start: Inicia el Keylogger en la máquina remota.
 keyscan_dump: Vuelca todas las pulsaciones de teclado desde el último dump realizado.
 keyscan_stop: Finaliza el Keylogger.
Elevación de privilegios
 getsystem: Utiliza 4 técnicas <> para intentar elevación privilegios en sistemas Microsoft Windows.
Volcar hashes; Si acceso privilegiado vuelca hashes (repres.criptográfica de credenciales del sist.remoto)
de contraseñas usuarios de Microsoft Windows.
 hashdump: Recoge hashes de usuarios de Windows máquina remota.  se pueden crackear para
obtener contra.usuario o utilizarse para autenticarse en sistema mediante técnicas “Pass the Hash”.
Borrado de huellas: Elimina trazas en el equipo remoto, también necesita acceso privilegiado.
 clearev: Borra logs del registro de eventos de Microsoft Windows.

2.- Ataques y auditorías de contraseñas.


Las contraseñas son el método más utilizado para proceso de autenticación los ataques a contraseñas, y
a su representación vía hash, son uno de los vectores de ataque a tener en cuenta.
2.1.- Tipos de ataques a contraseñas.
Password Guessing: Intentar adivinar credenciales para acceso al sist, suele ser en formularios de acceso
web o en Ss de terminal remota, como por ejemplo FTP, Telnet y SSH.
 Suelen generar mucho tráfico y logs en víctima - Situaciones de bloqueo de cuentas
Password Cracking: Obtenemos lista usuarios y contras del sistema protegidas mediante cifrado (ej.hash).
 El proceso para obtener credenciales desde hash  offline..
 Se requiere compromiso parcial del sistema analizado.
Default passwords: Ultimamente menos habitual, muchos dispositivos de red y Ss presentan un “usuario
por defecto” con privilegios elevados con contraseña predefinida.
 Si no se ha cambiado la contraseña  se puede acceder al sist.con las credenciales por defecto.
2.2.- Password guessing.
Requisitos: Necesitamos recopilar info. previa y usar herr. que automatizan proceso autenticación.
 Usuarios de los sistemas. - Diccionarios posibles contraseñas. - Apps de fuerza bruta.
Recopilación de usuarios: Necesitamos listado posibles usuarios, para ello técnicas de reconocimientos
de usuarios vistas anteriormente en la Fase de escaneo.
 Linkedin - The harvester - OSINT
Recopilación de contraseñas: Necesitamos diccionario posibles contraseñas.
 Diccionarios de contraseñas públicos - Recopilación de contraseñas con CeWL
Diccionarios de contraseñas públicos Existen listados de posibles contraseñas ajustadas a idiomas,
temática etc. Necesario diccionario lo más ajustado y reducido posible contras x tiempo técnicas.
 https://wiki.skullsecurity.org/Passwords - https://github.com/danielmiessler/SecLists
Recopilación de contraseñas con CeWL Aplicación de ruby que realiza “spidering” sobre una URL con
una profundidad especificada por usuario y devuelve lista palabras para posterior fase de ataques de fuerza
bruta. Soporta autenticación tanto por usuario+contra. como cookies para realizar trabajo en parte privada
de la aplicación.
Observar un sitio y escribir todas palabras encontradas en un archivo (-w)
Hacer crawling de la página y seguir enlaces a otros sitios (-o)
Establecer profundidad y longitud
de palabra mínima (-d –m)
Herramientas
Una vez recopilado listado usuarios y generado listado de posibles contras, realizamos ataque de
averiguación contras con alguna de las herramientas que automatizan la ejecución de esta tarea.
Medusa Herramienta para realizar fuerza bruta usuarios y contraseñas en un servicio. Características más
importantes: Paralelismo de
conexiones. Fuerza bruta de login.
Soporta distintos protocolos y servicios
sobre los que realizar la autenticación
(listado de Ss sobre los que opera)
Ej. uso en el que se prueba la misma
contraseña sobre un listado usuarios
en prot.HTTP (password Spraying):

Ncrack Realizar fuerza bruta de usuarios y contraseñas en un servicio. Característica más importante es
que soporta paralelismo de conexiones. Ej. uso para averiguar contra. "usuario" offsec realizando
autenticación sobre prot.RDP:
Hydra Fuerza bruta usuarios y contras. en un servicio. Recomendada para fuerza bruta de "Community
Strings" del prot. SNMP. Ej. fuerza bruta SNMP
con comm.strings del dicc.password-file.txt.
Patator Herramienta altamente configurable que (entre otras) permite establecer condiciones evaluar
respuesta emitida por equipo remoto y considerar si credenciales introducidas son correctas. Ej, ataque de
password spraying sobre el servicio FTP:
2.3.- Password cracking.
Utilizar hashes de contraseñas para averiguar
contras. en texto claro. La única manera de
averiguar contraseña inicial con la que se generó
el hash es probar posibles combinaciones de
contraseñas y aplicar el algoritmo de hash. Si
hashes coinciden  hemos averiguado contra.
JhonTheRipper: Herramienta de cracking de
contraseñas, 2 versiones, la normal y la jumbo o
community (muchos más algoritmos de hashing).
Soporta paralelización procesos, pudiendo indicar núm cores de CPU xa proceso cracking. Soporta
permutaciones de misma contraseña indicando reglas para que realice transformaciones a cada contra del
dicc.. especificado
hashcat Soporta
más algoritmos de
hashing que jhon. Soporta procesamiento GPU. En hashcat se indica el algoritmo de hash con parámetro –
m seguido de id. indicando algoritmo de hash
Prueba contraseñas en base a máscara
indicando longitud mín y máx de la contras a probar, y tipo de carácter posible en cada posición
2.4.- Otros ataques de contraseñas.
Default passwords
Muchos dispositivos de red (switches, Firewalls, Routers, Impresoras, etc.) vienen de fábrica con contra
predefinida xa cambiar x usuario al configurarlos. Además, suele ser la misma xa todos dispositivos del
mismo modelo. Si el usuario no realiza cambio contraseña, atacante malintencionado con acceso al
dispositivo podría autenticarse. Tb existen herramientas de Software o Ss con misma problemática (usuarios
predefinidos con contra por defecto).
Tablas Rainbow
Las Tablas Rainbow están estrechamente ligadas al proceso de cracking de contraseñas. Son el resultado
de almacenar en tablas específicas una posible contra.usuario junto al hash generado al aplicar algoritmo a
esa contraseña. Se realiza mismo proceso de cracking pero de manera previa y se almacena el resultado
para luego poder ser utilizado tantas veces como se desee. Peculiaridades de la técnica:
 La generación de las tablas consume bastante tiempo (y dependiendo del alg.puede tardar bastante).
 Una vez que tabla se ha generado, buscar un hash en la tabla mucho más rápido que realizar todo el
proceso de cracking.
 La técnica de generar una "Tabla Rainbow" sólo puede realizarse con ciertos algoritmos de hashing.
Ej, algo que utilizan la técnica de "SALT" en la que se usan cadenas aleatorias añadidas a la contra.
antes de generar el hash.
 Algoritmos que utilicen el método "desafío respuesta" para generar un hash no pueden usarse en
este tipo de ataques xq no podemos conocer el valor del "desafío" utilizado para generar el hash.
3.- Pivotaje en la red.
Pivoting es el cjto técnicas para utilizar un sistema comprometido como “puente” xa acceder a otros equipos
o redes a las que no disponíamos de acceso previamente. Para realizar pivoting 1º comprometer un sist.
objetivo y obtener privilegios elevados (con privilegios de usuario estándar no tenemos permisos para crear
Ss de red a modo de proxy ni encaminar tráfico a través de la víctima). Las técnicas más utilizadas son:
3.1.- Pivoting con SSH.
Ssh ofrece posibilidad de conectarnos remotamente a
servidor SSH y tb permite establecer túnel entre cliente ssh y el
servidor que funcionará a modo de proxy socks.
Para usar esta técnica necesitamos disponer de credenciales
en servidor SSH que queremos utilizar a modo de router, es
decir, para pivotar en la red. Usando el operador -D del cliente
ssh, generaremos un proxy shock dinámico en la interfaz
localhost de nuestro equipo. Todas las comunic. a través de
este proxy se reenviarán a través del túnel SSH establecido
con la máquina víctima. Ej: inicia servidor proxysocks en puerto
TCP 9050 de nuestra interfaz localhost y todas las comunic. a
través de ese proxy se enrutan a través del túnel SSH contra
servidor SSH de la IP 192.168.0.15 (Que usamos como pivote)

Para establecer la comunicación con el Proxy


iniciado en nuestro equipo habrá que utilizar un
cliente proxy en el sistema. Usaremos
normlamente como clientes proxy:
Navegador web. Proxychains en Linux.
3.2.- Pivoting con meterpreter.
Meterpreter permite utilizarse como punto de pivoting para tunelizar conexiones de un atacante a la red
interna. Una vez comprometida la máquina remota con meterpreter, y teniendo una sesión activa, podemos
utilizar la sesión para enrutar el tráfico utilizando el comando route (muy similar al comando route utilizado
para establecer una ruta de red, pero en vez de indicar gateway para acceder a la red se indica una sesión
activa de meterpreter).
Ej: indica a Metasploit que
para acceder a la red 192.168.100.0/24 se enrute el tráfico a través de la sesión número 2 de meterpreter.
Cuando se establezca la ruta, todas las conexiones que se realicen desde Metasploit para acceder a la red
192.168.100.0/24 se enrutarán por la session 2 de meterpreter
Iniciando proxysocks en Metasploit
Si queremos que la ruta esté disponible para que desde otros programas se pueda utilizar este enrutamiento
habrá que hacer uso de un módulo auxiliar de Metasploit (socks_proxy) para que funcione como Proxy
Socks. Opciones de configuración:
 Requerir autenticación (user:password)
 IP en la q dará servicio el proxy (cualquier IP, localhost)
 Puerto en el que se inicia el proxy
 Versión del proxy socks (4a o 5)
3.3.- Pivoting con HTTP.
De mismo modo que si tenemos un sist. comprometido se
puede utilizar para pivotar. Tb podemos hacer acción similar si
tenemos podemos comprometer una web a través de “file
inclusion” (subir ficheros para generar
webshell).
Todas las herr. se basan en despliegue de
agentes en servidor web comprometido (sería
la webshell) y cliente que se pone en contacto
con el agente para enrutar tráfico.
reGeorg: Tiene disponibles 7 agentes distintos
(ashx, aspx, jsp, js y php) para que se puedan
desplegar en el servidor web comprometido.
Ej: levanta el proxysocks en puerto 8080 de
localhost para tunelizar a través de agente
web.
Pivotnacci: Tiene 3
agentes (aspx, jsp y
php) para desplegar en el servidor web comprometido. Características más importantes:
 Autenticación mediante contraseñas - Config. cabeceras HTTP (como host y agent)
Ej. Levanta el proxysocks en el puerto 1080 de localhost para tunelizar a través del agente web

3.4.- Utilizando el proxy.


Una vez iniciado algún proxysocks, tenemos que hacer
uso de los proxies implementadas para tunelizar las
conexiones hacia las redes internas.
Navegador web como cliente proxy: Si sólo
queremos el proxy para acceder a otros serv. web sin
acceso inicialm. podemos hacerlo directamente en nuestro
navegador web. En config. del navegador buscamos donde
se indica que use un determinado proxy web. Una vez se
indica que utilice el proxy cualquier navegación será
tunelizada a través de él.
Proxychains como cliente proxy: Si queremos tunelizar una
herramienta de consola a través de los proxies establecidos
deberemos utilizar proxychains. La config. de proxychains se
realiza a través del fichero /etc/proxychains.conf y se
establece el proxy a utilizar:
Ej: Indica a proxychains que use el proxysocks5 que hay en el puerto TCP 1080 de la interfaz localhost
Para usar cualquier herramienta con el proxy se pone “proxychains” delante del
comando que queremos tunelizar:

4.- Instalación de puertas traseras. (Persistencia)


Es común en ciertos entornos que las shell remotas que se han logrado ejecutar en los equipos
comprometido mueran de manera repentina. Numerosos factores que pueden desencadenar que shell
remota se termine de manera inesperada:
 Caída del sistema o apagado del equipo. - El proceso se vuelve inestable.
 Caída del servicio en el que se encuentra inyectado el proceso de la shell.
Ante estas situaciones, una solución puede ser volver a comprometer el sist.remoto a través de la
vulnerabilidad. Otra opción más adecuada  establecer persistencia en el equipo vulnerado, mediante una
puerta trasera o similar.
4.1.- Introducción a la persistencia.
Puede ser necesario mantener el acceso al equipo
comprometido (con el nivel privilegios obtenido) xa volver
a acceder xa realizar alguna tarea, extraer info, o usarlo de
puente para pivotar a otras redes. Además es posible que
el vector de acceso usado para comprometer el equipo ya
esté solventado y no pudiéramos acceder de nuevo (y si no
tb tendríamos que volver a explotarla como la 1ª vez).
Para evitar todo esto se puede dejar un acceso secundario
(“backdoor”) que permanece oculto y a la espera de
ordenes para reactivarse. Normalmente se utilizan serv. de
control conocidos como “C2C” (Command & Control), a los que el equipo comprometido se conecta cada
cierto tiempo a la espera de recibir ordenes y si el auditor quisiera establecer la conexión se lo indica a la
víctima a través del servidor C2C que se lo comunica a la víctima para que ésta realice una conexión inversa
contra otro servidor que controle el atacante.
4.2.- Tipos de persistencia.
Las opciones más comunes de persistencia son:
 Persistencia en servicio - Persistencia en registro - Persistencia en cron/tareas automáticas.
Handler / servidor C2 Para realizar la persistencia necesitamos configurar servidor C2 (Command and
Control) que atenderá las conexiones de persistencia. Metasploit dispone de un servidor C2 llamado
“Multihandler” dado que soporta la gestión de distintos payloads.
Una de las opciones a configurar aleatoriamente consiste en la selección del payload que está ejecutando la
víctima para que el Multihandler sepa como comunicarse la shellcode que se ha inyectado en el equipo
víctima:

Hay que configurar las opciones del


multihandler IP y Puerto en que opera el
multihandler y el proceso. Hay que indicar la
misma config.para el payload que se inyectará a la víctima.
Otra opción a configurar en el multihandler es indicarle que al recibir la 1ª sesión el Handler se siga
ejecutado y así pueda gestionar todas las shells de meterpreter que vaya recibiendo con esa configuración
(En caso contrario sólo gestionaría una shell.)  valor de la variable "ExitOnSession" a "False"
Una vez configuradas todas las opciones,
iniciaremos el handler como un job para que se
mantenga hasta que salgamos de Metasploit. Con el comando jobs
podremos ver si está activo, e incluso pararlo.
Persistencia con meterpreter
Una vez establecido el servidor Multihandler ya
podemos realizar el proceso de persistencia
(tenemos servidor C2 que gestiona las
conexiones). Meterpreter dispone de opciones
de persistencia que permiten configurar equipo
víctima (Windows) para que se conecte con
máquina atacante cada cierto tiempo.
Metasploit dispone de varios módulos de postexplotación para persistencia:
 exploit/windows/local/persistence_service - exploit/windows/local/registry_persistence
 post/windows/manage/persistence_exe
Persistencia en servicio con Metasploit Consiste en generar un servicio fraudulento (Windows) al que
iniciará la conexión contra el C2 cada vez que se inicie el servicio. Para poder instalarlo necesitamos
privilegios elevados. Metasploit dispone de un módulo para instalar serv.fraudulento con una sesión
privilegiada de meterpreter.
Se indicarán la dirección IP y puerto del
servidor C2 y la sesión de meterpreter en la máquina comprometida sobre la que se aplica la persistencia.

Una vez configurado se ejecuta con orden "run". Si todo ok se crea nuevo servicio en sistema remoto y el
multihandler recibirá la conexión de la shell inversa y se generará una nueva sesión.
Pers.en registro con Metasploit
Consiste en modificar el reg. Windows
para que ejecute un proceso, que
realizará la conexión contra el C2,
siempre que un usuario inicie la sesión
en el equipo. Dependerá de los
priv.usuario que la sesión tenga
privilegios elevados. Metasploit dispone
de un módulo para instalar un
ejecutable fraudulento a través de una
sesión de meterpreter. Se debe indicar dirección IP y puerto del servidor C2 y la sesión de meterpreter. Run.

Persistencia en registro con Metasploit y ejecutable generado


Similar al caso anterior, pero indicamos el ejecutable .exe que queremos que se ejecute en cada inicio de
sesión del usuario. La ventaja es que podríamos forzar la ejecución de otra shellcode distinta y podemos
generar una shellcode ofuscada con msfvenom. Metasploit dispone de un módulo para subir el binario y
modificar el registro a través de una sesión de meterpreter. Se configura y run.

Las opciones a indicar será la sesión de meterpreter sobre la que se aplica la persistencia y el ejecutable
que queremos que realice la persistencia (lo generamos con la herramienta msfvenom y la dirección ip y
puerto del servidor C2 se encuentran configurados en el propio fichero ejecutable).

También podría gustarte