はじめに
- HTB などの問題で行う 定常作業(いつものコマンドの入力・メモに使うフォルダの用意など) を管理するツールを作りました → Ch4n24n/hackdeck-public
- 問題ごとのフォルダ(セッション)の管理、コマンドの生成、資格情報・環境変数の管理 の機能を持った All in One ツールになります
自分好みに魔改造済みです。
自分のやり方に合わせて作り込んだので、かなりの欲張りセットになっています💦
※ 画面も説明も日本語だけ。Kali・zsh・tmux・fzf・GNOME Terminal でしか試していません
仕組み
hackdeck は、それぞれの問題を tmux セッションで管理します。
機能としては以下のとおりです。
| 機能 | 説明 |
|---|---|
| 問題をフォルダ単位で管理 | 1 問題につき、1 tmux セッション(1 フォルダ)を生成します 各セッション(フォルダ)をツールで一元管理できます ※ tmux の機能 |
| 資格情報・環境変数の隔離 | 資格情報・環境変数は、そのセッション内に隔離されます ※ tmux の機能 |
| コマンドの生成 | 自分が登録したコマンドを、数クリックでコンソールに出力できます ※ 資格情報・環境変数で定義されていた場合、オプションの値はコマンドに合った書き方で出力されます |
| ログの保存 | セッション内で実行されたすべてのコマンドの入出力は、1つのファイルに書き出されます |
イメージ
hackdeck
├─ 問題 A … tmux セッション「A」 + フォルダ ~/cases/A(雛形をクローンしたもの)
├─ 問題 B … tmux セッション「B」 + フォルダ ~/cases/B
└─ …
使い方
1. セッション(フォルダ)を作る
- メニューの「案件」のタブでフォルダ名を打つと、その名前のフォルダを生成します。それと同時に、同名のセッションも生成され、そのセッションに入ります
フォルダ生成の実態
実体は、リポジトリのクローンであり、どのリポジトリをクローンするのかは設定タブで選択できます
自由なリポジトリを設定可能ですが、未設定の場合はシンプルな作業フォルダを作成します
2. 環境変数と資格情報を登録する
- 「環境」のタブで、
TARGETなどの環境変数を登録します。登録した値は、そのセッションのすべてのペインで、次に打つコマンドから使えます
- 「資格情報」のタブで、見つけたユーザー名とパスワード(ハッシュ)を登録します
3. コマンドを生成する
- 「コマンド」のタブでコマンドを選ぶと、中の変数(
<host>など)を、1つずつ候補から選べます - ホストを選ぶ画面には、環境変数(
$TARGET)や/etc/hostsの名前が出ます
- 資格情報を選ぶ画面には、登録したものが、道具に合った書き方で出ます。選ぶだけで、ユーザー名とパスワードが入ります
- できたコマンドは、いまのペインの入力行に入ります(Enter を押すまで実行されません)
おわりに
- 問題を解いていると、問題ごとの情報をどう整理しようか、コマンドの入力を楽できないか?と思うことが多かったので、この機会に悩み解決の欲張りセットツールを作ってみました💦
- 自分専用ですが、tmux セッションで問題を分ける形は、ほかの道具でも使えると思います!
- ぜひご参考までに🙇





