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 :
El codigo :
Si lo quieren bajar lo pueden hacer de aca.
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 :
El codigo :
Código:
// ClapTrap IRC Bot 0.5
// (C) Doddy Hackman 2014
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Text.RegularExpressions;
namespace claptrap
{
class Program
{
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 NetworkStream conexion;
static TcpClient irc;
static StreamReader leer_datos;
static StreamWriter mandar_datos;
static int timeout_por_mensaje = 3 * 1000;
static void Main(string[] args)
{
funciones_claptrap claptrap = new funciones_claptrap();
printear_logo("\n-- == ClapTrap IRC Bot 0.5 == --\n\n");
string host = print_form("[+] Hostname : ");
string port = print_form("\n[+] Port : ");
string canal = print_form("\n[+] Channel : ");
string nickname = "ClapTrap";
string jebus = print_form("\n[+] Nickname Admin : ");
string code = "";
try
{
irc = new TcpClient(host, Convert.ToInt32(port));
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_especial("\n[+] Online");
}
catch
{
printear_especial("\n[-] Error connecting");
}
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, ":(.*)!(.*) PRIVMSG (.*) :(.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string dedonde = regex.Groups[1].Value;
string mensaje = regex.Groups[4].Value;
if (dedonde != canal)
{
if (dedonde == jebus)
{
//
regex = Regex.Match(mensaje, "!sqli (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_sqliscanner(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
//
regex = Regex.Match(mensaje, "!lfi (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_lfi(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!panel (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_panelfinder(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!fuzzdns (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_fuzzdns(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!locateip (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_locateip(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!sqlifinder (.*) (.*) (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
string arg2 = regex.Groups[2].Value;
string arg3 = regex.Groups[3].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_findsqli(arg1,arg3,arg3);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!rfifinder (.*) (.*) (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
string arg2 = regex.Groups[2].Value;
string arg3 = regex.Groups[3].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_findrfi(arg1, arg3, arg3);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!crackit (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_md5cracker(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!tinyurl (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_tinyurl(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!httpfinger (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string codenow = claptrap.funcion_httpfinger(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!md5 (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
DH_Tools gen_md5 = new DH_Tools();
string codenow = gen_md5.convertir_md5(arg1);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!base64 (.*) (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
string arg2 = regex.Groups[2].Value;
string codenow = "";
if (arg1 == "encode")
{
codenow = claptrap.base64_encode(arg2);
}
if (arg1 == "decode")
{
codenow = claptrap.base64_decode(arg2);
}
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!ascii (.*) (.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
string arg1 = regex.Groups[1].Value;
string arg2 = regex.Groups[2].Value;
string codenow = "";
if (arg1 == "encode")
{
codenow = claptrap.ascii_encode(arg2);
}
if (arg1 == "decode")
{
codenow = "Error";
}
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Working ...");
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
System.Threading.Thread.Sleep(timeout_por_mensaje);
mandar_datos.WriteLine("PRIVMSG" + " " + dedonde + " " + "[+] Finished");
mandar_datos.Flush();
}
regex = Regex.Match(mensaje, "!help", RegexOptions.IgnoreCase);
if (regex.Success)
{
string codenow = "";
codenow = codenow + "Hi , I am ClapTrap an assistant robot programmed by Doddy Hackman in the year 2014" + "\n";
codenow = codenow + "[++] Commands" + "\n";
codenow = codenow + "[+] !help" + "\n";
codenow = codenow + "[+] !locateip <web>" + "\n";
codenow = codenow + "[+] !sqlifinder <dork> <count pages> <google/bing>" + "\n";
codenow = codenow + "[+] !rfifinder <dork> <count pages> <google/bing>" + "\n";
codenow = codenow + "[+] !panel <page>" + "\n";
codenow = codenow + "[+] !fuzzdns <domain>" + "\n";
codenow = codenow + "[+] !sqli <page>" + "\n";
codenow = codenow + "[+] !lfi <page>" + "\n";
codenow = codenow + "[+] !crackit <hash>" + "\n";
codenow = codenow + "[+] !tinyurl <page>" + "\n";
codenow = codenow + "[+] !httpfinger <page>" + "\n";
codenow = codenow + "[+] !md5 <text>" + "\n";
codenow = codenow + "[+] !base64 <encode/decode> <text>" + "\n";
codenow = codenow + "[+] !ascii <encode/decode> <text>" + "\n";
codenow = codenow + "[+] !hex <encode/decode> <text>" + "\n";
codenow = codenow + "[++] Enjoy this IRC Bot" + "\n";
string[] lineas = codenow.Split('\n');
foreach (string linea in lineas)
{
if (linea != "")
{
mandar_datos.WriteLine("PRIVMSG" + " " + jebus + " " + linea);
mandar_datos.Flush();
System.Threading.Thread.Sleep(timeout_por_mensaje);
}
}
}
}
}
}
}
}
}
}
}
// The End ?