-
Notifications
You must be signed in to change notification settings - Fork 20
/
es_subscribe.js
169 lines (164 loc) · 6.61 KB
/
es_subscribe.js
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
// https://github.com/redcanaryco/mac-monitor/wiki/8.-Endpoint-Security-DYLIB#an-arbitrary-clients-event-subscriptions
const ES_EVENT_TYPE = {
ES_EVENT_TYPE_AUTH_EXEC: 0,
ES_EVENT_TYPE_AUTH_OPEN: 1,
ES_EVENT_TYPE_AUTH_KEXTLOAD: 2,
ES_EVENT_TYPE_AUTH_MMAP: 3,
ES_EVENT_TYPE_AUTH_MPROTECT: 4,
ES_EVENT_TYPE_AUTH_MOUNT: 5,
ES_EVENT_TYPE_AUTH_RENAME: 6,
ES_EVENT_TYPE_AUTH_SIGNAL: 7,
ES_EVENT_TYPE_AUTH_UNLINK: 8,
ES_EVENT_TYPE_NOTIFY_EXEC: 9,
ES_EVENT_TYPE_NOTIFY_OPEN: 10,
ES_EVENT_TYPE_NOTIFY_FORK: 11,
ES_EVENT_TYPE_NOTIFY_CLOSE: 12,
ES_EVENT_TYPE_NOTIFY_CREATE: 13,
ES_EVENT_TYPE_NOTIFY_EXCHANGEDATA: 14,
ES_EVENT_TYPE_NOTIFY_EXIT: 15,
ES_EVENT_TYPE_NOTIFY_GET_TASK: 16,
ES_EVENT_TYPE_NOTIFY_KEXTLOAD: 17,
ES_EVENT_TYPE_NOTIFY_KEXTUNLOAD: 18,
ES_EVENT_TYPE_NOTIFY_LINK: 19,
ES_EVENT_TYPE_NOTIFY_MMAP: 20,
ES_EVENT_TYPE_NOTIFY_MPROTECT: 21,
ES_EVENT_TYPE_NOTIFY_MOUNT: 22,
ES_EVENT_TYPE_NOTIFY_UNMOUNT: 23,
ES_EVENT_TYPE_NOTIFY_IOKIT_OPEN: 24,
ES_EVENT_TYPE_NOTIFY_RENAME: 25,
ES_EVENT_TYPE_NOTIFY_SETATTRLIST: 26,
ES_EVENT_TYPE_NOTIFY_SETEXTATTR: 27,
ES_EVENT_TYPE_NOTIFY_SETFLAGS: 28,
ES_EVENT_TYPE_NOTIFY_SETMODE: 29,
ES_EVENT_TYPE_NOTIFY_SETOWNER: 30,
ES_EVENT_TYPE_NOTIFY_SIGNAL: 31,
ES_EVENT_TYPE_NOTIFY_UNLINK: 32,
ES_EVENT_TYPE_NOTIFY_WRITE: 33,
ES_EVENT_TYPE_AUTH_FILE_PROVIDER_MATERIALIZE: 34,
ES_EVENT_TYPE_NOTIFY_FILE_PROVIDER_MATERIALIZE: 35,
ES_EVENT_TYPE_AUTH_FILE_PROVIDER_UPDATE: 36,
ES_EVENT_TYPE_NOTIFY_FILE_PROVIDER_UPDATE: 37,
ES_EVENT_TYPE_AUTH_READLINK: 38,
ES_EVENT_TYPE_NOTIFY_READLINK: 39,
ES_EVENT_TYPE_AUTH_TRUNCATE: 40,
ES_EVENT_TYPE_NOTIFY_TRUNCATE: 41,
ES_EVENT_TYPE_AUTH_LINK: 42,
ES_EVENT_TYPE_NOTIFY_LOOKUP: 43,
ES_EVENT_TYPE_AUTH_CREATE: 44,
ES_EVENT_TYPE_AUTH_SETATTRLIST: 45,
ES_EVENT_TYPE_AUTH_SETEXTATTR: 46,
ES_EVENT_TYPE_AUTH_SETFLAGS: 47,
ES_EVENT_TYPE_AUTH_SETMODE: 48,
ES_EVENT_TYPE_AUTH_SETOWNER: 49,
ES_EVENT_TYPE_AUTH_CHDIR: 50,
ES_EVENT_TYPE_NOTIFY_CHDIR: 51,
ES_EVENT_TYPE_AUTH_GETATTRLIST: 52,
ES_EVENT_TYPE_NOTIFY_GETATTRLIST: 53,
ES_EVENT_TYPE_NOTIFY_STAT: 54,
ES_EVENT_TYPE_NOTIFY_ACCESS: 55,
ES_EVENT_TYPE_AUTH_CHROOT: 56,
ES_EVENT_TYPE_NOTIFY_CHROOT: 57,
ES_EVENT_TYPE_AUTH_UTIMES: 58,
ES_EVENT_TYPE_NOTIFY_UTIMES: 59,
ES_EVENT_TYPE_AUTH_CLONE: 60,
ES_EVENT_TYPE_NOTIFY_CLONE: 61,
ES_EVENT_TYPE_NOTIFY_FCNTL: 62,
ES_EVENT_TYPE_AUTH_GETEXTATTR: 63,
ES_EVENT_TYPE_NOTIFY_GETEXTATTR: 64,
ES_EVENT_TYPE_AUTH_LISTEXTATTR: 65,
ES_EVENT_TYPE_NOTIFY_LISTEXTATTR: 66,
ES_EVENT_TYPE_AUTH_READDIR: 67,
ES_EVENT_TYPE_NOTIFY_READDIR: 68,
ES_EVENT_TYPE_AUTH_DELETEEXTATTR: 69,
ES_EVENT_TYPE_NOTIFY_DELETEEXTATTR: 70,
ES_EVENT_TYPE_AUTH_FSGETPATH: 71,
ES_EVENT_TYPE_NOTIFY_FSGETPATH: 72,
ES_EVENT_TYPE_NOTIFY_DUP: 73,
ES_EVENT_TYPE_AUTH_SETTIME: 74,
ES_EVENT_TYPE_NOTIFY_SETTIME: 75,
ES_EVENT_TYPE_NOTIFY_UIPC_BIND: 76,
ES_EVENT_TYPE_AUTH_UIPC_BIND: 77,
ES_EVENT_TYPE_NOTIFY_UIPC_CONNECT: 78,
ES_EVENT_TYPE_AUTH_UIPC_CONNECT: 79,
ES_EVENT_TYPE_AUTH_EXCHANGEDATA: 80,
ES_EVENT_TYPE_AUTH_SETACL: 81,
ES_EVENT_TYPE_NOTIFY_SETACL: 82,
ES_EVENT_TYPE_NOTIFY_PTY_GRANT: 83,
ES_EVENT_TYPE_NOTIFY_PTY_CLOSE: 84,
ES_EVENT_TYPE_AUTH_PROC_CHECK: 85,
ES_EVENT_TYPE_NOTIFY_PROC_CHECK: 86,
ES_EVENT_TYPE_AUTH_GET_TASK: 87,
ES_EVENT_TYPE_AUTH_SEARCHFS: 88,
ES_EVENT_TYPE_NOTIFY_SEARCHFS: 89,
ES_EVENT_TYPE_AUTH_FCNTL: 90,
ES_EVENT_TYPE_AUTH_IOKIT_OPEN: 91,
ES_EVENT_TYPE_AUTH_PROC_SUSPEND_RESUME: 92,
ES_EVENT_TYPE_NOTIFY_PROC_SUSPEND_RESUME: 93,
ES_EVENT_TYPE_NOTIFY_CS_INVALIDATED: 94,
ES_EVENT_TYPE_NOTIFY_GET_TASK_NAME: 95,
ES_EVENT_TYPE_NOTIFY_TRACE: 96,
ES_EVENT_TYPE_NOTIFY_REMOTE_THREAD_CREATE: 97,
ES_EVENT_TYPE_AUTH_REMOUNT: 98,
ES_EVENT_TYPE_NOTIFY_REMOUNT: 99,
ES_EVENT_TYPE_AUTH_GET_TASK_READ: 100,
ES_EVENT_TYPE_NOTIFY_GET_TASK_READ: 101,
ES_EVENT_TYPE_NOTIFY_GET_TASK_INSPECT: 102,
ES_EVENT_TYPE_NOTIFY_SETUID: 103,
ES_EVENT_TYPE_NOTIFY_SETGID: 104,
ES_EVENT_TYPE_NOTIFY_SETEUID: 105,
ES_EVENT_TYPE_NOTIFY_SETEGID: 106,
ES_EVENT_TYPE_NOTIFY_SETREUID: 107,
ES_EVENT_TYPE_NOTIFY_SETREGID: 108,
ES_EVENT_TYPE_AUTH_COPYFILE: 109,
ES_EVENT_TYPE_NOTIFY_COPYFILE: 110,
ES_EVENT_TYPE_NOTIFY_AUTHENTICATION: 111,
ES_EVENT_TYPE_NOTIFY_XP_MALWARE_DETECTED: 112,
ES_EVENT_TYPE_NOTIFY_XP_MALWARE_REMEDIATED: 113,
ES_EVENT_TYPE_NOTIFY_LW_SESSION_LOGIN: 114,
ES_EVENT_TYPE_NOTIFY_LW_SESSION_LOGOUT: 115,
ES_EVENT_TYPE_NOTIFY_LW_SESSION_LOCK: 116,
ES_EVENT_TYPE_NOTIFY_LW_SESSION_UNLOCK: 117,
ES_EVENT_TYPE_NOTIFY_SCREENSHARING_ATTACH: 118,
ES_EVENT_TYPE_NOTIFY_SCREENSHARING_DETACH: 119,
ES_EVENT_TYPE_NOTIFY_OPENSSH_LOGIN: 120,
ES_EVENT_TYPE_NOTIFY_OPENSSH_LOGOUT: 121,
ES_EVENT_TYPE_NOTIFY_LOGIN_LOGIN: 122,
ES_EVENT_TYPE_NOTIFY_LOGIN_LOGOUT: 123,
ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD: 124,
ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_REMOVE: 125,
ES_EVENT_TYPE_NOTIFY_PROFILE_ADD: 126,
ES_EVENT_TYPE_NOTIFY_PROFILE_REMOVE: 127,
ES_EVENT_TYPE_NOTIFY_SU: 128,
ES_EVENT_TYPE_NOTIFY_AUTHORIZATION_PETITION: 129,
ES_EVENT_TYPE_NOTIFY_AUTHORIZATION_JUDGEMENT: 130,
ES_EVENT_TYPE_NOTIFY_SUDO: 131,
ES_EVENT_TYPE_NOTIFY_OD_GROUP_ADD: 132,
ES_EVENT_TYPE_NOTIFY_OD_GROUP_REMOVE: 133,
ES_EVENT_TYPE_NOTIFY_OD_GROUP_SET: 134,
ES_EVENT_TYPE_NOTIFY_OD_MODIFY_PASSWORD: 135,
ES_EVENT_TYPE_NOTIFY_OD_DISABLE_USER: 136,
ES_EVENT_TYPE_NOTIFY_OD_ENABLE_USER: 137,
ES_EVENT_TYPE_NOTIFY_OD_ATTRIBUTE_VALUE_ADD: 138,
ES_EVENT_TYPE_NOTIFY_OD_ATTRIBUTE_VALUE_REMOVE: 139,
ES_EVENT_TYPE_NOTIFY_OD_ATTRIBUTE_SET: 140,
ES_EVENT_TYPE_NOTIFY_OD_CREATE_USER: 141,
ES_EVENT_TYPE_NOTIFY_OD_CREATE_GROUP: 142,
ES_EVENT_TYPE_NOTIFY_OD_DELETE_USER: 143,
ES_EVENT_TYPE_NOTIFY_OD_DELETE_GROUP: 144,
ES_EVENT_TYPE_NOTIFY_XPC_CONNECT: 145,
ES_EVENT_TYPE_LAST: 146
}
const module = Process.getModuleByName("libEndpointSecurity.dylib");
const func = module.getExportByName("es_subscribe");
Interceptor.attach(func, {
onEnter: function (args) {
const event_count = parseInt(Number(args[2]), 10);
const events = args[1];
console.log(`[+] Subscribed to ${event_count} event types:`);
for (let i = 0; i < event_count; i++) {
const event_id = events.add(i * 4).readU32();
const event_name = Object.keys(ES_EVENT_TYPE).find(key => ES_EVENT_TYPE[key] === event_id);
console.log(` ${event_name}`);
}
}
});