<?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>ITworks &#187; annoyance</title>
	<atom:link href="http://itworks.hu/category/annoyance/feed/" rel="self" type="application/rss+xml" />
	<link>http://itworks.hu</link>
	<description>Random musings in IT</description>
	<lastBuildDate>Mon, 09 Jan 2012 08:01:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Motorola vip1910-9 HDMI</title>
		<link>http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/</link>
		<comments>http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 11:41:51 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[invitel]]></category>
		<category><![CDATA[motorola vip1910-9]]></category>
		<category><![CDATA[stb]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=217</guid>
		<description><![CDATA[I have a Motorola vip1910-9 set-top box provided by my ISP. It&#8217;s a simple Linux based STB and I&#8217;m quite satisfied with it&#8217;s capabilities. Unfortunately I could not hook it up to my TV with a standard HDMI cable only &#8230; <a href="http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have a Motorola vip1910-9 set-top box provided by my ISP. It&#8217;s a simple Linux based STB and I&#8217;m quite satisfied with it&#8217;s capabilities. Unfortunately I could not hook it up to my TV with a standard HDMI cable only through scart.</p>
<p>After spending hours on the net looking for a solution I came over a Swedish forum, which gave away the solution.</p>
<ol>
<li>Reboot the box, either by power cycling or from the remote</li>
<li>Press the Menu on the remote when the boot starts</li>
<li>Change the output to the resolution your TV can do</li>
<li>save and reboot</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wicket in action and confusion</title>
		<link>http://itworks.hu/2009/08/29/wicket-in-action-and-confusion/</link>
		<comments>http://itworks.hu/2009/08/29/wicket-in-action-and-confusion/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 22:53:56 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[java security]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[wicket]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=68</guid>
		<description><![CDATA[For a recent project lead, we decided to create a mock-up of the application, so the prospective Customer would be able to see that we understand their needs. As I&#8217;m not very good at interactive HTML mock-ups I decided to &#8230; <a href="http://itworks.hu/2009/08/29/wicket-in-action-and-confusion/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For a recent project lead, we decided to create a mock-up of the application, so the prospective Customer would be able to see that we understand their needs.</p>
<p>As I&#8217;m not very good at interactive HTML mock-ups I decided to go with <a href="http://wicket.apache.org/">Wicket</a>, which seemed to be useful and easy when a friend showed me. The mock-up progressed well, but upon deployment all <a href="http://www.microsoft.com">Hell</a> broke loose.</p>
<p><span id="more-68"></span>I chose <a href="http://wicket.apache.org/">Wicket</a>, because I hate most web frameworks already, Struts is way to old and twisted for anything proper, I have not found a single open source JSF implementation that works properly, and I had nothing concrete against <a href="http://wicket.apache.org/">Wicket</a> yet.</p>
<p>I also wanted to try Maven, since I hate it&#8217;s conception so much, it seemed like a good time to try, after all we had two days on our hands, why not waste it properly? I still hate it, but only on principle, otherwise it to me it&#8221;s a lot like the apt of java. And my world is Debian based. <img src='http://itworks.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So the mock-up went well. I&#8217;ve spent hours figuring out how to do a simple menu that shows selected items with the &lt;wicket:link&gt; feature, with mouseovers. I managed to get it working, to realize it would never work on IE. Then I reimplemented it, then again. Finally I threw it all away and added a JavaScript onload and some brute-force to get it working.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> fireOnLoad<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// highlight current menu</span>
  <span style="color: #003366; font-weight: bold;">var</span> menuTable <span style="color: #339933;">=</span> window.<span style="color: #660066;">document</span>.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'menuTable'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>menuTable.<span style="color: #660066;">rows</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">cells</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> curM <span style="color: #339933;">=</span> menuTable.<span style="color: #660066;">rows</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">cells</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>curM.<span style="color: #660066;">children</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">tagName</span> <span style="color: #339933;">!=</span><span style="color: #3366CC;">'A'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> curClassName <span style="color: #339933;">=</span> curM.<span style="color: #660066;">className</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'Selected'</span><span style="color: #339933;">;</span>
      curM.<span style="color: #660066;">className</span> <span style="color: #339933;">=</span> curClassName <span style="color: #339933;">;</span>
      curM.<span style="color: #660066;">children</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'block'</span><span style="color: #339933;">;</span>
      menuTable.<span style="color: #660066;">rows</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">cells</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'block'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>For the HTML code like</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;table id=&quot;menuTable&quot; class=&quot;menuTable&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;subMenuItemContainer&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;subMenuPointer&quot;&gt;
    &lt;img style=&quot;display:none&quot; onclick=&quot;window.location.href='../img/submenu.gif';return false;&quot; src=&quot;../img/submenu.gif&quot; alt=&quot;&quot; /&gt;&lt;/td&gt;
...&lt;/tr&gt;
&lt;tr class=&quot;menuItemContainer&quot;&gt;
&lt;td class=&quot;menuItem&quot; onmouseover=&quot;return menuRollOver(this)&quot; onmouseout=&quot;return menuRollOut(this)&quot;&gt;
&lt;div class=&quot;hiddenSubMenu&quot;&gt;
&lt;ul class=&quot;subMenu&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;../pages/AgencyList&quot;&gt;Keresés&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;a href=&quot;../pages/AgencyList&quot;&gt;Ügynökségek&lt;/a&gt;&lt;/td&gt;
...&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</pre></div></div>

<p>It&#8217;s quite ugly, but adequate for the current situation.</p>
<p>After the pages were ready and tested on localhost I decided to move it to our server for presentation. The server runs Debian and has an Apache Tomcat 5.5 running on it for ages. It turned out however, that somehow the project requires Tomcat 6. Not wanting to go over all the project&#8217;s config, I went for the server upgrade. The Tomcat had no applications that were to be effected, so it seemed like an easy choice.</p>
<p>Install from apt went smoothly, the application deployed easily. There was a strange problem though.</p>
<p>Every time I clicked a link it either didn&#8217;t display any images or it displayed some, or none at all. Refreshing the page always changed something. I suspected, it must be an issue with the <a href="http://wicket.apache.org/">Wicket</a> filter, but could not put my hand on it.</p>
<p>Trying to isolate the problem I tried loading a single image from the application. It turned out, that a security exception is thrown every time I try to reload a resource that was previously loaded. Turning of security in Tomcat packaged for Debian did not work out of the box, so I tried to find a solution. I found the page on Java security in <a href="http://wicket.apache.org/">Wicket</a> but adding the values on the page just resulted in another error.</p>
<p>I decided to add all rules found on the <a href="http://cwiki.apache.org/WICKET/java-security-permissions.html">Wicket WIKI</a>, but that wasn&#8217;t enough. So I was adding the rules one-by-one to come up with my version of the security policy for 1.4</p>
<pre>grant {
// For substitution of one object for another during serialization
// or deserialization. This is used in ReplaceObjectOutputStream,
// which is used for page versioning (undoing changes).
//permission java.io.SerializablePermission "enableSubstitution";

// For FilePageStore's custom serialization
//permission java.io.SerializablePermission "enableSubclassImplementation";

// For crypted URL functionality (see WebRequestWithCryptedUrl).
//permission java.security.SecurityPermission "insertProvider.SunJCE";

// The following was required to get Wicket, at least the examples, to work at all
permission java.lang.reflect.ReflectPermission
   "suppressAccessChecks";
permission java.lang.RuntimePermission
   "accessClassInPackage.org.apache.tomcat.util.http";
permission java.util.PropertyPermission
   "org.apache.tomcat.util.http.FastHttpDateFormat.CACHE_SIZE",
   "read";
};</pre>
<p>As it turned out the problem is gone now. At least until I hit another security restriction.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2009/08/29/wicket-in-action-and-confusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating from physical to virtual server with pain and tears</title>
		<link>http://itworks.hu/2009/08/05/migrating-from-physical-to-virtual-server-with-pain-and-tears/</link>
		<comments>http://itworks.hu/2009/08/05/migrating-from-physical-to-virtual-server-with-pain-and-tears/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 13:45:39 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=28</guid>
		<description><![CDATA[We host the server for a legacy application in our office. Since it&#8217;s more like a favor than a real assignment we don&#8217;t care much about the server. However we had a few network issues lately, so we decided to &#8230; <a href="http://itworks.hu/2009/08/05/migrating-from-physical-to-virtual-server-with-pain-and-tears/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We host the server for a legacy application in our office. Since it&#8217;s more like a favor than a real assignment we don&#8217;t care much about the server. However we had a few network issues lately, so we decided to migrate it to a virtual server running on our hosted server. Also the machine produces lot&#8217;s of heat and noise, so we&#8217;d better had it switched off.</p>
<p>This seemed like such an easy task to do, what could be hard in creating a disk image with <a href="http://clonezilla.org/">CloneZilla</a>, copy it to a server, set up a virtual machine there with <a href="http://www.linux-kvm.org/">kvm</a>, restore the image and redirect all traffic to this computer instead of the one in our office. We estimated it could be done in two to three hours tops, and we get home around 7PM.</p>
<p><span id="more-28"></span>We missed a few points though. The machine had a faulty CD drive, so booting <a href="http://clonezilla.org/">CloneZilla</a> was not so easy. We went for the network boot option, but something just didn&#8217;t work out on the PXE boot. So we switched the CD drive to a working one, well at least it used to work a few years ago&#8230; But not anymore. So we decided to scrap the swap partition boot <a href="http://clonezilla.org/">CloneZilla</a> from there, and create our image. It worked! Almost. Except that <a href="http://clonezilla.org/">CloneZilla</a> didn&#8217;t quite identify the disk partition types, and didn&#8217;t see the RAID device at all. It turned out, that the utility somehow runs in user mode and starting the partimage utility with sudo is an acceptable workaround. We then had the disk image on a different server, where we tried to restore it into a 10GB virtual disk image. As it turns out, <a href="http://clonezilla.org/">CloneZilla</a> is unable to restore images that are bigger then the target partition even if there is less data in it.</p>
<p>So we went on a quest for a <a href="http://www.gnu.org/software/parted/">parted</a> that can shrink our 100GB partition to 10GB. Well, if there was one&#8230; As we had no intention of booting from the non-working CD we popped in a disk from our jukebox server with Ubuntu on it. No wonder it worked flawlessly, until I learned that a RAID 1 device with ext3 on it is not easy to shrink. So I decided to break the RAID block, remove the incompatible ext3 flags, and resize the first partition to 10GB. Then I used partimage to create the backup, it was created with about 300MB/min.</p>
<p>The backup was quickly copied over to the eagerly waiting server, that was to host the virtual machine. We fired up the VM with a 10GB disk image and <a href="http://clonezilla.org/">CloneZilla</a> iso mounted as a CD, and went out to restore the image to our partition. We didn&#8217;t even try to use the <a href="http://clonezilla.org/">CloneZilla</a> UI, except for mounting the host with sshfs to access our backup image. The setup was a breeze, except, that the restore speed was only about 50MB/min. No worries, it&#8217;s a small application after all, we don&#8217;t need a huge server for it anyway. It was also 1 AM already, so we didn&#8217;t pay much attention to detail anymore.</p>
<p>We redirected all the network traffic, to the new virtual interface and tested it while waiting for the restore to complete. During redirect, we fired a command, that killed the network adapter under us, so we were desperately trying to reach the hosting provider, to reboot our server. We went through all numbers listed on their homepage. Good thing they have a <a href="http://cam03.deninet.hu:8080/view/view.shtml">webcam</a> in their console room, so we could see the admin passing through on the way to our server, obviously not in a good mood! Suffice to say that was the most fun we had all evening!</p>
<p>After the restore was complete and some minor fixes (make the image bootable, install the grub loader, change the root device in the loader AND the fstab as well, change network configuration, to match the setup, AND the /etc/hosts AND /etc/resolv.conf, that are easily overlooked at 3 in the morning) we had the image booting up already. And oh boy, was it slow? Painfully so! The machine doesn&#8217;t support HW virtualization, and SW virtualization just doesn&#8217;t cut it.</p>
<p>So we grit our teeth and moved the whole bunch of stuff back to where it was, rebuilt the RAID array, and redirected everything where it was originally. Also we were not happy at all. We went home at 4 AM, when the streets are empty, and the bars were about to close.</p>
<p>I could not believe, that a P4 running at 3GHz should be so slow. So today I took the backup from yesterday, installed <a href="http://www.virtualbox.org/">VirtualBox</a>, and restored the image to a new virtual machine. It took about 2 hours altogether. I&#8217;m not saying that <a href="http://www.virtualbox.org/">VirtualBox</a> is in any way superior to <a href="http://www.linux-kvm.org/">kvm</a>, but I can show that in our case it&#8217;s ten times as fast. I&#8217;m sure we made mistakes in the deployment and there might be ways to reach this speed with <a href="http://www.linux-kvm.org/">kvm</a> as well.</p>
<p>No matter how much trouble we went through, it was sure an interesting night, we learned a lot about virtualization and image cloning, that might soon become handy.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2009/08/05/migrating-from-physical-to-virtual-server-with-pain-and-tears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;ve been hacked</title>
		<link>http://itworks.hu/2008/03/01/weve-been-hacked/</link>
		<comments>http://itworks.hu/2008/03/01/weve-been-hacked/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 12:44:10 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rootkit]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=23</guid>
		<description><![CDATA[What could make one&#8217;s Saturday morning better, than a slight hangover? Well idling through a few mail folders, reading a few log messages and discovering that your server has been hacked for over three days is not the thing, for &#8230; <a href="http://itworks.hu/2008/03/01/weve-been-hacked/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>What could make one&#8217;s Saturday morning better, than a slight hangover? Well idling through a few mail folders, reading a few log messages and discovering that your server has been hacked for over three days is not the thing, for sure.</p>
<p><span id="more-23"></span>Being a  bit on the paranoid side, I have a few tools up and running, that monitor my filesystems, for changes that were not made by me.</p>
<p>One such tool is <a href="http://www.nongnu.org/tiger/" target="_blank">tiger</a> which gave me lines like:</p>
<pre> # Checking listening processes
NEW: --WARN-- [lin003w] The process `bash' is listening on socket 7171 (TCP on every interface) is run by angel.
NEW: --WARN-- [lin003w] The process `oidentd' is listening on socket 113 (TCP on every interface) is run by oident.</pre>
<pre># Verifying system specific password checks...
NEW: --FAIL-- [lin005f] Installed file `/usr/bin/pstree' checksum differs from installed package 'psmisc'.
NEW: --WARN-- [lin001w] File `/lib/libproc.a' does not belong to any package.
NEW: --WARN-- [lin001w] File `/lib/libproc.so.2.0.6' does not belong to any package.
NEW: --WARN-- [lin001w] File `/lib/lidps1.so' does not belong to any package.
NEW: --WARN-- [lin001w] File `/sbin/ttyload' does not belong to any package.
NEW: --WARN-- [lin001w] File `/sbin/ttymon' does not belong to any package.
NEW: --WARN-- [lin001w] File `/usr/sbin/ttyload' does not belong to any package.</pre>
<pre># Checking listening processes
NEW: --WARN-- [lin003w] The process `bd' is listening on socket 60001 (TCP on every interface) is run by sdb.</pre>
<p>This I just ignored, being absent minded at times, I tend to forget when I install new binaries. Altough I clearly remembered, that I haven&#8217;t touched the server for quite a time.</p>
<p>But there were other reports as well, from <a href="http://www.rootkit.nl/">RKHunter</a> that some files were changed on the file system and a new user was added. It turned out, that a day later the guy activated himself, and installed SH4 and SH5 rootkits on the system.</p>
<p>RKHunter and Tiger reported the changes. A few commands were changed, to hide some processes and files.  The rootkit is a bit screwed up, as the top command doesn&#8217;t work at all.</p>
<p>Since I also keep regular backups of the system I wanted to quickly remove the backdoors, I tried to overwrite the changed files on the system. The changed commands had a few  attributes set, so they were read only. To overwrite them with the original files first I had to chattr them.</p>
<p>Unfortunately these rootkits tend to restore themselves from  the demons they spawn, which I couldn&#8217;t find until the files were restored. Since I had all the information from the security programs it was quite easy to write a script to erase the rootkits and restore the original files.</p>
<pre>SRC="/path-to-archive"

for i in /bin/ls /bin/netstat /bin/ps /usr/bin/find /usr/bin/md5sum /usr/bin/pstree /usr/bin/top /sbin/ifconfig; do
    echo $i
    chattr -sia $i
    rm $i
    cp ${SRC}/$i $i
done

chattr -sia /lib/lidps1.so /etc/sh.conf /dev/srd0  /dev/shm/bd /dev/shm/nou
rm /lib/lidps1.so /etc/sh.conf /dev/srd0  /dev/shm/bd /dev/shm/nou

chattr -sia -R /lib/libsh.so /usr/lib/libsh /dev/.raw
rm -r /lib/libsh.so /usr/lib/libsh /dev/.raw

rm /sbin/ttyload /sbin/ttymon /usr/sbin/ttyload</pre>
<p>When this was ran, I was able to find and kill the processes from the backdoors. There were strange processes named bash, ttymon, /usr/sbin/httpd, /usr/sbin/apache/log and suchlike, I didn&#8217;t recognize.  After killing the processes, I&#8217;ve re ran the script, to make sure there were no application hooks that  recreated the files. Then I went through the entire proc table again with a fine comb.</p>
<h1>Post-mortem</h1>
<p>It turned out, that the hacker came in through the mldonkey server, that I used to download some torrents. It was ran in a chrooted environment to start with, but this didn&#8217;t seem to matter. So much for chroot. The attacker first used a kernel exploit to gain root priviledges. Then he created an account named &#8220;angel&#8221;and uploaded and installed the rootkits. He also uploaded what seemed to me like an IRC bot, and spread it liberally around the machine. (I found about 5 copies, but I didn&#8217;t count)</p>
<p>The kernel vulnerability  existed, because even though the new patched kernel was already installed, the system was not restarted to use it. After the reboot the kernel exploit is hopefully gone, but the mldonkey server remains vulnerable. Mldonkey is disabled on the server for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2008/03/01/weve-been-hacked/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Worst way to apply for a job.</title>
		<link>http://itworks.hu/2007/09/24/worst-way-to-apply-for-a-job/</link>
		<comments>http://itworks.hu/2007/09/24/worst-way-to-apply-for-a-job/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 11:21:12 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=20</guid>
		<description><![CDATA[We are continously looking for Java developers for our company. We&#8217;ve recently received a job application which is even more ridiculous thant the others. Tisztelt HR Manager! Láttam állásajánlatukat, elolvastam a reklámszövegüket weblapon. 6 éve J2SE alkalmazásokat fejlesztek és egy &#8230; <a href="http://itworks.hu/2007/09/24/worst-way-to-apply-for-a-job/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We are continously looking for Java developers for our company. We&#8217;ve recently received a job application which is even more ridiculous thant the others.</p>
<p><span id="more-20"></span></p>
<blockquote><p>Tisztelt HR Manager!</p>
<p>Láttam állásajánlatukat, elolvastam a reklámszövegüket  weblapon.<br />
6 éve J2SE alkalmazásokat fejlesztek és egy kicsit unom, ezért a tavasszal J2EE be is belekóstoltam, pont a Websphere-el.</p>
<p>CV-t nem küldenék egyelőre, mivel önöknek is van elég CV -jük mástól én meg küldtem eleget másova.</p>
<p>Arra lennék kíváncsi,  hogy egy  ledolgozott  hónap után mennyit  tudnék én hazavinni, ha az önök cégénél dolgoznék. kezdetben mennyi lenne és 1 év után mennyi lenne? Mennyi időközönként igazítják a fizetést a nyújtott teljesítményhez?</p>
<p>Tisztelettel:<br />
MXXXé SXXXXXXs</p></blockquote>
<blockquote><p>Dear HR Manager!</p>
<p>I&#8217;ve seen your job ad and read your banner on the   website.<br />
I&#8217;m developing J2SE applications for over 6 years and a bit bored with it, so I&#8217;ve gave J2EE a try, with Websphere.</p>
<p>I would not send my CV for now, as I&#8217;m sure you have enough CVs from other people and I&#8217;ve sent enough of mine to others.</p>
<p>I would be interested in how much I could take home after a month of work if I worked at your company. how much in the begining and how much after a year. What periodicity do you use to match the wage to the actual performance?</p>
<p>Best regards:<br />
MXXXé SXXXXXXs</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2007/09/24/worst-way-to-apply-for-a-job/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interesting Oracle sequence issue</title>
		<link>http://itworks.hu/2007/04/27/interesting-oracle-sequence-issue/</link>
		<comments>http://itworks.hu/2007/04/27/interesting-oracle-sequence-issue/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 09:25:24 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=4</guid>
		<description><![CDATA[Our rookie had a simple task on the SQL lab of the university he attends. Take a column in table A and copy it to table B, while adding a column id to B from a sequence C. This seems &#8230; <a href="http://itworks.hu/2007/04/27/interesting-oracle-sequence-issue/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Our rookie had a simple task on the SQL lab of the university he attends. Take a column in table A and copy it to table B, while adding a column id to B from a sequence C.<br />
<span id="more-4"></span><br />
This seems like a matter of a single relatively simple SQL statement, and so thought their teacher. The solution we all thought to be simple looks like:</p>
<blockquote><p><code>INSERT INTO B (ID, COL) VALUES (SELECT C.nextval, COL FROM A)</code></p></blockquote>
<p>Nice and easy. This seems that Oracle only evaluates a the sequence operations in a statement once, thus when you take the next value from a sequence you will always get the same value within the statement. This will either result in a constraint violation (if you have one defined) or table A&#8217;s ID column filled with the same number.</p>
<p>So solutions like:</p>
<blockquote><p><code>INSERT INTO B (ID, COL) VALUES (SELECT (SELECT C.nextval FROM DUAL), COL FROM A)</code></p></blockquote>
<p>would not work either, as the expression is still evaluated once.</p>
<p>I see two solutions to this really simple problem, either create a trigger on table B for this excercise, which I consider an overkill, or use a LOOP. Oracle states on it&#8217;s <a href="http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14261/loop_statement.htm">documentation</a>, that the loop content on every iteration.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2007/04/27/interesting-oracle-sequence-issue/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

