unix-privesc-check/docs/CHANGELOG

454 lines
16 KiB
Plaintext

2012-11-14 unix-privesc-check trunk
* Tidied docs/CHANGELOG
* Updated docs/HACKING
* Tidied upc.sh
* Added tools/generate_docs.sh to generate stub documentation for
lib/misc/* and lib/checks/*
-- Tim Brown <timb@nth-dimension.org.uk>
2012-11-05 unix-privesc-check trunk
* Add support for PostgreSQL
* Added lib/checks/postgresql_configuration
* Added lib/checks/postgresql_connection
* Added lib/checks/postgresql_trust
* Added lib/misc/postgresql
* Added lib/misc/ldap and lib/checks/ldap_authentication
* Added lib/misc/nis and lib/checks/nis_authentication
* Added lib/checks/privileged_arguments to verify if textual
privileged files (like bash scripts) accept arguments from command line
* Added lib/misc/init and support in lib/misc/privileged
* Added security check to verify device mount options: dev, suid, user
* Added function file_is_basename to lib/misc/file
* Renamed lib/checks/devices to lib/checks/devices_permission
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-11-02 unix-privesc-check trunk
* Bug fix: uname on Solaris returns SunOS
* Added lib/misc/device and lib/checks/devices to verify world-readable and
world-writable permission on all device files including swap device(s)
* Improved lib/misc/cron to correctly handle PATH variable from /etc/crontab
and to differentiate programs lauched by /etc/crontab with
/etc/cron.[hourly|daily|monthly]
* Added lib/checks/privileged_environment_variables to verify if textual
privileged files (like bash scripts) use environment variables
* Improved lib/checks/privileged_tmp to also process textual privileged
files (like bash scripts)
* Added binary_matches_string_grep function to lib/misc/binary to avoid
interpreting the pattern as an extended regular expression
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-11-01 unix-privesc-check trunk
* Bug fix: Return value in lib/misc/binary
* Bug fix: Avoid recursing the linker_list_dependencies function
* Added lib/misc/inittab and support in lib/misc/privileged
* Improved lib/checks/system_configuration check to display also sensitive
directories and their content
* Improved lic/checks/system_configuration to notify about writable
configuration files by non-root users
* More detailed stdout messages for file owner condition across
lib/checks/*
* Updated the lib/misc/shadow and lib/checks/shadow_hash to display a
warning message when the password hashes file is readable
* Cleaned the code of libs/checks/privileged_dependency
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-31 unix-privesc-check trunk
* Added lib/misc/cron to parse /etc/cron*, /var/spool/cron/crontabs/*,
crontab -l and used it in lib/misc/privileged
* Enhanced process_show_command function to process /proc/PID/environ and
return script file path instead of ruby, perl, bash, etc
* Added parse_environ_cwd function to parse /proc/PID/environ file and
extract the process current working directory
* Added a preliminary check to all functions that call objdump to ensure
the file is not a textual file (like a bash script, etc)
* Added other file paths to check for permissions in
lib/checks/system_configuration
* Added file_is_directory function to lib/misc/file
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-30 unix-privesc-check trunk
* Added lib/checks/sudo to verify permissions on /etc/sudoers and its
entries
* Added functions to parse /etc/sudoers to lib/misc/sudo
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-28 unix-privesc-check trunk
* Added lib/checks/history_readable to list all readable .*_history
files
* Added lib/checks/homedirs_executable and lib/checks/homedirs_writable
* Added lib/checks/system_configuration to list writable permissions on
system configuration files and directories
* Added support for --verbose switch
* Added passwd_show_homedir function to lib/misc/passwd
* Aligned test types (symlinks) to all recently developed security checks
* Bug fix: group_is_in_group_name function
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-22 unix-privesc-check trunk
* Added lib/checks/privileged_nx
* Added lib/checks/privileged_relro
* Added lib/misc/kernel
* Added lib/checks/system_aslr
* Added lib/checks/system_mmap
* Added lib/checks/system_nx
* Added lib/checks/system_selinux
* Added permission_is_world_writable_sticky_bit function to
lib/misc/permission
* Added support to verify sticky bit against world-writable directories
* Renamed lib/checks/banned_* to lib/checks/privileged_*
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-22 unix-privesc-check trunk
* Added lib/misc/validation and modified lib/misc/* to use it.
The aim is to sanity check that libraries are being called
correctly. We can improve this over time
* Bug fix: Renamed validation_is_regex to validation_matches_regex
in lib/misc/validation
* Bug fix: validation_matches_regex test was wrong, should be -n
not -r in lib/misc/validation
* Bug fix: Added inclusion checks to prevent multiple inclusions
* Bug fix: Changed lib/misc/* to catch data returned by
validate_is_*
* Removed unnecessary calls to file_check_or_generate_cache in
lib/misc/checks/*
* Updated symlinks for different types of scan
* Removed tools/banned.h
* Tidied up formatting
* Fixed AIX specific bug with checking users don't have a password
of ! in lib/checks/passwd_hashes
-- Tim Brown <timb@nth-dimension.org.uk>
2012-10-21 unix-privesc-check trunk
* Added library to parse patterns, for now implements only one function to
extract and return all absolute file paths, parse_extract_absolute_filepaths
* Added lib/misc/sudo
* Added sudo support to lib/misc/privileged
* Added lib/misc/user
* Added lib/misc/group
* Added lib/misc/permission
* Added file_is_readable function to lib/misc/file
* Added two functions to lib/misc/file
* file_exists_file and file_is_regular_file
* Added validate_is_boolean function to lib/misc/validate
* Added support for --color switch to enable output coloring
* Updated lib/checks/jar and lib/checks/key_material
* Removed one cycle, minor refactoring and use lib/misc/user and
lib/misc/group
* Ported all calls to id command through the code to their relevant
user/group libraries functions
* Bug fix: Missing import bug in lib/checks/binary_rpath
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-21 unix-privesc-check trunk
* Bug fix: Changed $VERSION to ${VERSION} etc in upc.sh
* Removed old TODOs from lib/checks/set[ug]id
* Bug fix: Removed symlink exclusion in lib/misc/file cache
generation
-- Tim Brown <timb@nth-dimension.org.uk>
2012-10-20 unix-privesc-check trunk
* Minor improvements to lib/misc/linker
* Bug fix: Avoid using file as variable name
* Bug fix: Use grep instead of egrep in one file function
* Consolidated the stdout to clarify where the warning message throughout
lib/checks/binary_*
* Improved lib/checks/key_material and lib/checks/jar to show more detailed stdout
* Major speedup to lib/checks/group_writable and lib/checks/world_writable
* Re-engineered lib/checks/binary_dependency
* Improved lib/checks/binary_rpath and lib/checks/binary_writable to also verify
write access by non-root users
* Refactored lib/checks/system_libraries code
* Added function to check for SSH key files permissions to lib/checks/ssh_agent
* Renamed lib/checks/ssh_key_unencrypted to lib/checks/ssh_key
* Consolidated lib/checks/ssh_agent and lib/checks/ssh_key checks to also
show encrypted key files
* Removed exclusions from lib/checks/credentials
* Created lib/misc/file function file_is_textual
* Improved file_show_symlinked_filename function to be recursive and always
return the real linked filename
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-19 unix-privesc-check trunk
* Re-engineered check lib/checks/binary_rpath
* Fixed the file_parent_traverse function call in lib/checks/binary_writable
and lib/checks/system_libraries
* Fixed some more checks' descriptions
* Bug fix: Syntax fix in lib/misc/binary
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-18 unix-privesc-check trunk
* Tidied up upc.sh, added an additional error check
* Purged dummy, replaced with _ after suggestion from BDA
* Bug fix: No longer considers "enabled" as a check
* Changed lib/misc/privileged to split out cache generation so that it
happens on inclusion
* Bug fix: Removed unintentional trailing space from file cache
-- Tim Brown <timb@nth-dimension.org.uk>
2012-10-18 unix-privesc-check trunk
* Bug fix: Fixed regexp patterns to avoid returning directories in
lib/misc/privileged and lib/misc/file
-- <pentestmonkey@pentestmonkey.net>
2012-10-18 unix-privesc-check trunk
* Added check lib/checks/binary_writable
* Bug fix: Proper use of dirname in file_show_symlinked_filename function
* Bug fix: Replaced STDIN redirection with cat for inetd configuration
files parsing in lib/misc/linker
* Bug fix: Avoid escaping a path with an asterisk in lib/misc/ssh_agent
* Refactored check lib/checks/system_libraries code
* Refactored check lib/checks/world_writable code
* Refactored check lib/checks/binary_dependency code
* Refactored checks lib/checks/setuid and lib/checks/setgid code
* Improved a lot speed of lib/checks/jar and lib/checks/key_material
* Improved lib/misc/ssh_agent to work on recent Linux distributions too
and inspect /tmp folder for both SSH agent parent process and pid-1
* Avoid duplicate processes entries in lib/misc/privileged
* Improved regular expression patterns throughout the code
* Added --check and --version switches to upc.sh
* Added description to missing checks
* Added verbose comment to lib/checks/ssh_key_unencrypted with suggestions
for improvements
* Set subversion properties on all missing files
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-10-18 unix-privesc-check trunk
* Changed lib/misc/shadow to favour 1 egrep over 2 greps
-- Tim Brown <timb@nth-dimension.org.uk>
2012-10-17 unix-privesc-check trunk
* Added lib/checks/binary_path
* Added lib/checks/binary_random
* Changed stdio_message_error to output to STDERR
in lib/misc/stdio
* Removed date from output (reverting BDA change)
* Updated lib/misc/ssh_agent
* Updated lib/misc/shadow
* Updated lib/misc/process (reverting BDA change)
* Updated lib/misc/privileged (partially reverting BDA change)
* Kept the caching code
* Kept variable name changed to make the code more readable
* Updated lib/misc/passwd
* Updated lib/misc/linker (reverting BDA change)
* Updated lib/misc/inetd (reverting BDA change)
* Updated lib/misc/dependencies to disable for now. The
principal is solid, but it needs more consideration.
For example, why does only lib/misc/binary need dependencies,
what happens on non-Linux systems etc
* Added docs/HACKING. I will need to work on it but it should
help to smooth the path for new hackers :)
* Updated lib/misc/file (partially reverting BDA change)
* Kept symlink related code
* Kept permissions related code
* Changed lib/misc/privileged to use file_list_by_perms
correctly. Bonus, reduction of loops
-- Tim Brown <timb@nth-dimension.org.uk>
2012-10-17 unix-privesc-check trunk
* Added binary_banned_api function to lib/misc/binary
* Added file_show_symlinked_file function to lib/misc/file
* Added code comments to lib/misc/file
* Added cashing mechanism to lib/misc/privileged
* Added file headers throughout the source code
* Added checks' description in comment headers
* Added date to standard output function
* Added an error message log function
* Added notification of needed dependencies (binutils package)
* Narrowed down regular expression patterns in some checks
* Refactored check lib/checks/credentials code and exclude man pages and
python/ruby/perl libraries
* Refactored check lib/checks/binary_dependency code
* Refactored check lib/checks/group_writable code
* Removed unnecessary Linux-specific code from lib/misc/process
* Standardized checks' standard output and removed unnecessary lines
-- Bernardo Damele A. G. <bernardo.damele@gmail.com>
2012-09-23 unix-privesc-check trunk
* Bug fix: Changed from stdio_message_debug to stdio_message_warn
in lib/checks/binary_banned
* Bug fix: Incorrect symlink checking in binary_dependency,
binary_rpath, world_writable and group_writable
* Added support for PIE to lib/misc/binary
* Added lib/checks/binary_pie
-- Tim Brown <timb@nth-dimension.org.uk>
2012-09-22 unix-privesc-check trunk
* Started adding --help
* Removed date from output
* Bug fix: Changed $1 to ${1} etc
* Added message when generating cache
* Bug fix: Checking wrong variable in lib/misc/process
* Added lib/misc/privileged
* Changed string checks from "" to -n etc
* Standardised variable names
* Changed how checks are enabled, it is now possible to have
different types of scan using --type
* Added check for encryption to lib/checks/ssh_key_unencrypted
* Renamed lib/checks/binary_changeprivs to
lib/checks/binary_change_privileges
* Updated docs/COPYING.UNIX-PRIVESC-CHECK to reference
version 1 explicitly. This will allow version 2 into
Debian and other free distributions
* Added lib/checks/binary_banned
* Added check for lack of XXX in lib/checks/tmp
* Added check for DT_RUNPATH to lib/checks/binary_rpath
* Started work on porting lib/misc/* to Solaris
-- Tim Brown <timb@nth-dimension.org.uk>
2012-09-11 unix-privesc-check trunk
* Branching 1.x at revision 26
* 2.0 released
* Bug fix: Typo in lib/checks/binary_dependency
* Improved output of lib/checks/system_libraries,
lib/checks/binary_dependency, lib/checks/binary_rpath
-- Tim Brown <timb@nth-dimension.org.uk>
2010-12-30 unix-privesc-check trunk
* Bug fix: Cleaned up a typo
* Added support for fscaps
* Updated CHANGELOG
-- Tim Brown <timb@nth-dimension.org.uk>
2010-11-09 unix-privesc-check trunk
* Bug fix: False positive if svn.simple directory is empty
-- <pentestmonkey@pentestmonkey.net>
2010-11-04 unix-privesc-check trunk
* Added unique issue numbers. Should help to generate reports
-- <pentestmonkey@pentestmonkey.net>
2010-04-17 unix-privesc-check trunk
* Bug fix: Now checks HP-UX swap permissions correctly
* Bug fix: Cleaned up a few typos
-- Tim Brown <timb@nth-dimension.org.uk>
2010-09-27 unix-privesc-check trunk
* Added check for cleartext subversion passwords in home directory
-- <pentestmonkey@pentestmonkey.net>
2010-01-06 unix-privesc-check trunk
* Added support for exploit mitigations (HP-UX and Solaris)
* Checks if shadow and passwd are writable, thanks jdv
* Checks for SetUID shell scripts which might be racey
* Improved NX and SSP checks (Linux only)
* Bug fix: Cleaned up a few typos
-- Tim Brown <timb@nth-dimension.org.uk>
2009-09-23 unix-privesc-check trunk
* Bug fix: Cron jobs starting with '(' parsed properly
* Checks perms on Java classpath
-- <pentestmonkey@pentestmonkey.net>
2009-09-06 unix-privesc-check trunk
* Added MMAP allows map to 0 exploit mitigation (Linux ATM)
* Added SELinux exploit mitigation (Linux only)
-- Tim Brown <timb@nth-dimension.org.uk>
2009-07-30 unix-privesc-check v1.5
* Initial AIX support added
* Check for exploit mitigations (Linux only ATM)
* Brain dumped some more interesting things to check for into TODOs
* Bug fix: Fixed typos in comments
* Added SSP exploit mitigation (Linux only ATM)
-- Tim Brown <timb@nth-dimension.org.uk>
2008-11-23 unix-privesc-check v1.4
* Added check of file perms of shared libraries used by SUID programs
* Tidied output slightly
2008-11-09 unix-privesc-check v1.3
* Bug fix: Parts of the script only worked with /bin/bash and not /bin/sh
* Bug fix: Fixed typos in reporting for privescs via cron
2008-07-06 unix-privesc-check v1.2
* Added check of library dirs (/etc/ld.so.conf) for Linux
* Crude check of programs called from shell scripts
* Check of libraries used by each binary program (using ldd)
* Check of hard-coded paths within binaries (using strings)
* More verbose WARNING messages. All the explanation for a WARNING
should now be on one line so you can grep for 'WARNING' and still
understand the results
* Check of file perms on open file handles of running processes
* Check for running SSH agent. Lists keys if possible
* Check for public and private SSH keys in home directories
* Check for running GPG agent
* Check for cron jobs in /var/spool/cron/tabs
* Extra non-priv check for local postgres trusts
* Bug fix: lanscan now used on HPUX to get interface names
* Check if system is an NFS client (HPUX only)
* Check if swap space is readable / writable
2008-04-17 unix-privesc-check v1.1
* Added check for accounts with no password in /etc/passwd
* Record some basic info about the host (hostname, uname -a, interface IPs)
2008-02-01 unix-privesc-check v1.0
* Initial public release