GhostManSec
Server: Apache
System: Linux 57.167.178.68.host.secureserver.net 3.10.0-1160.118.1.el7.x86_64 #1 SMP Wed Apr 24 16:01:50 UTC 2024 x86_64
User: countrycraft1 (1001)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //bin/fm-agent/register.py
import fcntl
import time
import sys
import os, os.path
import csv

if 'freebsd' in sys.platform.lower():
    register_file = "/usr/local/fm-agent/lib/register"
elif 'darwin' == sys.platform.lower():
    register_file = '/usr/local/FortiMonitor/agent/share/fm-agent/register'
else:
    register_file = '/var/lib/fm-agent/register'
if not os.path.exists(register_file):
    home = os.path.expanduser("~")
    register_file = os.path.join(home, "lib", "fm-agent", "register")

unlock_attempts = 10

def register_metric(textkey, description):
    csvfile = open(register_file, 'a')
    # Acquire lock
    locked = True
        
    for i in range(unlock_attempts):
        try:
            fcntl.flock(csvfile, fcntl.LOCK_EX | fcntl.LOCK_NB)
            locked = False
            break
        except:
            time.sleep(1.0)
    if locked:
        print("Could not unlock %s after %s attempts" % (register_file, unlock_attempts))
        sys.exit(1)

    # Append new metrics
    csvwriter = csv.writer(csvfile)
    csvwriter.writerow([textkey, description])

    # Release lock
    fcntl.flock(csvfile, fcntl.LOCK_UN)
    csvfile.close()

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("Please specify textkey and description")
        sys.exit(0)
    else:
        register_metric(sys.argv[1], sys.argv[2])