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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 456
821  Seguridad Informática / Hacking / Re: if someone know about bots answer--si alguien sabe de bots contesten esto plz en: 27 Mayo 2016, 03:06 am
Hecho, ya respondí!
822  Programación / Desarrollo Web / Re: PQR'S en: 23 Mayo 2016, 21:13 pm
Hola, genial... tienes la rueda del ferrary, ahora te falta el chasis, motor, pintura, caja, etc.

Un sistema PQR necesita muchas secciones y muchos datos, tablas, etc, lo primero que debes hacer es crear un flijo de uso y en base a eso crear la db, por ejemplo.. ingresa el admin, que administra? puede administrar usuarios, tickets, debes administrar zonas horarias, correos de envio, sincronizaciones, etc.

Haz un ezquema sobre la navegación del usuario, que cosas debe poder ver y/o administrar, luego de eso haz las tablas en un modelo ERM, puedes usar mysql workbench, es muy facil usarlo o si no hazlo en papel, luego que tengas la idea lista haz las tablas y las columnas.

De todas maneras te doy algunas pistas:

Necesitas administrar usuarios asi que necesitas una tabla de usuarios
No todos los usuarios hacen lo mismo asi que necesitas grupos de usuarios
Cada grupo necesita permisos específicos, ahora... esos permisos serán fijos o dinamicos? esto quiere decir,,, el administrador puede crear un nuevo grupo con nuevos permisos?
En ese caso necesitas una tabla de usuarios, tabla de grupos de usuarios, tabla de permisos, tabla relacion de usuarios y grupos, tabla relacion de permisos y grupos, de esta manera un mismo usuario puede tener dos grupos simultaneamente, puede ser moderador y usuario final y hacer ambas cosas.

Los temas pueden ser reclamo, queja o sugerencia, será una sola? puede ser mas de un tipo? depende de eso si la tabla del tema tendrá una columna de tipo con una relacion de "mensaje y tipo" o una tabla intermedia relacional entre el mensaje y el tipo de muchos a muchos.

Ahora, esto se parece a un tracker, esto quiere decir que debe tener asignaciones, alguien debe tomar y responder esos tickets, esto quiere decir que debe existir una tabla de relaciones entre el tema y usuarios participantes de los cuales se dividen en dos: adjuntos (cc) y asignados, esto quiere decir que en un ticket una o dos personas pueden ser asignadas para resolver la incidencia pero pueden estar copiados uno o mas personas que pueden tener la misma petición y para que alguien pueda estar copiado y tener la misma petición el usuario primero debe saber que ya existe una petición similar, por lo cual debe existir un buscador.

Fuera de esto vas a hacer proyecciones o reportes de uso? por ejemplo, cuantos usuarios están esperando sin una respuesta, cuantos tickets están sin asignar, cuantos tickets fueron finalizados en el mes, cual es el % de finalización mensual, el usuario asignado debiera tener un contador de temas asignados y terminados?

Por otro lado los usuarios asignados y copiados deben poder ver el historial de sus tickets, deben poder ver que ticket les falta por responder o si alguien les respondió su respuesta, para eso debes crear una tabla de movimientos e historial asociado a los usuarios.

Por otro lado debes considerar si tu db será relacional o no, si será normalizada o no, por ejemplo si vas a tener muchos tickets debes crear una tabla desnormalizada o si no vas a tener problemas cuando llegues a un limite de mensajes, especialmente en el buscador, debieras tener una tabla con valores duplicados desnormalizados para que cuando alguien haga una búsqueda no se cuelgue la aplicación para todos los demás.

Recuerda tener mucho cuidado con la codificación de caracteres, crear índices, llaves foreanas, si la modificación va a causar un efecto en cascada o no, si no defines bien eso podrás tener tablas corruptas ya que tendrás relaciones con un id no existente.

Por otro lado te recomiendo no hacer procedimientos almacenados, eso es una muy mala práctica, la basde de datos es base de datos, no es capa de negocio, todos los calculos se realizan por código y no a traves del motor de la base de datos o si no cuando crezca se te va a caer muy rápido ya que tendrás las cargas de las consultas y de los procedimientos y vas a necesitar mucho hardware y gastar mucho dinero, en ves de eso la base de datos debe comportarse solo como base de datos y la aplicación debe contar con su capa de negocios (la lógica de la app) donde haga todos los calculos sobre que tipo de consultas realizar a la db, de esa manera si la logica crece en uso de cpu podrás tener la capa de presentación o negocio con un balanceador de carga con sitios replicados y una sola base de datos, en cambio si llevas todo a la base de datos no tendras otra que replicar la base de datos en varios servidores que terminarán costandote mucho mas y será mas dificil de administrar, necesitarás mas personal encargado de la db y será todo un desastre, y peor aun si quiere hacer un solo procedimiento almacenado, eso no se hace, es como andar en bicicleta con las ruedas del juguete de mi hijo de 1 dolar.

Espero que esto te de algunas luces sobre lo que debes tener en cuenta antes de hacer tu db.

Saludos.
823  Programación / Desarrollo Web / Re: background-repeat-y al reves? en: 18 Mayo 2016, 07:28 am
Usando solo CSS sin javascript: http://stackoverflow.com/questions/5768998/how-to-flip-background-image-using-css
824  Sistemas Operativos / GNU/Linux / Re: Tengo problemas con ssldump y wireshark en: 16 Mayo 2016, 22:24 pm
Vaya, y yo que cambié el método de cifrado por defecto justamente para aumentar la seguridad en el intercambio SSL y ahora resulta que es lo que me está impidiendo hacer la reversa xD, creo que optaré por usar RSA, lo había deshabilitado ya que me aparecía un problema conocido de una vulnerabilidad con el tipo de cifrado en RSA tal como estaba configurado.

Finalmente en el ssl.conf del apache que venia por defecto:
Código:
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES

Puse este orden:
Citar
# Disable SSLv3 Support for POODLE Attacks and insecure methods.
# SSLProtocol all -SSLv3 -SSLv2
# SSLHonorCipherOrder on
# SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"

El problema es que si habilito RSA nuevamente volveré a tener alertas de seguridad.

De todas maneras no es que quiera hacer un ataque, lo que quiero es realizar monitoreo ssl a servidores en modo promiscuo sin tener que intervenir el servidor web, el problema es que si hay un servidor que necesite monitorear que tenga el método de cifrado ECDHE antepuesto a los demás quiere decir que será imposible hacer el seguimiento, estaré obligado a hacer un reverse proxy y aumentar la capacidad del hardware a la altura del servidor físico donde se aloja el servidor WEB.
825  Foros Generales / Dudas Generales / Re: Servidor FTP y conexión fallida en: 16 Mayo 2016, 22:12 pm
Hola me interesaria saber si puedo poner un servidor FTP en una maquina virtual  

Claro:

instalas virtualbox
Creas una maquina virtual
En la configuración de red le pones "modo puente"
Instalas el sistema operativo
Luego le instalas el servidor ftp (pureftp, filezilla server, proftp, etc)
Y listo!

Desde Windows: https://tutorialesfaciles.wordpress.com/windows/montar-servidor-ftp-con-filezilla-server/
Desde GNU/Linux: http://www.redeszone.net/gnu-linux/proftpd/
826  Sistemas Operativos / GNU/Linux / Re: Tengo problemas con ssldump en: 16 Mayo 2016, 04:42 am
Código:
[root@xxx ~]# ssldump -k /etc/letsencrypt/live/xxx/privkey.pem -i eth0 -d -P port 443
New TCP connection #1: 199.15.233.162(51212) <-> xxx(443)
1 1  0.0387 (0.0387)  C>S  Handshake
      ClientHello
        Version 3.3
        cipher suites
        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
        TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
        TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
        TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
        TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
        TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
        TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
        TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
        TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
        TLS_DHE_RSA_WITH_AES_256_CBC_SHA
        TLS_DHE_DSS_WITH_AES_256_CBC_SHA
        TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
        TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
        TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
        TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
        TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
        TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
        TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
        TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
        TLS_RSA_WITH_AES_256_GCM_SHA384
        TLS_RSA_WITH_AES_256_CBC_SHA256
        TLS_RSA_WITH_AES_256_CBC_SHA
        TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
        TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
        TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
        TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
        TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
        TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
        TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
        TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
        TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
        TLS_DHE_RSA_WITH_AES_128_CBC_SHA
        TLS_DHE_DSS_WITH_AES_128_CBC_SHA
        TLS_DHE_RSA_WITH_SEED_CBC_SHA
        TLS_DHE_DSS_WITH_SEED_CBC_SHA
        TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
        TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
        TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
        TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
        TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
        TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
        TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
        TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
        TLS_RSA_WITH_AES_128_GCM_SHA256
        TLS_RSA_WITH_AES_128_CBC_SHA256
        TLS_RSA_WITH_AES_128_CBC_SHA
        TLS_RSA_WITH_SEED_CBC_SHA
        TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
        TLS_RSA_WITH_IDEA_CBC_SHA
        TLS_ECDHE_RSA_WITH_RC4_128_SHA
        TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
        TLS_ECDH_RSA_WITH_RC4_128_SHA
        TLS_ECDH_ECDSA_WITH_RC4_128_SHA
        TLS_RSA_WITH_RC4_128_SHA
        TLS_RSA_WITH_RC4_128_MD5
        TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
        TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
        TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
        TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
        TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
        TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
        TLS_RSA_WITH_3DES_EDE_CBC_SHA
        TLS_DHE_RSA_WITH_DES_CBC_SHA
        TLS_DHE_DSS_WITH_DES_CBC_SHA
        TLS_RSA_WITH_DES_CBC_SHA
        TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
        TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
        TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
        TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
        TLS_RSA_EXPORT_WITH_RC4_40_MD5
        TLS_EMPTY_RENEGOTIATION_INFO_SCSV
        compression methods
                  NULL
1 2  0.0459 (0.0072)  S>C  Handshake
      ServerHello
        Version 3.3
        session_id[0]=

        cipherSuite         TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        compressionMethod                   NULL
1 3  0.0459 (0.0000)  S>C  Handshake
      Certificate
1 4  0.0459 (0.0000)  S>C  Handshake
      ServerKeyExchange
Not enough data. Found 327 bytes (expecting 32767)
1 5    0.0459   (0.0000)    S>C    Handshake
        ServerHelloDone
1 6    0.0877   (0.0417)    C>S    Handshake
        ClientKeyExchange
Not enough data. Found 64 bytes (expecting 16384)
1 7    0.0877   (0.0000)    C>S    ChangeCipherSpec
1 8    0.0877   (0.0000)    C>S      Handshake
1 9    0.0885   (0.0007)    S>C    Handshake
1 10   0.0885   (0.0000)    S>C    ChangeCipherSpec
1 11   0.0885   (0.0000)    S>C      Handshake
1 12   0.1272   (0.0387)    C>S      application_data
1 13   0.2662   (0.1390)    S>C      application_data
1 14   0.2663   (0.0000)    S>C      application_data
1 15   0.2663   (0.0000)    S>C      application_data
1 16   0.3049   (0.0385)    S>C      application_data
1 17   0.3049   (0.0000)    S>C      application_data
1 18   0.3050   (0.0001)    S>C      application_data
New TCP connection #2: 181-23-73-114.speedy.com.ar(42350) <-> xxx(443)

De todas maneras no es lo que necesito, lo que yo quiero es poder observar las http request tanto en sus url como en su contenido post, por eso he estado viendo wireshark via terminal (tshark), me ha sido mucho mas util, intuitivo y facil de configurar, el problema es que tampoco me resulta la captura en ssl (aunque por lo menos ya tengo un log de errores al que puedo darle un vistazo).

He intentado esto:

Citar
tshark -i eth0 -f 'tcp port 443' -Y 'http.request' -T fields -E separator="|" -e http.host -e ip.src -e http.request.method -e http.request.uri -e http.user_agent -o 'ssl.desegment_ssl_records: TRUE' -o 'ssl.desegment_ssl_application_data: TRUE' -o 'ssl.keys_list: zzz,443,http,/etc/letsencrypt/live/xxx/privkey.pem'

Donde dice zzz es la ip pública del servidor y xxx el host, el problema es que el terminal no arroja nada, todo se queda en negro, no captura ningún paquete, pero sin el ssl captura muy bien. Ahora, el log dice lo siguiente:

Código:
[root@xxx ~]# cat /var/log/https-post.log
Wireshark SSL debug log

Private key imported: KeyID 22:2a:73:...
ssl_load_key: swapping p and q parameters and recomputing u
ssl_init IPv4 addr 'zzz' (zzz) port '443' filename '/etc/letsencrypt/live/xxx/privkey.pem' password(only for p12 file) ''
ssl_init private key file /etc/letsencrypt/live/xxx/privkey.pem successfully loaded.
association_add TCP port 443 protocol http handle 0x7f0d0ed95bb0

dissect_ssl enter frame #1 (first time)
ssl_session_init: initializing ptr 0x7f0d01269410 size 696
  conversation = 0x7f0d012690e8, ssl_session = 0x7f0d01269410
  record: offset = 0, reported_length_remaining = 2840
dissect_ssl3_record found version 0x0303(TLS 1.2) -> state 0x10
dissect_ssl3_record: content_type 23 Application Data
decrypt_ssl3_record: app_data len 704, ssl state 0x10
association_find: TCP port 443 found 0x7f0d0f88b200
packet_from_server: is from server - TRUE
decrypt_ssl3_record: using server decoder
decrypt_ssl3_record: no decoder available
association_find: TCP port 443 found 0x7f0d0f88b200
  record: offset = 709, reported_length_remaining = 2131
  need_desegmentation: offset = 709, reported_length_remaining = 2131

dissect_ssl enter frame #3 (first time)
  conversation = 0x7f0d012690e8, ssl_session = 0x7f0d01269410
  record: offset = 0, reported_length_remaining = 6917
dissect_ssl3_record: content_type 23 Application Data
decrypt_ssl3_record: app_data len 6912, ssl state 0x10
association_find: TCP port 443 found 0x7f0d0f88b200
packet_from_server: is from server - TRUE
decrypt_ssl3_record: using server decoder
decrypt_ssl3_record: no decoder available
association_find: TCP port 443 found 0x7f0d0f88b200

Busqué en internet por el mensaje:

Código:
decrypt_ssl3_record: using server decoder
decrypt_ssl3_record: no decoder available

Y la mayoría de las personas coinciden en que puede ser porque está capturando tráfico que ya fue negociado con el certificado y para decodificar el contenido necesita la primera negociación para que en base a eso pueda unir tanto el certificado del cliente como el del servidor, para verificar esto entre desde un sistema virtual recien instalado pero tampoco me aparece la solicitud en el terminal, definitivamente por algún motivo no funciona ni en ssldump ni en wireshark, será algún problema con el protocolo o tipo de cifrado?

Código:
[root@xxx ~]# openssl x509 -noout -modulus -in /etc/letsencrypt/live/xxx/cert.pem | openssl md5
(stdin)= bbbbbb
[root@xxx ~]# openssl rsa -noout -modulus -in /etc/letsencrypt/live/xxx/privkey.pem | openssl md5
(stdin)= bbbbbb

bbbbbb equivale al mismo valor md5 del certificado y de la llave.

Estoy haciendo estas pruebas en un servidor dedicado con CentOS 7 pero de todas maneras no creo que ese sea el problema ya que los paquetes sin cifrar funcionan muy bien, desde el puerto 80 puedo capturar tdo el tráfico del servidor, pero lo que aun no logro es descifrar el contenido via https.

Lo que quiero lograr es independizarme de los logs del apache por temas de espacio y uso IO/WR del disco, asi puedo monitorear el tráfico sin matar el disco duro tan rápido ya que necesito parsear el contenido y procesar los datos con otros softwares de monitoreo que hacen uso del log del apache en tiempo real, solo quiero utilizar tshark desviando la salida del buffer a la entrada del buffer de estos sistemas haciendo pasar todo el tráfico en la memoria ram haciendo el monitoreo en tiempo real en ves de utilizar el disco, a demás también quiero monitorear el tráfico post pero antes de eso necesito ver bien el tema del ssl.

Fuera de esto también quiero ver la posibilidad de realizar este tipo de monitoreos sin tener que intervenir en el servidor web, bastaría con colocar un servidor en la misma capa de la dmz y darle permisos para realizar capturas en modo promiscuo desde el firewall y loguear sin intervenir ni afectar en la disponibilidad del sitio web ya que si hiciera un reverse proxy el sitio dependería directamente del uptime del host que lo está reversando.

Saludos.
827  Sistemas Operativos / GNU/Linux / Tengo problemas con ssldump y wireshark en: 15 Mayo 2016, 19:07 pm
Hola, estoy haciendo algunas pruebas con ssldump pero no me descifra el contenido original.

Código:
# ssldump -k /etc/letsencrypt/live/site/privkey.pem -i eth0 -d -P port 443

Cuando no le doy el puerto 443 me muestra muy bien el contenido via http al puerto 80 pero al 443 que va cifrado no me muestra nada, solamente logs de la negociación del certificado. ¿Qué hice mal?, según la documentación oficial estoy haciendo todo bien.

Le doy la opción -P para que no se ponga en modo promiscuo, solo necesito capturar el tráfico de la red actual no de toda la red y -d para mostrar el contenido de los datos.

La llave del certificado es la misma que está siendo usada en el servidor web

Código:
# ll
total 4
lrwxrwxrwx 1 root root 48 abr 28 14:21 cert.pem
lrwxrwxrwx 1 root root 49 abr 28 14:21 chain.pem
lrwxrwxrwx 1 root root 53 abr 28 14:21 fullchain.pem
lrwxrwxrwx 1 root root 51 abr 28 14:21 privkey.pem
828  Foros Generales / Dudas Generales / Re: Servidor FTP y conexión fallida en: 13 Mayo 2016, 02:34 am
Hola, probablemente sea su router, cuando el proveedor de internet pone el router estos vienen bloqueados por defecto para que no salga ninguna ip hacia afuera, lo que debes hacer es revisar el router y dejar que ese pc pueda salir con el puerto 21.

saludos.
829  Sistemas Operativos / GNU/Linux / Re: Ayuda con virtualización en: 10 Mayo 2016, 19:35 pm
Pues en este caso no porque los procesos entre otras cosas se comparten, se supone que hacer esta separación es para dar mayor seguridad y que los usuarios del proxy por ejemplo no puedan acceder al proceso del apache o del servidor de correos o acceder a http://localhost/ , pero en cambio desde una instancia virtual los puedo separar por completo y delegar permisos y accesos a cada servicio, por ejemplo a un grupo de usuarios llamados desarrollo puedo darles acceso a la maquina virtual de desarrollo y a los de ventas a la maquina virtual de documentación y los de ventas ya no podrán tocar nada relacionado con la administración del mismo servidor o hacer un sniff si llegan a hackear el sistema y ser root.

El problema principal es seguridad vs rendimiento, claramente usar lxd o lxc y docker es mucho mas conveniente en cuanto a la portabilidad y rendimiento de los softwares pero no me dan la seguridad que necesito la cual es separar los permisos y accesos a cada cosa.

Por ahora estoy mirando con buenos ojos a kvm y xen. Gracias de todas maneras.
830  Sistemas Operativos / GNU/Linux / Re: Ayuda con virtualización en: 9 Mayo 2016, 20:18 pm
Muchas gracias por las opiniones, haré algunas pruebas para aver de que manera funciona mejor y nos conviene.

Saludos.
Páginas: 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines