Mòdul Professional 5: Hacking de Sistemes i Xarxes

Índex

1. Currículum

  • Recollida passiva
  • Recollida activa
  • MitM i MitmProxy
  • Atacs

2. Eines

2.1. tmux

2.2. ZSH + Oh my zsh + Powerline9000!

3. Footprinting

3.1. TODO Passiu

OSSINT
Open Source INTelligence
(no term)
https://osintframework.com/
(no term)

https://ciberpatrulla.com

Cerca la casa de Steve Wozniak. Mostrar invers (MIT Tweets). @CarmenTrobat, @xdlheras, @xisposa o simplement zoom a Manresa.

(no term)
theHarvester: theHarvester -d alquimiabinaria.cat -g google

3.1.1. Google Dorks

site
filetype
intext
intitle
inurl
-
caché
Google Alerts

Cerca credencials: filetype:xlsx intext:password intext:user intext:url o filetype:sql intext:"INSERT INTO" intext:password -github -gitlab Cerca targetes de crèdit: filetype:log intext:card intext:cvv

3.1.2. Shodan

3.1.3. WayBackMachine

3.1.4. TODO Metadades

FOCA
ExifTool
(no term)
Eines online

3.1.5. TODO Numeros ASN

  • Què són els ASN?
  • ping -> Hurrican Electrics -> companyia (exemple: practica:arsys) | DNS (exemple:alquimiabinaria.cat practica:lacetania.cat) Pràctica: rangs IPs Logitech. Domini hospedat a fibracat.

3.1.6. TODO Subdominis

  • sublist3r
  • amass
  • assetfinder
  • fuff ffuf -w /usr/share/wordlists/dirb/big.txt -u "http://FUZZ.cinesbagescentre.com/"
  • wfuzz

3.1.7. TODO dig

Per veure quines IPs responen a un domini concret: dig logitech.com

3.1.8. TODO Maltego

Transformacions amb exemple cinesbagescentre.com Transformacions:

  • DNS to common names.
  • DNS Name schema dictionary
  • Email search engine
  • Email @domain
  • To files
  • To IP
  • To Website
  • IP - To Location (city)

3.1.9. Pràctiques

3.2. Actiu

3.2.1. NMap

-sn
Sense escaneig de ports, tan sols per descobrir sistemes actius.
--traceroute
Útil per detectar tallafocs, WAF, reverse-proxys, etc.
--script <name>
Per llançar scripts extres com dns-brute.
-p<port>
Especificació del rang dels ports a veirificar. Possibilitats: (xx,yy), (xx-yy), (-), (smtp), (T:xx,U:yy).
-e <interficie>
Interfície de xarxa per utilitzar, útil per redirigir escanieg per túnels.
-sV [--version-intensity 9]
Determina servei i versió.
-O
Intenta determinar S.O.
-sC
Script Scan, utilitza els scripts NSE de la categoria generics contra els objectius.
-v
Verbose.
-A
Aggressive detection mode: És el mateix que especificar -O -sV -sC --traceroute.
-T#
On # és un numero entre 1-9. És la velocitat, T9 es recomana tan sols en entorns controlats o de proves ja que pot colapsar l'objectiu (DoS).
-Pn
Tracta tots els objectius com si estiguessin online.
--open
Tan sols mostra ports oberts.

NOTA: Afegir referència a zombies, a flood de IPs i alguna tècnica més d'ocultació o evasió IDS/Firewall.

  1. Estat dels ports
    Open
    Obert i escoltant.
    Closed
    S'han rebut les peticions però es determina que no hi ha servei escoltant al port.
    Filtered
    No hi ha senyals que les peticions s'hagin rebut (no hi ha resposta) per tant es creu que han estat descartades per algun tipus de filtre.
    Unfiltered
    Les peticions s'han rebut, però no es pot saber l'estat del port.
    Open/Filtered
    No se sap quin dels dos estats.
    Close/Filtered
    No se sap quin dels dos estats.
  2. Script NSE

    Per defecte venen varis scripts NSE agrupats per categories:

    • Auth
    • broadcast
    • brute
    • default
    • discovery
    • dos
    • exploit
    • external
    • fuzzer
    • intrusive
    • malware
    • safe
    • version
    • vuln

    Es poden cridar de diverses formes:

    --script <name / path / categoria>
    Executa un script especificat per nom, ruta, categoria. Es poden executar varis separats per comes i utilitzar operadors lòfics not or and, també es poden utilitzar comodins (p.e.: "not http*").

    Per afegir nous scripts tan sols copiar-los al subdirectori /scripts i executar la comanda nmap --script-updatedb.

  3. Objectius

    Podem especificar un llistat d'objectius igual que ho fem amb els ports utilitzant diferents nomenlatures (, - * /16) i llegint d'arxiu utilitzant el paràmetre -iL <file>

    També es poden excloure objectius (però no si utilitzem -iL) utilitzant --exclude-file <file> o --exclude <hosts>

  4. Scripts LUA

4. Fingerprinting

4.1. NMap

Tan sols recordar que utilitzant l'opció -sV i -O poden determinar els serveis, les seves versions i el sistema operatiu.

5. Vectors

5.1. Bug / Exploits

  • searchsploit
  • exploitdb
  • OpenVas
  • Nessus
  • NMap + NSE
  • Metasploit Framework amb opció search.

5.2. Configuracions

  • Verificacions amb clients de forma manual.
  • Nessus
  • OpenVas

5.3. Enginyería social

  • Phishing, etc.

6. Exploit

Alhora d'executar un bug utilitzarem un exploit per injectar un payload. Així doncs caldrà definir bé aquests tres termes:

bug
Error de programació que pot comportar malfuncionament o simplement una debilitat explotable.
exploit
Troç de codi que aprofita un bug i aconsegueix modificar el comportament natural d'un programa. Alguns cops tan sols permet fer una cosa concreta, d'altres permet injectar codi arbritari.
payload
Codi arbitrari que s'injecta en un exploit, normalment el que es busca és obtenir una shell o connexió remota, però es pot injectar altres coses.

Així doncs, un cop detectat el bug en la fase de cerca de vector d'atac determinarem l'exploit a utilitzar i el seu payload. De vegades els trobarem de forma singular en codi font (C o similar), d'altres tan sols seràn accions o entrades al programa (modificacions de URL, paràmetres, etc) i d'altres integrats en entorns d'explotació com Metasploit.

Donada la idiosincràcia dels exploits singulars, ens centrarem en conèixer una mica com funciona Metasploit.

6.1. Metasploit

Metasploit Framework és un entorn que pretén aglutinar tot el procés de pentesting, així com oferir ajudes i un entorn coherent de treball. Per tant ens serveix per a cadascuna de les fases ja vistes anteriorment i també per les posteriors. A més, és obert a millores i hi podrem incorporar nous components com exploits, eines d'ajuda, etc (programant-ho clar). Finalment, al ser una de les eines més conegudes dins del sector, moltes d'altres s'hi han adaptat integrant-se o simplement fent-se compatibles.

6.1.1. Treball amb BBDD

Una opció interessant per treballar més enllà de la forma esporàdica és habilitat la BBDD de Metasploit, cosa que permet anar emmagatzemant la informació sobre els objectius i poder-la consultar de forma centralitzada.

Per fer-ho caldrà:

systemctl start postgresql
msfdb init

Notar que amb la comanda msfdb la podrem gestionar, i també podem veure i modificar la seva configuració (inclòs credencials) a /usr/share/metasploit-framework/config/database.yml.

I un cop fet, verificar-ho dins msfconsole amb la comanda db_status.

Finalment també fer notar que podem connectar a la BBDD d'un altre equip, de forma que podrem treballar de forma col·laborativa. Per fer-ho des de msf: msf > db_connect your_msfdb_user:your_msfdb_pswd@127.0.0.1:5432/msf_database

6.1.2. Creació de l'espai de treball

Si tenim la BBDD activada, podem generar diferents espais de treball per a cada projecte. Per fer-ho utilitzarem la comanda workspace i amb el paràmetre -h obtindrem l'ajuda. Així doncs per crear un espai de treball anomenat HTB1 farem: workspace -a HTB1

6.1.3. Reports de NMap

Per incloure els resultat de NMap a la base de dades o espai de treball actiu ho podem fer de dues maneres.

La primera, executem NMap fora de Metasploit l'haurem d'executar amb el paràmetre -oX <file> per a que exporti els resultats a XML, i un cop exportats els importarem al espai de treball amb la comanda db_import <path>.

La segona forma és, des de dins del workspace cridar la comanda db_nmap que és NMap però volcarà el resultats directament a la BBDD.

6.1.4. Explorant l'espai de treball

Un cop carregades dades al espai de treball podrem utilitzar una sèrie de comandes per treballar amb elles. Recordar que de forma genèrica el paràmetre -h ens mostrarà l'ajuda.

hosts
Mostra i gestiona els hosts detectats i que formen part del espai de treball. Útil l'opció -s per buscar un string (ja sigui en els serveis, S.O., noms, ports, etc).
services
Mostra i gestiona tots els serveis trobats en tots els hosts. De nou l'opció -s és molt interessant, -p per buscar ports concrets,etc.
loot
Gestiona els hash dumps que s'hagin pogut obtenir en els objectius ja hackejats.
creds
Gestiona les credencials descobertes.
vulns
Gestona les vulnerabilitats descobertes.
notes
Permet afegir i gestionar notes.

6.1.5. Comandes bàsiques

Com a petita introducció, les comandes bàsiques a Mtasploit són:

search <string>
Cerca un text a la base de dades de mòduls.
use <path>
Utilitza un mòdul concret especificat com a path.
info
Mostra tota la info sobre el mòdul actiu.
show options
Mostra les opcions de configuració actuals del mòdul.
set <opció> <valor>
Configura una opció, compte amb escriptura!.
run / explit
Executa un mòdul.
workspace -a lacetania.cat
use auxiliary/gather/enum_dns
info
set DOMAIN lacetania.cat
run

O un altre exemple:

use auxiliary/gather/search_email_collector
set DOMAIN lacetania.cat
run

6.1.6. Estructura dels mòduls

Els moduls es ditribueixen en les següents categories:

auxiliary
Mòduls variats on normalment farem discovery o obtenció de info.
payload
Mòduls específics de payloads, normalment s'utilitzen dins dels exploits, però també es poden convertir en executables i amagar-los amb msfvenom i encoders.
exploit
Mòduls d'exploits, que són la base per als atacs. Dins del exploit molts cops caldrà configurar un payload.
encoder
Els mòduls d'encoders proporcionen maneres diferents de codificar els payloads de manera que els AV no els detectin. Tanmateix, al ser Metasploit una solució OpenSource normalment els detecten.
nop
Diferents mòduls per modificar els payloads i fer nops de formes diferents per evadir AVs, IDS, etc.
post
Mòduls de post explotació que cobreixen les etapes de consolidació, pivoting i anti-forensic.

7. Consolidació

  • Meterpreter

8. Pivoting

  • Meterpreter

9. Anti-forensic

Data: 2021-10-08 dv. 00:00

Autor: Raul Gimenez Herrada

Created: 2021-12-01 dc. 13:03