Skip to main content

Metasploit Room WriteUp

This is my write ups for Metasploit Room on Try Hack Me.

This room is a Walkthrough type of room

I will not go deep into why the answer is "x" or "y", that part is your job to understand what the room is trying to teach you.


Task 1 - Intro

  • No answer needed in this task

Task 2 - Initilizing...

  • We can start the Metasploit console on the command line without showing the banner or any startup information as well. What switch do we add to msfconsole to start it without showing this information? This will include the '-' - -q

  • Cool! We've connected to the database, which type of database does Metasploit 5 use? - postgresql

Task 3 - Rock'em to the Core [Commands]

  • The help menu has a very short one-character alias, what is it? - ?

  • Finding various modules we have at our disposal within Metasploit is one of the most common commands we will leverage in the framework. What is the base command we use for searching? - search

  • Once we've found the module we want to leverage, what command we use to select it as the active module? - use

  • How about if we want to view information about either a specific module or just the active one we have selected? - info

  • Metasploit has a built-in netcat-like function where we can make a quick connection with a host simply to verify that we can 'talk' to it. What command is this? - connect

  • Entirely one of the commands purely utilized for fun, what command displays the motd/ascii art we see when we start msfconsole (without -q flag)? - banner

  • We'll revisit these next two commands shortly, however, they're two of the most used commands within Metasploit. First, what command do we use to change the value of a variable? - set

  • Metasploit supports the use of global variables, something which is incredibly useful when you're specifically focusing on a single box. What command changes the value of a variable globally? - setg

  • Now that we've learned how to change the value of variables, how do we view them? There are technically several answers to this question, however, I'm looking for a specific three-letter command which is used to view the value of single variables. - get

  • How about changing the value of a variable to null/no value? - unset

  • When performing a penetration test it's quite common to record your screen either for further review or for providing evidence of any actions taken. This is often coupled with the collection of console output to a file as it can be incredibly useful to grep for different pieces of information output to the screen. What command can we use to set our console output to save to a file? - spool

  • Leaving a Metasploit console running isn't always convenient and it can be helpful to have all of our previously set values load when starting up Metasploit. What command can we use to store the settings/active datastores from Metasploit to a settings file? This will save within your msf4 (or msf5) directory and can be undone easily by simply removing the created settings file. - save

Task 4 - Modules for Every Occasion

  • Easily the most common module utilized, which module holds all of the exploit code we will use? - exploit

  • Used hand in hand with exploits, which module contains the various bits of shellcode we send to have executed following exploitation? - payload

  • Which module is most commonly used in scanning and verification machines are exploitable? This is not the same as the actual exploitation of course. - auxiliary

  • One of the most common activities after exploitation is looting and pivoting. Which module provides these capabilities? - post

  • Commonly utilized in payload obfuscation, which module allows us to modify the 'appearance' of our exploit such that we may avoid signature detection? - encoder

  • Last but not least, which module is used with buffer overflow and ROP attacks? - nop

  • Not every module is loaded in by default, what command can we use to load different modules? - load

Task 5 - Move that shell!

  • What is the name of the column on the far left side of the console that shows up next to "Name"? - #

Task 6 - We're in, now what?

  • First things first, our initial shell/process typically isn't very stable. Let's go ahead and attempt to move to a different process. First, let's list the processes using the command ps. What's the name of the spool service? - spoolsv.exe

  • Let's go ahead and move into the spool process or at least attempt to! What command do we use to transfer ourselves into the process? This won't work at the current time as we don't have sufficient privileges but we can still try! - migrate

  • Well that migration didn't work, let's find out some more information about the system so we can try to elevate. What command can we run to find out more information regarding the current user running the process we are in? - getuid

  • How about finding more information out about the system itself? - sysinfo

  • This might take a little bit of googling, what do we run to load mimikatz (more specifically the new version of mimikatz) so we can use it? - load kiwi

  • Let's go ahead and figure out the privileges of our current user, what command do we run? - getprivs

  • What command do we run to transfer files to our victim computer? - upload

  • How about if we want to run a Metasploit module? - run

  • A simple question but still quite necessary, what command do we run to figure out the networking information and interfaces on our victim? - ipconfig

  • One quick extra question, what command can we run in our meterpreter session to spawn a normal system shell? - shell

Task 7 - Makin' Cisco Proud

  • Let's go ahead and run the command run autoroute -h, this will pull up the help menu for autoroute. What command do we run to add a route to the following subnet: 172.18.1.0/24? Use the -n flag in your answer. - run autoroute -s 172.18.1.0 -n 255.255.255.0

  • Additionally, we can start a socks5 proxy server out of this session. Background our current meterpreter session and run the command search server/socks5. What is the full path to the socks5 auxiliary module - auxiliary/server/socks5

  • Once we've started a socks server we can modify our /etc/proxychains.conf file to include our new server. What command do we prefix our commands (outside of Metasploit) to run them through our socks5 server with proxychains? - proxychains