
いくつかのペンテストツール。いくつかのペンテストツールをインストールし、最新の状態に保ちます。私はこれを使ってOSCP試験に合格しました。
すべてのペンテストツールを一箇所で管理し、1つのコマンドで最新の状態に保ちます 😎
sometoolsの目標は、Kaliに含まれていない、または sudo apt install が利用できないすべてのツールを管理できるようにすることです。sometoolsはツールがリポジトリである場合に最も効果的ですが、リポジトリなしでも動作するように調整することができます。
私はKali-Linuxに含まれていないいくつかのツールを管理し、最新の状態に保つ方法を探していました。例えば、権限昇格スクリプトを簡単に管理する方法を探していました。ある日、eugenekoloのsec-tools(ページ下部でご覧いただけます)を見かけ、すぐに自分用のものを作り始めるモチベーションを得ました。私の主な動機は check-update-all コマンドで、これによりインストールしたすべてのツールをスムーズに更新できます。
ただし、これらは異なることに注意してください。私はKaliを使用している人向けにこれを作りました。他のディストリビューションでも動作するはずですが、Burp SuiteやSQLmapのようなツールはKaliにデフォルトで含まれているため、含めていません。
$ git clone https://github.com/som3canadian/Some-Tools $ cd Some-Tools $ ./sometools.sh setup
$ ./sometools.sh list
## 基本的な使い方

**注**: ツールを使用する際にカテゴリ名を指定する必要はありません。ツール名またはIDを使用してください。ツールIDは `./sometools.sh list` で確認できます。
よく使われるアクションは以下の通りです:
- list
- install
- check-update-all
- git-search
- self-update```bash
# Inital setup. Should be the first command
$ ./sometools.sh setup
# List all available tools
$ ./sometools.sh list
# List all available tools of a category
$ ./sometools.sh list-cat Utilities
# List install tool(s)
$ ./sometools.sh list-installed
# List installed tools accessible from anywhere on your machine
$ ./sometool.sh list-bin
# Install a tool
$ ./sometools.sh install unicorn
# Using ID instead of tool name
$ ./sometools.sh install 4
# Install all tools of a Category
$ ./sometools.sh install-cat PrivEsc-Win
# Install All tools
$ ./sometools.sh install all
# Check update for all installed tools
# check-update-all command is the main reason why I made this
$ ./sometools.sh check-update-all
# Check for update
$ ./sometools.sh check-update PEAS
# Using ID instead of tool name
$ ./sometools.sh check-update 9
# Search for a tool on github
$ ./sometools.sh git-search LinEnum
# Search for a PoC in the PoC-in-GitHub tool
$ ./sometools.sh search-poc
# Show README.md of an installed tool
$ ./sometools.sh info unicorn
# Using ID instead of tool name
$ ./sometools.sh info 4
# Add a new tool
$ ./sometools.sh add-tool newtoolname PrivEsc-Lin
# Uninstall a tool
$ ./sometools.sh uninstall unicorn
# Using ID instead of tool name
$ ./sometools.sh uninstall 4
# Unistall all tools of a Category
$ ./sometools.sh uninstall-cat PrivEsc-Win
# Update some-tools
$ ./sometools.sh self-update
# Delete all installed tools, remove bin directory and delete our modification in .zshrc or .bashrc
$ ./sometools.sh complete-uninstall
bin ディレクトリは、セットアップアクションの実行時に作成されます。このディレクトリパスをシェルの $PATH に追加します (your/install/dir/Some-Tools/bin)。bin ディレクトリには、マシン上のどこでも実行可能にしたいツールのコピー(シンボリックリンク)を置きます。例えば unicorn.py のようなツールは、どこからでも unicorn を実行したい場合があります。
セットアップアクションでは、同時に bin/PrivEsc-Lin と bin/PrivEsc-Win も作成されます。このディレクトリには特権昇格スクリプトを保存します。ツールを使用したいときに、Python HTTP サーバーを起動して、必要なスクリプトをすばやくアップロードできます。これらのフォルダ内のスクリプトは、check-update アクションでツールを更新するときに同時に更新されます。
注:
setup (セットアッププロセス):
.bashrc または .zshrc のどちらのシェルを使用するかを尋ねます(組み込みのセットアップアクションは、これら2つのシェルのいずれかを使用していない場合には機能しません)echo $PATH を実行しますsometools.sh のセットアップセクションを読むと、より理解が深まります。 ```bash
$ ./sometools.sh setupinstall および install-all:
./sometools.sh list を実行したときに表示されるID番号を使用できます。.installed ファイルが作成されます。このファイルは、list-installedアクションで役立ちます。 ```bash
$ ./sometools.sh list # see which tool can be install$ ./sometools.sh install LinEnum


self-update:
pull を実行するかどうかを尋ねられます。 ```bash
$ ./sometools.sh self-updateアンインストール:
./sometools.sh list を実行したときに表示されるID番号を使用することもできます。 ```bash
$ ./sometools.sh uninstall unicorn$ ./sometools.sh uninstall 4
add-tool:
install-tool.sh、uninstall-tool.sh、.gitignore の3つのファイルも作成します。add-tool アクションが作成する3つのファイルです。PrivEsc-Lin ディレクトリ内の lse ツールの例を参照できます。ツールディレクトリ内の ファイルを変更する必要があるかもしれません。Zsh 関数にはペネトレーションテストツールは含まれていません。私のワークフローを大幅に改善する小さなスクリプトが含まれており、他の人にも役立つと思いました。
他のシェルでも使えるかもしれませんが、私は zsh で使用しています。
これはセットアッププロセス中には設定されません。手動で設定する必要があります。どのように?以下のスニペットを .zshrc ファイルに追加してください。```bash
fpath=(~/path/of/sometools/Zsh-Functions $fpath); autoload -U $fpath[1]/*(.:t)
- mkcd: mkdir と cd
- mv: 現在のディレクトリにファイル/フォルダを移動(引数1つ)
- op: ファイルマネージャでファイルやフォルダを開く(`op .` でカレントディレクトリを開く)
## その他
- ツール名の代わりにID番号を使用する場合は、`./sometools.sh list` のID番号を使用し、`./sometools.sh list-installed` のID番号は使用しないでください。
- 特定の更新手順が必要な新しいツールを追加する場合は、ツールディレクトリに `update-tool.sh` ファイルを作成できます(install-tool.sh や uninstall-tool.sh ファイルと同様)。check-update を実行すると、some-tools.sh スクリプトがそれを考慮します。
- 同じ名前を二つのツールに使用することは **できません**。問題が発生します。add-tool アクションを使用する際には、それをチェックします。解決策としては、アクションを使用する際にカテゴリ名を指定することですが、それは **本当に避けたい** です。異なる名前を使用するのは簡単なので、現時点では複数のツールに同じ名前を使用できるようにする解決策を開発するつもりはありません。
- インストールするツールの中には、`sudo` 権限を要求するものがあります!
- リポジトリに含まれる `check-git.sh` ファイルは、check-update および check-update-all アクション用です。
- これは余暇に作っているもので、バグがあるかもしれません。スターが増え始めたら、より多くの時間と労力を費やすかもしれません。
## ライセンス
各ツールはそれぞれのライセンスの下でライセンスされています。Some-Tools に関しては、GNU General Public License v3.0 の下でライセンスされています。
⭐ 役に立ったと思ったら、このページの上部でスターを付けてください ⭐ または ☕ を買っていただくこともできます。ありがとうございます 🔥😎
<a href="https://www.buymeacoffee.com/somecanadian" target="_blank"><img src="https://assets.kitploit.com/production/public/readmes/3722/eecc7380590efb5bd32637f86ef07884b0e9f1f82f7dbf8b2bc7e8410d721225.png" alt="Buy Me A Coffee" height="51" width="217"></a>
## 謝辞
- <https://github.com/eugenekolo/sec-tools> と <https://github.com/zardus/ctf-tools> のアイデアから構築されました。
- Vagrant ボックス提供: [nicmilot](https://app.vagrantup.com/nicmilot/boxes/kali-full-2020)。彼の他の Vagrant ボックスもご覧いただけます: [pwk-kali-2018](https://app.vagrantup.com/nicmilot/boxes/pwk-kali-2018)(VMware Fusion 用)や [Metasploitable3](https://app.vagrantup.com/nicmilot/boxes/metasploitable3-win2008-vmware)(同じく VMware Fusion 用)。
| カテゴリ | ツール | 説明 |
|---|
| Evasion | Bashfuscator | 完全に設定可能で拡張可能な Bash 難読化フレームワーク。 |
| Evasion | Chimera | AMSI や商用アンチウイルスソリューションを回避するために設計された PowerShell 難読化スクリプト。 |
| Evasion | PyFuscation | 関数名、変数、パラメータを置き換えて PowerShell スクリプトを難読化します。 |
| Evasion | tvasion | 🎭 Powershell と C# を使用した AES 暗号化によるファイル署名変更ベースのアンチウイルス回避... |
| Evasion | unicorn | PowerShell ダウングレード攻撃を使用し、シェルコードをメモリに直接注入するためのシンプルなツール... |
| Exploit-Win | windows-kernel-exploits | windows-kernel-exploits Windows プラットフォーム特権昇格脆弱性コレクション |
| PrivEsc-Lin | BeRoot | 特権昇格プロジェクト - Windows / Linux / Mac |
| PrivEsc-Lin | LinEnum | スクリプトによるローカル Linux 列挙 <> 特権昇格チェック |
| PrivEsc-Lin | LinPwn | インタラクティブなポストエクスプロイテーションツール |
| PrivEsc-Lin | PEAS | PEASS - 特権昇格のための素晴らしいスクリプトスイート |
| PrivEsc-Lin | SUID3NUM | Python の組み込みモジュールを利用して SUID バイナリを列挙するスタンドアロン Python スクリプト... |
| PrivEsc-Lin | SetUID | 特権昇格のための個人的なガイド |
| PrivEsc-Lin | linux-enum-mod | ペンテスト関連のものを集めただけのもの |
| PrivEsc-Lin | linux-exploit-suggester | Linux 特権昇格監査ツール |
| PrivEsc-Lin | linux-exploit-suggester-2 | 次世代 Linux カーネルエクスプロイト提案ツール |
| PrivEsc-Lin | linuxprivchecker | Linux 特権昇格チェックスクリプト |
| PrivEsc-Lin | lse | 詳細レベルを持つペンテストや CTF のための Linux 列挙ツール |
| PrivEsc-Lin | pspy | root 権限なしで Linux プロセスを監視 |
| PrivEsc-Lin | setuid-wrapper | シェルスクリプトを昇格された権限で起動するためのシンプルな setuid ラッパープログラム。 |
| PrivEsc-Lin | unix-privesc-check | code.google.com/p/unix-privesc-check から自動エクスポート |
| PrivEsc-Win | Ghostpack-CompiledBinaries | Ghostpack 用コンパイル済みバイナリ (.NET v4.0) |
| PrivEsc-Win | JAWS | JAWS - Just Another Windows (Enum) Script |
| PrivEsc-Win | Powerless | OSCP ラボ (レガシー Windows) を念頭に置いた Windows 特権昇格 (列挙) スクリプト |
| PrivEsc-Win | Privesc | 特権昇格につながる設定ミス問題を見つける Windows バッチスクリプト。 |
| PrivEsc-Win | SessionGopher | SessionGopher は WMI を使用してリモートアクセス用の保存されたセッション情報を抽出する PowerShell ツール... |
| PrivEsc-Win | Sherlock | ローカル特権昇格の脆弱性に対する不足しているソフトウェアパッチをすばやく見つける PowerShell スクリプト。 |
| PrivEsc-Win | WinPwn | 内部 Windows ペネトレーションテスト / AD セキュリティの自動化 |
| PrivEsc-Win | Windows-Privilege-Escalation | Windows 特権昇格のテクニックとスクリプト |
| PrivEsc-Win | Windows-Exploit-Suggester | ターゲットのパッチレベルを Microsoft 脆弱性データベースと比較するツール... |
| PrivEsc-Win | mimikatz | Windows セキュリティで遊ぶための小さなツール |
| PrivEsc-Win | wesng | Windows Exploit Suggester - 次世代 |
| PrivEsc-Win | windows-privesc-check | Windows システム上の単純な特権昇格ベクトルをチェックするスタンドアロン実行可能ファイル |
| Utilities | GraphQLmap | ペンテスト目的で graphql エンドポイントと対話するスクリプトエンジン。 |
| Utilities | PoC-in-GitHub | 📡 PoC 自動収集 from GitHub。 ⚠️ マルウェアに注意。 |
| Utilities | SirepRAT | Windows IoT Core 上で SYSTEM としてリモートコマンド実行 (Python2.7 <> Python3 用リリースあり) |
| Utilities | Windows-Tools | いくつかの Windows ツール。 |
| Utilities | chisel | HTTP 上の高速 TCP/UDP トンネル |
| Utilities | crackhash | Crackhash は、無料のオンラインサービスを使用してさまざまなタイプのハッシュをクラックしようとするツール。 |
| Utilities | cryptz | 🔒 [ マルチ暗号化 / 復号化 ] 🔓 |
| Utilities | decodify | エンコードされた文字列を検出し、再帰的にデコードします。 |
| Utilities | enum4linux-ng | 追加機能を備えた enum4linux (Windows/Samba 列挙ツール) の次世代バージョン ... |
| Utilities | evil-winrm | ハッキング/ペンテストのための究極の WinRM シェル |
| Utilities | haiti | 🔑 ハッシュタイプ識別子 (CLI <> ライブラリ) |
| Utilities | impacket | Impacket はネットワークプロトコルを操作するための Python クラスコレクション。 |
| Utilities | nishang | Nishang - レッドチーム、ペネトレーションテスト、オフェンシブセキュリティのためのオフェンシブ PowerShell。 |
| Utilities | nmapAutomator | バックグラウンドで実行できるスクリプト! |
| Utilities | pypykatz | 純粋な Python での Mimikatz 実装 |
| Utilities | revshellgen | Python 3 で書かれたリバースシェルジェネレーター。 |
| Utilities | snmp | SNMP データ収集スクリプト |
| Web | byp4xx | HTTP 40X レスポンスバイパスのための Python スクリプト... |
| Web | fuxploider | ファイルアップロード脆弱性スキャナーおよびエクスプロイトツール。 |
| Web | LFISuite | 完全自動 LFI エクスプロイター (+ リバースシェル) およびスキャナー。 |
| Web | MyJWT | JSON Web Token (JWT) のクラッキング、脆弱性テストのための CLI |
| Web | php-reverse-shell | PHP リバースシェルスクリプト。Linux OS、macOS、Windows OS で動作します。 |
| Web | windows-php-reverse-shell | バイナリを使用して実装されたシンプルな PHP リバースシェル。 |
| Web | wwwolf-php-webshell | WhiteWinterWolf の PHP Web シェル |
| Web | malicious-wordpress-plugin | アップロードするとリバースシェルを提供する WordPress プラグインを生成します。 |
| Web | whitepass | Whitepass - Web アプリケーション/API のホワイトリスト/レート制限実装をバイパス |
| Web | wordpress-exploit-framework | WordPress システムのペネトレーションテストを支援するために設計された Ruby フレームワーク。 |
$ ./sometools.sh install 7
$ ./sometools.sh install-all
install-cat と uninstall-cat:
$ ./sometools.sh install-cat PrivEsc-Win
$ ./sometools.sh uninstall-cat PrivEsc-Win
check-update and check-update-all:
.git ディレクトリがない場合)、特別な指示を記述した update-tool.sh ファイルを作成できます(ファイル名は update-tool.sh でなければなりません)。./sometools.sh list を実行した際に表示されるID番号を使用できます。 ```bash
$ ./sometools.sh list-installed # list currently installed tool(s)
$ ./sometools.sh check-update LinEnum$ ./sometools.sh check-update 7
$ ./sometools.sh check-update-all
なぜ check-git が2つあるのか? check-git.shはツールが古いかどうかのみを通知します。新しいバージョンを検出した場合、check-git-action.shの実行を促します。
git-search
sortSearch変数を変更できます)$ ./sometools.sh git-search LinEnum 15
.gitignoreinstall-tool.sh ファイルをニーズに合わせて変更する必要があります。その場合、check-update アクションは「そのままでは」動作しません(.git ディレクトリが見つからないため)。解決策: ツールディレクトリ内に update-tool.sh という名前のファイルを作成し、その中に更新コマンドを記述します。some-tools.sh スクリプトは、check-update アクションを使用する際にこのファイル名を検出します。新しいファイルには chmod +x を忘れずに実行してください。.gitignore には、ツール名と .installed が含まれます。なぜか?gitリポジトリを別のリポジトリにプッシュしたくないため、また .installed ファイルをプッシュしたくないためです。 ```bash
$ ./sometools.sh add-tool newtoolname PrivEsc-Lin$ ./sometools.sh add-tool LinEnum PrivEsc-Lin
install-tool および update-tool と Github API の利用
一部のツール(例:DominicBreuker の pspy)は、releases/latest ページからダウンロードする必要があります。そのため、常に最新バージョンを更新・ダウンロードできるようにするには、Github API を使った少し異なる方法が必要です。このパターンで新しいツールを追加する場合は、install-tool.sh および update-tool.sh ファイル内で以下の関数を使用できます。 ```bash #!/bin/bash
function gitGetLatestRelease() { gitCounter=0 repoToGet="DominicBreuker/pspy" apiURL="https://api.github.com/repos" while [[ $checkDownloadURL != null ]]; do checkDownloadURL=$(http "$apiURL/$repoToGet/releases/latest" | jq -r ".assets[$gitCounter].browser_download_url") if [[ $checkDownloadURL == null ]]; then break fi # download the release wget "$checkDownloadURL" gitCounter=$((gitCounter + 1)) done } gitGetLatestRelease
info:
./sometools.sh listで表示されるID番号を使用することもできます。infoアクションが使用されると、some-toolsはbatバイナリを検出しようとします。検出された場合は、batとcatのどちらを使うか尋ねます。batが検出されなければ、デフォルトでcatが尋ねずに使用されます。 ```bash
$ ./sometools.sh info LinEnum$ ./sometools.sh info 7
complete-uninstall:
.zshrcまたは.bashrcへの変更を削除します。.zshrcまたは.bashrcファイル内のsome-toolsセクションのみを削除します。途中で行ったその他の変更は保持されます。.zshrcまたは.bashrcファイルが残るはずです。1つは初期セットアップ時に作成された.backupで終わるファイル、もう1つは完全アンインストールプロセスでsome-toolsセクションを削除する前の.backup2です。 ```bash
$ ./sometools.sh complete-uninstall