Hace tiempo que uso FileZilla FTP Client y lo cierto es que estoy bastante contento con él. Sin embargo ayer tuve que acceder desde otro ordenador a uno de mis FTPs habituales… y no recordaba la contraseña.
Se me ocurrió echar un vistazo al cifrado que usa FileZilla para las contraseñas almacenada y me llevé una gran sorpresa al descubrir ¡que no usaba ninguno!
El fichero en cuestión está en %APPDATA%\FileZilla\sitemanager.xml y por si estáis muy vagos, aquí os dejo el código que realiza un listado de todas las cuentas existentes y también un mandato PowerShell y Bash que hacen casi lo mismo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml.Linq;
namespace FileZillaPasswordRevealer
{
class Revealer
{
private Revealer()
{
if (SiteManagerIsPresent())
PrintResults(ParseSiteManager());
}
private void PrintResults(dynamic results)
{
foreach (var result in results)
Console.WriteLine("**********************\n" +
"Host = {0}\n" +
"User = {1}\n" +
"Password = {2}\n" +
"**********************\n",
result.Host, result.User, result.Password);
}
private dynamic ParseSiteManager()
{
XDocument doc = XDocument.Load(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\FileZilla\sitemanager.xml");
return from x in doc.Descendants("Server")
select new
{
User = x.Descendants("User").SingleOrDefault().Value,
Password = x.Descendants("Pass").SingleOrDefault().Value,
Host = x.Descendants("Host").SingleOrDefault().Value
};
}
private bool SiteManagerIsPresent()
{
var folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
return File.Exists(folder + @"\FileZilla\sitemanager.xml");
}
static void Main(string[] args)
{
new Revealer();
}
}
}
PowerShell:
more $HOME\AppData\Roaming\FileZilla\sitemanager.xml | select-string "Host>|User>|Pass>"
Bash:
less $HOME/.filezilla/sitemanager.xml | egrep '(User>|Pass>|Host>)'
¡Quién lo iba a pensar de un programa que maneja cifrados, certificados y movidas así! Está bien saberlo…
I’m simply interested to learn, have you undertaken any sort of unique optimization for the images? They are really smoking speedy to render. Or is it’s only that you’ve a very powerful internet hosting service. In any case, let me tell you it makes a huge difference on my sluggish connection. Many thanks.