403Webshell
Server IP : 162.241.219.206  /  Your IP : 216.73.217.14
Web Server : Apache
System : Linux box5669.bluehost.com 5.14.0-687.15.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 11 08:51:45 EDT 2026 x86_64
User : signavd5 ( 2863)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/libexec/kcare/python/kcarectl/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/libexec/kcare/python/kcarectl/__pycache__/libcare.cpython-39.pyc
a

��;j�b�@sddlZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZddlmZmZmZdZdZdZdZ d	Z!d
d
d
d�Z"dd
e#dg�fdde#dg�fgZ$ej%dd��Z&dd�Z'dd�Z(dd�Z)Gdd�de*�Z+dd�Z,dNdd�Z-dd�Z.d d!�Z/d"d#�Z0dOd%d&�Z1d'd(�Z2e)d)d*��Z3e)d+d,��Z4e)d-d.��Z5d/d0�Z6d1d2�Z7d3d4�Z8d5d6�Z9d7d8�Z:dPd9d:�Z;e)e,ej<d;d<����Z=d=d>�Z>ej<e�?d?�ej@e)e,e
jAddfd@dA������ZBe)dBdC��ZCdDdE�ZDdFdG�ZEdQdHdI�ZFdJdK�ZGdLdM�ZHdS)R�N�)�auth�capabilities�config�config_handlers�	constants�errors�fetch�	log_utils�platform_utils�
process_utils�selinux�server_info�update_utils�utils)�	HTTPError�json_loads_nstr�urlquotez!/usr/libexec/kcare/libcare-client)z/run/libcare/libcare.sockz/var/run/libcare.sockz /var/cache/kcare/libcare_patchesz /var/cache/kcare/libcare_cvelistz&/etc/sysconfig/kcare/libcare.logrotate�db�ZmysqldZmariadbdZpostgresZubuntuz16.�
libnss_dnsz7.c	s�ttj�}t��z t��}|d��}|d}Wn*tyZtD]\}}}�|O�qBYn<0|d}tD],\}}}|dus�||vrh|�	|�rh|�q�qh�fdd�|D�S)Nrr�.csg|]}|�vr|�qS�r)�.0�lib�Zblacklistedr�-/usr/libexec/kcare/python/kcarectl/libcare.py�
<listcomp>R�z/_get_effective_libcare_libs.<locals>.<listcomp>)
�listr�LIBCARE_LIBS�setr�
get_distro�lower�	Exception�LIBCARE_LIBS_BLACKLIST�
startswith)	�libsZdistro_info�distro�version�_Zbl_libsZversion_dottedZ	bl_distroZ
bl_versionrrr�_get_effective_libcare_libs;s
r+cCsgd�t�d�S)Nr)rr')r+rrrr�get_userspace_mapUs�r,cGstjjtjd|g|�R�S)N�	userspace)�os�path�joinr�PATCH_CACHE)�libname�partsrrr�get_userspace_cache_path\sr4cs�fdd�}|S)Ncs�z��|i|��Wztd�WStyT}z tjd�|�dd�WYd}~Sd}~00Sztd�Wq�ty�}z tjd�|�dd�WYd}~q�d}~00nHztd�Wn8ty�}z tjd�|�dd�WYd}~n
d}~000dS)N�
clearcachez$Libcare cache clearing failed: '{0}'F��	print_msg)�libcare_clientr$r
�logerror�format)�args�kwargs�err��clblrr�wrapperas*�,�z$clear_libcare_cache.<locals>.wrapperr�r?r@rr>r�clear_libcare_cache`s
rBcs0eZdZd�fdd�	Zd	dd�Zdd�Z�ZS)
�UserspacePatchLevelNcst||��||�S�N)�super�__new__)�clsr2�buildid�level�baseurl��	__class__rrrFoszUserspacePatchLevel.__new__cCs||_||_||_||_dSrD)rIr2rHrJ)�selfr2rHrIrJrrr�__init__rszUserspacePatchLevel.__init__cGst|j|jt|�g|�R�SrD)r4r2rH�str)rMr3rrr�
cache_pathxszUserspacePatchLevel.cache_path)N)N)�__name__�
__module__�__qualname__rFrNrP�
__classcell__rrrKrrCns
rCcsdd����fdd�}|S)NcSs�d\}}z�|durt�}i}g}t|�D],}|�dd�||�d�<|�|�dg��q(tj|dd�}d	�d
d�|��D��}d	�t|��}Wtj	t
|dd
�tj	t|dd
�n"tj	t
|dd
�tj	t|dd
�0dS)z(KPT-1543 Save info about applied patches)�rUN�latest-versionrU�package�patches�cve)�	cve_field�
cSsg|]}d�|��qS)� �r0)r�recrrrr�rzLrefresh_applied_patches_list.<locals>.save_current_state.<locals>.<listcomp>T)�
ensure_dir)�
_libcare_info�_get_patches_info�get�extendr�extract_unique_cvesr0�items�sorted�atomic_write�LIBCARE_PATCHES�LIBCARE_CVE_LIST)�infoZversionsZcvesZpackagesZall_patchesr^Zcves_setrrr�save_current_state}s �z8refresh_applied_patches_list.<locals>.save_current_statecs0d}z�|i|��}|W�|�S�|�0dSrDr)r;r<rj�r?rkrrr@�s�z-refresh_applied_patches_list.<locals>.wrapperrrArrlr�refresh_applied_patches_list|srmc
Cs�tjpd}t|�}t|���}t�t�|d�|||d�}|dt�	d|�7}t�|d�}|rlt
j�d||�}i}|r�d|i|d	<z t
�tj�|fd
di|��}Wn�tjy�|r�tjd�||�dd
�YdStjt||�dd��YnNt�y6}	z4|	jdk�r |�r tjd�|�dd���WYd}	~	n
d}	~	00t�|j�tt� |�!���}
|
�dg�}t"�#|��s~t�$d�|���t%|||
d|
�d��}t&|
d�}
t|||
d�}t
j�'|��r�t
j�(|�dk�r<t�|
d�}zt
j)||tj*t
�+|�d�Wn>t�y:}	z$|	jdv�r$t�,d���WYd}	~	n
d}	~	00t|||
�}dd|d |d!g}t-j.|ddd"�\}}}|�r�tjd#�|||�d$d��t||d%�}t
j�/|��s�t
j�0|��r�t�|�t
�1|
|d&�t
�2|d&|�|S)'N�main�uz	latest.v1z?info=�updater'�tagsZSticky�headers�
check_licenseFz;No libcare patchset available for {0} at tag {1}, skipping.r6T)�
ignore_errorsi�z8Invalid sticky patch tag {0}: server rejected the value.�invalid lib sticky patch��statusrzkLatest LibCare patchset for {0} is incompatible with the current kernecare package version, please upgrade.rIrJzpatch.tar.gzrZ	patch_url)�check_signature�hash_checker)i�i�zKC+ licence is required�tarZxfz-Cz--no-same-owner��catch_stdout�catch_stderrz(Patches unpacking error: '{0}' '{1}' {2}zpatches unpacking error�latestz.tmp)3r�PREFIXr�stripr�get_patch_server_url�LIBNAME_MAPrbrZencoded_server_lib_infor.r/r0r	�wrap_with_cache_keyr�urlopen_authr�NotFoundr
�loginfor:�shutil�rmtreer4r�code�
KcareErrorr�set_feature_flags_from_headersrrr�nstr�readr�has_lc_capabilities�CapabilitiesMismatchrCrO�exists�getsize�	fetch_url�
USE_SIGNATURE�get_hash_checker�NoLibcareLicenseExceptionr�run_command�islink�isdir�symlink�rename)r2�build_id�patch_level�tag�prefix�url�	cache_dstZextra_kwargs�response�ex�meta�required_capabilitiesrI�plevelZ
patch_path�dst�cmdr��stdout�stderrZ	link_namerrr�fetch_userspace_patch�s|
 
���� 
�
r�cCsL|t_|st�tj|rdndd�|r0t�tj�d|r@dnd�dS)N�FALSE�YES)�LIBCARE_DISABLEDzlibcare service is �enabled�disabled)	rr��libcare_server_stopr�
update_config�libcare_server_startr
�kcarelogrj)r�rrr�set_libcare_status�sr�cCs�tjstj�tj�r^t�tjddg�t�tjddg�t�tjddg�t�tjddg�n6zt�dd�ddg}Wnt	y�YdS0t�|�dS)N�stop�libcare.socket�libcare.service�reset-failed�libcare�service�z
/usr/sbin/z/sbin/)
r�SKIP_SYSTEMCTL_CHECKr.r/r��	SYSTEMCTLrr��find_cmdr$�r�rrrr��sr�cCs�tjstj�tj�r�tjtjdddgddd�\}}}|dkr@dSt�tjddg�t�tjddg�t�tjd	d
g�t�tjd	dg�t�tjddg�n@t�r�dSzt�	dd
�d
dg}Wnt
y�YdS0t�|�dS)Nz	is-activez--quietr�Tr{rr�r�r�r��startr�r�)rr�r.r/r�r�rr��libcare_server_startedr�r$)r�r*r�rrrr�s(�r�Tc
s�d�dd�t|pg�D��}ddg}�s6|dd|g7}zt|�}Wn8tyz}z tjd�|�d	d
��WYd}~n
d}~00g}|�d�D]0}|r�z|�t	�
|��Wq�ty�Yq�0q�dd
�|D�}|D]&}t�fdd�|d�
�D��|d<q�|S)N�|css|]}d�t�|��VqdS)z({0})N)r:�re�escape)r�procrrr�	<genexpr>$rz _libcare_info.<locals>.<genexpr>rjz-jz-lz-rz/Gathering userspace libraries info error: '{0}'zuserspace libs info errorrvr[cSs$g|]}|�d�|�d�|d��qS)�comm�pid)r�r�r')�pop)r�linerrrr:rz!_libcare_info.<locals>.<listcomp>c3s&|]\}}d|vs�s||fVqdS)�patchlvlNr)r�k�v��patchedrrr�=rr')r0rfr8r$rr�r:�split�append�json�loads�
ValueError�dictre)r��limitZregexpr��linesr=�resultr�rr�rr` s&*$r`c
Cs�t�}|D]0}|d��D]\}}|�|d|df�qq
g}t�}|D]j}|D]`\}}	t||t|	�d�}
tj�|
�rRt	|
d�� }|�
t�|��Wd�qR1s�0YqRqJ|S)Nr'rHr�z	info.json�r)
r!re�addr,r4rOr.r/�isfile�openr�r��load)rjrXr^r*�datar��umapr�r�r�Zpatch_info_filename�fdrrrraBs2racCs
tt��SrD)rar`rrrr�libcare_patch_info_basicRsr�cCs"t�}|st�d�t�d|i�S�NzNo patched processes.r�)r�r
r9r��dumps�r�rrr�libcare_patch_infoWs
r�cCs"t�}|st�d�t�d|i�Sr�)r`r
r9r�r�r�rrr�libcare_info_s
r�cCs*i}t�D]}|�dd�||�d�<q
|S)NrVrUrW)r�rb)r�r^rrr�_libcare_versiongs
r�cCs*t���D]\}}|�|�r
|Sq
dS)NrU)r�rer&)r2rWr)rrr�libcare_versionns

r�cCsd�dd�|D��dS)Nrcss|]}t�|�dVqdS)�N)r�bstr)r�prrrr�vrz(libcare_client_format.<locals>.<genexpr>r�r])�paramsrrr�libcare_client_formatusr�cCs,tD]}tj�|�r|Sqt�d��dS)NzLibcare socket is not found.)�LIBCARE_SOCKETr.r/r�rr�)Zlibcare_socketrrr�get_available_libcare_socketys
r�cGs�tjrt�d��t�tjtjd�}|�d�d}z�|�t	��|�tj
�t|�}t�
dj|d��|�|�|�d�}|s~q�||7}qn|�dd	�}t�
d
j|d��|W|��S|��0dS)NzLibcare is disabled.r�
rzLibcare socket send: {cmd}r�izutf-8�replacez!Libcare socket recieved: {result}r�)rr�rr��socket�AF_UNIX�SOCK_STREAM�
settimeout�connectr��LIBCARE_SOCKET_TIMEOUTr�r
�logdebugr:�sendall�recv�decode�close)r��sock�resr�r�r�rrrr8�s*




�r8cCs|rx|D]j}td||�}tj�|�s&qztdd|�Wqtyp}z"tjd�||�dd��WYd}~qd}~00qdS|D]�}ztdt|��Wn8ty�}z tjd�|�d	d��WYd}~n
d}~00ztd�Wq|t�y}z tjd
�|�dd��WYd}~q|d}~00q|dS)Nrqrpz	--storagez3Userspace patch applying error (storage={0}): '{1}'zuserspace patch apply errorrvZstoragez(Userspace storage switching error: '{0}'zuserspace storage switch errorz%Userspace patch applying error: '{0}')	r4r.r/r�r8r$rr�r:)r�r�r�Zstorage_pathr=rrr�libcare_patch_apply�s,
�*r�c
CsJztd�Wn8tyD}z tjd�|�dd��WYd}~n
d}~00dS)N�unloadz&Userspace patch unloading error: '{0}'zuserspace patch unload errorrv�r8r$rr�r:�r=rrr�libcare_unload�src
CsFztd�Wn4ty@}zt�d�|���WYd}~n
d}~00dS)z;Reload libcare-server plugin without restarting the server.ZrepluginzUserspace replugin error: '{0}'Nrrrrr�libcare_replugin�srr�c
Cs�t�|tjkrtjsdSt�}|dur4t|���}g}|D]}|�|�	|g��q<|slt
�d�|��dSt
||d�\}}}}	|r�t�d��|s�t
�d�dSt�tj�tjd��t�zt||d�Wn@tj�y}
z$t
�t|
��t�d��WYd}
~
n
d}
~
00t�}t|�}ttd	d
�|D����s8dSt
�dj|	d��t
�d
j|d��tdd
�|��D��}
tdd
�|	��D��}|
|}tdd
�|��D��}t
�djt |�|d��|�!�D] \}}t
�d�|t |����q�|S)z0Patch userspace processes to the latest version.NzNo such userspace patches: {0})r�r�z8There were errors while patches downloading (unpacking).zNo patches were found.r-�r�z)There were errors while patches applying.css|]}|dVqdS)r'Nr)r�itemrrrr�rz&do_userspace_update.<locals>.<genexpr>zPatched before: {before})�beforezPatched after: {after})�aftercss|]}|D]
}|Vq
qdSrDr�rrer�rrrr�rcss|]}|D]
}|Vq
qdSrDrr	rrrr�rcss|]}t|�VqdSrD)�len)rr�rrrr�rz�The patches have been successfully applied to {count} newly discovered processes. The overall amount of applied patches is {overall}.)�count�overallz*Object `{0}` is patched for {1} processes.)"�rotate_libcare_logsr�UPDATE_MODE_AUTOr�LIB_AUTO_UPDATEr,r�keysrcrbr
r�r:�check_userspace_updatesrr�r
�restore_selinux_contextr.r/r0r1r�r9rOr`�_get_userspace_procs�anyr�r!�values�sumr
re)�moder�r�r�Zprocess_filterZuserspace_patch�failed�something_foundr*rr�Z
data_afterrZuniq_procs_afterZuniq_procs_before�diffrr�r�rrr�do_userspace_update�sV

 ��rcCsjz<zt�\}}}}Wntjy2YWt�dS0Wt�nt�0|rNdS|rVdStjdd�rfdSdS)N�r�.libcarestatus��filename�r)rrr�r
r�status_gap_passed)rr*�libs_not_patchedrrr�get_userspace_update_statuss�r#cCs\i}|D]N}|d��D]<\}}|�d�r||vr:g||<||�|d|df�qq|S)Nr'r�r�r�)rerbr��rjr�rr2r^rrrr.s
rc
CsFt�}|D]6}|d��D]$\}}|�||d|�dd�f�qq
|S)Nr'rHr�r)r!rer�rbr$rrr�_get_userspace_libs9s
 r%csZ�s$t�}g��fdd�|��D�td�d�}t|�}d}}d}t|�D]�}|\}	}
}z4t|	|
||d�}|r||dur|WqLd}|dkr�d}WqLtjy�}
zd}t�	t
|
��WYd}
~
qLd}
~
0tjtjfy�YqLtj
y��YqLtj�y>}z2t|dd�d	k�r�d}t�t
|��WYd}~qLd}~00qLtjd
d�||||fS)Ncsg|]}��|��qSr)rc)rr'�r�rrrErz+check_userspace_updates.<locals>.<listcomp>F)r�r�Trrrwrurr)r,rr`rr%r�rr�r
�logwarnrOr�r��AlreadyTrialedExceptionr��getattrr9r�touch_status_gap_file)r�r�r�Zdata_beforerrrr"r^r2r�r�r��er�rr&rrAs>
"&rc
s^d}d}tjddd�}|r�ztj|tgdd�\}}}Wn0tyf}zd}t|�}WYd}~n
d}~00|r�tjd	�|�dd
�ntj	ddd
�d�t
j���s�dSt
jd
}z�t
���}t�d����fdd�|D�}dd�|D�}|jdd�d}	|D]8\}}
|	t
j�|
�7}	|	|kr�t
�|
�tj�d|
�q�Wn"t�yXtjddd
�Yn0dS)NrrUZ	logrotateF)�	raise_excT)r}rz5failed to run logrotate for libcare logs, stderr: {0}r6zlogrotate utility wasn't foundz/var/log/libcare/iz^\d+\.log.*cs$g|]}��|�rtj��|��qSr)�matchr.r/r0)r�fn�Zlibcare_log_directoryZ	pidlog_rerrr�rz'rotate_libcare_logs.<locals>.<listcomp>cSsg|]}tj�|�|f�qSr)r.r/�getctime)r�fprrrr�r)�reversez%Removed %s because of logs size limitz)Failed to cleanup libcare server logfiles)rr�r��LIBCARE_LOGROTATE_CONFIGr$rOr
r9r:r'r.r/r�r�!LIBCARE_PIDLOGS_MAX_TOTAL_SIZE_MB�listdirr��compile�sortr��remover�rj�logexc)�rcr�Zlogrotate_pathr*r+Zmax_total_sizeZ	log_filesZpidlog_filesZpidlog_files_with_ctZ
total_size�filepathrr/rr
rs<



r
cCsJzt�dd�ddg}Wnty*YdS0tj|ddd�\}}}|dkS)	zKAssume that whenever the service is not running, we did not patch anything.r�r�r�rwFTr{r)rr�r$r�)r�r�r*rrrr��sr�)NN)TN)N)NN)Ir�r.r�r�r�rUrrrrrrr	r
rrr
rrr�py23rrr�Dict�List�Optional�Set�TupleZLIBCARE_CLIENTr�rhrir3r�r!r%�cachedr+r,r4rB�intrCrmr�r�r�r�r`rar�r�r�r�r�r�r�r8r��log_all_parent_processesrr�track_update_status�skip_if_no_selinux_module�UPDATE_MODE_MANUALrr#rr%rr
r�rrrr�<module>st@
�

L

"



$	H

1*

Youez - 2016 - github.com/yon3zu
LinuXploit