Information Security
29-1 TELNET (+ NC) 본문
TELNET
-전통적으로 상용된 원격 접속 프로그램
-보안에 취약점이 많아 최근에 SSH로 대체
-평문(Plain text)으로 데이터를 전송하여 패킷을 분석하면 내용이 전부 노출된다.
-Xinetd 데몬(슈퍼데몬)이 관리하는 데몬으로 TCP/23 포트를 이용하여 서비스를 제공한다.
Telnet Server
Server-A
<->
Telnet Client
Client-Win
Client-Linux
Server-A (Telnet Server)
telnet 서버용 패키지 설치
xinetd 데몬과 의존 관계이기 때문에 함께 설치
telnet 주 설정 파일
-xinetd 데몬에 의해 동작하는 프로그램들은 해당 디렉터리 내에 설정파일이 있다.
disable = no로 수정
-xinetd 데몬이 활성화 되면 telnet을 사용할 수 있도록 설정 (disable을 사용하지 않음(no) = 사용)
/etc/xinetd.d 디렉터리의 파일을 읽어 disable = no 설정이 있는 서비스만 활성화
테스트용 계정 생성 후 패스워드 설정
telnet 클라이언트 프로그램 설치
모든 실습에서 iptables가 동작하면 원활하게 실습이 되지 않으므로 stop
#telnet [접속할 컴퓨터의 IP/도메인] [포트]
-[포트] 생략 시 기본적으로 telnet이 사용하는 23으로 접속
IP 주소 사용하여 telnet 접속
도메인 해석해 줄 DNS 서버가 존재한다면 당연히 도메인으로도 접속이 가능하다.
처음 접속 후 위치한 경로는 홈 디렉터리이고, 접속을 해제할 때는 exit를 입력한다.
Client-Win (Telnet Client)
시작 메뉴 -> 제어판
프로그램 -> Windows 기능 사용/사용 안 함
아래로 내려서 [텔넷 클라이언트] 선택 -> 확인 -> 설치
명령 프롬프트 창을 열고 telnet 접속 명령어 입력
접속 성공
※ 접속 실패할 경우
(1) 제어판 -> 시스템 및 보안 -> Windows 방화벽 설정 해제
(2) 네트워크(100.100.100.140) 확인
★ telnet으로 원격지에 위치한 컴퓨터의 열려있는(LISTEN) 포트를 확인할 수 있다.
원격지의 컴퓨터가 WEB 서버라고 가정
-> 해당 컴퓨터는 WEB 프로그램이 동작해야 한다. (HTTP TCP/80)
Windows에서 80 포트로 연결 시도 -> 실패
원격지 컴퓨터에 WEB 프로그램 설치 후 활성화
다시 Windows에서 연결을 시도한다.
-연결은 성공하지만 프로토콜이 일치하지 않기 때문에 실제 telnet이 실행되지 않는다.
-연결이 가능하다는 것은 해당 서버에 특정 프로그램이 80번 포트를 사용하고 있다는 뜻이다.
※ 이렇게 telnet은 프로그램의 동작 여부를 확인할 수 있다.
Client-Linux에서 sshd 데몬 정지
Server-A에서 연결 시도 -> 실패
-> Client-Linux에서 ssh 프로그램이 동작하지 않고 있다는 것을 알 수 있다.
다시 시작
연결 가능
-> Client-Linux에서 ssh 프로그램이 동작하고 있다.
패킷 확인
-tcpdump를 이용하여 telnet 서버의 패킷을 캡쳐하여 평문 전송을 확인할 수 있다.
telnet 서버에 tcpdump 패키지 설치
telnet이 사용하는 포트(23)를 기준으로 패킷을 캡쳐하여 결과를 매우 자세하게(-vvv) 16진수(-x) 형태로 출력하고
출력된 내용을 telnet-dump 파일에 저장하며 백그라운드로 동작(&)한다.
telnet-dump 파일 내용의 마지막 10줄을 실시간으로 확인(tail -f)
Client-Linux에서 telnet을 100.100.100.110으로 접속한다.
-Server-A에서는 이렇게 패킷의 내용이 출력된다.
-Client-Linux에서 3을 입력했는데, Server-A에서 확인할 수 있다.
-> 보안에 취약
NC(NetCat)
-네트워크 입출력 데이터를 사용하는 툴
#cat 표준 입력으로 받은 값을 표준 출력으로 사용하는 명령어
옵션 -l LISTEN 모드로 동작
Server-A, Client-Linux에 nc 패키지 설치
#nc -l [포트번호]
8888 포트 활성화
한 쪽에서 메시지 입력 -> 양 쪽 모두 출력
-간단한 채팅 서버를 구축할 수 있다.
-연결 끊을 때는 [Ctrl + c]
Client-Linux의 파일을 Server-A에서 받기
Server-A LISTEN 상태
Client-Linux에서 test_in 생성
#cat > test_in
-> 내용 입력 후 [enter]
-> [Ctrl + d]
test_in 보냄 -> Server-A 프롬프트 떨어짐
받은 파일 확인
Server-A 파일을 Client-Linux에서 받기
Server-A에서 FILE1 생성
Server-A LISTEN 상태
FILE2로 받기
받은 파일 확인
#nc -z [IP주소] [포트]
-해당 IP의 LISTEN 포트 스캔
22번, 23번 포트 활성화 여부 테스트
범위 지정하여 확인
※ 포트 스캔(Port scan)
http://terms.naver.com/entry.nhn?docId=3436055&cid=42346&categoryId=42346 IT용어사전
-입력한 IP에 어떤 포트가 열려있는지 알아내는 것
-해킹의 준비과정
-nc -z는 실습할 때만 사용해야 하는 명령어
'Linux' 카테고리의 다른 글
30-1 VNC(Virtual Network Computing) (0) | 2017.10.27 |
---|---|
29-2 SSH (0) | 2017.10.27 |
28 DNS Master & Slave 서버 구축 (0) | 2017.10.25 |
27 DNS 서버 구축 (0) | 2017.10.23 |
26-2 DNS(Domain Name Server / System) (0) | 2017.10.20 |