DropBox, dodatkowe gigabajty, referrale i wirtualne maszyny

Dropbox - logoDropBox, dodatkowe (bonusowe) gigabajty, referrale i wirtualne maszyny- czyli jak zdobyć dodatkową powierzchnię w chmurze genialnego serwisu…

W ostatnich dniach DropBox oferuje ekstrabonusy- dodatkowe 500MB za każdego referralla (osobę polecającą):

dropbox - bonusowe 500MB

Zapewne, dla większości Userów to, co oferuje DropBox na dzień-dobry jest wystarczające- 2GB pojemności w Chmurze, dostępne poprzez wiele różnych aplikacji na prawie wszystkie możliwe platformy (Windows, Linux- w tym Android, IOS, platformy mobilne) to całkiem sporo (do tego- w przeciwieństwie do rozwiązań konkurencji- jak Microsoft- nie ma tu ograniczeń w rodzaju wielkości pliku). Czasem jednak nawet 2GB to nie dość sporo… dla tych, co potrzebowaliby nieco większą pojemność- na potrzeby wykonywania kopii bezpieczeństwa większej ilości danych, przechowywania muzyki odtwarzanej na różnych urządzeniach albo przechowywania jakichś istotnych dla nas informacji w Chmurze DropBox- jest oczywiście alternatywne rozwiązanie. Albo wchodzimy w płatne rozwiązania DropBox (od 9.99$ miesięcznie), albo szukamy znajomych, którzy założyliby konto w DropBox na podstawie naszego linka (referralla, np. http://db.tt/MjG0Ppug). Można więc namawiać znajomych na zakładanie kont na Dropboxie. Bonusem jest to, że obie strony dostają 500MB – zarówno osoba, która przekazuje link, jak i osoba która zakłada nowe konto na bazie tego linka. Jeśli założysz konto na bazie mojego linka -dostaniesz 500MB gratis. Ja również :)

Albo…

Jest jeszcze jedno rozwiązanie, jeśli nie mamy albo wystarczającej ilości znajomych zainteresowanych tym rozwiązaniem albo pieniędzy na komercyjny wariant usługi. To wirtualne maszyny. Poniższy przykład bazuje na oprogramowaniu VMWare, ale pewnie na innych platformach (np. VirtualBox, Virtual PC) również można to zrealizować.

Rozwiązanie bazuje na następującym podejściu:

  1. obliczamy ilość potrzebnego miejsca. Jeśli potrzebujemy np. 8GB, to znaczy, że potrzebujemy oprócz 2GB które dostajemy od DropBox dodatkowych 6GB. A 6GB to 12 referrali (12 * 500MB = 6GB).
  2. 12 referrali- to 12 dodatkowych kont na DropBox, założonych na podstawie naszego linku referral. Każde konto DropBox zakładane jest na podstawie odrębnego adresu e-mail- a więc potrzebujemy 12 skrzynek pocztowych.
  3. potrzebne będzie oprogramowanie do wirtualnego środowiska. W omawianym rozwiązaniu- VMWare. Ważne, by oprogramowanie pozwalało na zmianę adresu MAC dla wirtualnej karty sieciowej.
  4. potrzebny będzie system, działający najlepiej w wersji ‘live CD’- w tym wypadku stosuję instalację dla Ubuntu, ale pewnie inne systemy będą równie dobre (LiveXP, instalacja dla FreeBSD, instalacja dla Suse).

A teraz szczegóły:

  1. zakładamy podstawowe konto na DropBox. Odczytujemy adres naszego referrala (https://www.dropbox.com/referrals). Będzie potrzebny w dalszych etapach.
  2. zakładamy odpowiednią ilość skrzynek pocztowych. Będą to skrzynki ‘śmieciowe’, tylko na potrzeby tego rozwiązania- możemy więc zakładać je w różnych serwisach, nie dbając o sensowność nazw. Trzeba pamiętać, że np. GMail po pewnej ilości rejestracji będzie wymagało potwierdzeń SMS lub połączeń głosowych, a w pewnym momencie w ogóle nie pozwoli na założenie nowej skrzynki pocztowej z tego samego komputera. Dla wygody warto zrobić przekierowanie maili z tych skrzynek śmieciowych na naszą główną skrzynkę pocztową, żeby nie trzeba było się wielokrotnie logować i sprawdzać pocztę w celu potwierdzenia poprawności kolejnych etapów naszej pracy.
  3. jeśli tego wcześniej nie zrobiliśmy z innych powodów- instalujemy oprogramowanie do wirtualnych maszyn, np. VMWare Workstation, VMware Server, Virtual PC, VirtualBox.
  4. ściągamy obraz instalacji dla wybranego systemu, np. dla Ubuntu – http://ubuntu.pl/pobierz.php (dostępne wersje 32bit, 64bit)
  5. tworzymy nową wirtualną maszynę. Wielkość RAM lub wirtualnego dysku twardego nie jest specjalnie istotna, może być np. 1GB- nie będziemy instalować systemu. Za to dodajemy w ustawieniach VM dysk CD – wskazujemy na ściągnięty plik ISO dla instalacji Ubuntu (lub innego systemu).
    dropbox-1-vmware - podstawowa konfiguracja VM
    Uruchamiamy maszynę wirtualną.
  6. pozwalamy na uruchomienie instalatora Ubuntu, w oknie dialogowym wybieramy opcję “Wypróbuj Ubuntu”
    dropbox-2-wyprobuj ubuntu
  7. nie ma potrzeby wprowadzania hasła dla bazy kluczy. Do niczego to nie jest tu potrzebne. Pomijamy też komunikaty o aktualizacjach systemu (Ubuntu xx.xx Upgrade Available). Za to po uruchomieniu systemu odpalamy przeglądarkę- ikona Firefoxa jest pod ręką, w górnym pasku
  8. w przeglądarce wpisujemy adres referrala, zakładamy nowe konto na DropBox wprowadzając pierwszy z założonych ‘śmieciowych’ adresów mailowych, zapamiętujemy hasło
  9. powinno pokazać się okno z linkami do instalatorów pakietów dla systemów Linux – wybieramy Ubuntu (.deb) i odpowiednią platformę (32bit lub 64bit)
  10. otwieramy link za pomocą “Centrum oprogramowania Ubuntu”, po paru sekundach (po ściągnięciu instalatora) pojawi się okno z przyciskiem “Zainstaluj”- klikamy w ten przycisk
    dropbox-3b-instalator dla Ubuntu dropbox-3c-instalator dla Ubuntu
  11. pojawia się okno “Informacje o aktualizacji”, z przyciskiem “Start Dropbox” – klikamy w ten przycisk, teraz instalator ściągnie główny moduł instalacyjny (znacznie większy niż w poprzednim punkcie- ok 10 MB).
    dropbox-3-downloading dropbox dropbox-4-start dropbox
  12. w kolejnym oknie pojawia się opcja założenia konta w DropBox lub zalogowania się do istniejącego konta – wybieramy tą drugą, podajemy adres mailowy i hasło użyte przy zakładaniu konta (jak w pkt. 7)
    dropbox-5-konfiguracja konta
  13. po kilku sekundach oprogramowanie powinno zweryfikować login i potwierdzić rejestrację i instalację oprogramowania DropBox. Pojawia się kolejne okno dotyczące rodzaju usług (darmowe- 2GB, plus warianty płatne), dodatkowe ustawienia związne z synchronizacją itd. Wybieramy wariant darmowy i klikamy parę razy NEXT, aż do wyświetlenia folderu który ma być synchronizowany za pomocą usługi DropBox.

    W tym momencie instalacja dla pierwszego adresu mailowego jest zakończona.
  14. wyłączamy maszynę wirtualną (opcja VM -> Power -> Power Off). Klikamy na ustawienia karty sieciowej (Network Adapter), klikamy w przycisk ‘Advanced…‘ i zmieniamy adres MAC – to KLUCZOWY ELEMENT warunkujący powodzenie operacji. Możemy wygenerować losowy adres MAC (Generate), możemy z palca podać jakiś inny niż poprzednio.
    dropbox-7-zmiana adresu MAC
    Zatwierdzamy zmiany. Uruchamiamy ponownie wirtualną maszynę i idziemy do kroku 5). Procedurę powtarzamy dla wszystkich kont mailowych które założyliśmy.

Za każdym razem po osiągnięciu punktu 13. powinniśmy otrzymać na główną skrzynkę pocztową maila o przyznaniu nowego 500MB bonusa. Możemy też po zalogowaniu się na główne konto w DropBox regularnie weryfikować status bonusów.

A po przejściu przez tą procedurę cieszymy się z nowej pojemności naszego wirtualnego, chmurnego pudła…. :)

Oczywiście- jak komuś to nie odpowiada- może wrócić do namawiania znajomych na zakładanie kont na Dropboxie. Bonusem jest to, że obie strony dostają 500MB – i osoba która przekazuje link, i osoba która zakłada nowe konto na bazie tego linka. Jeśli założysz konto na bazie mojego linka – http://db.tt/MjG0Ppug – dostaniesz 500MB gratis. Ja też :)

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in techniczne | Tagged , , , , , , , , , , , | 2 Comments

Aktualna oferta domen na aukcjach AfterMarket

AfterMarket - logo

Domeny aktualnie oferowane na aukcjach serwisu AfterMarket:

DomenaTypKoniec
debataprezydencka.pl, debatywyborcze.pl, demokratycznie.pl, reformaemerytalna.pl 2012-03-13 20:00
wyczesy.plLM2012-03-13 20:40
bizuteriadlapanow.pl, bizuteriapierscionki.pl, bizuteriazesnow.pl, bizuteriazperel.pl, bizutkowo.pl, hurtowniasilver.pl, swarovskihurt.pl, swarovskishop.pl 2012-03-14 20:00
brainrace.pl, compuserve.pl, creogroup.pl, fotocreative.pl, networkoffice.pl, voipphone.pl 2012-03-15 20:00
szeffirmy.pl, szefinternetu.pl, szefroku.pl 2012-03-16 20:00
webtrendy.plLM2012-03-16 20:00
szczesliwenumerki.plLM2012-03-18 20:00
znajomizsieci.plLM2012-03-18 20:10
gryizagadki.plLM2012-03-18 21:00
strefakamer.plLM2012-03-18 21:00
factorx.plLM2012-03-19 19:30
funduszeinwestycyjne.org.plLM2012-03-19 20:20
dobrewanny.plLM2012-03-22 19:20
najlepszeblogi.com.plLM2012-03-22 19:40
comingout.com.plLM2012-03-22 20:10
deathmetal.com.plLM2012-03-22 20:10
grylogiczne.com.plLM2012-03-22 20:20
dragqueen.com.plLM2012-03-22 20:40
hotelikdlapsow.plLM2012-03-22 20:40
hotelikdlazwierzat.plLM2012-03-22 20:40
ekstraperfumy.plLM2012-03-22 21:00
koszrozkoszy.plLM2012-03-23 20:10
lodzkafilmowka.plLM2012-03-23 20:30
perfectwomen.plLM2012-03-24 20:20
najlepszenianie.plLM2012-03-26 20:00
stareskarby.plLM2012-03-26 20:00
motosprawy.plLM2012-03-27 20:10
superbolid.plLM2012-03-27 21:00
nowytestament.plLM2012-04-01 21:20
automechanicy.com.plLM2012-04-02 20:40

Zapraszam na aukcje!

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in domaining, rynek domen | Tagged , , , | Leave a comment

Domeny na aukcjach serwisu AfterMarket

AfterMarket - logo

Domeny aktualnie oferowane na aukcjach serwisu AfterMarket:

DomenaTypCenaKoniec
cashservice.com.pl, czerwoneszelki.pl, ekonomizer.pl, intratnie.pl, investimento.pl, notowania.info.pl, porownywarkafinansowa.pl, wlasnosci.pl 1000 PLN2012-03-08 20:00
finansowo.com.plLM10 PLN2012-03-08 20:20
szamboekologiczne.pl 40 PLN2012-03-09 20:00
goldfund.com.pl, goldfund.pl, perfectfund.com.pl, perfectfund.pl, silverfund.com.pl, silverfund.pl 1000 PLN2012-03-09 20:00
hydrowellness.pl, spanatura.pl, spaclinic.pl 900 PLN2012-03-09 20:00
analitycysystemowi.plLM10 PLN2012-03-10 20:10
katastrofylotnicze.pl 50 PLN2012-03-12 19:00
biuroposrednictwa.pl, supernieruchomosc.pl 100 PLN2012-03-12 19:00
cases.pl 900 PLN2012-03-12 20:00
domexbud.pl 500 PLN2012-03-12 20:00
harleyowiec.pl, harlejowiec.pl 50 PLN2012-03-12 20:00
dietablog.pl, dietacud.com.pl, gelateria.pl, greenbuffet.pl, greendiet.pl, winadeserowe.pl, zapachkawy.pl 700 PLN2012-03-12 20:00
debataprezydencka.pl, debatywyborcze.pl, demokratycznie.pl, reformaemerytalna.pl 900 PLN2012-03-13 20:00
wyczesy.plLM10 PLN2012-03-13 20:40
bizuteriadlapanow.pl, bizuteriapierscionki.pl, bizuteriazesnow.pl, bizuteriazperel.pl, bizutkowo.pl, hurtowniasilver.pl, swarovskihurt.pl, swarovskishop.pl 500 PLN2012-03-14 20:00

Zapraszam na aukcje!

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in domeny, rynek domen | Tagged , , , | Leave a comment

Włamy na blogi WordPress i inne strony WWW oparte o PHP

wirus ebolaNiedawno jedna z moich stron- blog oparty o silnik WordPress- padła ofiarą ataku. Włamywaczowi udało się zrobić kilka rzeczy, które mnie dość mocno zaniepokoiły- a co najgorsze, musiałem spędzić sporo czasu, by dojść do tego JAK TO SIĘ STAŁO- jak mu się ten numer udał, mimo że blog był dość dobrze zabezpieczony???

 

 

  1. Środowisko
  2. Modyfikacje dokonane przez włamywacza
  3. Analiza modyfikacji
  4. Jak dokonano włamania
  5. Naprawa

 

Środowisko

Zgodnie z regułami gry, regularnie dbałem o aktualizacje WordPress’a, zainstalowanych wtyczek i skórki. Wszystkie nieużywane komponenty były wywalane z bloga, by nie korciło kogoś eksperymentowanie np. z nieaktywną skórką czy wtyczką.

Logowanie do bloga było zabezpieczone m.in. przez mechanizm obrazków z losowymi literkami, hasła nasto-znakowe były generowane losowo, zawierając litery, cyfry, znaki specjalne… Zabezpieczenie obrazkiem ma swoją istotną zaletę- widziałem nie raz w logach całe serie prób logowania się metodą brute-force, w ciągu sekundy można wysłać do serwera nawet kilka takich żądań- bywa, że w ciągu godziny atakujący testuje parę tysięcy haseł. Przy zabezpieczeniach z SSL, z obrazkami- gwałtownie spada ilość prób i tempo tych prób. Zainteresowanym polecam przyjrzenie się temu tematowi- są np. wtyczki, które po kilku nieudanych próbach robią czasową blokadę IP, albo wprowadzają wydłużający się czas między kolejnymi próbami logowania.

Skórka została dobrana tak, by nie zawierała pliku “thumb.php” ani “timthumb.php” (wykorzystywane do generowania miniaturek), które dawno i wielokrotnie były kompromitowane i które są właściwie głównie wrzodem…. Wtyczki były dobrane wg oceny dbania o nie przez autorów i popularności, sprawdzałem je też we własnym zakresie pod kątem jakichś dziwnych skryptów, które mogłyby ułatwić komuś zrobienie włamu. Ponadto, w katalogu głównym bloga – jak w przypadku wszystkich stron i blogów, którymi zarządzam- zmodyfikowałem plik “.htaccess”, dodając sporo reguł zabezpieczających blog- choćby takie, które nie pozwalają by jakikolwiek plik bloga (pliki PHP, pliki JS) mógł ściągnąć jakąkolwiek treść z zewnątrz- spoza bloga. W dużej mierze przydatne okazały się artykuły na WordPress.org poświęcone bezpieczeństwu blogów, a także- co muszę przyznać z dużym naciskiem- artykuły na PerishablePress.Com- szczególnie te związane z budową “firewall’a” dla stron w oparciu o pliki “.htaccess” (zachęcam do zerknięcia do artykułu “5G Blacklist 2012“, a także “Protect Your Site with a Blackhole for Bad Bots“)

 

Modyfikacje dokonane przez włamywacza

Pomimo to- dostałem wiadomość od firmy hostingowej, iż system antywirusowy znalazł “niebezpieczne pliki” w obrębie bloga. (Całe szczęście, firma hostingowa ma dobre narzędzia do skanowania plików, regularne skanowanie plików w poszukiwaniu wirusów w PHP/JS i innych typach plików to ostatnia deska ratunku). Natychmiast zabrałem się za sprawdzenie, co to za pliki, gdzie, dlaczego, kiedy, kto……

Włamywacz w głównym katalogu, oraz w kilku innych katalogach zmodyfikował pliki “.htaccess“. Dla tych którzy nie wiedzą- pliki te zawierają kluczowe dyrektywy dla serwera WWW. Pliki “.htaccess” mają bardzo duże znaczenie dla bezpieczeństwa strony.

Do plików .htaccess dodano klauzule:

< IfModule mod_php5.c>
 php_value auto_append_file "google_verify.php"
< /IfModule>

< IfModule mod_php4.c>
 php_value auto_append_file "google_verify.php"
< /IfModule>

 Te klauzule “auto_append_file” są niezwykle niebezpieczne- oznaczają, że DO KAŻDEGO PLIKU dołączany jest na końcu plik “google_verify.php“. Haker nie musi modyfikować istniejących plików/skryptów, po prostu dołącza złośliwy kod na każdej naszej stronie, elemencie…

 

Analiza modyfikacji

Oczywiście, w miejscach w których zmieniono “.htaccess” dodano plik “google_verify.php”. I nie był to bynajmniej plik “hello ;)”- to był plik zawierający dość mocno zamaskowany kod skryptu. Nie jestem programistą- próbowałem zdekodować ten tekst i zrozumieć, jak działa, ale zmarnowałem sporo czasu i do niczego nie doszedłem. W końcu zwróciłem uwagę na interesującą rzecz- na komentarze. Były po łacinie…

Początkowo myślałem, że zabiorę się za ich tłumaczenie, bo może one opisują elementy kodu infekującego przeglądarki. Ale natychmiast po wpisaniu fragmentu komentarza w wyszukiwarce trafiłem na artykuł, który wszystko wyjaśnił.

Wpisałem tą frazę do Google:

google_verify.php  //Mauris gravida, libero ut tempor ultricies, ante erat blandit dui, vestibulum convallis ligula lacus et metus. Duis quis nunc justo, gravida sem

I od razu pierwsza pozycja w wynikach. Na stronie Unmask Parasites. Blog. opisano podobne przypadki. Autor wyjaśnia, że łaciński tekst pochodzi z generatorów typu Lorem Ipsum- więc jasne jest, że tłumaczenie komentarzy w skrypcie jest stratą czasu.

Poza tym, na wspomnianej stronie opisana jest zasada działania skryptu doklejanego do zhakowanej strony (skrypt próbuje infekować przeglądarkę odwiedzających – w udanych wypadkach zamienia komputer odwiedzającego w zombie i element botnetu, wykorzystywanego albo do kolejnych włamań albo np. do generowania maili).

W jednym z katalogów – poza plikiem infekującym przeglądarki- wrzucono skrypt PHP z backdoor‘em- tworzący shell’a (czyli wejście do systemu bez wiedzy/kontroli administratora, pozwalający na wykonanie każdego polecenia dostępnego na serwerze z poziomu linii komend).

W pliku z backdoor’em na początku skryptu jest komentarz:

# Web Shell by oRb

 Analiza backdoor’a sama w sobie była interesującym zajęciem. To nie pierwszy backdoor jakiego widziałem, muszę jednak przyznać, że na tle innych ten jest dość zaawansowany i daje bardzo duże możliwości włamywaczowi.

Pliki “.htaccess” i “google_verify.php” były w kilku egzemplarzach- w głównym katalogu strony, w katalogach trzech różnych wtyczek, w dwóch innych katalogach w obrębie bloga. Plik z backdoor’em / shell’em był jeden.

I ważna informacja, jaką muszę tu podać- pliki, które zostały dodane- miały bieżące daty, z momentu wgrywania ich na serwer. To ważny element- gdyby włamywacz zmienił po swojej akcji daty wgranych plików na takie daty/godziny, jak pozostałe pliki w katalogach- wyszukanie tych plików byłoby znacznie trudniejsze.

Poza tym- niczego więcej nie zmieniono. W zasadzie nie było konieczności- jak wyżej napisałem- mechanizm “auto_append_file” po prostu dokleja wszędzie plik “google_verify.php”, włamywacz nie musi niczego więcej zmieniać. A backdoor jest potrzebny- na wszelki wypadek, gdyby trzeba było ponownie infekować stronę (dla ułatwienia w przyszłości), albo gdyby włamywacz chciał rozszerzyć zakres swojej działalności – użyć serwera do innych celów poza atakowaniem przeglądarek odwiedzających osób. Np. do mailingu, do zamiany serwera w warez/składnicę nielegalnych czy zainfekowanych plików etc.

 

Jak dokonano włamania

Z grubsza wiedziałem już co zostało zmienione, najwięcej czasu spędziłem na odkrycie tego “JAK“. Przekopywałem się przez pliki “.htaccess”, WordPress’a, wtyczek, skórki- ale niczego nie znalazłem, żadnej luki pozwalającej na tak poważne modyfikacje. Zalinkowany wyżej artykuł doczekał się niedawno aktualizacji, w artykule z 18 lutego Autor wskazuje, iż popularną drogą do infekcji jest włam przez FTP. No i…. mamy go!

Nie wiem czemu nie wpadłem na to wcześniej. To prawdopodobnie zbyt duże zaufanie do siebie lub innych, albo za małe przywiązanie wagi do tej drogi dostępu do serwera- to dobra nauczka i dla mnie, i dla Czytelników- każdy kanał dostępu do serwera trzeba sprawdzić, sprawdzać, sprawdzać…. Obejrzałem logi dla wszystkich kont FTP założonych na serwerze i okazało się, że jedno z nich, nazwijmy je ‘kontraktor’, było w użyciu dokładnie w momencie, gdy zostały wrzucane złośliwe pliki na serwer. Sprawdziłem IP z jakich logowano się na to konto – adres pochodził z sieci kablowej w USA, w Pensylwanii. Oczywiście, prawdopodobnie z jakiegoś komputera typu zombie. Jak można się domyślić, użytkownik konta ‘kontraktor’ nie był w tym czasie w USA, w stanie Pensylwania… :)

Niestety pełnych logów z FTP nie mam- nie mam informacji o nieudanych próbach logowania. Nie wiadomo więc, czy logowanie nastąpiło po jakimś czasie, po dziesiątkach prób i ataków typu brute-force (lub wykorzystaniu jakiejś luki w serwerze FTP), czy może na komputerze ‘kontraktora’ był trojan przechwytujący hasła- a jak grupa hakerów uzyskała login/hasło do nieznanego im wcześniej serwera FTP- po prostu “w ciemno” zalogowała się i uruchomiła odpowiednie skrypty przejmujące kontrolę nad nieznaną im stroną. Informacja jak uzyskano wejście przez FTP byłaby interesująca. Na razie nie wiem jednak tego, zabezpieczenie istniejących kont FTP i ograniczenie grona osób, które korzystają z tej formy dostępu, jest jedynym w tej sytuacji rozwiązaniem.

 

Naprawa

Zanim natrafiłem na artykuł wykonałem już parę kroków, tj:

  • usunięcie z plików “.htaccess” dyrektyw “auto_append_file”
  • usunięcie plików “google_verify.php”
  • usunięcie pliku z backdoor’em / shell’em
  • w każdym katalogu- na wszelki wypadek- zmieniłem uprawnienia dla plików “.htaccess”, “index.php” lub “index.html”
  • w katalogach można wyłączyć przeglądanie ich zawartości w przeglądarce (dyrektywa “Options All -Indexes” w pliku “.htaccess”) – dyrektywa wyłącza możliwość wyświetlenia w przeglądarce listy plików w danym katalogu
  • pliki .htaccess można dodatkowo zabezpieczyć przed modyfikacją ich przez serwer WWW, dyrektywami:
    # SECURE HTACCESS
    <Files .htaccess>
     Order allow,deny
     Deny from all
    </Files>
    
  • oczywiście, kolejną sprawą po zapoznaniu się z artykułem było zablokowanie konta FTP dla ‘kontraktora’- i na wszelki wypadek- zmiany hasła na jakieś ekstremalnie skomplikowane. Jeśli w przyszłości będzie potrzebny dostęp przez FTP- opracuję jakiś system haseł jednorazowych (OTP) lub inną formułę zabezpieczającą ten kanał dostępu.

W artykule (w aktualizacji z 18 lutego) są opisane kroki potrzebne do przywrócenia strony do jej oryginalnego stanu. Jest tam też sporo innych przydatnych informacji dotyczących włamań przy użyciu metody, z którą właśnie się zetknąłem.

 

I na koniec- podsumowując: każdy kij ma dwa końce. Włamanie to poważny problem. Możemy stracić ważne dane, ważną treść nad którą pracowaliśmy latami. Stronę, która ma wysoki PR i jest dobrze rozpoznawana w Internecie. Może skończyć się zablokowaniem usług, z których korzystamy- firma hostująca może nam podziękować bez zwrócenia pieniędzy za niewykorzystany okres świadczenia usług. W końcu łamiemy zasady, mamy wirusy na stronach etc. Z drugiej strony- to nauka, walka o przetrwanie… jak w rozprawie Darwina o ewolucji gatunków- przetrwają ci, którzy lepiej się dostosują do sytuacji. Dotyczy to także walki hacker-Ty i Twoje usługi. Oczywiście, możesz też zrzucić obowiązki na jakąś firmę zewnętrzną, samemu dbając tylko o treść na blogu- resztę (czyli kwestie bezpieczeństwa) przerzucając na innych. To jest pewne wyjście, ale może kosztować jakąś kwotę pieniędzy.

I jeszcze ostatnia, bardzo ważna uwaga- ten typ włamania nie jest związany konkretnie z WordPressem. To może dotyczyć KAŻDEJ strony, wykorzystującej PHP, do której można dostać się albo przez FTP, albo przez wykorzystanie jakiejś luki i wgranie odpowiednich plików na serwer.

 

Jeśli ktoś spotkał się z podobnym typem włamu/mechanizmem/skryptami- proszę o kontakt albo uwagi w komentarzach pod postem.

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in techniczne | Tagged , , , , , , , , , , , , , , , , , , , | 1 Comment

Dokumenty związane z cloud computing i wirtualizacją -2

Adobe PDF IconDokument poglądowy, sponsorowany – pokazujący zastosowanie technologii HP CloudSystem Matrix i HP 3PAR Utility Storage w budowie środowisk wirtualnych.

Zapraszam:
The Best Way to Build a Cloud

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in techniczne | Tagged , , , , , | Leave a comment

Nowe domeny na aukcjach AfterMarket

Domeny aktualnie oferowane na aukcjach serwisu AfterMarket:

 

DomenaTypKoniec
napokolenia.com.plLM2012-02-18 19:00
pomalujswiat.plLM2012-02-18 19:00
fabrykakoncertowa.plLM2012-02-18 19:10
europa4u.plLM2012-02-18 19:10
forumkrytyki.plLM2012-02-18 19:10
dziewczynyzagencji.plLM2012-02-18 19:20
money4u.plLM2012-02-18 19:30
pierscionki4u.plLM2012-02-18 19:30
klipsy4u.plLM2012-02-18 19:30
invitro4u.plLM2012-02-18 19:40
antykwariat4u.plLM2012-02-18 19:40
starocie4u.plLM2012-02-18 19:40
klinikazmarszczek.plLM2012-02-18 19:40
zaplodnienie.com.plLM2012-02-18 19:40
spiewajmyrazem.plLM2012-02-18 19:50
portalmuzyczny.com.plLM2012-02-18 19:50
naszyjniki4u.plLM2012-02-18 19:50
antyk4u.plLM2012-02-18 20:00
bransoletki4u.plLM2012-02-18 20:00
anonseria.com.plLM2012-02-18 20:10
implantypiersi.com.plLM2012-02-18 20:10
trzyszostki.plLM2012-02-18 20:20
fabrykanaszyjnika.plLM2012-02-18 20:20
korale4u.plLM2012-02-18 20:30
portalsejmowy.plLM2012-02-18 20:40
obraczki4u.plLM2012-02-18 20:40
chustyiszale.plLM2012-02-18 20:50
pasazhandlu.plLM2012-02-18 20:50
antyki4u.plLM2012-02-18 20:50
zatrzymajmlodosc.plLM2012-02-18 21:00
emosfera.plLM2012-02-21 19:20
kasa4u.plLM2012-02-21 19:20
popuszczamy.plLM2012-02-21 19:30
wystawrogi.plLM2012-02-21 19:30
pocztaprywatna.plLM2012-02-21 19:40
mazmniezdradzil.plLM2012-02-21 19:40
hotdomain.com.plLM2012-02-21 20:00
pocztaprzyszlosci.plLM2012-02-21 20:10
fajkownia.plLM2012-02-21 20:30
faktodajnia.plLM2012-02-21 20:30
kopnijpilke.plLM2012-02-21 20:50
glebokipeeling.plLM2012-02-26 19:20
pierscionkizbrylantami.plLM2012-02-26 19:40
hialuronowykwas.plLM2012-02-26 21:00
remontynajtaniej.plLM2012-02-27 19:00
chorobydzieciece.plLM2012-02-27 19:00

Zapraszam na aukcje!

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in domeny, rynek domen | Tagged , , , | Leave a comment

Aktualna oferta domen na AfterMarket

Domeny aktualnie oferowane na aukcjach serwisu AfterMarket:

 

DomenaTypKoniec
bankidlaciebie.plLM2012-02-12 20:30
uslugisieci.plLM2012-02-13 19:20
sieciuslugi.plLM2012-02-13 19:20
opereo.plLM2012-02-13 19:50
brandblogi.plLM2012-02-13 19:50
odbijpilke.plLM2012-02-13 20:00
napokolenia.plLM2012-02-13 20:00
lanwanman.plLM2012-02-13 20:20
projektynasprzedaz.plLM2012-02-13 20:40
odwolaj.plLM2012-02-14 19:40

Zapraszam na aukcje!

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in domeny, rynek domen | Tagged , , , | Leave a comment

EXCEL – przekształcanie adresów IP

I jeszcze jeden, ciekawy problem. W logach adres IP jest zapisany zazwyczaj w notacji dot-decimal, tj. 11.22.33.44. Do moich potrzeb musiałem przekonwertować ten adres na liczbę dziesiętną (4 bajtową).

Np. adres 80.239.22.30 można przedstawić jako 4-bajtową wartość 1357846046.

Oto formuła do takich przeliczeń:

=((WARTOŚĆ(LEWY(B2; ZNAJDŹ("."; B2)-1)))*256^3)+((WARTOŚĆ(FRAGMENT.TEKSTU(B2; ZNAJDŹ("."; B2)+1; ZNAJDŹ("."; B2; ZNAJDŹ("."; B2)+1)-ZNAJDŹ("."; B2)-1)))*256^2)+((WARTOŚĆ(FRAGMENT.TEKSTU(B2; ZNAJDŹ("."; B2; ZNAJDŹ("."; B2)+1)+1; ZNAJDŹ("."; B2; ZNAJDŹ("."; B2; ZNAJDŹ("."; B2)+1)+1)-ZNAJDŹ("."; B2; ZNAJDŹ("."; B2)+1)-1)))*256)+(WARTOŚĆ(PRAWY(B2; DŁ(B2)-ZNAJDŹ("."; B2; ZNAJDŹ("."; B2; ZNAJDŹ("."; B2)+1)+1))))

Dość długa- ale działa ;)

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in techniczne | Tagged , , , | 1 Comment

EXCEL i RegExp – czyli wyrażenia regularne

Po raz kolejny miałem potrzebę bardziej zaawansowanego wyszukiwania łańcuchów w ciągach tekstowych (np. analiza User-Agent i Referrer z logów serwera WWW- określenie używanego języka w systemie gościa odwiedzającego stronę- wyszukiwanie ciągów typu pl, en-US, zh-CN). Oczywiście, można zastosować wielokrotne kombinacje poleceń LEWY, PRAWY, ZNAJDŹ.TEKST czy SZUKAJ- ale wtedy konstrukcje te zaczęły zajmować na ekranie więcej miejsca niż arkusz kalkulacyjny, do tego działanie było bardzo, bardzo ograniczone. (Oczywiście pytanie- po co takie rzeczy robić w Excelu… ale to inna historia. Jakbym do tego mógł użyć innego narzędzia- to bym użył).

Oczywiście, zamiast pisać ogromniaste i bezsensowne formuły, pomyślałem o zastosowaniu wyrażeń regularnych- w świecie *nixów, BSD i ruterów w którym żyję to chleb powszedni.

Chwila zastanowienia i przejrzenia paru stron logów- wychodzi mi, że do wyszukania języka przeglądarki powinienem zastosować takie wyrażenie:

“;[ ]?[a-z][a-z](-[A-Z][A-Z]|;|\))”

(dla jasności- tekst opisujący język przeglądarki wyglądał w logach w taki sposób:

  • ;pl;
  • ;en-US)
  • ; en-GB;
  • ; zh-CN)

Czasem po średniku była spacja, czasem nie. Czasem był to ostatni kawałek w tekście User-Agent i po nim następował nawias zamykający, czasem był to średnik i kolejna porcja informacji UA. Czasem- jak w przypadku pl- był to tekst jednoczłonowy, czasem- jak w przypadku en- dwuczłonowy (ze względu na odmiany języka). Nie muszę dodawać, że nie ma określonej pozycji w tekście, w której taki tekst się pojawia. CZASEM W OGÓLE SIĘ NIE POJAWIA, bo zazwyczaj boty nie wstawiają informacji o języku, a niektóre skrypty (np. libwww) w ogóle nie umieszczają informacji o UA

Jak ktoś mi napisze formułę w Excelu bez użycia RegExp do wyszukania takiej informacji krótszej niż 1000 znaków- stawiam skrzynkę piwa i oczywiście opublikuję ją tu na stronie ;)

No a wracając do RegExp, wszystko fajnie, formuła w głowie się pojawiła, ale jak ją użyć… na szczęście Wujek Google podpowiedział parę rzeczy i podrzucił fajny dokument w Wordzie z kilkoma przykładami.

Funkcja TestRegExp wyszukuje określony tekst w łańcuchu i wyświetla ilość powtórzeń i ich pozycje:

Function TestRegExp(myPattern As String, myString As String) As String
Dim objRegExp    As Object
Dim objMatch     As Object
Dim colMatches   As Object
Dim RetStr       As String
Set objRegExp = CreateObject("VBScript.RegExp")
   objRegExp.Pattern = myPattern
   'ignorowanie wielkości liter
   objRegExp.IgnoreCase = True
   'czy szukać wszystkich wyników czy tylko pierwszego
   objRegExp.Global = True
    'czy ciąg można porównać.
    If objRegExp.test(myString) = True Then
        Set colMatches = objRegExp.Execute(myString)
        For Each objMatch In colMatches
            RetStr = RetStr & "pozycja: " & objMatch.FirstIndex & _
                              " dopasowanie: " & objMatch.Value & _
                              " długość: " & objMatch.Length & Chr(10)
        Next
   Else
        RetStr = ""
   End If
   TestRegExp = RetStr
Set objRegExp = Nothing
Set colMatches = Nothing
End Function

Dalszy krok- funkcja WytnijRegExp:

Function WytnijRegExp(myString As String, myPattern1 As String) As String
Dim objRegExp    As Object
Dim objMatch     As Object
Dim colMatches   As Object
Dim RetStr       As String
Set objRegExp = CreateObject("VBScript.RegExp")
   objRegExp.Pattern = myPattern1
   'ignorowanie wielkości liter
   objRegExp.IgnoreCase = True
   'czy szukać wszystkich wyników czy tylko pierwszego
   objRegExp.Global = True
    'czy ciąg można porównać.
    If objRegExp.test(myString) = True Then
        RetStr = objRegExp.Replace(myString, "")
   Else
        RetStr = ""
   End If
   WytnijRegExp = RetStr
Set objRegExp = Nothing
Set colMatches = Nothing

End Function

I jeszcze jedna przydatna do tych celów funkcja – SzukajRegExp:

Function SzukajRegExp(myString As String, myPattern As String) As String
Dim objRegExp    As Object
Dim objMatch     As Object
Dim colMatches   As Object
Dim RetStr       As String
Set objRegExp = CreateObject("VBScript.RegExp")

   objRegExp.Pattern = myPattern
   'ignorowanie wielkości liter
   objRegExp.IgnoreCase = False
   'czy szukać wszystkich wyników czy tylko pierwszego
   objRegExp.Global = True
    'czy ciąg można porównać.
    If objRegExp.test(myString) = True Then
        Set colMatches = objRegExp.Execute(myString)
        For Each objMatch In colMatches
            RetStr = RetStr & objMatch.Value
        Next
   Else
        RetStr = ""
   End If
   SzukajRegExp = RetStr


Set objRegExp = Nothing
Set colMatches = Nothing

End Function

Funkcje te trzeba wpisać w Edytorze VisualBasic (Microsoft Visual Basic for Applications). Mając te funkcje można w komórce napisać:

=JEŻELI(CZY.BŁ(ZNAJDŹ("(";B2));"";szukajregexp(FRAGMENT.TEKSTU(B2;ZNAJDŹ("(";B2);500);";[ ]?[a-z][a-z](-[A-Z][A-Z]|;|\))"))

(dla jasności- nie chciałem przekopywać się przez cały łańcuch UA, wyszukuję więc pierwszy nawias- jeśli istnieje- i dopiero w tekście rozpoczynającym się od nawiasu wyszukuję łańcuch odpowiadający wyrażeniu regularnemu).

