16 Mar 2024 00:00 | security
Several organisations still support SMS for OTP, often making it mandatory, and
even when it isn't mandatory as the primary 2FA method it's often still enabled
as a fallback, leaving you vulnerable. An attacker will always take the easiest
path, you may have a passkey set up or even a hardware fido token but if it's
possible to revert to sms-based OTP then you're just as vulnerable to a sim-swap
as you would be without these extra tokens.
[read more...]
Another security issue that's been rising in recent years is the advent of organised criminals shoulder-surfing iPhone passcodes in order to then later steal the phone and take over the iCloud account.
Unfortunate victims are then locked out of their account forever, losing precious iCloud data such as photos of their kids.
There are some steps you can take to protect yourself, such as using a longer/more complex passcode and being very careful where you type it to ensure nobody can see over your shoulder.
[read more...]
24 Oct 2023 20:46 | security
Although for most people it's pretty unlikely, the thought of getting sim-swapped is pretty scary.
This is where an attacker manages to convince your mobile carrier to transfer your number to a new sim card that they control. When this happens your original sim card will lose service and they will obtain your number - and any SMS OTP codes it's configured to receive.
Unfortunately despite many improvements in online security there are still several providers who either rely on SMS OTP or make it a mandatory fallback option if your primary OTP mechanism doesn't work. You're only secure as the weakest link and nothing will stop an attacker from using the fallback mechanisms if they can't bypass your primary one.
[read more...]
I recently blogged about my ProtonMail issues, the weird glitches with their bridge IMAP interface and their apparent lack of care that it might be silently deleting customer data - proton-bridge issue #220
I have now finally gotten around to kicking ProtonMail out of my life and I could not be happier. Gone are the days of having to run some janky Go software just to get an unstable IMAP interface. Gone are randomly changing message UIDs invalidating backups. Gone is the totally batshit way that messages can become orphaned from any folder and not show up anywhere other than "All Mail".
Suddenly I have normal IMAP that works, it even works on iOS (!) and in the webmail I can operate on more than 50 messages at once. I can in fact perform a quick operation on the entire resultset of a search. Try doing that in Proton's webmail. I have lost hours of my life to messing around just try to carry out basic operations on their platform and I'm so glad to be rid of it.
[read more...]
I'm a big fan of Patrick Wardle's free mac utilities but I noticed something odd about LuLu recently. It seems that it only filters egress traffic when LuLu.app is running. Since it normally runs as the local user rather than root, this makes it somewhat trivial for malware to defeat as it can simply kill the process and then connect to whatever it wants.
This can be mitigated by running the app as root, but since it's not installed root-owned the first thing to do is change that:
```
$ sudo chown -R root:wheel /Applications/LuLu.app/
[read more...]
After working for some time as an engineer at a very security-obsessed company I decided it would be a good exercise to note down and organise all the things I've learned both at work and in my spare time related to Linux server security. This guide will focus on Linux in a server context but many of the ideas here are applicable to other systems.
The full guide is also available on GitHub: linux-server-hardening-guide
Guiding principles
[read more...]
For some time I've been using a hand-rolled solution for touchID over ssh which I previously blogged about. Up until recently it's been a somewhat loosely-compiled scattering of config that wasn't really in a releasable form but with a pending security talk on the horizon I thought it would be worth tidying it up and making it releasable so I could mention it in my talk.
That code can be found here: touchid-remote
However when I was compiling it I was under the impression that one of the tools it relies on - touch2sudo - was merely a standalone binary for authenticating sudo commands locally. I didn't realise that the author had also noted in the README that it's possible to use it over SSH. The solution presented there involves forwarding the local ssh agent over the SSH connection and then configuring touch2sudo as the askpass agent.
[read more...]
Egress filtering is an immensely powerful security control but it's not so straightforward to do it well. If any malware manages to execute on your system one of the first things it's likely going to try to do is call home and establish a C2 channel. With effective egress filtering you can break this link in the attack chain and stop it dead in its tracks.
There are two well-known products which do egress filtering on macs - Little Snitch and LuLu. LuLu is made available by the awesome Patrick Wardle on his website - objective-see.com - along with a load of other very clever security tools.
This post is mostly going to discuss LuLu but the approach taken here may well work just as well with Little Snitch. LuLu is free and very cleverly made, it even allows you to configure regexes for web urls that applications are allowed to connect to. It does have one major limitation imposed by the operating system though which is mentioned on the website:
[read more...]
10 Feb 2022 05:48 | security
It's been a while since I've blogged so I thought I'd get back into it with some security stuff. My dayjob has had a very heavy security focus for the last 3 years and it's infected my personal life too such that I'm now even more obsessed with security than I was before.
I recently wrote a first draft of a Linux server hardening guide: linux-server-hardening-guide and plan to start a mini-series soon which will go into some of those topics in further detail with example configs etc.
Watch this space!
[read more...]
TouchID on the mac is really cool. It's awesome being able to use it for sudo,
but I thought it would be even more awesome if it could be used to authenticate
sudo remotely over ssh.
I've made this work using touch2sudo - https://github.com/prbinu/touch2sudo
which is a simple binary that when executed will show a touchID authentication
[read more...]
On a mac if you set Cylance's "local protection" to "system" it seems to
disallow all filesystem access to the CylanceSvc service's launchd plist file:
/Library/LaunchDaemons/com.cylance.agent_service.plist
This access is completely denied even to the root user. At first glance this
[read more...]
A while ago I posted about how sudo can be easily backdoored by dropping a fake
sudo script into the user's PATH:
https://m4.rkw.io/blog/getting-root-without-an-exploit--stealth-sudo-backdoor.html
Another attack vector for sudo is monitoring the process list for invocations of
[read more...]
Charles Proxy is a great mac application for debugging web services and
inspecting SSL traffic for any application on your machine.
In order to inspect the SSL traffic it needs to configure the system to use a
proxy so that it can capture the packets and use its custom root CA to decode
the SSL.
[read more...]
Another Hashicorp bug that I've been sitting on since late last year. This one
was exploitable only during the vagrant update process, or even if the user
typed "vagrant plugin update" and there was no pending update.
It was possible for a rogue process on the system to subvert the upgrade process
in a way the user was unlikely to notice in order to steal root privileges.
[read more...]
Another exploit for the now deprecated vagrant-vmware-fusion plugin. This one
only works if VMware Fusion is not installed which is an unlikely scenario.
However if this should occur then it's an easy root escalation so users should
still update.
[read more...]
This issue was reported to Hashicorp on 16/11/17. At first they claimed it was
low priority because it required local access, despite being a straight-to-root
escalation. Then they conceded that this wasn't reasonable and said it was high
priority and that they would address it.
It has taken until this week to get their fixes out, involving an entire rewrite
[read more...]
Last year I found a couple more privilege escalation vectors in Arq Backup
for Mac version 5.10. Both have now been fixed in the latest release.
The first is relatively simple - the arq_updater binary (which runs as root)
takes a path argument for the url to retrieve an Arq update from in the format
Arq.zip. We can simply specify an arbitrary path - eg file:///tmp/blah/Arq.zip -
[read more...]
It occurred to me recently that a lot of people probably use screen or tmux in
ways that leave an easy path to privilege escalation open. For example if you
start a screen session as your local user and then escalate to root inside the
screen session. As soon as you do that, anyone with access to the non-root
account can simply resume the screen session and immediately be root.
[read more...]
Recently I was working on a security issue in some other software that has yet
to be disclosed which created a rather interesting condition. As a non-root
user I was able to write to any file on the system that was not SIP-protected
but the resulting file would not be root-owned, even if it previously was.
This presented an interesting challenge for privilege escalation - how would you
[read more...]
I recently blogged about the prevalence of escalation hijack vulnerabilities
amongst macOS applications. One example of this is the latest version of Murus
firewall. By design it requires the user to authenticate every time in order to
obtain the access it needs to modify the firewall settings.
If a local attacker or malware is running as an admin user (ie has write access
[read more...]
VirtualBox is a virtualisation application written by Oracle that is quite popular
presumably because its free. I'm not a fan myself - if my mac locks up
completely or kernel panics it's usually because I've loaded the vbox kernel
extensions less than 10 minutes ago. I use VMware Fusion instead (which is fairly
expensive but IMO worth the money) and have a ritual whereby if I've had to load
the vbox kernel extensions for work-related reasons I will reboot the machine
[read more...]
With all the hype today about the blank-password root bug in High Sierra I
thought I'd write a quick post about escalation hihacking on macOS and how
common it is for software to be vulnerable to this.
Consider the case of malware gaining execution on a mac. This is pretty bad to
begin with but it's all the more worse if the malware obtains root access. Even
[read more...]
As well as the other bugs affecting Arq <= 5.9.6 there is also another issue
with the suid-root restorer binaries in Arq for Mac. There are three of them
and they are used to execute restores of backed up files from the various
cloud providers.
After reversing the inter-app protocol I discovered that the path to the
[read more...]
Arq Backup from Haystack Software is a great application for backing up macs and
windows machines. Unfortunately versions of Arq for mac before 5.9.7 are
vulnerable to a local root privilege escalation exploit.
The updater binary has a "setpermissions" function which sets the suid bit and
root ownership on itself but it suffers from a race condition that allows you to
[read more...]
Another day, another root privesc bug in this plugin. Not quite so serious this
time - this one is only exploitable if the user has the plugin installed but
VMware Fusion not installed. This is a fairly unlikely scenario but it's a
straight to root privesc with no user interaction so isn't the kind of thing
that should be shipping with any software.
[read more...]
I recently blogged about how the installation process of version 5.0.0 of this
plugin could be hihacked by a local attacker or malware in order to escalate
privileges to root. Hashicorp pushed some mitigations for this issue fairly
quickly but unfortunately 5.0.1 is still exploitable with a slightly different
approach.
[read more...]
Sera is a free app for mac and iOS that lets you unlock your mac automatically
when your iphone is within a configured proximity.
Unfortunately to facilitate this it stores the users login password in their
home directory at:
[read more...]
After three CVEs and multiple exploits disclosed to Hashicorp they have finally
upped their game with this plugin. Now the previously vulnerable non-root-owned
ruby code that get executed as root by the sudo helper is no more and the sudo
helper itself is one static Go binary with tightly-controlled parameters that
can't (as far as I can tell) be exploited on its own.
[read more...]
I've just discovered something totally batshit about sudo on macOS.
Spot the difference..
Linux:
[read more...]
I've published several root privilege escalation bugs this year in various Mac
applications. I decided to see how difficult it would be to escalate privileges
on a machine without actually using an exploit. Having access to a local
account with sudo rights gives us an enormous attack surface for escalation.
Many of the dotfiles, which are nearly always user-writable for obvious reasons,
[read more...]
I have previously disclosed a couple of bugs in Hashicorp's
vagrant-vmware-fusion plugin for vagrant.
Unfortunately the 4.0.23 release which was supposed to fix the previous bug I
reported didn't address the issue, so Hashicorp quickly put out another release
- 4.0.24 - after that (but didn't update the public changelog on github).
[read more...]
InsomniaX by Andrew James - http://semaja2.net - is really handy if you want to
leave your macbook running with the lid closed.
Unfortunately back in June of this year a security vulnerability in the loader
binary was disclosed that allows the loading of any arbitrary kernel extension
as a non-root user.
[read more...]
During recent months I have published two CVEs documenting root privilege
escalation vulnerabilities in the Hashicorp vagrant-vmware-fusion plugin.
Version 4.0.24 is now released which addresses those bugs, but it still
depends on an suid root binary being present in order for vagrant to
communicate with VMWare.
[read more...]
A couple of weeks ago I disclosed a local root privesc in Hashicorp's
vagrant-vmware-fusion plugin:
https://m4.rkw.io/blog/cve20177642-local-root-privesc-in-hashicorp-vagrantvmwarefusion--4020.html
The initial patch they released was 4.0.21 which unfortunately contained a bug
[read more...]
I'm a big fan of Hashicorp but this is an awful bug to have in software of their
calibre.
Their vagrant plugin for vmware fusion uses a product called Ruby Encoder to
protect their proprietary ruby code. It does this by turning the ruby code into
bytecode and executing it directly.
[read more...]
I blogged about Cylance a couple of times earlier this year after testing their
endpoint security product CylancePROTECT on MacOS. I ended up deleting both
blog posts shortly after posting them because I was concerned about
inaccuracies in the original post and wanted to give Cylance a chance to
respond to the issues I raised.
[read more...]
sudolikeaboss is a neat little program that acts as a command-line interface to
1Password Pro, effectively giving you a way to use 1password with the terminal.
This is useful but it does come with a security tradeoff as any application
running in the context of the user can potentially steal passwords if 1password
is in an unlocked state.
[read more...]
With CVE-2017-7643 I disclosed a command injection vulnerablity in the KLoader
binary that ships with Proxifier <= 2.18.
Unfortunately 2.19 is also vulnerable to a slightly different attack that
yields the same result.
[read more...]
Proxifier 2.18 (also 2.17 and possibly some earlier version) ships with a
KLoader binary which it installs suid root the first time Proxifier is run. This
binary serves a single purpose which is to load and unload Proxifier's kernel
extension.
Unfortunately it does this by taking the first parameter passed to it on the
[read more...]
S3 is really handy for server backups and at $0.023/GB/month it's incredibly
cost-effective.
However the default way most people use it is to simply spray their data
directly into an S3 bucket from the machine they're backing up. This works fine
right up until you get hacked by someone malicious who then has the ability to
[read more...]
Another hilarious and trivial rubygems exploit. The file ext//extconf.rb
gets executed as root during installation. A malicious gem could put code in
there that installs a backdoor.
Demonstration PoC: https://github.com/m4rkw/rubygems-poc2
[read more...]
RubyGems is a nice system, very easy to use and also easy to abuse. Anyone can push
a gem straight into the global namespace, even if the gem has the same name as a core
library.
This can be trivially abused to break into systems of anyone who isn't very careful
what gems they use (and let's be honest, that's probably a lot of developers :).
[read more...]
18 Jun 2015 08:44 | security
Don't you just hate it when an emergency happens with an important server and
access from your location is firewalled? Luckily if there's someone else local
to the machine who can execute commands for you, getting onto it is fairly
trivial.
First make sure that the machine you're on can accept connections from the
[read more...]