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


Viewing file:     m_syslog.py (5.64 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# -*- Mode: Python; tab-width: 4 -*-

# ======================================================================
# Copyright 1997 by Sam Rushing

#                         All Rights Reserved

# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose and without fee is hereby
# granted, provided that the above copyright notice appear in all
# copies and that both that copyright notice and this permission
# notice appear in supporting documentation, and that the name of Sam
# Rushing not be used in advertising or publicity pertaining to
# distribution of the software without specific, written prior
# permission.

# SAM RUSHING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
# NO EVENT SHALL SAM RUSHING BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# ======================================================================

"""socket interface to unix syslog.
On Unix, there are usually two ways of getting to syslog: via a
local unix-domain socket, or via the TCP service.

Usually "/dev/log" is the unix domain socket.  This may be different
for other systems.

>>> my_client = syslog_client ('/dev/log')

Otherwise, just use the UDP version, port 514.

>>> my_client = syslog_client (('my_log_host', 514))

On win32, you will have to use the UDP version.  Note that
you can use this to log to other hosts (and indeed, multiple
hosts).

This module is not a drop-in replacement for the python
<syslog> extension module - the interface is different.

Usage:

>>> c = syslog_client()
>>> c = syslog_client ('/strange/non_standard_log_location')
>>> c = syslog_client (('other_host.com', 514))
>>> c.log ('testing', facility='local0', priority='debug')

"""

# TODO: support named-pipe syslog.
# [see ftp://sunsite.unc.edu/pub/Linux/system/Daemons/syslog-fifo.tar.z]

# from <linux/sys/syslog.h>:
# ===========================================================================
# priorities/facilities are encoded into a single 32-bit quantity, where the
# bottom 3 bits are the priority (0-7) and the top 28 bits are the facility
# (0-big number).  Both the priorities and the facilities map roughly
# one-to-one to strings in the syslogd(8) source code.  This mapping is
# included in this file.
#
# priorities (these are ordered)

LOG_EMERG        = 0        #  system is unusable 
LOG_ALERT        = 1        #  action must be taken immediately 
LOG_CRIT        = 2        #  critical conditions 
LOG_ERR            = 3        #  error conditions 
LOG_WARNING        = 4        #  warning conditions 
LOG_NOTICE        = 5        #  normal but significant condition 
LOG_INFO        = 6        #  informational 
LOG_DEBUG        = 7        #  debug-level messages 

#  facility codes 
LOG_KERN        = 0        #  kernel messages 
LOG_USER        = 1        #  random user-level messages 
LOG_MAIL        = 2        #  mail system 
LOG_DAEMON        = 3        #  system daemons 
LOG_AUTH        = 4        #  security/authorization messages 
LOG_SYSLOG        = 5        #  messages generated internally by syslogd 
LOG_LPR            = 6        #  line printer subsystem 
LOG_NEWS        = 7        #  network news subsystem 
LOG_UUCP        = 8        #  UUCP subsystem 
LOG_CRON        = 9        #  clock daemon 
LOG_AUTHPRIV    = 10    #  security/authorization messages (private) 

#  other codes through 15 reserved for system use 
LOG_LOCAL0        = 16        #  reserved for local use 
LOG_LOCAL1        = 17        #  reserved for local use 
LOG_LOCAL2        = 18        #  reserved for local use 
LOG_LOCAL3        = 19        #  reserved for local use 
LOG_LOCAL4        = 20        #  reserved for local use 
LOG_LOCAL5        = 21        #  reserved for local use 
LOG_LOCAL6        = 22        #  reserved for local use 
LOG_LOCAL7        = 23        #  reserved for local use 

priority_names = {
    "alert":    LOG_ALERT,
    "crit":        LOG_CRIT,
    "debug":    LOG_DEBUG,
    "emerg":    LOG_EMERG,
    "err":        LOG_ERR,
    "error":    LOG_ERR,        #  DEPRECATED 
    "info":        LOG_INFO,
    "notice":    LOG_NOTICE,
    "panic":     LOG_EMERG,        #  DEPRECATED 
    "warn":        LOG_WARNING,        #  DEPRECATED 
    "warning":    LOG_WARNING,
    }

facility_names = {
    "auth":        LOG_AUTH,
    "authpriv":    LOG_AUTHPRIV,
    "cron":     LOG_CRON,
    "daemon":    LOG_DAEMON,
    "kern":        LOG_KERN,
    "lpr":        LOG_LPR,
    "mail":        LOG_MAIL,
    "news":        LOG_NEWS,
    "security":    LOG_AUTH,        #  DEPRECATED 
    "syslog":    LOG_SYSLOG,
    "user":        LOG_USER,
    "uucp":        LOG_UUCP,
    "local0":    LOG_LOCAL0,
    "local1":    LOG_LOCAL1,
    "local2":    LOG_LOCAL2,
    "local3":    LOG_LOCAL3,
    "local4":    LOG_LOCAL4,
    "local5":    LOG_LOCAL5,
    "local6":    LOG_LOCAL6,
    "local7":    LOG_LOCAL7,
    }

import socket

class syslog_client:
    def __init__ (self, address='/dev/log'):
        self.address = address
        if type (address) == type(''):
            self.socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM)
            self.socket.connect (address)
            self.unix = 1
        else:
            self.socket = socket.socket (socket.AF_INET, socket.SOCK_DGRAM)
            self.unix = 0

    # curious: when talking to the unix-domain '/dev/log' socket, a
    #   zero-terminator seems to be required.  this string is placed
    #   into a class variable so that it can be overridden if
    #   necessary.

    log_format_string = '<%d>%s\000'

    def log (self, message, facility=LOG_USER, priority=LOG_INFO):
        message = self.log_format_string % (
            self.encode_priority (facility, priority),
            message
            )
        if self.unix:
            self.socket.send (message)
        else:
            self.socket.sendto (message, self.address)

    def encode_priority (self, facility, priority):
        if type(facility) == type(''):
            facility = facility_names[facility]
        if type(priority) == type(''):
            priority = priority_names[priority]            
        return (facility<<3) | priority

    def close (self):
        if self.unix:
            self.socket.close()


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