!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/usr/share/system-config-network/netconfpkg/   drwxr-xr-x
Free 53.79 GB of 127.8 GB (42.09%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     NCisdnhardware.py (12.1 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
## Copyright (C) 2001-2005 Red Hat, Inc.
## Copyright (C) 2001, 2002 Than Ngo <than@redhat.com>
## Copyright (C) 2001-2005 Harald Hoyer <harald@redhat.com>
## Copyright (C) 2001, 2002 Philipp Knirsch <pknirsch@redhat.com>

## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.

## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.

## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

import os
import signal
import string
import commands
import sys
from NC_functions import *
import netconfpkg

TYPE = 0
IRQ = 1
IO = 2
IO1 = 3
IO2 = 4
MEM = 5
VENDOR_ID = 6
DEVICE_ID = 7
DRIVER_ID = 8
FIRMWARE = 9
MODUL = 10

card = {
    # "ISDN Adapter" : [ type, irq, io, io1, io2, mem, vendor_id, device_id, driver_id, firmware, module ]
    "ACER P10" : [ "30", "5", "0x300", "", "", "", "", "", "HiSax", "", "hisax" ],
    "ASUS COM ISDNLink ISA PnP" : [ "12", "", "", "", "", "", "ASU1690", "ASU1690", "HiSax", "", "hisax" ],
    "ASUS COM ISDNLink PCI" : [ "35", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "AVM A1 (Fritz)" : [ "5", "10", "0x300", "", "", "", "", "", "HiSax", "",  "hisax" ],
    "AVM Fritz Card PCMCIA" : [ "", "", "", "", "", "", "", "", "", "", "avma1_cs" ],
    "AVM PCI (Fritz!PCI)" : [ "27", "", "", "", "", "", "1244", "0a00", "HiSax", "", "hisax" ],
    "AVM PCI (Fritz!PCI v2)" : [ "0", "", "", "", "", "", "1244", "0e00", "", "", "hisax_fcpcipnp" ],
    "AVM PnP" : [ "27", "", "", "", "", "", "AVM0900", "AVM0900", "HiSax", "", "hisax" ],
    "Billion ISDN P&P PCI 128k Cologne SE" : [ "35", "", "", "", "", "", "1397", "2bd0", "HiSax", "", "hisax" ],
    "Compaq ISDN S0 ISA" : [ "19", "5", "0x0000", "0x0000", "0x0000", "", "", "", "HiSax", "", "hisax" ],
    "Creatix Teles PnP" : [ "4", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Dr. Neuhaus Niccy PnP" : [ "24", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Dr. Neuhaus Niccy PCI" : [ "24", "", "", "", "", "", "1267", "1016", "HiSax", "", "hisax" ],
    "Dynalink 128PH PCI" : [ "36", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Eicon.Diehl Diva ISA PnP" : [ "11", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Eicon.Diehl Diva 20PRO PCI" : [ "11", "", "", "", "", "", "1133", "e001", "HiSax", "", "hisax" ],
    "Eicon.Diehl Diva 20 PCI" : [ "11", "", "", "", "", "", "1133", "e002", "HiSax", "", "hisax" ],
    "Eicon.Diehl Diva 20PRO_U PCI" : [ "11", "", "", "", "", "", "1133", "e003", "HiSax", "", "hisax" ],
    "Eicon.Diehl Diva 20_U PCI" : [ "11", "", "", "", "", "", "1133", "e004", "HiSax", "", "hisax" ],
    "ELSA PCC/PCF" : [ "6", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "ELSA Quickstep 1000" : [ "7", "5", "0x300", "", "", "", "ELS0133", "ELS0133", "HiSax", "", "hisax" ],
    "ELSA Quickstep 1000 PCI" : [ "18", "", "", "", "", "", "1048", "1000", "HiSax", "", "hisax" ],
    "ELSA Quickstep 3000 PCI" : [ "18", "", "", "", "", "", "1048", "3000", "HiSax", "", "hisax" ],
    "ELSA PCMCIA MicroLink cards" : [ "", "", "", "", "", "", "", "", "", "", "elsa_cs" ],
    "Gazel cards ISA" : [ "34", "5", "0x300", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Gazel cards PCI" : [ "34", "", "", "", "", "", "10b5", "1030", "HiSax", "", "hisax" ],
    "HFC-2BS0 based cards ISA" : [ "13", "9", "0xd80", "", "", "", "", "", "HiSax", "", "hisax" ],
    "HFC-2BS0 based cards PCI" : [ "35", "", "", "", "", "", "1397", "2bd0", "HiSax", "", "hisax" ],
    "HST Saphir" : [ "31", "5", "0x300", "", "", "", "", "", "HiSax", "", "hisax" ],
    "ITK ix1-micro Rev.2" : [ "9", "9", "0xd80", "", "", "", "", "", "HiSax", "", "hisax" ],
    "MIC card" : [ "17", "9", "0xd80", "", "", "", "", "", "HiSax", "", "hisax" ],
    "NETjet PCI" : [ "20", "", "", "", "", "", "e159", "0001", "HiSax", "", "hisax" ],
    "Sedlbauer PC 104" : [ "15", "9", "0xd80", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Sedlbauer Speed PCI" : [ "15", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Sedlbauer Speed Card" : [ "15", "9", "0xd80", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Sedlbauer Speed Fax+" : [ "28", "3", "0x200", "", "", "", "SAG0002", "SAG0002", "HiSax", "hisaxctrl HiSax 9 /usr/lib/isdn/ISAR.BIN", "hisax" ],
    "Sedlbauer Speed fax+ PCI" : [ "28", "", "", "", "", "", "e159", "0002", "HiSax", "hisaxctrl HiSax 9 /usr/lib/isdn/ISAR.BIN", "hisax" ],
    "Sedlbauer Speed Star PCMCIA Card" : [ "", "", "", "", "", "", "", "", "", "", "sedlbauer_cs" ],
    "Siemens I-Surf 1.0" : [ "29", "9", "0xd80", "", "", "0xd000", "", "", "HiSax", "", "hisax" ],
    "Telekom A4T" : [ "32", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Teles 8.0" : [ "2", "9", "", "", "", "0xd800", "", "", "HiSax", "", "hisax" ],
    "Teles 16.0" : [ "1", "5", "0xd80", "", "", "0xd000", "", "", "HiSax", "", "hisax" ],
    "Teles 16.3" : [ "3", "9", "0xd80", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Teles 16.3c PnP" : [ "14", "", "", "", "", "", "TAG2610", "TAG2610", "HiSax", "", "hisax" ],
    "Teles PCI" : [ "21", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Teles PnP" : [ "4", "", "", "", "", "", "", "", "HiSax", "", "hisax" ],
    "Teles S0Box" : [ "25", "7", "0x378", "", "", "", "", "", "HiSax", "", "hisax" ],
    "USR Sportster intern" : [ "16", "9", "0xd80", "", "", "", "", "", "HiSax", "", "hisax" ],
    "W6692 based PCI cards" : [ "36", "", "", "", "", "", "1050", "6692", "HiSax", "", "hisax" ]
    }

    
class ConfISDN:
    keydict = { 'Description' : 'NAME',
                'ModuleName' : 'MODULE',
                'VendorId' : 'VENDOR_ID',
                'Firmware' : 'FIRMWARE',
                'Resources' : 'RESOURCES'
                }
    def __init__(self):
        self.Description = ""
        self.ChannelProtocol = "2"
        self.Type = ""
        self.IRQ = ""
        self.IoPort = ""
        self.IoPort1 = ""
        self.IoPort2 = ""
        self.Mem = ""
        self.VendorId = ""
        self.DeviceId = ""
        self.DriverId = ""
        self.Firmware = ""
        self.ModuleName = ""
        self.Resources = ""
        
    def get_value(self, s):
        if string.find(s, "=") < 0:
            return ""
        s = string.split(s, "=", 1)[1]
        s = string.replace(s, "\"", "")

        return string.strip(s)

    def load(self, f = None):

        if not f:
            f = netconfpkg.ROOT + ISDNCARDCONF            
        if not os.path.exists(f):
            return -1

        conf = Conf.ConfShellVar(filename = f)
        for selfkey in self.keydict.keys():
            confkey = self.keydict[selfkey]
            if conf.has_key(confkey):
                self.__dict__[selfkey] = conf[confkey]

        log.log(5, "RESOURCES=%s" % self.Resources)

        rlist = string.split(self.Resources, " ")
        for i in rlist:
            log.log(5, "%s" % i)
            if string.find(i, "type=") == 0:
                self.Type = self.get_value(i)
            elif string.find(i, "protocol=") == 0:
                self.ChannelProtocol = self.get_value(i)
            elif string.find(i, "irq=") == 0:
                self.IRQ = self.get_value(i)
            elif string.find(i, "id=") == 0:
                self.DriverId = self.get_value(i)
            elif string.find(i, "io=") == 0 or string.find(i, "io0=") == 0:
                self.IoPort = self.get_value(i)
            elif string.find(i, "io1=") == 0:
                self.IoPort1 = self.get_value(i)
            elif string.find(i, "io2=") == 0:
                self.IoPort2 = self.get_value(i)
            elif string.find(i, "mem=") == 0:
                self.Mem = self.get_value(i)

        if len(rlist) and not self.Type:
            self.Type = '0'

        return 1
    
    def save(self, f = None):
        if f == None:
            f = netconfpkg.ROOT + ISDNCARDCONF 
        # we only support 1 ISDN card in this version
        if not self.Description:
            if os.path.exists(f):
                os.unlink(f)
            return

        conf = Conf.ConfShellVar(filename = f)
        
        rs = ""
        if self.Type:
            rs = rs + "protocol=" + str(self.ChannelProtocol)
            if self.Type == '0':
                pass
            else:
                rs = rs + " type=" + str(self.Type)
                if self.IRQ:
                    rs = rs + " irq=" + str(self.IRQ)
                if self.DriverId:
                    rs = rs + " id=" + str(self.DriverId)
                if self.IoPort:
                    if self.Type == "4" or self.Type == "19" or self.Type == "24":
                        rs = rs + " io0=" + str(self.IoPort)
                    else:
                        rs = rs + " io=" + str(self.IoPort)
                if self.IoPort1:
                    rs = rs + " io1=" + str(self.IoPort1)
                if self.IoPort2:
                    rs = rs + " io2=" + str(self.IoPort2)
                if self.Mem:
                    rs = rs + " mem=" + str(self.Mem)
        else:
            rs = rs + "NONE"

        self.Resources = rs

        for selfkey in self.keydict.keys():
            confkey = self.keydict[selfkey]
            if self.__dict__[selfkey]:
                conf[confkey] = str(self.__dict__[selfkey])
            else: conf[confkey] = ""


        conf.write()


    def cleanup(self, f = None):
        if f == None:
            f = netconfpkg.ROOT + ISDNCARDCONF 
        # we only support 1 ISDN card in this version
        if not self.Description:
            if os.path.exists(f):
                os.unlink(f)
            return


    def detect(self):
        fpci = '/sbin/lspci'
        fpnp = '/proc/bus/isapnp/devices'
        found = 0
        idl = []
        if os.path.exists(fpci):
            pci_infos = commands.getoutput(fpci + ' -n 2>/dev/null')
            found = 1
        if os.path.exists(fpnp):
            f = open(fpnp, 'r')
            line = f.readline()
            while line:
                idl.append(string.split(line)[1])
                line = f.readline()
            f.close()
            found = 1

        if found == 0: return

        for i in card.keys():
            if card[i][VENDOR_ID] and card[i][DEVICE_ID]:
                if string.find(pci_infos, card[i][VENDOR_ID] + ':' + card[i][DEVICE_ID]) >0:
                    return {i : card[i]}
                elif idl and idl.count(card[i][VENDOR_ID] + card[i][DEVICE_ID]) >0:
                    return {i : card[i]}

    def get_resource(self, name):
        global card
        if card.has_key(name):
            self.Description = name
            self.Type = card[name][TYPE]
            self.IRQ = card[name][IRQ]
            self.IoPort = card[name][IO]
            self.IoPort1 = card[name][IO1]
            self.IoPort2 = card[name][IO2]
            self.Mem = card[name][MEM]
            self.VendorId = card[name][VENDOR_ID]
            self.DeviceId = card[name][DEVICE_ID]
            self.DriverId = card[name][DRIVER_ID]
            self.Firmware = card[name][FIRMWARE]
            self.ModuleName = card[name][MODUL]


if __name__ == "__main__":
    conf = ConfISDN()
    if conf.load() < 0:
        new_card = conf.detect()
        if new_card:
            conf.get_resource(new_card.keys()[0])
        else:
            print "not found:"
            sys.exit(0)

    print "Channel Protocol:", conf.ChannelProtocol
    print "Name:", conf.Description
    print "Type:", conf.Type
    print "Irq:", conf.IRQ
    print "Io:", conf.IoPort
    print "Io1:", conf.IoPort1
    print "Io2:", conf.IoPort2
    print "Mem:", conf.Mem
    print "Vendor ID:", conf.VendorId
    print "Device ID:", conf.DeviceId
    print "Driver ID:", conf.DriverId
    print "Firmware:", conf.Firmware
    print "Modul:", conf.ModuleName


__author__ = "Harald Hoyer <harald@redhat.com>"
__date__ = "$Date: 2005/10/19 10:44:49 $"
__version__ = "$Revision: 1.26 $"

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0132 ]--