はじめに
- HTB の問題を解くとき、ずっと悩んでいたことがあります
- 定常作業を省略する方法はないか?
- 問題の情報(分かったこと・試したこと・資格情報・画面)を、どこに、どう整理するか
- どこを自動にして、どこを AI に任せて、どこを自分でやるか
- そのために、2つのものを作りました
- hackdeck: 問題ごとの管理、定常作業(コマンドの入力・資格情報・環境変数の管理)を行うツール
- Hacking-Op: 問題の情報を整理するためのフォルダ構造
- 私は、この2つを組み合わせて問題を解いています
概要
全体の流れ
- やっていることは、ざっくり3ステップです!
- hackdeck で、tmux セッションを作る。※ セッション作成時に問題用のフォルダが作られるのだが、そのフォルダを Hacking-Op にする
- フォルダの中に、自分・自動(hackdeck)・AI で分担して情報を書いていく(詳細は Hacking-Op 参照)
- セッションの中で、hackdeck を使ってコマンドを生成する(詳細は hackdeck 参照)
手順の説明
1. 問題を整理するフォルダを作成
- hackdeck を使って、その問題専用の「tmux セッション」と「フォルダ(Hacking-Op)」を生成します
- 詳しくは hackdeck へ
2. フォルダに情報を記入
- 生成したセッションに入ると、生成したフォルダの中に入れます
- フォルダ内のファイルは、Obsidian を使って編集します
- フォルダには、Hacking-Op を使います
- その中にはいくつかのフォルダがあるのですが、「自分」・「自動」・「AI」の誰が記載するのかで分類をしています
| 担当者 | やること |
|---|---|
| 自分 | ・ 自分用の簡単なメモを記載 |
| 自動 | ・ 添付した画像の管理 ※ メモに添付した画像は Obsidian が自動で管理します |
| AI | ・ 現時点で判明している情報の整理 ・ 見落とし情報がないかの確認 ・ ヒント ※ これらの情報は、セッション内のコマンド実行ログ(hackdeck が自動で作成)から判断します |
- 詳しくは Hacking-Op へ
3. セッションの中ではコマンドの生成が可能
- セッションの中では、hackdeck を使うことで、以下のことが可能です
| 機能 | できること |
|---|---|
| コマンドの生成 | ・ 自分で登録したコマンドの生成 |
| 資格情報の管理 | ・ 資格情報の登録 ・ 登録した資格情報は、コマンドの生成で使用可能 |
| 環境変数の管理 | ・ 環境変数の登録 ・ 登録した環境変数は、コマンドの生成で使用可能 ・ ここで登録した環境変数は、コマンドが実行される度に参照される |
| メモ | ・ 設定タブで ON にすることで使用可能 ・ 簡単なメモが可能 |
| 案件 | ・ 生成したセッションの管理 |
| 設定 | ・ hackdeck の設定(ログの自動収集・テーマの変更) |
実際の画像
おわりに
- 本実装の論理的な部分は、AI にどこまで任せる? ハッキング学習の自分ルール に書いています
- まだまだ途中なので、これからも変わり続けると思います(笑)
- 道具は hackdeck-public、雛形は Hacking-Op-public に置いてあります。ぜひご参考までに!
