Commit Graph

19 Commits

Author SHA1 Message Date
pedro martelletto 942e993fac
propagate error if get_sid() fails (#520) 2021-10-28 13:28:58 -07:00
vthiebaut10 9a60244ef6
Increase verbosity level for bad file permission (#489) 2021-03-26 17:12:13 -07:00
Manoj Ampalam 7ae6defce8
Added support for AuthorizedKeysCommand and AuthorizedPrincipalsCommand (#409) 2019-11-15 10:51:45 -08:00
Bryan Berns 3d35b912a7 Updated Permissions Check For SidHistory (#375)
- Updated check_secure_file_permission() to perform a reverse lookups on the trustee SID within the file security descriptor to account for multiple SIDs that actually point to the same user.
- Updated permissions message to display the resolved SID to help with end user debugging.

Addresses: PowerShell/Win32-OpenSSH#1342
2019-06-10 12:30:11 -07:00
Manoj Ampalam 8bb672aa4d
Optimized group membership resolution (#327)
Current group membership resolution though very effective, is very slow. In a typical domain joined enterprise machine, adding a simple entry like the following in sshd_config
AllowGroups administrators
will incur a long delay in remote session establishment as sshd tried to pull all groups associated with the domain user.

Changes in this PR optimize the general case scenarios where no wild cards are in use. Specifically rules like this are processed promptly:

AllowGroups group1, group2, group3 //with no wild cards
Match Group group1 //single group with no negation and wild cards

Optimization is done by resolve the groupname in rule immediately to SID and checking its membership against user token. Enumerating the entire group membership is done on a lazy on-demand basis.

Beyond the optimization, there are 2 functional changes

- removed domain prefix for builtin groups
- removed domain prefix'ed versions of local groups since we are strictly following the convention that local principals shouldn't have any domain qualification.
2018-07-03 10:15:07 -07:00
Manoj Ampalam 3fb0c252c3
Refactor session logic (default shell, non PTY, child spawning) (#312)
Changes include:
- Removing sid from pwd structure to comply with Unix structure
- Integrating default shell logic within pwd
- pwd placeholder to allow logins using usernames not associated with Windows account (possible via custom LSA authentication)
- Moving all nonPTY logic from shellhost to session.c. 
- ssh-shellhost is now exclusively for implementing PTY
- Spawning all session processes from within a shell
- Validation checks in safely_chroot
2018-05-22 21:49:58 -07:00
Manoj Ampalam 7b28a316eb
Enable SFTP chroot support (#308)
- Added chroot implementation that simply stores the path in internal state and sets an environment variable
- Spawned processes pickup chroot from environment variable
- Core change in realpath and resolved_path_utf16 now take into account chroot path.
- Unit tests
- Other miscellaneous changes to account for chroot enabled logic in core code

PowerShell/Win32-OpenSSH#190
PowerShell/Win32-OpenSSH#292
2018-05-11 14:45:20 -07:00
Bryan Berns bd6408058a Reworked Path Resolution Function
- Reworked resolved_path() into resolved_path_utf16() that combined utf16 conversion and path conditioning into a single function.  This eliminated the previously non-threadsafe resolved_path() function.
- Adjusted functions to use resolved_path_utf16().
- Collapsed copy_file() function that was only used once.
- Corrected compilation errors when debug4() and debug5() are enabled.
2018-04-01 23:41:09 -04:00
bagajjal c85ba2b8c3 Separate binary path from cfg path and log path (#263)
Separate binary path from cfg path and log path, test update
2018-01-19 15:12:43 -08:00
Manoj Ampalam 88defae8c1
removed logic arround NTService\SSHD related checks (#261) 2018-01-18 10:46:52 -08:00
Yanbing b1a6fbca5e Issue13 (#184)
Replace with secure APIs in win32compat
2017-07-19 15:28:35 -07:00
Manoj Ampalam dd88d8d5d4 Move to LibreSSL, Fixed issues arising from compiling Windows specific code at warling level 3 2017-06-13 10:33:47 -07:00
Yanbing 5989efcad6 fix issue when checking file permission and generate key under system context (#150)
PowerShell/Win32-OpenSSH#736
PowerShell/Win32-OpenSSH#735
2017-05-26 14:24:23 -07:00
Yanbing 81bcaaa7cf Add mode support in open() and onboard file perm related changes and tests (#145)
PowerShell/Win32-OpenSSH#710
PowerShell/Win32-OpenSSH#725
PowerShell/Win32-OpenSSH#729
PowerShell/Win32-OpenSSH#731
PowerShell/Win32-OpenSSH#732
2017-05-23 21:45:38 -07:00
Yanbing 79662b9a6f Suspended File permissions logic, cranked version. 2017-05-15 22:08:01 -07:00
bagajjal 0fe590b192 multiple fixes (#132)
PowerShell/Win32-OpenSSH#715
PowerShell/Win32-OpenSSH#714
2017-05-09 14:08:22 -07:00
bagajjal 7d929c2954 Fix sshd logging (#128)
PowerShell/Win32-OpenSSH#709
https://github.com/PowerShell/Win32-OpenSSH/issues/708
2017-05-07 22:51:24 -07:00
Yanbing ba4ee6f3de Fixed bug in Administrators group lookup logic 2017-05-04 11:38:03 -07:00
Yanbing 6b807ae229 file permission on ssh_config, authorized_keys, private keys, host keys, public keys. (#110)
1. Add file permission check when load or add ssh_config, authorized_keys, private keys, host keys,.
2. set the owner and ACE for create secure file, ex, private key in ssh-keygen.exe
3. Update script OpenSSHTestHelper.psm1 to be able to run Install-OpenSSH if the sshd is running on the machine.
4. add OpenSSHBinPath to path.
5. change indents in agentconfig.c
6. update test script to represent the changes
7. Add tests for:
* authorized_keys and ssh-keygen testing
* host keys file perm testing
* user private key file perm testing
* ssh-add test
* user ssh_config
2017-05-01 14:18:20 -07:00