• STATISTIQUES
  • Il y a eu un total de 1 membres et 8610 visiteurs sur le site dans les dernières 24h pour un total de 8 611 personnes!


    Membres: 2 450
    Discussions: 3 572
    Messages: 32 822
    Tutoriels: 77
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [EN] HackQuest
    Logic: 12, JavaScript: 14, Applet: 6, CrackIt: 13, Crypto: 11, Internet: 3, Exploit: 7, Stegano: 12, Flash: 1, Programmi...
    Challenges
    [FR] PHP France
    Pour tout savoir sur le PHP, en français. Vous trouverez des tutoriels, des exemples, des astuces, toute la do...
    Hacking
    [FR] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [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] Astalavista
    JavaScript: 1, Exploit: 2, Crypto: 34, CrackIt: 15, Stegano: 8, Programming: 12, Logic: 36, Special: 6, Science: 4, Info...
    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 9,137 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 1,592 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 1,926 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 1,733 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 4,428 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 2,710 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 1,792 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 1,791 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 1,204 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 4,042 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