Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dapz en 21 Agosto 2017, 20:44 pm



Título: Terminar Proceso usando funciones NTAPI
Publicado por: dapz en 21 Agosto 2017, 20:44 pm
Usando NtOpenProcess para conseguir el handle del proceso NtTerminateProcess para acabarlo

Código
  1. #include <Windows.h>
  2. #include <winternl.h>
  3. #include <stdio.h>
  4.  
  5.  
  6. #pragma comment(lib, "ntdll.lib")
  7.  
  8. typedef struct _CLIENT_ID
  9. {
  10.     PVOID UniqueProcess;
  11.     PVOID UniqueThread;
  12. } CLIENT_ID, *PCLIENT_ID;
  13.  
  14. EXTERN_C NTSTATUS NTAPI NtOpenProcess(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID);
  15. EXTERN_C NTSTATUS NTAPI NtTerminateProcess(HANDLE, NTSTATUS);
  16.  
  17. void main() {
  18. OBJECT_ATTRIBUTES oa;
  19. HANDLE hProc;
  20. ULONG pid;
  21. CLIENT_ID cid;
  22.  
  23.  
  24. printf("\n introduce pid-> ");
  25. scanf("%ld", &pid);
  26. cid.UniqueProcess = (HANDLE)pid;
  27. cid.UniqueThread = 0;
  28. InitializeObjectAttributes(&oa, NULL, 0, NULL, NULL);
  29. if(NT_SUCCESS(NtOpenProcess(&hProc, PROCESS_TERMINATE, &oa, &cid))) {
  30. NTSTATUS status = NtTerminateProcess(hProc, 1);
  31. if(NT_SUCCESS(status)) {
  32. MessageBoxW(0, TEXT("proceso terminado"), TEXT("test"), MB_ICONINFORMATION);
  33. }
  34. }
  35. NtClose(hProc);
  36.  
  37.  
  38.  
  39.  
  40. }


Título: Re: Terminar Proceso usando funciones NTAPI
Publicado por: Yuki en 21 Agosto 2017, 22:50 pm
Muy interesante, supongo que como trabaja con ntdll debe ser más rápido que usar OpenProcess de Kernel32, para un servidor de rat de otro foro use varias funciones de NT para administrar los procesos (suspender, resumir, destruir, etc), como siempre una librería muy interesante.

Gracias por mostrarlo!


Título: Re: Terminar Proceso usando funciones NTAPI
Publicado por: josue9243 en 28 Agosto 2017, 18:51 pm
Kernel32 envía algunas funciones a NtDll, ejemplo CreateThread, termina en RtlCreateRemoteThread. (Serian como Acceso Directos, o funciones que ahorran parametros)

Paso por mínimo 4 funciones iguales creo.