12 KiB
3260 - ISCSI Pentesting
AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
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:
-
Port Taraması: iSCSI hedeflerini bulmak için bir port taraması yapın. iSCSI, genellikle TCP 3260 portunu kullanır.
-
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. -
iSCSI Hedefleri Listeleme: Keşfedilen iSCSI hedeflerini listelemek için
iscsiadm -m node
komutunu kullanın. -
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. -
iSCSI Hedefleri Bağlantı Durumu: Keşfedilen iSCSI hedeflerinin bağlantı durumunu kontrol etmek için
iscsiadm -m session
komutunu kullanın. -
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. -
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.
Brute force
Linux'ta ISCSI bağlama
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.
/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./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.
Windows'ta ISCSI Bağlama
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
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.