Skip to content
Moisés López | @9v@yr0 edited this page Oct 31, 2024 · 101 revisions

Guía de comandos y referencias en ciberseguridad wiki

Análisis Forense

Crear imágenes - d33dd
$ dc3dd if=/dev/sda of=/home/kali/imagen.img log=/home/kali/imagen.txt

Estudio del registro de windows - HKEY_CURRENT_USER Configuración del usuario que se ha logueado en el sistema.
- HKEY_USERS Listado de usuarios con perfil en el sistema.
- HKEY_LOCAL_MACHINE Configuracion para cualquier usuario del sistema.
- HKEY_CLASSES_ROOT Es una subclave de HKEY_LOCAL_MACHINE\Software.
- HKEY_CURRENT_CONFIG Configuración del hardware al iniciar el sistema.

Comandos útiles Linux - find / -user bob -cmin -1 2>/dev/null
- find / -user www-data -type f 2>/dev/null
- find / -user bob -cmin -1 2>/dev/null
- find / -type f -executable 2>/dev/null
- find / -type f -perm -u=s 2>/dev/null Muestra fichero con SetUID activo
- find / -type f -a ( -perm -u+s -o -perm -g+s ) -exec ls -l {} ; 2> /dev/null
- chkrootkit
- String
- Debsum -e -s (Sólo debian) comprueba integridad del ficheros
- cat /etc/passwd | cut -d: -f1,3 | grep ':0$'
- stat Muestra información del inode, fecha de creación, acceso y modificación del fichero.
- getent group 46 Muestra e nombre del grupo con id 46, tambíen permite con el nombre del grupo.

Rooktit chequeo

  • RKHunter

  • chkrootkit -c -sk

Ingeniera inversa (Linux)

  • Objdump -a fichero : Información genérica sobre la cabecera de en que lenguaje está desarrollado

  • Objdump -d fichero : Desensamblar el código

  • Objdump -s fichero : Muestra contenido de las secciones en formato hexadecimal y ASCII

  • Readelf -a fichero_elf : Muestra información sobre fichero elf.

  • nm --format sysv simple : Muestra simbolos, seccion y valor.

  • Strace -f /bin/ls : Muestra las llamdas del programa

  • Readelf -h /bin/ls : Muestra información sobre el fichero ELF

  • Gdb -d fichero : Debugger paso a paso

  • Cutter : Plataforma de reverse engineering (muy interesante)

  • Binary Analysis platform BAP : Plataforma de reverse engineering

  • Radare2 : Debugger
    r2 -d fichero.bin
    aaa
    iz : Muestra string de la sección data
    izz : Muestra string de todas las secciones
    axt @@ str.* : Muestra donde se usan las string
    s main
    pdf
    : Muestro la función principal s 0x1111 px 16
    : Muestro contenido de la dirección 0x1111

    Descompilar
    r2dec fichero.bin
    rabin2 -z fichero : Muestra strings del fichero binario
    rabin2 -I fichero : Muestra resumen del fichero binario

  • Ghira : Desemblador hecho en java para fichero elf

Ingeniera inversa (Windows)

  • IDAfree : Desemsamblador

  • Peutils Peid : Identificado si hay ofuscación del binario
    Peexplorer : Busca string en el binario

Análisis de memoria con volatility v2.0

- Obtener info de sistema operativo y versión.
Comando indispensable con el que averiguaremos el sistema operativo de la imagen y su verión.
$ volatility -f <memoria.mem> imageinfo

- Mostrar los procesos que hay corriendo en el sistema en el momento de la captura de la pantalla.<br>
  $ volatility -f <memoria.mem> --profile=Win7SP1x64 pslist
  $ volatility -f <memoria.mem> --profile=Win7SP1x64 psscan
  <br>Interesante ver si hay procesos que se encuentran en la salida del psscan pero no en pslist, esto puede ser debido a que el proceso se ha quedado en memoria aunque ya se haya termnado o bien está oculto a propósito. Para lo cual usaremos el plugin psxview.

  $ volatility -f <memoria.mem> --profile=Win7SP1x64 pstree<br>
  Hay que prestar atención es buscar procesos que no tienen proceso padre, o sea que no haya un proceso padre asociado a un proceso hijo. Es un tanto sospechoso que un proceso hijo se haya lanzado sin tener ningún origen (ppid).

