mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-17 06:28:27 +00:00
213 lines
15 KiB
Markdown
213 lines
15 KiB
Markdown
# 3260 - Pentesting ISCSI
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
|
||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||
|
||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||
|
||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||
|
||
- **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||
|
||
</details>
|
||
|
||
## 基本情報
|
||
|
||
> コンピューティングにおいて、**iSCSI**は**Internet Small Computer Systems Interface**の略であり、データストレージ施設をリンクするためのインターネットプロトコル(IP)ベースのストレージネットワーキング標準です。これにより、TCP/IPネットワーク上でSCSIコマンドを輸送することで、ストレージデバイスへのブロックレベルのアクセスが提供されます。iSCSIはイントラネット上でのデータ転送や長距離でのストレージ管理に使用されます。これは、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはインターネットを介してデータを転送するために使用でき、場所に依存しないデータの保存と取得を可能にすることができます。
|
||
>
|
||
> このプロトコルでは、クライアント(イニシエータ)がリモートサーバー上のストレージデバイス(ターゲット)にSCSIコマンド(CDB)を送信することができます。これはストレージエリアネットワーク(SAN)プロトコルであり、組織がストレージをストレージアレイに統合する一方で、データベースやWebサーバーなどのクライアントにローカルに接続されたSCSIディスクの幻想を提供します。これは主にFibre Channelと競合していますが、通常専用のケーブルが必要な従来のFibre Channelとは異なり、既存のネットワークインフラストラクチャを使用して長距離で実行することができます。
|
||
|
||
**デフォルトポート:** 3260
|
||
```
|
||
PORT STATE SERVICE VERSION
|
||
3260/tcp open iscsi?
|
||
```
|
||
## 列挙
|
||
|
||
iSCSIサービスのペンテストを開始する前に、まずはターゲットシステムの列挙を行う必要があります。以下に、iSCSIサービスの列挙に役立つツールとテクニックをいくつか紹介します。
|
||
|
||
### Nmapスクリプト
|
||
|
||
Nmapは、iSCSIサービスの列挙に役立つさまざまなスクリプトを提供しています。以下は、いくつかの便利なスクリプトの例です。
|
||
|
||
- `iscsi-info`:iSCSIサーバーの情報を取得します。
|
||
- `iscsi-enum-targets`:iSCSIターゲットを列挙します。
|
||
- `iscsi-brute`:iSCSIサーバーへのブルートフォース攻撃を実行します。
|
||
|
||
これらのスクリプトを使用することで、iSCSIサービスに関する重要な情報を収集することができます。
|
||
|
||
### Wireshark
|
||
|
||
Wiresharkは、ネットワークトラフィックをキャプチャし、解析するための強力なツールです。iSCSIサービスの列挙には、Wiresharkを使用してiSCSIトラフィックをキャプチャし、解析することが有効です。iSCSIトラフィックには、ターゲットシステムのIPアドレスやポート番号などの重要な情報が含まれている場合があります。
|
||
|
||
### iSCSI Discovery
|
||
|
||
iSCSIディスカバリは、iSCSIサーバーが提供するターゲットを特定するためのプロセスです。iSCSIディスカバリには、以下の2つの主要な方法があります。
|
||
|
||
- **SendTargets**:iSCSIサーバーに対してSendTargetsリクエストを送信し、利用可能なターゲットを取得します。
|
||
- **iSNS**:iSNS(Internet Storage Name Service)を使用して、iSCSIターゲットを特定します。
|
||
|
||
これらの方法を使用して、ターゲットシステムのiSCSIサービスに関する情報を収集することができます。
|
||
|
||
iSCSIサービスの列挙は、ペンテストの重要なステップです。これにより、攻撃者はターゲットシステムの脆弱性を特定し、攻撃の手法を計画することができます。
|
||
```
|
||
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
|
||
```
|
||
このスクリプトは、認証が必要かどうかを示します。
|
||
|
||
### [ブルートフォース](../generic-methodologies-and-resources/brute-force.md#iscsi)
|
||
|
||
### [LinuxでのISCSIのマウント](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||
|
||
**注意:** ターゲットが発見されると、異なるIPアドレスでリストされる場合があります。これは、iSCSIサービスがNATまたは仮想IP経由で公開されている場合に起こります。このような場合、`iscsiadmin`は接続に失敗します。これには2つの調整が必要です。1つは、自動的に作成されたノードのディレクトリ名を変更すること、もう1つはこのディレクトリ内に含まれる`default`ファイルを変更することです。
|
||
|
||
例えば、123.123.123.123のポート3260でiSCSIターゲットに接続しようとしています。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` の設定を、192.168.1.2 の代わりに 123.123.123.123 を指すように変更します。これは、次のようなコマンドで行うことができます:`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`
|
||
|
||
リンク内の手順に従って、ターゲットをマウントすることができます。
|
||
|
||
### [WindowsでISCSIをマウントする](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||
|
||
## **手動列挙**
|
||
```bash
|
||
sudo apt-get install open-iscsi
|
||
```
|
||
まず最初に、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
|
||
```
|
||
_注意してください。それは、**ターゲットに到達できる**インターフェースのI**Pとポート**を表示します。使用したものとは異なる**内部IPや異なるIP**を表示することもあります。_
|
||
|
||
次に、各行の**印刷された文字列の2番目の部分**(最初の行から_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.
|
||
```
|
||
その後、`–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.
|
||
```
|
||
**さらなる情報**は、`--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
|
||
```
|
||
**基本的なサブネット列挙プロセスを自動化するスクリプトが** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm) **で利用可能です。**
|
||
|
||
## **Shodan**
|
||
|
||
* `port:3260 AuthMethod`
|
||
|
||
## **参考文献**
|
||
|
||
{% embed url="https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html" %}
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝したいですか**?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたり**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
|
||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family) **を発見しましょう**、**独占的なNFTのコレクション**です。
|
||
|
||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||
|
||
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください**。
|
||
|
||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||
|
||
</details>
|