mirror of
https://github.com/Aryma-f4/Ares-mythic.git
synced 2026-06-24 01:14:13 +00:00
Compare commits
4 Commits
286accf271
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dfb7ea177c | ||
|
|
0c209d7201 | ||
|
|
b88b3a2184 | ||
|
|
6a3bf4ffbf |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@ __pycache__/
|
|||||||
**/*.dll
|
**/*.dll
|
||||||
# Sphinx documentation
|
# Sphinx documentation
|
||||||
docs/_build/
|
docs/_build/
|
||||||
|
debug_vps/
|
||||||
# Environments
|
# Environments
|
||||||
#.env
|
#.env
|
||||||
.venv
|
.venv
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ RUN /venv/bin/python -m pip install git+https://github.com/MEhrn00/donut.git@v2.
|
|||||||
COPY [".", "."]
|
COPY [".", "."]
|
||||||
|
|
||||||
# fetch all dependencies
|
# fetch all dependencies
|
||||||
RUN cd ares/agent_code && dotnet restore --verbosity quiet && rm donut ; cp /donut donut
|
RUN chmod -R u+w /Mythic/ares/agent_code && \
|
||||||
|
cd ares/agent_code && \
|
||||||
|
dotnet restore Ares/Ares.csproj --verbosity quiet && \
|
||||||
|
rm -f donut && \
|
||||||
|
cp /donut donut
|
||||||
RUN cd ares/agent_code && cp COFFLoader.dll /COFFLoader.dll
|
RUN cd ares/agent_code && cp COFFLoader.dll /COFFLoader.dll
|
||||||
|
|
||||||
CMD ["bash", "-c", "cp /donut /Mythic/ares/agent_code/donut && /venv/bin/python main.py"]
|
CMD ["bash", "-c", "cp /donut /Mythic/ares/agent_code/donut && /venv/bin/python main.py"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net451</TargetFramework>
|
<TargetFramework>net451</TargetFramework>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
@@ -10,14 +10,14 @@
|
|||||||
<Platforms>AnyCPU;x64;x86</Platforms>
|
<Platforms>AnyCPU;x64;x86</Platforms>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System.Management.Automation">
|
|
||||||
<HintPath>..\packages\System.Management.Automation6.1.7\System.Management.Automation.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\AresInterop\AresInterop.csproj" />
|
<ProjectReference Include="..\AresInterop\AresInterop.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Remove="powershell.cs" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Costura.Fody" Version="5.7.0" PrivateAssets="All" />
|
<PackageReference Include="Costura.Fody" Version="5.7.0" PrivateAssets="All" />
|
||||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||||
@@ -27,4 +27,4 @@
|
|||||||
<PackageReference Include="System.DirectoryServices" Version="4.5.0" />
|
<PackageReference Include="System.DirectoryServices" Version="4.5.0" />
|
||||||
<PackageReference Include="System.Management" Version="4.5.0" />
|
<PackageReference Include="System.Management" Version="4.5.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
<TargetFramework>net451</TargetFramework>
|
<TargetFramework>net451</TargetFramework>
|
||||||
<LangVersion>12</LangVersion>
|
<LangVersion>12</LangVersion>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||||
|
<WarningsAsErrors></WarningsAsErrors>
|
||||||
|
<WarningsNotAsErrors>$(WarningsNotAsErrors);0108;0168;0169;0219;0649;8600;8602;8603;8618;8625;8629</WarningsNotAsErrors>
|
||||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||||
<Platforms>AnyCPU;x64;x86</Platforms>
|
<Platforms>AnyCPU;x64;x86</Platforms>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ class Ares(PayloadType):
|
|||||||
supported_os = [
|
supported_os = [
|
||||||
SupportedOS.Windows
|
SupportedOS.Windows
|
||||||
]
|
]
|
||||||
semver = "2.4.12"
|
semver = "2.4.12-v5"
|
||||||
description = "Ares Windows payload type for Mythic."
|
description = "Ares Windows payload type for Mythic."
|
||||||
wrapper = False
|
wrapper = False
|
||||||
wrapped_payloads = ["scarecrow_wrapper", "service_wrapper"]
|
wrapped_payloads = ["scarecrow_wrapper", "service_wrapper"]
|
||||||
@@ -648,18 +648,52 @@ NOTE: v2.3.2+ uses a different BOF loader than v2.3.1 and they are not compatibl
|
|||||||
StepSuccess=True
|
StepSuccess=True
|
||||||
))
|
))
|
||||||
resp.status = BuildStatus.Success
|
resp.status = BuildStatus.Success
|
||||||
|
missing_optional_artifacts = []
|
||||||
|
|
||||||
|
def move_first_existing(candidates, target_path, required=False):
|
||||||
|
for candidate in candidates:
|
||||||
|
if os.path.exists(candidate):
|
||||||
|
shutil.move(candidate, target_path)
|
||||||
|
return True
|
||||||
|
if required:
|
||||||
|
raise FileNotFoundError(f"Unable to locate artifact for {target_path}: {candidates}")
|
||||||
|
missing_optional_artifacts.append((target_path, candidates))
|
||||||
|
return False
|
||||||
|
|
||||||
targetExeAsmPath = "/srv/ExecuteAssembly.exe"
|
targetExeAsmPath = "/srv/ExecuteAssembly.exe"
|
||||||
targetPowerPickPath = "/srv/PowerShellHost.exe"
|
targetPowerPickPath = "/srv/PowerShellHost.exe"
|
||||||
targetScreenshotInjectPath = "/srv/ScreenshotInject.exe"
|
targetScreenshotInjectPath = "/srv/ScreenshotInject.exe"
|
||||||
targetKeylogInjectPath = "/srv/KeylogInject.exe"
|
targetKeylogInjectPath = "/srv/KeylogInject.exe"
|
||||||
targetExecutePEPath = "/srv/ExecutePE.exe"
|
targetExecutePEPath = "/srv/ExecutePE.exe"
|
||||||
targetInteropPath = "/srv/AresInterop.dll"
|
targetInteropPath = "/srv/AresInterop.dll"
|
||||||
shutil.move(f"{agent_build_path.name}/{buildPath}/ExecuteAssembly.exe", targetExeAsmPath)
|
move_first_existing([
|
||||||
shutil.move(f"{agent_build_path.name}/{buildPath}/PowerShellHost.exe", targetPowerPickPath)
|
f"{agent_build_path.name}/{buildPath}/ExecuteAssembly.exe",
|
||||||
shutil.move(f"{agent_build_path.name}/{buildPath}/ScreenshotInject.exe", targetScreenshotInjectPath)
|
f"{agent_build_path.name}/ExecuteAssembly/bin/Release/net451/ExecuteAssembly.exe",
|
||||||
shutil.move(f"{agent_build_path.name}/{buildPath}/KeylogInject.exe", targetKeylogInjectPath)
|
], targetExeAsmPath)
|
||||||
shutil.move(f"{agent_build_path.name}/{buildPath}/ExecutePE.exe", targetExecutePEPath)
|
move_first_existing([
|
||||||
shutil.move(f"{agent_build_path.name}/{buildPath}/AresInterop.dll", targetInteropPath)
|
f"{agent_build_path.name}/{buildPath}/PowerShellHost.exe",
|
||||||
|
f"{agent_build_path.name}/PowerShellHost/bin/Release/net451/PowerShellHost.exe",
|
||||||
|
], targetPowerPickPath)
|
||||||
|
move_first_existing([
|
||||||
|
f"{agent_build_path.name}/{buildPath}/ScreenshotInject.exe",
|
||||||
|
f"{agent_build_path.name}/ScreenshotInject/bin/Release/net451/ScreenshotInject.exe",
|
||||||
|
], targetScreenshotInjectPath)
|
||||||
|
move_first_existing([
|
||||||
|
f"{agent_build_path.name}/{buildPath}/KeylogInject.exe",
|
||||||
|
f"{agent_build_path.name}/KeylogInject/bin/Release/net451/KeylogInject.exe",
|
||||||
|
], targetKeylogInjectPath)
|
||||||
|
move_first_existing([
|
||||||
|
f"{agent_build_path.name}/{buildPath}/ExecutePE.exe",
|
||||||
|
f"{agent_build_path.name}/ExecutePE/bin/Release/net451/ExecutePE.exe",
|
||||||
|
], targetExecutePEPath)
|
||||||
|
move_first_existing([
|
||||||
|
f"{agent_build_path.name}/{buildPath}/AresInterop.dll",
|
||||||
|
f"{agent_build_path.name}/AresInterop/bin/Release/net451/AresInterop.dll",
|
||||||
|
], targetInteropPath)
|
||||||
|
if missing_optional_artifacts:
|
||||||
|
stdout_err += "\nOptional helper artifacts were not packaged:\n" + "\n".join(
|
||||||
|
f"{target}: {candidates}" for target, candidates in missing_optional_artifacts
|
||||||
|
)
|
||||||
if self.get_parameter('output_type') == "Source":
|
if self.get_parameter('output_type') == "Source":
|
||||||
shutil.make_archive(f"/tmp/{agent_build_path.name}/source", "zip", f"{agent_build_path.name}")
|
shutil.make_archive(f"/tmp/{agent_build_path.name}/source", "zip", f"{agent_build_path.name}")
|
||||||
await SendMythicRPCPayloadUpdatebuildStep(MythicRPCPayloadUpdateBuildStepMessage(
|
await SendMythicRPCPayloadUpdatebuildStep(MythicRPCPayloadUpdateBuildStepMessage(
|
||||||
|
|||||||
BIN
agent_icons/XF-09_Ares.png
Normal file
BIN
agent_icons/XF-09_Ares.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
3
agent_icons/ares.svg
Normal file
3
agent_icons/ares.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="218" height="250" viewBox="0 0 218 250">
|
||||||
|
<image href="/static/XF-09_Ares.png" width="218" height="250" preserveAspectRatio="xMidYMid meet" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 198 B |
3
agent_icons/ares_dark.svg
Normal file
3
agent_icons/ares_dark.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="218" height="250" viewBox="0 0 218 250">
|
||||||
|
<image href="/static/XF-09_Ares.png" width="218" height="250" preserveAspectRatio="xMidYMid meet" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 198 B |
3
agent_icons/ares_light.svg
Normal file
3
agent_icons/ares_light.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="218" height="250" viewBox="0 0 218 250">
|
||||||
|
<image href="/static/XF-09_Ares.png" width="218" height="250" preserveAspectRatio="xMidYMid meet" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 198 B |
@@ -4,5 +4,5 @@
|
|||||||
"exclude_documentation_payload": false,
|
"exclude_documentation_payload": false,
|
||||||
"exclude_documentation_c2": false,
|
"exclude_documentation_c2": false,
|
||||||
"exclude_agent_icons": false,
|
"exclude_agent_icons": false,
|
||||||
"remote_images": {"ares" :"ghcr.io/aryma-f4/ares-mythic:multiarch-fixed-v3"}
|
"remote_images": {"ares" :"ghcr.io/aryma-f4/ares-mythic:amd64-fixed-v5"}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ chapter = true
|
|||||||
weight = 100
|
weight = 100
|
||||||
+++
|
+++
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
|
|||||||
3
documentation-payload/ares/ares_dark.svg
Normal file
3
documentation-payload/ares/ares_dark.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 18 KiB |
3
documentation-payload/ares/ares_light.svg
Normal file
3
documentation-payload/ares/ares_light.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 18 KiB |
@@ -5,7 +5,7 @@ weight = 15
|
|||||||
pre = "<b>2. </b>"
|
pre = "<b>2. </b>"
|
||||||
+++
|
+++
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user