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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 77
171  Seguridad Informática / Bugs y Exploits / Metasploit en redes P2P en: 3 Enero 2016, 02:50 am
Buenas, supongamos que instalo un troyano en mi ordenador y quiero que sea explotable. ¿necesitaría que fuera un servidor no? ¿que tuviera puertos abiertos para que sea explotable desde internet?.

Ahora bien, supongamos que el troyano usa P2P y esta conectado en una amplia red de ordenadores, imaginemos que soy un nodo de ellos y quiero utilizar su puerta trasera con metasploit, ¿se podría hacer verdad?, una camara remota o lo que sea.

Pero debería de ser con la conexión red del troyano que es el que está conectado en la P2P, con metasploit no podría conectarme a el porque no es servidor, solo es servidor y tiene el socket mi nodo P2P, luego debería de ejecutar metasploit desde ese nodo.

¿es posible?.

Saludos y grache.
172  Foros Generales / Dudas Generales / Re: descifrar urgenteeeeeeeeeeeee en: 29 Diciembre 2015, 21:27 pm
Ahora es cuando se me queda a mi la cara de gili**

Pero oye mira ya he aprendido a pasar de morse a binario.
173  Programación / Programación C/C++ / Re: ¿Por qué este servicio no muestra ventana? en: 28 Diciembre 2015, 13:51 pm
MB_SERVICE_NOTIFICATION

Eso es, así si que muestra una ventana. He probado a ponerlo en diferentes zonas del código pero solo me ha funcionado en el _tmain que lo he puesto en su primera línea:

Código
  1. MessageBox(NULL, L"EJECUCION DE ADMIN", L"EJECUCION DE ADMIN", MB_SERVICE_NOTIFICATION | MB_OK);

¿Cual sería la línea o la función donde debería de poner mi código ¿en el _tmain?, quiero decir donde meter un programa en su conjunto con sus threads y todo, ¿solo con el _tmail me basta?, porque había cosas de iniciaizar servicio y controlador y demás que ni idea, y supongo que en mitad de eso no sea buena idea meter el codigo.

¿Dónde debería ponerlo?

Muchas gracias y un saludo.

Edito: Una vez que lo compilo lo instalo con:

Código:
C:\WINDOWS\system32>sc create mysample2 binpath= "C:\Users\Usuario\Desktop\servicio2.exe"

Entonces lo inicio desde el administrador de tareas y muestra estado  "en ejecución", pero no muestra ninguna ventana, sin embargo al ejecutarlo en VS13 si lo hacía, ¿que pasa?.

El objetivo final es comprobar que un servicio se va a ejecutar siempre como localsystem a fin de cuentas concederá los mismos permisos que de administrador si de código hablamos que es lo que busco, y que lo haga sin UAC, solo lo pida en su instalación y después ya sea capaz de actuar siempre con esos permisos, nada más.

También me he dado cuenta que "sc delete "nombreservicio" elimina el servicio, pero no su ejecutable asociado, por lo tanto podrían volverlo a instalar sin problema de nuevo.

Un saludo.
174  Programación / Programación C/C++ / Re: ¿Por qué este servicio no muestra ventana? en: 28 Diciembre 2015, 00:16 am
Porque no estas creando ninguna ventana. Ve como crear una ventana, en WINAPI me parece que es con CreateWindow, o puedes mostrar los resultados en una consola.

??

Código
  1. MessageBox(NULL, L"EJECUCION DE ADMIN", L"EJECUCION DE ADMIN", MB_ICONINFORMATION | MB_OK);
  2.  

¿No debería esto de mostrar una ventana?, al compilarlo como ejecutable la muestra otra cosa sea que no llegue a esa línea de código que es lo que me pregunto, ¿dónde debería de ir el código? ¿El main de la aplicación, del servicio, lo que quiero que haga?, bueno me quiero adelantar ahora, pero realmente tendré que leer y aprender de servicios un poco, y ver si este es el camino que busco.

¿En qué linea debería de mostrar datos o una ventana?.

Saludos.
175  Programación / Programación C/C++ / Re: UAC - Correr siempre como administrador app C++ en: 27 Diciembre 2015, 22:36 pm
No se si lo has resuelto pero es muy sencillo. Una vez que el usuario le da la primera vez acceso de admin, lo que tienes que hacer es que se añada al registro a HKEY_LOCAL_MACHINE -> Se ejecutara al inicio, en cualquier usuario, y como administrador.
Un saludo!

Lo he comprobado en reiteradas ocasiones y no se produce lo que dices, te invito a probarlo tu mismo, la aplicación que requiere elevación (UAC) no se ejecutará y la que no requiere se puede ejecutar sin problemas y de hecho lo hace.

Solo se puede ejecutar como admin si corres desde una cuenta de admin y el manifiesto que tiene es de "highestavailable", si es de "requireadministrator", no te librarás del UAC.

Es una pena que no se pueda, la verdad.

Saludos.

Se me ocurre una idea de crear un servicio que corra como localsystem, que inyecte una dll en un proceso, que esa dll obtenga el token del servicio que la ha invocado (no creo que se pueda, pero.. ¿y si si?) y que la dll corra como localsystem, tachan, no se si la DLL podría obtener el token del proceso a la que se inyecta, sería la osti* si este corriese como SYSTEM o admin.


176  Programación / Programación C/C++ / ¿Por qué este servicio no muestra ventana? en: 27 Diciembre 2015, 21:57 pm
Es un copy/paste hay muchas cosas que cambiaría si y no es la manera.. pero simplemente quiero que el servicio muestre una ventana diciendo si soy admin o no cuando se ejecuta nada más, es de codeproyect el código.

Código
  1. #include <Windows.h>
  2. #include <tchar.h>
  3.  
  4. bool ejecucion_admin()
  5. {
  6. HANDLE h = NULL;
  7. if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &h)){
  8. TOKEN_ELEVATION Elevation;
  9. DWORD cbSize = sizeof(TOKEN_ELEVATION);
  10. if (GetTokenInformation(h, TokenElevation, &Elevation, sizeof(Elevation), &cbSize)){
  11. CloseHandle(h);
  12. return Elevation.TokenIsElevated;
  13. }
  14. }
  15. CloseHandle(h);
  16. return false;
  17. }
  18.  
  19. SERVICE_STATUS        g_ServiceStatus = { 0 };
  20. SERVICE_STATUS_HANDLE g_StatusHandle = NULL;
  21. HANDLE                g_ServiceStopEvent = INVALID_HANDLE_VALUE;
  22.  
  23. VOID WINAPI ServiceMain(DWORD argc, LPTSTR *argv);
  24. VOID WINAPI ServiceCtrlHandler(DWORD);
  25. DWORD WINAPI ServiceWorkerThread(LPVOID lpParam);
  26.  
  27. #define SERVICE_NAME  _T("My Sample Service")
  28.  
  29. int _tmain(int argc, TCHAR *argv[])
  30. {
  31. OutputDebugString(_T("My Sample Service: Main: Entry"));
  32.  
  33. SERVICE_TABLE_ENTRY ServiceTable[] =
  34. {
  35. { SERVICE_NAME, (LPSERVICE_MAIN_FUNCTION)ServiceMain },
  36. { NULL, NULL }
  37. };
  38.  
  39. if (StartServiceCtrlDispatcher(ServiceTable) == FALSE)
  40. {
  41. OutputDebugString(_T("My Sample Service: Main: StartServiceCtrlDispatcher returned error"));
  42. return GetLastError();
  43. }
  44.  
  45. OutputDebugString(_T("My Sample Service: Main: Exit"));
  46. return 0;
  47. }
  48.  
  49.  
  50. VOID WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
  51. {
  52. DWORD Status = E_FAIL;
  53.  
  54. OutputDebugString(_T("My Sample Service: ServiceMain: Entry"));
  55.  
  56. g_StatusHandle = RegisterServiceCtrlHandler(SERVICE_NAME, ServiceCtrlHandler);
  57.  
  58. if (g_StatusHandle == NULL)
  59. {
  60. OutputDebugString(_T("My Sample Service: ServiceMain: RegisterServiceCtrlHandler returned error"));
  61. goto EXIT;
  62. }
  63.  
  64. // Tell the service controller we are starting
  65. ZeroMemory(&g_ServiceStatus, sizeof (g_ServiceStatus));
  66. g_ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
  67. g_ServiceStatus.dwControlsAccepted = 0;
  68. g_ServiceStatus.dwCurrentState = SERVICE_START_PENDING;
  69. g_ServiceStatus.dwWin32ExitCode = 0;
  70. g_ServiceStatus.dwServiceSpecificExitCode = 0;
  71. g_ServiceStatus.dwCheckPoint = 0;
  72.  
  73. if (SetServiceStatus(g_StatusHandle, &g_ServiceStatus) == FALSE)
  74. {
  75. OutputDebugString(_T("My Sample Service: ServiceMain: SetServiceStatus returned error"));
  76. }
  77.  
  78. /*
  79. * Perform tasks neccesary to start the service here
  80. */
  81. OutputDebugString(_T("My Sample Service: ServiceMain: Performing Service Start Operations"));
  82.  
  83. // Create stop event to wait on later.
  84. g_ServiceStopEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
  85. if (g_ServiceStopEvent == NULL)
  86. {
  87. OutputDebugString(_T("My Sample Service: ServiceMain: CreateEvent(g_ServiceStopEvent) returned error"));
  88.  
  89. g_ServiceStatus.dwControlsAccepted = 0;
  90. g_ServiceStatus.dwCurrentState = SERVICE_STOPPED;
  91. g_ServiceStatus.dwWin32ExitCode = GetLastError();
  92. g_ServiceStatus.dwCheckPoint = 1;
  93.  
  94. if (SetServiceStatus(g_StatusHandle, &g_ServiceStatus) == FALSE)
  95. {
  96. OutputDebugString(_T("My Sample Service: ServiceMain: SetServiceStatus returned error"));
  97. }
  98. goto EXIT;
  99. }
  100.  
  101. // Tell the service controller we are started
  102. g_ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
  103. g_ServiceStatus.dwCurrentState = SERVICE_RUNNING;
  104. g_ServiceStatus.dwWin32ExitCode = 0;
  105. g_ServiceStatus.dwCheckPoint = 0;
  106.  
  107. if (SetServiceStatus(g_StatusHandle, &g_ServiceStatus) == FALSE)
  108. {
  109. OutputDebugString(_T("My Sample Service: ServiceMain: SetServiceStatus returned error"));
  110. }
  111.  
  112. // Start the thread that will perform the main task of the service
  113. HANDLE hThread = CreateThread(NULL, 0, ServiceWorkerThread, NULL, 0, NULL);
  114.  
  115. OutputDebugString(_T("My Sample Service: ServiceMain: Waiting for Worker Thread to complete"));
  116.  
  117. // Wait until our worker thread exits effectively signaling that the service needs to stop
  118. WaitForSingleObject(hThread, INFINITE);
  119.  
  120. OutputDebugString(_T("My Sample Service: ServiceMain: Worker Thread Stop Event signaled"));
  121.  
  122.  
  123. /*
  124. * Perform any cleanup tasks
  125. */
  126. OutputDebugString(_T("My Sample Service: ServiceMain: Performing Cleanup Operations"));
  127.  
  128. CloseHandle(g_ServiceStopEvent);
  129.  
  130. g_ServiceStatus.dwControlsAccepted = 0;
  131. g_ServiceStatus.dwCurrentState = SERVICE_STOPPED;
  132. g_ServiceStatus.dwWin32ExitCode = 0;
  133. g_ServiceStatus.dwCheckPoint = 3;
  134.  
  135. if (SetServiceStatus(g_StatusHandle, &g_ServiceStatus) == FALSE)
  136. {
  137. OutputDebugString(_T("My Sample Service: ServiceMain: SetServiceStatus returned error"));
  138. }
  139.  
  140. EXIT:
  141. OutputDebugString(_T("My Sample Service: ServiceMain: Exit"));
  142.  
  143. return;
  144. }
  145.  
  146.  
  147. VOID WINAPI ServiceCtrlHandler(DWORD CtrlCode)
  148. {
  149. OutputDebugString(_T("My Sample Service: ServiceCtrlHandler: Entry"));
  150.  
  151. switch (CtrlCode)
  152. {
  153. case SERVICE_CONTROL_STOP:
  154.  
  155. OutputDebugString(_T("My Sample Service: ServiceCtrlHandler: SERVICE_CONTROL_STOP Request"));
  156.  
  157. if (g_ServiceStatus.dwCurrentState != SERVICE_RUNNING)
  158. break;
  159.  
  160. /*
  161. * Perform tasks neccesary to stop the service here
  162. */
  163.  
  164. g_ServiceStatus.dwControlsAccepted = 0;
  165. g_ServiceStatus.dwCurrentState = SERVICE_STOP_PENDING;
  166. g_ServiceStatus.dwWin32ExitCode = 0;
  167. g_ServiceStatus.dwCheckPoint = 4;
  168.  
  169. if (SetServiceStatus(g_StatusHandle, &g_ServiceStatus) == FALSE)
  170. {
  171. OutputDebugString(_T("My Sample Service: ServiceCtrlHandler: SetServiceStatus returned error"));
  172. }
  173.  
  174. // This will signal the worker thread to start shutting down
  175. SetEvent(g_ServiceStopEvent);
  176.  
  177. break;
  178.  
  179. default:
  180. break;
  181. }
  182.  
  183. OutputDebugString(_T("My Sample Service: ServiceCtrlHandler: Exit"));
  184. }
  185.  
  186.  
  187. DWORD WINAPI ServiceWorkerThread(LPVOID lpParam)
  188. {
  189. //MessageBoxA(NULL, "Error al abrir dll", "Cannot open DLL", MB_ICONERROR | MB_OK);
  190. OutputDebugString(_T("My Sample Service: ServiceWorkerThread: Entry"));
  191. if (ejecucion_admin())
  192. MessageBox(NULL, L"EJECUCION DE ADMIN", L"EJECUCION DE ADMIN", MB_ICONINFORMATION | MB_OK);
  193. else
  194. MessageBox(NULL, L"EJECUCION USUARIO", L"EJECUCION SIN NINGUN TIPO DE PRIVILEGIOS", MB_ICONINFORMATION | MB_OK);
  195. //  Periodically check if the service has been requested to stop
  196. while (WaitForSingleObject(g_ServiceStopEvent, 0) != WAIT_OBJECT_0)
  197. {
  198. MessageBoxA(NULL, "Error al abrir dll", "Cannot open DLL", MB_ICONERROR | MB_OK);
  199. /*
  200. * Perform main service function here
  201. */
  202.  
  203. //  Simulate some work by sleeping
  204. Sleep(3000);
  205. }
  206.  
  207. OutputDebugString(_T("My Sample Service: ServiceWorkerThread: Exit"));
  208.  
  209. return ERROR_SUCCESS;
  210. }
  211.  

Lo instalé y está en ejecución pero no muestra nada.

Bueno lo dejaré por hoy, ya lo miraré con detalle como funciona y demás.

O de otra manera, ¿dónde debería de ir el código?.

Saludos.
177  Programación / Programación C/C++ / Re: UAC - Correr siempre como administrador app C++ en: 27 Diciembre 2015, 20:20 pm
Bueno tras reiniciar 2 veces (una para ver si funcionaba highesthavailable y otra para ver si funcioaba asinvoker), me he dado cuenta que ninguna de las 2 ha funcionado debido a que el anclado al registro ha debido de ser incorrecto, voy a probar a anclarlo a HKEY_LOCAL_MACHINE y eliminaré el registro anterior, a ver si así funciona.

Por lo que dices del registro, también lo había pensado desconozco si funcionará como quiero, creo que los servicios siempre corren como administrador (corregidme si me equivoco), que no requieren elevación, por lo tanto podría ser una salida... pero tengo que investigar mucho más acerca de ellos, voy a probar a reiniciar de nuevo, en unos minutos estaré editanto a ver si el highesthavailable es capaz de autoelevarse.

Parece que el de HKET_CURRENT_USER es para programas dentro de %appdata% ... que bien, por fin he eliminado el onedrive (le eliminé el anclado al registro :D).

Saludos.

