
goLoLは、LOLBASバイナリとLOLDriversの両方をサポートするWindowsホストスキャナです。現在の権限レベルで実行可能なLOLBASテクニック(MITRE ATT&CKマッピング付き)を一覧表示し、ローカルの.sysファイルをスキャンして、脆弱性のある/悪意のあるLOLDriversのハッシュ一致を検出できます。
goLoL は、LOLBAS バイナリと LOLDrivers の両方をサポートする Windows ホストスキャナです。現在の特権レベルで実行可能な LOLBAS テクニックを一覧表示し(MITRE ATT&CK マッピング付き)、ローカルの .sys ファイルをスキャンして、脆弱性または悪意のある LOLDrivers ハッシュの一致を検出します。
注記: これは OPSEC 上安全なツールではありません。
作者: Aaron Kidwell
█████ █████
░░███ ░░███
███████ ██████ ░███ ██████ ░███
███░░███ ███░░███ ░███ ███░░███ ░███
░███ ░███░███ ░███ ░███ ░███ ░███ ░███
░███ ░███░███ ░███ ░███ █░███ ░███ ░███ █
░░███████░░██████ ███████████░░██████ ███████████
░░░░░███ ░░░░░░ ░░░░░░░░░░░ ░░░░░░ ░░░░░░░░░░░
███ ░███
░░██████
░░░░░░

%WINDIR%、%ProgramFiles%、%USERPROFILE%、WindowsApps の場所に解決しますT1003.003: NTDS).sys ファイルをハッシュ化し、ライブの LOLDrivers JSON カタログと照合しますnet localgroup を使用(Windows では子プロセス 1 つ)| あなたのコンテキスト | 表示される内容 |
|---|---|
| 標準ユーザー | ユーザー階層のテクニック |
| ローカル Administrators のメンバー | ユーザー階層 + 管理者階層のテクニック |
| NT AUTHORITY\SYSTEM | ユーザー階層 + 管理者階層 + SYSTEM 階層のテクニック |
管理者階層のコマンドは、アカウントが Administrators グループに属している場合でも、昇格したシェルが必要になる場合があります。SYSTEM 階層のエントリは、プロセストークンが SYSTEM(S-1-5-18)でない限り非表示になります。
リモートインストール(GitHub のタグ付きリリースが必要です。例: v0.1.0):
go install github.com/aaron-kidwell/goLoL@latest
バイナリは GOPATH/bin(または ~/go/bin)に配置されます。Windows では、そのディレクトリが PATH に含まれていることを確認してください。
クローンしてビルド:
git clone https://github.com/aaron-kidwell/goLoL.git
cd goLoL
go build -ldflags="-s -w" -trimpath -o golol.exe .
goLoL は 2 つのスキャンモードをサポートしています:
-driver により、脆弱性のある/悪意のあるドライバハッシュの一致を検出モジュールルートから実行します(internal/ パッケージに必要):
go run .
バイナリをビルドします(推奨。デバッグ情報を削除し、約 30% 小さくなります):
go build -ldflags="-s -w" -trimpath -o golol.exe .
.\golol.exe
-s -w はシンボルテーブルと DWARF デバッグデータを削除します。このプロジェクトのデフォルトの go build は約 9.5 MB ですが、これらのフラグを使用すると約 6.4 MB になります。
並べ替えエイリアス: b、priv / p、mitre / a。無効な値はエラーを表示してヘルプを表示します。
# デフォルト: バイナリ名でグループ化(A-Z)
go run .
# ドライバモード(ローカルの .sys ファイルを LOLDrivers ハッシュに対してスキャン)
go run . -driver
# 単一バイナリを検索
go run . -s certutil
.\golol.exe -s certutil.exe
# 管理者階層を最初に、次にユーザー階層(SYSTEM で実行時は SYSTEM 階層が最初)
go run . -sort privilege
# MITRE ATT&CK ID で並べ替え
go run . -sort attack
# リバースシェル / telnet 向け出力
go run . -plain
# フラグの組み合わせ
go run . -plain -sort attack
件数やバイナリはホストによって異なります。この README の上部にあるスクリーンショットは、インタラクティブモード(色付きターミナル、バイナリごとにグループ化)を示しています。
プレーンモード(-plain):
[*] Checking process token...
[*] Fetching LOLBAS catalog...
[+] Found 147 binaries, 299 techniques
==============================================================
Role: administrator
Sort: binary
Binaries: 147
Techniques: 299
==============================================================
[1] Esentutl.exe
Path: C:\Windows\System32\esentutl.exe
...
-driver モードでは、LOLDrivers JSON カタログをダウンロードし、ローカルの .sys ファイルをハッシュ化して、ハッシュの一致を報告します。-driver モードではドライバ一致メタデータ)とともに結果を出力します。.
├── docs/
│ └── screenshot.png # README screenshot
├── main.go
├── internal/
│ ├── mitre/
│ │ └── names.go # MITRE ATT&CK ID to label map
│ └── privileges/
│ ├── privileges_windows.go # Token / Administrators group checks
│ └── privileges_stub.go # Non-Windows stub
├── go.mod
└── go.sum
許可を得たセキュリティテスト、ラボでの使用、教育のみを目的としています。所有しているシステム、または評価する明示的な許可を得たシステムに対してのみ実行してください。LOLBAS エントリは攻撃者によって悪用される可能性のあるテクニックを説明しているため、責任を持って使用してください。作者は誤用について責任を負いません。
テクニックとメタデータは、LOLBAS Project と LOLDrivers から取得しています。goLoL はこれらのプロジェクトとは提携しておらず、これらのプロジェクトによる推奨も受けていません。
MIT
| フラグ | 説明 |
|---|
-h, -help | ヘルプを表示 |
-driver | ローカルドライバをスキャンし、LOLDrivers から既知の脆弱性/悪意のある一致を一覧表示 |
-plain | ASCII のみの出力(色、Unicode、カーソル制御なし) |
-s, -search | 名前で 1 つのバイナリを表示(certutil または certutil.exe)。ディスク上にない場合は報告 |
-sort | 結果の並べ替え: binary(デフォルト)、privilege、または attack |
| コンポーネント | 場所 |
|---|
| LOLBAS カタログ | https://lolbas-project.github.io/api/lolbas.json |
| LOLDrivers カタログ | https://www.loldrivers.io/api/drivers.json |
| 特権検出 | internal/privileges |
| MITRE テクニック名 | internal/mitre |
| パス解決と出力 | main.go |