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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 238
21  Programación / Desarrollo Web / Re: [Pregunta]: Options no se desplazan correctamente en: 29 Noviembre 2018, 21:07 pm
Amigo en ese caso, usa: https://pastebin.com/

Así se verá más limpio el mensaje que quieras postear. Usa varios pastebins si lo necesitas.

Un saludo. :P
22  Programación / Desarrollo Web / Re: [Pregunta]: Options no se desplazan correctamente en: 29 Noviembre 2018, 20:56 pm
Ala ala, ya podrías haber hecho más doble posts, hay una opción de editar. :xD
23  Seguridad Informática / Seguridad / Re: Ayuda con cuenta de instagram en: 21 Noviembre 2018, 21:07 pm
Eso se llama phising. Es ilegal. Asi que no tardarán mucho en borrarte el tema. :silbar:
24  Programación / .NET (C#, VB.NET, ASP) / Re: [App] (EHN-Macros) Haz backup y purga los mensajes de la bandeja de MPs del foro en: 21 Noviembre 2018, 19:18 pm
Solo que ver esto me irrita...


Ya lo cambiaré cuando tenga tiempo ;D ;D

jeje. En fin, gracias por compartir con los demás, y no lo digo siguiendo el rol de "Moderador Global", que tu ya sabes que ni me va ni me viene, sino como amigo.

Gracias jefe, es una alegría volver a verte por aquí. :P
25  Programación / .NET (C#, VB.NET, ASP) / Re: Autologin en otra aplicación. c# en: 15 Noviembre 2018, 09:09 am
Más que un sendkeys, que como tu comentas es una ***** si mueves la ventana. Lo que podrías hacer es intentar leer el proceso en tiempo de ejecucción:

https://stackoverflow.com/a/1433888/3286975

No se si funcionará, pero la idea es algo tal que así, si el proceso que se está ejecutando es una aplicación de .NET lo tienes fácil.

Simplemente, usa dynamics...

Ejemplo:


Código
  1. //get the current process
  2. // System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess();
  3.  
  4. // En vez de hacer esto, hacemos esto otro:
  5. // https://docs.microsoft.com/es-es/dotnet/api/system.diagnostics.process.getprocesses?view=netframework-4.7.2#System_Diagnostics_Process_GetProcesses
  6. // Busca como obtener el proceso en concreto que quieres editar
  7.  
  8. //get its main windows handle (only works, if the form is already created)
  9. IntPtr hWnd = p.MainWindowHandle;
  10.  
  11. //locate the form by its native handle
  12. dynamic f = System.Windows.Forms.Form.FromHandle(hWnd) as System.Windows.Forms.Form;
  13.  
  14. // establecemos en tiempo de ejecucción la propiedad Text del TextBox obtenido por proceso
  15. f.txtLoquesea.Text = "hola";

No lo se si funcionará, pero la idea es esta.

Ahora si el proceso está ofuscado, olvidate, que ni con Spy++ lo vas a conseguir.



Edito:

Aquí he hecho un pequeño ejemplo de como se haría gracias a este documento de CodeProject (https://www.codeproject.com/Articles/790966/Hosting-And-Changing-Controls-In-Other-Application):

https://github.com/z3nth10n/ComunicadorDeProcesos

Pasos a seguir:

1. Ejecuta Login.exe (está en Login/bin/Debug/)
2. Abre el proyecto (ComunicadorDeProcesos)
3. Ejecuta el proyecto y verás lo que ocurre
4. Ya haz lo propio con lo que necesites.

Te recomiendo que uses Spy++ por si te perdieses o tuvieses problemas. :P

Edito2:

Estaba pensando que el formulario de login tendrá un boton el cual también querrás clicar, en ese caso, usa esto:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.button.performclick?view=netframework-4.7.2

Un saludo.
26  Programación / .NET (C#, VB.NET, ASP) / Re: Librería de códigos C# (Compartan aquí sus códigos) en: 14 Noviembre 2018, 22:03 pm
Dibujar curvas a partir de Perlin Noise (de forma acotada)

Por acotada me refiero, a que puedes establecer el centro del ruido y su amplitud.

Enlace: https://github.com/z3nth10n/Unity-Curve-Drawer

Imagen:



Un saludo.
27  Seguridad Informática / Seguridad / Re: Diseño de aplicación con frontend en C# y backend en puro SQL en: 14 Noviembre 2018, 21:31 pm
Se me viene a la mente Firebase Databases y Firestore, que son servicios considerados como backend as a service.

Los conozco, pero a mi siempre me ha gustado las implementaciones propias.

Mirando por aquí: https://stackoverflow.com/questions/41676714/using-firebase-in-net y por aquí: https://github.com/ziyasal/FireSharp/#usage veo que hay que especificar una key, espero que no sea la key de seguridad, que sea la que se puede poner en la aplicación de cliente. Le echaré un vistazo más de cerca ya que me han hablado varias veces de FireBase.

Pero lo cierto es que, si se trata de aplicaciones que soportan operaciones importantes, lo más probable es que a final de cuentas se terminen escribiendo validaciones a nivel de servidor (usando Cloud Functions en el caso de Firebase).

Entonces... Andamos jodidos paco jajaja porque realmente, es lo que yo pretendo evitar, que accesos para modificar/eliminar datos se haga de forma restringida.

Creo que  hoy en día se siguen 2 enfoques principales.
Muchas aplicaciones tienen la lógica principal y de forma exclusiva escrita sobre una tecnología backend.
Otras tienen gran parte de la lógica escrita a nivel de base de datos, usando Stored Procedures como comentas.
Creo que hay una tendencia de seguir lo primero para aplicaciones web, y lo 2do para aplicaciones de escritorio, aunque ciertamente sin importar la plataforma ambos caminos son viables, e incluso una mezcla de ambos.

Yo creo que para aplicaciones de escritorio y juegos que son mis dos focos principales.

Sin ello, existiría la posibilidad (no estoy seguro del cómo, y creo que menos idea  tienen los usuarios finales, pero al ser tecnología client-side debe haber una forma; si sabes cómo, estaría genial que comentes más sobre esto) de sacar provecho a esta conexión que tiene permisos generales.

Basicamente haciendo tampering es una opción. (Si se usa los anti-tampers oportunos + ofuscación y alguna que otra herramienta más, puedes hacer una aplicación robusta, aún así sería vulnerable).

No creo que sea posible devolver un objeto como comentas. Es decir, no creo que la comunicación con una base de datos o incluso la comunicación con una API funcionen de esa manera.

Si hubiese un backend en C# sería sencillo, simplemente devolviendo el objeto serializado a byte[] por Sockets (he hecho PoC de ello). Pero claro, ya estamos hablando de backends que no quiero desarrollar.

Me ha parecido una pregunta muy interesante. Veamos si alguien más se anima a compartir su opinión.

No creo pero bueno jajaja

A fin de cuentas, por lo que veo, tendre que hacer un mini-backend en PHP en el cual se llamen a metodos de lectura de la base de datos (aunque es un coñazo, porque ya no puedo usar ORM para mapear las tablas a objetos), pero bueno.

Si podría hacerlo con C# y definir los objetos en el backend y devolverlos como tal. Encriptandolos con JWT (también he hecho pruebecillas) usando criptografía hibrida. (el cliente tiene una clave publica y otra privada y lo mismo para el servidor, entonces cuando se quieran enviar datos el uno al otro cifrarán con sus correspondientes claves privadas y desencriptaran con sus claves publias, las cuales si pueden ser enviadas a traves de internet sin mayor problema. Además, usando SecureString dentro del cliente podriamos asegurar una gestión idionea por parte del cliente).

Estuve mirando el tema del consumo, ya que es algo que me preocupa, las pruebas que menciono serían hechas en un servidor de 1GB de ram (en un linux de consola). Aunque optimizando la instalación de mono y usando lo justo y necesario de LAMP se podría hacer algo interesante.

A parte, cree una organización en Github, la cual no he promocionado mucho, pero ánimo a cualquiera a que contribuya:

https://github.com/trytohackus

La idea es sencilla, alguien sube algo, y los demás intentan reventar la aplicación como sea que haga falta. Y luego explicar como lo ha hecho.

Un saludo.
28  Programación / .NET (C#, VB.NET, ASP) / [App] (EHN-Macros) Haz backup y purga los mensajes de la bandeja de MPs del foro en: 13 Noviembre 2018, 17:36 pm
Buenas, con esta aplicación creada con unos cuantos plugins de .NET entre los que se encuentran el CommandLineParser, el EasyConsole y el Selenium (y mi ingenio), he conseguido hacer esta aplicación que básicamente lo que hace es borrar (o si no no lo prefieres) y hacer backups tanto de la Inbox como de la Outbox (bandeja de entrada y salida) del foro.

Para ello necesitamos Visual Studio (para poder compilar el proyecto, por el momento), Windows y tener instalado Chrome.

Una vez descargado el proyecto, necesitaremos configurar el CLI, yendo a las Opciones del Proyecto > Deupración > Argumentos de línea de comando y escribir nuestros credenciales con el siguiente formato: -u <usuario> -p <contraseña>

Ejecutaremos, y gualá, ya tendremos la bandeja vacía o lo que sea que queramos tener vacío.

Capturas de pantalla:




Link de descarga: https://github.com/z3nth10n/EHN-Macros

Un saludo.

PD: Lo he compartido por Github por si alguno se anima a hacer alguna macro.
29  Foros Generales / Sugerencias y dudas sobre el Foro / He perdido algunos mensajes privados y me gustaría tener una copia de ellos en: 13 Noviembre 2018, 16:30 pm
He hecho una aplicacion (que luego mostraré) la cual te hace una copia de seguridad de los mensajes privados del foro y luego los purga, pero por error, he borrado unos muy importantes para mí, fueron los primeros que escribí a un buen amigo mío y los recuerdo con cariño, tanto a el como a los mensajes, y por ello me gustaría saber si hay alguna forma de recuperarlos (si se mueven de la base de datos o se hace "DELETE" sin más, quizás de alguna backup que hiciese el-brujo en algún ataque).

Un saludo.
30  Seguridad Informática / Seguridad / Diseño de aplicación con frontend en C# y backend en puro SQL en: 9 Noviembre 2018, 11:17 am
Hola, tengo una duda, estoy pensando en realizar una aplicación, y desde que estoy en las prácticas de una empresa de Almería he visto algunas cosillas interesantes que me gustaría llevar a la práctica, pero claro, soy novato y me gustaría saber como de segura sería la siguiente implementación.

Os pongo en situación:

Hace unos meses estuve pensando en una aplicación, la cual ofrecía un panel con diversas funcionalidades (frontend) para los clientes/usuarios de dicha aplicación. Y esta a su vez, tenía que comunicarse con una base de datos. Así que, por temas de seguridad, lo que acabe haciendo, fue una aplicación en C# (backend) que se comunicaba con la base de datos lanzando sentencias SQL contra ella, una API vaya.

Entonces, claro, mi duda está en que si podría saltarme este paso intermedio, y obviar la aplicación backend, ya que es un rollo implementarla.

Lo que se me ha ocurrido, desde que estoy en esta empresa, es que lo más común es usar procedimientos almacenados (Stored Procedures) que están en SQL Server, en Oracle y en MySQL (no es algo especifico de unos cuantos softwares propietarios).

Y he visto, que todas las aplicaciones, llaman a sus procedimientos almacenados desde una API integrada en el mismo frontend. Y sí lo hacen así supongo que será porque es seguro.

Y tiene lógica, ya que realmente tu no estás viendo la sentencia SQL que se está ejecutando, simplemente, el procedimiento almacenado te trae datos, o los inserta, pero de forma controlada.

Es decir, que un hacker, no podría borrar o alterar la base de datos a sus anchas, si no conociese los procedimientos almacenados. Y no tuviese los permisos correspondientes para cada ejecucción.

Con permisos me refiero a que si, el usuario el cual realiza la petición no tiene dentro de una tabla X (donde hay una columna que especifica su rango de permisos) la cual no tiene permisos, este no podría hacer nada.

La idea está en que dentro del mismo procedimiento almacenado, se llame a otro procedimiento almacenado, el cual haga comprobación de credenciales, de rango, etc etc (para el caso de lectura de datos sensibles, insertar, modificar, borrar o alterar la estrctura de tablas (esto último debería de hacerse desde la propia base de datos)).

Ahora, lo que me sigue fallando es el tema del login.

Lo que se me había ocurrido, es lo siguiente, hacer 3 usuarios de SQL:

- Invitado: Este solo tendria acceso a comprobar los credenciales en la tabla correspondiente. Una vez realizada la conexión se le devolveria una string de conexión como usuario. Y se le crearía una string de conexion en otra tabla la cual no tendria acceso.
- Usuario: Este tendria los permisos estandar de un usuario.
- Administrador: Si se requiriese que la propia aplicación tuviese un panel de administración, pues este seria el usuario de conexion a la base de datos.

No me mola el hecho de devolver strings de conexión. Lo que me gustaría sería, que al conectarse el usuario, se le devolviese un objeto con la conexión la cual solo podria usar desde esa propia sesión.

Y lo mejor de todo, es que me gustaría implementar todo esto que digo de forma que un usuario cualquiera solo pudiese acceder a la cuenta de otro usuario si conociese sus credenciales. Por que sería muy sencillo pasarle en vez de una ID de usuario otra ID de usuario y santas pascuas, por ello lo de la string de conexión.

Pero son conceptos que están muy en el aire y no se muy bien como aplicarlos.

Asi que cualquier guía ayuda no estaría de más.

Un saludo y gracias.
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 238
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines