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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
enum4linux-ng — Windows/Samba 열거 도구인 enum4linux의 차세대 버전으로, JSON/YAML 내보내기와 같은 추가 기능을 제공합니다. 보안 전문가와 CTF 플레이어를 대상으로 합니다. | Kitploit
도구/GitHubGitHub/cddmp/enum4linux-ng
ReconnaissanceInformation GatheringNetwork SecurityCTFPenetration Testing
GitHubcddmp/enum4linux-ng

enum4linux-ng

Windows/Samba 열거 도구인 enum4linux의 차세대 버전으로, JSON/YAML 내보내기와 같은 추가 기능을 제공합니다. 보안 전문가와 CTF 플레이어를 대상으로 합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

enum4linux-ng

enum4linux의 차세대 버전

enum4linux-ng.py는 Mark Lowe (이전 Portcullis Labs, 현재 Cisco CX Security Labs)의 enum4linux.pl을 재작성한 것입니다. 이 도구는 Windows 및 Samba 시스템에서 정보를 열거하기 위한 도구로, 보안 전문가와 CTF 플레이어를 대상으로 합니다. 주로 Samba 도구인 nmblookup, net, rpcclient 및 smbclient를 래핑하는 역할을 합니다.

제가 직접 교육 목적으로 만들었으며, enum4linux.pl의 문제점을 해결하기 위해 제작했습니다. 원래 도구와 동일한 기능을 제공하지만 (일부 사항은 다르게 처리됩니다). 원래 도구와 달리 Samba 도구의 모든 출력을 파싱하고 모든 결과를 YAML 또는 JSON 파일로 내보낼 수 있습니다. 이를 통해 다른 도구가 결과를 가져와 추가 처리할 수 있도록 하는 것이 목적입니다. 향후 새로운 기능을 추가할 계획입니다.

기능

  • YAML 및 JSON 내보내기 지원
  • 컬러 콘솔 출력 (NO_COLOR를 통해 비활성화 가능 - https://no-color.org/)
  • ldapsearch 및 polenum이 네이티브로 구현됨
  • 여러 인증 방법 지원
  • 레거시 SMBv1 연결 지원
  • IPC 서명 지원 자동 감지
  • '스마트' 열거: 실패할 테스트를 자동으로 비활성화
  • 타임아웃 지원
  • SMB 다이얼렉트 검사
  • IPv6 지원 (실험적)

차이점

원래 enum4linux와 비교하여 일부 구현이 다릅니다. 중요한 차이점은 다음과 같습니다:

  • 그룹 멤버는 기본적으로 열거되지 않으며, -Gm으로 활성화할 수 있습니다.
  • RID 사이클링은 기본 열거(-A)에 포함되지 않지만 -R로 활성화할 수 있습니다.
  • RID 사이클링은 여러 SID 조회를 동일한 rpcclient 호출로 그룹화하여 더 빠르게 수행할 수 있습니다.
  • 매개변수 이름 지정이 약간 다릅니다 (예: -a 대신 -A).

크레딧

이전 Portcullis Labs (현재 Cisco CX Security Labs)의 분들께 감사드리며 크레딧을 드립니다:

  • Mark Lowe: 원본 'enum4linux.pl' 제작 (https://github.com/CiscoCXSecurity/enum4linux)
  • Richard 'deanx' Dean: 원본 'polenum' 제작 (https://labs.portcullis.co.uk/tools/polenum/)

또한 다음 분들께 감사드리며 크레딧을 드립니다:

  • Craig 'Wh1t3Fox' West: 'polenum'의 포크 제작 (https://github.com/Wh1t3Fox/polenum)

여러분의 코드를 읽는 것이 정말 재미있었습니다! :)

마지막으로, 코드를 기여하고, 이슈를 보고하고, 도구 개선에 도움이 되는 제안을 해주신 여러분께 감사드립니다.

법적 고지

이 도구를 사용하는 경우: 불법적인 목적으로 사용하지 마십시오.

실행

다음과 같은 예시 실행이 가능합니다:

enum4linux-ng.py -As <target> -oY out

데모

Windows Server 2012 R2

Windows Server 2012 R2 표준 설치를 대상으로 실행하는 데모입니다. 다음 명령어가 사용됩니다:

enum4linux-ng.py 192.168.125.131 -u Tester -p 'Start123!' -oY out

'Start123!' 비밀번호를 가진 'Tester' 사용자가 생성되었습니다. 방화벽 접근이 허용되었습니다. 열거가 완료되면 위로 스크롤하여 결과를 더 명확하게 볼 수 있습니다. 다른 열거 옵션이 지정되지 않았으므로 도구는 -A를 가정하며, 이는 enum4linux의 -a 옵션과 유사하게 동작합니다. 사용자와 비밀번호가 전달됩니다. -oY 옵션은 모든 열거 데이터를 YAML 파일(out.yaml)로 내보내 추가 처리에 사용할 수 있습니다. 도구는 시작 시 LDAP가 원격 호스트에서 실행 중이 아닌 것을 자동으로 감지합니다. 따라서 기본 열거의 일부인 추가 LDAP 검사를 건너뜁니다.

Demo

Metasploitable 2

두 번째 데모는 Metasploitable 2를 대상으로 실행하는 것입니다. 다음 명령어가 사용됩니다:

enum4linux-ng.py 192.168.125.145 -A -C

이번에는 -A와 -C 옵션이 사용됩니다. 첫 번째 옵션은 enum4linux의 -a 옵션과 유사하게 동작하며, 두 번째 옵션은 서비스 열거를 활성화합니다. 이번에는 자격 증명이 제공되지 않았습니다. 도구는 자동으로 SMBv1을 사용해야 함을 감지합니다. YAML이나 JSON 파일은 작성되지 않습니다. 다시 위로 스크롤하여 결과를 더 명확하게 볼 수 있습니다.

Demo

사용법

usage: enum4linux-ng.py [-h] [-A] [-As] [-U] [-G] [-Gm] [-S] [-C] [-P] [-O] [-L] [-I] [-R [BULK_SIZE]] [-N] [-w DOMAIN] [-u USER]
                        [-p PW | -K TICKET_FILE | -H NTHASH] [--local-auth] [-d] [-k USERS] [-r RANGES] [-s SHARES_FILE] [-t TIMEOUT] [-v] [--keep]
                        [-oJ OUT_JSON_FILE | -oY OUT_YAML_FILE | -oA OUT_FILE]
                        host

이 도구는 Mark Lowe의 enum4linux.pl을 재작성한 것으로, Windows 및 Samba 시스템에서 정보를 열거하기 위한 도구입니다. 주로 Samba 도구 nmblookup, net, rpcclient 및 smbclient를 래핑합니다. 원래 도구와 달리 열거 결과를 YAML 또는 JSON 파일로 내보낼 수 있어 다른 도구에서 추가 처리할 수 있습니다. 도구는 '스마트' 열거를 시도합니다. 먼저 대상에서 SMB 또는 LDAP에 접근 가능한지 확인합니다. 이 검사 결과에 따라 동적으로 검사를 건너뜁니다 (예: LDAP가 실행 중이 아닌 경우 LDAP 검사 스킵). SMB에 접근 가능하면 항상 세션을 설정할 수 있는지 확인합니다. 세션을 설정할 수 없으면 열거를 중단합니다. 열거 과정은 CTRL+C로 중단할 수 있습니다. -oJ 또는 -oY 옵션이 제공된 경우, CTRL+C로 SIGINT를 받으면 도구는 현재 열거 상태를 JSON 또는 YAML 파일에 기록합니다. 이 도구는 보안 전문가와 CTF 플레이어를 위해 만들어졌습니다. 불법적인 사용은 금지됩니다.

positional arguments:
  host

options:
  -h, --help         이 도움말 메시지를 표시하고 종료합니다.
  -A                 nmblookup을 포함한 모든 간단 열거 수행 (-U -G -S -P -O -N -I -L). 다른 옵션을 제공하지 않으면 이 옵션이 활성화됩니다.
  -As                NetBIOS 이름 조회 없이 모든 간단 짧은 열거 수행 (-U -G -S -P -O -I -L)
  -U                 RPC를 통해 사용자 가져오기
  -G                 RPC를 통해 그룹 가져오기
  -Gm                RPC를 통해 그룹 멤버 포함 그룹 가져오기
  -S                 RPC를 통해 공유 가져오기
  -C                 RPC를 통해 서비스 가져오기
  -P                 RPC를 통해 암호 정책 정보 가져오기
  -O                 RPC를 통해 OS 정보 가져오기
  -L                 LDAP/LDAPS를 통해 추가 도메인 정보 가져오기 (DC 전용)
  -I                 RPC를 통해 프린터 정보 가져오기
  -R [BULK_SIZE]     RID 사이클링을 통해 사용자 열거. 선택적으로 조회 요청 크기를 지정합니다.
  -N                 NetBIOS 이름 조회 수행 (nbtstat와 유사) 및 출력에서 작업 그룹 검색 시도
  -w DOMAIN          작업 그룹/도메인 수동 지정 (보통 자동으로 찾음)
  -u USER            사용할 사용자 이름 지정 (기본값 "")
  -p PW              사용할 비밀번호 지정 (기본값 "")
  -K TICKET_FILE     Kerberos로 인증 시도, Active Directory 환경에서만 유용 (참고: 이 옵션이 작동하려면 DNS가 올바르게 설정되어야 함)
  -H NTHASH          해시로 인증 시도
  --local-auth       대상에 로컬 인증
  -d                 사용자 및 그룹에 대한 상세 정보 가져오기, -U, -G 및 -R에 적용됩니다.
  -k USERS           원격 시스템에 존재하는 사용자 (기본값: administrator,guest,krbtgt,domain admins,root,bin,none). "lookupsids"로 SID를 가져오는 데 사용됩니다.
  -r RANGES          열거할 RID 범위 (기본값: 500-550,1000-1050)
  -s SHARES_FILE     무차별 대입 공유 추측
  -t TIMEOUT         연결 타임아웃 설정 (초 단위, 기본값: 10초)
  -v                 상세 모드, 실행 중인 samba 도구 명령 (net, rpcclient 등)을 표시합니다.
  --keep             열거 후 생성된 Samba 구성 파일을 삭제하지 않습니다 (-v와 함께 유용).
  -oJ OUT_JSON_FILE  출력을 JSON 파일로 작성 (확장자는 자동으로 추가됨)
  -oY OUT_YAML_FILE  출력을 YAML 파일로 작성 (확장자는 자동으로 추가됨)
  -oA OUT_FILE       출력을 YAML 및 JSON 파일로 작성 (확장자는 자동으로 추가됨)

설치

도구를 설치하는 방법은 여러 가지입니다. Linux 배포판의 패키지로 제공되거나 수동 설치가 필요합니다.

Kali Linux

apt install enum4linux-ng 

Archstrike

pacman -S enum4linux-ng

NixOS

(NixOS 20.9에서 테스트됨)

nix-env -iA nixos.enum4linux-ng

수동 설치

Linux 배포판에서 패키지를 제공하지 않는 경우 다음 수동 설치 방법을 사용할 수 있습니다.

의존성

이 도구는 Samba 클라이언트 도구를 사용합니다:

  • nmblookup
  • net
  • rpcclient
  • smbclient

이들은 모든 Linux 배포판에서 사용 가능해야 합니다. 패키지 이름은 일반적으로 smbclient, samba-client 또는 이와 유사합니다.

또한 다음 Python 패키지가 필요합니다:

  • ldap3
  • PyYaml
  • impacket

YAML 처리 속도를 높이려면 (선택 사항) 다음도 설치하십시오 (대부분의 Linux 배포판에서 PyYaml의 의존성으로 함께 설치됩니다):

  • LibYAML

특정 Linux 배포판의 설치 예시는 아래에 나와 있습니다. 또는 배포판에 구애받지 않는 방법 (python pip, python virtual env 및 Docker)도 가능합니다.

Linux 배포판별

아래 모든 배포판 예시에서 LibYAML은 해당 PyYaml 패키지의 의존성이므로 자동으로 설치됩니다.

ArchLinux

pacman -S smbclient python-ldap3 python-yaml impacket

Fedora/CentOS/RHEL

(Fedora Workstation 31에서 테스트됨)

dnf install samba-common-tools samba-client python3-ldap3 python3-pyyaml python3-impacket

Debian/Ubuntu/Linux Mint

(Ubuntu 18.04 이하의 경우 Docker 또는 Python 가상 환경 변형 사용)

apt install smbclient python3-ldap3 python3-yaml python3-impacket

Linux 배포판에 구애받지 않는 방법

Python pip

Linux 배포판에 따라 pip3 또는 pip가 필요합니다:

pip install pyyaml ldap3 impacket

또는:

pip install -r requirements.txt

위에서 언급한 Samba 도구를 여전히 설치해야 합니다.

Python 가상 환경

git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
python3 -m venv venv
source venv/bin/activate
pip install wheel
pip install -r requirements.txt

그런 다음 다음 명령으로 실행:

python3 enum4linux-ng.py -As <target>

위에서 언급한 Samba 도구를 여전히 설치해야 합니다. 또한 새 셸을 열 때마다 source venv/bin/activate를 실행해야 합니다. 그렇지 않으면 잘못된 Python 인터프리터와 라이브러리가 사용됩니다 (가상 환경이 아닌 시스템의 것).

Docker

git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
docker build . --tag enum4linux-ng

완료되면 예시 실행은 다음과 같습니다:

docker run -t enum4linux-ng -As <target>

기여 및 지원

때때로 도구에서 다음과 같은 오류 메시지가 출력될 수 있습니다:

Could not <some text here>, please open a GitHub issue

이 경우 -v 및 --keep 옵션을 사용하여 도구를 다시 실행하십시오. 그러면 오류 메시지를 발생시킨 정확한 명령을 볼 수 있습니다. 해당 명령을 복사하여 터미널에서 실행하고 출력을 파일로 리디렉션한 후, 여기에 GitHub 이슈를 열어 명령과 오류 출력 파일을 첨부하십시오. 이렇게 하면 문제를 디버깅하는 데 도움이 됩니다. 물론 직접 디버깅하여 풀 리퀘스트를 제출할 수도 있습니다.

도구가 유용하다면 별표를 눌러주시면 감사하겠습니다!

도구 다운로드