--- tags: ccdc, NCCDC2019 --- # User Configuration Cheat Sheet ## Check that all unlocked user passwords were changed ``` bash # As root run passwd -a -S # if -a option is unavailable: for u in $(cat /etc/passwd | cut -d ":" -f1); do passwd -S $u; done # the second value on each line indicates if the account is locked # if it contains a 'P' the account is probably unlocked ensure # all of these show the right day for the last passwd change. # Example # kellerj P 12/24/2018 0 99999 7 -1 ``` ## Check that the hashing algorithm is good ``` bash # As root cat /etc/shadow | awk -F "$" '{print $2}' | tr -d '\n' # We hope for only 6s # To change find pam configs change common-passwd pam_unix.so line: # password [success=1 default=ignore] pam_unix.so obscure sha512 ``` ## passwd/shadow file permissions ### Check ``` bash # As root ls -l /etc/shadow /etc/passwd # Alright outputs: # -rw-r--r-- 1 root root 2373 Mar 5 10:29 /etc/passwd # -r-------- 1 root shadow 1406 Mar 5 10:29 /etc/shadow # -rw------- 1 root root 2373 Mar 5 10:29 /etc/passwd # -r-------- 1 root shadow 1406 Mar 5 10:29 /etc/shadow # -r-------- 1 root root 2373 Mar 5 10:29 /etc/passwd # -r-------- 1 root shadow 1406 Mar 5 10:29 /etc/shadow # -rw-r--r-- 1 root root 2373 Mar 5 10:29 /etc/passwd # -rw------- 1 root shadow 1406 Mar 5 10:29 /etc/shadow # Check other attributes: lsattr /etc/shadow /etc/passwd # Example output: # ----i-------------- /etc/shadow # --------------e---- /etc/passwd # Explanation: # The letters `acdeijstuACDST' select the new attributes for the files: # append only (a), compressed (c), no dump (d), extent format (e), # immutable (i), data journalling (j), secure deletion (s), no # tail-merging (t), undeletable (u), no atime updates (A), no copy on # write (C), synchronous directory updates (D), synchronous updates (S), # and top of directory hierarchy (T). # The following attributes are read-only, and may be listed by lsattr(1) # but not modified by chattr: huge file (h), compression error (E), # indexed directory (I), compression raw access (X), and compressed dirty # file (Z). ``` ### Set ``` bash # As root: # When you don't need to change/add user info and passwds: chmod 400 /etc/shadow chmod 400 /etc/passwd # may have to use 440 if a different user needs to be able to authenticate chattr +i /etc/shadow chattr +i /etc/passwd # To allow editing again: chmod 600 /etc/shadow chmod 600 /etc/passwd chattr -i /etc/shadow chattr -i /etc/passwd ``` ## See what users can use sudo ``` bash # As root # Example directive: %wheel ALL=(ALL:ALL) NOPASSWD: ALL less /etc/sudoers # if a directive begins with '%' it indicates a group otherwise it is a user # Check the members of the groups listed in the file # (Note please change the example to the groups in your file) getent group sudo wheel # check to see if /etc/sudoers.d/ contains any files with more directives ls -a /etc/sudoers.d/ # check files for more users and groups # Ensure all users found in directives and groups are supposed to be there # Check permissions of sudoers files (ensure only root can edit) ls -l /etc/sudoers* ```