====== Vulnerabilidad de escritura apache de Orfeo ======
===== Descripción =====
Es una exploit dirigido exclusivamente a orfeo que coloca un javascript o algun ejecutable en la bodega.\\
\\
Estan explotando varias cosas ..(creo)\\
\\
- Directorios r/w por apache para salvar un archivo\\
- Ejecucion de un archivo php que han colocado .. qsql.php o error.php (ahora inclusive estan poniendo un archivo llamado espacio " " o asterisco "*" )\\
- Cambian los nombres en la tabla dependencia\\
- Y dejan un ejecutable para ser incluido cuando se listan las dependencia. Los navegadores dicen que son mineros de criptomonedas\\
\\
- Ademas de la vulnerabilidad en la libreria tcpdf/error.php que le permite botar una terminal. (Nuestros orfeos ya no usan esta libreria)\\
===== Identificación =====
Hemos encontrado i.js en /bodega o en /bodega/tmp/i.js o /bodega/1.txt o /bodega/" " o /bodega/"*"\\
\\
Las nuevas versiones .. parecen apoderarse de una sesion.\\
\\
Tambien estan ejecutando un proceso corriendo dede /tmp y /var/tmp llamado cron (para disimularlo) .. y es un minero .. correo como apache tambien y se come la maquina y pone el CPU al 100\\
\\
$> ps aux | grep cron\\
/var/tmp/cron -o pool.webchain.network:3333 -u 0x31ebc1b180f3b9f510c585604f158f78fb272bfd -p x\\
\\
Vaya a [[egroupware/index.php?menuaction=wiki.wiki_ui.view&page=Vulnerabilidad+de+criptomonedas+de+Orfeo|Vulnerabilidad de criptomonedas de Orfeo]]\\
\\
En la bitacora el proceso de ataque es:\\
\\
104.244.75.153 - - [18/Sep/2020:12:53:45 -0500] "GET /orfeo/tcpdf/qsql.php HTTP/1.1" 200 269 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:53:46 -0500] "GET /orfeo/estilos/orfeo.css HTTP/1.1" 200 7583 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:53:47 -0500] "GET /favicon.ico HTTP/1.1" 404 290 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:53:56 -0500] "GET /orfeo%%//%%iconos/flechaasc.gif HTTP/1.1" 200 402 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:53:54 -0500] "POST /orfeo/tcpdf/qsql.php HTTP/1.1" 200 1156958 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:54:02 -0500] "GET /orfeo%%//%%adodb/compfile.png HTTP/1.1" 200 4616 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:54:02 -0500] "GET /orfeo%%//%%adodb/spreadsheet.png HTTP/1.1" 200 7613 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:54:31 -0500] "POST /orfeo/tcpdf/qsql.php HTTP/1.1" 200 445 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:54:38 -0500] "POST /orfeo/tcpdf/qsql.php HTTP/1.1" 200 1156959 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:54:55 -0500] "POST /orfeo/tcpdf/qsql.php HTTP/1.1" 200 52870 "http:%%//%%190.144.239.251/orfeo/tcpdf/qsql.php" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
104.244.75.153 - - [18/Sep/2020:12:55:12 -0500] "GET /orfeo/**bodega/i.js** HTTP/1.1" 404 296 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"\\
\\
Pero en el error.log .. esta encuentra uno intentos de acceso a muchos archivos\\
\\
[Thu Sep 17 15:16:46.191612 2020] [:error] [pid 6372] [client 185.220.100.252:19070] PHP Notice: Undefined variable: isql in /bodega/bodega/qsql.php on line 13\\
[Thu Sep 17 15:16:55.585106 2020] [:error] [pid 1087] [client 185.220.100.252:15272] PHP Warning: include:q_once(..%%//%%include/db/ConnectionHandler.php): failed to open stream: No such file or directory in /bodega/bodega/qsql.php on line 23, referer: https:%%//%%52.23.220.110/orfeo/bodega/qsql.php\\
[Thu Sep 17 15:16:55.585154 2020] [:error] [pid 1087] [client 185.220.100.252:15272] PHP Warning: include_once(): Failed opening '..%%//%%include/db/ConnectionHandler.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /bodega/bodega/qsql.php on line 23, referer: https:%%//%%52.23.220.110/orfeo/bodega/qsql.php\\
[Thu Sep 17 15:16:55.585172 2020] [:error] [pid 1087] [client 185.220.100.252:15272] PHP Fatal error: Class 'ConnectionHandler' not found in /bodega/bodega/qsql.php on line 24, referer: https:%%//%%52.23.220.110/orfeo/bodega/qsql.php\\
[Thu Sep 17 15:17:07.235946 2020] [:error] [pid 16637] [client 185.220.100.252:17068] PHP Warning: include_once(..%%//%%include/db/ConnectionHandler.php): failed to open stream: No such file or directory in /bodega/bodega/qsql.php on line 23, referer: https:%%//%%52.23.220.110/orfeo/bodega/qsql.php\\
[Thu Sep 17 15:17:07.235992 2020] [:error] [pid 16637] [client 185.220.100.252:17068] PHP Warning: include_once(): Failed opening '..%%//%%include/db/ConnectionHandler.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /bodega/bodega/qsql.php on line 23, referer: https:%%//%%52.23.220.110/orfeo/bodega/qsql.php\\
[Thu Sep 17 15:17:07.236010 2020] [:error] [pid 16637] [client 185.220.100.252:17068] PHP Fatal error: Class 'ConnectionHandler' not found in /bodega/bodega/qsql.php on line 24, referer: https:%%//%%52.23.220.110/orfeo/bodega/qsql.php\\
\\
\\
\\
===== Victimas =====
Hasta ahora todas las victimas han sido sistemas corriendo\\
\\
- Todos los Orfeos de 3.8 a 6\\
- Sobre PHP 5.4 y 7.3\\
- Pobres permisos sobre los directorios.\\
- Sin las restricciones del orfeo.conf de -Indexes\\
===== Mitigacion =====
==== 1. Configuracion de apache ====
Aun cuando aun no identificamos exactamente el proceso de ingreso, Restringir el acceso a la bodega y a la ejecucion de archivos alla ( y todo directorio lectura escritura de apache)\\
\\
\\
Options FollowSymLinks MultiViews\\
Options -Indexes\\
AllowOverride None\\
Order allow,deny\\
allow from all\\
\\
\\
\\
Options FollowSymLinks MultiViews\\
Options -Indexes\\
AllowOverride None\\
Order allow,deny\\
allow from all\\
\\
Order Deny,Allow\\
Deny from All\\
\\
php_admin_value engine Off\\
\\
\\
\\
Options FollowSymLinks MultiViews\\
Options -Indexes\\
AllowOverride None\\
Order allow,deny\\
allow from all\\
\\
Order Deny,Allow\\
Deny from All\\
\\
php_admin_value engine Off\\
\\
\\
\\
Options FollowSymLinks MultiViews\\
Options -Indexes\\
AllowOverride None\\
Order allow,deny\\
allow from all\\
\\
Order Deny,Allow\\
Deny from All\\
\\
php_admin_value engine Off\\
\\
\\
\\
$$$ OJO asi tenga la bodega en otro lado, apache accede a esta como si fuera /var/www/html/*/bodega\\
$$$ Si pone otro directorio la restriccion no funciona.\\
==== 2. Asegurese que el directorio de orfeo no tiene permisos innecesarios ====
\\
A. El directorio de orfeo no puede pertenecer a apache\\
\\
$> chown -R admin:admin directorio_de_orfeo\\
\\
B. La bodega que ya la protegimos con le reporte pasado, pero nos faltan dos librerias que escriben temporales\\
\\
B.1 Adodb: En el config.php en las ultimas lineas debe tener el temporal apuntando a la bodega\\
\\
$ADODB_CACHE_DIR="$DIR_RAIZ/bodega/tmp";\\
\\
B.2 tcpdf: Debe mover el cache a ese directorio a la bodega\\
\\
$> cd directorio_de_orfeo/include/tcpdf\\
$> mv cache directorio_de_orfeo/bodega\\
$> ln -s directorio_de_orfeo/bodega/cache\\
\\
C. Si usa quixplorer, las plantillas tambien pueden poner problema\\
\\
$> cd directorio_de_orfeo/quixplorer\\
$> mv orfeo directorio_de_orfeo/bodega/quixplorer\\
$> ln -s directorio_de_orfeo/bodega/quixplorer orfeo\\
\\
D. Quitar todos los permisos de escritura y dejar todo Read/Only\\
\\
$> find directorio_de_orfeo -type d -exec chmod 555 {} \\;\\
$> find directorio_de_orfeo -type f -exec chmod 444 {} \\;\\
\\
E. Corrija los permisos de la bodega para que pueda seguir escribiendo en ella.\\
\\
$> chown -R root:root directorio_de_orfeo\\
$> find directorio_de_orfeo/bodega -type d -exec chmod 755 {} \\;\\
$> find directorio_de_orfeo/bodega -type f -exec chmod 644 {} \\;\\
==== 3. La vulnerabilidad de tcpdf ====
\\
Hay una vulnerabilidad que explotan en el tcpdf para ejecutar comandos del sistema sin como root .. QUE LOCO\\
\\
51.178.83.144 - - [23/Nov/2020:10:10:34 -0500] "POST /orfeo/tcpdf/error.php?x=terminal&xa=terminals-curdir&cmd=mv%20/var/www/html/orfeo/png/col.jpg%20/var/www/html/orfeo/png/col.php HTTP/1.1" 200 27\\
\\
Entonces .. voy a comentar en el codigo de error.php todo lo necesario.\\
\\
- Linea 920 o cerca .. comente la opcion en el menu\\
- Linea 2161 o cerca .. donde ejecuta la opcione "terminal" .. pues deje "terminl" para que no reconozca la opcion\\
\\
Esperamos sirva lo suficiente\\
\\
=== 4. Fail2ban ===
Deberia poner un fail2ban para bloquear la busqueda de permisos .. del tipo\\
\\
Trying to get property of non-object y bloquear\\
===== Problemas =====
==== 1. Si el instale_mrtg.sh no le funciona ====
-
===== Referencias =====
-
FIN
----
__**Advertencia**__
Este documento es privado y es de u so exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.
----
==============================================================
15-Marzo-2006 J.E.Gomez v1.0 Primera version