403Webshell
Server IP : 45.162.171.154  /  Your IP : 216.73.216.5
Web Server : Apache
System : Linux vxct2015.avnam.net 5.4.106-1-pve #1 SMP PVE 5.4.106-1 (Fri, 19 Mar 2021 11:08:47 +0100) x86_64
User : lpg.com.ar ( 1041)
PHP Version : 8.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/jailkit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/jailkit/jk_lib.pyc
3

d:a��@s�ddlmZddlZddlZddlZddlZddlZddlZddl	Z	dZ
iZdd�ZdGdd�Z
dHdd	�Zd
d�Zdd
�Zdd�Zdd�Zdd�Zdd�ZdIdd�ZdJdd�ZdKdd�Zdd�ZdLd d!�Zd"d#�Zd$d%�Zd&d'�ZdMd(d)�ZdNd*d+�ZdOd,d-�ZdPd.d/�Z dQd0d1�Z!ddddddgfd2d3�Z"dddddddgfd4d5�Z#d6d7�Z$dRd9d:�Z%d;d<�Z&d=d>�Z'd?d@�Z(dSdAdB�Z)dCdD�Z*dEdF�Z+dS)T�)�print_functionNi�cCs*tj|d�}|dkr&tj|�t|<}|S)N)�	statcache�get�os�lstat)�path�ret�r	�	jk_lib.py�cachedlstat0srcCs�yt|�}Wn0tk
r<|dkr8tjjd|d�dSXtjdd�dkr�|tjdkst|tjt	j
d�jkr�tjjd|d	�dSn4|tjdks�|tjdkr�tjjd|d
�dS|tjtj
@s�|tjtj@o�tj|tj��rtjjd|d�dStj|tj��s�tj|tj��r|tj|�}tt|�t|��|dd�d
k�r�tjjd|d�dSntjjd|d�dSdS)NrzERROR: cannot lstat() �
���bsdZwheelzERROR: z is not owned by root:wheel!
z is not owned by root:root!
z  is writable by group or others!�zusr/z2 is a symlink, please point to the real directory
�z is not a directory!
������rr������r)r�OSError�sys�stderr�write�platform�stat�ST_UID�ST_GIDZgrpZgetgrnamZgr_gid�ST_MODE�S_IWOTH�S_IWGRP�S_ISLNK�S_ISDIRr�readlink�print�str)r�	failquiet�statbuf�targetr	r	r
�path_is_safeBs4$4
r)cCs�tjj|�}t||�}|dkr"|Sx*d
D]"}t|d
|d�}|dkr(|Sq(Wtjj|�}x.|d
kr�t|d�}|dkrz|Stjj|�}q\WdS)z]tests if path is a safe jail, not writable, no writable /etc/ and /lib, return 1 if all is OKr
�etc�usr�var�bin�dev�proc�sbinr�/rr)r*r+r,r-r.r/r0rr)rr�abspathr)�dirname)rr&�retvalZsubdZnpathr	r	r
�chroot_is_safebs



r5cCs&t|�}|tjtjtjB@r"dSdS)zAreturns 1 if the file is setuid or setgid, returns 0 if it is notr
r)rrr�S_ISUID�S_ISGID)rr'r	r	r
�test_suid_sgidvsr8cCs8tjdd�dkr4t|dddddd�tjd|�dS)N��linuxz/etcr)�copy_permissions�
allow_suid�copy_ownershipzldconfig -r )rr�create_parent_pathr�system)Zjailr	r	r
�gen_library_cache}sr@cCs�g}tjd|dtjtjtjdd�}|jj�}tjdkrNt|t�rN|j	dd�}�x�t
|�dk�r�|j�}t
|�dk�r�|ddkr�|d	d
kr�|S|ddkr�|dd
kr�|ddkr�|S|ddks�|ddkr�n�t
|�dk�r|ddk�r|ddk�rn�t
|�dk�rJtj
j|d��r0||dg7}ntd|dd|�nht
|�d	k�r�|dddk�r�tj
j|d��r�||dg7}ntd|d�ntd|dd��ntd|dd��|jj�}tjdkrRt|t�rR|j	dd�}qRW|S)z;returns a list of libraries that the executable depends on zldd T)�shell�stdin�stdoutr�	close_fdsrrzutf-8�replaceZ
staticallyr
Zlinked�notr�dynamic�
executablezlinux-gate.so.1zlinux-vdso.so.1r�foundz!ldd returns non existing library z for r1z$WARNING: failed to parse ldd output N)rrrr)rr)�
subprocess�Popen�PIPErC�readliner�version_info�
isinstance�bytes�decode�len�splitrr�existsr$)rHr4�p�line�sublr	r	r
�lddlist_libraries_linux�s< 
$* 
rXcCs�g}d}tjd|dtjtjtjdd�}|jj�}tjdkrRt|t�rR|j	dd�}�xJt
|�dk�r�|j�}t
|�dk�r^|d|dkr�n�|dd	kr�t
|�d
kr�|ddkr�d
}n�t
|�dk�rH|dk�rtj
j|d
�r�||d
g7}ntd|d
�nF|d
k�r>tj
j|d��r,||dg7}ntd|d�ntd�ntd|dd��ntd|dd��|jj�}tjdkrVt|t�rV|j	dd�}qVW|S)z;returns a list of libraries that the executable depends on rzldd T)rArBrCrrDrzutf-8rE�:ZStart���Namerr9z!ldd returns non existing library z1unknown mode, please report this bug in jk_lib.pyz$WARNING: failed to parse ldd output Nr
)rrrr)rr)rJrKrLrCrMrrNrOrPrQrRrSrrrTr$)rHr4�moderUrVrWr	r	r
�lddlist_libraries_openbsd�s> 




r^cCs�g}tjd|dtjtjtjdd�}|jj�}tjdkrNt|t�rN|j	dd�}�x<t
|�dk�r�|j�}t
|�dk�r(t
|�dkr�|dd	t
|�d�|d
kr�n�t
|�dkr�|dd
kr�|ddkr�|St
|�dk�rtj
j|d��r�||dg7}ntd|d�ntd|d	d�d�n8|d	t
|�d�|d
k�rHntd|d	d�d�|jj�}tjdkrRt|t�rR|j	dd�}qRW|S)z;returns a list of libraries that the executable depends on zldd T)rArBrCrrDrrzutf-8rEr
NrYr[rrFrrGz!ldd returns non existing library z%WARNING: failed to parse ldd output "�")rrrr)rr)rJrKrLrCrMrrNrOrPrQrRrSrrrTr$)rHr4rUrVrWr	r	r
�lddlist_libraries_freebsd�s0 
,$
r`cCs�tjdd�dkrt|�Stjdd�dkr4t|�Stjdd�dkrNt|�Stjdd�dkrvt|�}|dg7}|St|�}|dd	d
g7}|SdS)Nr9r:rZZopenbsdZfreebsd�sunosz/lib/ld.so.1z/usr/libexec/ld.soz/usr/libexec/ld-elf.so.1z/libexec/ld-elf.so.1)rrrXr^r`)rHr4r	r	r
�lddlist_libraries�s
rb�cCs|dkrdSt|�}d}|s0|d}|dd	�}d}d}x�|D]�}tjj||�}t|�}tj|j�r>|d7}tj|�}	|	ddkr�tjj	||	�}q>tjj	tjjtjj
|�|	��}
t|�dkr�|
dt|��|kr�tj
jd|
d�td��|
}q>Wtjj||�S)
Nr1rcr
rzERROR: symlink z points outside jail, ABORT
zSymlink points outside jailrr)�
split_pathrr�joinrrr!�st_moder#�normpathr3rRrrr�	Exception)r�chroot�include_file�spath�basenamer�
doscounter�entry�sb�realpath�tmpr	r	r
�resolve_realpaths.

 rrc
Cs&t|�}|rd}|}ntjj|�}tjj|�}d}x�|dkoB|dk�rt|�}tj|j�r�|d7}tj	|�}|ddkr�||}|d
d�dkr�|dd�}nVtjj
tjjtjj|�|��}	|dkr�|	d|�|kr�tj
jd|	d�td	��|	}n tjj|�d|}tjj|�}d}q4Wd|S)zNwill return the same path that contains not a single symlink directory elementrcrr1�dr
NzERROR: symlink z points outside jail, ABORT
zSymlink points outside jailrr)rRrrrlr3rrr!rfr#rgrerrrrh)
rrirjZ	chrootlenZdonepathZtodopathrmrorprqr	r	r
�OLDresolve_realpath&s2
rtcCs�tj|�}tj|tj�}|sN|tjtjB@rNtd|�|tj@tj@}tj||tj|tj	f�|r�tj
||tj|tj�tj
||�dS)Nz,removing setuid and setgid permissions from )rr�S_IMODErr6r7r$�utime�ST_ATIME�ST_MTIME�chownrr�chmod)�src�dst�
be_verboser<r=�sbufr]r	r	r
�copy_time_and_permissionsFs
rcCs:|}x0tjj|�r4|dkp"|dkr4tjj|�}qW|S)zsThis function tests if a directory exists, if not tries the parent etc. etc. until it finds a directory that existsr1rc)rrrTr3)rrqr	r	r
�!OLDreturn_existing_base_directory[s"r�r
c+Cs6|}|dd�dkr |dd�}y"t|||�}tjj|�r@dSWntk
rVYnXt||�}t|�t|�}	|jd|	d�}
|
dkr�t|�}
�x�|
dk�r0|	d|
kr�|
}	�nDyt|d|
��}WnTtk
�r}z6|j	\}
}t
jjd|d|
�d|d�PWYdd}~XnXt
j|j��r6tj|d|
��}t||d|
�|�}|�rptd|d|�ytj||�WnZtk
�r�}z<|j	\}}
|d	k�r�n t
jjd
||d|
�d�WYdd}~XnX|ddk�r�t||||||�n6tj|d|
�d�}t||d|d�|||||�n�t
j|j��r�t||d|
�|�}|�rltd|�tj|t�|�r�yt|d|
�||||�WnZtk
�r�}z<|j	\}
}t
jjd
|d|
�d|d|d�WYdd}~XnX|
}	|
t|�k�rd}
q�|jd|	d�}
|
dkr�t|�}
q�WdS)zucreates the directory and all its parents id needed. copy_ownership can only be used if copy permissions is also usedr
Nr1zERROR: failed to lstat(z):rzCreating symlink z to �z ERROR: failed to create symlink rzCreating directory z2ERROR: failed to copy time/permissions/owner from z: rrrrrr)rrrrrTrZreturn_existing_base_directoryrR�findr�argsrrrrr!rfr#r$�symlinkr>�string�rfindr"�mkdir�dir_moder)rirr}r;r<r=�	directoryZchrootdirectoryrqZoldindx�indxro�e�_�strerror�realfile�
chrootname�errnoZindx2r	r	r
�OLD_create_parent_pathbsp
$

2$
>r�cCsDd}d}x6|D].}|dks"|dkr*||7}|dkr8d}qd}qW|S)Nrcrr1r
r	)ZinstringZ	outstringZslash�ir	r	r
�fix_double_slashes�s
r�cCsFg}ttjj|��}x,|dkr@|jdtjj|��tjj|�}qW|S)Nr1r)r�rrrg�insertrlr3)rr�nextr	r	r
rd�s
rdcCs2t|�dkrdSd}x|D]}|d|7}qW|S)Nrr1rc)rR)rkrrnr	r	r
�	join_path�s
r�cCs�t|�}|}d}xV|t|�krftjj|||�}	tjj|	�s>Pt|	|d�}
tjj|
�sXP|
}|d7}qW�x|t|�k�r�t|d|d��}tjj|||�}yt|�}
WnFt	k
r�}z*|j
\}}tjj
d|d|d�dSd}~XnXtj|
j��r�|�rtd|�tj|t�|�rxyt|||||�WnZt	k
�r�}z<|j
\}}tjj
dtdt�dtd	|d�WYdd}~XnXn�tj|
j��rxtj|�}|�r�td
|d|�tj||�|ddk�r�t||||||�}n�tjjtjjtjj|�|��}
t|�dk�rV|
dt|��|k�rVtjj
d|
d
�td��|
t|�d�}t||||||�}|}|d7}qlW|S)Nrr
zERROR: failed to lstat(z):rzCreate directory z2ERROR: failed to copy time/permissions/owner from z to z: zCreating symlink r1zERROR: symlink z points outside jail, ABORT
zSymlink points outside jail)rdrRrrrerTrrr�rrr�rrrrr"rfr$r�r�rr�r�r�r!r#r�r>rgr3rh)rirr}r;r<r=rkZ	existpathr�Ztmp1rqZorigpathZjailpathror�r�r�r�r	r	r
r>�s^

@
$r>c
 Cs�y0|rtd|�tj|�t|||ddd�WnRttfk
r�}z2|j\}}tjj	d|d|d|d�dSd}~XnX�x$tj
|�D�]\}}}x�|D]�}	|r�td	|d
|	d|d
|	�yBtj|d
|	|d
|	�t|d
|	|d
|	|ddd�Wq�ttfk
�rv}zB|j\}}tjj	d|d
|	d|d
|	d|d�dSd}~Xq�Xq�Wx*|D]"}	t
|d
|	|d
|	|��q�Wq�WdS)NzCreating directoryrr
)r<r=z)ERROR: copying directory and permissions z to z: rzCopying r1z$ERROR: copying file and permissions )r$rr�r�IOErrorrr�rrr�walk�shutil�copyfile�#move_dir_with_permissions_and_owner)
�srcdir�dstdirr}r�r�r��root�dirs�files�namer	r	r
�#copy_dir_with_permissions_and_owners.

$
$&
4
&r�cCs�t|||�}|dkr�|dkr(td|�ytj|�Wq�ttfk
r�}z,|j\}}tjj	d|d|d�WYdd}~Xq�Xntd|d|�dS)Nr
z!Removing original home directory zERROR: failed to remove z: rzNot everything was copied to z, keeping the old directory )
r�r$r�Zrmtreerr�r�rrr)r�r�r}r4r�r�r�r	r	r
r�s
0r�c
Cs�d}|dkrFytj||�d}Wn$td|d|d�YnX|dkr�y"tj||�t|||||d�WnTttfk
r�}z4|j\}}	t	j
jd|d|d|	d	�WYd
d
}~XnXd
S)zXcopies/links the file and the permissions (and possibly ownership and setuid/setgid bitsr
rzLinking z to z failed, will revert to copying)r<r=z$ERROR: copying file and permissions z: rN)r�linkr$r�r�rr�rr�rrr)
r{r|r}�try_hardlinkr<�retain_ownerZdo_normal_copyr�r�r�r	r	r
�copy_with_permissions)s
r�c
Cs�t|tjj|�|dddd�t|||�}tjj|�rJtd|d�dStj|�}�ytj	dd�dkr�|j
d}|j
d}nTtj	d	kr�tjd
kr�|j
d}|j
d}q�|j
d
}|j
d
}n|j
d}|j
d}tj|j
�r�d}n&tj|j
�r�d
}ntd|d�dS|dk�r&td||�tjtjdd|t|�t|�t|��}	t||d|d�WnDtd|d�td|d�td|d�td�YnXdS)Nr
r)r;r<r=zDevice z does exist alreadyr9r:�Zsunos5i���i�c�bz	WARNING, z# is not a character or block devicezCreating device �mknod)r<r=zFailed to create device z(, this is a know problem with python 2.1zuse "ls -l z6" to find out the mode, major and minor for the devicezuse "mknod z' mode major minor" to create the devicez<use chmod and chown to set the permissions as found by ls -l)r>rrr3rrrTr$rrr�st_rdevZmaxint�S_ISCHRrf�S_ISBLK�spawnlp�P_WAITr%r)
rirr}r�Z
chrootpathro�major�minorr]rr	r	r
�copy_device;sB








$r�c	Cs�f}	x�tj|�D]�}
tjj||
�}yZt|�}tj|j�rft|||d||d�t	|||||||||�	}n|	tjj||
�f7}	Wqt
k
r�}
z$tjj
d|d|
jd�WYdd}
~
XqXqWt||	|||||||�	}|S)zbcopies a directory and the permissions recursively, possibly with ownership and setuid/setgid bitsr
)r}r;r<r=z)ERROR: failed to investigate source file z: rN)r�listdirrrerrr"rfr>�copy_dir_recursiverrrrr��copy_binaries_and_libs)ri�dir�force_overwriter}�
check_libsr�r<r��handledfilesZfiles2rnrqr~r�r	r	r
r�cs4r�c
KCs|d"dkr|dd#�}�x�|D�]�}
|
|	kr0q yt|
�}Wn�tk
r�}z�|jdkr�|dkr�tj|
�}
t|
�dkr�t||
|||||d|	d�	}	q�|r�td|
d�q�|r�td	|
d
�ntjj	d|
d|j
d
�w WYdd}~XnXt|tj
j|
�|d||d�ttj
j|d|
�|�}yt|�}d}WnXtk
�r�}z:|jdk�r\d}n"tjj	d||
d|j
d
�WYdd}~XnX|dk�r�|�r�tj|j��r�|�r�td|d�q |�r�|�rttj|j��rT|�r�td|d�ytj|�WnJtk
�rP}z,tjj	d|d|j
d|d
�WYdd}~XnXntj|j��r�td|d�n&tj|j��r�n|r td|d�q t|tj
j|
�|d||d�tj|j��r�tj|
�}|�rD|�r�td|d�ytj|�WnJtk
�rB}z,tjj	d|d|j
d|d
�WYdd}~XnXy$td|d|�tj||�Wntk
�r~YnX|	j|
�|ddk�r�tj
jtj
jtj
j|
�|��}t||g|||||||	�	}	n�tj|j��r�t||
|||||||	�	}	n�tj|j��rV|�r$td|
d|�ntd|
d|�t|
|||||�|	j|
�n@tj|j��srtj|j��r�t||
||�ntjj	d|
d�tj |tj!�}|r |
j"d�d$k�s�|
j"d �d%k�s�|tj#tj$Btj%B@r t&|
�}t||||d||	d!�}	q W|	S)&z>copies a list of executables and their libraries to the chrootr
r1Nrr)r�r��try_glob_matchingr�zSource file(s) z
 do not existzSource file z does not existz)ERROR: failed to investigate source file z: r)r;r<r=z.ERROR: failed to investigate destination file rcz" already exists, will not touch itzDestination file z$ exists, will delete to force updatezERROR: failed to delete z
cannot force update zDestination dir z existszDestination symlink zCreating symlink z to zTrying to link zCopying zFailed to find how to copy z= into a chroot jail, please report to the Jailkit developers
�libz.so)r�rrrr)'rrr��globrRr�r$rrrr�r>rrr3rrrgrr"rf�S_ISREG�unlinkr!r#r��appendrer�r�r�r�r�rurr��S_IXUSR�S_IXGRP�S_IXOTHrb)riZbinarieslistr�r}r�r�r<r�r�r��fileror�rZchrootrfileZchrootsbZchrootfile_existsr�r]Zlibsr	r	r
r��s�

4 :
8
:r�cCsBg}|j||�r>|j||�}x |jd�D]}||j�g7}q(W|S)z�retrieves a comma separated option from the configparser and splits it into a list, returning an empty list if it does not exist�,)Z
has_optionrrS�strip)Z	cfgparserZsectionnameZ
optionnamer4Zinputstrrqr	r	r
�config_get_option_as_list�sr��ERRORcCs,td�t|d|�|�tj|�dS)Nrcz: )r$r�exit)Zexitno�messageZ	usagefunc�typer	r	r
�
clean_exit�sr�c	Cs�yt|d�}Wn
dS|j�}tjdkrBt|t�rB|jdd�}xft|�dkr�|jd�}t|�|kr~|||kr~|j	�dS|j�}tjd	krDt|t�rD|jdd�}qDWdS)
N�rrrzutf-8rErYr
)rr)rr)
�openrMrrNrOrPrQrRrS�close)�itemZnum�filename�fdrV�pwstructr	r	r
�test_numitem_exist�s 
r�cCst|d|�S)Nr)r�)�userZ
passwdfiler	r	r
�test_user_existsr�cCst|d|�S)Nr)r�)�groupZ	groupfiler	r	r
�test_group_existsr�c	Cs6|ddkr|dd�}t|d|dddd�tjdd�dkr�t|d	d
�j�t|dd
�j�t|dd
�j�t|d
d
�j��n\tjj|d	�s�t|d	d�}�n(t|d	d�}|j�}tj	dkr�t
|t�r�|jdd�}x�t
|�dk�r�|jd�}t
|�dk�r�|d|k�s&|d|k�r�|�rHtd|dd|d	�y|j|d�Wntk
�rpYnXy|j|d�Wntk
�r�YnX|j�}tj	d kr�t
|t�r�|jdd�}q�W|jdd�t
|�dk�r�td	d�}|j�}tj	d!k�rt
|t��r|jdd�}x�t
|�dk�r�|jd�}t
|�dk�r�|d|k�s\|d|k�r�|j|�|�r�td|dd|d	�|d|k�r�||dg7}|j�}tj	d"k�rt
|t��r|jdd�}�qW|j�|j�tjj|d��s
t|dd�}�n2t|dd�}|j�}tj	d#k�rDt
|t��rD|jdd�}x�t
|�dk�r.|jd�}t
|�dk�r�|d|k�s�|d|k�r�|�r�td|dd|d�y|j|d�Wntk
�r�YnXy|j|d�Wntk
�r�YnX|j�}tj	d$k�rFt
|t��rF|jdd�}�qFW|jdd�t
|�dk�r*tdd�}|j�}tj	d%k�r�t
|t��r�|jdd�}x�t
|�dk�r |jd�}t
|�dk�r�|d|k�s�|d|k�r�|j|�|�r�td|dd|d�|j�}tj	d&k�r�t
|t��r�|jdd�}�q�W|j�|j�dS)'Nr
r1z/etc/r)r;r<r=rrZrz/etc/passwd�az/etc/spwd.dbz/etc/pwd.dbz/etc/master.passwd�wzr+rzutf-8rErYrzuser z exists in r�z
writing user z to z
/etc/groupzgroup zwriting group rr)rr)rr)rr)rr)rr)rr)rr)rr)r>rrr�r�rr�isfilerMrNrOrPrQrRrSr$�remove�
ValueError�seekr)	riZusers�groupsr}Zfd2rVr�r�Zgroupstructr	r	r
�init_passwd_and_groups�







r�cCsLtjd�}|jd�}x2|D]*}tjj||�}tjj|�rtjj|�SqWdS)N�PATHrY)r�getenvrSrrerTr2)r�Zsearch_path�pathsrZjoinedr	r	r
�find_file_in_pathxs


r�cCsDg}x:|D]2}|ddkr&|j|�q
t|�}|r
|j|�q
W|S)Nrr1)r�r�)r�Zpaths2rqZtmp2r	r	r
�find_files_in_path�s
r�)r)r)rcr)rcr)rrr)rr
rr)rr
rr)r)r)rr
rr)r
r)r�)r),Z
__future__rZos.pathrr�rrr�r�rJr�rrr)r5r8r@rXr^r`rbrrrtrr�r�r�rdr�r>r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	r	r	r
�<module> sR
 
**!

 

D
>



(!h	

c	

Youez - 2016 - github.com/yon3zu
LinuXploit