3260 - Pentesting ISCSI
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Informaci贸n B谩sica
De Wikipedia:
En computaci贸n, iSCSI es un acr贸nimo de Internet Small Computer Systems Interface, un est谩ndar de red de almacenamiento basado en Protocolo de Internet (IP) para vincular instalaciones de almacenamiento de datos. Proporciona acceso a nivel de bloque a dispositivos de almacenamiento al transportar comandos SCSI a trav茅s de una red TCP/IP. iSCSI se utiliza para facilitar transferencias de datos a trav茅s de intranets y para gestionar almacenamiento a largas distancias. Puede ser utilizado para transmitir datos a trav茅s de redes de 谩rea local (LAN), redes de 谩rea amplia (WAN) o Internet y puede permitir almacenamiento y recuperaci贸n de datos independientes de la ubicaci贸n.
El protocolo permite a los clientes (llamados iniciadores) enviar comandos SCSI (CDBs) a dispositivos de almacenamiento (destinos) en servidores remotos. Es un protocolo de red de 谩rea de almacenamiento (SAN), que permite a las organizaciones consolidar almacenamiento en arreglos de almacenamiento mientras proporciona a los clientes (como servidores de bases de datos y web) la ilusi贸n de discos SCSI conectados localmente. Principalmente compite con Fibre Channel, pero a diferencia del Fibre Channel tradicional que generalmente requiere cableado dedicado, iSCSI puede ejecutarse a largas distancias utilizando la infraestructura de red existente.
Puerto por defecto: 3260
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
Enumeraci贸n
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
Este script indicar谩 si se requiere autenticaci贸n.
Fuerza bruta
Montar ISCSI en Linux
Nota: Puede que descubra que cuando se encuentran sus objetivos, se enumeran bajo una direcci贸n IP diferente. Esto tiende a suceder si el servicio iSCSI est谩 expuesto a trav茅s de NAT o una IP virtual. En casos como estos, iscsiadmin
fallar谩 al intentar conectarse. Esto requiere dos ajustes: uno en el nombre del directorio del nodo creado autom谩ticamente por sus actividades de descubrimiento, y uno en el archivo default
contenido dentro de este directorio.
Por ejemplo, est谩 intentando conectarse a un objetivo iSCSI en 123.123.123.123 en el puerto 3260. El servidor que expone el objetivo iSCSI est谩 en realidad en 192.168.1.2 pero expuesto a trav茅s de NAT. isciadm registrar谩 la direcci贸n interna en lugar de la direcci贸n p煤blica:
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[...]
Este comando crear谩 un directorio en su sistema de archivos as铆:
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
Dentro del directorio, hay un archivo predeterminado con todas las configuraciones necesarias para conectarse al objetivo.
- Renombra
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
a/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/
- Dentro de
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default
, cambia la configuraci贸nnode.conn[0].address
para que apunte a 123.123.123.123 en lugar de 192.168.1.2. Esto se puede hacer con un comando comosed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default
Ahora puedes montar el objetivo seg煤n las instrucciones en el enlace.
Montar ISCSI en Windows
Enumeraci贸n manual
sudo apt-get install open-iscsi
Primero que nada, necesitas descubrir los nombres de los objetivos detr谩s de la IP:
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
Tenga en cuenta que mostrar谩 la IP y el puerto de las interfaces donde puede alcanzar esos objetivos. Incluso puede mostrar IPs internas o diferentes IPs de la que utiliz贸.
Luego capture la 2陋 parte de la cadena impresa de cada l铆nea (iqn.1992-05.com.emc:fl1001433000190000-3-vnxe de la primera l铆nea) y intente iniciar sesi贸n:
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
Luego, puedes logout usando 鈥搇ogout
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
Logout of [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
Podemos encontrar m谩s informaci贸n sobre esto simplemente usando sin ning煤n par谩metro --login
/--logout
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
# BEGIN RECORD 2.0-873
node.name = iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
node.tpgt = 1
node.startup = manual
node.leading_login = No
iface.hwaddress = <empty>
iface.ipaddress = <empty>
iface.iscsi_ifacename = default
iface.net_ifacename = <empty>
iface.transport_name = tcp
iface.initiatorname = <empty>
iface.bootproto = <empty>
iface.subnet_mask = <empty>
iface.gateway = <empty>
iface.ipv6_autocfg = <empty>
iface.linklocal_autocfg = <empty>
iface.router_autocfg = <empty>
iface.ipv6_linklocal = <empty>
iface.ipv6_router = <empty>
iface.state = <empty>
iface.vlan_id = 0
iface.vlan_priority = 0
iface.vlan_state = <empty>
iface.iface_num = 0
iface.mtu = 0
iface.port = 0
node.discovery_address = 192.168.xx.xx
node.discovery_port = 3260
node.discovery_type = send_targets
node.session.initial_cmdsn = 0
node.session.initial_login_retry_max = 8
node.session.xmit_thread_priority = -20
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.nr_sessions = 1
node.session.auth.authmethod = None
node.session.auth.username = <empty>
node.session.auth.password = <empty>
node.session.auth.username_in = <empty>
node.session.auth.password_in = <empty>
node.session.timeo.replacement_timeout = 120
node.session.err_timeo.abort_timeout = 15
node.session.err_timeo.lu_reset_timeout = 30
node.session.err_timeo.tgt_reset_timeout = 30
node.session.err_timeo.host_reset_timeout = 60
node.session.iscsi.FastAbort = Yes
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.session.iscsi.DefaultTime2Retain = 0
node.session.iscsi.DefaultTime2Wait = 2
node.session.iscsi.MaxConnections = 1
node.session.iscsi.MaxOutstandingR2T = 1
node.session.iscsi.ERL = 0
node.conn[0].address = 192.168.xx.xx
node.conn[0].port = 3260
node.conn[0].startup = manual
node.conn[0].tcp.window_size = 524288
node.conn[0].tcp.type_of_service = 0
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.auth_timeout = 45
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 5
node.conn[0].iscsi.MaxXmitDataSegmentLength = 0
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
node.conn[0].iscsi.HeaderDigest = None
node.conn[0].iscsi.DataDigest = None
node.conn[0].iscsi.IFMarker = No
node.conn[0].iscsi.OFMarker = No
# END RECORD
Hay un script para automatizar el proceso b谩sico de enumeraci贸n de subredes disponible en iscsiadm
Shodan
port:3260 AuthMethod
Referencias
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.