domingo, 21 de febrero de 1999

Agujero de seguridad remoto en Mail-Max

El servidor de SMTP Mail-Max, disponible para las últimas versiones
de Windows (tanto 95/98 como NT), contiene un fallo que permite
ejecutar código arbitrario, con lo que se puede lograr un control
remoto total de la máquina atacada.
Así pues, tenemos otro típico caso de un buffer overflow provocado
por la carente comprobación de las cadenas de entrada al programa.
Todo ello es debido a que el servidor de correo Mail-Max al recibir
los comandos no comprueba la longitud de la línea, con lo que es
posible sobreescribir la memoria hasta llegar a la pila. Un atacante
puede hacer que la dirección de retorno (que se encuentra,
lógicamente, en la pila) apunte a un código que hábilmente haya
metido entre la cadena que copia a la memoria. De esta forma puede
lograr la ejecución del código que desee.

Además, debemos de tener en cuenta la insistencia de Mail-Max a
tener la versión 1.5c de sus drivers ODBC. Durante la instalación
del servidor, y en caso de la ausencia de estos controladores, nos
ofrece de nuevo la posibilidad de instalarlos. El resultado es que
el prácticamente la mayoría de los sistemas cuentan con esta versión
de los drivers, lo que hace aún más fácil explotar la máquina.
Resulta más sencillo el poder encontrar una instrucción "jmp",
gracias a la cual se hace saltar el contador de instrucciones del
procesador hacia la dirección de memoria que se indique, y ejecutar
el código que allí se encuentre.

Aunque este problema es común en multitud de software, resulta,
cuando menos, una triste sorpresa en este caso en particular. Los
autores de dicho programa no desconocen la existencia de este tipo
de ataques, ni tampoco la fácil manera de evitarlos. Es algo que se
logra simplemente comprobando el tamaño de la cadena recibida antes
de hacer nada con ella, o limitando la lectura de dicha cadena a un
número máximo de caracteres. Estas medidas son las que pusieron en
práctica en el programa popmax distribuido con Mail-Max, ó en otros
de sus productos como ftpmax. En estos casos, y al mandar una cadena
excesivamente larga, el software te notifica que estás intentando
sobreescribir un buffer de memoria, evitando así el ataque.

Más información:
SmartMax Software: http://www.smartmax.com


Javier Polo