NETWORK] FTP

노션으로 옮김·2020년 5월 16일
1

Study

목록 보기
26/33
post-thumbnail

FTP

Characteristics

  • 파일 송수신을 위한 응용계층의 TCP 프로토콜
  • FTP서버는 21번 포트를, 클라이언트는 임의의 N번 포트를 사용
  • 채널 제어와 파일 전송을 Control ConnectionData Connection으로 구분하여 사용
  • 평문 전송되므로 보안을 위해선 암호화가 지원되는 FTPSSFTP 사용
  • FTP는 계정정보가 없이도 사용할 수 있는 방법이 있다. 서버에 Anonymous FTP 설정을 하게 되면, 계정명 입력시 'anonymous'를 입력하고 패스워드 대신 이메일을 입력하는 것으로 FTP를 사용할 수 있다.

Communication

  1. 3 way hand shake을 이용한 연결 수립
  2. Control Connection을 이용한 로그인
  3. Control Connection을 이용한 모드 설정 및 Data Connection 연결
  4. 4 way hand shake을 이용한 연결 종료

3번에서 결정하는, 파일을 전송하는 방법으로 두 가지의 모드가 있다.
ActivePassive 방식이다.
각 모드에 따라 연결 방법과 사용 포트가 달라진다.

Active Mode

서버가 클라이언트에게 Data Connection의 연결을 요청하는 방식이다.
클라이언트의 포트는 M, 서버의 포트는 20을 사용하며,
서버쪽에서 요청하는 것이므로 방화벽 설정을 주의해야 한다.

모드를 설정할 때 클라이언트가 PORT를 전송하는데

이 때 전송되는 PORT 패킷에는 클라이언트가 Data Connection으로 사용할 포트가 담겨있다.

서버는 이 포트로 Data Connection 연결을 요청하고, 파일을 송수신할 때 클라이언트는 53701 포트를 사용하게 된다.

Passive Mode

Active Mode와 반대로 클라이언트가 서버에게 Data Connection을 요청하는 방식이다.
클라이언트의 포트는 N, 서버의 포트는 M을 사용한다.

모드를 설정할 때 클라이언트가 PASV를 전송하면

서버는 응답으로 사용할 포트 M을 알려준다.

이제 클라이언트는 서버의 M 포트로 Data Connection 연결을 요청한 후 파일을 송수신한다.

Vulnerability

취약점은 많지 않다.

1.평문 전송

평문으로 전송되기 때문에 스니핑에 취약하다.

2.Login Brute Force

연이은 로그인 시도가 가능하기 때문에 브루트 포스를 시도할 수 있다.

3.FTP Bounce Attack

Data Connection과 Control Connection을 따로 생성하며, Data Connection 연결시 대상 IP를 검사하지 않으므로 발생하는 취약점이다.

Active Mode에서 클라이언트가 PORT 명령어로 정보를 전달하면, 서버는 해당 주소로 Data Connection을 생성하는데, 만약 이 주소를 임의로 변경하더라도 서버는 해당 주소로 연결을 시도한다.
이 결과에 대한 반응으로 Indirectly 포트 스캐닝에 활용할 수 있으며 연결에 성공한다면 임의 파일을 전송하는 익스플로잇도 가능하 다.


Reference

https://en.wikipedia.org/wiki/File_Transfer_Protocol

0개의 댓글