# 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**](https://github.com/sponsors/carlospolop)! * Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) * Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) * **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
## Osnovne informacije Sa [Wikipedia](https://en.wikipedia.org/wiki/ISCSI): > 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](../generic-methodologies-and-resources/brute-force.md#iscsi) ### [Montiranje ISCSI na Linuxu](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux) **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. 1. 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/` 2. U fajlu `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, promenite podešavanje `node.conn[0].address` tako da pokazuje na 123.123.123.123 umesto 192.168.1.2. Ovo se može uraditi komandom poput `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` Sada možete montirati cilj prema uputstvima u linku. ### [Montiranje ISCSI na Windows-u](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN) ## **Ručno nabrojavanje** ```bash sudo apt-get install open-iscsi ``` Prvo što trebate uraditi je **otkriti imena ciljeva** iza IP adrese: ```bash 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 I**P 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**: ```bash 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` ```bash 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`. ```bash 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 = iface.ipaddress = iface.iscsi_ifacename = default iface.net_ifacename = iface.transport_name = tcp iface.initiatorname = iface.bootproto = iface.subnet_mask = iface.gateway = iface.ipv6_autocfg = iface.linklocal_autocfg = iface.router_autocfg = iface.ipv6_linklocal = iface.ipv6_router = iface.state = iface.vlan_id = 0 iface.vlan_priority = 0 iface.vlan_state = 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 = node.session.auth.password = node.session.auth.username_in = node.session.auth.password_in = 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**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm) ## **Shodan** * `port:3260 AuthMethod` ## **Reference** * [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html) * [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](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**](https://github.com/sponsors/carlospolop)! * Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) * Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) * **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.