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

merge #2

Merged
merged 280 commits into from Jan 13, 2019
Merged

merge #2

merged 280 commits into from Jan 13, 2019

Conversation

pedrib
Copy link
Owner

@pedrib pedrib commented Jan 13, 2019

Tell us what this change does. If you're fixing a bug, please mention
the github issue number.

Verification

List the steps needed to make sure this thing works

  • Start msfconsole
  • use exploit/windows/smb/ms08_067_netapi
  • ...
  • Verify the thing does what it should
  • Verify the thing does not do what it should not
  • Document the thing and how it works (Example)

busterb and others added 30 commits December 8, 2018 06:24
Module now uses Chrome itself as a websocket client, reading websockets
via js. It no longer downloads and executes `websocat`.
Noticed while @asoto-r7 was reviewing Code Climate results, and it
highlighted some metasm code as having unusual code structure. Rather
than fixing it, we can delete it, since this is from upstream metasm
presumably, which we've used as a Gem for some time (thanks @egypt).

All payloads should still be regenerable, and evasion modules as well.
The changes ensure that updates to an Mdm::Session are reflected on a
remote data service.
The longxor encoder for mipsbe does not work correctly. At the end of the decoding, it should invoke cacheflush() with the correct parameters:
int cacheflush(char *addr, int nbytes, int cache)

The encoder previously did not setup the arguments, as it even said so in the comments:
;       addiu   $4, $16, -4       ; not checked by Linux
;       li      $5,40                   ; not checked by Linux
;       li      $6,3                    ; $6 is set above

I think this is because the encoder is pretty old (2008), and before kernel 2.6.11, cacheflush() did not need any parameters (from the cacheflush man page):
BUGS
       Linux  kernels older than version 2.6.11 ignore the addr and nbytes arguments, making this function fairly expensive.  Therefore, the
       whole cache is always flushed.

This commit fixes that by setting up the parameters correctly. As an unfortunate side effect this increases the shellcode by 16 bytes, but it is absolutely necessary for it to work properly. 

Note that this bug is not present when testing the encoder output on an emulator like qemu; emulators do not need to flush the caches to work properly.

As an added bonus I have also made it compatible with toupper() restrictions, which is common in web server exploits too. This did not add any extra bytes to the encoder.
@pedrib pedrib merged commit 7ac30b8 into pedrib:master Jan 13, 2019
pedrib pushed a commit that referenced this pull request Jun 8, 2019
pedrib pushed a commit that referenced this pull request Jun 8, 2019
pedrib pushed a commit that referenced this pull request Jun 25, 2020
fixing up some styling and rubocop run
pedrib pushed a commit that referenced this pull request Jul 30, 2020
refactor mixin as factory for SQLi classes
pedrib pushed a commit that referenced this pull request Jul 30, 2020
Replace ret CheckCode with fail_with()
pedrib pushed a commit that referenced this pull request Jul 30, 2020
add cracking support for dynamic_82
pedrib pushed a commit that referenced this pull request Oct 1, 2020
Validate the PE file early on to raise errors
pedrib pushed a commit that referenced this pull request Oct 1, 2020
pedrib pushed a commit that referenced this pull request Jul 7, 2021
pedrib pushed a commit that referenced this pull request Jul 7, 2021
add cookie jar usage and AutoCheck
pedrib pushed a commit that referenced this pull request Jul 7, 2021
adjust history context to thread file write
pedrib pushed a commit that referenced this pull request Nov 10, 2021
pedrib pushed a commit that referenced this pull request Jan 12, 2022
pedrib pushed a commit that referenced this pull request Feb 10, 2022
cracker refactor around jtr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet