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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 ... 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 [127] 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 ... 456
1261  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 05:30 am
Bueno, ya está todo ok y funcionando perfectamente :D muchas gracias por el tiempo y la paciencia.

Saludos.
1262  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 05:11 am
eaeaeaaa ahi sii :D pero me funciona con system() no con shell_exec(), no se porque pero ya no es mi prioridad xD

Ahora volveré a habilitar selinux como estaba y configuraré el script para que pueda ser ejecutado por apache para no afectar la seguridad nativa del sistema :P
1263  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 04:51 am
El mismo mensaje de error y ya agregué /bin/bash al usuario apache desde /etc/passwd y al ejecutar su apache entra directamente al bash, pero aun así quiere funcionar en php, talves sea algo de sudoers.
1264  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 04:41 am
Bueno, para ir descartando puse selinux en modo permisivo y reinicié la maquina, ahora ejecuto:

Código:
[root@localhost ~]# su apache -s /bin/bash
bash-4.2$ id
uid=48(apache) gid=48(apache) grupos=48(apache) contexto=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
bash-4.2$ sudo id
uid=0(root) gid=0(root) grupos=0(root) contexto=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
bash-4.2$ exit
exit

Ahora si efectivamente el sudoers funciona perfectamente, pero el script en php no puede ejecutar el mismo comando a pesar de que tenga el mismo permiso. El log de errores dice:

Citar
sudo: sorry, you must have a tty to run sudo

Será que debo asignarle un bash al usuario apache dentro del /etc/passwd?
1265  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 04:15 am
Pues si, efectivamente deja ejecutar el script pero manteniendo los permisos de apache, los que se llaman con sudo siguen sin ejecutarse :(
1266  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 02:14 am
Bueno ya busqué por algunos blogs y definitivamente el problema es el selinux tal como decías.

Intenté hacerle un bypass como se recomendaba en algunos lados pero sin éxito:
Código:
User_Alias WWW=apache
Cmnd_Alias WEBCMDS=/bin/bash /var/ban/403.sh
WWW ALL=NOPASSWD: WEBCMDS

Ahora... entiendo que por todos lados está muy restringido que un script via http se ejecute como root desde el mismo servidor hasta los sistemas de protección del mismo sistema operativo, por lo cual podría decirse que no debería hacerlo, pero entonces como lo hago si necesito que dependiendo de ciertas solicitudes http se generen acciones inmediatas a bajo nivel como cambiar la configuración de balanceos de carga, baneos por firewall, etc, no me sirve crear un log y listo, necesito que el sistema sea proactivo y rwactivo, esto quiere decir que si existe una solicitud peligrosa el usuario quede baneado al instante y no esperar a que un daemon barra un log.

En ese caso que sería mas óptimo? crear un servicio que reciba comandos? porque al final igual de todas maneras el servicio web va a tener que gatillar acciones como root, asi que no entiendo como debería hacerse sin arriesgar la seguridad de todo el sistema, no quiero tener que deshabilitar selinux.

O será que esta es una excepción a la regla?

creo que tendré que ir replanteandome si hacer esto via nginx y apache o snort directamente, veré si snort tiene la capacidad de ejecutar cosas dependiendo de cada regla.
1267  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 02:03 am
Código:
[root@localhost ~]# tail -f /var/log/httpd/error_log
sh: /var/ban/403.sh: Permission denied
/bin/bash: /var/ban/403.sh: Permission denied
sudo: unable to open audit system: Permission denied
sudo: unable to open audit system: Permission denied

En orden sería:
Código
  1. system('/var/ban/403.sh');
  2. # sh: /var/ban/403.sh: Permission denied
  3.  
  4. system('/bin/bash /var/ban/403.sh');
  5. # /bin/bash: /var/ban/403.sh: Permission denied
  6.  
  7. system('sudo /var/ban/403.sh');
  8. # sudo: unable to open audit system: Permission denied
  9.  
  10. system('sudo /bin/bash /var/ban/403.sh');
  11. # sudo: unable to open audit system: Permission denied

Definitivamente el sudoers no funciona :( , el script en php corre con permisos de "apache" y el sudoers está habilitado para ejecutar cualquier cosa sin contraseña con sudo y nada. Cuando resulte bien dejo habilitado solo los scripts necesarios.
1268  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 7 Mayo 2015, 01:17 am
Pues no, aplico todos los cambios, reinicio el servidor (es centos 7) y nada, el script me dice que el id es apache y es el httpd el que está ejecutando el script en php, nginx lo único que hace es hacer de reverse proxy nada mas porque la configuración para interactuar con scripts dinámicos es mas complejo, generalmente debes usar servicios paralelos con sockets de comunicación, al final nginx nunca ejecuta finalmente el script sino el servicio de cgi, en ese caso supongo que httpd hace lo mismo pero de manera mas ordenada, nativa y automatizada, por eso mejor dejé ambos instalados.

open_basedir puede se eh, lo revisaré ahora mismo aunque por defecto debería poderse.
1269  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 6 Mayo 2015, 22:23 pm
Agregué al /etc/sudoers la linea:
Código:
apache ALL=NOPASSWD:/bin/bash /var/ban/403.sh

Ahora ejecuto desde php:
Código
  1. <plaintext>
  2. <?php
  3. system('id');
  4. system('/var/ban/403.sh');
  5. system('/bin/bash /var/ban/403.sh');
  6. system('sudo /var/ban/403.sh');
  7. system('sudo /bin/bash /var/ban/403.sh');
  8. ?>

el archivo 403.sh tiene:
Código:
#!/bin/bash
id

Código:
[root@localhost ban]# ls -la
total 8
drwxr-xr-x.  2 root root   19 may  6 17:21 .
drwxr-xr-x. 22 root root 4096 may  6 17:20 ..
-rwxrwxr-x.  1 root root   15 may  6 17:21 403.sh

Le di permisos de ejecución con chmod +x 403.sh y nada, solo se ejecuta el primero con id de apache:
Código:
uid=48(apache) gid=48(apache) groups=48(apache) context=system_u:system_r:httpd_t:s0

Pero el resto nada :( apache está corriendo con permisos de apache y nginx con permisos de nginx, supuse que php al tener permisos de apache podría ejecutar el script de baneo con permisos de root pero nada.

Le acabo de poner:
Código:
apache ALL=(ALL) NOPASSWD: ALL
A sudoers para descartar un problema con la ruta o cosas así y tampoco :-/
1270  Sistemas Operativos / GNU/Linux / Re: Ejecutar comandos desde las reglas de Nginx en: 6 Mayo 2015, 21:44 pm
Bueno, hice funcionar fast cgi wrap pero el binario está compilado para que no se pueda iniciar en modo root :( y el lua está dificil de instalar ya que requiere la instalacion manual de versiones especificas de paquetes y no es bueno si quiero automatizar su instalación.

Lo que hice fue instalar httpd y php y lo hice correr en modo root y desde nginx hice que cuando se produjera un error 403 hiciera un reverse proxy a localhost puerto 81 a la ruta del 403.php :D y php es el encargado de hacer todo, es mas, ahora puedo utilizar mongodb con php directo o migrar a futuro a oracle si es necesario :D y httpd blindado unicamente en localhost.

Me salió muy larga la vuelta que quería hacer pero finalmente fue efectivo, tampoco creo que haya problema de carga con apache ya que las solicitudes se harán unicamente cuando se haga un baneo o algo por el estilo.

Gracias de todas maneras, a futuro buscaré una manera mas facil de hacer todo sin tener que pasar por el httpd y un doble reverse proxy xd

Ahora intentaré hacer lo que dice moikano→@ para no tener que usar todo en modo root sino solo los scripts necesarios.

Saludos.
Páginas: 1 ... 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 [127] 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 ... 456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines