Stuxnet

Napisał bartek w kategorii Artykuły, Reversing

Miażdząca krytyka jednego z najbardziej ciekawych wirusów komputerowych ostatnich lat, wytyka brak wykorzystania nowoczesnych metod obfukacji, wirtualizacji kodu czy ukrywania payloadu:

Stuxnet is embarrassing, not amazing

Jak się tak zastanowić, to sam mam wątpliwości czy istnieją jeszcze wirusy z polimorficznymi czy metamorficznymi silnikami?

Brak Komentarzy

Tajemnicze zniknięcie Dancho Dancheva

Napisał bartek w kategorii Inne, Ze Świata

Dancho Danchev to znany blogger publikujący materiały o cyber-przestępczości, na jego blogu można znaleźć informacje o botnetach, ich źródłach, autorach czy ich powiązaniach.

Od października ubiegłego roku jego blog milczy, mimo, że zawsze aktywnie działał i dekonspirował działania cyber-przestępców (taki Julian Assange cyberprzestępczości), zaistniało podejrzenie, że coś niedobrego stało się z bloggerem i być może zamieszani są w to ludzie, o których działaniach pisał na swoim blogu.

Redaktorzy serwisu ZDNet postanowili sprawdzić co stało się z Dancho Danchevem, jednak wszelkie próby kontaktu nie powiodły się, co jest jednak niepokojące, uzyskali infromacje z lokalnych źródeł, że blogger znalazł się w poważnych tarapatach i wszystko wskazuje na to, że zainteresowały się nim bułgarskie służby bezpieczeństwa po tym, gdy Dancho został zarekomendowany przez attache FBI w Sofii na członka bułgarskiego oddziału CERT.

Więcej informacji oraz list, który wysłał do swojego przyjaciela informujący o przeszukaniu przeprowadzonym w jego mieszkaniu można znaleźć w oryginalnym artykule serwisu ZDNet.

Komentarze (3)

Jak oddać głos w PHP

Napisał bartek w kategorii PHP, Programowanie
, , ,

Prosty skrypt, który zrobiłem dla znajomego, pozwalający automatycznie oddać głos w ankiecie (może to nie za bardzo etyczne, ale kogo to obchodzi).

Przykładowa forma głosowania (update, dzięki Tomek) wygląda tak:

<html><body>
 
<form name="Poll" action="vote.php" method="post">
 
<input type="hidden" name="param1" value="param 1 value" />
<input type="hidden" name="param2" value="param 2 value" />
<input type="hidden" name="param3" value="param 3 value" />
 
<input type="submit" value="Submit" />
 
</form>
 
</body></html>

Forma zawiera 3 ukryte pola (może to być np. identyfikator głosowania) oraz button Submit, należy również zwrócić uwagę na sposób przesyłania danych, tzn. POST lub GET. Skrypt do głosowania:

<?php
 
$url = 'http://www.example.com/vote.php';
 
// lista przegladarek
$agents = array("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)",
                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)",
                "Opera/9.63 (Windows NT 6.0; U; ru) Presto/2.1.1",
                "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
                "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.18) Gecko/20081203 Firefox/2.0.0.18",
                "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16",
                "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1"
                );
 
$ch = curl_init();
 
// parametry
$fields = array('param1' => urlencode('param 1 value'),
                'param2' => urlencode('param 2 value'),
                'param3' => urlencode('param 3 value'),
                'submit' => urlencode('Submit vote')
        );
 
// zbuduj poprawny ciag dla cURL
foreach($fields as $key => $value)
{
        $fields_string .= $key.'='.$value.'&';
}
 
rtrim($fields_string, '&');
 
$ch = curl_init();
 
// adres strony
curl_setopt($ch, CURLOPT_URL, $url);
 
// ilosc parametrow
curl_setopt($ch, CURLOPT_POST, count($fields));
 
// parametry POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
 
// przegladarka
curl_setopt($ch, CURLOPT_USERAGENT, array_rand($agents));
 
// zwroc tylko wynik
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
$result = curl_exec($ch);
 
curl_close($ch);
 
// wyswietl wynikowy kod html
//echo $result;
 
?>

Skrypt wymaga zainstalowanej biblioteki cURL.

Komentarze (5)

Keywords v1.4

Napisał bartek w kategorii Inne, Rozrywka

web-searchNajbardziej oryginalne keywordy z zeszłego 2010 roku wpisywane w wyszukiwarki, które doprowadziły do Security News.

  • usunolem z rejestru cd rom czy da sie to naprawic — musisz włożyć CD-ROM do portu ISA na płycie głównej i będzie gites
  • wirus wyłącz niekończąca się opowieść — 10. goto 10
  • swiat binarny— masz 0100010101010001010 :)
  • naprawa urwane nóżki procesora cena — zią, lutownica w dłoń i samemu dasz radę!
  • list do kuby żeby nie siedział długo przy komputerze — drogi Kubo, nie siedź za dużo przy komputerze, bo Ci oczy odpadną. Zatroskana redakcja secnews.pl
  • jak naprawić komputer kiedy nie może się sam naprawić — polecam młotek, wiertarkę i poradnik młodego chemika
  • jak naprawic windowsa gdy wyskakuje ta kopia nie jest orginalna — drobną kwotą pieniężną
  • jak hackowac w exelu — no jak, w VB, tak jak robią to pro hakerzy :)
  • co mówic gdy sie dzwoni do naprawy komputerowej — jąkając się zapytać o ce-ce-ce-ce-ce-nę pi-pipizzy i za-zaza-mówić dużą z oooooostrą papryką i oooooliwkami
  • asertywność fachowiec przyjaciel informatyk — naprawię twój komputer w zamian za sex
  • jak naprawic kompa jak nie dziala klawiarura — nad tym już starożytni medytowali i nic nie wymedytowali
  • czy hackerzy | maja | duże | penisy — mają tycie baby dicki
  • rada zeby komputer przestal sie mulic — wypłukać wentylator procesora w rzece, mówią, że zimna rzeczna woda działa najlepiej na komputerowe akcesoria
  • po zainstalowaniu neostrady płyta główna przestała działać — mi po instalacji neostrady przestał działać elektryczny zapalnik w kuchence gazowej, co zrobić – zrozpaczona Agata?
  • zalety drogich foteli biurowych — cena
  • młoda napalona ciekawa przygoda — 9 miesięcy, telefon, przygoda
  • crak na poczatku czy na koncu — ja polecam w trakcie
  • rzeczy które nie sa komputerami ale dzialaja podobnie — lodówka, krzesło, kostka rubika, iMac…
  • czy jak komputer glosno chodzi to znaczy ze sie cos spala — no tak, zwykle procesor, dlatego musisz go od czasu do czasu skrapiać wodą tak jak kwiatki
  • procesor działa tylko w pozycji leżącej — w pozycji stojącej działa prawo ciążenia i prąd ani instrukcje procesora nie płyną do góry, można to naprawić przystawiając magnes do procesora w tej pozycji stojącej
  • po odkurzaniu odkurzaczem z kurzu przestał działać komputer — patrz niżej
  • komputer po odkurzaniu znowu zaczął działać — weź się zdecyduj

Brak Komentarzy

Reversing Clipper

Napisał bartek w kategorii Artykuły, Reversing
, , ,

Clipper – czyli czego się nie nauczyłem

Clipper to język programowania z czasów DOS-a, ściśle związany z operowaniem na bazach danych, można powiedzieć, że to protoplasta Visual FoxPro.

Piszę o tym, ponieważ przed świętami otrzymałem zlecenie na modyfikację starego programu napisanego w środowisku Clipper, modyfikacja miała polegać na zmianie stawki VAT z 22% na 23% i 7% na 8%, czyli popularny ostatnio temat, związany z noworoczną zmianą stawki podatkowej.

Opiszę jedynie jak zabrać się za tego typu oprogramowanie, ponieważ w sieci nie znalazłem praktycznie żadnych materiałów o analizie aplikacji Clippera.

Rozpoznanie

Po czym poznać, że stara aplikacja DOS jest utworzona w Clipperze? Ja poznałem po tym, że jak załadowałem ją do IDA to nic nie rozumiałem z kodu ani żadnych ciekawych tekstowych referencji nie znalazłem, po prostu syf w czystej postaci, nawet sobie pomyślałem, że to jakaś aplikacja z DOSowego piekła rodem.

Przeglądając binarkę pod HIEW dostrzegłem jednak ciekawe informacje:

A więc wiadomo, że to Clipper w wersji 5.2. Mamy jakiś punk zaczepny.

Analiza

Aplikacje w Clipperze kompilowane są do pseudokodu (p-code), więc jeszcze lepiej zapowiadała się analiza, nawet nie wiedziałem, że w czasach DOSu ludzie mieli taką fantazję, żeby już tworzyć podwaliny pod platformę .net :)

Jednak ku mojemu zaskoczeniu i długim wyszukiwaniu, udało mi się znaleźć działający dekompilator, co uznałem wręcz za cud (w końcu były święta), ponieważ wiek samego anailzowanego programu jak i dekompilatora był już dość spory.

Odnaleziony dekompilator to Valkyrie 5, stworzony przez tą samą firmę, która jest odpowiedzialna za środowisko CA-Clipper.

Po otworzeniu głównego pliku aplikacji w dekompilatorze, ukaże się nam okno z informacjami i statystykami dla aplikacji:

Co ważne i na co należy zwrócić uwagę, to że aplikacja w Clipperze oprócz funkcji samego Clippera posiada również funkcje napisane w C/Assemblerze, które nie zostaną zdekompilowane, a jedynie uzyskamy dostęp do informacji o ich położeniu w pliku binarnym.

Domyślnym oknem w dekompilatorze jest lista modułów, z których zbudowana jest aplikacja oraz ich funckje:

Składnia języka Clipper nie jest zbyt skomplikowana (przypomina trochę Pascala) i można w miarę szybko ją zrozumieć, co ciekawe i co zwróciło moją uwagę to funkcja EVAL, która pozwala wykonać podany blok kodu źródłowego (jak eval z PHP).

Przykładowa zdekompilowana funkcja:

Oprócz kodu w HLL, można samą funkcję obejrzeć w p-code (i jak się można domyśleć modyfikacje również muszą być dokonywane manipulując na p-code):

Oprócz funkcji napisanych w języku Clipper, wspominałem wyżej, że plik może również zawierać natywny kod, listę tych funkcji możemy podejrzeć po wybraniu Menu -> View -> Externals:

Do ich podglądu należy skorzystać już z HIEW.

Bazy danych

Aplikacje Clipper domyślnie są aplikacjami bazodanowymi, a format plików jakim operują to *.DBF, muszę przyznać, że trochę czasu mi zajęło znalezienie odpowiedniej aplikacji do podglądu tego typu plików i pierwsza z nich, którą polecam to DBF Viewer 2000, a jeśli posiadacie środowisko Visual FoxPro to również z jego poziomu można przeglądać bazy danych w tym formacie, co było małym zaskoczeniem, że obsługiwane są bazy w tak starym formacie.

Uruchamianie

Z aplikacją, z którą ja pracowałem, miałem problem, żeby w ogóle ją uruchomić, pod konsolą DOS w systemie Windows odmawiała posłuszeństwa, DOSBox 0.74 również niewiele pomógł, ratunkiem okazał sie po prostu natywny MS-DOS 6.22 uruchamiany pod VMWare.

Przy okazji próbowałem dobrać się do tej aplikacji jakimś starym debuggerem jednak bez większych efektów, bo jak się okazało Clipper i SoftICE za bardzo się nie lubią, ale na pamiątkę strzeliłem screenshota:

Czego się nie nauczyłem?

Głównie tego jak poprawnie debugować tego typu aplikacje i jak modyfikować więcej niż kilka instrukcji, nie mówiąc o podmianie całych bloków kodu. Clipper należy już z zasadzie do przeszłości, ale mimo wszystko warto czasami zobaczyć jak zbudowane były i jak funkcjonowały stare aplikacje, bo wiele z tych technik (czy zamysłów) jest obecnie wykorzystywanych.

Komentarze (6)

YouTube i moje preferencje

Napisał bartek w kategorii Inne

YouTube kiedyś był fajnym serwisem, z którego korzystałem żeby oglądać klipy, których normalnie nigdzie indziej bym nie znalazł, od jakiegoś czasu jednak denerwuje mnie niezmiernie z paru przyczyn:

  • wolne ładowanie – nie wiem co oni robią, ale czasami niektóre klipy po prostu ładują się niemiłosiernie wolno i nie, nie mam modemu 14kbps, moja teoria spiskowa jest taka, że jako użytkownik z Polski mam ruch serwowany z jakiegos spróchniałego serwera na Białorusi
  • wszędzie reklamy, reklamy w filmikach, tło reklamowe całego serwisu, reklamy, które każą czekać aż obejrzę właściwą treść…
  • zablokowana treść dla mojego regionu – ręcę opadają, gdy próbuję posłuchać polskiego klipu i nie mogę, bo wydawca to zablokował, nawet nie mówię o zagranicznych piosenkach, które masowo są blokowane i dostępne chyba jedynie dla spasłych obywateli USA, god bless america!

Ale to pikuś, najbardziej wnerwia mnie to, że jako zarejestrowany użytkownik, raz na miesiąc, serwis YouTube automatycznie zmienia moje preferencje na ustawienia lokalne!

Czytaj – normalnie mam ustawiony język angielski (bo lubię!) i filtr wyświetlający filmy z całego świata, jednak YouTube automatycznie i regularnie ustawia mi język polski i rejon Polska, ktokolwiek to wymyślił mam nadzieję, że skończy na zmywaku w chińskiej restauracji. Jak dotąd cały ten proces był automatyczny, dzisiaj jednak powitał mnie jakże miły komunikat:

Jestem w nim informowany, że ustawione są moje preferencje językowe i regionalne, tak – to chyba całkiem moje te preferencje nie są, całe szczęście dali teraz możliwość anulowania tych zmian, jednak przez tyle lat na YouTube swoje się naklikałem, żeby wrócić do faktycznie swoich preferencji.

Komentarze (2)