3260 - Pentesting ISCSI

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

๊ธฐ๋ณธ ์ •๋ณด

From Wikipedia:

In computing, iSCSI๋Š” Internet Small Computer Systems Interface์˜ ์•ฝ์ž๋กœ, ๋ฐ์ดํ„ฐ ์ €์žฅ ์‹œ์„ค์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ(IP) ๊ธฐ๋ฐ˜์˜ ์Šคํ† ๋ฆฌ์ง€ ๋„คํŠธ์›Œํ‚น ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. SCSI ๋ช…๋ น์„ TCP/IP ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•˜์—ฌ ์Šคํ† ๋ฆฌ์ง€ ์žฅ์น˜์— ๋ธ”๋ก ์ˆ˜์ค€ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. iSCSI๋Š” ์ธํŠธ๋ผ๋„ท์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ณ  ์žฅ๊ฑฐ๋ฆฌ์—์„œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์˜์—ญ ๋„คํŠธ์›Œํฌ(LAN), ๊ด‘์—ญ ๋„คํŠธ์›Œํฌ(WAN) ๋˜๋Š” ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ„์น˜์— ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœํ† ์ฝœ์€ ํด๋ผ์ด์–ธํŠธ(initiators๋ผ๊ณ  ํ•จ)๊ฐ€ ์›๊ฒฉ ์„œ๋ฒ„์˜ ์Šคํ† ๋ฆฌ์ง€ ์žฅ์น˜(targets)์— SCSI ๋ช…๋ น(CDBs)์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์Šคํ† ๋ฆฌ์ง€ ์˜์—ญ ๋„คํŠธ์›Œํฌ(SAN) ํ”„๋กœํ† ์ฝœ๋กœ, ์กฐ์ง์ด ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์Šคํ† ๋ฆฌ์ง€ ๋ฐฐ์—ด๋กœ ํ†ตํ•ฉํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์›น ์„œ๋ฒ„์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ์— ๋กœ์ปฌ์— ์—ฐ๊ฒฐ๋œ SCSI ๋””์Šคํฌ์˜ ํ™˜์ƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ํŒŒ์ด๋ฒ„ ์ฑ„๋„๊ณผ ๊ฒฝ์Ÿํ•˜์ง€๋งŒ, ์ „ํ†ต์ ์ธ ํŒŒ์ด๋ฒ„ ์ฑ„๋„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์šฉ ์ผ€์ด๋ธ”๋ง์ด ํ•„์š”ํ•œ ๋ฐ˜๋ฉด, iSCSI๋Š” ๊ธฐ์กด ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ๊ฑฐ๋ฆฌ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํฌํŠธ: 3260

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์™€ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋งํฌ์˜ ์ง€์นจ์— ๋”ฐ๋ผ ๋Œ€์ƒ์„ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ ISCSI ๋งˆ์šดํŠธ

์ˆ˜๋™ ์—ด๊ฑฐ

sudo apt-get install open-iscsi

๋จผ์ € 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๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ ์ค„์˜ ์ธ์‡„๋œ ๋ฌธ์ž์—ด์˜ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์„ ์žก๊ณ  (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

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