MCPcopy Create free account
hub / github.com/Adaptix-Framework/AdaptixC2 / RestoreData

Method RestoreData

AdaptixServer/core/server/server.go:81–180  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

79}
80
81func (ts *Teamserver) RestoreData() {
82 var (
83 ok bool
84 err error
85 )
86
87 ok = ts.DBMS.DatabaseExists()
88 if !ok {
89 return
90 }
91
92 logs.Info("", "Restore data from Database...")
93
94 /// AGENTS
95 countAgents := 0
96 restoreAgents := ts.DBMS.DbAgentAll()
97 for _, agentData := range restoreAgents {
98
99 extenderAgent, err := ts.Extender.ExAgentGetExtender(agentData.Name)
100 if err != nil {
101 logs.Warn(" ", "Failed to get extenderAgent for agent %v (%v): %v", agentData.Id, agentData.Name, err.Error())
102 continue
103 }
104
105 agent := &Agent{
106 Extender: extenderAgent,
107 HostedTunnelData: safe.NewSafeQueue(0x1000),
108 HostedTasks: safe.NewSafeQueue(0x100),
109 HostedTunnelTasks: safe.NewSafeQueue(0x100),
110 RunningTasks: safe.NewMap(),
111 RunningJobs: safe.NewMap(),
112 PivotParent: nil,
113 PivotChilds: safe.NewSlice(),
114 Tick: false,
115 Active: true,
116 }
117
118 if agentData.Mark == "Terminated" {
119 agent.Active = false
120 }
121
122 if agentData.Mark == "" {
123 if !agentData.Async {
124 agentData.Mark = "Disconnect"
125 }
126 }
127
128 agent.SetData(agentData)
129 ts.Agents.Put(agentData.Id, agent)
130
131 packet := CreateSpAgentNew(agentData)
132 ts.TsSyncAllClients(packet)
133
134 ts.TsNotifyAgent(true, agentData)
135
136 countAgents++
137 }
138 logs.Success(" ", "Restored %v agents", countAgents)

Callers 1

StartMethod · 0.95

Implementers 1

TeamserverAdaptixServer/core/server/utils.go

Calls 15

SetDataMethod · 0.95
TsSyncAllClientsMethod · 0.95
TsNotifyAgentMethod · 0.95
TsPivotCreateMethod · 0.95
TsListenerStartMethod · 0.95
CreateSpAgentNewFunction · 0.85
CreateSpListenerEditFunction · 0.85
DatabaseExistsMethod · 0.80
DbAgentAllMethod · 0.80
ExAgentGetExtenderMethod · 0.80
DbPivotAllMethod · 0.80
DbTableCountMethod · 0.80

Tested by

no test coverage detected