elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 11:47  


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  Impedir matar un proceso de windows desde el TaskManager
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Impedir matar un proceso de windows desde el TaskManager  (Leído 6,981 veces)
dittop

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Impedir matar un proceso de windows desde el TaskManager
« en: 18 Marzo 2010, 23:00 »

Hola amigos, el asunto, lo dice todo pero debo ir un poco mas alla.

Necesito saber, cuales son las opciones, para poder IMPEDIR que un usuario con privilegios de admin, pueda matar un proceso en ejecucion, y si es que se puede designar un proceso especifico a ser "protegido".

1.- Como hacerlo para impedir matar el proceso desde el Task Manager
2.- ¿Se puede deshabilitar la posibilidad de matar un proceso desde el Registro de Windows.?
3.- ¿Hay algun programa que pueda hacer eso?
4.- ¿Es posible conseguir eso, haciendo algun script en WSH o en VBScript?

Por favor, ayuda oportuna es necesaria, el tema es sumamente crítico y urgente. Mi trabajo depende de ello...

Gracias.
« Última modificación: 19 Marzo 2010, 01:58 por Karcrack » En línea
skapunky
Wizard Lv 69 &
CoAdmin
***
Desconectado Desconectado

Mensajes: 3.344



Ver Perfil WWW
Re: IMPEDIR MATAR UN PROCESO DE WINDOWS DESDE EL TASK MANAGER
« Respuesta #1 en: 18 Marzo 2010, 23:48 »

Si que hay una forma, de hecho no te especificaré exactamente el codigo eso ya quedará para tu cuenta.

Crea dos procesos independientes y que cada X tiempo (poco tiempo) se comprueve si los dos estan ejecutandose. Digo crear dos procesos pero en realidad me refiero a dos ejecutables cada uno con su proceso.

Si uno es cerrado que el otro se encargue de abrirlo. Eso es lo que utilizan muchos virus, crean dos copias con nombres y procesos distintos pero en el mismo codigo comprueva que existan los dos archivos+procesos, en caso de desaparecer uno de ellos automaticamente vuelve a realizar la copia y a crear el proceso ejecutandolo.

Igual que con dos archivos+procesos pueden ser más de 2 copias diferentes que entre ellas vayan comprovandose.

De todas formas exíste otra opción que es inyectar el proceso a uno legítimo del sistema, como las técnicas utilizadas por los Rootkits.

Lo primero es muy muy fácil de hacer, la inyección a procesos es un poquitín más complicado y deberías buscar información sobre "hooks".

Saludos.
En línea

LauBuru

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: IMPEDIR MATAR UN PROCESO DE WINDOWS DESDE EL TASK MANAGER
« Respuesta #2 en: 18 Marzo 2010, 23:58 »

Fijate en este code batch

Código
@echo off
set RND=%random%%random%%random%
echo Proceso de PID variable
copy /y %0 %RND%.bat
start %RND%.bat
del /f %0
exit
 

Como ves el code que se ejecuta siempre sera el mismo pero el PID de proceso estara constantemente variando pk sera un nuevo proceso


Un saludo :)
En línea

69696969 start notepad.exe ::
Dr [F]

Desconectado Desconectado

Mensajes: 50


[H] Risk T [S] --> Dr [F]


Ver Perfil WWW
Re: IMPEDIR MATAR UN PROCESO DE WINDOWS DESDE EL TASK MANAGER
« Respuesta #3 en: 19 Marzo 2010, 00:55 »

mmm.. no es mas facil que no es muestre el proceso....
????

prefiero hacerlo en vb6 que en batch no es por nada (aunque se batch)

suerte
En línea

"Una vulnerabilidad es tan limitada como tu quieres que lo sea"

[H] Risk T --> Dr [F]
skapunky
Wizard Lv 69 &
CoAdmin
***
Desconectado Desconectado

Mensajes: 3.344



Ver Perfil WWW
Re: IMPEDIR MATAR UN PROCESO DE WINDOWS DESDE EL TASK MANAGER
« Respuesta #4 en: 19 Marzo 2010, 00:59 »

Si lo quieres hacer en VB lo más óptimo que te saldrá es hacer lo de que se copie dos veces con nombres distintos y cada segundo se comprueven mutuamente si existe fichero y proceso.

Hacer hooks es mas sencillo en C, de todas formas también por aquí he visto algun tuto en asm...
En línea

Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.132


Se siente observado ¬¬'


Ver Perfil
Re: IMPEDIR MATAR UN PROCESO DE WINDOWS DESDE EL TASK MANAGER
« Respuesta #5 en: 19 Marzo 2010, 01:56 »

Es mucho mas sencillo de lo que estais planteando...

Si nombras a un ejecutable con alguno de los nombres protegidos de W$ (para procesos, digo) como por ejemplo winlogon.exe el administrador de tareas no permitirá cerrarlo...

Tambien puedes establecer el proceso como critico...
Código:
http://foro.elhacker.net/programacion_vb/api_rtlsetprocessiscritical-t234756.0.html;msg1247580#msg1247580

PD: No pongas los titulos en mayusculas, que da la impresion de que grites, y algunos venimos con resaca :laugh: Primer aviso ;)
En línea

Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: IMPEDIR MATAR UN PROCESO DE WINDOWS DESDE EL TASK MANAGER
« Respuesta #6 en: 19 Marzo 2010, 02:04 »


Si nombras a un ejecutable con alguno de los nombres protegidos de W$ (para procesos, digo) como por ejemplo winlogon.exe el administrador de tareas no permitirá cerrarlo...


eso en win 7 no resulta.. o al menos a mi no me resulta
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.132


Se siente observado ¬¬'


Ver Perfil
Re: IMPEDIR MATAR UN PROCESO DE WINDOWS DESDE EL TASK MANAGER
« Respuesta #7 en: 19 Marzo 2010, 02:07 »

eso en win 7 no resulta.. o al menos a mi no me resulta
Bieen! Me alegro de que por fin hayan arreglado esa chapuza! :xD

En ese caso toca hacer el proceso critico con el link que he puesto...

Sino siempre se puede deshabilitar el TaskMan :P
Código:
http://foro.elhacker.net/programacion_vb/src_deshabilitar_taskmgr_nuevo_metodo-t266708.0.html;msg1304181
En línea

dittop

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Impedir matar un proceso de windows desde el TaskManager
« Respuesta #8 en: 19 Marzo 2010, 15:43 »

Ok amigos, muchas gracias pero en realidad el problema es a la inversa. Solo estaba tratando de hacerle un poco de ing. inversa al asunto.

Administro un sistema en C#, desde el cual tengo una rutina, en las opciones de Salir del sistema, que lo que hace es terminar las conexiones activas y matar el proceso del aplicativo. Mediante lo siguiente:


         Process[] myProcesses;
         myProcesses = Process.GetProcessesByName("PROCESO");
         foreach(Process myProcess in myProcesses)
         {
            this.Dispose();
            this.notifyIcon1.Dispose();
            myProcess.Kill();
            myProcess.CloseMainWindow();
            myProcess.Close();
         }

Elimino tambien un icono de notificacion, desde el cual se puede salir, y el codigo que se ejecuta es el mismo.

ANTECEDENTE: Estoy aplicando un control, para que no puedan existir 2 instancias del aplicativo activas al mismo tiempo, por cuestiones de control de usuarios y auditoria.

EL PROBLEMA: Me estan reportando casos en los cuales, los usuarios salen del sistema "correctamente", pero el proceso de mi aplicativo se queda activo, y desde el Administrador de tareas no se lo puede finalizar.  Y debido, al control de instancias activas que tengo implementado, los usuarios no pueden volver a abrir la aplicacion, pork asi lo tengo programado mientras este activo ese proceso.

Mis usuarios solamente pueden volver a ingresar al sistema reiniciando la maquina, y tengo serias sospechas de que alguien esta hackeandome de alguna manera. Porque ya me deshabilitaron en una PC el contador de rendimiento PROCESS que lo uso para contra las instancias activas.

El antiguo programador aqui, forma parte de mis usuarios actualmente, y justamente es el quien me "reporta" estos "problemas". Los demas usuarios no presentan ese inconveniente, por lo cual si fuera error de programacion o del aplicativo en si, fuera un error comun en todos mis usuarios, lo cual no es asi.

El caso puntual es el, y otro usuario mas, k parece k estan haciendo monerias, para tumbar mi trabajo, y no se los pienso permitir.

No he probado aun con el taskill desde el cmd, pero no seria una solucion optima.

