PDA

View Full Version : Rimuovere chiave di registro tramite script o exe


Baboo85
19-01-2017, 14:16
Ciao a tutti,

in azienda abbiamo una serie di policy di protezione che non permettono l'esecuzione di vari tipi di files (exe, bat, cmd, tmp, ecc) dalla cartella temporanea degli utenti.
Questo comporta un blocco di alcune installazioni di software nonostante i diritti di administrator.
Per risolvere temporaneamente questo problema (e permettere le installazioni) ho creato un bat che rimuove una chiave di registro.
Il problema e' che oggi sono state inserite nuove policy e questo tool viene inibito.

Il motivo e' che il file bat convertito in exe fa uso di file temporanei che da oggi vengono bloccati. Vorrei evitare questo problema.

Il mio script contiene un paio di variabili (utente e computer) e una serie di IF in cui controllo nome utente e nome computer. Questo perche' non vogliamo che tutta l'azienda (chi ha i diritti di admin) possa disattivare a caso questa policy, rendendo inutile la protezione, idem per i pc, non vogliamo che gli utenti autorizzati possano sbloccare le policy di altri utenti.

Detto questo, avrei bisogno di un tool di conversione bat -> exe che NON faccia uso di file temporanei (o perlomeno non nella cartella Temp dell'utente) o di un qualche altro linguaggio di scripting che permetta di visualizzare il nome utente (variabile windows %USERNAME%) e il nome computer (variabile windows %COMPUTERNAME%) per fare i vari confronti.

Di base lo script e':

set USER1=0
set COMPUTER1=0

if /i %username% equ baboo85 (
set USER1=1
set COMPUTER1=1 )
(questa parte la usiamo noi IT, ci autorizza per tutti i pc fintanto che usiamo le nostre credenziali)
if /i %username% equ anonimo set USER1=1
if /i %computername% equ nb-anonimo set COMPUTER1=1
if /i %computername% equ nb2-anonimo set COMPUTER1=1

if %USER1% EQU 1 (
if %COMPUTER1% EQU 1 (
*comando per rimuovere la chiave in questione*
) else ( echo Computer non autorizzato. Contattare l'assistenza.)
) else ( echo Utente non autorizzato. Contattare l'assistenza.)

Ecco, di base lo script e' questo (e' molto piu' lungo perche' ci sono tutti i vari nomi utenti e nomi pc e tutto un readme iniziale).

Mi dareste una mano?

Thanks.

x_Master_x
19-01-2017, 15:06
Non ho capito il motivo per cui non puoi usare direttamente il BAT, posizionandolo in una directory non accessibile all'utente e/o inserirlo in un archivio protetto ed estrarlo quando serve. Insomma la situazione non mi è proprio chiara, dichiari l'utilizzo una-tantum e per quello il BAT basta e avanza.

Baboo85
19-01-2017, 20:40
Non ho capito il motivo per cui non puoi usare direttamente il BAT, posizionandolo in una directory non accessibile all'utente e/o inserirlo in un archivio protetto ed estrarlo quando serve. Insomma la situazione non mi è proprio chiara, dichiari l'utilizzo una-tantum e per quello il BAT basta e avanza.

No, perche' altrimenti dicevo agli utenti direttamente la chiave da cancellare.

La chiave NON DEVE essere divulgata, essendo un tool per administrator basta aprire il BAT e TUTTI gli utenti admin (anche quelli non autorizzati) possono leggere la chiave e far partire il comando REG (o cercare la chiave a mano).
E questo tool deve essere disponibile agli utenti.

Quindi deve per forza essere un eseguibile o qualcosa che non possa essere aperto a caso e letto i comandi all'interno.

Anche perche' se gli utenti sapessero come aggirare la policy, tantovale aver fatto tutto il lavoro di inserirle...

x_Master_x
20-01-2017, 08:39
Scusami ma continuo a non capire :stordita:
Che sia un BAT o un EXE, stai dando in mano a degli utenti un tool che da la possibilità di aggirare le policy?

Da quello che ho capito il BAT controlla se l'utente fa parte di una magica lista e quindi elimina la chiave di registro azzerando di fatto le policy e dando la possibilità di installare i programmi, corretto? Se sì mi sembra alquanto strano...se un utente X vuole installare Y e non può si rivolge all'IT che da remoto/dominio/etc disabilita temporaneamente le restrizioni dalla sua postazione, controlla l'avvenuta installazione del software e riabilita immediatamente le policy.

Tralasciando tutto, i batch nativamente non si possono compilare e lo sai. I programmi gratuiti che trasformano i BAT in EXE non fanno altro che estrarre da qualche parte il BAT ed eseguirlo, qualcuno a pagamento "sembra" usare una tecnica diversa:

Q. My vbs or js script is unpacked into a temporary folder. Why?

A. Specify Execution Type = Compile in the script options. In this case, the script will not be unpacked. ExeScript Host technology will be used to run it instead. It is the most secure way to run the script, nobody will be able to extract valuable information, everything is encrypted, etc. ExeScript is the only program of this kind that makes it possible not to unpack the script to a folder. However, there are some limitations concerning the use of some WScript elements. See the article ExeScript Host Language for details.


Il mio consiglio è che se vuoi usare un eseguibile devi usare un linguaggio di programmazione che permetta di compilare il codice, hai l'imbarazzo della scelta, ma ovviamente a quel punto devi prima imparare le basi.

Unax
20-01-2017, 11:04
https://www.autoitscript.com/site/autoit/

Baboo85
23-01-2017, 20:59
Scusami ma continuo a non capire :stordita:
Che sia un BAT o un EXE, stai dando in mano a degli utenti un tool che da la possibilità di aggirare le policy?

Da quello che ho capito il BAT controlla se l'utente fa parte di una magica lista e quindi elimina la chiave di registro azzerando di fatto le policy e dando la possibilità di installare i programmi, corretto? Se sì mi sembra alquanto strano...se un utente X vuole installare Y e non può si rivolge all'IT che da remoto/dominio/etc disabilita temporaneamente le restrizioni dalla sua postazione, controlla l'avvenuta installazione del software e riabilita immediatamente le policy.

Tralasciando tutto, i batch nativamente non si possono compilare e lo sai. I programmi gratuiti che trasformano i BAT in EXE non fanno altro che estrarre da qualche parte il BAT ed eseguirlo, qualcuno a pagamento "sembra" usare una tecnica diversa:


Il mio consiglio è che se vuoi usare un eseguibile devi usare un linguaggio di programmazione che permetta di compilare il codice, hai l'imbarazzo della scelta, ma ovviamente a quel punto devi prima imparare le basi.

Il fatto e' che abbiamo utenti che vanno in giro per il mondo, ma non possiamo non mettergli questa policy. Abbiamo subito qualche settimana fa un terzo attacco di Cryptolocker, per fortuna ha agito sul pc locale. Da qui, altro giro di vite nella suddetta policy (prima solo gli exe, ora anche i file tmp, bat, ecc).

Quindi, dato che gia' sono amministratori del loro pc, se sono in America e devono installarsi urgentemente un programma, hanno bisogno di sbloccare questa policy per forza. Lasciamo perdere come si lavora, perche' gli americani partono con tutto pronto e se c'e' altro da fare non lo fanno (e sono giustificati), noi italiani ci arrangiamo. Della serie "mancano i cacciaviti? Li vado a comprare". Gli americani "mancano i cacciaviti? Mando mail e torno a casa, impossibile proseguire col lavoro". E' una logica perversa ma e' la migliore per pararsi il culo.

Tornando a noi, non posso far trasparire a nessuno che la policy e' rimovibile da registro. Altrimenti tutti gli admin (non solo questi utenti del Customer Service ma anche gli sviluppatori) la toglierebbero e allora tantovale averla messa.

Da qui il bisogno di un exe.

Comunque ho gia' risolto settimana scorsa. Con un altro "bat to exe" funziona. Non estrae e non crea nulla, agisce diretto e va.