Skip to content

Instantly share code, notes, and snippets.

@windows98SE
Created April 26, 2017 18:01
Show Gist options
  • Save windows98SE/cf99e2993ca3debc6adf5a487f203c1e to your computer and use it in GitHub Desktop.
Save windows98SE/cf99e2993ca3debc6adf5a487f203c1e to your computer and use it in GitHub Desktop.
mikrotik basic login script
#!/usr/bin/env python
'''
mikrotik basic login script
'''
import re
import requests
from md5 import md5
USER = 'i am groot'
PASS = 'raaaaar'
IP = '192.168.1.1'
browser = requests.Session()
browser.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"}
#browser.proxies = {"http": "http://127.0.0.1:8080","https": "http://127.0.0.1:8080"} #for burpsuite eiei
#get md5 salt
res = browser.get('http://' + IP + '/login')
regex = re.search('hexMD5\(\'(.+?)\' \+ document.login.password.value \+ \'(.+?)\'\);', res.text)
#if found salt, do login
if regex :
hex_hash_password = md5( regex.group(1).decode('string_escape') + PASS + regex.group(2).decode('string_escape') ).hexdigest()
print 'hexMD5(' + regex.group(1) + PASS + regex.group(2) + ') => ' + hex_hash_password
payload = {'username':USER, 'password':hex_hash_password, 'dst':'', 'popup':'true'}
res = browser.post('http://' + IP + '/login', data=payload) #send data to /login
# do something
#print res.text
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment