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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ThreatHunting-Keywords — 위협 헌팅 세션을 위한 키워드 및 아티팩트 모음 | Kitploit
도구/GitHubGitHub/mthcht/threathunting-keywords
Defensive ToolsDigital ForensicsThreat IntelligenceIncident ResponseCurated ResourcesLog Analysis
GitHubmthcht/threathunting-keywords

ThreatHunting-Keywords

위협 헌팅 세션을 위한 키워드 및 아티팩트 모음

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

ThreatHunting-Keywords

🎯 ThreatHunting 세션을 위한 키워드 목록

image

목차

  • Threat Hunting이란 무엇인가?
    • Threat Hunting의 장점
    • 핵심 서비스와 Threat Hunting 연결
    • 탐지 성숙도 수준
    • 정보 수집을 위한 주요 집중 영역
    • 표적형 Threat Hunting 프로세스
  • 파일
  • 블루팀을 위한 ThreatHunting-Keywords
  • 레드팀을 위한 ThreatHunting-Keywords
  • 룩업의 내용
  • SIEM으로 헌팅하기
    • 원시 로그
    • 특정 필드
    • 속도
    • 대시보드 예시
    • Splunk4DFIR
    • ELK는 다르다
    • 탐지를 위한 다른 멋진 목록들
  • SIEM 없이 헌팅
    • Windows에서 매우 큰 파일을 위한 더 나은 옵션
    • YARA 규칙
  • 웹사이트
  • 예상 오탐
  • SIGMA 규칙
  • 기여

Threat Hunting이란 무엇인가?

image

Threat hunting은 조직의 네트워크 또는 시스템 내에서 자동화된 보안 조치를 우회했을 수 있는 악성 활동을 탐지하기 위한 사전 예방적이고 반복적인 접근 방식입니다. 보안 알림에 의해 트리거되는 수동적 조사와 달리, threat hunting은 위협 인텔리전스(TI) 기반 점검과 체계적 및 기회주의적 분석에서 도출된 가설에 의해 추진됩니다. 이러한 가설 💡은 헌터가 알려지지 않은 위협, 잠재적 위협, 또는 보안 탐지를 회피했을 수 있는 알려진 위협뿐만 아니라 자동화된 시스템이 놓치거나 제외할 수 있는 취약점 또는 침해 지표(IoC)를 발견하는 데 도움을 줍니다. 이 프로세스는 또한 알림/대시보드의 선행 지표(precursor) 식별과 SOC/트리아지 워크플로 개선에 중점을 두면서 섀도우 자산 인벤토리 관리에 기여하고 추가 조사가 필요한 중/저신뢰도 이벤트를 에스컬레이션합니다. 주요 목표는 위협 행위자가 사용하는 전술, 기법, 절차(TTP)를 식별하여 조직이 잠재적 공격을 선제적으로 탐지하고 완화하는 능력을 향상시키는 것입니다.

Threat Hunting의 장점:

  • 🔍 가시성 공백 식별
    • 모니터링과 탐지가 부족한 영역을 감지하여 네트워크 또는 시스템의 사각지대를 해결하고 숨겨진 위협을 완화합니다.
  • 🛠️ 탐지 공백 메우기
    • 알림을 트리거하지 않을 수 있는 이상 징후, 선행 지표 및 TTP를 사전에 검색합니다.
  • ⚙️ SOC 효율성 향상
    • 정적 탐지가 놓칠 수 있는 이벤트를 발견하기 위해 threat hunting 인사이트를 SOC 워크플로에 통합합니다. 오탐을 줄이고 간과된 이벤트를 에스컬레이션함으로써 SOC 분석가가 중요 위협에 집중하고 향후 사용을 위한 탐지 로직을 개선할 수 있게 합니다.
  • 🚀 위협 탐지 강화 및 지속적 개선 지원
    • 자동화된 탐지 시스템을 우회하는 고급, 알려지지 않거나 숨겨진 위협을 식별하고 귀중한 데이터를 SOC 프로세스에 다시 공급하여 도구, 교육 및 향후 탐지 역량을 개선합니다.
  • 🛡️ 공격 표면 축소
    • 네트워크 내에서 관리되지 않거나 무단 시스템, 애플리케이션 및 섀도우 IT를 발견하여 조직이 보안 사각지대를 해결하고 잠재적 위협에 대한 노출을 줄일 수 있게 합니다.

핵심 서비스와 Threat Hunting 연결

image

SOC 운영에서의 Threat Hunting 수명주기

SOC 내에서 고품질 탐지 규칙을 유지하기 위해 부분적으로 자동화된 threat hunting 세션을 구성하는 프로세스 제안입니다.

SOC_Process_Threat_Hunting_to_detection

탐지 성숙도 수준

image SOC 팀은 탐지 성숙도 피라미드의 모든 수준에 걸쳐 최소한의 오탐으로 알려진 위협을 대상으로 하는 고신뢰도 탐지를 배포하는 데 중점을 둡니다. Threat hunting은 높은 오탐률이 발생하기 쉬운 알려지지 않은 위협, 고급 TTP 및 이상 징후를 처리하여 이러한 접근을 보완하고, 표준 SOC 역량을 넘어 탐지 범위의 공백을 메우고 확장합니다.

Threat Hunting 체크리스트 - 정보 수집을 위한 주요 집중 영역

image

표적형 Threat Hunting 방법론 예시

image

이상적으로 각 threat hunting 세션은 명확한 목표를 가져야 합니다. 이 순서도는 준비와 조사부터 실행 가능한 권장 사항까지 프로세스를 안내하는 체계적인 접근 방식을 제공합니다.


🎯 ThreatHunting 세션을 위한 키워드 목록

파일

  • ThreatHunting-Keywords
  • Greyware 도구 키워드
  • 공격 도구 키워드
  • 벤더 시그니처 키워드
  • 개별 도구(도구별 CSV 파일 1개)
  • 키워드만 전체
  • 키워드 정규식만 전체
  • 키워드 정규식만 전체(더 나은 성능)
  • 파일에서 헌팅하는 Powershell 스크립트
  • Yara 규칙
  • Sigma 규칙

블루팀을 위한:

ThreatHunting-Keywords 목록은 위협 행위자(또는 레드팀러 😆)가 로그에서 유명한 악용 도구의 기본 구성을 사용하는 것을 식별하는 데 도움이 되므로 SIEM에서 정적 분석을 수행하는 Threat Hunter, SOC 및 CERT 팀에게 유용할 수 있습니다. 이 목록은 지속적인 관련성 측면에서 IOC 피드와 다릅니다. 여기의 키워드에는 '만료 날짜'가 없으며 포함된 후 몇 년이 지나도 위협을 탐지할 수 있습니다. 또한 와일드카드와 대소문자를 구분하지 않는 매칭을 허용하는 유연성을 가지며 기본 키워드에만 집중합니다.

주로 Threat Hunting용으로 설계된 이 목록은 복잡한 시나리오에서 유용할 수 있습니다. 관리하지 않고 파싱되지 않은 데이터가 있는 SIEM에 접근할 수 있거나, 잘 관리되는 SIEM을 갖춘 SOC 팀의 일원인 경우, 여기에 제공된 예시는 아무것도 파싱할 필요 없이 악성 활동 탐지 프로세스를 신속하게 진행하는 데 도움이 될 수 있습니다. 로그가 이미 파싱된 경우 이 목록을 사용하여 데이터 내 필드를 매칭할 수 있으며, 선택한 키워드 유형 범주에 따라 오탐률이 충분히 낮다면 탐지 규칙으로 전환될 수 있습니다.

⚠️ 이 목록에는 모든 것이 추가될 수는 없습니다. 여기서는 복잡한 행동 탐지를 수행하지 않으며, 기본 구성을 탐지하는 것을 목표로 하는 필드 또는 원시 로그의 단순 키워드 탐지만 수행합니다.

⚠️ 목록의 많은 도구에는 전용 탐지 규칙, 임계값이 있는 이벤트 상관 관계 및 고유한 프로세스 관계가 있습니다... 여기서는 도구에 대한 모든 가능한 탐지를 다루지 않고 키워드 탐지만 다룹니다.

SOC(보안 운영 센터)의 일원으로서 필드 또는 이벤트 상관 관계 없이 단순 키워드 탐지에만 의존하는 수백 개의 탐지 규칙을 관리하고 있다면 접근 방식을 재고해 보십시오. 제 생각에는 이러한 규칙이 개별 탐지 규칙이 되어서는 안 됩니다. 대신 Splunk와 같은 플랫폼을 사용하지 않는 경우 구현이 더 어려울 수 있지만 이와 같은 통합 목록에 더 적합할 수 있습니다.

이 접근 방식은 단순 필드 키워드 탐지를 한곳에서 체계적으로 관리하면서 고품질의 목적 있는 규칙 생성을 장려합니다. 그 결과는 무엇일까요? 모든 것을 포괄하는 하나의 종합 탐지 규칙입니다. 이를 통해 프로세스를 간소화하고 탐지 역량을 최적화합니다.

Incident Responder의 경우 조사 중에 이 목록을 원시 로그나 파일에 사용하여 Yara 규칙, powershell 스크립트 또는 Splunk4DFIR로 로그를 신속하게 수집하여 알려진 악용 도구를 빠르게 식별할 수 있습니다.

레드팀을 위한:

단순 키워드 탐지에 의한 탐지를 회피하려면 작전 중 사용하는 도구와 연관될 수 있는 모든 사용자 정의 문자열, 클래스 또는 함수 이름, 변수 이름, 인수 이름, 실행 파일 이름, 기본 사용자 에이전트, 인증서 또는 기타 문자열을 다시 컴파일하고 이름을 바꾸는 것이 중요합니다. 정상 트래픽에 섞이도록 모든 것에 가장 일반적인 이름을 사용하십시오. 여기에 있는 스크립트는 이러한 항목 중 일부를 식별하는 데 도움이 될 수 있습니다.

그러나 공개 "레드팀 도구"를 개발하는 경우 고유한 이름을 사용하여 블루팀을 돕는 것을 고려하십시오. 이국적인 포트, 사용자 정의 인증서, 고유한 사용자 에이전트, 흔하지 않은 특정 함수 이름과 인수가 있는 기본 구성을 사용하십시오. 이는 단순 키워드 탐지에 사용할 수 있는 명확한 시그니처를 만드는 데 도움이 되므로 블루팀이 적어도 스크립트 키디를 쉽게 탐지할 수 있습니다.

Threat Hunting Keywords 파일의 내용:

  • 헤더: keyword,metadata_keyword_type,metadata_tool,metadata_description,metadata_tool_techniques,metadata_tool_tactics,metadata_malwares_name,metadata_groups_name,metadata_category,metadata_link,metadata_enable_endpoint_detection,metadata_enable_proxy_detection,metadata_tags,metadata_comment,metadata_severity_score,metadata_popularity_score,metadata_github_stars,metadata_github_forks,metadata_github_created_at,metadata_github_updated_at

  • keyword: 이 열의 항목은 Threat Hunting에 사용되는 대소문자를 구분하지 않는 키워드를 나타냅니다. 이러한 키워드는 유연하며 필요에 따라 검색 매개변수를 넓히거나 좁히기 위해 와일드카드 사용을 허용합니다.

  • metadata_keyword_regex: 이 열의 항목은 키워드에 대한 정규식 패턴 탐지를 나타냅니다. 이러한 패턴은 정밀한 탐지 기능을 제공하도록 정제되었으며 YARA, ripgrep 또는 유사한 탐지 도구와 함께 사용하기에 적합합니다.

  • metadata_keyword_type: 키워드의 유형입니다. 현재 세 가지 유형이 있습니다:

    • 🛠️ offensive tool keyword: 이 키워드는 공격 도구와 관련되거나 악의적인 의도의 높은 신뢰도를 나타냅니다. 이러한 용어는 잠재적 위협 탐지에서 관련성과 신뢰성을 유지하는 것이 중요합니다(낮은 오탐률).

Splunk에서 목록을 사용하여 헌팅하기:

  • Splunk에 threathunting-keywords.csv 목록을 업로드합니다.

  • lookup threathunting-keywords.csv에 대해 threathunting-keywords라는 이름의 lookup 정의를 생성합니다.

    • 고급 옵션에서 Match type WILDCARD(keyword)를 추가하고 Case sensitive match가 선택되지 않았는지 확인합니다.

    image

transforms.conf``` [threathunting-keywords] batch_index_query = 0 case_sensitive_match = 0 filename = threathunting-keywords.csv match_type = WILDCARD(keyword)

root@kitploit:~
- 이제 우리는 lookup 정의를 사용하여 사냥할 수 있습니다 🏹
- :warning: 다음 섹션 검색이 작동하지 않는 것 같으면 splunk 리소스 제한 설정 때문일 수 있습니다. 특히 기본 구성으로 splunk를 실행 중인 경우에 그렇습니다. 처음에는 `[lookup]` 스탠자의 `max_memtable_bytes` 값을 늘리는 것을 고려해야 할 수도 있습니다.

## `threathunting-keywords` 사용 예시:
![image](https://assets.kitploit.com/production/public/readmes/48741/204eb8e71d12257660c7166cb5f050747877e1968d7ff1f21812967d64355ca0.png)



### 원시 로그에서 모든 키워드 사냥하기 😱```
`myendpointslogs` 
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category	metadata_link	metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype 
| convert ctime(*time)

작업을 백그라운드로 보내고 작업 ID를 유지하세요.

