├── docker
├── jolokia
│ ├── resources
│ │ ├── conf
│ │ │ ├── jmxremote.access
│ │ │ ├── jmxremote.password
│ │ │ └── tomcat-users.xml
│ │ └── scripts
│ │ │ └── start.sh
│ ├── README.md
│ ├── docker-compose.yml
│ └── Dockerfile
├── jmx-example-server
│ ├── resources
│ │ ├── conf
│ │ │ ├── jmxmp.access
│ │ │ ├── jmxremote.access
│ │ │ └── jmxremote.password
│ │ ├── trust
│ │ │ ├── store.p12
│ │ │ ├── create.sh
│ │ │ └── openssl.config
│ │ ├── scripts
│ │ │ └── start.sh
│ │ └── server
│ │ │ └── src
│ │ │ └── de
│ │ │ └── qtc
│ │ │ └── beanshooter
│ │ │ └── server
│ │ │ ├── jmxmp
│ │ │ ├── PlainJmxmpServer.java
│ │ │ └── SslJmxmpServer.java
│ │ │ └── rmi
│ │ │ └── PlainJmxConnector.java
│ ├── CHANGELOG.md
│ ├── docker-compose.yml
│ └── README.md
├── tomcat
│ ├── resources
│ │ ├── trust
│ │ │ ├── store.p12
│ │ │ ├── create.sh
│ │ │ └── openssl.config
│ │ ├── scripts
│ │ │ └── start.sh
│ │ └── conf
│ │ │ └── tomcat-users.xml
│ ├── Dockerfile
│ └── docker-compose.yml
└── README.md
├── tests
├── jolokia
│ ├── recorder
│ │ └── tricot.yml
│ ├── mlet
│ │ ├── tricot.yml
│ │ └── load
│ │ │ └── error
│ │ │ └── tricot.yml
│ ├── diagnostic
│ │ ├── tricot.yml
│ │ ├── props
│ │ │ └── tricot.yml
│ │ └── cmdline
│ │ │ └── tricot.yml
│ ├── hotspot
│ │ ├── tricot.yml
│ │ ├── get
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── tricot.yml
│ │ ├── list
│ │ │ └── tricot.yml
│ │ ├── dump
│ │ │ ├── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ └── set
│ │ │ ├── tricot.yml
│ │ │ └── error
│ │ │ └── tricot.yml
│ ├── tomcat
│ │ ├── tricot.yml
│ │ ├── list
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── tricot.yml
│ │ ├── invoke
│ │ │ └── tricot.yml
│ │ ├── info
│ │ │ └── tricot.yml
│ │ ├── enum
│ │ │ └── tricot.yml
│ │ ├── write
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── tricot.yml
│ │ ├── attr
│ │ │ └── tricot.yml
│ │ └── dump
│ │ │ ├── tricot.yml
│ │ │ └── error
│ │ │ └── tricot.yml
│ ├── basic
│ │ ├── tricot.yml
│ │ ├── list
│ │ │ └── tricot.yml
│ │ ├── enum
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── tricot.yml
│ │ ├── deploy
│ │ │ └── tricot.yml
│ │ ├── info
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── tricot.yml
│ │ ├── serial
│ │ │ └── tricot.yml
│ │ └── attr
│ │ │ └── error
│ │ │ └── tricot.yml
│ └── tricot.yml
├── serverless
│ ├── stats
│ │ ├── tricot.yml
│ │ └── generic
│ │ │ └── tricot.yml
│ ├── export
│ │ ├── tricot.yml
│ │ └── error
│ │ │ └── tricot.yml
│ ├── stager
│ │ └── tricot.yml
│ └── tricot.yml
├── tomcat-server
│ ├── recorder
│ │ ├── tricot.yml
│ │ └── all
│ │ │ └── tricot.yml
│ ├── mlet
│ │ ├── tricot.yml
│ │ ├── status
│ │ │ └── tricot.yml
│ │ └── load
│ │ │ ├── tricot.yml
│ │ │ └── error
│ │ │ └── tricot.yml
│ ├── hotspot
│ │ ├── list
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── dump
│ │ │ ├── tricot.yml
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ ├── get
│ │ │ ├── tricot.yml
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── set
│ │ │ ├── tricot.yml
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ └── tricot.yml
│ ├── diagnostic
│ │ ├── load
│ │ │ ├── tricot.yml
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ ├── nolog
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── props
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── cmdline
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── read
│ │ │ ├── tricot.yml
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ ├── logfile
│ │ │ ├── tricot.yml
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ └── tricot.yml
│ ├── tomcat
│ │ ├── info
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── attr
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── list
│ │ │ ├── tricot.yml
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ ├── invoke
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── write
│ │ │ ├── tricot.yml
│ │ │ ├── error
│ │ │ │ └── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── dump
│ │ │ ├── tricot.yml
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ ├── enum
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ └── tricot.yml
│ └── tricot.yml
├── jmx-example-server-2
│ ├── mlet
│ │ ├── tricot.yml
│ │ ├── status
│ │ │ ├── tricot.yml
│ │ │ └── jmxmp
│ │ │ │ └── tricot.yml
│ │ └── load
│ │ │ ├── tricot.yml
│ │ │ ├── error
│ │ │ └── tricot.yml
│ │ │ └── jmxmp
│ │ │ └── tricot.yml
│ ├── tonka
│ │ ├── deploy
│ │ │ ├── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── version
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ ├── jmxmp
│ │ │ │ └── tricot.yml
│ │ │ └── tricot.yml
│ │ ├── undeploy
│ │ │ ├── rmi
│ │ │ │ └── tricot.yml
│ │ │ └── tricot.yml
│ │ ├── exec
│ │ │ ├── jmxmp
│ │ │ │ └── tricot.yml
│ │ │ ├── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ ├── status
│ │ │ ├── tricot.yml
│ │ │ └── jmxmp
│ │ │ │ └── tricot.yml
│ │ ├── execarray
│ │ │ ├── tricot.yml
│ │ │ ├── jmxmp
│ │ │ │ └── tricot.yml
│ │ │ └── rmi
│ │ │ │ └── tricot.yml
│ │ ├── upload
│ │ │ ├── tricot.yml
│ │ │ ├── jmxmp
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ ├── download
│ │ │ ├── tricot.yml
│ │ │ ├── jmxmp
│ │ │ │ └── tricot.yml
│ │ │ └── error
│ │ │ │ └── tricot.yml
│ │ └── tricot.yml
│ └── tricot.yml
├── jmx-example-server
│ ├── attr
│ │ └── tricot.yml
│ ├── info
│ │ ├── tricot.yml
│ │ ├── error
│ │ │ └── tricot.yml
│ │ └── rmi
│ │ │ └── tricot.yml
│ ├── list
│ │ ├── tricot.yml
│ │ ├── rmi
│ │ │ └── tricot.yml
│ │ └── jmxmp
│ │ │ └── tricot.yml
│ ├── enum
│ │ └── tricot.yml
│ ├── brute
│ │ ├── tricot.yml
│ │ └── error
│ │ │ └── tricot.yml
│ ├── deploy
│ │ ├── tricot.yml
│ │ └── error
│ │ │ └── tricot.yml
│ ├── invoke
│ │ └── tricot.yml
│ ├── serial
│ │ ├── tricot.yml
│ │ └── error
│ │ │ └── tricot.yml
│ └── tricot.yml
└── tricot.yml
├── docs
└── README.md
├── beanshooter
├── src
│ └── de
│ │ └── qtc
│ │ └── beanshooter
│ │ ├── cli
│ │ ├── ArgType.java
│ │ ├── Operation.java
│ │ └── Option.java
│ │ ├── exceptions
│ │ ├── OpenTypeException.java
│ │ ├── SaslMissingException.java
│ │ ├── SaslProfileException.java
│ │ ├── ApacheKarafException.java
│ │ ├── WrongCredentialsException.java
│ │ ├── SaslSuperflousException.java
│ │ ├── UnknownSecurityException.java
│ │ ├── LoginClassCastException.java
│ │ ├── MissingCredentialsException.java
│ │ ├── InvalidLoginClassException.java
│ │ ├── MalformedPluginException.java
│ │ ├── PluginException.java
│ │ ├── MismatchedURIException.java
│ │ └── GlassFishException.java
│ │ ├── mbean
│ │ ├── INative.java
│ │ ├── mlet
│ │ │ └── MLetMBean.java
│ │ ├── IMBean.java
│ │ ├── tomcat
│ │ │ ├── UserMBean.java
│ │ │ └── MemoryUserDatabaseMBean.java
│ │ ├── hotspot
│ │ │ └── HotSpotDiagnosticMXBean.java
│ │ ├── diagnostic
│ │ │ └── DiagnosticCommandMBean.java
│ │ ├── flightrecorder
│ │ │ └── FlightRecorderMXBean.java
│ │ └── tonkabean
│ │ │ └── TonkaBeanMBean.java
│ │ ├── plugin
│ │ ├── IResponseHandler.java
│ │ ├── IPayloadProvider.java
│ │ ├── IAuthenticationProvider.java
│ │ ├── providers
│ │ │ ├── YsoSerialProvider.java
│ │ │ └── AuthenticationProvider.java
│ │ ├── IMBeanServerProvider.java
│ │ └── IArgumentProvider.java
│ │ ├── Starter.java
│ │ ├── networking
│ │ ├── DummyTrustManager.java
│ │ └── RMIEndpoint.java
│ │ └── utils
│ │ └── DeserializationCanary.java
├── default-credentials.txt
└── config.properties
├── plugins
├── README.md
└── build.sh
├── pom.xml
├── tonka-bean
├── src
│ └── de
│ │ └── qtc
│ │ └── beanshooter
│ │ └── tonkabean
│ │ └── TonkaBeanMBean.java
├── README.md
└── pom.xml
├── .github
└── workflows
│ ├── feat.yml
│ ├── develop-example-server.yml
│ ├── master-example-server.yml
│ ├── master.yml
│ └── develop.yml
├── .gitignore
└── Dockerfile
/docker/jolokia/resources/conf/jmxremote.access:
--------------------------------------------------------------------------------
1 | monitorRole readonly
2 | controlRole readwrite
3 |
--------------------------------------------------------------------------------
/docker/jolokia/resources/conf/jmxremote.password:
--------------------------------------------------------------------------------
1 | monitorRole monitor
2 | controlRole control
3 |
--------------------------------------------------------------------------------
/docker/jmx-example-server/resources/conf/jmxmp.access:
--------------------------------------------------------------------------------
1 | monitorRole readonly
2 | controlRole readwrite
3 |
--------------------------------------------------------------------------------
/docker/jmx-example-server/resources/conf/jmxremote.access:
--------------------------------------------------------------------------------
1 | monitorRole readonly
2 | controlRole readwrite
3 |
--------------------------------------------------------------------------------
/docker/jmx-example-server/resources/conf/jmxremote.password:
--------------------------------------------------------------------------------
1 | monitorRole monitor
2 | controlRole control
3 |
--------------------------------------------------------------------------------
/docker/tomcat/resources/trust/store.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qtc-de/beanshooter/HEAD/docker/tomcat/resources/trust/store.p12
--------------------------------------------------------------------------------
/docker/jmx-example-server/resources/trust/store.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qtc-de/beanshooter/HEAD/docker/jmx-example-server/resources/trust/store.p12
--------------------------------------------------------------------------------
/tests/jolokia/recorder/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: recorder related tests
3 | description: |-
4 | Tests for beanshooters recorder action
5 |
6 | id: '14'
7 | groups:
8 | - recorder
9 |
10 | testers:
11 | - ./all/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/serverless/stats/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: stats action
3 | description: |-
4 | Perform tests on beanshooters stats action
5 |
6 | id: '02-02'
7 | groups:
8 | - stats
9 |
10 | testers:
11 | - ./generic/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/jolokia/mlet/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: mlet related tests
3 | description: |-
4 | Tests for the mlet action
5 |
6 | id: '12'
7 | groups:
8 | - mlet
9 |
10 | testers:
11 | - ./status/tricot.yml
12 | - ./load/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/serverless/export/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: export action
3 | description: |-
4 | Perform tests on beanshooters export action
5 |
6 | id: '02-03'
7 | groups:
8 | - export
9 |
10 | testers:
11 | - ./generic/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/tomcat-server/recorder/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: recorder related tests
3 | description: |-
4 | Tests for beanshooters recorder action
5 |
6 | id: '09'
7 | groups:
8 | - recorder
9 |
10 | testers:
11 | - ./all/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/tomcat-server/mlet/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: mlet related tests
3 | description: |-
4 | Tests for the mlet action
5 |
6 | id: '07'
7 | groups:
8 | - mlet
9 |
10 | testers:
11 | - ./status/tricot.yml
12 | - ./load/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/jmx-example-server-2/mlet/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: mlet related tests
3 | description: |-
4 | Tests for the mlet action
5 |
6 | id: '04'
7 | groups:
8 | - mlet
9 |
10 | testers:
11 | - ./status/tricot.yml
12 | - ./load/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/hotspot/list/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: hotspot list action
3 | description: |-
4 | Perform tests on beanshooters hotspot list action
5 |
6 | id: '08-02'
7 | groups:
8 | - list
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/serverless/stager/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: stager action
3 | description: |-
4 | Perform tests on beanshooters stager action
5 |
6 | id: '02-01'
7 | groups:
8 | - stager
9 |
10 | testers:
11 | - ./generic/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/diagnostic/load/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic load action
3 | description: |-
4 | Perform tests on beanshooters diagnostic load action
5 |
6 | id: '06-02'
7 | groups:
8 | - load
9 |
10 | testers:
11 | - ./error/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/tomcat-server/diagnostic/nolog/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic nolog action
3 | description: |-
4 | Perform tests on beanshooters diagnostic nolog action
5 |
6 | id: '06-04'
7 | groups:
8 | - nolog
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/tomcat-server/diagnostic/props/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic props action
3 | description: |-
4 | Perform tests on beanshooters diagnostic props action
5 |
6 | id: '06-06'
7 | groups:
8 | - props
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/jolokia/diagnostic/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic related tests
3 | description: |-
4 | Tests for the diagnostic action
5 |
6 | id: '11'
7 | groups:
8 | - diagnostic
9 |
10 | testers:
11 | - ./cmdline/tricot.yml
12 | - ./props/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/diagnostic/cmdline/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic cmdline action
3 | description: |-
4 | Perform tests on beanshooters diagnostic cmdline action
5 |
6 | id: '06-05'
7 | groups:
8 | - cmdline
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/info/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat info action
3 | description: |-
4 | Perform the info action within the submenu of the tomcat
5 | action.
6 |
7 | id: '05-04'
8 | groups:
9 | - info
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 |
--------------------------------------------------------------------------------
/docker/tomcat/resources/trust/create.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | openssl req -x509 -nodes -keyout key.pem -out cert.pem -new -config openssl.config -days 999999
6 | openssl pkcs12 -export -out store.p12 -inkey key.pem -in cert.pem -password pass:password
7 |
8 | rm key.pem cert.pem
9 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/attr/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: attr action
3 | description: |-
4 | Perform tests on beanshooters attr action
5 |
6 | id: '01-07'
7 | groups:
8 | - attr
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./error/tricot.yml
14 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/info/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: info action
3 | description: |-
4 | Perform tests on beanshooters info action
5 |
6 | id: '01-08'
7 | groups:
8 | - info
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./error/tricot.yml
14 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/list/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: list action
3 | description: |-
4 | Perform tests on beanshooters list action
5 |
6 | id: '01-05'
7 | groups:
8 | - list
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./jmxmp/tricot.yml
14 |
--------------------------------------------------------------------------------
/tests/tomcat-server/hotspot/dump/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: hotspot dump action
3 | description: |-
4 | Perform tests on beanshooters hotspot dump action
5 |
6 | id: '08-01'
7 | groups:
8 | - dump
9 |
10 | testers:
11 | - ./error/tricot.yml
12 | - ./rmi/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/hotspot/get/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: hotspot get action
3 | description: |-
4 | Perform tests on beanshooters hotspot get action
5 |
6 | id: '08-03'
7 | groups:
8 | - get
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/hotspot/set/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: hotspot set action
3 | description: |-
4 | Perform tests on beanshooters hotspot set action
5 |
6 | id: '08-04'
7 | groups:
8 | - set
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/attr/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat attr action
3 | description: |-
4 | Perform the attr action within the submenu of the tomcat
5 | operation.
6 |
7 | id: '05-01'
8 | groups:
9 | - attr
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/list/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat list action
3 | description: |-
4 | Perform tests on beanshooters tomcat list action
5 |
6 | id: '05-06'
7 | groups:
8 | - list
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/invoke/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat invoke action
3 | description: |-
4 | Perform the invoke action within the submenu of the tomcat
5 | operation.
6 |
7 | id: '05-05'
8 | groups:
9 | - invoke
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/write/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat write action
3 | description: |-
4 | Perform tests on beanshooters tomcat write action
5 |
6 | id: '05-07'
7 | groups:
8 | - write
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/docker/jmx-example-server/resources/trust/create.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | openssl req -x509 -nodes -keyout key.pem -out cert.pem -new -config openssl.config -days 999999
6 | openssl pkcs12 -export -out store.p12 -inkey key.pem -in cert.pem -password pass:password
7 |
8 | rm key.pem cert.pem
9 |
--------------------------------------------------------------------------------
/tests/tomcat-server/diagnostic/read/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic read action
3 | description: |-
4 | Perform tests on beanshooters diagnostic read action
5 |
6 | id: '06-01'
7 | groups:
8 | - read
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/dump/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat dump action
3 | description: |-
4 | Perform some tests on the dump action of beanshooters tomcat operation
5 |
6 | id: '05-02'
7 | groups:
8 | - dump
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/diagnostic/logfile/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic logfile action
3 | description: |-
4 | Perform tests on beanshooters diagnostic logfile action
5 |
6 | id: '06-03'
7 | groups:
8 | - logfile
9 |
10 | testers:
11 | - ./rmi/tricot.yml
12 | - ./error/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/enum/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat enum action
3 | description: |-
4 | Performs beanshooters regular enum action, but on a server
5 | with tomcat related MBeans available
6 |
7 | id: '05-03'
8 | groups:
9 | - enum
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/enum/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: enum action
3 | description: |-
4 | Perform tests on beanshooters enum action
5 |
6 | id: '01-04'
7 | groups:
8 | - enum
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./jmxmp/tricot.yml
14 | - ./error/tricot.yml
15 |
--------------------------------------------------------------------------------
/tests/serverless/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: Serverless tests
3 | description: |-
4 | Tests that do not require a target server to be present
5 |
6 | id: '02'
7 | groups:
8 | - serverless
9 |
10 |
11 | testers:
12 | - ./stager/tricot.yml
13 | - ./stats/tricot.yml
14 | - ./export/tricot.yml
15 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/brute/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: brute action
3 | description: |-
4 | Perform tests on beanshooters brute action
5 |
6 | id: '01-01'
7 | groups:
8 | - brute
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./jmxmp/tricot.yml
14 | - ./error/tricot.yml
15 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/deploy/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: deploy action
3 | description: |-
4 | Perform tests on beanshooters deploy action
5 |
6 | id: '01-03'
7 | groups:
8 | - deploy
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./jmxmp/tricot.yml
14 | - ./error/tricot.yml
15 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/invoke/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: invoke action
3 | description: |-
4 | Perform tests on beanshooters invoke action
5 |
6 | id: '01-02'
7 | groups:
8 | - invoke
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./jmxmp/tricot.yml
14 | - ./error/tricot.yml
15 |
--------------------------------------------------------------------------------
/tests/jmx-example-server/serial/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: serial action
3 | description: |-
4 | Perform tests on beanshooters serial action
5 |
6 | id: '01-06'
7 | groups:
8 | - serial
9 | - target
10 |
11 | testers:
12 | - ./rmi/tricot.yml
13 | - ./jmxmp/tricot.yml
14 | - ./error/tricot.yml
15 |
--------------------------------------------------------------------------------
/tests/jolokia/hotspot/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: hotspot related tests
3 | description: |-
4 | Tests for beanshooters hotspot action
5 |
6 | id: '13'
7 | groups:
8 | - hotspot
9 |
10 | testers:
11 | - ./dump/tricot.yml
12 | - ./list/tricot.yml
13 | - ./get/tricot.yml
14 | - ./set/tricot.yml
15 |
--------------------------------------------------------------------------------
/tests/jmx-example-server-2/tonka/deploy/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tonka deploy action
3 | description: |-
4 | Perform tests on beanshooters tonka deploy action
5 |
6 | id: '03-01'
7 | groups:
8 | - deploy
9 |
10 | testers:
11 | - ./error/tricot.yml
12 | - ./rmi/tricot.yml
13 | - ./jmxmp/tricot.yml
14 |
--------------------------------------------------------------------------------
/tests/tomcat-server/hotspot/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: hotspot related tests
3 | description: |-
4 | Tests for beanshooters hotspot action
5 |
6 | id: '08'
7 | groups:
8 | - hotspot
9 |
10 | testers:
11 | - ./dump/tricot.yml
12 | - ./list/tricot.yml
13 | - ./get/tricot.yml
14 | - ./set/tricot.yml
15 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | ### Documentation
2 |
3 | ----
4 |
5 | The main documentation of *beanshooter* can be found in the [README.md](/) within the root folder.
6 | This folder contains some additional documentation on selected topics. Currently, the following pages
7 | are available:
8 |
9 | * [Jolokia](./jolokia.md) - Some notes about *beanshooters* *Jolokia* support.
10 |
--------------------------------------------------------------------------------
/beanshooter/src/de/qtc/beanshooter/cli/ArgType.java:
--------------------------------------------------------------------------------
1 | package de.qtc.beanshooter.cli;
2 |
3 | /**
4 | * The ArgType enum contains the possible argument types that may be passed on the
5 | * command line by the invoking user.
6 | *
7 | * @author Tobias Neitzel (@qtc_de)
8 | */
9 | public enum ArgType
10 | {
11 | INT,
12 | BOOL,
13 | STRING,
14 | ARRAY;
15 | }
16 |
--------------------------------------------------------------------------------
/tests/jolokia/tomcat/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat related tests
3 | description: |-
4 | Tests for the tomcat action
5 |
6 | id: '10'
7 | groups:
8 | - tomcat
9 |
10 | testers:
11 | - ./attr/tricot.yml
12 | - ./dump/tricot.yml
13 | - ./enum/tricot.yml
14 | - ./info/tricot.yml
15 | - ./invoke/tricot.yml
16 | - ./list/tricot.yml
17 | - ./write/tricot.yml
18 |
--------------------------------------------------------------------------------
/tests/tomcat-server/diagnostic/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: diagnostic related tests
3 | description: |-
4 | Tests for the diagnostic action
5 |
6 | id: '06'
7 | groups:
8 | - diagnostic
9 |
10 | testers:
11 | - ./read/tricot.yml
12 | - ./load/tricot.yml
13 | - ./logfile/tricot.yml
14 | - ./nolog/tricot.yml
15 | - ./cmdline/tricot.yml
16 | - ./props/tricot.yml
17 |
--------------------------------------------------------------------------------
/beanshooter/default-credentials.txt:
--------------------------------------------------------------------------------
1 | admin:admin
2 | admin:password
3 | jmx:jmx
4 | jmx:admin
5 | karaf:karaf
6 | karaf:admin
7 | manager:manager
8 | manager:admin
9 | control:control
10 | control:password
11 | monitor:monitor
12 | monitor:password
13 | controlRole:control
14 | controlRole:password
15 | monitorRole:monitor
16 | monitorRole:password
17 | managerRole:manager
18 | managerRole:admin
19 |
--------------------------------------------------------------------------------
/tests/tomcat-server/tomcat/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: tomcat related tests
3 | description: |-
4 | Tests for the tomcat action
5 |
6 | id: '05'
7 | groups:
8 | - tomcat
9 |
10 | testers:
11 | - ./attr/tricot.yml
12 | - ./dump/tricot.yml
13 | - ./enum/tricot.yml
14 | - ./info/tricot.yml
15 | - ./invoke/tricot.yml
16 | - ./list/tricot.yml
17 | - ./write/tricot.yml
18 |
--------------------------------------------------------------------------------
/docker/jolokia/resources/scripts/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | IP=$(cat /etc/hosts | tail -n 1 | cut -f1 -d" ")
4 | echo "[+] IP address of the container: ${IP}"
5 |
6 | echo "[+] Adding gateway address to /etc/hosts file..."
7 | GATEWAY="$(echo ${IP} | cut -f4 -d. --complement).1"
8 | echo "${GATEWAY} prevent.reverse.dns" >> /etc/hosts
9 |
10 | echo "[+] Starting tomcat..."
11 | exec catalina.sh run
12 |
--------------------------------------------------------------------------------
/docker/jmx-example-server/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 |
8 |
9 | ## [2.1] - Mar 20, 2023
10 |
11 | ### Added
12 |
13 | * Add `java.xml` module
14 | * Add `CHANGELOG.md`
15 |
--------------------------------------------------------------------------------
/docker/tomcat/resources/trust/openssl.config:
--------------------------------------------------------------------------------
1 | [req]
2 | default_bits = 4096
3 | prompt = no
4 | distinguished_name = dn
5 |
6 | [dn]
7 | C = XY
8 | ST = Here
9 | L = There
10 | O = Insecure Example Corp
11 | OU = Java Devops
12 | CN = iinsecure.example
13 | emailAddress = ivan.insecure@insecure.example
14 |
--------------------------------------------------------------------------------
/docker/jmx-example-server/resources/trust/openssl.config:
--------------------------------------------------------------------------------
1 | [req]
2 | default_bits = 4096
3 | prompt = no
4 | distinguished_name = dn
5 |
6 | [dn]
7 | C = XY
8 | ST = Here
9 | L = There
10 | O = Insecure Example Corp
11 | OU = Java Devops
12 | CN = iinsecure.example
13 | emailAddress = ivan.insecure@insecure.example
14 |
--------------------------------------------------------------------------------
/plugins/README.md:
--------------------------------------------------------------------------------
1 | ### Plugins
2 |
3 | ----
4 |
5 | This folder contains some resources related to *beanshooter* plugins. Several operations of *beanshooter*
6 | can be customized using plugins. Building them is not that straight forward and the documentation is still
7 | work in progress. This folder contains some example plugins as well as a build script to demonstrate the
8 | general plugin structure. The build script will not work for more complex plugins.
9 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 |
4 | de.qtc.beanshooter
5 | reactor
6 | reactor
7 | pom
8 | 4.1.0
9 | JMX enumeration and attacking tool
10 |
11 |
12 | tonka-bean
13 | beanshooter
14 |
15 |
16 |
--------------------------------------------------------------------------------
/tests/jolokia/basic/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: Jolokia Basic Tests
3 | description: |-
4 | Test the basic beanshooter functionalities using the Jolokia adapter
5 |
6 | id: '15'
7 | groups:
8 | - basic
9 |
10 | testers:
11 | - ./attr/tricot.yml
12 | - ./brute/tricot.yml
13 | - ./deploy/tricot.yml
14 | - ./enum/tricot.yml
15 | - ./info/tricot.yml
16 | - ./invoke/tricot.yml
17 | - ./list/tricot.yml
18 | - ./serial/tricot.yml
19 |
--------------------------------------------------------------------------------
/beanshooter/src/de/qtc/beanshooter/exceptions/OpenTypeException.java:
--------------------------------------------------------------------------------
1 | package de.qtc.beanshooter.exceptions;
2 |
3 | /**
4 | * OpenTypeException is thrown when an exception is encountered within a complex OpenType
5 | * format like Composite data.
6 | *
7 | * @author Tobias Neitzel (@qtc_de)
8 | */
9 | @SuppressWarnings("serial")
10 | public class OpenTypeException extends Exception
11 | {
12 | public OpenTypeException(String string)
13 | {
14 | super(string);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/beanshooter/src/de/qtc/beanshooter/mbean/INative.java:
--------------------------------------------------------------------------------
1 | package de.qtc.beanshooter.mbean;
2 |
3 | import javax.management.MBeanException;
4 |
5 | /**
6 | * The INative interface contains methods that are supported by each MBean natively.
7 | * It is supposed to be extended by MBean-interfaces that contain specific methods
8 | * for the MBean they are assigned to.
9 | *
10 | * @author Tobias Neitzel (@qtc_de)
11 | */
12 | public interface INative
13 | {
14 | public Object getAttribute(String name) throws MBeanException;
15 | }
16 |
--------------------------------------------------------------------------------
/tests/tomcat-server/recorder/all/tricot.yml:
--------------------------------------------------------------------------------
1 | tester:
2 | title: recorder actions
3 | description: |-
4 | The actions of beanshooters recorder operation all kind of depend
5 | on each other. Performing the tests separately would not make much
6 | sense, as a test for one action would require to also invoke the
7 | other one. Therefore, we use one test module to test all actions
8 | at once.
9 |
10 | id: '09-01'
11 | groups:
12 | - all
13 |
14 | testers:
15 | - ./rmi/tricot.yml
16 | - ./error/tricot.yml
17 |
--------------------------------------------------------------------------------
/docker/tomcat/resources/scripts/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | IP=$(cat /etc/hosts | tail -n 1 | cut -f1 -d" ")
4 | echo "[+] IP address of the container: ${IP}"
5 |
6 | echo "[+] Adding gateway address to /etc/hosts file..."
7 | GATEWAY="$(echo ${IP} | cut -f4 -d. --complement).1"
8 | echo "$GATEWAY prevent.reverse.dns" >> /etc/hosts
9 |
10 | echo "[+] Preparing /etc/hosts file..."
11 | MOD=$(sed -E "s/(${IP}.+)/\1 iinsecure.example/" /etc/hosts)
12 | echo "${MOD}" > /etc/hosts
13 | echo "127.0.0.1 iinsecure.example" >> /etc/hosts
14 |
15 | echo "[+] Starting tomcat..."
16 | exec catalina.sh run
17 |
--------------------------------------------------------------------------------
/beanshooter/src/de/qtc/beanshooter/mbean/mlet/MLetMBean.java:
--------------------------------------------------------------------------------
1 | package de.qtc.beanshooter.mbean.mlet;
2 |
3 | import java.net.URL;
4 | import java.util.Set;
5 |
6 | import javax.management.MBeanException;
7 |
8 | /**
9 | * Interface of available MLet operations. Since we only implement a subset of the
10 | * actually available operations exposed by this MBean, we use a custom interface
11 | * instead of the original one.
12 | *
13 | * @author Tobias Neitzel (@qtc_de)
14 | */
15 | public interface MLetMBean
16 | {
17 | public Set