FTP(File Transfer Protocol) = 파일 전송 통신 프로토콜
- TCP 프로토콜 사용
- 명령포트(21), 데이터포트
- Active Mode = 클라이언트가 포트 선택 (21/20)
- Passive Mode = 서버가 포트 선택 (21/1024 이후) → 변경=PASV
종류
230 = 로그인 성공
TCP 3 Way handshaking 확인 및 명령포트 확인
FTP 접근 통제 파일 = /etc/ftpusers, /etc/hosts.deny, /etc/hosts.allow
Passive mode 변경 후 파일 다운로드
FTP 서버는 수신 받은 데이터 포트(18526)을 선택하여 클라이언트에게 전달
클라이언트가 get 명령을 21번 포트로 서버에 전달
서버가 지정한 포트를 사용하는 것을 볼 수 있다
아래와 같이 파일 다운로드 된것을 확인
vsftpd 자세한 로그 보기
설정 파일인 /etc/vsftpd.conf 파일 수정
dual_log_enable = /var/log/xferlog 파일과 /var/log/vsftpd.log 파일 모두에 FTP 파일 전송 기록이 저장
log_ftp_protocol = 클라이언트와 서버 사이의 모든 FTP 프로토콜 트랜잭션 로그 기록
아래와 같이 xferlog에 파일 전송 기록을 확인
1. 전송 날짜 및 시간 (Sat Dec 11 02:21:37 2021)
2. 전송 소요 시간 (1)
3. 클라이언트 주소 (192.168.90.129)
4. 파일 크기 (13)
5. 파일명 (/home/kali/a.text)
6. 파일 유형 (a=ascii, b=binary)
7. 액션 플래그 (_)
8. 전송 방향 (i=incoming, o=outgoing, d=delete)
9. 엑세스 모드 (r=passwd에 속해 있는 사용자로 접속한 형태, a=anonymous, g=guest)
10. 사용자명 (kali)
11. 서비스명 (ftp)
12. 사용자 인증 방식 (0)
13. 인증 사용자 ID (*)
14. 완료 상태 (c=complete i=incomplete)
FTP Bounce Attack
tFTP Attack
Anonymous FTP Attack
스니핑
Brute force Attack
FTP 사용자는 일반 리눅스 사용자와 동일 하지만 로그인이 필요하지 않아 "nologin"으로 설정
Can Do It
brb