3260 - Pentesting ISCSI

Reading time: 6 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Basic Information

From Wikipedia:

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

Mount ISCSI 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

ध्यान दें कि यह उन इंटरफेस का IP और पोर्ट दिखाएगा जहाँ आप उन लक्ष्यों तक पहुंच सकते हैं। यह यहां तक कि आंतरिक 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 = <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

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें