
Una Bind Shell che utilizza il servizio fax e un DLL Hijack
Una shell di tipo bind shell Proof-of-Concept che utilizza il servizio Fax e un dirottamento di DLL basato su Ualapi.dll.
Vedi il nostro approfondimento su: https://windows-internals.com/faxing-your-way-to-system/

Ualapi.dll e posizionala in c:\windows\system32Fax, che caricherà la DLL e chiamerà l'esportazione UalStart. UalStart accoderà un elemento di lavoro del pool di thread che aprirà un handle su RpcSs, troverà un token SYSTEM e poi lo impersonerà. Successivamente, creerà un socket sull'indirizzo endpoint locale, lo assocerà alla porta 9299 e quindi attenderà in modo asincrono una connessione usando una porta di completamento I/O del pool di thread.nc(at).exe <ip> 9299) e quindi digita let me in e premi INVIO. Se stai scrivendo codice personalizzato, assicurati di inviare la stringa let me in\n.Cmd.exe sotto il servizio DcomLaunch con privilegi SYSTEM, collegando i suoi handle di input e output al socket appena creato.SYSTEM, tornando molto rapidamente a NETWORK SERVICE dopo aver effettuato una sola chiamata API. Questo aiuta a ridurre la possibilità di essere rilevati da vari scanner.DcomLaunch (che è già un servizio SYSTEM) e non sotto il servizio Fax, rendendola molto più naturale ed evitando un albero di processi dall'aspetto molto sospetto.Fax e non a DcomLaunch o Cmd.exe. Se uccidiamo il servizio Fax, sembra che il socket appartenga a System.Non è pensato per essere una shell pronta all'uso, non rilevabile, dannosa e armata:
80 o 443 funzionerebbe meglio.Spooler, caricano anch'essi Ualapi.dll. Mentre il sistema si comporta bene se il servizio Fax è "bloccato" nello stato SERVICE_START_PENDING, ciò causerà problemi in Spoolsv.exe.