16 KiB
3260 - Πεντεστάροντας το iSCSI
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Βασικές Πληροφορίες
Από την 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/
Μέσα στον φάκελο, υπάρχει ένα αρχείο προεπιλογής με όλες τις ρυθμίσεις που απαιτούνται για να συνδεθείτε στον στόχο.
- Μετονομάστε το
/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/
- Μέσα στο
/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
Αναφορές
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm
Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.