관련 TryHackMe 랩 링크: https://tryhackme.com/r/room/becomeahackeroa
이 문서는 TryHackMe 플랫폼을 통해 윤리적 해킹(Ethical Hacking) 기술을 익히는 방법에 대해 설명합니다. 특히, 공격적인 보안 접근 방식을 이해하고 실습하는 데 초점을 맞춥니다.
공격형 보안이란?
공격형 보안(Offensive Security)은 시스템의 취약점을 적극적으로 찾아내고 이를 이용해 무단 접근이 가능한지를 평가하는 과정입니다. 이는 소프트웨어의 결함을 분석하고, 웹 애플리케이션 내 숨겨진 경로를 탐색하며, 인증 메커니즘을 우회하려는 시도를 포함합니다. 사이버 범죄자들이 시스템을 공격하기 전에 먼저 그 취약점을 발견하여 수정 권고안을 제시함으로써, 보다 안전한 환경을 조성할 수 있습니다.
반면, 방어형 보안(Defensive Security)은 네트워크 침입을 감지하고 대응하며, 디지털 포렌식 기법을 사용해 침해 사고를 분석하는 데 중점을 둡니다. 예를 들어, 감염된 장치를 조사하거나 이상 행위를 모니터링하여 조직을 보호하는 역할을 수행합니다.
실습 1부: 숨겨진 페이지 탐색
이번 실습에서는 웹 애플리케이션의 보안 평가를 위해 숨겨진 페이지를 찾는 연습을 진행합니다. 주어진 목표는 Mike라는 개발자가 출시한 온라인 상점(http://www.onlineshop.thm)에서 노출된 민감한 페이지를 식별하는 것입니다. 개발 과정에서 실수로 남겨진 관리자 페이지나 로그인 포털이 외부에 노출되었을 가능성을 점검해야 합니다.
먼저 브라우저를 사용해 다음 URL들을 직접 시도해볼 수 있습니다:
/sitemap/mail/login/admin/cgi-bin
각 경로를 수동으로 입력하여 응답 상태를 확인함으로써 존재 여부를 판단할 수 있습니다. 그러나 수백 또는 수천 개의 경로를 테스트해야 한다면 수작업은 비효율적입니다. 이 경우 자동화 도구를 사용하는 것이 바람직합니다.
Gobuster를 이용한 디렉터리 열거
Gobuster는 지정된 웹 서버에서 존재하는 디렉터리 및 파일을 사전 기반으로 탐색하는 명령줄 도구입니다. 아래 명령어를 터미널에 입력하여 실행할 수 있습니다:
gobuster dir --url http://www.onlineshop.thm/ -w /usr/share/wordlists/dirbuster/directory-list.txt
명령어 구성 요소:
dir: 디렉터리 탐색 모드 활성화--url: 대상 도메인 지정-w: 사용할 단어 목록(Wordlist) 경로 설정
실행 후 도구는 각 항목에 대한 HTTP 응답 코드를 출력하며, 200 OK를 반환하는 경로는 존재함을 의미합니다. 이 실습에서는 /login 페이지가 성공적으로 식별됩니다.
실습 2부: 무차별 대입 공격(Brute Force)
로그인 페이지 발견 후, 해당 포털에 접근하기 위해 유효한 자격 증명(Credentials)을 획득해야 합니다. 일반적으로 사용되는 아이디인 admin을 기준으로 여러 흔한 비밀번호 조합을 시도합니다:
- abc123
- 123456
- qwerty
- password
- 654321
브라우저에서 수동으로 테스트할 수도 있지만, 더 많은 조합을 처리해야 할 경우 자동화 도구가 필요합니다.
Hydra를 사용한 자동화된 로그인 시도
Hydra는 다양한 프로토콜에서 무차별 대입 공격을 수행할 수 있는 강력한 도구입니다. 다음 명령어는 웹 기반 POST 로그인 폼을 대상으로 공격을 시뮬레이션합니다:
hydra -l admin -P passlist.txt www.onlineshop.thm http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" -V
각 옵션의 의미:
-l admin: 대상 사용자 이름 고정-P passlist.txt: 비밀번호 목록 파일 지정http-post-form: HTTP POST 기반 인증 양식 지정"...:F=incorrect": 실패 응답을 식별할 문자열 (예: "incorrect")-V: 상세 출력 활성화
도구 실행 후, Hydra는 유효한 자격 증명 쌍을 식별합니다. 본 시나리오에서는 다음과 같은 결과가 나옵니다:
[SUCCESS] login: admin | password: qwerty
이 조합으로 로그인하면 비공개 정보에 접근할 수 있으며, 표시되는 메시지는 다음과 같습니다:
born_to_be_a_hacker
사이버 보안 진로 탐색
윤리적 해킹은 단순한 기술 습득을 넘어서, 문제 해결 능력과 지속적인 학습 태도를 요구하는 분야입니다. TryHackMe와 같은 플랫폼을 통해 매일 작은 실습을 반복함으로써 실제 업계에서 요구하는 역량을 체계적으로 쌓을 수 있습니다.
다음은 공격형 보안 분야에서 대표적인 직무들입니다:
- 침투 테스트(Penetration Tester): 시스템, 네트워크, 애플리케이션의 취약점을 정기적으로 평가하고 보고서를 작성합니다.
- 레드 팀(Red Teamer): 실제 공격자의 시각에서 조직 전체를 대상으로 모의 침투를 수행합니다.
- 보안 엔지니어(Security Engineer): 보안 아키텍처 설계 및 보안 솔루션 구현을 담당합니다.
많은 사람들이 다양한 배경에서 이 분야로 전환했습니다. 건축 노동자, 음악 교사, 대학생까지도 TryHackMe를 활용해 최초의 사이버 보안 직무를 얻은 사례가 있습니다. 중요한 것은 시작하는 용기와 꾸준한 실천입니다.