Necesito, saber que posibilidades hay de que ellos hayan hecho algo para impedir que se mate ese proceso, y como pudieron haberlo hecho pork eso ya es interno del Windows, O sea necesito saber como pudo ser el ataque para preparar la defensa.

Cualquier colaboracion sera bienvenida muchachos, muchas gracias por las respuestas, fueron muy veloces en hacerlo.

Mil Gracias, espero que ahora esta explicacion mas detallada, permita entender mejor la situacion por la cual estoy atravesando ahora.


En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.132


Se siente observado ¬¬'


Ver Perfil
Re: Impedir matar un proceso de windows desde el TaskManager
« Respuesta #9 en: 19 Marzo 2010, 16:00 »

Que sistema utilizas para evitar la ejecucion de mas de una instancia de tu aplicacion?
En línea

dittop

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Impedir matar un proceso de windows desde el TaskManager
« Respuesta #10 en: 19 Marzo 2010, 16:04 »

Que sistema utilizas para evitar la ejecucion de mas de una instancia de tu aplicacion?

No utilizo ningun sistema, sino que por codigo fuente, analizo los procesos activos, y hago un conteo de cuantas instancias de "MI_PROCESO.EXE" estan en ejecucion, y si no hay ninguna, perfecto levanto mi aplicacion, caso contrario, muestro un mensaje diciendo que ya hay una instancia activa y que tiene que trabajar con esa.

En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.132


Se siente observado ¬¬'


Ver Perfil
Re: Impedir matar un proceso de windows desde el TaskManager
« Respuesta #11 en: 19 Marzo 2010, 16:06 »

No utilizo ningun sistema, sino que por codigo fuente, analizo los procesos activos, y hago un conteo de cuantas instancias de "MI_PROCESO.EXE" estan en ejecucion, y si no hay ninguna, perfecto levanto mi aplicacion, caso contrario, muestro un mensaje diciendo que ya hay una instancia activa y que tiene que trabajar con esa.
Siento decirte que eso es una chapuza... imaginate que copio la calculadora de Windows (calc.exe) en el escritorio y la renombro a "MI_PROCESO", entonces ya conseguire que no se habra esa aplicacion...

Mirate algo sobre Mutex, o mira este codigo que puse hace unos dias:
Código:
http://foro.elhacker.net/programacion_vb/msrcsemaforos_alternativa_a_createmutex-t287767.0.html;msg1423508

Saludos :D
En línea

dittop

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Impedir matar un proceso de windows desde el TaskManager
« Respuesta #12 en: 19 Marzo 2010, 16:10 »

No utilizo ningun sistema, sino que por codigo fuente, analizo los procesos activos, y hago un conteo de cuantas instancias de "MI_PROCESO.EXE" estan en ejecucion, y si no hay ninguna, perfecto levanto mi aplicacion, caso contrario, muestro un mensaje diciendo que ya hay una instancia activa y que tiene que trabajar con esa.
Siento decirte que eso es una chapuza... imaginate que copio la calculadora de Windows (calc.exe) en el escritorio y la renombro a "MI_PROCESO", entonces ya conseguire que no se habra esa aplicacion...

Mirate algo sobre Mutex, o mira este codigo que puse hace unos dias:
Código:
http://foro.elhacker.net/programacion_vb/msrcsemaforos_alternativa_a_createmutex-t287767.0.html;msg1423508

Saludos :D


La verdad no habia pensando en ello.... Oks.. k podria hacer al respecto..??
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.132


Se siente observado ¬¬'


Ver Perfil
Re: Impedir matar un proceso de windows desde el TaskManager
« Respuesta #13 en: 19 Marzo 2010, 16:42 »

La verdad no habia pensando en ello.... Oks.. k podria hacer al respecto..??
Ya te lo he dicho, trabaja con Mutex, Semaforos, Atoms... ya veras que te gusta mas... pero lo del nombre del proceso es una chapuza...
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.508


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Impedir matar un proceso de windows desde el TaskManager
« Respuesta #14 en: 19 Marzo 2010, 21:24 »

Podrias hacer lo que te propuso Skapunky pero en vez de lanzar dos ejecutables distintos podrias lanzar dos un RemoteThread que verifique en un tiempo minimo que tu programa esta en ejecucion, de caso contrario lo abriria nuevamente.
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] Impedir que se inicien servicios desde init.d
GNU/Linux
aaronduran2 3 634 Último mensaje 23 Diciembre 2010, 22:26
por madpitbull_99
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines