
모든 NPM 및 Pypi 패키지의 모든 관리자를 검사하여 도메인 재등록을 통해 하이재킹 가능한 패키지를 식별합니다.
이 도구는 NPM 및 Python Pypi 레지스트리의 모든 패키지에 있는 모든 관리자(maintainer)를 대상으로 미등록 도메인 또는 해당 도메인의 미등록 MX 레코드를 확인합니다. 도메인이 등록되지 않은 경우 도메인을 확보한 다음, 계정에 2단계 인증이 활성화되어 있지 않다면 비밀번호 재설정을 시작할 수 있습니다. 이를 통해 패키지를 하이재킹하고 원하는 모든 작업을 수행할 수 있습니다.
불법적인 목적으로 사용하지 마십시오. 패키지를 확인하고 버그 바운티 프로그램에 제출하는 용도로만 사용하십시오.
이 문제에 대해 NPM 보안 팀에 연락했지만 그들은 이런 종류의 취약점에 관심이 없습니다.
또한 API에서 반환된 관리자가 항상 실제 관리자를 반영하는 것은 아니지만, 종종 운이 좋을 수 있다는 점도 유의하십시오.
먼저 패키지 인덱스를 다운로드하세요! 서버가 매우 느리기 때문에 시간이 오래 걸릴 수 있습니다 (30분 이상 소요):
wget https://skimdb.npmjs.com/registry/_all_docs
그런 다음 ./hijagger npm 명령으로 도구를 실행하기만 하면 됩니다. 모든 옵션을 보려면 --help 스위치를 사용하세요. 출력은 자동으로 output.txt에도 저장됩니다. 패키지 수가 많기 때문에 이 도구는 아마도 며칠 동안 실행될 것입니다.
출력에서 적중 항목을 쉽게 찾으려면 HIT를 grep하세요. 색상은 패키지의 지난 1년간 다운로드 수를 기준으로 지정됩니다.
이 도구는 많은 DNS 및 whois 요청을 수행하므로 개인 IP가 차단될 위험을 감수하지 않으려면 전용 서버에서 실행할 것을 권장합니다.
이 모드는 NPM 모드와 완전히 동일하게 작동하지만, pypi API는 패키지의 다운로드 수를 반환하지 않습니다. 이 데이터는 Google BigQuery를 통해서만 사용할 수 있지만, 이는 작업을 훨씬 복잡하게 만들기 때문에 다운로드 카운터와 다운로드 기반 색상은 Pypi 패키지에 구현되어 있지 않습니다.
./hijagger pypi