Hackfut Security File Manager
Current Path:
/usr/local/lib/python3.6/site-packages/agent360/plugins
usr
/
local
/
lib
/
python3.6
/
site-packages
/
agent360
/
plugins
/
📁
..
📄
__init__.py
(0 B)
📁
__pycache__
📄
apt-updates.py
(1.23 KB)
📄
asterisk.py
(1012 B)
📄
bind.py
(732 B)
📄
bird.py
(841 B)
📄
bitninja.py
(1.27 KB)
📄
cloudlinux-dbgov.py
(1.04 KB)
📄
cloudlinux.py
(1020 B)
📄
cpanel.py
(1.41 KB)
📄
cpu.py
(1.97 KB)
📄
cpu_freq.py
(583 B)
📄
dirsize.py
(617 B)
📄
diskinodes.py
(652 B)
📄
diskstatus-nvme.py
(1.58 KB)
📄
diskstatus.py
(1.96 KB)
📄
diskusage.py
(4.04 KB)
📄
docker.py
(3.36 KB)
📄
dovecot.py
(1.27 KB)
📄
elasticsearch.py
(4.24 KB)
📄
exim.py
(484 B)
📄
fail2ban.py
(831 B)
📄
gpu.py
(959 B)
📄
haproxy.py
(4.17 KB)
📄
httpd.py
(2.73 KB)
📄
iostat.py
(5.1 KB)
📄
janus.py
(705 B)
📄
kamailio.py
(556 B)
📄
litespeed.py
(3.04 KB)
📄
loadavg.py
(332 B)
📄
loggedin.py
(400 B)
📄
mailq.py
(528 B)
📄
mdstat.py
(1.36 KB)
📄
megacli.py
(2.72 KB)
📄
memcached.py
(3.09 KB)
📄
memory.py
(932 B)
📄
minecraft.py
(2.35 KB)
📄
mongodb.py
(5.63 KB)
📄
mysql.py
(5.13 KB)
📄
network.py
(2.72 KB)
📄
nginx.py
(3.2 KB)
📄
openvpn.py
(2.17 KB)
📄
phpfpm.py
(2.72 KB)
📄
ping.py
(3.09 KB)
📄
plesk-cgroups.py
(6.18 KB)
📄
plugins.py
(2.48 KB)
📄
postfix.py
(1.73 KB)
📄
powerdns.py
(4.56 KB)
📄
process.py
(4.26 KB)
📄
proftpd.py
(1.1 KB)
📄
rabbitmq.py
(3.49 KB)
📄
redis_stat.py
(5.48 KB)
📄
sleeper.py
(244 B)
📄
swap.py
(364 B)
📄
system.py
(5.67 KB)
📄
tcpports.py
(1.08 KB)
📄
temp.py
(1.45 KB)
📄
unbound.py
(3.24 KB)
📄
vms.py
(6.2 KB)
📄
wp-toolkit.py
(1.8 KB)
📄
yum-updates.py
(810 B)
Editing: unbound.py
#!/usr/bin/env python import plugins import subprocess # Needs: agent360 ALL=(ALL) NOPASSWD: /usr/sbin/unbound-control class Plugin(plugins.BasePlugin): __name__ = 'unbound' floatKeys = [ '.avg', '.median', '.now', '.up', '.elapsed' ] rate_metrics = [ "num.answer.bogus", "num.answer.rcode", "num.answer.secure", "num.cachehits", "num.cachemiss", "num.dnscrypt.cert", "num.dnscrypt.cleartext", "num.dnscrypt.crypted", "num.dnscrypt.malformed", "num.prefetch", "num.queries", "num.queries_ip_ratelimited", "num.query.aggressive", "num.query.authzone.down", "num.query.authzone.up", "num.query.class", "num.query.dnscrypt.replay", "num.query.dnscrypt.shared_secret.cachemiss", "num.query.edns", "num.query.flags", "num.query.ipv6", "num.query.opcode", "num.query.ratelimited", "num.query.subnet", "num.query.subnet_cache", "num.query.tcp", "num.query.tcpout", "num.query.tls", "num.query.tls.resume", "num.query.type", "num.recursivereplies", "num.rrset.bogus", "num.zero_ttl", "requestlist.exceeded", "requestlist.overwritten", "unwanted.queries", "unwanted.replies", ] gauge_metrics = [ "dnscrypt_nonce.cache.count", "dnscrypt_shared_secret.cache.count", "infra.cache.count", "key.cache.count", "mem.cache.dnscrypt_nonce", "mem.cache.dnscrypt_shared_secret", "mem.cache.message", "mem.cache.rrset", "mem.mod.iterator", "mem.mod.validator", "mem.streamwait", "msg.cache.count", "recursion.time.avg", "recursion.time.median", "requestlist.avg", "requestlist.current.all", "requestlist.current.user", "requestlist.max", "rrset.cache.count", "tcpusage", "time.elapsed", "time.now", "time.up", ] by_tag_labels = [ "num.answer.rcode", "num.query.aggressive", "num.query.class", "num.query.edns", "num.query.flags", "num.query.opcode", "num.query.type", ] def get_stats(self): cmd = 'sudo /usr/sbin/unbound-control stats' try: output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) except subprocess.CalledProcessError as e: error_msg = 'ERROR CALLING {0}: {1} {2}'.format(cmd, e, e.output) return None return output def parse_stat(self, stat): stats = {t[0]: t[2] for line in stat.splitlines() for t in [line.partition('=')]} for key, value in stats.items(): if key.endswith(tuple(self.floatKeys)): stats[key] = float(value) else: stats[key] = int(value) return stats def run(self, *unused): resdata = self.get_stats() final = {} if resdata is None: return False else: final = self.parse_stat(resdata) return final if __name__ == '__main__': Plugin().execute()
Upload File
Create Folder