<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-5702491182567675357</id><updated>2008-11-12T20:59:09.676-05:00</updated><title type='text'>Mark M Maning</title><subtitle type='html'></subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.markmmanning.com/blog/atom.xml'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-8136223213742800439</id><published>2008-11-12T20:54:00.001-05:00</published><updated>2008-11-12T20:59:09.704-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='symantec'/><category scheme='http://www.blogger.com/atom/ns#' term='antivirus'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Overriding Symantec Endpoint Protection's Unininstall Password</title><content type='html'>&lt;p&gt;Standard story, I had a user today with Symantec Endpoint Protection and it was causing her CPU to redline.  SEP said everything was fine so I thought I'd just save some time and uninstall and re-install like a good Sys-admin would do.  Most people know that with Symantec's more corporate products they require that you put in a password in order to uninstall the application.  This is a simple protection from an attacker manually removing the antivirus.  I didn't realize until today just how simple that was.&lt;/p&gt;  

&lt;p&gt;I did some looking for the password and asked a few people and I tried to look up what the default password was because knowing this client, that's what it would be.  No luck.  Then I discovered something, I was watching the processes in the task manager and saw that when I went to uninstall SEP, msiexec ran as I expected but right as the password prompt came up, another instance of msiexec appeared.  What are the odds that I just end that process and I'm allowed to get through? Very good.&lt;/p&gt;

&lt;p&gt;So then I looked online about this and of course I'm not the first person to find this out.  If you can end the process msiexec.exe that is being run as the current user (not system), then the password prompt will disapper and uninstallation will continue.  There is a protection built into SEP and other Symantec products that blocks access to the task manager while the password prompt is showing.  That's why my favorite windows tool Process Explorer comes in handy.  So here's the steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download Process Explorer from Microsoft or Sysinternals&lt;/li&gt;
&lt;li&gt;Uninstall the symantec product of your choice&lt;/li&gt;
&lt;li&gt;wait for the password prompt to appear&lt;/li&gt;
&lt;li&gt;run Process Explorer and find msiexec.exe that is being run as the current user (not the system)&lt;/li&gt;
&lt;li&gt;end that process and continue with the uninstallation&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I know this really isn't a revelation to most people but I had never done it before and it goes right along with some of my anti-anti-virus research I'm doing.&lt;/p&gt;  

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx&lt;/a&gt; - Process Explorer download&lt;br/&gt;
&lt;a href="https://forums.symantec.com/syment/board/message?board.id=endpoint_protection11&amp;message.id=4852"&gt;https://forums.symantec.com/syment/board/message?board.id=endpoint_protection11&amp;message.id=4852&lt;/a&gt; – link to a forum that has other suggestion to resetting the password like “calling support”</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/8136223213742800439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/8136223213742800439'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/11/overriding-symantec-endpoint.html' title='Overriding Symantec Endpoint Protection&apos;s Unininstall Password'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-9155601818751172616</id><published>2008-10-30T19:23:00.001-04:00</published><updated>2008-10-30T19:25:56.147-04:00</updated><title type='text'>Hide Your Private IP in Mozilla Thunderbird</title><content type='html'>&lt;p&gt;A friend of mine brought up an issue that I never noticed before: In Mozilla Thunderbird, when you send an email, the private IP address of your computer is also transmitted.  So the header will look something like this:&lt;/p&gt;

&lt;blockquote&gt;Received: from ?&lt;strong&gt;192.168.1.108&lt;/strong&gt;? (cpe-66-666-666-666.res.rr.com [66.666.666.666])&lt;/blockquote&gt;

&lt;p&gt;That 192.168.1.108 is the private IP address of which ever computer you sent the email from.&lt;/p&gt;

&lt;h3&gt;Who Cares?&lt;/h3&gt;
&lt;p&gt;Now I get that my public IP must be known to properly route the connection from my gateway to the SMTP server I'm trying to connect to but there's no reason to give out my private IP.  Knowing it makes it easier for an attaker to find my computer on the network for specific attacks against me or even worse, know which range of computers to attack to evade some intrusion detection systems.&lt;/p&gt;  
&lt;p&gt;That being said, it was put there for a reason. Some anti-spam solutions - specifically SpamAssasin - request that you provide the private IP address of the computer you're sending from even if the system is behind a NAT.  It doesn't care what IP address you fill in, just that you put something there.  If you're going to override it like I show below, you should probably spoof it with a number that could possibly be a private IP address or something that is in the form of a fully qualified domain name else you risk your messages being flagged as spam more often.&lt;/p&gt;

&lt;h3&gt;How to Fix This&lt;/h3&gt;
There is an easy workaround:
&lt;ol&gt;
&lt;li&gt;Open Thunderbird&lt;/li&gt; 
&lt;li&gt;Open Preferences &gt; Advanced &gt; General&lt;/li&gt;
&lt;li&gt;Click on Config Editor&lt;/li&gt;
&lt;li&gt;Type in "smtp" and find the number of the SMTP server you want to adjust (usually it will say smtp1)&lt;/li&gt;
&lt;li&gt;Right click on the table and create a new string&lt;/li&gt;
&lt;li&gt;name it mail.smtpserver.smtp*.hello_argument where * is the number of the smtp server settings that you're changing. Usually 1&lt;/li&gt;
&lt;li&gt;assign it whatever value you'd like&lt;br/&gt; 
NOTE: Changing this setting will result in your messages more likely to be marked as spam by SpamAssasin.  Choosing a private IP would be better than just putting something like im.not.telling
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Now when you go to send messages your header will look like this:&lt;/p&gt;

&lt;blockquote&gt;Received: from &lt;strong&gt;172.25.66.6&lt;/strong&gt; (cpe-66-666-666-666.res.rr.com [66.666.666.666])&lt;/blockquote&gt;

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=279525"&gt;https://bugzilla.mozilla.org/show_bug.cgi?id=279525&lt;/a&gt; - link to the mozilla bug discussing this issue in length&lt;br/&gt;
&lt;a href="http://forums.mozillazine.org/viewtopic.php?f=39&amp;t=574630&amp;start=0&amp;st=0&amp;sk=t&amp;sd=a"&gt;http://forums.mozillazine.org/viewtopic.php?f=39&amp;t=574630&amp;start=0&amp;st=0&amp;sk=t&amp;sd=http://forums.mozillazine.org/viewtopic.php?f=39&amp;t=574630&amp;start=0&amp;st=0&amp;sk=t&amp;sd=a&lt;/a&gt; - Mozillazine website where I first found discussion about this issue&lt;br/&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/9155601818751172616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/9155601818751172616'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/10/hide-your-private-ip-in-mozilla.html' title='Hide Your Private IP in Mozilla Thunderbird'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-1082087645870583628</id><published>2008-09-03T21:18:00.004-04:00</published><updated>2008-09-03T21:28:20.404-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Defcon XVI'/><category scheme='http://www.blogger.com/atom/ns#' term='Nate Evans'/><category scheme='http://www.blogger.com/atom/ns#' term='anonymity'/><category scheme='http://www.blogger.com/atom/ns#' term='Defcon 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Tor'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='ethical hackers'/><category scheme='http://www.blogger.com/atom/ns#' term='Nathan Evans'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='Defcon'/><title type='text'>Defcon XVI - Tor Part II</title><content type='html'>&lt;p&gt;&lt;a href="http://web.cs.du.edu/~natevans/"&gt;Nathan Evans&lt;/a&gt; did the last talk on the first night of Defcon called &lt;a href="https://www.defcon.org/html/links/defcon-media-archives.html"&gt;De-TOR-iorate Anonymity&lt;/a&gt;. It had a lot of people sweating on the Tor mailing list and even generated a huge debate about whether Tor should even be attempted to be used on a multi-purpose system versus a dedicated machine or virtual machine like JanusVM or AnonymOS.  The information was pretty thick to process at the time, but a few minutes later, it finally sunk in.  Here's how it works. 
&lt;/p&gt;
&lt;h3&gt;Overview of Tor&lt;/h3&gt;
&lt;img src="http://www.markmmanning.com/blog/images/tor_evans_fig0.png" border="0" align="right" alt="Tor Overview Figure"&gt;&lt;p&gt;A quick review of how Tor works.  Tor is a anonymity tool that creates a circuit of proxy servers to relay connections through.  For instance, in the figure below we see Alice trying to connect to Bob.  Alice sends traffic to node 1, node 1 relays that traffic to node 5, node 5 relays that traffic to node 8 and node 8 finally sends the request to Bob.  If Bob replies, the data travels back the direction that it came.  Simple enough?
&lt;/p&gt;
&lt;h3&gt;Overview of Attack&lt;/h3&gt;
&lt;p&gt;Nathan's attack would fall under the "partitioning" label as the goal of the attack is to partition the Tor network smaller and smaller until it can find the entry node the user is coming from.  Because this attack assumes you have control of the exit node, obtaining the entry node confirms the second node used as a relay thus showing every node in a user's circuit.  This makes Tor as anonymous as a single proxy.  
&lt;/p&gt;
&lt;h3&gt;Circular Circuits&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://www.markmmanning.com/blog/images/tor_evans_circuit.png" border="0" align="right" alt="Circular Circuit figure"&gt;Nathan found that an attacker can create looped circuits.  That is Node 1 relays to Node 2 and then relays to Node 3 but at Node 3 an EXTEND command is issued so the circuit length is increased infinitely.  This causes the queue of traffic waiting to be relayed to fill up and the latency to increase by a large amount.  &lt;/p&gt;


&lt;h3&gt;Why it works&lt;/h3&gt;
&lt;p&gt;Doing a DoS attack and measuring the latency is not new.  It was actually talked about at last year's Defcon.  The difference with this attack is the attacker actually creates circular circuits so nodes are actually looping traffic back to the beginning instead of relaying properly.&lt;/p&gt;
&lt;p&gt;This is why the attack worked:
&lt;ul&gt;&lt;li&gt;Tor is hard coded to only uses 3 nodes in a circuit(debatable whether or not to change)&lt;/li&gt;
&lt;li&gt;Tor does not provide padding to keep latency at the same rate (and never will)&lt;/li&gt;
&lt;li&gt;Tor allows for infinite circuit lengths (to be fixed in &lt;a href="https://www.torproject.org/svn/trunk/doc/spec/proposals/110-avoid-infinite-circuits.txt"&gt;proposal 110&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;h3&gt;The Attack&lt;/h3&gt;
To attack the network, he used the following environment
&lt;ol&gt;&lt;li&gt;a "Bad Exit Node" owned by the attacker&lt;/li&gt;
&lt;li&gt;Tor client used to generate circular circuits (Defined as "DoS Client")&lt;/li&gt;
&lt;li&gt;Web server to act as the destination and to keep track of latency (Defined as "DoS Server")&lt;/li&gt;
&lt;li&gt;Normal user that is using the Bad Exit Node ("Alice")&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;The attack is done by a denial-of-service attack on many nodes using circular circuits discussed above.  If the user's latency stays low during a circular circuit creation, then the attacker knows that the entry node is NOT one of the DoS'd relays and tries different nodes. In this case, latency is measured by injecting a javascript command to ping a web server collecting stats.  The process of generating circular circuits and recording the results is repeated until the user's latency increases substantially at which time the attacker knows that the entry node is one of the three nodes used in the last DoS attack. &lt;/p&gt;

&lt;h3&gt;Example&lt;/h3&gt;
&lt;img src="http://www.markmmanning.com/blog/images/tor_evans_fig1.png" align="right" border="0" alt="Nate Evans Attack"&gt;
&lt;p&gt;In this figure, you can see that Alice is trying to connect to Bob via nodes 1, 5, and the Bad Exit Node that is owned by the attacker. During this time the attacker is creating circular circuits between 1, 2, and 3 which generate large amounts of traffic causing a slow down. &lt;/p&gt;  

&lt;h3&gt;The Fix&lt;/h3&gt;
Tor has been been updated at least 3 times since writing this blog.  Among many other bug fixes and feature additions are the changes related to &lt;a href="https://www.torproject.org/svn/trunk/doc/spec/proposals/110-avoid-infinite-circuits.txt"&gt;Proposal 110&lt;/a&gt;.  This is the proposal to change Tor to handle circular circuits.  The proposal splits up relay requests into "Relay" and "Relay_Early."  Relay requests do not have the ability to issue the EXTEND command that is used to generate the circular circuits and Relay_Early can as these would be the beginning of the circuits.  &lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.torproject.org/svn/trunk/ChangeLog"&gt;0.2.0.30&lt;/a&gt; version also makes an addition to block "risky" extend cells.
&lt;blockquote&gt;Relays now reject risky extend cells: if the extend cell includes
      a digest of all zeroes, or asks to extend back to the relay that
      sent the extend cell, tear down the circuit. Ideas suggested
      by rovv.
&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;The fix is not complete.  They are still implementing parts of proposal 110.  They have to maintain backwards compatibility in case a version 1 circuit is created.  &lt;/p&gt;

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="https://www.torproject.org"&gt;http://www.torproject.org&lt;/a&gt; - Tor Project Website&lt;br/&gt;
&lt;a href="https://www.torproject.org/svn/trunk/doc/spec/proposals/110-avoid-infinite-circuits.txt:"&gt;https://www.torproject.org/svn/trunk/doc/spec/proposals/110-avoid-infinite-circuits.txt&lt;/a&gt; - Details of the proposal for the fix&lt;br/&gt;
&lt;a href="http://archives.seul.org/or/talk/Aug-2008/msg00148.html"&gt;http://archives.seul.org/or/talk/Aug-2008/msg00148.html&lt;/a&gt; - just for accuracy's sake, Roger Dingledine's follow up to my explanation on the or-talk list&lt;br/&gt;
&lt;a href="http://web.cs.du.edu/~natevans/"&gt;http://web.cs.du.edu/~natevans/&lt;/a&gt; - Nathan Evan's website.  Nothing there really&lt;br/&gt;
&lt;a href="https://www.defcon.org/images/defcon-16/dc16-presentations/defcon-16-evans-grothoff.pdf"&gt;https://www.defcon.org/images/defcon-16/dc16-presentations/defcon-16-evans-grothoff.pdf&lt;/a&gt; - Original powerpoint presentation called De-Tor-iorate Anonymity&lt;br/&gt;
&lt;a href="https://www.torproject.org/svn/trunk/ChangeLog"&gt;https://www.torproject.org/svn/trunk/ChangeLog&lt;/a&gt; - the always updating changelog of Tor</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1082087645870583628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1082087645870583628'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/09/defcon-xvi-tor-part-ii.html' title='Defcon XVI - Tor Part II'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-8446984628868469350</id><published>2008-08-31T21:13:00.005-04:00</published><updated>2008-09-01T21:05:00.389-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='system administration'/><category scheme='http://www.blogger.com/atom/ns#' term='windows vista'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server 2003'/><title type='text'>Using Windows Server 2003 Admin Pack on Vista</title><content type='html'>&lt;p&gt;If you haven't found out, the Windows Server 2003 Admin Pack does not work on Vista.  This can be annoying for sys admins that aren't lucky enough to have Server 2008 installed everywhere.  Luckily, there's a quick fix&lt;/p&gt;
&lt;ol&gt;&lt;li&gt; Download and install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e487f885-f0c7-436a-a392-25793a25bad7&amp;displaylang=en"&gt;Server 2003 Admin Pack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Copy and and paste the following code into notepad and save it as "Adminpackfix.cmd" or something like that&lt;br/&gt;

&lt;textarea cols="75" rows="30"&gt;
@echo off

REM RegisterAdminPak.cmd
REM (c) 2006 Microsoft Corporation.  All rights reserved.

set filelist=adprop.dll azroles.dll azroleui.dll ccfg95.dll
set filelist=%filelist% certadm.dll certmmc.dll certpdef.dll certtmpl.dll
set filelist=%filelist% certxds.dll cladmwiz.dll clcfgsrv.dll clnetrex.dll
set filelist=%filelist% cluadmex.dll cluadmmc.dll cmproxy.dll cmroute.dll
set filelist=%filelist% cmutoa.dll cnet16.dll debugex.dll dfscore.dll
set filelist=%filelist% dfsgui.dll dhcpsnap.dll dnsmgr.dll domadmin.dll
set filelist=%filelist% dsadmin.dll dsuiwiz.dll imadmui.dll lrwizdll.dll
set filelist=%filelist% mprsnap.dll msclus.dll mstsmhst.dll mstsmmc.dll
set filelist=%filelist% nntpadm.dll nntpapi.dll nntpsnap.dll ntdsbsrv.dll
set filelist=%filelist% ntfrsapi.dll rasuser.dll rigpsnap.dll rsadmin.dll
set filelist=%filelist% rscommon.dll rsconn.dll rsengps.dll rsjob.dll
set filelist=%filelist% rsservps.dll rsshell.dll rssubps.dll rtrfiltr.dll
set filelist=%filelist% schmmgmt.dll tapisnap.dll tsuserex.dll vsstskex.dll
set filelist=%filelist% w95inf16.dll w95inf32.dll winsevnt.dll winsmon.dll
set filelist=%filelist% winsrpc.dll winssnap.dll ws03res.dll

for %%i in (%filelist%) do (
 echo Registering %%i ...
 regsvr32 /s %%i 
)

echo.
Echo Command Completed
&lt;/textarea&gt;&lt;/li&gt;
&lt;li&gt;Run the script as administrator and you're set&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://support.microsoft.com/kb/930056"&gt;http://support.microsoft.com/kb/930056&lt;/a&gt; - KB article about this subject.  Gives you more specifics than I go into.  &lt;br/&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e487f885-f0c7-436a-a392-25793a25bad7&amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=e487f885-f0c7-436a-a392-25793a25bad7&amp;displaylang=en&lt;/a&gt; - Server 2003 SP1 Admin Pack</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/8446984628868469350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/8446984628868469350'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/08/using-windows-server-2003-admin-pack-on.html' title='Using Windows Server 2003 Admin Pack on Vista'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-1471897158968843074</id><published>2008-08-20T03:00:00.002-04:00</published><updated>2008-08-20T15:13:25.450-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tor'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Roger Dingledine'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Defcon XVI - Tor Part 1</title><content type='html'>&lt;p &gt;I was kind of excited about this years Tor talks because it was almost skipping over the details of what is Tor and going strait to some more advanced subjects.  Roger Dingledine made a great presentation about the vulnerabilities of Tor where he went through each major security bug that was ever discovered.  He is very honest about some of the future attacks like Latency Tables, SSL Website Fingerprinting, automatic control port authentication problems, attackers buying old certificate authorities so that SSL MITM attacks would be available anytime, and even how governments are starting to make laws forcing Tor admins to have an real time access to current Tor nodes. 
&lt;/p&gt;
  &lt;h3&gt;Latency Tables
&lt;/h3&gt;
  &lt;p &gt;This was actually pretty interesting to me.  Roger made a comment about how an attack would be easier if the attacker had access to a latency table which would keep track of the latency between one point to another on a global scale.  
This is a theoretical attack as no one has been able to do this effectively.  &lt;/p&gt;
  &lt;h3&gt;SSL Website Fingerprinting
&lt;/h3&gt;
  &lt;p &gt;This is the theory that it would be possible to document the size of an SSL encrypted web site request so that although an attacker cannot see the data going over the connection, it is possible to see what website the user is visiting.  It could even be taken one step further where the table could not only have the initial website size but the first page, and then the redirected page after login.  For instance, if someone visits their bank, they first get an initial login, and then a secondary authentication screen, and finally their actual online banking information.  Each of those pages have a size that when put together, makes a pretty unusual fingerprint.  
If you tie this fact together with Mike Perry's SSL cookie exploit, one can imagine a situtuation where an attacker finds the website the user is visiting, inject an &amp;lt;img src="http://www.visitedwebsite.com"&amp;gt; where the cookie is sent in clear text and then a session hijack occurs. &lt;/p&gt;
  &lt;h3&gt;Automatic Control Port Authentication
&lt;/h3&gt;
  &lt;p &gt;There has been an addressed issue that shows how an attacker could gain control of a Tor client's control port (which is what's used to generate tunnels) thereby granting the ability to redirect the tunnel or something even more malicious.  The work around for this was to provide authentication done either by a password or by a session cookie.  Clients like Vidalia now support the authentication mechanism but the problem currently is how is the authentication done at the boot time when a user installs Tor as a Windows Service.  Roger didn't have an answer yet to this issue besides that it was currently being worked on.
&lt;/p&gt;
  &lt;h3&gt;Purchasing Old CA's
