
これは、様々な状況認識アクティビティを実行するカスタム .NET アセンブリです。現在、以下の機能セットがあります:
これを書いた当時、GhostPackが開発されているとは知りませんでした。結局、ほぼ同時期にツールをリリースすることになりました。実際のところ、GhostPackは現在はるかに機能豊富です。PrivescCheck関数は削除しています。なぜなら、SharpUpがその機能とそれ以上のものをカバーしているからです。
重要な点は、すべてが生の.NETで実装されていることです。つまり、PowerShellは使用しません。
コマンドラインパラメータで設定・制御されるため、Beaconのexecute-assemblyディレクティブでの使用に適しています。
これはホストから多くの情報を取得します。出力が非常に多くなる可能性があることに注意してください。表示されるものは以下です:
コマンドラインで動詞 'basic' を渡し、その後に必要な特定のチェックを指定する必要があります。2番目のパラメータとして 'all' を渡すと、すべてのチェックが実行されます。
| チェック | 説明 |
|---|---|
| env | すべての環境変数を表示します。 |
| info | ホストのIPアドレスとOSのメジャー/マイナーバージョン識別子を表示します。 |
| mru | 様々な「最近使用した」リストを検索します。現在は、Runボックスの履歴と、Word、Excel、Powerpoint、Access、Publisher、Visioの全バージョンのOfficeファイルとパスのMRUを含みます。また、特別な「Recent」フォルダの場所も表示します。 |
| favourites | お気に入りフォルダに保存されているURLを表示します(基本的にユーザーのブックマークです)。現在、サブフォルダには対応していません。修正が必要です。 |
| mappeddrives | ユーザーセッションのネットワークマップドライブを表示します。中央ファイル共有やホームディレクトリを素早く見つけるのに便利です。マップされていれば、有用なデータが含まれている可能性が高いです。 |
| installedapplications | インストールされているアプリケーションを一覧表示します。これには、管理者として(ローカルマシンに)インストールされたアプリケーションと、現在のユーザーによってインストールされたアプリケーションの両方が含まれます。これらはレジストリの異なる場所にリストされています。 |
| onedrive | OneDriveに関する情報(同期されているTeamサイト/テナントを含む)を表示します。 |
'basic all' を使用すると、自動的に 'proxycheck http://www.google.com' が含まれることに注意してください。詳細はプロキシチェックのセクションを参照してください。
すべての基本チェックを実行: beacon> execute-assembly /tmp/Reconerator.exe または beacon> execute-assembly /tmp/Reconerator.exe basic all
MRU列挙のみ実行: beacon> execute-assembly /tmp/Reconerator.exe basic mru
マップされたドライブのみリスト: beacon> execute-assembly /tmp/Reconerator.exe basic mappeddrives
比較的安全です。システムレジストリを照会するだけなので、監視される可能性は低いです。
これにより、LDAPクエリを実行できます。最も簡単な説明方法は例示です。
ドメイン 'dc=stufus,dc=lan' 上のすべてのユーザーを、ドメインコントローラW2K8DCを使用して表示:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 0
ドメイン 'dc=stufus,dc=lan' 上の最大5人のユーザーを、ドメインコントローラW2K8DCを使用して表示:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 5
ドメイン管理者グループの全メンバーを、ドメイン 'dc=stufus,dc=lan' 上のドメインコントローラW2K8DCを使用して表示:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "(&(objectClass=group)(cn=Domain Admins))" 0
ドメイン管理者またはエンタープライズ管理者グループの全メンバーを、ドメイン 'dc=stufus,dc=lan' 上のドメインコントローラW2012DCを使用して表示:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2012DC/dc=stufus,dc=lan" "(&(objectClass=group)(|(cn=Enterprise Admins)(cn=Domain Admins)))" 0
これは指定したドメインコントローラへのネットワークトラフィックを生成します。誤解を避けるためですが、これはLDAP(RPCやその他ではない)を使用します。
ホストのDNSサーバーを使用してDNSクエリを実行します。
www.google.com を解決:
beacon> execute-assembly /tmp/Reconerator.exe resolvehost www.google.com
これはドメインコントローラへのDNSクエリを生成しますが、正当なDNSリクエストの膨大な量のために、アラートとして上げられる可能性は低いです。
これにより、Windows Search(旧Windows Indexing Service)と対話できます。これにより、興味深いファイルやフォルダ(およびその内容)を非常に高速に検索できます。電子メールは通常インデックス化されますが、ネットワークフォルダはインデックス化されないため、ユーザーのホームディレクトリがリモートに保存されている場合、完璧ではないかもしれません。ただし、非常に高速です。
Windows SearchへのインターフェースはSQLに似ています。この実装では、実質的にWHERE句の内容を指定できます。例で説明するのが最も簡単ですが、可能なすべての条件を知りたい場合はMSDNを読む必要があります。
インデックス化されたすべてのもので、どこかに'password'という単語を含むものを見つける(ファイルや電子メールの内容を検索):
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "CONTAINS('password')"
インデックス化されたすべてのもので、パスまたはファイル名に'stufus'という単語を含むものを見つける:
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemPathDisplay LIKE '%stufus%'"
インデックス化されたすべてのもので、ファイル名に'stufus'を含むか、または'secret'という単語を含むものを見つける:
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemName LIKE '%stufus%' OR CONTAINS('secret')"
これが疑わしいと指摘されるようなものは認識していません。
これは、指定されたURLにアクセスする際に使用されるプロキシサーバーを返します。これは、URLごとに異なるプロキシがあったり、複雑な除外ルールが設定されている場合に対処するためのものです。対象のURLがパラメータとして渡されます。
'basic all' が指定された場合(上記参照)、自動的に http://www.google.com へのプロキシチェックが含まれることに注意してください。これは、ほとんどの組織がすべての非内部インターネットアクセスに対して1つのアウトバウンドプロキシを持っていることを前提としています。
www.google.com にアクセスする際に使用されるプロキシサーバーを表示:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck www.google.com
https://www.mwrinfosecurity.com にアクセスする際に使用されるプロキシサーバーを表示:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck https://www.mwrinfosecurity.com
これはローカルアクティビティであり、正当なものです。これが疑わしいと指摘されるようなものは認識していません。
これはいくつかの権限昇格ベクトルを調査し、それらが可能かどうかを報告します。現在、その数は1です。
上記のBASICモジュールと同様に、privesccheck all をコマンドラインで指定するとすべてのチェックを試行し、必要に応じて特定のチェックを指定することもできます。
コマンドラインで動詞 'privesccheck' を渡し、その後に必要な特定のチェックを指定する必要があります。2番目のパラメータとして 'all' を渡すと、すべてのチェックが実行されます。
| チェック | 説明 |
|---|---|
| alwaysinstallelevated | 'AlwaysInstallElevated' キーが1に設定されているかどうかを判別します。設定されている場合、すべてのMSIファイルがローカル管理者として実行されます。 |
| チェック | 備考 |
|---|---|
| alwaysinstallelevated | これはローカルレジストリクエリです。悪意があるとフラグ付けされる可能性は低いです。 |
すべての権限昇格チェックを試行:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck all
AlwaysInstallElevated レジストリキーのみが設定されているかチェック:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck alwaysinstallelevated
Visual Studio 2019でコンパイルします。現在は.NET v4をターゲットにしています。必要に応じてコンパイル設定で変更できます。