Quantcast
Channel: hackplayers
Viewing all 1660 articles
Browse latest View live

Nueva versión fortificada de Tor Browser con Selfrando para mejorar ASLR

$
0
0
Ya sabemos que, a parte de aprovechar ciertas debilidades en los protocolos de red, la principal alternativa para desanonimizar a los usuarios de Tor es intentar explotar las vulnerabilidades del software utilizado para acceder a la red de Tor. Como la forma más habitual para acceder a la red de Tor es usar el Tor Browserque se basa en Firefox, muchos de los ataques se basan en explotar las vulnerabilidades de este navegador. Por ejemplo el FBI ya lo hizo en 2013 y actualmente es sabido que sigue monitorizando la red de Tor mediante un ataqueideado porinvestigadores de la Universidad de Carnegie Mellon.
 
Hace unas semanas un grupo de investigadores de la Universidad de California, Irvine (UCI), publicaron un interesante paper llamado “Selfrando: Securing the Tor Browser against De-anonymization Exploits”. En dicho paper se presentaba Selfrando,  una técnica mejorada de randomización en tiempo de carga que puede implementarse en Tor Browser para defender a los usuarios de Tor contra ataques que permitan desanonimizarlos.

Básicamente consiste en variar la superficie de ataque, es decir el diseño de código, mediante la aleatorización de cada función por separado. Esto hace que escribir en memoria sea más difícil y aumenta la resistencia a la fuga de información de técnicas tradicionales de ASLR (Address Space Layout Randomization).



Podéis echar un vistazo a la página del proyecto en Github donde tenéis más información y las instrucciones para instalarlo en Linux: https://github.com/immunant/selfrando

Al hilo de ésto, a principios de junio Tor Project anunció la publicación de una versión fortificada de su navegagor Tor Browser, la 6.5a1-hardened, que implementa Selfrando para proteger de esta manera contra cierto tipo exploits (sobretodo desbordamientos de buffer) que puedencomprometer a los usuarios de Tor.


Además Selfrando es compatible con AddressSanitizer (ASan), una característica implementada en Firefox para detectar corrupción de memoria, y se demostró que su uso supone menos de 1% más de carga.

Así que si usas Tor y quieres navegar con un plus añadido de seguridad ya sabes: utiliza la última versión "hardened":

https://dist.torproject.org/torbrowser/6.5a1-hardened/

Mujeres de #InfoSec a las que seguir en Twitter

$
0
0
Por supuesto que el mundo de la ciberseguridad no es exclusivo del género masculino. Si bien todavía son mayoría los hombres, cada vez hay más y más mujeres profesionales y entusiastas de la seguridad TI, yo ya he tenido muchas y muy buenas compañeras a lo largo de todos estos, faltaría más.

En TechBeacon han recopilado una interesante lista de cuentas de Twitter de mujeres hackers, pensadoras estratégicas y expertas en seguridad informática que no debéis perderos. Como veréis la mayoría son anglosajonas (de EE.UU. o UK), así que si conoces más perfiles interesantes a los que seguir, de habla hispana o incluso de esos o de otros países, no lo dudes y comparte!

  1. Window Snyder (@window): es la CSO de Fastly y co-autora de Threat Modeling, una guía práctica para la seguridad de aplicaciones.
  2. Lesley Carhart (@hacks4pancakes): trabaja para respuesta de incidentes en Motorola Solutions y se define como una princesa ciber-guerrera de amplio espectro. Su sitio web es tisiphone.net. 
  3. Sandra Toms (@sandra001): una geek del big data y también (nada más y nada menos) la vicepresidenta y comisaria de la Conferencia RSA.
  4. Jen Ellis (@Infosecjen):  vicepresidenta de la comunidad y asuntos públicos de Rapid7. Se centra en que todos trabajen juntos y en avanzar en el diálogo en la industria.
  5. Shannon Leitz (@devsecops): ingeniera de seguridad de la información y en la nube en Intuit. En 2014, Shannon recibió el Premio Scott Cook por desarrollar un innovador Programa de Seguridad en la Nube que permite proteger los datos sensibles en AWS.
  6. Kasha Gauthier (@kashagauthier): Kasha es directora de estrategia y marketing de RSA. También está en el comité de la Iniciativa Nacional para la Ciber Educación (NICE).
  7. Wendy Nather (@RCISCwendy): es la directora de investigación de Retail Cyber Intelligence Sharing Center. Su blog es http://idoneous-security.blogspot.com/
  8. Juliette Kayyem (@juliettekayyem): es la autora y anfitriona del podcast WGBH Security Mom. Recientemente, trabajaba como secretaria asistente del presidente Obama para asuntos intergubernamentales en el Departamento de Seguridad Nacional.
  9. Ann Barron-DiCamillo (@annie_bdc): es la directora de tecnología de Strategic Cyber Ventures. Tiene 18 años de experiencia en seguridad y en 2015 SC Magazine la nombró como una de las mujeres más influyentes en Seguridad de TI.
  10. Emili Evripidou (@Emil_i): es la gerente de seguridad de la información en Deloitte. También es fundadora y directora de Women in Security group, una organización sin ánimo de lucro destinada a elevar el perfil de las mujeres en el campo de seguridad de la información.
  11. Cecily Joseph (@cecilyjosephcr): es la vicepresidenta de la responsabilidad corporativa de Symantec. En la Comisión de San Francisco recibió el Premio de Derechos Humanos sobre la Condición de la Mujer por su trabajo en la promoción de la igualdad de género.
  12. Christina Ayiotis (@christinayiotis): es una abogada especialista en ciberseguridad reconocida internacionalmente. Actualmente es consultora de Cyber Sabbatical.
  13. Runa A. Sandvik (@runasand): es director de seguridad de la información en The New York Times. Echa un vistazo a este impresionante vídeo hackeando un rifle de francotirador "inteligente".
  14. Katie Moussouris (@k8em0): es la jefa de política de HackerOne. En un esfuerzo por hacer que Internet sea más seguro, Katie aconseja a los legisladores, investigadores y clientes sobre seguridad.
  15. Eleanor Dallaway (@InfosecEditor): es editora de Infosecurity Magazine. Ha sido reconocida por su genialidad y fue ganadora del premio One to Watch en los Premios de las mujeres influyentes en Tecnología (EWT) de 2013.
  16. Bev Robb (@teksquisite): está trabajando actualmente como editora de tecnología de seguridad en Fortscale. Ella es una blogger de seguridad e investigadora de Darknet. Su blog es: https://teksecurityblog.com.
  17. Elinor Mills (@elinormills): es una entusiasta de la seguridad/hacker y vicepresidenta de contenidos y estrategia de medios en Bateman Group. 
  18. Masha Sedova (@modMasha): es directora senior de compromiso y confianza de Salesforce. Se puede extraer una de sus fantásticas presentaciones en la transformación de la conciencia de seguridad aquí.
  19. Parisa Tabriz (@laparisa): es la directora de ingeniería de seguridad de Chrome en Google. Es conocida por explotar los navegadores web antes de que los malos sean capaces de hacerlo.
  20. SecuriTay (@SwiftOnSecurity): añade un poco de humor de seguridad a tu día a día.
Actualizaciones
*(venga vamos entre todos añadiendo algunas cuentas más, no seáis timid@s y comentar para ir aumentando la lista ;) ):

PROTEIN, un script en powershell contra el ransomware

$
0
0
Ya hemos visto en el blog varias contramedidas para detener el ransomware cuando empieza con el proceso de cifrado de los archivos de la víctima, pero nunca está de más ver más herramientas y hoy les vamos a mostrar un script en powershell publicado directamente en Microsoft.

Se trata de PROTEIN ("PROTEcting your INformation - AntiRansomware") de Amador Pérez Trujillo alias @c0p3rnic0 que monitoriza activamente los archivos de un repositorio en busca de la actividad de ransomwares. Sus características principales (algunas todavía por implementar y/o mejorar) son:

- captura la acción de la creación de nuevos archivos, analizándolos y determina si son válidos o no para la empresa.
- identifica archivos conocidos (lista blanca), amenazas potenciales (lista negra) así como archivos desconocidos para su posterior procesamiento.
- registra cada acción de creación de archivos en el servidor.
- permite enviar alertas por correo electrónico a un administrador cuando se detecta un nuevo ransomware.
- también permite alertar directamente en pantalla a un usuario cuando se detecta un nuevo ransomware.
- desactiva el usuario de dominio afectado por ransomware, impidiendo el acceso al repositorio por el ransomware o a otros objetos críticos del sistema.
- desactiva la NIC del usuario afectado por el ransomware para bloquear el acceso a la red.

Instalación:

    ./protein.ps1 --install (selecciona el directorio a monitorizar, la ruta y el nombre de fichero de log y el email del administrador para alertas)
    ./protein.ps1 --configure(reconfigura las rutas o los directorios para monitorizar y para almacenar los logs, cambia el email)
   
Parámetros:

--monitor : empieza a monitorizar los directorios
--path: muestra en consola las rutas configuradas
--logs: muestra en consola los logs


Demos:


Descarga: https://github.com/c0p3rnic0/PROTEIN/archive/master.zip
Fuente: https://github.com/c0p3rnic0/PROTEIN

Actualizando cookies "al vuelo" con Repeater e Intruder (Burp Cookie JAR)

$
0
0
Cada vez es menos extraño encontrarse con aplicaciones web que modifican y validan un valor de cookie distinto en cada petición, de forma que normalmente cada nueva petición deberá contener la cookie enviada en la respuesta anterior. De esta manera se evitan vulnerabilidades de condiciones de carrera sin tener que modificar el código de la aplicación, ya que si se reciben varias peticiones simultáneas con el mismo valor de cookie sólo una tendrá éxito y las demás serán rechazadas.

Por ejemplo, una aplicación que funcione así enviará en la cabecera de la respuesta HTTP: "set cookies: uniqueID=Xyzabc123mnq" y si en la siguiente petición no se incluye ese uniqueID no tendrá el mismo comportamiento.

Esta implementación no afecta a los navegadores web ya que los valores de las cookies actualizadas se incluyen por defecto en la solicitud posterior. Sin embargo, si estamos auditando la aplicación web con Burp proxy, Intruder y Repeater no tienen esta propiedad por defecto y para poder lanzar ataques y realizar fuzzing respectivamente es necesario manejar sesiones y usar cookie-jar.

Ayer lo escenifican perfectamente
en el blog de McAfee:

Petición 1
Análisis de una aplicación de demo usando Repeater.



Petición 2
Copia del valor uniqueID 101 de la respuesta para usarlo en la petición posterior.



Petición 3
Si se envía la misma petición sin actualizar el valor de la cookie uniqueID la respuesta de la aplicación cambia:



Evidentemente cambiar este valor a mano usando Repeater puede ser un auténtico coñazo muy pesado, e igualmente la aplicación nos bloqueará Intruder al probar distintos payloads (XSS, SQLi o lo que sea). 


Afortunadamente Burp también permite copiar los valores de la cookie de las respuestas y añadirlos de forma automática en las siguientes peticiones. Sólo tenemos que usar cookie-jar y reglas de manejo de sesiones (session-handling).

Para ello, dentro de las Opciones vamos a la pestaña 'Sessions' y veréis que ya hay creada una regla llamada “Use cookies from the session handling cookie jar” que está habilitada por defecto para el 'spider' y el 'scanner'. Así que sólo tenemos que editarla y añadir el scope el 'intruder' y el 'repeater' y habilitarlo igualmente en Cookie Jar y ya lo tenemos:



Finalmentepodéis usar logger++ (una extensión gratuita en la BApp store) para comprobar que las siguientes pruebas realizadas con repeater ya actualizan automáticamente los valores de la cookie:
 



Referencias:
- https://blogs.mcafee.com/mcafee-labs/efficient-application-testing-burps-cookie-jar/
- https://portswigger.net/burp/help/options_sessions.html
- http://resources.infosecinstitute.com/burps-session-handling-mechanisms/

Ataques DoS "Slow HTTP" mediante SlowHTTPTest

$
0
0
pégeme despasito..
Los ataques "Slow HTTP" en aplicaciones web se basan en que el protocolo HTTP, por diseño, requiere que las peticiones que le llegan sean completas antes de que puedan ser procesadas. Si una petición HTTP no es completa o si el ratio de transferencia es muy bajo el servidor mantiene sus recursos ocupados esperando a que lleguen el resto de datos. Si el servidor mantiene muchos recursos en uso podría producirse una denegación de servicio (DoS).

Estos tipos de ataque son fáciles de ejecutar debido a que una sola máquina es capaz de establecer miles de conexiones a un servidor y generar miles de peticiones HTTP sin terminar en un período muy corto de tiempo utilizando un ancho de banda mínimo. 


Podemos dividirlos en cuatro tipos distintos según la técnica utilizada y lo bueno es que desde hace años podemos probarlos todos mediante la herramienta open-source SlowHTTPTest que podemos instalar fácilmente en nuestro Kali Linux (apt-get install slowhttptest) y también en otras distros de Linux, OSX y en Windows con Cygwin. 

Veamos entonces estos cuatro tipos de técnicas/ataques y un ejemplo del uso de SlowHTTPTest para probarlos:

- slow headers (Slowloris): consiste en enviar las cabeceras HTTP incompletas (sin el CRLF final que indica el final del header) de tal forma que el servidor no considera las sesiones establecidas y las deja abiertas afectando al número de conexiones máximas configuradas o maxclients.
slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://myseceureserver/resources/index.html -x 24 -p 3

- slow http post body (R-U-Dead-Yet): se envían peticiones POST con la cabecera HTTP completa e incluyendo un "Content-Length" con el tamaño en bytes del POST DATA a enviar. Luego se envían menos bytes que los indicados haciendo al servidor esperar sin rechazar la conexión.

slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u https://myseceureserver/resources/loginform.html -x 10 -p 3


- basado en range (Apache killer): se crean numerosas peticiones superponiendo rangos de bytes en la cabecera (HTTP ranges) agotando los recursos de memoria y CPU del servidor.
slowhttptest -R -u http://host.example.com/ -t HEAD -c 1000 -a 10 -b 3000 -r 500


- slow read: en este caso se envían peticiones HTTP legítimas pero se ralentiza el proceso de lectura de la respuesta retrasando el envío de ACK (HTTP es TCP).


slowhttptest -c 1000 -X -g -o slow_read_stats -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u https://myseceureserver/resources/index.html -p 3 

Fuentes:
- Identifying Slow HTTP Attack Vulnerabilities on Web Applications
- Slow DOS Attack: Why It Is Dangerous and How to Detect Using a SIEM
- Testing Web Servers for Slow HTTP Attacks
- Slow Read: nuevo mecanismo DoS de servidores web
- Slow HTTP POST vulnerability
- Are you ready for slow reading?
- Slow DoS on the Rise
- How to Protect Against Slow HTTP Attacks
- DoS website using slowhttptest in Kali Linux – slowloris, slow HTTP POST and slow Read attack in one tool   
- New Open-Source Tool for Slow HTTP DoS Attack Vulnerabilities
- Slowhttptest - Application Layer DoS attack simulator

Enviando información oculta cerrando y abriendo la unidad de CD-ROM

$
0
0
Todas las noches cuando enciendo mi viejo portátil, recorro el panorama actual de noticias incesantes y no dejo de sorprenderme. Créanme, después de tantos años es imposible agotar la curiosidad ante tanto ingenio. Prueba de ello es CDitter, un método para exfiltrar datos mediante el movimiento de la bandeja de un lector de CD-ROM ¡por fin vamos a volver a poder usarlo para algo! XD

El lector de CD-ROM es monitorizado por una Raspberry Pi y una cámara que estará pendiente de la salida/entrada de la bandeja del lector para interpretar estos movimientos mediante una simple codificación Manchester.

Escala de grises y procesado de imágenes


Transmitiendo el texto 'Hello'


emit.py – script para transmitir datos a través de una unidad de CD-ROM

Hace uso de un retraso de 4 segundos, tanto para el estado de la unidad de CD cerrada como abierta. Podría usarse menos tiempo pero se intenta evitar daños en la unidad.

#!/usr/bin/python
import os
import time

# Start with CD tray closed
os.system("eject -t")
time.sleep(15)
os.system("eject -T")
time.sleep(15)
os.system("eject -t")
time.sleep(15)

prev = 0

def emit(str):
    global prev

    for b in str:
        for i in range(0,8):
            bit = (ord(b) >> i) & 1
           
            if bit == 0:
                manc = [0,1]
            else:
                manc = [1,0]

            for bv in manc:           
                print(bv)
                if bv == 1:
                    if not prev == 1:
                        os.system("eject -T")
                    time.sleep(4)
                else:
                    os.system("eject -t")
                    time.sleep(4)
                prev = bv

emit("AZhello")

cditter.py– captura y decodifica la salida de la unidad de CD-ROM

#!/usr/bin/python
import math
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
import numpy as np
from itertools import tee

def window(iterable, size):
    iters = tee(iterable, size)
    for i in range(1, size):
        for each in iters[i:]:
            next(each, None)
    return zip(*iters)


def emit(str):
    global prev
    out = []
    for b in str:
        for i in range(0,8):
            bit = (ord(b) >> i) & 1

            if bit == 0:
                out.append(0)
                out.append(1)
            else:
                out.append(1)
                out.append(0)
    return out

preamble = emit("AZ")

def process(x):
    m = [sum(y) / len(y) for y in zip(*x)][1]

    for i in range(0,len(x)):
        v1=x[i:len(x)]
        new = []
        for v in v1:
            if v[1] > m:
                new.append(v[0])
                new.append(v[0])
            else:
                new.append(v[0])
        if new[0:len(preamble)] == preamble:
            mdec = mancdec(new)
            print("Data: ",tobytes(mdec[0:len(mdec) - (len(mdec) % 8)]))
            break
def binary(arr):
    m = 0
    s = 0
    for o in arr:
        s = s +(o * (2**m))
        m = m + 1
    return s

def mancdec(arr):
    out = []
    for i in range(0,len(arr),2):
        if arr[i:i+2] == [0,1]:
            out.append(0)
        elif arr[i:i+2] == [1,0]:
            out.append(1)
    return out

def tobytes(arr):
    out = ""
    for i in range(0,len(arr),8):
        bits = arr[i:i+8]
        out += chr(binary(bits))
    return out

camera = PiCamera()
camera.resolution = (320, 240)
camera.framerate = 30
rawCapture = PiRGBArray(camera, size=camera.resolution)
 
# allow the camera to warmup
time.sleep(0.1)
 
bits = []

# from http://www.pyimagesearch.com/2014/09/15/python-compare-two-images/
def mse(imageA, imageB):
    # the 'Mean Squared Error' between the two images is the
    # sum of the squared difference between the two images;
    # NOTE: the two images must have the same dimension
    err = np.sum((imageA.astype("float") - imageB.astype("float")) ** 2)
    err /= float(imageA.shape[0] * imageA.shape[1])
   
    # return the MSE, the lower the error, the more "similar"
    # the two images are
    return err


def extract(data):
    out = []
    x = [0,0]
    c = 0
    old = None

    for d in data:
        c += 1
        x[d] += 1
        if (not old == None and not d == old) or c == len(data):
            if c == len(data):
                out.append((d,x[d]))
            else:
                out.append((d^1,x[d^1]))
                x[d^1] = 0
        old = d

    nout = []
    for o in out:
        if o[1] > 3:
            nout.append(o)


    return nout
   
old = None
trained = False

imgl = []
trainv = []

for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    image = frame.array
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    gray = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)

    if not old == None and trained == False:
        #print(chr(27) + "[2J")
        print("Training...")
        count = 0
        simid = -1
        simv = float("inf")

        for img in imgl:
            s = mse(gray,img[0])
            if s < simv:
                simid = count
                simv = s

            count += 1
        print("Similarity: ",simv)
        if simv > 2600:
            imgl.append([gray,1])
            simid = len(imgl)-1
        else:
            imgl[simid][1]+=1
            imgl[simid][0] = gray

        trainv = []
        for i in range(0,len(imgl)):
            if imgl[i][1] > 20:
                trainv.append([imgl[i][0],imgl[i][1]])
            if len(trainv) == 2:
                break

        if len(trainv) == 2:
            print("Trained...")
            trained = True       
    
    elif trained:
        simid = -1
        simv = float("inf")
        count = 0
        for img in trainv:
            s = mse(gray,img[0])
            if s < simv:
                simid = count
                simv = s
            count += 1

        trainv[simid][0] = gray
        trainv[simid][1] += 1
        print(chr(27) + "[2J")
        print("Current bit: ",simid)

        bits.append(simid)
        d = extract(bits)
        if len(d) > 8:
            process(d)
    else:
        imgl.append([gray,1])

    old = image       
    rawCapture.truncate(0)

Raspberry Pi

Se necesitan las siguientes librerías para poder ejecutar el programa:

sudo apt-get update
sudo apt-get install python-opencv
sudo apt-get install python-pip
sudo pip install picamera
sudo pip install numpy

Repositorio: https://github.com/anfractuosity/cditter/

Lista de recursos para explotación en Windows

$
0
0
Pululando por la red encontré un proyecto en Github con una impresionante lista de recursos para explotar Windows, y otras cosas brillantes:

https://github.com/enddo/awesome-windows-exploitation

Si quieres aportar tu granito de arena no lo dudes y echa un vistazo su guía para contribuir. Alguna información tiene ya bastante tiempo pero merece la pena seguir la mayoría de los enlaces por el gran valor académico que tienen. A mi de momento me tendrá horasdías semanas entretenido ;)

bon appétit!

Windows stack overflows

Stack Base Overflow Articles.

Windows heap overflows

Heap Base Overflow Articles.

Kernel based Windows overflows

Kernel Base Exploit Development Articles.

Return Oriented Programming

Windows memory protections

Windows memory protections Introduction Articles.

Bypassing filter and protections

Windows memory protections Bypass Methods Articles.

Typical windows exploits

Exploit development tutorial series

Exploid Development Tutorial Series Base on Windows Operation System Articles.

Tools

Disassemblers, debuggers, and other static and dynamic analysis tools.
  • angr - Platform-agnostic binary analysis framework developed at UCSB's Seclab.
  • BARF - Multiplatform, open source Binary Analysis and Reverse engineering Framework.
  • binnavi - Binary analysis IDE for reverse engineering based on graph visualization.
  • Bokken - GUI for Pyew and Radare.
  • Capstone - Disassembly framework for binary analysis and reversing, with support for many architectures and bindings in several languages.
  • codebro - Web based code browser using clang to provide basic code analysis.
  • dnSpy - .NET assembly editor, decompiler and debugger.
  • Evan's Debugger (EDB) - A modular debugger with a Qt GUI.
  • GDB - The GNU debugger.
  • GEF - GDB Enhanced Features, for exploiters and reverse engineers.
  • hackers-grep - A utility to search for strings in PE executables including imports, exports, and debug symbols.
  • IDA Pro - Windows disassembler and debugger, with a free evaluation version.
  • Immunity Debugger - Debugger for malware analysis and more, with a Python API.
  • ltrace - Dynamic analysis for Linux executables.
  • objdump - Part of GNU binutils, for static analysis of Linux binaries.
  • OllyDbg - An assembly-level debugger for Windows executables.
  • PANDA - Platform for Architecture-Neutral Dynamic Analysis
  • PEDA - Python Exploit Development Assistance for GDB, an enhanced display with added commands.
  • pestudio - Perform static analysis of Windows executables.
  • Process Monitor - Advanced monitoring tool for Windows programs.
  • Pyew - Python tool for malware analysis.
  • Radare2 - Reverse engineering framework, with debugger support.
  • SMRT - Sublime Malware Research Tool, a plugin for Sublime 3 to aid with malware analyis.
  • strace - Dynamic analysis for Linux executables.
  • Udis86 - Disassembler library and tool for x86 and x86_64.
  • Vivisect - Python tool for malware analysis.
  • X64dbg - An open-source x64/x32 debugger for windows.

TinyAntivirus: un motor de antivirus de código abierto contra virus polimórficos

$
0
0
No sé si alguna vez os habéis enfrentado a algún virus polimórfico, si no los conocéis deciros brevemente que se trata de malware que produce múltiples copias operacionales de sí mismo y lo hace utilizando distintas técnicas (diferentes rutinas de cifrado, ofuscación, Mte, etc.) para dificultar la detección por parte del antivirus y facilitar su propia propagación.

Os podéis imaginar lo trabajoso y desagradable que resulta la desinfección si se está en el lado defensivo...


Quizás uno de los virus de este tipo más conocidos es W32.Sality que infecta los archivos ejecutables remplazando sus entry point para redireccionar la ejecución al código polimórfico del virus, el cual ha sido cifrado e insertado en la última sección del archivo original.

Y cómo hoy vagamos por la orilla azul, os traemos el reciente TinyAntivirus (TinyAv) del vietnamita Quang Nguyễn, un motor de antivirus diseñado para detectar y desinfectar virus polimórficos y que en su primera versión da buena cuenta de Sality (próximamente se añadirán módulos para otros como Virut o Polip).

Ya sé, estaréis pesando "menuda novedad, ya existen muchas aplicaciones antivirus y antimalware capaz de desinfectarlo igualmente". Por supuesto, pero no hay muchas de código abierto cómo TinyAv (licencia GPL) que nos permitan ver cómo funcionan por dentro estas herramientas y tener la posibilidad de personalizarlas y contribuir para mejorarlas...

Requisitos
Inicio rápido
  • Clona el repositorio: git clone https://github.com/develbranch/TinyAntivirus.git.
  • Build: Core engine, Console y módulo scan.
  • Cambia al directorio Release y ejecuta TinyAvConsole.exe.
Uso
TinyAvConsole.exe [options]

OpciónSignificadoValor por defecto
-edirectorio de plug-ins directorio actual
-Aprofundidad de escaneo de archivos-1 : cualquiera
-Dprofundidad de escaenos-1 : cualquiera
-druta a escanear
-p
patrón de ficheros
*.*
-smax tamaño de fichero en bytes10 * 1024 * 1024 (10 MB)
-mmodeo de escaneo: Kill-virus (k) o Scan-only(s)Kill-virus (k)
-hmuestra ayuda

Ejemplo

C:\build>TinyAvConsole.exe -d C:\sample
------------------------------------------------------
TinyAntivirus version 0.1
Copyright (C) 2016, Quang Nguyen. All rights reserved.
Website: http://develbranch.com
------------------------------------------------------
Scanning ...
C:\sample\calc.EXE
        W32.Sality.PE Disinfected
C:\sample\container.zip                                                 OK
C:\sample\container.zip>DiskView.exe                                    OK
C:\sample\container.zip>DMON.SYS                                        OK
C:\sample\container.zip>sub_container.zip                               OK
C:\sample\container.zip>sub_container.zip>NOTEPAD.EXE
        W32.Sality.PE Deleted
C:\sample\dbgview.chm                                                   OK
C:\sample\sub\gmer.EXE
        W32.Sality.PE Disinfected

=============================================
Scanned       : 4 file(s) (10 object(s))
Detected      : 3 file(s)
Removed       : 3 file(s)
Access denied : 0 file(s)

C:\build>

Repositorio GitHub: https://github.com/develbranch/TinyAntivirus

mimikittenz: extracción de contraseñas en claro con ReadProcessMemory()/regex

$
0
0
mimikittenz de Jamieson O'Reilly aka putterpanda (atentos a su foto de perfil en Github lol!) es una herramienta de post-explotación en powershell/C sharp que utiliza la función de Windows ReadProcessMemory() para extraer contraseñas en claro de varios procesos.

Su objetivo es facilitar a nivel de usuario (sin necesidad de privilegios de administrador) la extracción de datos sensibles con el fin de maximizar los esfuerzos en la fase de post-explotación y aumentar el valor de la información recogida por cada objetivo.


Actualmente mimikittenz es capaz de extraer las siguientes credenciales de la memoria:

Webmail
  •     Gmail
  •     Office365
  •     Outlook Web
Accounting
  •     Xero
  •     MYOB
Remote Access
  •     Juniper SSL-VPN
  •     Citrix NetScaler
  •     Remote Desktop Web Access 2012
Developement
  •     Jira
  •     Github
  •     Bugzilla
  •     Zendesk
  •     Cpanel
IHateReverseEngineers
  •     Malwr
  •     VirusTotal
  •     AnubisLabs
Misc
  •     Dropbox
  •     Microsoft Onedrive
  •     AWS Web Services
  •     Slack
  •     Twitter
  •     Facebook
Además, mimikittenz también puede extraer fácilmente otros tipos de *jugosa* información de procesos utilizando patrones de expresiones regulares que incluyen pero no se limitan a:

- datos de TRACK2 (tarjetas de crédio) de los procesos de venta/POS
- datos PII
- claves de cifrado y otros

Regex personalizado - la sintaxis para añadir expresiones regulares personalizadas es la siguiente:
[mimikittenz.MemProcInspector]::AddRegex("<NameOfTarget>","<regex_here>")

Personalizar proceso objetivo - sólo hay que añadir el nombre del proceso dentro del array:
$matches=[mimikittenz.MemProcInspector]::InspectManyProcs("iexplore","chrome","firefox")

Nota: Esta herramienta tiene como objetivo el espacio de direcciones de memoria del proceso, una vez que se mata el proceso la memoria "debería" ser limpiada e inaccesible, sin embargo hay algunos casos extremos en los que esto no ocurre

Github: https://github.com/putterpanda/mimikittenz

Cómo saltar HSTS (Http Strict Transport Security) para seguir usando Burp

$
0
0
HTTP Strict Transport Security (HSTS) es una política de seguridad que se puede activar en las aplicaciones web de tal manera que se utiliza una cabecera de respuesta especial (por ej.  Strict-Transport-Security: max-age=157680000; includeSubDomains;) que, si el navegador soporta, evita que 1/ se envíe tráfico por HTTP plano o sin cifrar para el dominio especificado redireccionando automáticamente a HTTPS y 2/ que el usuario pueda seguir navegando por un sitio con un certificado no válido.

Esto último es especialmente "molesto" a la hora de utilizar un proxy como Burp o ZAP para auditar una web, ya que evidentemente el certificado intermedio no es válido y no puedes "navegar" por el site. Por lo tanto si una aplicación web utiliza HSTS nos toparemos con esto:


Para evitar ésto tenemos dos opciones:

- usar un navegador obsoleto que no soporte HSTS para lo cual seguramente tendremos que jugar con el 'User agent' y podremos tener algunas incompatibilidades. A continuación se muestra la lista de las versiones mínimas de los principales navegadores que lo soportan:
  • Chromium y Google Chrome desde la versión 4.0.211.0
  • Firefox desde la versión 4; con Firefox 17, Mozilla integra una lista de sitios webs que soportan HSTS
  • Opera desde la versión 12
  • Safari en OS X Mavericks
  • Internet Explorer 11 en Windows 8.1 y Windows 7 cuando se instale KB 3058515 (lanzado en junio de 2015 con Windows Update)
  • Microsoft Edge e Internet Explorer 11 en Windows 10

- instalar el certificado raíz CA de Burp para que nuestro navegador confíe en el certificado. Por defecto, cuando navegamos mediante Burp por un sitio mediante HTTPS, el Proxy genera un certificado SSL para cada host, firmado por su propia CA. El certificado CA es generado la primera vez que se ejecuta Burp, así que si lo instaláis como confiable tenéis que tener cuidado que no accedan a vuestro equipo y os roben la clave privada. Tenéis las instrucciones para cada navegador en la página de Portswigger.

En mi caso que uso Firefox es tan sencillo como ir a la URL http://burp/ teniendo el proxy configurado e importar del certificado:


Y ya está, así de simple. Ya podemos seguir auditando la aplicación web... ;)    

Fuentes:
- Pen-testing HSTS (Http Strict Transport Security) Sites with Burp
- Testing HSTS-protected Sites Using Burp
- OWASP - HTTP Strict Transport Security
- Wikipedia - HTTP Strict Transport Security
- Installing Burp's CA Certificate
- Installing Burp's CA Certificate in your browser

13 herramientas para desofuscar código para reversers

$
0
0
Todo buen reverser guarda en su maletín un buen número de instrumentos para diseccionar malware. A continuación os mostramos una lista de 13 herramientas para desofuscar código (alguna ni las conocía) que recopilamos de Hacker List para todos los amantes y profesionales de la ingeniería inversa. Como siempre no dudéis en comentar si echáis en falta/conocéis más herramientas.

1. Balbuzard

Balbuzard es un paquete de herramientas de análisis de malware en Python para extraer patrones de interés a partir de archivos sospechosos (direcciones IP, nombres de dominio, encabezados de archivos conocidos, secuencias interesantes, etc). También puede romper la ofuscación de malware, como XOR, LOD, etc por fuerza bruta y comprobando esos patrones.

2. de4dot

de4dot es un desofuscador de .NET de código abierto (GPLv3) escrito en C#. Hace todo lo posible para restaurar el código empaquetado y ofuscado lo más parecido al original. La mayor parte de la ofuscación puede restaurarse completamente (por ejemplo las strings cifradas), pero no los símbolos ya que los nombres originales no son parte (por lo general) del conjunto ofuscado. Requiere dnlib para leer y escribir ensamblados.

3. FLOSS

FireEye Labs Obfuscated String Solver (FLOSS) utiliza técnicas avanzadas de análisis estático para desofuscar automáticamente las strings de los binarios de malware.

4. iheartxor

iheartxor se puede utilizar para ataques de fuerza bruta contra cadenas codificadas con xor con un patrón de expresión regular definido por el usuario (-r). El patrón de búsqueda por defecto es una expresión regular que busca datos entre bytes nulos ('\x00'). La herramienta también se puede utilizar para hacer un XOR plano en un archivo con -f (nombre de fichero) y -k (valor). El valor debe estar entre 0x0-0x255.

5. NoMoreXOR

NoMoreXOR ayuda a obtener una clave XOR de 256 bytes mediante el uso de análisis de frecuencia.

6. PackerAttacker

Packer Attacker es un extractor de código oculto en malware en Windows. Soporta los siguientes tipos de pacers: ejecución desde el heap, reemplazo de la cabecera PE e inyección en un proceso.

7. unpacker

Unpacker es un unpacker (valga la redundancia) de malware automático en Windows basado en WinAppDbg.

8. unxor

unxor busca a través de un archivo XOR-codificado (binario, archivo de texto, lo que sea) y usa ataques de texto plano conocido para deducir el keystream original. Funciona con claves la mitad de largas que el texto plano conocido, por complejidad lineal.

9. VirtualDeobfuscator

VirtualDeobfuscator es una herramienta de ingeniería inversa para los wrappers de virtualización. Su objetivo es analizar un runtrace y filtrar las instrucciones de procesamiento de la máquina virtual.

10. XORBruteForcer

XORBruteForcer es un script en Python que implementa ataques de fuerza bruta XOR de un archivo determinado, aunque también puede utilizar una clave específica. Es posible buscar una palabra en el resultado, reduciendo al mínimo la salida.

11. XORSearch

XORSearch es un programa para buscar una cadena determinada en un archivo binario codificado con XOR, LOD, ROT o SHIFT. XORSearch prueba todas las claves XOR (0 a 255), claves del EDD (1 a 7), claves ROT (1 a 25) y teclas SHIFT (1 a 7) cuando busca.

12. XORStrings

XORStrings busca cadenas en el archivo (binario) facilitado, utilizando las mismas codificaciones que XORSearch (XOR, LOD, ROT y SHIFT). Por cada codificación/clave, XORStrings busca e informa del número de cadenas encontrado, la longitud media de la cadena y la longitud máxima de la cadena.

13. xortool

xortool es un script en Python que intenta obtener la longitud de la clave XOR (basándose en el recuento de la igualdad de caracteres), así como de la propia clave (basado en el conocimiento del carácter más frecuente).

Fuente: 13 Awesome Deobfuscation Tools For Reverse Engineers

Nueva técnica para hackear dispositivos móviles mediante comandos de voz ocultos en vídeos de Youtube

$
0
0
Un grupo de investigadores de la Universidad de Berkeley California y la Universidad de Georgetown ha ideado un método para hackear dispositivos móviles mediante el uso de comandos de voz ocultos en vídeos de YouTube.

Y no necesariamente tiene que reproducirlo la víctima, basta con que reciba el sonido desde otro ordenador, televisión inteligente, teléfono, tablet, etc., los comandos ocultos serán recibidos por los asistentes Google Now! o Siri que los filtrarán del ruido ambiente y los ejecutarán.

Los investigadores publicaron los detalles de la técnica en un artículo titulado "Hidden Voice Commands"

"En este paper exploramos cómo pueden ser atacados con comandos de voz ocultos que son ininteligibles para los oídos humanos pero interpretados como comandos por algunos dispositivos".

Los investigadores han publicado un vídeo PoC del ataque en caja negra que se lleva a cabo con presencia de ruido de fondo y el teléfono objetivo a una distancia de varios metros de los altavoces utilizados para reproducir el audio/ataque.

Los atacantes pueden ocultar varios tipos de comandos en los videos, incluyendo las instrucciones para descargar e instalar un código malicioso desde un host determinado.

Los investigadores también sugieren una serie de contramedidas, incluyendo una notificación cada vez que un comando de voz es recibido por el móvil o la adopción de un sistema de pregunta-respuesta verbal.

Para más detalles técnicos os recomiendo echar un vistazo a la página oficial del proyecto: http://www.hiddenvoicecommands.com/

shard: una herramienta para comprobar si se utiliza la misma contraseña en varios sitios

$
0
0
Si hay algo imperativo en la sociedad digital actual es NO REUTILIZAR la misma contraseña para distintos servicios. La razón es simple: si uno de ellos es comprometido por ende cualquiera podrá obtener acceso al resto. No obstante, ya sea por la dificultad de recordar tantas contraseñas o por desconocimiento pura vagancia, son muchos los usuarios que todavía ponen la misma contraseña en varios de sus perfiles en redes sociales como Facebook, Twitter, LinkedIn, etc.

Y precisamente hoy vemos Shard, una herramienta para que los atacantes podamos detectar contraseñas compartidas desde la línea de comandos. Se trata de un fat jar (contiene todas las clases necesarias para hacerlo lo más portable posible) que si queréis podéis compilar vosotros mismos con sbt assembly, y también tiene una segunda implementación en python.

Uso

Sólo tenemos que indicar las credenciales a comprobar y la herramienta automatizará el proceso:
$ java -jar shard-1.2.jar -u username-here -p password-here
21:16:25.950 [+] Running in single credential mode
21:16:30.302 [+] username-here:password-here - Reddit, Instagram

También es posible probar múltiples credenciales (ummm leaks...) indicando un fichero de texto que contenga cada línea con el formato "username":"password". Incluso se puede personalizar el formato con la opción --format.
$ java -jar shard-1.2.jar -f /tmp/creds.txt
21:16:39.501 [+] Running in multi-credential mode
21:16:39.516 [+] Parsed 2 credentials
21:16:42.794 [+] username1:password1 - Reddit, Instagram
21:16:45.189 [+] username2:password2 - Facebook, LinkedIn, Twitter

Módulos

Actualmente soporta los siguientes módulos:
$ java -jar shard-1.2.jar -l
Available modules:
        Facebook
        LinkedIn
        Reddit
        Twitter
        Instagram

Aunque si queréis podéis añadir vuestros propios módulos fácilmente creando una nueva clase heredada de AbstractModule y añadiendo el módulo a ModuleFactory.
El AbstractModule tiene un método abstracto:

  def tryLogin(creds: Credentials): Boolean

Este método toma un objeto de credenciales y devuelve un valor booleano que indica un inicio de sesión correcto. Se recomienda el uso de la TwitterModule como plantilla.

Dependencias

     JSoup se utiliza para la comunicación HTTP y análisis de HTML
     spray-json se utiliza para el manejo de JSON

Github: https://github.com/philwantsfish/shard

La nueva forma de robar coches: hackeándolos con un ordenador portátil

$
0
0
Se veía venir... la policía y las aseguradoras informan de que empieza a haber numerosos casos de robos en los que usan ordenadores portátiles para hackear el arranque electrónico de los coches de última generación, cada vez con más electrónica y componentes informáticos.

Por ejemplo recientemente en Houston un par de ladrones fueron grabados por una cámara mientras usaban un ordenador portátil para arrancar un Jeep Wrangler 2010 y robarlo. La policía dijo que pudo haberse utilizado el mismo método en el robo de otros cuatro Wranglers de último modelo y Cherokees en la ciudad. Ninguno de los vehículos ha sido recuperado.

El National Insurance Crime Bureau, un grupo de seguros de la industria que rastrea los robos de automóviles en los EE.UU., dijo que se se está empezado a ver en los informes policiales un claro enlace entre los robos de coches nuevos y lo que llaman "misteriosos" dispositivos electrónicos.

"Creemos que se está convirtiendo en la nueva forma de robo de autos", dijo Roger Morris el vicepresidente del NICB. "Las fuerzas de seguridad públicas y los fabricantes deben ser conscientes."

Los informes recientes subrayan la aparición de nuevas vulnerabilidades en los coches a raíz de que se vuelven más informatizados y la tecnología avanzada. Fiat Chrysler, General Motors Co. GM, y Tesla Motors Inc. TSLA, han tenido que alterar la electrónica de sus automóviles en los últimos dos años después de enterarse de que podrían ser hackeados.

Puedes leer el artículo completo en WSJ.com.

Fuente: The ‘new way of stealing cars’: hacking them with a laptop

