3260 - Pentesting ISCSI
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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 el 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 el almacenamiento y recuperación de datos independiente 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
Este script indicará si se requiere autenticación.
Nota: Puede que descubra que cuando se descubren 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 otro 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:
Este comando creará un directorio en su sistema de archivos así:
Dentro del directorio, hay un archivo predeterminado con todas las configuraciones necesarias para conectarse al objetivo.
Cambia el nombre de /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ón de node.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 como sed -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.
Ejemplo de iscsiadm docs:
Primero que nada, necesitas descubrir los nombres de los objetivos detrás de la IP:
Note que mostrará la IP y el puerto de las interfaces donde puedes alcanzar esos objetivos. Incluso puede mostrar IPs internas o diferentes IPs de la que usaste.
Luego capturas 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 intentas iniciar sesión:
Entonces, puedes logout usando –logout
Podemos encontrar más información sobre ello simplemente usando sin ningún parámetro --login
/--logout
Hay un script para automatizar el proceso básico de enumeración de subredes disponible en iscsiadm
port:3260 AuthMethod
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)