Posts tagged Linux
Porównanie VMware Server z Oracle VirtualBox
1Projekt 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
0Artykuł 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:
Days since Unix epoch
4Potrzeba 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 – pobieranie adresu MAC
1Wielu 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.
Systemy operacyjne – komunikacja międzyprocesowa
0Opracować 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.
Program do pobrania:
Pakietowy diagram warstw i poziomów
1Nigdzie 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” ;)
Drzewo procesów – funkcja fork();
0
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)



Zawodowo inżynier informatyk, administrator sieci IT, programista, webdeveloper. Prywatnie przeciętny facet usiłujący spełnić kilka swoich marzeń. Strona powstała po to, aby podzielić się z Wami moimi osiągnięciami. Zapraszam ;)