hacktricks/network-services-pentesting/3260-pentesting-iscsi.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

16 KiB
Raw Blame History

3260 - Πεντεστάροντας το iSCSI

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Βασικές Πληροφορίες

Από την Wikipedia:

Στην πληροφορική, το iSCSI είναι αρκτικόγραφο για το Internet Small Computer Systems Interface, ένα πρότυπο αποθήκευσης βασισμένο στο πρωτόκολλο Internet Protocol (IP) για τη σύνδεση εγκαταστάσεων αποθήκευσης δεδομένων. Παρέχει πρόσβαση σε επίπεδο μπλοκ σε συσκευές αποθήκευσης μεταφέροντας εντολές SCSI μέσω ενός δικτύου TCP/IP. Το iSCSI χρησιμοποιείται για τη διευκόλυνση μεταφοράς δεδομένων σε εταιρικά δίκτυα και για τη διαχείριση αποθήκευσης σε μεγάλες αποστάσεις. Μπορεί να χρησιμοποιηθεί για τη μετάδοση δεδομένων σε τοπικά δίκτυα (LANs), ευρυζωνικά δίκτυα (WANs) ή το Διαδίκτυο και μπορεί να επιτρέψει αποθήκευση και ανάκτηση δεδομένων ανεξάρτητα από την τοποθεσία.

Το πρωτόκολλο επιτρέπει στους πελάτες (που ονομάζονται initiators) να στέλνουν εντολές SCSI (CDBs) σε συσκευές αποθήκευσης (targets) σε απομακρυσμένους διακομιστές. Είναι ένα πρωτόκολλο αποθήκευσης περιοχής δικτύου (SAN), που επιτρέπει στις οργανώσεις να συγκεντρώνουν την αποθήκευση σε πίνακες αποθήκευσης παρέχοντας στους πελάτες (όπως οι διακομιστές βάσεων δεδομένων και ιστού) την ψευδαίσθηση τοπικά συνδεδεμένων δίσκων SCSI. Ανταγωνίζεται κυρίως με το Fibre Channel, αλλά αντίθετα με το παραδοσιακό Fibre Channel που συνήθως απαιτεί αφιερωμένη καλωδίωση, το iSCSI μπορεί να λειτουργήσει σε μεγάλες αποστάσεις χρησιμοποιώντας την υπάρχουσα υποδομή δικτύου.

Προεπιλεγμένη θύρα: 3260

PORT     STATE SERVICE VERSION
3260/tcp open  iscsi?

Απαρίθμηση

Η απαρίθμηση είναι η διαδικασία εντοπισμού και συλλογής πληροφοριών για ένα σύστημα iSCSI. Αυτές οι πληροφορίες μπορούν να περιλαμβάνουν τις διευθύνσεις IP των συστημάτων iSCSI, τις πόρτες που χρησιμοποιούνται, τα ονόματα των συστημάτων, τα ονόματα των χρηστών και άλλες σχετικές πληροφορίες. Η απαρίθμηση μπορεί να γίνει με τη χρήση εργαλείων όπως το nmap, το iSCSI Discovery Utility (iscsiadm) και το Wireshark.

Οι πληροφορίες που συλλέγονται κατά τη διαδικασία της απαρίθμησης μπορούν να χρησιμοποιηθούν για την εκτέλεση επιθέσεων όπως η εκμετάλλευση ευπάθειας, η αποκάλυψη διαπερατότητας και η ανάλυση της ασφάλειας του συστήματος iSCSI.

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

Αυτό το σενάριο θα υποδείξει εάν απαιτείται πιστοποίηση.

Βίαιη επίθεση

Τοποθέτηση ISCSI στο Linux

Σημείωση: Μπορεί να παρατηρήσετε ότι όταν ανακαλύπτονται οι στόχοι σας, αυτοί εμφανίζονται με διαφορετική διεύθυνση IP. Αυτό συμβαίνει συνήθως εάν ο υπηρεσία iSCSI εκτίθεται μέσω NAT ή εικονικής IP. Σε τέτοιες περιπτώσεις, η σύνδεση με το iscsiadmin θα αποτύχει. Αυτό απαιτεί δύο τροποποιήσεις: μία στο όνομα του καταλόγου του κόμβου που δημιουργείται αυτόματα από τις δραστηριότητες ανακάλυψης σας και μία στο αρχείο default που περιέχεται μέσα σε αυτόν τον κατάλογο.

Για παράδειγμα, προσπαθείτε να συνδεθείτε σε έναν στόχο iSCSI στη διεύθυνση 123.123.123.123 στη θύρα 3260. Ο διακομιστής που εκθέτει τον στόχο iSCSI βρίσκεται στην πραγματικότητα στη διεύθυνση 192.168.1.2 αλλά εκτίθεται μέσω NAT. Το isciadm θα καταχωρίσει την εσωτερική διεύθυνση αντί της δημόσιας διεύθυνσης:

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

Αυτή η εντολή θα δημιουργήσει έναν φάκελο στο σύστημα αρχείων σας όπως εξής:

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

Μέσα στον φάκελο, υπάρχει ένα αρχείο προεπιλογής με όλες τις ρυθμίσεις που απαιτούνται για να συνδεθείτε στον στόχο.

  1. Μετονομάστε το /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/ σε /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/
  2. Μέσα στο /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default, αλλάξτε τη ρύθμιση node.conn[0].address ώστε να δείχνει στη διεύθυνση 123.123.123.123 αντί για την 192.168.1.2. Αυτό μπορεί να γίνει με έναν εντολή όπως 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

Τώρα μπορείτε να προσαρτήσετε τον στόχο σύμφωνα με τις οδηγίες στον σύνδεσμο.

Προσάρτηση ISCSI στα Windows

Χειροκίνητη απαρίθμηση

sudo apt-get install open-iscsi

Παράδειγμα από τα ιστολόγια του iscsiadm:

Καταρχήν, χρειάζεστε να ανακαλύψετε τα ονόματα των στόχων πίσω από την IP:

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

Σημείωση ότι θα εμφανίσει την IP και τη θύρα των διεπαφών όπου μπορείτε να φτάσετε αυτούς τους στόχους. Μπορεί ακόμα να εμφανίσει εσωτερικές IP ή διαφορετικές IP από αυτήν που χρησιμοποιήσατε.

Στη συνέχεια, πιάνετε το δεύτερο μέρος του εκτυπωμένου συμβολοσειράς κάθε γραμμής (iqn.1992-05.com.emc:fl1001433000190000-3-vnxe από την πρώτη γραμμή) και προσπαθείτε να συνδεθείτε:

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.

Στη συνέχεια, μπορείτε να αποσυνδεθείτε χρησιμοποιώντας την εντολή 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.

Μπορούμε να βρούμε περισσότερες πληροφορίες σχετικά με αυτό απλά χρησιμοποιώντας χωρίς οποιαδήποτε παράμετρο --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

Υπάρχει ένα σενάριο για την αυτοματοποίηση της διαδικασίας βασικής αναγνώρισης υποδικτύου διαθέσιμο στο iscsiadm

Shodan

  • port:3260 AuthMethod

Αναφορές

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks: