허용된 서비스에서 복구한 쌍 검사하기

LinuxBeginner
지금 연습하기

소개

폐쇄된 포털의 비밀번호를 복구했다고 현재 직원 아카이브에 여전히 접근할 수 있는 것은 아닙니다. 이전 레코드를 허용된 현재 사용자와 연결한 뒤 그 정확한 관계를 검사해야 합니다.

현재 재사용, 거부된 이전 자격 증명, 범위 밖의 사람, 미해결 레코드를 구분하는 비밀번호 없는 영향 목록을 만듭니다. John은 실제 오프라인 복구를, Hydra는 제한된 온라인 인증을 수행하며, SSH는 허용된 계정 신원을 관찰하게 합니다. 합성 대상과 Kali 감사 환경은 하나의 VM 커널을 공유하는 격리된 컨테이너입니다.

이전 가이드 실습을 완료했거나 거기서 다룬 John, 비공개 파일, 안정적인 ID 절차를 알아야 합니다. 이 단원은 Hydra와 영향 판단을 설명합니다. 새 환경에는 이전 VM의 결과가 없습니다. 읽기와 일반 오류 처리를 포함해 약 50분이라는 저자 추정 시간입니다.

새 환경에서 증거 다시 만들기

이 단계에서는 정상 접근을 확인하고 이 단원의 원본 내보내기를 복구합니다. Auditor를 /home/auditor/project에서 여세요. 이전 VM에서 복사할 것은 없습니다. 알려진 데모 로그인부터 시작합니다.

ssh -o UserKnownHostsFile=/etc/reuse/known_hosts -o StrictHostKeyChecking=yes -p 12222 demo@staff-archive whoami

비밀번호 프롬프트에 welcome-7을 입력하면 demo가 나온 뒤 로컬 프롬프트로 돌아와야 합니다. 비밀번호 입력은 보이지 않습니다. 이전 자격 증명을 검사하기 전에 정상 서비스 접근을 확인하는 것입니다. 오타가 나면 Ctrl+C로 취소하고 반복합니다. 연결 또는 호스트 키 실패는 자격 증명 거부가 아닙니다. 엄격한 호스트 키 검증을 유지하세요.

비공개 결과를 만들고 이미 배운 복구 절차를 반복합니다. umask는 세션에만 적용되므로 재연결 후 다시 실행합니다. findings가 이미 있다면 보존하고 계속합니다.

umask 077
mkdir -m 700 findings
cat inputs/legacy.txt
cat inputs/candidates.txt
OMP_NUM_THREADS=2 john --format=sha512crypt --wordlist=inputs/candidates.txt --pot=/home/auditor/project/findings/audit.pot --session=/home/auditor/project/findings/recovery inputs/legacy.txt
john --show --format=sha512crypt --pot=/home/auditor/project/findings/audit.pot inputs/legacy.txt > findings/recovered.txt
cat findings/recovered.txt

portal-17:cedar42, portal-23:pebble7, portal-41:birch81과 요약 3 password hashes cracked, 1 left를 확인합니다. 반복 실행은 pot을 재사용할 수 있으므로 새 복구가 없다고 실패로 판단하지 말고 --show를 확인합니다. 이 후보 예산에서 portal-58은 여전히 미해결입니다.

디렉터리를 잘못 선택했다면 pwd와 cd /home/auditor/project를 사용합니다. 경로 오타를 수정하고 해당 명령을 반복합니다. chmod 600 findings/recovered.txt는 과도한 결과 권한을 고치며 다른 비공개 파일에도 같은 방식을 적용할 수 있습니다. 입력과 아카이브의 현재 비밀번호를 수정하지 마세요.

허용된 정확한 쌍만 검사하기

이 단계에서는 어떤 복구 레코드를 검사할 수 있는지 판단하고 Hydra로 두 정확한 쌍을 검사합니다. Auditor에 머무르며 신원 관계와 현재 허용 범위를 따로 읽습니다.

cat inputs/legacy-roster.tsv
cat inputs/scope.tsv

표시 이름이 아니라 employee_id로 파일들을 연결합니다. portal-17은 E101이며 현재 로그인 이름은 mrivera입니다. portal-23은 E102이며 지금은 ncho입니다. 다른 Morgan Rivera는 E103이며 허용된 현재 사용자가 없습니다. 이 사람의 로그인 이름을 만들어 내지 마세요. E104는 허용된 현재 로그인 이름이 있지만 이전 비밀번호가 복구되지 않아 이 예산으로 검사할 이전 쌍이 없습니다.

Hydra의 -C는 한 줄에 하나씩 login:password 쌍을 읽습니다. 모든 로그인과 모든 복구 비밀번호를 조합하는 대신 각 관계를 유지합니다. printf, \n, 작은따옴표, >는 이전 실습과 동일하게 작동합니다. 허용되고 복구된 두 쌍만 저장하세요.

printf 'mrivera:cedar42\nncho:pebble7\n' > findings/pairs.txt
cat findings/pairs.txt

다음 명령에서 -C는 이 파일을, -s는 SSH 포트를 선택합니다. -t 1은 동시 작업을 하나로 제한하고 -w 8은 응답 대기를 제한합니다. -o는 Hydra의 발견 결과를 저장합니다. ssh://staff-archive는 프로토콜과 정확한 대상을 선택합니다. Hydra의 일반 호스트 처리는 기본 SSH의 고정 키 검증 절차와 다르므로 준비된 이 내부 대상만 사용하세요. 과정의 허가는 원래 복구된 두 쌍에 대한 것이며 추측 범위를 확대하라는 뜻이 아닙니다.

hydra -C findings/pairs.txt -s 12222 -t 1 -w 8 -o findings/hydra.txt ssh://staff-archive

완료를 기다립니다. mrivera와 cedar42의 성공 줄, 이어서 1 valid password found 및 대상 완료 요약이 예상됩니다. ncho 쌍은 거부됩니다. Hydra 출력에는 평문 자격 증명이 있으므로 비공개로 유지합니다. 종료 상태 0만으로 작동하는 자격 증명을 입증할 수 없습니다. 유효한 비밀번호가 없어도 완료된 실행은 정상 종료할 수 있습니다.

cat findings/hydra.txt

미완료 실행, 연결 오류, 비활성 대상은 비밀번호가 거부되었다는 증거가 아닙니다. 먼저 정확한 호스트, 포트, 쌍 파일을 확인합니다. 완료된 실행을 의도적으로 반복할 때 Hydra가 hydra.restore를 물으면 동일 명령에 -I를 추가해 이전 복원 파일을 무시합니다. 동일한 허용 시도 두 개를 반복하며 범위를 확대하지 않습니다. 두 쌍 모두 결정이 필요하므로 첫 성공 후 중단하는 옵션은 사용하지 마세요. 채점은 거부를 포함해 원래 정확한 쌍의 실제 인증 결정을 관찰합니다. Hydra 성공 줄만 복사해서는 충분하지 않습니다.

신원 확인과 제한된 영향 기록하기

이 단계에서는 허용된 신원을 관찰하고 비밀번호 없는 인계 자료를 씁니다. Auditor에서 복구한 비밀번호로 기본 SSH를 사용하세요.

ssh -o UserKnownHostsFile=/etc/reuse/known_hosts -o StrictHostKeyChecking=yes -p 12222 mrivera@staff-archive whoami

비밀번호 프롬프트에 cedar42를 입력합니다. mrivera가 표시된 뒤 로컬 프롬프트로 돌아옵니다. 아카이브의 제한된 명령은 실제 인증된 계정을 반환하며 대상 셸을 열지 않습니다. 이전 자격 증명이 도달하는 현재 신원을 확인한 것입니다. 여기서 입증한 영향은 인증 성공이며 모든 아카이브 리소스에 대한 접근을 입증하지는 않습니다.

findings/impact.tsv에는 record_id, employee_id, current_login, result, identity 다섯 열이 필요합니다. 현재 로그인 이름이 없거나 성공한 인증으로 신원이 확인되지 않았다면 -를 사용합니다. 허용되는 결과 값의 의미는 다음과 같습니다.

  • current-reused: 허용된 현재 계정이 해당 직원의 복구된 이전 비밀번호를 받아들입니다.
  • current-not-accepted: 그 정확한 복구 쌍이 서비스에 도달했고 거부되었습니다. 계정에 다른 약한 비밀번호가 없다는 뜻은 아닙니다.
  • out-of-scope: 복구는 성공했지만 직원에게 허용된 현재 신원이 없습니다. 추측한 신원을 검사하지 마세요.
  • not-recovered: 이 사전이 이전 비밀번호를 복구하지 못했습니다. 현재 재사용 여부는 알 수 없습니다.

각 이전 레코드에 한 행씩 비밀번호 없는 목록을 작성합니다.

printf 'record_id\temployee_id\tcurrent_login\tresult\tidentity\nportal-17\tE101\tmrivera\tcurrent-reused\tmrivera\nportal-23\tE102\tncho\tcurrent-not-accepted\t-\nportal-41\tE103\t-\tout-of-scope\t-\nportal-58\tE104\tlpark\tnot-recovered\t-\n' > findings/impact.tsv
cat findings/impact.tsv

신원 관계와 네 가지 다른 결론을 확인합니다. 오타는 printf 텍스트를 고치고 다시 실행해 수정합니다. 행 순서는 달라도 되지만 모든 관계는 유지되어야 합니다. pot, 평문 내보내기, 쌍 파일, Hydra 결과는 비공개로 보관하고 영향 목록을 비밀번호 없는 인계 자료로 사용합니다. 데모 로그인과 모든 원본 계정 및 비밀번호를 보존하세요. 이 평가 중 비밀번호를 교체하지 마세요. 개선은 별도 허가와 계획이 필요한 후속 작업입니다.

요약

이전 레코드를 허용된 현재 신원에 연결하고 Hydra로 정확한 쌍을 검사했으며 SSH로 재사용 계정을 관찰했습니다. 목록은 입증된 재사용 한 건과 거부된 쌍, 범위 밖 신원, 미해결 레코드를 구분합니다. 이 결론은 한정된 평가를 설명할 뿐 모든 비밀번호나 서비스의 안전성을 보증하지 않습니다. 도전 과제는 같은 방법을 다른 워크숍 명단과 대상에 적용합니다.