Commit Graph

24 Commits

Author SHA1 Message Date
Manoj Ampalam 9369d870ad
upped version to 7.7.1.0 and fixed some issues with session path resolution (#320)
upped version to 7.7.1.0 and fixed some issues with session path resolution
2018-06-04 21:15:18 -07:00
Bryan Berns 3b450d5072 Updated SSHD Password Generation (#317)
Updated SSHD user password generation routine to be longer and more complex. This should satisfy systems with password filters that require more character types or very long passwords.
Updated routine to now securely zero memory for the SSHD account password.
Corrected attempt to write to NULL pointer by localtime_s() in localtime_r() and made function return NULL on error per specification.
Addressed various compiler / code analysis warnings.
2018-06-04 21:10:46 -07:00
Manoj Ampalam 1e0c864707
session process path changes (#319)
Added utility to build session process command line - this accounts for restrictions from various shells. With these changes, scp and sftp-server are expected to be machine wide PATH if a custom shell (other than cmd.exe) is defined. Added comprehensive test cases.
Fixed issue with USERNAME env variable containing domain prefix too.

PowerShell/Win32-OpenSSH#1165
PowerShell/Win32-OpenSSH#1165
PowerShell/Win32-OpenSSH#1171
2018-06-04 12:16:13 -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 fe422e5c15 Enhanced Group Discovery / Normalized Names (#286)
Modified getusergroups() to use s4u tokens to discover nested groups and return them in NetBiosName\GroupName format.
Modified get_passwd() to internally normalize names to NetBiosName\SamAccountName format and changed functions that use it to translate to UPN where necessary.
Removed unnecessary support functions used by previous version of getusergroups().
Various refactoring and function consolidation / simplification.
Addressed several buffer over-read issues.

PowerShell/Win32-OpenSSH#553
2018-05-01 23:20:42 -07:00
Manoj Ampalam b3a3a5cc66
Multiple Fixes (#273)
PowerShell/Win32-OpenSSH#1065
Fix: In recent sshd architectural changes, post authentication changes that process user specific changes were missing in authenticated sshd worker. Added missing call.
PowerShell/Win32-OpenSSH#1052
Fix: getpwd* functions will now strip off domain of any local user account.
2018-02-21 10:09:18 -08:00
Manoj Ampalam fdd54b6334
Implement Unix styled privilege separation in Windows (#258)
OpenSSh privilege separation model - http://www.citi.umich.edu/u/provos/ssh/privsep.html 
Posix_spawn is implemented in POSIX adapter as an alternative to fork() that is heavily used in Privilege separation. 
Additional state info is added to sshd to accommodate distinguishing the various modes (privileged monitor, unprivileged child, authenticated child).
Required service state (like config and host keys) is transmitted over pipes from monitor to child processes.
Changes to installation scripts and tests to accomodate new architectural changes
2018-01-15 13:57:31 -08:00
Manoj Ampalam 21ebb53a30 Multiple fixes (#224)
PowerShell/Win32-OpenSSH#894
Added logic to profile path retrieval to consider environment variables in path read from registry
PowerShell/Win32-OpenSSH#883
Added flags to support libssh2 SFTP. These are No-Ops for now. We may support them later if needed. Added PowerShell/Win32-OpenSSH#915 to keep track of TODO work item
2017-10-17 12:29:13 -07:00
bagajjal ab2aefff6d Fix allow/deny groups #816 (#203)
Fixing allow groups, deny groups. (PowerShell/Win32-OpenSSH#816)
Convert users, groups read from sshd_config to lowercase.
2017-09-01 14:53:12 -07: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
Manoj Ampalam 8a83d3360c Fixed key based auth with talking to docker containers
PowerShell/Win32-OpenSSH#677
2017-04-27 21:00:12 -07:00
Yanbing 425bc4033f latestw + Test Infra upgrades
Includes
- CR changes for upstream PR
- Fix in spawn_child logic
- Test Infra upgrades
2017-03-24 12:35:52 -07:00
Yanbing 8e9236b03b Groupaccess support (https://github.com/PowerShell/Win32-OpenSSH/issues/463) 2017-02-14 13:43:06 -08:00
bagajjal 4d0c1db166 Fixed wstat fix for file permission issue
https://github.com/PowerShell/Win32-OpenSSH/issues/176


1.If there are no sufficient permissions to open a file then _wstat64() is returning file not present but it should return the accessed denied.Fixed this.


2.Code cleanup in the posix compat files to align with the openbsd coding standard.
2017-02-09 11:30:40 -08:00
Manoj Ampalam f5b88d422e Fixed: ssh-shellhost.exe is orphaned when sshd.exe aborts unexpectedly (#73)
https://github.com/PowerShell/Win32-OpenSSH/issues/512
2017-02-03 12:22:00 -08:00
bagajjal 70784d5606 Fixed Denyusers issue when logging in with ssh username@domain@serverip (https://github.com/PowerShell/Win32-OpenSSH/issues/511) 2017-02-02 23:54:02 -08:00
Manoj Ampalam 9906e0515d Tidied do_exex_windows in session.c (https://github.com/PowerShell/Win32-OpenSSH/issues/510) 2017-02-02 15:03:21 -08:00
bagajjal 073eadfc98 Bug fixes (#58)
PowerShell/Win32-OpenSSH#458
PowerShell/Win32-OpenSSH#497
 a) Deleted the unwanted file (conio.c)
 b) Added more debug logs to get_passwd()
 c) Removed ReadThread() in termio.c
2017-01-28 11:52:02 -08:00
Manoj Ampalam c6b57c018c Got rid of w32posix.h and defs.h (https://github.com/PowerShell/Win32-OpenSSH/issues/498) 2017-01-25 14:43:55 -08:00
bagajjal 039f2eca7a SFTP bug fixes (#53)
https://github.com/PowerShell/Win32-OpenSSH/issues/479
https://github.com/PowerShell/Win32-OpenSSH/issues/476
https://github.com/PowerShell/Win32-OpenSSH/issues/474
https://github.com/PowerShell/Win32-OpenSSH/issues/467


bug #479 - "ls c:" is not working
 sanitized_path() is modified to handle the edge case "\x:"


2.bug #476 - "cd c:" is not working
 If "c:" is passed to _fullpath() then it is returning existing path but not "c:", so if we append "\" to "c:" then it is working fine.


3.bug #474 - code cleanup MAX_PATH
 Using PATH_MAX variable instead of MAX_PATH
 In dirent.h, used PATH_MAX instead of hardcoding 256 characters
 In readdir(), changed the pdirentry to be a static variable. Before this, we are leaking the memory.


4.bug #467 - SFTP rename failed if the newpath already exists.
 The _wrename throws error if the newpath exists.
 To make it consistent with the linux behavrior,
 a) if the newpath is a file and if it exists then delete it so that _wrename will succeed.
 b) if the newpath is a directory and if it is empty then delete it so that _wrename will succeed.
2017-01-14 22:12:19 -08:00
bagajjal 07a658c2b7 Making forwardslash/backslash converter methods available in posix layer 2016-12-21 11:51:37 -08:00
Manoj Ampalam 5ad8a2c358 Sources Merged from Win32 Fork 2016-12-19 14:46:28 -08:00