12 KiB
3260 - Pentesting ISCSI
AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をご覧ください!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい場合やHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションをご覧ください
- 💬 Discordグループやテレグラムグループに参加するか、Twitter 🐦 @carlospolopmをフォローしてください。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有してください。
基本情報
コンピューティングにおいて、iSCSIはInternet Small Computer Systems Interfaceの略で、データストレージ施設をリンクするためのインターネットプロトコル(IP)ベースのストレージネットワーキング標準です。これは、TCP/IPネットワーク上でSCSIコマンドを運ぶことにより、ストレージデバイスへのブロックレベルアクセスを提供します。iSCSIは、イントラネット上でのデータ転送を容易にし、長距離にわたるストレージの管理を可能にします。これは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはインターネット上でデータを転送するために使用され、位置に依存しないデータストレージと取得を可能にします。
このプロトコルでは、クライアント(イニシエータと呼ばれる)がリモートサーバー上のストレージデバイス(ターゲット)にSCSIコマンド(CDB)を送信できます。これはストレージエリアネットワーク(SAN)プロトコルであり、組織がストレージをストレージアレイに統合する一方で、クライアント(データベースやウェブサーバーなど)にローカルに接続されたSCSIディスクのような体験を提供します。主にFibre Channelと競合していますが、通常専用のケーブリングを必要とする従来のFibre Channelとは異なり、iSCSIは既存のネットワークインフラストラクチャを使用して長距離で実行することができます。
デフォルトポート: 3260
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
列挙
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
このスクリプトは認証が必要かどうかを示します。
ブルートフォース
LinuxでISCSIをマウントする
注意: ターゲットが発見されたとき、異なるIPアドレスの下にリストされていることがあります。これは、iSCSIサービスがNATや仮想IPを介して公開されている場合によく起こります。このような場合、iscsiadmin
は接続に失敗します。これには2つの調整が必要です:一つは発見活動によって自動的に作成されたノードのディレクトリ名に、もう一つはこのディレクトリ内に含まれる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/
ディレクトリ内には、ターゲットに接続するために必要な設定が全て含まれたデフォルトファイルがあります。
/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
設定を 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をマウントする
手動列挙
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
Note that it will show the IPとポートのインターフェース where you can アクセス可能 those ターゲット. It can even 内部IPや異なるIPを表示することもあります from the one you used.
Then you 各行の印刷された文字列の2番目の部分をキャッチします (iqn.1992-05.com.emc:fl1001433000190000-3-vnxe from the first line) and ログインを試みます:
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
参考文献
{% embed url="https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html" %}
htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを手に入れましょう。
- The PEASS Familyを発見し、独占的なNFTsのコレクションをチェックしてください。
- 💬 Discordグループやテレグラムグループに参加するか、Twitter 🐦 @carlospolopmでフォローしてください。
- HackTricks と HackTricks Cloud のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有してください。