Network Security/Security Project

Project 1) Telnet 서버 구축 및 보안 취약점 탐구

information-security-lab 2025. 7. 6. 01:10
목차
Ⅰ. 개요

Ⅱ. 환경 구성

Ⅲ. 진행 절차
      Ⅲ - 1. Telnet 서버 구축 및 가용성 확인
                 1. Telnet 서버 구축
                 2. 가용성 확인
      Ⅲ - 2. Telnet 접속에 대한 보안 취약점 확인 및 대응 방안
                 1. Telnet 접속에 대한 보안 취약점 확인
                 2. 대응 방안

Ⅳ. 마치며

 


 

경고

Warning

본 내용은 정보보안 공부를 목적으로 작성되었습니다.

This content was written for information security study.

본 내용은 공부 목적 외의 활용을 금하며,

This content is prohibited for use for purposes other than study,

악의적인 목적으로 활용 시

and you are notified that you may be subject to criminal punishment

형사 처벌을 받을 수 있음을 통보합니다.

if used for malicious purposes.

 


 

Ⅰ. 개요

1. Telnet 서버를 직접 구축하여 Telnet 서버 사용 방법을 숙달하기 위함

 

2. 구축한 Telnet 서버의 보안 취약점을 확인하고 대응 방안을 탐구하기 위함

 

 


 

 

Ⅱ. 환경 구성

1. Virtual Machine

 

- VMware Workstation pro

 

 

2. OS

 

- Rocky Linux 10.0

 

- Windows 10 Home

 

- Kali Linux

 

 

3. Network Configuration

 

- VMnet8(NAT) Network 사용

 

 

4. tools

 

- PuTTY

 

- Wireshark

 

 


 

 

Ⅲ. 진행 절차

Ⅲ - 1. Telnet 서버 구축 및 가용성 확인

1. Telnet 서버 구축

가. Rocky Linux 내 Telnet Server 설치 여부 확인 및 설치

root@security:~# rpm -qa | grep telnet
telnet-0.17-94.el10.x86_64

 

- Telnet Server가 설치되어있지 않으므로 설치

root@security:~# dnf -y install telnet-server
Rocky Linux 10 - BaseOS                                                                                    4.2 kB/s | 3.9 kB     00:00    
Rocky Linux 10 - BaseOS                                                                                    4.1 MB/s | 7.4 MB     00:01    
Rocky Linux 10 - AppStream                                                                                 5.4 kB/s | 3.9 kB     00:00    
Rocky Linux 10 - AppStream                                                                                 1.8 MB/s | 2.0 MB     00:01    
Rocky Linux 10 - Extras                                                                                    4.1 kB/s | 3.1 kB     00:00    
Rocky Linux 10 - Extras                                                                                    4.7 kB/s | 4.0 kB     00:00    
종속성이 해결되었습니다.
===========================================================================================================================================
 꾸러미                             구조                        버전                                  저장소                          크기
===========================================================================================================================================
설치 중:
 telnet-server                      x86_64                      1:0.17-94.el10                        appstream                       37 k

연결 요약
===========================================================================================================================================
설치  1 꾸러미

전체 내려받기 크기: 37 k
설치된 크기 : 54 k
꾸러미 내려받기 중:
telnet-server-0.17-94.el10.x86_64.rpm                                                                      402 kB/s |  37 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------
합계                                                                                                        48 kB/s |  37 kB     00:00     
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
  준비 중     :                                                                                                                        1/1 
  설치 중     : telnet-server-1:0.17-94.el10.x86_64                                                                                    1/1 
  구현 중     : telnet-server-1:0.17-94.el10.x86_64                                                                                    1/1 

설치되었습니다:
  telnet-server-1:0.17-94.el10.x86_64                                                                                                      

완료되었습니다!

 

- Telnet 서비스 시작 및 서비스 상태 확인

root@security:~# systemctl start telnet.socket
root@security:~# systemctl status telnet.socket
● telnet.socket - Telnet Server Activation Socket
     Loaded: loaded (/usr/lib/systemd/system/telnet.socket; disabled; preset: disabled)
     Active: active (listening) since Sat 2025-07-05 04:39:34 KST; 15s ago
 Invocation: ###########################
       Docs: man:telnetd(8)
     Listen: [::]:23 (Stream)
   Accepted: 0; Connected: 0;
      Tasks: 0 (limit: 22934)
     Memory: 8K (peak: 256K)
        CPU: 1ms
     CGroup: /##########/telnet.socket

● Active를 확인하였을 때 상태가 active이므로 Telnet 서버가 활성화되어있다는 것을 확인

 

 

나. Telnet 접속용 계정 생성 및 PW 설정

root@security:~# adduser telnetusr
root@security:~# passwd telnetusr
신규 비밀번호: 
잘못된 비밀번호: 암호는 8 개의 문자 보다 짧습니다
신규 비밀번호 재입력: 
passwd: 암호를 성공적으로 업데이트했습니다

 

 

 

2. 가용성 확인

가. Telnet Server가 설치된 Rocky Linux에서 Telnet 접속

root@security:~# telnet [Telnet_Server_IPv4_Address]
Trying [Telnet_Server_IPv4_Address]...
Connected to [Telnet_Server_IPv4_Address].
Escape character is '^]'.

Kernel #############################
localhost login: telnetusr
Password: 
telnetusr@security:~$

 

- 접속에 이상 없음을 확인

 

 

나. Windows 10 Home에서 Telnet server로 접속

 

- 접속 전, ping 명령으로 연결 상태 확인

C:\Users\security>ping [Telnet_Server_IPv4_Address]

Ping [Telnet_Server_IPv4_Address] 32바이트 데이터 사용:
[Telnet_Server_IPv4_Address]의 응답: 바이트=32 시간<1ms TTL=64
[Telnet_Server_IPv4_Address]의 응답: 바이트=32 시간<1ms TTL=64
[Telnet_Server_IPv4_Address]의 응답: 바이트=32 시간<1ms TTL=64
[Telnet_Server_IPv4_Address]의 응답: 바이트=32 시간<1ms TTL=64

[Telnet_Server_IPv4_Address]에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 0ms, 최대 = 0ms, 평균 = 0ms

● Windows 10 Home과 Telnet Server가 설치된 Rocky Linux 네트워크 연결 상태 양호

 

- Windows 10 Home에서 PuTTY를 사용하여 Telnet 접속

사진 Ⅲ-1-2-1

● 사진 Ⅲ-1-2-1과 같이 error 발생

●  error 원인 추측 및 조치 : Rocky Linux에서 방화벽에 Telnet 서비스 추가 작업을 누락하여 error가 발생한 것으로 판단하여 Rocky Linux 방화벽에 Telnet 서비스 추가

/* 방화벽 서비스 목록 확인 결과 Telnet이 없음을 확인 */

root@security:~# firewall-cmd --list-services
cockpit dhcpv6-client ssh


/* 방화벽에 Telnet 서비스 추가 */

root@security:~# firewall-cmd --add-service=telnet
success


/* 방화벽 서비스 목록 재확인 결과 Telnet이 정상적으로 추가되었음을 확인 */

root@security:~# firewall-cmd --list-services
cockpit dhcpv6-client ssh telnet

Windows 10 Home에서 PuTTY를 사용하여 Telnet 재접속 결과, 정상적으로 접속됨을 확인

localhost login: telnetusr
Password:
Last login: Sat Jul  5 04:41:52 from ###################

 

 

 

Ⅲ - 2. Telnet 접속에 대한 보안 취약점 확인 및 대응 방안

1. Telnet 접속에 대한 보안 취약점 확인

가. Telnet은 평문으로 패킷을 송ㆍ수신하므로 해커의 Sniffing 공격에 취약함

 

 

나. 보안 취약점 확인 시나리오

 

- Kali Linux 가상머신을 Promiscuous Mode로 설정한 후 Wireshark 실행

 

- Windows 10 Home과 Telnet Server가 통신하는 packet을 Sniffing함

 

 

다. 보안 취약점 확인 과정

 

- Kali Linux, Promiscuous Mode로 설정

/* Kali Linux, Promiscuous Mode 설정 */

┌──(kali㉿security)-[~]
└─$ sudo ifconfig eth0 promisc               
[sudo] password for kali: 


/* Promiscuous Mode가 정상적으로 설정되었음을 확인 */

┌──(kali㉿security)-[~]
└─$ ifconfig eth0 | grep -i promisc
eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500

 

- Kali Linux에서 아래의 명령어를 통해 Wireshark 실행

┌──(kali㉿security)-[~]
└─$ wireshark&

 

- Windows 10 Home에서 PuTTY를 사용하여 ID와 PW 입력 후, Telnet Server에 접속

 

-  Kali Linux, Wireshark로 캡처한 packet 확인

● Wireshark 상단 Filter Bar에 telnet 검색 → 첫 packet 마우스 우클릭 Follow → TCP Stream  

사진 Ⅲ-2-1-1

 

 

 

2. 대응 방안

가. 패킷을 평문으로 송ㆍ수신하여 해커의 Sniffing 공격에 취약한 Telnet 대신 패킷을 암호화하여 송ㆍ수신하는 SSH를 사용

 

 

나. 무조건 Telnet으로 원격 접속을 하여야 한다면 VPN을 사용하여 통신 필요

 

 


 

 

Ⅳ. 마치며

  본 프로젝트를 통해 Telnet 서버 구축과 원격 접속을 숙달하였다. 또한 Telnet으로 원격 접속할 시, 발생할 수 있는 보안 취약점에 대해 알아보았다. 프로젝트를 진행하기 전에는 Telnet 원격 접속(평문 통신)에 대한 위험성에 대해 크게 체감하지 못 하고 있었으나, 프로젝트를 진행 간 Wireshark를 통해 packet Sniffing 공격을 하여 완벽하게 공격 대상의 Telnet 계정을 탈취하는 것을 직접 실행하며 Telnet 원격 접속(평문 통신)의 위험성을 몸소 체감할 수 있었다.

 

  Telnet은 평문 통신을 하므로 해커의 Sniffing 공격에 매우 취약한 Protocol이다. 따라서 가급적 Telnet 대신, packet을 암호화하여 송ㆍ수신하는 SSH를 사용하기를 권장한다. 굳이 Telnet을 사용하여 원격 접속을 하여야만 한다면 VPN 서버를 활용하여 Telnet 원격 접속을 하여야 한다. VPN의 핵심 기능 중 하나가 바로 packet 암호화이기 때문이다.

 

 

 

끝.