<FTP 프로토콜>
파일 트랜스퍼 프로토콜 : 파일을 전송하는 하나의 어떤 통신 기업
소켓 -> 하나의 전화 / 연결하도록 도와주는 소프트웨어 / 거는용 받는용 따로있음
전화를 주고받는 방식과 굉장히 유사 (서버 - 클라이언트)
운영체제가 만듦 / 운영체제로부터 빌려서 사용
소켓을 생성한다 -> 전화기를 빌린다
생성 이후, 연결을 시도하고 허락이 뜰 때까지 대기, 이후 받을 때 conn 이라는 객체가 떨어짐
이 객체를 갖고 데이터를 받거나 보내거나 / 즉 받을 때 연결이 받아짐
<클라이언트 작성>
포트 = 소켓의 번호 / 웹통신시 보통 80, 443을 씀
socket.socket() -> 개통
s.connect(addr) -> 접속 (전화걸기) - 커넥트를 했다 = 서로간에 주고받았다
s.send('GET /\n".encode()) -> 데이터를 쏘려면 인코딩해야함
s.recv(1024) -> 1024 바이트 데이터 받기
data.decode() -> 데이터 디코딩
<서버 작성>
addr = ("0.0.0.0", 80) -> 80번 개통 (전화 받을 포트)
s.bind(addr) -> 여기는 본인 주소가 아님 / 어떤 IP를 허용할건가
s.listen() -> 리스닝 상태로 돌려주면 서버 시작
conn, addr = s.accept() -> 요청 들어오면 accept
conn.send()
conn.recv()
에코서버 -> 한 말을 반복해주는 서버
<FTP>
File Transfer Protocol -> 파일 전송 프로토콜
FTP -> 포트 두개 사용
명령 연결 -> 명령어를 전달하는 / 특수하게 데이터를 전송하기도 함
파일을 전송하기 전 어떤 파일을 전송할건지 찾고 디렉터리 생성 후 내부에서 명령어를 실행,
작업하고 하는 것을 명령 연결해서 함
데이터 전송용 연결 -> 파일만
방화벽 -> 포트를 함부로 못 열게 / 포트 허용하지 않은건 전부 막힘
클라이언트에서 나가는건 자유로움, 그러나 들어오는 포트가 민감함
FTP -> 능동모드, 수동모드
* 명령연결, 데이터 전송용 연결 포트가 2개임
* 나가는건 괜찮은데 들어오는건 검증한다
<FTP 서버 공격>
Exploit -> 어떤 프로그램을 공격해서 다른 동작을 하게 만드는
shellcode -> 코드 조각 -> binary가 있으면 CPU가 실행 -> 이걸 실행할 수 있다 = 시스템 프로세스의 어떤 것도 실행할 수 있다
'▶ InfoSecurity > IT 해킹과 보안' 카테고리의 다른 글
섹션2. HTTP 프로토콜 / 섹션3. 백도어 개발 (0) | 2023.12.21 |
---|---|
섹션 0. 파이썬 기초 (1) | 2023.12.19 |