https://github.com/enkomio/AlanFramework A C2 post-exploitation framework
Alan Framework
Alan Framework is a post-exploitation framework useful during red-team activities.
If you find my tool useful, please consider to sponsor me .
⚠ ⚠ ⚠ Disclaimer ⚠ ⚠ ⚠
The creation of this kind of software has always caused controversies. If you wonder why I decided to create this tool is because I'm convinced that the ultimate learning experience is implementing what you learned. During the reverse engineering process, many small details are overlooked. Little by little, these details prevent the researcher from having a complete picture of what is going on. Finally, I'm a programmer first, and I love to develop this kind of program :)
Download
Download Alan C2 Framework
Notable Features
You can run your preferred tool directly in-memory
JavaScript script execution (in-memory without third party dependency)
Fully compliant SOCKS5 proxy
Supported agent types: Powershell (x86/x64), DLL (x86/x64), Executable (x86/x64), Shellcode (x86/x64)
Server.exe can be executed in Linux (via dotnet core)
The network communication is fully encrypted with a session key not recoverable from the agent binary or from a traffic dump
Communication performed via HTTP/HTTPS
No external dependencies or libraries need to be installed
A powerful command shell
The agent configuration can be updated on the fly (you can change port and protocol too)
Documentation:
Blog posts
For more information on its usage please read the documentation .
Videos:
Demo videos
Alan v7.0.514.10 - SOCKS5 Proxy
Alan v6.0.511.28 - JS Execution
Alan v5.0.509.20 - In-Memory Execution
Alan v4.0.0 - x64 Agent && Inject
Alan v3.0.0 - Misc Commands
Alan v2.0.500.23
Alan v1.0.0
Changelog
v7.0.514.10 - 15/05/2022
Implemented proxy
command for pivoting
The info
and info++
commands display if the agent is using a proxy
Fixed bug on network communication (Issue 2)
Fixed error in PE loader when function are import via ordinal
Fixed JS module causing memory free ahead of time
Fixed error in run
command that cause the &
option to not work
The log messages are now saved to file alan.log
All the generated output and user input is logged to an evidence file inside the evidences
folder
Added machine ID information to info
command
Added Vanilla
package type for agent creation. This allows a better integration of custom packer.
v6.0.511.28 24/02/2022
x86/x64 PE loaders modified to update the PEB->Ldr field. This allows the system to call DLL_PROCESS_DETACH on the injected DLL.
Increase max response size to 1GB. This fix the download of big files.
Added agent expiration date to the configuration.
The run
was extended to support the execution of Javascript files.
info++
command now shows the Volume label and the FS type.
v5.0.509.20 - 13/12/2021
Implemented run
command
Implemented kill
command
Implemented exec
command
Removed inject
message since it can be achieved with the run
command in background
Created stager and PE loader to make the agent stealthier. Each generated agent file has a different hash
Improved code injection to bypass Dynamic Code Policy Mitigation
It is now possible to specify the agent file name to create during the wizard
Fixed error in upload
and download
commands
Fixed error in shell creation. The command shell process token did not have the same agent integrity level
Removed exported function from DLL agent artifact
Added current working directory to info
command
Extended shell
command to execute a single command
v4.0.0 - 26/09/2021
Added inject
command. This command allows the operator to inject code into a remote process
Added sleep
command performed in short sleep of 400 msec each.
Introduced Jitter concept in sleep
Ported agent to x64 bit (included PE32+ loader)
Fixed errors in x86 PE loader
.NET agent runner is now executed in a stealthier way to avoid detection
It is now possible to specify a custom Web server in the HTTP/S listener response
Removed command listeners
since superfluous
Improved info
command with more information
Error message are more explanatory
Added information on process token type (elevated or not)
Added information on process token privileges
Added information on process token groups
v3.0.0 - 15/05/2021
Renamed agent shell quit
command to exit
Implemented agent migration via migrate
command
Fixed error in retrieving OS version
Added DLL as agent format in the creation wizard.
Implemented ps
command to list the currently running processes
Implemented download
command to locally download a file or an entire directory
Implemented upload
command to upload files to the compromised host
Implemented SuccessRequest
as HTTP server response option to customize the http/s listener response
Implemented ErrorRequest
to customize the http/s listener response for bad requests
Implemented prepend
and append
as HTTP server request option to specify in the agent prof
v2.0.500.23 - 20/03/2021
Implemented agent detach
command to temporary exit from a joined agent
Implemented shell detach
command to temporary exit from a command shell
Implemented listeners
command to list the available listeners
Implemented HTTPS listener to communicatewith the agent via TLS
Implemented get-config
command to download the current agent configuration
Implemented update
command to update the agent configuration
Windows7 is now supported
v1.0.0 - 22/02/2021