TryHackMe Taught Me Linux, Then Showed Me Windows.
When studying, you dont often think how important it is to learn one thing before the other. Nor do you think that the material which is being taught will negatively impact your learning.
This is exactly what happened to me.
Where it started
When i first started learning Pentesting, specifically the OS side of learning, I took the "smart" path and made the decision to learn Linux before Windows.
It made sense, statisically most Pentesters use Linux, and its also the most customisable, so why wouldn't I learn that first?
And while that may be true Windows and Linux taught me 2 completely different things.
So I worked through TryHackMe's Linux Fundamentals rooms, then moved onto Windows Fundamentals. Same platform, same path, same word in the title.
Let's start with Linux
In the Linux fundamentals, it taught me what is important. How to effectively get around the file system without the need for the mouse. You do this using the command line
With such things like:
touch create a file
ls show the list of files
cat display files content
nano create or edit a file
and flags such as:
-a show all
-l show list
-h human readable
Small commands, but they compose. ls -la isn't four things to memorise,
it's one thing plus modifiers, and once you have that you can read commands
you've never seen.
What Windows fundamentals gave me instead
Windows fundamentals started me with the visuals, the settings, the task manager, the resource monitor. And while it's not useless, I found it was weirdly so much more simple yet so much more complicated.
Naturally, I grew up using computers and so I got used to the Windows UI, and since I used to be the one in the family to troubleshoot any other issues, I naturally found out about task manager, device manager, settings, security, etc...
The course was showing me around a house I've lived in for years; so it taught me (alomst) nothing
Every time it needed me to open something, it told me to use Windows search. Task Manager, Device Manager, Services, Event Viewer. Search, click, look at the panel. Here's what it never showed me:
| GUI | Shell |
|---|---|
| Task Manager | Get-Process / tasklist |
| Services | Get-Service / sc query |
| Event Viewer | Get-WinEvent |
| Local Users | Get-LocalUser / net user |
| Firewall | Get-NetFirewallRule |
| Disk Management | Get-Disk / Get-Volume |
| System Info | systeminfo |
The right hand column is the only one that works when you don't have a desktop. It's also the column the Linux rooms had spent the previous week teaching me the equivalent of.
and when I did try to use the command prompt to shortcut my path; I found out instead of '-a' its '/all'. Instead of '../' its '..\' which on a very basic fundamental, even from VSCode, is unfamilar with me.
What I think should've been covered
Not the UI - A Pentester needs to learn the parts of Windows that doesn't have an icon. Services, how they start. Commands, what they do. But most importantly how to make the same change from the command line instead of the GUI.
But more specifically the same things which were covered just 3 lessons before in the Linux fundamentals. Show the difference, and help me understand where and when I would use each one.
Final Points
I came into this thinking my mistake was the order. Linux first, Windows second, and I'd made it harder for myself.
I don't think that any more. Learning Linux first is the only reason I noticed anything was wrong. If I'd done Windows first I'd have finished the module, felt like I understood the OS, and never questioned why a fundamentals course spent its time in Settings. Linux gave me a standard to measure against.
The order wasn't the problem. The material was.