인계 목록의 모든 장치 검사하기

HydraBeginner
지금 연습하기

소개

Lumen Hire가 전시용 디스플레이 장치 네 개를 준비하고 있습니다. 유지 관리 서비스는 작동하지만 일부는 여전히 출고 로그인을 허용합니다. 구성을 바꾸지 않고 모든 해당 장치를 찾은 뒤 올바른 인계 파일을 수집합니다.

Equipment Desk에서 목록과 저장한 파일을 보고 Workstation에서 명령을 실행합니다. 이 장치는 실제 하드웨어가 아니라 한 훈련 컨테이너의 독립적인 로컬 HTTP 서비스입니다. 기본 터미널 입력, 경로, 탭 전환만 알면 되며 Hydra는 준비되어 있습니다. 지정된 네 엔드포인트와 제공된 완전한 자격 증명 쌍만 테스트하세요. 모든 식별자와 비밀번호는 합성 데이터입니다.

엔드포인트와 장치 연결하기

이 단계에서는 감사 전에 정상 장치 하나를 읽습니다. Equipment Desk에서 시작하세요. 각 카드는 자산과 유지 관리 엔드포인트를 표시합니다. 엔드포인트는 주소와 포트를 결합하며 여기서 서로 다른 포트는 서로 다른 장치 서비스로 연결됩니다.

각 자산과 엔드포인트를 보여 주는 장비 데스크.

Workstation으로 전환합니다. 시작 디렉터리는 /home/labex/project/device-audit입니다. cat은 파일을 출력합니다.

cat inventory.tsv

탭으로 구분된 목록에는 자산 ID 네 개와 엔드포인트가 있습니다. 원본 파일을 변경하지 마세요. 127.0.0.1은 자신의 컴퓨터가 아니라 이 실습 컨테이너입니다. 네 서비스 모두 /status와 /handover.json을 제공합니다.

curl은 HTTP 요청을 보냅니다. -i는 응답 헤더도 포함합니다. 자격 증명 없이 첫 장치에 요청합니다.

curl -i http://127.0.0.1:8811/status

401 Unauthorized와 WWW-Authenticate의 Basic 인증 요청을 예상하세요. 연결 실패가 아니라 인증 거부입니다. HTTP Basic은 사용자 이름과 비밀번호 쌍을 보내며 일반 HTTP에서는 암호화되지 않습니다. 이 로컬 훈련 연결은 안전한 인터넷 전송을 모델링하지 않습니다.

알려진 viewer:desk-demo 로그인은 상태만 읽습니다. -u는 해당 쌍을 제공하고 -o는 응답 본문을 파일로 저장합니다.

curl -u viewer:desk-demo -o reference.json http://127.0.0.1:8811/status
cat reference.json

자산 D201과 모델, 포장 메모를 확인하세요. 이 정상 참조는 발견한 출고 로그인이 아닙니다. viewer는 인계 파일을 다운로드할 수 없습니다. 연결 오류라면 주소나 포트가 잘못된 것입니다. inventory.tsv와 비교해 오타를 고치고 요청을 다시 실행하세요.

출고 로그인 감사 완료하기

이 단계에서는 자격 증명 쌍을 유지하면서 전체 장치를 테스트합니다. Workstation에서 합성 출고 참조를 읽습니다.

cat factory-logins.txt

각 username:password 행이 허용된 쌍 하나입니다. 사용자 이름과 비밀번호를 별도 목록으로 분리하면 이 작업 범위 밖의 조합이 생깁니다. 세 쌍을 pairs.txt에 씁니다. 따옴표가 있는 here-document는 내용을 문자 그대로 유지하며 >는 지정 파일을 덮어씁니다. 마지막 PAIRS는 한 줄에 단독으로 있어야 합니다.

cat > pairs.txt <<'PAIRS'
admin:factory-one
operator:factory-two
service:factory-three
PAIRS

지정된 엔드포인트를 한 줄에 하나씩, 각각 한 번만 씁니다.

cat > targets.txt <<'TARGETS'
127.0.0.1:8811
127.0.0.1:8812
127.0.0.1:8813
127.0.0.1:8814
TARGETS

Hydra는 네트워크 서비스 로그인을 시도합니다. -C는 완전한 쌍을, -M은 엔드포인트를 읽습니다. http-get은 HTTP Basic 인증을 선택하고 -m /status는 리소스 경로를 전달합니다. -t 1은 대상마다 작업 하나로, -T 1은 전체 실행을 작업 하나로 제한하여 작은 감사를 따라가기 쉽게 만듭니다. 이번에는 조기 종료 옵션을 쓰지 않습니다. 소문자 -f는 첫 유효 쌍을 찾은 대상만 멈출 수 있고 다른 대상은 여전히 테스트해야 합니다. 대문자 -F는 어느 성공이든 발생하면 전체 감사를 종료하여 미검사 장치를 남길 수 있습니다.

-o는 결과를 저장하고 -b json은 구조화된 데이터 형식 JSON을 선택합니다. -I는 중단된 실행을 복원하지 않고 새로 시작합니다. 실행하세요.

hydra -I -C pairs.txt -M targets.txt -t 1 -T 1 -o findings.json -b json -m /status http-get
cat findings.json

results에 각 포트, 로그인, 비밀번호가 있는 항목 세 개와 quantityfound 값 3을 예상하세요. JSON의 success: true는 도구가 실행 오류 없이 끝났다는 뜻이지 모든 장치가 비밀번호를 허용한다는 뜻이 아닙니다. 네 번째 장치에서는 이 후보 집합으로 결과가 없습니다. 제한된 결과일 뿐 강한 비밀번호를 입증하지는 않습니다.

연결 오류는 부정 결과가 아닙니다. targets.txt를 원래 목록과 비교해 수정하세요. 다시 실행하려면 먼저 rm findings.json으로 이전 출력을 삭제해 JSON 실행이 섞이지 않게 합니다. rm은 지정 결과만 삭제하며 원본 파일을 지우면 안 됩니다. 완전한 쌍을 유지하고 통과하려고 장치 비밀번호나 서비스를 바꾸지 마세요.

일치하는 인계 파일 수집하기

이 단계에서는 발견한 각 쌍을 실제 장치에 사용해 완전한 인계 파일을 저장합니다. Workstation에 머무르세요. mkdir -p는 필요할 때 디렉터리를 만들고 기존 내용은 지우지 않습니다.

mkdir -p handover

findings.json의 포트와 로그인 대응 세 개를 사용합니다. curl -f는 HTTP 거부 시 오류로 종료해 오류 페이지를 정상 다운로드로 저장하지 않도록 합니다.

curl -f -u admin:factory-one -o handover/asset-D201.json http://127.0.0.1:8811/handover.json
curl -f -u operator:factory-two -o handover/asset-D202.json http://127.0.0.1:8812/handover.json
curl -f -u service:factory-three -o handover/asset-D203.json http://127.0.0.1:8813/handover.json
cat handover/asset-D202.json

자산 ID, 위치, 방향, 포장 메모를 확인하세요. 같은 파일 이름이나 올바른 파일 수는 서로 다른 장치의 내용이 정확하다는 증거가 아닙니다. 다운로드가 거부되면 도구의 원본 결과와 포트 및 쌍을 비교해 명령을 고친 뒤 다시 받으세요.

Equipment Desk로 전환해 Your handover를 선택하고 저장한 세 파일을 읽습니다. D202의 Download saved file로 받은 JSON을 여세요. 뷰어는 로컬 파일만 사용하며 가져오거나 수정하지 않습니다. D204에는 No saved file이 표시되어야 합니다. 파일 부재만으로 결론을 내릴 수 없고 부정 감사 결과는 전체 후보 테스트에 근거해야 합니다.

실제로 저장한 장치 파일을 읽는 인계 화면.

handover의 원본 세 파일, 도구가 생성한 findings.json, 입력 목록 두 개와 참조를 유지하세요. 네 서비스와 원래 목록 및 참조 파일은 변경하지 않습니다. 이는 제한된 기본 로그인 감사의 완료이며 전체 보안 평가는 아닙니다.

요약

장치 식별자를 엔드포인트와 연결하고 출고 자격 증명 쌍을 유지하면서 다중 대상 Hydra 감사를 완료하고 올바른 파일을 독립적으로 다운로드했습니다. 정상 서비스를 유지하며 제한된 부정 결과를 연결 실패 및 미검사 장치와 구분했습니다.