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

188 lines
11 KiB
Markdown
Raw Normal View History

# 3260 - Pentesting ISCSI
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
## Temel Bilgiler
2022-04-28 16:01:33 +00:00
From [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
2024-02-08 21:36:35 +00:00
> In computing, **iSCSI** is an acronym for **Internet Small Computer Systems Interface**, bir Internet Protokolü (IP) tabanlı depolama ağ standardıdır. Veri depolama tesislerini bağlamak için kullanılır. SCSI komutlarını bir TCP/IP ağı üzerinden taşıyarak depolama cihazlarına blok düzeyinde erişim sağlar. iSCSI, intranetler üzerinden veri transferlerini kolaylaştırmak ve uzun mesafelerde depolamayı yönetmek için kullanılır. Yerel alan ağları (LAN), geniş alan ağları (WAN) veya İnternet üzerinden veri iletimi için kullanılabilir ve konumdan bağımsız veri depolama ve alma imkanı sağlar.
>
> Protokol, istemcilerin (başlatıcılar olarak adlandırılır) uzak sunuculardaki depolama cihazlarına (hedefler) SCSI komutları (CDB'ler) göndermesine olanak tanır. Bu, depolama alanıı (SAN) protokolüdür ve kuruluşların depolamayı depolama dizilerine konsolide etmesine olanak tanırken, istemcilere (veritabanı ve web sunucuları gibi) yerel olarak bağlı SCSI diskleri yanılsaması sağlar. Temelde Fibre Channel ile rekabet eder, ancak genellikle özel kablolama gerektiren geleneksel Fibre Channel'ın aksine, iSCSI mevcut ağ altyapısı kullanılarak uzun mesafelerde çalıştırılabilir.
2024-02-10 18:14:16 +00:00
**Varsayılan port:** 3260
2022-05-01 13:25:53 +00:00
```
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
```
## Sayım
2022-05-01 13:25:53 +00:00
```
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
```
Bu script, kimlik doğrulamanın gerekip gerekmediğini gösterecektir.
2022-05-01 13:25:53 +00:00
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
### [Linux'ta ISCSI'yi Bağlama](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
**Not:** Hedefleriniz keşfedildiğinde, farklı bir IP adresi altında listelendiğini görebilirsiniz. Bu, iSCSI hizmetinin NAT veya sanal IP aracılığıyla açılması durumunda meydana gelir. Bu gibi durumlarda, `iscsiadmin` bağlantı kurmayı başaramaz. Bu, keşif faaliyetleriniz tarafından otomatik olarak oluşturulan düğümün dizin adı için bir ayar ve bu dizin içinde bulunan `default` dosyası için bir ayar gerektirir.
2021-01-15 09:05:40 +00:00
Örneğin, 123.123.123.123 adresindeki bir iSCSI hedefine 3260 portu üzerinden bağlanmaya çalışıyorsunuz. iSCSI hedefini açan sunucu aslında 192.168.1.2 adresindedir ancak NAT aracılığıyla açılmıştır. isciadm, _kendi_ adresini değil, _genel_ adresi kaydedecektir:
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
[...]
```
Bu komut, dosya sisteminizde şöyle bir dizin oluşturacaktır:
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/
```
Klasör içinde, hedefe bağlanmak için gerekli tüm ayarların bulunduğu bir varsayılan dosya vardır.
2021-01-15 09:05:40 +00:00
1. `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` dosyasını `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/` olarak yeniden adlandırın.
2. `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` içinde, `node.conn[0].address` ayarını 192.168.1.2 yerine 123.123.123.123 olarak ayarlayın. Bu, `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` gibi bir komutla yapılabilir.
2021-01-15 09:05:40 +00:00
Artık bağlantıdaki talimatlara göre hedefi bağlayabilirsiniz.
2021-01-15 09:05:40 +00:00
2024-02-10 18:14:16 +00:00
### [Windows'ta ISCSI Bağlama](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
## **Manuel sayım**
```bash
sudo apt-get install open-iscsi
```
Öncelikle IP'nin arkasındaki **hedeflerin** adını **bulmalısınız**:
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
```
_Not edin ki, bu, o **hedeflere ulaşabileceğiniz** **arayüzlerin** I**P ve portunu** gösterecektir. Hatta **kullandığınızdan farklı IP'leri veya iç IP'leri** bile **gösterebilir**._
Sonra, her satırın basılan dizesinin **2. kısmını yakalarsınız** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ ilk satırdan) ve **giriş yapmayı dener**:
```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.
```
Sonra, `logout` kullanarak **çıkış yapabilirsiniz**.
```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.
```
**Daha fazla bilgi** bulabiliriz, sadece `--login`/`--logout` parametresi **kullanmadan**.
```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
```
**Temel alt ağ numaralandırma sürecini otomatikleştirmek için bir betik mevcuttur** [**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 18:14:16 +00:00
## **Referanslar**
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
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>HackTricks'i Destekleyin</summary>
2022-04-28 16:01:33 +00:00
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}