sherlocked - Transforma cualquier script en un ejecutable ELF protegido, cifrado con anti-debugging

$
0
0
Esta herramienta o "script packer universal" tiene un par de años y sigue siendo bastante útil... Sherlocked es un protector de scripts de cualquier tipo (python, perl, shell etc.) que utiliza un simple XOR con contraseña. Al menos que se utilice la opción -r, la clave se almacenará cifrada dentro del binario y se ejecutará sin tener que ponerla manualmente.

Básicamente Sherlocked toma el script, lo cifra y lo guarda como un fichero ejecutable ELF x86_64 junto con código anti-debugging (inicialmente stripea de la tabla de símbolos y comprime con UPX) .
En runtime dicho ejecutable descifra el script y temporalmente lo escribe en un fichero aleatorio en /tmp. Luego pasa el script y argumentos en línea de comandos al interprete para que se lance y finalmente borra el script.

El único "pero" si utilizamos un fichero con contraseña (opción -r) es que no soporta argumentos en cmdline, aunque se podría implementar.
Y ya que estamos, para mejorarlo también se podría usar un cifrado de stream real como SALSA20 en lugar del simple XOR y, para los molestos AV, modificar el stub con gen_shellcode.c para convertir el ./stub compilado a un fichero stub_shellcode.h.

Compilar:
make

Uso:
./sherlocked [-r]

Opciones:

<infile>     <-> The script file
<outfile>     <-> The protected output file
<key>        <-> The key string used to encrypt the script
[-r]         <-> Require the user who runs the protected executable supplies the key for it to run I.E ./script.elf <key>

Ejemplo de uso protegiendo un script en Python:

ryan@elfmaster:~/git/sherlocked$ ./script.py
hello I am a python script
ryan@elfmaster:~/git/sherlocked$ ./sherlocked script.py script.elf p4ssw0rd /usr/bin/python -r
[+] The user who executes script.elf must supply password: p4ssw0rd
[+] Encoding payload data
[+] Encoding payload struct
[+] Building msg program
[+] utils/stripx exists, so using it to strip section headers off of DRM archive
[+] /usr/bin/upx exists, so using it to compress script.elf
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2013
UPX 3.91        Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   5003224 ->    324236    6.48%  linux/ElfAMD   script.elf                   

Packed 1 file.
Successfully created script.elf
ryan@elfmaster:~/git/sherlocked$ ./script.elf
This message requires that you supply a key to decrypt
ryan@elfmaster:~/git/sherlocked$ ./script.elf p4ssw0rd
hello I am a python script
ryan@elfmaster:~/git/sherlocked$

Github: https://github.com/elfmaster/sherlocked

No os perdáis: http://www.bitlackeys.org/

¿Ni idea de Linux? Echa un vistazo a este libro/guía gratuito: Ten Steps to Linux Survival

$
0
0
Quizás no seas un usuario avanzado en informática y ni mucho menos tengas experiencia en sistemas Linux, pero puede llegar el día que tengas que tratar con algo que no sea Windows para resolver un problema... o al menos tengas que hacer una primera evaluación hasta que llegue tu amigo/friki de turno y te solucione la papeleta.

Piénsalo, cada vez hay más sistemas Linux que pueden aparecer en tu tienda o comercio como máquinas virtuales o en la nube, incluyendo servidores web, bases de datos, gestores de dispositivos móviles, sistemas de vigilancia, etc., y a lo mejor basta con reiniciar un servicio para ahorrarse el dinero y tiempo de intervención de un servicio técnico.

Jim Lehmer ha creado un breve libro 'Ten Steps to Linux Survival, Essentials for Navigating the Bash Jungle' editado por O'Reilly y GRATUITO para que cualquier principiante pueda hacer las tareas más sencillas de diagnóstico y recuperación de un sistema Linux en 10 pasos esenciales:

- Conectarse a un sistema Linux con OpenSSH y Putty
- Listar los archivos y directorios y moverse dentro del sistema de archivos
- Inspeccionar el contenido del archivo sin cambiarlo
- Realizar búsquedas mediante el uso de comandos para localizar archivos específicos
- Utilizar el comando grep para buscar mensajes de error dentro de un archivo
- Determinar el estado del sistema en tiempo real para encontrar problemas subyacentes
- Examinar la utilización del disco y concentrarse en los archivos que ocupan espacio
- Transferir archivos sospechosos desde Linux a Windows para su posterior análisis
- Utilizar los comandos para iniciar, detener, reiniciar o incluso matar a los servicios que no responden
- Saber dónde encontrar ayuda cuando la solución de problemas no es suficiente

Fuentes:
- http://www.oreilly.com/programming/free/ten-steps-to-linux-survival.csp
- https://www.oreilly.com/learning/ten-steps-to-linux-survival

httpoxy o cómo con CGI y después de 15 años todavía se puede sobrescribir HTTP_PROXY remotamente...

$
0
0
Lo sabe hasta Bill Gates: los sistemas Linux/Unix utilizan la variable de entorno HTTP_PROXY que permite especificar un servidor proxy (IP -URL- y puerto) para usarse de forma genérica desde la shell u otras aplicaciones como elinks, lynx, wget, curl, etc.

Por otro lado y maldita casualidad, en CGI y según reza su RFC 3875 se añade automáticamente el meta tag "HTTP_" para especificar el protocolo, por lo que si añadimos en la petición HTTP una cabecera "PROXY" probablemente sobrescribiremos la variable de entorno HTTP_PROXY del servidor víctima, consiguiendo así especificar un proxy falso y facilitando un ataque MiTM.

Podéis verlo más claro y ya de paso comprobar si vuestro servidor es vulnerable fácilmente. Por ej. creáis un sencillo script CGI:

test.cgi:
#!/bin/sh
echo "Content-Type:text/plain"
​echo ""
echo "HTTP_PROXY='$HTTP_PROXY'"

y lo llamáis con el header extra “Proxy:”
curl -H ‘Proxy: AFFECTED’ http://my-server-name/cgi-bin/test.cgi
                                               
Si la salida es HTTP_PROXY='AFFECTED', estarías jodido comprometido, así de sencillo.
                                                       
Este bug ya se identificó y parcheo en 2001 (sí ¡¡hace 15 años!!) en perl y curl. Lo que pasa es que recientemente se está viendo que este fallo también existe en otros lenguajes y librerías y ha sido Scott Geary quien definitivamente lo ha traído a primera línea de fuego: le ha puesto el nombre 'httpoxy', un logo chulo, luces de colores y le están lloviendo CVEs como si no hubiera un mañana. La ocasión lo merece:
  •     CVE-2016-5385: PHP
  •     CVE-2016-5386: Go
  •     CVE-2016-5387: Apache HTTP Server
  •     CVE-2016-5388: Apache Tomcat
  •     CVE-2016-1000109: HHVM
  •     CVE-2016-1000110: Python
¡Y creciendo!

Así que si eres un administrador de un servidor web con CGI te recomendamos encarecidamente bloquear la cabecera 'Proxy' si no quieres que tu sistema empiece a usar un proxy malicioso, ya has visto lo fácil que es explotarlo...

