[C#] Clase DH Tools

Iniciado por BigBear, 20 Junio 2014, 16:04 PM

0 Miembros y 1 Visitante están viendo este tema.

BigBear

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");

            }
        }
    }