SSH Tunneling
SSH, Secure SHell.
Local port forwarding
# Local port forwarding
ssh -L <local-port>:<destination-IP-address>:<destination-port> <user>@<IP-address> -fN
# Ejemplo para acceder al puerto 80 de la máquina a la cual deseamos pivotear
ssh -L 8000:<destination-IP-address>:80 <user>@<IP-address> -fN
Navegador web: http://127.0.0.1:8000
# Ejemplo de acceso a un servidor web ejecutándose internamente en el
# puerto 80, es decir, solo accesible localmente en el servidor (127.0.0.1:80)
ssh -L 8000:127.0.0.1:80 <user>@<IP-address> -fN
Navegador web: http://127.0.0.1:8000
-L = local port forwarding.
<local-port> = puerto local de nuestra máquina (atacante).
<destination-IP-address> = dirección IP de la máquina de destino a la cual deseamos pivotear.
<destination-port> = puerto de la máquina de destino a la cual deseamos pivotear.
<user> = usuario de conexión SSH de la máquina objetivo que nos permite pivotear.
<IP-address> = dirección IP de la máquina objetivo que nos permite pivotear.
-f = pone en background el proceso una vez que se haya establecido con éxito la sesión SSH.
-N = sin ejecución de comandos remotos.
Dynamic port forwarding (socks / proxy)
# ProxyChains
sudo nano /etc/proxychains.conf
socks4 127.0.0.1 <local-port>
# Dynamic port forwarding
ssh -D <local-port> <user>@<IP-address> -fN
# Ejemplo para acceder al puerto 80 de la máquina a la cual deseamos pivotear
# X.X.X.1 = máquina que nos permite pivotear
# X.X.X.2 = máquina de destino a la cual deseamos pivotear
sudo nano /etc/proxychains.conf
socks4 127.0.0.1 9999
ssh -D 9999 <usuario>@X.X.X.1 -fN
FoxyProxy: socks4, 127.0.0.1, 9999
Navegador web: http://X.X.X.2
-D = dynamic port forwarding.
<local-port> = puerto local de nuestra máquina (atacante).
<user> = usuario de conexión SSH de la máquina objetivo que nos permite pivotear.
<IP-address> = dirección IP de la máquina objetivo que nos permite pivotear.
-f = pone en background el proceso una vez que se haya establecido con éxito la sesión SSH.
-N = sin ejecución de comandos remotos.
Remote port forwarding
ssh -R <local-port>:<destination-IP-address>:<destination-port> <user>@<attacker-IP-address> -i <private-key> -fN
ssh -R <local-port> <user>@<attacker-IP-address> -i <private-key> -fN
-R = remote port forwarding.
<local-port> = puerto local de nuestra máquina (atacante).
<destination-IP-address> = dirección IP de la máquina de destino a la cual deseamos pivotear.
<destination-port> = puerto de la máquina de destino a la cual deseamos pivotear.
<user> = usuario de conexión SSH de nuestra máquina (atacante).
<attacker-IP-address> = dirección IP de nuestra máquina (atacante).
-f = pone en background el proceso una vez que se haya establecido con éxito la sesión SSH.
-N = sin ejecución de comandos remotos.
Creación de llaves SSH
ssh-keygen
touch ~/.ssh/authorized_keys
echo "command="echo 'This account can only be used for port forwarding'",no-agent-forwarding,no-x11-forwarding,no-pty" >> ~/.ssh/authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys
sudo systemctl start ssh
plink
sudo apt install putty-tools
puttygen id_rsa -o id_rsa.ppk
cmd.exe /c echo y | .\plink.exe -R <local-port>:<destination-IP-address>:<destination-port> <user>@<attacker-IP-address> -i <private-key.ppk> -N
sshuttle
sshuttle -r <user>@<IP-address> <CIDR>
sshuttle -r <user>:<password>@<IP-address> <CIDR>
sshuttle -r <user>@<IP-address> <CIDR> -x <IP-address>
sshuttle -r <user>@<IP-address> --ssh-cmd "ssh -i <private-key>" <CIDR>
<user> = usuario de conexión SSH a la máquina objetivo.
<IP-address> = dirección IP de la máquina objetivo que nos permite pivotear.
<CIDR> = red a la cual queremos pivotear y tiene acceso la máquina objetivo.
-x = permite excluir la dirección IP de la máquina que nos permite pivotear, esto es necesario cuando esta es parte de la subred, a la cual, se está intentando obtener acceso.
Última actualización
¿Te fue útil?