<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2672754150485551359</id><updated>2025-11-21T03:31:40.855-05:00</updated><category term="malware"/><category term="malware analysis"/><category term="conference"/><category term="hacks"/><category term="presentation"/><category term="attack"/><category term="training"/><category term="stories"/><category term="virus"/><category term="challenge"/><category term="exploits"/><category term="phish"/><category term="spam"/><category term="PDF"/><category term="SQL injection"/><category term="anti-virus"/><category term="document"/><category term="dumb criminals"/><category term="forensics"/><category term="wireless"/><category term="APT"/><category term="class"/><category term="crypto"/><category term="linux"/><category term="musing"/><category term="penetration testing"/><category term="physical security"/><category term="puzzle"/><category term="sandnet"/><category term="scam"/><category term="snort"/><category term="vulnerability"/><title type='text'>The Security Shoggoth</title><subtitle type='html'>Stories of an elder thing creation making its way in the world of information security.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>94</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-3399922933725388123</id><published>2018-02-20T19:33:00.004-05:00</published><updated>2018-02-21T08:54:55.998-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="document"/><category scheme="http://www.blogger.com/atom/ns#" term="malware analysis"/><title type='text'>The Case of the Tricky Tool</title><content type='html'>Looks can be deceiving. There are times when you think an analysis is going to be easy, and everything points in that direction, until you hit a snag. This happens. Sometimes you&#39;ve made an assumption that is wrong, sometimes there is a little trick the attacker is doing, and sometimes your tools fail you. This is one of those times.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
The Malware &lt;/h3&gt;
I received a malicious attachment in my email yesterday that uses a technique that I&#39;ve started to see more and more in documents - utilizing the metadata fields to hold some of the malicious code. The advantage to this technique is that it spreads the code throughout the document and makes it more difficult to analyze. Despite this, all signs pointed to this being an easy document to analyze. As you&#39;ll see, I was wrong.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://drive.google.com/drive/folders/1gLgXDVRqdK-VifZ5iE8rHdkN5tizq6Mt?usp=sharing&quot;&gt;&lt;b&gt;resume.doc&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
MD5: e618b9ef551fe10bf83f29f963468ade&lt;br /&gt;
SHA1: 93993320c636c884e6f1b53f9f878410efca02da&lt;br /&gt;
SHA256: d400d6392a17311460442e76b26950a0a07e8a85c210c31e87a042a659dc9c52&lt;br /&gt;
&lt;br /&gt;
Once more, I used &lt;a href=&quot;https://remnux.org/&quot; target=&quot;_blank&quot;&gt;REMNux &lt;/a&gt;to statically analyze the file. Yes, I could have executed it with &lt;a href=&quot;https://github.com/tehsyntx/loffice&quot; target=&quot;_blank&quot;&gt;Lazy Office Analyzer&lt;/a&gt; to speed up my analysis, but frankly my Windows VM is temporarily fubar&#39;d, so I was stuck doing it this way.&lt;br /&gt;
&lt;br /&gt;
The first step in my analysis was to figure out what type of document I was dealing with. Relying on the trusty-old &lt;i&gt;file&lt;/i&gt; command, we see that this is a composite document file. This means that we can use the &lt;a href=&quot;https://www.decalage.info/python/oletools&quot; target=&quot;_blank&quot;&gt;oletools suite&lt;/a&gt; to analyze it.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwlpmmP3F38zpSF8jklLDCg9cI_3AioLvsdKcIrtAT0PcFetE8lpeCXih6G6NKnDzvCla0TrAda476yXtn-ky_XYzyrKbjhFO3kAYx-p4YjacBMJddtqTnmOibLw7nPCBxSioKf49CTSbN/s1600/file.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;156&quot; data-original-width=&quot;889&quot; height=&quot;112&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwlpmmP3F38zpSF8jklLDCg9cI_3AioLvsdKcIrtAT0PcFetE8lpeCXih6G6NKnDzvCla0TrAda476yXtn-ky_XYzyrKbjhFO3kAYx-p4YjacBMJddtqTnmOibLw7nPCBxSioKf49CTSbN/s640/file.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Notice that &lt;i&gt;file &lt;/i&gt;also gives us some information obtained from the metadata of the document. The metadata of a document is stored inside the document and contains information about it, such as the last time it was saved, how many characters are in it, and the author. As analysts, we can use this information as indicators, to track actors across multiple documents, and sometimes to provide attribution.&lt;br /&gt;
&lt;br /&gt;
In this case, the author is set to &quot;Caleb Cheng&quot; and was last saved by the username &quot;caive&quot;. Are these legitimate? There&#39;s no way for us to tell as they could have been modified after the document was saved, but we could at least create a yara rule to track these usernames and see if they pop up in other documents!&lt;br /&gt;
&lt;br /&gt;
Speaking of &lt;a href=&quot;https://virustotal.github.io/yara/&quot; target=&quot;_blank&quot;&gt;Yara&lt;/a&gt;, my next step was to use the rules from the &lt;a href=&quot;https://github.com/Yara-Rules/rules&quot; target=&quot;_blank&quot;&gt;Yara Rules Project&lt;/a&gt; and see what they found inside of the document.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8boOohh-Tr4fu6j_oG7PMowHUhpzQ1-pF6LJx7oOT1S1CXcjc-iGFPSbCnLz8V3EZoiInNjHHJJuyariigdDoqXfGJyp6VHratA_HpBjhtR5qhZLCeI7ZPp0XSbh1hSiuCzCXI2J_K4jl/s1600/yara.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;160&quot; data-original-width=&quot;456&quot; height=&quot;112&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8boOohh-Tr4fu6j_oG7PMowHUhpzQ1-pF6LJx7oOT1S1CXcjc-iGFPSbCnLz8V3EZoiInNjHHJJuyariigdDoqXfGJyp6VHratA_HpBjhtR5qhZLCeI7ZPp0XSbh1hSiuCzCXI2J_K4jl/s320/yara.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Two of the Yara rules indicated the document contained embedded VBA code. Not surprising as many malicious documents use VBA to execute their second stage malware. Yara didn&#39;t find any embedded executables, so this probably meant the document downloads its next stage to execute. The only way to find out was to extract the VBA and analyze it.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href=&quot;https://github.com/decalage2/oletools/wiki/olevba&quot; target=&quot;_blank&quot;&gt;olevba.py &lt;/a&gt;script from the oletools suite can be used to extract VBA code from Office documents. Initially, I didn&#39;t give it any options to so I could see how the code looked natively. Fortunately in this document, the VBA code was pretty short and easy to understand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSxEOBDMp8u8BJqtRt0UIrIqe0Fr_yT8BMT0OpKtuFiPJfPlrVN1T_Aez_a1XaPx30vFDLg02ajFFIFAJOZSXeOl0KZddqH57VDCSEAWZhWZE5esowM8bFj8KoAF-pVJkgbXu6QrNpUFaA/s1600/vba.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;340&quot; data-original-width=&quot;1040&quot; height=&quot;208&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSxEOBDMp8u8BJqtRt0UIrIqe0Fr_yT8BMT0OpKtuFiPJfPlrVN1T_Aez_a1XaPx30vFDLg02ajFFIFAJOZSXeOl0KZddqH57VDCSEAWZhWZE5esowM8bFj8KoAF-pVJkgbXu6QrNpUFaA/s640/vba.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The code can be broken down as follows:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Declares a number of variables.&lt;/li&gt;
&lt;li&gt;Reads the value of the metadata title field with the &lt;i&gt;ThisDocument.BuiltInDocumentProperties(&quot;title&quot;)&lt;/i&gt; command.&lt;/li&gt;
&lt;li&gt;Converts the title to ASCII from Unicode. In reality, this is just converting the characters to their integer equivalents and putting them into an array.&lt;/li&gt;
&lt;li&gt;Loops through each letter of the title and subtracts 7 from its ASCII value.&lt;/li&gt;
&lt;li&gt;Converts the array back to Unicode. This is just converting the array back to a string.&lt;/li&gt;
&lt;li&gt;Reverses the string (e.g. turns &quot;abc&quot; to &quot;cba&quot;).&lt;/li&gt;
&lt;li&gt;Uses the shell() function to execute some of the string, after replacing and splitting it up with multiple values.&lt;/li&gt;
&lt;/ol&gt;
From this, it appeared that the title of the document contained the encoded command that gets run, so I wanted to see what this value was. There are multiple ways to do this, but one of the easiest is to use the metadata extraction tool &lt;a href=&quot;https://www.sno.phy.queensu.ca/~phil/exiftool/&quot; target=&quot;_blank&quot;&gt;&lt;i&gt;exiftool&lt;/i&gt;&lt;/a&gt;. This is where my trouble started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0z2B0a4WI_ny_Vk3cgGLqhb0quARHjSYiSzqsdqZ0vv7LgZE4xXql3tJHpVvpGPebPHNiKJNG97jvWRisAWrw4Emp8sWkIbHGxEut48S2q7xld3gvsehREi9pd8K1eANBtQTM_VMWPTzr/s1600/title.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;93&quot; data-original-width=&quot;1111&quot; height=&quot;52&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0z2B0a4WI_ny_Vk3cgGLqhb0quARHjSYiSzqsdqZ0vv7LgZE4xXql3tJHpVvpGPebPHNiKJNG97jvWRisAWrw4Emp8sWkIbHGxEut48S2q7xld3gvsehREi9pd8K1eANBtQTM_VMWPTzr/s640/title.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
As expected, the title field contained obfuscated text that needed to be decoded in order to see exactly what the malicious document was doing. Before I could decode it, however, I needed to extract it properly.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
The Problem &lt;/h3&gt;
&lt;br /&gt;
Exiftool will display periods for both actual period characters and binary data, so I first attempted to use some command-line fu in order to properly extract the characters. Normally, this can be done with the following command, which will convert all characters into a hex-encoded string that you can put directly into a python script.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;exiftool -title -b&amp;nbsp; resume.doc | hexdump -v -e &#39;&quot;\\&quot; &quot;x&quot; 1/1 &quot;%02X&quot; &#39; ;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
Since the VBA code was fairly straight-forward, I wrote a quick python script to decode it. However, when I ran the script I didn&#39;t get the results I expected. While I saw some PowerShell commands and an obfuscated URL, there were some binary characters that shouldn&#39;t have been there; it should have decoded cleanly to text.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGx00gKyBc-OmtSXBJAhKRG6U24Ic17i96aJpcbr9zMs4TtzDUs0VvLV_9e2UjPf0mptkHIMdavJpkxHURn8AKps003kf2GH5nZ2DFQagJVa__M75S6tUneFqPz1EubT7yFHA6xcAldw9_/s1600/binary.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;96&quot; data-original-width=&quot;1086&quot; height=&quot;52&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGx00gKyBc-OmtSXBJAhKRG6U24Ic17i96aJpcbr9zMs4TtzDUs0VvLV_9e2UjPf0mptkHIMdavJpkxHURn8AKps003kf2GH5nZ2DFQagJVa__M75S6tUneFqPz1EubT7yFHA6xcAldw9_/s640/binary.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is where I spent the next few hours trying to figure out what was going on.&lt;br /&gt;
&lt;br /&gt;
At first I thought the VBA code was doing some value conversions when it converted from Unicode to ASCII integer values; this was not the case. I tested this by writing some similar VBA code, launching it in Word, and debugging it to see the values before and after the conversion - all was as expected.&lt;br /&gt;
&lt;br /&gt;
Then I went over my python script to make sure I hadn&#39;t made a programming error (this would not have been the first time). Everything was good.&lt;br /&gt;
&lt;br /&gt;
Finally, I went back to the Word document itself to see if I could figure out if my command-line fu had worked correctly. Thats when I noticed something interesting. If I opened the document in a hex editor and compared the location where the title string was located at to what was extracted by exiftool, some of the binary characters were different.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt29sfle2KvxyljUtfk1ovE3ozZ9QncSR1Lqmn0YwdBgcXGC0XI68HU9M8k1Zu6X91KIYJ0pJ-i5EeaE8KacN-bewetPIhEWW9e5M2c6LQckqDIWRA6pXGcf4X70N4BI6nOXJ-h2bjRWhb/s1600/convert.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;379&quot; data-original-width=&quot;908&quot; height=&quot;265&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt29sfle2KvxyljUtfk1ovE3ozZ9QncSR1Lqmn0YwdBgcXGC0XI68HU9M8k1Zu6X91KIYJ0pJ-i5EeaE8KacN-bewetPIhEWW9e5M2c6LQckqDIWRA6pXGcf4X70N4BI6nOXJ-h2bjRWhb/s640/convert.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In the example above, the top hex dump is from the document itself and shows exactly what is within the document. The bottom is what exiftool extracted. You can see that in the original document, the highlighted byte was 0x83 but when exiftool extracted it, the byte was converted to 0xC6 0x92. This occurred multiple times in the extraction.&lt;br /&gt;
&lt;br /&gt;
I&#39;m currently not sure why exiftool did this. I tested it with multiple options and the latest version and all did the same thing. I&#39;m waiting to hear back from the developers to see if I found a bug.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, I was unable to come up with some genius command line fu to extract the real title string in one fell swoop. So how did I do it? I copied the bytes from the hexdump command above and did some copy and pasting to get it in the right format. Sometimes thats just the easiest option. If anyone comes up with anything, please let me know.&lt;br /&gt;
&lt;br /&gt;
I should also note that some other metadata extraction tools, like &lt;a href=&quot;https://github.com/decalage2/oletools/wiki/olemeta&quot;&gt;olemeta.py&lt;/a&gt; from oletools, crashed when attempting to extract the title. I suspect this is because they expect this to be a string and not have binary characters in it. &lt;br /&gt;
&lt;br /&gt;
The final python code I came up with is below and &lt;a href=&quot;https://drive.google.com/drive/folders/1gLgXDVRqdK-VifZ5iE8rHdkN5tizq6Mt?usp=sharing&quot;&gt;can be downloaded from here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQxuN8oxqp-vO_uf5qFibRtJa4qtflhfT_NG_E7N46Ae72LHA1kf0wDNbTgwPPIcdeJ-tp12Ah4pX1N0kIjB2ifRO-7Rhw7lFdelozkKk2_93W-NE6tWP7TeZpDis6atatPi-Nd7c5hXo/s1600/python.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;400&quot; data-original-width=&quot;1109&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQxuN8oxqp-vO_uf5qFibRtJa4qtflhfT_NG_E7N46Ae72LHA1kf0wDNbTgwPPIcdeJ-tp12Ah4pX1N0kIjB2ifRO-7Rhw7lFdelozkKk2_93W-NE6tWP7TeZpDis6atatPi-Nd7c5hXo/s640/python.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
When run, it gave me the output I expected. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd6vuppksw3Sh5t0QyfFBK_Vsle5sfmn3Pd7MRhTSZYSbLzM9foaS6qJBWt9Wk-BiTQADwnskF1uR3hRF2Fx9_w3yP8l-L5cNKS8QFPNoWjGVur4cu1-cZC4MbvMq_SYMg5IpjXWCQxrRq/s1600/decode.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;96&quot; data-original-width=&quot;1084&quot; height=&quot;56&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd6vuppksw3Sh5t0QyfFBK_Vsle5sfmn3Pd7MRhTSZYSbLzM9foaS6qJBWt9Wk-BiTQADwnskF1uR3hRF2Fx9_w3yP8l-L5cNKS8QFPNoWjGVur4cu1-cZC4MbvMq_SYMg5IpjXWCQxrRq/s640/decode.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As initially thought, the malicious document downloads an executable, saves it to the file system, and executes it. At the time of this writing, the file (&lt;a href=&quot;https://www.virustotal.com/#/file/236d49fc5343028cdc8362e0f9418328929b31bc5a17b9176dada0605b82a9a3/detection&quot; target=&quot;_blank&quot;&gt;61a5af5acea342ee5ca8dbd2fba0de06&lt;/a&gt;) is still accessible at that IP address. We&#39;ll save that analysis for another day.&lt;br /&gt;
&lt;br /&gt;
This analysis is a prime example as to why you should trust, but verify, your tool results. In the beginning I assumed that exiftool was extracting the data properly - and why not? It had never failed me before. However, when the results were not what I was expecting I had to dig deeper to see what the issue was. Without the knowledge on how to look into a file and compare what my tool was giving me to what I was actually getting, I wouldn&#39;t have been able to figure out that my tool was giving me incorrect data and work towards a process of getting it rectified.&lt;br /&gt;
&lt;br /&gt;
&lt;b id=&quot;update&quot;&gt;Update&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I posted on the &lt;a href=&quot;http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,8971.msg46234.html&quot;&gt;exiftool forum&lt;/a&gt; asking about the potential bug I found. Phil Harvey, the creator of exiftool, said the changing of the characters is because exiftool is attempting to convert the binary character to UTF-8. Unfortunately, outside of using the &lt;i&gt;-v4&lt;/i&gt; option to dump the output in hex and carve it back (which is what I did with hexdump), there is other workaround in exiftool at this time. I&#39;ll keep looking for a better way to do this going forward.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/3399922933725388123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/3399922933725388123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3399922933725388123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3399922933725388123'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2018/02/the-case-of-tricky-tool.html' title='The Case of the Tricky Tool'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwlpmmP3F38zpSF8jklLDCg9cI_3AioLvsdKcIrtAT0PcFetE8lpeCXih6G6NKnDzvCla0TrAda476yXtn-ky_XYzyrKbjhFO3kAYx-p4YjacBMJddtqTnmOibLw7nPCBxSioKf49CTSbN/s72-c/file.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-7820954287050224901</id><published>2018-01-29T09:00:00.000-05:00</published><updated>2018-01-29T17:11:03.429-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="document"/><category scheme="http://www.blogger.com/atom/ns#" term="malware analysis"/><category scheme="http://www.blogger.com/atom/ns#" term="training"/><title type='text'>Document Analysis - 2018-newsletters.xls</title><content type='html'>Today I received what was clearly a malicious document in my email, so to celebrate the publishing of my second &lt;a href=&quot;https://www.pluralsight.com/&quot; target=&quot;_blank&quot;&gt;PluralSight &lt;/a&gt;course - &lt;a href=&quot;https://app.pluralsight.com/library/courses/malware-analysis-malicious-documents-performing&quot; target=&quot;_blank&quot;&gt;Performing Malware Analysis on Malicious Documents&lt;/a&gt; - I thought I&#39;d go through the analysis of the document.&lt;br /&gt;
&lt;br /&gt;
The document came in as an attachment in email and was named 2018-newsletters.xls.&lt;br /&gt;
&lt;br /&gt;
MD5: &lt;a href=&quot;https://www.virustotal.com/#/file/4e8449f84509f4d72b0b4baa4b8fd70571baaf9642f47523810ee933e972ebd9/detection&quot; target=&quot;_blank&quot;&gt;46fecfa6c32855c4fbf12d77b1dc761d&lt;/a&gt;&lt;br /&gt;
SHA1: c028bc46683617e7134aa9f3b7751117a38a177d&lt;br /&gt;
SHA256: 4e8449f84509f4d72b0b4baa4b8fd70571baaf9642f47523810ee933e972ebd9&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://drive.google.com/file/d/1k8JrSzM-VdHYkP6OG-x8R5tg-oCRJJbx/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;You can download the file from here.&lt;/a&gt; The password is the last 8 characters of the filename, all lowercase.&lt;br /&gt;
&lt;br /&gt;
To analyze it, I&#39;m going to use &lt;a href=&quot;https://remnux.org/&quot; target=&quot;_blank&quot;&gt;REMNux&lt;/a&gt;, the malware analysis Linux distribution put together by Lenny Zeltser. This distro has all the tools we need to analyze the document.&lt;br /&gt;
&lt;br /&gt;
The first thing I need to do is figure out what type of Office document we&#39;re dealing with. By running the Linux &lt;i&gt;file &lt;/i&gt;command on the document, it tells us we&#39;re dealing with the &lt;a href=&quot;https://msdn.microsoft.com/en-us/library/dd942138.aspx&quot; target=&quot;_blank&quot;&gt;composite file format&lt;/a&gt;, or structure storage format, of Office. Knowing this helps us figure out what tools we can use on the file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPcwjl4yLLVFHao0k8EGJONK-IjKo9sl4ctwcFxeT_sh8Uw2eQg3tb4XQXVL6bxNkSZ6JEaR-11op3DXMY75LyLSl45GGpFZsgNZ8Tnz5ezWqOeIhSoi8KbhQmFViltawcPl3sjV-lr-WF/s1600/doc-file.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;208&quot; data-original-width=&quot;1154&quot; height=&quot;113&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPcwjl4yLLVFHao0k8EGJONK-IjKo9sl4ctwcFxeT_sh8Uw2eQg3tb4XQXVL6bxNkSZ6JEaR-11op3DXMY75LyLSl45GGpFZsgNZ8Tnz5ezWqOeIhSoi8KbhQmFViltawcPl3sjV-lr-WF/s640/doc-file.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Next, I want to see if there&#39;s anything interesting inside of the document. There are lots of tools that can be used for this, but for now I&#39;m just going to use &lt;a href=&quot;https://virustotal.github.io/yara/&quot; target=&quot;_blank&quot;&gt;Yara &lt;/a&gt;with the rules downloaded from the &lt;a href=&quot;http://yararules.com/&quot; target=&quot;_blank&quot;&gt;Yara Rules project&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidgDB-z2SrWp4pCZjI9nJE7l_ncxXQUUpL1Whmh4Wgvq22StW_OgIpA6rRBvXvEZqgfYSk5JNuAh98ZqOKHfS5KTLZg70E1B6IpETufu1d3ula9fwZP3xJ9pejp5gS2-6fe-dmmdJbrAOq/s1600/doc-yara.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;127&quot; data-original-width=&quot;1084&quot; height=&quot;74&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidgDB-z2SrWp4pCZjI9nJE7l_ncxXQUUpL1Whmh4Wgvq22StW_OgIpA6rRBvXvEZqgfYSk5JNuAh98ZqOKHfS5KTLZg70E1B6IpETufu1d3ula9fwZP3xJ9pejp5gS2-6fe-dmmdJbrAOq/s640/doc-yara.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Two yara rules get set off - &lt;i&gt;Contains_VBA_macro_code&lt;/i&gt; and &lt;i&gt;office_document_vba&lt;/i&gt;. Both rules indicate that the XLS contains VBA macro code. Macros are often used by attackers within documents to download additional malware or execute more code, such as PowerShell. If we didn&#39;t think this spreadsheet was malicious before, this certainly raises our suspicions.&lt;br /&gt;
&lt;br /&gt;
Next, I&#39;ll try and extract the macro code. My favorite tool for doing this is &lt;i&gt;olevba&lt;/i&gt;, which is part of the &lt;a href=&quot;https://www.decalage.info/python/oletools&quot; target=&quot;_blank&quot;&gt;oletools by decalage&lt;/a&gt;. When I run it, I use the &lt;i&gt;--deobf&lt;/i&gt; and &lt;i&gt;--decode&lt;/i&gt; options to allow olevba to attempt to deobfuscate and decode any strings it can.&lt;br /&gt;
&lt;br /&gt;
The resulting file is an excellent example of the obfuscation that attackers will go to in order to try and hide what they are doing from analysts. Lets look at a few of the functions and obfuscation performed.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4awR6OjBXQazOrFZUUnI6eBO8dNdj_iIJztNlBn_ejr0xX-FbSLMaeMOdLn4SPDWvSqmS8HPRlQIV8IajLLcKah59fI-DGIb_cljvoqMiT7Bju1LBzUA71si_wGFWh6Wid-H8ZFgmVZ0K/s1600/doc-vba.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;554&quot; data-original-width=&quot;1068&quot; height=&quot;206&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4awR6OjBXQazOrFZUUnI6eBO8dNdj_iIJztNlBn_ejr0xX-FbSLMaeMOdLn4SPDWvSqmS8HPRlQIV8IajLLcKah59fI-DGIb_cljvoqMiT7Bju1LBzUA71si_wGFWh6Wid-H8ZFgmVZ0K/s400/doc-vba.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;In the example to the right, the first function that is executed by the XLS is Workbook_Open(). This function calls the VBA &lt;i&gt;Shell() &lt;/i&gt;function; Shell() is used to execute operating system commands. The parameters to the Shell() function are other functions, which lead to other functions, which lead to obfuscated strings.&lt;br /&gt;
&lt;br /&gt;
We can manually trace through the code to figure out what this is doing.&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;The first parameter to Shell() is a function call to a function named tabretable().&lt;/li&gt;
&lt;li&gt;tabretable() calls 3 different functions, one of them being sunafeelo().&lt;/li&gt;
&lt;li&gt;sunafeelo() has 4 lines in it.&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;The first line sets a variable to the string &quot;external hard&quot;.&lt;/li&gt;
&lt;li&gt;The second line sets a variable to the string &quot;cM&quot; using the Chr() function. Chr() returns the ASCII equivalent of the number given to it. This is a technique that is often used by attackers to obfuscate strings.&lt;/li&gt;
&lt;li&gt;The third line creates the string &quot;D.ex&quot; by combining Chr(), a period, and the results from the Left() function. In this case, the Left() function returns the first 2 letters from the left side of the string &quot;external hard&quot;, or &quot;ex&quot;.&lt;/li&gt;
&lt;li&gt;The last line combines all of these together, along with the results from the Right() function. Here, Right() returns the right-most two characters from the string &quot;free &quot;, which are &quot;e &quot; (e plus a space).&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
The result from the first parameter to Shell() is &quot;cMD.exe /c &quot;, so we know its creating a command to execute on the system. I could go through all of the rest of the code to figure it out, but why should I if there are tools that will do it for me?&lt;br /&gt;
&lt;br /&gt;
To do this, I&#39;ll use &lt;a href=&quot;https://github.com/tehsyntx/loffice&quot; target=&quot;_blank&quot;&gt;Lazy Office Analyzer&lt;/a&gt; (LOA). LOA works by setting breakpoints on various APIs and recording their parameters. This allows us to watch when the malicious document writes files, connects to URLS, and most importantly, executes commands.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNAjqfxetD9MN8TQWQBGXRBXgaE7aWB6xKjvbt6_mJe12RETwC25rAn8-hlKvdQfZkAzRSUEVNnnbLtsQsP3JboB99ZpKbAtL-haf_GPYmqQQnJtSjBqFgnXe1pmN34ZcogUJSVGMw5yD_/s1600/lao.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;684&quot; data-original-width=&quot;912&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNAjqfxetD9MN8TQWQBGXRBXgaE7aWB6xKjvbt6_mJe12RETwC25rAn8-hlKvdQfZkAzRSUEVNnnbLtsQsP3JboB99ZpKbAtL-haf_GPYmqQQnJtSjBqFgnXe1pmN34ZcogUJSVGMw5yD_/s320/lao.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In the image above (click to enlarge), you can see how I ran LAO. In the end, the document executes obfuscated PowerShell that we could go in and deobfuscate some more. However, we see the URL hxxps://softarez[.]cf/mkeyb[.]gif in the code, which we can infer means that it will be downloading and executing whatever is returned.&lt;br /&gt;
&lt;br /&gt;
This site was not up at the time I analyzed it, but fortunately it was analyzed by someone on &lt;a href=&quot;https://www.hybrid-analysis.com/sample/6eb66f0451bbc8b6658a193b7ad604033786ea089be9d7f101218a809d0a16e1?environmentId=100&quot; target=&quot;_blank&quot;&gt;hybrid-analysis&lt;/a&gt;, and shows that the downloaded files is a Windows executable, which &lt;a href=&quot;https://www.virustotal.com/#/file/6eb66f0451bbc8b6658a193b7ad604033786ea089be9d7f101218a809d0a16e1/detection&quot; target=&quot;_blank&quot;&gt;VirusTotal indicates is a Zbot variant&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
However, with regards to analyzing the malicious Excel file, we&#39;re done. Since documents are typically used as the first stage of a malware compromise - in other words, they download or drop more malware to execute - we&#39;ve figured out it does. The malicious document downloads an executable and runs it.&lt;br /&gt;
&lt;br /&gt;
From here, we can start looking on our network for anyone accessing this site, as they will most likely have opened this document.&lt;br /&gt;
&lt;br /&gt;
As I stated in the beginning of this post, &lt;a href=&quot;https://app.pluralsight.com/library/courses/malware-analysis-malicious-documents-performing&quot; target=&quot;_blank&quot;&gt;my second PluralSight course&lt;/a&gt; was published and teaches how to analyze malicious documents. If you want to learn how to do everything I discussed here, plus a lot more, go check out the course. I welcome any feedback on it - good or bad - and any new courses you&#39;d like to see from me.&lt;br /&gt;
&lt;h3&gt;
IOCs&lt;/h3&gt;
&lt;br /&gt;
&lt;h4&gt;
2018-newslettes.xls&lt;/h4&gt;
MD5: 46fecfa6c32855c4fbf12d77b1dc761d&lt;br /&gt;
SHA1: c028bc46683617e7134aa9f3b7751117a38a177d&lt;br /&gt;
SHA256: 4e8449f84509f4d72b0b4baa4b8fd70571baaf9642f47523810ee933e972ebd9&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;URLs&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;hxxps://softarez[.]cf/mkeyb[.]gi &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/7820954287050224901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/7820954287050224901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7820954287050224901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7820954287050224901'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2018/01/document-analysis-2018-newslettersxls.html' title='Document Analysis - 2018-newsletters.xls'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPcwjl4yLLVFHao0k8EGJONK-IjKo9sl4ctwcFxeT_sh8Uw2eQg3tb4XQXVL6bxNkSZ6JEaR-11op3DXMY75LyLSl45GGpFZsgNZ8Tnz5ezWqOeIhSoi8KbhQmFViltawcPl3sjV-lr-WF/s72-c/doc-file.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-8637260909081571123</id><published>2017-04-04T15:47:00.003-04:00</published><updated>2017-04-04T15:47:29.587-04:00</updated><title type='text'>Malware Analysis Course on Pluralsight!</title><content type='html'>Since 2010, I have been running my Introduction to Malware Analysis course at various conferences and organizations, and have taught over 200 students. I&#39;ve heard from many of my former students that they&#39;ve used what they learned in the course to help them successfully combat malware in their organizations - some have even gone into the malware analysis field themselves!&lt;br /&gt;
&lt;br /&gt;
I only teach my course once or twice a year; for the past few years it has only been at &lt;a href=&quot;https://www.derbycon.com/&quot; target=&quot;_blank&quot;&gt;DerbyCon&lt;/a&gt;. The problem with that is the material sits unused for most of the year, with no one gaining benefit from it.&lt;br /&gt;
&lt;br /&gt;
So, when I was approached by the great people at &lt;a href=&quot;https://www.pluralsight.com/&quot; target=&quot;_blank&quot;&gt;Pluralsight &lt;/a&gt;to record my course and put it online, I jumped at the chance. It was a long process to do, but well worth it. This week, the course was released under the name &lt;a href=&quot;https://www.pluralsight.com/courses/malware-analysis-fundamentals&quot; target=&quot;_blank&quot;&gt;Malware Analysis Fundamentals&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.pluralsight.com/courses/malware-analysis-fundamentals&quot; target=&quot;_blank&quot;&gt;Malware Analysis Fundamentals&lt;/a&gt; is an online version of my Intro to Malware Analysis course. The course takes you from knowing nothing about malware analysis to being able to manually analyze malware in a safe and consistent manner. Like my regular course, you still analyze real malware using the techniques used by incident responders everywhere.&lt;br /&gt;
&lt;br /&gt;
The one thing that I found out while creating this was that its not possible to put everything from my sit-down course into the online version. If I did, the course would have been at least double the length and no one wants to sit through that! Therefore, Malware Analysis Fundamentals gets to the essence of the material and teaches the fundamentals needed to get the job done.&lt;br /&gt;
&lt;br /&gt;
There is also more to come. I already have plans for other MA courses at Pluralsight, branching into more advanced techniques and courses on analyzing alternative forms of malware.&lt;br /&gt;
&lt;br /&gt;
I hope you enjoy the course and I look forward to hearing everyone&#39;s thoughts on the course! </content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/8637260909081571123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/8637260909081571123' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/8637260909081571123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/8637260909081571123'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2017/04/malware-analysis-course-on-pluralsight.html' title='Malware Analysis Course on Pluralsight!'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-7788776171292332347</id><published>2016-11-15T15:27:00.003-05:00</published><updated>2016-11-15T15:27:39.506-05:00</updated><title type='text'>Malicious DNS Namespace Collisions</title><content type='html'>Over the last few weeks, I&#39;ve noticed a problem come up again in multiple places that I first saw many years ago and apparently is still very common - DNS Namespace Collisions. &lt;a href=&quot;https://icannwiki.com/Name_Collision&quot; target=&quot;_blank&quot;&gt;DNS namespace collisions&lt;/a&gt; occur when a private domain name is able to be resolved on the public Internet; whether it is intentional or not. ICANN has a lot of information on this if you are looking for a deep dive on the subject; instead I will be focusing on the potential security issues.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
The Issue &lt;/h4&gt;
&lt;br /&gt;
Let&#39;s start with an example. Suppose you own the Internet domain example.org. This is your Internet presence - all your emails are @example.org, your web servers are in this domain, even your Active Directory domain is corp.example.org. All is well in the world.&lt;br /&gt;
&lt;br /&gt;
When configuring hosts in your organization, one of the things you will do is set up your DNS suffix search list. This is the list of domains your systems will add to a host name if they can&#39;t initially resolve it. In our scenario, your DNS suffix search list is example.org and corp.example.org. So, if a host attempts to resolve mailserver, they might also try mailserver.example.org and mailserver.corp.example.org.&lt;br /&gt;
&lt;br /&gt;
And let&#39;s also suppose that you follow good security practices and have split DNS so no one on the Internet can resolve your internal host names. You also do not allow internal hosts to directly resolve Internet host names.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYWz9rJzBMYcytjqUYVPGZ-Ck3rSXFLuln78QA3K6hbEIluKLq5xpU3TPLZrWci0YozWQJcVfmT9V_PmkOnMNWBTEEDaonXKpa_AIU-WryAe0TlNMqcMipHzA573HRdUF53OcxEYkCn6an/s1600/domain.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;289&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYWz9rJzBMYcytjqUYVPGZ-Ck3rSXFLuln78QA3K6hbEIluKLq5xpU3TPLZrWci0YozWQJcVfmT9V_PmkOnMNWBTEEDaonXKpa_AIU-WryAe0TlNMqcMipHzA573HRdUF53OcxEYkCn6an/s640/domain.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Your happy domain.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Any issues so far? Nope. The computer gods are smiling upon us.&lt;br /&gt;
&lt;br /&gt;
As your organization expands, you find the need to add a new internal domain so you choose example.com. Uh oh! You don&#39;t own that domain on the Internet, but you&#39;ll only be using it on the internal network. Not an issue, right? No, it is a problem.&lt;br /&gt;
&lt;br /&gt;
The issue lies in that you do not own the domain example.com but are using it internally; this is a DNS name collision. The issue comes into play soon as a host accesses the Internet directly (from home, a client&#39;s network, etc.). When this happens, they won&#39;t be able to resolve hosts with the suffix example.org or corp.example.org - but as soon as they try to resolve with the suffix example.com (which you don&#39;t own) they will succeed.&lt;br /&gt;
&lt;br /&gt;
So how is this an issue? In the best case, it isn&#39;t. If your hosts try to resolve something that example.com can&#39;t resolve then aside from some information leakage things should be OK. However, what if they try to resolve something that does exist in example.com and then try to start using it?&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPJ0nTmx4k0tPa5kxedcH3HCzfuQpC-5VgIgueGasEbATr1YRDnqQmw-iVvV7GEpfVwbFRG7yimzI0JGqUTgwDfsiS6n2LlU13QjHc0gWp9AjdPNZCXyoumlRxf6BJ4YcRSSLU00KFffJO/s1600/collision.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPJ0nTmx4k0tPa5kxedcH3HCzfuQpC-5VgIgueGasEbATr1YRDnqQmw-iVvV7GEpfVwbFRG7yimzI0JGqUTgwDfsiS6n2LlU13QjHc0gWp9AjdPNZCXyoumlRxf6BJ4YcRSSLU00KFffJO/s320/collision.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;On the Internet, only example.com will resolve.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
For example, our hosts are on the Internet and are trying to the internal mail server host name. The only one that is resolvable is mailserver.example.com, which we don&#39;t own. They then start to send emails - your private, internal-only emails - through a server you don&#39;t own. See the issue now?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This only happens if that host name already exists in the external domain, right? Wrong.&lt;br /&gt;
&lt;br /&gt;
If &lt;a href=&quot;https://en.wikipedia.org/wiki/Wildcard_DNS_record&quot; target=&quot;_blank&quot;&gt;DNS wildcards&lt;/a&gt; are used, now all of a sudden &lt;i&gt;any &lt;/i&gt;host name is being resolved beyond your control and your hosts are sending data to potentially malicious servers. Think of how easy it would be to gain information on your organization or compromise your hosts if I could tell your hosts where their proxy, active directory, or mail servers were when they were outside your organization. And how would you ever know?&lt;br /&gt;
&lt;br /&gt;
This is &lt;b&gt;not &lt;/b&gt;a theoretical attack. In the last few weeks I have found multiple organizations where this is occurring. Specifically, they are using domains internally that they do not own, their hosts go outside their organization and are resolving these domains to malicious IP addresses.&lt;br /&gt;
&lt;br /&gt;
And there are organizations that are squatting on multiple domains (including obviously internal ones) and setting up wildcard DNS to point them to their own IPs. For what purpose? I don&#39;t know, but I suspect it can&#39;t be good.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Detection, Prevention, and Response&lt;/h4&gt;
&lt;br /&gt;
So how can you detect this? A few ways:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Create a list from your DNS for all domains being used by your clients related to your organization. Make sure you own all those domains. If not, what IPs do they resolve to? Consider switching from them. (This is also a good &lt;a href=&quot;http://www.threathunting.net/&quot; target=&quot;_blank&quot;&gt;threat hunting&lt;/a&gt; technique!)&lt;/li&gt;
&lt;li&gt;Windows hosts like to resolve wpad/wpad.dat when browsing. The DNS search suffix tends to get added to that, so look for any HTTP requests to the Internet for wpad.dat, then look for what domains the requests are to. Even if they are not your own hosts (e.g. consultants), you should still be concerned as they could be used as a pivot point into your network.&lt;/li&gt;
&lt;/ol&gt;
By the way, wpad.dat is &lt;a href=&quot;https://www.us-cert.gov/ncas/alerts/TA16-144A&quot; target=&quot;_blank&quot;&gt;not something&lt;/a&gt; you want your hosts doing this with.&lt;br /&gt;
&lt;br /&gt;
Prevention of this is actually pretty easy - just make sure you own any domain you use, or use ones that do not have Internet TLDs. (However, from my research there may be issues on this with some versions of Windows.)&lt;br /&gt;
&lt;br /&gt;
If you do find this happening on your network, I would suggest immediately looking to see what your hosts are resolving, what data is going out, and more importantly, what is coming back in.&lt;br /&gt;
&lt;br /&gt;
I would also recommend blocking the IP addresses and external domains on your Internet devices to prevent internal hosts from accessing them.&lt;br /&gt;
&lt;br /&gt;
In the end, this is a big problem that I don&#39;t think many realize is going on. Fortunately, its fairly easy to detect and start investigating. Doing it now will probably save you a lot of hurt in the long run.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/7788776171292332347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/7788776171292332347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7788776171292332347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7788776171292332347'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2016/11/malicious-dns-namespace-collisions.html' title='Malicious DNS Namespace Collisions'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYWz9rJzBMYcytjqUYVPGZ-Ck3rSXFLuln78QA3K6hbEIluKLq5xpU3TPLZrWci0YozWQJcVfmT9V_PmkOnMNWBTEEDaonXKpa_AIU-WryAe0TlNMqcMipHzA573HRdUF53OcxEYkCn6an/s72-c/domain.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-2297835958168725794</id><published>2015-04-29T08:20:00.002-04:00</published><updated>2015-04-29T08:20:15.769-04:00</updated><title type='text'>MASTIFF Online</title><content type='html'>MASTIFF has been a pet project of mine for about two years now. While it has not progressed as far as I would have liked, we made a major announcement this week.&lt;br /&gt;
&lt;br /&gt;On Monday, a free online interface to MASTIFF was released at &lt;a href=&quot;https://mastiff-online.korelogic.com/&quot;&gt;https://mastiff-online.korelogic.com/&lt;/a&gt;. This interface allows anyone to upload files, have MASTIFF process the files, and see the results generated.&lt;br /&gt;
&lt;br /&gt;
If you are not familiar with MASTIFF, it is an open source framework for automating the static analysis of malware. It essentially will determine the type of file you are analyzing and only run the static analysis techniques for that file against it. This allows fast extraction of data the analyst can then examine.&lt;br /&gt;
&lt;br /&gt;
The online interface was created for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. When you start processing a number of different file types, the pre-requisites start to get cumbersome and difficult to install. The online interface alleviates this by allowing you to analyze files without installing everything.&lt;br /&gt;
&lt;br /&gt;
2. Our #1 request was a web interface to the system. While the interface used on &lt;a href=&quot;https://mastiff-online.korelogic.com/&quot; target=&quot;_blank&quot;&gt;MASTIFF Online&lt;/a&gt; is not open source itself, we are hoping this will give users what they want.&lt;br /&gt;
&lt;br /&gt;
If anyone has any questions/comments/suggestions to MASTIFF or the site, please let me know!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/2297835958168725794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/2297835958168725794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/2297835958168725794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/2297835958168725794'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2015/04/mastiff-online.html' title='MASTIFF Online'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-1436919199564889771</id><published>2014-02-10T11:26:00.002-05:00</published><updated>2014-02-10T11:26:51.438-05:00</updated><title type='text'>Installing Yara into IDA Pro 64-bit Linux</title><content type='html'>&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;tl;dr Install a 32-bit VM, compile Yara, copy files over. See link below for files to just install.&lt;/i&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
Last Friday, pnX &lt;a href=&quot;http://pnx-tf.blogspot.de/2014/02/idascope-v11-yara-scanning.html&quot; target=&quot;_blank&quot;&gt;posted that he updated his awesome IDA plug-in, IDAScope,&lt;/a&gt; to include &lt;a href=&quot;http://plusvic.github.io/yara/&quot; target=&quot;_blank&quot;&gt;Yara support&lt;/a&gt;. This means that you can now run Yara sigs against files you are reversing to help in the analysis process.&lt;br /&gt;
&lt;br /&gt;
After I installed the new version of IDAScope into IDA Pro, however, I received errors stating that Yara could not be imported. I thought this was odd as I had Yara installed on my system, until I remembered how IDA works on a 64-bit Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;The following is based off my observations and experiences. If I am incorrect on this, please forgive me and let me know in the comments.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
IDA is a 32-bit program. Even the 64-bit version of IDA is compiled as a 32-bit program.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ file idaq idaq64&lt;br /&gt;idaq:&amp;nbsp;&amp;nbsp; &lt;b&gt;ELF 32-bit LSB executable&lt;/b&gt;, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), BuildID[sha1]=0xcb635dd38de5c73f050de37a0f2e492688b3ab9a, stripped&lt;br /&gt;idaq64: &lt;b&gt;ELF 32-bit LSB executable&lt;/b&gt;, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), BuildID[sha1]=0x1f03dcff4bfd776b23df71c8d9d471fb63b0bf48, stripped&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
This causes a number of interesting issues on 64-bit Linux systems, especially with Python. Hex Rays has gotten the majority of these fixed in the default install so you don&#39;t worry about them, and the way it does this with Python is by allowing you to install a bundled Python into the IDA Pro directory. (&lt;a href=&quot;http://blog.stalkr.net/2014/01/ida-on-debian-amd64-with-python.html&quot; target=&quot;_blank&quot;&gt;There are other ways&lt;/a&gt;, but I have not done them.) This gives you a working &quot;out of the box&quot; product.&lt;br /&gt;
&lt;br /&gt;
This also means that when you want to install a new Python library and use it in IDA, you have to install it into the IDA&#39;s bundled Python directory as well. If this is a pure Python module, then no problem. Just copy and it &lt;i&gt;should&lt;/i&gt; work. Yara is different.&lt;br /&gt;
&lt;br /&gt;
Since Yara compiles as a 64-bit library on a 64-bit system, and yara-python does the same, we can&#39;t just install it directly into the IDA Python directory. If you do, you&#39;ll receive errors that IDA is unable to load a 64-bit module.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRyblIPFfioqGf7dICbuD1E7o6ldpVqmVefwEA5KwQgoXhFoomMf8ejWFYlzWXw2xBwP72CMItRP7dkoCJc2GGCqCR0zxFQl5jWEbFUZ2kTZlnH2eaVKdMuhcnAn7-krWX80wXrKUHyrko/s1600/Screenshot-IDA+v6.5.140116.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRyblIPFfioqGf7dICbuD1E7o6ldpVqmVefwEA5KwQgoXhFoomMf8ejWFYlzWXw2xBwP72CMItRP7dkoCJc2GGCqCR0zxFQl5jWEbFUZ2kTZlnH2eaVKdMuhcnAn7-krWX80wXrKUHyrko/s1600/Screenshot-IDA+v6.5.140116.png&quot; height=&quot;41&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In order to get Yara working, we&#39;ll need to compile it as a 32-bit library. The easiest way, IMO, to do this is to load a 32-bit Linux system into a VM, compile Yara, then copy the files into your IDA installation. I did this in a Debian 6.0.3 and it worked without a problem. Just to be safe, make sure you are using a system with Python 2.7 as well since that is what IDA bundles.&lt;br /&gt;
&lt;br /&gt;
There are two files you will need: the Yara library libyara.so.0 and the Yara Python library yara.so (located in the Python dist-packages directory after installation). &lt;a href=&quot;https://github.com/plusvic/yara/releases/tag/v2.0.0&quot; target=&quot;_blank&quot;&gt;Follow the instructions to compile and install Yara&lt;/a&gt; in your 32-bit VM, and copy the files onto your 64-bit system. libyara.so.0 goes into your base IDA install directory, and yara.so goes into the python directory underneath that.&lt;br /&gt;
&lt;br /&gt;
After you do that, Yara-python will be installed and will work great!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvUrlOPsyVVa9VkNPENRv1wFSltxDa0HLzVIzvbn7h_mA5rk2-3-Qqe9SxwBCVIs87kgamMq0F_ONHUzTphMjN0HjsdegscQ4DbohJGUkhrM0_KHBWoal3PZm8nzPKeCs2v0Qktdmw6RIX/s1600/yara2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvUrlOPsyVVa9VkNPENRv1wFSltxDa0HLzVIzvbn7h_mA5rk2-3-Qqe9SxwBCVIs87kgamMq0F_ONHUzTphMjN0HjsdegscQ4DbohJGUkhrM0_KHBWoal3PZm8nzPKeCs2v0Qktdmw6RIX/s1600/yara2.png&quot; height=&quot;31&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Don&#39;t want to go through all the trouble of installing a 32-bit VM, compiling, and copying? I don&#39;t blame you. I uploaded the version I compiled to my Google Drive here.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://drive.google.com/file/d/0BwIb8VrPCDKCUjJmZ1djSjFqZG8/edit?usp=sharing&quot;&gt;yara-ida-libs.tgz&lt;/a&gt; &lt;span style=&quot;font-size: x-small;&quot;&gt;(SHA256: 38674b584adf3932e5cd1cafbd0bb288b7db3302304a83041bad9295472aa064)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Just untar this into your base install dir for IDA and you should be good to go.&lt;br /&gt;
&lt;br /&gt;
Hex Rays has published &lt;a href=&quot;http://www.hexblog.com/?p=726&quot; target=&quot;_blank&quot;&gt;instructions on how to install Python packages from Pip on a 64-bit system&lt;/a&gt;. I recommend checking them out. This time, my way just felt easier.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/1436919199564889771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/1436919199564889771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/1436919199564889771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/1436919199564889771'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2014/02/installing-yara-into-ida-pro-64-bit.html' title='Installing Yara into IDA Pro 64-bit Linux'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRyblIPFfioqGf7dICbuD1E7o6ldpVqmVefwEA5KwQgoXhFoomMf8ejWFYlzWXw2xBwP72CMItRP7dkoCJc2GGCqCR0zxFQl5jWEbFUZ2kTZlnH2eaVKdMuhcnAn7-krWX80wXrKUHyrko/s72-c/Screenshot-IDA+v6.5.140116.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-862508976004410188</id><published>2013-09-04T08:19:00.001-04:00</published><updated>2013-09-04T08:19:08.148-04:00</updated><title type='text'>Installing BinDiff on Linux Mint 14</title><content type='html'>I recently upgraded my system to Linux Mint 14 and went about re-installing all my software. When I got to &lt;a href=&quot;http://www.zynamics.com/bindiff.html&quot; target=&quot;_blank&quot;&gt;Zynamics/Google BinDiff&lt;/a&gt;, I found I had an issue:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ sudo dpkg -i bindiff401-debian50-amd64.deb&lt;br /&gt;&lt;br /&gt;Selecting previously unselected package bindiff.&lt;br /&gt;Unpacking bindiff (from bindiff401-debian50-amd64.deb) ...&lt;br /&gt;dpkg: dependency problems prevent configuration of bindiff:&lt;br /&gt;&amp;nbsp;bindiff depends on sun-java6-jre; however:&lt;br /&gt;&amp;nbsp; &lt;b&gt;Package sun-java6-jre is not installed.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;
Unfortunately, BinDiff requires sun-java6-jre, which is not in the Linux Mint repository, nor any other repository I could find. I could circumvent this by installing BinDiff by using the &lt;i&gt;--ignore-depends=sun-java6-jre&lt;/i&gt; option to dpkg. However, every time I went to install updates I would get an error message that BinDiff was broken, and be prompted to uninstall it before I could continue.&lt;br /&gt;
&lt;br /&gt;
However, I found a work-around - create a dummy package named sun-java6-jre using the tool equivs. (There are some docs out there on this, but I was unable to find a non-Google cached copy, so here was what I did.)&lt;br /&gt;
&lt;br /&gt;
Linux Mint has equivs in its repository, so if its not already installed, apt-get it.&lt;br /&gt;
&lt;br /&gt;
Next, run &lt;i&gt;equivs-control sun-java6-jre&lt;/i&gt; and this will create a file named sun-java6-jre that you will need to modify.&lt;br /&gt;
&lt;br /&gt;
At minimum, you&#39;ll need to uncomment and/or fill out the following fields:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Package&lt;/li&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Maintainer&lt;/li&gt;
&lt;/ul&gt;
I also filled out the description fields so I would remember what it was.&lt;br /&gt;
&lt;br /&gt;
After the file is modifoed, run &lt;i&gt;equivs-build sun-java6-jre&lt;/i&gt; and you should see something similar to below:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ equivs-build sun-java6-jre &lt;br /&gt;dh_testdir&lt;br /&gt;dh_testroot&lt;br /&gt;dh_prep&lt;br /&gt;dh_testdir&lt;br /&gt;dh_testroot&lt;br /&gt;dh_install&lt;br /&gt;dh_installdocs&lt;br /&gt;dh_installchangelogs&lt;br /&gt;dh_compress&lt;br /&gt;dh_fixperms&lt;br /&gt;dh_installdeb&lt;br /&gt;dh_gencontrol&lt;br /&gt;dh_md5sums&lt;br /&gt;dh_builddeb&lt;br /&gt;dpkg-deb: building package `sun-java6-jre&#39; in `../sun-java6-jre_6.0_all.deb&#39;.&lt;br /&gt;&lt;br /&gt;The package has been created.&lt;br /&gt;Attention, the package has been created in the current directory,&lt;br /&gt;not in &quot;..&quot; as indicated by the message above!&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
Once that has successfully completed, you should have a sun-java6-jre_6.0_all.deb file in your directory. If that failed, you probably forgot to modify one of the fields in the file.&lt;br /&gt;
&lt;br /&gt;
Finally, just dpkg -i the new deb file and BinDiff, and you should be ready to go!&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;$ sudo dpkg -i sun-java6-jre_6.0_all.deb&lt;br /&gt;Selecting previously unselected package sun-java6-jre.&lt;br /&gt;(Reading database ... 237677 files and directories currently installed.)&lt;br /&gt;Unpacking sun-java6-jre (from sun-java6-jre_6.0_all.deb) ...&lt;br /&gt;Setting up sun-java6-jre (6.0) ... &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;$ sudo dpkg -i bindiff401-debian50-amd64.deb&lt;br /&gt;Selecting previously unselected package bindiff.&lt;br /&gt;(Reading database ... 237681 files and directories currently installed.)&lt;br /&gt;Unpacking bindiff (from bindiff401-debian50-amd64.deb) ...&lt;br /&gt;bindiff license has already been accepted&lt;br /&gt;Setting up bindiff (4.0.1) ...&lt;br /&gt;&lt;br /&gt;$&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
Then you are good to go!&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/862508976004410188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/862508976004410188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/862508976004410188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/862508976004410188'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2013/09/installing-bindiff-on-linux-mint-14.html' title='Installing BinDiff on Linux Mint 14'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-7709069934500170177</id><published>2013-05-19T15:02:00.000-04:00</published><updated>2013-05-19T22:58:37.334-04:00</updated><title type='text'>My Take on the City of Akron Hack</title><content type='html'>On Thursday, May 16, 2013, a Turkish hacking group called Turkish Ajan hacked into the City of Akron and released a number of files that contain personal information on a number of Akron citizens. &lt;a href=&quot;http://www.ohio.com/business/lin-fisher/akron-notifies-some-people-named-in-hacked-city-files-victims-appear-to-be-individuals-who-e-filed-city-taxes-in-2013-1.398522&quot; target=&quot;_blank&quot;&gt;According to the city, the attackers were able to gain access into some internal systems where they obtained tax information.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The news has died down on this for the moment, but from the information that has been released, there are some things we can infer:&lt;br /&gt;
&lt;br /&gt;
1. The &lt;a href=&quot;http://www.ohio.com/business/lin-fisher/city-of-akron-tax-files-hacked-by-turkish-group-1.398247&quot; target=&quot;_blank&quot;&gt;attackers compromised&lt;/a&gt; the &lt;a href=&quot;http://www.ci.akron.oh.us/&quot; target=&quot;_blank&quot;&gt;city&#39;s public website&lt;/a&gt;. From the errors that were being displayed on the site, information that has been released from the city, and the way this group works, it was likely through SQL injection (although this has not been specifically stated yet).&lt;br /&gt;
&lt;br /&gt;
2. The attackers compromised the city&#39;s internal systems and obtained access to tax systems. It is unknown if they were able to do from the city&#39;s public website, through the tax paying system, or some other server. In any case, this appears to be where the attackers got the files they posted.&lt;br /&gt;
&lt;br /&gt;
3. &lt;a href=&quot;http://fox8.com/2013/05/17/akron-e-filers-hit-in-cyber-attacks-from-turkey/&quot; target=&quot;_blank&quot;&gt;Around 25K people are affected.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
4. The FBI is involved and was called in quickly after the compromise was discovered. IMO, this is good.&lt;br /&gt;
&lt;br /&gt;
Any additional information on what happened is pretty much speculation. Trust me, I&#39;ve been speculating alot and have a pretty good idea of what happened, but I have no proof. Hopefully whoever is doing the forensics for the city will have their findings released at some point. As an Akron citizen, and tax payer, I want to know this information.&lt;br /&gt;
&lt;br /&gt;
However, there is one thing that I think needs brought up. Why was this information stored &lt;u&gt;unencrypted&lt;/u&gt;? If it was encrypted, how did the attackers obtain access to the keys to decrypt it?&lt;br /&gt;
&lt;br /&gt;
The information that was released contains social security numbers of both the taxpayer and their spouse, and credit card numbers. According to &lt;a href=&quot;https://www.pcisecuritystandards.org/&quot; target=&quot;_blank&quot;&gt;PCI standards&lt;/a&gt; (and my understanding), the credit card numbers should have been encrypted. The &lt;a href=&quot;http://www.fms.treas.gov/cas/pci.html&quot; target=&quot;_blank&quot;&gt;federal government is required to comply with PCI&lt;/a&gt;, what about the city of Akron government?&lt;br /&gt;
&lt;br /&gt;
As for the SSNs, I don&#39;t know of any specific regulations that requires that information to be encrypted (please let me know if there is), but I can&#39;t imagine that there is any reason it shouldn&#39;t be. I have a feeling there are at least 25,000 people who agree with me.&lt;br /&gt;
&lt;br /&gt;
One final item of note. The press has been getting quotes from Deputy Mayor Rick Merolla. With all due respect sir, shut up. I can only imagine your IT and information security people are cringing whenever they read your quotes pertaining to the security of the city of Akron systems.&lt;br /&gt;
&lt;br /&gt;
I&#39;m sure you are very smart, but its obvious you are not familiar with information security. Quotes such as &lt;a href=&quot;http://fox8.com/2013/05/17/akron-e-filers-hit-in-cyber-attacks-from-turkey/&quot; target=&quot;_blank&quot;&gt;&quot;Our systems are all, all our virus protection, intrusion protection systems, all of our virus software is still up to date so we are still not sure how they got in&quot;&lt;/a&gt; show this. Let those performing the investigation or the talented IT personnel you employ speak on these things.&lt;br /&gt;
&lt;br /&gt;
If you like, I am personally offering to give you a training course on information security, hackers, and how attacks take place. This will at least give you an idea on why the things you have been quoted as saying are cringe-worthy.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/7709069934500170177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/7709069934500170177' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7709069934500170177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7709069934500170177'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2013/05/my-take-on-city-of-akron-hack.html' title='My Take on the City of Akron Hack'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-5409416973087877597</id><published>2013-04-19T09:50:00.002-04:00</published><updated>2013-04-19T09:50:34.847-04:00</updated><title type='text'>MASTIFF 0.6.0 Released!</title><content type='html'>The latest version of MASTIFF, 0.6.0, has just been released! Run over to the &lt;a href=&quot;https://sourceforge.net/projects/mastiff/?source=navbar&quot; target=&quot;_blank&quot;&gt;download site&lt;/a&gt; and &lt;a href=&quot;https://sourceforge.net/projects/mastiff/files/mastiff/0.6.0/&quot; target=&quot;_blank&quot;&gt;grab the latest version&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://mastiff.sourceforge.net/Files/Changelog.txt&quot; target=&quot;_blank&quot;&gt;official changelog is located here&lt;/a&gt;, but the major improvements are described below.&lt;br /&gt;
&lt;br /&gt;
Upgrading MASTIFF to the latest version is easy. You can follow this process:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Download and install &lt;a href=&quot;https://github.com/kbandla/pydeep&quot; target=&quot;_blank&quot;&gt;pydeep&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Download &lt;a href=&quot;https://sourceforge.net/projects/mastiff/files/mastiff/0.6.0/&quot; target=&quot;_blank&quot;&gt;MASTIFF 0.6.0&lt;/a&gt; and untar it.&lt;/li&gt;
&lt;li&gt;Run &quot;make test&quot; to ensure you are not missing any dependencies.&lt;/li&gt;
&lt;li&gt;Run &quot;sudo make install&quot; to install the latest version.&lt;/li&gt;
&lt;li&gt;Copy
 the analysis plug-ins (the plugins directory in the tarball) to your 
location of choice and ensure the config file is pointing to that 
directory.&lt;/li&gt;
&lt;li&gt;Add any new options to your MASTIFF config file. The easiest way may be to use sdiff.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Queue&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;
&lt;br /&gt;
MASTIFF now has a queueing system so multiple files can be analyzed by the framework. To utilize this, give MASTIFF a directory instead of a file to analyze. It will find all files in that directory and its subdirectories, add them to the queue, and begin processing.&lt;br /&gt;
&lt;br /&gt;
The queue is maintained within the MASTIFF database. So, if you have to stop MASTIFF in the middle of its run, it will begin re-processing the queue when its restarted. Some additional options have been added to allow you to work with the queue:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;--clear-queue: This will clear the current queue.&lt;/li&gt;
&lt;li&gt;--ignore-queue: This will ignore the queue and just process the file you give it.&lt;/li&gt;
&lt;/ul&gt;
Analysis plug-ins are also taking advantage of the queue. The pdf-parser and ZipExtract plug-ins have a new option (&quot;feedback&quot;) which allow you to feed files from the plug-ins back into the queue for processing. For example, the ZipExtract plug-in will add all files that were extracted from the archive into the queue for processing.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Fuzzy Hashing&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Fuzzy hashing is not something new within MASTIFF. However, we have changed the Python library used for it. Previously, we used pyssdeep but found that there were a number of stability issues with it on OSX and when processing large amounts of files.&lt;br /&gt;
&lt;br /&gt;
Therefore, we have switched to pydeep (&lt;a href=&quot;https://github.com/kbandla/pydeep&quot;&gt;https://github.com/kbandla/pydeep&lt;/a&gt;&lt;span id=&quot;goog_318606922&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_318606923&quot;&gt;&lt;/span&gt;). Our testing has shown it to be much more stable thus far.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;libmagic&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
There was some confusion on which Python libmagic libraries to use when installing MASTIFF. To help alleviate some of that, the framework has been modified to use two different libmagic libraries:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;libmagic Python extensions (&lt;a href=&quot;ftp://ftp.astron.com/pub/file/&quot;&gt;ftp://ftp.astron.com/pub/file/&lt;/a&gt;) - This may be installed through the source code or is the library installed as python-magic in most Linux code repositories.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; Python-magic (&lt;a href=&quot;https://github.com/ahupp/python-magic/&quot;&gt;https://github.com/ahupp/python-magic/&lt;/a&gt;) - This may be installed through the source code or via Python pip.&lt;/li&gt;
&lt;/ul&gt;
If either library is installed, MASTIFF will utilize them.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Other Changes&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A number of other bug fixes and improvements have been made. Please see the &lt;a href=&quot;http://mastiff.sourceforge.net/Files/Changelog.txt&quot; target=&quot;_blank&quot;&gt;changelog file&lt;/a&gt; for a complete list.&lt;br /&gt;
&lt;br /&gt;
As always, if you have any questions, please email mastiff-project@korelogic.com.&lt;br /&gt;
&lt;br /&gt;
We have alot of great things coming down the pipe for MASTIFF, but if you have any suggestions, enhancements or plug-ins, let us know!</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/5409416973087877597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/5409416973087877597' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5409416973087877597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5409416973087877597'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2013/04/mastiff-060-released.html' title='MASTIFF 0.6.0 Released!'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-3245727793145625902</id><published>2013-02-21T11:01:00.003-05:00</published><updated>2013-02-21T11:01:57.751-05:00</updated><title type='text'>MASTIFF: Automated Static Analysis Framework</title><content type='html'>Malware analysis is a process that begs to be automated. Messing up one step or running one tool incorrectly can cause you to have to restart the entire process. Fortunately, there are a number of automation frameworks or systems, such as &lt;a href=&quot;http://www.cuckoosandbox.org/&quot; target=&quot;_blank&quot;&gt;Cuckoo&lt;/a&gt; or &lt;a href=&quot;http://www.threatexpert.com/&quot; target=&quot;_blank&quot;&gt;Threat Expert&lt;/a&gt;, that exist to help automate malware analysis.&lt;br /&gt;
&lt;br /&gt;
While these automation frameworks are great, they tend to focus on dynamic analysis (behavioral analysis); static analysis (characteristic analysis) is mostly left out. The static analysis techniques that the frameworks do perform vary, but typically include hashing, strings extraction, some file-type specific tools, along with a couple other techniques. Additional static analysis programs or techniques usually have to be implemented on their own.&lt;br /&gt;
&lt;br /&gt;
To do this, analysts typically create a master static analysis script that runs all of the tools desired against a file. However, if an analysis tool is run against a file type that it cannot analyze, such as a PE header analysis tool on a PDF, you run the risk of crashing the analysis program and, in turn, your automation script.&lt;br /&gt;
&lt;br /&gt;
As an incident responder and malware analyst, I came up against these issues all the time, so I started to look for a solution. Nothing existed to automate the entire static analysis process and allow you to add in your own techniques.&lt;br /&gt;
&lt;br /&gt;
That is why &lt;a href=&quot;http://sourceforge.net/projects/mastiff/?source=navbar&quot; target=&quot;_blank&quot;&gt;MASTIFF&lt;/a&gt;, an open source automated static analysis framework, was created. MASTIFF performs two functions for the analyst:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The file type of the file being analyzed is automatically determined.&lt;/li&gt;
&lt;li&gt;Only those techniques which work on that file type are applied.&lt;/li&gt;
&lt;/ul&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm5SLF451XMXpj9MrIIFyDB0RYs_a6ieirrpB72l23C9AmJnoej2JqjZdg82tG1vfW4YnEbz-YvgpWX3tXMKwUw8kV29Ph9fXtNx3NtNlOwrACvpa1DUSxfI6tEP_tGqyHcvtHcTlf6vJu/s1600/Screenshot-Terminal.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;143&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm5SLF451XMXpj9MrIIFyDB0RYs_a6ieirrpB72l23C9AmJnoej2JqjZdg82tG1vfW4YnEbz-YvgpWX3tXMKwUw8kV29Ph9fXtNx3NtNlOwrACvpa1DUSxfI6tEP_tGqyHcvtHcTlf6vJu/s200/Screenshot-Terminal.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;By automatically determining the file type for the analyst and ensuring that only the static analysis techniques that work on that file type are run, analysts can be assured that the risk of crashing the automated process is lessened, and that only relevant data is returned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/mastiff/?source=navbar&quot; target=&quot;_blank&quot;&gt;MASTIFF&lt;/a&gt; works by utilizing plug-ins for both file-type detection and static analysis techniques. The decision to utilize plug-ins was two-fold:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The types of files analyzed and the techniques available within MASTIFF can be easily expanded by adding new plug-ins.&lt;/li&gt;
&lt;li&gt;MASTIFF is able to be &quot;crowd-sourced&quot;. &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
The last reason was especially important. Anyone can create a new plug-in to add a new file type or analysis technique. As more people add plug-ins, the more useful the framework becomes. To facilitate easier plug-in development, template, or skeleton, plug-ins have been included with the project. In just a few minutes, someone can modify a few fields in the template and have a new plug-in ready to go.&lt;br /&gt;
&lt;br /&gt;
In the coming weeks, I&#39;ll be posting information and tutorials related to &lt;a href=&quot;http://sourceforge.net/projects/mastiff/?source=navbar&quot; target=&quot;_blank&quot;&gt;MASTIFF&lt;/a&gt;, how to use it, how to create plug-ins for it, etc. Please let me know any questions you have on the framework or there is something specific that should be focused on.&lt;br /&gt;
&lt;br /&gt;
Finally, I want to state that MASTIFF was funded through &lt;a href=&quot;http://www.korelogic.com/&quot; target=&quot;_blank&quot;&gt;KoreLogic&lt;/a&gt;, the company I work for, and the &lt;a href=&quot;http://www.cft.usma.edu/&quot; target=&quot;_blank&quot;&gt;DARPA Cyber Fast Track (CFT)&lt;/a&gt; program. If you are unfamiliar with CFT, I highly recommend looking at their site and submitting a proposal. Its a great program, but you only have until April 1, 2013 to do so and then no further submissions will be taken.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/3245727793145625902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/3245727793145625902' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3245727793145625902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3245727793145625902'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2013/02/mastiff-automated-static-analysis.html' title='MASTIFF: Automated Static Analysis Framework'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm5SLF451XMXpj9MrIIFyDB0RYs_a6ieirrpB72l23C9AmJnoej2JqjZdg82tG1vfW4YnEbz-YvgpWX3tXMKwUw8kV29Ph9fXtNx3NtNlOwrACvpa1DUSxfI6tEP_tGqyHcvtHcTlf6vJu/s72-c/Screenshot-Terminal.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-6808615879378703018</id><published>2013-02-19T16:45:00.001-05:00</published><updated>2013-02-19T16:45:04.436-05:00</updated><title type='text'>ShmooCon 2013</title><content type='html'>This past weekend I went to my first &lt;a href=&quot;http://www.shmoocon.org/&quot; target=&quot;_blank&quot;&gt;ShmooCon&lt;/a&gt; in Washington D.C. I have to say this was an experience that I was not expecting. I&#39;ve been to many security conferences in the past, included RECon, BlackHat, GFIRST, and some SANS and OWASP conferences. ShmooCon ranks up there in the top 2 spots, if not one of the best that I&#39;ve been to.&lt;br /&gt;
&lt;br /&gt;
The best thing about ShmooCon is that it has a small con feel to it, while having everything the big cons have (e.g. big name speakers, contests, prizes, lots of smart people). It also has a small con price - if you can get a ticket, its only going to cost you around $150.&lt;br /&gt;
&lt;br /&gt;
I was also lucky enough to be selected as a speaker this year, presenting a talk on my newly open-sourced tool &lt;a href=&quot;http://sf.net/p/mastiff&quot; target=&quot;_blank&quot;&gt;MASTIFF&lt;/a&gt;. As a speaker, they one of the best run CFP processes I have ever used. After selection, they are constantly available for questions, have excellent moderators and are great in making sure you have what you need.&lt;br /&gt;
&lt;br /&gt;
The talks at the conference were amazing. They are of the highest quality and even the ones I didn&#39;t like were full of good information. Since I was releasing MASTIFF the first day I was there, and I was freaking out about my talk (I was in the last speaking slot of the tracks), I didn&#39;t get to see all that I would have liked. However, these stood out:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;u&gt;NSM and more with Bro Network Monitor&lt;/u&gt; by &lt;a href=&quot;https://twitter.com/hectaman&quot; target=&quot;_blank&quot;&gt;Liam Randall&lt;/a&gt; - This was the best talk of the conference IMO. Liam gave an excellent talk about what Bro is, how it works, and even how easy it is to extend it. His presentation was how all presentations should be - easy to follow and good at explaining a relatively complicated concept.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Crypto: You&#39;re doing it wrong&lt;/u&gt; by &lt;a href=&quot;https://twitter.com/iagox86&quot; target=&quot;_blank&quot;&gt;Ron Bowes&lt;/a&gt; -&amp;nbsp; Ron gave an excellent talk about some crypto attacks, how they can be performed, and even did 3 live demos (that didn&#39;t fail) that performed these attacks. I&#39;m not a crypto guy, but Ron&#39;s explanations of everything were easy to follow and entertaining. Plus he used &lt;a href=&quot;http://hplovecraft.com/writings/texts/fiction/cc.asp&quot; target=&quot;_blank&quot;&gt;The Call of Cthulhu&lt;/a&gt; as some of his encrypted text.&lt;/li&gt;
&lt;/ul&gt;
There were alot more that I saw that were excellent, and some that I unfortunately missed. Luckily, ShmooCon makes all their recordings available online for free and should be up in a couple of weeks. I look forward to next year!&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/6808615879378703018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/6808615879378703018' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/6808615879378703018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/6808615879378703018'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2013/02/shmoocon-2013.html' title='ShmooCon 2013'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-1564724461711891692</id><published>2012-11-09T10:52:00.006-05:00</published><updated>2012-11-09T10:52:44.525-05:00</updated><title type='text'>2008 Malware Challenge</title><content type='html'>
 
 
 


&lt;br /&gt;
&lt;div align=&quot;LEFT&quot;&gt;
In 2008, Greg Feezel and I published the following
malware analysis challenge. The goal was to answer the questions
below and submit them back to us for prizes. While the challenge is
no longer going on, we wanted to publish it again so those that
wished to try it could.&lt;/div&gt;
&lt;div align=&quot;LEFT&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;LEFT&quot;&gt;
&lt;a href=&quot;https://docs.google.com/folder/d/0BwIb8VrPCDKCMktMc0xFM3hzUlE/edit&quot;&gt;The malware is contained within a password protected zip file named malware.zip&lt;/a&gt;. The password is “infected”. The MD5 hash of the files
are:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
59a95f668e1bd00f30fe8c99af675691  malware.exe
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
31d2ec3b312d0fd27940aae5c89e3787  malware.zip&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class=&quot;western&quot;&gt;
Situation: 
&lt;/h2&gt;
&lt;div align=&quot;LEFT&quot;&gt;
A system administrator within your organization has
come to you because a user&#39;s PC was infected with malware. 
Unfortunately, anti-virus is unable to remove the malware.  However,
the administrator was able to recover the suspected malware
executable.  Your job is to analyze the malware.

&lt;/div&gt;
&lt;div align=&quot;LEFT&quot;&gt;
Participants should download the malware sample and
analyze it.  The end result should be a document containing details
on the analysis performed.  The analysis document can be written in
any form, but the following questions and statements should be
answered within it.  Participants should note when questions are
being answered.
&lt;/div&gt;
&lt;div align=&quot;LEFT&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
Describe your malware lab.

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
What information can you gather about the malware
 without executing it? 
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
Is the malware packed?  If so, how did you
 determine what it was?
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
Describe the malware&#39;s behavior.  In other words
 - what files does it drop, what registry keys does it modify, what
 network connections does it create, how does it auto-start, etc?
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
What type of command and control server does the
 malware use?  Describe the server and interface this malware uses.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
What commands are present within the malware and
 what do they do?  If possible, take control of the malware and run
 some of these commands, documenting how you did it.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
How would you classify this malware?  Why?
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
What do you think the purpose of this malware
 is?
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div align=&quot;LEFT&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;LEFT&quot;&gt;
Bonus questions:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
Is it possible to find the malware&#39;s source code?
  If so, how did you do it?
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;LEFT&quot;&gt;
How would you write a custom detection and removal
 tool to determine if the malware is present on the system and remove
 it?&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/1564724461711891692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/1564724461711891692' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/1564724461711891692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/1564724461711891692'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2012/11/2008-malware-challenge.html' title='2008 Malware Challenge'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-7605767049997799603</id><published>2012-11-09T08:30:00.001-05:00</published><updated>2012-11-09T08:30:10.831-05:00</updated><title type='text'>Blog Post Down</title><content type='html'>Yesterday I published a post on the 2008 malware challenge that I helped put together and how I felt it was being mis-represented in another security company&#39;s (pay for) CTF.&lt;br /&gt;
&lt;br /&gt;
The person responsible for that CTF posted a comment on the blog and asked me to contact him, stating it was really a mistake and no ill-intent was involved. I believe him.&lt;br /&gt;
&lt;br /&gt;
The security industry we work in is very small. If your integrity is besmirched* then that can have negative effects on your career or company. I would not want to be responsible for that in the case of a simple oversight.&lt;br /&gt;
&lt;br /&gt;That is why I removed the blog post. In all fairness, I should have contacted them first before posting anything.&lt;br /&gt;
&lt;br /&gt;
I am still posting the malware challenge and will do so later today.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Woohoo! I got to use besmirched in a blog post!</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/7605767049997799603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/7605767049997799603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7605767049997799603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7605767049997799603'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2012/11/blog-post-down.html' title='Blog Post Down'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-930575502549497638</id><published>2012-11-02T09:46:00.002-04:00</published><updated>2012-11-02T09:46:28.145-04:00</updated><title type='text'>NEOISF Puzzle Solution</title><content type='html'>A few people emailed me with the solution to the&lt;a href=&quot;http://secshoggoth.blogspot.com/2012/10/neoisf-puzzle.html&quot;&gt; puzzle I posted&lt;/a&gt;, but I figured I&#39;d post the solution for those that wanted it.&lt;br /&gt;
&lt;br /&gt;
In the puzzle, Van Helsing is attempting to break the crypto that Dracula is using to try and find him. Fortunately for Van Helsing, the program is free and he can download it to see if he can crack it. He ran the program and typed in &quot;vampire_vampire_vampire&quot; and got back &quot;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;R1lUR1hKXGhHWVRHWEpcaEdZVEdYSlw=&quot;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Anyone who has done any type of network analysis, or looked at a raw SMTP message, should recognize the output as base64 encoded. &lt;a href=&quot;http://en.wikipedia.org/wiki/Base64&quot;&gt;Base64&lt;/a&gt; is an algorithm that converts binary data to ASCII so it can be transferred over protocols that do not natively allow binary (e.g. SMTP). It does this by converting every 3 bytes of data to 4 bytes of ASCII. The &quot;=&quot; character is used as padding in case more characters are needed and is often a give-away.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Base64 can be converted using many methods, but since Van Helsing is awesome he is using Linux and uses the base64 command to do so.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ echo -n R1lUR1hKXGhHWVRHWEpcaEdZVEdYSlw= | base64 -d -&lt;br /&gt;GYTGXJ\hGYTGXJ\hGYTGXJ\&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
NOTE: Van Helsing really should have redirected the output to a file since the characters could have been binary.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The base64 decoding produced a string that has 2 interesting qualities.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;First, the base64 decoded string is the same length as the string he entered. This means that whatever algorithm the encryption program is using may be doing a 1-for-1 character encryption. In other words, the characters in his plaintext is being encrypted one at a time.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Second, there is a pattern of &quot;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;GYTGXJ\h&quot;. The pattern is 8 characters long, which just happens to be the length of &quot;vampire_&quot;. Coincidence? Probably not.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The type of encryption that immediately popped into Van Helsing&#39;s head that can have these properties is &lt;a href=&quot;http://en.wikipedia.org/wiki/XOR_cipher&quot;&gt;XOR encryption&lt;/a&gt;. XOR is a boolean logic function that can be applied in encryption. This is done by taking a key and XOR&#39;ing each of its bytes against the characters in the plaintext.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;One property of XOR encryption is that if you take the plaintext and XOR it with the ciphertext, it will reveal the key! Van Helsing knew this and XOR&#39;d his plaintext against the ciphertext he got. (He wrote a quick Python script to do so):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ python xordecode.py &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;GYTGXJ\hGYTGXJ\hGYTGXJ\ vampire_vampire_vampire&lt;br /&gt;&lt;br /&gt;18971897189718971897189&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Voila! XOR&#39;ing each byte of his plaintext with the ciphertext he received returned a pattern of &quot;1897&quot;, which must be the key!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Taking that as the key, he then base64 decoded Dracula&#39;s message and applied the key of 1897 to get:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;I will be at the Ohio Information Security Summit.&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
Now Van Helsing knew where he would be and could destroy the fiend!&lt;br /&gt;
&lt;br /&gt;
For those in the know, the key does have some significance. :)&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/930575502549497638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/930575502549497638' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/930575502549497638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/930575502549497638'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2012/11/neoisf-puzzle-solution.html' title='NEOISF Puzzle Solution'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-8351679292297505396</id><published>2012-10-29T07:43:00.000-04:00</published><updated>2012-10-29T07:43:03.253-04:00</updated><title type='text'>NEOISF Puzzle</title><content type='html'>This year, I designed a crypto puzzle for the &lt;a href=&quot;http://www.neoisf.org/&quot;&gt;Northeast Ohio Information Security Forum&lt;/a&gt; to use at the &lt;a href=&quot;https://www.informationsecuritysummit.org/&quot;&gt;Ohio Information Security Summi&lt;/a&gt;t (which I unfortunately was unable to attend). I found out that no one got the answer to it, although a number of people tried.&lt;br /&gt;
&lt;br /&gt;
I decided to put the puzzle up here for everyone to check out and try to solve. I don&#39;t have any prizes to give away so this is just for fun. The solution will be posted on November 1.&lt;br /&gt;
&lt;br /&gt;
Also, while I&#39;d love to hear if you solved it, please don&#39;t post the answer in the comments so others have a chance.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Dr. Van Helsing is tracking Dracula again. Using his brilliant hacking 
skills, he was able to break into Dracula&#39;s email account and obtained 
the following encrypted message.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;---------------------------------------------------------------------&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;From: dracula@bloodbank.ro&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;To: renfield@sanitarium.edu&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Subject: My Itinerary&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;eBhOXl1UGVVUGFhDEUxRUhF3UV5eGHBZV1dLWlBMUFhfGGpSUk1LXkVBGWREVVReRRY=&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;---------------------------------------------------------------------&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;Through
 his previous interactions, Van Helsing knows that Dracula uses an 
encryption program called &quot;31337 Crypt&quot;, that utilizes a proprietary 
encryption protocol. He downloaded the program and typed the following 
into the program to be encrypted:&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;vampire_vampire_vampire&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;The result was the encrypted line of:&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;R1lUR1hKXGhHWVRHWEpcaEdZVEdYSlw=&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;Within
 moments Van Helsing knew what the &quot;proprietary&quot; encryption was and had 
decrypted Dracula&#39;s message. What was Dracula&#39;s message?&lt;/span&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/8351679292297505396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/8351679292297505396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/8351679292297505396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/8351679292297505396'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2012/10/neoisf-puzzle.html' title='NEOISF Puzzle'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-5503481227325903330</id><published>2011-12-19T10:05:00.004-05:00</published><updated>2011-12-29T08:31:17.662-05:00</updated><title type='text'>Tools and News</title><content type='html'>So first an announcement.  At the beginning of December (or close to that) I left my previous position and went back to &lt;a href=&quot;http://www.korelogic.com&quot;&gt;KoreLogic Security,&lt;/a&gt; where I will be working to start up their malware services group, amongst other things.  While I am definitely missing my old co-workers, this is a good move for me.  Look for some interesting posts here.&lt;br /&gt;&lt;br /&gt;A few weeks ago I tweeted: Want to find out how good someone is? Take away all their tools and say, &quot;Now do it.&quot;.  I wanted to make expand upon that because I got into a good discussion with &lt;a href=&quot;https://twitter.com/#%21/@jwgoerlich&quot;&gt;@jwgoerlich&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/#%21/@rogueclown&quot;&gt;@rogueclown&lt;/a&gt; concerning it, and its hard to really explain what you mean in 140 characters or less.&lt;br /&gt;&lt;br /&gt;A few years ago, Harlan Carvey posted about &quot;&lt;a href=&quot;http://www.google.com/search?q=%22nintendo+forensics%22&amp;amp;q=%22nintendo+forensics%22+site:windowsir.blogspot.com&amp;amp;pbx=1&amp;amp;oq=%22nintendo+forensics%22&quot;&gt;Nintendo forensics&lt;/a&gt;&quot;.  This was a statement that the forensic industry was becoming more &quot;point and click&quot; and analysts were understanding less and less of what the tools were doing.  While some signs have pointed that this is starting to become less prevalent, I believe there are still niches in security where this is either in full-force or starting to become more so.&lt;br /&gt;&lt;br /&gt;Fast forward to the present.  In the last few weeks I&#39;ve been building my new work computer while analyzing malware as I get the time.  Unfortunately, I do not have all the tools I am used to since I&#39;m waiting for things to be purchased, arrive, etc.  This got me thinking - how much do &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;I&lt;/span&gt; &lt;/span&gt;rely on tools?  Could I perform the analysis I needed using that I know?&lt;br /&gt;&lt;br /&gt;Now I realize that in information security, or IT in general, its almost impossible to do anything without having tools.  Thats not my point - I&#39;m not suggesting that we take away everyone&#39;s tools and tell them to analyze malware or perform a pen-test with nothing but a blank OS.  Is it possible?  I&#39;m sure it is.  Would anyone want to?  Hell no!&lt;br /&gt;&lt;br /&gt;My point was that you never really know how good &lt;span style=&quot;font-style: italic;&quot;&gt;you&lt;/span&gt; are, until &lt;span style=&quot;font-style: italic;&quot;&gt;you&lt;/span&gt; are faced with a situation when you are taken out of your comfort zone and have to rely upon &lt;span style=&quot;font-style: italic;&quot;&gt;your&lt;/span&gt; knowledge and the tools available to you at the moment.  I don&#39;t always have access to a commercial version of IDA Pro.  Does that mean I can&#39;t disassemble malware and analyze it?  No - I just need to be flexible, use tools that I&#39;m not as used to and use my brain just a little bit more.&lt;br /&gt;&lt;br /&gt;I think its a useful exercise in anyone&#39;s career to do this.  Imagine for a moment that you didn&#39;t have the tool(s) you use most in your job - how would you perform your job?  What alternatives are available to you and how familiar you are with them?  I&#39;m as guilty as anyone else for relying upon specific tools, but this little exercise has helped me look and see where my weak areas are and how I can supplement them.&lt;br /&gt;&lt;br /&gt;Perhaps I should have instead tweeted &quot;Want to find out how good &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;you are&lt;/span&gt;? Take away all &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;your&lt;/span&gt; tools and say, Now do it.&quot;  That seems to fit my point better.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/5503481227325903330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/5503481227325903330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5503481227325903330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5503481227325903330'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2011/12/tools-and-news.html' title='Tools and News'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-4405495387048857365</id><published>2011-11-02T13:33:00.004-04:00</published><updated>2011-11-02T13:57:39.911-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="crypto"/><category scheme="http://www.blogger.com/atom/ns#" term="puzzle"/><title type='text'>Answers to the NEOISF Crypto Challenge</title><content type='html'>If you were at the &lt;a href=&quot;https://www.informationsecuritysummit.org/&quot;&gt;2011 Information Security Summit&lt;/a&gt; last week, you may have come across the &lt;a href=&quot;http://www.neoisf.org/&quot;&gt;Northeast Ohio Information Security Forum&lt;/a&gt;&#39;s booth and saw the crypto challenge I created for it. &lt;br /&gt;&lt;br /&gt;The challenge was a series of three encoded messages, each more difficult than the last.  It seemed to be popular as I had printed off 50 copies of the challenge and they were all gone by Friday morning.  Only 2 people, that I know of, finished it (although more may have and just not told me).&lt;br /&gt;&lt;br /&gt;The first encoded message was:&lt;br /&gt;&lt;blockquote style=&quot;font-weight: bold;&quot;&gt;Olgrf Rapelcgrq Ner Yrff Rnfl!&lt;br /&gt;&lt;/blockquote&gt;This was a &lt;a href=&quot;http://rot13.com/&quot;&gt;ROT13&lt;/a&gt; message that when decoded changed to:&lt;br /&gt;&lt;blockquote&gt;Bytes Encrypted Are Less Easy!&lt;br /&gt;&lt;/blockquote&gt;The second message was a bit harder.&lt;br /&gt;        &lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.08in; }&lt;/style&gt;  &lt;p style=&quot;margin-bottom: 0in; font-weight: bold;&quot;&gt;&lt;/p&gt;&lt;blockquote&gt;Tymxmu Svpvwmeh sg xhp fpskwiu ms elf oej&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;To make it a little easier, a hint was given to use the first letter of every word from the first solution as the key.  This was actually another hint that a key was even required to decode the message.  The original message had been encrypted using a &lt;a href=&quot;http://sharkysoft.com/misc/vigenere/&quot;&gt;Vignere Cipher&lt;/a&gt;.  Decrypting the message, using the key &quot;BEALE&quot; would produce the following message:&lt;br /&gt;&lt;blockquote&gt;Summit Overview of the booklet is the key&lt;/blockquote&gt;The final puzzle was the hardest of all.  The encoded message was:&lt;br /&gt;         &lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.08in; }&lt;/style&gt;  &lt;p style=&quot;margin-bottom: 0in;&quot;&gt;&lt;/p&gt;&lt;blockquote&gt;10 11 32 35 177 42 50 54 44 50 42 82 132 71 100 157 54 60 147 66 50 193 3  60 81 100 157 75 36 106&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;The hint for this puzzle was &quot;Items from the first two solutions will help you figure this one out!&quot;  Each of the first two solutions gave some type of clue as to the cipher used for the last one.  The first puzzle&#39;s hint was the key for the second puzzle: BEALE.&lt;br /&gt;&lt;br /&gt;If anyone searched for BEALE, they would have eventually come across the &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Beale_ciphers&quot;&gt;Beale Ciphers&lt;/a&gt;, encoded messages that supposedly point to buried treasure.  The only message successfully decoded thus far used the Declaration of Independence as a key.  To decode it, you find the word corresponding to the number you are given and take its first letter.  IE. If you have a 10, find the 10th word and use its first letter.  When you put all of these together you get the decoded message.&lt;br /&gt;&lt;br /&gt;This is what you would have to do in order to solve the third puzzle.  But what book do you use to decipher it?  That is where the answer to the second message comes in.  The solutions tells you to use the welcome page in the information security summit booklet.  By taking the first letter of each word of the corresponding number, you would eventually get the following message:&lt;br /&gt;&lt;blockquote&gt;now there are no more secrets for you&lt;/blockquote&gt;&lt;br /&gt;I hope that those who did this found it fun.  I&#39;d love to do another next year, but on a bigger scale.  If anyone has any suggestions, I&#39;d love to hear them!</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/4405495387048857365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/4405495387048857365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/4405495387048857365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/4405495387048857365'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2011/11/answers-to-neoisf-crypto-challenge.html' title='Answers to the NEOISF Crypto Challenge'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-4349369477158010848</id><published>2011-08-19T15:33:00.003-04:00</published><updated>2011-08-19T15:45:34.941-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="malware analysis"/><category scheme="http://www.blogger.com/atom/ns#" term="training"/><title type='text'>Malware Analysis and Malicious Document Analysis Training Courses</title><content type='html'>&lt;span style=&quot;font-style: italic;&quot;&gt;This is a totally self-serving, marketing post.  Feel free to click that little X in the upper right corner of your browser.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;https://www.informationsecuritysummit.org/&quot;&gt;Ohio Information Security Summit&lt;/a&gt; is coming up again from October 27-28  The &lt;a href=&quot;https://www.informationsecuritysummit.org/ConferenceAgenda2011.pdf&quot;&gt;conference agenda&lt;/a&gt; is starting to fill in and lots of great talks look to be scheduled!  I will be speaking there with &lt;a href=&quot;http://securityblahblah.blogspot.com/&quot;&gt;Greg Feezel&lt;/a&gt; and the NE Ohio Honeynet Project.&lt;br /&gt;&lt;br /&gt;There will also be &lt;a href=&quot;https://www.informationsecuritysummit.org/2011TrainingDescriptions.doc&quot;&gt;pre-conference training&lt;/a&gt; from October 24-26.  There are more classes this year than last year, many of which look great!&lt;br /&gt;&lt;br /&gt;I will be giving my 2-day hands-on Malware Analysis training course again this year.  It is a 2-day course that covers the basics of malware analysis.  The training is geared towards those who have never done, or performed very little, malware analysis.  Plus, if you take the 2-day course, you&#39;ll get into my new 1-day Malicious Document course for free!&lt;br /&gt;&lt;br /&gt;The Malicious Document training course I am doing for the first time this year will cover how to analyze malicious documents (duh).  Specifically, I will cover malicious JavaScript, PDFs and touch on malicious Word documents.  This is a 1 day course where the students will be very hands-on - analyzing malicious documents from the wild.&lt;br /&gt;&lt;br /&gt;If you have any questions on the courses, please feel free to contact me!&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/4349369477158010848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/4349369477158010848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/4349369477158010848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/4349369477158010848'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2011/08/malware-analysis-and-malicious-document.html' title='Malware Analysis and Malicious Document Analysis Training Courses'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-3414048940682363131</id><published>2011-05-12T14:17:00.000-04:00</published><updated>2011-05-13T16:41:19.045-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><title type='text'>Proactive Incident Response</title><content type='html'>A little while ago Harlan Carvey posted on &lt;a href=&quot;http://windowsir.blogspot.com/2011/04/proactive-ir.html&quot;&gt;Proactive Incident Response&lt;/a&gt;.   I&#39;ve been thinking about this for a while, but have a different perspective on Proactive IR than he does.  (I agree with his take on it, I just look at Proactive IR differently.)&lt;br /&gt;&lt;br /&gt;Computer Incident Response Teams (CIRTs) are often referred to as fire fighters.  This analogy is very true - most of the time CIRTs are fighting fires; the fire being a hacked server, a malware outbreak or a targeted phishing campaign.  We&#39;re often jumping from one problem to the next, determining who got in, how they did it, what damage they caused and how to prevent it in the future.  However, is that all CIRTs should be doing?&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.cert.org/archive/pdf/csirt-handbook.pdf&quot;&gt;The CERT Handbook for Computer Incident Response Teams&lt;/a&gt; states that CIRTs should offer three different services: reactive, proactive and security quality management services.  Reactive services are the fire fighting done on a daily basis.  Security quality management services include project and security consulting for other business units; you know, those meetings you get pulled into where they ask you what you think.  What about proactive services?&lt;br /&gt;&lt;br /&gt;If we look back at actual fire fighters, we see that they don&#39;t just spend their time putting out fires.  One of their duties is to help fire prevention through education and fire inspections.  In the security world, this is analogous to doing user education, vulnerability scanning and penetration tests.  This is what proactive services are.  But I believe these is another aspect of proactive services that CIRTs tend to miss.&lt;br /&gt;&lt;br /&gt;One of my co-workers has coined a term: hunting trips.  This basically boils down to proactively looking around the interwebs for attackers you&#39;ve seen in the past.  Since attackers tend to use the same, or similar tools and tactics, indicators of their compromises in other organizations appear if you know where to look.  You can then use the new indicators you&#39;ve just found to check for signs of compromise in your network.&lt;br /&gt;&lt;br /&gt;Where can you look?  Anywhere that information on security analysis can be found.  This includes blogs, twitter, forums, online sandboxes, AV signature descriptions, etc.  All of these places (and more) have information you can use to tie attackers to new attacks and malware they are using. &lt;br /&gt;&lt;br /&gt;Of course, I wouldn&#39;t recommend hand-searching each of these places for information.  Google is the obvious place to start, but be prepared to get back hundreds of results (at best) that are not of interest to you.  I would recommend using the &lt;a href=&quot;http://www.google.com/cse/home?cx=011750002002865445766:pc60zx1rliu&quot;&gt;Google Malware Analysis Search&lt;/a&gt;, created by those behind the &lt;a href=&quot;http://hooked-on-mnemonics.blogspot.com&quot;&gt;Hooked on Mnemonics Worked for Me&lt;/a&gt; blog, that narrows Google&#39;s search to 75 different security sites and feeds.&lt;br /&gt;&lt;br /&gt;So, an example so this might actually make sense.  In the last few days there has been an uptick in spammed emails that contain a link to a zip file named order.zip.  Within this file is a SpyEye trojan.  Analysis of the trojan shows that it drops itself as c:\recycle.bin\recycle.bin.exe (which to my knowledge is not a default location for SpyEye).  This location is fairly unusual and can be a good indicator to use on a hunting trip.&lt;br /&gt;&lt;br /&gt;Using the Google Malware Analysis custom search to look for &quot;recycle.bin.exe&quot;, we come across a &lt;a href=&quot;http://www.threatexpert.com/report.aspx?md5=127c4f729e6303a99b6704a471c9310d&quot;&gt;ThreatExpert report from March 2011&lt;/a&gt; for the same filename being dropped for a SpyEye trojan.  The TE report also shows that it attempts to contact zweor.com for its C&amp;amp;C server.  We now have a new indicator to search our network for and to go hunting with.&lt;br /&gt;&lt;br /&gt;This is a very simple scenario, but demonstrates the usefulness of performing information gathering to find additional indicators.  I have a feeling most CIRTs are not doing this and would benefit greatly from setting aside time to make sure this is done.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/3414048940682363131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/3414048940682363131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3414048940682363131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3414048940682363131'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2011/05/proactive-incident-response.html' title='Proactive Incident Response'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-7473068707767028958</id><published>2011-01-20T10:37:00.002-05:00</published><updated>2011-01-20T10:46:32.984-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="scam"/><title type='text'>Wanna be a mule?</title><content type='html'>Its been a while since I&#39;ve posted and I apologize.  As things get busy I find I have less time to post on there.  However, one of my new year&#39;s goals is to post more so there should be more in the coming weeks.&lt;br /&gt;&lt;br /&gt;I received an email today from my mother who received an email for a job and wanted to know if its legit.  After skimming it my alarms went off and were soon &lt;a href=&quot;http://scamfraudalert.wordpress.com/2011/01/19/medline-financial-industries-plc/&quot;&gt;verified&lt;/a&gt;.  To be honest, I&#39;ve always heard about money mule job requests but have never seen one so I found it interesting.&lt;br /&gt;&lt;br /&gt;I&#39;m currently trying to get mail headers to see where it actually came from.  It is nice to know they offer insurance and a 401K.  :)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;From: &quot;Ella D Dickinson&quot; &lt;medlineplc@aol.com&gt;&lt;br /&gt;Subject: RE: [1] Message from Careerbuilder: You have received a new job opportunity&lt;br /&gt;Date: Wed, 19 Jan 2011 23:49:34 -0000&lt;br /&gt;&lt;br /&gt;Hello,&lt;br /&gt;&lt;br /&gt;Please allow me to introduce myself: my name is Ella D. Dickinson and I am the International Human Resource Manager of Medline Financial Industries PLC I am pleased to inform you that we have an open position for you within our company.&lt;br /&gt;&lt;br /&gt;Medline Financial Industries PLC was founded in 1980 and has quickly grown to be one of the largest resellers of medical equipment and apparatus in the United Kingdom as well as in the rest of Europe. We work exclusively with hospitals and other medical companies and groups supplying several hundred types of products ranging from surgical needles and syringes to EKG and MRI machines and everything in between. We have dozens of agreements and contracts with top manufacturers around the world such as GE Healthcare, Medtronic, Baxter International, Cardinal Health, Tyco Healthcare, Siemens Medical Solutions, Philips Medical Systems, Zimmer Holdings, et cetera. Our company has grown very fast during the last few years so now we have expanded our market and business to the United States as well. As such we have a big number of openings in almost every state and we are looking for dedicated and hard working individuals to work for us and help us expand.&lt;br /&gt;&lt;br /&gt;The reason for our success is the fact that we are able to meet our customer&#39;s demands wherever and whenever. We are very flexible and we can honor our orders when others cannot. This is due to the fact that we accept almost any type of payments and we have a very fast delivery system which combined with the great customer support we provide took us to where we are today. We take great pride in what we do because it is not always easy to satisfy all customer demands while still processing the orders very fast and receiving payments for the products in a timely manner. This is why we need you and bellow you will find the job description and what is asked of you.&lt;br /&gt;&lt;br /&gt;Description:&lt;br /&gt;&lt;br /&gt;-NO SALES INVOLVED&lt;br /&gt;-While performing this job you will encounter no fees to be paid in advance whatsoever;&lt;br /&gt;-No employee from our company will ever ask you for any sensitive information;&lt;br /&gt;-You will not be involved in any contact with our customers;&lt;br /&gt;-Everything you will do is legal under the European Union/United States and International laws as they are currently applied.&lt;br /&gt;&lt;br /&gt;Your duties are:&lt;br /&gt;&lt;br /&gt;1. Receive payment from our customers. All check will be write in your name. All checks are US checks, no international. You wil receive all checks via USPS (no signature required).&lt;br /&gt;2. Cashing the checks at your existing bank account.&lt;br /&gt;3. Deduct 10% which will be your percentage/pay on each payment processed.&lt;br /&gt;4. Forward balance after deduction of percentage/pay to any of the offices you will be contacted to send payment to. (Payment is to be forwarded by Western Union Money Transfer).&lt;br /&gt;&lt;br /&gt;Your benefits are:&lt;br /&gt;&lt;br /&gt;-10% from each check your will process in the first month. Within one month after receiving the first check you will receive $1,000 as fixed salary.  This is a commission based job, the faster your process orders the more your income will increase. This bonus is given to also cover internet, phone or gas bills. Please note that this salary will be sent after 30 days have passed since you received your first payment to process.&lt;br /&gt;&lt;br /&gt;After two months of working for us an increase to 15% commission from all payments might be applied to your contract if you process and send all the transfers to us in a timely manner. In this case you will be earning around $1,200-1,300 per week as well as the $1,000 salary at the end of the month.&lt;br /&gt;&lt;br /&gt;There are also minor bonuses for cashing the checks and sending the payment to us very fast:&lt;br /&gt;-Cash the check same day: $150 for each check;&lt;br /&gt;-Cash the check within 24 hours: $100 for each check;&lt;br /&gt;-Cash the check within 48 hours: $ 50 for each check.&lt;br /&gt;&lt;br /&gt;The $1,000 salary will be sent to you in form of a cashier check.&lt;br /&gt;&lt;br /&gt;The today&#39;s situation on the financial market requires us to open and fill several of these job positions within our company; the job opening is that of a Representative within the US. This opening will help our company to reduce the time it takes to receive funding from orders that we receive each month. And we offer you one of the highest incomes on the market today and the minimal expenditures of time.&lt;br /&gt;&lt;br /&gt;Presently with the number of orders we have we cannot put them on hold for fear of losing our customers, secondly we cannot cash these payments from the US soon enough, as international checks take about 28 working days to cash anywhere in Europe. We lose a lot of time and money each month because we have money transfer delays. Our clients could pay us where we want by sending checks to an US address. What we need you to do is to provide us an address where you can receive our customer checks. We need someone who can receive the money through this method of payment. Regarding the check process all you have to do is to receive the checks our customers will send to your address, take them to your bank, cash them and send the remainder amount to us after deducting all fees incurred and your commission. All fees for transferring the funds will be supported from our share. Bonuses will apply for cashing checks within 24 hours upon receiving a check. You will always take your commission upfront.&lt;br /&gt;&lt;br /&gt;We make direct contact for sales of products. Once orders are received and processed we deliver the product to our customer (usually through USPS). The customer receives and checks the product and proceeds to send the payment. We accept all forms of payment but most of our customers pay using Bank Checks and so to solve this problem and not lose any of our customers we have decided to open this new job position. This job is legal according to the U.S. legislation as it is today. Local money transfers take but a few hours, so it will give us a possibility to get customer&#39;s payment almost immediately.&lt;br /&gt;&lt;br /&gt;PAYMENT AND SALARY:&lt;br /&gt;&lt;br /&gt;For example you receive a check as payment for 3000.00 USD, you deduct your commission (10%): 300.00 USD and then send to us the balance: 2700.00 USD. In the first month you will receive around 15-20 orders under 3,000.00 USD to process and after checking your performance records during that first month the orders you will receive, may increase from 3,000.00 upwards to 6,000.00 USD. For example 20 transactions each around 3000.00 USD gives you a total income of 6,000.00 USD per month and after establishing a close co-operation with us you&#39;ll be able to operate with larger orders and you&#39;ll be able to earn more. You will also deduct fees that are related to this job (gasoline, western union fees, bank commissions, etc) from our balance, not from your commissions. At first the checks you will receive will vary from: $500.00 to $3,000.00. We will also send you a 1099 Form for tax deduction on&lt;br /&gt;your part. Our payments will be issued out in your name and you can have them cashed in your existing bank account, we don&#39;t accept newly created bank accounts because it slows the cashing process. Deduct your percentage and forward the balance to the company attorney manager via a western union money transfer, the name will be given to you later after cashing a payment.&lt;br /&gt;&lt;br /&gt;This job takes only 3-7 hours per week. You&#39;ll have a lot of free time for taking up another job; you&#39;ll get good income and a regular job. This job is very challenging and you should understand it. We are looking only for the employee who satisfies our requirements and will be an earnest assistant.&lt;br /&gt;&lt;br /&gt;We have health insurance and the 401K retirement savings plan as well as all the other standard benefits that a major company usually provides. Unfortunately we can only start talking about this after the first month has passed since you&#39;re working for us. We consider the first month as a trial period. In any case you do not have to pay for anything in advance; there are no hidden costs for performing this job. Any fee you might encounter will be deducted from our share of the funds before you send it to us.&lt;br /&gt;&lt;br /&gt;You will receive next instructions step by step.&lt;br /&gt;&lt;br /&gt;Unfortunately we cannot setup any interviews now, as we do not have any representatives in US. We will be able to come to meet within the next few months when the new offices will be opened in your area!&lt;br /&gt;&lt;br /&gt;Please let me know if you are still interested. Within 24 hours after we will receive this information we will forward you a copy of the contract you have to fill in, sign and e-mail back to us.&lt;br /&gt;&lt;br /&gt;Ella D. Dickinson&lt;br /&gt;Medline Financial Industries PLC&lt;br /&gt;Euston Road, London, NW1&lt;br /&gt;United Kingdom&lt;br /&gt;FAX 011-44-132-656-8743&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/7473068707767028958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/7473068707767028958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7473068707767028958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/7473068707767028958'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2011/01/wanna-be-mule.html' title='Wanna be a mule?'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-1481535604999435677</id><published>2010-08-16T10:18:00.003-04:00</published><updated>2010-08-16T11:13:44.465-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware analysis"/><title type='text'>You never get a second chance...</title><content type='html'>Have you ever heard the saying &quot;You never get a second chance to make a first impression&quot;?  The same applies to malware analysis, and information security in general.&lt;br /&gt;&lt;br /&gt;This morning I was doing some research into some malicious spam emails that were coming in.  They were your normal click-on-a-link-and-be-redirected-to-50-sites emails and I had tracked it down to the last site.  After decoding the JS it gave out, I could see the attacks it was going to perform and the URLs it was going to go to.  So close to the malicious executable...so close.&lt;br /&gt;&lt;br /&gt;So I typed the followed at my prompt:&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic; font-family: courier new;&quot;&gt;curl -D header.txt &quot;http://badsite.com/welcome.php?id=12&amp;amp;pid=10&amp;amp;1=12&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;See any problems?&lt;br /&gt;&lt;br /&gt;Curl writes anything it downloads to standard output by default.  In other words, since I didn&#39;t redirect the output to a file or use the -O option, the file from the malicious site was written to my screen.  Normally, this wouldn&#39;t have been such a bad thing except it was gzip compressed, so my screen was filled with binary characters.&lt;br /&gt;&lt;br /&gt;No problem, right?  All I have to do is download it again, this time redirecting.  Here&#39;s what happened:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-style: italic; font-family: courier new;&quot;&gt;curl -D header.txt &quot;http://badsite.com/welcome.php?id=12&amp;amp;pid=10&amp;amp;1=12&quot; &gt; 1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic; font-family: courier new;&quot;&gt;  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic; font-family: courier new;&quot;&gt;                                 Dload  Upload   Total   Spent    Left  Speed&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic; font-family: courier new;&quot;&gt;  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;0 bytes downloaded?  What happened?&lt;br /&gt;&lt;br /&gt;Many web-based malicious toolkits used by attackers have an option to only allow the attack file to be downloaded once per IP address.  This prevents multiple re-infections on clients and analysts (like me) from exploring their site.  When I initially requested the file and didn&#39;t redirect the output, I used my one shot.  The second time I went to download it, the site saw me and didn&#39;t let me access it again.  Of course, there are ways around this, but thats for another post.&lt;br /&gt;&lt;br /&gt;So, what did I take away from this?&lt;br /&gt;&lt;br /&gt;1. Everyone makes mistakes.  Hell, I make alot of them.  If anyone tells you they don&#39;t, they&#39;re lying.  Learn and move on.&lt;br /&gt;2. I need better web download tools.  Well, the tools (eg. curl) work fine.  I&#39;m flawed.  I&#39;ve already started to create a script that does all that needs done for me.  No more mess ups.&lt;br /&gt;&lt;br /&gt;I hope others can read this and learn from my mistake.  I&#39;d love to hear how others download malicious websites.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/1481535604999435677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/1481535604999435677' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/1481535604999435677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/1481535604999435677'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2010/08/you-never-get-second-chance.html' title='You never get a second chance...'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-5281552559717249611</id><published>2010-08-13T11:05:00.003-04:00</published><updated>2010-08-13T11:17:20.767-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware analysis"/><category scheme="http://www.blogger.com/atom/ns#" term="training"/><title type='text'>Introduction to Malware Analysis Course</title><content type='html'>Once again I will be teaching my &lt;span style=&quot;font-style: italic;&quot;&gt;Introduction to Malware Analysis&lt;/span&gt; course this year at the &lt;a href=&quot;https://www.informationsecuritysummit.org/&quot;&gt;NE Ohio Information Security Summit&lt;/a&gt; that takes place on October 11-15, 2010 in Cleveland, Ohio.  My course is in the &lt;a href=&quot;https://www.informationsecuritysummit.org/training_classes.doc&quot;&gt;pre-conference training&lt;/a&gt; and will take place on Oct 12-13.&lt;br /&gt;&lt;br /&gt;The 2 day introduction to malware analysis class is geared to those  who want to learn malware analysis or are just starting out.  We&#39;ll  cover all of the basics for malware analysis including setting up your  analysis lab, static analysis and dynamic analysis.  In the end, you&#39;ll  walk out of the class with the knowledge of how to take a malware sample  and determine what it does, who it contacts and what risk it poses.&lt;br /&gt;&lt;br /&gt;The class is structured around labs where you&#39;ll use the techniques taught to analyse live malware.  Since we will be analyzing actual malware, students will need to bring their own laptops (requirements will be posted closer to the class).&lt;br /&gt;&lt;br /&gt;The end of the class will also feature an analysis contest where students will compete to win some cool prizes.  Last year I gave away a copies of &lt;a href=&quot;http://www.boardgamegeek.com/boardgame/10707/hacker-deluxe-edition&quot;&gt;Hacker&lt;/a&gt; and &lt;a href=&quot;http://www.boardgamegeek.com/boardgame/30549/pandemic&quot;&gt;Pandemic&lt;/a&gt;...so we&#39;ll see what happens this year!&lt;br /&gt;&lt;br /&gt;Even if you don&#39;t take my course, I highly recommend &lt;a href=&quot;https://www.informationsecuritysummit.org/register.php&quot;&gt;attending the conference&lt;/a&gt;.  Its an amazing conference for the price ($300 until 9/15).  There are lots of great speakers (many of which speak at Black Hat, Defcon, Shmoocon, etc.).&lt;br /&gt;&lt;br /&gt;Look forward to seeing you there!</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/5281552559717249611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/5281552559717249611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5281552559717249611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5281552559717249611'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2010/08/introduction-to-malware-analysis-course.html' title='Introduction to Malware Analysis Course'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-5100433984110744196</id><published>2010-05-12T13:10:00.006-04:00</published><updated>2010-05-13T11:01:19.619-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="sandnet"/><title type='text'>Simulating the User Experience: Part 3</title><content type='html'>In the first two parts of this blog series, I detailed an issue I found where not all of the user environment variables were set for a program run with winexe.  This was causing an issue during analysis of some malware since the samples were looking for those variables.  As a work-around, a batch script was uploaded to the Windows sandbox and scheduled to run.  When the scheduled job ran, all of the environment variables were set and the malware ran as it normally would.&lt;br /&gt;&lt;br /&gt;The whole situation got me thinking - are public sandboxes setting all of the environment variables?  As was seen, some malware rely on these variables and if they aren&#39;t set the malware won&#39;t run.  If someone were to use a public sandnet to test malware that relies on these variables and the malware didn&#39;t run, they could be under the false impression that the program is benign.&lt;br /&gt;&lt;br /&gt;Before I go on I should state that this post is not a knock against public sandboxes.  They provide a great service to the security community.  I did not do this to find any weaknesses in them to exploit or publish maliciously.  My goal here was to determine which sandboxes, if any, miss some variables that may be required for malware to run.&lt;br /&gt;&lt;br /&gt;To test this, I wrote a program that would obtain the environment variables and write each one to its own registry key/value pair.  Since the public sandboxes report any registry modifications made by the program, I would be able to see all of the environment variables available to the program.  This program was then uploaded to a number of different public sandboxes and the results analyzed.  The sandboxes I used were &lt;a href=&quot;http://anubis.iseclab.org/&quot;&gt;Anubis&lt;/a&gt;, &lt;a href=&quot;http://camas.comodo.com/&quot;&gt;Comodo&lt;/a&gt;, &lt;a href=&quot;http://mwanalysis.org/&quot;&gt;CWSandbox&lt;/a&gt;, &lt;a href=&quot;http://www.joebox.org/&quot;&gt;Joebox&lt;/a&gt;, &lt;a href=&quot;http://www.threatexpert.com/&quot;&gt;ThreatExpert&lt;/a&gt;, &lt;a href=&quot;https://aerie.cs.berkeley.edu/submitsample-d.php&quot;&gt;BitBlaze&lt;/a&gt; and the &lt;a href=&quot;http://www.norman.com/security_center/security_tools/submit_file/en&quot;&gt;Norman Sandbox&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In my testing, none of the sandboxes set all 30 of the environment variables I originally saw in my test.  BitBlaze set 29; Anubis, Comodo, CWSandbox and Joebox set 28; and the Norman Sandbox only set 16.  For some reason, ThreatExpert did not report anything back from my program - this could be a problem with my program or some type of security measure on their part.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;* Note: I will not say which variables were and were not set. That information could be used by malware to determine it was running in one of these sandnets and that is not my purpose.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Due to the way the malware is executed in my system, I think that having only 28 or 29 environment variables is a perfectly normal variation.  Therefore, my conclusion to all of this is that with the exception of Norman Sandbox, the sandnets appear to be setting the variables they should and represent a likely variation in the systems malware would run on.&lt;br /&gt;&lt;br /&gt;As for Norman Sandbox, they are setting a small number of environment variables.  This is perhaps a likely scenario for some systems.  However, the variation of such a small amount being set would concern me as I don&#39;t know if all malware would work as it normally would.  Only further testing can tell.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/5100433984110744196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/5100433984110744196' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5100433984110744196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/5100433984110744196'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2010/05/simulating-user-experience-part-3.html' title='Simulating the User Experience: Part 3'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-4762971707337222308</id><published>2010-05-08T11:38:00.008-04:00</published><updated>2010-05-11T11:00:05.638-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware analysis"/><title type='text'>Simulating the User Experience: Part 2</title><content type='html'>&lt;a href=&quot;http://secshoggoth.blogspot.com/2010/05/simulating-user-experience-part-1.html&quot;&gt;In my last post&lt;/a&gt; I discussed the problem I found with &lt;a href=&quot;http://eol.ovh.org/winexe/&quot;&gt;winexe&lt;/a&gt; and how it did not set all the Windows environment variables needed to simulate a complete user experience.  This problem was preventing some malware from running in my malware analysis sandnet - a problem I needed to overcome.&lt;br /&gt;&lt;br /&gt;The way I looked at it, I had 3 options:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Modify the source code for winexe to get it to work as I wanted.  However, this was more than I wanted to do at this time.  Maybe later.&lt;/li&gt;&lt;li&gt;Use a program like &lt;a href=&quot;http://webjob.sourceforge.net/WebJob/&quot;&gt;webjob&lt;/a&gt; to provide another means to remotely execute the program.  However, this would require me to modify the Windows analysis host which, for reasons I won&#39;t go into, is a huge PITA.  Any solution that required me to modify the host was out for now.&lt;/li&gt;&lt;li&gt;Figure out a way to remotely execute the malware on the Windows system using already present tools and still get the user environment I wanted.&lt;/li&gt;&lt;/ul&gt;I decided to start with the third option.  I knew I couldn&#39;t use winexe to directly execute the malware as I wouldn&#39;t get the correct environment variables set.  But, what if I used winexe to execute another program to launch the malware?&lt;br /&gt;&lt;br /&gt;Using winexe to run &#39;cmd /c malware.exe&#39; was out as this was the method I was using before.  I then tried creating a batch script to run the malware and executing it with winexe.  No luck there either; the environment variables weren&#39;t created.  Finally, I had an idea...what if I scheduled a job to run the malware?  If I scheduled it as the user it should inherit all of the correct variables and run correctly.&lt;br /&gt;&lt;br /&gt;To test it out I created a batch script (named test.bat) in the Windows system that would run &lt;span style=&quot;font-style: italic;&quot;&gt;set&lt;/span&gt; and redirect the output into a file.  I then ran the following command (from the Linux box):&lt;br /&gt;&lt;blockquote&gt;winexe -U administrator%mypass //192.168.1.5 &#39;schtasks /create /tn testjob /tr c:\temp\test.bat /sc minute /mo 1 /ru administrator /rp mypass&#39;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Success!!!  When the script ran and dumped the environment variables into a file, all 30 were there!  The next step was to create a script to run the malware in the system.&lt;br /&gt;&lt;br /&gt;The automation script was modified to upload the malware to the Windows box along with a batch script that performs the following commands:&lt;br /&gt;&lt;blockquote&gt;schtasks /delete /tn jobname /f&lt;br /&gt;start c:\path\to\malware.exe&lt;br /&gt;&lt;/blockquote&gt;The automation script then schedules a job to run the uploaded script.  When the scheduled job kicks off, the batch file runs.  The batch file deletes the scheduled job and run the malware. &lt;br /&gt;&lt;br /&gt;Why delete the scheduled job?  When scheduling the job, it is scheduled to run every minute.  By deleting the scheduled job there&#39;s no worry the malware will run more than once.  Why schedule it to run every minute?  Call it paranoia.  :)&lt;br /&gt;&lt;br /&gt;After making the modifications to my automation script and testing it, I ran it with the Koobface sample that started all my problems and...success!  The results showed the sample ran correctly, dropped the right files and set the right registry keys.   Tests with additional malware have shown that its working correctly as well.&lt;br /&gt;&lt;br /&gt;This test got me thinking...how do publicly available sandnets work?  Are they setting the environment settings correctly?  I&#39;ll discuss this in the part 3 of this post.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/4762971707337222308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/4762971707337222308' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/4762971707337222308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/4762971707337222308'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2010/05/simulating-user-experience-part-2.html' title='Simulating the User Experience: Part 2'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2672754150485551359.post-3091548515822757331</id><published>2010-05-08T10:04:00.012-04:00</published><updated>2010-05-10T09:16:46.059-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><title type='text'>Simulating the User Experience: Part 1</title><content type='html'>Part of malware analysis, especially automated malware analysis, is to simulate the user environment as closely as possible.  After all, our goal is to determine how malware behaves when it is run by a user.  For the last few months I&#39;ve worked on an automated malware analysis system which I thought did just that.&lt;br /&gt;&lt;br /&gt;Let me explain my automated analysis system.  It is similar to the one I described in &lt;a href=&quot;http://secshoggoth.blogspot.com/2009/05/automating-malware-analysis-article.html&quot;&gt;my Hakin9 articles last year&lt;/a&gt;.  Basically I have a host system running Linux that executes an automation script.  The automation script starts up a VM, launches some monitoring tools, uploads and executes the malware, records the results and performs cleanup.  In all, it takes about 5-7 minutes per malware, depending on the settings I am running.  So far it performed extremely well and cut my analysis time down dramatically.&lt;br /&gt;&lt;br /&gt;Imagine my frustration this week when I ran a new Koobface sample in it only to find the malware didn&#39;t do anything.  It would launch, perform some start-up operations, then exit.  No registry modifications, no process injection, no network traffic.  However, when I would manually launch it or run it through &lt;a href=&quot;http://www.threatexpert.com/&quot;&gt;ThreatExpert&lt;/a&gt;, it would run fine.&lt;br /&gt;&lt;br /&gt;In looking closer, I found out that the malware was trying to place a copy of itself in the %APPDATA% directory.  Since %APPDATA% is an environment variable for the user, it should have been set - or so I thought.&lt;br /&gt;&lt;br /&gt;I took a step back and started to examine the method I was using to execute the malware.  My &quot;host&quot; system which executes the automation scripts runs Linux.  In order to execute the malware in the Windows system, &lt;a href=&quot;http://www.samba.org/samba/docs/man/manpages-3/smbclient.1.html&quot;&gt;smbclient&lt;/a&gt; is used to upload the malware and &lt;a href=&quot;http://eol.ovh.org/winexe/&quot;&gt;winexe&lt;/a&gt; is used to execute it.   After some thought, I came up with a theory that winexe was not setting all of the environment variables when it executed malware.  I was right.&lt;br /&gt;&lt;br /&gt;It turns out that in a default Windows XP SP3 system, 30 environment variables are set.  With the way I was running winexe (--system --interactive=1), only 22 of the variables were set - %APPDATA%, %CLIENTNAME%, %HOMEDRIVE%, %HOMEPATH%, %LOGONSERVER%, %SESSIONNAME%, %USERDOMAIN% and %USERNAME% are missing.&lt;br /&gt;&lt;br /&gt;To make sure it wasn&#39;t because of the way I was running winexe, I ran a number of tests.   Each test consisted of running winexe with different settings.  The command that was run was &quot;cmd.exe /c set &gt; outfile&quot;.  To be fair, I also tested &lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx&quot;&gt;PsExec&lt;/a&gt; (from another Windows system).  These are the results I found:&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th align=&quot;center&quot; colspan=&quot;3&quot;&gt;winexe&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;no settings&lt;/th&gt;&lt;th&gt;interactive&lt;/th&gt;&lt;th&gt;interactive + system&lt;/th&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%APPDATA%&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%CLIENTNAME%&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%HOMEDRIVE%&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%HOMEPATH%&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%LOGONSERVER% &lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%SESSIONNAME%&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%USERDOMAIN%&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%USERNAME%&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th align=&quot;center&quot; colspan=&quot;3&quot;&gt;psexec&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;no settings&lt;/th&gt;&lt;th&gt;interactive&lt;/th&gt;&lt;th&gt;interactive + system&lt;/th&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%APPDATA%&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%CLIENTNAME%&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%HOMEDRIVE%&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%HOMEPATH%&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%LOGONSERVER% &lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%SESSIONNAME%&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%USERDOMAIN%&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr align=&quot;center&quot;&gt;&lt;td align=&quot;LEFT&quot;&gt;%USERNAME%&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;X&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It turns out that no matter what options you use, winexe does not set the environment variables above.  Note that I also ran winexe with the --runas option and got the same results.  PsExec sets all of the environment variables, except when you specify it to run as SYSTEM.  This makes sense as most of those variables are used to specify user settings and SYSTEM would not have those.&lt;br /&gt;&lt;br /&gt;Obviously, winexe wasn&#39;t going to cut it any more because it wasn&#39;t setting a complete user environment which, in turn, was preventing malware from running.  So, what to do?  Winexe was my only way to remotely execute a program on a Windows system from a Linux system (without modifying the Windows system and installing other programs).   To find out what I did, you&#39;ll have to stay tuned for part 2!  :)&lt;br /&gt;&lt;br /&gt;As a side note, if anyone knows of another program similar to winexe, please let me know.  Also, if anyone knows of a way to get winexe to run correctly, I&#39;d love to hear it.</content><link rel='replies' type='application/atom+xml' href='http://secshoggoth.blogspot.com/feeds/3091548515822757331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2672754150485551359/3091548515822757331' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3091548515822757331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2672754150485551359/posts/default/3091548515822757331'/><link rel='alternate' type='text/html' href='http://secshoggoth.blogspot.com/2010/05/simulating-user-experience-part-1.html' title='Simulating the User Experience: Part 1'/><author><name>Tyler</name><uri>http://www.blogger.com/profile/15411793726236555303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5sH0A60I6mUqnKr0bByQUU8ghtOaE3fyqKWoI8vk4oKPUUqVrHjFW-c3JxGw4tmOOe5hVykRCLeymibOGytclitiuks3CuR0DlCUp9xmJ8LpbhmgLDET0Oc_4kV32aq8/s220/muckmonster-small-blog.png'/></author><thr:total>2</thr:total></entry></feed>