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