<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<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>cameras &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/cameras/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Fri, 14 Nov 2025 04:48:10 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>cameras &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Hacking Around With Network Cameras]]></title>
		<link>https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/</link>
					<comments>https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 14 Nov 2013 12:50:05 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[cameras]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[ip cameras]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=8849</guid>

					<description><![CDATA[I was recently given 3 rather locked-down network cameras.  Each camera was pre-programmed to communicate with a specific website, and only attach to a predefined wireless access point.  Naturally, there was no supplied username or password.  I thought about how I might get access.  Using a man-in-the-middle attack to sniff the password, or trying to dump the firmware and examine that.  Sadly,…]]></description>
										<content:encoded><![CDATA[<p>I was recently given 3 rather locked-down network cameras.  Each camera was pre-programmed to communicate with a specific website, and only attach to a predefined wireless access point.  Naturally, there was no supplied username or password.</p>

<p>I thought about how I might get access.  Using a man-in-the-middle attack to sniff the password, or trying to dump the firmware and examine that.  Sadly, all the <a href="https://web.archive.org/web/20131114144013/https://www.gnucitizen.org/tags/camera/">vulnerabilities previously reported</a> no longer work. After a little bit of thought, I went for decided low-tech solution; I hit the reset button!  Yes, each camera had a recessed switch, accessible only with a paperclip, which reset the device to factory settings after holding it down for 10 seconds.</p>

<aside>I wonder what happens if a burglar used lockpicks on them...</aside>

<p>Anyway, this is my voyage of discovery with the three cameras.  They are:</p>

<ul>
    <li><img src="https://shkspr.mobi/blog/wp-content/uploads/2013/10/RC8221_EN.jpg" alt="RC8221_EN" width="188" height="278" class="alignnone size-full wp-image-8850"><a href="https://web.archive.org/web/20131114145520/http://www.sercomm.com/SWI/downloads/product/data_sheet/RC8221_EN.pdf">RC8221</a> - a basic internal camera.</li>
    <li><img src="https://shkspr.mobi/blog/wp-content/uploads/2013/10/OC821_EN.jpg" alt="OC821_EN" width="188" height="247" class="alignnone size-full wp-image-8853"><a href="https://web.archive.org/web/20131114143815/http://www.sercomm.com/SWI/downloads/product/data_sheet/OC821_EN.pdf">OC821D</a> - an external camera with weatherproof features.</li>
    <li><img src="https://shkspr.mobi/blog/wp-content/uploads/2013/10/RC8230_EN.jpg" alt="RC8230_EN" width="188" height="251" class="alignnone size-full wp-image-8851"><a href="https://web.archive.org/web/20131114143700/http://www.sercomm.com/SWI/downloads/product/data_sheet/RC4030_RC8030_EN.pdf">RC8230</a> - a pan/tilt camera.</li>
</ul>

<p>All of them are manufactured by Taiwanese OEM <a href="http://www.sercomm.com">Sercomm</a>.  Annoyingly, Sercomm don't have any customer services.  They mostly resell the cameras to Linksys, Cisco, Xanboo.</p>

<p>SerComm don't offer any firmware, GPL downloads, or much information about the cameras - so it's all very much trial and error.</p>

<h2 id="defaults"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#defaults">Defaults</a></h2>

<p>After resetting the cameras, they'll happily attach up to any wired network via the Ethernet port.  Visit the IP address assigned by DHCP and you'll get to the admin panel.
The default username is "administrator" - there is <strong>no password set</strong>.
You can now go and fiddle with all the settings.</p>

<h2 id="high-resolution-mode"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#high-resolution-mode">High Resolution Mode</a></h2>

<p>The cameras are meant to be able to record at 720p - yet the user interface doesn't seem to allow it.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/10/Camera-Settings.jpg" alt="Camera Settings" width="350" height="206" class="alignnone size-full wp-image-8856">
Luckily, the API allows us to force the resolution.</p>

<pre>http://192.168.0.42/adm/set_group.cgi?group=H264&amp;resolution=4</pre>

<pre>http://192.168.0.42/adm/set_group.cgi?group=JPEG&amp;resolution=4</pre>

<p>Wait! What? API?!</p>

<p>Oh yes, all the cameras come with a variety of commands which can be controlled by simple a HTTP GET request.</p>

<h2 id="discovering-the-api"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#discovering-the-api">Discovering The API</a></h2>

<p>As I said previously, Sercomm provides no documentation.  Luckily, their resellers do!
<a href="https://web.archive.org/web/20131114144548/http://www.eyespy247.com/site_media/support_docs/support_35.pdf">EyeSpy247 have the admin manual for the RC8221</a>.
<a href="http://www.use-ip.co.uk/datasheets/eyespy247outdooruserguide.pdf">Use-IP have the admin manual for the OC821D</a>.
I haven't yet found a manual for the RC8230 - but it uses most of the same API commands.  The only main addition is the ability to move the camera via its pan/tile functionality.  After a bit of digging, I found a <a href="https://web.archive.org/web/20131114144827/http://forum.micasaverde.com/index.php/topic,16868.msg129810.html#msg129810">discussion</a> on how to activate this functionality.</p>

<p>Up:</p>

<pre>http://192.168.0.42/pt/ptctrl.cgi?mv=U,10</pre>

<p>Down:</p>

<pre>http://192.168.0.42/pt/ptctrl.cgi?mv=D,10</pre>

<p>Left:</p>

<pre>http://192.168.0.42/pt/ptctrl.cgi?mv=L,11</pre>

<p>Right:</p>

<pre>http://192.168.0.42/pt/ptctrl.cgi?mv=R,11</pre>

<p>The manuals give all sorts of instructions, how to view video streams, get photos, set and get various options.  There are, sadly, some omissions.</p>

<h2 id="sending-sounds"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#sending-sounds">Sending Sounds</a></h2>

<p>One of the tasks I wanted to accomplish was to make the cameras play some of the turret sounds from the video game "Portal".  This is proving tricky, despite the manual's promises to the contrary.</p>

<p>It should be possible to POST an audio file to the cameras, either in G.726, or G.711 (a-law or u-law).  Despite creating the audio files correctly, and POSTing them to the cameras - they make not a peep!</p>

<pre>curl -vv --data-binary @alaw8k.wav http://user:pass@192.168.0.42/img/g711a.cgi</pre>

<pre>curl -vv -X POST -d @alaw8k.wav http://user:pass@192.168.0.42/img/g711a.cgi --header "Content-Type:audio/x-wav"</pre>

<p>I get a  200 OK, and the volume is set on the camera. Most vexing!</p>

<p>If you think you can help, <a href="http://stackoverflow.com/questions/19686996/post-audio-to-a-network-camera">please leave an answer on StackOverflow</a>.</p>

<h2 id="arming-or-lack-thereof"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#arming-or-lack-thereof">Arming - or lack thereof</a></h2>

<p>With my other cameras, I can send a command to arm or disarm.  I don't need the motion detection to send me emails every second of the day - only when I'm out of the house.</p>

<p>Looking at the source code of one of the pages, it looks like it's possible to POST some data to /adm/file.cgi - but it's not clearly documented which parameters are required.  It will take me some time to work through the tangled nest of JavaScript.</p>

<h2 id="email"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#email">Email</a></h2>

<p>The cameras will send video when they detect motion - although getting this to work isn't at all obvious.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/10/SMTP-Settings-Screen-fs8.png" alt="SMTP Settings Screen-fs8" width="590" height="235" class="aligncenter size-full wp-image-8871">
Firstly, the password is hard-coded to be a maximum of 16 characters. If your password is "StarTrekIntoDarkness1" you're out of luck.
Secondly, the "Test the Server" button doesn't actually work.  It randomly gave me errors about not being able to reach the server. I struggled for hours until I discovered that the error messages were lying to me!  If you enter the details correctly, and the camera has access to the Internet, it should just work.</p>

<p>That said, once enabled, it will happily send emails with large video attachments to you.</p>

<h2 id="video-audio"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#video-audio">Video Audio</a></h2>

<p>All the cameras have microphones, and all do audio triggering (sending an alert when noise levels rise). Yet none of the cameras would embed audio in with the video.  When streaming over RTSP, it was possible to pick up audio from the microphone.  Lowish quality, 8kHz, mono - but better than nothing.
Again, if anyone knows how to get the alert videos to include audio, please let me know!</p>

<h2 id="motion-detection"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#motion-detection">Motion Detection</a></h2>

<p>Setting the motion detection area is very useful. You might want to ignore movement on the floor if you have a pet, or concentrate on a door handle.  Sadly, with these cameras, you <em>have</em> to use IE6 or greater to set the detection area.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/10/Internet-Explorer-6-REquired-fs8.png" alt="Internet Explorer 6 Required" width="543" height="308" class="aligncenter size-full wp-image-8874"></p>

<p>You can try and use the API to set areas - but without being able to see the area in question, it's an exercise in frustration.</p>

<p>For my needs, having full screen video detection is fine. I may have to borrow a Windows machine if that changes.</p>

<h2 id="open-source"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#open-source">Open Source</a></h2>

<p>Each camera has an embedded Open Source page at /adm/Licenses.txt which includes all the text of the relevant GPL etc.</p>

<p>All three cameras have the following Open Source components:</p>

<ul>
<li>Davicom Ethernet driver</li>
<li>Linux kernel 2.6.18</li>
<li>wireless_tools 26</li>
<li>busybox 1.16.0</li>
<li>dhcpcd 1.3.22-pl1</li>
<li>ez-ipupdate 3.0.11b7</li>
<li>iptables 1.3.4</li>
<li>ppp 2.4.1</li>
<li>cron daemon</li>
<li>samba client 3.06</li>
<li>glibc 2.8</li>
<li>alsa-lib-1.0.16</li>
<li>wpa_supplicant 0.4.5</li>
<li>NTP</li>
<li>thttpd-2.25b</li>
</ul>

<p>Interesting to note that <a href="https://web.archive.org/web/20131121083406/https://busybox.net/oldnews.html">BusyBox is an unstable release version from 2010</a>, thhtpd <a href="http://acme.com/software/thttpd/">supports IPv6</a> even though the <a href="https://web.archive.org/web/20131114145822/http://www.sercomm.co.jp/english/product/hems_camera_spec.html">cameras don't appear to</a>.
wpa_supplicant is <a href="http://hostap.epitest.fi/releases.html">ancient</a> - that may explain why it can't cope with SSIDs with spaces in them. I presume it's the hardware which won't scan the 5GHz range.
The <a href="http://kernelnewbies.org/Linux_2_6_18">Linux kernel is from 2006</a> - that's common enough in embedded systems, but I do wonder if it presents a security risk.</p>

<h2 id="security"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#security">Security</a></h2>

<p>The cameras offer an SSL connection. However, the certificate is self signed and uses <a href="https://wiki.mozilla.org/CA:MD5and1024">MD5 with 1024 bits</a>. Basically, a security signing which was advised against in 2010.
There's no way to replace the certificate without replacing the firmware. If you are willing to trust it, the connection is secured via SSL.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/10/Secure-Connection-fs8.png" alt="Secure Connection" width="311" height="171" class="aligncenter size-full wp-image-8876">
Assuming you can confirm the certificate is correct, the encryption should be sufficient to stop anyone but the NSA peeking through your cameras.</p>

<p>That said, the RTSP channel isn't protected by SSL.  You can give a username/password, set time of day access, and restrict to specific IP addresses - but the video is transmitted in the clear.</p>

<p>For now, I'm keeping my cameras on my LAN with no external access to them.</p>

<h2 id="what-next"><a href="https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/#what-next">What Next</a></h2>

<p>At the moment, I've set the cameras up, but I'm not actively monitoring them - it's just too much work to switch each of them on when I leave for work.</p>

<p>So, if you can help....</p>

<ol>
    <li><a href="http://stackoverflow.com/questions/19686996/post-audio-to-a-network-camera/19795608">How do I send sound to the cameras</a>?</li>
    <li>How do I get audio with the video alerts?</li>
    <li>How do I arm the cameras via the API?</li>
</ol>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=8849&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2013/11/hacking-around-with-network-cameras/feed/</wfw:commentRss>
			<slash:comments>285</slash:comments>
		
		
			</item>
	</channel>
</rss>
