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


  • ANNUAIRE
  • [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [EN] Framework Metasploit
    Le Framework Metasploit est un logiciel gratuit, open source de tests de pénétration développ&ea...
    Vulnérabilités
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [FR] Kalkulators
    Ce projet a plusieurs buts, le premier étant l’étude de toutes formes cryptographiques, le cot&ea...
    Cryptographie
    [EN] w3challs
    Ce site propose différents types de défis informatiques: piratage, craquage, cryptographie, stég...
    Hacking
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges

  • 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 943 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 120 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 427 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 345 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 : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut