<?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: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-5443343931811641298</id><updated>2011-07-08T03:09:55.943-07:00</updated><title type='text'>Node 5</title><subtitle type='html'>My disjointed thoughts on NSM and Infosec</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://node5.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-1721224270672429331</id><published>2011-01-15T04:53:00.000-08:00</published><updated>2011-01-15T06:41:13.979-08:00</updated><title type='text'>EMET Glob.. Got 30 seconds? I might save you 30 seconds ;-).</title><content type='html'>So &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c6f0a6ee-05ac-4eb6-acd0-362559fd2f04"&gt;EMET&lt;/a&gt; is an awesome tool, it really is. If you are floating about the Internet on a Windows machine I highly recommend it. Sure your AV software may have some similar features but the protections will probably not be as robust and/or you may not have as granular control over protections. I will include a couple of links to good articles I've found regarding configuring EMET below.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://blogs.technet.com/b/srd/archive/2010/09/10/use-emet-2-0-to-block-the-adobe-0-day-exploit.aspx"&gt;Article on protection against an Adobe 0-day. Note: the problem is in a dll so the steps outlined here need to be applied to any application that loads the vulnerable dll &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://rationallyparanoid.com/articles/microsoft-emet-2.html"&gt;Rationally Paranoid write-up on EMET.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://securehomenetwork.blogspot.com/2010/10/use-emet-on-windows-machines.html"&gt;James Mcquaid write-up on EMET.&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;One annoying thing about the command line configuration tool EMET_conf.exe is that it doesn't support file globs. So I whipped up the following batch file in a couple of minutes to deal with this. Hopefully it will save you a couple of minutes when adding executables to EMET for compatibility testing your applications.  It would be nice to be able to toggle EMET options via cli as well.. Perhaps I will work on this next.&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:78%;"&gt;@echo off&lt;br /&gt;SETLOCAL EnableDelayedExpansion EnableExtensions&lt;br /&gt;&lt;br /&gt;rem - change this to the path of your emet_conf executable.&lt;br /&gt;SET EMETCMD="%PROGRAMFILES%\emet\emet_conf.exe"&lt;br /&gt;&lt;br /&gt;if "%1" == "" goto error_missing_action&lt;br /&gt;if %2 == "" goto error_missing_glob&lt;br /&gt;&lt;br /&gt;if "%1" == "add" goto emet_add&lt;br /&gt;if "%1" == "delete" goto emet_delete&lt;br /&gt;echo.&lt;br /&gt;rem - add the user_supplied glob to emet&lt;br /&gt;:emet_add&lt;br /&gt;echo going to add files matching glob %2 to emet&lt;br /&gt;@echo on&lt;br /&gt;for /f "tokens=*" %%i in ('dir /s/b/p %2') do %EMETCMD% --add "%%i"&lt;br /&gt;@echo off&lt;br /&gt;goto end&lt;br /&gt;&lt;br /&gt;rem - delete the user_supplied glob to emet&lt;br /&gt;:emet_delete&lt;br /&gt;echo going to delete files matching glob %2 to emet&lt;br /&gt;@echo on&lt;br /&gt;for /f "tokens=*" %%i in ('dir /s/b/p %2') do %EMETCMD% --delete "%%i"&lt;br /&gt;@echo off&lt;br /&gt;goto end&lt;br /&gt;&lt;br /&gt;rem - user must specify add or delete as action&lt;br /&gt;:error_missing_action&lt;br /&gt;echo missing action argument you must specify add or delete!&lt;br /&gt;echo usage emet_glob.bat adddelete "%PROGRAMFILES%\adobe\*.exe"&lt;br /&gt;goto end&lt;br /&gt;&lt;br /&gt;rem - user must specify a second argument of a base path to recursively search for files to add&lt;br /&gt;:error_missing_glob&lt;br /&gt;echo missing action argument you must specify add or delete!&lt;br /&gt;echo "usage emet_glob.bat adddelete "%PROGRAMFILES%\adobe\*.exe"&lt;br /&gt;goto end&lt;br /&gt;&lt;br /&gt;:end&lt;br /&gt;echo.&lt;br /&gt;echo Done.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-1721224270672429331?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/1721224270672429331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=1721224270672429331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1721224270672429331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1721224270672429331'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2011/01/emet-glob-got-30-seconds-i-might-save.html' title='EMET Glob.. Got 30 seconds? I might save you 30 seconds ;-).'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-6572760518107211583</id><published>2010-04-19T12:28:00.000-07:00</published><updated>2010-04-19T12:31:11.502-07:00</updated><title type='text'>New Suricata Release 0.8.2!</title><content type='html'>The release notes below say it all ;-)...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;The OISF development team is proud to introduce the 3rd beta release of&lt;br /&gt;Suricata, the Open Source Intrusion Detection and Prevention engine. The&lt;br /&gt;first release candidate is currently scheduled for early May, but check&lt;br /&gt;https://redmine.openinfosecfoundation.org/projects/roadmap/suricata for&lt;br /&gt;the up to date schedule!&lt;br /&gt;&lt;br /&gt;Get the new release here:&lt;br /&gt;http://www.openinfosecfoundation.org/download/suricata-0.8.2.tar.gz&lt;br /&gt;&lt;br /&gt;New features&lt;br /&gt;&lt;br /&gt;- Support for the following keywords: detection_filter, http_client_body&lt;br /&gt;- The HTTP parser can now set server personalities&lt;br /&gt;- threshold.config support&lt;br /&gt;- The experimental CUDA code now also works on x86_64&lt;br /&gt;- IP address only rules for IPv6 are now supported as well&lt;br /&gt;- Suricata can now write a pid file (pass --pidfile &lt;file&gt;)&lt;br /&gt;- A fuzzer script was added to the code base&lt;br /&gt;- Policy lookup for defrag module&lt;br /&gt;&lt;br /&gt;Improvements&lt;br /&gt;&lt;br /&gt;- Much better average and worstcase performance in the detection engine&lt;br /&gt;- Memory footprint was reduced&lt;br /&gt;- More validation at signature loading stage&lt;br /&gt;- Libnet 1.1 is now optional&lt;br /&gt;- Negated uricontent and http_cookie matching is now supported&lt;br /&gt;- Lots of fixes of issues found by Valgrind's DRD, CLANG and Parfait.&lt;br /&gt;- Threads are named now in "top" (Linux only atm).&lt;br /&gt;- Unified1 file handling is improved&lt;br /&gt;&lt;br /&gt;Bugs fixed&lt;br /&gt;&lt;br /&gt;Many :)&lt;br /&gt;Several segmentation faults, upgrading is highly recommended.&lt;br /&gt;&lt;br /&gt;See&lt;br /&gt;https://redmine.openinfosecfoundation.org/projects/suricata/issues?fixed_version_id=6&amp;amp;set_filter=1&amp;amp;status_id=c&lt;br /&gt;&lt;br /&gt;Known issues &amp;amp; missing features&lt;br /&gt;&lt;br /&gt;We have made significant progress towards reaching our first full&lt;br /&gt;(non-beta) release of Suricata.  Your feedback is always important to us&lt;br /&gt;and we appreciate your time and effort.  As always, we are doing our&lt;br /&gt;best to make you aware of continuing development and items within the&lt;br /&gt;engine that are not yet complete.  With this in mind, please notice the&lt;br /&gt;list we have included of known items we are working on.&lt;br /&gt;&lt;br /&gt;- Using the http_cookie keyword seems to cause a match on all packets.&lt;br /&gt;- Currently we dont' support the dce option for byte_test and byte_jump.&lt;br /&gt;- Stream reassembly is currently only performed for app-layer code.&lt;br /&gt;- Inconsistent time stamps in http log file due to handling &amp;amp; updating&lt;br /&gt;of the http state.&lt;br /&gt;- DCE/RPC over udp is not currently supported.&lt;br /&gt;- dce_stub_data does not respect relative modifiers.&lt;br /&gt;- Engine does not work properly on big endian platforms.&lt;br /&gt;- Time based stats are not calculated correctly.&lt;br /&gt;&lt;br /&gt;See https://redmine.openinfosecfoundation.org/projects/suricata/issues&lt;br /&gt;for an up to date list and to report new issues.&lt;/file&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-6572760518107211583?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/6572760518107211583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=6572760518107211583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6572760518107211583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6572760518107211583'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2010/04/new-suricata-release-082.html' title='New Suricata Release 0.8.2!'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-6817566461269539425</id><published>2010-04-09T13:07:00.000-07:00</published><updated>2010-04-10T08:37:27.945-07:00</updated><title type='text'>Help Us Make Our Meerkat Fuzzier!</title><content type='html'>	&lt;title&gt;&lt;/title&gt; 		&lt;style type="text/css"&gt; 	&lt;!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } 		A:link { so-language: zxx } 	--&gt; 	&lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;If you checkout the latest version of the suricata from it's git repo, now included is a new qa/ directory.  In this directory there now lives a perl script I created called wirefuzz.pl that is a suricata specific re-implementation of the wireshark fuzzing technique described &lt;a href="http://wiki.wireshark.org/FuzzTesting"&gt;here&lt;/a&gt;.  The script can also be used as a shortcut to running the engine through valgrind tools etc.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;In it's simplest "set it and forget it form" you can leave it running and it will loop through the pcaps provided continuing to mutate them with whatever error ratio you provide, i.e. if you pass -e=0.02 there is a 2% chance that each byte will be modified in one of four different ways.  It will continue to loop until a invalid exit value is detected, at which point it will try to find the a core dump, parse it and save the output to a file for further inspection.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;We have found this technique to be a very effective way of discovering bugs.  We have multiple instances of this script running 24/7 using an extensive collection of pcaps as ammunition.  With that said we will never be able to account for the "uniqueness" that exists in real-world environments both large and small. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;if you want to help the project please don't hesitate to checkout the latest version of the repo and point the fuzzer at perhaps your rotating packet capture, or a sample of your network traffic.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;If you have any questions please don't hesitate to ask on the oisf-users mailing list, which you can subscribe to &lt;a href="http://lists.openinfosecfoundation.org/mailman/listinfo/oisf-users"&gt;here&lt;/a&gt;, or you can leave a comment and I will try to respond.  Ladies and gentlemen start your fuzzers!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;To check the latest development version of suricata:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;git clone &lt;/span&gt;&lt;/span&gt;&lt;a href="git://phalanx.openinfosecfoundation.org/oisf.git"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style="font-size:85%;"&gt;git://phalanx.openinfosecfoundation.org/oisf.git&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in; font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;The script relies on a couple of perl modules Capture::Tiny and Devel::GDB.  Here are a couple of tips on getting them installed:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Ubuntu 9.10&lt;br /&gt;sudo apt-get install libdevel-gdb-perl libcapture-tiny-perl&lt;br /&gt;&lt;br /&gt;RedHatES/CentOS 5&lt;br /&gt;yum -y install cpanspec perl-Module-Build&lt;br /&gt;cpanspec --packager OISF -v -s --follow Capture::Tiny&lt;br /&gt;cpanspec --packager OISF -v -s --follow Devel::GDB&lt;br /&gt;rpmbuild --rebuild *.src.rpm&lt;br /&gt;rpm -ivh /usr/src/redhat/RPMS/noarch/perl-Devel-GDB*.rpm&lt;br /&gt;rpm -ivh /usr/src/redhat/RPMS/noarch/perl-Capture-Tiny*.rpm&lt;br /&gt;&lt;br /&gt;Fedora Core 12&lt;br /&gt;yum -y install perl-Capture-Tiny perl-Devel-GDB&lt;br /&gt;&lt;br /&gt;Other debain based versions, try the Ubunutu instructions if this doesn't work try the following.&lt;br /&gt;sudo apt-get install dh-make-perl&lt;br /&gt;mkdir fuzzmodules &amp;amp;&amp;amp; cd fuzzmodules&lt;br /&gt;dh-make-perl --cpan Devel-GDB --build&lt;br /&gt;dh-make-perl --cpan Capture-Tiny --build&lt;br /&gt;sudo dpkg -i *.deb&lt;/span&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;Output from wirefuzz.pl -h&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-h or help &lt;(this output)&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-r=&lt;(filemask for pcaps to read)&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-n=&lt;(optional) number of iterations or if not specified will run until error&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-s=&lt;(optional) path to ids rules file will be passed as -s to suricata&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-e=&lt;(optional) editcap error ratio to introduce if not specified will not fuzz. Valid range for this is 0.00 - 1.0&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-p=&lt;(path to the suricata bin)&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-l=&lt;(optional) log dir for output if not specified will use current directory.&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-v=&lt;(optional) (memcheck|drd|helgrind|callgrind) will run the command through one of the specified valgrind tools.&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;-y &lt;(shuffle the array, this is useful if running multiple instances of this script.)&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;Example usage:&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;First thing to do is download and build suricata from git with -O0 so vars don't get optimized out. See the example below:&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;git clone git://phalanx.openinfosecfoundation.org/oisf.git suricatafuzz1 &amp;amp;&amp;amp; cd suricatafuzz1 &amp;amp;&amp;amp; ./autogen.sh &amp;amp;&amp;amp; CFLAGS="-g -O0" ./configure &amp;amp;&amp;amp; make&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;Second thing to do is to edit suricata.yaml to fit your environment.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;Third go ahead and run the script.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;In the example below the script will loop forever until an error is encountered will behave in the following way.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;1.-r Process all pcaps in subdirectories of /home/somepath/pcaps/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;2.-s Tell suricata to use the rules file /home/somepath/current-all.rules&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;3.-y Shuffle the array of pcaps this is useful if running multiple instances of this script.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;4.-c Tell suricata to use the suricata.yaml in the current dir.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;6.-e Tell editcap to introduce a 2% error ratio, i.e. there is a 2% chance that a byte will be fuzzed see http://wiki.wireshark.org/FuzzTesting for more info.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;7.-p Use src/suricata as our suricata bin file. The script will determin if the argument passed is a bin file or a txt wrapper and will adjust accordingly.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;/usr/bin/wirefuzz.pl -r=/home/somepath/pcaps/*/* -s=/home/somepath/current-all.rules -y -c=suricata.yaml -e=0.02 -p src/suricata&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;If an error is encountered a file named &lt;fuzzedfile&gt;ERR.txt will be created in the log dir (current dir in this example) that will contain output from stderr,stdout, and gdb.&lt;/fuzzedfile&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;Take a look at the opts make it work for you environtment and from the OISF QA team thanks for helping us make our meerkat fuzzier! ;-) &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-6817566461269539425?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/6817566461269539425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=6817566461269539425' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6817566461269539425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6817566461269539425'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2010/04/help-us-make-our-meerkat-fuzzier.html' title='Help Us Make Our Meerkat Fuzzier!'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-1548627475696811132</id><published>2010-03-01T19:39:00.000-08:00</published><updated>2010-03-01T20:01:54.955-08:00</updated><title type='text'>New release of Suricata and a brief Istanbul summary.</title><content type='html'>I know that I'm a little late with this but we have released a new version of Suricata  version 0.8.1 which you can get &lt;a href="http://www.openinfosecfoundation.org/index.php/download-suricata"&gt;here&lt;/a&gt;.  It is still beta quality code but we have made some significant changes/improvements which you can read about &lt;a href="http://www.openinfosecfoundation.org/index.php/component/content/article/1-latest-news/86-suricata-081-released"&gt;here&lt;/a&gt;.  In addition to the known issues it should be noted that the PF_RING code in this version works with versions of the api prior to 4.1.2.  Victor currently has a patch in his inbox that will allow it to work with later versions and for the user to specify a PF_RING load balancing type for the cluster i.e. load balanced per-packet or per-flow.&lt;br /&gt;&lt;br /&gt;Secondly,  I met with most of the OISF team in Istanbul last week.  We had some very productive meetings and I feel we really got a good grasp on what needs to be done in engine in the coming year(s).  On a more personal note it was great to finally put faces with names for those individuals I had not met prior to last week.  Victor and I also got the chance to speak at local&lt;a href="http://www.owasp.org/index.php/Turkey"&gt; OWASP&lt;/a&gt; meeting in Instanbul along with Brian Rectanus from OISF/Breach.  These were a great group of guys and despite the fact that Victor and I were totally disorganized (Jonkman was originally supposed to speak ;-))  they didn't seem to mind to much or at least they hid it well.&lt;br /&gt;&lt;a id="publishButton" class="cssButton" href="javascript:void(0)" target="" onclick="if (this.className.indexOf(&amp;quot;ubtn-disabled&amp;quot;) == -1) {var e = document['stuffform'].publish;(e.length) ? e[0].click() : e.click(); if (window.event) window.event.cancelBubble = true; return false;}"&gt;&lt;div class="cssButtonOuter"&gt;&lt;div class="cssButtonMiddle"&gt;&lt;div class="cssButtonInner"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-1548627475696811132?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/1548627475696811132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=1548627475696811132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1548627475696811132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1548627475696811132'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2010/03/new-release-of-suricata-and-brief.html' title='New release of Suricata and a brief Istanbul summary.'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-5925230303940976589</id><published>2009-12-31T13:47:00.000-08:00</published><updated>2009-12-31T13:58:53.261-08:00</updated><title type='text'>Suricata Release</title><content type='html'>We have done it!  We have released the first version of our brand-spanking new IDP engine named Suricata.  For more info please see the official release&lt;a href="http://www.openinfosecfoundation.org/index.php/component/content/article/1-latest-news/82-suricata-beta-available"&gt; announcement &lt;/a&gt;on the OISF website.  Everybody on the team has been working hard day and night for these last six months to get this far. &lt;br /&gt;&lt;br /&gt;As &lt;a href="http://www.inliniac.net/blog/2009/12/31/suricata-released.html"&gt;Victor&lt;/a&gt; mentioned in his post if you find a bug or have any feedback please don't hesitate to let us know via the project's &lt;a href="https://redmine.openinfosecfoundation.org/projects/show/suricata"&gt;redmine&lt;/a&gt; page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-5925230303940976589?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/5925230303940976589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=5925230303940976589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/5925230303940976589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/5925230303940976589'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/12/suricata-release.html' title='Suricata Release'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-2871250861458157690</id><published>2009-11-29T10:40:00.000-08:00</published><updated>2009-11-29T10:52:08.645-08:00</updated><title type='text'>Very quick look at zero-copy bpf in FreeBSD 8.0</title><content type='html'>So it appears as if they have finally integrated &lt;a href="http://www.seccuris.com/documents/whitepapers/20070517-devsummit-zerocopybpf.pdf"&gt;Zero-Copy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;bpf&lt;/span&gt;&lt;/a&gt; support into FreeBSD 8.0.  I have not had any time to do any real performance tests but I thought I would just throw a few little notes up about it.  Zero-Copy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;BPF&lt;/span&gt; is not enabled by default, to enable it you must do the following.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;sysctl&lt;/span&gt; net.bpf.zerocopy_enable=1&lt;br /&gt;&lt;br /&gt;Once you set this option you can fire up any &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;libpcap&lt;/span&gt; based application and it should use the zero-copy functionality.  It appears as if there was a patch to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;netstat&lt;/span&gt; that wasn't integrated for the 8.0 release but can be found &lt;a href="http://www.watson.org/%7Erobert/freebsd/zcopybpf/"&gt;here&lt;/a&gt;.  A few little fixes namely converting the %&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;lu&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;printfs&lt;/span&gt; to %&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;llu&lt;/span&gt; instead will give you a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;netstat&lt;/span&gt; that will produce stats about zero-copy operations.&lt;br /&gt;&lt;br /&gt;without zero-copy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;sysctl&lt;/span&gt; option set to zero...&lt;br /&gt;./&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;netstat&lt;/span&gt; -s -B&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;tcpdump&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;pid&lt;/span&gt; 3402 on ed0:&lt;br /&gt;         376 packets received&lt;br /&gt;         376 packets matched receive filter&lt;br /&gt;         0 packets dropped&lt;br /&gt;        0 current hold buffer size&lt;br /&gt;        1146 current store buffer size&lt;br /&gt;         0 packets written&lt;br /&gt;         0 packets matched write filter&lt;br /&gt;         0 packet writes failed&lt;br /&gt;         0 zero copy operations&lt;br /&gt;&lt;br /&gt;with zero-copy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;sysctl&lt;/span&gt; option set to 1&lt;br /&gt;&lt;br /&gt;FreeBSD-32-bit# ./&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;netstat&lt;/span&gt; -s -B&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;tcpdump&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;pid&lt;/span&gt; 3424 on ed0:&lt;br /&gt;         745 packets received&lt;br /&gt;         745 packets matched receive filter&lt;br /&gt;         0 packets dropped&lt;br /&gt;        0 current hold buffer size&lt;br /&gt;        830 current store buffer size&lt;br /&gt;         0 packets written&lt;br /&gt;         0 packets matched write filter&lt;br /&gt;         0 packet writes failed&lt;br /&gt;         1490 zero copy operations&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-2871250861458157690?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/2871250861458157690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=2871250861458157690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/2871250861458157690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/2871250861458157690'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/11/very-quick-look-at-zero-copy-bpf-in.html' title='Very quick look at zero-copy bpf in FreeBSD 8.0'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-4322242233251044992</id><published>2009-11-11T16:04:00.000-08:00</published><updated>2011-01-06T14:20:16.965-08:00</updated><title type='text'>clang static-analyzer == awesomeness</title><content type='html'>If you are looking for a good open source static analyzer for c/c++ you know that it is slim pickins out there.  There are great tools for detecting memory issues like &lt;a href="http://valgrind.org/"&gt;valgrind&lt;/a&gt; and all of it's included &lt;a href="http://valgrind.org/info/tools.html"&gt;goodies&lt;/a&gt;. Most open source static code analyzers are out of date, are just to darn difficult to get working (cough* cough* splint), or don't scale well to large projects like flawfinder and it's hey you have a static buffer at line x you better make sure you do proper bounds checking.&lt;br /&gt;&lt;br /&gt;So in my search for a static code analyzer I stumbled across the clang &lt;a href="http://clang-analyzer.llvm.org/"&gt;static-analyzer&lt;/a&gt; and I must say that it is pretty darn amazing.  While it doesn't detect buffer overflows  at the time of writing, it informs the user of a ton of other issues that when resolved can lead to cleaner more efficient code.  I'm just going to summarize the steps that I went through to get it up and running.  Most of these steps are on the clang &lt;a href="http://clang-analyzer.llvm.org/"&gt;static-analyzer&lt;/a&gt; site or came from this blog &lt;a href="http://hdante.blogspot.com/2009/04/clang-compiler-quickstart.html"&gt;post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Checkout llvm using subversion&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;2. Checkout clang using subversion&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;cd llvm/tools&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;svn co http://llvm.org/svn/llvm-project/cfe/trunk clang&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;3. Build llvm and clang&lt;br /&gt;cd ..&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;./configure --prefix=/opt/clang&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;&lt;br /&gt;4.Clang static-analyzer isn't installed with make install so lets move it to the location where we installed everything else.&lt;br /&gt;&lt;br /&gt;sudo cp -Rf tools/clang/tools/scan-build /opt/clang/&lt;br /&gt;sudo cp -Rf tools/clang/tools/scan-view /opt/clang/&lt;br /&gt;&lt;br /&gt;5.Add the different clang dirs to your $PATH. Usually this can be done by adding a line similar to the following in /etc/profile.&lt;br /&gt;&lt;br /&gt;PATH=$PATH:/opt/clang/bin:/opt/clang/libexec:/opt/clang/scan-build:/opt/clang/scan-view&lt;br /&gt;&lt;br /&gt;6.Go into the directory where your source code resides.  If you have code that follows the normal ./configure, make, make install type of build you will want to do the following.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;scan-build ./configure&lt;br /&gt;scan-build -o /var/www/html/testresults make&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;7. Once it is completed you should see a message like "x diagnostics generated." Fire up your browser and got to the /testresults/ dir on the web server where you dumped your results.  The interface is amazing as once you click on a bug it will actually walk you through the code, and do things for you like expand macros etc.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enjoy ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-4322242233251044992?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/4322242233251044992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=4322242233251044992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/4322242233251044992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/4322242233251044992'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/11/clang-static-analyzer-awesomeness.html' title='clang static-analyzer == awesomeness'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-969981991198407787</id><published>2009-07-07T13:01:00.000-07:00</published><updated>2009-07-07T13:11:20.728-07:00</updated><title type='text'>.adm template that sets killbits  for MS972890</title><content type='html'>If you want to go the group policy route here you go....  If this blows up your computer, your domain, server farm,  blender, I'm not responsible...  You have to enable the setting for each inside of the gpo to set the killbit.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;CLASS MACHINE&lt;br /&gt;&lt;br /&gt;CATEGORY VulnFixes&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {011B3619-FE63-4814-8A84-15A194CE9CE3}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{011B3619-FE63-4814-8A84-15A194CE9CE3}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {0149EEDF-D08F-4142-8D73-D23903D21E90}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{0149EEDF-D08F-4142-8D73-D23903D21E90}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {0369B4E5-45B6-11D3-B650-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{0369B4E5-45B6-11D3-B650-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {0369B4E6-45B6-11D3-B650-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{0369B4E6-45B6-11D3-B650-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {055CB2D7-2969-45CD-914B-76890722F112}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{055CB2D7-2969-45CD-914B-76890722F112}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {0955AC62-BF2E-4CBA-A2B9-A63F772D46CF}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{0955AC62-BF2E-4CBA-A2B9-A63F772D46CF}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {15D6504A-5494-499C-886C-973C9E53B9F1}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{15D6504A-5494-499C-886C-973C9E53B9F1}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {1BE49F30-0E1B-11D3-9D8E-00C04F72D980}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{1BE49F30-0E1B-11D3-9D8E-00C04F72D980}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {1C15D484-911D-11D2-B632-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{1C15D484-911D-11D2-B632-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {1DF7D126-4050-47F0-A7CF-4C4CA9241333}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{1DF7D126-4050-47F0-A7CF-4C4CA9241333}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {2C63E4EB-4CEA-41B8-919C-E947EA19A77C}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{2C63E4EB-4CEA-41B8-919C-E947EA19A77C}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {334125C0-77E5-11D3-B653-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{334125C0-77E5-11D3-B653-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {37B0353C-A4C8-11D2-B634-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{37B0353C-A4C8-11D2-B634-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {37B03543-A4C8-11D2-B634-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{37B03543-A4C8-11D2-B634-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {37B03544-A4C8-11D2-B634-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{37B03544-A4C8-11D2-B634-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {418008F3-CF67-4668-9628-10DC52BE1D08}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{418008F3-CF67-4668-9628-10DC52BE1D08}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {4A5869CF-929D-4040-AE03-FCAFC5B9CD42}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{4A5869CF-929D-4040-AE03-FCAFC5B9CD42}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {577FAA18-4518-445E-8F70-1473F8CF4BA4}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{577FAA18-4518-445E-8F70-1473F8CF4BA4}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {59DC47A8-116C-11D3-9D8E-00C04F72D980}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{59DC47A8-116C-11D3-9D8E-00C04F72D980}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {7F9CB14D-48E4-43B6-9346-1AEBC39C64D3}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{7F9CB14D-48E4-43B6-9346-1AEBC39C64D3}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {823535A0-0318-11D3-9D8E-00C04F72D980}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{823535A0-0318-11D3-9D8E-00C04F72D980}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {8872FF1B-98FA-4D7A-8D93-C9F1055F85BB}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{8872FF1B-98FA-4D7A-8D93-C9F1055F85BB}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {8A674B4C-1F63-11D3-B64C-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{8A674B4C-1F63-11D3-B64C-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {8A674B4D-1F63-11D3-B64C-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{8A674B4D-1F63-11D3-B64C-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {9CD64701-BDF3-4D14-8E03-F12983D86664}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{9CD64701-BDF3-4D14-8E03-F12983D86664}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {9E77AAC4-35E5-42A1-BDC2-8F3FF399847C}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{9E77AAC4-35E5-42A1-BDC2-8F3FF399847C}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {A1A2B1C4-0E3A-11D3-9D8E-00C04F72D980}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{A1A2B1C4-0E3A-11D3-9D8E-00C04F72D980}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {A2E3074E-6C3D-11D3-B653-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{A2E3074E-6C3D-11D3-B653-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {A2E30750-6C3D-11D3-B653-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{A2E30750-6C3D-11D3-B653-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {A8DCF3D5-0780-4EF4-8A83-2CFFAACB8ACE}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{A8DCF3D5-0780-4EF4-8A83-2CFFAACB8ACE}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {AD8E510D-217F-409B-8076-29C5E73B98E8}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{AD8E510D-217F-409B-8076-29C5E73B98E8}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {B0EDF163-910A-11D2-B632-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{B0EDF163-910A-11D2-B632-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {B64016F3-C9A2-4066-96F0-BD9563314726}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{B64016F3-C9A2-4066-96F0-BD9563314726}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {BB530C63-D9DF-4B49-9439-63453962E598}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{BB530C63-D9DF-4B49-9439-63453962E598}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {C531D9FD-9685-4028-8B68-6E1232079F1E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{C531D9FD-9685-4028-8B68-6E1232079F1E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {C5702CCC-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{C5702CCC-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {C5702CCD-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{C5702CCD-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {C5702CCE-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{C5702CCE-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {C5702CCF-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{C5702CCF-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {C5702CD0-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{C5702CD0-9B79-11D3-B654-00C04F79498E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {C6B14B32-76AA-4A86-A7AC-5C79AAF58DA7}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{C6B14B32-76AA-4A86-A7AC-5C79AAF58DA7}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {CAAFDD83-CEFC-4E3D-BA03-175F17A24F91}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{CAAFDD83-CEFC-4E3D-BA03-175F17A24F91}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {D02AAC50-027E-11D3-9D8E-00C04F72D980}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{D02AAC50-027E-11D3-9D8E-00C04F72D980}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {F9769A06-7ACA-4E39-9CFB-97BB35F0E77E}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{F9769A06-7ACA-4E39-9CFB-97BB35F0E77E}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "MS 972890 Activex component {FA7C375B-66A7-4280-879D-FD459C84BB02}"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{FA7C375B-66A7-4280-879D-FD459C84BB02}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;END CATEGORY&lt;br /&gt;&lt;br /&gt;[strings]&lt;br /&gt;VulnFixes="VulnFixes"&lt;br /&gt;Killit="Set kill bit"&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-969981991198407787?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/969981991198407787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=969981991198407787' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/969981991198407787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/969981991198407787'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/07/adm-template-that-sets-killbits-for.html' title='.adm template that sets killbits  for MS972890'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-7007824284092446499</id><published>2009-04-08T09:10:00.000-07:00</published><updated>2009-04-08T10:53:46.191-07:00</updated><title type='text'>Small Update to PcapParser</title><content type='html'>I have uploaded a new version of PcapParser for all 3 of you who are probably using it ;-). It has small fixes.&lt;br /&gt;&lt;br /&gt;1. The last pcap file in the array wasn't being added to the search list when using argus data and the last connection time was &gt; the pcap file timestamp.&lt;br /&gt;&lt;br /&gt;2. I set the default linktype to be ethernet in the bpfcompile php extension so that we could match on mac addresses. If you need it to be somthing else you will have to modify it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://doc.emergingthreats.net/pub/Main/PcapParser/pcapp-0.1.tar.bz2"&gt;http://doc.emergingthreats.net/pub/Main/PcapParser/pcapp-0.1.tar.bz2&lt;/a&gt;&lt;br /&gt;md5sum:e6d71d9a4dd0c5ee7ed033c17150d785&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Additionally there was recently a question to the snort mailing list about automating extraction of sessions etc. I have upload the script that I use to automate this. Essentially it tails a barnyard generated csv file, and then runs parsep4 based on matched sids.&lt;br /&gt;&lt;br /&gt;I have uploaded this to the pcap parser page as well just incase you are looking for a crappy script to do this for you ;-)....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://doc.emergingthreats.net/pub/Main/PcapParser/sentinal.tar.bz2"&gt;http://doc.emergingthreats.net/pub/Main/PcapParser/sentinal.tar.bz2&lt;/a&gt;&lt;br /&gt;md5sum:0be132cd3ac15b184af3e4b39ece4f1a&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-7007824284092446499?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/7007824284092446499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=7007824284092446499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7007824284092446499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7007824284092446499'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/04/small-update-to-pcapparser.html' title='Small Update to PcapParser'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-1598578605819727930</id><published>2009-02-16T13:27:00.001-08:00</published><updated>2009-02-16T15:22:16.001-08:00</updated><title type='text'>New Version of PCAP Parser</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_nWX0FG3E2lE/SZnxURDPBVI/AAAAAAAAAA8/r6yI1attx3I/s1600-h/emergingpcapparse.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5303535366682117458" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 244px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_nWX0FG3E2lE/SZnxURDPBVI/AAAAAAAAAA8/r6yI1attx3I/s400/emergingpcapparse.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_nWX0FG3E2lE/SZntBvkh8eI/AAAAAAAAAA0/Nv4A5UYYjkk/s1600-h/emergingpcapparse.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I have updated my &lt;a href="http://node5.blogspot.com/2007/08/parsep-extend-rangepl-your-friendly.html"&gt;PcapParser &lt;/a&gt;to support more options and have included a web interface. You can download the latest version &lt;a href="http://doc.emergingthreats.net/pub/Main/PcapParser/pcapp.tar.bz2"&gt;here&lt;/a&gt;. The web interface uses a php extension that you must install that verifies bpf syntax that is passed as userinput. I'm using pfring so if you are not look at the README in the bpfcompile subdirectory for instructions.   The perl script also now requires&lt;/div&gt;&lt;div&gt;Net::Pcap and Mail::Sendmail.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The updated version also has a configuration file that usually lives at /etc/pcapp/pcapp.conf.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;All of the options can also be passed as command line options. Anything passed via command line overrides what is in the config file.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The pcap parser will work with or without the web interface. The conf file has to modified to fit your environment. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If you are using the web interface you must also modify the processpcap2_conf.php to supply the directories where your argus and pcap files are stored. These should be the same as your pcapdir and argusdir in your pcapp.conf file&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Sample command line usage...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In this example we are going to use all argus files to extract sessiondata about our attacker  and then use that to determine which out of all of our pcap files traffic resides in.  The traffic is then merged into a single pcap and then tcpflow,chaosreader,afterglow and honeysnap are run against the pcap.  The files are then md5sum'd and the output of these runs are put into a tar.bz file with a web index.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/usr/bin/parsep4.pl -ip="192.168.1.1" -netmask="32" -argusnum=0 -pcapnum=0 -dotcpflow=yes -domd5deep=yes -dochaosreader=yes -doafterglow=yes -dohoneysnap=yes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is the same as above although now we are using a bpf to see all tcp traffic that is not 80,443,20, or 21, and we are only looking through the last 1 argus file i.e. today's traffic.&lt;br /&gt;&lt;br /&gt;/usr/bin/parsep4.pl -bpf="tcp and not port 80 and not port 443 and not port 21 and not port 20" -argusnum=1 -pcapnum=0 -dotcpflow=yes -domd5deep=yes -dochaosreader=yes -doafterglow=yes -dohoneysnap=yes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-1598578605819727930?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/1598578605819727930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=1598578605819727930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1598578605819727930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1598578605819727930'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/02/new-version-of-pcap-parser.html' title='New Version of PCAP Parser'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_nWX0FG3E2lE/SZnxURDPBVI/AAAAAAAAAA8/r6yI1attx3I/s72-c/emergingpcapparse.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-3050394709930575560</id><published>2009-02-01T15:27:00.000-08:00</published><updated>2009-02-01T15:59:30.951-08:00</updated><title type='text'>PF_RING/IPSET rpms for CentOS5</title><content type='html'>Matt Jonkman over at emerging threats was nice enough to host a CentoOS5 rpm repo for me.  I have created a set of i686 kernel rpms that have been patched to include &lt;a href="http://www.ntop.org/PF_RING.html"&gt;PF_RING&lt;/a&gt; and &lt;a href="http://ipset.netfilter.org/"&gt;ipset&lt;/a&gt;.  I did not backport libpcap to the version included with CentOS5 so you will have to recompile your libpcap based tools if you decide to use the pf_ring/libpcap based stuff for the 0.9.7  version in the repo. I also have included rpms for the latest apache etc so I suggest if you use a file to throw into /etc/yum.repos.d/ you use the include/exclude stuff options so that you only pull the items that you need/want.  There are quite a few other useful tools that have been recomipled to use libpfring.&lt;br /&gt;&lt;br /&gt;To use ipset you will have to remove your existing iptables version and replace it with the one in the repo.&lt;br /&gt;&lt;br /&gt;link to the repo..&lt;br /&gt;&lt;br /&gt;http://www.emergingthreats.net/emergingrepo/&lt;br /&gt;&lt;br /&gt;I have also modified the script created by Joshua Gimer for updating the fw rules using ipset which you can download here.&lt;br /&gt;&lt;br /&gt;http://doc.emergingthreats.net/pub/Main/EmergingFirewallRules/emerging-ipset-update.pl.txt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-3050394709930575560?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/3050394709930575560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=3050394709930575560' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/3050394709930575560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/3050394709930575560'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/02/pfringipset-rpms-for-centos5.html' title='PF_RING/IPSET rpms for CentOS5'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-6764488824127420331</id><published>2009-01-29T20:28:00.000-08:00</published><updated>2009-01-29T22:02:27.233-08:00</updated><title type='text'>It's better than new AV software from onlineproantispywarescan.com</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_nWX0FG3E2lE/SYKXwN1qvXI/AAAAAAAAAAk/HZyU9LSTIso/s1600-h/blockedexe.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 158px;" src="http://3.bp.blogspot.com/_nWX0FG3E2lE/SYKXwN1qvXI/AAAAAAAAAAk/HZyU9LSTIso/s200/blockedexe.png" alt="" id="BLOGGER_PHOTO_ID_5296962966345399666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Ok so I was talking with a consultant today who was visiting my place of employment and he was telling me about all of the troubles that he was having with fake AV software infecting clients.  I remembered way back when, I was trying to figure out how to enforce policy with technical controls i.e. "you are not allowed to download anything off of the internet that is not approved"  and came up with this transparent squid config to do so.  It is not perfect, but it attempts stop exe downloads in http based on the following characteristics.&lt;br /&gt;&lt;br /&gt;1. File extension&lt;br /&gt;2. File extension inside of &lt;a href="http://www.ietf.org/rfc/rfc2183.txt"&gt;content-disposition&lt;/a&gt; header&lt;br /&gt;3. mime-type that is sent back in the reply from the server (can be spoofed)&lt;br /&gt;&lt;br /&gt;Maybe a fun project to work on would be a mime-sniffer similar to what &lt;a href="http://msdn.microsoft.com/en-us/library/ms775147%28VS.85%29.aspx"&gt;IE&lt;/a&gt; does for squid using &lt;a href="http://en.wikipedia.org/wiki/Libmagic"&gt;libmagic&lt;/a&gt;. Or maybe hack-up what is already in &lt;a href="http://c-icap.sourceforge.net/"&gt;c-icap&lt;/a&gt;  as it does mime-sniffing to determine what to send to it's AV scanner.  I have also hacked up &lt;a href="http://frox.sourceforge.net/"&gt;frox&lt;/a&gt; to forward requests to squid for ftp downloads and drop the download when we get a denied message from squid.  This code needs to be cleaned up and tested more before it is published.  Something else interesting to keep an eye on is the &lt;a href="http://wiki.squid-cache.org/Features/SslBump"&gt;SSLBump&lt;/a&gt; feature set that is being worked on in squid HEAD.  Will we someday get transparent SSL MITM in Squid to filter out unwanted downloads similar to what vendors like blue-coat offer?&lt;br /&gt;&lt;br /&gt;Anyway let's look at how to do this...  The first thing we are going to do is create a custom error page that will be displayed to users if a download is denied for some reason.  Yeah I created it in Open Office it's late and I'm feeling lazy ;-)... If you wish to use the one I created you can pull it from &lt;a href="http://doc.emergingthreats.net/pub/Main/BlockEXEWithSquidFiles/ERR_BLOCKEXE"&gt;here&lt;/a&gt;.  In this example you will need to copy this file to your squid error directory in my case the file would end up being&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;/usr/share/squid/errors/English/ERR_BLOCKEXE&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;below is the &lt;a href="http://doc.emergingthreats.net/pub/Main/BlockEXEWithSquidFiles/squid.conf"&gt;squid.conf&lt;/a&gt; file  which you can pull from the emerging threats site as well.  It is pretty self explanatory  note that the deny_info page is the one that is displayed to users when the download something naughty in this case the ERR_BLOCKEXE file we created. In addition I  have found it helpful to generate a simple daily report with a cron job of the blocked downloads. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;grep `date +%d/%b/%Y` /var/log/squid/access_log | grep "TCP_DENIED" | grep " 403 " | /bin/mail -s 'daily squid block report' someguy@somesite.com&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;http_port 3128 transparent&lt;br /&gt;visible_hostname tproxy&lt;br /&gt;&lt;br /&gt;#list of trusted domains that we will allow downloads from&lt;br /&gt;acl noscan dstdomain .emergingthreats.net .blackberry.com .macromedia.com .apple.com .windowsupdate.com .hp.com .xerox.com .sw.be .centos.org .microsoft.com .adobe.com .sun.com .nai.com .symantecliveupdate.com .mcafee.com .symantec.com .vmware.com .trendmicro.com&lt;br /&gt;no_cache deny noscan&lt;br /&gt;always_direct allow noscan&lt;br /&gt;&lt;br /&gt;#cache junk&lt;br /&gt;hierarchy_stoplist cgi-bin ?&lt;br /&gt;acl QUERY urlpath_regex cgi-bin \?&lt;br /&gt;no_cache deny QUERY&lt;br /&gt;acl apache rep_header Server ^Apache&lt;br /&gt;broken_vary_encoding allow apache&lt;br /&gt;cache_mem 512 MB&lt;br /&gt;cache_dir ufs /var/spool/squid 2000 16 256&lt;br /&gt;refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;refresh_pattern .               0       20%     4320&lt;br /&gt;acl manager proto cache_object&lt;br /&gt;&lt;br /&gt;#various acl's&lt;br /&gt;acl alldst dst 0.0.0.0/0.0.0.0&lt;br /&gt;acl all src 0.0.0.0/0.0.0.0&lt;br /&gt;acl localhost src 127.0.0.1&lt;br /&gt;acl our_networks src 192.168.2.0/255.255.255.0&lt;br /&gt;acl our_networks src 192.168.1.0/255.255.255.0&lt;br /&gt;&lt;br /&gt;#remove accept encoding to prevent gzip stuff along with range requests&lt;br /&gt;header_access Accept-Ranges deny alldst&lt;br /&gt;header_access Accept-Encoding deny alldst&lt;br /&gt;header_replace Accept-Encoding identity&lt;br /&gt;header_replace Accept-Ranges none&lt;br /&gt;&lt;br /&gt;#use OpenDNS servers can block adware pr0n etc..&lt;br /&gt;#If you are using a dynamic IP ddclient works very well for&lt;br /&gt;#keeping your account up2date with the latest IP&lt;br /&gt;dns_nameservers 208.67.222.222 208.67.220.220&lt;br /&gt;&lt;br /&gt;#techmachines acl&lt;br /&gt;#acl techmachines src 192.168.2.199&lt;br /&gt;#acl techmachines src 192.168.2.200&lt;br /&gt;&lt;br /&gt;#we are only redirecting port 80 so only allow port 80 traffic.&lt;br /&gt;acl Safe_ports port 80          # http&lt;br /&gt;http_access deny !Safe_ports&lt;br /&gt;&lt;br /&gt;http_access allow manager localhost&lt;br /&gt;http_access deny manager&lt;br /&gt;&lt;br /&gt;acl DENY_EXE urlpath_regex -i \.(exe|msi|scr|cab|chm|cpl|hlp|hta|ins|isp|jse|lnk|ocx|reg|sct|vbe|wsc|wsf|pif|sys|shs|zip|rar|tar|7z|torrent)\??$&lt;br /&gt;&lt;br /&gt;#domains we always want to block&lt;br /&gt;acl denydomains dstdomain .ssl86.ru .ytgw123.cn .gmail-security.com perlbody.t35.com summertime.1gokurimu.com doradora.atzend.com&lt;br /&gt;http_access deny denydomains&lt;br /&gt;&lt;br /&gt;#dst ips we always want to block&lt;br /&gt;acl dstips dst 195.242.161.63 59.106.145.58&lt;br /&gt;http_access deny dstips&lt;br /&gt;#allow trusted domains&lt;br /&gt;http_access allow noscan&lt;br /&gt;http_reply_access allow noscan&lt;br /&gt;&lt;br /&gt;#allow your techs or whomever to pull exe's&lt;br /&gt;#http_access allow techmachines&lt;br /&gt;#http_reply_access allow techmachines&lt;br /&gt;&lt;br /&gt;#block sites with exe in the uri&lt;br /&gt;deny_info ERR_BLOCKEXE DENY_EXE&lt;br /&gt;http_access deny DENY_EXE&lt;br /&gt;&lt;br /&gt;#allow localhost and everything else&lt;br /&gt;http_access allow localhost&lt;br /&gt;http_access allow our_networks&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#block exe downloads were the uri does not end exe but they are still sending an exe via conent-dispostion headers&lt;br /&gt;#http://www.ietf.org/rfc/rfc2183.txt&lt;br /&gt;acl blocked_contdisp rep_header Content-Disposition -i \.(exe|msi|scr|cab|chm|cpl|hlp|hta|ins|isp|jse|lnk|ocx|reg|sct|vbe|wsc|wsf|pif|sys|shs|zip|rar|tar|7z|torrent)\??"$&lt;br /&gt;deny_info ERR_BLOCKEXE contdisp&lt;br /&gt;http_reply_access deny blocked_contdisp&lt;br /&gt;&lt;br /&gt;#block exe mime types&lt;br /&gt;acl mime rep_mime_type -i ^application/exe$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-exe$&lt;br /&gt;acl mime rep_mime_type -i ^application/dos-exe$&lt;br /&gt;acl mime rep_mime_type -i ^vms/exe$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-winexe$&lt;br /&gt;acl mime rep_mime_type -i ^application/msdos-windows$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-msdos-program$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-msdownload$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-cab-compressed$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-oleobject$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-cabinet$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-dosexec$&lt;br /&gt;acl mime rep_mime_type -i ^vnd.ms-cab-compressed$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-cabinet-win32-x86$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-pe-win32-x86$&lt;br /&gt;acl mime rep_mime_type -i ^application/x-setupscript$&lt;br /&gt;deny_info ERR_BLOCKEXE mime&lt;br /&gt;http_reply_access deny mime&lt;br /&gt;&lt;br /&gt;#allow all other reply&lt;br /&gt;http_reply_access allow all&lt;br /&gt;&lt;br /&gt;#get some extra logging info&lt;br /&gt;strip_query_terms off&lt;br /&gt;log_mime_hdrs on&lt;br /&gt;&lt;br /&gt;#custom log format for more information&lt;br /&gt;logformat combined %&gt;a %ui %un [%{%d/%b/%Y:%H:%M:%S -0600}tl] "%rm %ru HTTP/%rv" %Hs %&lt;st&gt;h" "%{User-Agent}&gt;h" %Ss:%Sh %mt&lt;br /&gt;access_log /var/log/squid/access_log combined&lt;br /&gt;error_directory /usr/share/squid/errors/English&lt;br /&gt;coredump_dir /var/spool/squid&lt;br /&gt;&lt;br /&gt;#disabled for performance&lt;br /&gt;cache_store_log none&lt;br /&gt;cache_log none&lt;br /&gt;&lt;/st&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-6764488824127420331?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/6764488824127420331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=6764488824127420331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6764488824127420331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6764488824127420331'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2009/01/its-better-than-new-av-software-from.html' title='It&apos;s better than new AV software from onlineproantispywarescan.com'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_nWX0FG3E2lE/SYKXwN1qvXI/AAAAAAAAAAk/HZyU9LSTIso/s72-c/blockedexe.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-7267414327282873145</id><published>2008-08-11T12:19:00.000-07:00</published><updated>2008-08-11T16:36:31.476-07:00</updated><title type='text'>ScreenShot Proggie in Perl</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_nWX0FG3E2lE/SKDKl3PKDVI/AAAAAAAAAAc/iMoepgvsMAE/s1600-h/screenshot.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5233405518836010322" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_nWX0FG3E2lE/SKDKl3PKDVI/AAAAAAAAAAc/iMoepgvsMAE/s400/screenshot.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;Ever have issues trying to get management to try and understand log files from your proxy server, showing inappropriate user activity? As they say, a picture is worth 1000 words. If you decide to use this little &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;proggie&lt;/span&gt; to monitor employee activity make sure you are within your right to do so. Also it is not very stealthy It just dumps the screenshots to a folder on the local drive or a network share. You need Admin rights to remotely install it, and you need to reboot the machine before it starts working(you can just use the shutdown command in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;XP&lt;/span&gt;). It does write to the Run key so if you have some sort of AV protection preventing this you will need an alternate way to start it.&lt;br /&gt;&lt;br /&gt;First go and download and install the latest version of Active &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;perl&lt;/span&gt; 5.8 (5.10 currently does not work)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.activestate.com/store/activeperl/download/"&gt;http://www.activestate.com/store/activeperl/download/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next we are going to install some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;deps&lt;/span&gt; that we need for taking the screen shot's and to convert our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;perl&lt;/span&gt; script to an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;exe&lt;/span&gt; so that the target machine does not need to have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;perl&lt;/span&gt; installed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://www.bribes.org/perl/ppm/PerlMagick.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://www.bribes.org/perl/ppm/PerlMagick.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://www.bribes.org/perl/ppm/Parse-Binary.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://www.bribes.org/perl/ppm/Parse-Binary.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://www.bribes.org/perl/ppm/Win32-EXE.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://www.bribes.org/perl/ppm/Win32-EXE.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://www.bribes.org/perl/ppm/Module-ScanDeps.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://www.bribes.org/perl/ppm/Module-ScanDeps.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://theoryx5.uwinnipeg.ca/ppms/PAR-Dist.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://theoryx5.uwinnipeg.ca/ppms/PAR-Dist.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://theoryx5.uwinnipeg.ca/ppms/PAR.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://theoryx5.uwinnipeg.ca/ppms/PAR.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://theoryx5.uwinnipeg.ca/ppms/PAR-Packer.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://theoryx5.uwinnipeg.ca/ppms/PAR-Packer.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install &lt;/span&gt;&lt;a href="http://theoryx5.uwinnipeg.ca/ppms/Win32-Screenshot.ppd"&gt;&lt;span style="font-size:78%;"&gt;http://theoryx5.uwinnipeg.ca/ppms/Win32-Screenshot.ppd&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install Win32::&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;TieRegistry&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ppm install File-Copy-Recursive&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;Make the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;dir&lt;/span&gt; to hold the files that we will transfer to the target system.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;mkdir&lt;/span&gt; c:\screenshots&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Copy the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;ImageMagick&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;DLL's&lt;/span&gt; into the c:\screenshots &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;dir&lt;/span&gt; for some reason pp doesn't package them.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;copy C:\Perl\site\lib\auto\Image\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Magick&lt;/span&gt;\*.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;dll&lt;/span&gt; c:\screenshots&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;Start the screenshot install build. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;-t gives the script the target &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ip&lt;/span&gt; address&lt;br /&gt;-w tells the screenshot &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;proggie&lt;/span&gt; where to write the screen shots 2. Make sure you properly escape thing that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;perl&lt;/span&gt; needs escaped so c:\downloads\ becomes c:\\downloads\\ or &lt;a href="file://someserver/somehidenshare/"&gt;file://someserver/somehidenshare/&lt;/a&gt; becomes &lt;a&gt;\\\\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;someserver&lt;/span&gt;\\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;somehiddenshare&lt;/span&gt;\$\\&lt;/a&gt;&lt;br /&gt;-i tells the program at what interval to take screen shots. It will not take a screen shot if nobody is logged in or the screen is locked.&lt;br /&gt;-s tells the program what directory to copy over to the remote system. This needs to be the same &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;dir&lt;/span&gt; that contains the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;ImagMagick&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;dll's&lt;/span&gt;. In example below &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;wearewatching&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;exe&lt;/span&gt; also gets created in this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;dir&lt;/span&gt;.&lt;br /&gt;-d tells the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;progam&lt;/span&gt; what the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;dst&lt;/span&gt; directory should be on the remote machine. It doesn't have to be c:\windows\system32\ but it has to be somewhere in the PATH.&lt;br /&gt;-e tells the program what executable name to give the application.&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;example:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;c:\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;perl&lt;/span&gt;\bin\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;perl&lt;/span&gt; f:\\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;screenshotinstaller&lt;/span&gt;3.pl -t 127.0.0.1 -w c:\\downloads\\ -i 60 -s c:\\screenshots\\ -d c:\\windows\\system32\\ -e &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;wearewatching&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;exe&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Once the program is built it will copy over the files to the remote machine and remotely spawn the screenshot process on it's first run. The first run will check for the registry key and add if it is not there and then exit. You will then have to manually reboot the remote machine.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;example:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;shutdown -r -f -m &lt;/span&gt;&lt;a href="file://127.0.0.1/"&gt;&lt;span style="font-size:78%;"&gt;\\127.0.0.1&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;In this example once the user logs back in it will create a folder with the date below c:\downloads so something like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;MonAug&lt;/span&gt;112008. The program will create a new folder each day and in each folder you will have a new image every 60 seconds while a user is logged in with the format of Domain:&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;username&lt;/span&gt;:date.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;png&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Hope somebody else finds it useful ;-).....&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;Thanx&lt;/span&gt; to Matt J&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;onkman&lt;/span&gt; at emerging threats for letting me host this file.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://doc.emergingthreats.net/bin/viewfile/Main/PerlScreenCaptureProggie?rev=1;filename=ScreenShotInstaller.zip"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;ScreenShotInstaller&lt;/span&gt;.zip&lt;/a&gt; b1830a24a9bf848bf3&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;bbf&lt;/span&gt;6f37611b6d9&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-7267414327282873145?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/7267414327282873145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=7267414327282873145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7267414327282873145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7267414327282873145'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2008/08/screenshot-proggie-in-perl.html' title='ScreenShot Proggie in Perl'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_nWX0FG3E2lE/SKDKl3PKDVI/AAAAAAAAAAc/iMoepgvsMAE/s72-c/screenshot.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-1513456332305167576</id><published>2008-03-18T14:36:00.000-07:00</published><updated>2008-03-18T14:45:25.023-07:00</updated><title type='text'>snort_inline sticky-drop in svn</title><content type='html'>I have fixed sticky-drop for snort_inline in svn for all 5 of you who are running the latest version out of trunk.  As VictorJ say's check it out!!!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;svn co https://snort-inline.svn.sourceforge.net/svnroot/snort-inline/trunk&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-1513456332305167576?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/1513456332305167576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=1513456332305167576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1513456332305167576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1513456332305167576'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2008/03/snortinline-sticky-drop-in-svn.html' title='snort_inline sticky-drop in svn'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-3313210346617131733</id><published>2008-01-24T08:37:00.000-08:00</published><updated>2008-01-24T08:38:59.873-08:00</updated><title type='text'>More Basic Auth Junk</title><content type='html'>After contacting another organization that was leaking auth, they had to set the following on their ASA as the virtual http  command didn't work for them.  From the Cisco docs....&lt;br /&gt;&lt;br /&gt;If you use HTTP authentication without using the aaa authentication secure-http-client command, the username and password are sent in clear text to the destination web server, and not just to the AAA server. For example, if you authenticate inside users when they access outside web servers, anyone on the outside can learn valid usernames and passwords. We recommend that you use the aaa authentication secure-http-client command whenever you enable HTTP authentication&lt;br /&gt;&lt;br /&gt;Add the following command to the PIX/ASA Firewall:&lt;br /&gt;&lt;br /&gt;aaa authentication secure-http-client&lt;br /&gt;&lt;br /&gt;Cisco Reference Doc:  http://www.cisco.com/en/US/docs/security/asa/asa70/configuration/guide/fwaaa.html#wp1051298&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-3313210346617131733?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/3313210346617131733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=3313210346617131733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/3313210346617131733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/3313210346617131733'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2008/01/more-basic-auth-junk.html' title='More Basic Auth Junk'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-4854049953156088628</id><published>2008-01-11T15:02:00.000-08:00</published><updated>2008-01-11T15:15:20.812-08:00</updated><title type='text'>mod_proxy_balancer and IIS session affinity one small step</title><content type='html'>I recently need to configure a load balanced &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;apache&lt;/span&gt; reverse proxy with two &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IIS&lt;/span&gt; servers on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;backend&lt;/span&gt;.  I found this wonderful link on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;google&lt;/span&gt; with instructions on how to do just that.  I only have one small correction to the wonderful information located at&lt;br /&gt;&lt;br /&gt;http://macacochefe.blogspot.com/2007/08/iis-creating-cookie-affinity-load.html&lt;br /&gt;&lt;br /&gt;6 – Type “&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;mycluster&lt;/span&gt;.node1; path=/;” in the Custom Header Value&lt;br /&gt;&lt;br /&gt;In his example should be...&lt;br /&gt;&lt;br /&gt;6 – Type “&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;BALANCEID&lt;/span&gt;=&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;mycluster&lt;/span&gt;.node1; path=/;” in the Custom Header Value&lt;br /&gt;&lt;br /&gt;Additionally in the past when I have seen &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;auth&lt;/span&gt; leaked to my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;webservers&lt;/span&gt; they normally ignore &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Auth&lt;/span&gt; string and server up the content.  Apache will issue a 401 Authorization required even if no type of authentication is required and or configured for that site.  If you are running  a reverse proxy that does not require &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;auth&lt;/span&gt; you can set the following in your virtual server &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;config&lt;/span&gt; to prevent this behavior.  It is probably overkill but it works.&lt;br /&gt;&lt;br /&gt;        &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;RequestHeader&lt;/span&gt; set REMOTE_USER ""&lt;br /&gt;        &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;RequestHeader&lt;/span&gt; set X-HTTP_AUTHORIZATION ""&lt;br /&gt;        &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;RequestHeader&lt;/span&gt; set HTTP_AUTHORIZATION ""&lt;br /&gt;        &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;RequestHeader&lt;/span&gt; set AUTHORIZATION ""&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-4854049953156088628?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/4854049953156088628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=4854049953156088628' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/4854049953156088628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/4854049953156088628'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2008/01/modproxybalancer-and-iis-session.html' title='mod_proxy_balancer and IIS session affinity one small step'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-5161543395940430686</id><published>2008-01-11T14:29:00.000-08:00</published><updated>2008-01-11T15:01:22.641-08:00</updated><title type='text'>Additional info on proxies behaving badly.</title><content type='html'>I have worked with two organizations now that are using websense in conjunction with a pix firewall and aaa auth.   If your organization is configured in such a scenario it is imperative that you specify the virtual http parameter as your users browsers might cache auth and leak it to external websites.&lt;br /&gt;&lt;br /&gt;http://www.cisco.com/warp/public/110/atp52.html#virtual_http&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-5161543395940430686?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/5161543395940430686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=5161543395940430686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/5161543395940430686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/5161543395940430686'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2008/01/additional-info-on-proxies-behaving.html' title='Additional info on proxies behaving badly.'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-7404202737897217341</id><published>2007-12-31T08:39:00.000-08:00</published><updated>2007-12-31T09:22:19.450-08:00</updated><title type='text'>Proxies Behaving Badly</title><content type='html'>Working for a municipal government means that we get requests on our webserver for all kinds of information about our city from citizens, businesses, etc.  A while ago the bleedingthreats project released a couple of rules to look for unencrypted basic http auth.  I went ahead and deployed these  rules as we should never have any webapp that takes unencrypted base64 auth and if one was ever deployed I wanted to know about it.  As a side effect of deploying these rules, we found that many proxies were sending valid internal proxy authentication credentials to our webservers even though we were not prompting for any sort of auth.  These are organizations such as fortune 50 financial institution's, clinical research facilities, a check verification company, a home and auto insurance company, the list goes on and on.  I honestly get a couple of these a week.  In most cases it is a nightmare to try and get anybody on the phone as most organiztions ARIN contact information is incorrect.  I don't know how many companies I called and got a message saying press 0 to talk to an operator only to press 0 and hear the same stupid automated message in a loop.  Quite a few of internal authentication credentials i received seemed to be leaked by bluecoat proxies.  I contacted the guy's at &lt;a href="http://fishnetsecurity.com/"&gt;Fishnet Security&lt;/a&gt; as I don't have access to a bluecoat.  They only thing they found was a setting that had to be set via command line and according to Jake Reynolds at Fishnet should only be set in very special reverse proxy configurations.  The configuration parameter is spoof-authentication, if you are running bluecoat   with this option disabled try depolying a snort box to watch it's public facing interface with the following rules to see if your proxy is leaking auth.  These are prone to fp's as http is essetianlly statless but should reduce noise for statically served content. It still kills me tha t companies like ciso and oracle still use unencrypted basic http auth *sigh*.. This is a perfect oppurtunity for you to deploy full content logging in your enterprise, make the &lt;a href="http://www.taosecurity.com/"&gt;Bejtlich&lt;/a&gt; proud.&lt;br /&gt;&lt;br /&gt;alert tcp any $HTTP_PORTS -&gt; any any (msg:"BLEEDING-EDGE POLICY Basic Auth Challenge from HTTP Server"; flow:established,to_client; content:"HTTP/1."; depth:7; nocase; content:"|20|401"; within: 5; content:"|0d 0a|WWW-Authenticate|3a 20|"; nocase; flowbits:set,httpbasicrequest; flowbits:noalert; classtype:policy-violation; sid:3000526; rev:8;)&lt;br /&gt;&lt;br /&gt;alert tcp any $HTTP_PORTS -&gt; any any (msg:"BLEEDING-EDGE POLICY Proxy Auth Challenge from HTTP Server"; flow:established,to_client; content:"HTTP/1."; depth:7; nocase; content: "|20|407"; within:5;  content:"|0d 0a|Proxy-Authenticate|3a 20|"; nocase; flowbits:set,httpproxyauthrequest; flowbits:noalert; classtype:policy-violation; sid:3000527; rev:8;)&lt;br /&gt;&lt;br /&gt;alert tcp $HOME_NET any -&gt; any $HTTP_PORTS (msg:"BLEEDING-EDGE POLICY Outgoing Basic Auth Base64 HTTP Password leaked"; flow:established,to_server; content:"|0d 0a|Authorization|3a 20|Basic"; nocase; content:!"YW5vbnltb3VzOg=="; within:32; flowbits:isnotset,httpbasicrequest; flowbits:isnotset,httpproxyauthrequest; classtype:policy-violation; sid:3000528; rev:8;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET $HTTP_PORTS (msg:"BLEEDING-EDGE POLICY Incoming Basic Auth Base64 HTTP Password leaked"; flow:established,to_server; content:"|0d 0a|Authorization|3a 20|Basic"; nocase; content:!"YW5vbnltb3VzOg=="; within:32; flowbits:isnotset,httpbasicrequest; flowbits:isnotset,httpproxyauthrequest; classtype:policy-violation; sid:3000529; rev:4;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-7404202737897217341?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/7404202737897217341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=7404202737897217341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7404202737897217341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7404202737897217341'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2007/12/proxies-behaving-badly.html' title='Proxies Behaving Badly'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-1871278273017975040</id><published>2007-11-04T13:34:00.000-08:00</published><updated>2007-11-04T13:38:26.225-08:00</updated><title type='text'>In the NL</title><content type='html'>I'm in the Netherlands currently hanging out with VictorJ.  My wife Lindsay and I are very sleepy but full of good Dutch food and beer.  I have yet to give VictorJ a good swift kick to the nuts, but I'm sure after spending five days with hime we will never want to see each other again. Just kidding..... ;-)....&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;Will&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-1871278273017975040?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/1871278273017975040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=1871278273017975040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1871278273017975040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1871278273017975040'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2007/11/in-nl.html' title='In the NL'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-7834340628742226658</id><published>2007-10-22T15:25:00.000-07:00</published><updated>2007-10-22T15:37:20.108-07:00</updated><title type='text'>ADM template for Client side sploits</title><content type='html'>&lt;div style="text-align: justify;"&gt;Here is an ADM template to set the killbit for the vulnerable Real Player Active X control and policy hack for Adobe to set the mail:3 stuff for 8.0.  Use at your own risk, if this hoses your box and or domain don't come crying to me ;-)....&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:50%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:50%;"&gt;CLASS MACHINE&lt;br /&gt;&lt;br /&gt;CATEGORY VulnFixes&lt;br /&gt;&lt;br /&gt;POLICY "Vulnerable Real Player Activex component"&lt;br /&gt;KEYNAME "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{FDC7A535-4070-4B92-A0EA-D9994BCC0DC5}"&lt;br /&gt;EXPLAIN Killit&lt;br /&gt;VALUENAME "Compatibility Flags"&lt;br /&gt;VALUEON NUMERIC 1024&lt;br /&gt;VALUEOFF NUMERIC 0&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;POLICY "Vulnerable Adobe Acrobat Reader 8"&lt;br /&gt;KEYNAME "SOFTWARE\Policies\Adobe\Acrobat Reader\8.0\FeatureLockdown\cDefaultLaunchURLPerms"&lt;br /&gt;EXPLAIN "Set mail:3 per http://www.adobe.com/support/security/advisories/apsa07-04.html"&lt;br /&gt;VALUENAME "tSchemePerms"&lt;br /&gt;VALUEON "version:1|shell:3|hcp:3|ms-help:3|ms-its:3|ms-itss:3|its:3|mk:3|mhtml:3|help:3|disk:3|afp:3|disks:3|telnet:3|ssh:3|acrobat:2|mailto:3|file:2"&lt;br /&gt;VALUEOFF "version:1|shell:3|hcp:3|ms-help:3|ms-its:3|ms-itss:3|its:3|mk:3|mhtml:3|help:3|disk:3|afp:3|disks:3|telnet:3|ssh:3|acrobat:2|mailto:2|file:1"&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;POLICY "Vulnerable Adobe Acrobat 8"&lt;br /&gt;KEYNAME "SOFTWARE\Policies\Adobe\Adobe Acrobat\8.0\FeatureLockdown\cDefaultLaunchURLPerms"&lt;br /&gt;Explain "Set mail:3 per http://www.adobe.com/support/security/advisories/apsa07-04.html"&lt;br /&gt;VALUENAME "tSchemePerms"&lt;br /&gt;VALUEON "version:1|shell:3|hcp:3|ms-help:3|ms-its:3|ms-itss:3|its:3|mk:3|mhtml:3|help:3|disk:3|afp:3|disks:3|telnet:3|ssh:3|acrobat:2|mailto:3|file:2"&lt;br /&gt;VALUEOFF "version:1|shell:3|hcp:3|ms-help:3|ms-its:3|ms-itss:3|its:3|mk:3|mhtml:3|help:3|disk:3|afp:3|disks:3|telnet:3|ssh:3|acrobat:2|mailto:2|file:1"&lt;br /&gt;END POLICY&lt;br /&gt;&lt;br /&gt;END CATEGORY&lt;br /&gt;&lt;br /&gt;[strings]&lt;br /&gt;VulnFixes="VulnFixes"&lt;br /&gt;Killit="Set kill bit"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-7834340628742226658?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/7834340628742226658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=7834340628742226658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7834340628742226658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/7834340628742226658'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2007/10/adm-template-for-client-side-sploits.html' title='ADM template for Client side sploits'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-6367465801060671810</id><published>2007-10-17T06:29:00.000-07:00</published><updated>2007-10-17T06:41:02.221-07:00</updated><title type='text'>A note to Fortune 50 companies</title><content type='html'>Dear Fortune 50 companies,&lt;br /&gt;&lt;br /&gt;If your proxy appliance appears to be leaking valid internal credentials to sites that you visit on the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Internet&lt;/span&gt; i.e. passing Proxy-Authorization strings, you would like to know wouldn't you?  I had such a case recently and when I tried to contact the company via the phone number listed for abuse with ARIN the not so friendly switchboard operator refused to connect me stating that "IT was a restricted department and she could not put  me through to anyone without a name."  So instead of a five minute phone call, I had to spend 30 minutes  scrubbing packet data to remove the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;aforementioned&lt;/span&gt; base64 encoded password to send to your abuse@ e-mail in hopes that somebody would read it.  So I ask you please to make sure that your ARIN information is correct and that somebody can actually get a hold of you when they need to.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;Will&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-6367465801060671810?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/6367465801060671810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=6367465801060671810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6367465801060671810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/6367465801060671810'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2007/10/note-to-fortune-50-companies.html' title='A note to Fortune 50 companies'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-867624234119892198</id><published>2007-10-15T09:59:00.000-07:00</published><updated>2007-10-16T14:15:43.196-07:00</updated><title type='text'>building a swatch config to get the snort msg: in a subject line</title><content type='html'>I wanted to get the msg from a snort alert into the subject line of e-mails generated by swatch.  This script will parse a sid-msg.map and will output a swatch config.  Yes the code is crap, and swatch eats up about 125meg with the full VRT and bleeding rulesets, but to me it's worth it.  Also swatch seems to blow up if there is a  # in the watchfor section of the config so those rules are skipped currently it is only skipping two bleeding MoBB rules.  If anybody has a better way to do this, or knows of a different tool, I would be very interested to hear from you ;-)&lt;br /&gt;&lt;br /&gt;die("Usage: &amp;lt;swatchbuilder.pl&amp;gt; \n") unless(@ARGV);&lt;br /&gt;foreach $file (@ARGV) {&lt;br /&gt;&lt;br /&gt;open(SIDMSGMAP, $file) or die( "Cannot open file: $file\n" );&lt;br /&gt;while(&amp;lt;SIDMSGMAP&amp;gt;) {&lt;br /&gt;my @line= split(/\|\|/,$_);&lt;br /&gt;#clean up sid&lt;br /&gt;$line[0] =~ s/\r?\n//;&lt;br /&gt;$line[0] =~ s/^\s+//;&lt;br /&gt;$line[0] =~ s/\s+$//;&lt;br /&gt;#clean up msg&lt;br /&gt;$line[1] =~ s/\r?\n//;&lt;br /&gt;$line[1] =~ s/^\s+//;&lt;br /&gt;$line[1] =~ s/\s+$//;&lt;br /&gt;$line[1] =~ s/([\@\/\+\&amp;amp;;\`'\\\|"-*?#!~&lt;&gt;^\(\)\[\]\{\}\$\n\r])/\\$1/g;&lt;br /&gt;#wtf? can swatch not deal with escaped #&lt;br /&gt;if($line[1] =~ m/#/)&lt;br /&gt;{&lt;br /&gt;print "\#badsid $line[0] skipping\n";&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;print "watchfor = \/$line[1]\/\n";&lt;br /&gt;print "mail=user1\@somwhere.com:user2\@somewhere.com,subject=IDS Alarm --$line[1]--\n";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;close(SIDMSGMAP);&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-867624234119892198?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/867624234119892198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=867624234119892198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/867624234119892198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/867624234119892198'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2007/10/building-swatch-config-to-get-snort-msg.html' title='building a swatch config to get the snort msg: in a subject line'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-8198589472843037832</id><published>2007-08-31T14:14:00.000-07:00</published><updated>2007-10-08T19:54:09.489-07:00</updated><title type='text'>parsep-extend-range.pl Your friendly neighborhood PCAP parser</title><content type='html'>&lt;div&gt;Part of my job is to watch our organizations IDS/IPS sensors and respond to alerts. If you know who I am, I don't think that it will come as a surprise to you that we use snort to monitor our little corner of the metaverse.&lt;br /&gt;&lt;br /&gt;A problem I was continuously running into when investigating alarms generated with snort as with almost any IDS/IPS is that often times all you have to work with is payload from the single packet that triggered the alarm and maybe logs on a server. I realize that if you configure a snort rule to do so, you can tag other interesting traffic from a would-be attacker after an alarm has fired. &lt;a href="http://sguil.sourceforge.net/"&gt;Sguil&lt;/a&gt; provides a means for extracting an entire session based on the packet that generated the alarm via log_packets.sh. You can also use &lt;a href="http://sguil.sourceforge.net/"&gt;sguil&lt;/a&gt; to extract individual sessions not generated by an alert if you are logging with &lt;a href="http://www.metre.net/sancp.html"&gt;sancp&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While this is fine it lacked some features that I really desired such as the output generated by &lt;a href="http://www.honeynet.org/tools/honeysnap/"&gt;honeysnap&lt;/a&gt; , &lt;a href="http://afterglow.sourceforge.net/"&gt;afterglow&lt;/a&gt;, &lt;a href="http://qosient.com/argus/"&gt;argus&lt;/a&gt; , etc. The other issue that I ran into is that even though I was performing full packet capture, tools such as ethereal and tcpdump don't support wildcard 's so if you have directory with 100 1 gig pcaps and you want to extract all traffic to/from an attacker out of these pcaps you are shit out of luck unless you pass your bpf to tcpdump one pcap at a time. The first iteration of parsep was to search every pcap that matched a given a wild card for traffic from a specified ip address /netmask, save the data to a temp file and then put it all back together into one uber-pcap using mergecap for analysis. This was fine if you only have to parse a couple of gigs of pcaps, but obviously does not scale well to a couple hundred gigs of pcaps. The latest iteration that I'm releasing optionally uses session data from argus based on time to determine in what pcaps traffic from our attacker resides. So instead of having to parse 200 gigs of pcaps you may only have to parse 1 gig of session data and based on it's output parse only the 10 1 gig pcaps that actually contain data from the attacker. Hmmm that is a really horrible description, how about we just get to some examples.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Usage: parsep-extend-range.pl &amp;lt;ip addy 2 find&amp;gt; &amp;lt;netmask&amp;gt; argus &amp;lt;last x number of files 2 search or 0 for all matching argusfilemask&amp;gt; &amp;lt;path to argus file&amp;gt; pcap &amp;lt;last x number of files 2 search or 0 for all matching pcapfilemask&amp;gt; &amp;lt;pcapfilemask&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Example: perl parsep-extend-range.pl 127.0.0.1 32 argus 0 /var/log/sessiondata/argusfile.* pcap 0 /var/log/fullcap/daemonlogger.*&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;./parsep-extend-range.pl 127.0.0.1 32 argus 2 /var/log/sessiondata/argusoutput.* pcap 0 /var/log/fullcap/daemonlogger.*&lt;br /&gt;&lt;br /&gt;removed /var/log/sessiondata/argusoutput.ra.5 from argus search list&lt;br /&gt;removed /var/log/sessiondata/argusoutput.ra.4 from argus search list&lt;br /&gt;removed /var/log/sessiondata/argusoutput.ra.3 from argus search list&lt;br /&gt;removed /var/log/sessiondata/argusoutput.ra.2 from argus search list&lt;br /&gt;removed 4 argus files out of 6 so that only last 2 remain&lt;br /&gt;argusfile here is /var/log/sessiondata/argusoutput.ra.1 /var/log/sessiondata/argusoutput.ra&lt;br /&gt;making dir to store data&lt;br /&gt;not removing any files from pcap filemask array&lt;br /&gt;finding proper pcaps from argus session data in file /var/log/sessiondata/argusoutput.ra.1&lt;br /&gt;finding proper pcaps from argus session data in file /var/log/sessiondata/argusoutput.ra&lt;br /&gt;file list before dup removal&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190640570 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190640570 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190640570 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190640570 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190647914 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190647914 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190647914 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190647914 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190647914 into new file array&lt;br /&gt;putting file /var/log/fullcap/daemonlogger.pcap.1190648607 into new file array&lt;br /&gt;revised file list&lt;br /&gt;/var/log/fullcap/daemonlogger.pcap.1190640570&lt;br /&gt;/var/log/fullcap/daemonlogger.pcap.1190647914&lt;br /&gt;/var/log/fullcap/daemonlogger.pcap.1190648607&lt;br /&gt;searching for 127.0.0.1/32 in file /var/log/fullcap/daemonlogger.pcap.1190640570&lt;br /&gt;reading from file /var/log/fullcap/daemonlogger.pcap.1190640570, link-type EN10MB (Ethernet)&lt;br /&gt;searching for 127.0.0.1/32 in file /var/log/fullcap/daemonlogger.pcap.1190647914&lt;br /&gt;reading from file /var/log/fullcap/daemonlogger.pcap.1190647914, link-type EN10MB (Ethernet)&lt;br /&gt;searching for 127.0.0.1/32 in file /var/log/fullcap/daemonlogger.pcap.1190648607&lt;br /&gt;reading from file /var/log/fullcap/daemonlogger.pcap.1190648607, link-type EN10MB (Ethernet)&lt;br /&gt;merging pcaps&lt;br /&gt;generating connection graph using afterglow&lt;br /&gt;reading from file 127.0.0.11190681713/127.0.0.1.pcap, link-type EN10MB (Ethernet)&lt;br /&gt;No property file specified, using default settings.&lt;br /&gt;Not a color:&lt;br /&gt;generating argus file from merged pcap&lt;br /&gt;outputing session data to text file&lt;br /&gt;exporting tcpflowdata&lt;br /&gt;generating honeysnap data&lt;br /&gt;creating tarball 127.0.0.11190681713.tgz&lt;br /&gt;removing temp data&lt;br /&gt;we got you now sucka&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;In the example above we are storing about five day's of session data with &lt;a href="http://qosient.com/argus/"&gt;arg&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://qosient.com/argus/"&gt;us&lt;/a&gt; and 200 gigs of pcaps using &lt;a href="http://www.snort.org/users/roesch/Site/Daemonlogger.html"&gt;daemonlogger&lt;/a&gt;.    I know that it is dumb but the script requires that full pcaps have a filename of something.something.date for example &lt;/span&gt;&lt;span style="font-size:100%;"&gt;daemonlogger.pcap.1190647914  The script I use for daemonlogger is included below&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;#!/bin/sh&lt;br /&gt;. /etc/init.d/functions&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;      echo -n "Starting daemonlogger: "&lt;br /&gt;      /usr/local/bin/daemonlogger -r -d -i br0 -l /var/log/fullcap/ -m 200 -S 1515&lt;br /&gt;      touch /var/lock/daemonlogger&lt;br /&gt;      sleep 3&lt;br /&gt;      echo&lt;br /&gt;      ;;&lt;br /&gt;stop)&lt;br /&gt;      echo -n "Stopping daemonlogger: "&lt;br /&gt;      killproc daemonlogger&lt;br /&gt;      rm -f /var/lock/daemonlogger&lt;br /&gt;      echo&lt;br /&gt;      ;;&lt;br /&gt;restart)&lt;br /&gt;      $0 stop&lt;br /&gt;      $0 start&lt;br /&gt;      ;;&lt;br /&gt;status)&lt;br /&gt;      status daemonlogger&lt;br /&gt;      ;;&lt;br /&gt;*)&lt;br /&gt;      echo "Usage: $0 {start|stop|restart|status}"&lt;br /&gt;      exit 1&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The script I use for argus is below along with the logrotate file. I use this because argus doesn't have any sort of built-in ringbuffer functionality like daemonlogger or tshark.  Because the logrotate file causes our older session data to be added first to the array, we flip the array to cause new session data to be moved to the front of the array.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;#!/bin/sh&lt;br /&gt;. /etc/init.d/functions&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;      echo -n "Starting argus: "&lt;br /&gt;      /usr/local/sbin/argus -d -p -c -J -w /var/log/sessiondata/argusoutput.ra -i br0&lt;br /&gt;      touch /var/lock/argus&lt;br /&gt;      sleep 3&lt;br /&gt;      echo&lt;br /&gt;      ;;&lt;br /&gt;stop)&lt;br /&gt;      echo -n "Stopping argus: "&lt;br /&gt;      kill `cat /var/run/argus.pid`&lt;br /&gt;      echo&lt;br /&gt;      ;;&lt;br /&gt;restart)&lt;br /&gt;      $0 stop&lt;br /&gt;      $0 start&lt;br /&gt;      ;;&lt;br /&gt;status)&lt;br /&gt;      status argus&lt;br /&gt;      ;;&lt;br /&gt;*)&lt;br /&gt;      echo "Usage: $0 {start|stop|restart|status}"&lt;br /&gt;      exit 1&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Logrotate file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;/var/log/sessiondata/argusoutput.ra&lt;br /&gt;{&lt;br /&gt;      rotate 5&lt;br /&gt;      missingok&lt;br /&gt;      nocompress&lt;br /&gt;      daily&lt;br /&gt;      postrotate&lt;br /&gt;          /etc/init.d/argusd restart &gt;/dev/null 2&amp;amp;&gt;1&lt;br /&gt;      endscript&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;I hope somebody finds this useful ;-), If not, oh well it is useful to me.  If you look at the script you can see how easy it is to add support for almost any tool that you want to run the merged pcap through.  If you don't understand the importance of collecting full content captures along with session data I suggest that you pickup one or all of  &lt;/span&gt;&lt;/span&gt;&lt;a href="http://taosecurity.blogspot.com/"&gt;Richard Bejtlich's&lt;/a&gt; books on NSM.  &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Matt Jonkman of bleedingthreats.net was kind enough to host the script for me.  He is truly a king among men ;-)....&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;br /&gt;download&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://doc.bleedingthreats.net/bin/viewfile/Main/PcapParser?rev=1;filename=parsep-extend-range.pl.bz2"&gt; parsep-extend-range.pl.bz2&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-8198589472843037832?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/8198589472843037832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=8198589472843037832' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/8198589472843037832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/8198589472843037832'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2007/08/parsep-extend-rangepl-your-friendly.html' title='parsep-extend-range.pl Your friendly neighborhood PCAP parser'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443343931811641298.post-1119548076420913081</id><published>2007-08-30T15:53:00.000-07:00</published><updated>2007-08-30T15:56:29.829-07:00</updated><title type='text'>Hello Interweb!</title><content type='html'>I created this blog because Victor &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Julien&lt;/span&gt; (www.inliniac.net) wouldn't leave me alone, and for some reason thinks that I have something to contribute to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;INFOSEC&lt;/span&gt; community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443343931811641298-1119548076420913081?l=node5.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://node5.blogspot.com/feeds/1119548076420913081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5443343931811641298&amp;postID=1119548076420913081' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1119548076420913081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443343931811641298/posts/default/1119548076420913081'/><link rel='alternate' type='text/html' href='http://node5.blogspot.com/2007/08/hello-interweb.html' title='Hello Interweb!'/><author><name>Will Metcalf</name><uri>http://www.blogger.com/profile/01336462559928749756</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
