miércoles, 31 de diciembre de 2014

Aviso a intrusos en red

Una vez detectado el intruso en nuestra red ¿ahora que hacemos?. Lo lógico es cambiar la contraseña y tomar mas medidas de seguridad en cuanto a nuestra red wifi. Pero para darle un aviso a nuestro instruso podemos hacer lo siguiente:

   Usar ettercap para hacer primero un dns_spoof, y así teniendo un servidor web en nuestra maquina, mostrarle algún mensaje a nuestro visitante.

1º.- Lanzar el servidor web con algun aviso en la pagina index.

2º.- Configurar el archivo etter.dns que se encuentra en:
 /usr/share/ettercap/etter.dns o bien en
/usr/local/share/ettercap/etter.dns sino #find / -name etter.dns

Para esto comentamos las lineas (#) y dejamos una sola entrada, por ejemplo

*     A    DIR_IP

en DIR_IP ponemos nuestra dirección ip donde corremos el servidor dentro de la red local. Para ver nuestra ip podemos usar el comando ifconfig,

3º.- Lanzamos ettercap con el plugin de dns_spof de la siguiente forma:

# ettercap -T -q -i wlan0 -P dns_spoof -M arp:remote /IP_Intruso/ /IP_Router/

De esta forma hacemos el dns_spoof y nos mostrará que páginas estará visitando, pero en realidad será dirigido a nuestro servidor web.

-i wlan0 suponiendo que lo hagamos desde un adaptador wifi





jueves, 18 de diciembre de 2014

Detectar intrusos en red wifi

A partir de algunos scripts que he visto, he compuesto el siguiente para perl y para python.


Hay que tener en cuenta que en la linea numero 5 en perl, hay que mirar si la salida del comando ifconfig tiene las cadenas "Direc. inet:", si son otras habría que modificar la linea para sacar nuestra ip. Y también configurar las mac de nuestros dispositivos o bien anular esas lineas si se sabe algo de perl :). Hay que mirar que configuración tenemos de red, en mi caso 192.168.0.0 y sustituir 192.168.0.1 por la nuestra. Y para afinar mas, poner el path completo del archivo hosts-ip.txt
Para el de python (que es mas simple) mirar "Direc. inet" y nada más.

#!/usr/bin/perl

$archivos="hosts-ip.txt";
$scaneo=  `nmap -sP 192.168.0.1/24 > $archivos`;
$ip= `/sbin/ifconfig wlan0 |grep 'Direc. inet:'|awk '{print \$2}'|cut -c 6-`;
chomp($ip);
open INFILE,$archivos;
my $linea;
my $conmutador=0;
while ( $linea = ) {
    chomp($linea);
    $linea =~ m/^Nmap scan report for\s(.+?)$/;
    if($1 =~ m=(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})=){
            $comp = "$1.$2.$3.$4";
            if($comp ne "192.168.0.1"){
                if($comp eq $ip){$texto.="Mi D IP = $ip\n"}
                else{
                    $mac=`arp $comp`;
                    $mac =~ m/(..:..:..:..:..:..)/;
                    if($1 eq "xx:xx:xx:xx:xx:xx"){$valor="Mi Móvil"}
                    elsif($1 eq "xx:xx:xx:xx:xx:xx"){$valor="Mi Tablet"}
                    else{$valor=$1;}
                    $texto.="Intruso = $comp $valor\n";
                    $conmutador  = 1;
                }
            }
    }
} 
close INFILE;
print $texto
$salido =`notify-send -t 0 -i wicd-gtk "Escaneo de la Red" "$texto"`; 

Y el de python


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import commands
import re
import subprocess

ip = commands.getoutput("/sbin/ifconfig wlan0 |grep 'Direc. inet:'|awk '{print $2}'|cut -c 6-") 

scaneo=commands.getoutput("nmap -sP 192.168.0.1/24 > hosts-ippy.txt") 
infile = open('hosts-ippy.txt', 'r')
texto = ''
for linea in infile:
    linea.rstrip()
    m = re.match(r"(.+)\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})", linea)
    if m:
        if m.group(2) != '192.168.0.1':
            if ip == m.group(2):
                texto+='Mi D IP = '+ip+'\n'
            else:
                texto+='Intruso = '+m.group(2)+'\n'

infile.close()
print texto                   
exitCode = subprocess.call(["notify-send",'-t','0','Escaneo de la Red',texto])


Monitorizar lectura, modificación, etc de archivos

  Buscaba una aplicación similar al filemon en windows para ver que archivos son "tocados" por una aplicación o el sistema, y por suerte, lo he encontrado.
  El proyecto se encuentra en esta página  pyinotify

  Se descomprime el archivo, se entra en el directorio y se ejecuta:

$ sudo python setup.py install

Mirar la documentación para ver el uso, aunque yo he probado con este script y me va muy bien:


# -*- coding: utf-8 -*-
# Archivo example1.py
import pyinotify
class EventHandler(pyinotify.ProcessEvent):
 def process_IN_CREATE(self, event):
  print "Creacion del archivo :", event.pathname
wm = pyinotify.WatchManager()
mask = pyinotify.ALL_EVENTS
handler = EventHandler()
notifier = pyinotify.Notifier(wm, handler)
wdd = wm.add_watch('/home/user', mask, rec=True)
notifier.loop() 

Se ejecuta en terminal y queda como demonio informando de la actividad en los archivos. Al definir mask = pyinotify.ALL_EVENTS se verán todos lo eventos sucedidos en los archivos dentro del directorio /home/user.

  Para mas información mirar el tutorial