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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
lil-pwny — Active Directory 비밀번호의 빠른 오프라인 감사를 위한 Python 도구입니다. | Kitploit
도구/GitHubGitHub/papermtn/lil-pwny
Password CrackingVulnerability AnalysisAuthentication
GitHubpapermtn/lil-pwny

lil-pwny

Active Directory 비밀번호의 빠른 오프라인 감사를 위한 Python 도구입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Lil Pwny

Python 2.7 and 3 compatible PyPI version License: MIT

Python을 사용한 Active Directory 비밀번호의 빠른 오프라인 감사.

Lil Pwny 소개

Lil Pwny는 Active Directory에서 복구된 사용자 비밀번호의 NTLM 해시를 Have I Been Pwned의 알려진 손상된 비밀번호와 비교하여 오프라인 감사를 수행하는 Python 애플리케이션입니다. 결과는 사용자 이름, 일치하는 해시(난독화 가능) 및 HIBP에서 해당 비밀번호가 발견된 횟수를 포함하는 JSON 형식으로 출력됩니다.

Lil Pwny에 대한 자세한 정보는 제 블로그에서 확인할 수 있습니다.

기능

  • 사용자 정의 비밀번호 감사: AD 사용자를 확인하기 위해 자체 사용자 정의 비밀번호 목록을 제공할 수 있습니다. 이를 통해 조직과 관련된 비밀번호를 사용자가 사용하고 있을지 의심되는 경우 이를 확인할 수 있습니다.
    • 검색하려는 일반 텍스트 비밀번호가 포함된 .txt 파일을 전달하면, 이 비밀번호가 NTLM 해시로 변환되고 AD 해시와 HIBP 해시 모두와 비교됩니다.
  • 중복 감지: 동일한 비밀번호를 사용하는 계정 목록을 반환합니다. 관리자 계정과 일반 계정에 동일한 비밀번호를 사용하는 사용자를 찾는 데 유용합니다.
  • 사용자 이름을 비밀번호로 사용: 사용자 이름 또는 그 변형을 비밀번호로 사용하는 사용자를 감지합니다.
  • 난독화된 출력: 출력에서 해시를 난독화하여 실제 사용자 NTLM 해시를 처리하거나 저장하지 않으려는 경우에 사용합니다.

사용자 정의 비밀번호 목록 향상

Lil Pwny는 사용자 정의 비밀번호 목록에 일반적으로 사용되는 변형을 추가하여 향상시키는 기능을 제공합니다. 여기에는 다음이 포함됩니다:

  • 일반적인 '리트스피크' 치환이 적용된 비밀번호 (예: P@ssw0rd)
  • 대문자 비밀번호 및 첫 글자만 대문자인 비밀번호 (예: PASSWORD, Password)
  • 일반적인 특수 문자가 추가되거나 앞에 붙은 비밀번호 (예: password!, !password)
  • 특정 최소 길이를 충족시키기 위해 일반적인 영숫자, 특수 문자 또는 자기 반복으로 패딩된 비밀번호 (예: password123!, !passwordabc, passwordpassword)
    • 사용자 정의 목록 향상 옵션을 선택할 때 Lil Pwny에 원하는 최소 비밀번호 길이를 전달합니다.
  • 1950년부터 오늘 날짜로부터 10년 후까지의 날짜가 추가된 비밀번호 (예: password1950, password2034)

100개의 일반 텍스트 비밀번호로 구성된 사용자 정의 목록은 49848660개의 변형을 생성합니다.

비밀번호 속 사용자 이름

Lil Pwny는 사용자 이름의 변형을 비밀번호로 사용하는 사용자를 찾습니다.

사용자 이름을 다음 형식으로 변환합니다:

  • 모두 대문자
  • 모두 소문자
  • 점 "." 제거
  • camelCase (예: johnSmith)
  • PascalCase (예: JohnSmith)

이 변환된 값들은 NTLM 해시로 변환된 후 AD 해시와 비교됩니다.

리소스

이 애플리케이션은 Python의 멀티프로세싱을 최대한 활용하여 소비자 수준 하드웨어에서 가능한 한 빠르게 작동하도록 개발되었습니다.

멀티프로세싱을 사용하기 때문에 사용 가능한 코어가 많을수록 Lil Pwny가 더 빠르게 실행됩니다. 적은 수의 논리적 코어에서도 매우 좋은 결과를 보였습니다:

  • 약 8500개의 AD 계정 및 613,584,246개의 HIBP 해시가 포함된 테스트 환경:
    • 6개 논리 코어 - 0:05:57.640813
    • 12개 논리 코어 - 0:04:28.579201

출력

Lil Pwny는 결과를 표준 출력(stdout):

또는 JSON으로 출력합니다:

root@kitploit:~
{"localtime": "2021-00-00 00:00:00,000", "level": "NOTIFY", "source": "Lil Pwny", "match_type": "hibp", "detection_data": {"username": "RICKON.STARK", "hash": "32ED87BDB5FDC5E9CBA88547376818D4", "matches_in_hibp": "24230577", "obfuscated": "True"}}

Lil Pwny의 JSON 출력을 파일로 리디렉션할 수 있습니다:

root@kitploit:~
lil-pwny -ad ... > lil-pwny-results.json 

이 JSON 형식의 로깅은 SIEM 또는 기타 로그 분석 도구에 쉽게 수집될 수 있으며, 자동화된 해결 조치를 위해 다른 스크립트나 플랫폼에 제공될 수 있습니다.

설치

pip를 통해 설치

root@kitploit:~
pip install lil-pwny

사용법

lil-pwny는 전역 명령어로 설치되며, 다음과 같이 사용합니다:

root@kitploit:~
usage: lil-pwny [-h] -hibp HIBP [-v] [-c CUSTOM] [-custom-enhance CUSTOM_ENHANCE] -ad AD_HASHES [-d] [-output {file,stdout,json}] [-o] [--verbose]

Python을 사용한 Active Directory 비밀번호의 빠른 오프라인 감사

options:
  -h, --help            show this help message and exit
  -hibp HIBP, --hibp HIBP
                        The .txt file containing HIBP NTLM hashes
  -v, --version         show program's version number and exit
  -c CUSTOM, --custom CUSTOM
                        .txt file containing additional custom passwords to check for
  -custom-enhance CUSTOM_ENHANCE, --custom-enhance CUSTOM_ENHANCE
                        generate an enhanced custom password list based on the provided custom password list. Must be used with -c/--custom flag. The enhanced list will stored in memory and not
                        written to disk. Provide the minimum length of the passwords you want. Default is 8
  -ad AD_HASHES, --ad-hashes AD_HASHES
                        The .txt file containing NTLM hashes from AD users
  -d, --duplicates      Output a list of duplicate password users
  -output {file,stdout,json}, --output {file,stdout,json}
                        Where to send results
  -o, --obfuscate       Obfuscate hashes from discovered matches by hashing with a random salt
  --verbose             Turn on verbose logging

예시:

root@kitploit:~
lil-pwny -hibp ~/hibp_hashes.txt -ad ~/ad_user_hashes.txt -c ~/custom_passwords.txt -output stdout -do

입력 파일 준비

1단계: IFM AD 데이터베이스 덤프 가져오기

도메인 컨트롤러에서 ntdsutil을 사용하여 AD 도메인의 IFM 덤프를 생성합니다. 상승된 PowerShell 창에서 다음을 실행합니다:

root@kitploit:~
ntdsutil
activate instance ntds
ifm
create full **출력 경로**

2단계: 이 출력에서 NTLM 해시 복구

AD IFM 데이터에서 NTLM 해시를 복구하려면 PowerShell 모듈 DSInternals가 필요합니다.

설치 후, IFM 데이터의 SYSTEM 하이브를 사용하여 해시를 username:hash 형식으로 복구하고 파일 ad_ntlm_hashes.txt에 저장합니다.

root@kitploit:~
$bootKey = Get-BootKey -SystemHivePath '.\registry\SYSTEM'
Get-ADDBAccount -All -DBPath '.\Active Directory\ntds.dit' -BootKey $bootKey | Format-Custom -View HashcatNT | Out-File ad_ntlm_hashes.txt -Encoding ASCII

3단계: 최신 HIBP 해시 파일 다운로드

이 파일은 여기에서 .net 유틸리티를 사용하여 HIBP API에서 다운로드할 수 있습니다.

선택 단계: 원하지 않는 AD 계정 필터링

scripts 디렉토리의 PowerShell 스크립트를 사용하여 처리 전 IFM 출력에서 원하지 않는 계정을 제거할 수 있습니다. 여기에는 다음이 포함됩니다:

  • 비활성화된 계정
  • 컴퓨터 계정

리소스

  • ntdsutil 및 IFM
도구 다운로드