description: "A comprehensive guide for AI assistants on how to properly highlight lab sheets using the new highlighting system. This guide contains examples and instructions for converting plain text lab sheets into properly highlighted versions."
difficulty: "AI Guide"
duration: "Reference"
prerequisites: "Understanding of Markdown and the highlighting system"
This guide provides comprehensive instructions for AI assistants on how to properly highlight lab sheets using the new highlighting system. Follow these patterns and examples when editing any lab sheet.
## 🎯 Overview
The highlighting system supports two main types of highlighting:
1.**Inline highlights** - for short phrases within sentences
2.**Block highlights** - for standalone action items, tips, warnings, and notes
> Action: Open a terminal and navigate to your home directory. Create a new folder called "lab_exercise" and change into it.
> Action: Download the required files using wget. Verify the download completed successfully by listing the directory contents.
**Tip Blocks:**
> Tip: If you encounter permission errors, try using sudo before the command. Be careful with sudo as it gives you administrative privileges.
> Tip: You can use the history command to see all previously executed commands. Use the up and down arrows to navigate through command history.
**Warning Blocks:**
> Warning: This lab involves using security tools that may be detected as malicious software. Ensure you're working in an isolated environment and consider disabling real-time antivirus protection temporarily.
> Warning: The commands in this section will modify system files. Make sure you understand what each command does before executing it.
**Hint Blocks:**
> Hint: The flag is located in a hidden file in the victim's home directory. Look for files starting with a dot.
> Hint: The password for the victim account is one of the most common passwords. Try the rockyou.txt wordlist.
**Note Blocks:**
> Note: If you get an error, try running it with sudo. The output may vary depending on your system configuration.
> Note: This command lists all processes running on the system. The "aux" flags provide detailed information about each process.
> Question: What are the key differences between bind shells and reverse shells? Consider the network connectivity requirements for each approach.
> Question: How does the Metasploit framework help in penetration testing? What are the advantages of using a standardized exploitation framework?
**Flag Blocks:**
> Flag: Find the flag hidden in the victim's home directory and submit it to Hacktivity to complete this challenge.
> Flag: There is a flag to be found on a user's Desktop! Find and submit it to Hacktivity.
**When to Use Question Blocks:**
Use `> Question:` for clear self-study or log book questions where students are expected to answer for themselves. Do NOT use for rhetorical questions that are answered later in the lab.
**When to Use Flag Blocks:**
Use `> Flag:` for CTF challenge tasks where students need to find and submit flags. This highlights the competitive/assessment aspect of the task.
**Important**: Since the "Note:", "Tip:", "Hint:", "Question:", and "Flag:" labels are not visible in the rendered output, always capitalize the first word after the colon to make the content clear and readable.
### Step 7: Identify Self-Study and Log Book Questions
Look for:
- Clear questions where students are expected to provide their own answers
- Self-study questions for reflection and learning
- Log book questions for documentation and record-keeping
- Questions that require student analysis or research
**Convert to:** `> Question: [question content]` for block-level questions
### Step 8: Identify CTF Flag Tasks
Look for:
- Tasks that ask students to find and submit flags
- CTF challenge completion requirements
- Assessment tasks that involve finding specific information
- Competitive elements in the lab
**Convert to:** `> Flag: [flag task content]` for block-level flag tasks
**Important Guidelines for Question Blocks:**
- **USE** `> Question:` for self-study questions, log book questions, and reflection questions where students answer for themselves
- **DO NOT USE** `> Question:` for rhetorical questions that are answered later in the lab
- **DO NOT USE** `> Question:` for questions immediately followed by the answer in the text
**Important Guidelines for Flag Blocks:**
- **USE** `> Flag:` for CTF challenge tasks where students need to find and submit flags
- **DO NOT USE** `> Flag:` for general information gathering tasks
**Important**: Always capitalize the first word after "Note:", "Tip:", "Hint:", "Question:", or "Flag:" since these labels are not visible in the rendered output.
Open a terminal window. Navigate to your home directory using the cd command. Create a new directory called "security_lab" and change into it. Be careful not to delete any existing files.
```
### After (Highlighted):
```
==action: Open a terminal window==. ==action: Navigate to your home directory using the cd command==. ==action: Create a new directory called "security_lab" and change into it==. ==warning: Be careful not to delete any existing files==.
```
### Before (Plain Text):
```
On Kali, open a terminal and run the following commands. Make sure you're connected to the lab network.
```
### After (Highlighted):
```
==VM: On Kali==, ==action: open a terminal and run the following commands==. ==hint: Make sure you're connected to the lab network==.
```
### Before (Plain Text):
```
Interact with the Desktop VM. Click the icon after the VMs have started. Then switch to the target VM and run the scan.
```
### After (Highlighted):
```
==VM: Interact with the Desktop VM==. ==action: Click the icon after the VMs have started==. Then ==VM: switch to the target VM== and ==action: run the scan==.
```
### Before (Plain Text):
```
If you get lost in the file system, you can always return to your home directory by typing "cd" without any arguments. This is a useful shortcut to remember.
```
### After (Highlighted):
```
==tip: If you get lost in the file system, you can always return to your home directory by typing "cd" without any arguments==. This is a useful shortcut to remember.
```
### Before (Plain Text):
```
This lab requires root access to modify system files. Make sure you understand the implications of running commands with elevated privileges.
```
### After (Highlighted):
```
> Hint: This lab requires root access to modify system files.
> Warning: Make sure you understand the implications of running commands with elevated privileges.
```
### Before (Plain Text):
```
Interact with the Desktop VM. (Click ![][image2] after the VMs have started).
```
### After (Highlighted):
```
==VM: Interact with the Desktop VM==. (Click ![][image2] after the VMs have started).
- [ ]**Validate markdown syntax** - confirm no syntax errors were introduced
- [ ]**Review consistency** - ensure similar content uses similar highlighting
- [ ]**Test in browser** - view the rendered page to confirm everything displays properly
### Troubleshooting Text Formatting
When instructions are followed by troubleshooting information about the command that was just run, format the troubleshooting text as a note block:
**Before:**
```markdown
Run this command:
```bash
ls -la
```
If you get an error, try running it with sudo. The output may vary depending on your system configuration.
```
**After:**
```markdown
Run this command:
```bash
ls -la
```
> Note: If you get an error, try running it with sudo. The output may vary depending on your system configuration.
```
**Rule**: Any brief explanation and any troubleshooting text that directly follows a command instruction should be formatted as a note block using `> Note:` to visually separate the explanation/troubleshooting information from the instruction.
Self-study Question: What are the key differences between bind shells and reverse shells? Consider the network connectivity requirements for each approach.
Log Book Question: Document your findings from the vulnerability assessment, including which exploits were successful and why.
There is a flag to be found on a user's Desktop! Find and submit it to Hacktivity.
```
### After (Highlighted):
```
> Question: What are the key differences between bind shells and reverse shells? Consider the network connectivity requirements for each approach.
> Question: Document your findings from the vulnerability assessment, including which exploits were successful and why.
> Flag: There is a flag to be found on a user's Desktop! Find and submit it to Hacktivity.
9.**Improper code formatting**: Always use `c` code blocks for C code and `nasm` code blocks for assembly code
10.**Markdown artifacts in code**: Remove escaped characters and formatting artifacts from all code blocks
11.**Uncapitalized block content**: Always capitalize the first word after "Note:", "Tip:", or "Hint:" since these labels are not visible in the rendered output
For proper CSS styling, image captions should be formatted as follows:
**Format:**
```markdown
![][image_reference]
*Caption text here*
```
**Examples:**
```markdown
![][binary_output]
*Output of "xxd -b simple" showing binary representation of the "simple" executable file*
```
```markdown
![][assembly_code]
*Disassembly of main() function of the "simple" executable in gdb*
```
**Important Guidelines:**
- Place the caption on the line directly below the image (no blank line between)
- Use italics (`*text*`) for the caption
- Identify existing captions by looking for descriptive text that explains what the image shows (often incomplete sentences or phrases), rather than assuming any text following an image is a caption
### C Code Formatting
When working with C programming content, ensure all C code is properly formatted:
**Format:**
```markdown
```c
// C code here
```
```
**Important Guidelines:**
- Place any C code into C code blocks using ` ```c ` and ` ``` `
- Remove any special characters from Markdown that may interfere with C syntax
- Ensure C code is syntactically correct and readable
- Common issues to fix:
- Remove escaped characters like `\*` and `\<` that were used for Markdown emphasis
- Remove backslashes before special characters that are part of C syntax
- Ensure proper C syntax without Markdown formatting artifacts