2017. 7. 17. 18:22ㆍNetworkHacking/Network
< 파일 전송 프로토콜 ( File Transfer Protocol ) >
[1] 서버와 클라이언트 사이의 파일 전송을 위한 TCP기반의 프로토콜이다
[2] 서버와 클라이언트 사이에는 두가지 연결이 이루어진다
2-1> 제어 연결 ( Command Port사용 )
서버의 21번 포트를 이용하여 사용자 인증, 명령을 위한 연결이 만들어지고 명령어가 전달되어지는 통로이다
2-2> 데이터 연결 ( Data Port사용 )
서버의 20번 포트를 사용하여 실제 파일 전송시 사용하는 통로이다
[3] FTP에는 2가지 모드가 있다
3-1> 능동 모드 ( Active Mode )
[ Active Mode 과정 ]
① 우선 FTP Server 와 FTP Client는 제어 연결을 이루고 있다 ( 서버의 21번 포트와 클라이언트의 5150번 포트 )
② Client는 Server에게 데이터 전송을 위한 포트를 5151로 사용하겠다고 알린다 ㅡ 그림에서 ①
③ Server는 Client에게 ACK패킷을 보내어 응답을 보낸다 ㅡ 그림에서 ②
④ Server의 20번포트에서 Client의 5151번 포트로 데이터가 전송된다 ㅡ 그림에서 ③
⑤ Client는 Server에게 ACK패킷을 보내어 응답을 보낸다
- Client는 21번 포트로 접속을 시도하고 데이터연결은 Server에서 Client로 접속하여 데이터연결을 이루는 방식이다
- 만약, 클라이언트에 방화벽 등 외부접속을 허용하지 않는다면, 제어연결을 통해서 연결은 되지만 데이터포트를 통한 데이터전송에 오류가 발생한다
3-2> 수동 모드 ( Passive Mode )
[ Passvie Mode 과정 ]
① FTP Server와 FTP Client는 제어연결을 이루고 있다 ( 서버의 21번포트와 클라이언트의 5150포트 )
② Client는 Server에게 "PASV"명령어를 전송한다
③ Server는 PASV명령어를 받으면 Client에게 데이터 전송시 Server의 포트번호를 지정해준다 ( ex) 3267번 포트 )
④ Client는 Server가 알려준 포트로 접속을 시도하여 데이터 연결을 형성한다
⑤ Server는 ACK패킷을 보내어 응답을 보낸다
- 수동모드에서는 Server의 20번 포트를 사용하는 것이 아니라 1024번 이상의 임의의 포트를 사용하여 데이터연결을 이룬다 ( 1024 ~ 65535 )
- 클라이언트에서 서버의 21번 포트로 접속을 시도하고 데이터 연결은 클라이언트에서 서버의 포트로 접속하여 데이터 연결을 이루는 방식이다
[ 리눅스에서 FTP접속 ]
[ window에서 FTP접속 ]
FTP 서버 구축하기 실습 http://itsaessak.tistory.com/166
[4] TFTP ( Trival File Transfer Protocol )
FTP는 TCP기반이지만 TFTP는 UDP상에서 이루어지는 간단한 파일 전송 프로토콜 입니다
인증이나 암호화없이 단순히 파일만을 전송한다
[5] SFTP ( SSH(or Secure) File Transfer Protocol )
신뢰할 수 있는 데이터 스트림을 통해 파일접근, 전송, 관리를 제공하는 네트워크 프로토콜이다 ( 파일을 암화화시켜서 전송한다 )
SSH와 같은 포트번호를 사용하는데 이는 서버와 클라이언트와의 인증과 사용자 증명을 해야함을 뜻한다
접속시에 계정 정보가 암호화 되어 노출되지 않지만 데이터(파일)는 암호화 되지 않는다
[6] FTPS ( File Transfer Protocol Secure(or SSL) )
FTP의 확장으로, 기존 FTP에 전송계층보안(TLS)과 보안소켓계층(SSL) 암호화 프로토콜에 대한 지원이 추가되었다
명령어와 데이터(파일) 모두 암호화 되어진다
[7] FTP 취약점
① FTP Bounce Attack
- FTP서버에서는 클라이언트가 지시한 곳으로 자료를 전송할 때 그 목적지가 어떤 곳인지를 검사하지 않는다
- 공격자는 FTP서버를 통해서 간접적으로 Victim의 IP주소와 포트번호에 접근할 수 있고 임의의 메시지를 전송해서 공격을 시도한다
② FTP Anonymous Attack
- 익명의 사용자가 FTP서버에서 쓰기권한이 있어 불법파일을 업로드하거나 파일을 훔쳐가는 방식의 공격
< NFS ( Network File System ) >
어떤 한 시스템(클라이언트)에서 다른 시스템(서버)의 자원을 자신의 자원처럼 사용이 가능하도록 하는것
여러명이 같이 사용하는 대용량 프로그램이나 데이터들을 하나의 호스트에 넣어두고 각 클라이언트들은 이 호스트의 데이터가 들어있는 디렉토리를 마운트하여 사용한다
클라이언트마다 동일한 프로그램을 설치할 필요가 없고 관리면에서도 매우 편리하다
[ NFS ]
< Samba >
리눅스에서 윈도우 시스템에게 파일시스템이나 프린트를 공유할 수 있게하는 프로그램
'NetworkHacking > Network' 카테고리의 다른 글
SYN Flooding / Port Scan (0) | 2017.07.17 |
---|---|
TCP 3-Way Handshake (0) | 2017.07.17 |
방화벽 ( Firewall ) (0) | 2017.07.17 |
VPN ( Virtual Personal Network ) (0) | 2017.07.15 |
RFID ( Radio Frequency IDentifire ) (0) | 2017.07.15 |