Skip to content

Commit 506f1d0

Browse files
authored
Merge pull request #43 from fahadkhan-fk/feature-registry
Windows Registry support
2 parents a892fb4 + 0abe950 commit 506f1d0

File tree

11 files changed

+1585
-0
lines changed

11 files changed

+1585
-0
lines changed

src/api/agents.js

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,3 +265,134 @@ export async function wakeUpWOL(agent_id) {
265265
const { data } = await axios.post(`${baseUrl}/${agent_id}/wol/`);
266266
return data;
267267
}
268+
269+
export async function fetchAgentRegistry(
270+
agent_id,
271+
path,
272+
page = 1,
273+
hiveSearch = false,
274+
) {
275+
try {
276+
const { data } = await axios.get(`${baseUrl}/${agent_id}/registry/`, {
277+
params: { path: `${path}`, page, page_size: hiveSearch ? 100000 : 400 },
278+
});
279+
return data;
280+
} catch (e) {
281+
console.error(e);
282+
throw e;
283+
}
284+
}
285+
286+
export async function deleteRegistryKey(agent_id, path) {
287+
try {
288+
const { data } = await axios.delete(
289+
`${baseUrl}/${agent_id}/registry/delete-key/`,
290+
{
291+
params: { path: `${path}` },
292+
},
293+
);
294+
return data;
295+
} catch (e) {
296+
console.error(e);
297+
}
298+
}
299+
300+
export async function createRegistryKey(agent_id, path) {
301+
try {
302+
const { data } = await axios.post(
303+
`${baseUrl}/${agent_id}/registry/create-key/`,
304+
{ path },
305+
);
306+
return data;
307+
} catch (e) {
308+
console.error(e);
309+
throw e;
310+
}
311+
}
312+
313+
export async function renameRegistryKey(agent_id, old_path, new_path) {
314+
try {
315+
const { data } = await axios.post(
316+
`${baseUrl}/${agent_id}/registry/rename-key/`,
317+
{ old_path, new_path },
318+
);
319+
return data;
320+
} catch (e) {
321+
console.error(e);
322+
throw e;
323+
}
324+
}
325+
326+
export async function deleteRegistryValue(agent_id, path, name) {
327+
try {
328+
const { data } = await axios.delete(
329+
`${baseUrl}/${agent_id}/registry/delete-value/`,
330+
{
331+
params: { path, name },
332+
},
333+
);
334+
return data;
335+
} catch (e) {
336+
console.error("Failed to delete value:", e);
337+
throw e;
338+
}
339+
}
340+
341+
export async function renameRegistryValue(agentId, path, oldName, newName) {
342+
try {
343+
const { data } = await axios.post(
344+
`${baseUrl}/${agentId}/registry/rename-value/`,
345+
{
346+
path,
347+
old_name: oldName,
348+
new_name: newName,
349+
},
350+
);
351+
return data;
352+
} catch (e) {
353+
console.error("Failed to rename value:", e);
354+
throw e;
355+
}
356+
}
357+
358+
export async function modifyRegistryValue(
359+
agentId,
360+
path,
361+
name,
362+
type,
363+
dataValue,
364+
) {
365+
try {
366+
const { data } = await axios.post(
367+
`${baseUrl}/${agentId}/registry/modify-value/`,
368+
{
369+
path,
370+
name,
371+
type,
372+
data: dataValue,
373+
},
374+
);
375+
return data;
376+
} catch (e) {
377+
console.error("Failed to modify registry value:", e);
378+
throw e;
379+
}
380+
}
381+
382+
export async function createRegistryValue(agentId, path, name, type, data) {
383+
const formData = new FormData();
384+
formData.append("path", path);
385+
formData.append("name", name);
386+
formData.append("type", type);
387+
formData.append("data", data);
388+
try {
389+
const { data } = await axios.post(
390+
`${baseUrl}/${agentId}/registry/create-value/`,
391+
formData,
392+
);
393+
return data;
394+
} catch (e) {
395+
console.error("Failed to create registry value:", e);
396+
throw e;
397+
}
398+
}

src/assets/binary_type.png

8.24 KB
Loading

src/assets/string_type.png

7.3 KB
Loading

src/assets/windows-registry.png

1.5 KB
Loading

src/components/accounts/RolesForm.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@
129129
v-model="localRole.can_recover_agents"
130130
label="Recover Agents"
131131
/>
132+
<q-checkbox
133+
v-model="localRole.can_use_registry"
134+
label="Use Registry"
135+
/>
132136
</div>
133137
</q-card-section>
134138
<div class="text-subtitle2">Core</div>
@@ -552,6 +556,7 @@ export default {
552556
// reporting perms
553557
can_view_reports: false,
554558
can_manage_reports: false,
559+
can_use_registry: false,
555560
});
556561
557562
const loading = ref(false);

0 commit comments

Comments
 (0)