Hello @Kay and happy holidays.

With the recent events and focus on securing working from home for many companies, our company/security team was auditing all of our builds and applications. They came across some interesting behavior that they want to ensure is part of SuRun and is working as it is intended and not something trying to take advantage of it. If you could review the details below and just let us know your thoughts that would be great. If this is not clear, just let me know what you need as I am just the middle man here.

Thanks

This is what we are seeing on our scanning:
C:\windows\SuRun.exe /QUIET /TESTAA 4916 00007FF83A0A3E98 C:\windows\system32\EaseOfAccessDialog.exe 211

parentprocess: sethc.exe
parentprocesspath: C:\Windows\System32\sethc.exe
pid: 4856
process: SuRun.exe
processcmdline: C:\windows\SuRun.exe /QUIET /TESTAA 828 00007FFC521F3E98 C:\windows\system32\EaseOfAccessDialog.exe 211
processpath: C:\Windows\SuRun.exe

5 Tage später

Sorry for the late answer.
The behavior is how SuRun's hooks test if a process needs elevation,
So everything is like it's designed.

3 Monate später

Hello @Kay,

ich habe ein ähnliches Problem.
Ich habe bereits ein anderes Programm, das Tasks mit erhöhten Rechten startet.
Wird dieses ausgeführt, erscheint der "Ausführen als..." Dialog.
Das Programm ist auch in der Whitelist eingetragen.
Hier die zugehörigen Registry Einträge:

"\"G:\Bernhard\Delphi XE\Start\Start.exe*\""=dword:00000023
"\"G:\Bernhard\Delphi XE\Start\Start.exe\" /0CC5C50CB7D643B68CB900BF000FFFD5 /execute_file|G:\Bernhard\Delphi XE\HICOM\HICOM.EXE|/Minimize|G:\Bernhard\Delphi XE\HICOM|1"=dword:00000023
"\"G:\Bernhard\Delphi XE\Start\Start.exe\" /0CC5C50CB7D643B68CB900BF000FFFD5 /execute_file|net|use R: \\Server\Speicher||6"=dword:00000023

Mein Workaround:
In der Funktion DialogProc schicke ich mir beim Auftreten von 'Start.exe' in der CmdLine selbst die Message WM_COMMAND, IDOK,BN_CLICKED und alles ist gut.

Meine Frage:
Wieso erscheint der "Ausführen als..." Dialog und wie kann man ihn mit Bordmitteln verhindern?

Viele Grüße, Bernhard

7 Tage später

Das Problem sollte IMHO nicht auftreten.
Wenn ich Dich richtig verstehe, startest Du "Delphi XE".
Delphis Start.exe wird von SuRun (eigentlich) immer mit gehobenen Rechten gestartet.
Siehst Du SuRun's Fenster "...wurde mit gehobenen Rechten gestartet"?
Wenn ja, liegt das an Delphi selbst, weil Start.exe ein nachträgliches ShellExecute mit Verb "RunAs" versucht.
Wenn nicht, hab ich auch erst mal keine Idee.
Ich werde Delphi mal installieren.
Gibt es eine spezielle Version, die Du nutzt oder gehen alle nicht?

Gruß

Kay

Start.exe ist ein mit Delphi XE erstelltes Programm und liegt daher bei mir auch im Verzeichnis mit unter Delphi XE erstellten Programmen.
Das hat im Prinzip nichts mit Delphi zu tun.
Start.exe wird aus dem Autostart Ordner (daher keine Adminrechte) aufgerufen und startet weitere Programme die in einer Ini-Datei hinterlegt sind.
Diese weiteren Programme werden über einen Selbstaufruf von Start.exe aus der Start.exe über ShellExecute mit Administratorrechten ebebenfalls über ShellExecute mit Administratorrechten getartet. Das erzeugt die langen Registry Einträge.
Ich benutze SuRun im Moment nur um zu sehen, wer mit Administratorrechten ein Programm startet.
Das funktioniert sehr gut. Als nächstes werde ich die Abfrage auf "Start.exe" durch das nochmalige Überprüfen der Whitelist ersetzen.
Hier Link auf die vo mir geänderten Module:
https://wiesweg.no-ip.org/LogonDlg.zip

Viele Grüße, Bernhard

5 Tage später

Es hat ein wenig gedauert, mich wieder durch den Quelltext zu wühlen...

SuRun's ShellExecute-Hook interpretiert das Verb "runas" als "/RunAs". Das war vor Existenz von UAC üblich so.
"SuRun /RunAs" ohne Angabe von <user> oder "/Low" fragt immer nach einem Benutzernamen.
Das ist so, weil man eventuell einen Prozess tatsächlich im Kontext eines anderen Benutzers starten möchte.
Wenn Du das Verhalten modernisieren möchtest, ist die richtige Stelle in SuRunExt.cpp ab Zeile 693.

5 Tage später

Danke für den Tipp. Für die Info das das Verb "runas" verwendet wird, mußte ich selbst in meinen Sourcen nachschauen. Gefunden habe ich:
SEI.lpVerb := 'runas';
War die Verwendung vom Verb "runas" eine Vermutung oder wurden auch Delphi Quelltexte durchwühlt?
Viele Grüße und frohe Ostern, Bernhard

Das war eine Vermutung.
In SuRun ist das die einzige Möglichkeit, dass immer nach einem Benutzer gefragt wird.
Ich wollte irgendwann mal einbauen, dass man das RunAs pro Programm festlegen kann, hab's aber nie gemacht und nie vermisst.

Eine Antwort schreiben…
Impressum, Datenschutz