&lt;/h3&gt;
  &lt;p &gt;If you look in Firefox or IE or Opera or whatever, you'll see a pretty long list of pre-trusted certificate authorities that come when you install the browser.  These are some of the most popular ones that have been trusted for years and come with the browser itself.  It just so happens that a lot of these CA's are not even in business anymore but they're still in the browsers in case someone has purchased a certificate that extends through 2020.  So what?  Well the issue is what if an attacker purchased one of those old CA's, if they wanted to do a MITM attack with SSL, they could and the browser would have no problem with it.  There was even a comment about how China is interested in purchasing one to help out with deep packet inspection even on SSL connections.  &lt;/p&gt;
  &lt;h3&gt;Governments and Law Enforcement&lt;/h3&gt;
  &lt;p &gt;The last big issue that I thought was interesting to bring up was how some governments (see &lt;a href="http://www.kreativrauschen.com/blog/2007/11/09/german-bundestag-decides-to-implement-data-retention/"&gt;Germany&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Data_retention"&gt;others&lt;/a&gt;) are pressuring Tor to provide "real time access to law enforcement." Whatever real time and law enforcement really ends up being. Roger makes the point that if it becomes this hard and this illegal, it may not be possible to run a Tor server in that country and it may be difficult to do so in the future. &lt;/p&gt;
&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://www.torproject.org"&gt;http://www.torproject.org&lt;/a&gt; - Tor Project Website &lt;br/&gt;
&lt;a href="http://www.kreativrauschen.com/blog/2007/11/09/german-bundestag-decides-to-implement-data-retention/"&gt;http://www.kreativrauschen.com/blog/2007/11/09/german-bundestag-decides-to-implement-data-retention/&lt;/a&gt; - Blog about the new German data retention logs&lt;br/&gt;
&lt;a href="http://en.wikipedia.org/wiki/Data_retention"&gt;http://en.wikipedia.org /wiki/Data_retention&lt;/a&gt; - Wikipedia entry about data retention laws in other countries &lt;br/&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1471897158968843074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1471897158968843074'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/08/i-was-kind-of-excited-about-this-years.html' title='Defcon XVI - Tor Part 1'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-3198943368041349128</id><published>2008-08-16T19:50:00.004-04:00</published><updated>2008-08-16T19:55:19.003-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='side jacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Ashley Schwartau'/><category scheme='http://www.blogger.com/atom/ns#' term='Defcon XVI'/><category scheme='http://www.blogger.com/atom/ns#' term='Defcon 16'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel Guardians'/><category scheme='http://www.blogger.com/atom/ns#' term='Mike Perry'/><category scheme='http://www.blogger.com/atom/ns#' term='GMail'/><category scheme='http://www.blogger.com/atom/ns#' term='war driving'/><category scheme='http://www.blogger.com/atom/ns#' term='session hijacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Tor'/><category scheme='http://www.blogger.com/atom/ns#' term='Hackers Are People Too'/><category scheme='http://www.blogger.com/atom/ns#' term='Defcon'/><category scheme='http://www.blogger.com/atom/ns#' term='hackers'/><category scheme='http://www.blogger.com/atom/ns#' term='Roger Dingledine'/><title type='text'>Defcon XVI Overview</title><content type='html'>&lt;p  &gt;&lt;a href="2007/08/defcon-day-1-church-of-wifi.html"&gt;Last year&lt;/a&gt; was my first year at Defcon so I was sucking up as much information as possible but generally I just went to the talks and then back to the room to play with the things that I had learned.  I didn't get into the social scene very much.&lt;/p&gt;
    
    &lt;p  &gt;This year I still attended a ton of the talks but instead of taking time to go back to the room and play, my friends and I made more of an effort to get into the Defcon social scene.&lt;/p&gt;
  
  &lt;h3&gt;Overall Experience&lt;/h3&gt;
  &lt;p&gt;Just like last year I had a blast but I think even more this year because of some of the people we met. I've seen some posts complaining about the situation at Defcon about how it was too crowded and they missed some talks because of this. It sounds to me like a lot of people have gone to things like Microsoft Events where you stand around some muffins and coffee and then sit through 2 hours of talks.Defcon hacks the conservative convention idea and takes into account the amount of hackers that have ADD.They offer 5 tracks of talks at the same time, lock picking training, wireless village, general hang outs, and more. Then when the talks are all done, there are parties all over the city. It's not cup of coffee, stand in line, polite conversation kind of gathering but rather a red bull and vodka, bum rush, punch in the face cluster of people from all over world meeting to show solidarity in the hacker community. At least that's the my ideal perspective of what Defcon should be, it may be growing in a different direction.&lt;/p&gt;
  
  &lt;p &gt;List of talks I attended:&lt;/p&gt;
&lt;ul&gt; &lt;li&gt; Welcome by DT &amp;amp; Making the DEFCON 16 Badge with Joe "Kingpin" Grand&lt;/li&gt;
  &lt;li&gt;Clinton Wong - Web Privacy &amp;amp; Flash Local Shared Objects.&lt;/li&gt;
  &lt;li&gt;Roger Dingledine -Security and anonymity vulnerabilities in Tor: past, present, and future&lt;/li&gt;
  &lt;li&gt;Robert Ricks -New Tool for SQL Injection with DNS Exfiltration.&lt;/li&gt;
  &lt;li&gt;Magnus Bråding -Generic, Decentralized, Unstoppable Anonymity: The Phantom Protocol.&lt;/li&gt;
  &lt;li&gt;Eric Schmiedl -Advanced Physical Attacks: Going Beyond Social Engineering and Dumpster Diving Or, Techniques of Industrial Espionage&lt;/li&gt;
  &lt;li&gt;Fyodor -NMAP-Scanning the Internet.&lt;/li&gt;
  &lt;li&gt;Matt Yoder-Death Envelope: Medieval Solution to a 21st Century Problem.&lt;/li&gt;
  &lt;li&gt;John Fitzpatrick -Virtually Hacking.&lt;/li&gt;
  &lt;li&gt;Nathan Evans -De-TOR-iorate Anonymity&lt;/li&gt;
  &lt;li&gt;Movie Night With DT: Premiere of "Hackers Are People Too&lt;/li&gt;
  &lt;li&gt;Cameron Hotchkies-Under the iHood.&lt;/li&gt;
  &lt;li&gt;Jay Beale-Owning the Users with Agent in the Middle. &lt;/li&gt;
  &lt;li&gt;Luciano Bello &amp;amp; Maximiliano Bertacchini-Predictable RNG in the Vulnerable Debian OpenSSL Package, the What and the How. &lt;/li&gt;
  &lt;li&gt;Panel: All your Sploits (and Servers) are belong to us. &lt;/li&gt;
  &lt;li&gt;Mike Perry-365-Day:Active https cookie hijacking. &lt;/li&gt;
  &lt;li&gt;Tony Howlett-The death of Cash: The Loss of anonymity &amp;amp; other danger of the cash free society. &lt;/li&gt;
  &lt;li&gt;Ryan Trost-Evade IDS/IPS Systems using Geospatial Threat Detection. &lt;/li&gt;
  &lt;li&gt;Rick Hill-War Ballooning-Kismet Wireless "Eye in the Sky" &lt;/li&gt;
  &lt;li&gt;Jay Beale-They're Hacking Our Clients! Introducing Free Client-side Intrustion Prevention. &lt;/li&gt;
  &lt;li&gt;DAVIX Visualization Workshop&lt;/li&gt;
  &lt;li&gt;Stealing the Internet&lt;/li&gt;&lt;/ul&gt;
  
&lt;h3&gt;Tor&lt;/h3&gt;
  &lt;p &gt;I've been following Tor for a while now so it was interesting to go to the two Tor specific talks – both about vulnerabilities in Tor. Roger Dingledine presented a general overview of past, present, and future vulnerabilities in the Tor network and Nathan Evans went over a specific vulnerability which allowed an attacker to find out all nodes in a circuit. Both talks were interesting and I'm going to go into much more detail in future blog entries. &lt;/p&gt;
  
  &lt;h3&gt;Sidejacking Redux&lt;/h3&gt;
  &lt;p &gt;Last year, the concept of sidejacking was in its infancy. Sidejacking or   session hijacking is when an attacker uses a man in the middle to steal the current session of something a user is accessing. For instance, with this attack, an attacker could steal the cookies used to authenticate a person's gmail account which would grant the attacker access to Gmail and all other Google services for the amount of time that session was valid. This year Jay Beale of the company Intel Guardians released a tool called &lt;a href="http://www.intelguardians.com/themiddler.html"&gt;“The Middler”&lt;/a&gt; which automates this process and &lt;a href="http://fscked.org"&gt;Mike Perry&lt;/a&gt; of Riverbed and the Tor Project pointed out a flaw in the way that some companies have tried to protect users from this exploit. &lt;/p&gt;
  
  &lt;p &gt;Since last year, services like Gmail have offered SSL encryption to protect from this attack but they didn't force users to use SSL which lead to Mike Perry's talk. He pointed out an attack on a Gmail  where even though the user was using an SSL connection, the cookie could be transmitted in clear text allowing a session hijack. This was done by doing a MITM attack, &lt;a href="http://fscked.org/projects/cookiemonster"&gt;using a tool&lt;/a&gt; to check which online service the user was using, inject a piece of html that pointed to the non-SSL encrypted version of that online service and then perform a session hijack after reading in the credentials. He even pointed out a simple fix that he has told Gmail and Yahoo about where you can set a bit in the cookie to only transmit in SSL. &lt;/p&gt;
  
  &lt;h3&gt;War-Ballooning&lt;/h3&gt;
  &lt;p &gt;One of the most fun talks that I attended was Rick Hill's War-Ballooning demonstration. They were planning on doing a live demo from the roof of the Riveria but at the last minute, some authorities decided to stop them. War-Ballooning was a development of last years idea of War-Rocketing which shot a rocket in the air and then searched for wireless signals while it parachuted to the ground. This year they took a professional balloon that was used by photographers for shooting aerial shots, attached a cooler filled with various wireless gear, and configured a orbital webcam that controlled which direction the yagi antenna was pointing. So they gave a video of the demonstration which was recorded the day before in a park five miles out of town. For added drama, they used Kismet's feature to read wireless networks out loud as it found them. They had the balloon up for ten minutes and found over 300 wireless signals as it broadcast a 7 mile radius. 30% of those were unsecured. &lt;/p&gt;

&lt;h3&gt;Hackers Are People Too - Ashley Schwartau&lt;/h3&gt;
And how could I forget to add something about my acting debut in the documentary Hackers Are People Too which was premiered at Defcon XVI. Well ok, maybe I was on the screen for less than 2 seconds and I wasn't quoted as saying anything but hey, to be in a hacker documentary was really cool. Ashley even recognized me when I came up to her vendor booth. But enough of my vanity, the documentary was so cool and people really should pick it up to show to their friends and family and get the scarey idea of what hackers are out of their heads. 

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://www.hackersarepeopletoo.com"&gt;http://www.hackersarepeopletoo.com&lt;/a&gt; - link to the Hackers Are People Too official website (BUY BUY BUY!!!)&lt;br/&gt;
&lt;a href="http://fscked.org/"&gt;http://fscked.org/&lt;/a&gt; - Mike Perry's website &lt;br/&gt;
&lt;a href="http://www.defcon.org"&gt;http://www.defcon.org&lt;/a&gt;-Defcon&lt;br/&gt;
&lt;a href="http://www.intelguardians.com/"&gt;http://www.intelguardians.com/&lt;/a&gt; - Intel Guardians will soon be releasing "The Middler"&lt;br/&gt;s</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/3198943368041349128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/3198943368041349128'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/08/defcon-xvi-overview.html' title='Defcon XVI Overview'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-7761940882449972286</id><published>2008-08-08T10:42:00.003-04:00</published><updated>2008-08-08T11:07:43.898-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Defcon XVI'/><category scheme='http://www.blogger.com/atom/ns#' term='Defcon 16'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='EFF'/><category scheme='http://www.blogger.com/atom/ns#' term='ethical hackers'/><category scheme='http://www.blogger.com/atom/ns#' term='hackers'/><category scheme='http://www.blogger.com/atom/ns#' term='Defcon'/><title type='text'>Defcon XVI - Day 0</title><content type='html'>&lt;p&gt;I arrived Thursday morning to Las Vegas in an attempt to do some of the pre-Defcon social events this year.  We posted our room availability on the Defcon forums and picked up two roomates to help with the costs; Riot and Matt. &lt;/p&gt;

&lt;p&gt;I reserved the "deluxe" room at the Riveria which although being nicer, doesn't have any more space than the non-deluxe. It does look much more romantic but filling it with 4 guys takes care of that feeling pretty quickly.  &lt;/p&gt;

&lt;p&gt;Badges this year include an IR port, an SD slot, and supposedly a way to shut off all TV's in a certain radius, and a transmit mode that may allow you to talk to other badges as you walk around the floor. &lt;/p&gt;

&lt;h3&gt;Ethical Hackers&lt;/h3&gt;
&lt;a href="http://www.ethicalhackers.net"&gt;Ethical Hackers&lt;/a&gt; was doing a get together at Hofbrauhaus, a German brew house at 8:00pm.  Dan who runs the site was putting it all together and had a $500 tab for us to use.  The whole event was a lot of fun and had a lot of interesting people.  Timmy of &lt;a href="http://www.redrocksec.com"&gt;Red Rock Security&lt;/a&gt;, Brian of Cisco, Ed of &lt;a href="http://www.intelguardians.com"&gt;Intel Guardians&lt;/a&gt;, David an extreme baby sitter, Collin of &lt;a href="http://www.trainingcamp.com"&gt;Training Camp&lt;/a&gt;, Mike the Military Vet, Naps, and a bunch of others of whom I may have forgotten their names.  Check out &lt;a href="http://www.chicagocon.com/"&gt;ChicagoCon&lt;/a&gt; for anyone that will be in the area.  Sounds like a very worthwhile event. I think the whole get together was a success.  

&lt;h3&gt;EFF Summit&lt;/h3&gt;
We also grabbed a few of the guys to make it back to the EFF Summit at the top of the Monaco tower back at the Riveria.  Donations were $40 to get in and included a one year membership.  Once the sound system was working at around 10:30 or 11:00, some of the EFF guys went up to talk about some of the cases that were won and some of good things that the EFF does.  I think it was kind of preaching to the choir but the event went pretty well.

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://www.ethicalhackers.net"&gt;http://www.ethicalhackers.net&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://www.redrocksec.com"&gt;Red Rock Security&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://www.chicagocon.com/"&gt;ChicagoCon&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://www.intelguardians.com"&gt;Intel Guardians&lt;/a&gt;&lt;/br&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/7761940882449972286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/7761940882449972286'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/08/defcon-xvi-day-0.html' title='Defcon XVI - Day 0'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-5985309261234878862</id><published>2008-08-06T17:22:00.003-04:00</published><updated>2008-08-12T15:54:02.447-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='remote desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='rdesktop'/><category scheme='http://www.blogger.com/atom/ns#' term='terminal services'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='SeamlessRDP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Running Windows Programs in Ubuntu with SeamlessRDP</title><content type='html'>&lt;p&gt;While looking for what's happening at this years Defcon that I'll be attending, I stumbled across a blog entry from &lt;a href="http://blog.ncircle.com/"&gt;360 Security&lt;/a&gt; talking about SeamlessRDP.  After seeing how easy it is to setup and use, I don't know why I haven't heard more about it.  But that's probably because I've never really looked into running Windows apps in Ubuntu.&lt;/P&gt;

&lt;h3&gt;What is SeamlessRDP&lt;/h3&gt;
&lt;p&gt;SeamlessRDP is an extension for remote desktop/terminal servers that allows a single application to be remoted into instead of the entire computer.  In my scenario, I have an Ubuntu system and I run a virtual Windows XP in the background.  I install SeamlessRDP onto the Windows VM and I can now run individual applications without messing around with the VM itself.  &lt;/p&gt;

&lt;p&gt;The company Cendio created SeamlessRDP when they were trying to get their own products to work with rdesktop.  They realized that it could be of use to other in the community and released it under GPL.&lt;/p&gt;

&lt;h3&gt;How to&lt;/h3&gt;
&lt;p&gt;It's extremely easy to setup:
&lt;ol&gt;
&lt;li&gt;On the remote desktop server, download &lt;a href="http://www.cendio.com/files/thinlinc/seamlessrdp/seamlessrdp.zip"&gt;SeamlessRDP binary file&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Extract it to an easy to use location like C:\seamlessrdp&lt;/li&gt;
&lt;li&gt;On the client, make sure you have at least version 1.5 of rdesktop installed (Hardy is all set).  Download it from &lt;a href="http://www.rdesktop.org/"&gt;here&lt;/a&gt; if you need&lt;/li&gt;
&lt;li&gt;Now you're ready to use it - here's an example of running Word 2007:
&lt;textarea cols="100" rows="2"&gt;
rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe c:\program files\microsoft office\office12\winword.exe" 192.168.1.5:3389 -u administrator -p password
&lt;/textarea&gt;&lt;br/&gt;
Running Internet Explorer:
&lt;textarea cols="100" rows="2"&gt;
rdesktop -A -s "c:\seamlessrdpshell.exe c:\program files\internet explorer\iexplore.exe" 192.168.1.5:3389 -u administrator -p password
&lt;/textarea&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I admit, I haven't done any research into other products or alternatives that may work better, so let me know if you find anything&lt;/p&gt;

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://www.cendio.com/seamlessrdp/"&gt;http://www.cendio.com/seamlessrdp/&lt;/a&gt; - Cendio's page about seamless RDP&lt;br/&gt;
&lt;a href="http://www.rdesktop.org/"&gt;http://www.rdesktop.org/&lt;/a&gt; - rdesktop.org for the client &lt;br/&gt;
&lt;a href="http://blog.ncircle.com/"&gt;http://blog.ncircle.com/&lt;/a&gt; - where I originally found the post&lt;/br&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/5985309261234878862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/5985309261234878862'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/08/running-windows-programs-in-ubuntu-with.html' title='Running Windows Programs in Ubuntu with SeamlessRDP'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-5941705682137314862</id><published>2008-08-04T17:00:00.001-04:00</published><updated>2008-08-04T17:00:01.555-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='active directory'/><category scheme='http://www.blogger.com/atom/ns#' term='system administration'/><category scheme='http://www.blogger.com/atom/ns#' term='group policy'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server 2003'/><title type='text'>Precreating Computers In Active Directory</title><content type='html'>&lt;p&gt;This is a simple one that goes back to a conversation I had with a consultant.  We were talking about adding a computer to a domain and then moving the computer to the designated OU that was dedicated to that site.  I made the comment that it might be even better to precreate the computer account in the appropriate OU and then you don't need to bug a domain administrator to do the moving around.  His reply was something like "Yea I haven't had good luck with that." That's one of my favorite reasons for technical problems.  It's kind of like saying, I tried it once, it didn't work, so it must be broken.  &lt;p&gt;

&lt;h3&gt;Why Do This?&lt;/h3&gt;
&lt;p&gt;Anyways, the real reason that you would want to do this is if you have a team of IT staff where a few have domain administrators rights but most of them are just local admins on the workstations to provide support and install software.  Adding a computer to the domain would be a normal task for these kind of support staff.&lt;/p&gt;

&lt;h3&gt;Problem&lt;/h3&gt;
&lt;p&gt;So you have a brand new computer that you want to add to your network.  You assign on of the non domain admins to install necessary software and join it to the domain.  When he adds it to the domain, the computer is dumped into the "computers" folder in AD where the appropriate group policies and delegated access is NOT applied. You want the new computer to go into a separate OU but you don't want to grant the user access to move or manipulate Active Directory AND you want to delegate the entire process to the admins so that you don't need to be involved in the specifics.  So what do you do?&lt;/p&gt;

&lt;h3&gt;Solution&lt;/h3&gt;
&lt;p&gt;If you precreate the computer in the appropriate OU in Active Directory, when that computer is joined to the domain, it will have the group policies and permissions that it needs.  As a domain admin, you can precreate the computer account yourself but you'd rather delegate access the IT support team.  Here's how you do it:&lt;/p&gt;

&lt;h3&gt;Delegate Control To Non-Domain Admins&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Active Directory Users and Computers&lt;/li&gt;
&lt;li&gt;Right click on the OU and then click All Tasks&gt;Delegate Control&lt;/li&gt;
&lt;li&gt;Click Add and put in the appropriate user or group (IT Admins)&lt;/li&gt;
&lt;li&gt;Click "create a custom task to delegate"&lt;/li&gt;
&lt;li&gt;Click "only the following objects in this folder"&lt;/li&gt;
&lt;li&gt;Check Computer Objects&lt;/li&gt;
&lt;li&gt;Check "Create selected objects in this folder"&lt;/li&gt;
&lt;li&gt;Under "Show these permissions" uncheck everything and click "Next"&lt;/li&gt;
&lt;/ol&gt;
You've now granted non-admins access to create computers inside of that OU. 

&lt;h3&gt;Pre-Create New Computer &lt;/h3&gt;
These are the tasks for the non-admin to perform using the Server 2003 Admin Pack
&lt;ol&gt;&lt;li&gt;In Active Directory Users and Computers, right click the target OU the computer should go to and choose New&gt;Computer&lt;/li&gt;
&lt;li&gt;Name the computer&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Under "The following users or group can join this computer to the domain" choose a group that has appropriate access like "IT Admins" or "Domain Users" to allow anyone do it.  &lt;/b&gt;&lt;br/&gt; This is the step that is usually missed.  If you don't do this, then by default Domain Admins are the only one that can add the computer to the domain. &lt;/li&gt;
&lt;li&gt;Click Next&lt;/li&gt;
&lt;/ol&gt;
Now on the client you go through the normal process of adding the computer to the domain.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/5941705682137314862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/5941705682137314862'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/08/precreating-computers-in-active.html' title='Precreating Computers In Active Directory'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-4790098453476385256</id><published>2008-07-25T11:12:00.006-04:00</published><updated>2008-07-25T11:54:55.669-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='active directory'/><category scheme='http://www.blogger.com/atom/ns#' term='migration'/><category scheme='http://www.blogger.com/atom/ns#' term='SID filtering'/><category scheme='http://www.blogger.com/atom/ns#' term='ADMT'/><category scheme='http://www.blogger.com/atom/ns#' term='SID history'/><title type='text'>Enable SID History / Disable SID Filtering</title><content type='html'>&lt;p&gt;I've been getting a lot of experience with the Active Directory Migration Tools [ADMT] but it seems like I always have a problem with using SID history between domains.  This is more of a reminder for myself how to get SID History to work. &lt;/p&gt;

&lt;h3&gt;What is SID History&lt;/h3&gt;
&lt;p&gt;SID History is an attribute of an Active Directory object that stores an old Security IDentifier(SID) mostly commonly used during a migration.  So you have an old domain, and you move to a new domain, and the user on the new account maintains access to all of their old files and folders.  This saves the hassles of having to re-permission network shares, folder access, applications, etc.  In order to use SID history, you must disable SID Filtering and enable SID History on the trust between the domains. &lt;/p&gt;

&lt;p&gt;To enable SID History on a trust issue this command:&lt;/p&gt;
&lt;textarea cols="75" rows="2"&gt;
Netdom trust TrustingDomainName /domain: TrustedDomainName /quarantine:No /userD:domainadministratorAcct/passwordD:domainadminpwd
&lt;/textarea&gt;

&lt;h3&gt;What is SID Filtering&lt;/h3&gt;
&lt;p&gt;The nemesis of SID History is SID Filtering.  This is a security measure put into place by default that protects your new environment from attackers that may have broken into the old domain.  Although you may think, no one's going to get into the old domain, I think that just about every migration I've done, they leave the original domain up and running and then starts to put a low priority on everything in that domain; patches, access control management, event log review all becomes secondary because no one is on it any more and now becomes a fairly large new attack vector.  While it makes sense to leave the old environment up and running, it still needs that same care it has always needed. &lt;/p&gt;

&lt;p&gt;So that's why SID Filtering is good, but unfortunately, it completely blocks the use of SID History which would be very important during a migration.  This command below disables SID Filtering:&lt;/p&gt;
&lt;textarea cols="75" rows="2"&gt;
Netdom trust TrustingDomainName /domain:TrustedDomainName /quarantine:No /userD:domainadministratorAcct /passwordD:domainadminpwd
&lt;/textarea&gt;


&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://technet2.microsoft.com/windowsserver/en/library/52b395b4-0313-47d8-87d4-fb1dd4d5c4701033.mspx?mfr=true"&gt;http://technet2.microsoft.com/windowsserver/en/library/52b395b4-0313-47d8-87d4-fb1dd4d5c4701033.mspx?mfr=true&lt;/a&gt; - Technet article about disabling SID filtering &lt;br/&gt;
&lt;a href="http://technet2.microsoft.com/windowsserver/en/library/31915de7-ff58-4f26-a8ec-450ffca759121033.mspx?mfr=true"&gt;http://technet2.microsoft.com/windowsserver/en/library/31915de7-ff58-4f26-a8ec-450ffca759121033.mspx?mfr=true&lt;/a&gt; - Technet article about external trusts</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/4790098453476385256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/4790098453476385256'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/07/enable-sid-history-disable-sid.html' title='Enable SID History / Disable SID Filtering'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-6935924034558274222</id><published>2008-07-21T20:22:00.003-04:00</published><updated>2008-07-31T21:11:50.538-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lol'/><category scheme='http://www.blogger.com/atom/ns#' term='grub'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Password Protect Grub</title><content type='html'>&lt;p&gt;This weekend, my company threw their annual trip to the mountains which 
included a team building scavenger hunt through the small town community, 
a boat trip to the lake, and some after hour pranks.  One such prank involved 
a picture being taken of my friend in an unfortunate position while he was sleeping downstairs.  He had 
left his laptop on the table and we agreed that it would be perfect to 
surprise him by changing the desktop background of his computer to the photo we took that night.  
At 4am I wasn't interested in live CD's or slaving hard drives but luckily I was 
able to boot into his Ubuntu partition in minutes with root access.&lt;/p&gt;  

&lt;p&gt;And why am I telling you this? Because the reason I was able to access 
it so easily was because Grub was not password protected and I booted it into 
rescue mode which gave me root access to his entire hard drive.  Although I 
thought it was hilarious, it was a good reminder to always lock it down.  So this is how to password 
protect some or all of the entries in Grub.&lt;/p&gt;

&lt;h3&gt;Password Protect Grub Entries&lt;/h3&gt;
&lt;p&gt;This shows you how to password protect individual Grub entries&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Generate your Grub password with the following command&lt;/li&gt;
&lt;textarea rows="4" cols="75"&gt;
&gt; grub-md5-crypt 
Password: 
Retype password: 
$1$Yozqb$OIKAYGPKQJfi2U9y/yDG30
&lt;/textarea&gt;
&lt;li&gt;Copy the last string because this is what you'll use inside the Grub configuration file&lt;/li&gt;
&lt;li&gt;Using your editor of choice, edit /boot/grub/menu.lst&lt;/li&gt;

&lt;li&gt;Find the part that shows the different boot options at the bottom of the 
page where you'll see something like this:&lt;/li&gt;
&lt;textarea rows="11" cols="75"&gt;
title           Ubuntu 8.04.1, kernel 2.6.22-14-generic
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.22-14-generic root=UUID=43ad544e-1e1a-4511-99de-fc1c8a9fea7c ro quiet splash
initrd          /boot/initrd.img-2.6.22-14-generic
quiet

title           Ubuntu 8.04.1, kernel 2.6.22-14-generic (recovery mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.22-14-generic root=UUID=43ad544e-1e1a-4511-99de-fc1c8a9fea7c ro single
initrd          /boot/initrd.img-2.6.22-14-generic

&lt;/textarea&gt;&lt;br/&gt;
There are some options which are not an issue to boot but the recovery mode ones would be
&lt;li&gt;Edit the section for the recovery mode so that it looks like this&lt;/li&gt;
&lt;textarea rows="11" cols="75"&gt;
title           Ubuntu 8.04.1, kernel 2.6.22-14-generic
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.22-14-generic root=UUID=43ad544e-1e1a-4511-99de-fc1c8a9fea7c ro quiet splash
initrd          /boot/initrd.img-2.6.22-14-generic
quiet

title           Ubuntu 8.04.1, kernel 2.6.22-14-generic (recovery mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.22-14-generic root=UUID=43ad544e-1e1a-4511-99de-fc1c8a9fea7c ro single
initrd          /boot/initrd.img-2.6.22-14-generic
password --md5 $1$Yozqb$OIKAYGPKQJfi2U9y/yDG30
&lt;/textarea&gt;&lt;br/&gt;
This will force a password if a user attempts to boot into recovery mode but
automatically boot into the default installation without one.  
&lt;li&gt;Save the menu.lst file and reboot to see if you were successful&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Password Protect Editing Grub Entries&lt;/h3&gt;
&lt;p&gt;This is how to password protect all of Grub so that you cannot run your own commands. 
This is a big one because an attacker could edit the Grub entries to do something like print out
your /etc/password file&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Edit the menu.lst file&lt;/li&gt;
&lt;li&gt;Find the section below and remove the '#' and replace the hash with your Grub hash you created earlier&lt;/li&gt; 
&lt;textarea rows="3" cols="75"&gt;
# e.g. password topsecret
      password $1$Yozqb$OIKAYGPKQJfi2U9y/yDG30 
# password topsecret
&lt;/textarea&gt;&lt;br/&gt;
&lt;li&gt;Go through each entry that you want to lock out from editing by adding the 
word "lock" right after the title&lt;/li&gt;

&lt;/ol&gt;

&lt;h3&gt;Load Alternative Menu On Password&lt;/h3&gt;
&lt;p&gt;This is a way of loading a separate boot menu when the user presses 'P'
and enters a password. &lt;/p&gt;
&lt;ol&gt; 
&lt;li&gt;Make a duplicate of menu.lst named menu-admin.lst.  This will
be the alternative menu&lt;/li&gt;

&lt;li&gt;Edit the menu-admin.lst file so that you only have the entries you want.  This is the
only menu that will show so you may want to duplicate some of the original ones too.
&lt;/li&gt;
&lt;textarea cols="75" rows="15"&gt;
title  Ubuntu 8.04.1, kernel 2.6.24-19-generic (recovery mode)
root  (hd0,0)
kernel  /boot/vmlinuz-2.6.24-19-generic root=UUID=43ad544e-1e1a-4511-99de-fc1c8a9fea7c ro single
initrd  /boot/initrd.img-2.6.24-19-generic

title  Ubuntu 8.04.1, kernel 2.6.24-18-generic (recovery mode)
root  (hd0,0)
kernel  /boot/vmlinuz-2.6.24-18-generic root=UUID=43ad544e-1e1a-4511-99de-fc1c8a9fea7c ro single
initrd  /boot/initrd.img-2.6.24-18-generic

&lt;/textarea&gt;&lt;br/&gt;
&lt;/ol&gt;

&lt;h3&gt;Disclaimer&lt;/h3&gt;
This is NOT by any means, a very good security measure.  It's just a way to stop a 
lazy attacker or your little brother.  The rule still applies that if you have physical access to the box, you can do what 
whatever you want.  If you want to be serious about protecting a system from physical 
attacks, you'll need to look at encrypting the entire hard drive.  
 
&lt;h3&gt;External Links&lt;/h3&gt;
&lt;a href="http://www.gnu.org/software/grub/manual/grub.html#Security"&gt;http://www.gnu.org/software/grub/manual/grub.html#Security&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6935924034558274222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6935924034558274222'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/07/password-protect-grub.html' title='Password Protect Grub'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-1423472206769307982</id><published>2008-07-03T20:33:00.008-04:00</published><updated>2008-07-14T21:31:19.713-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='gpg'/><category scheme='http://www.blogger.com/atom/ns#' term='FireGPG'/><category scheme='http://www.blogger.com/atom/ns#' term='alternative to ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><title type='text'>Encrypting Webpages and Posts with GPG and FireGPG</title><content type='html'>&lt;p&gt;Just recently FireGPG released their &lt;a href="http://getfiregpg.org/news.html"&gt;0.5 version &lt;/a&gt; which along with other bug fixes and feature additions, includes the ability to automatically reading inline GPG/PGP key blocks from websites.  This perfectly fits into an idea I was thinking about a few weeks ago.&lt;/p&gt;  

&lt;p&gt;UPDATE 7/14/08: FireGPG's &lt;a href="http://getfiregpg.org/index.php?page=nv&amp;v=0.5.1"&gt;newest version&lt;/a&gt; supports symmetrical encryption and line breaks making it even easier to do what I'm talking about.  

&lt;p&gt;The idea is that using FireGPG you can encrypt your posts to public web pages, forums, wikis, and even MySpace (if you still use that) so that only you, or whomever possesses the private key can decrypt.&lt;/p&gt; 

&lt;p&gt;For example, say you have a very private message that you and your friend would like to share but you want to make sure no one can read it while you are writing it and that no one can read it after you've posted it.  You generate a key for your posts and then you send your friend the private key, and she decrypts it but no one else can.  Not even the owner of the website.  

&lt;h3&gt;Why would you want to do this?&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;It's an alternative to SSL if you don't have the ability to set it up (forums, blog comments) [There are other alternatives I've seen done with Javascript but most of them site security flaws]&lt;/li&gt;
&lt;li&gt;Way of keeping private posts private even from server owners&lt;/li&gt;
&lt;li&gt;Encryption is fun!&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Why would you not do this&lt;/h3&gt;
&lt;p&gt;This is a last stretch effort and by no means is it a perfect solution.  In fact, the public key encryption just does not fit in with this but I haven't found many general encryption plug-ins to encrypt a message with great confidence. Plus it doesn't give you control of revoking the key if it gets stolen.  Do not use this as a serious solution but an example of what someone COULD do.&lt;/p&gt;     

&lt;p&gt;One of the requests at FireGPG is that they can support symmetric encryption which would work much better in this situation.  Until then, this still works pretty well.  &lt;/p&gt;
&lt;h3&gt;Install GPG&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.gnupg.org/download/index.en.html"&gt;http://www.gnupg.org/download/index.en.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'm really not going to go through the process of installing on your system because it's very easy.  Use the site's documentation.&lt;/p&gt;

&lt;h3&gt;Generate a GPG Key For Your Usage&lt;/h3&gt;
You can always use your GUI of choice to do this but from command line here's the easiest way:

&lt;textarea rows="2" cols="50"&gt;
gpg --gen-key
&lt;/textarea&gt; 

&lt;p&gt;Follow through the steps to create your key.&lt;/p&gt; 

&lt;h3&gt;Install FireGPG&lt;/h3&gt;
Install FireGPG from here - &lt;a href="http://getfiregpg.org/install.html"&gt;http://getfiregpg.org/install.html&lt;/a&gt;

&lt;h3&gt;Encrypt Your Posts:&lt;/h3&gt;
After FireGPG is installed, you now have a FireGPG menu option when you select a block of text and right-click. So the process is this:
&lt;ol&gt;
&lt;li&gt;Write the post or whatever you're sending to a site&lt;/li&gt;
&lt;li&gt;Select the entire text before submitting&lt;/li&gt;
&lt;li&gt;Right click and select the FireGPG menu option&lt;/li&gt;
&lt;li&gt;Click Encrypt &lt;/li&gt;
&lt;li&gt;Select the key that you created above and click OK&lt;/li&gt;
&lt;/ol&gt;
This will create an encrypted version of your post ready for you to submit.  

&lt;h3&gt;Decrypting Websites&lt;/h3&gt;
&lt;p&gt;When you want to view an encrypted post, FireGPG automatically sees it and prompts you to decrypt it. If you have tons and tons of posts, it's going to be very annoying to decrypt every message but it woudl work.&lt;/p&gt;  

&lt;h3&gt;Granting Access&lt;/h3&gt;
&lt;p&gt;The last part is just giving the private key to those who should be able to see your posts.  One obvious way would be this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;export the private key&lt;/li&gt;
&lt;li&gt;encrypt it with your friend's public key&lt;/li&gt;
&lt;li&gt;email it to him or her&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;External Links:&lt;/h3&gt;
&lt;a href="http://getfiregpg.org/"&gt;http://getfiregpg.org/&lt;/a&gt; - FireGPG Firefox plugin&lt;br/&gt;
&lt;a href="http://www.gnupg.org/"&gt;http://www.gnupg.org/&lt;/a&gt; - GPG website&lt;br/&gt;
&lt;a href="http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto.html"&gt;http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto.html&lt;/a&gt; - GPG HOWTO manuals&lt;br/&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1423472206769307982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1423472206769307982'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/07/encrypting-webpages-and-posts-with-gpg.html' title='Encrypting Webpages and Posts with GPG and FireGPG'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-3239818587890360467</id><published>2008-05-20T12:16:00.005-04:00</published><updated>2008-05-20T12:29:46.625-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='firewall'/><category scheme='http://www.blogger.com/atom/ns#' term='Sonicwall'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Setup Site-to-Site VPN With Sonicwall</title><content type='html'>&lt;p&gt;I've been using the SonicWall devices
for a little while now.  I started getting into them after a
recommendation from a friend and the TZ series has proven to be a good solution for small
 to medium sized businesses.&lt;/p&gt;

&lt;p&gt;You can find more information about
SonicWalls and the TZ series here but I'm going to go over how to
setup an IPSEC VPN between two tz180's using the Standard SonicOS
firmware. If you have the enhanced SonicOS, the steps are almost the same.&lt;/p&gt; 

&lt;h3&gt;Overview:&lt;/h3&gt;
&lt;UL&gt;
 &lt;LI&gt;set the unique names of each device&lt;/li&gt;
 &lt;LI&gt; configure subnet, dhcp, etc&lt;/li&gt;
 &lt;LI&gt; create a VPN policy to connect to the other&lt;/li&gt;
&lt;/UL&gt;
 NOTE: I'm not talking about setting passwords or security here -
it's assumed that you've already setup the environment.&lt;/br&gt;
 
&lt;h3&gt;Set the Unique Name on each device:&lt;/h3&gt;
&lt;OL&gt;
 &lt;LI&gt;log into the first device's web
 interface&lt;/li&gt;
 &lt;LI&gt;click on VPN on the left side&lt;/li&gt;
 &lt;LI&gt;under &amp;quot;Unique Firewall Identifier&amp;quot; create a name logical name like &amp;quot;USNY1&amp;quot;&lt;/li&gt;
 &lt;LI&gt;log into the second device's web
 interface&lt;/li&gt;
 &lt;LI&gt;click on VPN&lt;/li&gt;
 &lt;LI&gt;under &amp;quot;Unique Firewall
 Identifier&amp;quot; create another name like &amp;quot;USNY2&amp;quot; 
 &lt;/li&gt;
&lt;/OL&gt;
&lt;h3&gt;Configure Subnets for DHCP:&lt;/h3&gt;
&lt;OL&gt;
 &lt;LI&gt;log into the first device's web
 interface&lt;/li&gt;
 &lt;LI&gt;click Network &amp;gt; LAN&lt;/li&gt;
 &lt;LI&gt;set the SonicWall LAN IP to
 something like 10.0.1.1&lt;/li&gt;
 &lt;LI&gt;set the subnet mask to whatever is
 appropriate for your network like 255.255.255.0&lt;/li&gt;
 &lt;LI&gt;repeat the sames steps for device
 2 except make the ip and subnet different like 10.0.2.1
 and 10.0.2.0/255.255.255.0&lt;/li&gt;
 &lt;/li&gt;
&lt;/OL&gt;
&lt;h3&gt;Setup VPN Policy:&lt;/h3&gt;
 Assuming you have the following
configuration we can create the VPN policy:&lt;br/&gt;
 
&lt;blockquote&gt;
Site 1&lt;BR&gt;
Device Name: USNY1&lt;BR&gt;
Subnet: 10.0.1.0/24&lt;BR&gt;
&lt;br&gt;
Site 2&lt;br&gt;
Device Name: USNY2
&lt;BR&gt;Subnet: 10.0.2.0/24&lt;/blockquote&gt;

&lt;B&gt;Setup Device 1&lt;/B&gt; 
&lt;OL&gt;
 &lt;LI&gt;On device 1 click on VPN &amp;gt;
 Settings&lt;/li&gt;
 &lt;LI&gt;click Add under VPN Policies&lt;/li&gt;
 &lt;LI&gt;Fill out the information as shown
 below:&lt;BR&gt;
IPSec Keyring Mode: IKE using Shared Secret&lt;BR&gt;
Name: USNY2
 [name of your device 2]&lt;BR&gt;
IPSec Primary Gateway Name or Address:
 the public IP address of device 2&lt;BR&gt;IPSec Secondary Gateway or
 Name or Address: left blank in most cases
&lt;BR&gt;Shared Secret: Since
 you will only be typing it in twice and this is the basis of the tunnel's security, you should set it to be very
 strong. [&lt;A HREF="https://www.grc.com/passwords.htm"  &gt;https://www.grc.com/passwords.htm&lt;/A&gt;]
 Write it down!&lt;/li&gt;
 &lt;LI&gt;click the Specify destination
 networks below and click Add&lt;/li&gt;
 &lt;LI&gt;type in the subnet that device 2
 is controlling - in this example 10.0.2.0/24&lt;/li&gt;
 &lt;LI&gt;click OK &lt;/li&gt;
&lt;/OL&gt;
&lt;B&gt;Setup Device 2&lt;/B&gt;
[Almost same as above] 
&lt;OL&gt;
 &lt;LI &gt;On device 1 click on VPN &amp;gt;
 Settings&lt;/li&gt;
 &lt;LI&gt;click Add under VPN Policies&lt;/li&gt;
 &lt;LI&gt;Fill out the information as shown
 below:&lt;BR&gt;IPSec Keyring Mode: IKE using Shared Secret&lt;BR&gt;Name: USNY1
 [name of your device 1]&lt;BR&gt;IPSec Primary Gateway Name or Address:
 the public IP address of device 1&lt;BR&gt;IPSec Secondary Gateway or Name
 or Address: left blank in most cases&lt;BR&gt;Shared Secret: same as the
 password you generated above&lt;BR&gt;- click the Specify destination
 networks below and click Add&lt;BR&gt;- type in the subnet that device 1
 is controlling - in this example http://10.0.1.0/24&lt;BR&gt;-
 click OK&lt;BR&gt;&lt;BR&gt;
 &lt;/li&gt;
&lt;/OL&gt;
&lt;h3&gt;Check The logs:&lt;/h3&gt;
If you've configured everything
correctly, you should be able to watch the VPN tunnel negotiation
process from the event logs. 
&lt;OL&gt;
 &lt;LI&gt;click on Log &amp;gt; Categories&lt;/li&gt;
 &lt;LI&gt;check &amp;quot;Log all categories&amp;quot;
 - this will record VPN functions&lt;/li&gt;
 &lt;LI&gt;under Log click &amp;quot;View&amp;quot;&lt;/li&gt;
 &lt;LI&gt;review the logs for the following
 events:
&lt;BR&gt;SENDING&amp;gt;&amp;gt;&amp;gt;&amp;gt; ISAKMP OAK INFO (InitCookie
 0x69c45089cc845af4, MsgID: 0x26D85F88) *(HASH,
 NOTIFY:DPD_ACK)&lt;BR&gt;RECEIVED&amp;lt;&amp;lt;&amp;lt; ISAKMP OAK INFO (InitCookie
 0x69c45089cc845af4, MsgID: 0x3AAF690F) *(HASH, NOTIFY:DPD_REQUEST)&lt;BR&gt;&lt;BR&gt;
 &lt;/li&gt;
&lt;/OL&gt;

&lt;h3&gt;Troubleshooting:&lt;/h3&gt;
&lt;B&gt;Phase 2 or
Algorithm's Don't Match&lt;/B&gt;&lt;BR&gt;If you see a log with this kind of
message it is most likely caused by different encryption under the
Phase 2 settings.  Go back and make sure they match exactly. 

&lt;br/&gt;&lt;br/&gt;&lt;B&gt;IKE
Initiator: Proposed IKE ID mismatch&lt;/B&gt;&lt;BR&gt;This message is most
likely caused by the firewall names being mismatched.&amp;nbsp; Make sure
that under VPN settings, the name is set to something unique and the
VPN policy on each device has each other's appropriate name.
&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Dynamic IP's&lt;/B&gt;&lt;BR&gt;If you're connecting two sites with
dynamic IP addresses, I've read that you need to check the
&amp;quot;Aggressive Mode&amp;quot; type of VPN but maybe someone can confirm
that. 
 
&lt;OL&gt;
 &lt;LI VALUE=1&gt;click VPN and click
 configure on the tunnel you created&lt;/li&gt;
 &lt;LI&gt;under proposals change &amp;quot;Exchange&amp;quot;
 to Aggressive mode&lt;/li&gt;
 &lt;LI&gt;click the Advanced tab&lt;/li&gt;
 &lt;LI&gt;click Enable Keep Alive and Try to
 bring up all possible Tunnels&lt;/li&gt;
 &lt;LI&gt;click OK&lt;/li&gt;
 &lt;/OL&gt;

&lt;B&gt;Other&lt;/B&gt;&lt;/br&gt; 
If you're getting anything else check
out the log events reference guide here  -&lt;/br&gt;
&lt;A HREF="http://www.sonicwall.com/downloads/Log_Event_Reference_Guide.pdf"&gt;http://www.sonicwall.com/downloads/Log_Event_Reference_Guide.pdf&lt;/A&gt;.&lt;br&gt;

&lt;h3&gt;External Links:&lt;/h3&gt;
&lt;a href="http://www.sonicwall.com"&gt;Sonicwall.com&lt;/a&gt; - Had to put a link to this&lt;br/&gt;
&lt;A HREF="http://www.sonicwall.com/downloads/Log_Event_Reference_Guide.pdf"&gt;http://www.sonicwall.com/downloads/Log_Event_Reference_Guide.pdf&lt;/A&gt; - great guide for easy event log decoding&lt;br/&gt;
&lt;A HREF="https://www.grc.com/passwords.htm"  &gt;https://www.grc.com/passwords.htm&lt;/A&gt; - a good strong online password generator for one time passwords&lt;/br&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/3239818587890360467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/3239818587890360467'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/05/setup-site-to-site-vpn-with-sonicwall.html' title='Setup Site-to-Site VPN With Sonicwall'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-6036894474368994734</id><published>2008-05-12T20:06:00.003-04:00</published><updated>2008-05-12T20:46:10.489-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='group policy'/><category scheme='http://www.blogger.com/atom/ns#' term='users'/><category scheme='http://www.blogger.com/atom/ns#' term='windows vista'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server 2003'/><title type='text'>Clear Out The Last Login From Being Displayed</title><content type='html'>&lt;p&gt;Clearing out the last logged on user from the login screen is is a very simple task that I like to set on my domains and as the local policies for workgroup computers.  It helps out in two different ways: first as a matter of security because an attacker walking up to the computer doesn't necessarily know a user name to log in with and second it helps to teach the user what their user name is because we all know if we don't type it in every day, we forget it.  [see saved passwords]&lt;/p&gt;

&lt;h3&gt;Overview&lt;/h3&gt;
&lt;p&gt;For those of you that know mostly what you're doing and just need a reminder, here it is.  The policy setting you need to change is located under:
&lt;ul&gt;
&lt;li&gt;Computer Configuration &gt; Windows Settings &gt; and Security Settings &gt; Local Policies &gt;Security Options&lt;/li&gt;
&lt;li&gt;Edit the "Interactive Logon: Do not display last user name in logon screen" entry and check "define this setting" and "enabled."&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;On a Windows Domain Controller&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;Under Administrative Tools open the Group Policy Management &lt;/li&gt;
&lt;li&gt; Find the group policy you want to change select it, right click, and choose "Edit".&lt;/li&gt;
&lt;li&gt;Expand Computer Configuration, Windows Settings, and Security Settings&lt;/li&gt;
&lt;li&gt;Expand Local Policies node, and then click Security Options.&lt;/li&gt;
&lt;li&gt;Edit the "Interactive Logon: Do not display last user name in logon screen" entry and check "define this setting" and "enabled."&lt;/li&gt;
&lt;li&gt;The setting will take affect on the next time the clients reboots.  As a reminder, it can take varying amounts of time for group policies to be applied. &lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;On a Local Vista Machine&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;In the Control Panel, click System and Maintenance and open the Administrative Tools&lt;/li&gt;
&lt;li&gt;Open the Local Security Policy .&lt;/li&gt;
&lt;li&gt;Expand Computer Configuration, Windows Settings, and Security Settings&lt;/li&gt;
&lt;li&gt;Expand Local Policies node, and then click Security Options.&lt;/li&gt;
&lt;li&gt;Edit the "Interactive Logon: Do not display last user name in logon screen" entry and check "define this setting" and "enabled."&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;External Links:&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/310125"&gt;http://support.microsoft.com/kb/310125&lt;/a&gt; - Link to the MS KB article&lt;br&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6036894474368994734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6036894474368994734'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/05/clear-out-last-login-from-being.html' title='Clear Out The Last Login From Being Displayed'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-4568713519544937651</id><published>2008-04-27T15:32:00.009-04:00</published><updated>2008-04-27T15:53:42.149-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LogMeIn'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>How To Use LogMeIn with Linux</title><content type='html'>&lt;p&gt;My company uses LogMeIn [&lt;a href="http://www.logmein.com"&gt;www.logmein.com&lt;/a&gt;] for remote support for some of their clients.  One of the problems for me was that the company doesn't support Linux, officially.  I've talked to support twice, one saying that they are working on Linux support and the other saying they don't and there are no plans to.&lt;/p&gt;  

&lt;p&gt;&lt;b&gt;The problem:&lt;/b&gt; If you have the wrong version of Java installed and you go to remote control a remote system using LogMeIn, every time you click on an area of the screen it refreshes the entire page.  Every mouse movement reloads the page to update what it think you just did.  Also keyboard input is not visible until you actually click.  &lt;/p&gt;

&lt;p&gt;&lt;b&gt;The solution:&lt;/b&gt;I don't have a perfect solution, but this will "almost always" work at least for Ubuntu systems and I've tested it on Gusty and Hardy.  The key is installing the specific version of Java that LogMeIn supports along with the appropriate Firefox plugins. It took a lot of trial and error but I finally found the perfect combination of java versions and plugins. &lt;/P&gt; 

&lt;p&gt;The following is the output from a dkpg --get-selections | grep "java" on my system: &lt;/p&gt;
&lt;textarea rows="14" cols="66"&gt;
java-common     install
libhsqldb-java     install
libjaxp1.3-java     install
libjline-java     install
libservlet2.3-java    install
libservlet2.4-java    install
libxalan2-java     install
libxerces2-java     install
openoffice.org-java-common   install
sun-java5-bin     install
sun-java5-fonts     install
sun-java5-jre     install
sun-java5-plugin    install
&lt;/textarea&gt;
&lt;a href="/download/java.cfg"&gt;Download file java.cfg&lt;/a&gt;

&lt;p&gt;So, looking at my &lt;a href="2007/09/reinstall-everything-in-ubuntu.html"&gt;other entry&lt;/a&gt; about re-installing software from a dpkg output, all you need to do is copy the above information and run the following command:&lt;/p&gt;
&lt;textarea rows="4" cols="66"&gt;
sudo dpkg --set-selections &lt; java.cfg
sudo dselect
&lt;/textarea&gt;

&lt;p&gt;This will install all of the above packages and hopefully get LogMeIn to work for you. Note: I haven't tested to see whether some of these library packages are extra so use at your own risk.&lt;/p&gt;

&lt;p&gt;Let me know if you have any input on other versions of Linux. &lt;a href="/?page=contact"&gt;Email&lt;/a&gt;

&lt;h3&gt;External Links&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.logmein.com"&gt;www.logmein.com&lt;/a&gt; - A good tool oriented at providing remote support with a concentration on security  &lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/4568713519544937651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/4568713519544937651'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/04/how-to-use-logmein-with-linux.html' title='How To Use LogMeIn with Linux'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-3831844033792249837</id><published>2008-03-23T20:29:00.005-04:00</published><updated>2008-03-23T20:40:40.427-04:00</updated><title type='text'>Cheat Sheets</title><content type='html'>&lt;p&gt;Just a quick one today - I love cheat sheets especially when I'm debugging someone else's code.  The following are a list from &lt;a href="http://www.ILoveJackDaniels.com"&gt;ILoveJackDaniels.com&lt;/a&gt; and one other from &lt;a href="http://www.johnbokma.com"&gt;johnbokma.com&lt;/a&gt; that have been very useful to me lately.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ilovejackdaniels.com/cheat-sheets/sql-server-cheat-sheet/"&gt;SQL Server Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ilovejackdaniels.com/cheat-sheets/regular-expressions-cheat-sheet/"&gt;Regular Expressions Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ilovejackdaniels.com/cheat-sheets/php-cheat-sheet/"&gt;PHP Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://johnbokma.com/perl/perl-quick-reference-card.html"&gt;Perl Cheat Sheet &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/3831844033792249837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/3831844033792249837'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/03/regular-expression-cheat-sheet.html' title='Cheat Sheets'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-6341295498919344328</id><published>2008-02-29T19:39:00.003-05:00</published><updated>2008-03-04T10:42:36.848-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='system administration'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='dhcp'/><title type='text'>DHCP MAC Filtering on Windows</title><content type='html'>&lt;p&gt;I was having dinner with some of the IT guys from a client I work for and I brought up the suggestion that they do MAC filtering for all of their network devices as an added security measure.  The only problem was they were using Windows Server 2003 for the DHCP server which, natively, does not support MAC filtering. That's where the DHCP Server Callout DLL comes in.&lt;/p&gt;
&lt;p&gt;This is a DLL that was created by the Microsoft DHCP team to allow access to certain parts of DHCP that were not before.  In this case, MAC filtering. &lt;/p&gt;
&lt;h3&gt;Why filter MAC addresses&lt;/h3&gt;
&lt;p&gt;  The idea of DHCP MAC filtering is that when a foreign system tries to connect to your network, they are not given an IP address unless their network card is on the list of allowed systems.  In order for them to get on the network, they have to see a member of the IT department. &lt;/p&gt;
&lt;p&gt;This protects a guest from accidentally spreading infections of spyware, viruses, or trojans not to mention it helps the IT department keep track of who and what goes on the network.  [Please notice how I say accidentally because MAC spoofing would easily circumvent this security measure]&lt;/p&gt;
&lt;h3&gt;Install The Callout DLL&lt;/h3&gt;
&lt;p&gt;  Overview:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt; Install the DLL&lt;/li&gt;
  &lt;li&gt; Create the necessary registry keys&lt;/li&gt;
  &lt;li&gt; Populate the list of allowed or denied MAC addresses&lt;/li&gt;
  &lt;li&gt;Restart the DHCP&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Download and Install&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt; Download and install the files: &lt;a href="/download/CalloutMacFilter.zip"&gt;Download&lt;/a&gt;&lt;br /&gt;
    The MACFilterCallout.dll was installed to %SystemRoot%\system32 along with a file named SetupDHCPMacFilter.rtf.This includes very basic instructions.&lt;/li&gt;
  &lt;li&gt; Run the MacFilterCallout.msi and go through the steps to install it.  All this does is extract the two files to your %systemroot%\system32\ folder. &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Create the registry keys:&lt;/h3&gt;
&lt;p&gt;Choose one of two ways:&lt;br /&gt;
&lt;strong&gt;Option 1:&lt;/strong&gt; Manually create the following registry keys:&lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="0"&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;Key Name&lt;/p&gt;&lt;/td&gt;
    &lt;td width="120"&gt;&lt;p&gt;Key Type&lt;/p&gt;&lt;/td&gt;
    &lt;td width="324"&gt;&lt;p&gt;Description&lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutDlls&lt;/p&gt;&lt;/td&gt;
    &lt;td width="120"&gt;&lt;p&gt;REG_MULTI_SZ&lt;/p&gt;&lt;/td&gt;
    &lt;td width="324"&gt;&lt;p&gt;The location of the MacFilterCallout.dll&lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutEnabled&lt;/p&gt;&lt;/td&gt;
    &lt;td width="120"&gt;&lt;p&gt;DWORD&lt;/p&gt;&lt;/td&gt;
    &lt;td width="324"&gt;&lt;p&gt;0 = Disable MacFilterCallout&lt;br /&gt;
      1 = Enable MacFilterCallout&lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutErrorLogFile&lt;/p&gt;&lt;/td&gt;
    &lt;td width="120"&gt;&lt;p&gt;REG_MULTI_SZ &lt;/p&gt;&lt;/td&gt;
    &lt;td width="324"&gt;&lt;p&gt;Log path. If this registry key is    not specified, callout dll will output errors %WINDIR%\System32\Log.txt &lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutInfoLogFile&lt;/p&gt;&lt;/td&gt;
    &lt;td width="120"&gt;&lt;p&gt;REG_MULTI_SZ &lt;/p&gt;&lt;/td&gt;
    &lt;td width="324"&gt;&lt;p&gt;Info log path. If this key is    not present, no information messages will be logged. &lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutMACAddressListFile&lt;/p&gt;&lt;/td&gt;
    &lt;td width="120"&gt;&lt;p&gt;REG_MULTI_SZ &lt;/p&gt;&lt;/td&gt;
    &lt;td width="324"&gt;&lt;p&gt;This is the name and location of the MAC filtering list you're going to be creating next. &lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Option 2&lt;/strong&gt;: Merge the keys that I've made for you: &lt;a href="/download/CalloutMacFilterReg.zip"&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download the file above, extract the contents, and merge the registry file that I created for you.&lt;/p&gt;
&lt;p&gt;Here are the values the .REG file contains. Make sure they match up to your environment. &lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="0"&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;Key Name&lt;/p&gt;&lt;/td&gt;
    &lt;td width="239"&gt;&lt;p&gt;Value&lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutDlls&lt;/p&gt;&lt;/td&gt;
    &lt;td width="239"&gt;&lt;p&gt;C:\windows\system32\MacFilterCallout.dll&lt;br /&gt;
    &lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutEnabled&lt;/p&gt;&lt;/td&gt;
    &lt;td width="239"&gt;&lt;p&gt;1&lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutErrorLogFile&lt;/p&gt;&lt;/td&gt;
    &lt;td width="239"&gt;&lt;p&gt;C:\windows\system32\MacFilterCallout.log&lt;br /&gt;
    &lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutInfoLogFile&lt;/p&gt;&lt;/td&gt;
    &lt;td width="239"&gt;&lt;p&gt;C:\windows\system32\MacFilterCalloutInfo.log&lt;br /&gt;
    &lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width="175"&gt;&lt;p&gt;CalloutMACAddressListFile&lt;/p&gt;&lt;/td&gt;
    &lt;td width="239"&gt;&lt;p&gt;C:\windows\system32\MAClist.txt&lt;br /&gt;
    &lt;/p&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
NOTE: If you are not using C:\windows as your windows directory, you will have to edit the registry to fit your system.

&lt;h3&gt;Create the MAC list&lt;/h3&gt;
&lt;p&gt;As I showed above, the key CalloutMACAddressListFile points to a location where you need to create a specially formatted text file that contacts which MAC addresses to filter.You can only choose to allow a certain set of MAC's or DENY them.  Here is the format of that file:&lt;/p&gt;
&lt;p&gt;
  &lt;label&gt;
  &lt;textarea name="textarea2" id="textarea2" cols="45" rows="5"&gt;MAC_ACTION = {ALLOW / DENY}
0cdc1c6d1266
05dc2de01023
...&lt;/textarea&gt;
  &lt;/label&gt;
&lt;/p&gt;
&lt;p&gt;Note: You must include the { }'s around either the ALLOW or DENY action&lt;/p&gt;
&lt;h3&gt;Help Populating the MAC list&lt;/h3&gt;
&lt;p&gt;  If you are going to use the ALLOW action you're most likely going to want to find all of the valid MAC addresses on the network. Here are some suggestions for ways you can do this:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Nmap + ARP&lt;/strong&gt;- with the command nmap -PR 192.168.0.0/24 or whatever your network is, it will do an arp scan of the network. Then doing an &amp;quot;arp -a &amp;gt; arptable.txt&amp;quot; gives you tab delimited file perfect for opening as a spread sheet and extracting the list of MAC addresses you need to use&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;DHCP logs&lt;/strong&gt; - use your existing DHCP server logs [usually under c:\windows\system32\dhcp\] to find all the MAC addresses in the last week. &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Switch logs&lt;/strong&gt; - if you have a good enough switch, it will keep track of which MAC addresses are using the devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: Obviously be careful how you create this list. If the CEO of the company has a laptop that you happened to forget to put onto the allow list, he may not be happy with your new security measure. &lt;/p&gt;
&lt;h3&gt;Want to know what the MSI Installer REALLY does?&lt;/h3&gt;
&lt;p&gt;  One major pet peeve of mine is when you download a program and it installs without telling you what it did. That's how this MSI works.  Here's  what it does:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;   copies the dll to %system%/system32/&lt;/li&gt;
  &lt;li&gt; copies the rtf to %system%/system32/&lt;/li&gt;
  &lt;li&gt; registers BOTH the dll and the rtf as shared DLL's&lt;/li&gt;
  &lt;li&gt; adds some interesting registry keys like on named &amp;quot;CompleteMacLevel&amp;quot; that I don't know what it does. &lt;br /&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I know that may not help anything but it makes me feel a little better. &lt;/p&gt;
&lt;h3&gt;External Links&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/teamdhcp/archive/2007/10/03/dhcp-server-callout-dll-for-mac-address-based-filtering.aspx"&gt;http://blogs.technet.com/teamdhcp/archive/2007/10/03/dhcp-server-callout-dll-for-mac-address-based-filtering.aspx&lt;/a&gt; - DHCP server team's blog with the original article&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6341295498919344328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6341295498919344328'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2008/02/dhcp-mac-filtering-on-windows.html' title='DHCP MAC Filtering on Windows'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-1460490436512672753</id><published>2007-12-17T18:24:00.000-05:00</published><updated>2007-12-17T12:33:59.525-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='active directory'/><category scheme='http://www.blogger.com/atom/ns#' term='system administration'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='psexec'/><title type='text'>Allow Non-Admins To Update Firefox</title><content type='html'>&lt;p&gt;One of my clients had the problem of users being excessively prompted to update Firefox&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;A new version of Firefox is available:&lt;br&gt;
    It is strongly recommended that you upgrade Firefox as soon as possible&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt; It then shows the &amp;quot;Download and Install Now&amp;quot; button  but eventually fails when a normal users runs it because they are not local admins. This prompt repeats over and over until IT gets a phone call about how they hate Firefox and are going to go back to using IE. &lt;/p&gt;
&lt;p&gt;It's actually as simple as you may think. If you change &amp;quot;C:\Program Files\Mozilla Firefox&amp;quot; to allow &amp;quot;YOURDOMAIN\Domain Users&amp;quot; write access, a normal user can update Firefox. &lt;/p&gt;
&lt;p&gt;You can go around to each workstation but where is the fun in that? The builtin program &amp;quot;cacls&amp;quot; with the help of PSExec will let you update all of the computers on a site. This idea was put together by my friend with a little tweaking on my part. Basically you just create a list of computers, and then run the command remotely on each one. &lt;/p&gt;
&lt;h3&gt;Create a List of Computers&lt;/h3&gt;
&lt;p&gt;You can do this however you'd like but for me I like to export a list of computers them from ADUC. This will only help if your computers are in the same folder or OU. You could always just write down the names of the computers but that's boring. &lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Open Active Directory Users and Computers&lt;/li&gt;
  &lt;li&gt;From the menu bar choose View &amp;gt; Add / Remove Columns&lt;/li&gt;
  &lt;li&gt;Remove all columns that are not Name [Type, Description] and click OK&lt;/li&gt;
  &lt;li&gt;Open the folder or OU that contains the computers you would like to update&lt;/li&gt;
  &lt;li&gt;Right-click on the folder or OU and choose &amp;quot;Export List...&amp;quot;&lt;/li&gt;
  &lt;li&gt;Save the file as "computer_list.txt" somewhere logical to you&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Create the Script&lt;/h3&gt;
&lt;p&gt;Here is the entire command all together.  Hopefully it's obvious to change the YOURDOMAIN\ADMIN_ACCOUNT to an account that is a member of the Domain Admins group and change YOURDOMAIN\Domain Users to whatever your domain is.&lt;/p&gt;
&lt;p&gt;
  &lt;textarea name="textarea" id="textarea" cols="75" rows="2"&gt;psexec @computer_list.txt -u YOURDOMAIN\ADMIN_ACCOUNT cacls “%SYSTEMDRIVE%\Program Files\Mozilla Firefox” /E /G “YOURDOMAIN\Domain Users”:W&lt;/textarea&gt;
&lt;/p&gt;
&lt;p&gt;You will want to put this into a batch file because you'll have to run it again or on a regular basis if some of your computers are turned off or not on the network when you're running the script. &lt;/p&gt;
&lt;h3&gt;External Links&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://woodruffrc.com/allow-non-admin-users-to-update-firefox.html/trackback"&gt;http://woodruffrc.com/allow-non-admin-users-to-update-firefox.html/trackback&lt;/a&gt; - link to my friend's website who actually did the testing and put everything together&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1460490436512672753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/1460490436512672753'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2007/12/allow-non-admins-to-update-firefox.html' title='Allow Non-Admins To Update Firefox'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-897386076053618520</id><published>2007-12-16T14:11:00.000-05:00</published><updated>2007-12-17T14:49:16.133-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='OMA'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange'/><category scheme='http://www.blogger.com/atom/ns#' term='OWA'/><title type='text'>Can't Force SSL With Outlook Mobile Access</title><content type='html'>I just learned today that you cannot force the user of SSL on any part of an Exchange enabled website in IIS.  You can still use SSL but apparently turning on the "Require Secure Channel(SSL)" option makes OMA not work. Here was the error I was getting:

&lt;blockquote&gt;If you have recently changed your password, the system may not yet have completed the change. Please wait a short time and try again. If this is not the case, your Exchange server mailbox has not been created. Please access your account via Microsoft Outlook or Microsoft Outlook Web Access to create your user mailbox. Please contact your system administrator for additional assistance.
&lt;/blockquote&gt;

I have to admit I've only set up the OMA site a half dozen times so there may be something out there that explains this issue better than I but I've found a bunch of websites that support this claim.  One site makes a reference to a KB article that no longer exists.

&lt;h3&gt;The Steps&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Open the IIS Management Console on the back-end Exchange 2003 server.&lt;/li&gt;&lt;li&gt;Right click the Exchweb virtual directory under the default Web site, and then click Properties.&lt;/li&gt;&lt;li&gt;Click the Directory Security tab.&lt;/li&gt;&lt;li&gt;Click Edit in the Secure Communications area.&lt;/li&gt;&lt;li&gt;Click to clear the "Require secure channel (SSL)" check box, and then click OK for all windows.
&lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;But I To Force SSL&lt;/h3&gt;
The problem remains "What if you actually want to force SSL?" I had a hard enough time trying to have 50 users understand what the "S" in HTTPS meant.



What I did was create a second site that was Exchange enabled.  This site I forced SSL while the first site I left it optional.  I sent an update to the end users explaining that there was a new mail website  "https://www.website.com/mail" and made a few minor modifications [adding company logo] so that they could tell the difference in the hopes that they would think that new = upgrade.  This way, if they used http instead of https, I could redirect them automatically.
&lt;h3&gt;External Links&lt;/h3&gt;&lt;a href="http://www.petri.co.il/forums/showthread.php?t=10208"&gt;http://www.petri.co.il/forums/showthread.php?t=10208&lt;/a&gt; - Daniel Petri's website forum

&lt;a href="http://www.webservertalk.com/archive128-2004-3-166297.html"&gt;http://www.webservertalk.com/archive128-2004-3-166297.html&lt;/a&gt; - Forum article that makes a reference to the problem.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/897386076053618520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/897386076053618520'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2007/12/cant-force-ssl-with-outlook-mobile.html' title='Can&apos;t Force SSL With Outlook Mobile Access'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-2721554146385905809</id><published>2007-12-10T17:57:00.000-05:00</published><updated>2007-12-10T14:14:15.668-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='active directory'/><category scheme='http://www.blogger.com/atom/ns#' term='system administration'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>Find Last Logon in Active Directory [VBScript]</title><content type='html'>&lt;p&gt;I found this script from the site www.rlmueller.net which has a ton of other handy scripts that are free anyone to hack as long as you don't blame him for screwing something up. &lt;/P&gt;

&lt;p&gt;This script searches through each domain controller of whichever domain your computer is a member of and outputs the "lastlogon" attribute of the account.  Very useful in finding old accounts that are unused.  Just be careful because some service accounts that you may have created on the domain will not show a lastlogon event at all&lt;/p&gt;
&lt;textarea cols="75" rows="50"&gt;
' LastLogonTimeStamp.vbs
' VBScript program to determine when each user in the domain last logged
' on. Domain must be at Windows Server 2003 Functional Level.
'
' ----------------------------------------------------------------------
' Copyright (c) 2007 Richard L. Mueller
' Hilltop Lab web site - http://www.rlmueller.net
' Version 1.0 - March 24, 2007
' Version 1.1 - July 6, 2007 - Modify how IADsLargeInteger interface
'                              is invoked.
'
' The lastLogonTimeStamp attribute is Integer8, a 64-bit number
' representing the date as the number of 100 nanosecond intervals since
' 12:00 am January 1, 1601. This value is converted to a date. The last
' logon date is in UTC (Coordinated Univeral Time). It must be adjusted
' by the Time Zone bias in the machine registry to convert to local
' time.
'
' You have a royalty-free right to use, modify, reproduce, and
' distribute this script file in any way you find useful, provided that
' you agree that the copyright owner above has no warranty, obligations,
' or liability for such use.

Option Explicit

Dim objRootDSE, adoConnection, adoCommand, strQuery
Dim adoRecordset, strDNSDomain, objShell, lngBiasKey
Dim lngBias, k, strDN, dtmDate, objDate
Dim strBase, strFilter, strAttributes, lngHigh, lngLow

' Obtain local Time Zone bias from machine registry.
Set objShell = CreateObject("Wscript.Shell")
lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _
    &amp; "TimeZoneInformation\ActiveTimeBias")
If (UCase(TypeName(lngBiasKey)) = "LONG") Then
    lngBias = lngBiasKey
ElseIf (UCase(TypeName(lngBiasKey)) = "VARIANT()") Then
    lngBias = 0
    For k = 0 To UBound(lngBiasKey)
        lngBias = lngBias + (lngBiasKey(k) * 256^k)
    Next
End If
Set objShell = Nothing

' Determine DNS domain from RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
Set objRootDSE = Nothing

' Use ADO to search Active Directory.
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection

' Search entire domain.
strBase = "&lt;LDAP://" &amp; strDNSDomain &amp; "&gt;"

' Filter on all user objects.
strFilter = "(&amp;(objectCategory=person)(objectClass=user))"

' Comma delimited list of attribute values to retrieve.
strAttributes = "distinguishedName,lastLogonTimeStamp"

' Construct the LDAP syntax query.
strQuery = strBase &amp; ";" &amp; strFilter &amp; ";" &amp; strAttributes &amp; ";subtree"

' Run the query.
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 60
adoCommand.Properties("Cache Results") = False
Set adoRecordset = adoCommand.Execute

' Enumerate resulting recordset.
Do Until adoRecordset.EOF
   ' Retrieve attribute values for the user.
    strDN = adoRecordset.Fields("distinguishedName").Value
    ' Convert Integer8 value to date/time in current time zone.
    On Error Resume Next
    Set objDate = adoRecordset.Fields("lastLogonTimeStamp").Value
    If (Err.Number &lt;&gt; 0) Then
        On Error GoTo 0
        dtmDate = #1/1/1601#
    Else
        On Error GoTo 0
        lngHigh = objDate.HighPart
        lngLow = objDate.LowPart
        If (lngLow &lt; 0) Then
            lngHigh = lngHigh + 1
        End If
        If (lngHigh = 0) And (lngLow = 0 ) Then
            dtmDate = #1/1/1601#
        Else
            dtmDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) _
                + lngLow)/600000000 - lngBias)/1440
        End If
    End If
    ' Display values for the user.
    If (dtmDate = #1/1/1601#) Then
        Wscript.Echo strDN &amp; ";Never"
    Else
        Wscript.Echo strDN &amp; ";" &amp; dtmDate
    End If
    adoRecordset.MoveNext
Loop

' Clean up.
adoRecordset.Close
adoConnection.Close
Set adoConnection = Nothing
Set adoCommand = Nothing
Set adoRecordset = Nothing
Set objDate = Nothing
&lt;/textarea&gt;

&lt;p&gt;Save this text as a .vbs file and run it something like this:&lt;br/&gt;
&lt;textarea cols="75" rows="2"&gt;
cscript LastLogon.vbs &gt; LogonTimes.txt
&lt;/textarea&gt;&lt;/p&gt;
&lt;p&gt;
External Link:&lt;br/&gt;
&lt;a href="http://www.rlmueller.net/Last%20Logon.htm"&gt;http://www.rlmueller.net/Last Logon.htm&lt;/a&gt; - the site which I found this script and where you should go if you like it.
&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/2721554146385905809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/2721554146385905809'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2007/12/find-last-logon-in-active-directory.html' title='Find Last Logon in Active Directory [VBScript]'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-6610147211332638785</id><published>2007-11-15T13:15:00.000-05:00</published><updated>2007-11-15T13:30:25.443-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PVX'/><category scheme='http://www.blogger.com/atom/ns#' term='support'/><category scheme='http://www.blogger.com/atom/ns#' term='Polycom'/><category scheme='http://www.blogger.com/atom/ns#' term='Polycom PVX 804'/><category scheme='http://www.blogger.com/atom/ns#' term='windows vista'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='8.0.4'/><title type='text'>Polycom PVX Full Vista Support 8.0.4</title><content type='html'>&lt;p&gt;After attempting to install the most recent version of Polycom PVX software on a brand new Windows Vista machine, I found that there were horizontal lines all over the picture and some major lag. I looked through all the support documents and tested with two other cameras.&lt;/p&gt;

&lt;p&gt;Finally I gave up and called Polycom Support [1-888-4143]. They explained that there was a new version that wasn't yet public. Great! So here is the currently super secret link.&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.polycom.com/support/pvx804"&gt;www.polycom.com/support/pvx804&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;From the &lt;a href="http://downloads.polycom.com/video/pvx/804/pvx_8_0_4_release_notes.pdf"&gt;release notes&lt;/a&gt;:
&lt;blockquote&gt;PVX 8.0.4 delivers the following upgrades and modifications for PVX users: &lt;ul&gt;&lt;li&gt;Support for Microsoft Vista Business and Enterprise editions&lt;/li&gt;
&lt;li&gt;Enhanced support for dual core Intel and AMD processors&lt;/li&gt;
&lt;li&gt;Fixes for priority field issues (see release notes for details)&lt;/li&gt;
&lt;li&gt;Upgrade support is provided in English only &lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;
&lt;/p&gt;
&lt;h3&gt;External Links:&lt;/h3&gt;&lt;a href="http://www.polycom.com/support/pvx804"&gt;www.polycom.com/support/pvx804&lt;/a&gt; - the site that I'm talking about
&lt;a href="http://downloads.polycom.com/video/pvx/804/PVX_8_0_4_4035.zip"&gt;http://downloads.polycom.com/video/pvx/804/PVX_8_0_4_4035.zip&lt;/a&gt; - the direct link to the newest software</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6610147211332638785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6610147211332638785'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2007/11/polycom-pvx-full-vista-support-804.html' title='Polycom PVX Full Vista Support 8.0.4'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-6455130309293299797</id><published>2007-11-12T16:11:00.000-05:00</published><updated>2007-11-12T16:16:23.831-05:00</updated><title type='text'>How To Easily Migrate Public Folders Using Outlook</title><content type='html'>&lt;p&gt;This is a really simple way of moving public folders from one Exchange server to another that doesn't involving using Microsoft's &lt;a href="http://support.microsoft.com/kb/822895"&gt;PFMigrate Tool&lt;/a&gt;. That doesn't mean that this is the best way but when you have a small site or even a big complicated site that you don't want to go through the hassle configuring each site to talk to one another, this comes in handy. The way that I outline below does not take into account any permission structure so it will need to be recreated after the migration. Here is an over view:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Copy the source public folders to an individual mailbox folder&lt;/li&gt;
  &lt;li&gt;Export the folder to a PST&lt;/li&gt;
  &lt;li&gt;Import the PST into a target mailbox&lt;/li&gt;
  &lt;li&gt;Copy the folder to the existing public folders of the target environment&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Setup:&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;Find the file size of the information store so that you know how much information you'll be transferring.  
    &lt;ol&gt;
      &lt;li&gt;You can do this by opening outlook that is connected to the Exchange server, &lt;/li&gt;
      &lt;li&gt;right click on the public folder you want to migrate, choose properties.  &lt;/li&gt;
      &lt;li&gt;Then click the &amp;quot;Folder Size&amp;quot; button in the lower right corner.  Make note of the &amp;quot;Total Size:&amp;quot;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;    Choose a migration mailbox that you will use on the source and target [this can be your personal one if you want]&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Log onto the source exchange server and make sure that the mailbox supports the size of the public folders &lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Do the same on the target Exchange server&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;while you're logged in, also make sure that you've been granted rights to add files to the public folder&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Export From The Source:
  &lt;br/&gt;
&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;  Connect to the source Exchange server from Outlook&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;create a folder in your personal mailbox that will store a copy of the public folders&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Open the public folders you want to migrate&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;right click the folder you want to copy and choose &amp;quot;Copy FolderName&amp;quot;&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Choose the folder in the personal mailbox that you created previously&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;After the copy is complete, go to File&amp;gt;Import and Export&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Choose Export to a file and then Personal Folder File&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Select the personal folder that now contains all of the public folders and click Next&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Choose a location to export it to and click finish&lt;br /&gt;
  &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;Import To The Target:
  &lt;br /&gt;
&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;Create a new profile in Outlook and connect to the target Exchange server&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;go to File&amp;gt;Import and Export &lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Choose &amp;quot;Import from another program or file&amp;quot;&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Select Personal Folder File and click next&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Choose the PST that you just created and import the files into your local mailbox under a sub folder somewhere&lt;br /&gt;
    &lt;/li&gt;
  &lt;li&gt;Drag the folder that you just imported into the public folders of the target exchange server&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;External Links:&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/822895"&gt;http://support.microsoft.com/kb/822895&lt;/a&gt; - PFMigrate - the Microsoft supported way of migrating public folders. This is great tool that pays more attention to detail than the way that I did it&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6455130309293299797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/6455130309293299797'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2007/11/how-to-easily-migrate-public-folders.html' title='How To Easily Migrate Public Folders Using Outlook'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-30027349086271950</id><published>2007-11-09T11:06:00.002-05:00</published><updated>2008-07-31T10:54:28.265-04:00</updated><title type='text'>Automatically Create an Outlook Profile on Logon</title><content type='html'>&lt;p&gt;I put together this process during a string of Exchange migration projects and it's really come in handy.  There are hundreds of scenarios why you would want to automatically create the outlook profiles on logon. 
&lt;/p&gt;
&lt;p&gt;One  would be you are the system administrator of 100's of users and you're adding a new Exchange server. Rather than going around to explain to everyone the exchange server to type in to connect to, or having someone go around to 1000 workstations, you can script it like below. &lt;/p&gt;
&lt;p&gt;Another would be as a sys admin, you have users that are switching workstations often and you're tired of all the calls complaining &amp;quot;My email doesn't work on so-and-so's machine&amp;quot; because they don't know how to set up their Outlook profiles. &lt;/p&gt;
&lt;p&gt;Here's an overview of the process:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create a PRF that has all of the settings you want for the end users &lt;/li&gt;
  &lt;li&gt;Create a logon script and apply it through a group policy to the end users&lt;/li&gt;
  &lt;li&gt;The script runs at user logon and reads a registry entry to see if it has ever ran before [if it has then it quits]&lt;/li&gt;
  &lt;li&gt;If this is the first time, it imports the PRF with all of the settings for the company automatically&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Creating the PRF:&lt;/h3&gt;
&lt;p&gt;A PRF is a file that stores all the information for Outlook to create a profile for a user. There is no way to set the exchange server or which mailboxes to open through group policy so you have to rely on PRF files for administration and installation. &lt;/p&gt;
&lt;p&gt;In this example, all I'm doing is pointing out where the exchange server is and that cached mode should be enabled. When you look at the Office Resource Kit [ORK] you will see that there are a lot more settings that you can play with than just the few here. &lt;/p&gt;
 &lt;p&gt;Here's what you need to do:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4bb7cb10-a6e5-4334-8925-3bcf308cfbaf&amp;amp;displaylang=en"&gt;Download Microsoft Office Resource Kit&lt;/a&gt; [ORK] and install it on any  workstation &lt;/li&gt;
  &lt;li&gt;Open the “Custom Installation Wizard” from the Start menu&lt;/li&gt;
  &lt;li&gt;When prompted, point to an Office 2003  Installation source.  Either an  administration point on the network or a CD will do. &lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Then when prompted choose, &amp;quot;Create a new MST&amp;quot;  and click &amp;quot;Next.&amp;quot;.&lt;/li&gt;
  &lt;li&gt;At the top right of the window, click the drop down and skip to step 17 “Outlook:  Customize Default Profile”&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a name="step6" id="step6"&gt;&lt;/a&gt;Create a new profile and name it appropriately. Remember what you named it, you will need it to edit the script later&lt;br /&gt;
  &lt;/li&gt;
&lt;li&gt;Configure the settings appropriately with the  Exchange server, whether or not you want “Cached Mode” and whatever other site  specific settings you need&lt;br /&gt;
&lt;/li&gt;
  &lt;li&gt;Click Next and Next again to go to the “Export  Profiles Settings” screen&lt;/li&gt;
  &lt;li&gt;Click the “Export Profile Settings” button and  save the PRF to a place on the network [\\server\share\ORK_profile.prf]&lt;/li&gt;
  &lt;li&gt;Make sure that you test it on a  workstation by running this command:&lt;br /&gt;
    OUTLOOK  /importprf \\server\share\ORK_profile.prf&lt;/li&gt;
&lt;/ol&gt;
EDIT: Thanks to &lt;a href="http://www.oliverhansen.com/"&gt;Oliver&lt;/a&gt; for catching a colon that shouldn't be there.  

&lt;h3&gt;Creating a Logon Script To Install The Outlook Profile&lt;/h3&gt;
&lt;p&gt;So there is a PRF file created that has all of the necessary settings and it has been tested  to make sure that it works. Instead of running that command individually for each of the hundreds of users on the network, it's scripted. &lt;/p&gt;
&lt;p&gt; This script [compared to a batch file] not only runs the command, it checks to see if the command has ever been run before and if the profile has already been created. If it has, then it exits and that's it. If it has not, it imports the PRF file and then adds a registry setting so that it never runs again. &lt;/p&gt;
&lt;p&gt;Disclaimer: There are a ton of ways you can do this but the end result should be that the script below runs on each machine. You could just instruct the users to run the script manually but this way, when a new user is added to the network, they will automatically have their profile set up. &lt;/p&gt;
&lt;p&gt;Here's an overview of one way to set it up:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Copy this script to a text file and then save it  as a .VBS to make it a vbs script:
    &lt;textarea name="textarea" cols="75" rows="25" wrap="off" id="textarea"&gt;'***************************************************
' File:    auto_outlook.vbs
' Author:  Mark M Manning
' Date:    10/10/2007
' Version: 1
' Based on the work of Peder Pedersen - pep@deif.com
'***************************************************

Option Explicit

Dim Company, PRFLocation, ProfileName



' =========================================
' ====== EDIT THIS INFORMATION=============
Company = "CompanyName"          ' SET THE NAME OF YOUR COMPANY
PRFLocation = "c:\test.prf"         ' SET THE LOCATION ON THE NETWORK OR LOCAL DRIVE 
'PRFLocation = "\\SERVER\share\test.prf" ' OF THE PRF THAT HAS BEEN CREATE
ProfileName = "Site_Profile"   ' This is the name that you have already
      ' created when you made the PRF.  
      ' make sure they are the same
' =========================================






' =================DO NOT EDIT ANYTHING BELOW THIS SECTION================
' ========================================================================

Set WshShell = CreateObject("WScript.Shell")
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjEnv = WshShell.Environment("Process")
Set objShell = CreateObject("Shell.Application")
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" &amp; objSysInfo.UserName) 

Const HKEY_CURRENT_USER = &amp;H80000001
Dim HKCUfirstRunflag 
HKCUfirstRunflag = "HKCU\Software\" &amp; Company &amp; "\FirstRunFlag"
Dim HKCUprofile 
HKCUprofile = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" &amp; ProfileName 

Dim WshShell, WshNetwork, objEnv, fso, objShell, username, key, FirstRunCurrentUser, MSOKey, NoProfile, OfficeInstalled, strUserName, strInitials
Dim strOfficePath, strMachineName, objSysInfo, objUser
Dim objWord, LogonSrv, PRFPath, result, OSnummer, objWMIService, colOperatingSystems, objOperatingSystem

strOfficePath = "Software\Microsoft\Office\11.0\Common\UserInfo" 'Path for office user info
strMachineName = "."

' ============== START OF MAIN SCRIPT ==============
 'Check OS
' =========================================
Set objWMIService = GetObject("winmgmts:" _
    &amp; "{impersonationLevel=impersonate}!\\" &amp; strMachineName &amp; "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
 result =  objOperatingSystem.Version
OSnummer = Left(result,3)

if OSnummer &lt;&gt; "5.1" then
 'Wscript.Echo "This is not XP"  'Debug
 Wscript.Quit   
else
 'Wscript.Echo OSnummer     'Debug
end if
Next
' =========================================
'Test to see if the script has run before
' ========================================= 
TestfirstRunUser  ' Has script been run before?
If FirstRunCurrentUser then 'If not then continue
 TestProfile 
 If NoProfile then 'Set up profile if none exists
  OutlookSetup 'Setup Outlook profile
 End if
end if
' =========================================

' Add a registry key if the script runs successfully
WshShell.RegWrite HKCUfirstrunflag, "1", "REG_DWORD" 

cleanup

' ================================================
' ============== END OF MAIN SCRIPT ==============
' ================================================

' -------- Test if first run for this user?
Sub TestFirstRunUser
  on error resume next 'cannot be read first time
  key = WshShell.RegRead(HKCUfirstRunflag)
  If Err &lt;&gt; 0 Then
    FirstRunCurrentUser = True
  Else
    FirstRunCurrentUser = False
  End If
  On Error Goto 0
End Sub


'------------ Test if profile exists?
Sub TestProfile
 on error resume next 'cannot be read first time
 MSOKey = WshShell.RegRead(HKCUprofile)
' determine if a profile has already been setup 
  If MSOKey = "" Then
   'wscript.echo "No Profile" 'Testing
   NoProfile = True
  else
   'wscript.echo "Profile exists" 'Testing
   NoProfile = False
  end if
  On Error Goto 0
End sub

Sub OutlookSetup
    WshShell.Run "outlook.exe /importprf " &amp; PRFLocation, 1, False
End Sub

Sub Cleanup
 Set WshNetwork = Nothing
 Set objSysInfo = Nothing
 Set WshShell = Nothing
 Set fso = Nothing
 Set ObjEnv = Nothing
 Set objShell = Nothing
 Set objUser = Nothing
 Set objWord = Nothing
 Set objWMIService = Nothing
 Set colOperatingSystems = Nothing
 Set objWord = Nothing 
End Sub
&lt;/textarea&gt;
    &lt;label&gt;&lt;/label&gt;
  &lt;/li&gt;
  &lt;li&gt;Edit the script under where it says &amp;quot;EDIT THIS INFORMATION&amp;quot; [&lt;a href="#step6"&gt;see Step #6&lt;/a&gt; above]&lt;br /&gt;
    For instance: &lt;br /&gt;
    &lt;textarea name="textarea3" cols="75" rows="3" wrap="off" id="textarea3"&gt;Company = "CompanyName"      '  SET THE NAME OF YOUR COMPANY
PRFLocation = "\\server\share\ORK_profile.prf"      ' SET THE LOCATION ON THE NETWORK OR LOCAL DRIVE 
ProfileName = "YOURSITEPROFILENAME" &lt;/textarea&gt;
    &lt;br /&gt;
    &lt;em&gt;&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Save the vbscript to the netlogon folder or  somewhere appropriate on the network [\\domain.local\netlogon\auto_outlook.vbs]&lt;/li&gt;
  &lt;li&gt;If necessary, create  a group policy to apply the new logon script [or edit an existing one to add this script.] &lt;br /&gt;
    &lt;br /&gt;
    4a. [OPTIONAL] If you have some kind of software on the clients that protects against using vbscript at logon, already have an existing batch script that runs at logon, or like some admins I know are just against using vbscripts at logon completely, you can call the script from a batch file by running the &amp;quot;CScript&amp;quot; command. Include the command as something like this:&lt;br /&gt;
      &lt;br /&gt;
      &lt;label&gt;
      &lt;textarea name="textarea2" cols="75" rows="1" id="textarea2"&gt;cscript \\domain.local\netlogon\auto_outlook.vbs&lt;/textarea&gt;
          &lt;/label&gt;
    &lt;br /&gt;
  &lt;/li&gt;


  &lt;li&gt;Test by running your logon script from a  workstation. Check the following&lt;/li&gt;
  &lt;ol&gt;
    &lt;li&gt;The registry key was created [HKCU\Software\%COMPANY%\FirstRunFlag&lt;/li&gt;
    &lt;li&gt;The profile with the appropriate name was  created [even if a profile already exists]&lt;br /&gt;
    Control Panel &amp;gt; Mail &amp;gt; Show Profiles&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;The exchange server and information is  configured correctly&lt;/li&gt;
  &lt;/ol&gt;
&lt;/ol&gt;
&lt;h3&gt;External Links:&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://office.microsoft.com/en-us/ork2003/HA011402581033.aspx"&gt;http://office.microsoft.com/en-us/ork2003/HA011402581033.aspx&lt;/a&gt; - Link about using PRF files&lt;br /&gt;
  &lt;br /&gt;
    &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4bb7cb10-a6e5-4334-8925-3bcf308cfbaf&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=4bb7cb10-a6e5-4334-8925-3bcf308cfbaf&amp;amp;displaylang=en&lt;/a&gt; – download the Microsoft Office 2003 Resource kit&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/30027349086271950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5702491182567675357/posts/default/30027349086271950'/><link rel='alternate' type='text/html' href='http://www.markmmanning.com/blog/2007/11/automatically-create-outlook-profile-on.html' title='Automatically Create an Outlook Profile on Logon'/><author><name>Mark M Manning</name><uri>http://www.blogger.com/profile/12712393285540348766</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-5702491182567675357.post-1071144115719454872</id><published>2007-10-30T15:46:00.000-04:00</published><updated>2007-10-30T15:55:14.494-04:00</updated><title type='text'>Creating A Domain Controller From The Backup Of Another Server</title><content type='html'>&lt;p&gt;Last week I worked on a site that lacked the speed to promote a domain controller.  Connectivity was consistent but there was a cable modem in place with speeds of 128k.  Some of the IT team suggested that I drive down to Chicago that has better speed, promote the server and replicate active directory, and then run it back to the original site.  As driving down the street seemed like a fun way burn time and get out of the office, it really wasn't the most technologically correct [TC] way to solve the problem.  Racking my brain to answer one of those MCSE questions that I thought I'd never get in real life, I came up with this solution.&lt;/p&gt;
&lt;p&gt;It involves backing up active directory on another domain contoller, copying the file to the local server you're trying to promote, and running the "dcpromo /adv" command to use the restored files as the basis of the replication.  This won't work if you completely do not have any connectivity, but if you're having a problem with timeouts during the first replication during the dcpromo then this is for you. &lt;/p&gt;      
      &lt;h3&gt;Backup and Restore the System State of a Global Catalog&lt;/h3&gt;
      &lt;ol&gt;
