이 실습에서는 Hydra 패스워드 크래킹 도구의 연결 간격을 제어하는 방법을 배웁니다. 이 실습은 연결 시도 사이에 지연을 도입하여 공격 속도를 관리하고 탐지 가능성을 줄이는 방법을 보여줍니다.
이 실습은 OpenSSH 를 사용하여 LabEx VM 에서 기본 SSH 서버를 설정하는 것으로 시작합니다. 서버를 설치하고, 상태를 확인하며, 포트 22 에서 수신 대기 중인지 확인합니다. 이어서 Hydra 를 기본 시간 설정으로 실행하고, 연결 시도 사이에 5 초의 간격을 두는 -W 5 옵션을 명령어에 추가하여 수정합니다. 마지막으로, 이 시간 조정이 전체 공격 속도에 미치는 영향을 관찰합니다.
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.
SSH 서버 설정
이 단계에서는 LabEx VM 에 기본 SSH 서버를 설정합니다. SSH(Secure Shell) 는 비보안 네트워크를 통해 네트워크 서비스를 안전하게 운영하는 암호화 네트워크 프로토콜입니다. 일반적으로 원격 명령줄 로그인 및 원격 명령 실행에 사용됩니다.
먼저 OpenSSH 서버를 설치해야 합니다. OpenSSH 는 Secure Shell 프로토콜을 기반으로 하는 보안 관련 네트워크 수준 도구 모음이며, 가장 일반적인 SSH 구현입니다.
LabEx VM 의 터미널을 엽니다. 기본 Xfce 터미널을 사용할 수 있습니다.
패키지 목록을 업데이트하려면 다음 명령어를 실행합니다.
sudo apt update
이 명령어는 패키지 인덱스 파일을 소스에서 동기화합니다. 새 소프트웨어를 설치하기 전에 이 명령어를 실행하는 것이 좋습니다. 비밀번호를 입력하라는 메시지가 표시될 수 있지만, labex 사용자는 비밀번호 없이 sudo 권한을 가지고 있습니다.
다음으로 OpenSSH 서버를 설치합니다.
sudo apt install openssh-server -y
-y 플래그는 설치 중에 나타나는 모든 메시지에 자동으로 "예"를 응답하여 비대화식 프로세스를 만듭니다.
설치가 완료되면 SSH 서버가 자동으로 시작됩니다. 다음 명령어를 사용하여 상태를 확인할 수 있습니다.
sudo service ssh status
SSH 서버가 실행 중인지 확인하려면 SSH 포트 (포트 22) 가 수신 대기 중인지 확인할 수 있습니다. netstat 명령어를 사용합니다.
-L ~/project/users.txt: ~/project/users.txt에 있는 사용자 이름 목록 파일을 지정합니다.
-P ~/project/passwords.txt: ~/project/passwords.txt에 있는 암호 목록 파일을 지정합니다.
localhost: 대상 호스트 (이 경우 로컬 머신) 입니다.
ssh: 공격할 서비스 (SSH) 입니다.
Hydra 는 이제 사용자 이름과 암호 목록에서 SSH 서버에 로그인하려고 시도합니다. 공격 진행 상황을 보여주는 출력이 표시됩니다. 각 사용자 이름과 암호 조합을 시도합니다. $PASSWORD 환경 변수에서 가져온 올바른 암호가 passwords.txt 파일에 있으므로 Hydra 는 상대적으로 빠르게 찾을 것입니다.
출력은 다음과 같습니다.
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: [실제_암호]
Hydra finished.
중요한 줄은 [22][ssh] host: localhost login: labex password: [실제_암호]입니다. 이는 Hydra 가 labex 사용자의 암호를 성공적으로 찾았음을 나타냅니다.
Hydra 가 암호를 시도하는 속도에 유의하십시오. 이것이 기본 시간 설정입니다. 다음 단계에서는 시간 설정을 수정하여 공격 속도에 미치는 영향을 살펴보겠습니다.
5 초 간격 (-W 5) 으로 Hydra 실행
이 단계에서는 Hydra 명령어에 -W 5 옵션을 추가합니다. 이 옵션은 각 로그인 시도 사이에 5 초의 지연을 도입합니다. 이는 계정 잠금이나 침입 탐지 시스템의 감지 방지를 위해 유용합니다.
Hydra 의 -W 옵션은 대상 서비스로부터 응답을 기다리는 시간 제한을 지정합니다. 기본적으로 Hydra 는 매우 짧은 시간 제한을 사용합니다. 이 시간 제한을 늘리면 대상 서비스가 응답하는 데 시간이 오래 걸리거나 네트워크 지연 문제가 있을 때 도움이 될 수 있습니다.
이제 Hydra 는 SSH 서버에 로그인을 시도하지만, 다음 암호를 시도하기 전에 각 실패한 로그인 시도 후 5 초를 기다립니다.
출력을 관찰하십시오. 이전 단계보다 공격 속도가 현저히 느려짐을 알 수 있습니다. Hydra 는 여전히 올바른 암호 ("labex") 를 찾겠지만, 찾는 데 더 오랜 시간이 걸릴 것입니다.
출력은 다음과 같습니다.
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: labex
Hydra finished.
그러나 중요한 차이점은 Hydra finished. 메시지에 도달하는 데 걸리는 시간입니다. -W 5 옵션을 사용하면 Hydra 가 올바른 암호를 찾기 전에 최소 10 초 (2 번의 실패한 시도 * 5 초/시도) 가 걸립니다.
다음 단계에서는 이러한 변경 사항이 공격 속도에 미치는 영향과 보안 테스트에 대한 함축적인 의미에 대해 논의하겠습니다.
공격 속도 변화 관찰
이 단계에서는 Hydra 의 공격 속도에 미치는 -W 5 옵션의 영향을 분석합니다.
이전 단계에서 관찰했듯이 -W 5 옵션을 추가하면 공격 속도가 크게 느려집니다. -W 5 옵션 없이 Hydra 는 네트워크 지연과 서버 응답 시간에만 제한되어 가능한 한 빠르게 로그인 시도를 합니다. -W 5 옵션을 사용하면 Hydra 는 각 실패한 로그인 시도 후 5 초 동안 일시 정지합니다.
공격 속도의 이러한 차이점은 다음과 같은 중요한 의미를 지닙니다.
계정 잠금: 많은 시스템은 특정 횟수의 실패한 로그인 시도 후 계정을 비활성화하는 계정 잠금 정책을 가지고 있습니다. -W 5로 공격 속도를 늦춤으로써 이러한 잠금 정책을 유발할 위험을 줄이고 대상 계정의 잠금을 방지할 수 있습니다.
침입 탐지 시스템 (IDS): IDS 는 브루트포스 공격과 같은 의심스러운 활동을 감지하기 위해 네트워크 트래픽을 모니터링합니다. 빠른 연속의 실패한 로그인 시도는 브루트포스 공격의 강력한 지표가 되어 경고를 발생시킬 수 있습니다. 공격 속도를 늦춤으로써 IDS 가 공격을 감지하기 어렵게 만들 수 있습니다.
자원 소비: 빠른 공격 속도는 공격 머신과 대상 서버 모두에 상당한 자원을 소비할 수 있습니다. 공격 속도를 늦춤으로써 자원 소비를 줄이고 공격이 덜 눈에 띄게 만들 수 있습니다.
완료 시간: 가장 명백한 영향은 공격을 완료하는 데 걸리는 시간이 증가하는 것입니다. 암호 목록이 크면 시도 사이에 지연을 추가하면 암호를 해독하는 데 필요한 총 시간이 크게 증가할 수 있습니다.
요약하면, Hydra 의 -W 옵션을 사용하면 공격 속도를 제어하고 속도에 대한 필요성과 감지 및 계정 잠금 위험 사이의 균형을 맞출 수 있습니다. -W에 대한 적절한 값을 선택하는 것은 특정 대상과 공격 목표에 따라 달라집니다. 침투 테스트의 경우 공격이 더 오래 걸리더라도 은밀하고 감지를 피하는 것이 종종 더 좋습니다.
이 실습에서는 Hydra 를 사용하여 SSH 암호를 해독하는 기본적인 예를 보여주었습니다. 실제 상황에서 공격자는 종종 훨씬 더 큰 사용자 이름 및 암호 목록과 보안 조치를 우회하기 위한 더 정교한 기술을 사용합니다. 강력하고 고유한 암호를 사용하고 브루트포스 공격으로부터 보호하기 위한 적절한 보안 조치를 구현하는 것이 중요합니다.
요약
이 실습에서는 Hydra 연결 간격을 제어하여 공격 속도를 관리하고 감지를 회피하는 방법을 배웠습니다.
완료된 주요 단계:
OpenSSH 를 사용하여 SSH 서버를 설정하고 22 번 포트에서 수신 중인지 확인했습니다.
Hydra 테스트를 위한 사용자 이름 및 암호 목록을 생성했습니다.
기본 시간 제한으로 Hydra 를 실행하여 빠른 공격 속도를 관찰했습니다.
연결 시도 사이에 5 초 지연을 도입하기 위해 -W 5 옵션을 추가했습니다.
시간 제어가 공격 속도에 미치는 영향과 계정 잠금 및 탐지 시스템을 피하는 데 도움이 되는 방식을 관찰했습니다.
-W 옵션을 사용하면 공격 속도와 은밀성을 조절할 수 있으므로, 보안 조치를 트리거할 위험을 최소화하면서 효과적인 침투 테스트에 필수적인 매개변수가 됩니다.