Tak já tady sice rozhlašuju, že "nikdy nic nepředpokládej" a rovnou se na to sám chytím. Aspoň sem se pěkně poučil, že to platí.
PSEXEC přenáší přihlašovací údaje po síti v nezašifrované podobě. Je tady dokonce o tom i zmínka:
"Note that the password is transmitted in clear text to the remote system."
Já jsem to sám myslím ani nikdy nepotřeboval, takže jsem to nějak neřešil. Ale nepředpokládal jsem, že Rusinovič by nemusel být tak mimo. Panebože.
Jestli si to chcete ověřit, stačí použít něco jako:
a nachytat si to pomocí Network Monitoru. Sice se v tom špatně hledá, ale uložil jsem si to měření do souboru .CAP a potom to otevřel pomocí PSPAD v HEX rešimu. Tam už to najdete. Jenom upozorňuju, že to heslo tam je v Unicode. Musíte teda hledat binárně a za každý znak přidat hodnotu 00.
Ach jo. Přitom je to tak jednoduché. To připojení na vzdálený počítač je samozřejmě ověřené. Buď Kerberosem, v doménovém prostředí, nebo NTLM. Obě tyto metody umí samy odvodit nějaké šifrovací klíče (session security). Stačí je pak jen použít. Nojo, to bych už zřejmě toho chtěl moc.
Chápu, že nechtěl asi používat WMI (které může být šifrováno samo o sobě), protože to je DCOM (dynamické porty) a má to špatnou průchodnost.
Takže PSEXEC je vhodný tak maximálně na to, abyste spouštěli něco na lokále. Jestli to chcete používat přes síť, musíte používat IPSec. Jak jsem se díval, prý existuje nějaká metoda za pomoci IPC$, ale já tomu nevěřím. Zaprvé vůbec nevím, v čem to vlastně spočívá. Nevidím rozdíl, nezi připojením z PSEXEC a ručním připojením. A navíc, pokud se něco už dříve připojovalo na ten vzdálený počítač, tak to spojení zůstalo navázané a bude bez šifrování. Tohle není dobré.
Ale abych tu jenom nehaněl, na to je přesně PSEXEC úplně dokonalý. Víte jak si spustíte příkazovou řádku pod účtem SYSTEM?
A jak spustíte příkazovou řádku pod účtem Network Service například?
psexec -i -d -u "NT AUTHORITY\Network Service" cmd