14 KiB
3260 - Тестування на проникнення ISCSI
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!
Інші способи підтримки HackTricks:
- Якщо ви хочете побачити вашу компанію рекламовану на HackTricks або завантажити HackTricks у форматі PDF, перевірте ПЛАНИ ПІДПИСКИ!
- Отримайте офіційний PEASS & HackTricks мерч
- Відкрийте для себе Сім'ю PEASS, нашу колекцію ексклюзивних NFT
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами на Twitter 🐦 @carlospolopm.
- Поділіться своїми хакерськими трюками, надсилайте PR до HackTricks і HackTricks Cloud репозиторіїв на GitHub.
Основна інформація
З Вікіпедії:
У комп'ютерній науці iSCSI - це абревіатура від Internet Small Computer Systems Interface, стандарт зберігання на основі протоколу Інтернету (IP) для з'єднання засобів зберігання даних. Він забезпечує доступ на рівні блоків до пристроїв зберігання, передаючи команди SCSI через мережу TCP/IP. 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
Цей скрипт покаже, чи потрібна аутентифікація.
Брутфорс
Підключення ISCSI на Linux
Примітка: Ви можете помітити, що коли ваші цілі виявлені, вони перераховані під іншою IP-адресою. Це часто трапляється, якщо служба iSCSI викладена через NAT або віртуальну IP-адресу. У таких випадках iscsiadmin
не зможе підключитися. Це потребує двох налаштувань: одне для імені каталогу вузла, автоматично створеного вашими діями з виявлення, і одне для файлу default
, що міститься в цьому каталозі.
Наприклад, ви намагаєтеся підключитися до цілі iSCSI на 123.123.123.123 на порту 3260. Сервер, що викладає ціль 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
, щоб вказувати на 123.123.123.123 замість 192.168.1.2. Це можна зробити за допомогою команди, наприклад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
Тепер ви можете монтувати ціль згідно інструкцій за посиланням.
Підключення ISCSI на Windows
Ручне перелічення
sudo apt-get install open-iscsi
Приклад з документації iscsiadm:
Спочатку вам потрібно виявити імена цілей за 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
Зверніть увагу, що він покаже IP-адресу та порт інтерфейсів, до яких ви можете дістатися ці цілі. Він навіть може показати внутрішні IP-адреси або різні IP-адреси від того, який ви використовували.
Потім ви зловлюєте 2-у частину надрукованого рядка кожного рядка (iqn.1992-05.com.emc:fl1001433000190000-3-vnxe з першого рядка) і спробуєте увійти:
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
References
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!
Інші способи підтримки HackTricks:
- Якщо ви хочете побачити вашу компанію рекламовану в HackTricks або завантажити HackTricks у PDF Перевірте ПЛАНИ ПІДПИСКИ!
- Отримайте офіційний PEASS & HackTricks мерч
- Відкрийте для себе Сім'ю PEASS, нашу колекцію ексклюзивних NFT
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами на Twitter 🐦 @carlospolopm.
- Поділіться своїми хакерськими трюками, надсилайте PR до HackTricks та HackTricks Cloud репозиторіїв GitHub.