https://tryhackme.com/room/windowsinternals

Task 1 Introduction

Keine Fragen in diesem Task.

Task 2 Processes

Frage 1:
Open the provided file: „Logfile.PML“ in Procmon and answer the questions below.

Die Datei befindet sich im Desktop-Ordner „Process Monitor“. Zuerst starten wir das Programm „Procmon“, welches sich im selben Ordner befindet. Dann gehen wir auf FIle > Open und öffnen die „Logfile.PML“.

Antwort 1:
Keine Antwort benötigt.

Frage 2:
What is the process ID of „notepad.exe“?

Wir drücken STRG+T, so öffnet sie die Tree-Ansicht. Scrollen wir nun etwas herunter finden wir auch gleich die gesuchte „notepad.exe“.

Antwort 2:
5984

Frage 3:
What is the parent process ID of the previous process?

Der Parent Process ist in diesem Fall „Explorer.exe“ und 6 Zeilen über „notepad.exe“, aus Frage 1, zu finden.

Antwort 3:
3412

Frage 4:
What is the integrity level of the process?

Wir haben noch „notepad.exe“ in der Tree-Ansicht ausgewählt und drücken auf „Go to process“ im selben Fenster, danach schließen wir das Fenster. Im regulären Programm haben wir jetzt die „notepad.exe“ ausgewählt. Hier doppelklicken wir darauf und es öffnet sich ein neues Fenster. Im neuen Fenster wählen wir den Reiter „Process“ und finden unsere Anwort.

Antwort 4:
High

Task 3 Threads

Frage 1:
What is the thread ID of the first thread created by notepad.exe?

Wir haben ja noch immer unser Fenster aus dem vorherigen Task offen und „notepad.exe“ markiert. Direkt darunter sehen wir auch den Notepad-Thread und seine ID.

Antwort 1:
5908

Frage 2:
What is the stack argument of the previous thread? 

Wir doppelklicken jetzt auf den „notepad.exe“ Thread und es öffnet sich ein neues Fenster. In diesem Fenster wählen wir den Reiter „Event“, nicht von „Stacks“ verwirren lassen. Das Stack Argument wird unter dem Punkt „Thread“ gelistet.

Antwort 2:
6584

Task 4 Virtual Memory

Frage 1:
What is the total theoretical maximum virtual address space of a 32-bit x86 system?

Antwort 1:
2 GB

Frage 2:
What default setting flag can be used to reallocate user process address space?

Antwort 2:
increaseUserVA

Frage 3:
What is the base address of „notepad.exe“?

Wieder im Process Manager drücken wir STRG+F für die Suche. Im Suchfeld geben wir „Load Image“ ein und suchen, bis wir „notepad.exe“ mit „Load Image“ finden.

Doppelklichen und auf den Reiter „Process“ wechseln, dort finden wir die gesuchte Adresse.

Antwort 3:
0x7ff652ec0000

Task 5 Dynamic Link Libraries

Frage 1:
What is the base address of „ntdll.dll“ loaded from „notepad.exe“?

Wir öffnen wieder die Suche mit STRG+F und suchen nach „ntdll.dll“. Das Ergebnis zeigt uns wieder auf „notepad.exe“, hierauf klicken wir doppelt und öffnen das Fenster. Im „Process“-Reiter sehen wir unten die Adresse.

Antwort 1:
0x7ffd0be20000

Frage 2:
What is the size of „ntdll.dll“ loaded from „notepad.exe“?

Im selben Fenster, wie bei Frage 1, sehen wir auch die Größe.

Antwort 2:
0x1ec000

Frage 3:
How many DLLs were loaded by „notepad.exe“?

Wir öffnen den Filter mit STRG+L, um zwei Filter zu setzen, die uns die Suche erleichtern. Zuerst wählen wir im ersten Dropdown Menü „Operation“ aus und geben im Textfeld „Load Image“ ein. Dies bestätigen wir mit „Add“ und ggf. „Yes“.

Die Zweite Filteroption ist „Process Name“ und im Textfeld „notepad.exe“. Auch hier drücken wir wieder auf „Add“ und ggf. auf „Yes“.

Wir bestätigen alles mit „OK“ und erhalten 53 Ergebnisse. Von diesen 53 Ergebnissen müssen wir 2 nicht-DLLs abziehen, die in unserer Liste auftauchen. Einmal ist das „notepad.exe“ selbst und schließlich noch „winspool.drv“

Antwort 3:
51

Task 6 Portable Executable Format

Frage 1:
What PE component prints the message „This program cannot be run in DOS mode“?

Antwort 1:
DOS Stub

Frage 2:
What is the entry point reported by DiE?

Hier öffnen wir den Desktop-Ordner „die_win64_portable_3.03“ und starten das Programm „die“. Bei „File Name“ geben wir folgenden Pfad ein“C:/Windows/notepad.exe“, alternativ kann man auch auf die drei Punkte klicken und zu „notepad.exe“ navigieren.

Antwort 2:
000000014001acd0

Frage 3:
What is the value of „NumberOfSections“?

Den Wert finden wir unter „Sections“.

Antwort 3:
0006

Frage 4:
What is the virtual address of „.data“?

Dafür müssen wir auf den „PE“ Knopf drücken. Daraufhin öffnet sich ein neues Fenster und im linken Menü navigieren wir zu „Strings“. Rechts sehen wir dann verschiedene Werte, inklusive unseren gesuchten“virtual address“ Wert von .data.

Antwort 4:
00024000

Frage 5:
What string is located at the offset „0001f99c“?

Wieder zurück bei Detect it Easy drücken wir nun rechts auf „Strings“ und scrollen herunter, bis wir unseren gesuchten String gefunden haben.

Antwort 5:
Microsoft.Notepad

Task 7 Interacting with Windows Internals

Frage 1:
Enter the flag obtained from the executable below.

Wir starten eine Kommandozeile (Rechtsklick auf das WIndows Symbol in der Task-Leiste > run > cmd > ENTER) und navigieren zum Verzeichnis der Datei und starten diese.

C:\Users\THM-Attacker>cd desktop\Process Injection POC

C:\Users\THM-Attacker\Desktop\Process Injection POC>inject-poc.exe

Danach begrüßt uns die Flag:

Antwort 1:
THM{1Nj3c7_4lL_7H3_7h1NG2}

Task 8 Conclusion

Keine Fragen in diesem Task.