-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSysinternals Eula Scan.EnScript
More file actions
55 lines (50 loc) · 1.83 KB
/
Sysinternals Eula Scan.EnScript
File metadata and controls
55 lines (50 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//===============================================
// Sysinternals Eula Registry Scanner
// Written by: James Habben
// Version: 1.0
// Updated: 2014-12-2
//===============================================
include "EncaseNetworkFrameworkLib"
class EulaScanClass : NetworkFrameworkClass {
RegCommandClass RegCmd;
EulaScanClass () :
super("Sysinternals Eula Scan"),
HelpText("Scan a network for the existance of eula registry keys indicating usage of a Sysinternals "
"tool on each node. Output is currently in the console tab and lists each tool that "
"has the EulaAccepted value name in NTUSER.DAT\\Software\\Sysinternals subkeys."),
RegCmd()
{
new RegCommandClass(RegCmd, "Sysinternals", READKEY, HKEY_ENTRY_HIVE, "Software\\Sysinternals", "", 0, -1);
}
virtual void ScanNode (ConnectionClass con, SnapshotClass snap, DeviceInfoClass devList) {
foreach (DeviceInfoClass di in devList) {
if (di.IsPhysical() == false) {
EntryClass root = GetEntryRoot(di);
if (root.Find("users") && root.Find("windows")) {
forall (EntryClass entry in root.Find("users")) {
if (entry.Name().Compare("ntuser.dat") == 0) {
RegistryClass reg(entry);
RegValueClass regValues();
reg.Run(RegCmd, regValues);
forall (RegValueClass rv in regValues) {
if (rv.Name().Compare("EulaAccepted") == 0) {
Console.WriteLine("{0}: {1} ({2})", con.Name(), rv.Parent().Name(), rv.Value());
}
}
}
}
}
}
}
}
}
class MainClass {
void Main(CaseClass c) {
SystemClass::ClearConsole(1);
EulaScanClass scan();
scan.ShowDialog();
Console.WriteLine("Starting Scan...");
scan.RunScan();
Console.WriteLine("Scan Finished.");
}
}