Ik schets even volgende situatie. AUB dit verhaal niet in vraag stellen, een aantal dingen worden boven ons hoofd geregeld...
We hebben een relatief groot aantal Active Directory accounts (noem het serviceaccounts) die we 1 of 2 keer per jaar nodig hebben om diverse taken uit te voeren.
Probleem: als AD accounts bij ons gedurende 3 maand niet gebruikt worden, worden ze disabled, om nog eens 2 of 3 maand later gewist te worden.
We zoeken een manier waarbij we bvb 1 keer per maand "iets" doen met die account zodat die geactiveerd blijft.
PSexec zou daarvoor een ideaal instrument zijn, ware het niet dat de securitymannen hogerop het gebruik ervan aktief verbieden.
We bekeken het doscommande RUNAS, wat in theorie een evenwaardig alternatief zou zijn, maar daar kan je je paswoord nergens in kwijt zodat het (automatisch) gebruikt wordt. (en ja, ik weet het, da's in wezen hetzelfde securityissue als psexec.....)
Dus: ziet iemand nog een alternatief?
Ik ben te weinig thuis in powershell, maar ik dacht dat je daar met encrypted paswoordvariabelen kan werken etc... Is daar misschien een mogelijkheid? We kunnen leven dat paswoorden in clear text in een script staan, maar 't zou natuurlijk véél mooier zijn mocht dat ook kunnen vermeden worden (desnoods via een apart 'encryptie'scriptje)
Om het even wat dat de credentials verifieert tegenover AD zou volstaan om de account aktief te houden denk ik.
Alternatief voor psexec? Programma runnen als andere user
-
- Member
- Berichten: 58
- Lid geworden op: 19 dec 2020, 13:23
- Uitgedeelde bedankjes: 3 keer
- Bedankt: 11 keer
- Recent bedankt: 2 keer
Je hebt geen wachtwoorden nodig (of misschien één keer interactief, om in de USERPROFILE-mappen van de gebruikers te kunnen schrijven). Met PowerShell 7:
Installeer OpenSSH server. Maak een SSH keypair. Zet de pubkey in ${Env:USERPROFILE}\.ssh\authorized_keys (als de user een Administrator is, is Windows enorm debiel. Zet dan de regel "Match Group administrators" en die eronder in commentaar in ${Env:PROGRAMDATA}\ssh\sshd_config) Zie https://learn.microsoft.com/en-us/windo ... management en https://github.com/PowerShell/Win32-OpenSSH/issues/1948 voor meer info.)
Toegevoegd na 4 uren 43 minuten 31 seconden:
De github issue die ik eigenlijk wilde linken was deze: https://github.com/PowerShell/Win32-OpenSSH/issues/1324
Die bevat de essentiële discussie. Ik had ook mijn post kunnen bewerken maar door een nieuwe post kan ik wat overzichtelijker duidelijk maken wat het probleem is.
Alle administrators delen standaard één authorized_keys bestand.
Stel: je werkt in opdracht voor een firma waar een nogal incompetente IT-verantwoordelijke genaamd Guust vast in dienst is. Je maakt dus twee administrators: admin_pruimpit (jij) en admin_guust (de incompetente bediende). Als iemand per ongeluk half de AD verwijdert kan je aan de hand van de audit logs aantonen dat Guust de snoodaard was.
Ja, Guust kan dankzij z'n admin privileges jouw account hijacken, maar weeral: audit logs gaan dat verraden.
Door de gedeelde authorized_keys kan Guust rechtstreeks aanloggen met je admin_pruimpit account en dus alles wat 'ie mispikkelt op jou steken.
Installeer OpenSSH server. Maak een SSH keypair. Zet de pubkey in ${Env:USERPROFILE}\.ssh\authorized_keys (als de user een Administrator is, is Windows enorm debiel. Zet dan de regel "Match Group administrators" en die eronder in commentaar in ${Env:PROGRAMDATA}\ssh\sshd_config) Zie https://learn.microsoft.com/en-us/windo ... management en https://github.com/PowerShell/Win32-OpenSSH/issues/1948 voor meer info.)
Code: Selecteer alles
"jan.janssens", "piet.pieters", "pol.paulissen" | ForEach-Object {
$ses = New-PSSession -HostName . -UserName $_
Remove-PSSession $ses
}
De github issue die ik eigenlijk wilde linken was deze: https://github.com/PowerShell/Win32-OpenSSH/issues/1324
Die bevat de essentiële discussie. Ik had ook mijn post kunnen bewerken maar door een nieuwe post kan ik wat overzichtelijker duidelijk maken wat het probleem is.
Alle administrators delen standaard één authorized_keys bestand.
Stel: je werkt in opdracht voor een firma waar een nogal incompetente IT-verantwoordelijke genaamd Guust vast in dienst is. Je maakt dus twee administrators: admin_pruimpit (jij) en admin_guust (de incompetente bediende). Als iemand per ongeluk half de AD verwijdert kan je aan de hand van de audit logs aantonen dat Guust de snoodaard was.
Ja, Guust kan dankzij z'n admin privileges jouw account hijacken, maar weeral: audit logs gaan dat verraden.
Door de gedeelde authorized_keys kan Guust rechtstreeks aanloggen met je admin_pruimpit account en dus alles wat 'ie mispikkelt op jou steken.
-
- userbase crew
- Berichten: 9505
- Lid geworden op: 28 jan 2012, 17:22
- Uitgedeelde bedankjes: 213 keer
- Bedankt: 673 keer
- Recent bedankt: 2 keer
De juiste oplossing lijkt me:
De service accounts exempten van die erase policy.
Al de rest is kunst-en vliegwerk om slecht ingestelde bedrijfspolicies te omzeilen.
Ik ben een groot voorstander geworden van het "F around and find out" principe.
Als hogerop die accounts actief saboteert, door weigeren aan je workflow mee te werken, dan spam je hogerop maar vol met tickets en ander gedoe omdat je de facto je werk niet kan doen.
Ik ben geen fan van al dat "gebypass van policies", dat is prulwerk en kan leiden tot een security breach.
Samenwerken, niet mekaar tegenwerken.
De service accounts exempten van die erase policy.
Al de rest is kunst-en vliegwerk om slecht ingestelde bedrijfspolicies te omzeilen.
Ik ben een groot voorstander geworden van het "F around and find out" principe.
Als hogerop die accounts actief saboteert, door weigeren aan je workflow mee te werken, dan spam je hogerop maar vol met tickets en ander gedoe omdat je de facto je werk niet kan doen.
Ik ben geen fan van al dat "gebypass van policies", dat is prulwerk en kan leiden tot een security breach.
Samenwerken, niet mekaar tegenwerken.
-
- Elite Poster
- Berichten: 766
- Lid geworden op: 19 jan 2013, 22:15
- Locatie: Ronse
- Uitgedeelde bedankjes: 24 keer
- Bedankt: 44 keer
Update: ik was er effe 2 minuten niet goed van, maar ik had voor de grap de vraag eens gesteld aan Chatgpt.... Na een paar keer over-en-weer babbelen (by lack of a better word) spuwde dat verrekte ding per direct een powershell programma uit dat - nog meer tot mijn verbazing - direct perfect deed wat ik zocht.
Om het nog erger te maken hield Chatgpt daarna ook nog eens rekening met de (beperkte) opmerkingen die ik maakte, en produceerde probleemloos een versie 2.0 uit, compleet met uitleg en gebruiksaanwijzing...
Ik zie het somber in voor de toekomstige analyst/programmeur...
Om het nog erger te maken hield Chatgpt daarna ook nog eens rekening met de (beperkte) opmerkingen die ik maakte, en produceerde probleemloos een versie 2.0 uit, compleet met uitleg en gebruiksaanwijzing...
Ik zie het somber in voor de toekomstige analyst/programmeur...
-
- Member
- Berichten: 58
- Lid geworden op: 19 dec 2020, 13:23
- Uitgedeelde bedankjes: 3 keer
- Bedankt: 11 keer
- Recent bedankt: 2 keer
... wil je dit script posten?tdemeyer schreef: 01 apr 2023, 10:55 Update: ik was er effe 2 minuten niet goed van, maar ik had voor de grap de vraag eens gesteld aan Chatgpt.... Na een paar keer over-en-weer babbelen (by lack of a better word) spuwde dat verrekte ding per direct een powershell programma uit dat - nog meer tot mijn verbazing - direct perfect deed wat ik zocht.
Om het nog erger te maken hield Chatgpt daarna ook nog eens rekening met de (beperkte) opmerkingen die ik maakte, en produceerde probleemloos een versie 2.0 uit, compleet met uitleg en gebruiksaanwijzing...
Ik zie het somber in voor de toekomstige analyst/programmeur...