Wynik warto jeszcze oczyścić- zawiera średnik (średniki) lub nawias zamykający. Ale to już detal. Dopisałem sobie taką funkcję:

Function Cleaner(inputstring As String) As String
Dim Tmp As String
Dim i As Integer

Tmp = inputstring
Tmp = Application.Substitute(Tmp, ";", "")
Tmp = Application.Substitute(Tmp, ")", "")
Tmp = Application.Substitute(Tmp, " ", "")

Cleaner = Tmp
End Function

To prosta funkcja, kasuje średniki, nawiasy zamykające i spacje. Dzięki niej poprawiłem formułę, wygląda tak:

=JEŻELI(CZY.BŁ(ZNAJDŹ("(";B2));"";cleaner(szukajregexp(FRAGMENT.TEKSTU(B2;ZNAJDŹ("(";B2);500);";[ ]?[a-z][a-z](-[A-Z][A-Z]|;|\))")))

Mamy już piękne wyniki- en-US, pl, zh-CN bez zbędnych śmieci…

 

To teraz czas na kolejne wyzwanie. Zakładając że Referrer pochodzi od wyszukiwarek (np. Google)- zazwyczaj zapytanie zawiera łańcuch typu “&q=wyszukiwany+tekst“, lub “?q=wyszukiwany+tekst“. URLe kodowane są za pomocą funkcji URLEncode- trzeba więc użyć funkcji odwrotnej- URLDecode, by wyszukiwany tekst był czytelny.

Wyszukanie powyższych łańcuchów bez RegExp to katastrofa. Stosując RegExp możemy szukać łańcucha “(&|\?)q=[^&]+“:

=szukajregexp(B2;"(&|\?)q=[^&]+")

Z wyniku trzeba wywalić pierwsze trzy znaki (tj “?q=” lub “&q=”), a pozostały tekst przekonwertować funkcją URLDecode. O- taką funkcję trzeba najpierw napisać w Edytorze (w sieci można znaleźć wiele różnych wariantów, użyłem jednego z nich):

Public Function URLDecode(sEncodedURL As String) As String

On Error GoTo Catch

Dim iLoop   As Integer
Dim sRtn    As String
Dim sTmp    As String

If Len(sEncodedURL) > 0 Then
    ' Loop through each char
    For iLoop = 1 To Len(sEncodedURL)
        sTmp = Mid(sEncodedURL, iLoop, 1)
        sTmp = Replace(sTmp, "+", " ")
        ' If char is % then get next two chars
        ' and convert from HEX to decimal
        If sTmp = "%" And Len(sEncodedURL) + 1 > iLoop + 2 Then
            sTmp = Mid(sEncodedURL, iLoop + 1, 2)
            sTmp = Chr(CDec("&H" & sTmp))
            ' Increment loop by 2
            iLoop = iLoop + 2
        End If
        sRtn = sRtn & sTmp
    Next
    URLDecode = sRtn
End If

Finally:
    Exit Function
Catch:
    URLDecode = ""
    Resume Finally
End Function

Mając tą funkcję możemy zmienić formułę wyszukującą teksty w kwerendach:

=urldecode(FRAGMENT.TEKSTU(B2;ZNAJDŹ("=";B2)+1;500)))

No i mamy to co chcieliśmy. A przy okazji mamy parę funkcji w VBA, które może kiedyś się do czegoś innego przydadzą…

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in techniczne | Tagged , , , , , , , , , | Leave a comment

Domeny na aukcjach AfterMarket

Domeny aktualnie oferowane na aukcjach AfterMarket:

 

DomenaTypKoniec
hurtsrebro.plLM2011-12-22 19:00
srebropolfabrykaty.plLM2011-12-22 19:20
kucharznatelefon.plLM2011-12-22 19:30
bizuteriahurtownia.plLM2011-12-22 19:30
odbijpilke.pl 2011-12-24 20:00
mojbutik.com.plLM2011-12-25 19:00
metodyzaplodnienia.plLM2011-12-25 19:10
pyszneobiady.com.plLM2011-12-25 19:20
mojabiblia.plLM2011-12-25 19:40
ugotujmy.com.plLM2011-12-25 19:40
mojkoran.plLM2011-12-25 19:50
bizuteriapolfabrykaty.plLM2011-12-25 19:50
selekcje.pl 2011-12-25 20:00
kamienicznicy.pl 2011-12-25 20:00
domowejedzenie.com.plLM2011-12-25 20:30
ulubiony.com.plLM2011-12-25 20:30
kompletbizuterii.plLM2011-12-26 19:20
mojatora.plLM2011-12-28 19:50
listazyczen.com.plLM2011-12-28 19:50
zydowskie.pl 2011-12-29 20:00
bestdomain.com.plLM2012-01-01 19:00
niebezpiecznie.plLM2012-01-02 19:50
ratunek.com.plLM2012-01-02 19:50
ifony.plLM2012-01-02 19:50
ajfony.plLM2012-01-02 19:50
niewymowne.plLM2012-01-02 20:40
urokbikini.plLM2012-01-02 20:50
zabawkidladziewczynki.plLM2012-01-02 20:50
podniesienie.plLM2012-01-02 21:00
fabrystrefa.plLM2012-01-03 19:40
fabryscena.plLM2012-01-03 20:40
polbank24.com.plLM2012-01-06 20:20
pizdzik.plLM2012-01-12 19:00
ukosem.plLM2012-01-14 19:20

Zapraszam na aukcje!

Podziel się na:
  • email
  • Facebook
  • Wykop
  • Twitter
  • Blip
  • del.icio.us
  • Blogger.com
  • Tumblr
Posted in domeny, rynek domen | Tagged , , , | Leave a comment