Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nebulousAD — NebulousAD 자동화된 자격 증명 감사 도구. | Kitploit
도구/GitHubGitHub/nuid/nebulousad
Password CrackingPassword AttacksVulnerability AnalysisIdentity & Access Management (IAM)AuthenticationAPI SecurityArchived
GitHubnuid/nebulousad

nebulousAD

NebulousAD 자동화된 자격 증명 감사 도구.

저장소 보기
1522066년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

⚠️ NebulousAD 사용자에게 드리는 공지

2020년 4월 14일부터 NuID는 이 코드가 통신하는 NebulousAD API를 더 이상 호스팅하지 않습니다. 소규모 개발팀으로서 NebulousAD 포털과 Authentication Developer Portal을 모두 효과적으로 지원, 모니터링 및 개발하는 것이 불가능하다고 판단했습니다.

공개된 데이터 유출 인증 자격 증명 세트에 대해 Active Directory 비밀번호를 확인하는 코드는 이 리포지토리에 계속 남아 있으며, NebAD 경험을 통해 받은 모든 훌륭한 피드백을 반영하여 앞으로 몇 달 안에 Authentication API와 함께 원활한 비밀번호 블랙리스트 서비스를 제공할 예정입니다. 계속 지켜봐 주세요!

그동안의 참여와 피드백에 감사드리며, 앞으로도 여러분의 의견을 기다리겠습니다. NebAD, NuID 또는 디지털 아이덴티티 관련 질문이 있으시면 언제든지 연락해 주세요.

안녕! -NuID 팀

NebulousAD

빠른 링크

  • 소개
  • 향후 릴리스
  • 설치
  • 사용법
  • Nebulous REST API
  • 알려진 문제

소개

NebulousAD는 데이터 유출에서 발견된 손상된 비밀번호 데이터베이스에 대해 Active Directory 사용자 비밀번호를 감사하는 도구입니다. 이 도구는 Windows 시스템 관리자가 손상된 비밀번호 사용을 발견하고 선택적으로 수정하는 데 도움을 주기 위해 만들어졌습니다. 이 접근 방식은 NIST 800-63B에서 권장되며, 자격 증명 스프레이 및 스터핑 공격으로부터 보호하는 데 도움이 될 수 있습니다.

Nebulous 데이터베이스는 현재 25억 개 이상의 고유한 유출 비밀번호 해시를 보유하고 있습니다.

NebulousAD는 기본적으로 k-anonymity 모델을 사용하여 API에 대해 확인되는 비밀번호의 개인정보와 보안을 보호합니다. SHA-2 해시의 처음 5자만 API로 전송됩니다. k-anon에 대한 자세한 내용은 여기에서 읽을 수 있습니다.

이 도구는 원래 BSides Las Vegas 2019에서 공개되었습니다. BSides 발표 영상은 여기에 있습니다.

향후 릴리스

예정된 기능:

  • 그룹별 편집. 특정 AD 그룹의 구성원에 대한 해시 확인을 생략할 수 있습니다.

설치

미리 컴파일된 릴리스를 다운로드하거나(Python 인터프리터 불필요) 소스에서 빌드하십시오:

이 도구는 현재 Python2.7이 필요합니다.

git clone https://github.com/NuID/nebulousAD.git 실행

그런 다음 python setup.py install로 설치

키를 초기화합니다. 키는 https://nebulous.nuid.io/#/register 에서 얻을 수 있습니다. 등록 후 버튼을 클릭하여 API 키를 생성하고 복사합니다.

이제 다음과 같이 키를 초기화합니다: nebulousAD -init-key <api_key>

이제 도구를 실행할 수 있습니다. API 키를 찾을 수 없는 경우 터미널 세션을 다시 시작해야 할 수 있습니다. API 키는 환경 변수에 저장됩니다. 로그아웃했다가 다시 로그인해도 작동합니다.

정적 바이너리 컴파일

인터프리터 없이 사용할 수 있는 nebulousAD.exe 파일은 여기에서 다운로드할 수 있습니다. 또는 소스에서 직접 컴파일할 수 있습니다:

  1. pip install pyinstaller
  2. git clone https://github.com/NuID/nebulousAD.git
  3. cd .\nebulousAD\nebulousAD
  4. pyinstaller --onefile nebulousAD.py

Pyinstaller는 컴파일된 바이너리의 위치를 출력합니다:

example

사용법

모든 해시를 덤프하여 API에 대해 확인하는 예제 명령어: nebulousAD.exe -v -snap --check

root@kitploit:~
NuID Credential Auditing tool.

