Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
hashr — GCP, AWS 및 로컬 소스 전반의 디스크 이미지, 패키지, 아카이브에서 포렌식 파일 해시 세트를 구축하고, DFIR 워크플로우를 위한 중복 제거 및 PostgreSQL/Spanner 내보내기를 제공합니다. | Kitploit
도구/GitHubGitHub/google/hashr
Disk ForensicsHash AnalysisForensicsDigital ForensicsIncident Response
GitHubgoogle/hashr

hashr

GCP, AWS 및 로컬 소스 전반의 디스크 이미지, 패키지, 아카이브에서 포렌식 파일 해시 세트를 구축하고, DFIR 워크플로우를 위한 중복 제거 및 PostgreSQL/Spanner 내보내기를 제공합니다.

저장소 보기
1309387개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

HashR: 나만의 해시 세트 생성



목차

  • HashR: 나만의 해시 세트 생성
    • 목차
    • 소개
    • 요구 사항
    • HashR 바이너리 빌드 및 테스트 실행
    • HashR 설정
      • Docker로 HashR 사용
      • OS 구성 & 필수 서드파티 도구
      • 처리 작업을 위한 스토리지 설정
        • PostgreSQL 스토리지 설정
        • Cloud Spanner 설정
      • 임포터 설정
        • GCP (Google Cloud Platform)
        • AWS
        • GCR (Google Container Registry)
        • Windows
        • WSUS
        • TarGz
        • Deb
        • RPM
        • Zip (및 기타 zip 유사 형식)
        • ISO 9660
      • 익스포터 설정
        • Postgres 익스포터 설정
        • GCP 익스포터 설정
      • 추가 플래그

소개

HashR을 사용하면 데이터 소스를 기반으로 나만의 해시 세트를 구축할 수 있습니다. 입력 소스(예: 원시 디스크 이미지, GCE 디스크 이미지, ISO 파일, Windows 업데이트 패키지, .tar.gz 파일 등)에서 파일과 해시를 추출하는 도구입니다.

HashR은 다음 구성 요소로 구성됩니다:

  1. 임포터: 소스를 로컬 스토리지로 복사하고 필요한 전처리를 수행합니다.
  2. 코어: image_export.py (Plaso)를 사용하여 소스에서 콘텐츠를 추출하고, 캐싱 및 저장소 수준 중복 제거를 처리하며, 추출된 파일을 익스포터에 제공할 준비를 합니다.
  3. 익스포터: 파일, 메타데이터 및 해시를 지정된 데이터 싱크로 내보냅니다.

현재 구현된 임포터:

  1. GCP: 기본 GCP 디스크 이미지에서 파일을 추출합니다.
  2. Windows: ISO-13346 형식의 Windows 설치 미디어에서 파일을 추출합니다.
  3. WSUS: Windows 업데이트 패키지에서 파일을 추출합니다.
  4. GCR: Google Container Registry에 저장된 컨테이너 이미지에서 파일을 추출합니다.
  5. TarGz: .tar.gz 아카이브에서 파일을 추출합니다.
  6. Deb: Debian 소프트웨어 패키지에서 파일을 추출합니다.
  7. RPM: RPM 소프트웨어 패키지에서 파일을 추출합니다.
  8. Zip: .zip (및 zip 유사) 아카이브에서 파일을 추출합니다.

파일이 추출되고 해시된 결과는 익스포터에 전달됩니다. 현재 구현된 익스포터:

  1. PostgreSQL: 데이터를 PostgreSQL 인스턴스에 업로드합니다.
  2. Cloud Spanner: 데이터를 GCP Spanner 인스턴스에 업로드합니다.

실행할 임포터를 선택할 수 있으며, 각 임포터는 서로 다른 요구 사항을 가집니다. 자세한 내용은 아래 섹션에서 확인할 수 있습니다.

요구 사항

HashR을 실행하려면 Linux OS가 필요합니다. 물리 머신, 가상 머신 또는 클라우드 머신일 수 있습니다. 다음은 최적의 하드웨어 요구 사항입니다:

  1. 8-16코어
  2. 128GB 메모리
  3. 2TB 고속 로컬 스토리지(SSD 권장)

HashR은 사양이 낮은 머신에서도 실행될 수 있을 것으로 보이지만, 이는 충분히 테스트되지 않았습니다.

HashR 바이너리 빌드 및 테스트 실행

HashR 바이너리를 빌드하려면 다음 명령을 실행하세요:``` shell env GOOS=linux GOARCH=amd64 go build hashr.go

핵심 hashR 패키지의 테스트를 실행하려면 Spanner 에뮬레이터를 실행해야 합니다:``` shell
gcloud emulators spanner start

그런 다음 모든 테스트를 실행하려면 다음 명령을 실행하세요:``` shell go test -timeout 2m ./...

## HashR 설정

### OSDFIR Infrastructure에서의 HashR

HashR를 [OSDFIR Infrastructure 프로젝트](https://github.com/google/osdfir-infrastructure/tree/main/charts/hashr)의 일부로 배포할 수 있습니다.
이 배포는 HashR를 kubernetes cronjobs로 실행하며 간편한
Timesketch 통합을 지원합니다.

### docker를 사용한 HashR

docker 컨테이너에서 HashR를 실행하려면 [docker 전용 가이드](https://github.com/google/hashr/blob/main/docker/README.md)를 방문하세요.

### OS 구성 및 필수 서드파티 도구

HashR는 Plaso를 사용하여 무거운 작업(디스크 이미지, 볼륨, 파일 시스템 파싱)을 처리합니다. 다음 명령을 사용하여 Plaso docker 컨테이너를 pull해야 합니다:``` shell
docker pull log2timeline/plaso

또한 Windows Update 패키지의 재귀적 추출을 위해 WSUS importer가 사용하는 7z가 HashR을 실행하는 머신에 설치되어 있어야 합니다:``` shell sudo apt install p7zip-full

HashR가 실행될 사용자가 sudo를 통해 특정 명령을 실행할 수 있도록 허용해야 합니다. 사용자가 `hashr`라고 가정하고 `/etc/sudoers.d/hashr` 파일을 생성한 후 다음 내용을 넣으세요:``` shell
hashr ALL = (root) NOPASSWD: /bin/mount,/bin/umount,/sbin/losetup,/bin/rm

HashR이 실행될 사용자는 또한 docker를 실행할 수 있어야 합니다. 사용자가 hashr라고 가정하면, 다음과 같이 docker 그룹에 추가하세요:``` shell sudo usermod -aG docker hashr

### 처리 작업을 위한 저장소 설정

HashR은 처리된 소스에 대한 정보를 저장해야 합니다. 또한 처리 작업에 대한 추가 텔레메트리(처리 시간, 추출된 파일 수 등)도 저장합니다. 다음 중 하나를 선택할 수 있습니다:

1. PostgreSQL
1. Cloud (GCP) Spanner

#### PostgreSQL 저장소 설정

PostgreSQL 인스턴스를 실행하고 유지 관리하는 방법은 여러 가지가 있으며, 가장 간단한 방법 중 하나는 Docker 컨테이너에서 실행하는 것입니다. 아래 단계에 따라 PostgreSQL Docker 컨테이너를 설정하세요.

1단계: PostgreSQL Docker 이미지를 가져옵니다.``` shell
docker pull postgres

Step 2: PostgreSQL 컨테이너를 백그라운드에서 초기화하고 실행합니다. 비밀번호를 반드시 조정하세요.``` shell docker run -itd -e POSTGRES_DB=hashr -e POSTGRES_USER=hashr -e POSTGRES_PASSWORD=hashr -p 5432:5432 -v /data:/var/lib/postgresql/data --name hashr_postgresql postgres

3단계: 처리 작업을 저장하는 데 사용할 테이블을 생성합니다.``` shell
cat scripts/CreateJobsTable.sql | docker exec -i hashr_postgresql psql -U hashr -d hashr

PostgreSQL을 사용하여 처리 작업에 대한 정보를 저장하려면 다음 플래그를 지정해야 합니다: -storage postgres -postgres_host <host> -postgres_port <port> -postgres_user <user> -postgres_password <pass> -postgres_db <db_name>

Cloud Spanner 설정

처리 작업에 대한 데이터를 Cloud Spanner에 저장하도록 선택할 수 있습니다. 그러려면 Google Cloud 프로젝트가 필요합니다. 이 설정의 주요 장점은 Google Data Studio를 사용하여 대시보드를 쉽게 만들 수 있고, Cloud Spanner 인스턴스에 직접 연결하여 PostgreSQL 인스턴스에 쿼리를 실행하지 않고도 모니터링과 디버깅이 가능하다는 것입니다.

gcloud 도구가 대상 hashr GCP 프로젝트로 구성되어 있다고 가정하면, Cloud Spanner를 활성화하려면 아래 단계를 따라야 합니다.

HashR 서비스 계정 만들기:``` shell gcloud iam service-accounts create hashr --description="HashR SA key." --display-name="hashr"

서비스 계정 키를 생성하여 홈 디렉토리에 저장하세요. *<project_name>*을(를) 프로젝트 이름으로 설정하세요.``` shell
gcloud iam service-accounts keys create ~/hashr-sa-private-key.json --iam-account=hashr-sa@<project_name>.iam.gserviceaccount.com

GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 서비스 계정 키로 지정하세요:``` shell export GOOGLE_APPLICATION_CREDENTIALS=/home/hashr/hashr-sa-private-key.json

Spanner 인스턴스를 생성하고, 필요에 따라 config 및 processing-units 값을 조정하세요:``` shell
gcloud spanner instances create hashr --config=regional-us-central1 --description="hashr" --processing-units=100

Spanner 데이터베이스 생성:``` shell gcloud spanner databases create hashr --instance=hashr

서비스 계정이 Spanner 데이터베이스를 사용하도록 허용하고, *<project_name>*을(를) 프로젝트 이름으로 설정하십시오:``` shell
gcloud spanner databases add-iam-policy-binding hashr --instance hashr --member="serviceAccount:hashr-sa@<project_name>.iam.gserviceaccount.com" --role="roles/spanner.databaseUser"

Spanner 데이터베이스 스키마 업데이트:``` shell gcloud spanner databases ddl update hashr --instance=hashr --ddl-file=scripts/CreateJobsTable.ddl

Cloud Spanner를 사용하여 처리 작업에 대한 정보를 저장하려면 다음 플래그를 지정해야 합니다: `-jobStorage cloudspanner -spannerDBPath <spanner_db_path>`

### 임포터 설정하기

실행할 임포터를 지정하려면 `-importers` 플래그를 사용해야 합니다. 가능한 값: `GCP,targz,windows,wsus,deb,rpm,zip,gcr,iso9660`

#### GCP (Google Cloud Platform)```shell
-importers GCP

이 임포터는 GCP 디스크 이미지에서 파일을 추출할 수 있습니다. 이 작업은 다음 몇 단계로 수행됩니다:

  1. 대상 프로젝트(예: ubuntu-os-cloud)에서 새 이미지를 확인합니다.
  2. 새 이미지/처리되지 않은 이미지를 hashR GCP 프로젝트로 복사합니다.
  3. Cloud Build를 실행하여 임시 VM을 만들고 복사된 이미지에서 dd를 실행한 후 출력을 .tar.gz 파일로 저장합니다.
  4. raw_disk.tar.gz를 hashR GCP 프로젝트의 GCS 버킷으로 내보냅니다.
  5. GCS에서 로컬 hashR 스토리지로 raw_disk.tar.gz를 복사합니다.
  6. raw_disk.tar.gz를 추출하고 디스크 이미지를 Plaso에 전달합니다.

공개 GCP 이미지가 포함된 GCP 프로젝트 목록은 여기에서 확인할 수 있습니다. 이 임포터를 사용하려면 GCP 프로젝트가 있어야 하며 다음 단계를 수행해야 합니다:

도구 다운로드