hacktricks/network-services-pentesting/3260-pentesting-iscsi.md

192 lines
16 KiB
Markdown
Raw Normal View History

2024-02-10 22:40:18 +00:00
# 3260 - Πεντεστάροντας το iSCSI
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 22:40:18 +00:00
## Βασικές Πληροφορίες
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Από την [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
2024-02-08 21:36:35 +00:00
2024-02-10 22:40:18 +00:00
> Στην πληροφορική, το **iSCSI** είναι αρκτικόγραφο για το **Internet Small Computer Systems Interface**, ένα πρότυπο αποθήκευσης βασισμένο στο πρωτόκολλο Internet Protocol (IP) για τη σύνδεση εγκαταστάσεων αποθήκευσης δεδομένων. Παρέχει πρόσβαση σε επίπεδο μπλοκ σε συσκευές αποθήκευσης μεταφέροντας εντολές SCSI μέσω ενός δικτύου TCP/IP. Το iSCSI χρησιμοποιείται για τη διευκόλυνση μεταφοράς δεδομένων σε εταιρικά δίκτυα και για τη διαχείριση αποθήκευσης σε μεγάλες αποστάσεις. Μπορεί να χρησιμοποιηθεί για τη μετάδοση δεδομένων σε τοπικά δίκτυα (LANs), ευρυζωνικά δίκτυα (WANs) ή το Διαδίκτυο και μπορεί να επιτρέψει αποθήκευση και ανάκτηση δεδομένων ανεξάρτητα από την τοποθεσία.
>
2024-02-10 22:40:18 +00:00
> Το πρωτόκολλο επιτρέπει στους πελάτες (που ονομάζονται initiators) να στέλνουν εντολές SCSI (CDBs) σε συσκευές αποθήκευσης (targets) σε απομακρυσμένους διακομιστές. Είναι ένα πρωτόκολλο αποθήκευσης περιοχής δικτύου (SAN), που επιτρέπει στις οργανώσεις να συγκεντρώνουν την αποθήκευση σε πίνακες αποθήκευσης παρέχοντας στους πελάτες (όπως οι διακομιστές βάσεων δεδομένων και ιστού) την ψευδαίσθηση τοπικά συνδεδεμένων δίσκων SCSI. Ανταγωνίζεται κυρίως με το Fibre Channel, αλλά αντίθετα με το παραδοσιακό Fibre Channel που συνήθως απαιτεί αφιερωμένη καλωδίωση, το iSCSI μπορεί να λειτουργήσει σε μεγάλες αποστάσεις χρησιμοποιώντας την υπάρχουσα υποδομή δικτύου.
2024-02-10 22:40:18 +00:00
**Προεπιλεγμένη θύρα:** 3260
2022-05-01 13:25:53 +00:00
```
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
```
2024-02-10 22:40:18 +00:00
## Απαρίθμηση
2024-02-10 22:40:18 +00:00
Η απαρίθμηση είναι η διαδικασία εντοπισμού και συλλογής πληροφοριών για ένα σύστημα iSCSI. Αυτές οι πληροφορίες μπορούν να περιλαμβάνουν τις διευθύνσεις IP των συστημάτων iSCSI, τις πόρτες που χρησιμοποιούνται, τα ονόματα των συστημάτων, τα ονόματα των χρηστών και άλλες σχετικές πληροφορίες. Η απαρίθμηση μπορεί να γίνει με τη χρήση εργαλείων όπως το nmap, το iSCSI Discovery Utility (iscsiadm) και το Wireshark.
2024-02-10 22:40:18 +00:00
Οι πληροφορίες που συλλέγονται κατά τη διαδικασία της απαρίθμησης μπορούν να χρησιμοποιηθούν για την εκτέλεση επιθέσεων όπως η εκμετάλλευση ευπάθειας, η αποκάλυψη διαπερατότητας και η ανάλυση της ασφάλειας του συστήματος iSCSI.
2022-05-01 13:25:53 +00:00
```
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
```
2024-02-10 22:40:18 +00:00
Αυτό το σενάριο θα υποδείξει εάν απαιτείται πιστοποίηση.
2024-02-10 22:40:18 +00:00
### [Βίαιη επίθεση](../generic-methodologies-and-resources/brute-force.md#iscsi)
2024-02-10 22:40:18 +00:00
### [Τοποθέτηση ISCSI στο Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
2024-02-10 22:40:18 +00:00
**Σημείωση:** Μπορεί να παρατηρήσετε ότι όταν ανακαλύπτονται οι στόχοι σας, αυτοί εμφανίζονται με διαφορετική διεύθυνση IP. Αυτό συμβαίνει συνήθως εάν ο υπηρεσία iSCSI εκτίθεται μέσω NAT ή εικονικής IP. Σε τέτοιες περιπτώσεις, η σύνδεση με το `iscsiadmin` θα αποτύχει. Αυτό απαιτεί δύο τροποποιήσεις: μία στο όνομα του καταλόγου του κόμβου που δημιουργείται αυτόματα από τις δραστηριότητες ανακάλυψης σας και μία στο αρχείο `default` που περιέχεται μέσα σε αυτόν τον κατάλογο.
2021-01-15 09:05:40 +00:00
2024-02-10 22:40:18 +00:00
Για παράδειγμα, προσπαθείτε να συνδεθείτε σε έναν στόχο iSCSI στη διεύθυνση 123.123.123.123 στη θύρα 3260. Ο διακομιστής που εκθέτει τον στόχο iSCSI βρίσκεται στην πραγματικότητα στη διεύθυνση 192.168.1.2 αλλά εκτίθεται μέσω NAT. Το isciadm θα καταχωρίσει την σωτερική_ διεύθυνση αντί της _δημόσιας_ διεύθυνσης:
2022-05-01 13:25:53 +00:00
```
2021-01-15 09:05:40 +00:00
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
[...]
```
2024-02-10 22:40:18 +00:00
Αυτή η εντολή θα δημιουργήσει έναν φάκελο στο σύστημα αρχείων σας όπως εξής:
2022-05-01 13:25:53 +00:00
```
2021-01-15 09:05:40 +00:00
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
```
2024-02-10 22:40:18 +00:00
Μέσα στον φάκελο, υπάρχει ένα αρχείο προεπιλογής με όλες τις ρυθμίσεις που απαιτούνται για να συνδεθείτε στον στόχο.
2021-01-15 09:05:40 +00:00
2024-02-10 22:40:18 +00:00
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`
2021-01-15 09:05:40 +00:00
2024-02-10 22:40:18 +00:00
Τώρα μπορείτε να προσαρτήσετε τον στόχο σύμφωνα με τις οδηγίες στον σύνδεσμο.
2021-01-15 09:05:40 +00:00
2024-02-10 22:40:18 +00:00
### [Προσάρτηση ISCSI στα Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
2024-02-10 22:40:18 +00:00
## **Χειροκίνητη απαρίθμηση**
```bash
sudo apt-get install open-iscsi
```
2024-02-10 22:40:18 +00:00
Παράδειγμα από τα [ιστολόγια του iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
2024-02-10 22:40:18 +00:00
Καταρχήν, χρειάζεστε να **ανακαλύψετε τα ονόματα των στόχων** πίσω από την IP:
2024-02-08 21:36:35 +00:00
```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
```
2024-02-10 22:40:18 +00:00
_Σημείωση ότι θα εμφανίσει την I**P και τη θύρα των διεπαφών** όπου μπορείτε να **φτάσετε** αυτούς τους **στόχους**. Μπορεί ακόμα να **εμφανίσει εσωτερικές IP ή διαφορετικές IP** από αυτήν που χρησιμοποιήσατε._
2024-02-10 22:40:18 +00:00
Στη συνέχεια, **πιάνετε το δεύτερο μέρος του εκτυπωμένου συμβολοσειράς κάθε γραμμής** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ από την πρώτη γραμμή) και **προσπαθείτε να συνδεθείτε**:
```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.
```
2024-02-10 22:40:18 +00:00
Στη συνέχεια, μπορείτε να **αποσυνδεθείτε** χρησιμοποιώντας την εντολή `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.
```
2024-02-10 22:40:18 +00:00
Μπορούμε να βρούμε **περισσότερες πληροφορίες** σχετικά με αυτό απλά χρησιμοποιώντας **χωρίς** οποιαδήποτε παράμετρο `--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 = <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
```
2024-02-10 22:40:18 +00:00
**Υπάρχει ένα σενάριο για την αυτοματοποίηση της διαδικασίας βασικής αναγνώρισης υποδικτύου διαθέσιμο στο** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
2020-09-18 11:59:55 +00:00
2022-05-01 13:25:53 +00:00
## **Shodan**
2020-09-18 11:59:55 +00:00
* `port:3260 AuthMethod`
2024-02-10 22:40:18 +00:00
## **Αναφορές**
2022-04-28 16:01:33 +00:00
2024-02-08 21:36:35 +00:00
* [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)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) **και** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **αποθετήρια του github.**
2022-04-28 16:01:33 +00:00
</details>