
Malwoverview는 VirusTotal, Hybrid Analysis, URLHaus, Polyswarm, Malshare, Alien Vault, Malpedia, Malware Bazaar, ThreatFox, Triage, IPInfo, Shodan, AbuseIPDB, GreyNoise, URLScan.io, Whois/RDAP, NIST 및 VulnCheck 전반에 걸친 위협 헌팅을 위한 최초 대응 도구입니다. LLM 강화, IOC 추출, YARA 스캔 및 Android 분석을 지원합니다.
# Malwoverview
[<img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/alexandreborges/malwoverview?color=red&style=for-the-badge">](https://github.com/alexandreborges/malwoverview/releases/tag/v8.2.0) [<img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/alexandreborges/malwoverview?color=Yellow&style=for-the-badge">](https://github.com/alexandreborges/malwoverview/releases) [<img alt="GitHub Release Date" src="https://img.shields.io/github/release-date/alexandreborges/malwoverview?label=Release%20Date&style=for-the-badge">](https://github.com/alexandreborges/malwoverview/releases) [<img alt="GitHub" src="https://img.shields.io/github/license/alexandreborges/malwoverview?style=for-the-badge">](https://github.com/alexandreborges/malwoverview/blob/master/LICENSE)
[<img alt="GitHub stars" src="https://img.shields.io/github/stars/alexandreborges/malwoverview?logoColor=Red&style=for-the-badge">](https://github.com/alexandreborges/malwoverview/stargazers)
[<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/ale_sp_brazil?style=for-the-badge&logo=X&color=blueviolet">](https://twitter.com/ale_sp_brazil)
[](https://pepy.tech/project/malwoverview)
[<img alt="Downloads/Total" src="https://static.pepy.tech/personalized-badge/malwoverview?period=total&units=international_system&left_color=grey&right_color=red&left_text=Total%20Downloads">](https://pepy.tech/project/malwoverview)
[](https://github.com/alexandreborges/malwoverview/actions/workflows/github-code-scanning/codeql)
























Copyright (C) 2018-2026 Alexandre Borges (https://exploitreversing.com)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See GNU Public License on <http://www.gnu.org/licenses/>.
## 현재 버전: 8.2.0 (코드명: Revolutions)
중요 사항: Malwoverview는 기본적으로 어떠한 엔드포인트에도 샘플을 제출하지 않으므로,
가능한 비밀유지계약(NDA)을 준수합니다. 샘플을 명시적으로 제출하는 특정 옵션들이
있지만, 이러한 옵션들은 도움말에 설명되어 있습니다.
## 소개
Malwoverview.py는 위협 헌팅을 위한 최초 대응 도구로, 악성코드 샘플, URL, IP 주소, 도메인, 악성코드 패밀리, IOC 및 해시에 대한 초기이자 신속한 트리아지를 수행합니다. 또한 Malwoverview는 동적 및 정적 행위 보고서를 가져오고, 여러 엔드포인트에서 샘플을 제출하고 다운로드할 수 있습니다. 간단히 말해, 주요 기존 샌드박스들의 클라이언트 역할을 합니다.
이 도구의 목표는 다음과 같습니다:
01. 임포트 테이블(imphash)에 따라 유사한 실행 파일 악성코드 샘플(PE/PE+)을 판별하고
서로 다른 색상으로 그룹화합니다(출력의 두 번째 열에 주목하십시오). 따라서 색상이 중요합니다!
02. Virus Total, Hybrid Analysis, Malshare, Polyswarm, URLhaus, Alien Vault,
Malpedia 및 ThreatCrowd 엔진에서 해시 정보를 표시합니다.
03. 악성코드 샘플에 오버레이가 포함되어 있는지 판별하고, 원한다면 이를 추출합니다.
04. Virus Total, Hybrid Analysis 및 Polyswarm에서 의심스러운 파일을 검사합니다.
05. Virus Total, Malshare, Polyswarm, URLhaus 엔진 및 Alien Vault에서 URL을 검사합니다.
06. Hybrid Analysis, Malshare, URLHaus, Polyswarm 및 Malpedia 엔진에서 악성코드 샘플을 다운로드합니다.
07. VirusTotal, Hybrid Analysis 및 Polyswarm에 악성코드 샘플을 제출합니다.
08. URLHaus에서 최근 의심스러운 URL을 나열합니다.
09. URLHaus에서 최근 페이로드를 나열합니다.
10. Malshare에서 특정 페이로드를 검색합니다.
11. Polyswarm 엔진에서 유사한 페이로드(PE32/PE32+)를 검색합니다.
12. Virus Total 및 Hybrid Analysis에서 정보를 검색하여 디렉터리의 모든 파일을 분류합니다.
13. VirusTotal, Malpedia 및 ThreatCrowd와 같은 여러 엔진을 사용하여 의심스러운 도메인에
대한 보고서를 작성합니다.
14. Android 기기에서 직접 APK 패키지를 Hybrid Analysis 및 Virus Total에 대해 검사합니다.
15. Android 기기에서 직접 APK 패키지를 Hybrid Analysis 및 Virus Total에 제출합니다.
16. URLHaus에서 사용자가 제공한 태그와 관련된 URL을 표시합니다.
17. URLHaus에서 태그(시그니처)와 관련된 페이로드를 표시합니다.
18. Virus Total, Alien Vault, Malpedia 및 ThreatCrowd에서 IP 주소에 대한 정보를 표시합니다.
19. Polyswarm에서 IP 주소, 도메인 및 URL 정보를 표시합니다.
21. imphash, IPv4, 도메인, URL 및 악성코드 패밀리 등 여러 기준을 사용하여
Polyswarm Network에서 메타 검색을 수행합니다.
22. 여러 기준을 사용하여 AlienVault에서 위협 헌팅 정보를 수집합니다.
23. 여러 기준을 사용하여 Malpedia에서 위협 헌팅 정보를 수집합니다.
24. 여러 기준을 사용하여 Malware Bazaar에서 위협 헌팅 정보를 수집합니다.
25. 여러 기준을 사용하여 ThreatFox에서 IOC 정보를 수집합니다.
26. 여러 기준을 사용하여 Triage에서 위협 헌팅 정보를 수집합니다.
27. 주어진 파일의 해시를 Virus Total에 대해 평가합니다.
28. 대용량 파일(>= 32 MB)을 Virus Total에 제출합니다.
29. Malwoverview는 Virus Total API v.3을 사용하므로, 더 이상 v.2를 사용하는 옵션은 없습니다.
30. IPInfo 서비스에서 주어진 IP 주소에 대한 정보를 검색합니다.
31. 여러 서비스에서 주어진 IP 주소에 대한 결합된 정보를 검색합니다.
32. 다운로드한 파일을 중앙 위치에 저장하는 추가 옵션을 제공합니다.
33. 여러 기준을 통해 NIST에서 취약점을 나열하고 검색합니다.
34. VulnCheck 데이터베이스 조회 - Community/Free 티어.
35. 여러 기준을 사용하여 Shodan에서 위협 헌팅 정보를 수집합니다.
36. AbuseIPDB에서 IP 평판을 확인합니다.
37. GreyNoise(커뮤니티 API)에서 IP 분류를 확인합니다.
38. 도메인 및 IP Whois/RDAP 조회를 수행합니다.
39. VirusTotal, Hybrid Analysis, Triage 및 AlienVault 전반에 걸친 교차 서비스 해시 상관관계 분석.
40. 해시가 포함된 파일에서 Malware Bazaar에 대한 일괄 해시 검사.
41. 해시가 포함된 파일에서 Hybrid Analysis에 대한 일괄 해시 검사.
42. 해시가 포함된 파일에서 Triage에 대한 일괄 해시 검사.
43. Malware Bazaar, Hybrid Analysis 및 Triage에 대한 디렉터리 검사.
44. 텍스트 파일에서 IOC(해시, IP, URL, 도메인, CVE)를 추출합니다.
45. YARA 규칙으로 파일 또는 디렉터리를 검사합니다.
46. 지속적인 위협 헌팅 세션을 위한 대화형 REPL 모드.
47. JSON 및 CSV 구조화된 출력 형식.
48. 구성 가능한 TTL을 사용한 결과 캐싱(SQLite 기반).
49. 모든 API 요청에 대한 HTTP/HTTPS/SOCKS5 프록시 지원.
50. 행위 보고서에 대한 MITRE ATT&CK 기법 매핑.
51. 패널 기반 탐색을 제공하는 TUI(텍스트 사용자 인터페이스) 대시보드 모드.
52. URLScan.io에서 위협 헌팅 정보를 수집합니다 — URL 제출, 스캔 결과 검색 및 스캔 검색.
53. LLM 기반 위협 강화 — 모든 쿼리 결과에 추가되는 AI 생성 위험 평가, MITRE ATT&CK 매핑 및 분석가 권장 사항. Claude, Gemini, OpenAI 및 Ollama(로컬)를 지원합니다.
54. IP 주소가 포함된 파일에서 VirusTotal에 대한 일괄 IP 검사로, 요약 테이블(IP 주소, 국가, AS 소유자, 탐지)을 표시합니다.
55. YARA 규칙으로 VirusTotal에서 헌팅: Retrohunt 작업을 제출하고 추적하며, 일치하는 파일을 나열하고, Livehunt 규칙 세트 및 알림을 생성하고 나열합니다.
56. YARA 규칙의 전체 디렉터리로 검사하며, 각 파일은 자체 네임스페이스에서 컴파일됩니다.
57. YARA 규칙 이름으로 Malware Bazaar 샘플을 검색하고, abuse.ch에서 YARAify 규칙 세트를 다운로드하고 추출합니다.
58. 주어진 TLP 수준에 대한 전체 Malpedia YARA 규칙 세트를 다운로드합니다.
59. 지난 24시간 동안 확인된 MalShare 파일 유형을 나열하고, 해당 유형 중 임의의 해시를 나열합니다.
60. 해시가 포함된 파일에서 URLHaus에 대한 일괄 해시 검사.
61. API 키 없이 crt.sh를 통한 인증서 투명성 피벗: 발급된 인증서에서 확인된 하위 도메인을 열거하고 인증서 자체를 나열합니다.
62. 로컬 결과 캐시를 검사, 정리 및 비웁니다.
63. 대화형 모드와 TUI는 명령줄이 도달하는 모든 서비스에 도달하며, TUI는 결과를 json 및 csv로 내보냅니다.
64. API 키 없이 파일 또는 디렉터리의 로컬 PE 트리아지로, 파일 유형, 크기, 오버레이, 오버레이 크기 및 엔트로피를 나열하고 엔트로피 임계값을 초과하는 파일을 강조 표시합니다.
65. Android 스캔은 기본 APK만이 아니라 분할 APK를 포함하여 패키지의 모든 APK를 해시합니다.
66. API 키 없이 Authenticode 서명 검사로, 바이너리가 서명되었는지 여부와 서명이 여전히 유효한지 여부를 보고하고, 변조된 파일의 서명자 이름을 밝힙니다.
67. 다중 서명된 바이너리의 모든 내장 서명이 각각의 다이제스트 알고리즘, 인증서, 지문 및 일련 번호와 함께 보고되므로, 두 번째 서명자가 첫 번째 뒤에 숨겨지지 않습니다.
68. VirusTotal 파일 검사(-v 1) 및 해시 보고서(-v 8)는 서명 블록을 표시합니다: 인증서가 검증되었는지 여부, 서명자 및 카운터 서명자 체인, 서명 날짜 및 상태, 알고리즘, 유효 기간, 일련 번호 및 지문이 포함된 모든 인증서.
69. 구성 요소와 관련된 CVE를 나열하며, 구성 요소의 이름이나 로컬 바이너리 경로가 주어지고, 해당 VERSIONINFO가 최신 NVD 항목이 작성되는 기준이 되는 구성 요소 설명을 제공합니다.
## 기여자
Alexandre Borges (https://github.com/alexandreborges) | 프로젝트 소유자 및 주요 개발자
Artur Marzano (https://github.com/Macmod) | 공동 유지 관리 개발자
Corey Forman (https://github.com/digitalsleuth) | REMnux 통합 담당
Christian Clauss (https://github.com/cclauss)
## 이 프로젝트에 기여하는 방법
버전 6.0.0부터 "dev"라는 새로운 브랜치가 있습니다. 모든 기여와 제안은
이 "dev" 브랜치에서 이루어져야 합니다.
기여하고자 하는 전문가들은 제안하는 개선 사항과 그것이 프로젝트를 어떻게 더 좋게
만들 것인지 설명하는 이슈를 열어야 합니다. 일단 수락되면, PR을 제출할 권한이
주어지며, 이는 테스트됩니다.
모든 변경 사항이 테스트되면, 이 새로운 버전의 Malwoverview가 master 브랜치로
복제되고 새로운 Python 패키지가 생성됩니다.
## 설치
이 도구는 REMnux, Ubuntu, Kali Linux, macOS 및 Windows에서 테스트되었습니다. Malwoverview는
다음 명령을 실행하여 설치할 수 있습니다:
* pip3.11 install git+https://github.com/alexandreborges/malwoverview
또는...
* python -m pip install -U malwoverview
macOS에 Malwoverview를 설치하려면 다음 명령을 실행해야 합니다:
* /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
* brew install libmagic
* pip3 install urllib3==1.26.6
* pip3 install -U malwoverview
* 홈 디렉터리의 .bash_profile 파일을 편집하여 Python 바이너리 디렉터리를 PATH 변수에
추가합니다. 예:
export PATH=$PATH:/Users/alexandreborges/Library/Python/3.9/bin
* 실행: . ./.bash_profile
Windows에 Malwoverview를 설치하는 경우, Malwoverview를 설치한
후 다음 조건이 충족되는지 확인하십시오:
* python-magic이 설치되어 있지 않음. (pip show python-magic)
* python-magic-bin이 설치되어 있음. (pip show python-magic-bin)
#### 참고: 업데이트 전에 .malwapi.conf를 저장하는 것이 권장됩니다!
#### 선택적 기능
일부 기능은 선택적 종속성이 필요합니다. 필요에 따라 설치하십시오:
* YARA 검사: pip install malwoverview[yara]
* 서명 검사: pip install malwoverview[signature]
* PDF 보고서 내보내기: pip install malwoverview[pdf]
* TUI 대시보드: pip install malwoverview[tui]
* 모든 선택 사항: pip install malwoverview[all]
## 필수 API
모든 API를 입력하지 않고도 Malwoverview를 사용하기 시작할 수 있습니다. 그러나
Malwoverview의 모든 옵션을 사용하려면 다음 서비스의 각 API를 .malwapi.conf 구성 파일에
입력해야 합니다: VirusTotal, Hybrid Analysis, URLHaus, Malshare, Polyswarm, Alien Vault, Malpedia, Triage,
IPInfo, Malware Bazaar, ThreatFox, VulnCheck, Shodan, AbuseIPDB, GreyNoise 및 URLScan.io. 이 파일은
홈 디렉터리(/home/[username] 또는 Linux의 /root, Windows의 C:\Users\[username])에
존재해야(또는 생성해야) 합니다. 또는 사용자가 사용자 정의 구성 파일을 생성하고
-c 옵션을 사용하여 지정할 수 있습니다.
강조하자면: .malwapi.conf 파일이 홈 디렉터리에 존재하지 않으면
생성해야 합니다!
* Alien Vault에 대한 특별 참고 사항: -n 1 옵션을 사용하기 전에 Alien Vault
웹사이트에서 펄스를 구독해야 합니다.
* Malshare 및 Shodan에 대한 특별 참고 사항: 두 서비스 모두 API 키를 URL 자체에
전송해야 하며, 어느 쪽도 헤더나 요청 본문 대안을 문서화하지 않습니다(Malshare hashlookup
엔드포인트는 POST이지만 키는 여전히 쿼리 문자열로 전달됩니다). Malwoverview는 이 두
키를 출력하는 모든 오류 메시지에서 [REDACTED]로 대체하므로, 버그 보고서에 붙여넣는
출력에 포함되지 않지만, 키는 여전히 해당 서비스의 액세스 로그와 사용자와 서비스 사이에서
TLS를 종료하는 모든 프록시에 기록됩니다. 두 키 모두 서비스 운영자에게 노출된 것으로
간주하고 다른 자격 증명과 마찬가지로 교체하십시오.
.malwapi.conf 구성 파일의 형식은 다음과 같습니다:
[VIRUSTOTAL]
VTAPI =
[HYBRID-ANALYSIS]
HAAPI =
[MALSHARE]
MALSHAREAPI =
[HAUSSUBMIT]
HAUSSUBMITAPI =
[POLYSWARM]
POLYAPI =
[ALIENVAULT]
ALIENAPI =
[MALPEDIA]
MALPEDIAAPI =
[TRIAGE]
TRIAGEAPI =
[IPINFO]
IPINFOAPI =
[BAZAAR]
BAZAARAPI =
[THREATFOX]
THREATFOXAPI =
[VULNCHECK]
VULNCHECKAPI =
[URLHAUS]
URLHAUSAPI =
[SHODAN]
SHODANAPI =
[ABUSEIPDB]
ABUSEIPDBAPI =
[GREYNOISE]
GREYNOISEAPI =
[URLSCANIO]
URLSCANIOAPI =
[LLM]
PROVIDER = claude
CLAUDE_API_KEY =
CLAUDE_MODEL = claude-opus-4-8
GEMINI_API_KEY =
OPENAI_API_KEY =
OPENAI_MODEL = gpt-4o-mini
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = llama3.1
API는 각 서비스 웹사이트에서 요청할 수 있습니다:
01. Virus Total (커뮤니티 및 유료 API): https://www.virustotal.com/gui/join-us
02. Hybrid Analysis: https://www.hybrid-analysis.com/signup
03. Malshare: https://malshare.com/doc.php
04. URLHaus: https://urlhaus.abuse.ch/api/#account
05. Polyswarm: https://docs.polyswarm.io/consumers
06. Alien Vault: https://otx.alienvault.com/api
07. Malpedia: 공개 등록을 제공하지 않지만, Twitter(DM) 또는 피드백 이메일을 통해
직접 사용자 계정을 요청할 수 있습니다. Malpedia Twitter
핸들은 @malpedia입니다.
08. Malware Bazaar: https://bazaar.abuse.ch/api/#auth\_key
09. ThreatFox: https://threatfox.abuse.ch/api/#auth\_key
10. Triage: https://tria.ge/signup.
11. IPInfo: https://ipinfo.io/
12. VulnCheck: https://vulncheck.com/signin (Community/Free 티어 사용 가능)
13. Shodan: https://account.shodan.io/register
14. AbuseIPDB: https://www.abuseipdb.com/register
15. GreyNoise: https://viz.greynoise.io/signup
16. URLScan.io: https://urlscan.io/user/signup
#### LLM 강화 제공자 (선택 사항)
Malwoverview는 --enrich 플래그를 통해 LLM 기반 위협 강화를 지원합니다.
모든 쿼리 후에 위험 수준, 악성코드 패밀리 식별, MITRE ATT&CK 매핑 및 분석가
권장 사항이 포함된 AI 생성 위협 평가가 추가됩니다.
세 가지 제공자가 지원됩니다. .malwapi.conf의 [LLM] 섹션에서 하나를 구성하십시오:
**18. Anthropic Claude (유료, 최고 품질)**
위협 인텔리전스 분석에 최적의 결과를 제공합니다. 악성코드 패밀리를 정확하게
식별하고, 정밀한 MITRE ATT&CK 기법을 매핑하며, 실제 위협 지식을 기반으로
실행 가능한 권장 사항을 제공합니다.
설정:
a) https://console.anthropic.com/ 에서 API 계정을 생성합니다(claude.ai
구독과 별개)
b) Settings → Billing → Add credit으로 이동합니다(최소 $5, 사용량 기반 과금)
c) Settings → API Keys → Create Key로 이동합니다
d) 키를 복사합니다(sk-ant-api03-...로 시작)
e) .malwapi.conf를 구성합니다:
[LLM]
PROVIDER = claude
CLAUDE_API_KEY = sk-ant-api03-your-key-here
CLAUDE_MODEL = claude-opus-4-8
CLAUDE_MODEL은 선택 사항이며 기본값은 claude-opus-4-8입니다. 일반적인 선택:
- claude-opus-4-8 — 최고 품질 (기본값)
- claude-sonnet-4-6 — 품질과 비용의 강력한 균형
- claude-haiku-4-5 — 가장 빠르고 저렴
비용: 기본 Opus 모델을 사용하는 경우 강화 호출당 약 $0.02-0.04
(Sonnet 또는 Haiku 사용 시 더 저렴). $5 크레딧은 대략 125-250회의 Opus 강화
호출을 제공합니다.
**19. Google Gemini (결제 필요)**
양호한 품질의 결과를 제공합니다. Google Cloud 결제 계정이 필요합니다.
설정:
a) https://aistudio.google.com/apikeys 로 이동합니다
b) Google 계정으로 로그인합니다
c) Create API Key 클릭 → 키를 복사합니다
d) 결제 활성화: 키 옆의 프로젝트 링크 클릭 → Google Cloud
Console → Billing → Link a billing account
e) .malwapi.conf를 구성합니다:
[LLM]
PROVIDER = gemini
GEMINI_API_KEY = your-gemini-key-here
GEMINI_MODEL = gemini-2.0-flash
참고: 무료 티어는 낮은 속도 제한(분당 2-5회 요청)을 가집니다. 더 높은
제한을 위해서는 사용량 기반 과금을 활성화하십시오.
**20. OpenAI (유료)**
GPT 모델을 사용한 양호한 품질의 결과를 제공합니다. API 크레딧이 있는
OpenAI 계정이 필요합니다.
설정:
a) https://platform.openai.com/signup 에서 계정을 생성합니다
b) https://platform.openai.com/api-keys 로 이동 → Create new secret key
c) https://platform.openai.com/settings/organization/billing 에서 결제를 추가합니다
d) .malwapi.conf를 구성합니다:
[LLM]
PROVIDER = openai
OPENAI_API_KEY = sk-your-key-here
OPENAI_MODEL = gpt-4o-mini
사용 가능한 모델:
- gpt-4o-mini — 가장 저렴(강화당 약 $0.002), 양호한 품질 (기본값)
- gpt-4o — 더 나은 품질(강화당 약 $0.01)
**21. Ollama (무료, 로컬, 프라이빗)**전적으로 사용자의 머신에서 실행됩니다. API 키가 필요 없고, 데이터가
시스템 외부로 나가지 않습니다. 위협 데이터를 클라우드 API로 전송하는 것이
허용되지 않는 환경에 적합합니다. 품질은 선택한 모델에 따라 달라집니다.
설정:
a) https://ollama.com/download 에서 Ollama를 다운로드하여 설치합니다
(Windows, Linux, macOS에서 사용 가능)
b) 터미널을 열고 모델을 가져옵니다:
ollama pull qwen2.5:14b
권장 모델:
- qwen2.5:14b — 합리적인 크기에서 최고 품질 (9 GB, 16 GB RAM 필요)
- llama3.1:8b — 좋은 품질, 더 작음 (5 GB, 8 GB RAM 필요)
- llama3.1:70b — 뛰어난 품질, 대형 (40 GB, 48 GB RAM 필요)
c) Ollama는 자동으로 시작되며 http://localhost:11434 에서 서비스됩니다
d) .malwapi.conf를 구성합니다:
[LLM]
PROVIDER = ollama
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = qwen2.5:14b
성능: 12+ GB VRAM의 GPU는 빠른 응답(5-10초)을 제공합니다.
CPU 전용은 더 느리지만(30-60초) 작동합니다. 더 큰 모델(14b, 70b)은
더 많은 VRAM을 요구하며, 메모리가 충분하지 않으면 CPU에서 타임아웃될 수
있습니다. GPU 메모리가 제한된 머신(6 GB 이하)에는 llama3.1:8b 모델을
권장합니다.
예상 응답 시간:
- Claude API: 3-8초
- Gemini API: 3-8초
- Ollama (충분한 VRAM의 GPU): 5-15초
- Ollama (CPU 전용, 8b 모델): 30-60초
- Ollama (CPU 전용, 14b+ 모델): 60-300초
사용 예시:
# CLI: 모든 쿼리에 --enrich 추가
malwoverview -v 8 -V <hash> --enrich
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
# 대화형 REPL: enrichment를 켜거나 끄거나 provider 전환
malwoverview --interactive
malwoverview> set enrich on # config의 provider 사용
malwoverview> set enrich claude # Claude로 전환
malwoverview> set enrich ollama # Ollama로 전환
malwoverview> set enrich openai # OpenAI로 전환
malwoverview> set enrich off # enrichment 비활성화
malwoverview> vt hash <hash> # 악성코드 분석 + enrichment
malwoverview> nist cve CVE-2024-3400 # CVE 조회 + enrichment
malwoverview> vulncheck cve CVE-2024-3400 # VulnCheck + enrichment
# TUI: Enrich 버튼을 클릭하여 provider 순환
# Enrich (OFF) → claude → gemini → openai → ollama → OFF
# 녹색 버튼 = provider가 활성화되고 구성됨
# 노란색 버튼 = provider가 선택되었지만 API 키가 없음
# 기본 버튼 = enrichment 비활성화됨
malwoverview --tui
----------------------------------------------------
MALPEDIA에 대한 API 요청에 관한 참고 사항:
----------------------------------------------------
서비스와 승인은 커뮤니티 검증을 기반으로 합니다. 따라서 비즈니스 이메일 주소로
API 요청을 제출하는 것이 권장되며, 공용/무료 이메일(Gmail, Outlook 등)로는
제출하지 않는 것이 좋습니다. 또한 자신에 대한 추가 정보(LinkedIn 계정,
X/Twitter, Mastodon, BlueSky 등)를 제공하면 신원, 전문 프로필 및 적법성
검증이 용이해져 요청 승인이 빨라지므로 좋습니다.
----------------------------------------------------
Triage에 관한 참고 사항:
----------------------------------------------------
모든 Triage 작업은 각 아티팩트의 Triage ID를 기반으로 하므로,
"-x 1 -X \<attribute\>:\<value\>"를 사용하여 아티팩트의 올바른 ID를 검색한
다음, 이 ID 정보를 나머지 Triage 옵션(-x [2-7])과 함께 사용하여 Triage
엔드포인트에서 더 많은 위협 헌팅 정보를 얻어야 합니다.
----------------------------------------------------
URLHaus, Malware Bazaar 및 Threat Fox에 관한 참고 사항:
----------------------------------------------------
2025년 하반기부터 URLHaus, Malware Bazaar 및 Threat Fox 서비스를 사용하려면
Auth-Key(API)가 필요합니다.
----------------------------------------------------
터미널 배경색에 관한 참고 사항:
----------------------------------------------------
Malwoverview는 어두운 터미널 배경에 맞게 출력을 생성하도록 작성되었습니다.
그러나 밝은 배경에 맞게 출력 색상을 변경하고 조정하는 -o 0 옵션이 있습니다.
-----------------------------------------------------
설치를 확인하려면 다음을 실행하십시오:
malwoverview --help
추가 정보는 다음에서 확인할 수 있습니다:
(PYPI.org repository) https://pypi.org/project/malwoverview/
(Github) https://github.com/alexandreborges/malwoverview
수동 설치를 수행하려는 경우(일반적으로 필요하지 않음),
다음 하위 섹션에 표시된 대로 몇 가지 단계를 실행해야 합니다.
## 수동 설치 (REMnux 및 Ubuntu)
1. Python 버전 3.11 이상 (Python 3.x만 가능!!! Python 2.7에서는
작동하지 않습니다)
$ apt-get install python3.11 (예시)
2. Python-magic.
python-magic 패키지를 설치하려면 다음 명령을 실행할 수 있습니다:
$ pip3.11 install python-magic
또는 github 저장소에서 컴파일할 수 있습니다:
$ git clone https://github.com/ahupp/python-magic
$ cd python-magic/
$ python3.11 setup.py build
$ python3.11 setup.py install
python-magic 패키지의 기존 두 버전과 관련된 심각한 문제가 있으므로,
Github에서 설치하는 것(위의 두 번째 절차)과 magic.py 파일을
malwoverview 도구와 동일한 디렉터리에 복사하는 것을 권장합니다.
3. 필요한 모든 Python 패키지를 설치합니다:
$ pip3.11 install -r requirements.txt
또는
$ pip3.11 install -U pefile
$ pip3.11 install -U colorama
$ pip3.11 install -U simplejson
$ pip3.11 install -U python-magic
$ pip3.11 install -U requests
$ pip3.11 install -U validators
$ pip3.11 install -U geocoder
$ pip3.11 install -U polyswarm-api
$ pip3.11 install -U pathlib
$ pip3.11 install -U configparser
4. Android 모바일을 확인하려면 "adb" 도구를 설치해야 합니다:
$ sudo apt get install adb
PS: Android 옵션을 시도하기 전에 다음을 확인하십시오:
* adb 도구가 PATH 환경 변수에 나열되어 있는지.
* "adb devices -l"을 사용하여 시스템이 장치에 대한 접근을 승인했는지.
## 도움말
usage: python malwoverview.py -c <API configuration file> -d <directory> -o <0|1> -v <1-20>
-V <virustotal arg> -a <1-13> -A <filename> -l <1-8> -L <hash|file type> -j <1-8>
-J <URLhaus argument> -p <1-8> -P <polyswarm argument> -y <1-5> -Y <file name> -n <1-5>
-N <argument> -m <1-9> -M <argument> -b <1-15> -B <arg> -x <1-9> -X <arg>
-ip <1-8> -IP <IP address> -O <output directory> --nist <1-6> --NIST <argument> -vc <1-8>
-VC <argument> -s <1-2> -S <arg> -ab <1> -AB <arg> -gn <1> -GN <arg>
-wh <1-2> -WH <arg> -ct <1-2> -CT <domain> -u <1-5> -U <arg> --correlate-hash <hash>
--extract-iocs <file|url> --yara <rules> --yara-target <target>
--peinfo <file|directory> --entropy-threshold <value>
--sigcheck <file|directory> --no-signature --sig-verify-mode <any|first|all|best>
--output-format text|json|csv --proxy <url> --quiet --verbose --no-cache
--cache-ttl <seconds> --cache-stats --prune-cache --clear-cache --no-resolve --defang
--no-ioc-filter --report html|pdf --interactive --tui --attack-map
Malwoverview는 Alexandre Borges가 작성한 위협 헌팅용 초동 대응 도구입니다.
악성코드 옵션:
악성코드 분석 및 인텔리전스 쿼리 옵션
-h, --help
+ 이 도움말 메시지를 표시하고 종료합니다
-c CONFIG FILE, --config CONFIG FILE
+ API를 지정하기 위한 사용자 정의 config 파일을 사용합니다.
-d DIRECTORY, --directory DIRECTORY
+ VIRUS TOTAL에 대해 검사할 악성코드 샘플이 포함된 디렉터리를 지정합니다.
+ -D 옵션을 사용하여 공용 VT API를 사용하는지 Premium
VT API를 사용하는지 결정하십시오.
-o BACKGROUND, --background BACKGROUND
+ 출력 색상을 밝은 배경색 터미널에 맞게 조정합니다.
+ 기본값은 어두운 배경색 터미널입니다.
-v VIRUSTOTAL, --virustotal_option VIRUSTOTAL
+ -v 1: -V 옵션을 사용하여 주어진 파일에 대해 VIRUS TOTAL 데이터베이스(API v.3)를
쿼리하여 -V 옵션을 통해 주어진 파일의 보고서를 가져옵니다.
+ v 2: -V 옵션을 사용하여 주어진 파일에 대한 안티바이러스 보고서를 표시합니다(API v.3);
+ v 3: -v2와 동일하지만 바이너리의 IAT와 EAT도 표시됩니다(API v.3);
+ v 4: 오버레이를 추출합니다;
+ v 5: URL을 VT 스캔에 제출합니다;
+ v 6: IP 주소를 Virus Total에 제출합니다;
+ v 7: 이 옵션은 Virus Total에서 제공된 도메인에 대한 보고서를 가져옵니다;
+ v 8: 주어진 해시를 Virus Total에 대해 검증합니다;
+ v 9: 샘플을 VT에 제출합니다(최대 32 MB). Windows 시스템에서
대상 파일을 지정하려면 슬래시를 사용하십시오. -V 옵션으로 샘플 파일을
전달해야 합니다;
+ -v 10: -V 옵션을 통해 제공된 파일의 해시를 검증합니다. 이 옵션은
public VT API v.3을 사용합니다;
+ -v 11: -V 옵션을 통해 제공된 파일의 해시를 검증합니다. 이 옵션은
Premium API v.3을 사용합니다;
+ -v 12: -V 옵션을 통해 주어진 해시에 대한 샘플의 동작 정보를 표시합니다.
이 옵션은 VT API v.3을 사용합니다; -v 13: LARGE 파일(32 MB 초과)을
API v.3을 사용하여 VT에 제출합니다;
+ -v 14: -V로 주어진 YARA 규칙 파일 또는 규칙 디렉터리를 사용하여 Retrohunt
작업을 제출합니다(VT는 지난 몇 달 동안 받은 샘플을 규칙에 대해
스캔합니다);
+ -v 15: Retrohunt 작업을 나열하며, 선택적으로 -V를 통해 전달된 상태
(starting, running, aborting, aborted 또는 finished)로 필터링합니다;
+ -v 16: -V로 주어진 id의 Retrohunt 작업 상태와 진행 상황을 표시합니다;
+ -v 17: -V로 주어진 id의 Retrohunt 작업에 의해 매칭된 파일을 나열합니다;
+ -v 18: -V로 주어진 YARA 규칙 파일 또는 규칙 디렉터리에서 Livehunt 규칙셋을
생성합니다(VT는 이후 모든 새 제출을 이에 대해 매칭합니다);
+ -v 19: Livehunt 규칙셋을 나열합니다;
+ -v 20: Livehunt 알림을 나열합니다. 옵션 14~20은 premium(enterprise)
권한이 있는 VT 키가 필요합니다;
-V VIRUSTOTAL_ARG, --virustotal_arg VIRUSTOTAL_ARG
+ -v 옵션에 대한 인수를 제공합니다. "-v 1"에서 "-v 4"인 경우 -V는
파일 경로여야 합니다; "-v 5"인 경우 -V는 URL이어야 합니다; "-v 6"인 경우
-V는 IP 주소여야 합니다; "-v 7"인 경우 -V는 도메인이어야 합니다; "-v 8"인 경우
-V는 해시(MD5/SHA1/SHA256)여야 합니다; "-v 9" 또는 "-v 13"인 경우 -V는
제출할 파일 경로여야 합니다; "-v 10" 또는 "-v 11"인 경우 -V는 해시를
포함하는 파일(한 줄에 하나)이어야 합니다; "-v 12"인 경우 -V는 동작 분석을
위한 해시여야 합니다; "-v 14" 또는 "-v 18"인 경우 -V는 YARA 규칙
파일 또는 규칙 디렉터리여야 합니다; "-v 15"인 경우 -V는 작업 상태일 수
있습니다; "-v 16" 또는 "-v 17"인 경우 -V는 Retrohunt 작업 id여야 합니다.
-a HYBRID_ANALYSIS, --hybrid_option HYBRID_ANALYSIS
+ 이 매개변수는 HYBRID ANALYSIS에서 보고서를 가져오고, 샘플을 다운로드하며,
분석할 샘플을 제출합니다.
+ 가능한 값은 다음과 같습니다:
+ 1: Windows 7 32비트 환경에서 주어진 해시 또는 샘플에 대한 보고서를 가져옵니다;
+ 2: Windows 7 32비트 환경(HWP 지원)에서 주어진 해시 또는 샘플에 대한
보고서를 가져옵니다;
+ 3: Windows 64비트 환경에서 주어진 해시 또는 샘플에 대한 보고서를 가져옵니다;
+ 4: Android 환경에서 주어진 해시 또는 샘플에 대한 보고서를 가져옵니다;
+ 5: Linux 64비트 환경에서 주어진 해시 또는 샘플에 대한 보고서를 가져옵니다;
+ 6: 샘플을 Windows 7 32비트 환경에 제출합니다;
+ 7. 샘플을 HWP 지원 환경의 Windows 7 32비트 환경에 제출합니다;
+ 8. 샘플을 Windows 7 64비트 환경에 제출합니다;
+ 9. 샘플을 Android 환경에 제출합니다;
+ 10. 샘플을 Linux 64비트 환경에 제출합니다;
+ 11. 주어진 해시에 대한 샘플을 다운로드합니다(저장된 샘플은 샌드박스
환경에 관계없이 동일하므로, 단일 옵션이 이전 옵션 11~15를
대체합니다);
+ 12. 파일에서 일괄 해시 검사(한 줄에 하나의 해시);
+ 13. 디렉터리 스캔 - 각 파일의 SHA256을 계산하고 Hybrid Analysis에
대해 검사합니다.
-A SUBMIT_HA, --ha_arg SUBMIT_HA
+ HYBRID ANALYSIS의 -a 옵션에 대한 인수를 제공합니다. "-a 1"에서
"-a 5"인 경우 -A는 해시 또는 파일 경로(자동 감지)여야 합니다; "-a 6"에서
"-a 10"인 경우 -A는 제출할 파일 경로여야 합니다; "-a 11"인 경우 -A는
다운로드할 해시여야 합니다; "-a 12"인 경우 -A는 해시를 포함하는
파일(한 줄에 하나)이어야 합니다; "-a 13"인 경우 -A는 스캔할 디렉터리
경로여야 합니다.
-D VT_PUBLIC_PREMIUM, --vtpubpremium VT_PUBLIC_PREMIUM
+ 이 옵션은 -d 옵션과 함께 사용해야 합니다.
+ 가능한 값:
+ <0> Premium VT API v3을 사용합니다(기본값);
+ <1> Public VT API v3을 사용합니다.
-l MALSHARE_HASHES, --malsharelist MALSHARE_HASHES
+ 이 옵션은 MALSHARE 저장소에서 지난 24시간 동안의 샘플을 다운로드하고
특정 유형의 해시를 표시합니다.
+ 가능한 값은 다음과 같습니다:
+ 1: 샘플 다운로드;
+ 2: PE32 (기본값) ;
+ 3: ELF ;
+ 4: Java;
+ 5: PDF ;
+ 6: 지난 24시간 동안 사용 가능한 파일 유형 나열(각 유형의 샘플 수 포함);
+ 7: 지난 24시간 동안의 해시 목록;
+ 8: -L로 주어진 파일 유형의 해시 나열(유효한 파일 유형을 확인하려면 -l 6 사용).
-L MALSHARE_HASH_SEARCH, --malshare_hash MALSHARE_HASH_SEARCH
+ MALSHARE 저장소에서 샘플을 다운로드하기 위한 인수로 해시를 제공하거나(-l 1),
-l 8과 함께 사용할 경우 해시를 나열할 파일 유형을 제공합니다.
-j HAUS_OPTION, --haus_option HAUS_OPTION
+ 이 옵션은 인수로 전달된 값에 따라 URLHaus에서 정보를 가져옵니다:
+ 1: 주어진 샘플을 다운로드합니다;
+ 2: 제공된 해시에 대한 정보를 쿼리합니다;
+ 3: 주어진 URL에 대한 정보를 검색합니다;
+ 4: 주어진 태그로 악성 URL을 검색합니다(대소문자 구분);
+ 5: 태그가 주어진 페이로드를 검색합니다;
+ 6: 최근 페이로드에 대한 다운로드 가능한 링크 목록을 가져옵니다;
+ 7: 최근 악성 URL 목록을 가져옵니다;
+ 8: 파일에서 일괄 해시 검사(한 줄에 하나의 해시).
-J HAUS_ARG, --haus_arg HAUS_ARG
+ URLHaus의 -j 옵션에 대한 인수를 제공합니다. "-j 1"인 경우 -J는
샘플을 다운로드할 SHA256 해시여야 합니다; "-j 2"인 경우 -J는 검색할
해시(MD5/SHA1/SHA256)여야 합니다; "-j 3"인 경우 -J는 확인할 URL이어야
합니다; "-j 4"인 경우 -J는 태그여야 합니다(대소문자 구분); "-j 5"인 경우
-J는 시그니처 이름이어야 합니다.
-p POLY_OPTION, --poly_option POLY_OPTION
+ (Linux 전용) 이 옵션은 POLYSWARM 작업과 관련이 있습니다:
+ 1. -P 옵션을 사용하여 제공된 해시와 관련된 정보를 검색합니다;
+ 2. -P 옵션으로 제공된 샘플을 Polyswarm 엔진에서 분석하도록 제출합니다;
+ 3. -P 옵션을 통해 해시를 제공하여 Polyswarm에서 샘플을 다운로드합니다.
주의: Polyswarm은 월 최대 20개 샘플을 허용합니다;
+ 4. -P 옵션을 통해 샘플 파일이 주어지면 유사한 샘플을 검색합니다;
+ 5. -P 옵션을 통해 제공된 IP 주소와 관련된 샘플을 검색합니다;
+ 6. -P 옵션으로 제공된 도메인과 관련된 샘플을 검색합니다;
+ 7. -P 옵션을 통해 제공된 URL과 관련된 샘플을 검색합니다;
+ 8. -P 옵션으로 주어진 악성코드 패밀리와 관련된 샘플을 검색합니다.
-P POLYSWARM_ARG, --poly_arg POLYSWARM_ARG
+ (Linux 전용) POLYSWARM의 -p 옵션에 대한 인수를 제공합니다.
-y ANDROID_OPTION, --android_option ANDROID_OPTION
+ 이 ANDROID 옵션은 여러 가지 가능한 값을 가집니다:
+ <1>: USB로 연결된 Android 장치의 모든 서드파티 APK 패키지를
멀티스레드를 사용하여 Hybrid Analysis에 대해 검사합니다. 참고: Android 장치는
루팅할 필요가 없으며 시스템은 adb 도구가 PATH 환경 변수에 있어야 합니다;
+ <2>: USB로 연결된 Android 장치의 모든 서드파티 APK 패키지를
Public API를 사용하여 VirusTotal에 대해 검사합니다(4개 해시마다 60초 지연
때문에 더 느림). 참고: Android 장치는 루팅할 필요가 없으며 시스템은
adb 도구가 PATH 환경 변수에 있어야 합니다;
+ <3>: USB로 연결된 Android 장치의 모든 서드파티 APK 패키지를
멀티스레드를 사용하여 VirusTotal에 대해 검사합니다(Private Virus API 전용). 참고:
Android 장치는 루팅할 필요가 없으며 시스템은 adb 도구가
PATH 환경 변수에 있어야 합니다;
+ <4> USB로 연결된 Android 장치의 서드파티 APK를
Hybrid Analysis로 전송합니다;
+ 5. USB로 연결된 Android 장치의 서드파티 APK를 Virus-Total로 전송합니다.
-Y ANDROID_ARG, --android_arg ANDROID_ARG
+ 이 옵션은 ANDROID의 -y에 대한 인수를 제공합니다.
-n ALIENVAULT, --alienvault ALIENVAULT
+ ALIENVAULT에서 여러 정보를 확인합니다. 가능한 값은 다음과 같습니다:
+ 1: 구독한 펄스를 가져옵니다;
+ 2: IP 주소에 대한 정보를 가져옵니다;
+ 3: 도메인에 대한 정보를 가져옵니다;
+ 4: 해시에 대한 정보를 가져옵니다;
+ 5: URL에 대한 정보를 가져옵니다.
-N ALIENVAULT_ARGS, --alienvaultargs ALIENVAULT_ARGS
+ ALIENVAULT의 -n 옵션에 대한 인수를 제공합니다. "-n 1"인 경우 -N은
검색할 구독한 펄스의 수여야 합니다; "-n 2"인 경우 -N은 IP 주소여야
합니다; "-n 3"인 경우 -N은 도메인이어야 합니다; "-n 4"인 경우 -N은
해시(MD5/SHA256)여야 합니다; "-n 5"인 경우 -N은 URL이어야 합니다.
-m MALPEDIA, --malpedia MALPEDIA
+ 이 옵션은 MALPEDIA와 관련이 있으며 선택한 값에 따라 다른 의미를
나타냅니다. 따라서:
+ 1: 모든 패밀리에 대한 메타 정보를 나열합니다;
+ 2: 모든 액터 ID를 나열합니다;
+ 3: Malpedia에서 패밀리별로 정리된 모든 사용 가능한 페이로드를 나열합니다;
+ 4: 특정 액터의 메타 정보를 가져오므로 -M 옵션을 사용해야 합니다.
또한 malwoverview를 -m 3 옵션으로 실행하여 올바른 액터 ID를
확인하십시오;
+ 5: 모든 패밀리 ID를 나열합니다;
+ 6: 특정 패밀리의 메타 정보를 가져오므로 -M 옵션을 사용해야
합니다. 또한 malwoverview를 -m 5 옵션으로 실행하여 올바른 패밀리 ID를
확인하십시오;
+ 7: malpedia에서 악성코드 샘플을 가져옵니다(zip 형식 -- 비밀번호: infected).
-M 옵션을 사용하여 요청할 해시를 지정해야 합니다;
+ 8: 특정 패밀리에 대한 Yara 규칙을 포함하는 zip 파일을 가져옵니다
(가능한 패밀리는 -m 5로 확인). -M 옵션을 사용하여 지정해야 합니다;
+ 9: TLP 레벨에 대한 완전한 Malpedia Yara 규칙셋을 포함하는 zip 파일을
가져옵니다. -M으로 tlp_white, tlp_green, tlp_amber 또는 auto 중 하나를
지정해야 합니다(축약형 white, green, amber도 허용됨). 다운로드한 규칙으로
스캔하려면 --yara와 함께 사용하십시오.
-M MALPEDIAARG, --malpediarg MALPEDIAARG
+ MALPEDIA의 -m 옵션에 대한 인수를 제공합니다. "-m 4"인 경우 -M은
액터 이름이어야 합니다(-m 2로 확인); "-m 6"인 경우 -M은 패밀리
이름이어야 합니다(-m 5로 확인); "-m 7"인 경우 -M은 샘플을 다운로드할
해시여야 합니다; "-m 8"인 경우 -M은 YARA 규칙을 가져올 패밀리
이름이어야 합니다.
-b BAZAAR, --bazaar BAZAAR+ MALWARE BAZAAR와 THREATFOX에서 여러 정보를 확인합니다. 가능한
값은 다음과 같습니다:
+ 1: (Bazaar) 멀웨어 해시 샘플에 대한 정보를 조회합니다;
+ 2: (Bazaar) 특정 태그에 따라 연관된 멀웨어 샘플의 정보와 목록을
가져옵니다;
+ 3: (Bazaar) 주어진 imphash에 따라 멀웨어 샘플 목록을 가져옵니다;
+ 4: (Bazaar) 최신 멀웨어 샘플을 조회합니다;
+ 5: (Bazaar) SHA256 해시를 제공하여 Malware Bazaar에서 멀웨어 샘플을
다운로드합니다. 다운로드된 샘플은 다음 비밀번호로 압축 해제됩니다:
infected;
+ 6: (ThreatFox) -B 옵션으로 지정된 최근 x일(최대 7일)의 현재 IOC
데이터셋을 가져옵니다;
+ 7: (ThreatFox) -B 옵션으로 지정된 특정 IOC를 ThreatFox에서 검색합니다;
+ 8: (ThreatFox) -B 옵션으로 지정된 특정 태그에 따라 IOC를 검색합니다;
+ 9: (ThreatFox) -B 옵션으로 제공된 특정 멀웨어 패밀리에 따라 IOC를
검색합니다;
+ 10. (ThreatFox) 사용 가능한 모든 멀웨어 패밀리를 나열합니다.
+ 11: (Bazaar) 파일에서 해시를 일괄 검사합니다(한 줄에 하나의 해시)
Malware Bazaar에 대해;
+ 12: (Bazaar) 디렉터리 스캔 — 디렉터리의 각 파일에 대해 SHA256을
계산하고 Malware Bazaar에 대해 검사합니다;
+ 13: (Bazaar) -B 옵션으로 지정된 YARA 규칙 이름과 일치하는 샘플을
검색합니다. 규칙 이름은 해시 보고서(-b 1) 끝에 나열되며,
-b 14로 다운로드하고 -b 15로 추출한 YARAify 세트 내부의
규칙 이름이기도 합니다;
+ 14: (YARAify) YARAify 규칙 세트(abuse.ch)를 다운로드합니다. 이는
Malware Bazaar 뒤에 있는 규칙 세트입니다;
+ 15: (YARAify) 다운로드한 YARAify 규칙 세트를 --yara에 제공할 수 있는
규칙 디렉터리로 추출합니다.
-B BAZAAR_ARG, --bazaararg BAZAAR_ARG
+ -b MALWARE BAZAAR 및 THREAT FOX 옵션에 인수를 제공합니다:
+ "-b 1"은 -B의 인수가 해시여야 하며 샘플에 대한 보고서가
검색됨을 나타냅니다;
+ "-b 2"는 -B의 인수가 멀웨어 태그여야 하며 이 태그와 일치하는 최근
샘플이 표시됨을 나타냅니다;
+ "-b 3"은 -M으로 제공된 인수가 imphash여야 하며 이 imphash와 일치하는
최근 샘플이 표시됨을 의미합니다;
+ "-b 4"는 -M으로 제공된 인수가 "100 또는 time"이어야 함을 의미하며,
여기서 "100"은 최근 "100개 샘플"을 나열하고 "time"은 지난 60분 동안
Malware Bazaar에 추가된 최근 샘플을 나열합니다;
+ "-b 5"는 샘플이 다운로드됨을 의미하며 -B의 인수는 Malware Bazaar에서
다운로드하려는 샘플의 SHA256 해시여야 합니다;
+ "-b 6"은 IOC 목록이 검색됨을 나타내며 -B의 값은 해당 IOC를 필터링할
일수입니다. 최대 시간은 7(일)입니다;
+ "-b 7"은 -B의 인수가 검색하려는 IOC임을 나타냅니다;
+ "-b 8"은 -B의 인수가 검색하려는 IOC의 TAG임을 나타냅니다;
+ "-b 9"는 -B 인수가 IOC를 검색하려는 멀웨어 패밀리임을 나타냅니다;
-x TRIAGE, --triage TRIAGE
+ 지정된 값에 따라 TRIAGE에서 정보를 제공합니다:
+ 1: 이 옵션은 -X 옵션과 함께 다음 가능한 형식 중 하나로 인수를 제공하여
샘플의 일반 정보를 가져옵니다:
- sha256:<value>
- sha1:<value>
- md5:<value>
- family:<value>
- score:<value>
- tag:<value>
- url:<value>
- wallet:<value>
- ip:<value>;
+ 2: 주어진 Triage ID(-x 1에서 얻음)에 대한 요약 보고서를 가져옵니다;
+ 3: 분석을 위해 샘플을 제출합니다;
+ 4: 분석을 위해 URL을 통해 샘플을 제출합니다;
+ 5: Triage ID로 지정된 샘플을 다운로드합니다;
+ 6: 주어진 Triage ID와 연관된 샘플에서 pcapng 파일을 다운로드합니다;
+ 7: 주어진 Triage ID(-x 1에서 얻음)에 대한 동적 보고서를 가져옵니다;
+ 8: 파일에서 해시를 일괄 검사합니다(한 줄에 하나의 해시) Triage에 대해;
+ 9: 디렉터리 스캔 — 디렉터리의 각 파일에 대해 SHA256을 계산하고
Triage에 대해 검사합니다.
-X TRIAGE_ARG, --triagearg TRIAGE_ARG
+ TRIAGE의 -x 옵션에 대한 인수를 제공합니다. "-x 1"인 경우 -X는
검색 쿼리여야 합니다(예: sha256:<hash>, family:<name>, tag:<tag>,
ip:<ip>); "-x 2"인 경우 -X는 Triage 샘플 ID여야 합니다(-x 1에서
얻음); "-x 3"인 경우 -X는 제출할 파일 경로여야 합니다; "-x 4"인
경우 -X는 제출할 URL이어야 합니다; "-x 5" 또는 "-x 6"인 경우 -X는
다운로드할 Triage 샘플 ID여야 합니다; "-x 7"인 경우 -X는 동적 보고서를
위한 Triage 샘플 ID여야 합니다; "-x 8"인 경우 -X는 해시를 포함하는
파일이어야 합니다(한 줄에 하나씩); "-x 9"인 경우 -X는 스캔할 디렉터리
경로여야 합니다.
-O OUTPUTDIR, --output-dir OUTPUTDIR
+ 모든 샘플 다운로드에 대한 출력 디렉터리를 설정합니다.
-ip IP, --ip IP
+ 다양한 소스에서 IP 정보를 가져옵니다. 가능한 값은 다음과 같습니다:
+ 1: -IP로 제공된 IP 주소에 대한 세부 정보를 IPInfo에서 가져옵니다;
+ 2: 8.1.0에서 제거됨(BGPView 종료);
+ 3: -IP로 제공된 IP 주소에 대한 세부 정보를 사용 가능한 모든
인텔 서비스(VirusTotal/Alienvault)에서 가져옵니다;
+ 4: IP 주소에 대한 세부 정보를 Shodan에서 가져옵니다;
+ 5: IP 주소에 대한 세부 정보를 AbuseIPDB에서 가져옵니다;
+ 6: IP 주소에 대한 세부 정보를 GreyNoise에서 가져옵니다;
+ 7: IP 주소에 대한 세부 정보를 모든 서비스에서 가져옵니다(종합);
+ 8: 파일에서 IP 주소를 일괄 검사합니다(한 줄에 하나씩) VirusTotal에
대해 수행하고 요약 테이블(IP Address, Country, AS Owner,
Detection)을 표시합니다. Public(-D 1)과 Premium
(-D 0, 기본값) VT API 중 선택하려면 -D를 사용하십시오.
-IP IPARG, --iparg IPARG
+ -ip 옵션에 대한 인수를 제공합니다. -ip 1부터 7까지는
유효한 IP 주소(IPv4 또는 IPv6)여야 합니다; -ip 8의 경우 IP 주소를
포함하는 파일이어야 합니다(한 줄에 하나씩).
-s SHODAN, --shodan SHODAN
+ SHODAN 옵션:
+ 1: IP 조회;
+ 2: 검색 쿼리.
-S SHODAN_ARG, --shodanarg SHODAN_ARG
+ SHODAN의 -s 옵션에 대한 인수를 제공합니다. "-s 1"인 경우 -S는
IP 주소여야 합니다; "-s 2"인 경우 -S는 검색 쿼리여야 합니다(예:
"apache", "port:22 country:BR").
-ab ABUSEIPDB, --abuseipdb ABUSEIPDB
+ ABUSEIPDB 옵션:
+ 1: IP 평판을 확인합니다.
-AB ABUSEIPDB_ARG, --abuseipdbarg ABUSEIPDB_ARG
+ ABUSEIPDB의 -ab 옵션에 대한 IP 주소를 제공합니다.
-gn GREYNOISE, --greynoise GREYNOISE
+ GREYNOISE 옵션:
+ 1: 빠른 IP 확인(커뮤니티 API).
-GN GREYNOISE_ARG, --greynoisearg GREYNOISE_ARG
+ GREYNOISE의 -gn 옵션에 대한 IP 주소를 제공합니다.
-wh WHOIS, --whois WHOIS
+ WHOIS 옵션:
+ 1: 도메인 whois 조회;
+ 2: IP whois/RDAP 조회.
-WH WHOIS_ARG, --whoisarg WHOIS_ARG
+ WHOIS의 -wh 옵션에 대한 인수를 제공합니다. "-wh 1"인 경우 -WH는
도메인 이름이어야 합니다; "-wh 2"인 경우 -WH는 IP 주소여야 합니다.
-ct CRTSH, --crtsh CRTSH
+ API 키가 필요 없는 crt.sh를 통해 Certificate Transparency 로그를
조회합니다. 가능한 값:
+ 1: -CT로 주어진 도메인에 대해 발급된 인증서에서 확인된 고유 DNS
이름을 나열합니다. 이는 서브도메인을 열거하는 저렴한 방법입니다.
인증서가 여러 테넌트를 포함할 수 있기 때문에 나타나는 다른 도메인에
속한 이름은 별도로 계산되어 보고됩니다;
+ 2: 인증서 자체를 나열합니다(식별자, 발급자, 일반 이름 및 유효 기간,
최신순).
-CT CRTSH_ARG, --crtsharg CRTSH_ARG
+ -ct 옵션으로 조회되는 도메인 이름을 제공합니다.
-u URLSCANIO, --urlscanio URLSCANIO
+ URLSCAN.IO 옵션:
+ 1: 스캔을 위해 URL을 제출합니다;
+ 2: UUID로 스캔 결과를 가져옵니다;
+ 3: Elasticsearch 쿼리 구문을 사용하여 스캔을 검색합니다
(예: "page.server:nginx", "task.tags:phishing");
+ 4: 도메인으로 스캔을 검색합니다;
+ 5: IP로 스캔을 검색합니다.
-U URLSCANIO_ARG, --urlscanioarg URLSCANIO_ARG
+ URLSCAN.IO의 -u 옵션에 대한 인수를 제공합니다. "-u 1"인 경우 -U는
스캔을 위해 제출할 URL이어야 합니다; "-u 2"인 경우 -U는 UUID여야
합니다(-u 1에서 얻음); "-u 3"인 경우 -U는 Elasticsearch 쿼리여야
합니다(예: "page.server:nginx", "task.tags:phishing"); "-u 4"인 경우 -U는
도메인이어야 합니다; "-u 5"인 경우 -U는 IP 주소여야 합니다.
--correlate-hash HASH
+ 서비스 간 해시 상관관계: VirusTotal, Hybrid Analysis, Triage 및
AlienVault 전반에 걸쳐 해시를 조회하여 통합 보고서를 생성합니다.
--extract-iocs SOURCE
+ 파일(.txt, .pdf, .eml) 또는 URL(http/https)에서 IOC(해시, IP, URL,
도메인, 이메일, CVE)를 추출합니다.
PDF 추출에는 다음이 필요합니다: pip install malwoverview[pdf]
--yara RULES_FILE
+ 스캔에 사용할 YARA 규칙 파일입니다. --yara-target과 함께 사용해야
합니다.
다음이 필요합니다: pip install malwoverview[yara]
--yara-target TARGET
+ YARA 규칙으로 스캔할 파일 또는 디렉터리입니다.
--peinfo TARGET
+ 파일 또는 디렉터리의 로컬 PE 트리아지(API 키 불필요): 파일 유형, 크기,
오버레이, 오버레이 크기 및 엔트로피. 디렉터리는 재귀적으로 스캔됩니다.
엔트로피는 가장 높은 PE 섹션 엔트로피이거나, 비 PE 파일의 경우
전체 파일 Shannon 엔트로피입니다.
--entropy-threshold VALUE
+ --peinfo가 파일을 패킹 또는 암호화된 것으로 표시하는 엔트로피 값입니다.
기본값: 7.0
--sigcheck TARGET
+ 파일 또는 디렉터리의 Authenticode 서명을 확인합니다(API 키 불필요):
상태, 서명자, 발급자, 인증서 날짜, 다이제스트 알고리즘, 인증서
지문 및 일련 번호. 상태는 VALID, TAMPERED, UNTRUSTED, EXPIRED,
MALFORMED, INVALID, NONE(내장 서명 없음), PRESENT(서명이 있지만
검증되지 않음) 또는 N/A(PE 파일이 아님) 중 하나입니다. 내장 서명만
읽습니다: NONE으로 보고된 파일도 Windows 카탈로그를 통해 서명될 수
있습니다.
전체 검증에는 다음이 필요합니다: pip install malwoverview[signature]
VALID는 파일이 서명된 인증서와 여전히 일치함을 의미합니다.
이는 파일에 대한 판정이 아닙니다: 서명 인증서는 도난당하고, 악용되고,
실수로 발급되며, 멀웨어가 유효한 Microsoft 서명을 지닌 적도 있습니다.
내장 서명은 오버레이에 저장되므로 서명된 파일은 항상 하나를 보고하며
그 오버레이는 추가된 페이로드가 아닙니다.
인증서 폐기는 확인되지 않습니다. 네트워크 요청이 이루어지지 않으므로
나중에 폐기된 인증서로 서명된 파일도 여전히 VALID로 보고됩니다.
서명은 카운터서명을 지닌 경우 인증서가 만료된 후에도 VALID로
유지됩니다. 카운터서명은 인증서가 아직 유효할 때 파일이 서명되었음을
증명하기 때문입니다. 이것이 Authenticode가 작동하도록 의도된 방식이며,
보고서는 그런 경우 이를 명시합니다: VALID 옆에 과거의 만료 날짜가
있는 것은 모순이 아닙니다.
파일은 둘 이상의 내장 서명을 지닐 수 있으며, 일반적으로 호환성을 위한
SHA-1과 SHA-256이 있고 서명자는 종종 다릅니다. Signer 열은 그중
하나를 표시하고 나머지는 (+N)으로 표시합니다; 단일 파일에 --sigcheck를
실행하면 각 서명을 자체 다이제스트 알고리즘, 인증서, 지문 및 일련
번호와 함께 나열합니다.
--no-signature
+ --peinfo 및 --sigcheck에서 서명 검증을 건너뛰고 서명이 있는지만
보고합니다. 대규모 디렉터리에서 유용합니다.
--sig-verify-mode MODE
+ 다중 서명 파일의 상태를 결정하는 내장 서명: any, first, all 또는
best. 기본값: best
best는 가장 강력한 다이제스트 알고리즘으로 만들어진 서명을 따르며,
이는 Windows가 존중하는 서명입니다. first는 파일 순서를 따르며
sigcheck.exe와 일치합니다. all은 모든 서명이 검증되어야 하고, any는
단 하나만 검증되면 파일을 허용합니다. 선택이 중요합니다: 517개의
다중 서명 드라이버 전반에서 37개가 이 설정에 따라 상태가 바뀌며,
any는 first가 거부하는 21개 파일에서 VALID로 보고합니다.
--attack-map
+ 동작 보고서에 대한 MITRE ATT&CK 기법 매핑을 활성화합니다.
GENERAL OPTIONS:
출력 형식, 프록시, 캐시 및 상세 정보 옵션
--output-format text|json|csv
+ 출력 형식: text(기본값, 컬러 터미널), json 또는 csv.
--proxy URL
+ HTTP/HTTPS/SOCKS5 프록시 URL(예: socks5://127.0.0.1:9050).
--quiet
+ 배너 및 장식용 출력을 억제합니다.
--verbose
+ 디버그 정보(요청 URL, 타이밍 등)를 표시합니다.
--no-cache
+ 결과 캐싱을 비활성화합니다.
--cache-ttl SECONDS
+ 캐시 TTL(초)입니다(기본값: 3600).
--cache-stats
+ 로컬 결과 캐시 위치, 보유한 항목 수, 현재 --cache-ttl에 따라 만료된
항목 수, 디스크상의 크기를 표시합니다.
그런 다음 종료합니다.
--prune-cache
+ 로컬 결과 캐시에서 만료된 항목만(--cache-ttl에 따라) 삭제하고
종료합니다.
--clear-cache
+ 로컬 결과 캐시에서 모든 항목을 삭제하고 종료합니다.
--no-resolve
+ 결과에서 발견된 호스트 이름을 확인하거나 지리적 위치를 조회하지
않습니다. 피드(예: URLHaus 페이로드 및 태그 목록)를 나열하면 일반적으로
호스트가 표시하는 모든 URL을 조회하게 되어, 해당 인프라의 운영자에게
조사되고 있음을 알립니다. 이 옵션을 사용하면 위치 열에 대신
"Not Resolved"가 표시됩니다.
--defang
+ --extract-iocs로 나열된 IOC를 디팽된 형식(hxxp://example[.]com)으로
출력하여 클릭 가능해지지 않고 보고서나 티켓에 복사할 수 있게 합니다.
해당 목록에만 적용되며 출력만 변경합니다: 쿼리는 여전히 실제 값으로
이루어집니다.
--no-ioc-filter
+ --extract-iocs가 기본적으로 적용하는 노이즈 필터링을 끕니다.
일반적으로 HTML 페이지는 <script>, <style> 및 <svg> 블록을 건너뛰고,
도메인은 마지막 레이블이 실제 최상위 도메인일 때만 보고되며, 소스
사이트로 돌아가는 링크나 알려진 페이지 구성 요소(분석, 폰트, 소셜
버튼)는 제거됩니다. 이 옵션을 사용하면 원시 소스의 모든 정규식
일치가 대신 보고됩니다.
--report html|pdf
+ 지정된 형식으로 보고서를 생성합니다.
PDF 내보내기에는 다음이 필요합니다: pip install malwoverview[pdf]
--report-file PATH
+ 생성된 보고서의 출력 경로입니다.
--interactive
+ 대화형 REPL 모드를 시작합니다.
--tui
+ 서비스 선택기, 쿼리 입력 및 스크롤 가능한 결과 패널이 있는 TUI(Text
User Interface) 대시보드 모드를 시작합니다. 다음이 필요합니다: pip install malwoverview[tui]
--enrich
+ 결과의 LLM 강화를 활성화합니다. 각 쿼리 결과 뒤에 AI 생성 위협 평가를
추가합니다. 멀웨어 해시 조회, IP 평판 확인, CVE 검색(NIST 및 VulnCheck),
서비스 간 상관관계를 포함한 모든 쿼리 유형에서 작동합니다. .malwapi.conf
[LLM] 섹션에 구성된 제공자를 사용하거나 --llm으로 재정의합니다.
지원되는 제공자:
- claude: Anthropic Claude API(최고 품질, 유료)
- gemini: Google Gemini API(결제 필요)
- openai: OpenAI API(유료, GPT 모델)
- ollama: 로컬 Ollama 인스턴스(무료, 비공개)
--llm PROVIDER
+ 강화를 위한 LLM 제공자를 재정의합니다(--enrich와 함께 사용).
예:
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm claude
malwoverview -vc 3 -VC CVE-2024-3400 --enrich --llm ollama
VULNERABILITY OPTIONS:
취약점 데이터베이스 쿼리 옵션
NIST CVE Database Query:
NIST CVE 데이터베이스에 대한 쿼리 옵션(쿼리 유형과 값은 필수이며, 다른 옵션은 선택 사항)
--nist NIST_OPTION, 쿼리 유형: 1=CPE/Product Search, 2=CVE ID Search,
3=CVSS v3 Severity, 4=Keyword Search, 5=CWE ID Search,
6=Component Search(이름 또는 로컬 바이너리 경로)
--NIST NIST_ARG 검색 값(형식은 쿼리 유형에 따라 다름)
--time YEARS 결과를 최근 N년으로 제한
--rpp NUM 페이지네이션 중 사용되는 NVD 페이지 크기(기본값: 2000, 최대: 2000)
--startindex NUM 페이지네이션 시작 인덱스(기본값: 0)
--ncves NUM 출력을 처음 N개의 CVE로 제한(--nist 6은 기본적으로 가장 최근
25개를 나열하며, 0은 모두 나열)
--sort-by KEY --nist 결과를 cve(CVE ID 연도, 기본값) 또는
published(NVD 게시 날짜)로 정렬합니다. --time은 동일한 기준으로
결과를 제한합니다
VulnCheck Database Query:
VulnCheck 취약점 데이터베이스에 대한 쿼리 옵션(Community/Free 티어)
-vc VULNCHECK_OPTION, --vulncheck VULNCHECK_OPTION
+ 쿼리 유형:
1: 사용 가능한 인덱스 나열;
2: KEV(Known Exploited Vulnerabilities) 가져오기;
3: KEV에서 CVE 검색;
4: KEV 백업 링크 가져오기;
5: MITRE CVE 나열;
6: NIST NVD2 CVE 나열;
7: MITRE에서 CVE 검색;
8: NIST NVD2에서 CVE 검색.
-VC VULNCHECK_ARG, --VULNCHECK VULNCHECK_ARG
+ 검색 값(옵션 3/7/8의 경우 CVE ID, 옵션 2/5/6의 경우 최대 결과 수,
예: 50).
## SUBCOMMANDS
버전 8.0부터 Malwoverview는 기존 플래그 기반 구문과 함께 대체
서브커맨드 구문을 지원합니다. 두 구문 모두 완전히 지원되며
동일한 결과를 생성합니다.
사용 가능한 서브커맨드:
vt VirusTotal 작업(file, av, hash, url, ip, domain, submit, behavior, batch)
ha Hybrid Analysis 작업(report, submit, download, batch, dir)
bazaar Malware Bazaar 작업(hash, tag, download, batch, dir)
triage Triage 작업(search, summary, submit, dynamic, batch, dir)
urlhaus URLHaus 작업(hash, url, tag, download, batch)
ip IP 주소 조회(info, shodan, abuse, greynoise, all, batch)
whois Whois/RDAP 조회(domain, ip)
shodan Shodan 작업(ip, search)
correlate 서비스 간 상관관계(hash)
extract 파일 또는 URL에서 IOC 추출
yara YARA 규칙 스캔
nist NIST CVE 데이터베이스 쿼리
vulncheck VulnCheck 데이터베이스 쿼리
서브커맨드 예(플래그 기반 구문과 동일):
# 다음 쌍은 동일합니다:
malwoverview vt hash <sha256> # 다음과 동일: malwoverview -v 8 -V <sha256>
malwoverview vt behavior <sha256> # 다음과 동일: malwoverview -v 12 -V <sha256>
malwoverview ha report <hash> --env 3 # 다음과 동일: malwoverview -a 3 -A <hash>
malwoverview ha batch <hashfile> # 다음과 동일: malwoverview -a 12 -A <hashfile>
malwoverview bazaar hash <sha256> # 다음과 동일: malwoverview -b 1 -B <sha256>
malwoverview bazaar batch <hashfile> # 다음과 동일: malwoverview -b 11 -B <hashfile>
malwoverview bazaar dir <directory> # 다음과 동일: malwoverview -b 12 -B <directory>
malwoverview triage search sha256:<value> # 다음과 동일: malwoverview -x 1 -X sha256:<value>
malwoverview triage batch <hashfile> # 다음과 동일: malwoverview -x 8 -X <hashfile>
malwoverview ip all <ipaddr> # 다음과 동일: malwoverview -ip 7 -IP <ipaddr>
malwoverview ip shodan <ipaddr> # 다음과 동일: malwoverview -ip 4 -IP <ipaddr>
malwoverview ip batch <ipfile> # 다음과 동일: malwoverview -ip 8 -IP <ipfile>
malwoverview whois domain <domain> # 다음과 동일: malwoverview -wh 1 -WH <domain>
malwoverview correlate hash <sha256> # 다음과 동일: malwoverview --correlate-hash <sha256>
malwoverview extract <file|url> # 다음과 동일: malwoverview --extract-iocs <file|url>
malwoverview yara <rules> <target> # 다음과 동일: malwoverview --yara <rules> --yara-target <target>
malwoverview nist 2 CVE-2021-44228 # 다음과 동일: malwoverview --nist 2 --NIST CVE-2021-44228
자세한 내용은 모든 서브커맨드에서 --help를 사용하십시오:
malwoverview vt --help
malwoverview ip --help
malwoverview ha report --help
## EXAMPLES
### MALWARE OPTIONS:malwoverview -d /home/remnux/malware/windows_2/
malwoverview -v 1 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 2 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 3 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 4 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe,
malwoverview -v 5 -V http://jamogames.com/templates/JLHk/
malwoverview -v 6 -V 185.220.100.243
malwoverview -v 7 -V xurl.es
malwoverview -v 8 -V ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview -v 9 -V cc2d791b16063a302e1ebd35c0e84e6cf6519e90bb710c958ac4e4ddceca68f7.exe
malwoverview -v 10 -V /home/remnux/malware/hash_list_3.txt
malwoverview -v 11 -V /home/remnux/malware/hash_list_3.txt
malwoverview -v 12 -V 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
malwoverview -v 13 -V /largefiles/4b3b46558cffe1c0b651f09c719af2779af3e4e0e43da060468467d8df445e93
malwoverview -v 14 -V /home/remnux/rules/apt_rules.yar
malwoverview -v 14 -V /home/remnux/rules/
malwoverview -v 15
malwoverview -v 16 -V 1712345678-abcdef0123456789
malwoverview -v 17 -V 1712345678-abcdef0123456789
malwoverview -v 18 -V /home/remnux/rules/livehunt.yar
malwoverview -v 19
malwoverview -v 20
malwoverview -a 1 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 1 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8.exe
malwoverview -a 2 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 3 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 4 -A malware1.apk
malwoverview -a 4 -A 82eb6039cdda6598dc23084768e18495d5ebf3bc3137990280bc0d9351a483eb
malwoverview -a 5 -A 2b03806939d1171f063ba8d14c3b10622edb5732e4f78dc4fe3eac98b56e5d46
malwoverview -a 5 -A 2b03806939d1171f063ba8d14c3b10622edb5732e4f78dc4fe3eac98b56e5d46.elf
malwoverview -a 6 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 7 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 8 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 9 -A malware_7.apk
malwoverview -a 10 -A 925f649617743f0640bdfff4b6b664b9e12761b0e24bbb99ca72740545087ad2.elf
malwoverview -a 11 -A cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview -a 12 -A /home/remnux/malware/hash_list.txt
malwoverview -a 13 -A /home/remnux/malware/samples/
malwoverview -l 1 -L d3dcc08c9b955cd3f68c198e11d5788869d1b159dc8014d6eaa39e6c258123b0
malwoverview -l 2
malwoverview -l 3
malwoverview -l 4
malwoverview -l 5
malwoverview -l 6
malwoverview -l 8 -L PE32
malwoverview -j 1 -J 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview -j 2 -J 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview -j 3 -J https://unada.us/acme-challenge/3NXwcYNCa/
malwoverview -j 4 -J Qakbot
malwoverview -j 5 -J Emotet
malwoverview -j 5 -J Icedid
malwoverview -j 6
malwoverview -j 7
malwoverview -j 8 -J /home/remnux/malware/hash_list.txt
malwoverview -p 1 -P 1999ba265cd51c94e8ae3a6038b3775bf9a49d6fe57d75dbf1726921af8a7ab2
malwoverview -p 2 -P 301524c3f959d2d6db9dffdf267ab16a706d3286c0b912f7dda5eb42b6d89996.exe
malwoverview -p 3 -P 68c11ef39769674123066bcd52e1d687502eb6c4c0788b4f682e8d31c15e5306
malwoverview -p 4 -P 68c11ef39769674123066bcd52e1d687502eb6c4c0788b4f682e8d31c15e5306.exe
malwoverview -p 5 -P 188.40.75.132
malwoverview -p 6 -P covid19tracer.ca
malwoverview -p 7 -P http://ksahosting.net/wp-includes/utf8.php
malwoverview -p 8 -P Qakbot
malwoverview -y 1
malwoverview -y 2
malwoverview -y 3
malwoverview -y 4 -Y com.spaceship.netprotect
malwoverview -y 5 -Y com.mwr.dz
malwoverview -v 1 -V 368afeda7af69f329e896dc86e9e4187a59d2007e0e4b47af30a1c117da0d792.apk
malwoverview -n 1 -N 10
malwoverview -n 2 -N 176.57.215.100
malwoverview -n 3 -N threesmallhills.com
malwoverview -n 4 -N 6d1756aa6b45244764409398305c460368d64ff9 -o 0
malwoverview -n 5 -N http://ksahosting.net/wp-includes/utf8.php
malwoverview -m 1 | more
malwoverview -m 2 | more
malwoverview -m 3 | more
malwoverview -m 4 -M apt41 | more
malwoverview -m 5 | more
malwoverview -m 6 -M win.qakbot
malwoverview -m 7 -M 3d375d0ead2b63168de86ca2649360d9dcff75b3e0ffa2cf1e50816ec92b3b7d
malwoverview -m 8 -M win.qakbot
malwoverview -m 9 -M tlp_white
malwoverview -m 9 -M tlp_green
malwoverview -b 1 -B c9d7b5d06cd8ab1a01bf0c5bf41ef2a388e41b4c66b1728494f86ed255a95d48
malwoverview -b 2 -B Revil | more
malwoverview -b 3 -B f34d5f2d4577ed6d9ceec516c1f5a744
malwoverview -b 4 -B 100
malwoverview -b 4 -B time | more
malwoverview -b 5 -B bda50ff249b947617d9551c717e78131ed32bf77db9dc5b7591d3e1af6cb2f1a
malwoverview -b 6 -B 3 | more
malwoverview -b 7 -B 193.150.103.37:21330
malwoverview -b 8 -B Magecart | more
malwoverview -b 9 -B "Cobalt Strike"
malwoverview -b 10 | more
malwoverview -x 1 -X score:10 | more
malwoverview -x 1 -X 71382e72d8fb3728dc8941798ab1c180493fa978fd7eadc1ab6d21dae0d603e2
malwoverview -x 2 -X 220315-qxzrfsadfl
malwoverview -x 3 -X cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview -x 4 -X http://ztechinternational.com/Img/XSD.exe
malwoverview -x 5 -X 220315-xmbp7sdbel
malwoverview -x 6 -X 220315-xmbp7sdbel
malwoverview -x 7 -X 220315-xmbp7sdbel
malwoverview -ip 1 -IP 8.8.8.8
malwoverview -ip 3 -IP 8.8.8.8
malwoverview -b 5 -B <hash> -O <directory>
malwoverview -b 11 -B /home/remnux/malware/hash_list.txt
malwoverview -b 12 -B /home/remnux/malware/samples/
malwoverview -b 13 -B Windows_Trojan_Emotet
malwoverview -b 14
malwoverview -b 15
malwoverview -x 8 -X /home/remnux/malware/hash_list.txt
malwoverview -x 9 -X /home/remnux/malware/samples/
malwoverview -ip 4 -IP 8.8.8.8
malwoverview -ip 5 -IP 8.8.8.8
malwoverview -ip 6 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt -D 1
malwoverview -s 1 -S 8.8.8.8
malwoverview -s 2 -S "apache"
malwoverview -ab 1 -AB 185.220.100.243
malwoverview -gn 1 -GN 185.220.100.243
malwoverview -wh 1 -WH example.com
malwoverview -wh 2 -WH 8.8.8.8
malwoverview -ct 1 -CT iana.org
malwoverview -ct 2 -CT iana.org
malwoverview -u 1 -U https://example.com
malwoverview -u 2 -U 019ce889-ab8d-768b-894e-3e5bf5401f8d
malwoverview -u 3 -U task.tags:phishing
malwoverview -u 4 -U example.com
malwoverview -u 5 -U 8.8.8.8
malwoverview --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview --extract-iocs /home/remnux/malware/report.txt
malwoverview --extract-iocs /home/remnux/malware/report.pdf
malwoverview --extract-iocs https://example.com/threat-report.html
malwoverview --yara /home/remnux/rules/malware.yar --yara-target /home/remnux/malware/samples/
malwoverview --yara /home/remnux/rules/ --yara-target /home/remnux/malware/samples/
malwoverview --peinfo /home/remnux/malware/samples/
malwoverview --peinfo /home/remnux/malware/dropper.exe
malwoverview --peinfo /home/remnux/malware/samples/ --entropy-threshold 7.5
malwoverview --peinfo /home/remnux/malware/samples/ --output-format csv
malwoverview --peinfo /home/remnux/malware/samples/ --no-signature
malwoverview --sigcheck /home/remnux/malware/suspicious.exe
malwoverview --sigcheck /home/remnux/malware/samples/
malwoverview --sigcheck /home/remnux/malware/samples/ --output-format json
malwoverview --sigcheck /home/remnux/malware/samples/ --sig-verify-mode all
malwoverview --interactive
malwoverview --tui
malwoverview -v 8 -V <hash> --output-format json
malwoverview -ip 3 -IP 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview -v 12 -V <hash> --attack-map
malwoverview -a 1 -A <hash> --attack-map
malwoverview --correlate-hash <hash> --attack-map
# Local result cache
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
# Download the YARAify rule set and scan with it (-b 15 extracts into
# <output directory>/yaraify-rules, so use the same -O for both steps)
malwoverview -b 14 -O /home/remnux/rules
malwoverview -b 15 -O /home/remnux/rules
malwoverview --yara /home/remnux/rules/yaraify-rules --yara-target /home/remnux/malware/samples/
# Malpedia rule set (-m 9 saves malpedia_yara_<level>.zip; extract it first)
malwoverview -m 9 -M tlp_white -O /home/remnux/rules
unzip /home/remnux/rules/malpedia_yara_tlp_white.zip -d /home/remnux/rules/malpedia
malwoverview --yara /home/remnux/rules/malpedia --yara-target /home/remnux/malware/samples/
# LLM enrichment (append AI threat assessment to any query)
malwoverview -v 8 -V <hash> --enrich # uses provider from config
malwoverview -v 8 -V <hash> --enrich --llm claude # override: use Claude
malwoverview -v 8 -V <hash> --enrich --llm ollama # override: use Ollama
malwoverview -v 8 -V <hash> --enrich --llm openai # override: use OpenAI
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich # CVE enrichment (NIST)
malwoverview -vc 3 -VC CVE-2024-3400 --enrich # CVE enrichment (VulnCheck)
malwoverview --nist 4 --NIST palo alto --enrich # keyword search + enrichment
### SUBCOMMAND SYNTAX (alternative to flags):
# VirusTotal
malwoverview vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview vt file 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt av 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt url http://jamogames.com/templates/JLHk/
malwoverview vt ip 185.220.100.243
malwoverview vt domain xurl.es
malwoverview vt submit cc2d791b16063a302e1ebd35c0e84e6cf6519e90bb710c958ac4e4ddceca68f7.exe
malwoverview vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
malwoverview vt batch /home/remnux/malware/hash_list_3.txt
malwoverview vt batch /home/remnux/malware/hash_list_3.txt --public
# Hybrid Analysis
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8 --env 3
malwoverview ha submit 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview ha download cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview ha batch /home/remnux/malware/hash_list.txt
malwoverview ha dir /home/remnux/malware/samples/
# Malware Bazaar
malwoverview bazaar hash c9d7b5d06cd8ab1a01bf0c5bf41ef2a388e41b4c66b1728494f86ed255a95d48
malwoverview bazaar tag Revil | more
malwoverview bazaar download bda50ff249b947617d9551c717e78131ed32bf77db9dc5b7591d3e1af6cb2f1a
malwoverview bazaar batch /home/remnux/malware/hash_list.txt
malwoverview bazaar dir /home/remnux/malware/samples/
# Triage
malwoverview triage search score:10 | more
malwoverview triage search sha256:71382e72d8fb3728dc8941798ab1c180493fa978fd7eadc1ab6d21dae0d603e2
malwoverview triage summary 220315-qxzrfsadfl
malwoverview triage submit cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview triage dynamic 220315-xmbp7sdbel
malwoverview triage batch /home/remnux/malware/hash_list.txt
malwoverview triage dir /home/remnux/malware/samples/
# URLHaus
malwoverview urlhaus hash 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview urlhaus url https://unada.us/acme-challenge/3NXwcYNCa/
malwoverview urlhaus tag Qakbot
malwoverview urlhaus download 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
# IP lookups
malwoverview ip info 8.8.8.8
malwoverview ip shodan 8.8.8.8
malwoverview ip abuse 185.220.100.243
malwoverview ip greynoise 185.220.100.243
malwoverview ip all 8.8.8.8
# Shodan (standalone)
malwoverview shodan ip 8.8.8.8
malwoverview shodan search "apache"
# Whois
malwoverview whois domain example.com
malwoverview whois ip 8.8.8.8
# Cross-service correlation
malwoverview correlate hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# IOC extraction (text, PDF, email, or URL)
malwoverview extract /home/remnux/malware/report.txt
malwoverview extract /home/remnux/malware/report.pdf
malwoverview extract https://example.com/threat-report.html
# YARA scanning
malwoverview yara /home/remnux/rules/malware.yar /home/remnux/malware/samples/
# NIST CVE queries
malwoverview nist 1 "windows" --ncves 50
malwoverview nist 2 CVE-2021-44228
malwoverview nist 3 CRITICAL --ncves 50
malwoverview nist 4 "remote code execution" --ncves 50
malwoverview nist 6 "Ancillary Function Driver for WinSock"
malwoverview nist 6 ksmbd
malwoverview nist 6 iCloud --sort-by published
# VulnCheck queries
malwoverview vulncheck 2 30
malwoverview vulncheck 3 CVE-2021-44228
# Subcommands combined with global options
malwoverview vt hash <sha256> --output-format json
malwoverview ip all 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview vt behavior <sha256> --attack-map
### INTERACTIVE MODE (--interactive):
malwoverview --interactive
# Inside the prompt (type "help" for the full list):
vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
vt file /home/remnux/malware/sample.exe
vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
vt batch /home/remnux/malware/hash_list.txt
vt retrohunt submit /home/remnux/rules/
vt retrohunt list
vt retrohunt status 1712345678-abcdef0123456789
vt livehunt notifications
bazaar yara Windows_Trojan_Emotet
bazaar yaradownload
bazaar yaraextract
bazaar dir /home/remnux/malware/samples/
urlhaus batch /home/remnux/malware/hash_list.txt
urlhaus payloads
triage submit /home/remnux/malware/sample.exe
triage pcap 220315-xmbp7sdbel
malpedia ruleset tlp_white
malpedia meta emotet
malshare types
malshare type PE32
hybrid file /home/remnux/malware/sample.exe
hybrid dir /home/remnux/malware/samples/
threatfox malwarelist
ip batch /home/remnux/malware/ip_list.txt
ip multi 8.8.8.8
ip all 8.8.8.8
crtsh subdomains iana.org
crtsh certs iana.org
android ha
android sendvt com.example.app
yara /home/remnux/rules/ /home/remnux/malware/samples/
iocs /home/remnux/malware/report.pdf
peinfo /home/remnux/malware/samples/
peinfo /home/remnux/malware/samples/ 7.5
sigcheck /home/remnux/malware/suspicious.exe
cache stats
cache prune
set attack on
set enrich claude
export json
export csv results.csv # the export path must be inside the current directory
### TUI MODE (--tui):
malwoverview --tui
# Pick a service on the left panel, type the query, press Enter.
# F3 copies the result, F4 picks an ID out of it, F5 exports the
# collected results to json, F6 exports them to csv, Ctrl+L clears.
# Ctrl+V (or Shift+Insert) pastes the clipboard into the query box from
# anywhere in the dashboard, so a hash can be pasted without clicking
# into the box first.
# The key list is printed above the results and is written again every
# time the pane is cleared, which includes the start of every search.
# While the query box has the focus, quitting is Ctrl+Q, because Q itself
# has to remain typeable.
### VULNERABILITIES OPTIONS:
# Search for Windows vulnerabilities
malwoverview --nist 1 --NIST "windows" --ncves 50
# Search for Apache vulnerabilities
malwoverview --nist 1 --NIST "apache" --ncves 30
# Search for Chrome vulnerabilities
malwoverview --nist 1 --NIST "chrome" --ncves 25
# Search for Chromium vulnerabilities
malwoverview --nist 1 --NIST "chromium" --ncves 25
# Search for Linux vulnerabilities
malwoverview --nist 1 --NIST "linux" --ncves 25
# Search for MacOS vulnerabilities
malwoverview --nist 1 --NIST "MacOS" --ncves 25
# Search for Log4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-44228"
# Search for ProxyShell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-34473"
# Search for Spring4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2022-22965"
# Search for CRITICAL severity vulnerabilities
malwoverview --nist 3 --NIST "CRITICAL" --ncves 50
# Search for HIGH severity vulnerabilities
malwoverview --nist 3 --NIST "HIGH" --ncves 40
# Search for MEDIUM severity vulnerabilities
malwoverview --nist 3 --NIST "MEDIUM" --ncves 30
# Search for Authentication Bypass vulnerabilities
malwoverview --nist 4 --NIST "authentication bypass" --ncves 30
# Search for Remote Code Execution (RCE) vulnerabilities
malwoverview --nist 4 --NIST "remote code execution" --ncves 50
# Search for SQL injection vulnerabilities
malwoverview --nist 4 --NIST "sql injection" --ncves 25
# Search for Path Traversal vulnerabilities (CWE-22)
malwoverview --nist 5 --NIST "CWE-22" --ncves 30
# Search for SQL Injection vulnerabilities (CWE-89)
malwoverview --nist 5 --NIST "CWE-89" ---ncves 40
# Search for Cross-Site Scripting vulnerabilities (CWE-79)
malwoverview --nist 5 --NIST "CWE-79" --ncves 35
# List the CVEs of a component by reading a local binary, whose VERSIONINFO
# supplies both the file name and the component description to search on
malwoverview --nist 6 --NIST "C:\Windows\System32\drivers\afd.sys"
# The same search from the component name alone, when the binary is not at hand
malwoverview --nist 6 --NIST "Ancillary Function Driver for WinSock"
malwoverview --nist 6 --NIST "Common Log File System Driver" --ncves 40
# The Linux and Apple equivalents, named the same way
malwoverview --nist 6 --NIST ksmbd
malwoverview --nist 6 --NIST iCloud
# Ordered by the NVD publication date instead of the CVE ID year
malwoverview --nist 6 --NIST iCloud --sort-by published
# All CVEs of a product from a partial CPE, with no version
malwoverview --nist 1 --NIST "cpe:2.3:a:openbsd:openssh"
# All CVEs of one exact product version
malwoverview --nist 1 --NIST "cpe:2.3:a:openbsd:openssh:9.1:*:*:*:*:*:*:*"# 사용 가능한 VulnCheck 인덱스 목록 (Community/Free tier)
malwoverview -vc 1
# Known Exploited Vulnerabilities (KEV) 가져오기 - 30개 결과
malwoverview -vc 2 -VC 30
# Known Exploited Vulnerabilities (KEV) 가져오기 - 100개 결과
malwoverview -vc 2 -VC 100
# KEV 데이터베이스에서 특정 CVE 검색
malwoverview -vc 3 -VC CVE-2021-44228
# KEV 데이터베이스에서 특정 CVE 검색
malwoverview -vc 3 -VC CVE-2022-22965
# VulnCheck KEV 데이터셋의 백업 다운로드 링크 가져오기
malwoverview -vc 4
# MITRE 데이터베이스에서 최근 CVE 목록
malwoverview -vc 5
# MITRE 데이터베이스에서 최근 CVE 목록 - 20개 결과
malwoverview -vc 5 -VC 20
# NIST NVD2 데이터베이스에서 최근 CVE 목록
malwoverview -vc 6
# NIST NVD2 데이터베이스에서 최근 CVE 목록 - 50개 결과
malwoverview -vc 6 -VC 50
# MITRE 데이터베이스에서 특정 CVE 검색 (공식 CVE 레코드)
malwoverview -vc 7 -VC CVE-2024-21412
# NIST NVD2에서 특정 CVE 검색 (CVSS 점수, CWE, CISA KEV 상태)
malwoverview -vc 8 -VC CVE-2024-21412
## 8.2.0의 새로운 기능, 예제로 알아보기
이 버전이 추가하거나 변경한 모든 내용을 실행할 수 있는 명령어로 정리했습니다. 동일한 목록의 서술형 버전은 아래 HISTORY의 8.2.0 블록에 있습니다.
### 1. 모든 플랫폼에서 컴포넌트의 CVE 목록 확인
인수는 컴포넌트 자체입니다. 이름을 지정하면 어디서든 검색이 실행됩니다:
malwoverview --nist 6 --NIST openssl
malwoverview --nist 6 --NIST systemd
malwoverview --nist 6 --NIST WebKit
malwoverview --nist 6 --NIST Safari
malwoverview --nist 6 --NIST "Ancillary Function Driver for WinSock"
Linux 커널 모듈도 같은 방식으로 이름을 지정하며, 커널 내 SMB 서버인 ksmbd는 236개의 CVE와 일치하는 반면 Windows 대응물인 srv2.sys는 1개와 일치합니다:
malwoverview --nist 6 --NIST ksmbd
malwoverview --nist 6 --NIST nf_tables
iOS와 macOS에서는 프레임워크 파일이 아니라 Apple이 제공하는 컴포넌트의 이름을 지정하세요:
malwoverview --nist 6 --NIST iCloud
malwoverview --nist 6 --NIST FaceTime
파일이 아니라 프로젝트나 프레임워크의 이름을 지정하세요. Linux에서 라이브러리 파일 libssl.so.3은 9개의 CVE와 일치하지만 프로젝트 이름 openssl은 658개와 일치하며, macOS와 iOS 프레임워크도 마찬가지입니다.
### 2. 대신 Windows 바이너리를 지정하는 경우
Windows PE는 자체 컴포넌트 이름을 기록하므로, 하나를 지정하면 세 개의 키를 검색하고 결과를 병합합니다: 디스크상의 파일 이름, 내부 이름, 컴포넌트 설명:
malwoverview --nist 6 --NIST "C:\Windows\System32\drivers\afd.sys"
이는 중요한데, 이름으로 afd.sys는 7개의 CVE와 일치하지만 드라이버 자체는 74개와 일치하기 때문입니다 - 최신 NVD 항목은 파일이 아니라 컴포넌트의 이름을 지정합니다:
malwoverview --nist 6 --NIST afd.sys
Windows PE가 아닌 파일에는 그러한 메타데이터가 없으므로 이름만 검색되며, 보고서는 실패하는 대신 그 사실을 알려줍니다.
### 3. 나열할 CVE 개수 선택
기본적으로 가장 최근 25개가 나열됩니다:
malwoverview --nist 6 --NIST "C:\Windows\System32\win32k.sys"
# 대신 전체 이력
malwoverview --nist 6 --NIST "C:\Windows\System32\win32k.sys" --ncves 0
# 다른 행 개수
malwoverview --nist 6 --NIST openssl --ncves 50
# 행 개수가 아니라 연도로 제한
malwoverview --nist 6 --NIST "C:\Windows\System32\drivers\clfs.sys" --time 3
### 4. CVE 정렬 방식 선택
행은 CVE ID의 연도를 기준으로 가장 최근 순으로 나열됩니다:
malwoverview --nist 6 --NIST iCloud
NVD는 ID가 할당된 지 수년 후에 레코드를 게시하는 경우가 많아 "최근"에 대한 두 가지 해석이 서로 다릅니다. 대신 게시 날짜로 정렬하면 그렇게 소급 입력된 행들이 맨 위로 올라옵니다:
malwoverview --nist 6 --NIST iCloud --sort-by published
이 플래그는 모든 --nist 옵션에 적용되며, --time은 동일한 기준으로 결과를 제한하므로 순서와 필터가 더 이상 서로 어긋나지 않습니다:
malwoverview --nist 6 --NIST iCloud --time 5
malwoverview --nist 6 --NIST iCloud --time 5 --sort-by published
### 5. Vendor 열 읽기
NIST는 키워드의 단어를 개별적으로 일치시키므로, 흔한 단어로 이름이 지정된 컴포넌트는 다른 벤더의 제품과도 일치합니다. 이 여덟 행 중 실제로 vmx86.sys인 것은 하나뿐이며, Vendor 열이 어느 것인지 알려줍니다:
malwoverview --nist 6 --NIST "C:\Windows\System32\drivers\vmx86.sys"
같은 열이 널리 재사용되는 이름의 벤더들을 구분합니다:
malwoverview --nist 6 --NIST Bluetooth
### 6. 거의 아무것도 반환하지 않던 검색
키워드 검색이 일치한 74개 중 1개의 CVE만 보고했습니다:
malwoverview --nist 4 --NIST "Ancillary Function Driver"
버전이 없는 CPE는 조용히 키워드 검색이 되었는데, 이제는 해당 제품의 137개 CVE를 보고합니다:
malwoverview --nist 1 --NIST "cpe:2.3:a:openbsd:openssh"
구체적인 버전이 있는 CPE는 여전히 그 정확한 버전과 일치합니다:
malwoverview --nist 1 --NIST "cpe:2.3:a:openbsd:openssh:9.1:*:*:*:*:*:*:*"
### 7. 다른 인터페이스에서의 컴포넌트 검색
# 기계 판독 가능: 레코드가 전체 설명과 벤더를 유지
malwoverview --nist 6 --NIST openssl --output-format json
# 밝은 배경
malwoverview -o 0 --nist 6 --NIST "C:\Windows\System32\drivers\http.sys"
# 대화형 모드
malwoverview --interactive
# malwoverview> nist component WebKit
# TUI: 서비스 목록에서 NIST Component 선택
malwoverview --tui
## 8.1.0의 새로운 기능, 예제로 알아보기
이 버전이 추가하거나 변경한 모든 내용을 실행할 수 있는 명령어로 정리했습니다. 동일한 목록의 서술형 버전은 아래 HISTORY의 8.1.0 블록에 있습니다.
### 1. 번호가 바뀐 옵션 (먼저 읽어보세요)
유일한 호환성 깨지는 변경입니다. 다섯 개의 Hybrid Analysis 다운로드 옵션이 같은 일을 했으므로 하나로 합쳐졌고, 그 뒤의 두 옵션이 아래로 이동했습니다:
# Hybrid Analysis에서 샘플 다운로드 (기존 -a 11, -a 12, -a 13, -a 14 또는 -a 15)
malwoverview -a 11 -A 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# 파일에서 일괄 해시 검사 (기존 -a 16)
malwoverview -a 12 -A /home/remnux/malware/hashes.txt
# 디렉터리의 모든 파일 스캔 (기존 -a 17)
malwoverview -a 13 -A /home/remnux/malware/samples/
다른 모든 옵션은 번호를 유지했습니다. 모든 새 번호는 추가된 것입니다.
### 2. API 키도 네트워크 요청도 없는 로컬 분석
# 디렉터리 분류: 유형, 크기, 오버레이, 오버레이 크기, 엔트로피, 서명
malwoverview --peinfo /home/remnux/malware/samples/
# 패킹 또는 암호화로 간주하는 기준 낮추기 (기본값 7.0)
malwoverview --peinfo /home/remnux/malware/samples/ --entropy-threshold 6.5
# 대규모 스윕에서 서명 검증 건너뛰기
malwoverview --peinfo /home/remnux/malware/samples/ --no-signature
# YARA가 이제 전체 규칙 디렉터리를 재귀적으로 스캔
malwoverview --yara /home/remnux/rules/ --yara-target /home/remnux/malware/samples/
### 3. Authenticode: 서명되었는가, 그리고 서명이 유효한가?
# 단일 파일: 상태, 서명자, 발급자, 인증서 날짜, 지문, 일련번호
malwoverview --sigcheck /home/remnux/malware/suspicious.exe
# 전체 디렉터리, 파일당 한 행
malwoverview --sigcheck /home/remnux/malware/samples/
파일은 여러 개의 내장 서명을 가질 수 있으며 — 일반적으로 호환성을 위한 SHA-1과 SHA-256 — 서명자가 다른 경우가 많습니다. 표는 추가 서명을 (+N)으로 표시합니다; 모두 나열하려면 단일 파일 형식을 실행하세요. 어떤 서명이 상태를 결정할지 선택할 수 있습니다:
# 가장 강력한 다이제스트가 결정 (기본값, Windows가 따르는 방식)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode best
# 파일 순서상 첫 번째가 결정 (sigcheck.exe가 보고하는 방식)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode first
# 모든 서명이 검증되어야 함 (가장 엄격)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode all
# 하나의 서명만 검증되면 충분 (가장 관대)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode any
VirusTotal 자체의 서명 데이터도 이제 표시되므로, 해시 조회가 서명자 체인, 서명 날짜, 모든 인증서 지문을 보고합니다:
# 해시로 VirusTotal의 서명 블록
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# 로컬 파일을 검사할 때도 같은 블록
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
### 4. crt.sh를 통한 Certificate Transparency (API 키 불필요)
# 도메인에 발급된 인증서에서 확인된 고유 DNS 이름
malwoverview -ct 1 -CT example.com
# 인증서 자체: 식별자, 발급자, 일반 이름, 유효 기간
malwoverview -ct 2 -CT example.com
### 5. VirusTotal Retrohunt와 Livehunt (엔터프라이즈 키 필요)
# 규칙 파일 또는 규칙 디렉터리에서 Retrohunt 작업 제출
malwoverview -v 14 -V /home/remnux/rules/hunting.yar
# Retrohunt 작업 목록, 선택적으로 상태로 필터링
malwoverview -v 15
malwoverview -v 15 -V finished
# 한 작업의 상태와 진행 상황, 그다음 일치한 파일들
malwoverview -v 16 -V 1234abcd-5678-90ef-1234-567890abcdef
malwoverview -v 17 -V 1234abcd-5678-90ef-1234-567890abcdef
# Livehunt 규칙 세트 생성, 규칙 세트 목록, 알림 목록
malwoverview -v 18 -V /home/remnux/rules/livehunt.yar
malwoverview -v 19
malwoverview -v 20
### 6. YARA 규칙을 얻을 수 있는 더 많은 곳, 그리고 이를 활용하는 방법
해시 조회가 이제 샘플과 일치한 YARA 규칙을 나열하며, 다음 명령의 규칙 이름이 여기서 나옵니다:
# 1. 샘플 조회: 보고서 끝에 일치한 규칙이 표시됨
malwoverview -b 1 -B 3b89db05cd1e6283a5d23e32eb6a6c17d92953c80c93befa194a0c93a633c1b5
tags: elf Mirai upx-dec
yara rules:
ELF_Mirai
linux_generic_ipv6_catcher
unixredflags3
# 2. 그 이름 중 하나를 가져와 일치한 다른 모든 샘플 가져오기
malwoverview -b 13 -B ELF_Mirai
규칙 이름은 규칙 세트 자체에도 있으며, 이를 다운로드하여 로컬에서 읽을 수 있습니다:
# abuse.ch에서 YARAify 규칙 세트를 다운로드한 후 압축 해제.
# 둘 다 작업 디렉터리에 -O를 사용; -b 15가 거기서 아카이브를 찾음.
malwoverview -b 14 -O /home/remnux/rules/
malwoverview -b 15 -O /home/remnux/rules/
아카이브는 /home/remnux/rules/yaraify-rules.zip으로 저장되고 /home/remnux/rules/yaraify-rules/로 압축 해제되며, 규칙당 하나의 .yar 파일이 됩니다. 그 디렉터리가 --yara 대상이고, 그 파일 이름이 규칙 이름입니다:
malwoverview --yara /home/remnux/rules/yaraify-rules/ --yara-target /home/remnux/malware/samples/
여러 작성자로부터 수집한 규칙 세트는 모든 YARA 버전에 대해 깔끔하게 컴파일되지 않습니다. 구문 오류가 있는 파일은 나열되고 건너뛰며, 나머지로 스캔이 실행됩니다: 위 세트를 실행하면 557개 파일 중 548개가 컴파일되었습니다.
# TLP 수준에 대한 완전한 Malpedia YARA 규칙 세트
malwoverview -m 9 -M white
### 7. 고장 나 있었다가 이제 작동하는 옵션
# -m 1은 패밀리 목록을 반환했음; 이제 패밀리 메타 정보를 반환
malwoverview -m 1
# -l 6은 지난 24시간 동안 확인된 파일 유형을 나열, -l 8은 그중 하나를 나열
malwoverview -l 6
malwoverview -l 8 -L PE32
# -ip 3과 -ip 7은 동일했음; -ip 3은 VirusTotal + OTX,
# -ip 7은 구성된 모든 서비스를 쿼리 (IPInfo에 도달한 적이 없었음)
malwoverview -ip 3 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
# -j 8 (URLhaus 일괄 해시 검사)에 도달할 수 없었음
malwoverview -j 8 -J /home/remnux/malware/hashes.txt
### 8. 모든 옵션에 대한 기계 판독 가능 출력
json과 csv가 이제 도구의 3분의 1이 아니라 전체에서 작동합니다:
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --output-format json
malwoverview --sigcheck /home/remnux/malware/samples/ --output-format csv
malwoverview -b 6 -B 3 --output-format json
# LLM 보강도 json과 csv에 도달, 타입이 지정된 레코드로
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --enrich --output-format json
### 9. 조회를 조용히 유지하고, 출력을 붙여넣기 안전하게 유지
# 공격자가 제어하는 호스트 이름을 IP 주소로 확인하지 않음
malwoverview -j 2 -J http://malicious.example.com/payload.bin --no-resolve
# 추출된 IOC를 무력화하여 목록을 티켓에 붙여넣을 수 있게 함
malwoverview --extract-iocs /home/remnux/malware/report.txt --defang
# 소스는 URL일 수도 있으므로, 게시된 보고서를 읽고
# 그 IOC를 한 단계로 무력화할 수 있음
malwoverview --extract-iocs https://example.com/threat-report.html --defang
# 벤더 블로그는 대부분 내비게이션, 분석, 압축된 JavaScript이므로
# 추출기는 <script>, <style>, <svg>를 건너뛰고, 소스 사이트로 돌아가는
# 링크와 알려진 페이지 구성 요소를 제거하며, 마지막 레이블이 실제
# 최상위 도메인인 도메인만 보고함
malwoverview --extract-iocs https://www.fortinet.com/blog/threat-research/dprk-related-campaigns-with-lnk-and-github-c2
# 이 모든 것을 끄고 원시 소스의 모든 정규식 일치를 보고
malwoverview --extract-iocs https://example.com/threat-report.html --no-ioc-filter
### 10. 캐시 제어
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
### 11. 두 대화형 인터페이스 모두 모든 서비스에 도달
# 명령줄 REPL
malwoverview --interactive
# 전체 화면 대시보드: 111개 서비스, Ctrl+V 붙여넣기, F5는 json 내보내기,
# F6은 csv 내보내기
malwoverview --tui
## 8.0.0부터 8.0.5의 새로운 기능, 예제로 알아보기
8.0.0은 한 번에 많은 것을 추가했으므로, 명령어는 옵션 번호가 아니라 용도별로 그룹화했습니다. 8.0.1부터 8.0.5는 대부분 수정 사항이며 끝에 있습니다. 8.1.0이 나중에 옵션 번호를 변경한 경우, 아래 명령은 현재 번호를 사용하고 이전 번호가 무엇이었는지 명시합니다.
### 1. 다섯 개의 새 서비스
# URLScan.io (-u): URL 제출, id로 결과 가져오기, 검색,
# 그다음 도메인 또는 IP 조회
malwoverview -u 1 -U https://example.com
malwoverview -u 2 -U 019ce889-ab8d-768b-894e-3e5bf5401f8d
malwoverview -u 3 -U task.tags:phishing
malwoverview -u 4 -U example.com
malwoverview -u 5 -U 8.8.8.8
# Shodan (-s): 단일 IP 또는 검색 쿼리
malwoverview -s 1 -S 8.8.8.8
malwoverview -s 2 -S "apache"
# AbuseIPDB (-ab): IP 평판
malwoverview -ab 1 -AB 185.220.100.243
# GreyNoise (-gn): 배경 인터넷 노이즈인가, 아니면 당신을 겨냥한 것인가?
malwoverview -gn 1 -GN 185.220.100.243
# Whois / RDAP (-wh): 도메인, 그다음 IP
malwoverview -wh 1 -WH example.com
malwoverview -wh 2 -WH 8.8.8.8
새 IP 서비스는 -ip에서도 도달할 수 있으므로, 하나의 주소를 서비스별로 또는 한 번에 모두를 통해 확인할 수 있습니다:
malwoverview -ip 4 -IP 8.8.8.8
malwoverview -ip 5 -IP 8.8.8.8
malwoverview -ip 6 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
### 2. 단일 명령으로 여러 서비스에 걸친 하나의 해시
malwoverview --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
### 3. 일괄 해시 검사와 디렉터리 스캔
# Malware Bazaar: 해시 파일, 그다음 샘플 디렉터리
malwoverview -b 11 -B /home/remnux/malware/hash_list.txt
malwoverview -b 12 -B /home/remnux/malware/samples/
# Hybrid Analysis (8.0.0에서는 -a 16과 -a 17로 번호가 매겨짐)
malwoverview -a 12 -A /home/remnux/malware/hash_list.txt
malwoverview -a 13 -A /home/remnux/malware/samples/
# Triage
malwoverview -x 8 -X /home/remnux/malware/hash_list.txt
malwoverview -x 9 -X /home/remnux/malware/samples/
### 4. IOC 추출과 YARA 스캔
# 보고서에서 해시, IP, URL, 도메인, 이메일, CVE 추출
malwoverview --extract-iocs /home/remnux/malware/report.txt
malwoverview --extract-iocs /home/remnux/malware/report.pdf
malwoverview --extract-iocs https://example.com/threat-report.html
# YARA 규칙으로 샘플 스캔
malwoverview --yara /home/remnux/rules/malware.yar --yara-target /home/remnux/malware/samples/
### 5. 모든 결과의 LLM 보강
# .malwapi.conf의 [LLM] 섹션에서 제공자 가져옴
malwoverview -v 8 -V <hash> --enrich
# 실행별로 재정의: claude, gemini, openai 또는 ollama
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm gemini
### 6. 구조화된 출력, 보고서, ATT&CK 매핑
malwoverview -v 8 -V <hash> --output-format json
malwoverview -ip 1 -IP 8.8.8.8 --output-format csv
malwoverview -v 12 -V <hash> --attack-map
malwoverview -v 8 -V <hash> --report html --report-file /home/remnux/report.html
malwoverview -v 8 -V <hash> --report pdf --report-file /home/remnux/report.pdf
### 7. 캐싱, 프록시, 상세 출력
malwoverview -v 8 -V <hash> --no-cache
malwoverview -v 8 -V <hash> --cache-ttl 86400
malwoverview -ip 3 -IP 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview -v 8 -V <hash> --quiet
malwoverview -v 8 -V <hash> --verbose
### 8. 두 개의 대화형 인터페이스
malwoverview --interactive
malwoverview --tui
### 9. 8.0.1부터 8.0.5가 수정한 것, 명령어로
# 8.0.1: 해시뿐 아니라 다시 파일 경로를 받음
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
malwoverview -a 1 -A /home/remnux/malware/suspicious.exe
malwoverview -l 1 -L ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# 8.0.2: VirusTotal에 대한 일괄 IP 검사, Premium 그다음 Public API
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt -D 1
# 8.0.2: Android 스캔이 최신 기기에서 다시 작동, SHA256으로 해싱
malwoverview -y 1
malwoverview -y 2
# 8.0.3과 8.0.4: Claude 보강이 다시 작동하고 색상으로 렌더링됨
malwoverview -v 8 -V <hash> --enrich --llm claude
# 8.0.5: 디렉터리 검사와 해시 보고서의 오버레이와 엔트로피
malwoverview -d /home/remnux/malware/samples/
malwoverview -v 8 -V <hash>
## HISTORY
버전 8.2.0:
이 버전은 컴포넌트 취약점 검색을 추가하고, 모든 NIST 쿼리에 선택한
정렬 기준을 부여하며, 쿼리 자체를 수정합니다. 쿼리는 일치한 CVE의
일부만 반환하고 있었습니다.
새 옵션
1. --nist 6은 컴포넌트와 연관된 CVE를 나열하며, 이름 또는 로컬
바이너리 경로를 지정할 수 있습니다. 이름 지정은 모든 플랫폼에서
작동합니다: --nist 6 --NIST openssl, WebKit 또는 Safari. Windows PE를
지정하면 세 개의 키를 검색하고 결과를 병합합니다: 디스크상의 파일
이름, VERSIONINFO의 내부 이름, 컴포넌트 설명. 따라서
--nist 6 --NIST afd.sys는 7개의 CVE와 일치하지만 드라이버 자체를
전달하면 74개와 일치합니다. 최신 NVD 항목은 파일이 아니라 컴포넌트
("Ancillary Function Driver for WinSock")의 이름을 지정하기
때문입니다. Windows PE가 아닌 파일에는 그러한 메타데이터가 없으므로
이름만 검색되며 보고서는 그 사실을 알려줍니다. Windows가 아닌
곳에서는 파일이 아니라 프로젝트의 이름을 지정하세요: libssl.so.3은
9개의 CVE와 일치하지만 openssl은 658개와 일치합니다.
결과는 가장 최근 순의 표입니다.
수정된 옵션2. --nist 1, 3, 4, 5는 일치하는 CVE 중 마지막 1퍼센트만 반환하고 이전 연도보다 오래된 것은 모두 버렸기 때문에, "Ancillary Function Driver"에 대한 키워드 검색은 일치하는 74개 중 1개의 CVE만 보고했고 --time으로도 복구되지 않았습니다. 이제 쿼리는 전체 결과 집합을 페이지 단위로 순회하며, 연도 필터는 --time이 요청할 때만 적용됩니다.
3. --nist 1은 값에 구체적인 버전이 있을 때만 CPE를 NIST로 보냈고, 그 외의 모든 값(버전 없는 CPE 포함)은 CVE 텍스트에 대한 키워드 검색이 되었습니다. 이제 부분 CPE도 CPE로 매칭되므로, --nist 1 --NIST "cpe:2.3:a:openbsd:openssh"는 해당 제품을 언급하는 설명 대신 제품의 137개 CVE를 보고합니다.
새로운 동작
4. 모든 NIST 결과는 CVE ID의 연도를 기준으로 최신순으로 정렬됩니다. NVD는 ID가 할당된 후 몇 년 뒤에 레코드를 게시하는 경우가 많으므로, --sort-by published는 대신 NVD 게시 날짜로 정렬합니다. 이 선택은 --time에도 적용되는데, 이전에는 결과를 CVE ID 연도로 제한하면서 테이블은 게시 날짜로 정렬했습니다. 17개의 CVE가 나열된 컴포넌트에 --time 5를 적용했을 때 실제로는 28개가 해당 기간 내에 게시되었습니다. 이제 두 표면 모두 하나의 기준을 사용하며, 테이블의 마지막 줄에 어떤 기준이 순서를 만들었는지 명시됩니다.
5. --nist 6은 가장 최근 CVE 25개를 나열합니다. 컴포넌트의 전체 이력이 필요한 경우는 드물기 때문입니다. --ncves <number>는 더 많이 나열하고, --ncves 0은 전부 나열하며, --time <years>는 연도로 제한합니다.
6. NIST는 키워드의 단어를 구문이 아닌 개별적으로 매칭하므로, 흔한 단어로 명명된 컴포넌트는 다른 벤더의 제품과도 매칭됩니다. "HTTP Protocol Stack"은 Apache, Envoy, Novell CVE와 매칭됩니다. Vendor 열과 마지막 줄에 영향을 받은 제품의 벤더가 표시되며, 이는 각 CVE의 CPE 데이터에서 가져오고 내보낸 레코드에도 포함됩니다.
7. --rpp는 페이지를 넘길 때 사용하는 페이지 크기이며 기본값은 NIST 최대값인 2000입니다. 완전히 검색할 수 없는 쿼리는 이제 가장 오래된 부분을 조용히 반환하는 대신 그 사실을 알립니다.
대화형 및 그래픽 모드
8. 컴포넌트 검색은 대화형 모드에서 "nist component <name|file>"로, TUI에서는 NIST Component로 접근할 수 있습니다.
보고서
9. 어드바이저리 줄은 문자 단위가 아닌 터미널 셀 단위로 줄바꿈되므로, 동아시아 문자를 포함한 값이 자체 테이블의 구분선을 넘어가지 않습니다. 어드바이저리를 출력하는 모든 보고서가 영향을 받습니다.
아래 변경 사항은 보안 수정입니다.
10. LOW: NIST 쿼리의 일부가 되는 모든 값은 이제 입력되었든, 파일 이름에서 가져왔든, 바이너리에서 읽었든 길이가 제한되고 터미널 제어 문자가 제거되며, 바이너리를 파싱할 수 없을 때 파일 핸들이 해제됩니다.
11. LOW: 음수 --ncves는 일치하는 CVE 대신 빈 테이블을 출력했고, 음수 --time은 모두 버렸습니다. 이제 둘 다 컴포넌트를 깨끗하다고 보고하는 대신 모든 것을 나열합니다.
버전 8.1.0:
이 버전은 YARA 헌팅과 로컬 PE 트리아지를 추가하고, 발표한 대로 동작하지 않던 옵션을 수정하며, 일련의 보안 수정을 포함합니다.
주의: 두 옵션의 번호가 변경되었습니다. 다섯 개의 Hybrid Analysis 다운로드 옵션(-a 11 ~ -a 15)은 이제 단일 옵션 -a 11입니다. 배치 해시 검사는 -a 12로 이동했고(기존 -a 16), 디렉터리 스캔은 -a 13으로 이동했습니다(기존 -a 17). 그 외에는 번호가 변경되지 않았습니다.
새로운 옵션
* --sigcheck: API 키와 네트워크 요청 없이 파일 또는 디렉터리의 Authenticode 서명을 검사합니다. VALID, TAMPERED, UNTRUSTED, EXPIRED, MALFORMED, INVALID, NONE 또는 N/A를 서명자, 발급자, 인증서 날짜와 함께 보고합니다. 모든 내장 서명이 각자의 다이제스트 알고리즘, 지문, 일련번호와 함께 나열됩니다. 검증에는
pip install malwoverview[signature]가 필요하며, 없으면 상태는 PRESENT 또는 NONE입니다.
* --sig-verify-mode any|first|all|best: 다중 서명 파일의 상태를 결정하는 서명을 지정합니다. 기본값은 best입니다.
* --no-signature: 대용량 디렉터리에서 서명 검증을 건너뜁니다.
* --peinfo 및 --entropy-threshold: 파일 또는 디렉터리의 로컬 PE 트리아지로, 파일 유형, 크기, 오버레이, 오버레이 크기, 엔트로피, 서명 상태를 나열하고 임계값(기본 7.0) 이상인 파일을 강조합니다. 재귀적이며 API 키가 필요 없습니다.
* -ct 1|2 및 -CT: crt.sh를 통한 Certificate Transparency로, API 키가 필요 없습니다. -ct 1은 도메인에 발급된 인증서에서 본 DNS 이름을 나열하고, -ct 2는 인증서를 나열합니다.
* -v 14 ~ -v 20: VirusTotal Retrohunt 및 Livehunt. 작업 제출, 작업 목록, 작업 추적, 매칭된 파일 목록, 규칙 세트 생성, 규칙 세트 목록, 알림 목록을 제공합니다. 프리미엄 키가 필요합니다.
* -b 13, -b 14 및 -b 15: YARA 규칙 이름으로 Malware Bazaar 검색, 그리고 YARAify 규칙 세트 다운로드 및 추출.
* -m 9: TLP 수준에 대한 Malpedia YARA 규칙 세트 다운로드.
* -l 8: -L로 지정한 MalShare 파일 유형의 해시를 나열합니다.
* -j 8: URLHaus 배치 해시 검사로, 이전에는 어떤 옵션으로도 접근할 수 없었습니다.
* --cache-stats, --prune-cache 및 --clear-cache.
* --no-resolve: -j 2 및 -j 3에서 표시되는 호스트 이름을 확인하거나 지리 위치를 조회하지 않습니다.
* --defang: --extract-iocs가 나열한 IOC를 hxxp://example[.]com 형식으로 출력합니다. 출력 전용입니다.
* --no-ioc-filter: --extract-iocs의 노이즈 필터링을 끄고 원본 소스의 모든 정규식 매칭을 보고합니다.
* --yara는 이제 규칙 디렉터리를 허용하며, 각 파일은 자체 네임스페이스로 컴파일됩니다. 컴파일에 실패한 파일은 보고되고 건너뜁니다.
수정된 옵션
* -m 1은 -m 5와 동일한 엔드포인트를 호출했습니다. 이제 패밀리 메타 정보를 가져오고 -M으로 선택적 필터를 받습니다.
* -l 6은 "Composite(OLE)"로 표시되었지만 PDF 샘플을 나열했습니다. 이제 지난 24시간 동안 확인된 파일 유형을 개수와 함께 나열합니다.
* -ip 3과 -ip 7은 동일한 출력을 생성했습니다. 이제 -ip 3은 VirusTotal과 AlienVault만 쿼리하고, -ip 7은 IPInfo를 포함한 나머지 모든 서비스를 쿼리합니다.
* -l 1은 모든 샘플에 대해 0바이트 파일을 작성하고 성공을 보고했습니다. 이제 리다이렉트를 따르고 빈 본문은 거부합니다.
* -a 6 ~ -a 10 및 -y 4는 항상 "Requested URI - Not Found"로 실패했습니다. Hybrid Analysis 요청은 이제 리다이렉트가 업로드를 떨어뜨리는 www 호스트를 거치지 않습니다.
* -b 14는 HTTP 301을 반환했습니다. 이제 규칙 세트는 abuse.ch Auth-Key와 함께 작동하는 주소에서 가져옵니다.
* -v 20은 sha256을 포함하는 hunting_notification_files 엔드포인트에서 Livehunt 알림을 읽습니다.
* -b 6, -m 4 및 인수를 소비하는 기타 옵션은 이제 인수를 요구합니다. 이 중 8개는 인수를 생략했을 때 원시 TypeError로 중단되었습니다.
* -A는 이제 네이티브 Windows 경로(-a 1 ~ -a 5)를 허용하며, 이전에는 "Input contains invalid characters"로 거부되었습니다.
* --report html, --report pdf 및 --enrich는 이제 --correlate-hash, --extract-iocs 및 --yara에서 작동하며, 이전에는 보고서를 생성하지 않았습니다.
* Malpedia 샘플 및 규칙 다운로드는 더 이상 보고서와 json/csv 내보내기 전에 프로그램을 종료하지 않습니다.
* 이제 모든 인수의 검증된 형식이 사용됩니다. hxxp://example[.]com으로 작성된 URL은 여전히 defang된 상태로 서비스에 전송되었고, ~/samples 같은 경로는 확장되지 않았습니다.
* -ip 2(BGPView)가 제거되었습니다. 해당 도메인이 더 이상 확인되지 않습니다. 번호는 유지되며 제거를 보고하고 -ip 1과 -ip 7을 가리킵니다. 다른 -ip 번호는 변경되지 않았습니다.
* --defang은 이를 읽는 유일한 옵션인 --extract-iocs에만 적용되는 것으로 문서화되었습니다.
새로운 동작
* -y 1, -y 2 및 -y 3은 기본 APK만이 아니라 패키지의 모든 APK를 해시합니다. 테스트 기기에서 스캔은 35개에서 79개 APK로 늘어났습니다. -y 4와 -y 5는 선택한 패키지가 분할 APK일 때 보고합니다.
* -b 1은 샘플과 매칭된 YARA 규칙을 나열하므로, 이름을 -b 13에 전달할 수 있습니다.
* -v 1과 -v 8은 VirusTotal이 이미 반환한 서명 블록을 표시합니다. 검증 여부, 서명자 및 카운터 서명자 체인, 서명 날짜, 그리고 상태, 알고리즘, 날짜, 일련번호, 지문이 포함된 모든 인증서를 보여줍니다.
* --sigcheck와 --peinfo는 인증서 지문, 일련번호, 다이제스트 알고리즘을 보고서와 json, csv에 보고합니다.
* --extract-iocs는 더 이상 웹 페이지 자체의 코드를 보고하지 않습니다. 한 벤더 블로그에서 855개의 IOC를 반환했는데, 그중 743개가 압축된 JavaScript가 생성한 "도메인"이었습니다. script, style, svg, noscript 블록은 건너뛰고, 도메인은 마지막 레이블이 실제 최상위 도메인일 때만 보고하며, 소스 사이트로 돌아가는 링크와 페이지 장식은 제거됩니다. 855개 IOC가 16개가 되었고, 모든 샘플 해시와 명령 제어 URL은 유지되었습니다. 억제는 집계되어 보고됩니다. 코드 호스팅, 붙여넣기, 메시징 서비스는 절대 억제되지 않습니다.
* --extract-iocs는 가져오기가 실패할 때 원시 urllib3 예외를 출력하는 대신 호스트와 실패 유형을 명시합니다.
* GreyNoise Community 404는 오류 대신, 주소가 인터넷 스캐너가 아니라는 실제 결과로 보고됩니다.
* 네트워크 실패는 더 이상 Python 트레이스백으로 사용자에게 도달하지 않습니다. 43개의 try 블록이 ValueError만 잡았기 때문에 연결 오류가 잡히지 않고 빠져나갔습니다. 보고되는 호스트는 예외 텍스트가 아닌 파싱된 URL에서 가져옵니다.
* TLS 실패가 설명됩니다. 핸드셰이크가 완료된 후 닫히는 경우, 인증서 검증에 실패하는 경우, TLS 없이 응답하는 포트, 거부된 핸드셰이크가 각각 별도의 줄로 표시됩니다. 예외 텍스트는 읽지만 절대 출력하지 않습니다.
* crt.sh는 동일한 URL에 몇 초 간격으로 200, 404 또는 502로 응답하기 때문에 인내심 있는 재시도 정책(5회 재시도, 2초 백오프)을 사용합니다. 다른 모든 서비스는 이전 정책을 유지합니다.
* HTTP 429는 이제 최대 3회 재시도하며, 두 가지 형태의 Retry-After를 모두 준수하고 300초를 초과하여 대기하지 않습니다. 샘플 업로드는 재시도하지 않습니다.
* 엔트로피 계산은 파일을 통째로 로드하는 대신 블록 단위로 읽습니다. 보고되는 값은 변경되지 않습니다.
* YARA 스캐너는 규칙을 컴파일하는 동안 더 이상 프로세스의 작업 디렉터리를 변경하지 않습니다.
* --attack-map 매칭은 부분 문자열 검색 대신 정확 매칭입니다. 이전에는 관련 없는 기법이 귀속되었습니다(빈 태그는 691개 모두와 매칭되었습니다). Hybrid Analysis 보고서와 --correlate-hash로 확장되었습니다.
* --enrich는 터미널에서 스크랩한 텍스트 대신 수집된 레코드를 전달받으며, 이제 조용히 무시되던 --output-format json 및 csv와 함께 작동합니다.
* 이제 모든 옵션이 --output-format json 및 csv용 레코드를 생성합니다. 이전에는 3분의 1만 그랬습니다.
* MalShare 결과가 json 및 csv에 포함됩니다.
* [INQUEST] 및 [VIRUSEXCHANGE] 섹션이 .malwapi.conf와 그 뒤의 코드에서 제거되었습니다.
* 최소 Python 버전은 3.10이며, 분류기는 3.10에서 3.13을 알립니다.
대화형 및 그래픽 모드
* --interactive는 명령줄에만 있던 모든 명령을 얻습니다. VirusTotal 보고서, 업로드, 동작 보고서, 배치 검사, Retrohunt 및 Livehunt; Malware Bazaar imphash, 다운로드, 배치, 디렉터리, YARA 규칙 검색 및 YARAify 규칙 세트; URLHaus 페이로드 다운로드, 서명 검색, 페이로드 목록, 배치 검사 및 피드; Triage 제출, 다운로드, 동적 보고서, 배치 및 디렉터리 검사; Malpedia 패밀리 메타, 페이로드 목록 및 규칙 세트; MalShare 파일 유형 목록; Hybrid Analysis 제출, 배치 및 디렉터리 검사; ThreatFox 패밀리 목록; IP 배치 및 다중 서비스 쿼리; 그리고 crtsh, android, yara, iocs 및 cache. ATT&CK는 "set attack on|off"로 전환합니다.
* --tui는 모든 서비스 호출의 자체 복사본 대신 명령줄에서 사용하는 모듈 코드로 재구축되었습니다. 3013줄이 818줄이 되었고, 서비스 목록은 37개에서 111개 항목으로 늘어났습니다. 결과는 F5(json)와 F6(csv)로 내보낼 수 있으며, 이전에는 전혀 지원하지 않았습니다.
* --tui 붙여넣기가 수정되었습니다. 쿼리 상자를 클릭하기 전에 붙여넣은 해시는 메시지 없이 버려졌는데, 이는 포커스된 위젯만 붙여넣기를 받고 대시보드는 서비스 목록에서 시작하기 때문입니다. 이제 붙여넣기는 전체 창에서 감지됩니다.
* --tui는 붙여넣기를 전혀 보내지 않는 터미널을 위해 클립보드를 직접 읽는 Ctrl+V와 Shift+Insert를 얻습니다. 서드파티 패키지가 필요하지 않습니다.
* --tui 키 목록은 결과 창이 지워질 때마다 다시 작성되며, 키 바인딩 자체에서 생성됩니다. 키 바는 쿼리 상자에 포커스가 있는 동안 Quit(Ctrl+Q)과 Paste를 유지하며, 레이블은 더 이상 키를 반복하지 않습니다.
보고서
* --peinfo와 --sigcheck는 스캔하는 파일에서 열 크기를 정하고 파일 이름(일반적으로 SHA256)을 절대 줄이지 않습니다. Type과 Signer는 제한을 유지하며, 줄여진 값은 화면에서만 줄여집니다.
* 모든 테이블 열은 문자 대신 터미널 셀 단위로 측정되므로, CJK 인증서 주체나 파일 이름이 더 이상 열을 어긋나게 하지 않습니다. 잘림은 문자 경계에서 멈춥니다.
* 이제 테이블의 구분선은 열의 합과 같고, 열 헤더와 구분선은 중립적이며, 빈 셀은 n/a로 표시되고, 마지막 집계는 "[+] "로 시작합니다. -j 8, -a 12, -a 13, -b 11, -b 12, -b 13, -x 8, -x 9, -l 6, -s 2, -u 3, --yara, --peinfo 및 --sigcheck에 적용되었으며, 이들의 구분선은 열과 최대 51자까지 어긋났습니다.
* 동일한 처리가 나머지 모든 보고서에 걸쳐 완료되었습니다. 더 이상 구분선이 고정 숫자로 작성되지 않습니다. 각각은 명명된 너비나 그 아래에 있는 헤더에서 그려지므로, 제목, 구분선, 열이 더 이상 어긋날 수 없습니다. 19개 파일의 88개 구분선이 도구가 쿼리하는 모든 서비스에 도달합니다.
* 38개의 보고서 제목이 28개의 후행 공백으로 채워져 제목 줄이 아래 구분선을 넘어갔습니다. 화면에서는 보이지 않지만 출력이 파이프, 리다이렉트 또는 복사되는 즉시 보입니다.
* -b 6 ~ -b 10: 긴 값은 보고서 너비에 맞게 줄바꿈됩니다. 참조 URL이나 쉼표로 연결된 별칭 목록은 100열 구분선 아래에서 최대 137열까지 뻗쳤습니다. 한 번의 -b 6 실행에서 5936줄 중 52줄이 그랬습니다.
* -j 2 ~ -j 7: 각 보고서는 실제로 출력하는 열에서 가져온 하나의 너비로 그려지며, 이전에 사용된 여섯 개의 다른 숫자(100, 104, 126, 130, 136, 146)를 대체합니다. -j 2는 또한 응답에서 URL 열 크기를 정하고 더 이상 헤더를 두 번 출력하지 않습니다.
* -l 1과 -l 8은 테이블입니다. 헤더는 126의 구분선 아래에서 75, 38, 8에 중앙 정렬된 세 개의 열을 알렸지만, 아래 행은 "sha256: ... md5: ... type: ..."을 출력했으므로 헤더가 아무것과도 정렬되지 않았습니다. MalShare 오류는 더 이상 도착하지 않는 결과를 약속하는 헤더 아래에 출력되지 않습니다.
* -ct 1과 -ct 2: 보고서 헤더는 그것이 소개하는 테이블의 너비로 그려지며, 상태, 오류, 개수 줄은 그 너비를 넘어가는 대신 글머리 기호 어드바이저리로 줄바꿈됩니다.
* -a 12와 -a 13: Hybrid Analysis가 본 적 없는 해시는 빈 행을 생성했으며, 이제 not found로 표시되며, 이는 판정 "unknown"과 구별됩니다. HTTP 실패는 그대로 보고됩니다. -a 13은 더 이상 모든 파일 이름을 40자로 자르지 않습니다.
* -j 8: Status 열은 원시 응답을 표시했으므로 적중이 "ok"로 표시되었습니다. 이제 found, not found, invalid hash 또는 bad request로 표시됩니다. 해시 열은 파일의 해시를 따릅니다.
* -x 8과 -x 9: 파일 이름과 태그는 단순 슬라이스로 잘렸으며 이제 말줄임표로 처리되고, 점수는 값에 따라 색상이 지정됩니다.
* -b 11과 -b 12: Signature 열은 17열이며, 알 수 없는 샘플은 빈칸을 남기는 대신 n/a로 표시됩니다.
* -s 2는 호스트당 네 개의 레이블이 붙은 줄, 즉 한 쿼리에 백 개의 블록 대신 테이블입니다. 열은 IP, Port, Country, Product, Vulns 및 Organization입니다. 원시 배너는 Shodan이 배너나 Server 헤더에서 파싱한 Product로 대체되며, 전체 배너는 여전히 json과 csv에 도달합니다. Vulns는 Shodan이 호스트에 대해 나열한 CVE 수입니다.
* -u 3: Score 열은 항상 0이었는데, 검색 엔드포인트가 판정을 전혀 반환하지 않아 코드가 값을 기본값으로 설정했기 때문입니다. json과 csv 레코드는 피싱 쿼리의 모든 결과에 대해 "malicious": "False"를 담고 있었습니다. 두 필드 모두 제거되고, 값에 따라 색상이 지정되는 Age(d), 즉 도메인의 일수 단위 나이로 대체되었습니다. 셀은 슬라이스 대신 말줄임표로 처리되며, IP 열은 더 이상 IPv6 주소를 반으로 자르지 않습니다.
* -u 2: 판정, 점수, 카테고리, 태그, 브랜드는 MIME 유형처럼 그려지는 대신 강조 표시되고, 값은 화면을 벗어나는 대신 줄바꿈되며, 인증서 날짜는 원시 epoch 초 대신 UTC로 표시됩니다. 페이지 제목은 더 이상 80자에서 잘리지 않습니다.
* -u 1: 마지막 노트는 "[+] "로 시작하고, 또 하나의 필드가 아닌 조언으로 그려지며, 방금 제출한 스캔의 UUID를 담아 검색 명령을 복사할 수 있습니다.
* --correlate-hash, -wh 1 및 -wh 2는 값을 줄바꿈하며, 연속 줄은 첫 줄 아래에 정렬됩니다. WHOIS 상태는 100의 구분선 아래에서 187열에 도달했고, 펄스 세트의 ATT&CK ID는 200에 도달했습니다. SHA512는 여러 줄로 나뉘며, 레코드는 모든 값을 한 줄에 유지합니다.* --yara는 더 이상 파일별 컴파일러 오류를 출력하지 않습니다. 이는 샘플이 아니라 규칙 세트의 속성이며 보고서를 화면 밖으로 밀어냈습니다. 개수는 요약에 남아 있고 상세 내용은 --verbose로 확인할 수 있습니다. File 및 Rule 열은 내용에 맞춰 크기가 조정됩니다. 둘 중 하나를 잘라내면 샘플이나 규칙으로 돌아가는 링크가 끊어지기 때문입니다.
* -v 1 및 -v 8의 인증서 블록은 120열에서 줄바꿈됩니다. 상태는 문제당 한 문장으로 쉼표로 연결되며 한 줄에서 233자에 도달했습니다.
* --enrich 출력은 위에 있는 규칙의 너비에 맞춰 줄바꿈되며, 연속 줄은 목록 표시자 아래에 들여쓰기됩니다. json 및 csv 레코드는 줄바꿈되지 않은 답변을 유지합니다.
* -y 1은 APK 인벤토리를 테이블 위가 아니라 테이블 끝에 보고하며, 중립 색상으로 "[+] " 접두사가 붙습니다. 행은 패키지당 하나의 스레드로 출력되는데, Windows 외부에서는 그 스레드들이 조인되지 않았으므로 이제 조인된 후에 줄이 출력됩니다. -y 2와 -y 3도 같은 방식으로 처리됩니다.
* -ip 3 및 -ip 7: 두 개의 상호 참조 노트에 "[+] " 접두사가 붙으며, 위의 데이터의 일부로 읽힙니다.
* 건너뛴 YARA 규칙 파일은 이제 그 이유를 보고합니다. 경로가 줄 전체를 차지해서 이유가 잘렸습니다.
---
[Read more](https://github.com/alexandreborges/malwoverview)