- Mostrar procesos ocultos<br>
  Plugin muy útil que nos identifica si un proceso se está ejecutando de forma oculta, hay que prestar atención pslist y psscan, ambos deben estar en True. Si algunos de ellos está en false, es cuestión de estudiar dicho proceso.
  $ volatility -f <memoria.mem> --profile=Win7SP1x64 psxview -R

- Volcado del proceso<br>
  $ volatility -f <memoria.mem> -p 1860 --profile=Win7SP1x64 procdump --dump-dir ./ 

- Volcado memoria<br>
  $ volatility -f <memoria.mem> -p 1860 --profile=Win7SP1x64 memdump --dump-dir ./ 
Estos dos comando son muy interesantes realizar búsquedad de cadenas de texto con el comando strings para buscar patrones de direcciones ip o url.<br>
 Busco patrones de direcciones url<br>
 strings <pid.dmp> | grep '\<www\....\>'<br>
 Busco patrones de direcciones ip validas<br>
 strings 1820.dmp | grep -xE '((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])'

- Verificar malware sobre un proceso<br>
  $ volatility -f victim.raw --profile=Win7SP1x64 malfind

- Ficheros fichero y directorios que se han accedido<br>.
  Plugins muy útil que nos permite obtener un listado de todos los ficheros y directorios que se ha accedido mostrando fecha de creación y último acceso.<br>
  $ volatility -f <memoria.mem> --profile=Win7SP1x64 shellbags

- Listado conexiones de red.<br>
  Existen varios plugins para realizar esta tarea, pero en función del sistema operativo y versión funcionará uno u otro.<br>
  $ volatility -f <memoria.mem> --profile=Win7SP1x64  sockscan <br>
  $ volatility -f <memoria.mem> --profile=Win7SP1x64  connscan <br>
  $ volatility -f <memoria.mem> --profile=Win7SP1x64  netscan <br>

- Variables de entorno<br>
  Plugin muy útil que muestra las variables de entorno asociadas a un proceso o de todos los procesos.
  $ volatility -f <memoria.mem> -p <pid> --profile=Win7SP1x64 envars

 - Comandos que se han ejecutado<br>
  $ volatility -f <memoria.mem> --profile=MyProfile cmdline
  $ volatility -f <memoria.mem> --profile=MyProfile consoles
  $ volatility -f <memoria.mem> --profile=MyProfile cmdscan

 - Volcado de ficheros del equipo en memoria
  $ volatility -f win7-malware.raw --profile=Win7SP1x64 filescan 

 - Volvado de proceso con dirección offset
  $ volatility -f win7-malware.raw dumpfiles -Q 0x000000011e3203b0 -n -D ./  

Criptografía Sistema de cifrado y descifrado simétrico (AES, 3DES).
- GPG gpg --output original_message.txt --decrypt message.gpg - OpenSSL Encriptar mensaje: openssl aes-256-cbc -e -in message.txt -out encrypted_message
Desencriptar mensaje: openssl aes-256-cbc -d -in encrypted_message -out original_message.txt

 Sistema de cifrado y descifrado asimétrico.<br>
- Openssl
  Crear clave privada del certificado<br>
  $ openssl genrsa -out private-key.pem 2048<br>

  Exportar la clave publica<br>
  $ openssl rsa -in private-key.pem -pubout -out publi-key.pem
 
  Encriptar mensaje con clave privada<br>
  $ openssl pkeyutl -encrypt -in plaintext.txt -out ciphertext -inkey public-key.pem -pubin

  Desencriptar mensaje con clave pública<br>
  $ openssl pkeyutl -decrypt -in ciphertext -inkey private-key.pem -out decrypted.txt

 - Diffie-Hellman Key Exchange
  Crear clave privada del certificado<br>
  $ openssl dhparam -out private-key.pem 2048
 
  Ver el tamaño y otros datos del certificado<br>
  $ openssl dhparam -in dhparams.pem -text -noout

 - Hash
 $ sha256 fichero<br>

 Calculo HMAC<br>
 $ hmac256 3RfDFz82 fichero<br>

 - PKI and SSL/TLS
 Usa intercambio de claves como Diffie-Hellman, posibles ataques MITM.<br>
 Crear certificado autofirmado por 365 días<br>
 $ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365

Tráfico de red
- Capinfo Muestra informacion de la captura del tráfico de red.
- Tshark tshark -z -help : Muestra varios parámetros para obtener estadísticas
tshark -r fichero.pcap -z -q http,tree
tshark -r fichero.pcap -q -z endpoints,ip : Estadisticas sobre ip
tshark -r fichro.pcap -q -z io,phs : Estadísticas por protocolo
tshark -r fichero.pcap -q -z endpoints,tcp : Estadísticas por ip y puerto
tshark -r fichero.pcap -q -z conv,eth : Estadísticas por mac
tshark -r fichero.pcap -q -z conv,ip : Estadísticas por ip
tshark -r fichero.pcap -q -z conv,tcp : Estadísticas por tcp
tshark -r fichero.pcap -q -z ip_ttl,tree : Estadísticas por ttl
tshark -r fichero.pcap -q -z ip_srcdst,tree : Estadísticas por ip origen y destino
tshark -r fichero.pcaq -q -z http_req,tree : Estadísticas por peticion http

   tshark -nr fichero.pcap -V <br>
   tshark -nr fichero.pcap --disable-protocol wlan_mgt -Y "wlan.fc.type_subtype == 0x0004" -T fields -e data <br>   
   tshark -nr fichero.pcap --export-objects smb,tmpfolder<br>
   tshark -nr fichero.pcap -Y "dns && dns.qry.name contains 'API'" : Muestra las peticiones dns que contenga la palabra API <br>
   tshark -nr fichero.pcap -Y "frame contains 'MAIL FROM'" : Muestra el trafico que contenga trafico de red smtp<br>
   tshark -nr fichero.pcap -Y "tcp" -T fields -e tcp.payload : Muestra el trafico tcp-data en hexadecimal<br>
   tshark -nr fichero.pcap -Y "tcp.port == 1337" -T fields -e data > dump.raw : Exporta trafico tcp del puerto 1337<br>
   tshark -nr fichero.pcap -Y "ftp-data" -T fields -e tcp.payload | xxd -p -r : Mismo anterior pero convertiendo la salida a ascii<br>
   tshark -nr capture.pcap -Y "ftp-data" -x : Muestra el trafico en formato hex y ascii<br>

Aplicación Java - jar -xvf fichero.jar : Extraigo el código de java
- javap -c clase.class : Muestro el contenido
- Web Decompiler https://www.decompiler.com/
- Jd-gui

Análisis de malware en pdf - Peepdf Peepdf wiki
peepdf -fil sample.pdf

 - Pdfparser <a href="https://blog.didierstevens.com/programs/pdf-tools/">Pdf Parser</a><br>
   pdf-parser.py -f sample.pdf
   pdf-parser.py -o 5 -f sample.pdf 
   pdf-parser.py -o 2 -w -f sample.pdf
   pdf-parser -a classified_report.pdf 

 - Pdfid <a href="https://blog.didierstevens.com/programs/pdf-tools/">Pdf id</a>

 - Pdftools <a href="https://blog.didierstevens.com/programs/pdf-tools/">Pdf Tools</a> <br> # pdftool.py iu sample.pdf 

Análisis imagen (Steganografia) Existe multitud de herramientas en local y online sobre este tema, dejo un enlace con un resumen. Stego list app & url

Algunos comando útiles que me han servidor:
 - steghide info fichero.jpg<br>
 - steghide extract -sf my_computer.jpg -p  486635813 -xf test.txt<br>
 - exiftool fichero.jpg : Información de cabecera<br> 
 - exiv2 fichero.png : Información de cabecera<br> 
 - foremost -i fichero.png<br>
 - binwalk -e fichero.jpg : Extrae informacion y adjuntos de una imagen<br>
 - Zsteg -a fichero.png : Detecta LSB en fichero png y bmp<br>
 - stegcracker fichero.jpg

Análisis email - EmlAnalyzer EmlAnalyzer -i correo.eml EmlAnalyzer --head -i correo.eml EmlAnalyzer --extract-all -i correo.eml Utiles - Copiar archivos entre equipos con scp scp ./"raspberry pi.txt" pi@192.168.1.126:/home/pi :Copia los ficheros del local a remoto scp pi@192.168.1.126:/home/pi/*.py . :Copia los fichero desde el host remoto linux al local


Pentesting

Fases del pentesting

Interesante recurso sobre pentesting Ehical hacking Lab

De mi recopilación adjunto lo siguiente:

1. Reconocimiento (OSINT)

2. Escaneo de red

  • Netdiscover: netdiscover -r IP/MASK
  • Arp-scan: arp-scan -l
  • Nmap:

3. Vulnerabilidades

  • Metasploit
  • Nikto

4. Enumeración

NetBios (Linux)

  • nmap -sV --script nbstat.nse IP
  • nmap --script smb-enum* -p 445 ip
  • map --script smb-vuln* -p 445 ip
  • nmblookup -A ip
  • enum4linux -a 192.168.56.136
  • enum4linux-ng -A 192.168.56.136
  • smbclient -N -L \\IP (recursos que se comparten)
  • smbclient -N \\IPs\share (conexión recurso compartido)
  • crackmapexec smb ip

NetBios (Windows)

  • net use
  • netstat -a ip / hostname

RPC and SMB Enumeration

  • nmap --script msrpc-enum -p 135 ip
  • impacket-rpcdump -p 135 ip -debug
  • Metasploit:
    msfconsole
    msf> use auxiliary/scanner/dcerpc/endpoint_mapper
    msf> use auxiliary/scanner/dcerpc/hidden
    msf> use auxiliary/scanner/dcerpc/management
    msf> use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor

Web

  • Gobuster: gobuster dir -r -u http://IP -w /usr/share/seclists/Discovery/Web-Content/common.txt -x txt,php,html

  • Dirb: dirb http://IP/admin /usr/share/seclists/Discovery/Web-Content/common.txt

  • Feroxbuster:

  • Burpsuite

  • OWASP ZAP

SQL

  • Impacket - Mysqlserver: mssqlclient.py hostname/sa:password@ip -port 49992

Directorio activo

  • Certify

Fuerza bruta

  • Hydra hydra -l user -P rockyou.txt http-post-form “&_url=&_user=^USER^&_pass=^PASS^&_token=Hb2EbALjENgA6maJQU6vBl6oyAqrG2bx:R=302" -I hydra -l molly -P wordlists/rockyou.txt -t 4 10.10.231.110 ssh

5. Hacking

6. Escalado privilegios

Sudo - Shell Escape Sequences

SUID / SGID Executables - Known Exploits

Buscamos fiheros que tengan permidos especiales y sobre buscamos vulnerabilidades en exploit-db y github

  • find / -type f -a ( -perm -u+s -o -perm -g+s ) -exec ls -l {} ; 2> /dev/null

SUID / SGID Executables - Shared Object Injection

Aprovechamos vulnerabilidades en la carga de objetos al arrancar el programa.

  • strace /usr/local/bin/suid-so 2>&1 | grep -iE "open|access|no such file"
    La idea es crear un reverse shell en alguna libreria que requiera y que no se encuentre o bien se renombre.

SUID / SGID Executables - Abusing Shell Features (#1)

SUID / SGID Executables - Abusing Shell Features (#2)

  • Sólo funciona con versiones de bash anterior a 4.4. El fallo está en la definición PS4

Passwords & Keys - SSH Keys

Explicación de la escalación de privilegios con ejemplos:
/


Reverse shell