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

204 lines
12 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# 3260 - ISCSI Pentesting
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
## Temel Bilgiler
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
[Wikipedia](https://en.wikipedia.org/wiki/ISCSI)'dan alınan bilgilere göre:
2024-02-08 21:36:35 +00:00
2024-02-10 18:14:16 +00:00
> Bilgisayar biliminde, **iSCSI**, veri depolama tesislerini bağlamak için bir İnternet Protokolü (IP) tabanlı depolama ağı standardı olan **Internet Small Computer Systems Interface** kısaltmasıdır. SCSI komutlarını bir TCP/IP ağı üzerinden taşıyarak depolama cihazlarına blok düzeyinde erişim sağlar. iSCSI, veri transferlerini intranetler üzerinden gerçekleştirmek ve uzun mesafelerde depolama yönetimi yapmak için kullanılır. Yerel ağlar (LAN'lar), geniş alan ağları (WAN'lar) veya İnternet üzerinden veri iletimini sağlayabilir ve konum bağımsız veri depolama ve geri alma imkanı sunabilir.
>
2024-02-10 18:14:16 +00:00
> Bu protokol, istemcilerin (başlatıcılar olarak adlandırılır) uzak sunuculardaki depolama cihazlarına SCSI komutlarını (CDB'ler) göndermesine olanak tanır. Bu, bir depolama alanıı (SAN) protokolüdür ve organizasyonlara depolamayı depolama dizilerine konsolide etme imkanı sağlarken, istemcilere (veritabanı ve web sunucuları gibi) yerel olarak bağlı SCSI disklerin yanılsamasını sunar. Genellikle özel kablolar gerektiren geleneksel Fibre Channel ile başlıca rekabet ederken, iSCSI mevcut ağ altyapısını kullanarak 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?
```
2024-02-10 18:14:16 +00:00
## Saptama
iSCSI, bir ağ protokolüdür ve ağ üzerinden depolama alanı sağlamak için kullanılır. iSCSI hedefleri, IP adresleri veya DNS isimleriyle belirtilen sunucular olarak tanımlanır. iSCSI hedeflerini belirlemek için aşağıdaki adımları izleyebilirsiniz:
1. **Port Taraması**: iSCSI hedeflerini bulmak için bir port taraması yapın. iSCSI, genellikle TCP 3260 portunu kullanır.
2. **iSCSI Keşfi**: iSCSI hedeflerini keşfetmek için iSCSI keşif komutlarını kullanın. Örneğin, `iscsiadm -m discovery -t sendtargets -p <hedef_IP>` komutunu kullanabilirsiniz.
3. **iSCSI Hedefleri Listeleme**: Keşfedilen iSCSI hedeflerini listelemek için `iscsiadm -m node` komutunu kullanın.
4. **iSCSI Hedefleri Ayrıntıları**: Keşfedilen iSCSI hedeflerinin ayrıntılarını almak için `iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -l` komutunu kullanın.
2024-02-10 18:14:16 +00:00
5. **iSCSI Hedefleri Bağlantı Durumu**: Keşfedilen iSCSI hedeflerinin bağlantı durumunu kontrol etmek için `iscsiadm -m session` komutunu kullanın.
2024-02-10 18:14:16 +00:00
6. **iSCSI Hedefleri Bağlantısını Kesme**: Bağlantıyı kesmek için `iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -u` komutunu kullanın.
7. **iSCSI Hedefleri Oturumunu Sonlandırma**: Oturumu sonlandırmak için `iscsiadm -m node -T <hedef_adı> -p <hedef_IP> -o delete` komutunu kullanın.
Bu adımları takip ederek iSCSI hedeflerini saptayabilir ve ayrıntılarını alabilirsiniz.
2022-05-01 13:25:53 +00:00
```
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
```
2024-02-10 18:14:16 +00:00
Bu komut dosyası kimlik doğrulamasının gerekip gerekmediğini belirtecektir.
2022-05-01 13:25:53 +00:00
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
2024-02-10 18:14:16 +00:00
### [Linux'ta ISCSI bağlama](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
2024-02-10 18:14:16 +00:00
**Not:** Hedeflerinizin keşfedildiğinde farklı bir IP adresi altında listelendiğini fark edebilirsiniz. Bu genellikle iSCSI hizmetinin NAT veya sanal bir IP üzerinden açık olduğunda olur. Bu durumlarda, `iscsiadmin` bağlantı kurmada başarısız olur. Bu, keşif faaliyetleriniz tarafından otomatik olarak oluşturulan düğüm dizini adına ve bu dizin içindeki `default` dosyasına iki düzeltme gerektirir.
2021-01-15 09:05:40 +00:00
2024-02-10 18:14:16 +00:00
Örneğin, 123.123.123.123 IP adresindeki bir iSCSI hedefine 3260 numaralı bağlantı noktasından bağlanmaya çalışıyorsunuz. iSCSI hedefini sunan sunucu aslında 192.168.1.2 adresinde ancak NAT üzerinden açık. isciadm, _genel_ adres yerine _dahili_ 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
[...]
```
2024-02-10 18:14:16 +00:00
Bu komut, dosya sisteminizde şu şekilde 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/
```
2024-02-10 18:14:16 +00:00
Dizin içinde, hedefe bağlanmak için gerekli tüm ayarları içeren varsayılan bir dosya bulunur.
2021-01-15 09:05:40 +00:00
2024-02-10 18:14:16 +00:00
1. `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` dizinini `/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'e yönlendirecek şekilde değiştirin. 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
2024-02-10 18:14:16 +00:00
Şimdi, bağlantıyı talimatlara göre 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)
2024-02-10 18:14:16 +00:00
## **El ile numaralandırma**
```bash
sudo apt-get install open-iscsi
```
2024-02-10 18:14:16 +00:00
Öncelikle, IP'nin arkasındaki hedeflerin adını **keşfetmeniz** gerekmektedir:
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 18:14:16 +00:00
_Not edin ki, hedeflere ulaşabileceğiniz arayüzlerin I**P ve bağlantı noktasını** gösterecektir. Hatta kullandığınızdan farklı **dahili IP'leri veya farklı IP'leri** bile gösterebilir._
2024-02-10 18:14:16 +00:00
Ardından, her satırın **yazdırılan dize'nin ikinci bölümünü yakalayın** (ilk satırdan _iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_) ve **giriş yapmaya çalışın**:
```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 18:14:16 +00:00
Ardından, `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.
```
2024-02-10 18:14:16 +00:00
Sadece `--login`/`--logout` parametresi kullanmadan **daha fazla bilgi** bulabiliriz.
```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 18:14:16 +00:00
**Temel alt ağ numaralandırma sürecini otomatikleştiren 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
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
2022-04-28 16:01:33 +00:00
</details>