OwlCyberSecurity - MANAGER
Edit File: cldetectlib.cpython-311.opt-1.pyc
� ����_{�g�H����������������������������d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlmZmZmZ�d�dl m Z �d�dlmZm Z �dadadadad�adadadZdZd ZdZd ZdZdZd ZdZdadadZ dZ!dZ"e�j#���������$��������������������e������������reZneZd��Z%d��Z&d=d�Z'd��Z(d��Z)d��Z*d��Z+d��Z,d��Z-d��Z.d��Z/d��Z0d��Z1d ��Z2d!��Z3d"��Z4d#��Z5d$��Z6d%��Z7d&��Z8d'��Z9d(��Z:d)��Z;d*��Z<d+��Z=d,��Z>d-��Z?d.��Z@d/��ZAd0��ZBd1��ZCd2��ZDd3��ZEd4��ZFd5��ZGd6��ZHd7��ZId8��ZJd9��ZKd>d<�ZLdS�)?�����N)�ConfigParser�NoSectionError� NoOptionError)�cpapi)� SysCtlConf�SYSCTL_CL_CONF_FILE�0����apachez%/usr/local/lsws/conf/httpd_config.xmlz&/usr/local/lsws/conf/httpd_config.confz/usr/local/lsws/VERSIONz*/usr/lib/systemd/system/postgresql.servicez/etc/rc.d/init.d/postgresqlz/var/lock/cldeploy.lckz/etc/sysconfig/cloudlinuxz/etc/ssh/sshd_configzCloudLinux OS Shared ProzCloudLinux OS SharedzCloudLinux OS Soloc�������������������H�����t�����������j�����������������������������d������������rdS�dS�)Nz/etc/cpanel/ea4/is_ea4TF��os�path�exists��������py/cldetectlib.py�is_ea4r���M���s#������ �w�~�~�.�/�/����t��5r���c�������������������:����da�dad�a �t����������j����������������������}�|�d���������a�|�d���������a|�d���������an#�t ����������$�r�Y�nw�xY�w �t ����������dd�������������5�}|�����������������������������������}t����������j ��������d |������������d ���������}t����������j ��������d|������������d ���������}da�|��d |���a �d�d�d��������������dS�#�1�swxY�w�Y���n#�t ����������$�r�Y�nw�xY�wt����������j�����������������������������d������������rda�dadS�t����������j��������� ��������������������d������������rda�dadS�t����������j�����������������������������d������������st����������j��������� ��������������������d������������rda�dadS�t����������j��������� ��������������������d������������rda�dadS�t����������j��������� ��������������������d������������rda�dadS�t����������j��������� ��������������������d������������rda�dadS�t����������j�����������������������������d������������rda�dadS�t����������j�����������������������������d������������rd a�dadS�d!S�)"N�Unknown�0�name�version�additional_infoz/hsphere/shared/version�utf-8��encodingzRelease:\s+(.+)r���zVersion:\s+(.+)�H-Sphere�.T�/lib64/libnss_ng.so� HostingNG�none�/usr/local/cwpsrv�CentOS_WEB_Panel�'/etc/httpd/conf.d/atomia-pa-apache.conf�!/storage/configuration/cloudlinux�Atomia_agent�/usr/local/CyberCP� Cyberpanel� /var/phmgr�PlaneHoster�/usr/local/vesta�Vesta�/etc/virtualmin-license�VirtualminWebmin�/usr/local/webuzo/universal.php�WebuzoF)�CP_NAME� CP_VERSION�CP_ISP_TYPEr����get_cp_description� Exception�open�read�re�findallr ���r����isfile�isdir)� panel_data�f�data�releaser���s��� r����getCPr@���T���s������ ��G��J��K� ��-�/�/� ��V�$��� �*� � �!2�3������ �� �� ��� ���� � �+�g� >� >� >�� �!��6�6�8�8�D��j�!3�T�:�:�1�=�G��j�!3�T�:�:�1�=�G� �G�#�/�/�g�/�/�J�� �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� ����� �� �� ��� ���� � �w�~�~�+�,�,������ ��t�� �w�}�}�(�)�)���$��� ��t�� �w�~�~�?�@�@����G�M�M�=�>�>�� ��� ��t� �w�}�}�)�*�*������ ��t�� �w�}�}�\�"�"������ ��t�� �w�}�}�'�(�(������ ��t� � �w�~�~�/�0�0���$��� ��t� �w�~�~�7�8�8������ ��t���5sF����+4�� A��A�C��AB8�+C��8B<�<C��?B<��C�� C�C��c����������������������� �t����������|�dd�������������5�}|�����������������������������������}d�d�d��������������n#�1�swxY�w�Y���n#�t����������$�r�|cY�S�w�xY�w|D�]�}|�����������������������������������}|���������������������|������������rb|���������������������|������������}t ����������|������������dk����r:|d��������������������������������������������|k����r|d��������������������������������������������c�S���|S�)N�rr���r�������r�������)r6���� readlines�IOError�strip� startswith�split�len)� file_name� param_name� separator�default_valr=����content�line� linePartss��� r����get_param_from_filerS�������s2������ �)�S�7� 3� 3� 3�� $�q��k�k�m�m�G� $�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $����� $�� $�� $�� $��������������������,��,���z�z�|�|���?�?�:�&�&�� ,�� � �9�-�-�I��I���!�#�#�)�A�,�*<�*<�*>�*>�*�*L�*L� ��|�)�)�+�+�+�+�+���s,����A��5�A��9�A��9�A��A�Ac�����������������������t�����������rt�����������S�t����������j�����������������������������d������������rda��nt����������j�����������������������������d������������rda��n�t����������j�����������������������������d������������rda��n�t����������j�����������������������������d������������st����������j�����������������������������d������������rd a��n�t����������j�����������������������������d ������������rda��ntt����������j�����������������������������d������������rd a��nQt����������j�����������������������������d������������rda��n.t����������j�����������������������������d������������rda��nt����������j�����������������������������d������������st����������j�����������������������������d������������rda�n�t����������j�����������������������������d������������rda�n�t����������j�����������������������������d������������rda�n�t����������j�����������������������������d������������rda�ndt����������j�����������������������������d������������rda�nBt����������j�����������������������������d������������rda�n t����������j����������������������}�|�r |�d���������a�nd a�t�����������S�)!Nz/usr/local/cpanel/cpanel�cPanelz/usr/local/psa/version�Pleskz"/usr/local/directadmin/directadmin�DirectAdminz/usr/local/ispmgr/bin/ispmgrz/usr/local/mgr5� ISPManagerz/usr/local/interworx� InterWorxz/hsphere/sharedr���r���r ���r"���r#���r$���r%���r&���r+���r,���r-���r.���r)���r*���r'���r(���r/���r0���r���r���)r1���r ���r���r:���r;���r���r4���)r<���s��� r���� getCPNamerZ�������s����������� �w�~�~�0�1�1��7 ����� ����0� 1� 1��3 ����� ����<� =� =��/ ����� ����6� 7� 7��+ �2�7�=�=�IZ�;[�;[��+ ����� ����-� .� .��' ����� ����(� )� )��# ���� ����-� .� .��! ����� ����*� +� +�� �$��� ����A� B� B�� ��w�}�}�@�A�A� � ��� ����)� *� *�� ���� ����1� 2� 2�� �$��� ����|� $� $�� ���� ����+� ,� ,�� ���� ����9� :� :�� ������-�/�/� ��� � ��(�G�G��G��Nr���c������������������,����ddl�m}�i�}t������������������������}|dk����r||d<���|dk����r�|d������������}n �|��������������}|�����������������������������������}d}h�d�}|�����������������������������������D�]}d} |D�]} | j��������|v�rd } �n�| s|d z ��}�||d<���||�d<���d S�)z� Add server statistics to status_report dict :param status_report: dict to add statistics to :type status_report: dict r���)�ClPwdr����cprV���i'��>4���� iworx-pma� iworx-web�iworx-horde�iworx-backup�iworx-sqmail�sw-cp-server� avahi-autoipd�iworx-roundcube�systemd-network�systemd-bus-proxy�exim�admin�cpses�drweb�iworx�lsadm�munin�mysql�nginx�viapmr ����clamav�cpanel�nagios�psaadm�psaftp�dovecot�mailman�polkitd�popuser�varnish�webapps�diradmin�dovenull�firebird�saslauth� majordomo� nfsnobody�cpanelhorde�cpanellogin� cpanelrrdtool� horde_sysuser�cpanellogaholic�cpanelphpgadmin�cpanelroundcube�cpaneleximfilter�cpanelphpmyadmin�cpanelphppgadmin�cpaneleximscanner�roundcube_sysuser�cpanelconnecttrack�iworx_support_userFTrE����users�clnN)�clcommonr\���rZ����get_uid_dict�values�pw_name)� status_reportr\����res�cp_name�clpwd�dr����� sys_users� pw_entries�found�entrys��� r����add_server_statsr������s�������������� �C��k�k�G��)�����D� ��'�����e���������� �����A� �E� �� �� �I���h�h�j�j����� ����� �� �E��}� �)�)������*���� ��Q�J�E���C��L��M�%���r���c�������������������<����t�����������rt�����������S�t����������j�����������������������������t����������������������s.t����������dt����������z���dz����������������t ����������j��������d������������� �t����������d�d�������������}�|�� ��������������������t�����������������������|�� ��������������������dd��������������������������������������������������������������������d������������d k����r)|�� ��������������������dd�����������������������������������������������a�n� �t�������������������������|�� ��������������������dt����������d z���������������}t����������j�����������������������������|������������st�����������t!����������j��������|gt ����������j��������t ����������j��������d�������������5�}|�����������������������������������\��}}d�d�d��������������n#�1�swxY�w�Y���|�����������������������������������a�n#�t(����������t*����������t����������f$�r�d a�Y�nw�xY�wt�����������S�#�t,����������$�r2�t����������dt����������z���dz����������������t ����������j��������d�������������Y�d�S�w�xY�w)NzError: missing z config file.rE���F)� interpolation�strict� license_check�EMAIL�@����_getemail_scriptT��stdout�stderr�textzroot@localhost.localdomainzError: bad )�CP_ADMIN_EMAILr ���r���r:����CL_CONFIG_FILE�print�sys�exitr���r7����getrH����findrZ���r1����FileNotFoundError� subprocess�Popen�PIPE�communicater���r���r5���)�parser�get_email_script�proc�out�_s��� r����getCPAdminEmailr����+��s3���������� �7�>�>�.�)�)��� ��.�0�?�B�C�C�C���������D�%*�,��,��,�����N�#�#�#��:�:�o�w�/�/�5�5�7�7�<�<�S�A�A�R�G�G�#�Z�Z���A�A�G�G�I�I�N�N� >�����#)�:�:�o�w�I[�?[�#\�#\� ��w�~�~�&6�7�7��,�+�+��%�%�&�%�?�%�?�� ������0� ��!�-�-�/�/�F�C�� 0��0��0��0��0��0��0��0��0��0��0�����0��0��0��0��"%��������"�M�3D�E�� >�� >�� >�!=���� >�������������� �m�n�,��>�?�?�?�������������s\����"BG��6A?F9��5F� F9��F�F9�� F�!F9��8G��9G�G��G� G��8H�Hc�������������������@�����t�����������j�����������������������������d������������S�)Nz/etc/cxs)r ���r���r;���r���r���r���� CXS_checkr����P��s������ �7�=�=��$�$�$r���c�������������������v�����t�������������������������t����������dk����rdS�t����������j�����������������������������d������������S�)NrU���Fz&/usr/local/apache/modules/mod_suphp.so)rZ���r1���r ���r���r:���r���r���r����mod_suPHP_checkr����V��s0������ �K�K�K��(����u� �7�>�>�B�C�C�Cr���c�������������������������t�������������������������t����������dk����rdS�t����������dk����rdat����������dk����rda �t ����������j��������t����������������������j��������an#�t����������$�r�Y�nw�xY�wdS�)Nr���FrU����nobodyr����httpdT) rZ���r2���r1����APACHE_UNAME�pwd�getpwnam�pw_gid� APACHE_GIDr5���r���r���r����get_apache_gidr����_��s{������ �K�K�K���S����u��(������*����� ��\�,�/�/�6� � ���� �� �� ��� �����4s����A�� A#�"A#c�������������������:�����t������������������������p t������������������������S�)z� LiteSpeed can be enterprise or open source, and each of them stores config in different formats So this checker will search for one of them )�detect_enterprise_litespeed�detect_open_litespeedr���r���r����detect_litespeedr����v��s�������'�(�(�C�,A�,C�,C�Cr���c�������������������J�����t�����������j�����������������������������t����������������������S�)z* Detects LSWS Enterprise presence )r ���r���r:����LITESPEED_CONFIG_FILEr���r���r���r����r������s��������7�>�>�/�0�0�0r���c�������������������J�����t�����������j�����������������������������t����������������������S�)z( Detects OpenLiteSpeed presence )r ���r���r:����LITESPEED_OPEN_CONFIG_FILEr���r���r���r����r�������s��������7�>�>�4�5�5�5r���c������������������������� �t����������t����������dd�������������5�}�|�����������������������������������������������������������������������cddd�������������S�#�1�swxY�w�Y���dS�#�t����������t ����������t����������f$�r�Y�dS�w�xY�w)z\ Determine Litespeed version. Works for both LSWS Enterprise and OpenLiteSpeed. rC���r���r���NrA���)r6����LITESPEED_VERSION_FILEr7���rH���r�����OSErrorrG���)r=���s��� r����get_litespeed_versionr�������s������� � �(�#�� @� @� @�� $�A��6�6�8�8�>�>�#�#� $�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $����� $�� $�� $�� $�� $�� $���w��0��������r�r����s3����A��&A�A��A�A��A�A��A4�3A4c�������������������J�����t�����������j�����������������������������t����������������������S��N)r ���r���r:����POSTGRE_SERVER_FILEr���r���r����detect_postgresqlr�������s������ �7�>�>�-�.�.�.r���c�����������������������t�������������������������t����������dk����rdS� �t����������dd�������������5�}�|������������������������������������}d�d�d��������������n#�1�swxY�w�Y���|���������������������d������������d������������������������������d������������d ������������������������������d ������������d��������������������������������������������S�#�t����������$�r�Y�dS�w�xY�w) NrW���Fz,/usr/local/directadmin/conf/directadmin.confr���r���z admindir=rE���� r����/r����ri���)rZ���r1���r6���r7���rJ���rH���r5���)r=���r����s��� r����detect_DA_adminr�������s������� �K�K�K��-����u�� �@�7� S� S� S�� �WX��&�&�(�(�C� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� ��y�y��%�%�a�(�.�.�t�4�4�Q�7�=�=�c�B�B�2�F�L�L�N�N�N����������w�w����s5����B9��A�B9��A�B9��A�A!B9��9 C�Cc�������������������T����t�����������j�����������������������������t����������������������sdS� �t ����������t����������d�������������5�}�t����������|������������������������������������������������}d�d�d��������������n#�1�swxY�w�Y���t�����������j�����������������������������d|���������������S�#�t����������$�r�Y�dS�w�xY�w)NFr���r����/proc/) r ���r���r:����CL_SETUP_LOCK_FILEr6����intr7���r;���r5���)r=����pids��� r����check_CL_installingr�������s������� �7�>�>�,�-�-����u�� �$�w� 7� 7� 7�� �1��a�f�f�h�h�-�-�C� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� ��w�}�}�^�c�^�^�,�,�,����������u�u����s4����B��"A,� B��,A0�0B��3A0�4$B�� B'�&B'c������������������������t�����������j�����������������������������d������������sdS� �t����������j��������d������������j��������adS�#�t����������$�r�Y�dS�w�xY�w)Nz/usr/local/nagiosFrt���T)r ���r���r;���r����r����r����� NAGIOS_GIDr5���r���r���r���� get_nagiosr�������s\������ �7�=�=�,�-�-����u���\�(�+�+�2� ��t����������u�u����s����>�� A�Ac�������������������0�����t����������ddd������������}�|�dk����S�)Nz//usr/local/directadmin/custombuild/options.conf� cloudlinux�=�yes)rS���)�check_results��� r����da_check_optionsr�������s!������&�'X�Zf�hk�l�l�L��5� � r���c�������������������~�����t����������t����������d�������������}�|����������������������d������������}|�t����������|������������n|S�)z/get fs.enforce_symlinksifowner from sysctl confF)�config_file�mute_errorszfs.enforce_symlinksifowner)r���r���r����r����)�sysctl�values��� r����get_symlinksifownerr�������s<������ �$7�U� K� K� K�F��J�J�3�4�4�E��*�3�u�:�:�:��5r���c�������������������:�����t������������t�������������������������t�����������S�r����)�SUEXEC_ENABLED�detect_suEXEC_suPHPr���r���r����get_suEXEC_statusr�������s�������������r���c�������������������:�����t������������t�������������������������t�����������S�r����)� SUPHP_ENABLEDr����r���r���r����get_suPHP_statusr�������s�������������r���c�������������������B�����da�dat������������������������}�|��d�S�d|�v�a�d|�v�ad�S�)NF� suexec_module�suphp_module)r����r�����get_apache_modules)�moduless��� r���r����r�������s;������ ��N��M� �"�"�G�����$��/�N�"�g�-�M�M�Mr���c�����������������������d}� �t����������j��������|�dgt�����������j��������t�����������j��������d�������������5�}|�����������������������������������\��}}d�d�d��������������n#�1�swxY�w�Y���g�}|���������������������d������������}|dd�����������D�]b}|s� �|��������������������������������������������������������d������������d���������}n#�t����������$�r�d }Y�nw�xY�w|d k����r�M|���������������������|��������������c|S�#�t����������t����������f$�r�Y�d�S�w�xY�w) Nz/usr/sbin/httpdz-MTr����r����rE���� r���rA���) r����r����r����r����rJ���rH���� IndexError�appendr����rG���)�bin_execr����r����r����r���rQ����mods��� r���r����r�������ss����� �H�� � � �t���?��?�� �� �� �� (� ���%�%�'�'�F�C�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (����� (�� (�� (�� (�����i�i��o�o������G�� �� �D��� �� ��j�j�l�l�(�(��-�-�a�0������ �� �� ����� �����b�y�y���N�N�3���������W���������t�t����sX����.C'��A� C'��A�C'��A�)C'��-B6�5C'��6C�C'��C�!C'��'C<�;C<c�����������������������t����������j��������|�ddt�����������j��������dd�������������5�}|�����������������������������������d���������cddd�������������S�#�1�swxY�w�Y���dS�)z0 Executes command with bash interpreter Tz /bin/bashr����)�shell� executabler����r�����bufsizer���N)r����r����r����r����)�commandr����s��� r����executer����s�������� � ������ �� �� �� ��%�� ����!�!�!�$�%��%��%��%��%��%��%��%��%��%��%��%�����%��%��%��%��%��%s����A�A�Ac������������������r���� �t������������������������r8t����������dt����������|�t������������������������dz������������������������z���dz���������������}n4t����������dt����������|�t���������������������������������������������z���dz���������������}|���������������������d������������dk����S�#�t ����������$�r�Y�d�S�t����������t����������f$�r�Y�dS�w�xY�w)Nz/usr/bin/strings �_ea4z | grep jailz jail errorr����F)r���r���strrZ���r�����KeyErrorrG���r����)�location�results��� r����check_binary_has_jailr��#��s������� ��8�8�� `��0�3�x� ���f�@T�7U�3V�3V�V�Yg�g�h�h�F�F��0�3�x� ���7L�3M�3M�M�P^�^�_�_�F��{�{�<�(�(�B�.�.����������t�t��W���������u�u����s����BB�� B6�"B6�5B6c������������������������ �t����������d������������}�|����������������������d������������dk����S�#�t����������t����������f$�r�Y�d�S�w�xY�w)Nz/usr/sbin/sshd -T | grep usepamz usepam yesr����)r��r����rG���r����)r��s��� r����check_SSHd_UsePAMr��2��sS��������:�;�;���{�{�<�(�(�B�.�.���W���������t�t����s����'*��?�?c�������������������4�����t������������t�������������������������d�S�d�S�r����)r1���rZ���r���r���r����init_cp_namer��:��s����������������r���c�������������������4�����t�������������������������t����������dk����S�)NrW����r��r1���r���r���r����is_dar��A��s�������N�N�N��m�#�#r���c�������������������4�����t�������������������������t����������dk����S�)NrX���r��r���r���r���� is_ispmanagerr��G��s�������N�N�N��l�"�"r���c�������������������,�����t�������������������������t����������S�r����)r��r3���r���r���r����ispmanager5_typer��N��s�������N�N�N��r���c������������������������t�����������dk����S�)N�Master)r3���r���r���r����ispmanager5_is_masterr!��T��s �������(�"�"r���c�������������������4�����t�������������������������t����������dk����S�)NrU���r��r���r���r���� is_cpanelr#��Y��s�������N�N�N��h��r���c�������������������4�����t�������������������������t����������dk����S�)NrV���r��r���r���r����is_pleskr%��_��s�������N�N�N��g��r���c�������������������4�����t�������������������������t����������dk����S�)NrY���r��r���r���r����is_internetworxr'��e����������N�N�N��k�!�!r���c�������������������4�����t�������������������������t����������dk����S�)Nr���r��r���r���r���� is_hspherer*��k��s�������N�N�N��j� � r���c�������������������4�����t�������������������������t����������dk����S�)Nr ���r��r���r���r����is_hostingngr,��q��r(��r���c�������������������4�����t�������������������������t����������dk����S�)Nr���r��r���r���r���� is_unknownr.��w��s�������N�N�N��i��r���c�������������������P����t����������j����������������������}�t����������d|���d�d�������������5�}|D�]a}|���������������������d������������rJ|���������������������d������������d��������������������������������������������}t ����������|������������c�cddd�������������S��b �ddd�������������n#�1�swxY�w�Y���d S�) zD Returns 0 if there is no openvz, otherwise returns node id r����z/statusr���r���zenvID:�:rE���Nr���)r ����getpidr6���rI���rJ���rH���r����)r����r=���rQ����env_ids��� r���� is_openvzr3��|��s������ �)�+�+�C� �#�s�#�#�#�g� 6� 6� 6��#�!��� #�� #�D����x�(�(�� #����C����+�1�1�3�3���6�{�{�"�"� #��#��#��#��#��#��#��#� #� #�#��#��#��#��#��#��#��#��#��#��#�����#��#��#��#� � �1s����AB� B�B�"Bc�������������������@�����t�����������j�����������������������������d������������S�)Nz/usr/sbin/cagefsctlr���r���r���r����is_cagefs_installedr5�����s������ �7�>�>�/�0�0�0r���r����Tc������������������\�����t����������|�||d��������������}|�|S�|�����������������������������������dv�S�)N)rO���)�true�1r�����on)rS����lower)rL���rM���rN���rO���� config_vals��� r����get_boolean_paramr<�����s=������$�Y� �I�SW�X�X�X�J����������!;�;�;r���)NrA���)r����T)Mr ���r����r8���r����r�����configparserr���r���r���r����r����clcommon.sysctlr���r���r1���r2���r3���r����r����r����r����r����r����r����r�����POSTGRE_SYSTEMD_PATH�POSTGRE_INITD_PATHr����r�����USEPAM_FILEr����r�����!SHARED_PRO_EDITION_HUMAN_READABLE�SHARED_EDITION_HUMAN_READABLE�SOLO_EDITION_HUMAN_READABLEr���r:���r���r@���rS���rZ���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r��r��r��r��r��r��r��r!��r#��r%��r'��r*��r,��r.��r3��r5��r<��r���r���r����<module>rE�����s�����B� � � � �� � � � �� � � � ���������� � � � ��D��D��D��D��D��D��D��D��D��D��������������;��;��;��;��;��;��;��;���� � ������ � � � ���?���E���2������C���2���-���,��$����� �$>��!� 6���2�����7�>�>�&�'�'��-�.���,�������Y��Y��Y�z������� ?��?��?�D$��$��$�P!��!��!�J%��%��%�D��D��D������.D��D��D�1��1��1�6��6��6� �� �� �/��/��/� �� �� � �� �� � �� �� �!��!��!� 6��6��6�����������.��.��.������>%��%��%� ���������������$��$��$�#��#��#������#��#��#� ����������"��"��"�!��!��!�"��"��"� �� �� � �� �� �1��1��1�<��<��<��<��<��<r���