optional arguments:
  -h, --help            show this help message and exit
  -ntds NTDS            NTDS.DIT file to parse
  -system SYSTEM        SYSTEM registry hive to parse
  -csv CSV              Output results to CSV file at this PATH.
  -json JSON            Output results to JSON file at this PATH
  -init-key INIT_KEY    Install your Nu_I.D. API key to the current users
                        PATH.
  -c, --check           Check against Nu_I.D. API for compromised
                        credentials.
  -dk, --disable-k-anon
                        Disable k-anon hash searches against the API (speeds
                        up the audit).
  -snap                 Use ntdsutil.exe to snapshot the system registry
                        hive and ntds.dit file to <systemDrive>:\Program
                        Files\NuID\
  -shred                When performing delete operations on files, use a 7
                        pass overwrite with sdelete.exe. Download here:
                        https://docs.microsoft.com/en-
                        us/sysinternals/downloads/sdelete
  -no-backup            Do not backup the existing snapshots, just overwrite
                        them instead.
  -clean-old-snaps CLEAN_OLD_SNAPS
                        Clean backups older than N days.

display options:
  -user-status          Display whether or not the user is disabled
  -pwd-last-set         Shows pwdLastSet attribute for each account found
                        within the NTDS.DIT database.
  -history              Dump NTLM hash history of the users.
  -v                    Enable verbose mode.

--disable-k-anon

k-anonymity 해시 확인 기능을 비활성화합니다. 검색 시간을 단축하는 데 유용하지만, 전체 SHA-256(NTLM) 해시가 API로 전송됩니다. API로 전송된 해시는 기록하거나 저장하지 않습니다.

-snap

-snap 매개변수는 자동으로 Active Directory 스냅샷을 생성하고( ntdsutil.exe 사용), 권한이 있는 경우 ntds.dit 파일과 SYSTEM 레지스트리 하이브를 덤프합니다. 다양한 방법이나 ntdsutil.exe 도구를 사용하여 수동으로 덤프할 수 있습니다.

수동으로 덤프하는 경우 -system path\to\SYSTEM 및 -ntds path\to\ntds.dit로 파일을 지정할 수 있습니다. 이전 스냅샷을 감사하려는 경우 유용합니다.

--check

https://nebulous.nuid.io/#/register 의 API 키가 필요합니다. 키를 받은 후 -init-key로 설치하면 NuID API에 대해 해시를 확인할 수 있습니다. -history를 지정한 경우 각 계정의 비밀번호 기록도 확인하여 사용자가 이전에 사용했던 비밀번호 중 손상된 것이 있는지 확인합니다.

-user-status

계정이 Active Directory에서 활성 또는 비활성 상태인지 여부를 나타내는 출력을 추가합니다.

-pwd-last-set

계정 비밀번호가 마지막으로 설정된 날짜를 나타내는 출력을 추가합니다. 이는 GPO에 정의된 대로 자동으로 재설정되지 않는 서비스 계정과 같은 보안 정책 위반을 감지하는 데 유용할 수 있습니다.

-history

계정에 저장된 비밀번호 기록도 감사하거나 덤프합니다.

-shred

스냅샷을 삭제할 때 DoD 7회 덮어쓰기를 사용합니다. 이를 위해서는 경로에 sdelete.exe가 있어야 합니다. 여기서 다운로드할 수 있습니다: https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete

다운로드하여 %SYSTEMDRIVE\Windows\System32\ 디렉토리에 넣거나 환경 변수를 설정하십시오.

-clean-old-snaps

이 애플리케이션을 Task Scheduler와 함께 실행할 때 백업을 정리하는 데 유용합니다. SYSTEM 하이브와 .dit 파일은 큰 도메인에서 상당히 클 수 있으며 많은 디스크 공간을 차지합니다. 매일 감사 작업을 위해 Task Scheduler를 사용하는 경우 다음과 같이 옵션을 사용할 수 있습니다: -clean-old-snaps 7 (1주일 분량의 스냅샷만 저장).

-no-backup

이전 스냅샷이 감지되면 기본적으로 %SYSTEMDRIVE%\Program Files\NuID\snapshot-backups에 백업됩니다. 이는 ntdsutil.exe가 빈 디렉토리를 필요로 하기 때문입니다. 백업을 비활성화하고 현재 스냅샷만 지우려면 이 인수를 사용하십시오.

Nebulous REST API

RESTful 웹 API가 제공되며, 사용자는 생성된 NuID API 토큰을 자신의 사용자 지정 클라이언트에 활용할 수 있습니다. 이 섹션에서는 웹 API의 올바른 기능, 유효한 요청, 오류 유형 등에 대해 설명합니다.

응답

각 응답의 기본 구조는 동일합니다. 예외 없이 응답에는 success, data, error의 세 가지 필드가 포함되어야 합니다. 응답을 수신하면 가장 먼저 success 값을 확인해야 합니다. 이 값에 따라 data 객체를 계속 처리할지, 아니면 error 객체를 처리할지 결정됩니다. 다음 예제는 성공 및 실패 상황에서의 일반적인 서버 응답을 보여줍니다.

성공

root@kitploit:~
{
    success: True,  // Indicates the request completed successfully
    data: {
        /* value depends on endpoint queried */
    },
    error: {} // Empty 
}

실패

root@kitploit:~
{
    success: False,  // Indicates the request did not complete successfully
    data: { },  // Empty
    error: {
        "ErrorName": "Helpful description of the error that occurred during the request"
    }
}

오류

각 오류는 요청 중 발생한 문제에 대한 통찰력을 제공하여 사용자가 필요한 변경을 할 수 있도록 합니다.

지원되는 해시

현재 하나의 hash_type만 지원됩니다. 다음 값(대소문자 구분 없음)을 hash_type 대신 사용할 수 있습니다. hash_value의 16진수 문자열 표현 크기도 제공됩니다. hash_prefix는 이 크기를 초과할 수 없습니다:

해시길이
NTLMSHA264

API 엔드포인트

모든 API 엔드포인트 요청에는 다음 HTTP 헤더가 제공되어야 합니다. 그렇지 않으면 오류가 반환됩니다:

root@kitploit:~
X-NUID-API-KEY:   <Your NuID API Key>

각 엔드포인트는 다음 URL로 시작합니다:

root@kitploit:~
https://nebulous.nuid.io
/api/search/kanon/<hash_type>/<hash_prefix>

메서드: GET 설명: 해시의 익명화된 버전을 사용하여 해시 데이터베이스를 쿼리합니다. 전체 해시를 제공할 수 있지만, 최소 5자 이상의 접두사 형태로 부분 해시를 사용할 수도 있습니다. 이 접두사와 일치하는 Nebulous 데이터베이스의 모든 해시가 정확한 해시 자체를 공개하지 않고 반환됩니다. 응답: 다음 URL의 응답: https://nebulous.nuid.io/api/search/kanon/5f4dcc

root@kitploit:~
{
  "success": true,
  "data": {
    "matches": [
      "5f4dcc3010a3b4ffd56ec97b33a0f837",
      "5f4dcc3b5aa765d61d8327deb882cf99",
      "5f4dcc3b5bef0f9cc4c0f96d758010b8"
    ]
  },
  "error": {}
}
/api/search/kanon/<hash_type>

메서드: POST 전송 데이터:

root@kitploit:~
{
    "prefix": "<Hash Prefix>"
}

설명: 해시의 익명화된 버전을 사용하여 해시 데이터베이스를 쿼리합니다. 전체 해시를 제공할 수 있지만, 최소 5자 이상의 접두사 형태로 부분 해시를 사용할 수도 있습니다. 이 접두사와 일치하는 Nebulous 데이터베이스의 모든 해시가 정확한 해시 자체를 공개하지 않고 반환됩니다. 응답: 다음 URL의 응답: https://nebulous.nuid.io/api/search/kanon 및 데이터 {"prefix": "5f4dcc"}

root@kitploit:~
{
  "success": true,
  "data": {
    "matches": [
      "5f4dcc3010a3b4ffd56ec97b33a0f837",
      "5f4dcc3b5aa765d61d8327deb882cf99",
      "5f4dcc3b5bef0f9cc4c0f96d758010b8"
    ]
  },
  "error": {}
}

알려진 문제

impacket에 nthash를 올바르게 추출하지 못하는 버그가 있는 것으로 보입니다. 지금은 -history 인수 사용을 피하십시오.

https://github.com/SecureAuthCorp/impacket/issues/395 https://github.com/SecureAuthCorp/impacket/issues/660

문제가 있나요?

[email protected]로 연락주세요.

도구 다운로드
오류 이름설명상태 코드
ActionExpired호출하려는 작업이 만료되어 더 이상 유효하지 않습니다401
ActionInvalid호출하려는 작업이 존재하지 않습니다401
AuthFailure잘못된 사용자/비밀번호 조합401
AuthMissingToken인증 토큰이 제공되지 않았습니다401
FieldMissingJSON 요청에서 하나 이상의 필드가 누락되었습니다422
HashInvalidLength제공된 해시와 해당 해시 유형에 대해 예상된 길이가 일치하지 않습니다422
HashInvalidValue16진수 해시 표현이 필요합니다422
HashInvalidPrefix접두사는 최소 5자 길이여야 합니다422
HashUnsupported제공된 해시 유형이 지원되지 않습니다422
InvalidJWT제공된 JWT가 유효하지 않습니다401
InvalidRequest제공된 요청이 잘못되었거나 JSON 페이로드가 누락되었습니다422
KeyBadUser제공된 API 키가 예상된 사용자와 일치하지 않습니다401
KeyDisabled제공된 API 키가 비활성화되었습니다403
KeyInvalid제공된 API 키가 유효하지 않습니다401
KeyMissingAPI 키가 제공되지 않았습니다401
NotFound연결하려는 엔드포인트가 유효하지 않습니다404
PasswordIncorrect현재 비밀번호가 일치하지 않습니다401
UserDisabled계정이 현재 비활성화되었습니다401
UserKeyLimit최대 API 키 수에 도달했습니다403
UserNotActivated사용자 계정이 아직 활성화되지 않았습니다403
UserNotFound사용자 계정을 찾을 수 없습니다401