FTP ( File Transfer Protocol ) / NFS ( Network File System ) / samba

2017. 7. 17. 18:22NetworkHacking/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