Tabla de Contenidos

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 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)

<Directory /var/www/html/orfeo>
    Options FollowSymLinks MultiViews
    Options -Indexes
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

<Directory /var/www/html/*/bodega>
    Options FollowSymLinks MultiViews
    Options -Indexes
    AllowOverride None
    Order allow,deny
    allow from all
    <FilesMatch “(?i)\\.(php|php3?|phtml|js)$”>
            Order Deny,Allow
            Deny from All
    </FilesMatch>
    php_admin_value engine Off
</Directory>

<Directory /var/www/html/*/quixplorer/orfeo>
    Options FollowSymLinks MultiViews
    Options -Indexes
    AllowOverride None
    Order allow,deny
    allow from all
    <FilesMatch “(?i)\\.(php|php3?|phtml|js)$”>
            Order Deny,Allow
            Deny from All
    </FilesMatch>
    php_admin_value engine Off
</Directory>

<Directory /var/tmp>
    Options FollowSymLinks MultiViews
    Options -Indexes
    AllowOverride None
    Order allow,deny
    allow from all
    <FilesMatch “(?i)\\.(php|php3?|phtml|js|sh)$”>
            Order Deny,Allow
            Deny from All
    </FilesMatch>
    php_admin_value engine Off
</Directory>


$$$ 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