3260 - Pentesting ISCSI

Support HackTricks

Basic Information

From Wikipedia:

In computing, iSCSI is an acronym for Internet Small Computer Systems Interface, एक इंटरनेट प्रोटोकॉल (IP)-आधारित स्टोरेज नेटवर्किंग मानक जो डेटा स्टोरेज सुविधाओं को लिंक करता है। यह TCP/IP नेटवर्क पर SCSI कमांड ले जाकर स्टोरेज डिवाइस तक ब्लॉक-स्तरीय पहुंच प्रदान करता है। iSCSI का उपयोग डेटा ट्रांसफर को सुविधाजनक बनाने और लंबी दूरी पर स्टोरेज प्रबंधन के लिए किया जाता है। इसका उपयोग स्थानीय क्षेत्र नेटवर्क (LANs), वाइड एरिया नेटवर्क (WANs), या इंटरनेट पर डेटा ट्रांसमिट करने के लिए किया जा सकता है और यह स्थान-स्वतंत्र डेटा स्टोरेज और पुनर्प्राप्ति को सक्षम कर सकता है।

प्रोटोकॉल क्लाइंट (जिन्हें इनिशिएटर्स कहा जाता है) को दूरस्थ सर्वरों पर स्टोरेज डिवाइस (टारगेट्स) को SCSI कमांड (CDBs) भेजने की अनुमति देता है। यह एक स्टोरेज एरिया नेटवर्क (SAN) प्रोटोकॉल है, जो संगठनों को स्टोरेज को स्टोरेज एरे में समेकित करने की अनुमति देता है जबकि क्लाइंट (जैसे डेटाबेस और वेब सर्वर) को स्थानीय रूप से जुड़े SCSI डिस्क का भ्रम प्रदान करता है। यह मुख्य रूप से फाइबर चैनल के साथ प्रतिस्पर्धा करता है, लेकिन पारंपरिक फाइबर चैनल के विपरीत, जिसे आमतौर पर समर्पित केबलिंग की आवश्यकता होती है, iSCSI को मौजूदा नेटवर्क अवसंरचना का उपयोग करके लंबी दूरी पर चलाया जा सकता है।

Default port: 3260

PORT     STATE SERVICE VERSION
3260/tcp open  iscsi?

गणना

nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx

यह स्क्रिप्ट यह संकेत करेगी कि क्या प्रमाणीकरण की आवश्यकता है।

Note: आप देख सकते हैं कि जब आपके लक्ष्यों का पता लगाया जाता है, तो वे एक अलग 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 जैसे कमांड के साथ किया जा सकता है।

आप अब लिंक में दिए गए निर्देशों के अनुसार लक्षित को माउंट कर सकते हैं।

मैनुअल एन्यूमरेशन

sudo apt-get install open-iscsi

Example from iscsiadm docs:

सबसे पहले आपको लक्ष्यों के नाम को 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 और पोर्ट दिखाएगा। यह यहां तक कि आंतरिक IPs या आपके द्वारा उपयोग किए गए IP से अलग IPs भी दिखा सकता है।

फिर आप प्रत्येक पंक्ति के मुद्रित स्ट्रिंग के 2nd भाग को पकड़ते हैं (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 का उपयोग करके 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

Support HackTricks

Last updated