<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://port25.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Port 25: The Open Source Community at Microsoft : Security, Technical Analysis</title><link>http://port25.technet.com/archive/tags/Security/Technical+Analysis/default.aspx</link><description>Tags: Security, Technical Analysis</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 40109.1145)</generator><item><title>Using Vista's Boot Manager to Boot Linux and Dual Booting with BitLocker Protection with TPM Support</title><link>http://port25.technet.com/archive/2006/10/13/Using-Vista_2700_s-Boot-Manager-to-Boot-Linux-and-Dual-Booting-with-BitLocker-Protection-with-TPM-Support.aspx</link><pubDate>Fri, 13 Oct 2006 19:57:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:3161</guid><dc:creator>MichaelF</dc:creator><slash:comments>28</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=3161</wfw:commentRss><comments>http://port25.technet.com/archive/2006/10/13/Using-Vista_2700_s-Boot-Manager-to-Boot-Linux-and-Dual-Booting-with-BitLocker-Protection-with-TPM-Support.aspx#comments</comments><description>&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Today we are introducing Cyril Voisin, Security Advisor for Microsoft in France where he has worked for 9 years.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Cyril is a CISSP (Certified Information Security Systems Professional) and along with his work at Microsoft also teaches systems and network security in local schools as time allows.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Cyril has started a &lt;a href="http://blogs.technet.com/voy"&gt;&lt;font color="#0000ff"&gt;blog&lt;/font&gt;&lt;/a&gt;, primarily focused on security (exact blog intent can be seen &lt;a href="http://blogs.technet.com/voy/archive/2006/10/05/_2200_Security-is-not-important_2C00_-when-you-have-it_2E0028002A0029002200_-_2D00_-a-constructive-blog-on-security.aspx"&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/a&gt;) but occasionally dealing with interoperability as it relates to security.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Cyril has given us permission to syndicate his content on Port 25, the first example is below.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Please feel free to post any questions or clarifications below or on Cyril&amp;rsquo;s blog.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;We welcome Cyril to Port 25 and look forward to featuring his work and insight in the future.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;-michael&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;-------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;How to use Windows Vista&amp;rsquo;s Boot Manager to boot Linux&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;The Web is full of explanations on how to dual boot Windows and Linux using a Linux boot manager like GRUB or LILO. If you want to dual boot Windows Vista and Linux using Windows Vista&amp;rsquo;s Boot Manager, please read on. I will assume that you already have installed Linux on your machine using GRUB as your boot loader. &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 1 &amp;ndash; Install GRUB on the Linux partition (outside of MBR)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;As Windows Vista will replace the Master Boot Record (MBR) with its own, we need to relocate GRUB elsewhere by running grub-install with the Linux partition as a parameter.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Linux, launch a Terminal with root privileges&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; text-indent: 0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; Find the name of the partition Linux is installed on by running fdisk &amp;ndash;l (the partition you&amp;rsquo;re looking for is the one whose system is Linux, can be&amp;nbsp; something like /dev/sda1 or /dev/hda1. For the rest of this post, I&amp;rsquo;ll use /dev/sda1) &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; text-indent: 0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; Install GRUB on the Linux partition by running : grub-install /dev/sda1&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 2 &amp;ndash; Get a copy of Linux boot sector &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;We will need to instruct Windows Boot Manager how to boot correctly Linux using Linux boot sector, which we will extract using dd.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Linux, launch a Terminal with root privileges&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Take a copy of Linux boot sector : dd if=/dev/sda1 of=/tmp/linux.bin bs=512 count=1&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy linux.bin on a FAT formatted USB key or any storage accessible from Windows Vista&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 3 &amp;ndash; Install Windows Vista&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 4 &amp;ndash;&amp;nbsp; Configure dual booting in Windows Vista&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;We will create an entry for GRUB in Windows Vista boot configuration data store using bcdedit.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Windows Vista, launch a command prompt with administrative privileges (by right clicking on cmd and choosing Run as Administrator)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy Linux boot sector on the root of the Windows boot (active) partition, namely the one containing bootmgr. If you don&amp;rsquo;t know for sure you can use diskpart or diskmgmt.msc to find out which one it is.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create an entry for GRUB : &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 1in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;o&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&amp;nbsp; bcdedit /create /d &amp;ldquo;GRUB&amp;rdquo; /application BOOTSECTOR&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 1in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;o&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&amp;nbsp; Note: bcdedit will return an ID for this entry that we will call {LinuxID} below. You will need to replace {LinuxID} by the returned identifier in this step. An example of {LinuxID} is {81ed7925-47ee-11db-bd26-cbb4e160eb27}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify which device hosts a copy of the Linux boot sector&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 1in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;o&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&amp;nbsp; bcdedit /set {LinuxID} device boot&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify the path to a copy of the Linux boot sector&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 1in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;o&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&amp;nbsp; bcdedit /set {LinuxID}&amp;nbsp; PATH \linux.bin&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Add Linux entry to the displayed menu at boot time&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 1in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;o&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&amp;nbsp; bcdedit /displayorder {LinuxID} /addlast&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let the menu be displayed 10 seconds to allow for OS selection&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 1in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;o&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&amp;nbsp; bcdedit /timeout 10&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Building a dual boot system with Windows Vista BitLocker protection with TPM support&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Many people have wondered if it would be possible to dual boot a TPM-bitlockered instance of Windows Vista with Linux, or another OS. The answer is yes and the following procedure will hopefully help you setup your machine correctly. &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Some (simplified) background on Bitlocker:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Bitlocker Drive Encryption allows encryption of Windows Vista&amp;rsquo;s partition and provides a secure startup process when in use with a TPM (a crypto chip on the motherboard).&amp;nbsp; Basically the BIOS, the TPM, the MBR and the boot sector will collaborate to help verify that there was no modification to the boot sequence since Bitlocker was activated. This is done by using a function of the TPM to compute and store a hash of the code before executing it, at each of the initial steps of the boot sequence. Different hashes will be computed and stored in specific registers of the TPM. Then Windows Vista will ask the TPM to unseal its volume encryption key and the TPM will only provide this key if its registers are correctly set. Therefore if you replace Windows Vista&amp;rsquo;s MBR by a MBR that is not TPM aware, it won&amp;rsquo;t hash the boot sector before executing it and a register in the TPM won&amp;rsquo;t be populated. Same with the boot sector. Therefore Bitlocker will simply refuse to be enabled. &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;The underlying idea here is to have Bitlocker enabled with the original Windows Vista boot files. Another possibility would be to use a TPM-aware version of GRUB. However this would imply using files in the boot sequence that were not tested by Microsoft, which I would not recommend. Moreover, using original Windows Vista files offers you the benefits of code that went through the Security Development Lifecycle, which I personally find very valuable.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Note: I assume that you have a Bitlocker compatible machine (including TPM 1.2, TCG BIOS). See &lt;a href="http://www.microsoft.com/technet/windowsvista/library/c61f2a12-8ae6-4957-b031-97b4d762cf31.mspx#BKMK_require"&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/technet/windowsvista/library/c61f2a12-8ae6-4957-b031-97b4d762cf31.mspx#BKMK_require&lt;/font&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 1 &amp;ndash; Install Linux&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Note:&amp;nbsp; be sure to leave enough unpartitioned space for Windows Vista: about 11 GB of free unpartitioned space and slots for 2 partitions are needed&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 2 &amp;ndash; Install GRUB on the Linux partition (outside of MBR)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;See other post &amp;ldquo;How to use Windows Vista&amp;rsquo;s Boot Manager to boot Linux&amp;rdquo;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 3 &amp;ndash; Get a copy of Linux boot sector&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;See other post &amp;ldquo;How to use Windows Vista&amp;rsquo;s Boot Manager to boot Linux&amp;rdquo;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 4 &amp;ndash; Create partitions for Windows Vista&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;We need to create 2 primary NTFS formatted partitions on the disk: one active, 1.5GB size minimum and another larger (all the rest for instance with a minimum of 8.5GB). The former will be used to boot the machine (active partition) and will remain unencrypted while the latter will host Windows Vista and will be encrypted when we activate Bitlocker.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;You can use diskpart tool to do this (available from Repair options on the Windows Vista DVD). Here is what the instructions may look like :&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select disk 1&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create partition primary size=2048&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; active&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create partition primary&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 5 - Install Windows Vista&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Install Windows Vista on the largest NTFS partition.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 6 - Set up Windows Vista Boot Manager to boot Linux&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;See other post &amp;ldquo;How to use Windows Vista&amp;rsquo;s Boot Manager to boot Linux&amp;rdquo;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;Step 7 - Enable BitLocker on Windows Vista&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;See BitLocker documentation, like &lt;a href="http://www.microsoft.com/technet/windowsvista/library/c61f2a12-8ae6-4957-b031-97b4d762cf31.mspx#BKMK_S3"&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/technet/windowsvista/library/c61f2a12-8ae6-4957-b031-97b4d762cf31.mspx#BKMK_S3&lt;/font&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Verdana','sans-serif'"&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=3161" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Technical+Analysis/default.aspx">Technical Analysis</category><category domain="http://port25.technet.com/archive/tags/Security/default.aspx">Security</category><category domain="http://port25.technet.com/archive/tags/Vista/default.aspx">Vista</category><category domain="http://port25.technet.com/archive/tags/Linux/default.aspx">Linux</category><category domain="http://port25.technet.com/archive/tags/Server+Center/default.aspx">Server Center</category></item><item><title>Honeypots and User Mode Linux Part 2:  Forensic Analysis</title><link>http://port25.technet.com/archive/2006/08/04/Honeypots-and-User-Mode-Linux-Part-2_3A00_--Forensic-Analysis.aspx</link><pubDate>Fri, 04 Aug 2006 19:50:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:2889</guid><dc:creator>MichaelF</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=2889</wfw:commentRss><comments>http://port25.technet.com/archive/2006/08/04/Honeypots-and-User-Mode-Linux-Part-2_3A00_--Forensic-Analysis.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;&lt;font face="Verdana" size="2"&gt;UML (User Mode Linux) and Forensic Analysis&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;em&gt;(Special thanks to Dan Simonton for the testing and writing in support of this tech tip)&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Processes running under &lt;strong&gt;UML&lt;/strong&gt; will have no access to the hosting system, accept where explicitly allowed. Because of this &lt;strong&gt;UML&lt;/strong&gt; is an ideal candidate for operating a honeypot. While processes running in &lt;strong&gt;UML&lt;/strong&gt; have no outside access to the host operating system memory or filesystem; &lt;em&gt;hypothetically&lt;/em&gt;, if an attacker managed to break out of userspace into some section of the host filesystem, they &lt;em&gt;could&lt;/em&gt; do further damage on the host . Best-practice demands that host access be limited within the &lt;strong&gt;UML&lt;/strong&gt; instance wherever possible.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;For any of this to be practical, obviously some services would need to be established. We&amp;rsquo;ll just assume these are already in place and forwarding iptables rules setup on the host. For instance, to forward inbound http connections to your UML instance:&lt;/font&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;iptables -t nat -A PREROUTING -i eth0 -p tcp -s 0/0 \&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--dport 80 -j DNAT --to-destination (uml ip):80&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;p style="font-family: Verdana"&gt;&lt;font size="2"&gt;This process could be repeated for any other service you wish to run. Just be sure the appropriate destination port is specified both with the &amp;ldquo;--dport&amp;rdquo; option and also at the end of the command. Essentially you are instructing all inbound traffic to port 80 to be forwarded to your &lt;strong&gt;UML&lt;/strong&gt;. The same process could be repeated for ssh,ftp and others.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/p&gt;&lt;p style="font-family: Verdana"&gt;&lt;font size="2"&gt;Typically, the first order of business for an intruder with root access is to wipe out log files. It is best therefore to have log files written to the host (or another remote) machine. To achieve this, &amp;nbsp;the host system&amp;rsquo;s syslogd daemon must be configured to receive inbound logs. Add &amp;ldquo;-r&amp;rdquo; to the runlevel script of the host machine where it invokes syslogd the&amp;nbsp;correct path is:&amp;nbsp;/etc/rc.d/syslog. On the client machine, add the following to /etc/syslog.conf:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *.*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @yourhostmachine&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (note: @ipaddress will work also) &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Now inbound connections to the &lt;strong&gt;UML&lt;/strong&gt; honeypot and activity on the honeypot can be investigated through log files on the host machine. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Conveniently for the purpose of running &lt;strong&gt;UML&lt;/strong&gt; as a honeypot, tty_logging of UML into a directory on the host machine is built as an option into the kernel. The simplest way to achieve this is to add the following to the kernel command line: &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;a name="Customization" title="Customization"&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;tty_log_dir=dir&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;This way, even if they zap the shell log files on the &lt;strong&gt;UML&lt;/strong&gt;, you will still have an account of their activity on the machine.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;There are a few quick and common methods of checking running activity. The following two should be familiar to anyone with a relatively basic understanding Linux, but we&amp;rsquo;ll mention them here for propriety&amp;rsquo;s sake:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ps auxwww (check running process table)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;netstat &amp;ndash;lvnap|less (check open sockets, associated process, and user ids)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;In the past, whenever I&amp;rsquo;ve found any strange binaries (sometimes named something really vague or obscure), I&amp;rsquo;ll run the following command, sift through, and evaluate the output:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strings (filename)|less&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;An all-to-commonly overlooked tool for inspecting a system is &amp;ldquo;lsof&amp;rdquo; (list of open files). It can be used to check file-to-file access, files listening on a socket and evaluate the state of a running process. It is helpful to know the normal running health of a system for comparison when using lsof. For a quick check of a specific process:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lsof &amp;ndash;p (pid)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;To get socket info on a process:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; lsof&amp;nbsp; -i&amp;nbsp; -nP|grep -i&amp;nbsp;(process name)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;To protect against potential outbound denial-of-service attacks, it might be prudent to explicitly declare hosts you wish to allow outbound ICMP traffic to (the host ip being one for example) and deny everything else. This can be done on the host by adding the following rules to iptables. You can add as many &amp;ldquo;ACCEPT&amp;rdquo; rules as you need, just be sure to put them before&amp;nbsp; the &amp;ldquo;DROP&amp;rdquo; rule.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A INPUT -p icmp &amp;ndash;s (uml ip) &amp;ndash;d (host ip) &amp;ndash;j ACCEPT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables &amp;ndash;A INPUT &amp;ndash;p icmp &amp;ndash;s (uml ip) &amp;ndash;d (other ip) &amp;ndash;j ACCEPT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables &amp;ndash;A INPUT &amp;ndash;p icmp &amp;ndash;s (uml ip) &amp;ndash;d 0/0 &amp;ndash;j DROP &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Similiarly, you could block potential outbound syn-flooding:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&amp;nbsp; iptables -N syn_flood&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A INPUT -p tcp --syn &amp;ndash;s (uml ip) -d 0/0 -j syn_flood&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j &lt;br /&gt;&amp;nbsp;RETURN&lt;br /&gt;&amp;nbsp;&amp;nbsp; iptables -A syn_flood -j DROP&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;A quick search of &lt;a style="color: blue; text-decoration: underline" href="http://sourceforge.net/"&gt;http://sourceforge.net&lt;/a&gt; or &lt;a style="color: blue; text-decoration: underline" href="http://freshmeat.net/"&gt;http://freshmeat.net&lt;/a&gt; will quickly realize a vast sea of various analysis tools. Provided the disk image size for your is adequate, any of these can be copied to the drive image or simply downloaded once you have the &lt;strong&gt;UML&lt;/strong&gt; instance running.&amp;nbsp; A few useful tools are:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://sourceforge.net/projects/tripwire/"&gt;Tripwire&lt;/a&gt;: Useful for monitoring data integrity. In a nutshell, it takes a snapshot of your system binaries (or other specified directory), creates a checksum, runs routine system integrity checks against it, and reports any deviation.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://www.porcupine.org/forensics/tct.html"&gt;The Coroner&amp;#39;s Toolkit&lt;/a&gt;: A suite of utilities for checking running process and file/filesystem information, recent changes and other such information. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://www.snort.org/"&gt;Snort&lt;/a&gt;: Snort is so prevalent, it almost needs no description. Still, it is one of the best tools for traffic analysis and intrusion detection. To accurately provide a description that does this monster justice would be a blog unto itself. There is a great FAQ on their website:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://www.snort.org/docs/faq/1Q05/"&gt;http://www.snort.org/docs/faq/1Q05/&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://freshmeat.net/projects/chkrootkit/"&gt;Chkrootkit&lt;/a&gt;: A utility for identifying rootkits installed on the system.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;This is but a small (microscopic) primer into a much larger world of intrusion detection and integrity analysis, but we hope some may find this useful. We will likely delve into these subjects in the future. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=2889" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Technical+Analysis/default.aspx">Technical Analysis</category><category domain="http://port25.technet.com/archive/tags/Security/default.aspx">Security</category><category domain="http://port25.technet.com/archive/tags/Linux/default.aspx">Linux</category><category domain="http://port25.technet.com/archive/tags/Server+Center/default.aspx">Server Center</category></item><item><title>Honeypots and User-Mode-Linux (UML): Part 1</title><link>http://port25.technet.com/archive/2006/07/23/Honeypots-and-User_2D00_Mode_2D00_linux-_2800_UML_29003A00_-Part-1.aspx</link><pubDate>Sun, 23 Jul 2006 22:21:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:2805</guid><dc:creator>jcannon</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=2805</wfw:commentRss><comments>http://port25.technet.com/archive/2006/07/23/Honeypots-and-User_2D00_Mode_2D00_linux-_2800_UML_29003A00_-Part-1.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 14pt; font-family: Tahoma"&gt;Honeypots and User-Mode-Linux (UML)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Part I: Setting up UML&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;em&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;(Special thanks to Dan Simonton for the testing and writing in support of this tech tip)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;In technical terms, a honeypot performs a function very similar to that of a &amp;ldquo;honeypot&amp;rdquo; in the outside world: a sweet lure. A &amp;ldquo;honeypot&amp;rdquo; is a system designed with the purpose of attracting the attention of prospective attackers, to assess how they are attempting to infiltrate the machine and what they doing once they gain access. There are literally thousands of honeypot networks and systems setup by security professionals and hobbyists worldwide. These systems can provide a wealth of information into forensics and assessing trends in network intrusion.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;This is Part One of a two part tech tip, which will address the setup of User Mode Linux (UML) for honeypot use. Part Two of the tech tip will cover the containment of intrusions and other security topics that arise while using UML as a honeypot. Also addressed in Part two will be the &amp;ldquo;forensics&amp;rdquo; i.e. identifying what exploits were tried on the honeypot.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;One of the more popular methods for constructing honeypots in the Linux world is to set up a kernel to run in &amp;ldquo;user mode&amp;rdquo; on a host Linux machine. In function, this is very similar to running a &amp;ldquo;Virtual PC&amp;rdquo; on a Microsoft Windows or Apple Macintosh system. The primary difference is that &amp;ldquo;User Mode Linux&amp;rdquo;, or UML is open source and (depending on your personal depth of knowledge of the Linux kernel) you can really tweak any and every aspect of the host and UML kernel to your liking.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;User Mode Linux is essentially an entire operating system running as a program in user space. It masquerades as an OS because for most purposes, it is one. The immediate benefit of running a honeypot this way is that with proper precautions taken, there is no significant threat to the host machine, or its operating system. When or if an attacker gains control of the UML instance, you can simply shut it down and restart at no cost to the hosting machine&amp;rsquo;s uptime or stability.&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;The first step is to download a copy of the actual kernel source that you wish to compile on the designated host machine. This can be obtained from &lt;a style="color: blue; text-decoration: underline" href="http://www.kernel.org/"&gt;http://www.kernel.org/&lt;/a&gt; or any associated mirror site. In this tech tip we will use the 2.6.16 kernel. The patches for the UML kernel can be obtained from:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;em&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://www.user-mode-linux.org/~blaisorblade/patches/skas3-2.6/skas-2.6.16-v8.2/skas-2.6.16-v8.2.patch.bz2"&gt;http://www.user-mode-linux.org/~blaisorblade/patches/skas3-2.6/skas-2.6.16-v8.2/skas-2.6.16-v8.2.patch.bz2&lt;/a&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;You will also want to create a filesystem for the UML. In the interest of time and space, there are a number of filesystems that can be downloaded for various distributions from:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://uml.nagafix.co.uk/"&gt;http://uml.nagafix.co.uk/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;In this example we will be using Slackware-10.2&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;First of all, the standard commands are applied to unpack the source&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ tar &amp;ndash;zvxf&amp;nbsp; linux-2.6.16.tar.gz&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ bzip2 &amp;ndash;d skas-2.6.16.-v8.2.patch&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ cp skas-2.6.16.-v8.2.patch linux/&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ cd linux-2.6.16/&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ patch &amp;ndash;p1 &amp;lt; skas-2.6.16.-v8.2.patch&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;&lt;strong&gt;Note&lt;/strong&gt;: In every step of the build process, it is &lt;strong&gt;&lt;em&gt;&lt;u&gt;crucial&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; that the &amp;ldquo;ARCH=um&amp;rdquo; argument be passed along with the various kernel configuration and compilation commands.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Next we will clean out any .config files (if any are present) and generate a default configuration:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ make mrproper &amp;amp;&amp;amp; make mrproper ARCH=um&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ make defconfig ARCH=um&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Now we manually check and edit the configuration:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ make menuconfig ARCH=um&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;At the very top of the list are UML-specific options. It is important to know what some of these are:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;font size="2"&gt;&lt;span style="font-family: Lucida Console"&gt;[ ] Tracing thread support&lt;br /&gt;[*] Force a static link&lt;br /&gt;[ ]&amp;nbsp;Host processor type and features ---&amp;gt;&lt;br /&gt;[ ] Three-level pagetables (EXPERIMENTAL)&lt;br /&gt;[ ] Memory model (Flat Memory) ---&amp;gt;&lt;br /&gt;[*] Networking support&lt;br /&gt;[*] Kernel support for ELF binaries&lt;br /&gt;&amp;lt;M&amp;gt; Kernel support for MISC binaries&lt;br /&gt;&amp;lt; &amp;gt; Host filesystem&lt;br /&gt;&amp;lt; &amp;gt; HoneyPot ProcFS (EXPERIMENTAL)&lt;br /&gt;[*] Management console&lt;br /&gt;[ ] Magic SysRq key&lt;br /&gt;(0) Nesting level&lt;br /&gt;[ ] Highmem support (EXPERIMENTAL)&lt;br /&gt;(2) Kernel stack size order&lt;br /&gt;[*] Real-time Clock&lt;/span&gt;&lt;/font&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;There are two options here in particular to take note of. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;The first is the &lt;em&gt;&amp;ldquo;Host Filesystem&amp;rdquo;&lt;/em&gt; option. This gives the UML Linux kernel access to the host filesystem. If you enable this, be careful how the access is applied. A safe course is to apply extended mount and read-write restrictions over filesystems on the host machine.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;The second is the &lt;em&gt;&amp;ldquo;HoneyPot Procfs&amp;rdquo; &lt;/em&gt;option. This essentially overwrites entries in the /proc filesystem of the UML kernel with that of the host. This is useful in that it removes fingerprints which might otherwise indicate the host is a honeypot. It could also be a potential troublespot for someone could map out the architecture of the hosting machine using this information. This is less of a threat than it is something to keep in mind.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;NOTE:&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt; Be sure to include general kernel support for ext2, ext3 and reiserfs.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Looking further down from the kernel configuration tree, see the options for UML network devices. If you want to get to the outside world from the user mode kernel, be sure to enable ethertap and tun/tap support. This will allow the user mode kernel to communicate with the host tun/tap device.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Be sure to check any other &amp;ldquo;non-uml&amp;rdquo; options for your kernel that might be relevant to your machine. There is one last step before you can build the kernel. Due to a macro called by the patch that is now deprecated, one of the kernel source files must be manually edited. In whatever text editor you prefer, open up the file: (within the source tree)&lt;/span&gt; &lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;arch/um/os-Linux/sys-i386/registers.c&lt;/span&gt; &lt;span style="font-size: 10pt; font-family: Tahoma"&gt;and add the following to the preprocessor directive:&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;#ifndef JB_PC&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;#define JB_PC 5&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;#define JB_SP 4&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;#define JB_BP 3&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;#endif&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Once all this is done, build the kernel with:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;$ make ARCH=um&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;At this point, we have our hard drive image (with distribution) and a UML&lt;strong&gt; &lt;/strong&gt;Linux kernel. We have a few more things to set up on the host before we are ready to boot our UML&lt;strong&gt; &lt;/strong&gt;instance. First, we need to make /dev/net/tun writable (by the user the UML kernel will be running as). The quick and dirty way to achieve this is to make it world writable (&lt;strong&gt;NOTE&lt;/strong&gt;: not a &amp;ldquo;best practice&amp;rdquo;, just a quick way to get from a to b). &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Alternatively you could create a separate group with write access to /dev/net/tun. Tun0 which is a tunneled interface to eth0, is used to negotiate traffic between the user mode kernel and the primary physical interface of the host machine. To configure the 1&lt;sup&gt;st&lt;/sup&gt; interface (tun0)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;tunctl &amp;ndash;u umluser umldev&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;This command invokes tunctl, specifies the creation of a device, assigns ownership to user (via &amp;ndash;u) to &amp;ldquo;umluser&amp;rdquo; and name its &amp;ldquo;umldev&amp;rdquo;. The IP side is configured the same way as a standard Ethernet interface via ifconfig:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;ifconfig umldev (ip address)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;We&amp;rsquo;re ready to start our instance. We&amp;rsquo;ll want to specify the Ethernet device on start.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;linux ubd0=Slackware-10.2-root_fs mem=256M &amp;nbsp;eth0=tuntap,umldev &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Once you are asked for a login, simply enter &amp;ldquo;root&amp;rdquo; and it should drop you right to a shell.&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;dhcpcd: MAC address = fe:fd:00:00:00:00&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;Starting OpenSSH SSH daemon:&amp;nbsp; /usr/sbin/sshd&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;Updating shared library links:&amp;nbsp; /sbin/ldconfig&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;p style="text-indent: 0.5in" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Welcome to Linux 2.6.16-skas3-v8.2 (tty0)&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;yadda-yadda login: root&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;Linux 2.6.16-skas3-v8.2.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;Last login: Thu Jul 20 00:53:38 +0000 2006 on tty0.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;You have mail.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;&lt;a href="mailto:root@yadda-yadda"&gt;root@yadda-yadda&lt;/a&gt;:~#&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;On the UML&lt;strong&gt; &lt;/strong&gt;side, use ifconfig to give an ip address to eth0. This needs to be something routable by the umldev&amp;nbsp;IP of the host machine. The route then must be set to the outside world (via the host umldev interface).&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;route add default gw (umldev ip)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;On the host, packet forwarding and proxy_arp must be enabled:&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Lucida Console"&gt;Host# echo 1 &amp;gt;/proc/sys/net/ipv4/ip_forward&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Lucida Console"&gt;Host# echo 1&amp;gt;/proc/sys/net/ipv4/conf/umldev/proxy_arp&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;Now you should be able to reach the outside world from UML:&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;[uml@yadda-yadda]$ ping www&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;PING www.yadda-yadda..com (192.168.0.1) 56(84) bytes of data.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;64 bytes from 192.168.0.1: icmp_seq=1 ttl=127 time=12.1 ms&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;&lt;br /&gt;root@yadda-yadda:~# ssh &lt;a href="http://www.yadda-yadda.com/"&gt;www.yadda-yadda.com&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;root@www.yadda-yadda.com&amp;rsquo;s&amp;nbsp; password:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;Last login: Thu Jul 20 11:00:50 2006 from yadda-yadda.com&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Lucida Console'"&gt;[root@www ~]#&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;You should have a functional UML kernel running in its most basic form. You may kick it around, experiment with distributions (see links provided below), or otherwise abuse it as you see fit without consequence to your hosting system. This entry barely scratches the surface of one use of a usermode kernel, but if you have not considered running one before or are new to the idea, we hope this provides some useful information. Below are some links to some other resources, as well as the user-mode-linux project homepage.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://user-mode-linux.sourceforge.net/"&gt;http://user-mode-linux.sourceforge.net/&lt;/a&gt;&amp;nbsp; - UML Project homepage&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://www.honeynet.org/misc/project.html"&gt;http://www.honeynet.org/misc/project.html&lt;/a&gt;&amp;nbsp;&amp;nbsp; - The honeynet project&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;&lt;a style="color: blue; text-decoration: underline" href="http://uml.nagafix.co.uk/"&gt;http://uml.nagafix.co.uk/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - A repository of disk images to use with your kernel &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=2805" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Technical+Analysis/default.aspx">Technical Analysis</category><category domain="http://port25.technet.com/archive/tags/Security/default.aspx">Security</category><category domain="http://port25.technet.com/archive/tags/Linux/default.aspx">Linux</category><category domain="http://port25.technet.com/archive/tags/Server+Center/default.aspx">Server Center</category></item><item><title>SMTPRC</title><link>http://port25.technet.com/archive/2006/06/28/SMTPRC.aspx</link><pubDate>Wed, 28 Jun 2006 15:30:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:2669</guid><dc:creator>admin</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=2669</wfw:commentRss><comments>http://port25.technet.com/archive/2006/06/28/SMTPRC.aspx#comments</comments><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Spam is a well-known problem for many on the Internet. If you have an email account anywhere, chances are you&amp;rsquo;ve gotten something you didn&amp;rsquo;t ask for; a &amp;ldquo;stock tip&amp;rdquo;, an adult entertainment solicitation, or possibly a plea from an altruistic member of the &amp;ldquo;[Random Nation] Royal Family&amp;rdquo; to assist in some friendly money-laundering.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;As the anti-spam movement gets craftier, so do the spammers. Fortunately for the spammers and unfortunately for the internet, there are a wealth of open-relay mail servers should have never been put online. While most common and current-version SMTP software is secure by default, there are plenty of people who still run outdated software, never bothered to upgrade, or configure properly in its present state.&amp;nbsp; &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;If you are tasked with administering and monitoring a large portion of IP space assigned to people with autonomous control of machines on an externally visible network, this problem can get to be a thorn in your side very quickly - just ask any ISP that allows their customers to run servers. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;If you&amp;rsquo;re not allotted much (or anything) of a software budget to purchase fancy enterprise tools to hunt down open relays on your network, there are some free and lightweight tools for Linux. One such utility is a small application written in C, called &amp;ldquo;smtprc&amp;rdquo; (smtp relay check): &lt;a style="color: blue; text-decoration: underline; text-underline: single" href="http://freshmeat.net/projects/smtprc"&gt;http://freshmeat.net/projects/smtprc&lt;/a&gt; . This simple application takes about 10 minutes to set up. &amp;nbsp;First unzip it into your directory of choice. Next read the README file, and specifically check the Compilation/Installation section to make sure it ends up where you want it to. If not, edit the Makefile and put it where you want it to go. Do a &amp;ldquo;make&amp;rdquo; and &amp;ldquo;make install&amp;rdquo;, edit your scan configurations and go. It will output results to an html file (location specified in configuration). They will be color-coded by result. The collected data may then be used to notify administrators of vulnerable machines.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Note: Some older versions of NT Mail and Lotus Notes will turn out false positives. The messages smtprc attempts to relay are what I would call &amp;ldquo;passively rejected&amp;rdquo;. The SMTP server being tested will accept the inbound messages, but they are never actually delivered. When in doubt, it is best to test manually.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;$&lt;strong&gt; telnet mailserver.com &amp;nbsp;25&amp;nbsp;&amp;nbsp; &lt;/strong&gt;&lt;/font&gt;&lt;em&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt; telnet to the host in question on port 25&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;Trying 10.197.173.28...&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;Connected to mailserver.com.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;Escape character is &amp;#39;^]&amp;#39;.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;220 mailserver.com ESMTP Sendmail 8.13.1/8.13.1; Wed, 14 Jun 2006 15:17:39 -0700&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;font size="2"&gt;helo bleh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt; &lt;em&gt;most mta&amp;rsquo;s now require a &amp;ldquo;helo/ehlo&amp;rdquo;&lt;/em&gt; &lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;250 mailserver.com Hello [157.55.209.144], pleased to meet you&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;font size="2"&gt;mail from:&amp;lt;me@here.com&amp;gt; &lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;em&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt; sender address&amp;nbsp; &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;250 2.1.0 &amp;lt;me@here.com&amp;gt;... Sender ok&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;font face="Verdana" size="2"&gt;rcpt to:someone@wherever.com&amp;nbsp; &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;font face="Verdana"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;em&gt;intended&lt;strong&gt; &lt;/strong&gt;recipient address&lt;strong&gt;.&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;strong&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;250 2.1.5 &amp;lt;someone@wherever.com&amp;gt;... Recipient ok&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;font size="2"&gt;data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;em&gt;&lt;font size="2"&gt;indicates message is now being written&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;354 Enter mail, end with &amp;quot;.&amp;quot; on a line by itself&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;font size="2"&gt;Subject: open relay?&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;em&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt; can be anything&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;Hrrrm&amp;hellip;&amp;hellip;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;font face="Verdana"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font face="Verdana" size="2"&gt;message.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;font face="Verdana" size="2"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana"&gt;&amp;szlig;&lt;/span&gt;&lt;font face="Verdana"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font face="Verdana"&gt;&lt;em&gt;&lt;font size="2"&gt;dot on a line by itself indicates end of message, server will queue for delivery&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;250 2.0.0 k5EMHdHl028091 Message accepted for delivery&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&lt;strong&gt;quit&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;221 2.0.0 mailserver.com closing connection&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;Connection closed by foreign host.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;Check your mailbox in about 15-30 minutes. If it doesn&amp;rsquo;t arrive, chances are this is not an open relay.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=2669" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Technical+Analysis/default.aspx">Technical Analysis</category><category domain="http://port25.technet.com/archive/tags/Security/default.aspx">Security</category><category domain="http://port25.technet.com/archive/tags/Server+Center/default.aspx">Server Center</category></item></channel></rss>