# 3260 - Pentesting ISCSI {{#include ../banners/hacktricks-training.md}} ## Basic Information From [Wikipedia](https://en.wikipedia.org/wiki/ISCSI): > In computing, **iSCSI** का अर्थ है **Internet Small Computer Systems Interface**, जो डेटा स्टोरेज सुविधाओं को जोड़ने के लिए एक इंटरनेट प्रोटोकॉल (IP)-आधारित स्टोरेज नेटवर्किंग मानक है। यह TCP/IP नेटवर्क के माध्यम से SCSI कमांड ले जाकर स्टोरेज उपकरणों तक ब्लॉक-स्तरीय पहुंच प्रदान करता है। iSCSI ``` PORT STATE SERVICE VERSION 3260/tcp open iscsi? ``` ## गणना ``` nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx ``` यह स्क्रिप्ट यह संकेत करेगी कि क्या प्रमाणीकरण की आवश्यकता है। ### [Brute force](../generic-hacking/brute-force.md#iscsi) ### [Mount ISCSI on Linux](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` कनेक्ट करने में विफल रहेगा। इसके लिए दो समायोजन की आवश्यकता होती है: एक आपके खोज गतिविधियों द्वारा स्वचालित रूप से बनाए गए नोड के निर्देशिका नाम में, और एक इस निर्देशिका में मौजूद `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` जैसे कमांड के साथ किया जा सकता है। आप अब लिंक में दिए गए निर्देशों के अनुसार लक्ष्य को माउंट कर सकते हैं। ### [Mount ISCSI on Windows]() ## **Manual enumeration** ```bash sudo apt-get install open-iscsi ``` पहले आपको IP के पीछे **लक्ष्यों** के नाम को **खोजने** की आवश्यकता है: ```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 ``` _ध्यान दें कि यह उन **इंटरफेस** का I**P और पोर्ट** दिखाएगा जहाँ आप उन **लक्ष्यों** तक **पहुंच सकते** हैं। यह यहां तक कि **आंतरिक IPs या आपके द्वारा उपयोग किए गए IPs से अलग IPs** भी दिखा सकता है।_ फिर आप **प्रत्येक पंक्ति के मुद्रित स्ट्रिंग के 2nd भाग को पकड़ते हैं** (_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` का उपयोग करके **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 = iface.ipaddress = iface.iscsi_ifacename = default iface.net_ifacename = iface.transport_name = tcp iface.initiatorname = iface.bootproto = iface.subnet_mask = iface.gateway = iface.ipv6_autocfg = iface.linklocal_autocfg = iface.router_autocfg = iface.ipv6_linklocal = iface.ipv6_router = iface.state = iface.vlan_id = 0 iface.vlan_priority = 0 iface.vlan_state = 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 = node.session.auth.password = node.session.auth.username_in = node.session.auth.password_in = 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` ## **References** - [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) {{#include ../banners/hacktricks-training.md}}