• STATISTIQUES
  • Il y a eu un total de 0 membres et 47683 visiteurs sur le site dans les dernières 24h pour un total de 47 683 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [FR] WeChall
    Audio: 3, Coding: 11, Cracking: 9, Crypto: 18, Encoding: 11, Exploit: 44, Forensics: 1, Fun: 6, HTTP: 6, Image: 8, Java:...
    Challenges
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Python] Script de protection des fichiers XML de Filezilla
10-01-2012, 22h27 (Modification du message : 19-11-2012, 19h09 par InstinctHack.)
Message : #1
Dobry Hors ligne
Tueur de lamouz
*



Messages : 206
Sujets : 25
Points: 73
Inscription : Aug 2011
[Python] Script de protection des fichiers XML de Filezilla
Bonjour il y a quelque temps j'avais entrepris de protéger les fichiers XML de filezilla car je les trouvais très limite au niveau sécurité (notamment sur Windows, avec les stealers et toute ces merdes, et je parle en connaissances de causes xD).
j'avais abandonnée ce projet à cause de la partie cryptage en C++.
Maintenant, le tool est opérationnel, et la seule difficultée qui persiste, sont les dépendances nécessaire à la compilation, et seul vous pouvez gérer cela.
En effet, car j'ai décidé que pour prévoir une protection optimum (bien que loin d'être maximal, on pouvait directement s'attaquer au code source de la bête).
Le code est le suivant :
Code PHP :
#coding=utf-8


#   ___________.__.__                .__.__  .__         
#   _   _____/|__|  |   ____ _______|__|  | |  | _____   
#    |    __)  |  |  | _/ __ \___   /  |  | |  | __   
#   |        |  |  |_  ___/ /    /|  |  |_|  |__/ __ _
#   ___  /   |__|____/___  >_____ __|____/____(____  /
#       /                 /      /                 /
#   __________         __         .__                 
#   ______   _____ _/  |_  ____ |  |__   ___________
#   |     ___/__  \   __/ ___|  |  _/ __ _  __ 
#   |    |     / __ |  |   ___|   Y    ___/|  | /
#   |____|    (____  /__|  ___  >___|  /___  >__|   
#                  /          /     /     /       

##############################################################
#                                              #
# Ce programme protège vos informations sur Filezilla en     #
# cryptant les fichiers contenant ces informations.          #
# une clé de 8 caractères aléatoire est générée puis utilisée#
# Utilisation :                                   #
#   - Placez Filezillapatcher.py dans un dossier          #
#   - Lancez la commande : "python FilezillaPatcher.py"       #
# Attendez la fin du téléchargement et de la compilation puis#
# profitez d'un version sécurisé de Filezilla.             #
# Necromoine (hwc-crew.com)                            #
# Thank's to : Fr0g, Kallimero, Armel                   #
#                                              #
#############################################################

import random
import tarfile
import urllib
import platform
import os

def generation
():
   
''' Fonction qui génère une chaine à 8 caractères ''' # create a 8 length varariable
   
chaine 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789'
   
0
   
final = ''
   
while 9# nombre de caractères générés par la boucle
      
aleatoire random.randint(0,65# nombre de caractères de la chaine 'chaine'
      
final = final + chaine[aleatoire:aleatoire+1]
      
a1
   
return final
   
def remplacement(fichiernumeroremplacement): # Remplace one line by an other one with the
   
''' Remplace une ligne dans un fichier donné '''
   
lignes = []
   
with open(fichier'r') as fichiers:
      for 
ligne in fichiers:
         
lignes.append(ligne)
   
   
code remplacement 'n'
   
lignes[numero-1] = remplacement
   
   with open
(fichier'w') as fichiers:
      for 
ligne in lignes:
         
fichiers.write(ligne)
   
   

''' Boucle principale du programme '''

# Prérequis pour la suite

try:
   
urllib.urlretrieve('http://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.5.0/FileZilla_3.5.0_src.tar.bz2''Filezilla.tar.bz2')
except:
   print 
'Impossible de telecharger le programme, verifiez votre connexion internet'
   
quit()
else:
   print 
'Telechargement du programme...'

   
archive tarfile.open('Filezilla.tar.bz2''r')
archive.extractall()
   
# Partie une : modification des scripts

phrase '\n wxString EncryptString(std::string toBeEncrypted,std::string sKey){\n std::string sEncrypted(toBeEncrypted);\n unsigned int iKey(sKey.length()), iIn(toBeEncrypted.length()), x(0);\n for(unsigned int i = 0; i < iIn; i++){\n'
phrase += ' sEncrypted[i] = toBeEncrypted[i] ^ sKey[x] & 10;\n if(++x == iKey){ x = 0; }\n }\n wxString toReturn(sEncrypted.c_str(), wxConvUTF8);\n return toReturn;\n }\n'
remplacement('filezilla-3.5.0/src/interface/queue_storage.cpp',20 phrase)
phrase '\n wxString EncryptPass(std::string toBeEncrypted,std::string sKey){\n std::string sEncrypted(toBeEncrypted);\n unsigned int iKey(sKey.length()), iIn(toBeEncrypted.length()), x(0);\n for(unsigned int  i = 0; i < iIn; i++){\n'
phrase += ' sEncrypted[i] = toBeEncrypted[i] ^ sKey[x] & 10;\n if(++x == iKey){ x = 0; }\n }\n wxString toReturn(sEncrypted.c_str(), wxConvUTF8);\n return toReturn;\n }\n'
remplacement('filezilla-3.5.0/src/interface/xmlfunctions.cpp'6phrase)
code generation()
phrase 'Bind(insertServerQuery_, server_table_column_names::password, EncryptString(std::string(server.GetPass().mb_str()), "' code '"));'
remplacement('filezilla-3.5.0/src/interface/queue_storage.cpp'620phrase)
phrase 'pass = EncryptString(std::string(GetColumnText(selectServersQuery_, server_table_column_names::password).mb_str()), "' code '");'
remplacement('filezilla-3.5.0/src/interface/queue_storage.cpp'888phrase)
phrase 'AddTextElement(node, "Pass", EncryptPass(std::string(server.GetPass().mb_str()), "' code '"));'
remplacement('filezilla-3.5.0/src/interface/xmlfunctions.cpp'700phrase)
phrase 'pass = EncryptPass(std::string(GetTextElement(node, "Pass").mb_str()), "' code '");'
remplacement('filezilla-3.5.0/src/interface/xmlfunctions.cpp'595phrase)


if 
platform.system() == 'Windows':
     print 
'Le script ne comprend pas la compilation sous Windows, compilez à la main (les instructions sont disponibles sur le site de filezilla)' # can't compile if windows
if platform.system() == 'Linux'# if linux, we compile this is here there are problems
   
os.chdir('filezilla-3.5.0/')
   
os.system('sudo ./configure && make && make install')
   print (
'Filezilla Patcher a correctement effectue les modifications au logiciel')  
raw_input('Appuyez sur une touche pour quitter'

Vous pouvez aussi retrouver le fichier en téléchargement directement sur http://hwc-crew.com/index.php?id=30

j'ai testé sur deux de mes ordinateurs, et je n'ai eut que quelques problème de dépendance au niveau de wxwidget, que j'ai résolut en suivant l'installation de wxwidget ici :
http://wiki.filezilla-project.org/Cross_..._GNU/Linux

Pour ceux qui s'interesserait au code géneré, vous pourrez remarquer qu'il existe deux fois la même fonction mais avec un nom différent, et cela, uniquement par flemmardise (je changerais peut etre ca dans une mpise à jour future).

Si vous avez des questions aussi bien sur le code que sur le fonctionnement du tool, n'hésitez pas à me contacter.
Aestuārium Erudītiōnis

There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors.
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 954 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 137 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 222 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 122 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 433 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 347 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 156 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 179 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 124 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 419 15-08-2014, 20h26
Dernier message: sakiir

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut