metasploit shellcode grows up: encrypted and authenticated C shells-pace2019

0001-01-01

Metasploit Shellcode Grows Up: Encrypted and Authenticated C Shells

by Shelby Pace

Rapid7, 2019

https://www.rapid7.com/blog/post/2019/11/21/metasploit-shellcode-grows-up-encrypted-and-authenticated-c-shells/

https://github.com/rapid7/metasploit-framework/pull/12530

This blog post describes the addition of encrypted and authenticated shells to the Metasploit Framework.

Notes
Metasploit
encryption
payload
ChaCha20
traffic analysis
random authentication key
authentication
pingback payload
MinGW
C
TCP
obfuscation
stageless payload
staged payload
Windows
x86
x64
command shell
assembly language
stub
concatenation
Metasm
Matt Graeber
Nick Harbour
position-independent shellcode
GetProcAddress()
WinAPI
WinAPI function resolution
DLL
kernel32.dll
Winsock
LoadLibrary()
GetProcAddressWithHash()
Process Environment Block
Export Address Table
-nostdlib
main function
strings
.text section
.rdata section
PE file
shellcode
-O2 compiler optimization flag
declaring strings as byte arrays
ExecutePayload()
-ffunction-sections
objdump
StripSymbols
AlignRSP()
linker script
lib/metasploit/framework/mingw.rb
compiler
linker
RWX memory region
flagged by AV
Windows, Linux, macOS, Debian, Ubuntu, Kali Linux
homebrew
mingw-x64 package
nonce
UUID
random key
Metasploit database
msfvenom
Windows Defender
AV evasion

Links to this note