Feeds:
Wpisy
Komentarze

Generator PESEL

Program generuje prawidłowe numery PESEL dla ludzi urodzonych w latach 1900-1999. Program sprawdza ilość dni w wylosowanym miesiącu, dlatego nie generuje nieistniejących dat takich jak np. 31 kwietnia. Ludzie urodzeni 29 lutego nie będą losowani (ale oni już przywykli że wszyscy ich olewają ;) ). Napisane pod Python 2.6.2 na prośbę cOndemneda, mam nadzieję że komuś się przyda.

skrypt (zmienić nazwę na pesel.py)
podpis (zmienić nazwę na pesel.py.sig)

Proszę o zgłaszanie znalezionych błędów.

[1] – Błąd znaleziony przez doktor. Brakowało na końcu modulo 10, jeżeli liczba kontrolna = 0 to dopisywało 10, tworzac 12 cyfrowy pesel. Poprawione, dzięki ;)

Truecrypt

truecryptOd czasu kiedy człowiek zszedł z drzewa chciał szyfrować dane. No… może nie zupełnie tak to przebiegało, ale potrzeba prywatności od zawsze towarzyszyła gatunkowi ludzkiemu, zarówno przy ukrywaniu intymnych szczegółów swojego bezużytecznego i nudnego życia, jak i przy zacieraniu śladów przestępstw. Truecrypt pomoże nam w obu przypadkach :) . Za chwilę zaszyfrujemy sobie w locie dysk 8 GB z zainstalowanym systemem Windows. Przy starcie systemu podajemy klucz szyfrowania, a sterownik Truecrypta udostępni systemowi odszyfrowany interfejs. System zapisując dane na dysk, w sposób przeźroczysty dla niego szyfruje dane które zostają zapisane, dlatego żadne dane nie będą zapisane w sposób jawny. Troszkę za dużo powtórzeń miałem w ostatnim zdaniu ale zaplątałem się troszkę i nie bardzo wiem jak z tego wybrnąć :D .
Nie ma co przedłużać, zaczynamy! Oto nasz podstawowy system:
truecrypt00Wchodzimy na stronę Truecrypta i pobieramy aplikację.
truecrypt01No i oczywiście odpalamy instalację.
truecrypt02Zgadzamy się na wszystkie pierdoły, wybieramy opcję install i wpisujemy ścieżkę.
truecrypt03truecrypt04No i uruchamiamy naszego Truecrypta :)
truecrypt05Zainstalujemy sobie język polski. Klikamy na Settings > Language.
truecrypt06Przekierowuje nas na stronę internetową, gdzie wybieramy sobie ten język, pobieramy i wypakowujemy do katalogu Trucrypta.
truecrypt07 truecrypt08I uruchamy Truecrypta jeszcze raz.
truecrypt09Wybieramy System > Szyfruj partycje/dysk systemowy… No i oczywiście normalne szyfrowanie.
truecrypt10Wybieramy że chcemy zaszyfrować cały dysk.
truecrypt11Następnie każdy z Was wybiera to co potrzebuje ;] ja dałem “tak”.
truecrypt12Kolejne pytanie – zakładam ze mamy tylko jeden system. Jeżeli mamy więcej, trzeba wybrać drugą opcję.
truecrypt13Nie mamy dużego wyboru w algorytmach szyfrowaniach i algorytmach hashujących. Aktualnie przy szyfrowaniu dysku Truecrypt wspiera tylko 2 domyślne opcje.
truecrypt14Mały test prędkości ;) .
truecrypt15Następnie istotna kwestia wyboru hasła. Nie możemy go zapomnieć, matematyki nie da się przekupić. Za bezpieczne uznaje się hasła powyżej 10 znaków, duże i małe litery oraz znaki specjalne. Użyjcie dłuższego niż ja użyłem do testów.
truecrypt16Następnie zbieranie danych losowych.
truecrypt17truecrypt18
A teraz, wybieramy miejsce gdzie zapisujemy obraz dysku ratunkowego. Jeżeli stanie się coś złego, np usuniemy sobie MBR, możemy uruchomić system z tej płytki i uratować swoje dane. Na szczęście nie można tego olać, wypalenie obrazu jest wymagane.
truecrypt19truecrypt20Wypalamy obraz i zostawiamy płytkę w napędzie celem weryfikacji.
truecrypt21Teraz wybieramy sposób zamazania danych na dysku. Ja wybrałem… żaden. Przy obecnej gęstości zapisu danych na dysku, nie można ich jednoznacznie odtworzyć nawet mikroskopem elektronowym. Dlatego – nie wymazujemy nic.
truecrypt22A teraz test szyfrowania. W skrócie, przygotowanie wpisu w MBR, etc. Ten krok wymaga resetu systemu.
truecrypt23truecrypt24truecrypt25Przy starcie podajemy już nasze hasło, przywyknijcie do tego!
truecrypt26Po uruchomieniu systemu, wyświetla się opcja z sukcesem testu.
truecrypt27No i jedziemy z szyfrowaniem!
truecrypt28No i dane zostają zaszyfrowane w locie – nic nie tracimy. Oczekujemy końca, oto i on.
truecrypt29Teraz tylko restart i …
truecrypt30truecrypt31I działa :)
Podsumowując, bezpieczeństwo naszych danych zależy od paru kwestii, takich jak długość hasła i jak długo wytrzymamy na przesłuchaniu z akumulatorem na …

Najważniejsze to nie pozostawiać komputera uruchomionego bez nadzoru, przy pewnym nakładzie pracy można wyciągnąć klucz szyfrowania z pamięci RAM. Hasło nie powinno być nigdzie zapisane, a już na pewno nie można go nikomu powiedzieć. Pamiętajcie, że każdego można kupić.

… i to za cenę która mu się wcale nie opłaca

DBAN

Poznałem niedawno świetny sposób na wyczyszczenie całego swojego dyskuDBAN. Mówiąc w skrócie, polega to na tym, że wypala się obraz DBANa na płytkę, uruchamia z niego maszynę a on przejedzie po dysku sektor po sektorze i nadpisze go zerami ;] IMHO świetny sposób na zatarcie śladów.

Najpierw musimy przygotować sobie jakiś działający system. W moim przypadku jest to:
dban01No ok, uruchamiamy maszynę z płytki DBANa.
zrzut_ekranu-dban-dban-uruchomiona-virtualbox-edycja-opensourceOpcja autonuke jest fajna, wyszukuje na dysku wszystkie urządzenia blokuje i je zeruje ;) . My jednak zajmiemy się trybem interaktywnym, czyli naciskamy enter.
zrzut_ekranu-dban-dban-uruchomiona-virtualbox-edycja-opensource-1W tym przypadku miałem tylko jeden dysk i jedną partycję, więc wybór jest prosty. Naciskamy spację, przed naszą partycją pokazuje się znacznik [wipe].
zrzut_ekranu-dban-dban-uruchomiona-virtualbox-edycja-opensource-2Pozostaje nam tylko naciśnięcie F10 i rozpoczęcie dzieła zniszczenia.
zrzut_ekranu-dban-dban-uruchomiona-virtualbox-edycja-opensource-3
zrzut_ekranu-dban-dban-uruchomiona-virtualbox-edycja-opensource-4
Jak widać u mnie zajęło to masę czasu, ale to wina niskiej wydajności środowiska testowego.
zrzut_ekranu-dban-dban-uruchomiona-virtualbox-edycja-opensource-5Po restarcie naszym oczom ukazuje się pogorzelisko.
zrzut_ekranu-dban-dban-uruchomiona-virtualbox-edycja-opensource-6Na dysku nie ma żadnych danych ani tablicy partycji. Po prostu całe urządzenie blokowe jest w stanie surowym – zapełnione jest samymi zerami.
I o to nam chodziło ;) Więcej informacji o opcjach tego programu znajdziemy na wikipedii.

Lubię zapach formatowanego dysku o poranku.

Żołnierze Milw0rma

Pamiętacie Mentora? Tak, tego Mentora. Wielu z Was kieruje się jego Manifestem, większość stara się według tego żyć. Otóż ten Mentor właśnie przewraca się w grobie.

Dziś każdy średnio obeznany w komputerach chłopak w okresie szkoły średniej jest już hakerem – albo za takiego się uważa, albo za takiego uważają go inni. Nie ma znaczenia, że najczęściej potrafi jedynie zainstalować cracka do nowej fify, wypalić płytkę z obrazu Iso, a jak do tego potrafi obsługiwać jakiegoś trojana – to już jest komputerowym bogiem.

