Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stage-Listener: Unsupported staging protocol: http #1842

Open
Indigo-10 opened this issue Jan 3, 2025 · 5 comments
Open

Stage-Listener: Unsupported staging protocol: http #1842

Indigo-10 opened this issue Jan 3, 2025 · 5 comments

Comments

@Indigo-10
Copy link

Indigo-10 commented Jan 3, 2025

After downloading sliver from source, changing the donut.go file to disable AMSI Bypass, and compiling the binaries. When trying to start an HTTP stage-listener, I am unable to, and am faced with the error Unsupported staging protocol: http

Steps to reproduce the behavior:

  1. Clone the repository
  2. Head to sliver/server/generate/donut.go
  3. Change Bypass: 3 -> 1. // 1=skip, 2=abort on fail, 3=continue on fail.
  4. Compile binary using make
  5. ./sliver-server
  6. mtls
  7. profiles new beacon --http http://IP:80 --debug --format shellcode win-shellcode
  8. stage-listener --profile win-shellcode --url http://IP:80 --aes-encrypt-key 'D(G+KbPeShVmYq3t' --aes-encrypt-iv '8y/B?E(G+KbPeShV'
  9. See Error

Expected behavior
Expected stage-listener to serve shellcode without donut AMSI bypass.

Screenshots
Screenshot 2025-01-02 194107

Desktop (please complete the following information):

  • OS: Kali
@Indigo-10
Copy link
Author

@rkervella if you don’t mind taking a peek

@TimBF
Copy link
Member

TimBF commented Jan 3, 2025

that's expected we've changed the way http staging works in the master branch. There's a tutorial here https://sliver.sh/tutorials?name=4+-+HTTP+Payload+staging

@TimBF
Copy link
Member

TimBF commented Jan 3, 2025

the documentation is still a work in progress, for shellcode you'll want to encode your stage, otherwise it will mess up the http response

@Indigo-10
Copy link
Author

UPDATE: I am a bit empty in the brain, but I figured out how to serve the shellcode using a stage listener WITHOUT AES encryption or encoding as you were saying @TimBF (see below)

Screenshot 2025-01-04 143743

However, the issue lies in trying to serve the shellcode using AES encryption. (See below)

  1. When curling the endpoint I am returned a 32 byte string, where the first 16 bytes are the IV, my script accounts for this due to issue Stager doesn't work as expected #1079 , but I still believe I am supposed to be returned more data than what I am given.
  2. Whenever decrypting the shellcode, the hex contents are only repeating one's and zero's, nothing else
  3. Please note, I was able to decrypt shellcode using AES encryption before this version.
Screenshot 2025-01-04 145340

Any help is appreciated.

@Indigo-10
Copy link
Author

Indigo-10 commented Jan 4, 2025

I got it to work, but only if compressed by deflate9, gzip, or such not standalone AES encryption

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants