• STATISTIQUES
  • Il y a eu un total de 3 membres et 14503 visiteurs sur le site dans les dernières 24h pour un total de 14 506 personnes!


    2 membres se sont inscrits dans les dernières 24h!


    Membres: 2 447
    Discussions: 3 590
    Messages: 32 838
    Tutoriels: 77
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [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
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] Zenk-Security
    La communauté zenk-security a pour objet principal la sécurité informatique, nous sommes des tou...
    Hacking
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [FR] Hackfest
    Le Hackfest est un évènement de sécurité et de piratage informatique au Québec reg...
    Hacking
    [FR] Kalkulators
    Ce projet a plusieurs buts, le premier étant l’étude de toutes formes cryptographiques, le cot&ea...
    Cryptographie
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    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 8,390 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 1,477 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 1,792 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 1,591 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 4,065 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 2,521 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 1,681 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 1,668 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 1,131 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 3,660 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