403Webshell
Server IP : 112.74.42.100  /  Your IP : 216.73.216.142
Web Server : nginx/1.20.2
System : Linux iZwz96lx4pjqiy84w4hni7Z 5.10.134-17.3.al8.x86_64 #1 SMP Thu Oct 31 14:29:57 CST 2024 x86_64
User : www ( 1000)
PHP Version : 8.0.26
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/sysak/.sysak_components/tools/ossre_set/tools/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/sysak/.sysak_components/tools/ossre_set/tools/sysinfo.py
# -*- coding: utf-8 -*-

"""
This script tries to collect system info, like OS/kernel veresion,
CPU/MEM/Block/NIC spec, hotfix info etc.

"""

import os
import sys
import time
import subprocess
import re
import json

if sys.version[0] == '2':
    reload(sys)
    sys.setdefaultencoding('utf8')

def query(sn, data):
    result = {"success":"true","errorCode":"200","errorMsg":"",
        "fields":{}}
    try:
        cmd = 'khotfix-view -r 2>/dev/null'
        output = os.popen(cmd)
        result['fields']['hotfix'] = output.read()
        output.close()

        cmd = 'cat /proc/version 2>/dev/null'
        output = os.popen(cmd)
        result['fields']['kernel_version'] = output.read()
        output.close()

        result['fields']['cpuinfo'] = {}
        cmd = 'cat /proc/cpuinfo 2>/dev/null'
        output = os.popen(cmd)
        cpuinfo = output.read()
        if len(cpuinfo) > 0:
            cpuinfo = cpuinfo.splitlines()
            cpuinfo = cpuinfo[::-1]
            for line in cpuinfo:
                if line.startswith('processor'):
                    result['fields']['cpuinfo']['cpunum'] = int(line.strip().split(':')[1].strip())+1
                    break
                elif line.startswith('flags'):
                    result['fields']['cpuinfo']['flags'] = line.strip().split(':')[1].strip()
                elif line.startswith('model name'):
                    result['fields']['cpuinfo']['model name'] = line.strip().split(':')[1].strip()
        output.close()

        result['fields']['meminfo'] = {}
        cmd = 'cat /proc/meminfo 2>/dev/null'
        output = os.popen(cmd)
        meminfo = output.read()
        if len(meminfo) > 0:
            meminfo = meminfo.splitlines()
            for line in meminfo:
                if line.startswith('MemTotal:'):
                    result['fields']['meminfo']['MemTotal'] = line.strip().split(':')[1].strip()
                elif line.startswith('MemFree:'):
                    result['fields']['meminfo']['MemFree'] = line.strip().split(':')[1].strip()
                elif line.startswith('MemAvailable:'):
                    result['fields']['meminfo']['MemAvailable'] = line.strip().split(':')[1].strip()
                elif line.startswith('Cached:'):
                    result['fields']['meminfo']['Cached'] = line.strip().split(':')[1].strip()
                elif line.startswith('Slab:'):
                    result['fields']['meminfo']['Slab'] = line.strip().split(':')[1].strip()
                elif line.startswith('SReclaimable:'):
                    result['fields']['meminfo']['SReclaimable'] = line.strip().split(':')[1].strip()
                elif line.startswith('Shmem:'):
                    result['fields']['meminfo']['Shmem'] = line.strip().split(':')[1].strip()
                elif line.startswith('AnonHugePages:'):
                    result['fields']['meminfo']['AnonHugePages'] = line.strip().split(':')[1].strip()
                elif line.startswith('AnonPages:'):
                    result['fields']['meminfo']['AnonPages'] = line.strip().split(':')[1].strip()
                elif line.startswith('Mlocked:'):
                    result['fields']['meminfo']['Mlocked'] = line.strip().split(':')[1].strip()
        output.close()

        result['fields']['blockinfo'] = {}
        cmd = 'df -h 2>/dev/null'
        output = os.popen(cmd)
        blockinfo = output.read()
        if len(blockinfo) > 0:
            blockinfo = blockinfo.splitlines()
            for line in blockinfo:
                if line.startswith('/dev/'):
                    line = line.strip().split()
                    result['fields']['blockinfo'][line[0]] = {}
                    result['fields']['blockinfo'][line[0]]['Size'] = line[1]
                    result['fields']['blockinfo'][line[0]]['Used'] = line[2]
        output.close()

        cmd = 'lspci -v | grep Ethernet 2>/dev/null'
        output = os.popen(cmd)
        result['fields']['nicinfo'] = output.read()
        output.close()
    except Exception as e:
        result = {"success":"false","errorCode":"-1","errorMsg":repr(e)}

    data = json.dumps(result)
    print( data)

def main():
    sn = ''
    data = {}
    query(sn, data)

if __name__ == "__main__":
    main()

Youez - 2016 - github.com/yon3zu
LinuXploit