Video of the week

I've found this great video and I recommend you to watch if you are interested in wireshark and filtering methods

ZyXEL NAS326 + iSCSI + Windows Server 2012

I need to add some storage to the server I use for development purposes. I don’t want to consume anything that is considered to be a part of the enterprise resource pool. Since this is only for temporary, I’ve decided to use ZyXEL NAS326 in order to attach 100GB of storage using iSCSI protocol and fast GB Ethernet connection.

iscsi schema

In order to use ZyXEL as iSCSI target I need to create so-called LUN, which stands for Logical Unit or Logical Unit Number. I need to go the Memory management panel and then unfold options related to iSCSI (there are two of them: iSCSI LUNs and iSCSI Targets). LUN is nothing more than a logically separated storage based on physical resources – in the following example I created a LUN of 100G based on my two physical WD disks combined in RAID 1.

Read more: ZyXEL NAS326 + iSCSI + Windows Server 2012
Write comment (0 Comments)

[Advanced Excel] Database with an Input Form

I was asked to create a database of students using Visual Basic for Applications (VBA) and Excel. It required an input form, print method, and some other features. VBA isn't something I play with every day at work. Nonetheless, each time someone asks me for help and it requires to have some programming skills to accomplish the task - I'm your man to face the deadline. VBA can be extremely helpful when it comes to working with Excel. One should know at least some basics in order to shorten the time they spend on working with data in a spreadsheet. The final result was quite impressive and this isn't my opinion :-) I leave some screenshots below and the whole project free for downloading and mining the code.

input

vba code 0

vba code 1

Download xlsm (7z file)

 

Write comment (0 Comments)

[SQL SERVER] Backup set

Every time you do a backup of your database in MS SQL Server, there's the following prompt window, which gives you the option to indicate a destination place for the backup. It's located right under the Back up to dropdown option. If I asked you about the true meaning of this option, would you say that this is a simple file? Or maybe you would answer that this is something much more complex? The second version is much more close to the truth. So what is AdventureWorks2012_FULL_DB.bak exactly?

destination

It's not a simple file. This is a backup set which includes all your backups that have been done so far (unless you overwrite the backup set each time you do a backup - let's assume you don't). Every time you backup your db, you simply append a new backup to the previous ones. So it's possible that AdventureWorks2012_FULL_DB.bak consists of more than one backup (stored physically inside the bak file). I just did the first full backup of my AdventureWorks2012 database, let's look at the Backup directory:

full backup

Now let's do another one - let's append another full backup to our backup set and look at the result (especially in terms of the size):

append

double

Our backup set includes two backups. Our disk file is as twice as when we did the first full backup.

position

Now we can see clearly, that our backup set (AdventureWorks2012_FULL_DB.bak) includes two backups, first one is at the Position 1 and the second one is at the Position 2 - both in the same physical file. Don't pay attention to the dates because in the meantime I did additional two backups after removing previous ones, but it had nothing to do with the case. The case is that when we indicate a destination for our backup, we indicate a backup set which is something more complex than a simple file with the bak extension.

backup set

 

Write comment (0 Comments)

User Space Windows Hacking

 Hakowanie IAT (user-space), czyli trochę wstępu z budownictwa

Art będzie miał swój ciąg (jeden lub więcej) dalszy, gdyż całość zostanie potraktowana raczej jako forma luźnej notatki. Zapiski te prawdopodobnie posłużą mi przy pisaniu pracy dyplomowej pod warunkiem, że znajdzie się jakiś ktoś, kto zechce mnie pod tym kątem przetestować. Będzie to zatem skromna część całości, która traktować będzie o całym kernelowym undergroundzie (czyli znacznie poniżej API).

Zanim postaramy się przejąć po części władzę nad plikiem wykonywalnym - musimy poznać ten obiekt, wiedzieć o nim trochę ( jego przyzwyczajenia, relacje a w szczególności jego cyfrową dietę ).  W tym arcie postaram się doprowdzić Nas do zrozumienia zagadnień wciskania się w przestrzeń wirtualną innego procesu w systemie Windows. Miejmy nadzieję, że po jego przeczytaniu pojęcią takie jak :

  • PE (VA,RVA, moduł wykonywalny a plik na dysku, obiekt-mapowanie, .. );
  • IAT, ILT ? Import Address Table, Import Lookup Table ( FirstThunk,OriginalFirstThunk, .. );
  • DLL, biblioteki importu - __declspec( dllexport ), *.lib( *.a);
  • Żonglerka rzutowaniem struktur - czyli nakładamy foremki na obszary pamięci, zakrywamy i odkrywamy co się da i przyda;
  • SetWindowsHookEx() - haki, haki, hooks;CreateRemoteThread() - knock knock! Please come in, welcome();

Portable Executable aka PE to międzyplatformowy format pliku wykonywalnego ( plikiem wykonywalnym nazywamy tu zarówno pliku typu: program.exe oraz biblioteka.dll ).  Zajrzyjmy na chwilę na wikipedię -

Portable Executable (PE) - (..) Format PE jest po prostu strukturą danych, która zawiera informacje potrzebne systemowi do zarządzania kodem wykonywalnym. Należą do tego: referencje do bibliotek DLL, tablice importowanych i eksportowanych funkcji API, dane do zarządzania zasobami, informacje o wątkach.

W systemach z rodziny NT format PE jest używany m.in. przez pliki *.exe, *.dll, *.obj, *.sys (najczęściej plik sterownika).  (..) PE jest zmodyfikowaną wersją  Uniksowego formatu COFF stąd też jego alternatywna nazwa - PE/COFF. W systemach Windows NT PE obecnie może zawierać zarówno instrukcje z zestawu IA-32 jak i IA-64 oraz x86-64 (AMD64 i EM64T) (..) .

Podobają Nam się szczególnie hasła 'struktura danych' oraz 'tablice importowanych i eksportowanych funkcji API' - reszta interesuje nas teraz mniej nie więcej.

Jak wygląda plik PE?

peFile

Ten blackBox ma to do siebie, że do pewnego momentu jest ładnie ułożony  a po tablicy sekcji to już zależy i trzeba kombinować.. (powoli!) Wszystkie informacje na temat składowych struktur pliku znajdziemy w pliku winnt.h

Budowa - Part I:
NAGŁOWEK DOS - to początek pliku, pierwszy bajt pliku w pamięci to pierwszy bajt struktury opisującej tą część pliku wykonywalnego! Jak ona wygląda:

  1. typedef struct _IMAGE_DOS_HEADER {
  2. WORD e_magic;
  3. WORD e_cblp;
  4. WORD e_cp;
  5. WORD e_crlc;
  6. WORD e_cparhdr;
  7. WORD e_minalloc;
  8. WORD e_maxalloc;
  9. WORD e_ss;
  10. WORD e_sp;
  11. WORD e_csum;
  12. WORD e_ip;
  13. WORD e_cs;
  14. WORD e_lfarlc;
  15. WORD e_ovno;
  16. WORD e_res[4];
  17. WORD e_oemid;
  18. WORD e_oeminfo;
  19. WORD e_res2[10];
  20. LONG e_lfanew;
  21. } IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;

Dokładny opis wszystkich pól ( jeśli jesteś zainteresowany / ana ) możesz znaleźć w specyfikacji formatu np. pod tym adresem :

www.osdever.net/documents/PECOFF.pdf lub ( szczególnie polecam (eng.) )
http://www.codebreakers-journal.com/downloads/cbj/2006/CBM_1_2_2006_Goppit_PE_Format_Reverse_Engineer_View.pdf
http://msdn.microsoft.com/en-us/magazine/bb985992.aspx
http://msdn.microsoft.com/en-us/magazine/cc301808.aspx
 
Z tej struktury interesują Nas pierwsze i ostatnie pole. Why? Identyfikator MZ powiadamia nas, że w ogole mamy do czynienia z plikiem wykonywalnym.

mz

Będzie nam on potrzebny, żeby sprawdzić czy plik z którym chcemy coś zrobić w ogole się do tego nadaje! Zagadka dla sprawdzenia ogólnej orientacji - gdybym zapytał się Ciebie teraz, w którym momencie na tym obrazku kończy ( a może nie kończy ) się nagłówek DOS'a ?

Podpowiedź: Czym jest 4D? Czymś podobnym do FF, 4D to to samo co 0x4D a FF to inaczej 0xFF. FF to inaczej również 1111 1111 czyli 8 jedynek postawionych na baczność, czyli jest to jeden bajt. Czyli 4D również oznacza tutaj jeden bajt, czyli XX XX XX .. oznacza tutaj 4 bajty. W takim razie ile takich bajtów składa się na strukturę IMAGE_DOS_HEADER ? WORD to 2 bajty ( XX XX ), LONG natomiast 4 bajty ( XX XX XX XX ), czyli już wiadomo jak to interpretować i policzyc.

Ostatnie pole ( e_lfanew ) informuje nas o offsecie nagłowka PE - czyli tego co jest po nagłowku dos'a oraz dos stub'ie czyli:

stub

Mamy nadzieje, że wiemy co to offset - jakby któryś z nas nie wiedział to niech zapamięta, że to pozycja względem innej pozycji. Np. nagłowek PE znajduje się o 'plus offset' względem adresu pierwszego bajtu pliku. Czyli jeśli mamy bieg na 100m to META znajduje się o offset równy 100m względem początku czyli START'u.  Zawodnicy na różnych etapach biegu osiągają różne wartości offsetu ( czyli przesunięcia ) względem START'u.

No i wiemy już przez to trochę więcej o haśle pod tytułem RVA - Relative Virtual Address to wartość offsetu czyli przesunięcia względem początku pliku w pamięci.

A czym będzie VA? Virtual Address będzie adresem początku pliku wraz z przesunięciem czyli z RVA.

VA = baseAddress + RVA gdzie baseAddress jest adresem początku pliku w pamięci.

va

Obrazkowo wygląda to w ten spoób. To zrzut z programu PEView i widać tutaj relatywny adres ( czyli offset ) ( IAT ( IMPORT (ADDRESS) Table ) względem początku pliku - wynosi on 5000.

5000

Read more: User Space Windows Hacking
Write comment (0 Comments)

Nessus

Mam za zadanie zaznajomić się bliżej z serią systemów operacyjnych. Postanowiłem sprawdzić pod pewnym kątem czystą instalację systemu Windows Server 2003 i przekonać się na co można sobie pozwolić w przypadku błędnej (lub braku) konfiguracji OS'a. Do testu posłuży mi narzędzie team'u Sun - Virtual Box [ do wirtualizacji (nie mylić z emulacją) systemów operacyjnych ] oraz karabin automatyczny typu Nessus.

vb

Jak widać, mamy do dyspozycji aż 4 interfejsy sieciowe dla systemu gościa, które możemy podpinać np pod system gospodarza(równorzędne adresy), nat (system gospodarza nie widzi gościa), do sieci wewnętrznej bez dostępu do sieci zewnętrznej. Ustawienia sieciowe są z pozycji testu najważniejsze. Całość konfiguracji i późniejszej instalacji przed testem w tym momencie nie są ważne. Uruchamiamy maszynę..

2003

Mamy zainstalowany serwer Nessus'a 4.0 a także klienta GUI. Klient z którego korzystałem w 3.0 ustępuje miejsca interfejsowi web'owemu, choć nadal można z niego korzystać (jeśli ktoś jest przyzwyczajony lub chory na wszystko inne lub nowe). Nowy Nessus posiada już wcześniej dodanego przeze mnie użytkownika systemu, dołączyliśmy również wyjątek bezpieczeństwa certyfikatu 'self-signed' do Firefoxa i w końcu uruchomiliśmy serwer.

8834

Read more: Nessus
Write comment (0 Comments)
Page 1 of 2

Your browser doesn't support this tag cloud