elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
06 Septiembre 2008, 01:19  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderador: ®®)
| | |-+  proceso que no acaban
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: proceso que no acaban  (Leído 379 veces)
bash

Desconectado Desconectado

Mensajes: 34


Ver Perfil
proceso que no acaban
« en: 16 Abril 2008, 23:52 »

bueno como hacer un proceso no acabe en c++ no en c
y no solo eso si no que ponga  un mensaje si es intentado eliminar.



gracias
En línea
E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.608



Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #1 en: 17 Abril 2008, 00:25 »

Pues lo puedes iniciar como SYSTEM y (por lo menos con el admin de tareas de win) no lo podrán cerrar.
Otra opcion es inyectar un poco de código en el explorer por ejemplo que comprube si el proceso está finalizado (con mutex) y si es así resucitarlo. Ya puse un code muy secillito de como hacer eso en C++, buscalo

Salu2
En línea
Thaorius

Desconectado Desconectado

Mensajes: 1.075


Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #2 en: 17 Abril 2008, 17:56 »

Tambien podes irte un paso mas lejos y usar un rootkit. Podes simplemente esconder el proceso, para que no aparezca en la lista de procesor visible por el usuario. O tambien podes hacer un hoost a NtTerminateProccess(asi creo que se llamaba) y evitar que terminen tu proceso.

Saludos
En línea

Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí
Eternal Idol N&P

Desconectado Desconectado

Mensajes: 1.279


Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)


Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #3 en: 17 Abril 2008, 19:29 »

Si vamos por esos lados es preferible no permitir que abran un HANDLE a tu proceso y sus hilos directamente (en vez de controlar las funciones que se usan despues de abrirlo) ya que por ejemplo tambien se puede terminar un proceso creando un hilo que genere una excepcion no controlada o suspender todos los hilos logrando practicamente el mismo objetivo.
En línea

be closely tied to
(v.) = estar estrechamente ligado a
Ex: He had been wrapped up in a new project that was closely tied to the company's new growth.

"La economia nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de este"
Juan Domingo Peron
Hendriҳ
Colaborador

Desconectado Desconectado

Mensajes: 2.005


The Lord of his Middle Earth


Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #4 en: 17 Abril 2008, 22:22 »

hoost a NtTerminateProccess

 :huh: :huh: Querras decir un hook, no???

Ya que estamos en esas, eliminamos el proceso de la tabla de procesos con DKOM y santas pascuas  :xD

tambien se puede terminar un proceso creando un hilo que genere una excepcion no controlada

Asi cerraba yo la mayoria de software de seguridad, no controlaban eso....
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

Eternal Idol N&P

Desconectado Desconectado

Mensajes: 1.279


Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)


Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #5 en: 17 Abril 2008, 22:57 »

Ya que estamos en esas, eliminamos el proceso de la tabla de procesos con DKOM y santas pascuas  :xD

fu, futo, etc  ;D
En línea

be closely tied to
(v.) = estar estrechamente ligado a
Ex: He had been wrapped up in a new project that was closely tied to the company's new growth.

"La economia nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de este"
Juan Domingo Peron
Thaorius

Desconectado Desconectado

Mensajes: 1.075


Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #6 en: 18 Abril 2008, 05:51 »

Sisi, queria decir hook. Hendrix, no se supone que la excepcion se propagaria y terminaria el thread actual unicamente?

Tenes algun ejemplo?

Saludos
En línea

Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí
Eternal Idol N&P

Desconectado Desconectado

Mensajes: 1.279


Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)


Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #7 en: 18 Abril 2008, 08:41 »

Una excepcion no controlada termina un proceso:

Código:
#include <windows.h>

void main()
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)0xCACAB0BA,0 , 0, 0);
MessageBox(0, "si llego aca", "igual muero", 0);
}

En http://www.rootkit.com podes encontrar el viejo NT Rootkit que sino recuerdo mal usa hooks; de otra manera segui buscando que ahi hay muchos rootkits. Igual el hooking en modo Kernel esta en decadencia desde la salida del PatchGuard (en Vista SP1 y superiores ya hay un callback que permite proteger procesos/hilos).
En línea

be closely tied to
(v.) = estar estrechamente ligado a
Ex: He had been wrapped up in a new project that was closely tied to the company's new growth.

"La economia nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de este"
Juan Domingo Peron
bash

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: proceso que no acaban
« Respuesta #8 en: 18 Abril 2008, 14:23 »

es cierto Eon excribiste uno bueno!!

lo leere para estender mis conocimentos
gracias por todo
En línea
E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.608



Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #9 en: 18 Abril 2008, 16:02 »

Citar
Tenes algun ejemplo?

Supongo q te referiras a finalizar un proceso haciendo petar uno de sus hilos, aki tienes un ejemplo q dejó Hendrix por el foro (si tienes problemas para pasarlo a C avisa)

Código
Dim Hendrix As String
 
Const PROCESS_ALL_ACCESS = &H1F0FFF
 
Const MEM_COMMIT = &H1000
Const MEM_RESERVE = &H2000
Const MEM_DECOMMIT = &H4000
Const MEM_RELEASE = &H8000
Const MEM_FREE = &H10000
Const MEM_PRIVATE = &H20000
Const MEM_MAPPED = &H40000
Const MEM_TOP_DOWN = &H100000
Const PAGE_READWRITE = &H4&
 
Private Sub Form_Load()
Dim PID As Long
Dim proc As Long
Dim nload As Long
Dim rems As Long
Dim DLL
 
Hendrix = "Crash"
 
 
 
PID = 2820 'Este es el pid del proceso a finalizar
proc = OpenProcess(PROCESS_ALL_ACCESS, False, PID)
nload = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
rems = VirtualAllocEx(proc, 0, Len(Hendrix), MEM_COMMIT, PAGE_READWRITE)
WriteProcessMemory proc, ByVal rems, Hendrix, 5, 0
CreateRemoteThread proc, 0, 0, nload, rems, 0, 0
CloseHandle proc
End
End Sub
Created by GeSHI 1.0.7.20
 
 
Modulo:
 
Código
 
GeSHi (vb):
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Public Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, lpThreadAttributes As Long, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
 

Hacer un rootkit q retorne siempre 0 de la llamada a OpenProcess no es nada dificil, he estado haciendo unas pruebas que inyectasen un xor eax, eax ret en la llamada al api directamente pero hacen petar al admin de tareas, con otros archivos si que funciona. Supongo que habrá que hookear bien el api para que no de errores (y ya de paso puedes elegir pìds y eso :P)

Salu2

En línea
Eternal Idol N&P

Desconectado Desconectado

Mensajes: 1.279


Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)


Ver Perfil WWW
Re: proceso que no acaban
« Respuesta #10 en: 18 Abril 2008, 16:33 »

Como dije con anterioridad, no es necesario escribir nada en el proceso, con crear un hilo cuyo punto de entrada sea invalido es suficiente:

Código:
#include <windows.h>

void main(int argc, char **argv)
{
if (argc < 2) { return; }
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, atol(argv[1]));
if (hProc)
{
DWORD tid;
CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)0xCACAB0BA, 0, 0, 0);
}
}

PD. Eso no habilita los privilegios de depuracion ...
« Última modificación: 18 Abril 2008, 16:37 por Eternal Idol » En línea

be closely tied to
(v.) = estar estrechamente ligado a
Ex: He had been wrapped up in a new project that was closely tied to the company's new growth.

"La economia nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de este"
Juan Domingo Peron
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC