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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Snaffler — 침투 테스터들이 맛있는 사탕을 찾는 데 도움을 주는 도구, by @l0ss and @Sh3r4 ( Twitter: @/mikeloss and @/sh3r4_hax ) | Kitploit
도구/GitHubGitHub/snaffcon/snaffler
ReconnaissancePersistence MechanismsLateral MovementInformation GatheringPost-ExploitationPenetration TestingRed TeamingLateral Movement #8위Persistence Mechanisms #20위Post-Exploitation #13위
2.9k283307개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubsnaffcon/snaffler

Snaffler

침투 테스터들이 맛있는 사탕을 찾는 데 도움을 주는 도구, by @l0ss and @Sh3r4 ( Twitter: @/mikeloss and @/sh3r4_hax )

저장소 보기

Snaffler

ko-fi

"snaffle"의 사전적 정의

무엇을 위한 걸까요?

Snaffler는 침투 테스터와 레드 팀을 위한 도구로, 지루하고 거대한 건초 더미(대규모 Windows/AD 환경)에서 맛있는 사탕 바늘(주로 크리덴셜이지만 유연함)을 찾는 데 도움을 줍니다.

다른 용도로도 유용할 수 있지만, 명시적으로 "감사" 도구가 아닙니다.

이 모든 걸 읽고 싶지 않아!!!

에, 좋아요. 하지만 결과에 대해 책임지지 않습니다. 여러분을 위해 이 모든 걸 썼지만 괜찮아요. 화난 건 아니고, 그냥 실망했을 뿐이에요.

snaffler.exe -s -o snaffler.log

어떤 일을 하나요?

대체로 말하자면, Active Directory에서 Windows 컴퓨터 목록을 가져온 다음, 그 모든 컴퓨터에 탐촉 촉수를 뻗어 파일 공유가 있는지, 그리고 읽을 수 있는지 확인합니다.

그런 다음, 더 많은 탐촉 촉수로 해당 공유의 모든 파일을 열거하고 LEARNED ARTIFACTUAL INTELLIGENCE for MACHINES를 사용하여 당신 같은 더러운 작은 해커가 원할 만한 파일을 찾아냅니다.

사실 ML 같은 건 하지 않습니다. 제대로 하려면 훈련 데이터가 필요하고, 그걸 만드는 데 엄청난 시간이 필요하기 때문입니다. 대신, 모든 좋은 "ML" 프로젝트처럼 그냥 수많은 if 문과 정규식을 사용합니다.

어떻게 생겼나요?

이렇게요!

어떻게 사용하나요?

"도메인 가입 머신에서 도메인 사용자 컨텍스트로 EXE를 그냥 실행만 하면" (사람들이 Grouper2에서 하라는 대로 했고, 곧바로 모든 상세/디버그 스위치를 켜서 수백 메가바이트의 스택 트레이스를 내뱉게 만들었습니다) 기본적으로 아무것도 하지 않을 것입니다. README 파일을 읽지 않는 사람들을 위한 우리의 장난입니다.TM 왜냐하면 우리는 괴물이니까요.

하지만... 올바른 주문을 추가하면 앞서 언급한 L.A.I.M.이 활성화되고 사탕이 있을 법한 파일 경로가 드러날 것입니다.

핵심 주문은 다음과 같습니다:

-o 결과를 파일로 출력합니다. -s를 사용하지 않는 경우 이것을 원할 것입니다. 예: -o C:\users\thing\snaffler.log

-s 결과를 찾는 대로 표준 출력으로 출력합니다. -o를 사용하지 않는 경우 이것을 원할 것입니다.

-v 상세 수준을 제어합니다. 옵션은 Trace(가장 자세함), Degub(덜 자세함, 덜 구복), Info(기본값), Data(결과만)입니다. 예: -v debug

-m Snaffler가 마음에 드는 파일을 자동으로 복사(또는 Snaffle... 원한다면)할 출력 디렉터리를 활성화하고 지정합니다.

-l Snaffle할 파일의 최대 크기(바이트)입니다. 기본값은 10000000이며, 약 10MB입니다.

-i 컴퓨터 및 공유 검색을 비활성화하고, 파일 검색을 수행할 디렉터리 경로가 필요합니다.

-i 컴퓨터 검색을 비활성화하고, 공유 및 파일 검색을 수행할 호스트의 쉼표로 구분된 목록 또는 입력 파일이 필요합니다. 파일을 제공하는 경우 입력은 경로여야 합니다(예: C:\targets.txt 또는 .\targets.txt).

-y 출력을 TSV 형식으로 지정합니다.

-b 덜 흥미로운 것을 찾는 LAIM 규칙을 건너뜁니다. 0에서 3 사이의 숫자로 조정합니다.

-f DFS(분산 파일 시스템)를 통해 파일 공유를 찾도록 Snaffler를 제한합니다. 이는 많은 조직에서 가장 큰 파일 공유를 포함하면서도 기본보다 훨씬 은밀해야 합니다.

-a 파일 열거를 건너뛰고, 대상 호스트의 목록 가능한 공유 목록만 제공합니다.

-u Snaffler가 AD에서 계정 이름 목록을 가져와 가장 흥미로워 보이는 것을 선택한 다음 검색 규칙에 사용하도록 합니다.

-d 검색할 컴퓨터를 검색할 공유를 검색할 파일을 검색할 도메인입니다. 쉽습니다.

-c 도메인 컴퓨터 목록을 쿼리할 도메인 컨트롤러입니다.

-r 내부에서 흥미로운 문자열을 검색할 최대 파일 크기(바이트)입니다. 기본값은 500k입니다.

-j 파일에서 발견된 문자열 주변에 표시할 컨텍스트의 바이트 수입니다(예: -j 200).

-z 위의 모든 사항과 훨씬 더 많은 것을 정의하는 구성 파일의 경로입니다! 자세한 내용은 아래를 참조하세요. -z generate를 사용하면 .\default.toml이라는 샘플 구성 파일이 생성됩니다.

-t 출력하려는 로그 유형입니다. 현재 지원되는 옵션은 plain과 JSON입니다. 기본값은 plain입니다.

-x 사용할 최대 스레드 수입니다. 4 미만으로 설정하면 문제가 발생합니다.

-p .toml 형식 규칙으로 가득한 디렉터리 경로입니다. Snaffler는 기본 규칙 집합 대신 이 규칙을 모두 로드합니다.

로그 출력의 의미는 무엇인가요?

다음 주석이 달린 예제가 도움이 되길 바랍니다:

이 로그 항목은 대략 왼쪽에서 오른쪽으로 다음과 같이 읽습니다:

  • 7시 37분경
  • Snaffler가 주목할 만한 파일을 발견했습니다
  • 등급은 "Red"로, 두 번째로 흥미로운 수준입니다
  • "KeepConfigRegexRed"라는 규칙과 일치했습니다
  • 읽을 수는 있지만 수정할 수는 없습니다
  • 일치한 정확한 정규식은 빨간색 상자 안의 내용입니다
  • 크기는 208kB입니다
  • 마지막 수정일은 2020년 1월 10일 오후 3시 45분입니다
  • 보라색 경로에서 파일을 찾을 수 있습니다

... 그리고 나머지 줄(회색)은 일치한 위치의 파일에서 가져온 작은 컨텍스트 조각입니다.

이 경우 ASP.NET validationKey와 decryptionKey 값을 찾았으며, 이를 통해 일부 역직렬화 해킹으로 웹 앱에 RCE를 수행할 수 있을 수 있습니다. 만세!

참고: 이 스크린샷이 만들어진 후 Sh3r4가 각 줄 앞에 현재 사용자와 호스트 이름을 앞에 추가하는 기능을 추가했습니다. 하지만 스크린샷을 다시 찍고 싶지는 않습니다.

어떤 파일이 좋고 어떤 파일이 지루한지 어떻게 결정하나요?

"너무 간단해서 거의 거짓말 같은" 답변:

각 L.A.I.M. 마법 파일 찾기 방법은 다음과 같은 작업을 수행합니다:

  • 정확한 파일 확장자 일치로 검색 – 관련 단어 목록과 일치하는 확장자를 가진 파일이 반환됩니다. 이는 거의 항상 사탕을 포함하는 파일 확장자를 위한 것입니다(예: .kdbx, .vmdk, .ppk 등).

  • (대소문자 구분 없이) 정확한 파일 이름 일치로 검색 – 거의 항상 사탕을 포함하는 파일 이름을 위한 것입니다(예: id_rsa, shadow, NTDS.DIT 등).

  • 정확한 파일 확장자 일치(또 다른 단어 목록)로 검색한 후 일치하는 파일의 내용을 특정 키워드(또 다른 단어 목록)로 'grep'합니다. 이는 때때로 사탕을 포함하지만 걸러내야 할 잡것이 많을 것으로 예상되는 파일 확장자를 위한 것입니다. 예를 들어 web.config는 데이터베이스 자격 증명을 포함할 수 있지만, 지루한 IIS 구성과 비밀번호 없는 내용도 자주 포함합니다. 예를 들어 .config로 끝나는 모든 파일을 찾은 다음 connectionString, password, PRIVATE KEY 등을 포함한 문자열을 grep합니다.

  • 부분 파일 이름 일치로 검색(또 더 많은 단어 목록). 이는 주로 Jeff's Password File 2019 (Copy).docx 또는 등을 찾기 위한 것으로, 파일 이름에 , , , , 등의 하위 문자열이 포함된 파일을 일치시킵니다.

진짜 답변:

Snaffler는 "분류기" 시스템을 사용합니다. 각 분류기는 공유, 폴더, 파일 또는 파일 내용을 검사하고 일부 항목을 다음 분류기로 전달하며 다른 항목은 폐기합니다. 각 분류기는 규칙 집합을 사용하여 분류한 항목을 어떻게 처리할지 결정합니다.

이러한 규칙은 매우 간단할 수 있습니다. 예를 들어 "파일 확장자가 .kdbx이면 알려줘" 또는 "경로에 windows\sxs가 포함되어 있으면 그 경로 내의 하위 디렉터리와 파일 보기를 중지" 등입니다.

규칙은 정규식을 사용할 수도 있어 비교적 정교한 패턴 일치가 가능합니다. 이는 파일 내용을 검사할 때 특히 유용하지만, 성능에 큰 영향을 미치는 정규식은 주의해야 합니다. 대규모 환경에서는 이러한 규칙이 말 그대로 수백만 번 확인될 수 있으므로 사소한 성능 문제가 크게 증폭될 수 있습니다.

Snaffler의 진정한 힘은 여러 규칙을 체인으로 연결하고 분기 체인을 만들 수 있는 능력에 있습니다. 이를 통해 "저렴한" 규칙(예: 파일 이름 및 확장자 확인)을 사용하여 "비싼" 규칙(예: 파일 내용 전체에서 정규식 실행, 인증서 구문 분석하여 개인 키 포함 여부 확인 등)을 언제 사용할지 결정할 수 있습니다. 이것이 Snaffler가 필요할 때는 파일을 상당히 깊이 검사하면서도 C#과 같은 고급 언어로 작성된 도구로서 놀라울 정도로 빠른 이유입니다.

예를 들어, 매우 간단한 규칙 집합은 다음과 같을 수 있습니다:

  • 이미지 파일과 관련된 확장자를 가진 모든 파일을 폐기하는 규칙
  • .dmp 파일 확장자를 가진 모든 파일을 찾아 Snaffle하는 규칙
  • 다음과 같은 규칙 체인:
    • 첫 번째 규칙은 .ps1 파일 확장자를 찾고, 일치하는 모든 파일을 두 번째 및 세 번째 규칙으로 전송합니다.
    • 두 번째 규칙은 PowerShell 코드에서 하드코딩된 자격 증명을 찾기 위해 설계된 정규식을 사용하여 파일 내부를 검사합니다.
    • 세 번째 규칙은 PowerShell 스크립트 내에서도 흔히 사용되는 .bat 또는 .cmd 파일에서 볼 수 있는 cmd.exe 명령의 하드코딩된 자격 증명을 찾기 위해 설계된 정규식을 사용합니다.

이 접근 방식은 비교적 관리하기 쉽고 읽기 쉬운 규칙 집합을 유지할 수 있게 해주며, 최종 사용자(당신)가 기본값을 사용자 정의하거나 자신만의 규칙 집합을 개발하는 것을 훨씬 쉽게 만듭니다.

규칙을 쓰고 싶지 않아요, 어렵고 지루해 보이거든요.

맞아요, 그렇긴 했죠.

Snaffler는 .exe에 내장된 기본 규칙 집합과 함께 제공됩니다. ./Snaffler/SnaffRules/DefaultRules에서 확인할 수 있습니다.

저는 지루함의 거대한 거인, 평범함의 달인입니다. 자신만의 규칙 집합을 쓰고 싶습니다.

문제없어요, 거대한 괴짜님. 두 가지 옵션이 있습니다.

  1. DefaultRules 디렉터리의 규칙을 편집하거나 교체한 다음 새 Snaffler를 빌드하세요. 해당 디렉터리의 .toml 파일은 리소스로 .exe에 포함되며, 다른 규칙을 지정하지 않을 때 런타임에 로드됩니다.
  2. 디렉터리를 만들고 자신의 규칙 파일 몇 개를 넣은 다음, -p .\path\to\rules와 함께 Snaffler를 실행하세요. Snaffler는 해당 디렉터리의 모든 .toml 파일을 구문 분석하고 결과 규칙 집합을 사용합니다. 모든 규칙을 하나의 큰 .toml 파일에 넣어도 작동합니다.

다음은 도움이 되기를 바라는 주석이 달린 예제입니다. 이것이 매우 어렵게 보인다면, 그냥 우리 규칙을 사용하면 좋은 것을 찾을 수 있을 것입니다.

다음은 특정 이름을 가진 디렉터리 아래의 모든 파일과 하위 디렉터리를 무시하도록 Snaffler를 만드는 규칙의 예입니다.```toml [[ClassifierRules]] EnumerationScope = "DirectoryEnumeration" # This defines which phase of the discovery process we're going to apply the rule. # In this case, we're looking at directories. # Valid values include ShareEnumeration, DirectoryEnumeration, FileEnumeration, ContentsEnumeration RuleName = "DiscardLargeFalsePosDirs" # This can be whatever you want. We've been following a rough naming scheme, but you can call it "Stinky" if you want. ¯_(ツ)_/¯ MatchAction = "Discard"# What to do with things that match the rule. In this case, we want to discard anything that matches this rule. # Valid options include: Snaffle (keep), Discard, Relay (example of this below), and CheckForKeys (example below) Description = "File paths that will be skipped entirely." # Not used in the code, just a place for notes really. MatchLocation = "FilePath" # What part of the file/dir/share to look at to check for a match. In this case we're looking at the whole path. # Valid options include: ShareName, FilePath, FileName, FileExtension, FileContentAsString, FileContentAsBytes, # although obviously not all of these will apply in all EnumerationScopes. WordListType = "Contains" # What matching logic to apply, valid options are: Exact, Contains, EndsWith, StartsWith, or Regex. # Under the hood these all get turned into regexen one way or another. MatchLength = 0 WordList = [

A list of strings or regex patterns to use to match. If using regex patterns, WordListType must be Regex.

root@kitploit:~
"\\\\puppet\\\\share\\\\doc",
"\\\\lib\\\\ruby",
"\\\\lib\\\\site-packages",
"\\\\usr\\\\share\\\\doc",
"node_modules",
"vendor\\\\bundle",
"vendor\\\\cache",
"\\\\doc\\\\openssl",
"Anaconda3\\\\Lib\\\\test",
"WindowsPowerShell\\\\Modules",
"Python27\\\\Lib"

] Triage = "Green" # If we find a match, what severity rating should we give it. Valid values are Black, Red, Yellow, Green. This value is ignored for Discard MatchActions.

root@kitploit:~
반면에 이 규칙은 파일 확장자를 확인하고, 마음에 들지 않는 것은 즉시 폐기합니다.

이 경우 주로 글꼴, 이미지, CSS 등을 제거합니다.```toml
[[ClassifierRules]]
EnumerationScope = "FileEnumeration" # We're looking at the actual files, not the shares or dirs or whatever.
RuleName = "DiscardExtExact" # just a name
MatchAction = "Discard" # We're discarding these
MatchLocation = "FileExtension" # This time we're only looking at the file extension part of the file's name.
WordListType = "Exact" # and we only want exact matches. 
WordList = [".bmp", ".eps", ".gif", ".ico", ".jfi", ".jfif", ".jif", ".jpe", ".jpeg", ".jpg", ".png", ".psd", ".svg", ".tif", ".tiff", ".webp", ".xcf", ".ttf", ".otf", ".lock", ".css", ".less"] # list of file extensions.

여기 우리가 좋아하고 유지하고 싶은 것에 대한 아주 간단한 규칙의 예가 있습니다.```toml [[ClassifierRules]] EnumerationScope = "FileEnumeration" # Still looking at files RuleName = "KeepExtExactBlack" # Just a name MatchAction = "Snaffle" # This time we are 'snaffling' these. This usually just means send it to the output, # but if you turn on the appropriate option it will also grab a copy. MatchLocation = "FileExtension" # We're looking at file extensions again WordListType = "Exact" # With Exact Matches WordList = [".kdbx", ".kdb", ".ppk", ".vmdk", ".vhdx", ".ova", ".ovf", ".psafe3", ".cscfg", ".kwallet", ".tblk", ".ovpn", ".mdf", ".sdf", ".sqldump"] # and a bunch of fun file extensions. Triage = "Black" # these are all big wins if we find them, so we're giving them the most severe rating.

root@kitploit:~
이것은 기본적으로 동일하지만, 우리는 전체 파일 이름을 보고 있습니다. 간단합니다!```toml
[[ClassifierRules]]
EnumerationScope = "FileEnumeration"
RuleName = "KeepFilenameExactBlack"
MatchAction = "Snaffle"
MatchLocation = "FileName"
WordListType = "Exact"
WordList = ["id_rsa", "id_dsa", "NTDS.DIT", "shadow", "pwd.db", "passwd"]
Triage = "Black"

이것은 약간 멋지네요, 한번 살펴보세요...```toml [[ClassifierRules]] EnumerationScope = "FileEnumeration" # we're looking for files... RuleName = "KeepCertContainsPrivKeyRed" MatchLocation = "FileExtension" # specifically, ones with certain file extensions... WordListType = "Exact" WordList = [".der", ".pfx"] # specifically these ones... MatchAction = "CheckForKeys" # and any that we find, we're going to parse them as x509 certs, and see if the file includes a private key! Triage = "Red" # cert files aren't very sexy, and you'll get huge numbers of them in most wintel environments, but this check gives us a way better SNR!

root@kitploit:~
좋습니다, 여기서 본격적인 기능이 등장합니다. 여기 두 개의 규칙이 체인으로 연결되어 있습니다.

첫 번째 규칙과 일치하는 확장자를 가진 파일은 두 번째 규칙으로 전송되며, 여기서 특정 wordlist의 항목을 찾기 위해 "grep"(즉, `String.Contains()`)을 수행합니다.

원하는 만큼 체인을 연결할 수 있지만, 너무 인셉션 수준으로 깊어지면 성능 문제가 발생할 수 있습니다.```toml
[[ClassifierRules]]
EnumerationScope = "FileEnumeration" # this one looks at files...
RuleName = "ConfigGrepExtExact"
MatchLocation = "FileExtension" # specifically the extensions...
WordListType = "Exact"
WordList = [".yaml", ".xml", ".json", ".config", ".ini", ".inf", ".cnf", ".conf"] # these ones.
MatchAction = "Relay" # Then any files that match are handed downstream...
RelayTargets = ["KeepConfigGrepContainsRed"] # To the rule with this RuleName! This can also be an array of RuleNames if you want to get real wild and start writing branching rulesets.

[[ClassifierRules]]
RuleName = "KeepConfigGrepContainsRed" # Anyway, this is the target rule. Following a naming convention really helps to make sure you're using the right targets.
EnumerationScope = "ContentsEnumeration" # this one looks at file content!
MatchAction = "Snaffle" # it keeps files that match
MatchLocation = "FileContentAsString" # it's looking at the contents as a string (rather than a byte array)
WordListType = "Contains" # it's using simple matching
WordList = ["password=", " connectionString=\"", "sqlConnectionString=\"", "validationKey=", "decryptionKey=", "NVRAM config last updated"]
Triage = "Red"

바라건대 이게 아이디어를 전달할 수 있기를 바랍니다. 기본 규칙 중 일부를 가져와서 충분히 다룰 수 있다고 느낄 때까지 조금씩 수정해 보는 것을 추천합니다.

"UltraSnaffler"가 도대체 뭐죠???

많은 사람들이 Word 문서, PDF, .eml 등과 같이 단순한 텍스트가 아닌 파일 형식 내부를 들여다볼 수 있는 기능을 원했습니다. 안타깝게도, 해당 기능을 구현하는 가장 쉬운 라이브러리는 Snaffler.exe의 최종 파일 크기를 약 1200%나 늘려 버렸고, 이는 파일 크기에 상한이 있는 널리 사용되는 여러 인메모리 실행 기술에 좋지 않았습니다.

해결책은 UltraSnaffler였으며, 이는 필요한 라이브러리와 관련 코드를 활성화하는 두 번째 .sln 파일에 불과합니다. UltraSnaffler.sln을 빌드하면 UltraSnaffler를 얻을 수 있습니다.

경고: Snaffler의 기본 규칙에는 Office 문서나 PDF 내부를 살펴보는 규칙이 포함되어 있지 않습니다. 일반적인 기업 환경에서 실행을 완료하는 데 수년이 걸리지 않을 규칙을 작성하는 것이 매우 어렵다는 것을 알았기 때문입니다. 이러한 문서 내부를 살펴보는 것은 기존의 일반 텍스트 파일을 살펴보는 것보다 훨씬 느리며, 일반적인 환경에는 가치가 낮은 Office 문서와 PDF가 엄청나게 많다는 점에 유의하십시오.

설정 파일은 어떻게 작동하나요?

제 생각에 이건 정말 깔끔합니다.

Snaffler 명령줄 끝에 -z generate를 추가하면, Snaffler는 설정 객체(인수로 설정된 설정의 모든 측면 포함)를 .toml 설정 파일로 직렬화하며, 이를 손쉽게(또는 어렵게) 직접 편집한 후 원할 때 재사용할 수 있습니다.

예를 들어, 다음과 같이 실행하면:

Snaffler.exe -s -o C:\mydir\snaffler.log -v trace -i \\host.lol.domain\share -p C:\users\someguy\myrules -z generate

Snaffler는 여러분의 많은 인수를 모두 구문 분석하여 설정 객체로 변환하고, 그 설정 객체를 다음 .toml 설정 파일로 직렬화합니다.```toml PathTargets = ["\\host.lol.domain\share"] ComputerTargetsLdapFilter = "(objectClass=computer)" ScanSysvol = true ScanNetlogon = true ScanFoundShares = true InterestLevel = 0 DfsOnly = false DfsShareDiscovery = false DfsNamespacePaths = [] CurrentUser = "l0sslab\l0ss" RuleDir = "C:\users\someguy\myrules" MaxThreads = 60 ShareThreads = 20 TreeThreads = 20 FileThreads = 20 MaxFileQueue = 200000 MaxTreeQueue = 0 MaxShareQueue = 0 LogToFile = true LogFilePath = "C:\mydir\snaffler.log" LogType = "Plain" LogTSV = false Separator = 32 LogToConsole = true LogLevelString = "trace" ShareFinderEnabled = false LogDeniedShares = false DomainUserRules = false DomainUserMinLen = 6 DomainUserNameFormats = ["sAMAccountName"] DomainUserMatchStrings = ["sql", "svc", "service", "backup", "ccm", "scom", "opsmgr", "adm", "adcs", "MSOL", "adsync", "thycotic", "secretserver", "cyberark", "configmgr"] DomainUsersWordlistRules = ["KeepConfigRegexRed"] MaxSizeToGrep = 1000000 Snaffle = false MaxSizeToSnaffle = 10000000 MatchContextBytes = 200

root@kitploit:~
You may notice that there are many items in here that you didn't pass arguments for. Those values are the default config items, some of which can only be edited easily in the source or via a config file, usually because it didn't seem worth it to add an argument for them.

여기에 인자를 전달하지 않은 항목이 많다는 것을 눈치챘을 수도 있습니다. 해당 값들은 기본 설정 항목이며, 그중 일부는 소스나 설정 파일을 통해서만 쉽게 편집할 수 있습니다. 대개 인자를 추가할 가치가 없다고 판단했기 때문입니다.

## This sucks, do you have plans to make it suck less?

## 이거 별로인데, 덜 별로 만들 계획 있나요?

No it doesn't, you suck.

아니요, 별로 안 별로입니다. 당신이 별로에요.

Also, yes we do.

또한, 네, 계획은 있습니다.

We're also going to: 
 - Add parsing of archive files, ideally treating them as just another dir to walk through looking for goodies.
 - Keep refining the rules and regexen. **More words for the wordlists! `string[]`s for the `string` throne!**

또한 다음과 같은 작업도 할 예정입니다:
 - 아카이브 파일 파싱 추가. 이상적으로는 그냥 또 다른 디렉토리처럼 취급하여 좋은 것들을 찾으며 탐색할 수 있도록.
 - 규칙과 정규표현식 계속 개선. **워드리스트에 더 많은 단어를! `string` 왕좌를 위한 `string[]`들을!**

![A dumb joke about wordlists.](https://assets.kitploit.com/production/public/readmes/5041/ac1d2a65e3759820b6eaaf47c893ec06661ce5db74c26d60eb424fabfe29a11f.png)

![워드리스트에 대한 바보 같은 농담.](https://assets.kitploit.com/production/public/readmes/5041/ac1d2a65e3759820b6eaaf47c893ec06661ce5db74c26d60eb424fabfe29a11f.png)

## Who did you steal code from?

## 누구한테서 코드를 훔쳤나요?

The share enumeration bits were snaffled (see what I did there?) from SharpShares, which was written by the exceedingly useful Dwight Hohnstein. (https://github.com/djhohnstein/SharpShares/)
Dwight's GitHub profile is like that amazing back aisle at a hardware store that has a whole bunch of tools that make you go "oh man I can't wait til I have an excuse to try this one for realsies..." and you should definitely check it out.

공유 열거 부분은 SharpShares에서 살짝 가져왔습니다(제가 한 말 이해하셨죠?). SharpShares는 매우 유용한 Dwight Hohnstein이 작성했습니다. (https://github.com/djhohnstein/SharpShares/)
Dwight의 GitHub 프로필은 철물점의 놀라운 뒷통로와 같아서, "아이고, 진짜로 이걸 써볼 핑계가 생기길 기다릴 수가 없네..."라는 생각이 들게 하는 도구들이 가득하며, 꼭 확인해보시길 권장합니다.

While no code was taken (mainly cos it's Ruby lol) we did steal a bunch of nifty ideas from `plunder2` (http://joshstone.us/plunder2/)

코드를 가져오지는 않았지만(주로 Ruby라서 ㅋㅋ), `plunder2` (http://joshstone.us/plunder2/) 에서 멋진 아이디어들을 많이 훔쳤습니다.

Wordlists were also curated from those found in some other similar-ish tools like trufflehog, shhgit, gitrobber, and graudit.

워드리스트는 trufflehog, shhgit, gitrobber, graudit 같은 다른 유사한 도구들에서 찾은 것들도 선별했습니다.


## Is it OPSEC safe? (Whatever the hell that means)

## OPSEC에 안전한가요? (그게 무슨 뜻이든 간에)

Pffft, no. It's noisy as fuck.

푸흡, 아니요. 엄청 시끄럽습니다.

Look let's put it this way... If it's the kind of environment where you'd feel confident running BloodHound in its default mode, then uhhh, yeah man... It's real stealthy.

이렇게 말해볼게요... BloodHound를 기본 모드로 실행해도 자신 있는 환경이라면, 음, 그래요... 정말 은밀합니다.

## I thought you used this thing on red team gigs?

## 이거 레드팀 작업에서 사용했다고 생각했는데?

*sigh* 

*한숨*

OK, I'll give you the real answer.

좋아요, 진짜 답을 드리죠.

In default mode, Snaffler looks an awful lot like SharpHound, in a lot of ways. It talks a bunch of LDAP to AD, then it goes out and tries to talk SMB to every Windows machine in the domain. This kind of behaviour is pretty much guaranteed to get you busted in an org that has their shit even slightly together.

기본 모드에서 Snaffler는 여러모로 SharpHound와 매우 비슷해 보입니다. AD에 LDAP를 많이 던지고, 도메인의 모든 Windows 머신에 SMB로 연결을 시도합니다. 이런 행동은 조직이 조금이라도 제대로 관리되고 있다면 거의 확실히 들키게 됩니다.

HOWEVER...

하지만...

Snaffler's more-targeted options (especially `-i`) are a *lot* less likely to trigger detections. 

Snaffler의 더 표적 지향적인 옵션(특히 `-i`)은 탐지를 훨씬 덜 유발합니다.

I am particularly fond of running `Snaffler.exe -s -i C:\` on a freshly compromised server or workstation, and I've not seen this behaviour get detected. 

저는 갓 장악한 서버나 워크스테이션에서 `Snaffler.exe -s -i C:\`를 실행하는 것을 특히 좋아하며, 이 행동이 탐지되는 것을 아직 본 적이 없습니다.

Yet.

아직까지는요.

## How can I help or get help?

## 어떻게 도움을 주거나 받을 수 있나요?

If you want to discuss via Slack you can ping us (@l0ss or @Sh3r4) on the BloodHound Slack, joinable at https://bloodhoundgang.herokuapp.com/, or chat with a group of contributors in the #snaffler channel.

Slack을 통해 논의하고 싶다면 BloodHound Slack에서 저희(@l0ss 또는 @Sh3r4)를 핑하거나 https://bloodhoundgang.herokuapp.com/ 에서 가입할 수 있으며, #snaffler 채널에서 기여자 그룹과 채팅할 수 있습니다.

You can also ping us on Twitter - @mikeloss and @sh3r4_hax

Twitter에서도 핑할 수 있습니다 - @mikeloss 및 @sh3r4_hax

Otherwise file an issue; we'll try.

그렇지 않으면 이슈를 등록해 주세요; 저희가 노력하겠습니다.
도구 다운로드
Privileged Access Management System Design - As-Built.docx
passw
handover
secret
secure
as-built
  • 특정 확장자를 가진 모든 파일이나 경로에 특정 문자열이 포함된 파일을 건너뛰기 위한 건너뛰기 목록도 있습니다.