Guida Lockdown Browser Windows bypass - Over the Topmost - C++

JunkCoder

Moderatore
5 Giugno 2020
1,682
25
1,500
653
[TITOLO]Lockdown Browser Bypass (Windows)[/TITOLO]​

Lockdown.gif



EN: In the attachment there's an English readme on how to use it. All the comments in the source code are in English.

Ho soprannominato il tool "LockdownEnough", lo rilascio totalmente opensource, scritto in C++. Non e' specifico solo per quel programma, bensi' e' capace tramite una hotkey di lanciare un programma che, se provvisto di interfaccia grafica, sovrasta (quasi) qualunque finestra, anche se questa e' impostata per stare in cima alle altre ed a schermo intero. Dico quasi perche' ci sono eccezioni rare ma e' giusto fare la precisazione.

Il succo del programma risiede in questa funzione:
C++:
void SetWindowTopMost(HWND hwnd, BOOL bEnable)
{
    HWND topMostState = (bEnable ? HWND_TOPMOST : HWND_NOTOPMOST);
    HWND bringToFront = (bEnable ? HWND_TOP : HWND_BOTTOM);
 
    UINT uFlags = (SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOREDRAW | SWP_NOSENDCHANGING | SWP_NOSIZE);
    SetWindowPos(hwnd, topMostState, 0, 0, 0, 0, uFlags);
    SetWindowPos(hwnd, bringToFront, 0, 0, 0, 0, uFlags);
}

Che attiva/disattiva la modalita' TopMost dato l'handle di una finestra e la spedisce di fronte o in fondo all'asse Z.

Il programma si dirama in due sezioni principali:
  • Installa un hook della tastiera (che nella coda viene prima di quello di LockdownBrowser.dll)
    • EXIT_HOTKEY premuto (di default NumPad 9)
      • Chiude il programma
    • START_HOTKEY premuto (default NumPad 1)
      • Imposta l'attuale finestra attiva come quella da mandare in fondo all'asse Z
      • Legge il comando scritto in config.txt
      • Esegue il comando tramite CreateProcess
      • Aggiunge il ProcessID nella whitelist da monitorare
  • Esegue una continua enumerazione delle finestre di Windows
    • Manda in fondo la finestra "bad" a schermo intero
    • Cerca le finestre che appartengono ai processi in whitelist
      • Le mette in TOPMOST e in primo piano
      • Rimuove il titolo della finestra
Il source e' tutto in un singolo file, anche abbastanza compatto. Se compilate dal codice sorgente ricordatevi di impostare il programma perche' si avvii come amministratore, altrimenti non sara' in grado di prendere hotkey o interagire da/con finestre di processi elevati.

Il tool e' compilato sia a 32 che a 64 bit - usate la stessa architettura del programma da lanciare. La config di esempio ha dentro il percorso di default di Mozilla Firefox, come vedete nella GIF sopra, per funzionare correttamente se Firefox e' a 64 bit dovete lanciare LockdownEnough64.exe - questo e i vari step in ordine sono presenti nel readme bi-lingue.

Non rilascero' una versione per MacOS.
Gli eseguibili potrebbero causare dei falsi positivi per gli antivirus: in fondo un software senza GUI che fa hook della tastiera e scorre le finestre non e' comunissimo.

ATTENZIONE: non mi assumo nessuna responsabilita' per l'uso che se ne fa, come vedete il source e' del tutto generico, senza fare alcun riferimento a determinati programmi ed e' stato creato per una ricerca sulla sicurezza di programmi che usano questa tecnica ed individuare/testare eventuali contromisure. Non voglio vedere commenti di persone che dicono che sono stati ammoniti, bannati, beccati o altro. Ricordate che un software puo' essere aggiornato e trovare una via per resistere o "sgamare" questo trick.

Download - Leggi gli aggiornamenti!

Download
 
  • Love
Reazioni: Netcat
JunkCoder ha aggiornato Lockdown Browser Windows bypass - Over the Topmost - C++:

Aggiornamento

Aggiungo questo update per notificare che questo programma non e' piu' sufficiente per Lockdown Browser, per poter completare il bypass va fatto un hook sulla funzione user32.dll!GetForegroundWindow nel processo da bypassare, in modo che non venga a sapere che la finestra attiva e' cambiata, congelando il valore di ritorno. Chiunque ne abbia voglia puo' postare in discussione il suo fix/implementazione e provvedero' ad includerlo nella release.

Non disabilitero' il...

Leggi il resto dell'aggiornamento..
 
Sarei interessata alla versione corrente per Windows può spiegare ad un principiante come installarlo per favore

Come ho specificato nell'aggiornamento, la "versione corrente" attualmente non esiste, ho smesso di aggiornarlo per mancanza di tempo ed ho rilasciato il codice sperando che qualcuno lo portasse avanti ma ancora non c'e' niente di pronto da usare.