<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jon Oberheide</title>
    <link>https://jon.oberheide.org/</link>
    <description>Recent content on Jon Oberheide</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 15 May 2015 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://jon.oberheide.org/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Estimating Google’s Two-Factor (2SV) Adoption with Pen, Paper, and Poor Math</title>
      <link>https://jon.oberheide.org/blog/2015/05/15/estimating-googles-two-factor-2sv-adoption/</link>
      <pubDate>Fri, 15 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2015/05/15/estimating-googles-two-factor-2sv-adoption/</guid>
      <description>As a two-factor authentication vendor, reporters often ask us about the state of strong authentication. A common question that comes up is: How many people actually use two-factor authentication? What is the largest two-factor deployment?
Well, the largest scale deployments of two-factor are often consumer use cases. Despite having very low adoption rates in terms of % of total users, large service providers like Google, Microsoft, Apple, etc have hundreds of million of users, dwarfing the 2FA deployments of even the largest enterprise use cases.</description>
    </item>
    
    <item>
      <title>ReKey: Fixing Android&#39;s Master Key Vulnerability</title>
      <link>https://jon.oberheide.org/blog/2013/07/16/rekey-fixing-androids-master-key-vulnerability/</link>
      <pubDate>Tue, 16 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2013/07/16/rekey-fixing-androids-master-key-vulnerability/</guid>
      <description>Safely patch the Master Key vulnerabilities on your rooted Android device. Avoid waiting months or years for your carrier to deliver a security update. Created by your friendly neighborhood security experts at NEU and Duo Security.  What is ReKey? Earlier this month, RFP from BlueBox published a sneak preview of his upcoming BlackHat talk, detailing a vulnerability in the Android platform that affects nearly all Android devices. Soon after, a vulnerability of similar nature and impact was published on Chinese forum.</description>
    </item>
    
    <item>
      <title>Bypassing Google’s Two-Factor Authentication</title>
      <link>https://jon.oberheide.org/blog/2013/02/25/bypassing-googles-two-factor-authentication/</link>
      <pubDate>Mon, 25 Feb 2013 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2013/02/25/bypassing-googles-two-factor-authentication/</guid>
      <description>TL;DR - An attacker can bypass Google&amp;rsquo;s two-step login verification, reset a user&amp;rsquo;s master password, and otherwise gain full account control, simply by capturing a user&amp;rsquo;s application-specific password (ASP).
(With all due respect to Google&amp;rsquo;s &amp;ldquo;Good to Know&amp;rdquo; ad campaign)
Abusing Google&amp;rsquo;s (not-so-) Application-Specific Passwords Google’s 2-step verification makes for an interesting customer story in some of the challenges that go with such a wide-scale, comprehensive deployment of strong authentication.</description>
    </item>
    
    <item>
      <title>Early Results from X-Ray: Over 50% of Android Devices are Vulnerable</title>
      <link>https://jon.oberheide.org/blog/2012/09/12/early-results-from-x-ray-over-50-of-android-devices-are-vulnerable/</link>
      <pubDate>Wed, 12 Sep 2012 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2012/09/12/early-results-from-x-ray-over-50-of-android-devices-are-vulnerable/</guid>
      <description>Later this week, on Friday, I&amp;rsquo;ll be presenting the preliminary results from our X-Ray project at Rapid7&amp;rsquo;s United Summit conference in San Francisco.
X-Ray is Duo&amp;rsquo;s mobile app that performs &amp;ldquo;vulnerability assessment&amp;rdquo; on Android devices. Instead of scanning for malicious apps installed on the device like a mobile antivirus app would do (a nearly-intractable problem), X-Ray can identify known, yet unpatched, vulnerabilities in the mobile platform itself that could be exploited to take full control of users&amp;rsquo; phones.</description>
    </item>
    
    <item>
      <title>Announcing X-Ray For Android</title>
      <link>https://jon.oberheide.org/blog/2012/07/25/announcing-xray-for-android/</link>
      <pubDate>Wed, 25 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2012/07/25/announcing-xray-for-android/</guid>
      <description>The first public of X-Ray is now available! X-Ray 1.0 supports 8 of the most common privilege escalation vulnerabilities that affect the Android platform.
What is X-Ray? X-Ray allows you to scan your Android device for security vulnerabilities that put your device at risk.
X-Ray was developed by the security experts at Duo Security. We hope that X-Ray will empower users with knowledge of vulnerabilities on their devices and allow them to take action to improve their security.</description>
    </item>
    
    <item>
      <title>Exploit Mitigations in Android Jelly Bean 4.1</title>
      <link>https://jon.oberheide.org/blog/2012/07/16/exploit-mitigations-in-android-jelly-bean-4-1/</link>
      <pubDate>Mon, 16 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2012/07/16/exploit-mitigations-in-android-jelly-bean-4-1/</guid>
      <description>It&amp;rsquo;s been a few months since our analysis of the new ASLR support in Android ICS 4.0. Given that ICS 4.0 is old news now with the recent release of Jelly Bean 4.1, I thought it was about time to give an update on the ASLR capabilities as well as cover some of the other improvements in exploit mitigations present in Jelly Bean.
As a quick recap of the current state of ASLR in Android ICS:</description>
    </item>
    
    <item>
      <title>Dissecting the Android Bouncer</title>
      <link>https://jon.oberheide.org/blog/2012/06/21/dissecting-the-android-bouncer/</link>
      <pubDate>Thu, 21 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2012/06/21/dissecting-the-android-bouncer/</guid>
      <description>At SummerCon this year, Charlie Miller and I gave a talk on Android\&amp;rsquo;s Bouncer. Our presentation materials are now publicly available.

The week before our presentation, we also posted a teaser video showing our remote connect-back shell that we used to explore the Bouncer environment:
Enjoy!</description>
    </item>
    
    <item>
      <title>Announcing VPN Hunter</title>
      <link>https://jon.oberheide.org/blog/2012/03/21/announcing-vpn-hunter/</link>
      <pubDate>Wed, 21 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2012/03/21/announcing-vpn-hunter/</guid>
      <description>Today, we&amp;rsquo;re excited to announce the public launch of VPN Hunter!

VPN Hunter is a service that discovers and classifies the VPNs and other remote access services of any organization. Given only an organization&amp;rsquo;s domain name (eg. msu.edu), VPN Hunter can find a wide range of remote access services associated with that organization, such as:
 SSL VPNs: VPN Hunter will seek out SSL VPNs from vendors including Juniper, Cisco, Palo Alto, Citrix, Fortinet, F5, SonicWALL, Barracuda, Microsoft, and Array.</description>
    </item>
    
    <item>
      <title>ASLR in Android Ice Cream Sandwich 4.0</title>
      <link>https://jon.oberheide.org/blog/2012/02/27/aslr-in-android-ice-cream-sandwich-4-0/</link>
      <pubDate>Mon, 27 Feb 2012 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2012/02/27/aslr-in-android-ice-cream-sandwich-4-0/</guid>
      <description>When I first saw the release notes for the new Android Ice Cream Sandwich (ICS) platform, I was excited to see that Google mentioned that \&amp;ldquo;Android 4.0 now provides address space layout randomization\&amp;rdquo;:
For the uninitiated, ASLR randomizes where various areas of memory (eg. stack, heap, libs, etc) are mapped in the address space of a process. Combined with complementary mitigation techniques such as non-executable memory protection (NX, XN, DEP, W\\^X, whatever you want to call it), ASLR makes the exploitation of traditional memory corruption vulnerabilities probabilisticallydifficult.</description>
    </item>
    
    <item>
      <title>CSAW CTF 2011 Kernel Exploitation Challenge</title>
      <link>https://jon.oberheide.org/blog/2011/11/27/csaw-ctf-2011-kernel-exploitation-challenge/</link>
      <pubDate>Sun, 27 Nov 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/11/27/csaw-ctf-2011-kernel-exploitation-challenge/</guid>
      <description>My challenge for this year\&amp;rsquo;s NYU Poly CSAW CTF finals was a Linux kernel exploitation challenge disguised as a crypto challenge. The challenge and solution are described below.
The Challenge Each team is given unprivileged remote shell access to a Linux VM. There is a custom kernel module, SqueamishOssifrage.ko, loaded.The full source code of the kernel module is provided to the team. SqueamishOssifrage.c is reproduced below (and can be downloaded here):</description>
    </item>
    
    <item>
      <title>Tool releases: ksymhunter and kstructhunter</title>
      <link>https://jon.oberheide.org/blog/2011/09/08/tool-releases-ksymhunter-and-kstructhunter/</link>
      <pubDate>Thu, 08 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/09/08/tool-releases-ksymhunter-and-kstructhunter/</guid>
      <description>I\&amp;rsquo;m releasing a couple tools I use internally for Linux kernel exploit development: ksymhunter and kstructhunter. They\&amp;rsquo;re probably only useful for like ten people on the planet, but oh well, enjoy!
ksymhunter Kernel symbols are definitely a useful resource when writing Linux kernel exploits. Whether you\&amp;rsquo;re looking for particular structures in kernel memory or pulling the old commit_creds technique for convenient privilege escalation, having access to a kernel symbol table can be incredibly useful for an exploit writer.</description>
    </item>
    
    <item>
      <title>Stackjackin&#39; 2: Electric Boogaloo</title>
      <link>https://jon.oberheide.org/blog/2011/07/06/stackjackin-2-electric-boogaloo/</link>
      <pubDate>Wed, 06 Jul 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/07/06/stackjackin-2-electric-boogaloo/</guid>
      <description>Last month at SummerCon, Dan Rosenberg and I talked about our stackjacking technique for exploiting kernel vulnerabilities on grsecurity/PaX-hardened Linux kernels, in a presentation titled \&amp;ldquo;Stackjacking and Other Kernel Nonsense.\&amp;rdquo;
While we covered a lot of material from our original stackjacking presentation, we also presented on a couple new items extending the original stackjacking technique:
 We discussed about how enhancements to the vanilla Linux kernel, such as SMEP, may make stackjacking an effective approach for vanilla kernel exploitation.</description>
    </item>
    
    <item>
      <title>RSA-Proofing Our Duo Push Two-Factor Authentication</title>
      <link>https://jon.oberheide.org/blog/2011/06/21/rsa-proofing-our-duo-push-two-factor-authentication/</link>
      <pubDate>Tue, 21 Jun 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/06/21/rsa-proofing-our-duo-push-two-factor-authentication/</guid>
      <description>So&amp;hellip;RSA happened.
We haven&amp;rsquo;t commented much on the RSA breach, primarily because, instead of ambulance chasing, we&amp;rsquo;ve been busy working on some technology to prevent RSA-style attacks from impacting our Duo Push authentication, which is the subject of today&amp;rsquo;s post.
However, I think there are a couple interesting points that can be drawn from the RSA breach:
First, the RSA breach has shown that two-factor technology is incredibly effective. The attackers targeting Lockheed Martin and company had to plan an entirely separate operation to compromise RSA&amp;rsquo;s internal secrets to even get their foot in the door of the defense contractors.</description>
    </item>
    
    <item>
      <title>Duo Push: The Next Generation of Two-Factor Authentication</title>
      <link>https://jon.oberheide.org/blog/2011/06/08/duo-push-the-next-generation-of-two-factor-authentication/</link>
      <pubDate>Wed, 08 Jun 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/06/08/duo-push-the-next-generation-of-two-factor-authentication/</guid>
      <description>We&amp;rsquo;re excited to announce that we&amp;rsquo;ve officially launched Duo Push, a new authentication method that leverages modern smartphones to provide two-factor authentication that&amp;rsquo;s both resistant to the latest threats and is actually enjoyable to use!
But first, some background&amp;hellip;
When we first started Duo, we set out to create a two-factor authentication platform that was not only secure, but also easy to use and manage. We saw that two-factor authentication technologies were avoided not because they failed to offer an increase in security, but because their cost, management complexity, and user annoyance factor were prohibitively high.</description>
    </item>
    
    <item>
      <title>When Angry Birds Attack: Android Edition</title>
      <link>https://jon.oberheide.org/blog/2011/05/28/when-angry-birds-attack-android-edition/</link>
      <pubDate>Sat, 28 May 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/05/28/when-angry-birds-attack-android-edition/</guid>
      <description>It\&amp;rsquo;s been about six months since I reported a vulnerability in the Android mobile platform that allowed the unprompted installation of arbitrary applications with arbitrary permissions on a victim\&amp;rsquo;s device. While the vulnerability has long been fixed on Android handsets around the world, I\&amp;rsquo;ve yet to write up any technical details about it, and it\&amp;rsquo;s unlikely you\&amp;rsquo;ve heard of it unless you were present at our ShmooCon presentation earlier this year.</description>
    </item>
    
    <item>
      <title>Stackjacking Your Way to grsec/PaX Bypass</title>
      <link>https://jon.oberheide.org/blog/2011/04/20/stackjacking-your-way-to-grsec-pax-bypass/</link>
      <pubDate>Wed, 20 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/04/20/stackjacking-your-way-to-grsec-pax-bypass/</guid>
      <description>This April at Hackito Ergo Sum in Paris and Immunity\&amp;rsquo;s Infiltrate in Miami, Dan Rosenberg and I presented on a technique to exploit grsecurity/PaX-hardened Linux kernels. Read on for a brief overview of our presentation and a link to the full slides and PoC code.

The Stackjacking Technique In our slides, we presented a technique to exploit a grsecurity/PaX-hardened Linux kernel (eg. GRKERNSEC_HIGH) given the existence of two exploitation primitives:</description>
    </item>
    
    <item>
      <title>How I Almost Won Pwn2Own via XSS</title>
      <link>https://jon.oberheide.org/blog/2011/03/07/how-i-almost-won-pwn2own-via-xss/</link>
      <pubDate>Mon, 07 Mar 2011 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2011/03/07/how-i-almost-won-pwn2own-via-xss/</guid>
      <description>No, seriously.
The good: Google has patched a serious vulnerability I discovered in the Android web market.
The bad: Since the Android web market was launched earlier this year, it was possible to remotely install arbitrary applications with arbitrary permissions onto a victim\&amp;rsquo;s phone simply by tricking them into clicking a malicious link (either on their desktop OR phone). The exploit works universally across all Android devices, versions, and architectures.</description>
    </item>
    
    <item>
      <title>Exploiting Stack Overflows in the Linux Kernel</title>
      <link>https://jon.oberheide.org/blog/2010/11/29/exploiting-stack-overflows-in-the-linux-kernel/</link>
      <pubDate>Mon, 29 Nov 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/11/29/exploiting-stack-overflows-in-the-linux-kernel/</guid>
      <description>In this post, I\&amp;rsquo;ll introduce an exploitation technique for kernel stack overflows in the Linux kernel. Keep in mind this does not refer to buffer overflows on the kernel stack (whose exploitability is well understood), but rather the improper expansion of the kernel stack causing it to overlap with critical structures which may be subsequently corrupted. This is a vulnerability class in the Linux kernel that I do not believe have been exploited publicly in the past, but is relevant due to a recent vulnerability in the Econet packet family.</description>
    </item>
    
    <item>
      <title>CSAW CTF 2010 Kernel Exploitation Challenge</title>
      <link>https://jon.oberheide.org/blog/2010/11/02/csaw-ctf-kernel-exploitation-challenge/</link>
      <pubDate>Tue, 02 Nov 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/11/02/csaw-ctf-kernel-exploitation-challenge/</guid>
      <description>The finals for NYU Poly\&amp;rsquo;s CSAW CTF was this past weekend in New York City. I thought I would post the kernel exploitation challenge I developed for the final round. Feel free to try your hand at solving it!
The Setup Each team is given unprivileged remote shell access to a Linux VM. There is a vulnerable kernel module (csaw.ko) loaded into memory:
csaw@csaw ~ $ lsmod Module Size Used by csaw 1111 0  The kernel module exposes a /proc/csaw interface with which the team can interact with and attempt to exploit the vulnerability contained in the kernel module.</description>
    </item>
    
    <item>
      <title>Linux Kernel pktcdvd Memory Disclosure</title>
      <link>https://jon.oberheide.org/blog/2010/10/23/linux-kernel-pktcdvd-memory-disclosure/</link>
      <pubDate>Sat, 23 Oct 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/10/23/linux-kernel-pktcdvd-memory-disclosure/</guid>
      <description>A vulnerability in the pktcdvd driver in the Linux kernel allows for the disclosure of 4 bytes of kernel memory. In this post, I\&amp;rsquo;ll describe the tad bit of magic that\&amp;rsquo;s necessary to exploit the vulnerability on both 32-bit and 64-bit hosts to disclosure an arbitrary amount of kernel memory.
The Vulnerability The vulnerability was first introduced in 2.6.10 (way back in 2004) and was recently discovered in late September 2010 by Dan Rosenberg.</description>
    </item>
    
    <item>
      <title>Linux Kernel CAN SLUB Overflow</title>
      <link>https://jon.oberheide.org/blog/2010/09/10/linux-kernel-can-slub-overflow/</link>
      <pubDate>Fri, 10 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/09/10/linux-kernel-can-slub-overflow/</guid>
      <description>Ben Hawkes discovered a vulnerability in the Controller Area Network (CAN) packet family in the Linux kernel that results in a controllable overflow of a SLUB-allocated structure. As there\&amp;rsquo;s not a whole lot of modern, public examples of SLUB overflow exploits, I\&amp;rsquo;ll describe my exploit of the CAN vulnerability in detail.
The Vulnerability Ben provides the full details of the vulnerability in his blog post:
 A controller area network is backed by the AF_CAN datagram socket type.</description>
    </item>
    
    <item>
      <title>Dexcode Teardown of the Android SMS Trojan</title>
      <link>https://jon.oberheide.org/blog/2010/08/10/dexcode-teardown-of-the-android-sms-trojan/</link>
      <pubDate>Tue, 10 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/08/10/dexcode-teardown-of-the-android-sms-trojan/</guid>
      <description>I got my hands on a copy of the recent Android SMS trojan that commits toll fraud via SMS messages to premium Russian shortcodes. What follows is a brief teardown of the APK and disassembly of the trojan\&amp;rsquo;s dexcode and description of its malicious functionality. It\&amp;rsquo;s incredibly simple in nature so there\&amp;rsquo;s not much detail to go into.
Package: RU.apk Package Name: org.me.androidapplication1 Permissions Requested: android.permission.SEND_SMS Contents: ./classes.dex ./res ./res/drawable .</description>
    </item>
    
    <item>
      <title>A Peek Inside the GTalkService Connection</title>
      <link>https://jon.oberheide.org/blog/2010/06/28/a-peek-inside-the-gtalkservice-connection/</link>
      <pubDate>Mon, 28 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/06/28/a-peek-inside-the-gtalkservice-connection/</guid>
      <description>This posts aims to peek inside the Android GTalkService connection and observe its protocol. In particular, we\&amp;rsquo;re interested in the INSTALL_ASSET message and whether or not it is protected by any additional cryptographic signatures beyond the intended guarantees provided by the SSL transport.
A Brief Introduction to the GTalkService If you haven\&amp;rsquo;t read the previous post on the GTalkService and INSTALL_ASSET/REMOVE_ASSET, do so first.
In short, the GTalkService is a persistent connection maintained from your Android phone to Google\&amp;rsquo;s servers at all time.</description>
    </item>
    
    <item>
      <title>Remote Kill and Install on Google Android</title>
      <link>https://jon.oberheide.org/blog/2010/06/25/remote-kill-and-install-on-google-android/</link>
      <pubDate>Fri, 25 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/06/25/remote-kill-and-install-on-google-android/</guid>
      <description>In this post, I\&amp;rsquo;ll talk about the REMOVE_ASSET and INSTALL_ASSET mechanisms that can be invoked by Google via Android\&amp;rsquo;s GTalkService to not only remotely remove applications from an Android device but also remotely install new applications.
RootStrap Background So if you didn\&amp;rsquo;t check out my slides from SummerCon last week in NYC, I talked a bit about a program called RootStrap in the second half of my talk. RootStrap is intended as an example of an application that could be used to bootstrap a rootkit (hence the name).</description>
    </item>
    
    <item>
      <title>SummerCon 2010 Slides</title>
      <link>https://jon.oberheide.org/blog/2010/06/21/summercon-2010-slides/</link>
      <pubDate>Mon, 21 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/06/21/summercon-2010-slides/</guid>
      <description>SummerCon was absurdly fun. Thanks for redpantz for putting on a great event and all the NY guys for making it a blast. My talk was on a few random Android topics...slides are available below. I threw everything together about 12 hours before my talk so it\&amp;rsquo;s a little rough around the edges and a few slides have been redacted for now.</description>
    </item>
    
    <item>
      <title>SOURCE Boston Slides</title>
      <link>https://jon.oberheide.org/blog/2010/04/25/source-boston-slides/</link>
      <pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/04/25/source-boston-slides/</guid>
      <description>Just got back from SOURCE Boston. SOURCE was a great event: a great line-up of speakers, fun social events (thanks to Rapid7 and iSEC for sponsoring), and smooth execution (props to Stacy and Zach). My talk was on the topic of Linux kernel security, slides are available here.</description>
    </item>
    
    <item>
      <title>ReiserFS .reiserfs priv Vulnerability</title>
      <link>https://jon.oberheide.org/blog/2010/04/10/reiserfs-reiserfs_priv-vulnerability/</link>
      <pubDate>Sat, 10 Apr 2010 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2010/04/10/reiserfs-reiserfs_priv-vulnerability/</guid>
      <description>A vulnerability in the ReiserFS filesystem of the Linux kernel (versions &amp;lt;= 2.6.34-rc3) allows for the unprivileged reading and writing of objects in the .reiserfs_priv path. Leveraging extended attributes and POSIX file-based capabilities, this vulnerability allows for privilege escalation on systems with a ReiserFS filesystem.
The Vulnerability The vulnerability was introduced in May 2009 in commit 677c9b2. The commit was intended to simplify the logic around ReiserFS\&amp;rsquo;s privroot, a virtual path located at .</description>
    </item>
    
    <item>
      <title>Linux Kernel x86-64 Register Leak</title>
      <link>https://jon.oberheide.org/blog/2009/10/04/linux-kernel-x86-64-register-leak/</link>
      <pubDate>Sun, 04 Oct 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/10/04/linux-kernel-x86-64-register-leak/</guid>
      <description>A recent vulnerability in the Linux kernel (versions &amp;lt;= 2.6.32-rc1) allows the leakage of certain register contents. The x86-64 registers r8-r11 may be leaked to 32-bit unprivileged userspace applications that switch themselves into 64-bit mode.
Introduction In order to understand this vulnerability, we first need to talk a bit about the x86-64 architecture (aka amd64). One of the key design decisions of x86-64, which fueled its adoption over IA-64, is its backward compatibility with 32-bit code.</description>
    </item>
    
    <item>
      <title>Disabling Green Dam with Dam Burst</title>
      <link>https://jon.oberheide.org/blog/2009/09/28/disabling-green-dam-with-dam-burst/</link>
      <pubDate>Mon, 28 Sep 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/09/28/disabling-green-dam-with-dam-burst/</guid>
      <description>Dam Burst is a simple utility that allows an unprivileged user to disable the censorship functionality of the Green Dam Youth Escort software.
Dam Burst operates by injecting code into a running application and removing the Green Dam hooks that enable it to monitor and block user activity, effectively restoring the running application to its original uncensored state.
Unlike other tools that disable or uninstall the Green Dam software, Dam Burst does not require administrative privileges.</description>
    </item>
    
    <item>
      <title>Linux Kernel getname() Stack Memory Disclosures</title>
      <link>https://jon.oberheide.org/blog/2009/08/29/linux-kernel-getname-stack-memory-disclosures/</link>
      <pubDate>Sat, 29 Aug 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/08/29/linux-kernel-getname-stack-memory-disclosures/</guid>
      <description>In this post, we\&amp;rsquo;ll look at some kernel stack information disclosures in the getname() functions of several socket AFs recently discovered in the Linux kernel.
The Vulnerability The getname() function of an address family in the kernel is used to retrieve information about a given socket. This information, in the form of a sockaddr struct, is accessed from userspace through the getsockname(2) and getpeername(2) system calls for bound and connected sockets respectively.</description>
    </item>
    
    <item>
      <title>PolyPack at USENIX WOOT &#39;09</title>
      <link>https://jon.oberheide.org/blog/2009/08/10/polypack-at-usenix-woot-09/</link>
      <pubDate>Mon, 10 Aug 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/08/10/polypack-at-usenix-woot-09/</guid>
      <description>We just presented our PolyPack research today at the USENIX Workshop on Offensive Technologies (WOOT \&amp;lsquo;09) in Montreal, Canada. Links to the paper and presentation materials are after the jump.
Paper: /files/woot09-polypack.pdf
Presentation: /files/woot09-polypack-pres.pdf
From the PolyPack website:
\&amp;ldquo;PolyPack is a research project at the University of Michigan aimed at understanding the impact of malware packers on modern antivirus products. PolyPack highlights the failure of signature-based antivirus against common, widely available packers, investigates the role that diversity plays in the capabilities of both the packers and antivirus engines, and demonstrates the ease and efficacy with which an attacker could deploy an online packing service for nefarious purposes in a deployment model known as crimeware-as-a-service (CaaS).</description>
    </item>
    
    <item>
      <title>Hijacking Tinychat Screencasts</title>
      <link>https://jon.oberheide.org/blog/2009/07/12/hijacking-tinychat-screencasts/</link>
      <pubDate>Sun, 12 Jul 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/07/12/hijacking-tinychat-screencasts/</guid>
      <description>Tinychat is a sweet site that allows for simple chat, video conferencing, and screencasting. In this post, I\&amp;rsquo;ll detail how to hijack Tinychat screencasts by injecting images of your own.
I had played with Tinychat recently and decided to poke at it some more when mubix held a Metasploit-related screencast a couple days ago. Tinychat\&amp;rsquo;s multimedia features operate with a mix of JavaScript, Java, and Flash. Just looking at the initial JavaScript used to set up the screencasting applet set off some alarms:</description>
    </item>
    
    <item>
      <title>Analysis of a Trojaned ssh/sshd</title>
      <link>https://jon.oberheide.org/blog/2009/06/30/analysis-of-a-trojaned-ssh-sshd/</link>
      <pubDate>Tue, 30 Jun 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/06/30/analysis-of-a-trojaned-ssh-sshd/</guid>
      <description>Some information about a trojaned ssh client and sshd server discovered in a recent compromise. I didn\&amp;rsquo;t find any details on this particular OpenSSH backdoor via Google, so hopefully this information will be of use to anyone who runs into it on their boxes.
The compromise of a group of small number of Linux boxes in a University unit was first discovered when the attackers began launching ssh brute force attacks from the boxes.</description>
    </item>
    
    <item>
      <title>udev Local Privilege Escalation</title>
      <link>https://jon.oberheide.org/blog/2009/04/20/udev-local-privilege-escalation/</link>
      <pubDate>Mon, 20 Apr 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/04/20/udev-local-privilege-escalation/</guid>
      <description>A recent bug found by Sebastian Krahmer in udev has considerable security impact across a wide range of Linux distributions.
At the core of the vulnerability is the udevd daemon, responsible for receiving and handling various device events from the kernel. These events are delivered to udevd via netlink, a socket family (AF_NETLINK) commonly used for IPC between userspace applications and the kernel. However, netlink is not exclusively for kernel/userspace communication and can also be used to send messages between userspace applications.</description>
    </item>
    
    <item>
      <title>Panera Gift Card Security</title>
      <link>https://jon.oberheide.org/blog/2009/04/15/panera-gift-card-security/</link>
      <pubDate>Wed, 15 Apr 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/04/15/panera-gift-card-security/</guid>
      <description>A bit of information on Panera Bread\&amp;rsquo;s gift card security, or lack thereof.
Traditional gift card security often involves a randomized account number and a scratch-off PIN number. Randomized account numbers prevent attackers from guessing valid accounts numbers to use. Scratch-off PIN numbers prevent attackers from checking/using card numbers and from going in to brick-and-mortar stores to capture numbers of unactiviated cards on the racks (checkout clerks are advised to discard any cards that already have the PIN scratched-off or otherwise tampered with).</description>
    </item>
    
    <item>
      <title>dpkt Tutorial #4: AS Paths from MRT/BGP</title>
      <link>https://jon.oberheide.org/blog/2009/03/25/dpkt-tutorial-4-as-paths-from-mrt-bgp/</link>
      <pubDate>Wed, 25 Mar 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/03/25/dpkt-tutorial-4-as-paths-from-mrt-bgp/</guid>
      <description>Previously we looked at creating ICMP echo requests, parsing a PCAP file, and doing DNS spoofing with the dpkt framework. Today I will show how to parse the AS paths of BGP messages out of MRT routing dumps.
Parsing BGP routing information is fun. However, before projects like RouteViews were around, getting a global view of Internet routing in real-time simply wasn\&amp;rsquo;t possible. But thanks to RouteViews, we can extract useful routing information from the MRT dumps from a number of providers\&amp;rsquo; perspectives.</description>
    </item>
    
    <item>
      <title>ARBSEC 01 Wrap-Up</title>
      <link>https://jon.oberheide.org/blog/2009/03/07/arbsec-01-wrap-up/</link>
      <pubDate>Sat, 07 Mar 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/03/07/arbsec-01-wrap-up/</guid>
      <description>ARBSEC 01 was a great success! Thanks for everyone who came out, Bar Louie for hosting, and dugsong for taking some pictures! Be sure to join us for future ARBSEC meetings, the first Wednesday of each month.
jose, grue, steiza, svowels, mattbing, and more.
honey, jono, olga, bfields, nuxi, and more.
Dropping some Barracuda 0-day!</description>
    </item>
    
    <item>
      <title>ARBSEC Officially Launched</title>
      <link>https://jon.oberheide.org/blog/2009/02/19/arbsec-officially-launched/</link>
      <pubDate>Thu, 19 Feb 2009 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2009/02/19/arbsec-officially-launched/</guid>
      <description>ARBSEC, a CitySec-style meetup for security professionals in the Ann Arbor area, has been officially launched! Our first meeting, ARBSEC 01, will be at 6:00pm on March 4th at Bar Louie in Ann Arbor.
What An informal meetup of information security professionals in Ann Arbor. Unlike other meetups, you will not be expected to pay dues, \&amp;ldquo;join up\&amp;ldquo;, or present a zero-day exploit to attend.
Where ARBSEC 01 is held at Bar Louie, located at 401 E Liberty St, on the northeast corner of Liberty and Division.</description>
    </item>
    
    <item>
      <title>dpkt Tutorial #3: DNS Spoofing</title>
      <link>https://jon.oberheide.org/blog/2008/12/20/dpkt-tutorial-3-dns-spoofing/</link>
      <pubDate>Sat, 20 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/12/20/dpkt-tutorial-3-dns-spoofing/</guid>
      <description>In our first and second dpkt tutorials, we looked at the simple construction and parsing of packets respectively. Our third tutorial combines both parsing and construction of packets in a single utility for performing DNS spoofing (a la dsniff\&amp;rsquo;s dnsspoof).
dpkt is a sweet framework for creating and parsing packets. While dpkt doesn\&amp;rsquo;t have much documentation, once you get the hang of using one module, the rest fall into place fairly easily.</description>
    </item>
    
    <item>
      <title>VirusTotal Python Submission Script</title>
      <link>https://jon.oberheide.org/blog/2008/11/20/virustotal-python-submission-script/</link>
      <pubDate>Thu, 20 Nov 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/11/20/virustotal-python-submission-script/</guid>
      <description>Here is a simple python script for batch malware submissions to VirusTotal via its email interface. Simply replace the SMTP-related variables at the top of the script and you\&amp;rsquo;re ready to rock!
Download vtsubmit.py
#!/usr/bin/env python # vtsubmit.py # VirusTotal Submission Script # Jon Oberheide &amp;lt;jon@oberheide.org&amp;gt; # http://jon.oberheide.org import os, sys, email, smtplib, hashlib SMTP_HOST = &#39;_HOST_&#39; SMTP_PORT = 587 SMTP_USER = &#39;_USER_&#39; SMTP_PASS = &#39;_PASS_&#39; TO_ADDR = &#39;scan@virustotal.com&#39; FROM_ADDR = &#39;_EMAIL_&#39; def main(): if len(sys.</description>
    </item>
    
    <item>
      <title>dpkt Tutorial #2: Parsing a PCAP File</title>
      <link>https://jon.oberheide.org/blog/2008/10/15/dpkt-tutorial-2-parsing-a-pcap-file/</link>
      <pubDate>Wed, 15 Oct 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/10/15/dpkt-tutorial-2-parsing-a-pcap-file/</guid>
      <description>As we showed in the first dpkt tutorial, dpkt makes it simple to construct packets. dpkt is equally useful for parsing packets and files, so in this second tutorial we will demonstrate parsing a PCAP file and the packets contained within it.
dpkt is a sweet framework for creating and parsing packets. While dpkt doesn\&amp;rsquo;t have much documentation, once you get the hang of using one module, the rest fall into place fairly easily.</description>
    </item>
    
    <item>
      <title>Bash Brace Expansion Cleverness</title>
      <link>https://jon.oberheide.org/blog/2008/09/04/bash-brace-expansion-cleverness/</link>
      <pubDate>Thu, 04 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/09/04/bash-brace-expansion-cleverness/</guid>
      <description>Brace expansion is a nice feature in the Bash interpreter that happened to be exactly what I needed during an audit. A good thing to log away in memory in case you ever find yourself in a pen-test environment with similar constraints.
Bash Command Injection During an audit of a popular email appliance, I encountered a scenario where attacker controlled input was improperly sanitized and passed as the argument to a command in a shell interpreter.</description>
    </item>
    
    <item>
      <title>dpkt Tutorial #1: ICMP Echo</title>
      <link>https://jon.oberheide.org/blog/2008/08/25/dpkt-tutorial-1-icmp-echo/</link>
      <pubDate>Mon, 25 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/08/25/dpkt-tutorial-1-icmp-echo/</guid>
      <description>In this dpkt tutorial, I will demonstrate how to construct and send a simple ICMP echo packet.
dpkt is a sweet framework for creating and parsing packets. While dpkt doesn\&amp;rsquo;t have much documentation, once you get the hang of using one module, the rest fall into place fairly easily. I\&amp;rsquo;ll be doing a number of dpkt tutorials with simple tasks in hopes of providing some \&amp;ldquo;documentation by example\&amp;ldquo;. If you have any tasks you\&amp;rsquo;d like to see done in dpkt, drop me a line.</description>
    </item>
    
    <item>
      <title>Hardening DNS with IP TTLs</title>
      <link>https://jon.oberheide.org/blog/2008/08/10/hardening-dns-with-ip-ttls/</link>
      <pubDate>Sun, 10 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/08/10/hardening-dns-with-ip-ttls/</guid>
      <description>During Paul Vixie\&amp;rsquo;s talk at WOOT on some of the operational challenges of deploying source port randomization functonality in BIND, I started thinking of a few simple ways to harden DNS infrastructure against VU#800113 by leveraging the IP TTL value.
DNS Cache Poisoning In order to increase the resilience of DNS against Dan Kaminsky\&amp;rsquo;s cache poisoning attack, source port randomization has been added to recursive DNS resolvers. Now, in addition to guessing the 16-bit TXID, the attacker must also guess the 16-bit source port that the resolver used for the particular query.</description>
    </item>
    
    <item>
      <title>HotSec 2008 and USENIX Security 2008</title>
      <link>https://jon.oberheide.org/blog/2008/08/02/hotsec-2008-and-usenix-security-2008/</link>
      <pubDate>Sat, 02 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/08/02/hotsec-2008-and-usenix-security-2008/</guid>
      <description>I\&amp;rsquo;m back from San Jose finally and while I won\&amp;rsquo;t be breaking down a full review of HotSec and USENIX Security like I did for WOOT, I thought I would point out some of the more interesting presentations I was able to attend.
HotSec 2008 Panic Passwords: Authenticating under Duress
Jeremy Clark and Urs Hengartner, University of Waterloo
Some interesting duress schemes were presented such as 5-dictionary (using 5 distinct words from dictionary to prevent from invalid keys being interpreted as a duress key).</description>
    </item>
    
    <item>
      <title>WOOT 2008: The Good, The Bad, and The Ugly</title>
      <link>https://jon.oberheide.org/blog/2008/07/28/woot-2008-the-good-the-bad-and-the-ugly/</link>
      <pubDate>Mon, 28 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/07/28/woot-2008-the-good-the-bad-and-the-ugly/</guid>
      <description>Day one of my trip out to San Jose to attend the WOOT, HotSec, and USENIX Security trifecta is over. The 2nd Workshop on Offensive Technologies (WOOT) took place today and I\&amp;rsquo;ll be breaking it down with \&amp;ldquo;The Good, The Bad, and The Ugly\&amp;ldquo;.
I\&amp;rsquo;ll be discussing a few of the presentations at WOOT today: the ones that peaked my interest (The Good), the ones that didn\&amp;rsquo;t meet my expectations (The Bad), and the funny or miscellaneous topics that were discussed (The Ugly).</description>
    </item>
    
    <item>
      <title>PDPT: Passive DNS Port Test</title>
      <link>https://jon.oberheide.org/blog/2008/07/21/pdpt-passive-dns-port-test/</link>
      <pubDate>Mon, 21 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/07/21/pdpt-passive-dns-port-test/</guid>
      <description>The Passive DNS Port Test (PDPT) tool acts as a passive DNS monitor to flag resolvers that may be vulnerable to the cache poisoning issue described in CERT VU #800113. Similar to OARC\&amp;rsquo;s porttest, this monitor will judge the source port behavior of resolvers based on the standard deviation of observed source ports.
The Passive Approach Another VU #800113-related testing tool? Of course, we\&amp;rsquo;ve already seen a number of tools released to help administrators identify and patch vulnerable resolvers: Dan has the DNS Checker tool on his website to allow visitors to test their resolvers.</description>
    </item>
    
    <item>
      <title>UofM-Specific Phishing Campaign</title>
      <link>https://jon.oberheide.org/blog/2008/07/21/uofm-specific-phishing-campaign/</link>
      <pubDate>Mon, 21 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/07/21/uofm-specific-phishing-campaign/</guid>
      <description>While receiving phishing emails in my University inbox is a common occurrence, a recent email caught my eye due to its increased sophistication and University-specific information.
Email Contents Dear Umich.edu WEBLOGIN Subscriber To complete your Umich.edu WEBLOGIN account, you must reply to this email immediately and enter your password here (*********) Failure to do this will immediately render your email address deactivated from our database. You can also confirm your email address by logging into your Umich.</description>
    </item>
    
    <item>
      <title>Beware of Google App Engine SDK</title>
      <link>https://jon.oberheide.org/blog/2008/04/09/beware-of-google-app-engine-sdk/</link>
      <pubDate>Wed, 09 Apr 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/04/09/beware-of-google-app-engine-sdk/</guid>
      <description>An easily exploited vulnerability in Google App Engine\&amp;rsquo;s SDK can put your development servers at risk. While this bug is trivial to fix, engineers at Google have declined to address the vulnerability, so be cautious when using the SDK to develop your web service.
The Vulnerability The vulnerability exists in the mail API of the Google App Engine SDK, specifically in google/appengine/api/mail_stub.py:
def _SendSendmail(self, mime_message, popen=subprocess.Popen, sendmail_command=&#39;sendmail&#39;): try: tos = [mime_message[to] for to in [&#39;To&#39;, &#39;Cc&#39;, &#39;Bcc&#39;] if mime_message[to]] sendmail_command = &#39;%s %s&#39; % (sendmail_command, &#39; &#39;.</description>
    </item>
    
    <item>
      <title>Black Hat DC 2008 Briefings</title>
      <link>https://jon.oberheide.org/blog/2008/02/22/black-hat-dc-2008-briefings/</link>
      <pubDate>Fri, 22 Feb 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/02/22/black-hat-dc-2008-briefings/</guid>
      <description>Just arrived home from Washington, DC where I attended and presented at the Black Hat DC Briefings. I was fairly busy throughout the briefings and didn\&amp;rsquo;t make it to as many presentations as I hoped, but I thought I\&amp;rsquo;d detail a few of the more interesting ones.
Presentations of Interest Cracking GSM
David Hulton and Steve, Pico Computing, Inc.
David and Steve\&amp;rsquo;s presentation on GSM cracking definitely received the most attention of the briefings.</description>
    </item>
    
    <item>
      <title>Exploiting Live Virtual Machine Migration</title>
      <link>https://jon.oberheide.org/blog/2008/02/10/exploiting-live-virtual-machine-migration/</link>
      <pubDate>Sun, 10 Feb 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/02/10/exploiting-live-virtual-machine-migration/</guid>
      <description>Later this week, I\&amp;rsquo;ll be presenting at the Black Hat DC Briefings on weaknesses in the security of live virtual machine migration as implemented by popular vendors such as VMware and Xen. I thought I\&amp;rsquo;d provide a teaser in advance of my presentation detailing some of the topics that will be discussed.
A Trip Down Memory Lane If you take a look back at the past few years, we\&amp;rsquo;ve seen a systematic breaking down of isolation boundaries within our computing platforms as new technologies such as virtualization are employed.</description>
    </item>
    
    <item>
      <title>Detecting and Evading CWSandbox</title>
      <link>https://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/</link>
      <pubDate>Tue, 15 Jan 2008 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/</guid>
      <description>CWSandbox is one of the most comprehensive and full featured platforms for automated malware analysis. In this post, we detail how a malware sample being analyzed by CWSandbox may detect and evade the monitoring functionality of CWSandbox in order to disguise its malicious activities.
Introduction to CWSandbox CWSandbox is a platform developed by Sunbelt Software to automate the analysis of malware samples inside a controlled environment. It generates detailed reports of the runtime behavior of malware by monitoring the Win32 API calls a sample makes during its execution.</description>
    </item>
    
    <item>
      <title>xkcd Malware Visualization</title>
      <link>https://jon.oberheide.org/blog/2007/11/30/xkcd-malware-visualization/</link>
      <pubDate>Fri, 30 Nov 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/11/30/xkcd-malware-visualization/</guid>
      <description>A recent xkcd comic related to malware visualization is eerily similar to a system we\&amp;rsquo;re currently running at the University of Michigan.
The xkcd Comic Our System The system pictured is a production version of an architecture we proposed last year at HotSec \&amp;lsquo;07 (paper, presentation), essentially a network-based AV service. The backend analysis system consists of Xen-based virtualized containers which host various detection engines. Candidate executables/files are acquired by a lightweight host-agent (hooking CreateProcess on Win32, Dazuko on Linux/BSD, etc) and transmitted to the backend for analysis by a bajillion (ok, maybe only 12) antivirus and behavioral engines.</description>
    </item>
    
    <item>
      <title>Facebook XSS</title>
      <link>https://jon.oberheide.org/blog/2007/08/15/facebook-xss/</link>
      <pubDate>Wed, 15 Aug 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/08/15/facebook-xss/</guid>
      <description>Facebook\&amp;rsquo;s new-fangled applications functionality seemed like a ripe opportunity for nasty cross-site scripting bugs. As it turns out, multiple XSS vulnerabilities were present in the fb:swf tag of the Facebook Markup Language.
FBML XSS Vulnerabilities Given that Facebook seems to roll out tons of new functionality all the time without proper security testing and auditing, I was sure there had to be at least a few holes. I finally got the motivation to do some bug hunting while at USENIX Security, where I met a student, Adrienne Felt, from University of Virginia who was presenting at the poster session about an XSS vuln she had found in Facebook.</description>
    </item>
    
    <item>
      <title>USENIX Security, HotSec, WOOT 2007</title>
      <link>https://jon.oberheide.org/blog/2007/08/10/usenix-security-hotsec-woot-2007/</link>
      <pubDate>Fri, 10 Aug 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/08/10/usenix-security-hotsec-woot-2007/</guid>
      <description>I recently attended the USENIX Security Symposium in Boston, MA. I also attended two of the co-located workshops: the Workshop on Hot Topics in Security (HotSec), at which I presented a research paper focusing on a new paradigm for antivirus deployment, and the Workshop on Offensive Technologies (WOOT).
HotSec 2007 Workshop At HotSec, I presented our paper titled \&amp;ldquo;Rethinking Antivirus: Executable Analysis in the Network Cloud\&amp;ldquo;. The abstract follows:</description>
    </item>
    
    <item>
      <title>DIMVA 2007</title>
      <link>https://jon.oberheide.org/blog/2007/07/20/dimva-2007/</link>
      <pubDate>Fri, 20 Jul 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/07/20/dimva-2007/</guid>
      <description>I just got back from Switzerland, and despite numerous flight delays, cancellations, and lost luggage (thanks NWA!), it was a great trip. I presented some of my research at the Fourth International Conference on Detection of Intrusions and Malware and Vulnerability Assessment (DIMVA), and got to spend some vacation time in Zurich, Lucerne, and Milan, Italy.
Characterizing Dark DNS Behavior The research I presented at DIMVA focused on the measurement of dark DNS, or the DNS queries associated with darknet addresses.</description>
    </item>
    
    <item>
      <title>pynids 0.5a Update Released</title>
      <link>https://jon.oberheide.org/blog/2007/05/07/pynids-05a-update-released/</link>
      <pubDate>Mon, 07 May 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/05/07/pynids-05a-update-released/</guid>
      <description>pynids is a python wrapper for libnids, a Network Intrusion Detection System (NIDS) library offering sniffing, IP defragmentation, TCP stream reassembly and port scan detection. This release is an update to Michael Pomraning\&amp;rsquo;s 0.5 release to allow control of libnid\&amp;rsquo;s checksumming options.
Checksum Control Many modern NICs provide both TX and RX checksum offloading for TCP and other protocols. This offloading functionality may cause the BPF tap utilized by libnids to observe packets with incorrect checksums, and drop legitimate packets during their processing, believing them to be invalid due to the incorrect checksum.</description>
    </item>
    
    <item>
      <title>Cosign SSO Vulnerability</title>
      <link>https://jon.oberheide.org/blog/2007/04/12/cosign-sso-vulnerability/</link>
      <pubDate>Thu, 12 Apr 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/04/12/cosign-sso-vulnerability/</guid>
      <description>During an independent audit, I discovered a critical vulnerability in Cosign, a web-based single sign-on (SSO) platform which is currently in use at numerous large universities.
Introduction to Cosign Cosign is a web-based single sign-on system, written at the University of Michigan as part of the National Science Foundation Middleware Initiative (NMI). Cosign is deployed extensively at the University of Michigan and at educational institutions and other organizations around the world.</description>
    </item>
    
    <item>
      <title>T-Mobile WiFi Hotspots</title>
      <link>https://jon.oberheide.org/blog/2007/02/12/t-mobile-wifi-hotspots/</link>
      <pubDate>Mon, 12 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/02/12/t-mobile-wifi-hotspots/</guid>
      <description>Some random technical notes on the T-Mobile WiFi Hotspots offered at locations such as Starbucks. Since I spend a fair amount of time at the 24-hour Starbucks on Washtenaw, I often end up playing around with the Cisco WAP instead of actually doing work.
Cisco WAP Devices The T-Mobile hotspots are powered by a WAP and access control device from Cisco. I attempted several times to social engineer my way into the back up a Starbucks to get a picture of the actual equipment, but to no avail.</description>
    </item>
    
    <item>
      <title>RFID on Campus</title>
      <link>https://jon.oberheide.org/blog/2007/01/17/umich-rfid/</link>
      <pubDate>Wed, 17 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2007/01/17/umich-rfid/</guid>
      <description>Given my previous experience with the Mcard identification system at the University of Michigan, I was interested when I heard that RFID technology was being integrated into the Mcards. I will explore the Mcard RFID and other current uses of RFID on campus.
Mcard RFID The Mcards distributed for the University of Michigan Health System (UMHS) contain RFID technology from HID Corp. HID\&amp;rsquo;s Prox is a proximity-based access control system utilizing identification tags and readers that operate on the 125 khz frequency.</description>
    </item>
    
    <item>
      <title>Aimject 1.0 Released</title>
      <link>https://jon.oberheide.org/blog/2006/11/24/aimject-released/</link>
      <pubDate>Fri, 24 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2006/11/24/aimject-released/</guid>
      <description>Aimject facilitates man-in-the-middle attacks against AOL Instant Messenger\&amp;rsquo;s OSCAR protocol via a simple GTK interface. This 1.0 release brings Aimject functionality to the masses, being available for Linux, BSD, OS X, and Win32 platforms.
Introduction Instant messaging and real-time network communication are becoming increasingly prevalent in both personal lives and the workplace. While recent events have brought IM privacy to the attention of mass media, security in most systems has not been properly addressed.</description>
    </item>
    
    <item>
      <title>Google Safe Browsing</title>
      <link>https://jon.oberheide.org/blog/2006/11/13/google-safe-browsing/</link>
      <pubDate>Mon, 13 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2006/11/13/google-safe-browsing/</guid>
      <description>While Google\&amp;rsquo;s Safe Browsing service has been available for some time via the Google Toolbar, this feature will see wide deployment with the release of Mozilla Corp\&amp;rsquo;s Firefox 2. In this analysis, we will delve into the workings of Google\&amp;rsquo;s Safe Browsing service and its integration with Firefox.
Safe Browsing Google Safe Browsing (SB) is an initiative to curb malicious phishing activity by warning users when they navigate to a potential phishing site.</description>
    </item>
    
    <item>
      <title>pybgpdump 0.1 Released</title>
      <link>https://jon.oberheide.org/blog/2006/09/22/pybgpdump-released/</link>
      <pubDate>Fri, 22 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2006/09/22/pybgpdump-released/</guid>
      <description>I\&amp;rsquo;m happy to announce the availability of pybgpdump 0.1, a tool to assist in the rapid analysis of BGP routing datasets. It combines the functionality of libbgpdump and the ease of python to parse BGP messages from MRT dumps.
Features Currently, analysis of BGP routing data is primarily done in C, using either libbgpdump (RIPE) or route_btoa (Labovitz). While effective in their own right, they lack the ease, speed, and simplicity of python development.</description>
    </item>
    
    <item>
      <title>Mozilla Auto-Update Vulnerability</title>
      <link>https://jon.oberheide.org/blog/2006/09/15/mozilla-autoupdate-vuln/</link>
      <pubDate>Fri, 15 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2006/09/15/mozilla-autoupdate-vuln/</guid>
      <description>Mozilla\&amp;rsquo;s auto-update system is a feature recently added to Firefox and Thunderbird that promises to bring prompt security updates to users without manual interaction. Unfortunately, this feature contains a vulnerability allowing attackers to hijack the update process and deliver malicious updates, resulting in the victim\&amp;rsquo;s host being compromised.
Methodology To check for updates, Firefox contacts aus2.mozilla.org over HTTPS and requests the following XML file:
/update/1/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/update.xml  This URL template is stored in the app.</description>
    </item>
    
    <item>
      <title>mPrint Privacy Violations</title>
      <link>https://jon.oberheide.org/blog/2006/08/31/mprint-privacy-violations/</link>
      <pubDate>Thu, 31 Aug 2006 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2006/08/31/mprint-privacy-violations/</guid>
      <description>mPrint is a useful service provided by ITCS of the University of Michigan to allow web-uploaded documents to be printed on campus printers. Unfortunately, the designers of mPrint included several \&amp;ldquo;features\&amp;rdquo; that violate the privacy of its users without their knowledge.
Web Interface Previously, mPrint consisted of a simple form to upload documents and select a printer to send the job to. This was an extremely useful service if a user had internet access but did not have any University printers locally configured on their computer.</description>
    </item>
    
    <item>
      <title>Honeyd Remote Fingerprinting</title>
      <link>https://jon.oberheide.org/blog/2006/02/15/honeyd-remote-fingerprint/</link>
      <pubDate>Wed, 15 Feb 2006 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2006/02/15/honeyd-remote-fingerprint/</guid>
      <description>Honeyd is a low-interaction honeypot developed by Niels Provos designed to emulate services and personalities of virtual hosts and networks. As honeypot deployments must remain undetected to maintain their value, the ability of an attacker to effectively and remotely fingerprint Honeyd is a serious issue.
IP Fragment Reassembly According to the Internet Protocol specification (RFC 791), a correct IP stack implementation must identify corresponding fragments by matching the source address, destination address, identification number, and protocol number.</description>
    </item>
    
    <item>
      <title>Mcard Vulnerability</title>
      <link>https://jon.oberheide.org/blog/2005/04/06/umich-mcard-vuln/</link>
      <pubDate>Wed, 06 Apr 2005 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2005/04/06/umich-mcard-vuln/</guid>
      <description>After investigating the security of the Mcard magnetic card system at the University of Michigan, which is used for student and faculty identification cards, I discovered that it is trivial to forge anyone\&amp;rsquo;s Mcard given only their UMID/uniqname.
Introduction The University of Michigan\&amp;rsquo;s student/faculty identication cards, Mcards, are used for a variety of uses such as photo ID, meal plans, Entree Plus, TCF debit card, and access to dorms, computer labs, and other University buildings.</description>
    </item>
    
    <item>
      <title>Wolverine Access Vulnerability</title>
      <link>https://jon.oberheide.org/blog/2004/07/25/wolverine-access-vuln/</link>
      <pubDate>Sun, 25 Jul 2004 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/blog/2004/07/25/wolverine-access-vuln/</guid>
      <description>While arranging my class schedule at the University of Michigan, I discovered a vulnerability in Wolverine Access that allowed unrestricted access to the social security numbers, names, and addresses of every student in the University including recent alumni.
Introduction Wolverine Access (WA) is the University of Michigan\&amp;rsquo;s online records and registration system. It handles academic, financial, employment, and personal information of students, faculty, and staff. It is based on PeopleSoft software and maintained by MAIS.</description>
    </item>
    
    <item>
      <title>0trace.py</title>
      <link>https://jon.oberheide.org/0trace/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/0trace/</guid>
      <description>Description 0trace.py is a python port of Michal Zalewski&amp;rsquo;s 0trace hop enumeration tool. 0trace was originally announced on Bugtraq on January 6th:
I&#39;d like to announce the availability of a free security reconnaissance / firewall bypassing tool called 0trace. This tool enables the user to perform hop enumeration (&amp;quot;traceroute&amp;quot;) within an established TCP connection, such as a HTTP or SMTP session. This is opposed to sending stray packets, as traceroute-type tools usually do.</description>
    </item>
    
    <item>
      <title>Advisories</title>
      <link>https://jon.oberheide.org/advisories/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/advisories/</guid>
      <description>Some ancient advisories from a prior life:
CVE-2011-1352
Android &amp;lt; 2.3.6 PowerVR SGX Privilege Escalation Exploit
CVE-2010-4347
Linux Kernel &amp;lt; 2.6.37-rc2 ACPI custom_method Privilege Escalation Exploit
CVE-2011-1352
Android &amp;lt; 2.3.6 PowerVR SGX Privilege Escalation Exploit
CVE-2011-????
Linux Kernel grsecurity &amp;lt; 201109142336 Kernel Memory Disclosure
CVE-2010-4347
Linux Kernel &amp;lt; 2.6.37-rc2 ACPI custom_method Privilege Escalation Exploit
CVE-2010-4073
Linux Kernel &amp;lt; 2.6.37-rc1 compat_sys_semctl 92-Byte Stack Disclosure
CVE-2010-3848
Linux Kernel &amp;lt; 2.6.36.2 Econet Privilege Escalation Exploit</description>
    </item>
    
    <item>
      <title>Aimject</title>
      <link>https://jon.oberheide.org/aimject/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/aimject/</guid>
      <description>Description Aimject facilitates man-in-the-middle attacks against AOL Instant Messenger&amp;rsquo;s OSCAR protocol via a simple GTK interface.
Features  sign-on/off detection message interception/decoding message injection into arbitrary conversations synchronization of AIM sequence numbers and fnac ids cloning of font styles/screenname formatting to avoid detection selective muting of conversation participants integrated ARP/DNS spoofing  Dependencies  libdnet &amp;gt;= 1.10 libpcap &amp;gt;= 0.8.3 gtk+-2.0 &amp;gt;= 2.6 glib-2.0 &amp;gt;= 2.6 libglade-2.0 &amp;gt;= 2.5.1  Download Downloads have been archived.</description>
    </item>
    
    <item>
      <title>Dam Burst</title>
      <link>https://jon.oberheide.org/damburst/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/damburst/</guid>
      <description>Description Dam Burst is a simple utility that allows an unprivileged user to disable the censorship functionality of the Green Dam Youth Escort software. Dam Burst operates by injecting code into a running application and removing the Green Dam hooks that enable it to monitor and block user activity, effectively restoring the running application to its original uncensored state.
Unlike other tools that disable or uninstall the Green Dam software, Dam Burst does not require administrative privileges.</description>
    </item>
    
    <item>
      <title>flowscrub</title>
      <link>https://jon.oberheide.org/flowscrub/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/flowscrub/</guid>
      <description>Description flowscrub provides multi-format (pcap, netflow, silk), multi-layer (link, network, transport, application), and multi-attribute (ethernet.src, ip.ttl, tcp.sport, http.uri, etc) transformations (set, zero, mask, rand, hash, etc) for flexible and powerful flow anonymization using simple configuration files.
Sample Usage smi:/Volumes/pcap jonojono$ ls -lh -rw-r--r-- 1 root wheel 568M 24 Aug 2006 2006-08-24.01.pcap.gz -rw-r--r-- 1 root wheel 421M 24 Aug 2006 2006-08-24.02.pcap.gz -rw-r--r-- 1 root wheel 428M 24 Aug 2006 2006-08-24.03.pcap.gz .</description>
    </item>
    
    <item>
      <title>gdnet</title>
      <link>https://jon.oberheide.org/gdnet/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/gdnet/</guid>
      <description> Description gdnet is a graphical tool demonstrating the power and simplicity of the libdnet interface. Using the GTK+ toolkit, it provides a variety of networking features in a simple, easy-to-use interface.
Dependencies  libdnet &amp;gt;= 1.10 gtk+-2.0 &amp;gt;= 2.6 glib-2.0 &amp;gt;= 2.6 libglade-2.0 &amp;gt;= 2.5.1  Download Downloads have been archived.
Screenshot </description>
    </item>
    
    <item>
      <title>ncd.py</title>
      <link>https://jon.oberheide.org/ncd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/ncd/</guid>
      <description> Description ncd.py is a simple and fast implementation of Normalized Compress Distance (NCD). It was developed to replace CompLearn&amp;rsquo;s NCD which is overly complex and has severe memory leaks. ncd.py supports multiple compression algorithms (zlib, bz2) and compression levels (1-9). It will output an NxN distance matrix along with the input fileset to text or pickle formats.
Download Downloads have been archived.
Usage Output usage: ncd.py [OPTION] [FILE]... options: -h, --help show this help message and exit -c COMPRESSOR compressor algorithm (zlib, bz2) -l LEVEL compression level (1-9) -f FORMAT output format (text, pickle) -o OUTPUT output filename  </description>
    </item>
    
    <item>
      <title>Patents</title>
      <link>https://jon.oberheide.org/patents/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/patents/</guid>
      <description>Some granted patents from a prior life:
Network service for the detection, analysis and quarantine of malicious and unwanted files
Priority Date: 2007-08-06
[US-8621610-B2]
System and method of notifying mobile devices to complete transactions
Priority Date: 2010-03-03
[US-9544143-B2] [US-9992194-B2] [US-10129250-B2] [US-11172361-B2]
System and method of notifying mobile devices to complete transactions after additional agent verification
Priority Date: 2010-03-03
[US-9532222-B2] [US-10445732-B2] [US-10706421-B2] [US-11341475-B2]
System and method for embedded authentication
Priority Date: 2010-12-02</description>
    </item>
    
    <item>
      <title>Projects</title>
      <link>https://jon.oberheide.org/projects/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/projects/</guid>
      <description>Some ancient projects from a prior life:
 kstructhunter - Routines for hunting down kernel structs. ksymhunter - Routines for hunting down kernel symbols. Dam Burst - Unprivileged bypass of the Green Dam censorship software. dpkt - Fast, simple packet parsing in python. pdpt - Passive discovery of resolvers vulnerable to CERT VU #800113. flowscrub - Simple, powerful flow anonymization. vnclogger - Passive network keylogger for VNC/RFB connections. pynids - Updated release of libnids python wrapper.</description>
    </item>
    
    <item>
      <title>pybgpdump</title>
      <link>https://jon.oberheide.org/pybgpdump/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/pybgpdump/</guid>
      <description>Description pybgpdump combines the functionality of libbgpdump and the ease of python to parse BGP messages from MRT dumps.
Features  currently support for IPv4 BGP4MP_MESSAGE and BGP4MP_MESSAGE_32BIT_AS supports uncompressed, gzip&amp;rsquo;ed, and bzip2&amp;rsquo;ed files transparently includes sample programs, such as route_btoa.py  Dependencies  dpkt SVN/1.7  Download Downloads have been archived.</description>
    </item>
    
    <item>
      <title>pynids</title>
      <link>https://jon.oberheide.org/pynids/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/pynids/</guid>
      <description>Description pynids is a python wrapper for libnids, a Network Intrusion Detection System library offering sniffing, IP defragmentation, TCP stream reassembly and TCP port scan detection. Let your own python routines examine network conversations.
Changelog This pynids distribution is an updated version of Michael Pomraning&amp;rsquo;s 0.5 series. The 0.6 series brings updates to the bundled version of libnids (from 1.19 to 1.24), checksum disabling, packet timestamps, pcap stats, and a variety of fixes.</description>
    </item>
    
    <item>
      <title>Research</title>
      <link>https://jon.oberheide.org/research/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/research/</guid>
      <description>I completed my PhD in Computer Science at the University of Michigan with a thesis titled &amp;ldquo;Leveraging the Cloud for Software Security Services&amp;rdquo;. My advisor was Farnam Jahanian.
Below are some academic papers, security research, and invited talks:
2016 Security and Usability from the Frontlines of Enterprise IT
Jon Oberheide
USENIX Enigma 2016
San Francisco, CA, January 2016
[presentation] [event] Fundamentals, Fears, and Futures
Jon Oberheide
Michigan Cyber Summit</description>
    </item>
    
    <item>
      <title>VNC Keylogger</title>
      <link>https://jon.oberheide.org/vnclogger/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/vnclogger/</guid>
      <description>Description vnclogger.py acts as a simple pcap-based keylogger for VNC/RFB sessions. Combine it with your favorite MITM technique to sniff the keystrokes off existing VNC network connections. Key events are automatically logged to a file for each observed VNC connection.
Dependencies  dpkt pypcap pyevent  Download Downloads have been archived.
Usage and Example Output Example output of vnclogger.py: apollo ~ # ./vnclogger.py -i wlan0 listening on wlan0: port 5900 1229730196.</description>
    </item>
    
    <item>
      <title>Winnie</title>
      <link>https://jon.oberheide.org/winnie/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jon.oberheide.org/winnie/</guid>
      <description>Description winnie is a network scanner capable of detecting honeypot deployments using Honeyd &amp;lt;= 1.0. The issue causing the vulnerability is present in Honeyd&amp;rsquo;s IP fragment reassembly code which does not follow RFC 791. Honeyd incorrectly omitted the IP protocol number when searching for corresponding fragments for reassembly. By constructing a fragmented TCP SYN packet with a different IP protocol number in each packet, it is possible to elicit a SYN/ACK response from addresses monitored by Honeyd, thereby exposing the honeypot deployment.</description>
    </item>
    
  </channel>
</rss>