image

  • myendpointslogs는 모든 엔드포인트 로그를 검색하는 매크로입니다. Windows 로그, EDR 텔레메트리, sysmon, auditd, 배스천 세션, PowerShell 실행 로그 또는 프로세스 활동이나 파일 활동을 모니터링하는 기타 모든 로그가 될 수 있습니다. (매크로를 사용하지 않으면 매크로를 인덱스, 태그 또는 데이터 모델로 대체할 수 있습니다)
    • 초기 탐색은 데이터 모델, tstats, 태그, 인덱스/소스타입 등 자신의 필요에 맞는 어떤 방법으로든 수행할 수 있음을 보여주기 위해 예제에 의도적으로 매크로를 포함했습니다. tstats와 데이터 모델을 결합하는 것이 종종 가장 빠른 경로이지만, 필요한 경우 |lookup 전에 TERM() 명령으로 특정 검색을 필터링하세요.
  • | lookup 이것은 매우 중요합니다. 이와 같은 대규모 lookup의 경우 항상 |inputlookup 대신 |lookup을 사용하세요. |lookup은 번들이 복제될 때 인덱서에 푸시된 lookup을 사용하지만, |inputlookup은 매번 모든 lookup 내용이 포함된 검색을 인덱서로 보냅니다. |lookup을 사용하면 여기서 엄청난 성능 향상을 얻을 수 있습니다(이 검색은 대규모 환경에서 몇 시간 동안 실행되므로 검색을 최적화하는 것이 좋습니다.
  • ... keyword as _raw OUTPUT keyword as keyword_detection 이것은 lookup에서 _raw라는 필드와 keyword 필드를 매칭하는 부분입니다. Splunk에서 는 파싱되지 않은 원시 로그입니다(우리의 사용 사례). 키워드가 일치하면 필드는 여기() 필드와 일치한 lookup의 키워드를 표시합니다.

결과 필터링``` | loadjob 1684146257.1495958 | search NOT (keyword_detection IN ("fixme","fixme","fixme")) NOT (metadata_keyword_type IN ("fixme","fixme")) NOT (raw IN ("fixme","fixme","fixme"))

root@kitploit:~
필수 키워드, 원시 텍스트 또는 키워드 유형을 제외합니다.
만약 `greyware tool keyword` 유형(공격자에 의해 악용되는 합법적인 도구 키워드)을 제외하기로 결정한다면, 이 환경에는 이러한 종류의 도구에 대한 결과가 너무 많기 때문에 두 가지 옵션이 있습니다:

- 초기 검색 시작 시 필터링합니다.```
`myendpointslogs` 
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category	metadata_link	metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" metadata_keyword_type="offensive tool keyword" metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype 
| convert ctime(*time)

I added a metadata_keyword_type="offensive tool keyword" to only focus on offensive tools that i am sure are used by malicious actors

  • Or filter after our initial search (to gain a lot of time):``` | loadjob 1684146257.1495958 | search metadata_keyword_type="offensive tool keyword"
root@kitploit:~
그래서 그것이 엔드포인트 로그에서 원시 로그를 검색하는 우리의 사용 사례였습니다. 네트워크 로그(쿼리나 url을 기록할 수 있는 모든 것)에서 키워드를 검색하려면 다음과 같이 변경하기만 하면 됩니다:```
`mynetworklogs` 
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category	metadata_link	metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype 
| convert ctime(*time)

이제 첫 번째 검색과 동일하지만 데이터소스를 mynetworklogs로 변경했고, networklogs의 관련 키워드와 매칭하기 위해 metadata_enable_proxy_detection=1을 추가했습니다 (이 경우 프록시 및 DNS 로그가 있으면 더 좋습니다)


다른 필드에서 키워드 헌팅하기 🙂 (url,process,commandline,query...):

url 필드에서만 매칭:```

mynetworklogs url=* | lookup threathunting-keywords keyword as url OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment | search metadata_description!="" AND metadata_enable_proxy_detection=1 | stats count earliest(_time) as firsttime latest(_time) as lasttime values(url) as url by src_ip metadata_keyword_type keyword_detection index sourcetype | convert ctime(*time)

root@kitploit:~
#### 쿼리 필드에서만 일치:```
`mynetworklogs` query=*
| lookup threathunting-keywords keyword as query OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category	metadata_link	metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(query) as query by src_ip metadata_keyword_type keyword_detection index sourcetype 
| convert ctime(*time)

여러 필드를 동시에 매칭, 엔드포인트 로그 예시:```

myendpointslogs | eval myfields=mvappend(service, process, process_command, parent_process, parent_process_command, grand_parent_process, grand_parent_process_command, file_path, file_name) | lookup threathunting-keywords keyword as myfields OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment | search metadata_description!="" AND metadata_enable_endpoint_detection=1 | stats count earliest(_time) as firsttime latest(_time) as lasttime values(process) values(service) values(process_command) values(file_name) values(file_path) values(parent_process) values(parent_process_command) values(grand_parent_process) values(grand_parent_process_command) by metadata_keyword_type keyword_detection index sourcetype | convert ctime(*time)

root@kitploit:~
#### 속도:

속도가 우려되거나 이를 예약된 탐지 규칙으로 구현하려는 경우, 사용하려는 `metadata_keyword_type` 또는 `metadata_tool` 열을 선택하여 lookup을 서로 다른 여러 개의 lookup으로 분할하는 것을 고려할 수 있습니다.

`|lookup` 이후 search 명령을 사용한 필터링은 검색 프로세스를 빠르게 만들지 않습니다. lookup을 나누지 않고 특정 부분에 집중하려면 `|inputlookup` 명령과 where 절을 함께 사용해야 합니다. 이 방법은 더 많은 CPU 리소스를 소비할 수 있지만 일반적으로 더 빠르게 실행됩니다. 자세한 내용은 inputlookup에 대한 Splunk 문서를 참조하세요: https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Inputlookup

#### ELK 사용 시:

Elastic Stack을 사용하는 경우 리스트에 많은 제한이 있습니다(특수 문자, 공백 등을 사용할 수 없습니다). 선택할 수 있는 옵션은 3가지입니다:
- 같은 리포지토리에서 제공되는 다른 리스트를 사용합니다: https://github.com/mthcht/ThreatHunting-Keywords/tree/main/elk (threathunting-keywords.csv의 직접 추출본이 아니라 ELK용으로 수정되었으며 업데이트되지 않습니다)
- 이 프로젝트에서 직접 추출한 Sigma "hunting" 규칙을 사용합니다(변환에는 pysigma 사용): https://github.com/mthcht/ThreatHunting-Keywords-sigma-rules
- 와일드카드 쿼리와 함께 제 리스트 중 일부를 IOC 리스트로 사용합니다: https://www.elastic.co/guide/en/elasticsearch/reference/8.15/query-dsl-wildcard-query.html#wildcard-top-level-params
 
### 대시보드 예시
![image](https://assets.kitploit.com/production/public/readmes/48741/df177e7f2584b823c311a2b223eed8b237d8a72c05d0afb9d6b6f350e42ccda0.png)

### Splunk4DFIR
프로젝트 csv 파일을 Splunk와 함께 사용하여 DFIR 아티팩트 및 로그를 헌팅하는 또 다른 예: https://github.com/mf1d3l/Splunk4DFIR
![image](https://assets.kitploit.com/production/public/readmes/48741/73d54c5b146c34685ebac4ed7ed2a9da11a3f90e6ae9ac0a4b17118d7895cbe3.png)

### 탐지를 위한 기타 유용한 리스트
관련 아티팩트 일부를 별도의 리스트로 유지하고 있습니다. 이 리스트들은 더 정밀하며 탐지 규칙에 사용할 수 있습니다. 이 [github repo](https://github.com/mthcht/awesome-lists/tree/main/Lists)에서 확인할 수 있습니다.
다음을 찾을 수 있습니다:

Threat Hunting 세션 계획을 위한 정보 수집 시트

![intelligence gathering sheet](https://assets.kitploit.com/production/public/readmes/48741/498b188eaebabe5a7077300eeff16daee903ed30d0b1797b82c208a54ba1424d.png)


- 📋 리스트: https://github.com/mthcht/awesome-lists/tree/main/Lists
- 🕵️‍♂️ Threat Hunting 가이드: https://mthcht.medium.com/list/threat-hunting-708624e9266f
- 🚰 의심스러운 명명된 파이프: [suspicious_named_pipe_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_named_pipe_list.csv)
- 🌐 의심스러운 TLD(자동 업데이트): [[suspicious_TLDs]](https://github.com/mthcht/awesome-lists/tree/main/Lists/TLDs)
- 🌐 의심스러운 ASN(자동 업데이트): [[suspicious ASNs]](https://github.com/mthcht/awesome-lists/tree/main/Lists/ASNs)
- 🔧 의심스러운 Windows 서비스: [suspicious_windows_services_names_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_services_names_list.csv)
- ⏲️ 의심스러운 Windows 작업: [suspicious_windows_tasks_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_tasks_list.csv)
- 🚪 의심스러운 대상 포트: [suspicious_ports_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_ports_list.csv)
- 🛡️ 의심스러운 방화벽 규칙: [suspicious_windows_firewall_rules_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_firewall_rules_list.csv)
- 🆔 의심스러운 사용자 에이전트: [suspicious_http_user_agents_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_http_user_agents_list.csv)
- 📇 의심스러운 USB ID: [suspicious_usb_ids_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_usb_ids_list.csv)
- 🔢 의심스러운 MAC 주소: [suspicious_mac_address_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_mac_address_list.csv)
- 📛 의심스러운 호스트 이름: [suspicious_hostnames_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_hostnames_list.csv)
- 🧮 메타데이터 실행 파일: [executables_metadata_informations_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Windows%20Metadata/executables_metadata_informations_list.csv)
- 🕸️ DNS over HTTPS 서버 리스트: [dns_over_https_servers_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/dns_over_https_servers_list.csv)
- 📚 Hijacklibs(자동 업데이트): [hijacklibs_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Hijacklibs/hijacklibs_list.csv)
- 🌐 TOR 노드 리스트(자동 업데이트): https://github.com/mthcht/awesome-lists/tree/main/Lists/TOR
- 🛠️ LOLDriver 리스트(자동 업데이트): [loldrivers_only_hashes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Drivers/loldrivers_only_hashes_list.csv)
- 🛠️ 악성 부트로더 리스트(자동 업데이트): [malicious_bootloaders_only_hashes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Drivers/malicious_bootloaders_only_hashes_list.csv)
- 📜 악성 SSL 인증서 리스트(자동 업데이트): [ssl_certificates_malicious_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/SSL%20CERTS/ssl_certificates_malicious_list.csv)
- 🖥️ RMM 탐지: https://github.com/mthcht/awesome-lists/tree/main/Lists/RMM
- 👤🔑 AD/EntraID/AWS에 중요한 역할 및 그룹: [[permissions]](https://github.com/mthcht/awesome-lists/tree/main/Lists/permissions)
- 💻🔒 랜섬웨어 알려진 파일 확장자: [ransomware_extensions_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/ransomware_extensions_list.csv)
- 💻🔒 랜섬웨어 알려진 파일명 랜섬 노트: [ransomware_notes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/ransomware_notes_list.csv)
- 📝 Windows ASR 규칙: [windows_asr_rules.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/windows_asr_rules.csv)
- 🌐 DNSTWIST 리스트(자동 업데이트): [DNSTWIST Default Domains + script](https://github.com/mthcht/awesome-lists/tree/main/Lists/DNSTWIST)
- 🌍 VPN IP 주소 리스트(자동 업데이트): 
  - 🛡️ NordVPN: [nordvpn_ips_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/VPN/NordVPN/nordvpn_ips_list.csv)
  - 🛡️ ProtonVPN: [protonvpn_ip_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/VPN/ProtonVPN/protonvpn_ip_list.csv)
- 🏢 회사 IP 범위 리스트(자동 업데이트): [Default Lists + script](https://github.com/mthcht/awesome-lists/tree/main/Lists/Ranges_IP_Address_Company_List/bgp.he.net)
- 🔗 기타 상관관계 리스트: https://github.com/mthcht/awesome-lists/tree/main/Lists/Others
- 📋 완성해야 할 리스트: https://github.com/mthcht/awesome-lists/tree/main/todo


리스트 중 일부를 사용하려면 다음 [가이드](https://github.com/mthcht/awesome-lists/tree/main/Lists#how-to-use-the-lists)를 확인하세요: 
  - [Windows 서비스 검색](https://detect.fyi/threat-hunting-suspicious-windows-service-names-2f0dceea204c)
  - [사용자 에이전트 검색](https://mthcht.medium.com/threat-hunting-suspicious-user-agents-3dd764470bd0)
  - [DNS Over HTTPS 검색](https://mthcht.medium.com/detecting-dns-over-https-30fddb55ac78)
  - [의심스러운 TLD 검색](https://mthcht.medium.com/threat-hunting-suspicious-tlds-a742c2adbf58)
  - [HijackLibs 검색](https://mthcht.medium.com/detect-dll-hijacking-techniques-from-hijacklibs-with-splunk-c760d2e0656f)
  - [피싱 및 DNSTWIST 검색](https://detect.fyi/detecting-phishing-attempts-with-dnstwist-37c426b3bbb8)
  - [브라우저 확장 프로그램 검색](https://mthcht.medium.com/detecting-browser-extensions-installations-e0ac2b45c46b)
  - [눈에 띄는 곳에 숨어 있는 C2](https://mthcht.medium.com/c2-hiding-in-plain-sight-7a83963b9344)
  - [HTML 스머글링 아티팩트](https://mthcht.medium.com/detecting-html-smuggling-phishing-attempts-15af824e60e4)
  - [PSEXEC 및 유사 도구 검색](https://mthcht.medium.com/detecting-psexec-and-similar-tools-c812bf3dca6c)
  - [Time Slipping 탐지](https://mthcht.medium.com/event-log-manipulations-1-time-slipping-55bf95631c40)
  - [의심스러운 명명된 파이프](https://medium.com/detect-fyi/threat-hunting-suspicious-named-pipes-a4206e8a4bc8)
 
... 더 많은 내용은 [여기](https://github.com/mthcht/awesome-lists/tree/main/Lists#how-to-use-the-lists) 

## DFIR 파일 내 키워드 헌팅 (SIEM 없음)
여러 도구를 철저히 검토한 결과, [ripgrep](https://github.com/BurntSushi/ripgrep)이 대용량 로그 파일이나 여러 파일의 각 줄에 대해 방대한 정규식 패턴 목록을 신속하게 매칭하는 데 있어 경쟁 도구들을 크게 능가한다는 것을 발견했습니다. 이는 막대한 양의 데이터를 처리하는 데 가장 효율적인 솔루션으로 입증되었으며, 비교할 수 없는 속도와 유연성을 제공합니다.

### **Ripgrep** 및 'only_keywords_regex.txt' 리스트로 로그 파일에서 악성 흔적 헌팅
#### `rg.exe -f .\only_keywords_regex.txt .\EvtxECmd_Output.csv --multiline --ignore-case`
- .\only_keywords_regex.txt은 위협 헌팅 키워드의 원본 파일 역할을 하며, 정확한 매칭을 위해 정규식 패턴으로 변환됩니다. 이러한 패턴은 threahunting-keywords.csv 파일에서 비롯되었으며, 정규식 연산과의 최적 호환성을 위해 변환 과정을 거쳤습니다.
- .\EvtxECmd_Output.csv은 검색이 수행될 대상 파일을 나타냅니다. 여기서는 evtx 로그를 내보내 생성된 Windows 이벤트 로그의 .csv 형식입니다. 그러나 ripgrep의 유연성 덕분에 상세 패턴 검색 작업을 위해 원하는 파일로 자유롭게 교체할 수 있습니다.
- --multiline 옵션을 사용하면 ripgrep이 여러 줄에 걸쳐 있는 패턴을 효과적으로 처리하고 매칭할 수 있어 검색 범위가 크게 확장됩니다.
그러면 줄 번호와 함께 일치하는 줄이 다음과 같이 표시됩니다(일치하는 키워드는 표시되지 않음).

![image](https://assets.kitploit.com/production/public/readmes/48741/d205ae3caf99906a03818c202e8811b669948e2f68b88cc137cba8cf0e43b69f.png)

![image](https://assets.kitploit.com/production/public/readmes/48741/e1b213fc63e1ec2914e0f1eb3263d17aa960eb50672fd18986a0f75d50e9c379.png)

#### 매우 큰 파일에 더 나은 옵션(Windows):
[DFIR_hunt_in_file.ps1](https://github.com/mthcht/ThreatHunting-Keywords/blob/main/DFIR_hunt_in_file.ps1)

`powershell -ep Bypass -File .\DFIR_hunt_in_file.ps1 -patternFile "only_keywords_regex.txt" -targetFile "C:\Users\mthcht\collection\20230406154410_EvtxECmd_Output.csv" -rgPath "C:\Users\mthcht\Downloads\ripgrep-13.0.0-x86_64-pc-windows-msvc\ripgrep-13.0.0-x86_64-pc-windows-msvc\rg.exe"`
- `-targetFile`: 검색할 파일을 지정합니다(예시에서는 DFIR-ORC 추출 로그).
- `-patternFile`: 정규식 패턴이 포함된 파일 `only_keywords_regex.txt`
- `-rgPath`: ripgrep 실행 파일의 경로

powershell 스크립트 내용(리포지토리에 포함됨):```powershell
param (
    [Parameter(Mandatory=$true)]
    [string]$patternFile,
    [Parameter(Mandatory=$true)]
    [string]$targetFile,
    [Parameter(Mandatory=$true)]
    [string]$rgPath
)

Start-Transcript -Path "$PSScriptRoot\result_search.log" -Append -Force -Verbose

$totalLines = (Get-Content $patternFile | Measure-Object -Line).Lines
$currentLine = 0
Get-Content $patternFile | ForEach-Object {
    $currentLine++
    Write-Host "Searching for pattern $currentLine of $totalLines : $_"  
    & $rgPath --multiline --ignore-case $_ $targetFile | Write-Output 
}

Stop-Transcript -Verbose

검색 결과는 스크립트와 동일한 디렉터리의 result_search.log에 저장됩니다.

image

매우 큰 파일을 위한 더 나은 옵션 (Linux에서):

todo

powershell과 'only_keywords.txt' 목록만 사용하여 파일에서 악성 요소를 사냥 (더 느림 권장되지 않음)

powershell에서는 훨씬 느리지만, 그래도 이 방법을 사용하려면 아래 스크립트를 사용할 수 있습니다. 일치하는 줄 번호와 해당 키워드를 알려줍니다:

powershell.exe -ep Bypass -File .\hunt_keywords_windows.ps1 -k .\only_keywords.txt -f .\EvtxECmd_Output.csv

```powershell param( [Parameter(Mandatory=$true)] [string]$file,
root@kitploit:~
[Parameter(Mandatory=$true)]
[string]$kw

)

$Keywords = Get-Content $kw $result = @()

foreach ($Keyword in $Keywords) { $SearchTerm = $Keyword.Replace("", ".") $SearchTerm = [Regex]::Escape($SearchTerm).Replace(".*", ".*")

root@kitploit:~
$reader = New-Object System.IO.StreamReader($file)
$lineNumber = 0
while (($line = $reader.ReadLine()) -ne $null) {
    $lineNumber++
    if ($line -match $SearchTerm) {
        $result += New-Object PSObject -Property @{
            'Keyword' = $Keyword
            'LineNumber' = $lineNumber
            'Line' = $line
        }
    }
}
$reader.Close()

}

$result | Out-GridView Read-Host -Prompt "Press Enter to exit"

root@kitploit:~
</details>

### YARA 규칙
![image](https://assets.kitploit.com/production/public/readmes/48741/e1355c1b331e4e617189507532d5fc1045ae7eb085259c2e6a3c51338b88fcf2.png)

이 프로젝트의 모든 탐지 패턴은 [ThreatHunting-Keywords-yara-rules](https://github.com/mthcht/ThreatHunting-Keywords-yara-rules)의 yara 규칙으로 자동 내보내집니다.

yara 규칙을 사용한 헌팅 예시:
![2023-10-20 20_23_59-(1) mthcht on X_ _The #ThreatHunting Keywords project is slowly progressing, alm](https://assets.kitploit.com/production/public/readmes/48741/be09b835bf23d364e39cd4538a510d9f6f8d249396b3e8440cb1ce6e5f63ce82.png)
 
![2023-10-20 20_14_17-C__Users_Public_Pictures](https://assets.kitploit.com/production/public/readmes/48741/ad815de74d8983987eb38e1a7e63f1540216ff50163da319e82e0219c01dbd5a.png)

![2023-10-21 11_14_15-Editing ThreatHunting-Keywords-yara-rules_README md at main · mthcht_ThreatHunti](https://assets.kitploit.com/production/public/readmes/48741/6fa65b15d788cfe2790498294078225e7f4c004c193b69ed56acfca51ba6829c.png)
![2023-10-21 11_12_44-](https://assets.kitploit.com/production/public/readmes/48741/8b235e92d44bf445d7f47edd27b161a0d6cfbd58e5158386993541d53da31942.png)

## 키워드 검색을 위한 빠른 데이터 테이블 
https://mthcht.github.io/ThreatHunting-Keywords/
![image](https://assets.kitploit.com/production/public/readmes/48741/477608f39dee047778948ef170316f7d59e2fb0e2437b53e39e7de6900ecb900.png)

## 오탐

예상 오탐 [목록](https://github.com/mthcht/ThreatHunting-Keywords/blob/main/_false_positives/false_positives_offensive_keywords.md)에 여러분의 오탐을 기여하고 추가하세요.

## SIGMA 규칙

[SIGMA 규칙](https://github.com/mthcht/ThreatHunting-Keywords-sigma-rules)으로 변환된 룩업을 확인하세요. 보통 동시에 업데이트합니다 :) 

![image](https://assets.kitploit.com/production/public/readmes/48741/298b4f42a0702b8a14376577a5fc2c670aa7a8246f9ee41cad9b39d573df0432.png)

## MITRE ATT&CK 기법 매핑

splunk 애드온 사용 시 https://splunkbase.splunk.com/app/5742
![image](https://assets.kitploit.com/production/public/readmes/48741/6605c5297f2d2536e18f593e2a3f5ec02ed5e66adbe4970247a3eccba0cbe31d.png)

2242개 도구에 대한 적용 범위(2024/08/30 업데이트 기준):
![image](https://assets.kitploit.com/production/public/readmes/48741/eafcd79072b45d2a583d286d9d03084c01dba1de233c7b77f208f6c379081d84.png)


splunk 검색:

<details>```
| inputlookup threathunting-keywords.csv
| stats count by metadata_tool metadata_tool_techniques
| makemv delim=" - " metadata_tool_techniques
| mvexpand metadata_tool_techniques
| stats count by metadata_tool_techniques

도구 매트릭스

Splunk 대시보드 (이것은 단지 하나의 예시일 뿐이며, 파일에서 사용 가능한 필드를 사용하여 다양한 필터를 적용할 수 있습니다):

이 프로젝트의 도구별 위협 행위자 그룹

splunk xml 대시보드 예시:

``` tools matrix tools_matrix tool categories metadata_category metadata_category | inputlookup threathunting-keywords.csv | stats count by metadata_category | fields - count -24h@h now all metadata_category IN ( ) * " " , groups name ALL metadata_groups_name IN ( ) * " " , metadata_groups_name metadata_groups_name | inputlookup threathunting-keywords.csv | stats count by metadata_groups_name | fields - count | eval metadata_groups_name = split(metadata_groups_name, " - ") | mvexpand metadata_groups_name | dedup metadata_groups_name -24h@h now | inputlookup threathunting-keywords.csv | search metadata_groups_name!=N/A $category$ | stats count as detection_patterns by metadata_groups_name metadata_tool | eval metadata_groups_name = split(metadata_groups_name, " - ") | mvexpand metadata_groups_name | search $groups$ -24h@h now none 728 progressbar categorical #3fc77a #d93f3c 6 false true true false true false true ```

image

image

image

🤝 Contributing

기여, 이슈, 기능 요청은 언제나 환영합니다!

목록에 도구를 추가하려면 이 템플릿으로 이슈를 생성하세요:


도구 이름:

``

도구의 이름을 제공해 주세요.

공식 웹사이트 또는 소스 코드 링크:

``

도구의 공식 웹사이트 또는 소스 코드 저장소(GitHub, GitLab 등) 링크를 제공해 주세요. 문서가 있다면 함께 포함해 주세요.

도구 설명:

``

도구의 목적, 기능, 주목할 만한 특징을 설명해 주세요. 확실하지 않다면 비워 두세요. 제가 도구를 더 자세히 검토하겠습니다.

악성 행위자에 의한 알려진 사용 사례(해당되는 경우):

``

악성 행위자가 이 도구를 알려진 방식으로 또는 잠재적으로 악용한 정보가 있다면 여기에 공유해 주세요.

도구 분류:

도구에 가장 적합한 분류를 선택해 주세요:

  • 공격적(주로 공격자가 사용하며 일반적인 사용에는 합법적이지 않음)
  • 그레이웨어(악성 행위자에게 자주 악용되는 합법적인 도구)
  • 일반 시그니처/키워드(보안 제품이 탐지하는 악성코드와 연관된 일반적인 시그니처 또는 용어)

PR로 목록 변경을 제안하세요(가능하면 오탐 피드백, 로그 샘플 제공), 키워드가 너무 많은 환경에서 너무 많은 오탐을 생성하면 해당 키워드를 삭제할 수 있습니다)

도구를 목록에 추가할 가치가 있는지 제가 결정하겠습니다. 커뮤니티에서 널리 사용되고 인정받는 도구는 잘 알려지지 않았거나 새로운 도구보다 포함될 가능성이 더 높습니다.

도구 다운로드
  • 🛠️ greyware tool keyword: 이 범주의 키워드는 악성 행위자에 의해 악용되는 '합법적인' 도구에 해당합니다. 이러한 도구는 합법적인 용도도 있으므로 오탐 가능성이 본질적으로 더 높습니다. 모든 탐지가 악성 활동을 의미하는 것은 아니라는 점을 이해하고 이러한 결과를 해석하는 것이 중요합니다.
  • 🛠️ signature keyword: 이 키워드는 도구와 직접적으로 연관되지 않을 수 있지만 보안 제품 시그니처 이름, 특정 문자열 또는 위협 탐지에 중요한 단어를 포함할 수 있습니다.
  • metadata_tool: 탐지하려는 도구의 이름

  • metadata_description: 탐지하려는 도구의 설명

  • metadata_tool_techniques: 탐지하려는 도구와 관련된 MITRE 기법

  • metadata_tool_tactics: 탐지하려는 도구와 관련된 MITRE 전술

  • metadata_malwares_name: 해당 도구를 사용하는 악성코드 변종의 이름

  • metadata_groups_name: 해당 도구와 연관된 위협 행위자 그룹의 이름

  • metadata_category: 도구의 전반적인 범주 이름입니다. 이는 나중에 변경될 수 있으며 제안을 환영합니다.

  • metadata_link: 도구에 대한 링크(소스 코드, 기사, 샘플, 블로그 등)

  • metadata_enable_endpoint_detection: 엔드포인트 로그 검색에 키워드를 효과적으로 사용할 수 있는지 여부를 나타내는 필드입니다. 여기에는 Windows 이벤트 로그, EDR, PowerShell 로그, auditd, 배스천 세션, Sysmon 또는 프로세스 및 파일 활동 필드를 포함한 모든 데이터 소스가 포함되지만 이에 국한되지 않습니다.

    • 엔드포인트 로그에서 키워드를 검색할 수 있으면 값은 1(활성화)입니다.
    • 키워드가 엔드포인트 로그와 관련이 없으면 값은 0(비활성화)입니다.
  • metadata_enable_proxy_detection: 네트워크 로그(프록시, DNS 로그 또는 내부 네트워크에서 시작된 쿼리와 URL이 포함된 모든 데이터) 내 검색에 키워드의 적용 가능성을 나타내는 필드입니다.

    • 네트워크 활동 로그에서 키워드를 검색할 수 있으면 값은 1(활성화)입니다.
    • 키워드가 네트워크 활동 로그와 관련이 없으면 값은 0(비활성화)입니다.
  • metadata_popularity_score: 1에서 10까지의 점수(낮음에서 높음 인기도)

  • metadata_severity_score: 1에서 10까지의 점수(낮음에서 높음 심각도)

  • metadata_tags: 특정 아티팩트를 식별하기 위한 태그입니다. 키워드에 여러 태그를 연결할 수 있으며, 특정 아티팩트 중 일부가 더 많은 탐지 컨텍스트 없이 목록에 추가될 수 없는 경우 탐지를 위한 다른 멋진 목록들에 추가됩니다.

  • metadata_comment: 이 필드에는 키워드에 대해 추가된 유용한 주석이 포함될 수 있습니다.

  • metadata_github_stars: GitHub 프로젝트의 스타 수입니다(도구가 GitHub에 있는 경우, 다른 곳에 있으면 값은 N/A). 이는 인기도 점수를 계산하는 데 사용됩니다.

  • metadata_github_forks: GitHub 프로젝트의 포크 수입니다(도구가 GitHub에 있는 경우, 다른 곳에 있으면 값은 N/A). 가장 많이 사용되는 도구의 대시보드 통계에 사용할 수 있습니다.

  • metadata_github_created_at: GitHub 프로젝트의 생성 날짜입니다(도구가 GitHub에 있는 경우, 다른 곳에 있으면 값은 N/A). 대시보드 통계에 사용할 수 있습니다.

  • metadata_github_updated_at: GitHub 프로젝트의 마지막 업데이트 날짜입니다(도구가 GitHub에 있는 경우, 다른 곳에 있으면 값은 N/A). 중요한 공격 도구 업데이트를 추적하고 키워드 탐지를 조정하는 데 사용할 수 있습니다.

  • _raw
    keyword_detection
    _raw
  • | search metadata_description!="" AND metadata_enable_endpoint_detection=1 여기서는 엔드포인트 로그에만 집중하므로 metadata_enable_endpoint_detection=1을 추가하여 엔드포인트 로그와 관련된 키워드만 일치시키고 metadata_description!=""를 사용하여 일치한 키워드만 남깁니다.
  • | stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype 여기서는 예제를 위해 lookup의 모든 필드 없이 빠른 필터를 만들었습니다(더 많은 제외 가능성을 원하면 필드를 추가할 수도 있습니다). 이를 통해 어떤 키워드가 많이 일치하는지 쉽게 파악할 수 있으므로 특정 키워드에 대해 오탐이 너무 많으면 해당 범주나 도구를 쉽게 제외할 수 있습니다!
  • 검색이 완료된 후 결과를 분석하려면 어떻게 해야 하나요? 키워드와 키워드 유형별로 정렬된 원시 로그를 갖게 됩니다. |loadjob myjobid를 사용하면 모든 로그를 다시 검색하지 않고도 관련 로그로 출력을 조작할 수 있습니다.
  • 그리고 이 splunk 시각화를 사용하세요: https://splunkbase.splunk.com/app/5742

    image image