3260 - Pentesting ISCSI

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Temel Bilgiler

From Wikipedia:

In computing, iSCSI is an acronym for Internet Small Computer Systems Interface, bir Internet Protokolü (IP) tabanlı depolama ağ standardıdır. Veri depolama tesislerini bağlamak için kullanılır. SCSI komutlarını bir TCP/IP ağı üzerinden taşıyarak depolama cihazlarına blok düzeyinde erişim sağlar. iSCSI, intranetler üzerinden veri transferlerini kolaylaştırmak ve uzun mesafelerde depolamayı yönetmek için kullanılır. Yerel alan ağları (LAN), geniş alan ağları (WAN) veya İnternet üzerinden veri iletimi için kullanılabilir ve konumdan bağımsız veri depolama ve alma imkanı sağlar.

Protokol, istemcilerin (başlatıcılar olarak adlandırılır) uzak sunuculardaki depolama cihazlarına (hedefler) SCSI komutları (CDB'ler) göndermesine olanak tanır. Bu, depolama alanı ağı (SAN) protokolüdür ve kuruluşların depolamayı depolama dizilerine konsolide etmesine olanak tanırken, istemcilere (veritabanı ve web sunucuları gibi) yerel olarak bağlı SCSI diskleri yanılsaması sağlar. Temelde Fibre Channel ile rekabet eder, ancak genellikle özel kablolama gerektiren geleneksel Fibre Channel'ın aksine, iSCSI mevcut ağ altyapısı kullanılarak uzun mesafelerde çalıştırılabilir.

Varsayılan port: 3260

PORT     STATE SERVICE VERSION
3260/tcp open  iscsi?

Sayım

nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx

Bu script, kimlik doğrulamanın gerekip gerekmediğini gösterecektir.

Not: Hedefleriniz keşfedildiğinde, farklı bir IP adresi altında listelendiğini görebilirsiniz. Bu, iSCSI hizmetinin NAT veya sanal IP aracılığıyla açılması durumunda meydana gelir. Bu gibi durumlarda, iscsiadmin bağlantı kurmayı başaramaz. Bu, keşif faaliyetleriniz tarafından otomatik olarak oluşturulan düğümün dizin adı için bir ayar ve bu dizin içinde bulunan default dosyası için bir ayar gerektirir.

Örneğin, 123.123.123.123 adresindeki bir iSCSI hedefine 3260 portu üzerinden bağlanmaya çalışıyorsunuz. iSCSI hedefini açan sunucu aslında 192.168.1.2 adresindedir ancak NAT aracılığıyla açılmıştır. isciadm, kendi adresini değil, genel adresi kaydedecektir:

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
[...]

Bu komut, dosya sisteminizde şöyle bir dizin oluşturacaktır:

/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/

Klasör içinde, hedefe bağlanmak için gerekli tüm ayarların bulunduğu bir varsayılan dosya vardır.

  1. /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/ dosyasını /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/ olarak yeniden adlandırın.

  2. /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default içinde, node.conn[0].address ayarını 192.168.1.2 yerine 123.123.123.123 olarak ayarlayın. Bu, 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 gibi bir komutla yapılabilir.

Artık bağlantıdaki talimatlara göre hedefi bağlayabilirsiniz.

Manuel sayım

sudo apt-get install open-iscsi

Öncelikle IP'nin arkasındaki hedeflerin adını bulmalısınız:

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

Not edin ki, bu, o hedeflere ulaşabileceğiniz arayüzlerin IP ve portunu gösterecektir. Hatta kullandığınızdan farklı IP'leri veya iç IP'leri bile gösterebilir.

Sonra, her satırın basılan dizesinin 2. kısmını yakalarsınız (iqn.1992-05.com.emc:fl1001433000190000-3-vnxe ilk satırdan) ve giriş yapmayı dener:

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.

Sonra, –logout kullanarak çıkış yapabilirsiniz.

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.

Daha fazla bilgi bulabiliriz, sadece --login/--logout parametresi kullanmadan.

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

Temel alt ağ numaralandırma sürecini otomatikleştirmek için bir betik mevcuttur iscsiadm

Shodan

  • port:3260 AuthMethod

Referanslar

AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

Last updated