hacktricks/network-services-pentesting/3260-pentesting-iscsi.md
2023-07-07 23:42:27 +00:00

213 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](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**iSNSInternet 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のコレクション**です。
- [**公式のPEASSHackTricksのグッズ**](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>