Posts tagged Linux

Oracle VirtualBox

Porównanie VMware Server z Oracle VirtualBox

1

Projekt porównania produktu VMware Server z Oracle VirtualBox powstał w ramach przedmiotu Wirtualizacja Systemów IT na WAT. W ramach niniejszego sprawozdania zawarłem najważniejsze zagadnienia związane z porównywanymi środowiskami wirtualizacji, wyniki przeprowadzonych testów, wnioski z nich wynikające oraz subiektywne uwagi. Na podstawie dokumentacji VMware Server 2.0.2 oraz Oracle VirtualBox sporządziłem zestawienie porównawcze funkcji oferowanych przez obu hypervisor-ów (VMM).

Projekt spotkał się z zainteresowaniem prowadzącego przedmiot, dlatego podbudowany tym faktem postanowiłem go opublikować. ;-)

Atak metodą brute-force przy użyciu THC-HYDRA

0

Artykuł przygotowany w ramach Studium Ataków i Incydentów na WAT, co tłumaczy również format w jakim powstał. W sprawozdaniu relacjonuję przebieg rekonesansu i sposób przeprowadzenia ataku metodą słownikową brute-force. Swoją drogą bardzo spodobało mi się znalezione na stronie Wikipedii pod hasłem “Atak brute-force” zdanie:

“Jest to zwykle nieoptymalna, ale najprostsza do zaimplementowania i najbardziej skuteczna metoda postępowania (ponieważ teoretycznie pozwala ona złamać każde hasło – praktycznie może to potrwać nawet tysiące i miliony lat).”

Nieoptymalna, bo właśnie może bardzo długo trwać. Najprostsza, bo wystarczy wskazać, gdzie “wklepywać” kolejne pary poświadczeń w nadziei na pomyślną autoryzację dostępu. I tutaj najlepsze. Jest to metoda najbardziej skuteczna. Nawet gdyby miało to trwać miliony lat, nadal jest to skuteczna metoda ;-) Prawie jak granice w matematyce. Wartość funkcji nawet przy niewyobrażalnie dużym parametrze do swojej granicy nie dobrnie, jednak przy parametrze dążącym do nieskończoności i owszem. Do artykułu odsyłam na docs.google.com lub wersji PDF do pobrania:

  • Atak metodą słownikową (brute force) przy użyciu THC-HYDRA [pobierz] [podgląd]

Days since Unix epoch

4

Potrzeba wygenerowania liczby sekund od początku epoki UNIX-a zdarza się często. W Internecie nie trudno znaleźć informacje jak zdobyć taką liczbę w różnych językach programowania. Liczbę sekund można uzyskać także online na http://www.epochconverter.com/. Ostatnio jednak robiłem wpisy do pliku /etc/shadow w Solaris 10. Aby określić wygasanie konta, należy ustawić odpowiednią wartość na 8 pozycji w wierszu w postaci liczby dni od 1 stycznia 1970. [1] Tak więc jeśli chcemy, aby konto wygasło dnia 20.07.2013 musimy tam ustawić wartość 15906. Tylko skąd ja to wziąłem? Policzyłem na piechotę? Z pomocą przyszły dwie funkcje dostępne w PHP.

print floor(mktime(12,0,0,$MONTH,$DAY,$YEAR)/86400); //Zwroci liczbe dni od daty zasanej zmiennych $DAY, $MONTH oraz $YEAR
print floor(time()/86400); //Zwroci liczbe dni od 01.01.1970 do dzis

Gotowy generator mojego autorstwa możesz znaleźć tutaj:

[1] shadow(4) – shadow password file, http://docs.sun.com/app/docs/doc/816-0219/6m6njqbc2?a=view

php-mysql

PHP – pobieranie adresu MAC

1

Wielu administratorów sieci LAN wprowadza filtrację adresów MAC i ustawia reguły przydzielania adresów IP w zależności od adresu fizycznego karty sieciowej. W małych sieciach można zrobić to “na piechotę”, jednak tam gdzie pracuje ponad 200 leniwy inżynier stara się ułatwić sobie życie.

(more…)

BabyTux

Systemy operacyjne – komunikacja międzyprocesowa

0

Opracować zestaw programów typu producent – konsument realizujących przy wykorzystaniu mechanizmu kolejek komunikatów następujący schemat komunikacji międzyprocesowej:

  • Proces 1: czyta dane (pojedyncze wiersze) ze standardowego strumienia wejściowego i przekazuje je w niezmienionej formie do procesu 2.
  • Proces 2: pobiera dane przesłane przez proces 1. Oblicza ilość znaków w każdej linii i wyznaczoną liczbę przekazuje do procesu 3.
  • Proces 3: pobiera dane wyprodukowane przez proces 2 i umieszcza je w standardowym strumieniu wyjściowym. Każda odebrana jednostka danych powinna zostać wyprowadzona w osobnym wierszu.

Należy zaproponować i zaimplementować mechanizm informowania się procesów o swoim stanie. Należy wykorzystać do tego dostępny mechanizm sygnałów i łączy nazwanych (kolejek FIFO). Scenariusz powiadamiania się procesów o swoim stanie wygląda następująco: do procesu 3 wysyłane są sygnały . Proces 3 przesyła otrzymany sygnał do procesu macierzystego. Proces macierzysty zapisuje wartość sygnału do kolejek FIFO oraz wysyła powiadomienie do procesu 1 o odczytaniu zawartości kolejki FIFO. Proces 1 po odczytaniu sygnału wysyła powiadomienie do procesu 2 o odczytanie kolejki FIFO. Proces 2 powiadamia proces 3 o konieczności odczytu kolejki FIFO. Wszystkie procesy powinny być powoływane automatycznie z jednego procesu inicjującego.

Dodatkowo trzeba zapewnić, aby wszystkie procesy oprócz Procesu 3 miały ignorowały wysyłane z zewnątrz sygnały SIGTERM, SIGTSTP, SIGCONT. Sygnał stopu (pauzy) powinien zatrzymywać czytanie wierszy, a po wznowieniu sygnałem kontynuacji czytanie powinno zostać dokończone. Natomiast sygnał SIGTERM nie powinien przerwać czytania wierszy – cały proces powinien zostać dokończony i po zakończeniu czytania i wypisywania program powinien się zakończyć.

Dla łatwiejszego zrozumienia zasady działania powyższego programu stworzyłem diagram pokazujący jak będą komunikować się procesy.

diagram komunikacji międzyprocesowej

Program do pobrania:

Pakietowy diagram warstw i poziomów

1

Pakietowy Diagram Warstw i Poziomów

Nigdzie w Internecie nie mogłem znaleźć grama informacji na temat tego diagramu, więc spróbuję w skrócie wyjaśnić jak on “działa” ;)

(more…)

BabyTux

Drzewo procesów – funkcja fork();

0

drzewo procesów

Zaprojektować drzewo procesów przedstawione na powyższym grafie. Wypisać parametry procesu według szablonu:

P(nr_procesu) ID:(id_procesu) PID:(id_rodzica) OFFSETs:(id_dzieci)

(more…)

Go to Top