FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Alerta en ejecucion de programas
bueno, les comento mi problema
tengo un cybercafe en el cual estamos usando: -CyberControl 4.0 para la facturacion -Deep Freeze Enterprise 5.xxx (no recuerdo en este momento la version) el tema es que hay un "vivo" que esta usando el fuck-deepfreeze para deshabilitar dicho programa y esta instalando keyloggers y administradores de escritorio remoto mi idea es hacer un programa cliente-servidor que alerte cuando se ejecuta este tipo de software por ejemplo: yo en la pc de facturacion instalo el servidor y en las demas maquina el cliente y quiero que cuando en el cliente se ejecute alguna aplicacion que se encuentre en la "blacklist" alerte al operador del servidor (cosa que este vaya, lo agarre de los pelos y lo patee a la calle). eh visto muy poco, es mas, diria nada, en lo que respecta programacion con cliente servidor, pero no es ese mi problema. mi problema es como hago para "saber" cuando se ejecuta algun programa, es decir, cuando yo hago 2ble click sobre algo: como hago para que mi programa se entere de esto y compruebe que dicho software esta permitido ejecutar. y lo que respeca a la parte comunicacion entre el cliente y el servidor me seria de mucha utilidad saber que librerias me recomiendan para esto, estuve leyendo en delphi.about.com hay un tutorial acerca de indy y como tengo es lo que tengo a mano pensaba en usar esta libreria les agradezco desde ya las respuestas |
#2
|
||||
|
||||
Cita:
***
Ahora que ya tenemos la lista de programas en ejecución (sin utilizar las Toolhep), tienes varias opciones, por ejemplo:
La Forma de comunicación entre máquinas y el envío de paquetes podrías hacerlo según la idea que hace algunos días me propuso seoane, el hilo está aquí. Espero que esta información te resulte útil, esto es solamente una propuesta
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO Última edición por ArdiIIa fecha: 23-02-2007 a las 16:59:22. |
#3
|
||||
|
||||
Antes de nada, debemos de aclarar sobre que sistema estamos trabajando y el tipo de cuenta de usuario. Si estamos hablando de un Windows 98 no hay nada que hacer, es imposible proteger nada en ese sistema, no al menos sin modificar sustancialmente el propio sistema (inyecciones de código, drivers, etc ...). Solo hay que pensar que aunque creemos un superprograma de protección, un atacante solo tendría que matar el proceso y nadie se lo puede impedir.
Otra cosa es si estamos trabajando sobre un Windows 2000/XP, y con una cuenta de usuario limitada. Entonces lo primero es que nuestra aplicación se ejecute como un servicio, como un usuario limitado no puede parar ni matar un servicio por ese lado estaremos protegidos. Una vez que estamos a salvo de algún listo, lo segundo es crear una lista de aplicaciones permitidas (lista blanca ), esto puede resultar tedioso, y nunca se sabe que aplicación puede llegar a ser necesaria en el futuro. Yo resolví el problema creando una lista de directorios permitidos, es decir, cualquier aplicación que se ejecute desde un directorio que no este en la lista sera asesinada. Como los usuarios de cuentas limitadas no puedes escribir fuera de la carpeta de su perfil (si no se especifica lo contrario), nos aseguraremos de que esa carpeta no esta en la lista de directorios permitidos. Yo utilizaba la siguiente lista: Código:
c:\Archivos de programa\ c:\Archiv~1\ c:\Windows\ \SystemRoot\ \??\ También hay la versión suave, que es mandar un mensaje UDP a un servidor para que el encargado se entere de la actividad sospechosa, sin matar el proceso. Yo en mi aplicación, tenia 2 modos: normal y agresivo. En el normal, solo avisaba al encargado, en el agresivo mataba el proceso sin hacer preguntas. Se podía cambiar de un modo a otro de forma remota. El problema es si estando en modo normal, un listo desconecta el cable de red. Pues no pasa nada, mi programa lo detectaba y pasaba a modo agresivo Por ultimo existe otra solución mucho mas efectiva, pero también muchas mas compleja de programar. Se trata de crear un Hook en la API Createproccess de tal manera que cada vez que alguien quiere ejecutar un programa, primero se ejecuta nuestro código y podemos decidir si le dejamos o no hacerlo. Para hacer esto tenemos que usar inyección de código, pero en eso seguro que ardilla te puede ayudar mas que yo. |
#4
|
||||
|
||||
Si claro, yo como siempre asumiendo cosas y no hago consideraciones sobre el SO en lo que obviamente tienes toda la razón...
Las directrices o permisos en una cuenta limitada, supongo que será una cuestión ya prevista en un ciber... Cita:
Pero vamos, de orientar al como.... a hacer una tesis doctoral sobre el asunto creo que hay bastante diferencia y mucho más considerando que este lugar: Primero no es un colegio y segundo no existe obligación alguna de dar pruebas del como y el porqué. Dicho esto, a veces me resultan molestos aquellos mensajes en los que tratas de aportar un granito de conocimiento y a partir de ahí comienzan a someterte a un "tercer grado", no se sabe con qué intenciones, por lo que seguramente habría que traspasar algunos hilos mas o menos interesantes al subforo "taberna", para que resulten mas divertidos. Cita:
Por cierto knife_sj, también estamos hablando de este hilo, así que pido disculpas por la distracción ______
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO Última edición por ArdiIIa fecha: 23-02-2007 a las 17:54:17. |
#5
|
||||
|
||||
Venga Ardilla, no te pongas así, solo indicaba que tu habías tratado el tema antes. No esperaba que le fueras a hacer el código ...
|
#6
|
||||
|
||||
Cita:
Con respecto al código para tocar la API del CreateProccess y visto lo que hay escrito sobre el asunto, no sería difícil implementarlo, pero sigo pensando que para esta cuestión del ciber la solución mas "sencilla" y más estable y asumiendo que estamos hablando de un XP, pasa por crear las listas de "buenos y malos" y cotejarlas.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#7
|
||||
|
||||
Se me ocurre algo, que puede ser fácilmente vulnerado, que es monitorear todo lo que se ejecute desde el shell, modificando la clave del registro HKEY_CLASSES_ROOT\exefile\shell\open\command para incluír en el valor @ una aplicación propietaria que sea la encargada de ejecutar las aplicaciones y hacer las notificaciones al mismo tiempo.
Si queres complicarla un poquito, estudiaría las librerías de ApiHook para crear un hook de las funciones CreateProcess y CreateProcessAsUser: http://www.apihooks.com/AH5.HTM o http://madshi.net/ . Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#8
|
||||
|
||||
Juro que cuando me puse a escribir la respuesta, y de ahí que encontré algo de código no habia mas que una respuesta!!!
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#9
|
||||
|
||||
Cita:
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#10
|
||||
|
||||
Cita:
|
#11
|
||||
|
||||
Cita:
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#12
|
||||
|
||||
Hola
Y disculpen que me meta. Hace un tiempo seoane me enseño a esconder el escritorio y todo. No seria mas facil en este caso hacer un explorer en delphi (creo que ya existe) y esconderle al usuario todo lo demas para que no pueda usar nada del ordenador.? No se si puede darsele acceso a una carpeta por si quisiera bajar alguna cosa. O es otro tema? Saludos |
#13
|
||||
|
||||
Si lo que quieren hacer es simplemente definir que programas pueden abrir con el shell, eso lo pueden definir desde la política de seguridad, pero es totalmente vulnerable, ya solo es evaluado por el shell, e identifica los archivos por su nombre.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#14
|
||||
|
||||
Cita:
En cuanto al segundo método, no me queda claro cómo funcionaría. Es decir, ¿qué impide que yo le ponga un nombre "aceptado" a una aplicación y ejecutarla? // Saludos |
#15
|
||||
|
||||
Cita:
Cita:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#16
|
||||
|
||||
Cita:
// Saludos |
#17
|
||||
|
||||
Cita:
|
#18
|
||||
|
||||
Hola,
¿Hablamos de un "cíber"? Entonces, ¡palo! Al que se le ocurra instalar un programa se le ofrece la vara de avellano en las espaldas. ¡Veréis como no se le ocurre instalar nada más en su vida! |
#19
|
||||
|
||||
Cita:
// Saludos |
#20
|
||||
|
||||
Cita:
De todas formas, a mi también me gusta lo del hash |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Identificador de programas en ejecución | Josue | API de Windows | 6 | 31-12-2006 21:15:51 |
alerta y comentario de fbdataadapter | julyus | .NET | 0 | 20-10-2006 18:17:09 |
!Alerta! Delphi en TV | mamcx | Noticias | 14 | 05-04-2005 19:01:13 |
Mensajes de alerta | jmselesan | PHP | 1 | 08-12-2003 19:49:06 |
Ayuda con Ejecución de programas creados con Kylix 3 Enterprise Trial | darkone2k3 | Lazarus, FreePascal, Kylix, etc. | 0 | 18-11-2003 15:58:56 |
|