[Network] FTP (File Transfer Protocol)

๊น€๋ฆฌ์˜ยท2025๋…„ 1์›” 30์ผ

Network

๋ชฉ๋ก ๋ณด๊ธฐ
13/13

๐Ÿ“Œ ๋ณธ ๊ฒŒ์‹œ๋ฌผ์€ ์ž๊ธฐ ํ•™์Šต ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์ผ๋ถ€ ๋‚ด์šฉ์ด ๋ถ€์ •ํ™•ํ•˜๊ฑฐ๋‚˜ ์ตœ์‹  ์ •๋ณด์™€๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๐Ÿ’ฌ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด๋‚˜ ๋ณด์™„ํ•  ์ ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๊ณต์œ ํ•˜์—ฌ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

1๏ธโƒฃ FTP (File Transfer Protocol)

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ํŒŒ์ผ์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ

  • ์ฃผ๋กœ ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ๋‹ค์šด๋กœ๋“œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ

  • ํŠน์ง•

    โœ… ๋ช…๋ น(Command)๊ณผ ๋ฐ์ดํ„ฐ(Data) ์ „์†ก ์ฑ„๋„ ๋ถ„๋ฆฌ

    • FTP๋Š” ์ œ์–ด ์ฑ„๋„๊ณผ ๋ฐ์ดํ„ฐ ์ฑ„๋„(Data Channel)๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ž‘๋™
    • ์ œ์–ด ์ฑ„๋„(Port 21): ๋ช…๋ น์–ด์™€ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›๋Š” ์ฑ„๋„
    • ๋ฐ์ดํ„ฐ ์ฑ„๋„(Port 20): ์‹ค์ œ ํŒŒ์ผ์ด ์ „์†ก๋˜๋Š” ์ฑ„๋„

    โœ… Active Mode์™€ Passive Mode ์ง€์›

    • Active Mode(๋Šฅ๋™ ๋ชจ๋“œ) : ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ํฌํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹
    • Passive Mode(์ˆ˜๋™ ๋ชจ๋“œ) : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ํŠน์ • ํฌํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹

    โœ… ์‚ฌ์šฉ์ž ์ธ์ฆ(๋กœ๊ทธ์ธ ๋ฐฉ์‹) ์ง€์›

    • ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ๊ณ„์ •๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์š”๊ตฌ
    • ์ต๋ช…(Anonymous) FTP ์ง€์› : ์‚ฌ์šฉ์ž ๊ณ„์ • ์—†์ด ๊ณต๊ฐœ๋œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅ

    โœ… ๋ณด์•ˆ ๋ฏธํก

    • ๊ธฐ์กด FTP๋Š” ๋ฐ์ดํ„ฐ ๋ฐ ์‚ฌ์šฉ์ž ์ •๋ณด๊ฐ€ ํ‰๋ฌธ์œผ๋กœ ์ „์†ก
    • ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด FTPS(FTP over SSL/TLS) ๋˜๋Š” SFTP(SSH File Transfer Protocol)๋ฅผ ์‚ฌ์šฉ

2๏ธโƒฃ ๋กœ๊ทธ์ธ ๋ฐ ๋™์ž‘ ๊ณผ์ •

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ FTP ์„œ๋ฒ„์— ์ ‘์† ์š”์ฒญ (open ftp.example.com 21)
  2. ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต (220 FTP Server Ready)
  3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž ๊ณ„์ • ์ž…๋ ฅ (USER username)
  4. ์„œ๋ฒ„๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ์š”์ฒญ (331 Password required)
  5. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ (PASS mysecurepassword)
  6. ์„œ๋ฒ„๊ฐ€ ๋กœ๊ทธ์ธ ์„ฑ๊ณต (230 User logged in, proceed.) ๋˜๋Š” ์‹คํŒจ (530 Login incorrect.)
  7. ํด๋ผ์ด์–ธํŠธ๊ฐ€ Active Mode(PORT) ๋˜๋Š” Passive Mode(PASV) ์„ค์ •
  8. ํŒŒ์ผ ๋ชฉ๋ก ์กฐํšŒ, ๋‹ค์šด๋กœ๋“œ(get), ์—…๋กœ๋“œ(put), ๊ธฐํƒ€ ๋ช…๋ น ์‹คํ–‰
  9. FTP ์„ธ์…˜ ์ข…๋ฃŒ (QUIT)

3๏ธโƒฃ FTP์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ์‹

๐Ÿ“Œ Active Mode(๋Šฅ๋™ ๋ชจ๋“œ)

  • FTP ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ˆ˜ํ–‰

  • Active Mode : ๋ฐ์ดํ„ฐ ํฌํŠธ 20๋ฒˆ

    โœ… ๋™์ž‘ ๋ฐฉ์‹

    1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ FTP ์„œ๋ฒ„์˜ ์ œ์–ด ํฌํŠธ(21๋ฒˆ)์— ์ ‘์†
    2. ํด๋ผ์ด์–ธํŠธ๊ฐ€ PORT ๋ช…๋ น์„ ์„œ๋ฒ„์— ์ „์†กํ•˜์—ฌ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ ํฌํŠธ(๋žœ๋ค ํฌํŠธ)๋ฅผ ์•Œ๋ฆผ
    3. ์„œ๋ฒ„๊ฐ€ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ ํฌํŠธ(20๋ฒˆ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐ์ดํ„ฐ ํฌํŠธ๋กœ ์—ฐ๊ฒฐ
    4. ๋ฐ์ดํ„ฐ ์ „์†ก ์ง„ํ–‰

๐Ÿ“Œ Passive Mode (์ˆ˜๋™ ๋ชจ๋“œ)

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋ฐ์ดํ„ฐ ํฌํŠธ๋ฅผ ์š”์ฒญํ•œ ํ›„, ํ•ด๋‹น ํฌํŠธ๋กœ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก

  • Passiveย Modeย :ย ๋ฐ์ดํ„ฐย ํฌํŠธย 1024ย ~ย 65535ย ์ค‘ย ๋žœ๋คย ์„ ํƒ

    โœ… ๋™์ž‘ ๋ฐฉ์‹

    1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ FTP ์„œ๋ฒ„์˜ ์ œ์–ด ํฌํŠธ(21๋ฒˆ)์— ์ ‘์†
    2. ํด๋ผ์ด์–ธํŠธ๊ฐ€ PASV ๋ช…๋ น์„ ๋ณด๋‚ด์–ด ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ํฌํŠธ๋ฅผ ์š”์ฒญ
    3. ์„œ๋ฒ„๊ฐ€ 227 Entering Passive Mode (IP, ํฌํŠธ) ์‘๋‹ต์„ ๋ฐ˜ํ™˜
    4. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์ง€์ •๋œ ํฌํŠธ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์†ก ์ˆ˜ํ–‰

4๏ธโƒฃ FTP ์ข…๋ฅ˜

์ข…๋ฅ˜์„ค๋ช…ํ”„๋กœํ† ์ฝœ
FTPID/PW ์ธ์ฆ ์ˆ˜ํ–‰, ์ผ๋ฐ˜์ ์ธ ํŒŒ์ผ ์ „์†ก ํ”„๋กœํ† ์ฝœTCP
tFTP(Trivial FTP)์ธ์ฆ ๊ณผ์ • ์—†์Œ, ๋น ๋ฅธ ์ „์†กUDP 69
sFTP(Secure FTP)์ „์†ก ๊ตฌ๊ฐ„์— ์•”ํ˜ธํ™” ๊ธฐ๋ฒ• ์‚ฌ์šฉSSH ๊ธฐ๋ฐ˜

5๏ธโƒฃ FTP ์ข…๋ฅ˜

ํŒŒ์ผ์„ค๋ช…
/etc/ftpusersํ•ด๋‹น ํŒŒ์ผ์— ๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋Š” FTP ์ ‘๊ทผ ์ฐจ๋‹จ
/etc/hosts.denyํŠน์ • IP์˜ FTP ์ ‘๊ทผ ์ œํ•œ
/etc/hosts.allowํŠน์ • IP์˜ FTP ์ ‘๊ทผ ํ—ˆ์šฉ
TCP WrapperํŠน์ • ํ˜ธ์ŠคํŠธ ๋˜๋Š” ๋„คํŠธ์›Œํฌ์—์„œ FTP ์ ‘๊ทผ ์ฐจ๋‹จ ๊ฐ€๋Šฅ, IP ์ฃผ์†Œ๋กœ ์ฐจ๋‹จ

6๏ธโƒฃ xferlog (FTP ๋กœ๊ทธ ๊ธฐ๋ก)

  • xferlog๋Š” FTP ์„œ๋ฒ„์—์„œ ํŒŒ์ผ ์ „์†ก ๋‚ด์—ญ์„ ๊ธฐ๋กํ•˜๋Š” ๋กœ๊ทธ ํŒŒ์ผ๋กœ FTP ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ „์†ก๋œ ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ์ €์žฅ
  • FTP ์„œ๋ฒ„์—์„œ ์–ด๋–ค ํŒŒ์ผ์ด ์–ธ์ œ, ์–ด๋–ค IP์—์„œ ์ „์†ก๋˜์—ˆ๋Š”์ง€๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
  • FTP ์„œ๋น„์Šค ๊ฐ€๋™ ์‹œ -l ์˜ต์…˜์„ ํ†ตํ•ด xferlog ํŒŒ์ผ์— ๊ธฐ๋ก ๊ฐ€๋Šฅ

๐Ÿ“Œ ๋กœ๊ทธ ๋ถ„์„

Sat Jan 24 22:00:01 2021 1 192.168.1.2 4444 /etc/test.c b _ o r choraengyi ftp 0 * c
ํ•ญ๋ชฉ์„ค๋ช…
1์ „์†ก ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ (์š”์ผ, ์›”, ์ผ, hh:mm:ss, ์—ฐ๋„)
2์ „์†ก ์‹œ๊ฐ„(์ดˆ)
3ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ
4ํŒŒ์ผ ํฌ๊ธฐ
5ํŒŒ์ผ๋ช…
6ํŒŒ์ผ ์œ ํ˜• (a=ASCII, b=Binary)
7ํŒŒ์ผ ์ƒํƒœ (_: ์—†์Œ, c: ์••์ถ•๋จ, U: ์••์ถ• ์•ˆ ๋จ, T: tar ๋ฌถ์Œ)
8์ „์†ก ๋ฐฉํ–ฅ (i: ์„œ๋ฒ„๋กœ ์ „์†ก, o: ์„œ๋ฒ„์—์„œ ๋‹ค์šด๋กœ๋“œ, d: ํŒŒ์ผ ์‚ญ์ œ)
9์ ‘๊ทผ ๋ชจ๋“œ (a: ์ต๋ช… ์‚ฌ์šฉ์ž, g: ์ธ์ฆ๋œ ๊ฒŒ์ŠคํŠธ, r: ์‚ฌ์šฉ์ž ๊ณ„์ •)
10์‚ฌ์šฉ์ž ๊ณ„์ •๋ช…
11์‚ฌ์šฉ๋œ ์„œ๋น„์Šค (FTP)
12์ธ์ฆ ๋ฐฉ์‹
13์ธ์ฆ ์‚ฌ์šฉ์ž ID (RFC 1413 ๊ด€๋ จ, ํ˜„์žฌ ์‚ฌ์šฉ ์•ˆ ํ•จ)
14์™„๋ฃŒ ์ƒํƒœ (c: ์„ฑ๊ณต, i: ์‹คํŒจ)

7๏ธโƒฃ FTP ๋ณด์•ˆ ์ทจ์•ฝ์ 

์ทจ์•ฝ์ ์„ค๋ช…
Bounce Attack์ต๋ช… FTP ์„œ๋ฒ„๋ฅผ ๊ฒฝ์œ ํ•˜์—ฌ ํฌํŠธ ์Šค์บ๋‹ ์ˆ˜ํ–‰
FakeMail ๊ณต๊ฒฉBounce Attack์„ ์ด์šฉํ•œ ์ด๋ฉ”์ผ ์Šคํ‘ธํ•‘
tFTP AttackUDP ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์ฆ ์ ˆ์ฐจ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฌ๋‚˜ ํ•ด๋‹น ํ˜ธ์ŠคํŠธ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜์—ฌ ๊ณต๊ฒฉ์— ์ทจ์•ฝ
Anonymous FTP Attack- ๋ณด์•ˆ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์€ ์ต๋ช…์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ FTP ์ ‘๊ทผ ํ—ˆ์šฉ
- Anonymous FTP์— ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ์„ ๋•Œ ์•…์„ฑ์ฝ”๋“œ ์ƒ์„ฑ ๊ฐ€๋Šฅ
FTP ์„œ๋ฒ„ ์ทจ์•ฝ์ wuftp ํฌ๋งท ์ŠคํŠธ๋ง ๊ณต๊ฒฉ, ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ทจ์•ฝ์ 
์Šค๋‹ˆํ•‘(Sniffing)ID/PW ์ž…๋ ฅ ํ›„ ์ ‘์† ์‹œ๋„ ์‹œ ์••ํ˜ธํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„ ์Šค๋‹ˆํ•‘์— ์ทจ์•ฝ
Brute Force Attack๋ฌด์ž‘์œ„ ๋Œ€์ž… ๊ณต๊ฒฉ์œผ๋กœ FTP ๊ณ„์ • ํƒˆ์ทจ ๊ฐ€๋Šฅ

8๏ธโƒฃ FTP ๋ณด์•ˆ ๋Œ€์ฑ…

๋ณด์•ˆ ๋Œ€์ฑ…์„ค๋ช…
Anonymous FTP ๊ด€๋ฆฌ์ค‘์š”ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ถŒํ•œ ์„ค์ • ๋ฐ ๋ถˆํ•„์š”ํ•œ ํ•ญ๋ชฉ ์ œ๊ฑฐ
tFTP ๋ณด์•ˆ ์„ค์ •์‚ฌ์šฉ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ Secure Mode๋กœ ์šด์˜
inetd FTP ์„œ๋น„์Šค ๋ณด์•ˆFTP ์‚ฌ์šฉ์ž๋Š” ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์— ๋กœ๊ทธ์ธํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— passwd์—์„œ FTP ์‚ฌ์šฉ์ž ๊ณ„์ •์„ nologin์œผ๋กœ ์„ค์ •
sFTP ์‚ฌ์šฉFTP ์ „์†ก ๊ณผ์ • ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด์•ˆ ๊ฐ•ํ™”

๐Ÿ“ ์ฐธ๊ณ 

https://choraengyi.tistory.com/102

0๊ฐœ์˜ ๋Œ“๊ธ€