
自由戦闘活動中に役立つかもしれないスクリプト集。
このリポジトリには、自由を求める活動中に役立つスクリプトが含まれています。必要に応じて、オンラインで見つけられないものが必要になったときに、不定期に更新されます。 ここにあるものはすべて GPL v3 ライセンス の条件の下で配布されています。
コントリビューションやプルリクエストは大歓迎です。
以下のファイルから証拠となるエントリを削除するログクリーナー:
/var/run/utmp、/var/log/wtmp、/var/log/btmp(who、w、last コマンドの出力を制御)/var/log/lastlog(lastlog コマンドの出力を制御)/var/**/*.log(.log.1、.log.2.gz 等を含む)エントリは IP アドレスおよび/または関連するホスト名に基づいて削除されます。
ログを改ざんする際にファイルディスクリプタを壊さないように特別な注意が払われています。つまり、改ざん後もログへの書き込みが継続され、クリーンアップがはるかに目立たなくなります。すべての作業は tmpfs ドライブ上で行われ、作成されたファイルは安全に消去されます。
警告: このスクリプトは Linux でのみテストされており、他の Unix 系では UTMP エントリをクリーンアップできません。
usage: nojail.py [-h] [--user USER] [--ip IP] [--hostname HOSTNAME] [--verbose] [--check] [log_files [log_files ...]]
Stealthy log file cleaner.
positional arguments: log_files Specify any log files to clean in addition to /var/**/*.log.
optional arguments: -h, --help show this help message and exit --user USER, -u USER The username to remove from the connexion logs. --ip IP, -i IP The IP address to remove from the logs. --hostname HOSTNAME The hostname of the user to wipe. Defaults to the rDNS of the IP. --regexp REGEXP, -r REGEXP A regular expression to select log lines to delete (optional)
--verbose, -v Print debug messages.
--check, -c If present, the user will be asked to confirm each
deletion from the logs.
--daemonize, -d Start in the background and delete logs when the
current session terminates. Implies --self-delete.
--self-delete, -s Automatically delete the script after its execution.
デフォルトでは、引数が指定されていない場合、スクリプトは`SSH_CONNECTION`環境変数に基づいてスクラブするIPアドレスを特定しようとします。そのIPの逆引きDNSに一致するエントリも削除されます。
#### 基本的な例:```
./nojail.py --user root --ip 151.80.119.32 /etc/app/logs/access.log --check
...IPアドレスが151.80.119.32であるか、ホスト名がmanalyzer.orgであるユーザーrootのすべてのエントリを削除します。
--checkオプションにより、各レコードを削除する前にユーザーに確認が求められます。最後に、デフォルトのファイルに加えて、/etc/app/logs/access.logファイルが処理されます。
フォルダが位置引数として指定された場合(例:/etc/app/logs/)、スクリプトはそれらを再帰的にクロールし、.log拡張子を持つすべてのファイル(.log.1、.log.2.gzなども含む)をクリーンアップします。
ログファイルから任意の行を削除したい場合もあります。そのためには、--regexpオプションを使用します。例えば、次のコマンドラインは、指定されたIPからのPHPファイルへのPOSTリクエストをすべて検索します:```
./nojail.py --ip 151.80.119.32 --regexp "POST /.*?.php"
#### スクリプトのデーモン化```
./nojail.py --daemonize
SSH接続から実行される場合、このコマンドは接続が閉じられた直後に、検出されたIPアドレスとホスト名を使用して現在のユーザーのアクティビティに関するすべてのログを削除します。このスクリプトはその後、自動的に自身を削除します。 アプリケーションからエラーメッセージを受け取る機会がないことに注意してください。指定した引数が正しいことを確認するために、デーモンを起動する前に一度ログの削除を試みることをお勧めします。 TTYのないシェルにいる場合、スクリプトはセッションの終了を検出できません。ログが60秒後に削除されること、およびその前にログアウトすべきこと(スクリプト実行後にさらにエントリが作成されるリスクを避けるため)が通知されます。
root@proxy:~# ./nojail.py [ ] Cleaning logs for root (XXX.XXX.XXX.XXX - domain.com). [] 2 entries removed from /var/run/utmp! [] 4 entries removed from /var/log/wtmp! [ ] No entries to remove from /var/log/btmp. [] Lastlog set to 2017-01-09 17:12:49 from pts/0 at lns-bzn-XXX-XXX-XXX-XXX-XXX.adsl.proxad.net [] 4 lines removed from /var/log/nginx/error.log! [] 11 lines removed from /var/log/nginx/access.log! [] 4 lines removed from /var/log/auth.log!
### 免責事項
このスクリプトは無保証で提供されます。
そもそもやるべきでなかったことの痕跡をすべて消せなくても、私を責めないでください。
## share.sh
ポータブルで安全なファイル共有スクリプト。自由を求める戦いにおいて、一般に侵害されたマシンにscpでファイルを送ることはできません。ファイルをアップロードする代替手段が必要ですが、ほとんどの共有サービスは制限が厳しすぎるか、コマンドラインから簡単にファイルを取得する方法を提供していません。また、セキュリティ上の考慮から、クラウドプロバイダーが永遠にコピーを保持することを恐れて、機密ファイルをアップロードすることを避ける人もいます。
この小さくポータブルなbashスクリプトは、[transfer.sh](https://transfer.sh)を利用してその問題を解決します。それは...
* アップロード前にファイルを暗号化(対称AES-256-CBC)。
* システムに`torify`が存在する場合、自動的に使用して匿名性を高めます。
必要な依存関係は`openssl`と、`curl`または`wget`のいずれかだけです。
### 使い方```
root@proxy:~# ./share.sh ~/file_to_share "My_Secure_Encryption_Key!"
Success! Retrieval command: ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
root@proxy:~# ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
File retrieved successfully!
アップロード時に追加の引数を指定することで、ファイルのダウンロード可能最大回数(-m)と、transfer.shがファイルを保持する日数(-d)を制御できます。これらのオプションのデフォルト値は両方とも1です。
警告: 暗号化キーにスペースを使用しないでください。パスフレーズの最初の単語のみが有効になります。これは、getoptsが引数を処理する方法に起因するものと思われます。この問題の修正に興味がある方は、プルリクエストをお待ちしています。
AutoJackは、EmptyMonkeyのshelljackを活用して、SSH経由で接続する任意のユーザーのターミナルを記録する短いスクリプトです。auth.logを監視して成功した接続を検出し、ユーザーのbashプロセスのPIDを特定し、残りの処理をshelljackに任せます。shelljack.
Launch it in a screen, and wait until other users log-in. Their session will be
logged to /root/.local/sj.log.[user].[timestamp].
The script is not particularly stealthy (no attempt is made to hide the shelljack process) but it
will get the job done. Note that to avoid self-incrimination, the root user is not
targeted (this can be trivially commented out in the code).
ListURL is a multi-threaded website crawler which obtains a list of available pages from the target. This script is useful for bug-bounty hunters trying to establish the attack surface of a web application.
usage: listurl.py [-h] [--max-depth MAX_DEPTH] [--threads THREADS] [--url URL]
[--external] [--subdomains] [-c COOKIE]
[--exclude-regexp EXCLUDE_REGEXP]
[--show-regexp SHOW_REGEXP] [--verbose]
ウェブサイトを再帰的にすべてのURLを取得してマッピングします。