Skip to content

Day 2 Capstone

Windows Systems

This section contains questions about your Windows VM. In most cases, we expect you to use the PowerShell cmdlets and techniques from the labs to answer the questions. If you use other tools, you might want to validate the response with the equivalent PowerShell technique to ensure your answers are in the correct format.

Windows - Build Number

What is the value of the BuildNumber property reported by WMI for the Window OS installed on the Windows VM? Your answer will be a five-digit integer.


Windows - Caption

What is the value of the Caption property reported by WMI for the Window OS installed on the Windows VM? Your answer will be a series of 20 alphanumeric characters separated by hyphens.

Hints

Get-CimInstance can be used for WMI queries

WMI has a class named Win32_OperatingSystem with information about the installed OS

The resulting object has a property named Caption


Windows - Hotfix Date

What is the InstalledOn date for the KB5049622 Microsoft patch on the Windows VM? Your answer should include the full date+time string.

Hints

There is a cmdlet to get information about hotfixes.

It's called Get-Hotfix.

The InstalledOn property gives the date of installation.


Windows - Hotfixes

How many total hotfixes were installed on the same date as KB5049622? Your answer should be an integer.

Hints

There's a command to get hotfix information

The InstalledOn property shows the date the hotfixes were installed

Using group-object would allow you so group by the InstalledOn dates


Windows - Permissions

The C:\Windows\System32 directory on the Windows VM has a single access control entry which grants permission on the file to the ephemeral Creator Owner group. What is the numeric representation of that permission? Your answer will be an integer.

Hints

Windows file/folder permissions are stored in access control lists (ACLs)

Some ACLs are listed with names and some are numeric

Get-Acl is used to query ACLs.


Windows - Shares

What is the name of the Server Message Blocks (SMB) share on the Windows VM which is NOT associated with a filesystem? Your answer should include any special characters which are part of the name.

Hints

There is a command to get SMB share information

It's called Get-SmbShare

It has a property called path, which might be empty for some shares


Windows - Groups

How many local groups on the Windows VM have the student user as a member?

Hints

This can be done manually by listing the members of every group

Get-LocalGroup gives a list of groups

Get-LocalGroupMember lists the members

The older net user command can yield this information, also.


Windows - Registry

What is the numeric setting for the registry key which controls whether the Local Security Authority (LSA) on the Windows VM restricts anonymous enumeration of SAM accounts and shares? Your answer will be an integer.

Hints

This is covered by the CIS Benchmark for Windows 10 Enterprise

The registry key is under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

The registry is mapped as PSDrives in PowerShell

Get-ItemProperty can be used to query values in registry keys


Windows Domains

All of the questions in this section make use of the Windows domain controller running in your AWS lab range. You will need to connect with OpenVPN to access this system, just like you did in the labs for the Windows section.

As a reminder, here are the credentials and IP address of this VM:

  • Address: 10.55.7.100
  • Username: student
  • Password: Password1

General

What is the IP address of the Windows domain controller provided to you in the Lab and used in this challenge?

Hints

Have you read the directions for this section?

Have you read the directions for this section?

Have you read the directions for this section?


AD Users

Retrieve a list of all users in the domain using Get-ADUser. What is the SAMAccountName of the last user returned by the query?

Hints

Create a set of credentials to pass with $cred=Get-Credential

Remember to specify a server, since you are not a member of the domain

You must specify a filter of * to retrieve all users


Disabled Users

How many users in the domain are marked as disabled? (Your answer should be an integer)

Hints

Change the filter from '' to limit results using the 'Enabled' property*

Remember that false is specified as $false

-Filter 'Enabled -eq $False'


User Attributes

Only one user in the domain has the office property configured in Active Directory for their account. What is the SAMAccountName of that user?

Hints

Could you create a Get-ADUser filter to remove all users with nothing in the office attribute?

-like "*" would find only users with a value in an attribute.

The office attribute is named either “office” or “physicalDeliveryOfficeName”


Attribute Value

Only one user in the domain has the office property configured in Active Directory for their account. What is the value saved in the “office” attribute for that user?

Hints

Create a filter to return the correct user

Use the -Properties flag for Get-ADUser to return the correct AD attribute

The Select-Object command can be used to limit the number of properties returned


AD Groups

There is a group in the domain that has the word “audit” as part of the name. What is the fully qualified name of that group? (Your answer should start with “CN=” and end with “local” -- don’t include any surrounding quotations marks!)

Hints

Get-ADGroup is used for querying groups.

Groups have a “name” property you can filter on.

’ characters serve as wildcards in name filters.*


Domain Admins

How many users are Domain Administrators on the domain?

Hints

Get-ADGroupMember is a good command for this.

Remember that groups can be members of other groups. You’ll need to expand these nested groups recursively.

Measure-Object is a good command for counting results.


Password Settings

How many enabled users have passwords which are set to never expire?

Hints

There are users with non-expiring passwords whose accounts are disabled. Don't count them.

You'll need to search for accounts where Enabled -eq $true

Get-ADUser has a filter for "PasswordNeverExpires" as well