[ English ] | [日本語]
<img src="https://img.shields.io/github/v/release/Yamato-Security/takajo?color=blue&label=Stable%20Version&style=flat""/>
Takajō (鷹匠), created by Yamato Security, is a fast forensics analyzer for Hayabusa results written in Nim. Takajō means “Falconer” in Japanese and was chosen as it analyzes Hayabusa’s “catches” (results).
.evtx
files that cannot be detected yet.Please download the latest stable version of Takajo with compiled binaries or compile the source code from the Releases page.
Note: we provide release binaries for 64-bit Windows and Intel and Arm-based macOS but not Linux because it is difficult to provide MUSL binaries for Linux at the moment.
You can git clone the repository with the following command and compile binary from source code:
Warning: The main branch of the repository is for development purposes so you may be able to access new features not yet officially released, however, there may be bugs so consider it unstable.
git clone https://github.com/Yamato-Security/takajo.git
First, install Nim with choosenim. Then you can compile from source with the following command:
> nimble update
> nimble build -d:release --threads:on
automagic
: automatically executes as many commands as possible and output results to a new folderextract-scriptblocks
: extract and reassemble PowerShell EID 4104 script block logshtml-report
: create static HTML summary reportshtml-server
: create a dynamic web server to view HTML summary reportslist-domains
: create a list of unique domains to be used with vt-domain-lookup
list-hashes
: create a list of process hashes to be used with vt-hash-lookup
list-ip-addresses
: create a list of unique target and/or source IP addresses to be used with vt-ip-lookup
list-undetected-evtx
: create a list of undetected evtx fileslist-unused-rules
: create a list of unused detection rulessplit-csv-timeline
: split up a large CSV timeline into smaller ones based on the computer namesplit-json-timeline
: split up a large JSONL timeline into smaller ones based on the computer namestack-cmdlines
: stack executed command linesstack-computers
: stack computersstack-dns
: stack DNS queries and responsesstack-ip-addresses
: stack target IP addresses (TgtIP
field) or source IP addresses (SrcIP
field)stack-logons
: stack logons by target user, target computer, source IP address and source computerstack-processes
: stack executed processesstack-services
: stack service names and paths from System 7040
and Security 4697
eventsstack-tasks
: stack new scheduled tasks from Security 4698
events and parse out XML task contentstack-users
: stack target users (TgtUser
field) or source users (SrcUser
field)sysmon-process-tree
: output the process tree of a certain processtimeline-logon
: create a CSV timeline of logon eventstimeline-partition-diagnostic
: create a CSV timeline of partition diagnostic eventstimeline-suspicious-processes
: create a CSV timeline of suspicious processestimeline-tasks
: create a CSV timeline of scheduled tasksttp-summary
: summarize tactics and techniques found in each computerttp-visualize
: extract TTPs and create a JSON file to visualize in MITRE ATT&CK Navigatorttp-visualize-sigma
: extract TTPs from Sigma rules and create a JSON file to visualize in MITRE ATT&CK Navigatorvt-domain-lookup
: look up a list of domains on VirusTotal and report on malicious onesvt-hash-lookup
: look up a list of hashes on VirusTotal and report on malicious onesvt-ip-lookup
: look up a list of IP addresses on VirusTotal and report on malicious onesautomagic
commandAutomatically executes as many commands as possible and output results to a new folder
Note: You should use the
verbose
orsuper-verbose
profile to utilize all commands.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory.Options:
-d, --displayTable
: display the results table (default: false
)-l, --level
: specify the minimum alert level (default: low
)-o, --output
: output directory (default: case-1
)-q, --quiet
: do not display the launch banner (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)automagic
command examplesPrepare the JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p verbose
Run as many Takajo commands as possible and save results under the case-1
folder:
takajo.exe automagic -t ../hayabusa/timeline.jsonl -o case-1
Run as many Takajo commands as possible on the hayabusa-results
directory and save results under the case-1
folder:
takajo.exe automagic -t ../hayabusa/hayabusa-results/ -o case-1
extract-scriptblocks
commandExtracts and reassemles PowerShell EID 4104 script block logs.
Note: The PowerShell scripts are best opened as
.ps1
files with code syntax highlighting but we use the.txt
extension in order to prevent any accidental running of malicious code.
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directoryOptions:
-l, --level
: specify the minimum alert level (default: low
)-o, --output
: output directory (default: scriptblock-logs
)-q, --quiet
: do not display the launch banner (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)extract-scriptblocks
command examplePrepare the JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Extract PowerShell EID 4104 script block logs to the scriptblock-logs
directory:
takajo.exe extract-scriptblocks -t ../hayabusa/timeline.jsonl
extract-scriptblocks
screenshothtml-report
commandCreate HTML summary reports for rules and computers with detections. This command first creates an indexed SQLite database file in order to perform fast lookups on the data needed to create the summary reports.
index.html
main pageRequired options:
-o, --output
: html report directory name-r, --rulepath
: path to the Hayabusa rules directory-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directoryOptions:
-C, --clobber
: overwrite the SQLite file when saving (default: false
)-q, --quiet
: do not display the launch banner (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)-s, --sqliteoutput
: save results to a SQLite database (default: html-report.sqlite
)html-report
command examplePrepare the JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p verbose
or
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p super-verbose
Create the HTML summary reports:
takajo.exe html-report -t ../hayabusa/hayabusa-results.jsonl -o htmlreport -r ../hayabusa/rules
html-report
screenshotshtml-server
commandCreate a dynamic web server to view HTML summary reports.
This command first creates an indexed SQLite database file in order to perform fast lookups on the data needed to create the summary reports.
It is similar to the html-report
command but is more scalable and allows for filtering on dates and rules.
http://localhost:8823
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directoryOptions:
-C, --clobber
: overwrite the SQLite file when saving (default: false
)-p, --port
: web server port number-q, --quiet
: do not display the launch banner (default: false
)-r, --rulepath
: path to the Hayabusa rules directory (this is optional but needed to create correct links to the rule files)-s, --skipProgressBar
: do not display the progress bar (default: false
)-s, --sqliteoutput
: save results to a SQLite database (default: html-report.sqlite
)html-report
command examplePrepare the JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p verbose
or
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p super-verbose
Start the web server:
takajo.exe html-server -t ../hayabusa/hayabusa-results.jsonl -r ../hayabusa/rules
html-server
screenshotslist-domains
commandCreates a list of unique domains to be used with vt-domain-lookup
.
Currently it will only check queried domains in Sysmon EID 22 logs but will be updated to support built-in Windows DNS Client and Server logs.
all-field-info
and all-field-info-verbose
Required options:
-o, --output <TXT-FILE>
: save results to a text file.-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory.Options:
-s, --includeSubdomains
: include subdomains (default: false
)-w, --includeWorkstations
: include local workstation names (default: false
)-q, --quiet
: do not display logo (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)list-domains
command examplesPrepare the JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Save the results to a text file:
takajo.exe list-domains -t ../hayabusa/timeline.jsonl -o domains.txt
Include subdomains:
takajo.exe list-domains -t ../hayabusa/timeline.jsonl -o domains.txt -s
list-hashes
commandCreate a list of process hashes to be used with vt-hash-lookup (input: JSONL, profile: standard)
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL files-o, --output <BASE-NAME>
: specify the base name to save the text results to.Options:
-l, --level
: specify the minimum level. (default: high
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)list-hashes
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Save the results to a different text file for each hash type:
takajo.exe list-hashes -t ../hayabusa/timeline.jsonl -o case-1
For example, if MD5
, SHA1
and IMPHASH
hashes are stored in the sysmon logs, then the following files will be created: case-1-MD5-hashes.txt
, case-1-SHA1-hashes.txt
, case-1-ImportHashes.txt
list-ip-addresses
commandCreates a list of unique target and/or source IP addresses to be used with vt-ip-lookup
.
It will extract the TgtIP
fields for target IP addresses and SrcIP
fields for source IP addresses in all results and output just the unique IP addresses to a text file.
all-field-info
and all-field-info-verbose
Required options:
-o, --output <TXT-FILE>
: save results to a text file.-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory.Options:
-i, --inbound
: include inbound traffic. (default: true
)-O, --outbound
: include outbound traffic. (default: true
)-p, --privateIp
: include private IP addresses (default: false
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: “do not display the progress bar (default: false
)list-ip-addresses
command examplesPrepare the JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Save the results to a text file:
takajo.exe list-ip-addresses -t ../hayabusa/timeline.jsonl -o ipAddresses.txt
Exclude inbound traffic:
takajo.exe list-ip-addresses -t ../hayabusa/timeline.jsonl -o ipAddresses.txt -i=false
Include private IP addresses:
takajo.exe list-ip-addresses -t ../hayabusa/timeline.jsonl -o ipAddresses.txt -p
list-undetected-evtx
commandList up all of the .evtx
files that Hayabusa didn’t have a detection rule for.
This is meant to be used on sample evtx files that all contain evidence of malicious activity such as the sample evtx files in the hayabusa-sample-evtx repository.
verbose
, all-field-info-verbose
, super-verbose
, timesketch-verbose
You first need to run Hayabusa with a profile that saves the
%EvtxFile%
column information and save the results to a CSV timeline. You can see which columns Hayabusa saves according to the different profiles here.
Required options:
-e, --evtx-dir <EVTX-DIR>
: The directory of .evtx
files you scanned with Hayabusa.-t, --timeline <CSV-FILE>
: Hayabusa CSV timeline.Options:
-c, --column-name <CUSTOM-EVTX-COLUMN>
: specify a custom column name for the evtx column. (default: Hayabusa’s default of EvtxFile
)-o, --output <TXT-FILE>
: save the results to a text file. (default: output to screen)-q, --quiet
: do not display logo. (default: false
)list-undetected-evtx
command examplesPrepare the CSV timeline with Hayabusa:
hayabusa.exe -d <EVTX-DIR> -p verbose -o timeline.csv -w
Output the results to screen:
takajo.exe list-undetected-evtx -t ../hayabusa/timeline.csv -e <EVTX-DIR>
Save the results to a text file:
takajo.exe list-undetected-evtx -t ../hayabusa/timeline.csv -e <EVTX-DIR> -o undetected-evtx.txt
list-unused-rules
commandList up all of the .yml
detection rules that did not detect anything.
This is useful to help determine the reliablity of rules.
That is, which rules are known to find malicious activity and which are still untested and need sample .evtx
files.
verbose
, all-field-info-verbose
, super-verbose
, timesketch-verbose
You first need to run Hayabusa with a profile that saves the
%RuleFile%
column information and save the results to a CSV timeline. You can see which columns Hayabusa saves according to the different profiles here.
Required options:
-r, --rules-dir <DIR>
: the directory of .yml
rules files you used with Hayabusa.-t, --timeline <CSV-FILE>
: CSV timeline created by Hayabusa.Options:
-c, --column-name <CUSTOM-RULE-FILE-COLUMN>
: specify a custom column name for the rule file column. (default: Hayabusa’s default of RuleFile
)-o, --output <TXT-FILE>
: save the results to a text file. (default: output to screen)-q, --quiet
: do not display logo. (default: false
)list-unused-rules
command examplesPrepare the CSV timeline with Hayabusa:
hayabusa.exe csv-timeline -d <EVTX-DIR> -p verbose -o timeline.csv -w
Output the results to screen:
takajo.exe list-unused-rules -t ../hayabusa/timeline.csv -r ../hayabusa/rules
Save the results to a text file:
takajo.exe list-unused-rules -t ../hayabusa/timeline.csv -r ../hayabusa/rules -o unused-rules.txt
split-csv-timeline
commandSplit up a large CSV timeline into smaller ones based on the computer name.
Required options:
-t, --timeline <CSV-FILE>
: CSV timeline created by Hayabusa.Options:
-m, --makeMultiline
: output fields in multiple lines. (default: false
)-o, --output <DIR>
: directory to save the CSV files to. (default: output
)-q, --quiet
: do not display logo. (default: false
)split-csv-timeline
command examplesPrepare the CSV timeline with Hayabusa:
hayabusa.exe csv-timeline -d <EVTX-DIR> -o timeline.csv -w
Split the single CSV timeline into multiple CSV timelines in the default output
directory:
takajo.exe split-csv-timeline -t ../hayabusa/timeline.csv
Separate field information with newline characters to make multi-line entries and save to the case-1-csv
directory:
takajo.exe split-csv-timeline -t ../hayabusa/timeline.csv -m -o case-1-csv
split-json-timeline
commandSplit up a large JSONL timeline into smaller ones based on the computer name.
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory.Options:
-o, --output <DIR>
: directory to save the JSONL files to. (default: output
)-q, --quiet
: do not display logo. (default: false
)split-json-timeline
command examplesPrepare the JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Split the single JSONL timeline into multiple JSONL timelines in the default output
directory:
takajo.exe split-json-timeline -t ../hayabusa/timeline.jsonl
Save to the case-1-jsonl
directory:
takajo.exe split-json-timeline -t ../hayabusa/timeline.jsonl -o case-1-jsonl
stack-cmdlines
commandThis command will stack executed command lines by extracting information from Sysmon 1
and Security 4688
events.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level
: specify the minimum alert level (default: informational
)-y, --ignoreSysmon
: exclude Sysmon 1 events (default: false
)-e, --ignoreSecurity
: exclude Security 4688 events (default: false
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-cmdlines
command examplesOutput to terminal:
takajo.exe stack-cmdlines -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-cmdlines -t ../hayabusa/timeline.jsonl -o stack-cmdlines.csv
stack-computers
commandThis command will stack computer hostnames according to the Computer
field.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level
: specify the minimum alert level (default: informational
)-c, --sourceComputers
: stack source computers instead of target computers (default: false)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-computers
command examplesOutput to terminal:
takajo.exe stack-computers -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-computers -t ../hayabusa/timeline.jsonl -o stack-computers.csv
stack-dns
commandThis command will stack DNS queries and responses from Sysmon 22 events.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level
: specify the minimum alert level (default: informational
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-dns
command examplesOutput to terminal:
takajo.exe stack-dns -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-dns -t ../hayabusa/timeline.jsonl -o stack-dns.csv
stack-ip-addresses
commandThis command will stack the target IP addresses (TgtIP
field) or source IP addresses (SrcIP
field).
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level
: specify the minimum alert level (default: informational
)-a, --targetIpAddresses
: stack target IP addresses instead of source IP addresses (default: false
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-ip-addresses
command examplesOutput to terminal:
takajo.exe stack-ip-addresses -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-ip-addresses -t ../hayabusa/timeline.jsonl -o stack-ip-addresses.csv
stack-logons
commandCreates a list logons according to Target User
, Target Computer
, Logon Type
, Source IP Address
, Source Computer
.
Results are filtered out when the source IP address is a local IP address by default.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --localSrcIpAddresses
: include results when the source IP address is local.-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-logons
command examplesRun with default settings:
takajo.exe stack-logons -t ../hayabusa/timeline.jsonl
Include local logons:
takajo.exe stack-logons -t ../hayabusa/timeline.jsonl -l
stack-processes
commandThis command will stack executed processes from Sysmon 1 and Security 4688 events.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level
: specify the minimum alert level (default: low
)-y, --ignoreSysmon
: exclude Sysmon 1 events (default: false
)-e, --ignoreSecurity
: exclude Security 4688 events (default: false
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-processes
command examplesOutput to terminal:
takajo.exe stack-processes -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-processes -t ../hayabusa/timeline.jsonl -o stack-processes.csv
stack-services
commandThis command will stack service names and paths from System 7040 and Security 4697 events.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level
: specify the minimum alert level (default: informational
)-y, --ignoreSystem
: exclude System 7040 events (default: false
)-e, --ignoreSecurity
: exclude Security 4697 events (default: false
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-services
command examplesOutput to terminal:
takajo.exe stack-services -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-services -t ../hayabusa/timeline.jsonl -o stack-services.csv
stack-tasks
commandThis command will stack new scheduled tasks from Security 4698 events and parse out the XML task content.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level
: specify the minimum alert level (default: informational
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-tasks
command examplesOutput to terminal:
takajo.exe stack-tasks -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-tasks -t ../hayabusa/timeline.jsonl -o stack-tasks.csv
stack-users
commandThis command will stack the target users (TgtUser
field (default)) or source users (SrcUser
field) in any event that has those fields as well as show alert information.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-s, --sourceUsers
: stack source users instead of target users (default: false)-c, --filterComputerAccounts
: filter out computer accounts (default: true)-f, --filterSystemAccounts
: filter out system accounts (default: true)-l, --level
: specify the minimum alert level (default: informational
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)-s, --skipProgressBar
: do not display the progress bar (default: false
)stack-users
command examplesOutput to terminal:
takajo.exe stack-users -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe stack-users -t ../hayabusa/timeline.jsonl -o stack-users.csv
sysmon-process-tree
commandOutput the process tree of a certain process, such as a suspicious or malicious process.
all-field-info
and all-field-info-verbose
Required options:
-p, --processGuid <Process GUID>
: sysmon process GUID-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-o, --output <TXT-FILE>
: a text file to save the results to.-q, --quiet
: do not display logo. (default: false
)sysmon-process-tree
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Save the results to a text file:
takajo.exe sysmon-process-tree -t ../hayabusa/timeline.jsonl -p "365ABB72-3D4A-5CEB-0000-0010FA93FD00" -o process-tree.txt
sysmon-process-tree
screenshottimeline-logon
commandThis command extracts information from the following logon events, normalizes the fields and saves the results to a CSV file:
4624
- Successful Logon4625
- Failed Logon4634
- Account Logoff4647
- User Initiated Logoff4648
- Explicit Logon4672
- Admin LogonThis makes it easier to detect lateral movement, password guessing/spraying, privilege escalation, etc…
all-field-info
and all-field-info-verbose
Required options:
-o, --output <CSV-FILE>
: the CSV file to save the results to.-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-c, --calculateElapsedTime
: calculate the elapsed time for successful logons. (default: true
)-l, --outputLogoffEvents
: output logoff events as separate entries. (default: false
)-a, --outputAdminLogonEvents
: output admin logon events as separate entries. (default: false
)-q, --quiet
: do not display logo. (default: false
)timeline-logon
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Save logon timeline to a CSV file:
takajo.exe timeline-logon -t ../hayabusa/timeline.jsonl -o logon-timeline.csv
timeline-logon
screenshottimeline-partition-diagnostic
commandCreates a CSV timeline of partition diagnostic events by parsing Windows 10 Microsoft-Windows-Partition%4Diagnostic.evtx
files and reporting information about all the connected devices and their Volume Serial Numbers, both currently present on the device and previously existed.
This process is based on the tool Partition-4DiagnosticParser.
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-o, --output <CSV-FILE>
: the CSV file to save the results to.-q, --quiet
: do not display logo. (default: false
)timeline-partition-diagnostic
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Create a CSV timeline of connected devices:
takajo.exe timeline-partition-diagnostic -t ../hayabusa/timeline.jsonl -o partition-diagnostic-timeline.csv
timeline-suspicious-processes
commandCreate a CSV timeline of suspicious processes.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-l, --level <LEVEL>
: specify the minimum alert level (default: high
)-o, --output <CSV-FILE>
: the CSV file to save the results to (default: stdout
)-q, --quiet
: do not display logo. (default: false
)timeline-suspicious-processes
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w
Search for processes that had an alert level of high
or above and output results to screen:
takajo.exe timeline-suspicious-processes -t ../hayabusa/timeline.jsonl
Search for processes that had an alert level of low
or above and output results to screen:
takajo.exe timeline-suspicious-processes -t ../hayabusa/timeline.jsonl -l low
Save the results to a CSV file:
takajo.exe timeline-suspicious-processes -t ../hayabusa/timeline.jsonl -o suspicous-processes.csv
timeline-suspicious-processes
screenshottimeline-tasks
commandThis command will stack new scheduled tasks from Security 4698 events and parse out the XML task content.
all-field-info
and all-field-info-verbose
Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-o, --output <CSV-FILE>
: the CSV file to save the results to.-q, --quiet
: do not display logo. (default: false
)timeline-tasks
command examplesOutput to terminal:
takajo.exe timeline-tasks -t ../hayabusa/timeline.jsonl
Save to CSV:
takajo.exe timeline-tasks -t ../hayabusa/timeline.jsonl -o timeline-tasks.csv
ttp-summary
commandThis command summarize tactics and techniques found in each computer according to the MITRE ATT&CK TTPs defined in the tags
field of the sigma rules.
%MitreTactics%
and %MitreTags%
fields. (Ex: verbose
, all-field-info-verbose
, super-verbose
)Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-o, --output <CSV-FILE>
: the CSV file to save the results to.-q, --quiet
: do not display logo. (default: false
)ttp-summary
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p verbose
Print TTP summary to terminal:
takajo.exe ttp-summary -t ../hayabusa/timeline.jsonl
Save the results to a CSV file:
takajo.exe ttp-summary -t ../hayabusa/timeline.jsonl -o ttp-summary.csv
ttp-summary
screenshotttp-visualize
commandThis command extracts TTPs and create a JSON file to visualize in MITRE ATT&CK Navigator.
%MitreTactics%
and %MitreTags%
fields. (Ex: verbose
, all-field-info-verbose
, super-verbose
)Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-o, --output <JSON-FILE>
: the JSON file to save the results to. (default: mitre-ttp-heatmap.json
)-q, --quiet
: do not display logo. (default: false
)ttp-visualize
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p verbose
Extract out the TTPs and save to mitre-ttp-heatmap.json
:
takajo.exe ttp-visualize -t ../hayabusa/timeline.jsonl
Open https://mitre-attack.github.io/attack-navigator/, click Open Existing Layer
and upload the saved JSON file.
ttp-visualize
screenshotttp-visualize-sigma
commandThis command extracts TTPs from Sigma and create a JSON file to visualize in MITRE ATT&CK Navigator.
%MitreTactics%
and %MitreTags%
fields. (Ex: verbose
, all-field-info-verbose
, super-verbose
)Required options:
-t, --timeline <JSONL-FILE-OR-DIR>
: Hayabusa JSONL timeline file or directory of JSONL filesOptions:
-o, --output <JSON-FILE>
: the JSON file to save the results to. (default: sigma-rules-heatmap.json
)-q, --quiet
: do not display logo. (default: false
)ttp-visualize-sigma
command examplesPrepare JSONL timeline with Hayabusa:
hayabusa.exe json-timeline -d <EVTX-DIR> -L -o timeline.jsonl -w -p verbose
Extract out the TTPs from Sigma and save to sigma-rules-heatmap.json
:
takajo.exe ttp-visualize-sigma -t ../hayabusa/timeline.jsonl
vt-domain-lookup
commandLook up a list of domains on VirusTotal
all-field-info
and all-field-info-verbose
Required options:
-a, --apiKey <API-KEY>
: your VirusTotal API key.-d, --domainList <TXT-FILE>
: a text file list of domains.-o, --output <CSV-FILE>
: save the results to a CSV file.Options:
-j, --jsonOutput <JSON-FILE>
: output all of the JSON responses from VirusTotal to a JSON file.-r, --rateLimit <NUMBER>
: the rate per minute to send requests. (default: 4
)-q, --quiet
: do not display logo. (default: false
)vt-domain-lookup
command examplesFirst create a list of domains with the list-domains
command.
Then lookup those domains with the following:
takajo.exe vt-domain-lookup -a <API-KEY> -d domains.txt -o vt-domain-lookup.csv -r 1000 -j vt-domain-lookup.json
vt-hash-lookup
commandLook up a list of hashes on VirusTotal.
all-field-info
and all-field-info-verbose
Required options:
-a, --apiKey <API-KEY>
: your VirusTotal API key.-H, --hashList <HASH-LIST>
: a text file of hashes.-o, --output <CSV-FILE>
: save the results to a CSV file.Options:
-j, --jsonOutput <JSON-FILE>
: output all of the JSON responses from VirusTotal to a JSON file.-r, --rateLimit <NUMBER>
: the rate per minute to send requests. (default: 4
)-q, --quiet
: do not display logo. (default: false
)vt-hash-lookup
command examplestakajo.exe vt-hash-lookup -a <API-KEY> -H MD5-hashes.txt -o vt-hash-lookup.csv -r 1000 -j vt-hash-lookup.json
vt-ip-lookup
commandLook up a list of IP addresses on VirusTotal.
all-field-info
and all-field-info-verbose
Required options:
-a, --apiKey <API-KEY>
: your VirusTotal API key.-i, --ipList <IP-ADDRESS-LIST>
: a text file of IP addresses.-o, --output <CSV-FILE>
: save the results to a CSV file.Options:
-j, --jsonOutput <JSON-FILE>
: output all of the JSON responses from VirusTotal to a JSON file.-r, --rateLimit <NUMBER>
: the rate per minute to send requests. (default: 4
)-q, --quiet
: do not display logo. (default: false
)vt-ip-lookup
command examplestakajo.exe vt-ip-lookup -a <API-KEY> -i ipAddresses.txt -o vt-ip-lookup.csv -r 1000 -j vt-ip-lookup.json
We would love any form of contribution. Pull requests, rule creation and sample evtx logs are the best but feature requests, notifying us of bugs, etc… are also very welcome.
At the least, if you like our tool then please give us a star on Github and show your support!
Please submit any bugs you find here. This project is currently actively maintained and we are happy to fix any bugs reported.
If you find any issues (false positives, bugs, etc…) with Hayabusa, please report them to the hayabusa github issues page here.
If you find any issues (false positives, bugs, etc…) with Hayabusa rules, please report them to the hayabusa-rules github issues page here.
If you find any issues (false positives, bugs, etc…) with Sigma rules, please report them to the upstream SigmaHQ github issues page here.
Takajō is released under the AGPLv3 license.
You can recieve the latest news about Takajō, Hayabusa, rule updates, other Yamato Security tools, etc… by following us on Twitter at @SecurityYamato.