14 KiB
3260 - Pentestiranje iSCSI
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Sa Wikipedia:
U računarstvu, iSCSI je akronim za Internet Small Computer Systems Interface, standard za umrežavanje skladišta zasnovan na Internet protokolu (IP) za povezivanje skladišnih objekata. Pruža pristup skladišnim uređajima na nivou bloka preko TCP/IP mreže. iSCSI se koristi za olakšavanje prenosa podataka preko intraneta i upravljanje skladištem na velikim udaljenostima. Može se koristiti za prenos podataka preko lokalnih mreža (LAN), širokopojasnih mreža (WAN) ili Interneta i omogućava skladištenje i dohvat podataka nezavisno od lokacije.
Protokol omogućava klijentima (nazvanim inicijatorima) da šalju SCSI komande (CDB) uređajima za skladištenje (ciljevima) na udaljenim serverima. To je protokol za skladištenje na mreži (SAN), koji omogućava organizacijama da konsoliduju skladište u skladišne nizove, pružajući klijentima (kao što su baze podataka i veb serveri) iluziju lokalno povezanih SCSI diskova. Glavna konkurencija mu je Fibre Channel, ali za razliku od tradicionalnog Fibre Channel-a koji obično zahteva posebne kablove, iSCSI se može pokretati na velikim udaljenostima koristeći postojeću mrežnu infrastrukturu.
Podrazumevani port: 3260
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
Enumeracija
iSCSI (Internet Small Computer System Interface)
iSCSI je standardni protokol za prenos blok podataka preko IP mreže. Koristi se za povezivanje i upravljanje skladištima podataka na daljinu. Da biste započeli proces penetracije iSCSI servisa, prvo morate izvršiti enumeraciju kako biste identifikovali dostupne mete i otkrili potencijalne slabosti.
Portovi
iSCSI koristi dva glavna TCP/IP porta:
- Port 860: Standardni port za iSCSI servis
- Port 3260: Alternativni port za iSCSI servis
Identifikacija mete
Da biste identifikovali mete iSCSI servisa, možete koristiti različite metode:
- Skeniranje otvorenih portova: Skenirajte ciljnu IP adresu kako biste pronašli otvorene portove 860 i 3260.
- Snifiranje mreže: Snimajte mrežni saobraćaj kako biste identifikovali iSCSI pakete koji se razmenjuju između klijenta i servera.
Otkrivanje servisa
Nakon identifikacije otvorenih portova iSCSI servisa, možete koristiti različite alate za otkrivanje servisa kako biste dobili više informacija o meti:
nmap
: Koristite nmap sa opcijom-p
da biste skenirali otvorene portove iSCSI servisa.iscsiadm
: Koristite iscsiadm alat za otkrivanje iSCSI servisa i dobijanje informacija o njima.
Identifikacija metapodataka
Kada otkrijete iSCSI servis, možete koristiti različite metode za identifikaciju metapodataka:
iscsiadm
: Koristite iscsiadm alat za prikupljanje informacija o metapodacima iSCSI servisa.Wireshark
: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o metapodacima.
Identifikacija korisnika
Da biste identifikovali korisnike iSCSI servisa, možete koristiti različite metode:
iscsiadm
: Koristite iscsiadm alat za prikupljanje informacija o korisnicima iSCSI servisa.Wireshark
: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o korisnicima.
Identifikacija ciljeva
Da biste identifikovali ciljeve iSCSI servisa, možete koristiti različite metode:
iscsiadm
: Koristite iscsiadm alat za prikupljanje informacija o ciljevima iSCSI servisa.Wireshark
: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o ciljevima.
Identifikacija LUN-ova
Da biste identifikovali LUN-ove (Logical Unit Numbers) iSCSI servisa, možete koristiti različite metode:
iscsiadm
: Koristite iscsiadm alat za prikupljanje informacija o LUN-ovima iSCSI servisa.Wireshark
: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o LUN-ovima.
Identifikacija CHAP autentifikacije
Da biste identifikovali CHAP (Challenge-Handshake Authentication Protocol) autentifikaciju iSCSI servisa, možete koristiti različite metode:
iscsiadm
: Koristite iscsiadm alat za prikupljanje informacija o CHAP autentifikaciji iSCSI servisa.Wireshark
: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o CHAP autentifikaciji.
Identifikacija ACL-ova
Da biste identifikovali ACL-ove (Access Control Lists) iSCSI servisa, možete koristiti različite metode:
iscsiadm
: Koristite iscsiadm alat za prikupljanje informacija o ACL-ovima iSCSI servisa.Wireshark
: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o ACL-ovima.
Identifikacija servisnih parametara
Da biste identifikovali servisne parametre iSCSI servisa, možete koristiti različite metode:
iscsiadm
: Koristite iscsiadm alat za prikupljanje informacija o servisnim parametrima iSCSI servisa.Wireshark
: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o servisnim parametrima.
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
Ovaj skript će pokazati da li je potrebna autentifikacija.
Brute force
Montiranje ISCSI na Linuxu
Napomena: Može se desiti da kada se otkriju ciljevi, oni budu navedeni pod drugom IP adresom. Ovo se obično dešava ako je iSCSI servis izložen putem NAT-a ili virtuelne IP adrese. U takvim slučajevima, iscsiadmin
neće uspeti da se poveže. Potrebne su dve izmene: jedna u imenu direktorijuma čvorova koji su automatski kreirani tokom otkrivanja, i druga u default
fajlu koji se nalazi unutar ovog direktorijuma.
Na primer, pokušavate da se povežete sa iSCSI ciljem na adresi 123.123.123.123 na portu 3260. Server koji izlaže iSCSI cilj je zapravo na adresi 192.168.1.2, ali je izložen putem NAT-a. isciadm će registrovati internu adresu umesto javne adrese:
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
[...]
Ova komanda će kreirati direktorijum u vašem fajl sistemu na sledeći način:
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
Unutar direktorijuma se nalazi podrazumevani fajl sa svim podešavanjima potrebnim za povezivanje sa ciljem.
- Preimenuj
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
u/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/
- U fajlu
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default
, promenite podešavanjenode.conn[0].address
tako da pokazuje na 123.123.123.123 umesto 192.168.1.2. Ovo se može uraditi komandom poputsed -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
Sada možete montirati cilj prema uputstvima u linku.
Montiranje ISCSI na Windows-u
Ručno nabrojavanje
sudo apt-get install open-iscsi
Prvo što trebate uraditi je otkriti imena ciljeva iza IP adrese:
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
Napomena da će prikazati IP i port interfejsa na kojima možete dostići te mete. Može čak prikazati i interne IP adrese ili različite IP adrese od one koju ste koristili.
Zatim uhvatite drugi deo ispisane niske svake linije (iqn.1992-05.com.emc:fl1001433000190000-3-vnxe sa prve linije) i pokušajte se prijaviti:
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.
Zatim, možete odjaviti se koristeći –logout
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.
Možemo pronaći više informacija o tome samo korišćenjem bez bilo kakvog parametra --login
/--logout
.
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
Postoji skripta za automatizaciju osnovnog procesa enumeracije podmreže dostupna na iscsiadm
Shodan
port:3260 AuthMethod
Reference
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.