Enumerating Windows

Obtaining Information About a Windows System

  • Obtain username and hostname

  • Group memberships of the current user

  • Existing users and groups

  • Operating system, version and architecture

  • Network information

  • Installed applications

  • Running processes

These are key pieces of information we should always obtain

Username and Hostname

C:\Users\dave>whoami
whoami
clientwk220\dave

This hostname implies that our shell is running on a client system rather than a server. The hostname can often be used to infer the purpose and type of a machine. For example, if it is WEB01 for a web server or MSSQL01 for a MSSQL server.

Groups

The user being a member of BUILTIN\Remote Desktop Users group offers the possibility of connecting to the system via RDP.

Discovering System Users and Groups

Apart from non-standard groups, there are several built-in groups that we should analyze such as

  • Administrators

  • Backup Operators

  • Remote Desktop Users

  • Remote Management Users

Getting Members of a Group

System Operating System Information

Network Information

List all network interfaces

Display Routing Table

List Active Network Connections

Check Installed Applications

To check for installed applications, we can query two registry keys to list both 32-bit and 64-bit applications in the Windows Registry with the Get-ItemProperty Cmdlet. We pipe the output to select with the argument displayname to display only the application names.

We can search for public exploits for the identified applications after we finish enumerating the system.

The list of applications here may not be complete. This could be due to an incomplete or flawed installation process. Therefore we can also check 32-bit and 64-bit Program Files directories and review the contents of Downloads directory of our user to find more potential programs.

List Running Processes

Get more details about a specific process using Select-Object *

Finding Credentials and Sensitive Information on Windows

Sensitive information may be stored in meeting notes, configuration files, or on boarding documents. With the information we gathered in the initial enumeration process we can make educated guesses on where to find such sensitive files.

Finding Database Files

On an example system where we have identified XAMPP and KeePass are installed on a system, we can search for the database and configuration files for these applications.

Searching For Files in User Directories

Last updated