11 KiB
3260 - Pentesting ISCSI
{% hint style="success" %}
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.
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.
Brute force
Linux'ta ISCSI'yi Bağlama
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.
/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./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.
Windows'ta ISCSI Bağlama
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
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm
{% hint style="success" %}
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
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da 🐦 @hacktricks_live'i takip edin.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.