hacktricks/network-services-pentesting/3260-pentesting-iscsi.md
2024-02-10 13:11:20 +00:00

14 KiB
Raw Blame History

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:

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.

  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

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

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: