Wstęp

Squid jest darmowym oprogramowaniem serwera proxy, dostępnym dla (chyba) wszystkich systemów operacyjnych. Prywatne proxy przydaję się do wielu rzeczy np. dodawania postów na jakimś forum z różnych adresów IP :p.


Instalacja

Instalacja na Ubuntu jest bardzo prosta. Wystarczy, że włączymy gnome-terminal i wpiszemy taką komendę ( i oczywiście klikniemy enter ) :


apt-get install squid 

albo

aptitude install squid

Mi znacznie bliższy jest aptitude, ale to bez różnicy.


Przystępujemy do konfiguracji

Na samym początku naszej konfiguracji zajmiemy się ncsa_auth, czyli mniej więcej tworzeniem usernamea z hasłem ( tego z którym będziemy się łączyć, żeby korzystać z proxy ). Cała operacja ogranicza się do wklepania takiej komendy:

htpasswd /etc/squid/passwd username

Następnie zmieniamy prawa naszego pliku tak aby squid był w stanie go odczytać i pobrać z niego dane:

chmod o+r /etc/squid/passwd

Zaraz potem musimy znaleźć nsca_auth authentication helper:

dpkg -L squid | grep nsca_auth

Natomiast teraz przechodzimy do konfiguracji najważniejszego pliku squida czyli squid.conf. Otwórzmy go za pomocą mcedit:

mcedit /etc/squid/squid.conf

Szukamy:

#auth_param basic program <uncomment and complete this line>
#auth_param basic children 5 startup=5 idle=1
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours

i zamieniamy na:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd 
auth_param basic children 2
auth_param basic realm Komunikat przy logowaniu
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

Następnie szukamy:

acl ncsa_users

i zamieniamy na:

acl ncsa_users proxy_auth REQUIRED

Potem szukamy:

http_access

i zamieniamy na:

http_access allow ncsa_users

Aby nasze proxy było high anymous musimy znaleźć:

forwarded_for on 

i zamienić na:

forwarded_for off

Następnie na samym końcu squid.conf dodajemy:

	request_header_access Allow allow all 
	request_header_access Authorization allow all 
	request_header_access WWW-Authenticate allow all 
	request_header_access Proxy-Authorization allow all 
	request_header_access Proxy-Authenticate allow all 
	request_header_access Cache-Control allow all 
	request_header_access Content-Encoding allow all 
	request_header_access Content-Length allow all 
	request_header_access Content-Type allow all 
	request_header_access Date allow all 
	request_header_access Expires allow all 
	request_header_access Host allow all 
	request_header_access If-Modified-Since allow all 
	request_header_access Last-Modified allow all 
	request_header_access Location allow all 
	request_header_access Pragma allow all 
	request_header_access Accept allow all 
	request_header_access Accept-Charset allow all 
	request_header_access Accept-Encoding allow all 
	request_header_access Accept-Language allow all 
	request_header_access Content-Language allow all 
	request_header_access Mime-Version allow all 
	request_header_access Retry-After allow all 
	request_header_access Title allow all 
	request_header_access Connection allow all 
	request_header_access Proxy-Connection allow all 
	request_header_access User-Agent allow all 
	request_header_access Cookie allow all 
	request_header_access All deny all 

a na sam koniec uruchamiamy w konsoli te trzy komendy:

service squid start
chkconfig squid on
ufw allow squid

W razie problemów z visible_hostname przy starcie squida wystarczy edytować squid.conf i dodać:

visible_hostname server1

Teraz nasze proxy powinno działać i powinniśmy mieć możliwość połączenia się z nim i to by było na tyle (:

Po upgrajdzie do Ubuntu 10.10, aircrack przestał mi działać.

Jak zwykle próbowałem ustawić w airodump-ng channel:


airodump-ng --channel n

Wyświetliło mi status:


fixed channel mon0: -1

Na jednym angielskim forum dyskusyjnym znalazłem rozwiązanie dla mojej karty sieciowej (atheros) i wygląda ono następująco:


wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2010-10-16.tar.bz2
tar -jxf compat-wireless-2010-10-16.tar.bz2
cd compat-wireless-2010-10-16
wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch
patch -p1 < mac80211.compat08082009.wl_frag+ack_v1.patch
wget http://patches.aircrack-ng.org/channel-negative-one-maxim.patch
patch ./net/wireless/chan.c channel-negative-one-maxim.patch
gedit scripts/update-initramfs
#* Znajdź LINIĘ : KLIB=/lib/modules/2.6.31-wl/build
#* i Zamień NA: KLIB=/lib/modules/$(uname -r)/build
make
make install
make unload
reboot

Jeżeli nie wykonujesz tych komend z konta roota to musisz korzystać z sudo.

Mam nadzieję, że pomoże to wielu użytkownikom aricracka i Ubuntu 10.10 .

Wstęp

Długo zastanawiałem się nad napisaniem tego małego „how to”, ale w końcu doszedłem do wniosku, że warto. Z biegiem czasu komputery stają się coraz szybsze i szybsze… Dlatego osiąganie dużej ilości (biliony na sekundę) hashy podczas tzw. brute-force jest normalnością. Ponadto pojemne dyski (1,2,3 tb) stały się codziennością i w zupełności wystarczają, żeby trzymać na swoim HDD tablice tęczowe (ang. rainbow tables), jest to nic innego jak baza danych, przechowująca zahashowane ciągi znaków (np. md5-1-7-mixedalpha-all-space co znaczy, że tablica zawiera w sobie większość możliwych zakodowanych haseł, które zawierają od 1 do 7 znaków, małe i duże litery alfabetu (mixedalpha), znaki specjalne i spację ). Dodatkowo przy próbie „złamania” zakodowanego hasła może nam pomóc tzw. metoda słownikowa.


Programowanie

W tym tutorialu (w kodzie przykładowego programu) będziemy korzystać z funkcji hashującej md5(), ale bez problemu można zastosować tu kodowanie sha1().


class saltme {

 var $salt = "425324f475743524f6i9089573";//wymyślamy sobie jakąś sól. musi mieć przynajmniej 22 i nie może zawierać znaków specjalnych

 function salter($password) {

 return crypt(md5($password), '$2a$10$'.$this->salt);
 }
}

$salty = new saltme;
 echo $salty->salter('alekot');

Kod PHP jest wyjątkowo prosty i nie ma co go wyjaśniać (:
Wyjaśnię tylko co oznaczają ‚$2$10$’ w funkcji crypt():
$2 – informuję funkcję, że będziemy korzystać z algorytmu blowfish.
$10 – oznacza wykładnik potęgi do, której zostanie podniesiona 2 (10 => 2^10 = 1024)