Skip to content

Instantly share code, notes, and snippets.

View AndrewPla's full-sized avatar
🌠
Shooting for the stars!

Andrew Pla AndrewPla

🌠
Shooting for the stars!
View GitHub Profile
@AndrewPla
AndrewPla / Show-MyTrelloBoard.ps1
Last active May 19, 2021 14:46
Displays a visual representation of a Trello Board inside the terminal.
#Requires -modules Microsoft.PowerShell.ConsoleGuiTools, PowerTrello
# Read more about positions
# https://migueldeicaza.github.io/gui.cs/api/Terminal.Gui/Terminal.Gui.Pos.html
# Getting started with Terminal.UI by Adam Driscoll
# https://blog.ironmansoftware.com/tui-powershell/
# options https://github.com/cbttrevor/powershell-terminal
@AndrewPla
AndrewPla / Type-PentesterLab.ahk
Last active January 7, 2020 19:29
This is an AutoHotkey script. when ctrl + q is pressed 'pentesterlab' is typed, enter is pressed, it pauses, and repeats types pentesterlab and presses enter again. This is useful if you are doing pentesterlab exercises and don't want to type the same username and password manually.
^q::
Send, pentesterlab
sleep 250
Send, {enter}
Sleep 555
Send, pentesterlab
sleep 250
Send, {enter}
return
@AndrewPla
AndrewPla / New-TempDirectory
Last active December 29, 2019 12:48
Cross-platform function to create temp folders. Created by Justin Grote https://twitter.com/JustinWGrote/status/1190311627746267136
function New-TempDirectory {
$pathToCreate = join-path ([io.path]::GetTempPath()) ([io.path]::GetRandomFileName())
New-Item -ItemType Directory -Path $pathToCreate
}
@AndrewPla
AndrewPla / PicoCTF2019_Based.ps1
Created December 1, 2019 18:16
This script was written to solve the Based challenge from PicoCTF 2019.
<#
.Description
This script was written to solve the Based challenge from PicoCTF 2019.
This script connects to a target computer nad port and converts the output from Base2, Base8, and Base16.
It establishes a tcp connection, answers the questions and returns the flag for this challenge.
#>
[cmdletbinding()]
param(
[string]$computer = '2019shell1.picoctf.com',
$port = '44303',
@AndrewPla
AndrewPla / Get-PublicIPInfo.ps1
Last active January 12, 2020 10:51
Returns Public IP info from ip.nf Can be ran on remote computers
function Get-PublicIPInfo {
<#
.Description
Returns Public IP info from ip.nf
.Parameter IPAddress
Supply an IP address that you would like to lookup.
.Parameter ComputerName
Names of computers to run this command on.
.Parameter Credential
Credential used by Invoke-Command when performing the lookup on a remote machine.
@AndrewPla
AndrewPla / Get-MmaEvent.ps1
Last active September 6, 2019 15:31
Get-MmaEvent
function Get-MmaEvent {
<#
.Description
Returns upcoming MMA events from https://www.whenarethefights.com/
#>
$request = Invoke-WebRequest -Uri 'https://www.whenarethefights.com/'
# Only grab the events that have a countdown.
$content = $request.Links.outertext | Where-Object {$_ -like '*days*'}
@AndrewPla
AndrewPla / Add-WindowsTerminalSchemes.ps1
Last active February 7, 2022 09:18
Updates the Windows Terminal profiles.json file with all the schemes from https://github.com/mbadolato/iTerm2-Color-Schemes/blob/master/windowsterminal
# Path to the profile when installed from the Windows Store.
$profilePath = "C:\Users\$Env:Username\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\profiles.json"
# Remove existing comments from the profiles.json file.
$profile = (Get-Content $ProfilePath) -replace '(?m)(?<=^([^"]|"[^"]*")*)//.*' -replace '(?ms)/\*.*?\*/' | Out-String | ConvertFrom-Json
$backupProfilePath = "$home\Documents\WindowsTerminalprofiles.json"
Write-Verbose "Backing up profile to $backupProfilePath"
$profile | ConvertTo-Json | Set-Content $backupProfilePath
@AndrewPla
AndrewPla / Parse-TOPdeskAccessLog.ps1
Last active March 6, 2020 18:33
Downloads access log from TOPdesk. We then extract the logfile from the zip and parse it. Finally we output an object. I blogged about this at: https://andrewpla.dev/Inspect-TOPdesk-Access-Logs/
<#
.Parameter Credential
Enter WEBdav creds for an account with the WEBDav Read permission
.Parameter TOPdeskURL
The URL of the topdesk instance. eg: Support.Company.com, company.topdesk.net
.Parameter OutputFolder
Folder where you want the logs to be downloaded to. If not provided, the files will be downloaded into your tmp folder and will be cleaned up at the end.
.Parameter MonthsBack
Select how many months back you want to go. Default select the current month. 1 would be for this month, 3 whereas 3 would be the last 3 months
.Parameter DaysBack
@AndrewPla
AndrewPla / Download-Latest_TOPdesk_Backup.ps1
Created January 28, 2019 14:01
Download the latest backup from TOPdesk using PowerShell.
# Credential needs to
$Credential = Get-Credential -Message 'enter TOPdesk operator credential with WebDAV permissions.'
$OutputFolder = 'C:\path\to\folder'
$tdurl = 'company.topdesk.net'
$psDriveParams = @{
PSProvider = 'FileSystem'
Root = "\\$tdUrl@SSL\webdav" # ex: '\\contoso.topdesk.net@SSL\webdav'
Credential = $Credential
Name = 'TOPdesk'
@AndrewPla
AndrewPla / Iterate Over PSCustomObject Properties Example.ps1
Created January 6, 2019 19:21
iterate through all properties on a pscustomobject. This is example code to accompany a blogpost.
# Create a pscustomobject from a hashtable
$object = [pscustomobject]@{ Key1 = 'Val1' ; Key2 = 'Val2' }
# Grab all noteproperty members
$objMembers = $object.psobject.Members | where-object membertype -like 'noteproperty'
foreach ($member in $objMembers) {
# Now you can do what you want with the name and value.
$Member.name
$Member.Value