[C#] PanelFinder 0.3

Iniciado por BigBear, Agosto 01, 2014, 10:57:11 AM

Tema anterior - Siguiente tema

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

Un simple programa en C# para buscar el panel de admin en una pagina web.

Una imagen :



Los codigos :

Form1.cs

Código: csharp

// 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

// 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Muy bueno Doddy!
Una buena mejora seria poder manejar la lista de URL de los maneles desde un archivo externo para que sea mas simple modificarlo y agregarle mas

Saludos!
ANTRAX


Hola doddy muchisimas gracias por el aporte pero, no le falta el 'Main' de ejecuccion?