Dirección de la máquina de destino: < http://www.vulnhub.com/entry/five86-1,417/> ;
Este artículo incluye ejercicios prácticos sobre puntos de conocimiento: VulnHub *** prueba el campo de tiro de combate real Nodo 1.0 (El nodo 1.0 es un desafío Boot2root / CTF de dificultad media. El entorno del campo de tiro fue creado originalmente por HackTheBox, y el propósito del experimento es obtener dos banderas)
Punto técnico
opennetadmin v18.1.1
RCEsearchsploit
- exp de búsqueda de github
- Descifrando la contraseña cifrada HASH en Linux
crunch
Generar diccionariojohn
Yhashcat
descifrar el códigohash-identifier
Ver tipo de HASH
- Inicio de sesión sin contraseña SSH
- Copie la clave pública como
authorized_keys
- Copie la clave pública como
- Linux ve los permisos de usuario actuales, archivos legibles y comandos ejecutables
- Ver archivos legibles con permisos de usuario actuales
find / -type f -user www-data
- Comando ejecutable
sudo -l
- Ver archivos legibles con permisos de usuario actuales
Descubrimiento de destino
El parámetro nmap -sP usa ping para escanear hosts de LAN, la dirección de destino es 192.168.56.5
nmap -sS -A -v 192.168.56.5 Eche un vistazo a los resultados detallados del escaneo -sS es un escaneo semiabierto, -A es para la detección de versiones y huellas dactilares del sistema operativo, -v genera información detallada
Podemos ver los 22,80,10000 abiertos tres puertos y existen 80 puertos robots.txt
, y las rutas/ona
Descubrimiento y explotación de vulnerabilidades
accesohttp://192.168.56.5 es una página en blanco, y luego vaya a visit / ona, puede ver que opennetadmin
la página de administración y la versión es18.1.1
v18.1.1
La opennetadmin
existencia de la vulnerabilidad RCE, en github puede encontrar exp hit en el pasado, < https://github.com/amriunix/ona-rce> ;
O utilícelo searchsploit
, pero hay un error aquí, que es convertir el formato de este script bash; de lo contrario, se informará un error, use dos2unix 47691.sh
este comando y el shell aquí no se puede convertir a TTY
La siguiente pregunta es cómo escalar los privilegios. Después de algunas pruebas, se descubre que los comandos que no se pueden ejecutar aquí no se repiten y los cd
comandos no se pueden ejecutar , pero los comandos ls
y se pueden usarcat
Debe haber control de permisos aquí. Puede usar find / -type f -user www-data
comandos para ver los archivos que este usuario puede leer, a excepción /proc
de /var/www/html/reports/.htaccess
y/var/log/ona.log
Lea la ruta que var/www/html/reports/.htaccess
se puede encontrarAuthUserFile
/var/www/.htpasswd
Lea este archivo de la siguiente manera, puede obtener el nombre de usuario douglas
y la contraseña HASH $apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1
, el mensaje dado es只包含aefhrt的十个字符
douglas:$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1
# To make things slightly less painful (a standard dictionary will likely fail),
# use the following character set for this 10 character password: aefhrt
Primero utilícelo para hash-identifier
ver cuál es HASH, el resultado es tipo hash: [+] MD5 (APR)
Luego use para crunch
generar el diccionario correspondiente, formato de comando crunch <min-len> <max-len> [charset string] [options]
, aquí para generar solo 10 caracteres que contengan aefhrt, puede usar los siguientes comandos crunch 10 10 aefhrt -o pass.txt
, para más introducción, consulte la herramienta de generación de diccionario Crunch y comandos crunch en Linux.
Finalmente, debemos usar el famoso hashcat
para descifrar este HASH, el formato de comando hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...
, el comando que se usa aquí eshashcat -m 1600 -a 0 -o res hash.txt pass.txt
-m es la categoría HASH, -a es el método ***, -o es el resultado de salida, y más parámetros pueden hacer referencia a la guía de descifrado de contraseñas Hashcat . Aquí, la ejecución en kali ha estado informando errores, por lo que se trasladó a wsl2, el comandohashcat -m 1600 -a 0 -o res hash.txt pass.txt --force
La contraseña final es fatherrrrr
O se puede usar john
aquí para romper john --wordlist=pass.txt hash.txt
, pero la velocidad puede ser problemática
Utilice ssh para conectarsessh [email protected]
Este es un TTY, pero todavía hay control de permisos. Úselo para sudo -l
ver qué comandos se pueden usar. Como resultado (jen) NOPASSWD: /bin/cp
, es un poco extraño aquí. douglas
Puede jen
ejecutar cp
comandos como puede
Vaya a visitar home
el directorio, encontrado douglas
y jen
estos dos usuarios, pero solo con jen
el cp
comando y sin jen
contraseña
Vale la pena señalar que si el jen
usuario /home/jen/.ssh/authorized_keys
contiene douglas
la clave pública, el ssh que se puede usar douglas
para id_rsa
iniciar sesión jen
en el archivo , es decir, el ssh que puede iniciar sesión sin secreto jen
. Esto se copia en el /tmp
directorio porque jen
no hay permiso para acceder a douglas
los archivos en el directorio.
cp .ssh/id_rsa.pub /tmp/authorized_keys
chmod 777 /tmp/authorized_keys
sudo -u jen /bin/cp /tmp/authorized_keys /home/jen/.ssh/
Entonces conéctate con sshssh -i id_rsa [email protected]
Inicie sesión correctamente jen
, vea el mensaje mail
o ejecútelo primero echo $(find / -type f -user jen) > 1.txt
, hay un /var/mail/jen
archivo que se puede leer
O mail
los comandos ingresados directamente aquí también se pueden ver
Léelo, su contenido es el siguiente
Palabras clave:change Moss's password
,his password is now Fire!Fire!
Luego ssh para conectar al moss
usuariossh [email protected]
Se encontró un directorio oculto en el directorio actual .games
y se encontró un root
archivo binario de permisos después del accesoupyourgame
Después de ejecutar, me encontré mágicamente convertido en usuario root picante
Finalmente, la bandera está /root
adentro, por8f3b38dd95eccf600593da4522251746
Momento del huevo de Pascua, de hecho douglas
, puede iniciar sesión con una máquina virtual después de obtener la contraseña y luego operar, aquí está moss
la contraseña de la cuenta utilizada, y el mismo efecto