Edito: wtf, he creado 2 claves en el registro para que se ejecutarán al reiniciar 2 programas de escritorio iguales uno con "asinvoker" y otro con "highestavailable" para ver si el segundo se elevaba... bueno tras solucionar un sencillo error he conseguido que los registros ejecutaran la aplicación de "asinvoker" pero la de "highestavailable" como imaginaba no fueron capaces de ejecutarla, a pesar de que pensaba que esta cuenta actuaba como la de admin.. funcionaría si fuese cuenta pura de admin que no debe de ser el caso.

En resumen, solo se ejecuta la aplicación con manifiesto "asinvoker", las que necesitan elevación de privilegios y tienen uac no se ejecutan tan fácilmente con un simple anclado al registro.

Por lo tanto parece que la única salida está en los servicios, ¿funcionarán?, ¿permitirán correr una aplicación como administrador sin necesidad de llamar al UAC?, ya lo veremos.

En mi siguiente aventura trataré de crear un servicio y correrlo siempre como administrador.

Saludos.
178  Programación / Programación C/C++ / Re: UAC - Correr siempre como administrador app C++ en: 27 Diciembre 2015, 19:49 pm

¿Con el manifiesto?, no.. si la pongo un manifiesto para ejecutarse va a necesitar que el usuario haga doble clock y la eleve privilegios, de otra manera no funcionará, bien yo quiero que el usuario lo haga una vez si hace falta y las demás se hagan de manera automatizada.

Es decir, pongo manifiesto a mi aplicación -> la ejecutan -> funciona con privilegios. La anclo al registro, reinicio el ordenador y esa aplicación es incapaz de correr debido a que necesita volver a ser elevada por el usuario, por lo tanto no funcionaría.

Con el manifiesto deberíamos estar elevandola cada vez que quisieramos ejecutarla, y yo quiero que corra en segundo plano, y creo que hacerle al cliente elevarla cada vez que inicia sesión no es la mejor manera.

No funcionaría.

Saludos.

Edito: Hay 3 tipos de manifiesto el de "asinvoker", "biggestavailable", "requireadministrator".

Ahora me pregunto si la app sería capaz de correr con "biggestavailable" anclandola al registro y reiniciando el ordenador, si sería capaz de correr con permisos. No creo, con "requireadministrator" no funciona, pero por probar..

http://stackoverflow.com/questions/12651124/difference-between-highestavailable-and-requireadministrator-in-manifest-in

Me llevo una alegría, puede que biggestavailable pueda funcionar para lo que estoy buscando.

A ver que tal va la cosa:

Código:
C:\WINDOWS\system32>REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v pruebauac /t REG_SZ /d \"C:\Users\Usuario\Desktop\instalador.exe"
179  Programación / Programación C/C++ / UAC - Correr siempre como administrador app C++ en: 27 Diciembre 2015, 15:14 pm
Buenas, estoy creando un instalador para una aplicación que se va a correr siempre con privilegios de administrador, sino no tendría mucho sentido.

Para ello, pido permisos UAC en el primer momento y quiero que no se vuelvan a pedir más veces después de la primera.

Resulta que pensaba que con runas.exe se podía hacer, pero me he dado cuenta de que no tiene mucho que ver, antes en otros años quizás si se podía ahora no.

Código:
C:\Users\Usuario\Desktop>runas /savecred /user:Usuario "instalador.exe"

Me pide la contraseña y lo ejecuto, ya no me la vuelve a pedir más veces, OK pero no me aporta ningún privilegio de administrador, de hecho la aplicación no se ejecuta como tal a pesar de que he dicho que se ejecute como el usuario actual y he dado mi contraseña, vamos lo que hace es una ejecución normal de doble click, solo que te pide la contraseña porque permite pasar de un usuario a otro sin cerrar sesión, luego parece que no me interesa en absoluto runas.exe para la tarea.

Lo único que se me ocurre es lanzar el mensaje de UAC en runtime en bucle o algo así.

¿Alguna idea de como conseguirlo hacer? No me refiero solo a exploits... en plan me refiero a que a través de la contraseña del usuario y el usuario en sesión, alguna manera o comando para lanzarla como administrador, algunas ideas.

Saludos
180  Programación / Programación C/C++ / Re: Conexión HTTPS con openssl C++ en: 21 Diciembre 2015, 17:51 pm
Gracias por tu ayuda. tuve que cambiar algunas parametros pero me funciono.

De nada hijo, un placer ayudar.

Saludos.
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines