!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/gui/   drwxr-xr-x
Free 50.89 GB of 127.8 GB (39.82%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     WirelessInterface.py (15.11 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.

from netconfpkg.gui.GUI_functions import *
from netconfpkg import *
from netconfpkg.gui import sharedtcpip
import gtk
import gtk.glade
import string
import os
from EthernetHardwareDruid import ethernetHardware
from InterfaceCreator import InterfaceCreator
from rhpl import ethtool
from netconfpkg.gui.GUI_functions import xml_signal_autoconnect
import gobject

modeList = [ 
    [ _("Auto") , "Auto" ],
    [ _("Ad-Hoc") , "Ad-Hoc"],
    [ _("Managed") , "Managed"],
    [ _("Master") , "Master"],
#    [ _("Repeater") , "Repeater"],
#    [ _("Secondary") , "Secondary"]
]

authList = [
    [ _("None"), "off"],
    [ _("Open system (open)"), "open"],
    [ _("Shared key (restricted)"), "restricted"],
]

class WirelessInterface(InterfaceCreator):
    def __init__(self, toplevel=None, connection_type=WIRELESS, do_save = 1,
                 druid = None):
        InterfaceCreator.__init__(self, do_save = do_save)
        self.toplevel = toplevel
        self.topdruid = druid
        self.xml = None
        self.devicelist = NCDeviceList.getDeviceList()
        self.device = NCDevWireless.DevWireless()
        self.device.Type = connection_type
        self.device.OnBoot = False
        self.device.AllowUser = False
        self.device.IPv6Init = False

        self.profilelist = NCProfileList.getProfileList()
        self.toplevel = toplevel
        self.connection_type = connection_type
        self.hw_sel = 0
        self.hwPage = False
        self.druids = []



    def init_gui(self):
        if self.xml:
            return

        if request_rpms(["wireless-tools"]):
            return
        
        glade_file = "sharedtcpip.glade"
        if not os.path.exists(glade_file):
            glade_file = GLADEPATH + glade_file
        if not os.path.exists(glade_file):
            glade_file = NETCONFDIR + glade_file
        self.sharedtcpip_xml = gtk.glade.XML(glade_file, None,
                                                 domain=PROGNAME)

        glade_file = 'WirelessInterfaceDruid.glade'

        if not os.path.exists(glade_file):
            glade_file = GLADEPATH + glade_file
        if not os.path.exists(glade_file):
            glade_file = NETCONFDIR + glade_file

        self.xml = gtk.glade.XML(glade_file, 'druid', domain=PROGNAME)
        xml_signal_autoconnect(self.xml,
            { "on_hostname_config_page_back" : \
              self.on_hostname_config_page_back,
              "on_hostname_config_page_next" : \
              self.on_hostname_config_page_next,
              "on_hostname_config_page_prepare" : \
              self.on_hostname_config_page_prepare,
              "on_wireless_config_page_back" : \
              self.on_wireless_config_page_back,
              "on_wireless_config_page_next" : \
              self.on_wireless_config_page_next,
              "on_wireless_config_page_prepare" : \
              self.on_wireless_config_page_prepare,
              "on_hw_config_page_back" : self.on_hw_config_page_back,
              "on_hw_config_page_next" : self.on_hw_config_page_next,
              "on_hw_config_page_prepare" : self.on_hw_config_page_prepare,
              "on_finish_page_finish" : self.on_finish_page_finish,
              "on_finish_page_prepare" : self.on_finish_page_prepare,
              "on_finish_page_back" : self.on_finish_page_back,
              "on_essidAutoButton_toggled" : self.on_essidAutoButton_toggled,
              }
            )



        window = self.sharedtcpip_xml.get_widget ('dhcpWindow')
        frame = self.sharedtcpip_xml.get_widget ('dhcpFrame')
        vbox = self.xml.get_widget ('generalVbox')
        window.remove (frame)
        vbox.pack_start (frame)
        sharedtcpip.dhcp_init (self.sharedtcpip_xml, self.device)

        self.druid = self.xml.get_widget('druid')
        for i in self.druid.get_children():
            self.druid.remove(i)
            self.druids.append(i)

        self.hwDruid = ethernetHardware(self.toplevel)
        self.hwDruid.has_ethernet = None
        self.druids = [self.druids[0]] + self.hwDruid.druids[:]\
                      + self.druids[1:]
                      
        self.modestore = gtk.ListStore(gobject.TYPE_STRING, 
                                    gobject.TYPE_STRING)
        for i in modeList:
            self.modestore.append(i)
        
        combo = self.xml.get_widget("modeCombo")            
        combo.set_model(self.modestore)
        cell = gtk.CellRendererText()
        combo.pack_start(cell, True)
        combo.add_attribute(cell, 'text', 0)
        combo.set_active(0)
        
        self.authstore = gtk.ListStore(gobject.TYPE_STRING, 
                                    gobject.TYPE_STRING)
        
        for i in authList:
            self.authstore.append(i)
        
        combo = self.xml.get_widget("authCombo")            
        combo.set_model(self.authstore)
        cell = gtk.CellRendererText()
        combo.pack_start(cell, True)
        combo.add_attribute(cell, 'text', 0)
        combo.connect("changed", self.on_authChanged)
        combo.set_active(0)
        self.xml.get_widget("keyEntry").set_sensitive(False)
        
        self.xml.get_widget("rateCombo").set_popdown_strings((
            _("Auto"),
            "11M",
            "5.5M",
            "2M",
            "1M"
        ))
                        

    def get_project_name(self):
        return _('Wireless connection')

    def get_type(self):
        return WIRELESS

    def get_project_description(self):
        return _("Create a new wireless connection.")

    def get_druids(self):
        self.init_gui()
        return self.druids
    
    def on_hostname_config_page_back(self, druid_page, druid):
        pass
    
    def on_hostname_config_page_next(self, druid_page, druid):
        sharedtcpip.dhcp_dehydrate (self.sharedtcpip_xml, self.device)
        #self.device.Hostname = self.xml.get_widget("hostnameEntry").get_text()
        pass
    
    def on_hostname_config_page_prepare(self, druid_page, druid):
        sharedtcpip.dhcp_hydrate (self.sharedtcpip_xml, self.device)
        pass

    def on_wireless_config_page_back(self, druid_page, druid):
        childs = self.topdruid.get_children()
        if self.hwPage:
            self.topdruid.set_page(childs[2])
        else:
            self.topdruid.set_page(childs[1])            
        return True

    def on_wireless_config_page_next(self, druid_page, druid):
        self.device.createWireless()
        wl = self.device.Wireless

        if self.xml.get_widget("essidAutoButton").get_active():
            wl.EssId = ""
        else:
            wl.EssId = self.xml.get_widget("essidEntry").get_text()
        row = self.xml.get_widget("modeCombo").get_active()
        wl.Mode = self.modestore[row][1]
            
        if wl.Mode == _("Managed"):
            wl.Channel = ""
            wl.Rate = "auto"
        else:
            channel = self.xml.get_widget("channelEntry").get_text()
            if channel == "Auto":
                wl.Channel = ""
            else:
                wl.Channel = channel
            
            rate = self.xml.get_widget("rateEntry").get_text()
            if rate == _("Auto"):
                wl.Rate = "auto"
            else:
                wl.Rate = rate
        row = self.xml.get_widget("authCombo").get_active()
        wl.Securitymode = self.authstore[row][1]
        if wl.Securitymode == "off":
            wl.Key = None
        else:
            # FIXME: [168036] check the key!
            wl.Key = self.xml.get_widget("keyEntry").get_text()

    def on_wireless_config_page_prepare(self, druid_page, druid):
        if self.hwPage:
            self.device.Device = self.hwDruid.hw.Name
            self.device.Alias = None
            
        # we don't want ot load anything for druid - let user to fill it
        
        #if self.device.Device != None:
            #try:
                #from rhpl import iwlib
                #info = iwlib.get_iwconfig(self.device.Device)
            #except:
                #pass
            #else:
                #if info.has_key("Mode"):
                    #values = [ r[1] for r in self.modestore ]
                    #match_row = values.index(info["Mode"])
                    #self.xml.get_widget("modeCombo").set_active(match_row)

                #if info.has_key("ESSID") and info["ESSID"] != "":
                    #self.xml.get_widget("essidSpecButton").set_active(True)
                    #self.xml.get_widget("essidEntry").set_sensitive(True)
                    #self.xml.get_widget("essidEntry").set_text(info["ESSID"])
                #else:
                    #self.xml.get_widget("essidAutoButton").set_active(True)
                    #self.xml.get_widget("essidEntry").set_sensitive(False)
#
                #if info.has_key("Frequency") and info["Frequency"] < 1000:
                    #self.xml.get_widget("channelSpinButton").set_value(int(info["Frequency"]))
#                    
                #if info.has_key("BitRate"):
                    #self.xml.get_widget("rateEntry").set_text(_(info["BitRate"]))
#
                #if info.has_key("Key") and info["Key"] != "off":
                    #self.xml.get_widget("keyEntry").set_text(info["Key"])
                    
        self.on_modeChanged(self.xml.get_widget("modeCombo"))
        self.on_essidAutoButton_toggled(self.xml.get_widget("essidAutoButton"))

        self.xml.get_widget("modeCombo").connect("changed",
                                                 self.on_modeChanged)

    def on_modeChanged(self, entry):
        mode = self.modestore[self.xml.get_widget("modeCombo").get_active()][1]
        if mode == "Managed":
            self.xml.get_widget("channelCombo").set_sensitive(False)
            self.xml.get_widget("rateCombo").set_sensitive(False)
            self.xml.get_widget("rateEntry").set_sensitive(False)
        else:
            self.xml.get_widget("channelCombo").set_sensitive(True)
            self.xml.get_widget("rateCombo").set_sensitive(True)
            self.xml.get_widget("rateEntry").set_sensitive(True)
        self.on_essidAutoButton_toggled(self.xml.get_widget("essidAutoButton"))

    def on_authChanged(self, entry):
        mode = self.authstore[self.xml.get_widget("authCombo").get_active()][1]
        if mode != "off":
            self.xml.get_widget("keyEntry").set_sensitive(True)
        else:
            self.xml.get_widget("keyEntry").set_sensitive(False)

    def on_essidAutoButton_toggled(self, check):
        self.xml.get_widget("essidEntry").set_sensitive(not check.get_active())

    def on_hw_config_page_back(self, druid_page, druid):
        pass
    
    def on_hw_config_page_next(self, druid_page, druid):        
        clist = self.xml.get_widget("hardwareList")

        childs = self.topdruid.get_children()

        if not len(clist.selection):
            self.topdruid.set_page(childs[1])
            return True
        
        self.hw_sel = clist.selection[0]
        
        if (self.hw_sel + 1) == clist.rows:
            self.hwPage = True
            self.topdruid.set_page(childs[2])
        else:
            self.hwPage = False
            self.device.Device = self.devlist[clist.selection[0]]
            self.device.Alias = self.getNextAlias(self.device)
            self.topdruid.set_page(childs[3])

        return True

    def on_hw_config_page_prepare(self, druid_page, druid):
        hardwarelist = NCHardwareList.getHardwareList()
        hardwarelist.updateFromSystem()

        clist = self.xml.get_widget("hardwareList")
        clist.clear()
        self.devlist = []
        for hw in hardwarelist:
            if hw.Type == WIRELESS:
                desc = hw.Description + " (" + hw.Name + ")"
                clist.append([desc])
                self.devlist.append(hw.Name)
                
        clist.append([_("Other Wireless Card")])
        clist.select_row (self.hw_sel, 0)
    
    def on_finish_page_back(self,druid_page, druid):
        pass
        
    def on_finish_page_prepare(self, druid_page, druid):
        self.device.DeviceId = self.device.Device
        wl = self.device.Wireless

        if self.device.Alias:
            self.device.DeviceId = self.device.DeviceId + ":" \
                                   + str(self.device.Alias)

        try: hwaddr = ethtool.get_hwaddr(self.device.Device) 
        except IOError, err:
            pass
        else:
            self.device.HardwareAddress = hwaddr

        s = _("You have selected the following information:") + "\n\n"\
            + _("Device:") + " " + str(self.device.DeviceId) + " "

        hardwarelist = NCHardwareList.getHardwareList()
        for hw in hardwarelist:
            if hw.Name == self.device.Device:
                s = s + "(" + hw.Description + ")"
                break

        s = s + "\n"

        if self.device.BootProto == "static" or self.device.BootProto == "none":
            s = s + _("Address:") + " " + self.device.IP + "\n"\
            + _("Subnet mask:") + " " + self.device.Netmask + "\n"\
            + _("Default gateway address:") + " " + self.device.Gateway + "\n"
        else:
            s = s + _("Automatically obtain IP address settings with:") + " "\
                + self.device.BootProto + "\n" 

        s = s + _("Mode:") + " " + str(wl.Mode) + "\n"
        s = s + _("ESSID (network ID):") + " "
        if not wl.EssId:
            s = s + _("Automatic") + "\n"
        else:
            s = s + str(wl.EssId) + "\n"
        if wl.Mode != "Managed":
            s = s + _("Channel:") + " " + str(wl.Channel) + "\n"
        s = s + _("Transmit rate:") + " " + str(wl.Rate) + "\n" \
            + _("Key: ")

        
        if wl.Key:
            s = s + str(wl.Key) + "\n"
        else:
            s = s + _("encryption disabled") + "\n"

        druid_page.set_text(s)
        
    def on_finish_page_finish(self, druid_page, druid):
        hardwarelist = NCHardwareList.getHardwareList()
        hardwarelist.commit()
        self.devicelist.append(self.device)
        self.device.commit()
        for prof in self.profilelist:
            if prof.Active == False:
                continue
            prof.ActiveDevices.append(self.device.DeviceId)
            break
        self.profilelist.commit()
        self.devicelist.commit()
        
        self.toplevel.destroy()
        gtk.main_quit()

NCDevWireless.setDevWirelessWizard(WirelessInterface)
__author__ = "Harald Hoyer <harald@redhat.com>"

:: 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.0084 ]--