Skip to content

Integration-Test-windows #20

Integration-Test-windows

Integration-Test-windows #20

name: Integration-Test-windows
on:
workflow_dispatch:
jobs:
takajo-integration-test:
runs-on: windows-latest
steps:
- name: setup Nim
uses: jiro4989/setup-nim-action@v1
with:
nim-version: '2.x' # default is 'stable'
- name: clone takajo
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
path: takajo
- name: build takajo
run: |
cd takajo
nimble update
nimble build -d:release --threads:on
cd ../
- name: clone hayabusa
uses: actions/checkout@v4
with:
repository: Yamato-Security/hayabusa
submodules: recursive
path: hayabusa
- name: clone hayabusa-sample-evtx
uses: actions/checkout@v4
with:
repository: Yamato-Security/hayabusa-sample-evtx
path: hayabusa-sample-evtx
- name: run hayabusa timeline
run: |
cd .\hayabusa
git fetch --prune --unshallow
$LATEST_VER = git describe --tags --abbrev=0
$URL = "https://github.com/Yamato-Security/hayabusa/releases/download/$($LATEST_VER)/hayabusa-$($LATEST_VER -replace 'v')-win-x64.zip"
New-Item -ItemType Directory -Path .\tmp | Out-Null
cd .\tmp
Invoke-WebRequest -Uri $URL -OutFile "hayabusa-$($LATEST_VER -replace 'v')-win-x64.zip"
Expand-Archive -Path .\*.zip -DestinationPath .
& ".\hayabusa-$($LATEST_VER -replace 'v')-win-x64.exe" update-rules
& ".\hayabusa-$($LATEST_VER -replace 'v')-win-x64.exe" csv-timeline -d ..\..\hayabusa-sample-evtx -w -p super-verbose -o ..\..\takajo\timeline.csv
& ".\hayabusa-$($LATEST_VER -replace 'v')-win-x64.exe" json-timeline -d ..\..\hayabusa-sample-evtx -L -w -p super-verbose -o ..\..\takajo\timeline.jsonl
- name: run extract-scriptblocks
run: cd takajo && ./takajo extract-scriptblocks -t timeline.jsonl -o scriptblocks
- name: run extract-scriptblocks(-o)
run: cd takajo && ./takajo extract-scriptblocks -t timeline.jsonl -o scriptblocks
- name: run extract-scriptblocks(-l)
run: cd takajo && ./takajo extract-scriptblocks -t timeline.jsonl -o scriptblocks -l informational
- name: run list-domain(-o)
run: cd takajo && ./takajo list-domains -t timeline.jsonl -o domains.txt
- name: run list-domain(-s)
run: cd takajo && ./takajo list-domains -t timeline.jsonl -o domains.txt -s
- name: run list-hashes(-o)
run: cd takajo && ./takajo list-hashes -t timeline.jsonl -o case-1
- name: run list-ip-addresses(-o)
run: cd takajo && ./takajo list-ip-addresses -t timeline.jsonl -o ipAddresses.txt
- name: run list-ip-addresses(-i)
run: cd takajo && ./takajo list-ip-addresses -t timeline.jsonl -o ipAddresses.txt -i=false
- name: run list-undetected-evtx
run: cd takajo && ./takajo list-undetected-evtx -t timeline.csv -e ../hayabusa-sample-evtx
- name: run list-undetected-evtx(-o)
run: cd takajo && ./takajo list-undetected-evtx -t timeline.csv -e ../hayabusa-sample-evtx -o undetected-evtx.txt
- name: run list-unused-rules
run: cd takajo && ./takajo list-unused-rules -t timeline.csv -r ../hayabusa/tmp/rules
- name: run list-unused-rules(-o)
run: cd takajo && ./takajo list-unused-rules -t timeline.csv -r ../hayabusa/tmp/rules -o unused-rules.txt
- name: run split-csv-timeline
run: cd takajo && ./takajo split-csv-timeline -t timeline.csv
- name: run split-json-timeline
run: cd takajo && ./takajo split-json-timeline -t timeline.jsonl
- name: run stack-cmdlines
run: cd takajo && ./takajo stack-cmdlines -t timeline.jsonl
- name: run stack-cmdlines(-o)
run: cd takajo && ./takajo stack-cmdlines -t timeline.jsonl -o cmdlines.csv
- name: run stack-cmdlines(-l)
run: cd takajo && ./takajo stack-cmdlines -t timeline.jsonl -o cmdlines.csv -l informational
- name: run stack-dns
run: cd takajo && ./takajo stack-dns -t timeline.jsonl
- name: run stack-dns(-o)
run: cd takajo && ./takajo stack-dns -t timeline.jsonl -o dns.csv
- name: run stack-logons
run: cd takajo && ./takajo stack-logons -t timeline.jsonl
- name: run stack-logons(-l)
run: cd takajo && ./takajo stack-logons -t timeline.jsonl -l
- name: run stack-logons(-o)
run: cd takajo && ./takajo stack-logons -t timeline.jsonl -o logon.csv
- name: run stack-processes
run: cd takajo && ./takajo stack-processes -t timeline.jsonl
- name: run stack-processes(-o)
run: cd takajo && ./takajo stack-processes -t timeline.jsonl -o processes.csv
- name: run stack-processes(-l)
shell: pwsh
run: cd takajo && ./takajo stack-processes -t timeline.jsonl -o processes.csv -l informational
- name: run stack-services
run: cd takajo && ./takajo stack-services -t timeline.jsonl
- name: run stack-services(-o)
run: cd takajo && ./takajo stack-services -t timeline.jsonl -o services.csv
- name: run stack-tasks
run: cd takajo && ./takajo stack-tasks -t timeline.jsonl
- name: run stack-tasks(-o)
run: cd takajo && ./takajo stack-tasks -t timeline.jsonl -o tasks.csv
- name: run sysmon-process-tree
run: cd takajo && ./takajo sysmon-process-tree -t timeline.jsonl -p "365ABB72-3D4A-5CEB-0000-0010FA93FD00" -o process-tree.txt
- name: run timeline-logon
run: cd takajo && ./takajo timeline-logon -t timeline.jsonl -o logon-timeline.csv
- name: run timeline-partition-diagnostic
run: cd takajo && ./takajo timeline-partition-diagnostic -t timeline.jsonl -o partition-diagnostic-timeline.csv
- name: run timeline-suspicious-process
run: cd takajo && ./takajo timeline-suspicious-process -t timeline.jsonl -o suspicous-processes.csv
- name: run timeline-tasks
run: cd takajo && ./takajo timeline-tasks -t timeline.jsonl -o task-timeline.csv
- name: run ttp-summary
run: cd takajo && ./takajo ttp-summary -t timeline.jsonl -o ttp-summary.csv
- name: run ttp-visualize
run: cd takajo && ./takajo ttp-visualize -t timeline.jsonl
- name: run ttp-visualize-sigma
run: cd takajo && ./takajo ttp-visualize-sigma -r ../hayabusa/tmp/rules