3260 - Pentesting ISCSI

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Temel Bilgiler

Wikipedia'dan alınan bilgilere göre:

Bilgisayar biliminde, iSCSI, veri depolama tesislerini bağlamak için bir İnternet Protokolü (IP) tabanlı depolama ağı standardı olan Internet Small Computer Systems Interface kısaltmasıdır. SCSI komutlarını bir TCP/IP ağı üzerinden taşıyarak depolama cihazlarına blok düzeyinde erişim sağlar. iSCSI, veri transferlerini intranetler üzerinden gerçekleştirmek ve uzun mesafelerde depolama yönetimi yapmak için kullanılır. Yerel ağlar (LAN'lar), geniş alan ağları (WAN'lar) veya İnternet üzerinden veri iletimini sağlayabilir ve konum bağımsız veri depolama ve geri alma imkanı sunabilir.

Bu protokol, istemcilerin (başlatıcılar olarak adlandırılır) uzak sunuculardaki depolama cihazlarına SCSI komutlarını (CDB'ler) göndermesine olanak tanır. Bu, bir depolama alanı ağı (SAN) protokolüdür ve organizasyonlara depolamayı depolama dizilerine konsolide etme imkanı sağlarken, istemcilere (veritabanı ve web sunucuları gibi) yerel olarak bağlı SCSI disklerin yanılsamasını sunar. Genellikle özel kablolar gerektiren geleneksel Fibre Channel ile başlıca rekabet ederken, iSCSI mevcut ağ altyapısını kullanarak uzun mesafelerde çalıştırılabilir.

Varsayılan port: 3260

PORT     STATE SERVICE VERSION
3260/tcp open  iscsi?

Saptama

iSCSI, bir ağ protokolüdür ve ağ üzerinden depolama alanı sağlamak için kullanılır. iSCSI hedefleri, IP adresleri veya DNS isimleriyle belirtilen sunucular olarak tanımlanır. iSCSI hedeflerini belirlemek için aşağıdaki adımları izleyebilirsiniz:

  1. Port Taraması: iSCSI hedeflerini bulmak için bir port taraması yapın. iSCSI, genellikle TCP 3260 portunu kullanır.

  2. iSCSI Keşfi: iSCSI hedeflerini keşfetmek için iSCSI keşif komutlarını kullanın. Örneğin, iscsiadm -m discovery -t sendtargets -p <hedef_IP> komutunu kullanabilirsiniz.

  3. iSCSI Hedefleri Listeleme: Keşfedilen iSCSI hedeflerini listelemek için iscsiadm -m node komutunu kullanın.

  4. iSCSI Hedefleri Ayrıntıları: Keşfedilen iSCSI hedeflerinin ayrıntılarını almak için iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -l komutunu kullanın.

  5. iSCSI Hedefleri Bağlantı Durumu: Keşfedilen iSCSI hedeflerinin bağlantı durumunu kontrol etmek için iscsiadm -m session komutunu kullanın.

  6. iSCSI Hedefleri Bağlantısını Kesme: Bağlantıyı kesmek için iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -u komutunu kullanın.

  7. iSCSI Hedefleri Oturumunu Sonlandırma: Oturumu sonlandırmak için iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -o delete komutunu kullanın.

Bu adımları takip ederek iSCSI hedeflerini saptayabilir ve ayrıntılarını alabilirsiniz.

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

Bu komut dosyası kimlik doğrulamasının gerekip gerekmediğini belirtecektir.

Not: Hedeflerinizin keşfedildiğinde farklı bir IP adresi altında listelendiğini fark edebilirsiniz. Bu genellikle iSCSI hizmetinin NAT veya sanal bir IP üzerinden açık olduğunda olur. Bu durumlarda, iscsiadmin bağlantı kurmada başarısız olur. Bu, keşif faaliyetleriniz tarafından otomatik olarak oluşturulan düğüm dizini adına ve bu dizin içindeki default dosyasına iki düzeltme gerektirir.

Örneğin, 123.123.123.123 IP adresindeki bir iSCSI hedefine 3260 numaralı bağlantı noktasından bağlanmaya çalışıyorsunuz. iSCSI hedefini sunan sunucu aslında 192.168.1.2 adresinde ancak NAT üzerinden açık. isciadm, genel adres yerine dahili 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 şu şekilde bir dizin oluşturacaktır:

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

Dizin içinde, hedefe bağlanmak için gerekli tüm ayarları içeren varsayılan bir dosya bulunur.

  1. /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/ dizinini /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'e yönlendirecek şekilde değiştirin. 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.

Şimdi, bağlantıyı talimatlara göre bağlayabilirsiniz.

El ile numaralandırma

sudo apt-get install open-iscsi

Öncelikle, IP'nin arkasındaki hedeflerin adını keşfetmeniz gerekmektedir:

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, hedeflere ulaşabileceğiniz arayüzlerin IP ve bağlantı noktasını gösterecektir. Hatta kullandığınızdan farklı dahili IP'leri veya farklı IP'leri bile gösterebilir.

Ardından, her satırın yazdırılan dize'nin ikinci bölümünü yakalayın (ilk satırdan iqn.1992-05.com.emc:fl1001433000190000-3-vnxe) ve giriş yapmaya çalışı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.

Ardından, –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.

Sadece --login/--logout parametresi kullanmadan daha fazla bilgi bulabiliriz.

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ştiren bir betik mevcuttur iscsiadm

Shodan

  • port:3260 AuthMethod

Referanslar

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated