-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Misfortune Cookie Authentication Bypass #46
Conversation
Wow that is impressive. We will definitely add this to routersploit, but we need to think about displaying firmwares to the user. Modules should not implement own init method. |
I could not find a more proper way to implement it since Routersploit has not (yet?) a set target concept as in Metasploit. The exploit just published on exploit-db : https://www.exploit-db.com/exploits/39739/ |
Your suggestions are good, we gonna make necessary changes to allow this kind of exploit implementation with setting targets. Thanks |
@doorbash following your suggestions we added necessary changes:
Proof of concept exploit that shows how it works: class Exploit(exploits.Exploit):
"""
Exploit implementation for Test vulnerability.
"""
__info__ = {
'name': 'Test',
'description': 'Exploits asmax password disclosure vulnerability that allows to '
'fetch credentials for: Admin, Support and User accounts.',
'authors': [
'test', # routersploit module
],
'references': [
'http://www.google.com',
],
'devices': [
{'name': 'Device 1', 'param': 'Some param 1', 'attr': 'Attr 1'},
{'name': 'Device 2', 'param': 'Some param 2', 'attr': 'Attr 2'},
{'name': 'Device 3', 'param': 'Some param 3', 'attr': 'Attr 3'},
],
}
target = exploits.Option('', 'Target address e.g. http://192.168.1.1') # target address
port = exploits.Option(80, 'Target port') # default port
device = exploits.Option(0, 'Target device (show devices)')
def run(self):
devices = self._Exploit__info__['devices']
for device in devices:
print device['param']
if int(self.device) >= 0 and int(self.device) < len(devices):
print devices[int(self.device)]['attr']
else:
print_error("Invalid device identifier option")
@mute
def check(self):
return False # target not vulnerable Commands:
Would you mind adapting your pull request? |
Cool. Yes I will adapt PR as soon as I can. |
@lucyoa I adapted it. |
@doorbash there is an issue with off by one:
it should be
Setting device id to 86 raises index out of range exception |
@lucyoa Correct! fixed. |
Great job. Really happy to merge this module. |
Hi,
I have been working on this more than a month and now decided to add it here.
The framework is great good job.we can work on this to add more vulnerable models/firmwares in the future.
The main exploit i wrote is here