Commit Graph

72 Commits

Author SHA1 Message Date
Matt Graeber 9d286e511f Added ARM support to Get-PEHeader
Also fixed various pointer width bugs
2013-04-28 22:17:14 -04:00
Matt Graeber 2224f4dca9 Adding reflective DLL loading capability
Adding Invoke-ReflectiveDllInjection. PowerSploit now has reflective DLL
loading capabilities!!! Thanks to Joe Bialek @JosephBialek for writing
this awesome code!
2013-04-06 07:04:16 -04:00
Matt Graeber 014a7bb421 Adding Invoke-ShellcodeMSIL
Invoke-ShellcodeMSIL executes shellcode without making any Win32
function calls.
2013-04-05 14:06:58 -04:00
Matt Graeber 1e79c0f793 Fixed x86 bug in Get-MethodAddress
Get-MethodAddress was not working correctly in 32-bit PowerShell because
it was returning a [UInt64] value when it should have been a [UInt32].
This fix will detect if PowerShell is running as 32 or 64-bit and define
its return type accordingly.
2013-04-05 11:04:48 -04:00
Matt Graeber 577be2fea5 Adding Persistence module 2013-04-04 15:10:09 -04:00
Matt Graeber 2ff300c03a DownloadFromMSSymbolServer is a better name 2013-03-10 14:27:45 -04:00
Matt Graeber 4f7e59c5a7 Fixed export parsing bug in Get-PEHeader 2013-03-10 14:14:11 -04:00
Matt Graeber 60c49734df Added DownloadEXEFromMSSymbolServer method
After parsing a PE header with Get-PEHeader, you now have the option of
downloading the original executable from Microsoft's symbol server for
reference/comparision.
2013-03-10 11:29:53 -04:00
bitform 4475824be0 Updated 64-32bit conversion logic for Metasploit 2013-02-17 18:12:56 -05:00
bitform feca7f2513 Get-MethodAddress now returns an IntPtr.
It previously returned a UInt64. Returning an IntPtr makes more sense.
2013-02-17 18:12:00 -05:00
bitform 97a1a15120 Removed .git* files
They weren't relevant.
2013-01-23 19:32:53 -05:00
bitform 40eb187bca Consistency improvements in comment-based help 2013-01-21 08:33:51 -05:00
bitform 46aead39c6 PowerSploit is now a respectable module!
PowerSploit just got a complete makeover! It is now comprised of a
collection of modules grouped by category.
2013-01-20 21:40:02 -05:00
bitform 03f34b1c1a Updated PETools module file list 2013-01-20 21:37:23 -05:00
bitform 321d1f4c51 Corrections made to usage documentation 2013-01-20 21:36:49 -05:00
bitform 6e42ba1d39 Moved scripts to their respective modules. 2013-01-20 21:35:56 -05:00
bitform 3d83669635 Added 'AntivirusBypass' Module 2013-01-20 21:35:04 -05:00
bitform a233d60908 Added 'CodeExecution' Module
* I unfortunately needed to change the names of Inject-Shellcode and
Inject-Dll to Invoke-Shellcode and Invoke-DllInjection in order to
confirm to proper verb naming.
2013-01-20 21:34:37 -05:00
bitform b3bbe03e93 Added 'Exfiltration' Module 2013-01-20 21:32:41 -05:00
bitform b53b6a03a5 Added 'Recon' Module 2013-01-20 21:32:27 -05:00
bitform 065a3b63a4 Updated module manifest file listing 2013-01-20 19:48:51 -05:00
bitform ce08c38843 Renamed Usage.txt to Usage.md to apply markdown. 2013-01-20 18:41:22 -05:00
bitform 710514553b Updated PowerSploit README with proper markdown 2013-01-20 18:28:52 -05:00
bitform c45f3361e2 Created a ScriptModification module.
* All scripts used to prepare and/or modify payload scripts were added
to the ScriptModification module.
* Added Remove-Comments - Strips comments and extra whitespace from a
script.
* Encrypt-Script was named to Out-EncryptedScript in order to conform to
proper PowerShell verbs.
2013-01-20 10:11:30 -05:00
bitform e9b22e9ae2 Removed logic in scripts to load ps1xml files
* Now that PETools and ReverseEngineering are both full-fledged modules
with proper manifests, the manifests will take care of loading the
appropriate ps1xml files.
* Added Usage.txt to ReverseEngineering module.
2013-01-20 08:56:37 -05:00
bitform 59ff1a8b1e PETools module doc. consistency improvements
* Slight consistency modifications were made to documentation.
* Added module manifest for PETools
2013-01-19 20:46:49 -05:00
bitform 3c87916e19 Renamed RE_Tools. Now ReverseEngineering module
* I renamed RE_Tools to ReverseEngineering and made it a module.
* Slight consistency modifications were made to documentation.
* This is one step in the process of modularizing all of PowerSploit.
2013-01-19 18:59:40 -05:00
bitform fcb17a4236 Removed old release notes. 2013-01-19 16:13:17 -05:00
bitform 773af257bb Added 'Id' parameter documentation to Get-PEB
Forgot to add this. Oops.
2013-01-19 16:01:48 -05:00
bitform 3eb838eb1e Removed ValueFromPipeline from the Path param.
That parameter attribute doesn't make sense in this context.
2013-01-19 16:01:01 -05:00
bitform 591c063776 Updated readme to reflect renamed Prepare-Payload 2013-01-19 08:37:34 -05:00
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