diff --git a/package.json b/package.json index 04cb989..720376b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sliver-script", - "version": "1.0.29", + "version": "1.0.30", "description": "TypeScript/JavaScript Sliver client library", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/sliver b/sliver index b3e005d..720a6f6 160000 --- a/sliver +++ b/sliver @@ -1 +1 @@ -Subproject commit b3e005dd431841f864a7168baf78071565bbcd96 +Subproject commit 720a6f6d8a7def019b7774b9dd86d6a20ed04bee diff --git a/src/client.ts b/src/client.ts index 4d3cc7a..89169cf 100644 --- a/src/client.ts +++ b/src/client.ts @@ -757,6 +757,16 @@ export class SliverClient { }); } + deleteImplantBuild(name: string, timeout = TIMEOUT): Promise { + const delReq = new clientpb.DeleteReq(); + delReq.setName(name); + return new Promise((resolve, reject) => { + this.rpc.deleteImplantBuild(delReq, this.deadline(timeout), (err) => { + err ? reject(err) : resolve(); + }); + }); + } + canaries(timeout = TIMEOUT): Promise { return new Promise((resolve, reject) => { this.rpc.canaries(this.empty, this.deadline(timeout), (err, canaries) => { @@ -781,6 +791,16 @@ export class SliverClient { }); } + deleteImplantProfile(name: string, timeout = TIMEOUT): Promise { + const delReq = new clientpb.DeleteReq(); + delReq.setName(name); + return new Promise((resolve, reject) => { + this.rpc.deleteImplantProfile(delReq, this.deadline(timeout), (err) => { + err ? reject(err) : resolve(); + }); + }); + } + // ---- Websites ---- websites(timeout = TIMEOUT): Promise { return new Promise((resolve, reject) => { @@ -823,6 +843,19 @@ export class SliverClient { }); } + websiteUpdateContent(name: string, contents: Map, timeout = TIMEOUT): Promise { + return new Promise((resolve, reject) => { + const addContent = new clientpb.WebsiteAddContent(); + addContent.setName(name); + contents.forEach((value, key) => { + addContent.getContentsMap().set(key, value); + }); + this.rpc.websiteUpdateContent(addContent, this.deadline(timeout), (err, website) => { + err ? reject(err) : resolve(website); + }); + }); + } + websiteRemoveContent(name: string, paths: string[], timeout = TIMEOUT): Promise { return new Promise((resolve, reject) => { const rm = new clientpb.WebsiteRemoveContent(); diff --git a/src/events/index.ts b/src/events/index.ts index 6a9588d..25316d6 100644 --- a/src/events/index.ts +++ b/src/events/index.ts @@ -8,5 +8,6 @@ export enum Events { JobStarted = 'job-started', JobStopped = 'job-stopped', BuildCompleted = 'build-completed', - Profile = 'profile' + Profile = 'profile', + Website = 'website' }; \ No newline at end of file