Media
Llança el Media i segueix avançant a HTB!
Introducció
El medi és únic per requerir un fitxer de vídeo personalitzat per a una atac d’esquena NTLM, seguit per Redirecció del Sistema de Fitxers cap a un directori d’adjuntament fora del webroot, i finalment utilitzant SeTcbPrivilege per obtenir una compromissió completa del sistema. Totes tres aquestes tècniques eren noves per a mi i m’han donat una nova perspectiva en la visualització de vectors d’atac.
Fase de Recerca
hey, anem en blanc.
$TARGET es va generar a 10.129.57.241.
Utilitzant NMap per fer la primera escaneja a $TARGET.
Revisant la informació recuperada, destacarem les parts interessants.
Veiem el port 22 obert i versió com a SSH per a Windows.
Apache Webserver al port 80, executant PHP/8.1.17.
RDP està obert al seu port predeterminat 3389.
Per tant, podem confirmar que això és un host de Windows. No tenim cap credencial encara, així que podem anar directament al lloc web i veure què podem trobar.
Tasques
- Investiga el port del lloc web
80
Investigar el port del lloc web 80
Llança la teva proxy web preferida. Trauré Caido i començaré a proxyar tràfic web.
Visita http://10.129.57.241 i comencem amb la nostra investigació.
En la primera revisió - absolutament res d’interès en aquesta pàgina web - excepte al final. Hi ha un formulari de contacte que ens proporciona un punt d’interacció. Sembla una càrrega de fitxers, podem anotar-ho per futura reconstrucció.

Pots fer fuzzing per a directoris i fitxers amb ffuf, i cercar trobes addicionals. Farem una cerca de fitxers primer utilitzant raft-small-files-lowercase.txt.
Revisa els resultats.
Pots comprovar-ho, però /index.php és la pàgina d’aterrissatge per defecte.
Segueix amb Fuzzing de directoris, amb una profunditat de recursió.
Revisa els resultats.
Ves a veure 403 Forbidden i 301 Redirects aquí per directoris típics de PHP i recursos. Visitar qualsevol dels enllaços de 301 Redirect mostra que la llista de directoris està habilitada - però no trobo res d’interès excepte confirmant versions de servei filtrades.
Pots tornar al formulari de contacte que hem vist abans, i començar a descompondre-ho.
Vaig revisar la versió d’Apache i vaig trobar tècniques de NTLM Leak afectant aquesta versió, però no vaig veure cap via directa per explotar-les.
Tasques
- Investiga el port del lloc web
80 - Investiga el formulari de contacte
Investigar Formulari de Contacte
Així que tornem a revisar el Formulari de Contacte, demana:
NomCognomCorreu electrònicFitxer de vídeoRequereix que elFitxer de vídeosigui compatible amb Windows Media Player. Per tant, podem revisar Tipus de fitxers compatibles amb Windows Media Player per veure què necessitem.
Provant aquest formulari, envio alguns detalls normals i un fitxer mp4 aleatori, sembla que l’accepta.
Podem veure la petició POST en el nostre proxy web.
Així que fem un POST a /index.php, per tant, hi ha una processament inicial en aquesta pàgina.
Veiem els nostres detalls enviats.
El paràmetre filename el podem controlar en la petició, si cal.
Content-Type probablement és rellevant per a la validació del fitxer.
Si reprodueixem la petició, però editem filename a qualsevol cosa que no sembli un fitxer, quin missatge d’error obtenim?

Sembla que encara funciona. Enviem un paràmetre <blank>.

Obtenim el missatge d’error.
Per tant, probablement no es valida a través del paràmetre filename. El fitxer pujat probablement va a una carpeta de càrrega de Windows i, doncs està destinat a ser un vídeo personalitzat per contractar a una persona, probablement serà revisat manualment.
Pots continuar trobant maneres de crear fitxers astuts per obtenir una comprensió més profunda del procés de càrrega i processament de fitxers, o pots passar avall i veure si puc crear un fitxer compatible amb Windows Media Player amb un payload maliciós.
Amb algunes cerques, pot aprendre sobre les tècniques d’NTLM Leak a través de diversos formats de fitxers de Windows. Morphisec va proporcionar un bon resum d’aquestes vies d’atac.
Tasques
- Investiga el port del lloc web
80 - Investiga el formulari de contacte
- Realitza un atac NTLM-Leak
Bandera d’Usuari
Intentarem fer que un usuari ens reveli el seu Net-NTLMv2 hash. A continuació, procedeix a iniciar sessió i obtenir la bandera d’usuari.
Tasques
- Realitzar atac NTLM-Leak
- Atacar hash
- Iniciar sessió com a usuari
Realitzar un atac NTLM-Leak
Hi ha una sèrie de tipus de fitxers vulnerables llistats en aquest escriptici, així que crearem un fitxer wmx que consisteix en algun XML fàcil. El paquet en qüestió és que el Windows Media Player analitzi l’XML i segueixi un element de vincle cap a una compartició SMB que controllem, on el Windows es autenticarà contra ella amb la Net-NTLMv2 hash de l’usuari. Pots executar Responder per capturar aquesta hash i intentar rompere-la amb hashcat.
Comencem.
Inicia el teu listener de Responder. Asegúra’t que estàs venençint SMB
Ara podem crear el nostre fitxer wmx. Creant video.wmx.
Ara podem pujar el nostre ‘breu vídeo d’introducció’ al formulari de contacte.
La pujada és acceptada - esperem a que Responder capturi la petició d’autenticació.
Passant avui, intentem rompere aquesta hash.
Tasques
- Realitzar atac NTLM-Leak
- Atacar hash
- Iniciar sessió com a usuari
Atac Hash
Utilitzarem hashcat i el l’executarem contra la teva típica llista rockyou.txt.
Aquí completam un conjunt de credencials per a enox:<REDACTED>.
Passant avui, ens loguejem com a enox i obtenim la nostra bandera.
Tasques
- Realitzar atac NTLM-Leak
- Atacar hash
- Iniciar sessió com a l’usuari
enox
Inicia sessió com a l’usuari enox
Primer intentaré SSH.
Inici de sessió correcte, però sense privilegis especials. Compte d’usuari estàndard.
Canviant a PowerShell i obtenint la bandera d’usuari.
Passant-hi per damunt, necessitem trobar un camí per comprometre plenament aquest amfitrió. Pots enumerar aquest amfitrió més avui amb enox i veure què podem fer.
Tasques
- Realitzar atac NTLM-Leak
- Atacar hash
- Iniciar sessió com a l’usuari
enox - Enumerar amfitrón amb
enox
Bandera de Raíz
Fem una enumeració típica del host mentre estem connectats a enox. També podem anar a inspeccionar les configuracions del servidor web, veure què tenim accés i determinar si podem obtenir accés com al servei del servidor web.
Tasques
- Enumera l’host amb
enox
Enumera l’ordinador amb enox
Comprovant altres perfils d’usuaris que poden existir.
No hi ha altres usuaris aquí. Comprovant variables d’entorn i serveis. Som un compte amb privilegis baixos, així que no puc recopilar molta informació.
Comprovant altres fitxers en el nostre directori d’usuari.
Script interessant de Powershell, comprovem què fa realment.
El script és un poquit llarg, però mostraré la part important.
Així que veig un fitxer todo.txt en un directori d’Uploads.
Veiem el script prenent un valor de todo.txt i executant-lo en Windows Media Player.
Al final, veiem el script escriure al fitxer todo.txt.
Pots verificar si enox té permisos per utilitzar aquest script amb icacls.
Pots revisar c:\xampp per a configuracions d’Apache i recopilar la informació que puguis.
Punts d’interès en xampp amb Apache són htdocs com a webroot típic.
apache/conf contindrà fitxers de configuració.
També cal destacar que existeix un passwords.txt, probablement utilitzat per autenticació bàsica per a xampp - però encara és bon revisar-lo.
Investigant en htdocs/ veuràs el lloc web que experimentem anteriorment. No veo un directori d’upload, així que comprovem htdocs/index.php per veure com es processa la nostre petició POST.
Sembla com la nostra pàgina inicial, però tenim codi PHP rellevant a dalt.
Així que veiem que el directori base d’upload està fora del webroot, c:\Windows\Tasks\Uploads.
Veiem aquest procés crear una carpeta basada en un hash MD5 basat en detalls de la submissió.
També veiem que el procés afegix al fitxer todo.txt que vam veure anteriorment.
Pots recopilar que enox automatitza la seva tasca per a revisar els fitxers de vídeo, així que mostra com es va executar el nostre vídeo de pagament. A més, enox té permisos d’escriptura en aquest directori d’upload. Pots verificar que enox no té permisos d’escriptura al nostre webroot.
Com s’esperava.
Per tant, un usuari privilegiat que executa el procés del servidor web interacciona amb fitxers en el directori d’adjunts. En canvi, també tenim accés d’escriptura al mateix directori d’adjunts, però sense accés d’escriptura al directori webroot.
El que podem fer és crear un enllaç simbòlic de directori (ambegut a una Directory Junction) i realitzar un atac de Redirecció del Sistema de Fitxers on enllacem el directori on pujem fitxers al directori webroot. Amb açò, podem pujar una concha inversa al webroot i establir una Concha Web PHP per a l’execució de comandes, que a la seva vegada pot establir una Concha Web per a nosaltres.
Veiem el todo.txt de més avall, però també el nostre directori amb les nostres càrregues de vídeos.
Crearem un enllaç simbòlic aquí perquè la carpeta c:\Windows\Tasks\Uploads\de0d090352acf9956ad036c61c7a2d93 pugui mapejar-se a c:\xampp\htdocs
Per tant, si llistem el contingut del nostre nou directori, hauríem de veure la webroot.
Ara quan fem una petició POST per pujar un fitxer a través de htdocs/index.php, podem manipular-la per desar el fitxer al nostre nou directori, que està tornant a la webroot.
Tasques
- Enumera l’host amb
enox - Configura la Redirecció del Sistema de Fitxers
- Reverse Shell en l’Usuari del Servidor Web
Reverse Shell en Usuari de Servidor Web
Pots publicar un simple PHP Web Shell anomenat shell.php, ja que no estem amagant res aquí. Repetiré el meu darrer petició POST però canviaré el nom del fitxer i el contingut.
Envia la petició.
Pots confirmar ara que el fitxer existeix a webroot.
Visita http://10.129.57.241/shell.php?cmd=whoami per a l’execució de comandes via Web Shell.
Aquesta és l’execució del comandament, ara establim una Reverse Shell.
Primer configura un escoltador.
Utilitzant revshells.com per generar un shell invers amb Powershell #3 (Base64), codificat en URL.
Envia aquesta comanda a la nostre webshell.
Comprova el nostre listener.
¡Ahora som nt authority\local service!
El pas següent és enumerar el nostre accés.
Tasques
- Enumera l’host amb
enox - Configura la Redirecció del Sistema de Fitxers
- Conquista una Reverse Shell com a Usuari del Webserver
- Enumera l’Accés com a
local service
Enumera l’accés com local service
Primer comprovarem els nostres permisos.
Tenim SeTcbPrivilege que és un privilegi increïblement potent. Ara està desactivat, així que si utilitzem EnableAllTokenPrivs hauria d’estar activat. Fer-ho abans de continuar.
Configura un servidor web en el nostre host per servir-nos eines al host $TARGET.
A continuació, baixa EnableAllTokenPrivs.ps1 al nostre servidor.
Finalment, baixa’l i executa-lo des del usuari local service a $TARGET.
Ara, raonar aquest host és trivial. Continuem i explicaré perquè.
Tasques
- Enumera l’host amb
enox - Configura la Redirecció del Sistema de Fitxers
- Reverse Shell com a Usuari del Webserver
- Enumera l’Accés com a
local service - Abusa de SeTcbPrivilege
Abús de SeTcbPrivilege
Per resumir SeTcbPrivilege, és un testimoni de drets d’usuari que permet ‘Actuar com a part del sistema operatiu’. Aquesta és una configuració de política on un procés pot assumir l’identitat d’qualsevol usuari.
Utilitzaré l’eina tcb-lpe per explotar aquest privilegi, que crearà i iniciarà un servei per executar una comanda, després esborrarà automàticament el seu propi servei creat.
Afegirem enox als administradors ja que ja possèdem aquest recurs, llavors anem en direcció a la bandera de root.
Baixaré tcb-lpe des del meu host fins on es troba l’usuari local service.
Inicia sessió com a enox i comprova els meus privilegis.
Tenim administrador local com a enox!
Obté aquesta bandera.
Genial!
Conclusió/Mitigacions
Al principi, estava lleugerament enfadat intentant trobar el primer punt d’entrada. Sabia que era un atac de Càrrega de Fitxers però simplement no podia trobar molta informació sobre les coses que puc fer amb els formats de fitxer del Reproductor de Mitjans Windows. No obstant això, durant l’escriptura per a Media, vaig començar a apreciar com existeix la tècnica de Fuga NTLM - i com és omnipresent en els formats de fitxer de Microsoft. Aquesta màquina m’ha fet estar conscient de les vulnerabilitats dels formats de fitxers - però també m’ha ensenyat sobre els Junts de Directoris i el testimoni SeTcbPrivilege - tots dos dels quals són molt interessants.
El SeTcbPrivilege és un privilegi tan fort que mai he vist abans, i no espero veure’l de nou sense comprometre un servei amb privilegis molt elevats.
Els Junts de Directoris trobo que són enllaços simbòlics de directoris estranys, però ara m’ha fet percebre certes situacions d’una manera diferent degut a la capacitat que aquesta opció pot proporcionar.
Validació de Pujada de Fitxers
Una validació i neteja insuficients de l’entrada d’usuari ens van permetre pujar fitxers maliciósos arbitraris.
Aquesta vulnerabilitat va ser utilitzada dues vegades, una amb la vulnerabilitat NTLM Leak, i la segona vegada per pujar el nostre propi fitxer PHP.
Dissenyant la pujada de fitxers perquè només accepte formats de fitxers suportats pel Windows Media Player - excepte els formats de fitxers .asx, .wax, .wvx, i .wmx, que poden contenir camins UNC per activar l’autenticació SMB contra comparticions remotes.
Redirecció del Sistema de Fitxers
Quan un usuari amb privilegis baixos i un altre amb privilegis elevats poden llegir/escriure fitxers en un directori comú. L’usuari amb privilegis baixos pot crear una connexió de directori o un directori simbòlic per redirigir el processament de fitxers de l’usuari amb privilegis elevats.
Eliminar els privilegis d’escriptura d’enox en el directori de càrrega de fitxers eliminaria aquesta vulnerabilitat, mentre encara permetria que enox revisés fitxers de vídeo amb permisos de lectura.
SeTcbPrivilege a No-Admin
SeTcbPrivilege del token d’usuari permet l’impersonificació de qualsevol usuari sense requerir autenticació. El compte nt authority\local service es proporciona generalment amb SeImpersonatePrivilege, així que aquesta era una adició deliberada.
Eliminar aquest token d’usuari del compte nt authority\local service, assumint que el propòsit no està afectat, hauria de ser suficient per eliminar aquest camí d’atac.
Referències
| Investigació | Descripció |
|---|---|
| Escalada de privilegis NTLM | Lectura crucial per trobar la vulnerabilitat NTLM-Leak per als formats de fitxers de Microsoft |
| Tipus de fitxers compatibles amb el reproductor multimèdia de Windows | Tipus de fitxers a reproduir en el reproductor multimèdia de Windows |
| Comprendre SeTcbPrivilege | Explicació i explotació de SeTcbPrivilege |
| Actuar com part del sistema operatiu | Descripció (vaga) de Microsoft de SeTcbPrivilege |
| Eines Utilitzades | Descripció |
|---|---|
| Caido | Proxy web lleuger |
| ffuf | Ferrament de fuzzing Fuzz Faster u Fool |
| hashcat | Eina avançada per recuperar contrasenyes |
| NMap | Eina d’escaneig de xarxes i auditoria |
| Responder | Poissoner LLMNR, NBT-NS i MDNS, servidor d’autenticació fòrfallera |
| tcb-lpe | Eina per abusar de SeTcbPrivilege |
| EnableAllTokenPrivs | Script de PowerShell per habilitar tokens d’usuari |


















