PDA

Visualizza versione completa : file bat per modifica privilegi account


snuffles23
27-09-2012, 10.35.52
Ciao a tutti,
me ne intendo poco di programmazione ma penso che quello che sto' per chiedervi sia fattibile:
Ho un pc con xp pro sp3 e due account uno admin (mio) e l'altro limitato (creato per il cliente).
E' possibile creare un file .bat che quando sono loggato come account limitato e lancio questo bat dia i privilegi di amministratore alll'account limitato?
Io conosco sia la user sia la password dell'administrator.
Spero di essere stato chiaro.
Attendo vostre proposte,
Grazie mille
Cristian

LoryOne
27-09-2012, 11.51.54
Si è possibile.
Devi, però, fare attenzione a non specificare la password nel file .bat per ragioni di sicurezza.
Esistono utilities che possono eseguire comandi o applicazioni che assegnano privilegi utente di livello superiore alla sessione di esecuzione dell'applicativo specificato all'interno di uno spazio di lavoro assegnato ad un utente limitato.
*In Windows puoi utilizzare runas, ossia "esegui come"
Es: runas /u:administrator "C:\WINDOWS\system32\FlashPlayerApp.exe"
FlashPlayerApp.exe sarà eseguito con privilegi utente amministratore su una macchina i cui privilegi sono ridotti.
Non avendo specificato la password, essa verrà richiesta a video ed occultata all'atto dell'esecuzione dell'utility runas.

ps: Deve essere attivo il servizio Accesso secondario altrimenti, pur avendo specificato le corrette credenziali, non è possibile procedere

*il corrispettivo in Linux è sudo/gksu (ossia: SuperUser Do)

snuffles23
27-09-2012, 11.59.01
Grazie mille per la risposta,
però io non ho la necessità di installare qualcosa ma ho la necessità di far diventare l'account limita amministratore.
Potrei fare run as administrator "gestione account.exe" e poi tramite teamviewer mettere io la password...
Però se non ho la connessione internet devo per forza dare al cliente la password... quindi tanto vale...
Io volevo creare il bat con la password inserita in quanto non voglio comunicarla al cliente, poi quando ci sarà la connessione internet disponibile rimuovo il file...
Spero di essermi spiegato meglio...
Cristian

LoryOne
27-09-2012, 12.07.43
...
Io volevo creare il bat con la password inserita in quanto non voglio comunicarla al cliente, poi quando ci sarà la connessione internet disponibile rimuovo il file...
Spero di essermi spiegato meglio...
Cristian

Ehm...il file .bat è testuale. Se specifichi la password, l'hai già comunicata al cliente.
Per qualunque operazione tu voglia eseguire su un account limitato ed attivo, si deve prima ottenere privilegi superiori, quindi devi necessariamente "passare" attraverso l'account Administrator.

snuffles23
27-09-2012, 12.15.53
... i miei clienti non sono così svegli...

AMIGA
27-09-2012, 18.44.09
Potresti evitare di fare dei file bach, utilizzando il classico tasto destro Mouse sul file da eseguire, scegliere Esegui Come ... e optare per un utente Administrator, esempio pratico è quello di poter installare un applicativo anche se l'utente è limitato.

http://4.bp.blogspot.com/_KbIYCMtNtIs/SQwq9xZeaOI/AAAAAAAAAEU/WJ7YcDeI2UE/s320/seleziona+account+utente.png

snuffles23
28-09-2012, 10.21.11
Questa procedura mi va bene quando ho la possibilità di connettermi da remoto e posso io inserire la password.
Quando però la connessione non è possibile devo per forza comunicare a voce la password e questo non va bene.
Io pensavo di creare un file per far diventare un account limitato amministratore così che il cliente può fare tutte le modifiche necessarie e poi rimuovere il file o nasconderlo all'interno di qualche cartella...

LoryOne
28-09-2012, 11.15.08
Windows XP è un S.O. ad interfaccia grafica, ma è provvisto di utilities a riga di comando che richiamano identiche API per ottenere lo scopo senza ricorrere all'interfaccia.
I sysadmin utilizzano non solo quelle installate di default, ma si avvalgono anche di ulteriori e più potenti incluse nel pacchetto resource-kit di mamma.
Se riesci ad identificare l'utility adatta a te, devi considerare che se un account in funzione ha i privilegi limitati, non c'è modo di acquisirne superiori senza autenticarsi come altro utente (o riloggandosi) specificando la password di accesso: La password non è ricavabile automaticamente dal S.O. risalendo dal suo hash.
Pertanto, all'utente è richiesto comunque di specificarla: O la specifichi come parametro, oppure viene richiesta dal terminale quando necessario.
Il tuo batch (sequenza di utilities con parametri specificati), quindi, non può evitare a qualcuno di immetterla via terminale quando richiesto, peggio ancora se la rendi visibile in chiaro.

ps: Non capisco il perchè della tua richiesta:
Se sei tu l'admin recati di persona, fai quello che devi e poi riavvia.
Se non lo sei, quel che chiedi è un "velato" tentativo di bypassare protezioni imposte da altri senza il loro consenso e non è questo il sito dove puoi trovare informazioni a riguardo.

snuffles23
28-09-2012, 12.11.16
Io sono l'admin, ma ho cliente sparsi in tutta italia e come è successo in passato non posso farmi 1000km per cambiare un indirizzo ip.
Esempio:
oggi mi chiama un cliente che stà a 1000km e mi dice che vuole passare da telecom a fastweb, io rispondo che non ci sono problemi basta che quando arrivano ad installare la nuova linea mi chiama subito.
Puntualmente non accede così, fastweb configura i suoi apparati e stacca telecom e se ne va.
Ora io come faccio a modificargli gli ip se non posso connettermi con il teamviewer?
L'unico modo è quello di farlo accedere come admin e quindi comunicargli la password...
Io volevo trovare un modo alternativo...

Ho pensato anche di aggiungere un nuovo account admin temporaneo... sempre se è possibile tramite script...

borgata
28-09-2012, 12.33.05
Il problema è che la tua soluzione è un paradosso: non puoi dargli il potere di elevare i propri privilegi senza dar loro i mezzi per farlo.

Per capire quale possa essere una soluzione alternativa, bisognerebbe capire bene quale sia il tipo di rapporto con i tuoi clienti, perchè hanno account limitati e perchè non vuoi che abbiano la password per poter elevare i propri privilegi.

Comunque immagino che quello della connessione sia un caso specifico, ma in tutti gli altri casi dovresti poter accedere al computer tramite la rete.
In questi pochi casi, puoi adottare una soluzione meno comoda ma più semplice, per esempio modificare temporaneamente la password di admin, darla loro per compiere le operazioni, quindi cambiarla nuovamente a quella originale per impedir loro di abusarne.

Se tu creassi uno script che permettesse loro di elevare i propri privilegi, non avresti alcun controllo, perchè loro potrebbero copiarselo e quindi riutilizzarlo a tua insaputa, anche se sono utenti con poca dimestichezza.

Al momento la cosa migliore che mi viene in mente sarebbe creare un piccolo eseguibile per risolvere lo specifico problema (ci sono programmi capaci di convertire bat in exe e fare molto di più, se non sei programmatore e creare direttamente l'eseguibile), per esempio che cambi l'IP attuale in uno specificato (e faccia solo quello), in maniera tale che non possano abusare di un account con privilegi elevati e fare quel che vogliono.

LoryOne
28-09-2012, 13.05.17
E' la soluzione migliore, ma:
1 - Non sottovalutare mai le conoscenze dei tuoi clienti. Se non le possiedono loro, possono averle i loro conoscenti.
2 - Le credenziali non devono figurare in chiaro all'interno dell'eseguibile (o in un file allegato), ad esempio aprendolo con un editor esadecimale.
Dare in pasto l'eseguibile ad UPX non è sufficiente.
L'unico modo di ottenere la password per loro, deve essere disassemblare l'eseguibile.
Cambiare password di amministratore ad esecuzione avvenuta è d'obbligo.

"Per capire quale possa essere una soluzione alternativa, bisognerebbe capire bene quale sia il tipo di rapporto con i tuoi clienti, perchè hanno account limitati e perchè non vuoi che abbiano la password per poter elevare i propri privilegi."
Sono d'accordo.
Valuta il fatto che di te non hanno più bisogno se scoprono le credenziali dell'account amministratore.

retalv
28-09-2012, 13.25.32
Per capire quale possa essere una soluzione alternativa, bisognerebbe capire bene quale sia il tipo di rapporto con i tuoi clienti, perchè hanno account limitati e perchè non vuoi che abbiano la password per poter elevare i propri privilegi.

Immagino che sia la classica condizione in cui il cliente è la ditta e gli utilizzatori i dipendenti: quando non vuoi che il dipendente faccia i suoi "giochi" con le tue macchine o quando consideri responsabile chi le mantiene...

@snuffles23

Arrivando al sodo: i modi di fare quello che chiedi sono essenzialmente due il primo semplice e il secondo complesso.

Semplice
Monta un modem sulla macchina e usa una connessione remota sulla linea fonia.

Complicato
Puoi sfruttare lo stato dei privilegi utente, privilegi che non vengono attivati fino al successivo riavvio.

In Win7 non è un problema, in XP bisogna vedere se è possibile fare tutto questo, ma idealmente dovrebbe esserlo...

Mi spiego: come amministratore, se cambi i privilegi di un utente attivo questi non risultano attivi fino al prossimo riavvio macchina o logout-login dell'utente.

Da utente limitato (ma utilizzando i diritti utente dell'utenza amministrativa), esegui un software che, previa inserimento password usa-e-getta, vada a modificare i diritti dell'utente corrente e forzi il re-avvio o il logout.

Riaccesa l'utenza, questa si troverà con diritti amministrativi ma nel frattempo (al riavvio o al login) avrai riattivato in modo silenzioso tramite lo stesso software (preimpostazione tramite registry) i permessi standard dell'utenza e cambiato anche pw all'utenza amministrativa, permessi che saranno però attivati alla successiva chiusura di macchina o utenza, quindi nella sessione corrente l'utente avrà diritti amministrativi e la nuova pw dell'amministratore sarà immediatamente attiva.

Ovvio che è un accrocchio e un utente molto scafato potrebbe arrivarci, ma considerando lo status quo credo che sia un sistema abbastanza sicuro.
Devi però avere un minimo di esperienza di programmazione... con AutoIT è un un gioco da ragazzi (anche se lunghetto) implementarlo e ha nativamente le funzioni di crittografazione per i database delle passwords...

Rimane però sempre e comunque il fatto che, in qualsiasi modo tu faccia, se in quella sessione "amministrativa" l'utente crea una nuova utenza amministrativa, potrà poi fare e disfare qualsasi cosa, anche a distanza di mesi... secondo me non vale la candela... vai di remoto a 56k e passa la paura... ;)

Spero di esserti stato di aiuto.

snuffles23
28-09-2012, 14.29.02
Immagino che sia la classica condizione in cui il cliente è la ditta e gli utilizzatori i dipendenti: quando non vuoi che il dipendente faccia i suoi "giochi" con le tue macchine o quando consideri responsabile chi le mantiene...

@snuffles23

Complicato
Puoi sfruttare lo stato dei privilegi utente, privilegi che non vengono attivati fino al successivo riavvio.

In Win7 non è un problema, in XP bisogna vedere se è possibile fare tutto questo, ma idealmente dovrebbe esserlo...

Mi spiego: come amministratore, se cambi i privilegi di un utente attivo questi non risultano attivi fino al prossimo riavvio macchina o logout-login dell'utente.

Da utente limitato (ma utilizzando i diritti utente dell'utenza amministrativa), esegui un software che, previa inserimento password usa-e-getta, vada a modificare i diritti dell'utente corrente e forzi il re-avvio o il logout.

Riaccesa l'utenza, questa si troverà con diritti amministrativi ma nel frattempo (al riavvio o al login) avrai riattivato in modo silenzioso tramite lo stesso software (preimpostazione tramite registry) i permessi standard dell'utenza e cambiato anche pw all'utenza amministrativa, permessi che saranno però attivati alla successiva chiusura di macchina o utenza, quindi nella sessione corrente l'utente avrà diritti amministrativi e la nuova pw dell'amministratore sarà immediatamente attiva.

Ovvio che è un accrocchio e un utente molto scafato potrebbe arrivarci, ma considerando lo status quo credo che sia un sistema abbastanza sicuro.
Devi però avere un minimo di esperienza di programmazione... con AutoIT è un un gioco da ragazzi (anche se lunghetto) implementarlo e ha nativamente le funzioni di crittografazione per i database delle passwords...

Rimane però sempre e comunque il fatto che, in qualsiasi modo tu faccia, se in quella sessione "amministrativa" l'utente crea una nuova utenza amministrativa, potrà poi fare e disfare qualsasi cosa, anche a distanza di mesi... secondo me non vale la candela... vai di remoto a 56k e passa la paura... ;)

Spero di esserti stato di aiuto.

Opto per quello complicato... ma non conosco il sw...

AMIGA
28-09-2012, 14.36.47
Io continuo a non capire bene come stanno le cose, l'utente a 1000 KM su quale PC si connette, sul suo o sul tuo ? l'utente è limitato sul suo PC, sul tuo o su un dominio ?

LoryOne
28-09-2012, 22.04.18
No AMIGA, non è una questione di amministrazione, bensì di elevazione di privilegi sia sotto dominio, sia no, ossia in qualunqe condizione.
Un account limitato deve potere acquisire privilegi più elevati per compiere azioni a lui precluse durante il normale funzionamento in seguito al login; il tutto deve avvenire senza dover far riavviare la macchina ed in modo nascosto.

retalv
29-09-2012, 00.14.24
Opto per quello complicato... ma non conosco il sw...
Se intendi il software di gestione... non esiste, te lo dovrai scrivere tu o chi per te (non io), se intendi AutoIT (http://www.autoitscript.com/site/autoit/), è abbastanza semplice da imparare-utilizzare per operazioni del genere... ti ho semplicemente dato la traccia, niente pappa pronta... ;)

E' molto interessante il seguente link...

http://www.notageek.it/esegui-come-runas-tutorial.html

alla sezione "E se volete veramente esagerare..." l'ultima, che con un bell'accrocchio (che ho usato in altri ambiti ma a cui non avevo pensato per questo) ti permette di attivare temporaneamente l'intero ambiente grafico come amministratore, quindi senza reavvio e implicazioni varie sulla sicurezza dell'utenza amministrativa vera e propria.

Usando questa strada l'implementazione è ancora più semplice, anche se rimane il problema che ti ho gia detto...

In AutoIT (omettendo buona parte dei parametri delle funzioni) più o meno è...

processclose("explorer.exe")
processwaitclose("explorer.exe")
runas([....], "explorer.exe") ;esegue l'ambiente grafico con diritti amministrativi
processwait("explore.exe")
msgbox(0,"Attesa per ritorno all'utente standard", "Premi OK per continuare")
processclose("explorer.exe")
processwaitclose("explorer.exe")
run("explorer.exe") ;riavvia l'ambiente grafico senza diritti amministrativi
processwait("explore.exe")

Ovviamente manca la gestione delle password usa-e-getta crittografate, che è la cosa più lunga e può essere fatta in tanti modi.