Más información (must read) en:
- https://httpoxy.org/
- https://github.com/httpoxy

Cyber Grand Challenge (CGC), el primer torneo de hacking del mundo... entre máquinas!

$
0
0
"El enfoque actual de la ciberseguridad depende de los expertos en seguridad informática: ellos identifican nuevas amenazas y fallos y los corrigen a mano. Este proceso puede tardar más de un año desde la primera detección hasta la implementación de una solución, y para entonces los sistemas críticos ya han podido ser comprometidos. Este ciclo de reacción lenta ha creado una ventaja ofensiva permanente.

El Cyber Grand Challenge (CGC) busca automatizar este proceso de ciberdefensa, lanzando la primera generación de máquinas que pueden descubrir, probar y corregir los defectos del software, en tiempo real y sin ninguna ayuda. Si tiene éxito, su velocidad y autonomía podrían algún día derribar la ventaja estructural del ciberdelito
".

Como acabáis de leer se trata del primer torneo de hacking del mundo... entre máquinas!

El objetivo de este torneo es averiguar si la inteligencia artificial de las máquinas puede superar incluso a los mejores hackers de carne y hueso.

El Cyber Grand Challenge (CGC) lo organiza DARPA (Defense Advanced Research Projects Agency's) y las finales tendrán lugar entre las dos mayores conferencias de hackers: la Black Hat USA y DEF CON el 4 de agosto en Las Vegas.

Para obtener una invitación al evento los finalistas debieron presentar el 3 de junio un sistema autónomo capaz de encontrar y corregir un número determinado de vulnerabilidades. Los premios serán considerables: el primero será de 2 millones de dólares, mientras que el segundo y tercero obtendrá 1 millón y $750,000, respectivamente.

Estaremos pendientes del resultado de esta "guerra de máquinas": https://www.cybergrandchallenge.com/

pd.¿Llegará el día en que los hackers dejen de ser humanos... literalmente?

Un cliente Tor que ocupa sólo 50kb, mediante el uso de MS CryptoAPI

$
0
0
Mini-tor de Petr Beneš es una utilidad / prueba de concepto para el acceso a contenidos de Internet y servicios ocultos (.onion) a través de routers de Tor. El objetivo de esta herramienta es tener un tamaño lo más pequeño posible (actualmente ~50 kb, comprimido con UPX ~ 24kb), que logra mediante el uso de Microsoft CryptoAPI en lugar de embeber directamente OpenSSL.

Uso

Acceso a contenidos de Internet a través de mini-tor:
Mini-tor.exe "http://torstatus.blutmagie.de/router_detail.php? FP=847b1f850344d7876491a54892f904934e4eb85d"

Acceso a contenidos de servicio oculto a través de mini-tor:
Mini-tor.exe "http: //duskgytldkxiuqc6.onion/fedpapers/federndx.htm"

Observaciones

Como se he dicho anteriormente, esta aplicación es una prueba de concepto. Podría haber errores y, sin ningún tipo de duda, no es un sustituto seguro de Tor.

Compilación

Compila mini-tor mediante Visual Studio 2015 update 3. El archivo de Visual solución está incluido. No se requieren otras dependencias.

Licencia

Todo el código del repositorio es de código abierto bajo la licencia MIT. Consulta el archivo LICENSE.txt.

Github: https://github.com/wbenny/mini-tor

Cómo crear un dispositivo flash autoarrancable para conectar y comprometer un controlador de dominio Windows / directorio activo

$
0
0
Desde la versión 2.15, el módulo PowerShell de DSInternals soporta completamente Windows PE, la versión gratuita y minimalista de Windows. Esto significa que todas las cosas "chulas" que se pueden realizar con la base de datos de Active Directory ahora pueden hacerse desde una unidad flash de arranque o una imagen ISO, incluyendo:

- Dumpear los hashes NT, claves Kerberos y contraseñas en texto plano a partir de archivos Ntds.dit.
- Modificar el SID History de las cuentas de usuarios y grupos.
- Modificar el ID del Grupo Primario de cuentas de usuario.
- Extraer las claves DPAPI de backup de dominio.


Acceso requerido

Estas acciones, por supuesto, requieren que el atacante tenga al menos alguno de los siguientes:

- acceso físico a un controlador de dominio (DC).
- conocimiento de las credenciales del controlador de gestión de placa base (BMC) del DC
- acceso administrativo a un DC virtualizado.

En un mundo ideal, sólo los administradores de dominio deberían tener acceso al core de la infraestructura del AD, pero la realidad está lejos de ser perfecta.

La creación de los medios

Para crear un dispositivo de arranque de Windows PE cargado con el módulo DSInternals, sigue estos pasos:

1.- Instala Windows Assessment and Deployment Kit (ADK), incluyendo la característica de Windows PE.

2.- Haz clic en Inicio y escribe "deployment". Botón derecho en 'Deployment and Imaging Tools Environment' y selecciona Ejecutar como administrador.

3.- Crea una copia de los archivos de Windows PE. Especifica x86 o AMD64:
copype amd64 C:\WinPE_amd64

4.- Monta la imagen de Windows PE:
Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"

5.- Añade el soporte de PowerShell a Windows PE indicándolo en los componentes opcionales junto con los language packs asociados:
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"  
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-WMI_en-us.cab"
 
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFX.cab" 
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-NetFX_en-us.cab"
 
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab" 
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-Scripting_en-us.cab"
 
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab" 
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-PowerShell_en-us.cab"

6.- Añade el módulo PowerShell de DSInternals a la imagen de Windows PE copiándolo dentro del directorio C:\WinPE_amd64\mount\Windows\system32\ WindowsPowerShell\v1.0\Modules.

7.- Añade los drivers de dispositivo a la imagen de Windows:
Dism /Add-Driver /Image:"C:\WinPE_amd64\mount" /Driver:"C:\DriversToEmbed" /Recurse

8.- Configura PowerShell para iniciarse automáticamente en el arranque creando un archivo llamado winpeshl.ini en la carpeta C:\WinPE_amd64\mount\Windows\system32, que contenga este texto:
[LaunchApps]
wpeinit.exe
powershell.exe, -NoExit -NoLogo -ExecutionPolicy Bypass

9.- Crea un fichero ISO que contenga los ficheros de Windows PE:
MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\WinPE_amd64.iso

Se puede usar el mismo comando para crear un dispositivo flash autoarrancable o VHD.

Pensamientos finales

Como se ha visto, es bastante sencillo crear una unidad flash de arranque que se pueda utilizar para comprometer un dominio de Active Directory a través de un DC físicamente accesible. Una de las precauciones que un administrador de dominio puede tener es cifrar todos los DC utilizando BitLocker u otra herramienta que cifre todo el volumen. La implementación de RODC en las sucursales más pequeñas es también una buena idea. Las nuevas características de Windows Server 2016, las MTP virtuales y máquinas virtuales fortificadas, también parecen muy prometedores en lo que respecta a la seguridad de DCs.

Fuente: https://www.dsinternals.com/en/dumping-modifying-active-directory-database-bootable-flash-drive/
Viewing all 1660 articles
Browse latest View live