Commit Graph

591 Commits

Author SHA1 Message Date
bitform 33794a3d3f Improved Prepare-Payload (now Out-EncodedCommand)
* Renamed Prepare-Payload to Out-EncodedCommand in order to conform to a
standard cmdlet verb.
* Fixed bug in PowerShell v2
* Defaults to full base-64 encoding unless it exceeds the cmd.exe
character limit. Otherwise, it will default to partial base-64 encoding
in an effort to save space. Thanks @Carlos_Perez for the idea!
* User will be prompted if the cmd.exe character limit is exceeded.
* Command-line output uses truncated arguments in order to save space.
Thanks @obscuresec!
2013-01-19 08:35:10 -05:00
bitform ce10e8d317 Added Get-TimedScreenshot
A function that takes screenshots at a regular interval and saves them
to a folder.

Developed by @obscuresec
2013-01-15 18:53:33 -05:00
bitform 66c69286f9 Prepare-Payload now accepts pipeline output 2013-01-13 17:07:19 -05:00
bitform 7bd264c465 Fixed bug in Prepare-Payload
* Some payloads were not decoding properly after being uncompressed.
This was due to a bug in how `Get-Content -Encoding ASCII` was
interpreting input. When reading a script from a file, Prepare-payload
no longer makes any assumptions about the script's encoding.

* Prepare-Payload will display a warning if the cmd.exe or base64 string
length maximums are exceeded.
2013-01-13 12:20:42 -05:00
bitform 504ac21aed Added Get-PEB
Returns the process environment block (PEB) of a process.
2013-01-07 18:42:12 -05:00
bitform 7734cb5b34 Added Get-StructFromMemory
Marshals data from an unmanaged block of memory in an arbitrary process
to a newly allocated managed object of the specified type. In other
words, it will parse and return a structure at a known memory address in
any process.
2013-01-02 20:48:10 -05:00
bitform d2d6ee1409 Fixed several bugs in Get-KernelModuleInfo
* The script now silently continues if the ps1xml file is not present.
* Removed compiler parameter code. This was a remnant of the first
version of Get-KernelModuleInfo when it compiled code.
* Improved the heuristics for determining when the last kernel module is
encountered.
2012-12-30 10:01:43 -05:00
bitform ca3e55ff58 Improved Get-KernelModuleInfo
Get-KernelModuleInfo utilizes reflection exclusively now and no longer
requires compilation of C# code. This means that is runs entirely in
memory.
2012-12-16 18:32:22 -05:00
bitform 2f4c2f8be2 Added Get-KernelModuleInfo
Returns loaded kernel module information.
2012-12-16 15:00:30 -05:00
bitform 7fda3dffea Added the Wow64 switch to Prepare-Payload
Now, you can optionally output a call to the x86 (Wow64) version of
PowerShell.
2012-12-14 19:45:10 -05:00
bitform ff32d1b36b Added Find-AVSignature
A tool for bypassing AV signatures.
2012-12-12 18:56:00 -05:00
bitform 481ebb777e Added Out-CompressedDll
A script to aid in the loading of managed dlls in memory
2012-12-01 13:35:26 -05:00
bitform 7c65f5cfee Fixed Prepare-Payload documentation grammar fail. 2012-11-22 09:45:43 -05:00
bitform 7710c99e66 Adding Prepare-Payload
Prepare-Payload compresses, Base-64 encodes, and generates command-line
output for a PowerShell payload script. This script was inspired by and
an improvement upon createcmd.ps1
(https://www.trustedsec.com/files/PowerShell_PoC.zip)
2012-11-22 09:30:14 -05:00
bitform 138bd39911 Adding Get-MethodAddress 2012-11-17 16:46:50 -05:00
bitform ca705d0a6e Added Get-Strings
Get-Strings dumps strings from any file in Ascii and/or Unicode.
2012-10-27 14:55:42 -04:00
bitform 60670bd95e Nearly complete rewrite of Inject-Dll
The functionality remains the same but the code was cleaned up
drastically to be more consistent with PowerShell scripting best
practices.
2012-09-21 12:13:16 -04:00
bitform 688ba7911c Improved Metasploit payload support for 32/64-bit
Updated Inject-Shellcode. If running a 32-bit Metasploit payload from
64-bit PowerShell, it will prompt the user to execute the payload from
32-bit PowerShell. This fix was in response to Chris Gate's feature
request:
http://carnal0wnage.attackresearch.com/2012/05/powershell-shellcode-metasploit-x64.html

Note, there are some side effects:
1) It takes about one minute to initialize and execute the payload in
the 32-bit process. This is because the execution essentially emulates
copying and pasting its contents into the child process.
2) You will see some output artifacts of the script running in the child
PowerShell process.

I couldn't think of a good way to rectify these problems without
dropping the contents of the script to disk, which would not be
desireable.
2012-09-11 19:01:02 -04:00
bitform 0280779d01 Cleaned up Encrypt-Script coment-based help 2012-08-24 13:28:57 -04:00
bitform c7fa339012 Updated Inject-Shellcode and style guide
New Features/Changes:

- Dramatically simplified parameters. Removed redundancies and named
parameter sets more appropriately
- Added 'Shellcode' parameter. Now, you can optionally specify shellcode
as a byte array rather than having to copy and paste shellcode into the
$Shellcode32 and/or $Shellcode64 variables
- Added 'Payload' parameter. Naming is now consistant with Metasploit
payloads. Currently, only 'windows/meterpreter/reverse_http' and
'windows/meterpreter/reverse_https' payloads are supported.
- Inject-Shellcode will now prompt the user to continue the 'dangerous'
action unless the -Force switch is provided. Hopefully, this will
prevent some people from carrying out stupid/regrettable actions.
- Added the 'ListMetasploitPayloads' switch to display the Metasploit
payloads supported by Inject-Shellcode

Bug fixes/Miscellaneous:

- Added UserAgent parameter to help documentation
- Code is much more readable now
- Changed internal helper functions to 'local' scope
- Now using proper error handling versus Write-Warning statements
- Added a subtle warning to the built-in shellcode...
2012-08-20 20:14:01 -04:00
bitform 2b5ac68b9c Added the Get-Member proxy function
This extends the built-in Get-Member cmdlet by adding the '-Private'
parameter for dissecting .NET types.
2012-08-11 20:07:22 -04:00
bitform 40407697fd Added additional recon dictionaries 2012-08-09 19:00:17 -04:00
bitform 0ecd7cb158 Added Get-HttpStatus and 'Recon' directory
* All recon scripts not live in the 'Recon' directory
* Added Get-HttpStatus - An http[s] enumeration tool
* Added default dictionary for Get-HttpStatus - .\Dictionaries\admin.txt
* Moved Invoke-ReverseDnsLookup to 'Recon'
2012-08-07 19:14:11 -04:00
bitform befc24a6e8 Fixed bug in display of PE optional header 2012-07-25 17:37:12 -04:00
bitform f8a3a70291 Fixed bug in executables with no imports/exports
I now check for the existance of imports/exports in the data directory.
2012-07-22 16:47:44 -04:00
bitform 65ebaea880 Added Get-PEHeader. PETools is now a module.
Get-PEHeader is a 32 and 64-bit in-memory and on-disk PE parsing
utility.

PETools is now a PowerShell module that can be loaded with
`Import-Module PETools`
2012-07-22 15:16:22 -04:00
bitform 72c00d7422 Added Get-ILDisassembly - an MSIL disassembler
Added Get-ILDisassembly.
Added RE_Tools folder for all current and future reverse engineering
tools.
2012-06-26 20:09:55 -04:00
bitform 65fde4aac0 Changed licensing to BSD 3-Clause
Fixed some spelling errors in README.
Added additional usage information
2012-06-26 17:57:38 -04:00
bitform 9ef781f449 Converted all ps1 files from UTF-16 BE to Ascii
PowerShell ISE saves to UTF-16 BE by default. git doesn't diff this
properly. Diffs should now display properly.
2012-06-07 21:26:33 -04:00
bitform 9720779bb0 Attempted to fix ps1 diffing 2012-06-07 20:40:05 -04:00
bitform adec3b14af Fixed .gitattributes 2012-06-07 19:28:08 -04:00
bitform cbccfb4916 Added reverse HTTP[S] meterpreter payloads 2012-06-07 19:09:15 -04:00
bitform 31c598c7a6 Added two PE tools and updated Readme
Added: Get-DllLoadPath, Get-PEArchitecture
Updated: Readme to reflect new additions
2012-06-02 17:59:23 -04:00
bitform 3bd5a56327 Deleted .gitattributes 2012-05-27 13:56:50 -04:00
bitform 266238d560 Added Invoke-ReverseDnsLookup 2012-05-26 22:40:03 -04:00
bitform 4995ed9df9 Added style guide to the readme 2012-05-26 19:35:22 -04:00
bitform 8bc63f4445 Tweaked .gitattributes 2012-05-26 18:48:46 -04:00
bitform b1be2b0e36 Get-GPPPassword now outputs custom object
Got rid of Write-Host output.
2012-05-26 18:34:54 -04:00
bitform aec1c7eb8e Added Get-GPPPassword
Used with permission from @obscuresec (www.obscuresecurity.blogspot.com)
2012-05-26 16:02:44 -04:00
bitform 35b905c10f Cleaned up default .git configs 2012-05-26 12:50:53 -04:00
bitform 7ce33c794f Complete rewrite of Powersyringe 2012-05-26 12:34:54 -04:00