Implemented agent registration to match new binary structure instead of json.
This commit is contained in:
@@ -3,12 +3,12 @@ import terminal, strformat, strutils, tables, times, system, osproc, streams
|
||||
import ../utils
|
||||
import ../task/dispatcher
|
||||
import ../db/database
|
||||
import ../../common/types
|
||||
import ../../common/[types, utils]
|
||||
|
||||
# Utility functions
|
||||
proc addMultiple*(cq: Conquest, agents: seq[Agent]) =
|
||||
for a in agents:
|
||||
cq.agents[a.name] = a
|
||||
cq.agents[a.agentId] = a
|
||||
|
||||
proc delAgent*(cq: Conquest, agentName: string) =
|
||||
cq.agents.del(agentName)
|
||||
@@ -65,8 +65,8 @@ proc agentInfo*(cq: Conquest, name: string) =
|
||||
|
||||
# TODO: Improve formatting
|
||||
cq.writeLine(fmt"""
|
||||
Agent name (UUID): {agent.name}
|
||||
Connected to listener: {agent.listener}
|
||||
Agent name (UUID): {agent.agentId}
|
||||
Connected to listener: {agent.listenerId}
|
||||
──────────────────────────────────────────
|
||||
Username: {agent.username}
|
||||
Hostname: {agent.hostname}
|
||||
@@ -113,9 +113,9 @@ proc agentInteract*(cq: Conquest, name: string) =
|
||||
var command: string = ""
|
||||
|
||||
# Change prompt indicator to show agent interaction
|
||||
cq.setIndicator(fmt"[{agent.name}]> ")
|
||||
cq.setIndicator(fmt"[{agent.agentId}]> ")
|
||||
cq.setStatusBar(@[("[mode]", "interact"), ("[username]", fmt"{agent.username}"), ("[hostname]", fmt"{agent.hostname}"), ("[ip]", fmt"{agent.ip}"), ("[domain]", fmt"{agent.domain}")])
|
||||
cq.writeLine(fgYellow, styleBright, "[+] ", resetStyle, fmt"Started interacting with agent ", fgYellow, styleBright, agent.name, resetStyle, ". Type 'help' to list available commands.\n")
|
||||
cq.writeLine(fgYellow, styleBright, "[+] ", resetStyle, fmt"Started interacting with agent ", fgYellow, styleBright, agent.agentId, resetStyle, ". Type 'help' to list available commands.\n")
|
||||
cq.interactAgent = agent
|
||||
|
||||
while command.replace(" ", "") != "back":
|
||||
|
||||
@@ -4,7 +4,7 @@ import prologue
|
||||
import ../utils
|
||||
import ../api/routes
|
||||
import ../db/database
|
||||
import ../../common/types
|
||||
import ../../common/[types, utils]
|
||||
|
||||
# Utility functions
|
||||
proc delListener(cq: Conquest, listenerName: string) =
|
||||
@@ -66,9 +66,9 @@ proc listenerStart*(cq: Conquest, host: string, portStr: string) =
|
||||
var listener = newApp(settings = listenerSettings)
|
||||
|
||||
# Define API endpoints
|
||||
listener.post("{listener}/register", routes.register)
|
||||
listener.post("register", routes.register)
|
||||
listener.get("{listener}/{agent}/tasks", routes.getTasks)
|
||||
listener.post("{listener}/{agent}/{task}/results", routes.postResults)
|
||||
listener.post("results", routes.postResults)
|
||||
listener.registerErrorHandler(Http404, routes.error404)
|
||||
|
||||
# Store listener in database
|
||||
@@ -99,9 +99,9 @@ proc restartListeners*(cq: Conquest) =
|
||||
listener = newApp(settings = settings)
|
||||
|
||||
# Define API endpoints
|
||||
listener.post("{listener}/register", routes.register)
|
||||
listener.post("register", routes.register)
|
||||
listener.get("{listener}/{agent}/tasks", routes.getTasks)
|
||||
listener.post("{listener}/{agent}/{task}/results", routes.postResults)
|
||||
listener.post("results", routes.postResults)
|
||||
listener.registerErrorHandler(Http404, routes.error404)
|
||||
|
||||
try:
|
||||
|
||||
@@ -4,7 +4,7 @@ import strutils, strformat, times, system, tables
|
||||
import ./[agent, listener]
|
||||
import ../[globals, utils]
|
||||
import ../db/database
|
||||
import ../../common/types
|
||||
import ../../common/[types, utils]
|
||||
|
||||
#[
|
||||
Argument parsing
|
||||
|
||||
Reference in New Issue
Block a user