SNMP RCE
SNMP RCE
SNMPは、管理者がデバイスやサーバーのデフォルト構成を見落とした場合、攻撃者によって悪用される可能性があります。Linuxオペレーティングシステム上でSNMPコミュニティを悪用し(rwcommunity)、サーバー上でコマンドを実行することができます。
追加コマンドでサービスを拡張する
SNMPサービスを拡張し、追加のコマンドを追加するには、新しい**"nsExtendObjects"テーブルに行を追加**することが可能です。これは、snmpset
コマンドを使用し、実行可能ファイルへの絶対パスや実行するコマンドなどの必要なパラメータを提供することで達成できます。
コマンドの実行のためのインジェクション
SNMPサービスで実行するコマンドをインジェクトするには、呼び出されるバイナリ/スクリプトの存在と実行可能性が必要です。**NET-SNMP-EXTEND-MIB
**は、実行可能ファイルへの絶対パスの提供を義務付けています。
インジェクトされたコマンドの実行を確認するために、snmpwalk
コマンドを使用してSNMPサービスを列挙することができます。出力にはコマンドとそれに関連する詳細が表示されます。絶対パスも含まれます:
注入されたコマンドの実行
注入されたコマンドが読み取られると、実行されます。この動作は**run-on-read()
**として知られています。コマンドの実行は、snmpwalkの読み取り中に観察できます。
SNMPを使用したサーバーシェルの取得
サーバーを制御し、サーバーシェルを取得するために、mxrchによって開発されたPythonスクリプトを使用できます。https://github.com/mxrch/snmp-shell.gitから利用できます。
また、特定のコマンドをSNMPに注入することで、逆シェルを手動で作成することもできます。このコマンドは、snmpwalkによってトリガーされ、攻撃者のマシンに逆シェル接続を確立し、被害者マシンを制御できるようにします。 このコマンドを実行するための前提条件をインストールできます:
またはリバースシェル:
参考文献
Last updated