Co z tego, że zna maksymalnie 3 nazwy systemów operacyjnych, a na prośbę o wykonanie dodawania binarnego odpowiada: “Tego się już nie używa, to przestarzałe jest“. Również na mojej uczelni są przypadki “coder wannabie” – osób, które deklarują się jako wieloletni zawodowi programiści, a na wykładzie z podstaw programowania wyskakują z tekstem, że “nie wiedzieli, że w C też są pętle for

Skąd to wszystko się bierze? Skąd taki wielki popyt na Szkołę hakerów? Ktoś pomylił priorytety, czy po prostu podąża za obecnym trendem, obnażając wrodzone kompleksy i przymus bycia na topie – nawet fikcyjnie? Przytoczę teraz dwa przykłady z dość znanego w środowisku script kiddie serwisu Milw0rm.

Wiadomo, dla zwykłego laika publikacja na Milw0rmie nie jest rzeczą łatwą. Wielu starszych użytkowników Milw0rma sygnalizuje obniżający się poziom serwisu. Dlatego też, dobrym sposobem na wybicie się jest publikacja exploita na Kernel Linuksa!

Przyjrzyjmy mu się z bliska:

Najnowszy Kernel, będący podatny na tą lukę, został wydany w lipcu 2007 roku, a więc około 15 miesięcy wcześniej. Serio, 15 Miesięcy. A teraz inny wymóg, który musi zostać spełniony do przeprowadzenia ataku – musimy znaleźć folder z ustawionym bitem sgid, do którego wszyscy użytkownicy mają prawa zapisu.

Brzmi zabawnie? To nie wszystko! Poza tym, potrzebujemy w systemie powłoki, która nie redukuje uprawnień po wykonaniu skryptu. To już jest żałosne. Czy ten exploit nie przypomina Wam przypadkiem luki w stylu: “Dajcie mi adres forum na którym nie ma ustawionego domyślnego hasła admina, a ja się do niego włamię“? Ale grunt to się pokazać, że mamy exploit na Kernel Linuksa. Idąc tym tropem, oświadczam wszem i wobec, że aktualne postępy w przejęciu firmy Google przeze mnie oceniam na 50%. Posiadam umowę kupna-sprzedaży, podpisany przeze mnie. Brakuje jeszcze tylko podpisu Larry’ego Page’a. Zauważacie ironię?

No ok, zostawmy naszego chakiera w spokoju.

Przykład drugi, Simple Machines Forum. Skrypt przez wielu uważany za najbezpieczniejszy, jeszcze nikt nie opublikował publicznie exploita na aktualną wersję SMF. Jednakże, na Milw0rmie taki się pojawił!

Idea luki polega na tym, że wynik funkcji rand() uruchamiającej na platformie Windows generator liczb pseudolosowych jest liczba całkowita dwubajtowa ze znakiem, czyli około 32 000 możliwości. Znając swój ID sesji, jesteśmy w stanie ustalić aktualny stan generatora, a następnie każdą następną wygenerowaną przez niego liczbę, także losowo wygenerowane hasło (przypomnienie hasła). Uważam, że przeprowadzenie takiego ataku jest dość utrudnione, troszkę dużo tutaj niewiadomych, no i wymagania też spore – serwer musi pracować pod kontrolą systemu Windows. Tak samo jak SMF, podatne jest wiele różnych CMSów, jak Drupal lub Joomla. Ale przecież nie to się liczy. Liczy się że napisaliśmy exploit na Simple machines forum!

Co na to powiedziałby Mentor? Jakby spojrzał na nasze dokonania, jak oceniłby naszą postawę i motywację?

Mentor powiedziałby: “Damn kids. They’re all alike“. Dlatego wszystkim, którzy na siłę chcą być fajni, dedykuję cytat który niedawno usłyszałem:

Nawet dziecko nie zaczyna rysunku od dymu z komina“.

Dziękuję za uwagę.

Została mi rzucona rękawica!

Test został powtórzony, tym będę kompilował najnowszy kernel 2.6.26, czyli aktualne gentoo-sources z moim plikiem konfiguracyjnym.

No to wykonujemy te same operacje co poprzednio.

PuddleFrog / # dd if=/dev/zero of=poligon bs=1MB count=1024
1024+0 przeczytanych recordów
1024+0 zapisanych recordów
skopiowane 1024000000 bajtów (1,0 GB), 52,3484 s, 19,6 MB/s
PuddleFrog / # losetup /dev/loop1 poligon
PuddleFrog / # mkfs.reiserfs /dev/loop1
mkfs.reiserfs 3.6.19 (2003 www.namesys.com)

A pair of credits:
Jeremy  Fitzhardinge  wrote  the  teahash.c  code  for  V3.  Colin  Plumb  also
contributed to that.

The  Defense  Advanced  Research  Projects Agency (DARPA, www.darpa.mil) is the
primary sponsor of Reiser4.  DARPA  does  not  endorse  this project; it merely
sponsors it.

Guessing about desired format.. Kernel 2.6.26-gentoo is running.
Format 3.6 with standard journal
Count of blocks on the device: 250000
Number of blocks consumed by mkreiserfs formatting process: 8219
Blocksize: 4096
Hash function used to sort names: “r5″
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 4c034a21-f58d-4b88-b93c-2456ada3cae5
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON ‘/dev/loop1′!
Continue (y/n):y
Initializing journal – 0%….20%….40%….60%….80%….100%
Syncing..ok

Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.

ReiserFS is successfully created on /dev/loop1.
PuddleFrog / # mount /dev/loop1 /mnt/2/ -o noatime
PuddleFrog / # cd /mnt/2/
PuddleFrog 2 # mkdir linux
PuddleFrog 2 # cd linux/

I kopiujemy źródła testowe.

PuddleFrog linux # time rsync -a –progress /usr/src/poligon/ ./

real    0m31.896s
user    0m3.848s
sys     0m9.109s

Niech rozpocznie się kompilacja!

PuddleFrog linux # time make all

real    11m23.384s
user    9m31.488s
sys     1m21.317s

Niezbyt przerażający czas.
Teraz to samo, tylko że z opcją notail

PuddleFrog linux # cd /
PuddleFrog / # umount /dev/loop1
PuddleFrog / # mkfs.reiserfs /dev/loop1
mkfs.reiserfs 3.6.19 (2003 www.namesys.com)

A pair of credits:
Jeremy  Fitzhardinge  wrote  the  teahash.c  code  for  V3.  Colin  Plumb  also
contributed to that.

Lycos Europe  (www.lycos-europe.com)  had  a  support  contract  with  us  that
consistently came in just when we would otherwise have missed payroll, and that
they kept doubling every year. Much thanks to them.

Guessing about desired format.. Kernel 2.6.26-gentoo is running.
Format 3.6 with standard journal
Count of blocks on the device: 250000
Number of blocks consumed by mkreiserfs formatting process: 8219
Blocksize: 4096
Hash function used to sort names: “r5″
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 0b557a9e-15a8-423c-a8af-4c547088b9fc
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON ‘/dev/loop1′!
Continue (y/n):y
Initializing journal – 0%….20%….40%….60%….80%….100%
Syncing..ok

Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.

ReiserFS is successfully created on /dev/loop1.
PuddleFrog / # mount /dev/loop1 /mnt/2/ -o noatime,notail
PuddleFrog / # cd /mnt/2/
PuddleFrog 2 # mkdir linux
PuddleFrog 2 # cd linux/

Kopiowanie źródeł.

PuddleFrog linux # time rsync -a –progress /usr/src/poligon/ ./

real    0m35.273s
user    0m3.832s
sys     0m9.297s

Czas kopiowania dłuższy o 4 sekundy. No to kompilujemy.

PuddleFrog linux # time make all

real    11m20.217s
user    9m29.816s
sys     1m22.133s

jak widać istnieje różnica trzech sekund.
w sumie kompilacja trwała 680 sekund.
te 3 sekundy to mniej niż 0.5 %
podczas testu na komputerze był tworzony ten tekst, więc uznaję błąd pomiarowy za 1 procent. Mimo iż kompilacja przebiegła szybciej, to podobny czas zajęło kopiowanie źródeł, są to jednak różnice na tyle bagatelne, że na czytanie tych testów zużyłeś więcej czasu niż kiedykolwiek zyskasz.

Podtrzymuję to co powiedziałem, w mojej opinii, dodanie opcji notail nie zwiększa wydajności, a ponieważ rzekome problemy z aplikacjamimitem, nie widzę sensu jej użytkowania.

Panie MeMeK, co teraz?

Starsze wpisy »