3260 - Pentesting ISCSI
Reading time: 6 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
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, organizasyonların depolamayı depolama dizilerine konsolide etmesine olanak tanıyan bir depolama alanı ağı (SAN) protokolüdür ve 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.
Brute force
Linux'ta ISCSI'yi Mount Etme
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/
Hedefe bağlanmak için gerekli tüm ayarların bulunduğu varsayılan bir dosya dizinde mevcuttur.
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
yolunu/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/
olarak yeniden adlandırın./etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default
içindenode.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ı talimatlarına göre hedefi bağlayabilirsiniz.
Windows'ta ISCSI Bağlama
Manuel sayım
sudo apt-get install open-iscsi
Öncelikle IP'nin arkasındaki hedeflerin adını keşfetmeniz gerekiyor:
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ılı 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.
Bunun hakkında daha fazla bilgi bulabiliriz, sadece kullanarak herhangi bir --login
/--logout
parametresi olmadan.
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
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.