<?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>Rackbits &#187; Cisco</title>
	<atom:link href="http://rackbits.com/tag/cisco/feed/" rel="self" type="application/rss+xml" />
	<link>http://rackbits.com</link>
	<description>Blag of doom, assembly, and other things.</description>
	<lastBuildDate>Wed, 08 Feb 2012 05:36:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Programming without purpose, Image dithering and a CDP Transponder</title>
		<link>http://rackbits.com/2009/06/19/programming-without-purpose-image-dithering-and-a-cdp-transponder/</link>
		<comments>http://rackbits.com/2009/06/19/programming-without-purpose-image-dithering-and-a-cdp-transponder/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 12:52:24 +0000</pubDate>
		<dc:creator>Matthew Costa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://rackbits.com/?p=44</guid>
		<description><![CDATA[Inspired by a forum post on osdev.org about image colour downsampling I decided to have a crack at writing a program which could take a 24-bit image and convert it down to any lesser image format. The picture above shows an image split down the middle. On the right is the original 24-bit colour version [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-45" title="Dithered image comparison" src="http://rackbits.com/wp-content/uploads/2009/06/dithering.jpg" alt="Dithered image comparison" width="600" height="200" /></p>
<p>Inspired by a <a href="http://forum.osdev.org/viewtopic.php?f=11&amp;t=20338">forum post on osdev.org </a>about image colour downsampling I decided to have a crack at writing a program which could take a 24-bit image and convert it down to any lesser image format. The picture above shows an image split down the middle. On the right is the original 24-bit colour version and on the left is a 8-bit per pixel version with 2 bits for the red colour channel and 3 bits for the green and blue colour channels (rather than having a specific palette for the image I am downsampling to a 2:3:3 bpp image). As you can see the colour loss is acceptable and despit the limitations it still looks nice. Obviously the image could be improved further by choosing a colour palette suitable for the image but that is for another project.</p>
<p>I&#8217;ll post the code once I have cleaned it up a bit and smoothed it out so it doesn&#8217;t have so many hard coded values.</p>
<h3>CDP Transponder</h3>
<p>Another project I&#8217;ve been working on with my interest in Cisco hacking and reverse engineering is my Cisco Discovery Protocol transponder. It is a small program which sits on your computer and emits a configured CDP message every so often allowing your computer to show up on CDP neighbour lists. It doesn&#8217;t really have much purpose at the moment but I hope to play around with it and trying to bridge it with LLDP devices so I can get old Cisco gear to show up on my new Windows network topology maps.</p>
<p><img class="alignnone size-full wp-image-46" title="show cdp neighbors" src="http://rackbits.com/wp-content/uploads/2009/06/cdp-neighbors.png" alt="show cdp neighbors" width="600" height="120" /></p>
<p>This is the output of the <em>show cdp neighbors </em>command on my Cisco 2610XM router. It shows my computer as the device connected to the Fastethernet 0/0 port.</p>
]]></content:encoded>
			<wfw:commentRss>http://rackbits.com/2009/06/19/programming-without-purpose-image-dithering-and-a-cdp-transponder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scraping the surface, Cisco 7970G Hardware</title>
		<link>http://rackbits.com/2009/06/13/scraping-the-surface-cisco-7970g-hardware/</link>
		<comments>http://rackbits.com/2009/06/13/scraping-the-surface-cisco-7970g-hardware/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 04:44:50 +0000</pubDate>
		<dc:creator>Matthew Costa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[7970 Hacking]]></category>
		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://rackbits.com/?p=14</guid>
		<description><![CDATA[The Cisco 7970 is a black box piece of hardware and as such there is very little information about it on the internet. Cisco pretend it&#8217;s a closed appliance and as such go out of their way to prevent people for using the in a more flexible manner. As of late I&#8217;ve been doing quite [...]]]></description>
			<content:encoded><![CDATA[<p>The Cisco 7970 is a black box piece of hardware and as such there is very little information about it on the internet. Cisco pretend it&#8217;s a closed appliance and as such go out of their way to prevent people for using the in a more <em>flexible</em> manner.</p>
<p>As of late I&#8217;ve been doing quite a bit of Cisco phone trickery. I&#8217;ve gotten a network of Cisco phones working with Asterisk and I&#8217;ve been building up sleek looking XML services for the 797x models. What I really want to do, though, is delve a little deeper into the spirit of hardware hacking and see if I can properly customise the phone beyond what is possible with configuration files.</p>
<p><span id="more-14"></span></p>
<h3>Basic Hardware</h3>
<p>The Cisco 7970 is based around a <a href="http://www.broadcom.com/products/BCM1100">Broadcom BCM1100</a> IP Phone Processor which includes a R3000 MIPS32 core running at 100mhz and a DSP running at 140mhz. This single chip provides the bulk of the functionality required by the phone. Attached to this core is 32MB of DRAM and 16MB of Flash Memory.</p>
<p>Behind the scenes the phone runs on a proprietary unix-like operating system called CNU-OS. Running the command <em>uname -a </em>emits the following,</p>
<blockquote><p>CNU6-OS  8.5(2TH1.9) 3.3(0.3) CP-7970G BCM1100-C1(MIPS32)</p></blockquote>
<h3>The operating system</h3>
<p>The operating system provides a multitasking environment on which the phone software runs. It, of course, mostly runs on Java.</p>
<p>Unfortunately for would be hackers <em>*cough*</em> the Superuser account is barred from regular access by a random password generator. Attempting to access the Superuser account, either from the login screen or via the su command, results in the following</p>
<blockquote><p>$ su</p>
<p>challenge: ZTHPLNFJ password:<br />
Invalid Username/Password Entry.<br />
challenge: XZLDHZGX password:<br />
Invalid Username/Password Entry.<br />
challenge: KCKVNLNQ password:<br />
Invalid Username/Password Entry.</p></blockquote>
<p>The <em>challenge </em>value changes with each attempt. The challenge value is <strong>always </strong>an 8 character uppercase letter only string, though. It is also in exactly the same format as the passwords encoded in the /etc/passwd file. From this I make a few assumptions regarding the root challenge</p>
<ol>
<li>The password is symmetrically encrypted, rather than hashed</li>
<li>This is because a Cisco engineer would need to decrypt the challenge in order to obtain the access code</li>
<li>The password is undoubtably a small string of random letters</li>
</ol>
<h3>Alternate means of access</h3>
<p>I never let a lack of superuser access prevent me from doing what needs to be done. Surely having physical access, not to mention ownership of said phone, endows me with the right to do with it what I wish? Apparently not. I came up with an interesting idea for granting full filesystem access to any user.</p>
<p>During the phone boot process it runs the /etc/init.tab script which performs a number of tasks like mounting the partitions and starting the various services. Since this is a fixed platform there isn&#8217;t much need for automated scripts. I had the idea of replacing a less important command with a &#8216;chmod -R 777 /&#8217; command to grant read, write and execute permissions for everybody to everything. It&#8217;s a little hackish but that doesn&#8217;t really matter. The only problem is that you can&#8217;t edit the file in place on the phone (because of a lack of permissions). The file *is* editiable when it is still a part of the phone load. I cunningly edited the phone load file (jar70sccp.8-5-2TH1-9.sbn for anyone interested) which contains, among other things, the init script I wished to edit right in plain text.</p>
<p>I forced the phone to reload the firmware from TFTP and was met with Cisco&#8217;s next roadblock to hacking goodness. The SBN file, which is a Signed Binary, was no longer valid. Since the file is not encrypted I can only assume at this stage that the file contains a checksum of some sort that became invalid when I updated the necessary file.</p>
<p>That still remains an interesting vector of attack. The SBN file format is not that complicated looking and the bulk of the file data is the very files it contains, stacked one after the other.</p>
<h3>So what nao</h3>
<p>Now I am working on deciphering the SBN file format so that I can create tools to build by own phone loads. There is a lot of potential for customisation. All of the phone&#8217;s graphical assets are stored in a number of PNG files which are easily editable.</p>
]]></content:encoded>
			<wfw:commentRss>http://rackbits.com/2009/06/13/scraping-the-surface-cisco-7970g-hardware/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Work in progress, Cisco XML services</title>
		<link>http://rackbits.com/2009/06/12/work-in-progress-cisco-xml-services/</link>
		<comments>http://rackbits.com/2009/06/12/work-in-progress-cisco-xml-services/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 14:40:23 +0000</pubDate>
		<dc:creator>Matthew Costa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://rackbits.com/?p=11</guid>
		<description><![CDATA[Recently I was inspired by a thread on the Whirlpool forums to write XML services for the Cisco IP phones I have. What I have created is something I have called (most creatively) Dashboard. It is a modular PHP script that allows people to add various blocks of dynamic content on to a page which [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was inspired by a <a href="http://forums.whirlpool.net.au/forum-replies-archive.cfm/1112759.html">thread on the Whirlpool forums</a> to write XML services for the Cisco IP phones I have. What I have created is something I have called (most creatively) Dashboard. It is a modular PHP script that allows people to add various blocks of dynamic content on to a page which is displayed on the IP phone&#8217;s display. This script can be called directly by the phone or pushed using the cisco XML push service.</p>
<p>My dodgy composition shot below shows the Dashboard running on a Cisco 7975 phone displaying a RSS feed, the count of unread messages in my inbox and a graphical logo.</p>
<p>I am currently working allowing it to display multiple pages of information (using the remaining softkeys along the bottom of the screen between the Update and Exit buttons).</p>
<p><img class="alignnone size-full wp-image-12" title="Dashboard WIP" src="http://rackbits.com/wp-content/uploads/2009/06/dashboard-wip.png" alt="Dashboard WIP" width="600" height="320" /></p>
]]></content:encoded>
			<wfw:commentRss>http://rackbits.com/2009/06/12/work-in-progress-cisco-xml-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

