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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 [113] 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 ... 166
1121  Programación / .NET (C#, VB.NET, ASP) / Re: problema con Random en: 18 Enero 2013, 17:32 pm
Para obtener 2 valores aleatorios, en vez de usar Random, utillizo la función Rnd(), espero que lo tengas en cuenta.

Código
  1. Private Sub GetRandomNumbers(Byval Min as int32, Byval Max as int32)
  2. ' Inicializamos el generador de nº aleatorios
  3. Randomize()
  4. ' Generamos un valor aleatorio entre 50 y 100
  5. Dim Valor As Integer = CInt(Int((100 * Max()) + Min))
  6. return Valor
  7. End Sub

Solo te falta añadir esos números a una Lista.

Saludos!
1122  Comunicaciones / Redes / Re: como utilizo netcat y SSL desde una maquina virtual? que IP poner? en: 18 Enero 2013, 13:52 pm
Eso es. A modo local solo tienes que tener en cuenta la IP privada. En cambio si infectaras una máquina que está fuera de tu red, deberías abrir puertos y hacer que esa máquina se conecte a tí, es decir, tu deberías aceptar cualquier conexión en el puerto sobre el que estás escuchando para de esta forma obtener la shell remota.

La manera que ha puesto RevangelyonX es la forma correcta de emplear la conexión inversa, aunque el parámetro -l significa que la Shell escuchará una vez y -L que escucará siempre.

Saludos!
1123  Foros Generales / Foro Libre / Re: Nombres para un foro? en: 17 Enero 2013, 16:57 pm
Le he echado un pequeño vistazo al tablon del foro y veo que en la sección de Programación general divides los subforos en .NET , C#/C++ y Java. C# es propio de .NET donde debería ir todo lo relacionado con los lenguajes de la plataforma .NET incluído éste. Sería mejor que C++ lo pusieras solo o junto a C.

Saludos!
1124  Seguridad Informática / Hacking Wireless / Re: [Vulnerabilidad] Administración remota Cisco EPC3825 Euskaltel. en: 17 Enero 2013, 16:51 pm
Gracias ChimoC por tu atención, espero que el aporte haya sido de tu agrado.

Posteo para decir que han filtrado el puerto que conecta con el servicio desde la red Euskaltel, es decir, cualquier usuario que navege a través de una conexión contratada con esta ISP no podrá acceder mediante dicho puerto a ningun servicio de administración remota de dispositivos de terceros de la misma línea. Os mantendré informados segun vayan apareciendo cambios en el tema. Esperemos que lo solucionen pronto.

Saludos!
1125  Programación / .NET (C#, VB.NET, ASP) / Re: Juntar un executable u otro archivo que no séa DLL al executable del programa? en: 17 Enero 2013, 14:46 pm
Advertencia - mientras estabas escribiendo, fueron publicadas 2 respuestas. Probablemente desees revisar tu mensaje.

Ahí me has pillado pues no he tenido experiencia en lo que se refiere a cargar código no administrado desde .NET . Se me ocurre que puedes embedir el ejecutable dentro de la lista de recursos y desde ahí crear un archivo temporal en el que escribes los Bytes del ejecutable embedido en recursos, ya que My.Resources."recurso" nos devolvería un Array de Bytes.

Luego cuando cierras la App podrías llamar a una rutina que limpiara esos archivos temporales de la ruta donde los creaste, o bien, podrías eliminarlos cuando el proceso temporal finalice. A ver si alguien nos da algun consejo más práctico de como implementar esto.

Lo que hago a continuación es cargar el TCPOptimicer desde un Array de Bytes de la lista de recursos. Creo un archivo temporal de éste, lo inicializo mediante la clase Process() y asocio el evento Exited de Process() a un método que será llamado cuando el archivo sea cerrado. Dentro de este método se ejecutará la instrucción de borrado del archivo temporal, de esta manera te libras del Process.WaitForExit(), recuerda, queremos rendimiento en nuestra aplicación.

Código
  1. Imports System.IO
  2. Module Module1
  3.   Dim ExePath As String = "C:\TempTCPOptimicer.exe"
  4.   Sub Main()
  5.         If Not File.Exists(ExePath) Then
  6. 'Obtenemos los Bytes del archivo a través de la lista de recursos
  7.         Dim Buffer As Byte() = My.Resources.TCPOptimizer
  8. 'Creamos un nuevo ejecutable en el que introduciremos los Bytes del archivo
  9.         Dim Fs As New FileStream(ExePath, FileMode.Create, FileAccess.Write)
  10.         Fs.Write(Buffer, 0, Buffer.Length)
  11.         Fs.Close()
  12. 'Ejecutamos el proceso temporal
  13.         Dim p As Process = Process.Start(ExePath)
  14. 'Activamos el evento Exited, que se encargará de manejar el cierre de la aplicación
  15.         p.EnableRaisingEvents = True
  16. 'Asociamos el evento Exited al método FileExitedEvent
  17.         AddHandler p.Exited, AddressOf FileExitedEvent
  18. 'No queremos que se cierra la instancia de la consola
  19.         Else
  20.         Console.WriteLine("El Archivo temporal {0} ya existe",ExePath)
  21.         End If
  22.     Console.Read()
  23.     End Sub
  24.  
  25.     Private Sub FileExitedEvent(ByVal sender As Object, ByVal e As EventArgs)
  26. 'Si has llegado hasta aquí es que el proceso finalizó
  27. 'Procedemos a eliminar el archivo temporal del disco
  28.         File.Delete(ExePath)
  29.     End Sub
  30. End Module

Saludos!
1126  Programación / .NET (C#, VB.NET, ASP) / Re: Juntar un executable u otro archivo que no séa DLL al executable del programa? en: 17 Enero 2013, 13:12 pm
Lo que pides es embedir un ensamblado .NET dentro de otro. La clase Assembly te permite cargar ensamblados .NET en la memoria del programa y ejecutarlos en tiempo de ejecucción, sin tener que ejecutarlo en un proceso separado. Puedes escoger como vas a cargar el ensamblado, si está fuera del proyecto lo cargas como un archivo indicando la ruta. Lo normal sería añadirlo a los recursos del programa y cargarlo dinámicamente desde ahí mediante un Array de Bytes. El resto del trabajo es pan comido, solo tienes que llamar a su método de entrada, es decir, a Main().

Te dejo un fragmento de code, si lo quieres probar inicia un proyecto en modo consola y lo copias tal cual pero cambiando el path del ensamblado que quieres cargar :)

Código
  1. Imports System.Reflection
  2. Module Module1
  3.  
  4.    Sub Main()
  5. 'Cargamos el ensamblado desde un archivo
  6. 'En tu caso podrias hacerlo desde los recursos del proyecto
  7.        Dim Ensamblado As Assembly = Assembly.LoadFile("C:\POC.exe")
  8. 'Apuntamos hacia el método de entrada, método principal que será llamado al ejecutarse el ensamblado
  9.        Dim EntryPoint As MethodInfo = Ensamblado.EntryPoint
  10. 'Lo invocamos pasandole un Array de Strings vacío ya que éste indica los Argumentos (args) y no le quiero pasar ninguno
  11.        EntryPoint.Invoke(Nothing, New Object() {New String() {}})
  12. 'Se ejecuta la PoC :)
  13.    End Sub
  14.  
  15. End Module

Saludos!
1127  Seguridad Informática / Hacking Wireless / [Vulnerabilidad] Administración remota Cisco EPC3825 Euskaltel. en: 17 Enero 2013, 00:33 am
Buenas noches a todos,

el propósito de este post es informar sobre una vulnerabilidad hallada en la actualización de firmware de los routers Cisco EPC3825 suministrados por la compañía telefónica vasca Euskaltel. No me hago responsable del uso y/o aprovechamiento de la vulnerabilidad que va a ser explicada.

Esta mañana, como cualquier otra, me encontraba en la universidad trabajando en un proyecto que tengo entre manos. Al tomarme un rato libre me he dispuesto a escanear los servicios que corren detrás de mi router a través de la red de la universidad. Como uno de mis ordenadores está asociado a un servicio de redireccionamiento DNS gratuito he conseguido la IP pública de mi red, es decir, la IP con la que realizas consultas sobre los diferentes servicios que ofrece Internet. Al finalizar el escaneo he comprobado que el puerto 8080 (generalmente empleado como proxy para acceder remotamente a la configuración del router) se encontraba abierto. Para mí asombro dicha opción se encontraba deshabilitada en el panel de administracción remota de éste por lo que empecé a pensar que podría ser un fallo de configuración del router o de la ISP vasca.

Al de un rato, en casa, me comuniqué con el servicio de averías de Euskaltel notificándoles mi problema y abriendo un parte de incidencia, ya que ellos no supieron explicarme lo que realmente ocurría con dicho servicio, incluso llegaron a decirme que había instalado Software adicional que podría causar que dicho puerto estuviera abierto o que había configurado erróneamente el dispositivo. Como soy bastante paranoico con ciertas cosas, y más cuando tienes una puerta trasera que actualmente no está parcheada me he enfocado en comprobar si con otros dispositivos ocurre lo mismo.

Como prueba de concepto, he sido capaz de acceder al panel administrativo de otros dispositivos Cisco EPC3825 a través de la ya mencionada "puerta trasera", por lo que se confirma la existencia de dicha vulnerabilidad en este modelo de enrutadores.

Cabe decir que la ISP vasca instala las pertinentes actualizaciones cuando lo ven necesario, sin embargo, como me he podido percatar, no tenían nociones de que este problema de inseguridad estaba presente en dicha versión del Firmware. Lo más seguro es que no tarden mucho tiempo en parchearla, pero por ahora sólo nos podemos defender aplicando ciertas medidas de seguridad, aquí os dejo algunas recomendaciones a los usuarios con el mismo problema:

Cambiar las credenciales predeterminadas empleadas en la autentificación del panel administrativo del dispositivo, así como la filtración del puerto empleado por el Proxy para que bloquee las posible conexiones sobre dicho servicio.

Sed buenos ;)

Saludos!
1128  Seguridad Informática / Bugs y Exploits / Re: [Metasploit] j7u10 en: 16 Enero 2013, 23:02 pm
El exploit descubierto en enero que permitía la ejecucción arbitraria y remota de código ha sido parcheado en la última versión de Java (7 U11), me refiero al JmxB ver 7. Me dio por descargar los módulos Jre17_exec y JmxB para java de metasploit, los modifiqué añadiéndoles la URL del ejecutable para que cuando el exploit consiga bypassear el SandBox descargue dicho .exe en el equipo que visite el enlace que contiene el .Jar malicioso y en la update 11 nada de nada. En cambio en la update 10 ambos van de perlas, aunque el Jre17 es detectado por el AV :P . Todo esto lo he realizado sin fin malicioso alguno, sólo implementar la PoC para ver que alcance tiene la susodicha vulnerabilidad.

Recomiendo actualizar Java y establecer la política de seguridad en "High" (para que nos notifique y avise de si queremos ejecutar el applet en caso de toparnos con un .jar en cualquier web).

Otro 0day? No debería de sorprenderme a estas alturas, pues está bien sabido que las aplicaciones más empleadas en ciertos entornos son el objetivo de los investigadores de seguridad. Ya venderlo, publicarlo y/o notificar a la empresa relacionada con la brecha de seguridad es otra cosa, cada uno, uno es.

Saludos!
1129  Programación / .NET (C#, VB.NET, ASP) / Re: Problema con Application.DoEvents() en: 16 Enero 2013, 16:43 pm
El código que te puse es para que veas como trabajando con señales puedes bloquear procesos y ponerlos a la espera de una señal. En cuanto a el error que obtienes, como dice $Edu$ se produce al tratar un tipo de dato no comprendido entre los límites establecidos de dicho tipo de dato. Por ejemplo el tipo de variable Integer soporta números comprendidos entre -2147483647 y +2147483647, si te salieras de ese límite se produciría el OverFlow.

Revisa el código del Thread en busca de posibles errores en los datos que almacenas en las distintas variables. Te recomiendo que Debuguees la aplicación para ver que valores van tomando éstas.

Saludos!
1130  Programación / .NET (C#, VB.NET, ASP) / Re: Problema con Application.DoEvents() en: 16 Enero 2013, 16:06 pm
Application.DoEvents() es una instrucción propia de VB6 y ésto es .NET. No es recomendable emplear técnicas vb6 en VB.NET pues para algo tenemos el Framework.
Supongo que lo que quieres es que se ejecute un hilo y se detenga la ejecucción del código que sigue después de la llamada .Start() del hilo hasta que el Thread haya terminado su ejección.

Empleando la clase ManualResetEvent bloqueas la ejecucción del código hasta que el objeto que contiene la instancia de ManualResetEvent haya recibido una señal.

Ejemplo:

Código
  1. Dim manualEvent As New ManualResetEvent(False)
  2. Private Sub ThreadProc(Byval Parametros As Object()) 'Pasamos todos los parametros por valor dentro de un Array de tipo Object
  3. 'Extraemos los parametros
  4. 'Ejecutamos las instrucciones de este método
  5. '...
  6.  
  7. 'Mandamos la señal a ManualEvent diciendole que siga con la ejecucción del programa
  8. ManualEvent.Set()
  9. End Sub
  10.  
  11. Private Sub EjecutarThread()
  12. Dim t as new thread(AddressOf ThreadProc)
  13. t.start(obj()) 'Le pasas al thread el array que contiene los parámetros
  14.  
  15. 'Esperamos hasta que ManualEvent reciba la señal
  16. ManualEvent.WaitOne()
  17. MsgBox("Thread Completado")
  18. End Sub
Páginas: 1 ... 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 [113] 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 ... 166
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines