Curl | bash, Como detectar el uso en el servidor

La instalación del software mediante la canalización de curl y bash es obviamente una mala idea y un usuario bien informado lo más probable que haría es comprobar el contenido en primer lugar. Por lo tanto, ¿no sería genial si una carga maliciosa sólo se haría cuando uses curl |bash? Algunas personas han intentado esto antes mediante la comprobación de la aplicación del usuario, curl es de ningún modo a prueba de fallos – el usuario puede simplemente hacer curl al URL y en la línea de comandos revelar su código malicioso. Por suerte el comportamiento de curl (y wget) cambia cuando usas pipe (|) en bash. Esto permite que un atacante pueda presentar dos versiones diferentes de su script en función del contexto 🙂

Continue reading “Curl | bash, Como detectar el uso en el servidor”

Netflix en Velocity 2015, Herramientas de rendimiento en Linux

Hay muchas herramientas de rendimiento hoy en día para Linux, pero ¿cómo se encajan entre sí, y cuando las usamos? En Velocity 2015, le di un tutorial 90 minutos en herramientas de rendimiento de Linux.

Herramientas de rendimiento en Linux
Herramientas de rendimiento en Linux

He hablado sobre este tema antes, pero teniendo en cuenta un intervalo de tiempo 90 minutos tuve la

oportunidad de incluir más metodologías, herramientas y demostraciones en vivo, por lo que es el tour más completo del tema que he hecho. El vídeo y las diapositivas están por debajo.

En este tutorial voy a resumir las herramientas tradicionales y avanzadas de rendimiento, incluyendo: top, ps, vmstat, iostat, mpstat, libre, strace, tcpdump, netstat, nicstat, pidstat, swapon, lsof, sar, ss, iptraf, iotop, slaptop, pcstat , tiptop, rdmsr, lmbench, fio, pchar, perf_events, ftrace, SystemTap, KTAP, sysdig y EBPF; y hacer referencia a muchos más. También incluyo herramientas, diagramas actualizados para observabilidad, sar, benchmarking, y tuning (incluyendo la imagen de arriba).

Este tutorial se puede compartir con un público amplio – cualquier persona que trabaje en los sistemas Linux – como un curso acelerado de herramientas gratuitas sobre el rendimiento de Linux. Espero que la gente lo disfrute y les resulta útil. Aquí está la lista de reproducción.

Video Part 1

Video Parte 2:

 

Enlace a las diapositivas:

 

 

Fuente: netflix

Instalando aws-cli, la nueva herramienta en línea de comandos AWS

Recomiento leer la documentación de aws-cli, como complemento a las instrucciones, ya que nos dará varias opciones de instalación y configuración de la herramienta.

aws-cli
AWS CLI

 

En esta ocasión vamos a instalar la herramienta en Ubuntu:


sudo apt-get install -y python-pip
sudo pip install awscli

Agregar al archivo siguiente, muchos sabrán a que me refiero con este regex $HOME/.(profile|bash_profile|profile)


complete -C aws_completer aws

Esto nos ayudará con el autocomplete de Bash

Agrega tu KeyID y tu SecretKey al archivo $HOME/.aws/config, usando el siguiente formato:


[default]
aws_access_key_id = 
aws_secret_access_key = 
region = us-east-1

No olvides proteger tu documento a solo lectura, escritura para el dueño del archivo:


chmod 600 $HOME/.aws/config

Opcionalmente establecer una variable de ambiente que apunte al archivo modificado previamente, especialmente si ese archivo no está en el directorio estandar.


export AWS_CONFIG_FILE=$HOME/.aws/config

Probando la instalacion de nuestro aws-cli

Una vez que hayamos finalizado nuestra instalación y configuración, procedemos a realizar nuestra primera consulta al API de AWS, usando la herramienta de consola:


aws ec2 describe-regions

La salida predefinida es en formato JSON, pero podemos intentar con diferentes formatos, como son table o text


aws ec2 describe-regions --output text
aws ec2 describe-regions --output table

Como liberar tu PS3

Si eres propietario de un PS3, y deseas probar software de 3ros o desarrollar tu propio software para este sistema, aqui tienes la Guia basica para liberar tu PS3.

Si en 14 simples pasos liberaras tu PS3.

NOTA: Este metodo va sin garantias, usalo bajo tu propio riesgo, nosotros no nos hacemos responsables por fallas o desperfectos despues ocacionados en tu consola…

Guía completa de GeoHot Jailbreak PS3

GeoHot ha decidido además de liberar para cargar con homebrew software casero y nada de copias caseras de los videojuegos.

El método de George Hotz es de momento el primero y por ahora el único de momento, aunque podrán ir saliendo alternativas.

No funcionan sobre antiguos homebrew y funciona sobre el firmware 3.55 (el último conocido).

Los pasos a seguir serán los siguientes:

1. Conecta una memoria USB al PC
2. Crea una carpeta raíz llamada PS3
3. Añade una carpeta llamada ” UPDATE ” que lleve a /PS3/UPDATE/
4. Descarga el Jailbreak de GeoHot ( Descargar aquí )
5. Extrae el archivo PS3UPDAT.PUP y muevelo a UPDATE en la memoria USB
6. Conecta la memoria a tu PS3
7. Navega hasta “Herramientas”
8. Elige “Actualización de sistema”
9. Opción “Actualizar desde la memoria o pendrive”
10. Reconocerá la actualización “Version 3.55-jb”, dale al OK
11. Acepta las condiciones e instala la actualización finalmente
12. Cerca de 1 minuto en actualizar ( pitará varias veces y se apagará )
13. Enciende la consola desde su botón principal
14. Después de todos los pasos ya ha sido la versión modificada firm 3.55

Informacion de Noticias2D

Google Go

Esta semana Google introdujo un nuevo lenguage de programación llamado “Go“.

Por lo cual vamos a ver como instalar el compilador para nuestro Ubuntu.

Paso 1: Editar nuestro .bashrc con lo siguiente:

k001@icemovil$ export GOROOT=$HOME/go
k001@icemovil$ export GOARCH=386
k001@icemovil$ export GOOS=linux
k001@icemovil$ export GOBIN=$HOME/bin
k001@icemovil$ export PATH=$GOBIN:$PATH

Paso 2: Creamos un directorio llamado bin:

k001@icemovil$ mkdir ~/bin
k001@icemovil$ $chmod 755 ~/bin

Paso 3: Instalamos los paquetes necesarios para compilar:

k001@icemovil$ sudo apt-get install python-setuptools python-dev
k001@icemovil$ sudo apt-get install mercurial
k001@icemovil$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
k001@icemovil$ sudo apt-get install bison gcc libc6-dev ed make

Paso 4: Construir el compilador:

k001@icemovil$ cd $GOROOT/src
k001@icemovil$ ./all.bash

Con eso ya iniciará la compilación para tener nuestro compilador de “GO”.

Pronto daré ejemplos de codigo con dicho lenguaje.

Repositorios remotos/locales git con ssh

Actualmente existen varios servicios de hospedaje gratuito para
repositorios git, el único requisito es que nuestros proyectos sean
opensource. Pero si no queremos que algún proyecto sea público, ya
sea porque X o Y razón, tendríamos que pagar una módica
cantidad.

Aunque es un precio accesible, algunos si somos bien
<del>pobres</del> codos y por otro lado, si tenemos otro lugar para
hospedarlo nos podemos ahorrar esos loritos para otra
ocasión.
Esta receta puede llevarse a cabo tanto local como remotamente,
para comenzar necesitaremos únicamente de git y un servidor ssh,
los cuales en debian y derivados se instalan de esta manera:

# apt-get install git-core openssh-server

Para crear los repositorios nos conectaremos al servidor remoto.
En mi caso hice esto localmente y decidí agregar el usuario git, ya
que en mi disco duro tengo una partición dedicada para /home.

$ ssh [email protected]

Y ejecutamos los siguientes comandos:

$ mkdir test-project.git
$ cd test-project.git
$ git --bare init   # inicializamos el repositorio remoto

Con eso ya tenemos nuestro repositorio funcionando, ahora vamos
a commitear algunos archivos:

$ cd projects
$ mkdir test-project
$ cd test-project
$ git init                                                      # inicializamos el repositorio local
$ git remote add origin [email protected]:test-project.git    # agregamos el repositorio remoto
$ echo 'Hello World!' > README
$ git add README
$ git commit -m 'first push'
$ git push origin master

Si todo ha ido bien, veremos algo como:

[email protected]'s password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 221 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:test-project.git
           [new branch]      master -> master

Nuestro repositorio está trabajabdo bien, el password obviamente
es el que le hayamos designado al usuario que creamos.

¿Pero que pasa si otros van a colaborar en mi proyecto?

Tienes dos opciones: La número uno sería que les hagas saber el
password de dicho usuario, pero estar escribiendolo cada vez que
vayamos a pushear algo es molesto.

La número dos y la más recomendable: Usar SSH-KEYS.
A saber, existen dos tipos de llaves, DSA y RSA, sea cual sea
nuestra elección, el procedimiento para crear un par de llaves es
la siguiente:

$ ssh-keygen -t dsa                                                             # cambiar por rsa según nuestra elección
Generating public/private dsa key pair.
Enter file in which to save the key (/home/kelevra/.ssh/id_dsa): .ssh/git_dsa   # no es obligatorio especificar ubicación
Enter passphrase (empty for no passphrase):                                     # escribimos una clave para usar la llave
Enter same passphrase again:                                                    # y la escribimos  de nuevo para confirmar
Your identification has been saved in .ssh/git_dsa.
Your public key has been saved in .ssh/git_dsa.pub.

Hemos generado una llave pública y una privada, la pública es la
que copiaremos al servidor remoto:

$ scp .ssh/id_dsa.pub [email protected]:.ssh/authorized_keys2
[email protected]'s password:
id_dsa.pub                                    100%  608     0.6KB/s   00:00

Ahora ya no nos pedirá el password del usuario cada vez que
hagamos push o nos conectemos para crear un nuevo repositorio, en
su lugar nos pedirá la clave que le asignamos a nuestro par de
llaves. Pero aún tenemos que escribir un password, sin embargo
podemos usar ssh-agent que recordará por determinado
tiempo nuestras claves, para iniciar este agente basta con teclear
en la terminal:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-RwRst31999/agent.31999; export SSH_AUTH_SOCK;
SSH_AGENT_PID=32000; export SSH_AGENT_PID;
echo Agent pid 32000;

Ya una vez corriendo el agente agregamos nuestra llave:

$ ssh-add .ssh/git_dsa
Enter passphrase for .ssh/git_dsa:
Identity added: .ssh/git_dsa (.ssh/git_dsa)

¡Y listo! Nos conectamos de nuevo vía ssh o hacemos otro push
para comprobar que ya no nos pide el password del usuario y de la
llave ssh. Y ahora si ya tenemos nuestro servidor de repositorios
git bien sencishito y carismático