Tuesday, January 19, 2016

Multidimensional Arrays

Creating a bacon cipher with a little twist. Instead of the binary AAAAA and AAAAB I'm just going to use a hash because it's easy.

#include <iostream>
#include <string>

using namespace std;

string bacon[26][2] = {
{"a", "8aca2602792aec6f11a67206531fb7d7f0dff59413145e6973c45001d0087b42d11bc645413aeff63a42391a39145a591a92200d560195e53b478584fdae231a"},{"b", "b0e869f9707a0ceb019795aa8b2c2b06fbee8dc4207da822828b1a1348e9eeb9b38eb12517c150cbce3cd653c09d3314c7dfbf53a54358b97f1d4c0f6b68103f"},
{"c", "52897b00e528ca357cea0f55b24d657252040d780005764d886023022fda9381db8dcb12361c6b45f9479680ca2a5b46ed0c6b0d565aaccc8ccfa0792dae58b8"},
{"d", "17fd1587a047994607a461d63706d6426456f0ffead460086a25d6f2af357b61d54b4518e0bf9bfbe4b7cbe6b25fa53db4e00bff27c93e75d5b6717bd4e22b27"},
{"e", "ecb88a0ed2b29417d192fd778d783c0e50ad028fb95188b0cb59ae6b9a8322292aa65e3ae9637c39a59cda503253159083fa79ac55a0b7dd62424e39787d977d"},
{"f", "47c7f9b44e004f44f171e082a69cd1385091ec452c69348477c1719f22c73b46e4afe702b33a77dee4a68ae581dba29c85fc90ce7199d1ff2cf03d5183371a18"},
{"g", "c1f390baf43673eab70aba83c6e3012c977a9219b078f7efa4ec92916c40aa99f80f9588b442e49502825fd77cb09873cdb297777f750291fa1f1b199eff2cec"},
{"h", "24fc871e81329c1019c11186642e5937298d10be03010244cf770a7ae306b539f3991b36a5f42f8cf7325f22411bc7a3b14351b42f26335f44786bdbf29c317f"},
{"i", "83b1085993e6be15a0932db4dfd838927679e80e75103e0c62cfcd6019c311b547489154024d9fdf2606c59618ec8f2b8f36b8c03c83ef5c1e4ce30d3396f5e2"},
{"j", "962594088302f9b8a6f8988d7e0fedc9505936a90ed6fe8a7dcae78d183950f6eab1f8dcd8728f6f9cdd7397bcd03894ff91e7de1c2c176b9114484eb3948a45"},
{"k", "18463569b4eab235d43425e1b52d3ca1a8a58301aa8650f9f52ad7230caa714ff679d7c6f7b3f7568eeafc942a67dea8eb3dc82512179b79f0419e479c79bbc8"},
{"l", "42917c6ad38b99a4bf0a616fbe025533b5fce6397059fa7f67e8b891e06b189b2832e2786ef57da05be703b379446474fa0b1b8b536e9c7d6bd8dc91c4960d7d"},
{"m", "b3ad83f44aa1e17af6d2a1b14c38c279681910b910af21cb04f3f23e83ef7966fb9f374199fc4a617449b5c5e9e1dfa9b6c4998cbe3dc18a5bd6dab5cd4546e6"},
{"n", "99c4b4d5444c9d4cfdd5f450f2da4e141b40879d46ed1cf2a6fa7e4b898ee70b5b6f8b3ddca07e756f0002bedbd72b14e0c0bea5cf67fc1635fa89f11e59200e"},
{"o", "07e17b52d3e62985c512482c683d10ddb544910aabcd4472e953db4f1a7e48662ddb4751c7e0bb98fe5e0b7f75439e28d474d57c1359060d2322e08f9f8d3c12"},
{"p", "4b3aa8bd3049d423cc311f930fa6f31191c3da6a01f699ce8dd808705258415a52ada559cfc1fb97fc17e54681183a793c9ba84c1e2d127c2829b5a0433d29fb"},
{"q", "05ee70f67fed50f8c5ac896c552b8b6b596a9353e67ae60a74bc112f3c7a5ee6131fd4a164479b263cc8916714d94d8b5026e7856eb5752031ff2c549343e505"},
{"r", "34dd680448b47aeb3593cfa3df71e0115e96634b0e3529dac9333206213452b801e68378ca342022216fc4604548c4c67f78d01ffe5b48d47453c9dca0ba70be"},
{"s", "eb69f836dedc8b0f7d4ffc2dbb5785962067eac2b9e0f62004c0afd0355ea56398597ba31b4abb12f47c2a511995067b2581b28b1b311f28aa770f6390aaba99"},
{"t", "bb80065713e635fad64b78fa7602d320ee6d029dae9421b4a868b3b1ea26aa0bb21cadd3a726a135719fe82d763b40888456e21f507072d967f048486fdc2cdf"},
{"u", "f4ebc060d62cab4e271b6e020e40792fe86b55c2e75974a0d06b04c425442514ab921015f88e1e027901df6795421a7fe7033b745e094cc45ea19815372986e7"},
{"v", "b642b4f803c8dced8bff46e6f721b3d5d986ef8484f59b8a3a819b5c5d744470b94f826107702a72b0a3ee94018f52e04563135a92a8aa0bab8c66411bb0b750"},
{"w", "3a95f5644f3780c4614b01ca517aebcfaf5114164e21814ae42ed031a134b94fc75392121e90a48c3cb8e55a8315e590319d0c43948914a99daf97a945e3df75"},
{"x", "7d6388114687e86ba9a4d2dcaeeb8ec10eb239fbd5b0299fecf6c1355ba6d5c603ae4294bce70a25bead8e7edae742465554abd643b09815d3b168be8bc58a51"},
{"y", "c21f0fa15029137943759b9ee89d59888ecbafe257e09a4975264379a8f11e35cbf79d0215f88c2855932a246559b5d9d048d64e28da1005e45df457688c100e"},
{"z", "714ec62b47c31b0872c20a7896e2065e7ddb5ac9398f1514bb74dabdb513d6855c097a2ac8bf24f495100aba70853aade622bdf0f3a932048109934f0c7c072f"}};



int i;



int main()
{

for (i=0; i<=25; i++)
    cout << bacon[i][i] << endl;
    return 0;
}

Monday, January 18, 2016

Decimal Hexidecimal Counter

If you want a list of numbers and their corresponding hexadecimal values you can do something like this. I'm sure there's a better way to it. Like some digit to hex conversion function. I need to look that up and I'll code something a little more concise for converting hex and decimal numbers. Here's a crude example of a counter that will count in decimal and hexadecimal.

#include <iostream>
#include <string>
using namespace std;

string bungee[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F",};

int a,b,c,d,e,f,g;
int ten=0;

int main()
{

for (a=0; a<=15; a++ ){
    for (b=0; b<=15; b++ ){
        for (c=0; c<=15; c++ ){
            for (d=0; d<=15; d++ ){
                for (e=0; e<=15; e++ ){
                    for (f=0; f<=15; f++ ){
                        for (g=0; g<=15; g++ ){

                    cout << "Hex number "<< bungee[a] << bungee[b] << bungee[c] << bungee[d] << bungee[e] << bungee[f] << bungee[g] << "    Decimal number " << ten << endl;
                        ten++;
                        }
                    }
                }
            }
        }
    }
}
    return 0;
}

Wednesday, January 13, 2016

C++/Qt GUI for Veil-Evasion

I started writing a GUI for veil-evasion. I got pretty far without knowing much Qt. I had done some GUIs work with QML formatting. But not actual Qt programming. I got hung up trying to pass the Qstring to system(). I Googled for a bit and asked around a couple of forums. I think I will have it finished pretty soon. Here's what I have so far.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore>
#include <QtGui>
#include <string>
#include <QString>
#include <QComboBox>



int i;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QStringList payloads;
    payloads << "Select Payload" << "auxiliary/coldwar_wrapper" << "auxiliary/pyinstaller_wrapper" << "c/meterpreter/rev_http" << "c/meterpreter/rev_http_service" << "c/meterpreter/rev_tcp" << "c/meterpreter/rev_tcp_service" << "c/shellcode_inject/flatc" << "cs/meterpreter/rev_http" << "cs/meterpreter/rev_https" << "cs/meterpreter/rev_tcp" << "cs/shellcode_inject/base64_substitution" << "cs/shellcode_inject/virtual" << "go/meterpreter/rev_http" << "go/meterpreter/rev_https" << "go/meterpreter/rev_tcp" << "go/shellcode_inject/virtual" << "native/backdoor_factory" << "native/hyperion" << "native/pe_scrambler" << "powershell/meterpreter/rev_http" << "powershell/meterpreter/rev_https" << "powershell/meterpreter/rev_tcp" << "powershell/shellcode_inject/download_virtual" << "powershell/shellcode_inject/psexec_virtual" << "powershell/shellcode_inject/virtual" << "python/meterpreter/bind_tcp" << "python/meterpreter/rev_http" << "python/meterpreter/rev_http_contained" << "python/meterpreter/rev_https" << "python/meterpreter/rev_https_contained" << "python/meterpreter/rev_tcp" << "python/shellcode_inject/aes_encrypt" << "python/shellcode_inject/aes_encrypt_HTTPKEY_Request" << "python/shellcode_inject/arc_encrypt" << "python/shellcode_inject/base64_substitution" << "python/shellcode_inject/des_encrypt" << "python/shellcode_inject/download_inject" << "python/shellcode_inject/flat" << "python/shellcode_inject/letter_substitution" << "python/shellcode_inject/pidinject" << "ruby/meterpreter/rev_http" << "ruby/meterpreter/rev_http_contained" << "ruby/meterpreter/rev_https" << "ruby/meterpreter/rev_https_contained" << "ruby/meterpreter/rev_tcp" << "ruby/shellcode_inject/flat";

    QStringListModel *model = new QStringListModel();
    model->setStringList(payloads);

    ui->comboBox->setModel(model);

    QStringList encoders;
    encoders << "Select Encoder" << "cmd/echo" << "cmd/generic_sh" << "cmd/ifs" << "cmd/perl" << "cmd/powershell_base64" << "cmd/printf_php_mq" << "generic/eicar" << "mipsbe/byte_xori" << "mipsbe/longxor" << "mipsle/byte_xori" << "mipsle/longxor" << "php/base64" << "ppc/longxor" << "ppc/longxor_tag" << "sparc/longxor_tag" << "x64/xor" << "x86/add_sub" << "x86/alpha_mixed" << "x86/alpha_upper" << "x86/avoid_underscore_tolower" << "x86/avoid_utf8_tolower" << "x86/bloxor" << "x86/call4_dword_xor" << "x86/context_cpuid" << "x86/context_stat" << "x86/context_time" << "x86/countdown" << "x86/fnstenv_mov" << "x86/jmp_call_additive" << "x86/nonalpha" << "x86/nonupper" << "x86/opt_sub" << "x86/shikata_ga_nai" << "x86/single_static_bit" << "x86/unicode_mixed" << "x86/unicode_upper";

    QStringListModel *model1 = new QStringListModel();
    model1->setStringList(encoders);

    ui->comboBox1->setModel(model1);

    QStringList platforms;
    platforms << "Select Platform" << "openbsd" << "javascript" << "bsdi" << "python" << "netbsd" << "nodejs" << "freebsd" << "firefox" << "aix" << "mainframe" << "hpux" << "irix" << "unix" << "php" << "bsd" << "netware" << "osx" << "android" << "java" << "ruby" << "linux" << "cisco" << "solaris" << "windows";

    QStringListModel *model2 = new QStringListModel();
    model2->setStringList(platforms);

    ui->comboBox2->setModel(model2);

    QStringList arch;
    arch << "Select Architecture";


    QStringList format;
    format << "Select Format" << "asp" << "aspx" << "aspx-exe" << "dll" << "elf" << "elf-so" << "exe" << "exe-only" << "exe-service" << "exe-small" << "hta-psh" << "loop-vbs" << "macho" << "msi" << "msi-nouac" << "osx-app" << "psh" << "psh-net" << "psh-reflection" << "psh-cmd" << "vba" << "vba-exe" << "vba-psh" << "vbs" << "war" << "bash" << "c" << "csharp" << "dw" << "dword" << "pl" << "powershell" << "ps1" << "py" << "python" << "raw" << "rb" << "ruby" << "sh" << "vbapplication" << "vbscript";

    QStringListModel *model4 = new QStringListModel();
    model4->setStringList(format);

    ui->comboBox4->setModel(model4);

    QString var1 = "gnome-terminal -e \"msfvenom --payload \"";

    QString var2;
    var1 = ui->comboBox->currentIndex();
    QString var3;
    var1 = ui->comboBox1->currentIndex();
    QString var4;
    var1 = ui->comboBox2->currentIndex();

    QString command = var1 + " " + var2 + var3 + var4;

}



MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{

    system("");
}

Screenshot of current GUI. Still needs a lot of work. I'm in the habbit of blogging things and saving my code online in just in case.


Thursday, January 7, 2016

Creating A Random Directory on Linux with C

I got a bit of help with this Someone on Hak5. There's have also been examples of Ruby and Perl posted.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#define RANDOM_STRING_LENGTH 23
#define MAXIMUM_ALPHABET_LENGTH 255

int main(int argc, char** argv) {
    char alphabet[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    char randomString[RANDOM_STRING_LENGTH + 1];
    char str[RANDOM_STRING_LENGTH];
    int i;
    int alphabetLength;
    alphabetLength = strnlen(alphabet, MAXIMUM_ALPHABET_LENGTH);

    srand(time(NULL));

    for (i = 0; i < RANDOM_STRING_LENGTH; i++) {
        randomString[i] = alphabet[rand() % alphabetLength];
    }

    randomString[i] = '\0';

  char cmd[29];
  strcpy (cmd,"mkdir ");
  strcat (cmd,randomString);

system( cmd );


    return EXIT_SUCCESS;
}

Random string generator C++

I wrote same function in C++ that I had written in BASIC to create a random string.

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <sstream>
using namespace std;

string a;
string b;
string c;
string d;
string e;
string f;
string g;
string h;
string i;
string j;
string k;
string l;
string m;
string n;
string o;
string p;
string q;
int RandomNumber1;
int RandomNumber2;
int RandomNumber3;
int RandomNumber4;
int RandomNumber5;
int RandomNumber6;
int RandomNumber7;
int RandomNumber8;
int RandomNumber9;
int RandomNumber10;
int RandomNumber11;
int RandomNumber12;
int RandomNumber13;
int RandomNumber14;
int RandomNumber15;
int RandomNumber16;
int RandomNumber17;


string AlphaRandom[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
int main()
{

srand(time(0));

RandomNumber1 = rand() % 51 + 0;
string a = AlphaRandom[RandomNumber1];

RandomNumber2 = rand() % 51 + 0;
string b = AlphaRandom[RandomNumber2];

RandomNumber3= rand() % 51 + 0;
string c = AlphaRandom[RandomNumber3];

RandomNumber4= rand() % 51 + 0;
string d = AlphaRandom[RandomNumber4];

RandomNumber5= rand() % 51 + 0;
string e = AlphaRandom[RandomNumber5];

RandomNumber6= rand() % 51 + 0;
string f = AlphaRandom[RandomNumber6];

RandomNumber7= rand() % 51 + 0;
string g = AlphaRandom[RandomNumber7];

RandomNumber8= rand() % 51 + 0;
string h = AlphaRandom[RandomNumber8];

RandomNumber9= rand() % 51 + 0;
string i = AlphaRandom[RandomNumber9];

RandomNumber10= rand() % 51 + 0;
string j = AlphaRandom[RandomNumber10];

RandomNumber11= rand() % 51 + 0;
string k = AlphaRandom[RandomNumber11];

RandomNumber12= rand() % 51 + 0;
string l = AlphaRandom[RandomNumber12];

RandomNumber13= rand() % 51 + 0;
string m = AlphaRandom[RandomNumber13];

RandomNumber14= rand() % 51 + 0;
string n = AlphaRandom[RandomNumber14];

RandomNumber15= rand() % 51 + 0;
string o = AlphaRandom[RandomNumber15];

RandomNumber16= rand() % 51 + 0;
string p = AlphaRandom[RandomNumber16];

RandomNumber17= rand() % 51 + 0;
string q = AlphaRandom[RandomNumber17];

std::string s = static_cast<std::ostringstream&>(std::ostringstream().seekp(0) << a << b << c << d << e << f << g << h << i << j << k << l << m << n << o << p << q).str();

cout << s;
    return 0;
}

Wednesday, January 6, 2016

Random Strings in Visual BASIC

Taking  break from C++ for just a minute and writing a random string generator in Visual BASIC. You'll notice the style of my code in C++ is fairly linear. The reason for this is I first learned to code in BASIC.

Module Module1

    Sub Main()
        'string variables for each character of the random string

        ' string array from which to derive our random strings
        Dim StringArray() As String = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
        ' random number will be the number of the array index
        Dim RandomInteger As Integer
        'string from array each indexf the array as called
        Dim String1 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String1 = StringArray(RandomInteger)

        Dim String2 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String2 = StringArray(RandomInteger)

        Dim String3 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String3 = StringArray(RandomInteger)

        Dim String4 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String4 = StringArray(RandomInteger)

        Dim String5 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String5 = StringArray(RandomInteger)

        Dim String6 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String6 = StringArray(RandomInteger)

        Dim String7 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String7 = StringArray(RandomInteger)

        Dim String8 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String8 = StringArray(RandomInteger)

        Dim String9 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String9 = StringArray(RandomInteger)

        Dim String10 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String10 = StringArray(RandomInteger)

        Dim String11 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String11 = StringArray(RandomInteger)

        Dim String12 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String12 = StringArray(RandomInteger)

        Dim String13 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String13 = StringArray(RandomInteger)

        Dim String14 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String14 = StringArray(RandomInteger)

        Dim String15 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String15 = StringArray(RandomInteger)

        Dim String16 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String16 = StringArray(RandomInteger)

        Dim String17 As String
        Randomize()
        RandomInteger = Int(Rnd() * 51)
        String17 = StringArray(RandomInteger)

        Dim Str1 As String = String1 & String2 & String3 & String4 & String5 & String6 & String7 & String8 & String9 & String10 & String11 & String12 & String13 & String14 & String15 & String16 & String17

        Console.WriteLine(Str1)

    End Sub

End Module