3260 - Pentesting ISCSI

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Vanaf Wikipedia:

In rekenaars, is iSCSI 'n afkorting vir Internet Small Computer Systems Interface, 'n Internet Protocol (IP)-gebaseerde berging-netwerkstandaard vir die koppeling van data-bergingsfasiliteite. Dit bied blokvlaktoegang tot bergingsapparate deur SCSI-opdragte oor 'n TCP/IP-netwerk te dra. iSCSI word gebruik om data-oordragte oor intranette te fasiliteer en berging oor lang afstande te bestuur. Dit kan gebruik word om data oor plaaslike area-netwerke (LAN's), wye area-netwerke (WAN's) of die internet te stuur en kan lokasie-onafhanklike data-berging en -herwinning moontlik maak.

Die protokol stel kliënte (genoem inisieerders) in staat om SCSI-opdragte (CDB's) na bergingsapparate (teikens) op afgeleë bedieners te stuur. Dit is 'n berging-area-netwerk (SAN)-protokol wat organisasies in staat stel om berging in bergingsreekse te konsolideer terwyl dit kliënte (soos databasis- en webbedieners) die illusie van lokaal aangehegte SCSI-skystukke bied. Dit kom hoofsaaklik in mededinging met Fibre Channel, maar anders as tradisionele Fibre Channel wat gewoonlik toegewyde bekabeling vereis, kan iSCSI oor lang afstande uitgevoer word deur gebruik te maak van bestaande netwerkinfrastruktuur.

Verstekpoort: 3260

PORT     STATE SERVICE VERSION
3260/tcp open  iscsi?

Opstel

Enumeration is 'n belangrike fase in die pentesting-proses wat dit moontlik maak om inligting oor 'n doelwit se iSCSI-implementasie te verkry. Hierdie inligting kan gebruik word om swakpunte te identifiseer en moontlike aanvalsveilighede te bepaal.

iSCSI Dienste Identifiseer

Die eerste stap in die enumerasieproses is om die teenwoordigheid van iSCSI-dienste op die doelwit te bevestig. Dit kan gedoen word deur die volgende tegnieke te gebruik:

  • Portskandering: Skandeer die doelwit se poorte om te bepaal of daar enige aktiewe poorte is wat verband hou met iSCSI-dienste. Die standaardpoort vir iSCSI is 3260.

  • Netwerkverkeerontleding: Monitor die netwerkverkeer om te soek na enige iSCSI-verkeer wat tussen die doelwit en ander toestelle plaasvind.

  • Banneropname: Ondersoek die banners wat deur die doelwit se dienste teruggestuur word om te soek na enige verwysings na iSCSI.

iSCSI Dienste Skandering

Nadat die teenwoordigheid van iSCSI-dienste bevestig is, kan die volgende stap wees om die dienste te skandeer om verdere inligting te verkry. Hier is 'n paar tegnieke wat gebruik kan word:

  • Portskandering: Skandeer die aktiewe iSCSI-poorte om te bepaal of daar enige ander poorte is wat verband hou met die diens.

  • iSCSI-ontdekkingskandering: Gebruik die iSCSI-ontdekkingsprotokol om te soek na iSCSI-doelwitte wat deur die doelwit bedien word.

  • iSCSI-identifikasie: Identifiseer die iSCSI-doelwitte wat deur die doelwit bedien word en verkry inligting soos die doelwit se naam, serienommer, IP-adres en protokol.

iSCSI Dienste Inligting Versameling

Die finale stap in die enumerasieproses is om inligting oor die iSCSI-dienste te versamel. Hier is 'n paar nuttige inligting wat verkry kan word:

  • Doelwitinligting: Verkry inligting soos die doelwit se IP-adres, subnetmasker, DNS-inligting en ander relevante netwerkinligting.

  • Doelwitvermoëns: Identifiseer die vermoëns van die doelwit se iSCSI-implementasie, soos die ondersteunde protokolle, versleuteling, verbindingsmetodes en toegangsbeheer.

  • Gebruikersinligting: Identifiseer enige gebruikers wat toegang het tot die iSCSI-dienste en verkry inligting soos gebruikersname, wagwoorde en toegangsregte.

Deur hierdie enumerasietegnieke te gebruik, kan 'n pentester waardevolle inligting verkry oor 'n doelwit se iSCSI-implementasie, wat kan help om moontlike aanvalsveilighede te identifiseer en 'n suksesvolle aanval te beplan.

nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx

Hierdie skrip sal aandui of verifikasie vereis word.

Nota: Jy mag vind dat wanneer jou teikens ontdek word, hulle gelys word onder 'n ander IP-adres. Dit gebeur dikwels as die iSCSI-diens blootgestel word deur middel van NAT of 'n virtuele IP. In sulke gevalle sal iscsiadmin nie kan verbind nie. Dit vereis twee aanpassings: een aan die gidsnaam van die node wat outomaties deur jou ontdekkingsaktiwiteite geskep is, en een aan die default-lêer wat in hierdie gids bevat word.

Byvoorbeeld, jy probeer verbind met 'n iSCSI-teiken op 123.123.123.123 by poort 3260. Die bediener wat die iSCSI-teiken blootstel, is eintlik by 192.168.1.2 maar blootgestel deur middel van NAT. isciadm sal die interne adres registreer eerder as die openbare adres:

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
[...]

Hierdie bevel sal 'n gids in jou lêersisteem skep soos volg:

/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/

Binne die gids is daar 'n versteklêer met al die instellings wat nodig is om met die teiken te verbind.

  1. Hernoem /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/ na /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/

  2. Binne /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default, verander die node.conn[0].address instelling om na 123.123.123.123 te wys in plaas van 192.168.1.2. Dit kan gedoen word met 'n opdrag soos 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

Jy kan nou die teiken monteer volgens die instruksies in die skakel.

Handmatige opname

sudo apt-get install open-iscsi

Voorbeeld van iscsiadm dokumentasie:

Eerstens moet jy die teikens se name agter die IP ontdek:

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

Merk op dat dit die IP en poort van die interfaces sal wys waar jy daardie teikens kan bereik. Dit kan selfs interne IP's of verskillende IP's as die een wat jy gebruik het, wys.

Vang dan die 2de deel van die gedrukte string van elke lyn (iqn.1992-05.com.emc:fl1001433000190000-3-vnxe van die eerste lyn) en probeer om in te teken:

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.

Dan kan jy uitlog deur –logout te gebruik

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.

Ons kan meer inligting daaroor vind deur net sonder enige --login/--logout parameter te gebruik.

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

Daar is 'n skrip om die basiese subnet opsporing proses outomaties te doen beskikbaar by iscsiadm

Shodan

  • port:3260 AuthMethod

Verwysings

Leer AWS hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated