Commit Graph

320 Commits

Author SHA1 Message Date
Daniel Roethlisberger
c8e9f231bd Fix loading of certificate chains with OpenSSL 1.0.2
SSLsplit was directly accessing `extra_certs` within `SSL_CTX` to get to
the extra certificates chain.  When building on OpenSSL 1.0.2 or newer,
use the new API instead of directly accessing `extra_certs`.

Issue:		#79
2015-03-16 00:18:41 +01:00
Daniel Roethlisberger
580d2286b9 Record the actual XNU version detected 2015-03-16 00:13:04 +01:00
Daniel Roethlisberger
89860add8a Add XNU header selection fallback
If the proper headers matching either the reported XNU version or OS X
version exactly cannot be found, use the latest headers that SSLsplit
knows about.  This fixes build on new releases of OS X that have no
source code published by Apple yet.
2015-03-16 00:13:04 +01:00
Daniel Roethlisberger
992c90db3b Escape # in shell invocation
This fixes the following make error on Mac OS X versions that we don't
explicitly support yet due to missing sources:

    GNUmakefile:55: *** unterminated call to function `shell': missing `)'.
    Stop.

Reported by:	Justin Garrick
2015-03-16 00:13:04 +01:00
Daniel Roethlisberger
00253f34db Quote dollar signs in shell invocation
Reported by:	Justin Garrick
2015-03-16 00:13:04 +01:00
Daniel Roethlisberger
61cd0fb541 SSLsplit 0.4.10 release 2014-11-28 10:28:58 +01:00
Daniel Roethlisberger
5ac565f5df Note that -j impacts -S and -F 2014-11-28 10:28:58 +01:00
Daniel Roethlisberger
008821cfca Update NEWS.md 2014-11-28 10:15:09 +01:00
Daniel Roethlisberger
ab466aafb7 Allow -u root with pf proxyspecs on OS X 2014-11-28 10:03:29 +01:00
Daniel Roethlisberger
f076336e0b Don't allow -u on Mac OS X with pf proxyspecs
Apple checks EUID==0 on ioctl(/dev/pf), whereas OpenBSD and FreeBSD only
check permissions on open(/dev/pf).  This means that on OS X, it is not
possible to open /dev/pf, drop privileges, and send an ioctl to the file
descriptor opened earlier with EUID==0.  It also means Apple broke the
Unix way of dealing with device nodes - why are there file permissions
on /dev/pf when they later enforce EUID==0 on use, thereby breaking
basic Unix mechanisms?  Work around this by disallowing -u with pf
proxyspecs and by not automatically dropping to nobody on Mac OS X.

Issue:		#65
Reported by:	Vladimir Marteev
2014-11-28 00:13:42 +01:00
Daniel Roethlisberger
c4b22efa5a Fix segmentation fault for aborted connections 2014-11-27 23:19:54 +01:00
Daniel Roethlisberger
9341f25e6d Explicitly support Yosemite 10.10.1 with XNU 2782.1.97 2014-11-27 22:11:12 +01:00
Daniel Roethlisberger
47abb0030d Update clean target for newer clang build artefacts 2014-11-27 22:09:03 +01:00
Daniel Roethlisberger
16a1beb655 Fix version output on local procinfo availability 2014-11-25 23:38:37 +01:00
Daniel Roethlisberger
a9bd438756 Minor updates to manual page 2014-11-25 23:38:05 +01:00
Daniel Roethlisberger
12ff6e6ddf Merge https://github.com/fix-macosx/sslsplit
Conflicts:
	GNUmakefile
	main.c
2014-11-25 00:24:58 +01:00
Daniel Roethlisberger
65f56f634d Improve error handling on logging calls 2014-11-21 17:42:10 +01:00
Daniel Roethlisberger
98520c8091 Remove old struct definition 2014-11-21 16:45:45 +01:00
Daniel Roethlisberger
c24d32e9e5 Remove obsolete preinit code 2014-11-21 16:41:57 +01:00
Daniel Roethlisberger
25edad1b6a Merge branch 'rewrite/logthr' 2014-11-21 16:21:02 +01:00
Daniel Roethlisberger
d1d6d295df Fixing error-case memory leaks in uid/gid lookups 2014-11-21 16:19:36 +01:00
Daniel Roethlisberger
b5e3856a97 Move open() and mkdir() to logger thread 2014-11-21 16:10:37 +01:00
Daniel Roethlisberger
5fd1d7de9c Rename flags for clarity 2014-11-21 12:03:08 +01:00
Daniel Roethlisberger
77942a7abb Fix compiler warning on type conversion 2014-11-19 22:54:11 +01:00
Daniel Roethlisberger
007823b16e Fix connect logging for corner cases 2014-11-19 22:39:51 +01:00
Daniel Roethlisberger
80af8f7d52 Fix SSL_METHOD* const mismatch on OpenSSL < 1.0.0 2014-11-19 22:38:21 +01:00
Daniel Roethlisberger
125163a003 Add local process lookup on FreeBSD using sysctl() API 2014-11-19 22:30:01 +01:00
Daniel Roethlisberger
7b8ba7310d Fix uid/gid lookup where sysconf(_SC_GETPW_R_SIZE_MAX) fails
On some platforms, sysconf(_SC_GETPW_R_SIZE_MAX) compiles but never
succeeds (e.g. FreeBSD 8.4).  Fix this by dynamically enlarging an
initially small buffer until it is large enough, and reuse the
determined buffer size on subsequent calls to the same function.
2014-11-20 09:38:14 +01:00
Daniel Roethlisberger
c35e40a597 Update NEWS.md for OpenSSL 0.9.8y bug workaround 2014-11-20 09:38:13 +01:00
Daniel Roethlisberger
341d6b77d1 Use SSL_get_certificate() hack for OpenSSL 0.9.8y
OpenSSL 0.9.8y also crashes in OpenSSL's SSL_get_certificate() on a
NULL pointer dereference.  Fix by also using the direct access hack
developed for OpenSSL 1.0.0k and 1.0.1e with OpenSSL 0.9.8y.
2014-11-19 20:01:42 +01:00
Daniel Roethlisberger
e1156a3482 Make awk regexp more robust 2014-11-17 23:50:16 +01:00
Daniel Roethlisberger
352b199166 Remove spurious space in netfilter output 2014-11-17 23:41:21 +01:00
Daniel Roethlisberger
c5b8fd127f Add version and ciphersuite to connect and debug log 2014-11-17 19:14:29 +01:00
Daniel Roethlisberger
077fb8c348 Handle other address families and abort when found 2014-11-17 19:13:03 +01:00
Daniel Roethlisberger
fcd008df4b Unify asprintf error handling 2014-11-17 19:11:27 +01:00
Daniel Roethlisberger
ec9cc5fb23 Fix usr/grp test with Linux id 2014-11-16 22:47:42 +01:00
Daniel Roethlisberger
b1ec5d0e09 Improve log_content_open() error handling 2014-11-16 22:31:54 +01:00
Daniel Roethlisberger
6f2f0af0c3 Fix usr/grp formatting unit test when id fails 2014-11-16 22:30:50 +01:00
Daniel Roethlisberger
328e3320f9 Fix build for !HAVE_LOCAL_PROCINFO 2014-11-16 21:57:33 +01:00
Daniel Roethlisberger
18c3e055e3 Refactor recursive mkdir() into sys_mkpath() 2014-11-16 21:53:47 +01:00
Daniel Roethlisberger
8c71970f33 Add unit test for sys_user_str and sys_group_str 2014-11-16 20:30:55 +01:00
Daniel Roethlisberger
84dfba04f2 Update manual page 2014-11-16 20:15:19 +01:00
Daniel Roethlisberger
e022b2af26 Add local process information to connect log 2014-11-16 20:11:25 +01:00
Daniel Roethlisberger
08ca5b2891 Also print pid if lookup (partially or fully) fails 2014-11-16 19:37:35 +01:00
Daniel Roethlisberger
48e00cf947 Remove stubs that should never be used 2014-11-16 00:07:10 +01:00
Daniel Roethlisberger
96ad8f92af Add -i and restore order 2014-11-14 16:40:56 +01:00
Daniel Roethlisberger
544b93a9ab Add procinfo status to -V 2014-11-14 16:30:07 +01:00
Daniel Roethlisberger
6cc01ec32b Update NEWS.md for -i 2014-11-14 16:22:46 +01:00
Daniel Roethlisberger
150650c7e9 Make local procinfo run-time optional (-i) and use src host:port 2014-11-14 16:20:07 +01:00
Daniel Roethlisberger
42497693d1 Rename define for consistency 2014-11-14 15:36:16 +01:00