31 marca 2011

Apache FOP na Apache Tomcat cz.2

Jak człowiek sam nie pokombinuje, to sobie może szukać w necie i oczywistych rzeczy nie zobaczy... Wystarczyło ściągnąć źródła FOPa, przekompilować wszystko ant, przekopiować fop.war do katalogu webapps/ i już. W Slackware, wystarczyło ściagnąć i odpalić Tomcat'a, wcześniej kopiując skompilowany pod Debianem fop.war do katalogu webapps/ i... gotowe.

Apache FOP na Apache Tomcat cz.1

Zachciało mi się to odpalać... ech... jak na razie pod górę... a chciałem tylko generować sobie skomplikowane PDFy w przeglądarce... Niby w manualach wygląda to na dziecinnie proste, ale schody są od początku. Pierwsze próby na Debianie, niby gotowe paczki i tak dalej a jednak nie wychodzi... To co się będzie działo, jak będę próbował to odpalać na Slacku... Mam nadzieję, że się uda, bo jak zobaczyłem FOPa w akcji, to szczena mi opadła... A jak się nie uda, to się zrobi jakiegoś wrappera w Perlu i już...

29 marca 2011

Ubiquiti cz.1

Ponieważ ostatnio mieliłem temat skanowania mikrotików, przyszło mi do głowy aby zrobić podobny skaner do urządzeń Ubiquiti. Dostępny jest oficjalny skaner, wieloplatformowy, napisany w Javie, działający w trybie graficznym, a... ja pracuję w konsoli i trzeba było sobie z tym jakoś poradzić. Z tym wykrywaniem ubiquiti jest malutki problem, zmienny format ramki. Ponieważ mam możliwość przeskanowania kilku rodzajów tych urządzeń, nie było więc problemu z rozszyfrowaniem ich struktury. Szczegóły techniczne zostawię na część drugą...

Orinoco

Jak już jestem w temacie skanowania urządzeń, pierwszym skryptem do skanowania jaki napisałem, był skaner access pointów Orinoco. Oczywiście istniała aplikacja do ich skanowania - ScanTool. Problem z tą aplikacją polegał na tym, że uruchamiała się tylko pod... Windows 98. Dopiero po dość długim czasie, zapewne po hotfix'ach wydanych przez Microsoft do swoich systemów, zaczął działać poprawnie pod Windows 2000 i XP. Ale tym razem nie będę się tu rozpisywał na temat samego skryptu, ponieważ sprzęt który wykorzystywaliśmy, stał się ciężko osiągalny i do tego został wyparty przez rozwiązania oparte na urządzeniach MikroTik. Jednakże gdy pojawią się zainteresowani, udostępnię kod.

26 marca 2011

MNDP cz.2

Aplikacja Winbox w momencie rozpoczęcia wykrywania urządzeń, wysyła na adresie rozgłoszeniowym trzy ramki UDP o wartości 0x00000000, na porcie 5678. Urządzenia odpowiadają ramką w formacie MNDP, bardzo podobną do CDP. Ponieważ skrypt do wykrywania mikrotików napisałem w perlu, strukturę ramki przedstawię jako argument funkcji unpack, a wygląda ona następująco:
@s = unpack "H2H2H4(H4n/a*)*", $ramka;

             MNDP           CDP
$s[0]        ??             wersja ramki CDP
$s[1]        ??             time-to-live
$s[2]        age?           suma kontrolna
(
    $s[3]    typ            typ
    X
    $s[4]    wartość        wartość
)
...
W tabeli zawarto porównanie elementów struktury ramki MNDP z ramką CDP. Trzy pierwsze elementy struktury są ciężkie do zidentyfikowania, na podstawie wartości które tam się pojawiają. Element oznaczony X to długość następującego po nim łańcucha. Element ten jest automatycznie "wchłaniany" przez unpack, dlatego nie występuje jako osobny element w zwracanej tablicy. Element $s[3], jak sama nazwa wskazuje, zawiera typ przesyłanej wartości. Rozpoznane typy:
    0x0001    MAC interfejsu z którego urządzenie wysłało odpowiedź
    0x0005    identyfikator urządzenia (domyślnie MikroTik)
    0x0007    wersja RouterOS/SwOS
    0x0008    platforma
    0x000a    uptime w sekundach (unsigned long)
    0x000b    software-id - jeśli dotyczy
    0x000c    model RouterBOARD'a - jeśli dotyczy
    0x000d    niezidentyfikowany - zawsze pusty łańcuch
Więcej typów nie zaobserwowałem, być może jest ich więcej (sprawdzałem ramki dla różnych wersji oprogramowania RouterOS oraz SwOS). Grup, składających się z elementów $s[3] i $s[4] jest kilka. Ilość i ich rodzaj, uzależniona jest od wersji RouterOS/SwOS. Na razie to tyle, skrypt w kolejnej części.