nishang: usando PowerShell para pentesting

Nishang es un framework con una colección de scripts y payloads que te permitirá usar PowerShell para realizar diversos ataques y tareas post-exploitación durante un pentest. La versión actual 0.2.1 incluye las siguientes utilidades:
  • Base64ToString.ps1: script que decodifica una cadena en base64.
  • Wait_For_Command.ps1: Payload que peticiones a una URL esperando instrucciones y descarga y ejecuta un script powershell.
  • Browse_Accept_Applet.ps1: Payload que navega silenciosamente por una URL y acepta un aviso de ejecución de un Applet de Java.
  • Credentials.ps1: este payload abre un prompt que solicita las credenciales del usuario y no se cierra hasta que se introducen los datos.
  • DNS_TXT_Pwnage.ps1: Payload que actúa como un backdoor y es capaz de recibir comandos y scripts PowerShell mediante peticiones DNS TXT.
  • Download.ps1: Payload para descargar un fichero en el directorio temporal del usuario actual.
  • Download_Execute.ps1: Payload para descargar un ejecutable en formato texto, convertirlo de nuevo a ejecutable y ejecutarlo.
  • Enable-DuplicateToken.ps1: payload que duplica el token de acceso de lsass y lo pone en el thread del proceso actual.
  • Execute-Command-MSSQL.ps1: payload que puede ser usado para ejecutar comandos remotamente en un servidor MS SQL.
  • ExetoText.ps1: Payload para convertir un ejecutable en un fichero de texto.
  • Get-LSASecret.ps1: payload que muestra los LSA Secrets del equipo local.
  • Information_Gather.ps1: Payload que obtiene información útil del objetivo y la sube a pastebin como un post privado. La info también es visible desde la consola.
  • Invoke-Medusa.ps1: payload que ejecuta un ataque de fuerza bruta contra SQL Server, Active Directory, Web y FTP.
  • Invoke-PingSweep.ps1: payload que escanea direcciones, puertos y hosts.
  • Keylogger.ps1: este payload registra todas las teclas del usuario y las escribe en el fichero key.log dentro del directorio temporal del usuario (mala idea). Las información capturada también se pega en pastebin como un post privado.
  • Parse_Keys.ps1: script para parsear las información obtenida por el keylogger.
  • Speak.ps1: Payload que "habla" la frase que le indiques.
  • StringToBase64.ps1: script que codifica una cadena a base64.
  • TexttoExe.ps1: Payload que convierte un fichero PE en hexadecimal a ejecutable.
  • Time_Execution.ps1: Payload que espera el tiempo indicado para ejecutar un script.
Todos estos scripts y payloads son compatibles con Get-Help, es decir, utiliza "Get-Help -full" en un prompt de PowerShell para obtener el detalle de la ayuda para cada uno de ellos.

Y recuerda que para permitir la ejecución de scripts Powershell en un equipo puede que sea necesario modificar la política de ejecución:

 
PS D:\nishang_0.2.1>  Set-ExecutionPolicy Unrestricted

Cambio de directiva de ejecución
La directiva de ejecución le ayuda a protegerse de scripts en los que no confía. Si cambia dicha directiva, podría
exponerse a los riesgos de seguridad descritos en el tema de la Ayuda about_Execution_Policies en
http://go.microsoft.com/fwlink/?LinkID=135170. ¿Desea cambiar la directiva de ejecución?
[S] Sí  [N] No  [U] Suspender  [?] Ayuda (el valor predeterminado es "S"):
PS D:\nishang_0.2.1>

Comentarios