<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Vangelis Stykas]]></title><description><![CDATA[Vangelis Stykas website. The site covers API security research and Vangelis talks.]]></description><link>https://stykas.com/</link><image><url>https://stykas.com/favicon.png</url><title>Vangelis Stykas</title><link>https://stykas.com/</link></image><generator>Ghost 5.24</generator><lastBuildDate>Fri, 27 Mar 2026 10:50:29 GMT</lastBuildDate><atom:link href="https://stykas.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[GWN Cloud - An IDOR coming back from the dead]]></title><description><![CDATA[<p>Could the same vulnerability happen after 3 years ? Is this acceptable ? Are companies learning from our reports or are they just blindly fixing the issue without fixing the root cause and applying proactive measures to prevent them from happenning again ? <br>If you are still reading this I guess you already</p>]]></description><link>https://stykas.com/gwn-cloud/</link><guid isPermaLink="false">641446f86e732287e2f9f5e5</guid><dc:creator><![CDATA[Vangelis Stykas]]></dc:creator><pubDate>Fri, 17 Mar 2023 11:59:39 GMT</pubDate><media:content url="https://stykas.com/content/images/2023/03/homepage-meta-image.webp" medium="image"/><content:encoded><![CDATA[<img src="https://stykas.com/content/images/2023/03/homepage-meta-image.webp" alt="GWN Cloud - An IDOR coming back from the dead"><p>Could the same vulnerability happen after 3 years ? Is this acceptable ? Are companies learning from our reports or are they just blindly fixing the issue without fixing the root cause and applying proactive measures to prevent them from happenning again ? <br>If you are still reading this I guess you already know the answer to those questions.</p><h2 id="playing-with-george">Playing with George</h2><p>Back when I was working in Pentest Partners in 2020 I found a typical user add to organization issue on Grand Stream cloud as you can see in <a href="https://www.pentestpartners.com/security-blog/cloudy-with-a-chance-of-hacking-all-the-wireless-things/">here</a> caused by an IDOR. Fast forward to 2023. I was trying to explain to George, my 7 year old son what an IDOR is and &#xA0;what&apos;s the difference between authentication and authorization (yes I know too young for that, but he has a legacy to keep!) when I reused the same request :</p><pre><code class="language-html">POST /app/user/save HTTP/1.1
Host: www.gwn.cloudConnection: 
closeContent-Length: 72
Accept: application/json, text/plain, */*
Origin: https://www.gwn.cloud
Content-Type: application/json;charset=UTF-8
Referer: https://www.gwn.cloud/account/users
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: SESSION=7672dd7d-58a7-47f2-8bbc-3534108e4987
{&quot;email&quot;:&quot;egw@mailinator.com&quot;,&quot;roleId&quot;:2,&quot;networkIds&quot;:[xxx],</code></pre><p>I could add any network id on the networkIds array and it would instantly make me an admin on that network. Imagine my suprise when this request worked again!</p><h2 id="severity">Severity</h2><p>Back in 2020 it was mostly a data leak and a potential GDPR violation on this as you could leak &#xA0;ssh and WIFI psk of a lot of networks but you still needed physical proximity to get access to said networks.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/2023/03/2023-03-17-13_03_48-GWN.Cloud.png" class="kg-image" alt="GWN Cloud - An IDOR coming back from the dead" loading="lazy" width="759" height="162" srcset="https://stykas.com/content/images/size/w600/2023/03/2023-03-17-13_03_48-GWN.Cloud.png 600w, https://stykas.com/content/images/2023/03/2023-03-17-13_03_48-GWN.Cloud.png 759w" sizes="(min-width: 720px) 720px"><figcaption>WPA2 PSK viewable for a network my new user does not own (my own network)</figcaption></figure><p>This is no longer the case though. GWN new devices have VPN capabilities and router capabilities and as you can guess all of them are managed from GWN.cloud. This means that (under certain circumstances) you can access remote networks by connecting to their VPN server and having direct access to the remote network! (and all that with a simple IDOR).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/2023/03/2023-03-17-13_42_48-GWN.Cloud.png" class="kg-image" alt="GWN Cloud - An IDOR coming back from the dead" loading="lazy" width="1433" height="636" srcset="https://stykas.com/content/images/size/w600/2023/03/2023-03-17-13_42_48-GWN.Cloud.png 600w, https://stykas.com/content/images/size/w1000/2023/03/2023-03-17-13_42_48-GWN.Cloud.png 1000w, https://stykas.com/content/images/2023/03/2023-03-17-13_42_48-GWN.Cloud.png 1433w" sizes="(min-width: 720px) 720px"><figcaption>VPN management is not supported in my network but it is on others.</figcaption></figure><h2 id="disclosure">Disclosure</h2><p>We (me and my son) notified grandstream with a ticket on 30th of January 2023. Their response was :</p><!--kg-card-begin: markdown--><blockquote>
<p>Thank you for reporting this to us.</p>
<p>Please note that the case has been reported internally in order to be fixed. We will inform you once there is an update.<br>
Best regards.</p>
</blockquote>
<!--kg-card-end: markdown--><p>I chased again after 15 days and then after 45 days (today) my tickets was closed. After checking with grandstream they said:</p><!--kg-card-begin: markdown--><blockquote>
<p>Hi Vangelis,<br>
Please note that the fix for this issue is included in the latest GWN Cloud version 1.1.23.44. Thanks.<br>
Best regards,</p>
</blockquote>
<!--kg-card-end: markdown--><p>So it was fixed but they neglected to inform me for it , which is ok as I guess.</p><h2 id="postmortem">Postmortem</h2><p>How could this happen ? <br>The same vulnerability happenning after 3 years on the exact same product is in my humble opinion unacceptable as it means that you learn nothing from the previous vulnerability. <br>I believe that bugs and vulnerabilities are bound to happen and will happen to every system. Its how you react to them and the lessons you learned from them that distinct a great from a not so great company. <br>Grandstream answered and fixed the vulnerability in a timely manner, but I can safely assume that the next time a developer touches that code he might remove the authorization check and there will be no automated test catching that or any penetration testing done on the application.It is essential to conduct regular security testing and assessments, implement adequate security measures, and maintain vigilance to prevent vulnerabilities from persisting or resurfucing in any application.Considering that this is a company that sells networks equipment and firewalls this is not a great sign.</p><h2 id="plus-side">Plus side</h2><p>I could explain the release and maintenace cycle of &#xA0;software to my son and how to properly do it. As this was cloud as always no CVE was assigned.</p>]]></content:encoded></item><item><title><![CDATA[Stalking the stalkers]]></title><description><![CDATA[This is a post on the talk we are currently giving (10th of December 2022) on Bsides London with Felipe Solferini.]]></description><link>https://stykas.com/stalking-the-stalkers/</link><guid isPermaLink="false">6387ca446e732287e2f9f3ed</guid><category><![CDATA[Import 2022-11-30 21:25]]></category><dc:creator><![CDATA[Vangelis Stykas]]></dc:creator><pubDate>Sat, 10 Dec 2022 10:00:35 GMT</pubDate><media:content url="https://stykas.com/content/images/2022/12/39C1B219-B358-458F-BA6B-00D5D070E0EE-800x450.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://stykas.com/content/images/2022/12/39C1B219-B358-458F-BA6B-00D5D070E0EE-800x450.jpeg" alt="Stalking the stalkers"><p>Stalkerware (or spouseware) is a growing threat amongst modern days. A lot of reports were made of abusers that were using this kind of applications to track and monitor their spouses. This is a post expanding on the talk we are currently giving (10th of December 2022) on BSides London with <a href="https://twitter.com/s0lfer" rel="noopener">Felipe Solferini</a>.</p><h3 id="tl-dr">TL:DR</h3><p>We looked at some stalkerware networks (families) and found out that a lot of them were not secure. We took a deeper dive in there and identified that around 2 million devices were being monitored at some point in the past decade from 7 different families.</p><h3 id="quick-intro">Quick intro</h3><p>In this post you are going to read about the 5-month journey that we had on exposing multiple stalkerware family companies and what was the underlying issue that lead to full or partial data exposure of all their customer data. You are not going to find the zero-days that were used as this would be giving access to data of really vulnerable people. We also want to define what stalkerware is. Any application that could be installed and hidden from the user and transmitted data (pictures, call data etc) is considered stalkerware, even if they use the pretext of monitoring teenagers.</p><h3 id="toolset">Toolset</h3><p>The following tools greatly helped in this research:</p><ul><li>Burp Suite</li><li>Jadx Decompiler</li><li>Apklab.io</li><li>Mullvad</li><li>A small droplet on DigitalOcean</li><li>Our little cancerous android phone (which ended up having installed more or less 6 different stalkerware applications at some point).</li></ul><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-cipr-tef4isdv9xmmh7lbw.jpg" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1777" height="2360" srcset="https://stykas.com/content/images/size/w600/max/800/1-cipr-tef4isdv9xmmh7lbw.jpg 600w, https://stykas.com/content/images/size/w1000/max/800/1-cipr-tef4isdv9xmmh7lbw.jpg 1000w, https://stykas.com/content/images/size/w1600/max/800/1-cipr-tef4isdv9xmmh7lbw.jpg 1600w, https://stykas.com/content/images/max/800/1-cipr-tef4isdv9xmmh7lbw.jpg 1777w" sizes="(min-width: 720px) 720px"></figure><ul><li>Revolut</li><li>Shodan.io</li></ul><p>The procedure that was followed was try to find a demo account and see if we could find any exploitation from that (with no installation at all). The if we could download the APK we would try to decompile it and find any sensitive information. If this was not the case, APKLab would run it in its sandbox and we would parse the output to see if there was anything juicy in there (sometimes the C2 for the mobile application was different than the control panel). And finally if all else failed we installed it on our android phones and tried to live find vulnerabilities. On certain families that had no demo but were deemed interesting enough, we used Revolut temporary cards to pay and create accounts.</p><p>The results were really depressing. We were able to acquire really sensitive information on all networks. Following is a list of some of the vulnerabilities that were found:</p><ul><li>SQL injections</li><li>Remote command execution</li><li>Leaking private keys (amazon, alibaba and azure)</li><li>Leaking S3 keys</li><li>Insecure direct object reference</li><li>Broken authentication</li></ul><h3 id="stalkerware-families">Stalkerware Families</h3><p>The following list is unfortunately not a complete list of all the stalkerware that there is out there. It is probably not even a complete list of the network members of each family, as they have a variety of marketing plans and resellers networks that are just getting a cut for sellling their products and getting to the parent companies on some of the cases we made assumptions and we even failed to find the parent company. The word family in here is loosely used to define a group of sites that is sharing a common codebase and/or a database. This means that there is a reseller that is selling the &quot;product&quot; and many people that resell it under their own brand.<br></p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Name</th>
<th>User Count</th>
<th>Company</th>
</tr>
</thead>
<tbody>
<tr>
<td>The Truth Spy</td>
<td>230,000</td>
<td>1BYTE</td>
</tr>
<tr>
<td>XNSPY</td>
<td>60,000</td>
<td>Konext</td>
</tr>
<tr>
<td>Cocospy</td>
<td>20,000</td>
<td>711.icu</td>
</tr>
<tr>
<td>Mobistealth</td>
<td>125,000</td>
<td>&lt;unknown&gt;</td>
</tr>
<tr>
<td>Spymaster Pro</td>
<td>8,000</td>
<td>Netzens</td>
</tr>
<tr>
<td>SpyTrac</td>
<td>1,300,000</td>
<td>Support King</td>
</tr>
<tr>
<td>PcTattletale</td>
<td>70,000</td>
<td>Bryan Flemming</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p></p><h3 id="why-go-after-so-many">Why go after so many ?</h3><p>As with previous research we like to attack (and prove security problems) on an industry as a whole. Even worse, an industry which is evil. We also got some kind of motivation from Eva&apos;s tweet.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">If you are a security researcher and you want to know what you can do about stalkerware, here is my recommendation:</p>&#x2014; Eva (@evacide) <a href="https://twitter.com/evacide/status/1585692401531699201?ref_src=twsrc%5Etfw">October 27, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p></p><p></p><h3 id="1-tts-the-truth-spy-"><strong>1. TTS (The Truth Spy)</strong></h3><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-a9lkoqtbc-esaex4uzdatg.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1562" height="1008" srcset="https://stykas.com/content/images/size/w600/max/800/1-a9lkoqtbc-esaex4uzdatg.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-a9lkoqtbc-esaex4uzdatg.png 1000w, https://stykas.com/content/images/max/800/1-a9lkoqtbc-esaex4uzdatg.png 1562w" sizes="(min-width: 720px) 720px"></figure><p>Already exploited more than once and <a href="https://techcrunch.com/2022/10/26/inside-thetruthspy-stalkerware/">TechCrunch had a great article on this</a>. Probably one of the biggest resellers in the market. Their current database has approximately 230,000 users and have the following list of websites.</p><ul><li><a href="https://secondclone.com" rel="noopener">https://secondclone.com</a></li><li><a href="https://thetruthspy.com" rel="noopener">https://thetruthspy.com</a></li><li><a href="https://fonetracker.com" rel="noopener">https://fonetracker.com</a></li><li><a href="https://copy9.com" rel="noopener">https://copy9.com</a></li><li><a href="https://mxspy.com/" rel="noopener">https://mxspy.com/</a></li><li><a href="http://thespyapp.com" rel="noopener">http://thespyapp.com</a></li><li><a href="https://ispyoo.com/" rel="noopener">https://ispyoo.com/</a></li><li><a href="https://mobilespyonline.com/" rel="noopener">https://mobilespyonline.com/</a></li><li><a href="https://exactspy.com/" rel="noopener">https://exactspy.com/</a></li><li><a href="https://mobidad.app" rel="noopener">https://mobidad.app</a></li><li><a href="https://guestspy.com" rel="noopener">https://guestspy.com</a></li><li><a href="https://innoaspy.com" rel="noopener">https://innoaspy.com</a></li></ul><p>From their database we can also see the association of each website with a shell company but it all drains down to 1BYTE as their developer and reseller.</p><h3 id="2-xnspy">2. XNSPY</h3><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-lye2emvn8fqu_8odd86pxq.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1401" height="843" srcset="https://stykas.com/content/images/size/w600/max/800/1-lye2emvn8fqu_8odd86pxq.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-lye2emvn8fqu_8odd86pxq.png 1000w, https://stykas.com/content/images/max/800/1-lye2emvn8fqu_8odd86pxq.png 1401w" sizes="(min-width: 720px) 720px"></figure><p>A big enough network (approximately 60,000 users) that seems to be actively marketed and handled<a href="http://konext.co/" rel="noopener"> Konext</a>. Application and network seemed to be actively developed right now.</p><p>The website of the stalkerware is :</p><p><a href="https://xnspy.com/" rel="nofollow noopener">https://xnspy.com/</a></p><h3 id="3-cocospy">3. Cocospy</h3><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-n-1jkxjvjtormkpfr_jppq.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1416" height="961" srcset="https://stykas.com/content/images/size/w600/max/800/1-n-1jkxjvjtormkpfr_jppq.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-n-1jkxjvjtormkpfr_jppq.png 1000w, https://stykas.com/content/images/max/800/1-n-1jkxjvjtormkpfr_jppq.png 1416w" sizes="(min-width: 720px) 720px"></figure><p>Trickiest of every other network to identify its originating company as the vulnerability we found did not allow us to fully dump a database. After a lot of digging and some luck we have strong indication that the company behind this network is <a href="http://www.711.icu" rel="noopener">711.icu</a>. The following websites are part of this network:</p><ul><li><a href="https://cocospy.com" rel="nofollow noopener">https://cocospy.com</a></li><li><a href="https://spyzie.io" rel="nofollow noopener">https://spyzie.io</a></li><li><a href="https://spyic.com" rel="nofollow noopener">https://spyic.com</a></li></ul><h3 id="4-mobistealth">4. Mobistealth</h3><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-xwqujizsq0_p-p9ml1f5ha.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1196" height="1004" srcset="https://stykas.com/content/images/size/w600/max/800/1-xwqujizsq0_p-p9ml1f5ha.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-xwqujizsq0_p-p9ml1f5ha.png 1000w, https://stykas.com/content/images/max/800/1-xwqujizsq0_p-p9ml1f5ha.png 1196w" sizes="(min-width: 720px) 720px"></figure><p>A massive network of over 125,000 devices that seems to be around for more than 10 years (Installations are going back to 2009). The company ownership are yet to be determined. The network was also compromised in 2018 as we can see <a href="https://www.vice.com/en/article/7x77ex/hacker-strikes-stalkerware-companies-stealing-alleged-texts-and-gps-locations-of-customers" rel="noopener">here</a>.</p><p>You can access it on the following url:</p><p><a href="https://www.mobistealth.com/" rel="nofollow noopener">https://www.mobistealth.com/</a></p><h3 id="5-spymaster-pro">5. Spymaster Pro</h3><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-yna1ax4fonm6tvmcxu_zyg.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1385" height="723" srcset="https://stykas.com/content/images/size/w600/max/800/1-yna1ax4fonm6tvmcxu_zyg.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-yna1ax4fonm6tvmcxu_zyg.png 1000w, https://stykas.com/content/images/max/800/1-yna1ax4fonm6tvmcxu_zyg.png 1385w" sizes="(min-width: 720px) 720px"></figure><p>Speaking on networks that were compromised in 2018 (same article), Spymaster Pro seems to be dying down as a network. It has 8,000 devices (approximately 300 active in the past month). Company behind it is Netzens as they proudly state in their <a href="https://admin.spymasterpro.com/" rel="noopener">admin panel</a>.</p><p>You can access it on the following url:</p><p><a href="https://www.spymasterpro.com/" rel="nofollow noopener">https://www.spymasterpro.com/</a></p><h3 id="6-spytrac">6. SpyTrac</h3><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-kgxevdugbijvsluj2jjgpa.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1396" height="865" srcset="https://stykas.com/content/images/size/w600/max/800/1-kgxevdugbijvsluj2jjgpa.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-kgxevdugbijvsluj2jjgpa.png 1000w, https://stykas.com/content/images/max/800/1-kgxevdugbijvsluj2jjgpa.png 1396w" sizes="(min-width: 720px) 720px"></figure><p>This was a network that we randomly found and seemed to be really new (~1 year). Imagine our surprise when we found out that it had over 1.3 milion devices registered. When we started digging we found out that the company behind it was Support King. If that does not ring a bell to you I am happy for you as you have never looked at stalkerware before. Support King was fined via the <a href="https://www.ftc.gov/legal-library/browse/cases-proceedings/192-3003-support-king-llc-spyfonecom-matter" rel="noopener">FTC</a> and ordered to remove everything and not work with this industry any more. Well... it seems they did not listen and rebranded everything as SpyTrac. The functionality that this panel and app have is by far the most complete of all, together with its huge userbase it&apos;s probably one of the scariest resellers of all.</p><p>You can access it on the following url:</p><p><a href="https://spytrac.com/" rel="nofollow noopener">https://spytrac.com/</a></p><h3 id="7-pctattletale">7. PcTattletale</h3><figure class="kg-card kg-image-card"><img src="https://stykas.com/content/images/max/800/1-rkmhbntb8oll3j0jzgsh5g.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="1427" height="936" srcset="https://stykas.com/content/images/size/w600/max/800/1-rkmhbntb8oll3j0jzgsh5g.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-rkmhbntb8oll3j0jzgsh5g.png 1000w, https://stykas.com/content/images/max/800/1-rkmhbntb8oll3j0jzgsh5g.png 1427w" sizes="(min-width: 720px) 720px"></figure><p>Even though it has an Android application, it is mostly known for its PC application that can be used to snoop on a spouse&apos;s computer. The application was not handling security at all, so it was possible to leak all the information about its approximately 60,000 users.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-mlnkmifitjujpbeg8j4qfq.png" class="kg-image" alt="Stalking the stalkers" loading="lazy" width="808" height="417" srcset="https://stykas.com/content/images/size/w600/max/800/1-mlnkmifitjujpbeg8j4qfq.png 600w, https://stykas.com/content/images/max/800/1-mlnkmifitjujpbeg8j4qfq.png 808w" sizes="(min-width: 720px) 720px"><figcaption>NO.</figcaption></figure><p>You can access it on the following url:</p><p><a href="https://www.pctattletale.com/" rel="nofollow noopener">https://www.pctattletale.com/</a></p><h3 id="prevention">Prevention</h3><p>If you or someone you know needs help , reach out to you national Domestic Violence Hotline that should provide help 24/7. If you are in an emergency situation call your nation police number.The <a href="https://stopstalkerware.org/" rel="noopener">Coalition Against Stalkerware</a> also has resources if you think your phone has been compromised by spyware.</p><h3 id="-not-honorable-mention-">(Not) Honorable mention:</h3><p>If you do some OSINT on all the website you are going to see that most of them are behind Cloudflare. This means that their far from secure code was just protected by a really good WAF. We found ways to bypass this (mostly with Shodan finding actual IPs) but it&apos;s worth mentioning that for Cloudflare (and for Amazon, Azure and other reputable hosting providers) spouseware is within their acceptable ToS.</p><p><strong>Thanks:</strong></p><p>We would like to thank both Eva Galperin who greatly helps into getting more visibility into the huge stalkerware problem and Zack Whittaker who helped with OSINT searching and morally as this kind of research is really stressfull due to its nature. Last but not least we would like to help GoLang expert <a href="https://www.linkedin.com/in/georlav/">George Lavdanis </a> who created a properly scalable parsing solution to make millions of requests without having to wait for years.</p>]]></content:encoded></item><item><title><![CDATA[Totally Pwning the Tapplock Smart Lock (the API way)]]></title><description><![CDATA[tl:dr: Tapplocks api endpoints had no security checks other than a valid token to access any data.This results in anyone with a valid login…]]></description><link>https://stykas.com/totally-pwning-the-tapplock-smart-lock-the-api-way/</link><guid isPermaLink="false">6387ca446e732287e2f9f3fa</guid><category><![CDATA[Import 2022-11-30 21:25]]></category><dc:creator><![CDATA[Vangelis Stykas]]></dc:creator><pubDate>Fri, 15 Jun 2018 15:54:37 GMT</pubDate><media:content url="https://stykas.com/content/images/2022/11/tappapiW-768x384.png" medium="image"/><content:encoded><![CDATA[<img src="https://stykas.com/content/images/2022/11/tappapiW-768x384.png" alt="Totally Pwning the Tapplock Smart Lock (the API way)"><p><strong>tl:dr: </strong>Tapplocks api endpoints had no security checks other than a valid token to access any data.This results in anyone with a valid login (easily obtained by creating an account) being able to manipulate every tapplock available!</p><hr><h3 id="the-usual-suspect-">The usual suspect&#x2026;</h3><p>Yesterday I read the great article by the one and only <a href="https://twitter.com/cybergibbons" rel="noopener">cybbergibbons</a> about tapplock and <a href="https://www.pentestpartners.com/security-blog/totally-pwning-the-tapplock-smart-lock/" rel="noopener">totally pwning it</a> and as always I wanted to do it! I cannot do a lot hardware wise (and certainly nothing more than cybergibbons did) so lets check the mobile apps.I downloaded the app and started poking around.First of all no https which is a very bad sign. Then the usual suspects: Direct access object vulnerability. Created a second user and tried accessing the first ones properties: Success!</p><h3 id="can-i-hack-your-lock-please">Can I hack your lock please ?</h3><p>I did not have any locks (and I am out of IoT budget for this month as my wife has -kindly- informed me), so in order to verify some stuff I reached out to the original reporter who was kind enough to share with me his email (that was all that I wanted and needed as brute forcing ALL accounts would be illegal) and his consent for me to access his details. I also believe this is the first time a twitter DM is used as a GDPR consent</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-nvir5j89znlt9tph3pn5ww.png" class="kg-image" alt="Totally Pwning the Tapplock Smart Lock (the API way)" loading="lazy" width="518" height="53"><figcaption>Twitter DM as a GDPR&#xA0;consent</figcaption></figure><p>After that I was able to verify that :</p><ol><li>I could access all info about any lock (with an incremental id that I did not try brute forcing as I had cybergibbons id, and that would be illegal). And by all I mean ALL (key1, key2, serial and everything else). This means that everything was enumerable via simple relationships. (lock -&gt; fingerprint -&gt; user).</li><li>I could share any lock I wanted PERMANENTLY to any account and the lock owner would not be able to remove it (or at least as the original article says have the feeling that he did)</li><li>I could do pretty much everything that you can do with the app by changing some parameters in the http calls as no check other than the one of a valid login is being made.</li><li>There were some hidden API calls that could delete or change a lot of stuff but I did not verify that this data ends up in the lock, as I did not had the time and did not want to bug more cybergibbons.</li><li>I could access really sensitive PII (like the user exact address when he/she unlocked the lock via bluetooth (possibly home address) and email) which is probably a violation of GDPR.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-8h3wzq2tqtnfu3rz8izngq.jpg" class="kg-image" alt="Totally Pwning the Tapplock Smart Lock (the API way)" loading="lazy" width="704" height="661" srcset="https://stykas.com/content/images/size/w600/max/800/1-8h3wzq2tqtnfu3rz8izngq.jpg 600w, https://stykas.com/content/images/max/800/1-8h3wzq2tqtnfu3rz8izngq.jpg 704w"><figcaption>That&#x2019;s cybergibbons address when he was hacking the lock in&#xA0;infosec!</figcaption></figure><h3 id="attack-scenario">Attack scenario</h3><p>So after my findings, things look really bad.I could script an attack that would share any lock permanently with my account (or ANY account), then extract all the locks last unlock location, go there and unlock them via the official app! Pentest partners hack was way cooler but in the process we also got a GDPR violation + we also know location now! It feels like we are on a CTF.</p><h3 id="notifications">Notifications</h3><ul><li>2018/06/14 : Notified tapplock of the findings</li><li>2018/06/15: Got a reply from tapplock: &#x201C;We are making a plan to disable the APIs that are related to GDPR sensitive data in the next 24 hours.&#x201D;</li><li>2018/06/15: Replied to tapplock for my disclosure procedure.</li><li>2018/06/16: Tapplock got the API down after pressure because it was exposing GDPR data.</li></ul><h3 id="postmortem-">Postmortem:</h3><p>In here I usually write about how you should buy something from a well known company and how they should respond and some more but not this time. I really have no postmortem on this one. The lock had several flaws and to my understanding they had a great marketing team but a non existent security team. I cannot tell you to buy or not buy anything as I don&#x2019;t have the authority to do so but I would not buy this lock.</p>]]></content:encoded></item><item><title><![CDATA[Remote smart car hacking with just a phone.]]></title><description><![CDATA[tl;dr: Calamp which provides the backend for a lot of really well known car alarm systems had a misconfigured reporting server that gave…]]></description><link>https://stykas.com/remote-smart-car-hacking-with-just-a-phone/</link><guid isPermaLink="false">6387ca446e732287e2f9f3fb</guid><category><![CDATA[Import 2022-11-30 21:25]]></category><dc:creator><![CDATA[Vangelis Stykas]]></dc:creator><pubDate>Sat, 12 May 2018 18:03:47 GMT</pubDate><media:content url="https://stykas.com/content/images/max/800/1-e2w8alsk1dmwwzvba7g4gq.png" medium="image"/><content:encoded><![CDATA[<img src="https://stykas.com/content/images/max/800/1-e2w8alsk1dmwwzvba7g4gq.png" alt="Remote smart car hacking with just a phone."><p><strong>tl;dr: </strong>Calamp which provides the backend for a lot of really well known car alarm systems had a misconfigured reporting server that gave direct access to most of its production databases, allowing anyone to access and modify all data.</p><h3 id="oh-father-what-have-you-done">Oh father , what have you done?</h3><p>As many of my twitter followers know, I LOVE breaking IoT stuff. Not its hardware unfortunately as these skills are close to non existent for me, but monitoring its traffic and trying a lot of strange things in their cloud servers is one of my favorite things in the world. So when my father called and said he got a brand new smart car alarm I was like &#x201C;are you kidding?&#x201D;.I asked for the model (it was a Viper Smart Start System), called <a href="https://www.linkedin.com/in/georlav/" rel="noopener">George</a> and then started poking around their mobile app&#x2026;</p><h3 id="dead-ends-everywhere">Dead ends everywhere</h3><p>So their mobile app was extra cool.It had ssl connection and ssl pinning so I had to use my usual unpinning process to get ANYTHING.After a couple of hours of testing stuff and trying several random known tricks we always hit a wall. After that, we tried to login on their webpage and tried again any trick that came to mind. Once again everything was correctly returned or we did not have authorization to see it.</p><h3 id="calamp-com-server">Calamp.com server</h3><p>Then we noticed that the app was not connecting solely to mysmartstart.com domain but mostly to a third party domain (<a href="https://colt.calamp-ts.com/" rel="nofollow noopener">https://colt.calamp-ts.com/</a>). Again with ssl pinning and all proper bells and whistles. This panel seemed to be the frontend for Calamp.com <a href="https://www.calamp.com/products/calamp-lenderoutlook/" rel="noopener">Lender Outlook</a> service. We tried our user created from the viper app, to login and it worked! This was a different panel which seemed to be targeted to the companies that have multiple sub-accounts and a lot of vehicles so that they can manage them.We tried creating a sub-account and tried escalating to our parent account but despite the feeling that I had this was another dead end. We tried directly accessing other ids and everything else we could think of but everything was correctly secured.And then it hit us&#x2026;</p><h3 id="reporting-server">Reporting server</h3><p>All the reports were provided by another server, dedicated for that ,running tibco jasperreports&#xAE; software.None of us were familiar with that so we had to improvise. Removing all the parameters we found out that we were already logged in with a limited user that had access to A LOT of reports.We had to run all those reports for our vehicles right? Well the ids for the user was passed automatically from the frontend but now we had to provide them from the panel as an input.And&#x2026;well..we could provide any number we wanted.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-hn5egzwpbu63jmznt7gijq.png" class="kg-image" alt="Remote smart car hacking with just a phone." loading="lazy" width="1897" height="1016" srcset="https://stykas.com/content/images/size/w600/max/800/1-hn5egzwpbu63jmznt7gijq.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-hn5egzwpbu63jmznt7gijq.png 1000w, https://stykas.com/content/images/size/w1600/max/800/1-hn5egzwpbu63jmznt7gijq.png 1600w, https://stykas.com/content/images/max/800/1-hn5egzwpbu63jmznt7gijq.png 1897w" sizes="(min-width: 720px) 720px"><figcaption>Reporting server welcome&#xA0;screen</figcaption></figure><p>So we could see all the reports for all the vehicles (including location history). NOT ANOTHER TRACKMAGEDDON PLEASE! Then George saw that there were also data sources with usernames (but masked passwords and no way for us to export them , as we were a limited user). We could not create a report or an adhoc or pretty much anything else, but we could copy paste existing ones and edit them so we can do pretty much anything.We could also edit the report and add arbitrary XSS to steal information but this was not something that we (or anyone in their right lawful mind) would want to do. Then it hit us again! Inputs were raw sql queries!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-3elckfo2qsuvg9w5ta11pw.png" class="kg-image" alt="Remote smart car hacking with just a phone." loading="lazy" width="1868" height="833" srcset="https://stykas.com/content/images/size/w600/max/800/1-3elckfo2qsuvg9w5ta11pw.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-3elckfo2qsuvg9w5ta11pw.png 1000w, https://stykas.com/content/images/size/w1600/max/800/1-3elckfo2qsuvg9w5ta11pw.png 1600w, https://stykas.com/content/images/max/800/1-3elckfo2qsuvg9w5ta11pw.png 1868w" sizes="(min-width: 720px) 720px"><figcaption>Writing sql queries on an&#xA0;input.</figcaption></figure><p>Running on all their production databases (yes it was not only colt that used that report server but <a href="https://connect.calamp.com/deviceoutlook/app/" rel="noopener">connect device outlook</a> also, a database that we did not touch at any point). So we created a new input with a select * with our user whose id we already knew and we got back data. I then changed the password via the mobile app reran the query and saw another hash. We tried an update query with the old hash and yeap the account was accessible with the old password via the mobile app.Full account takeover and device manipulation. At that point we stopped as we had to report everything. But first I had to call my father. When I told him what I could do without his username/password he answered &#x201C;Well you could have just asked for them&#x201D;&#x2026;</p><h3 id="reporting-the-vulnerability">Reporting the vulnerability</h3><p>Now this was rather tricky (and colamp.com promised that they will fix that by updating their policy so that researchers can have a direct way of reaching out to them with any vulnerabilities -now available at <a href="https://www.calamp.com/bug-report/" rel="nofollow noopener">https://www.calamp.com/bug-report/</a> -).Below are the dates of communication.We were rather pushy on this as this was a full takeover of A LOT OF CARS (both directed and viper apps have each over half a million downloads on android app store and the connect database was also exposed which controls a large number of IoT devices).</p><ul><li>2018&#x2013;05&#x2013;01: Sent support request requesting proper disclosure steps</li><li>2018&#x2013;05&#x2013;01: Asked via twitter dm on <a href="http://twitter.com/calamp" rel="noopener">@calamp</a> for an email to sent report</li><li>2018&#x2013;05&#x2013;02: Reached out via linkedin to a cybersecurity employee at calamp for direction on proper disclosure</li><li>2018&#x2013;05&#x2013;02: Reached out to CERT which guided us to the proper communication channel</li><li>2018&#x2013;05&#x2013;02: Calamp answered and acknowledged issue</li><li>2018&#x2013;05&#x2013;03: Calamp updated us that their are working on a fix</li><li>2018&#x2013;05&#x2013;12: Calamp notified us that it was patched and after verification we are releasing this.</li></ul><h3 id="exploitation-of-the-bug">Exploitation of the bug</h3><ul><li>Well the very obvious just change the user password to a known one go to the car, unlock, start and leave.</li><li>Get all the reports of where everyone was</li><li>Stop the engine while someone was driving ?</li><li>Start the engine when you shouldn&#x2019;t.</li><li>Get all the users and leak.</li><li>As we haven&#x2019;t actually seen the hardware we might be able to pass can bus messages though the app ?</li><li>Get all the IoT devices from connect database or reset a password there and start poking around.</li><li>Really the possibilities are endless&#x2026;</li></ul><h3 id="was-my-smartstart-vehicle-iot-vulnerable">Was my smartstart / vehicle / IoT vulnerable?</h3><p>We honestly have no idea how many companies (or vehicles) use this backend service. It seems that all the brands that are at directed.com website were using that backend so it is somewhat safe to assume that they were vulnerable. It also seems that a lot of companies use the telematic cloud of calamp.com (both for vehicles , fleet management and IoT) so you will have to reach out to your operator and ask them as calamp stated that they coordinated directly with their customers.</p><h3 id="postmortem">Postmortem</h3><p>If you are an end user try to buy only well known products that you believe will have quality in all aspects and will be updated once a vulnerability is found.This (like <a href="https://stykas.com/hackvision/">hakvision</a>) is another example of things that you did to be more secure and ended up making you more vulnerable.</p><p>If you are a company, please for the love of whatever is holy create a security@ email and monitor it.Write down a proper vulnerability disclosure policy and stick with it.When creating users always have least privilege principle in mind! Reporting user could and should have only read only access. And never trust any input from the user, or think that the user will use your app in your intended way.</p>]]></content:encoded></item><item><title><![CDATA[I spy with my little eye... #hakvision]]></title><description><![CDATA[tl;dr: Hikvisions cloud services (hik-connect.com) rely on a cookie value to determine with what user you are logged in.Changing the user…]]></description><link>https://stykas.com/hackvision/</link><guid isPermaLink="false">6387ca446e732287e2f9f3fd</guid><category><![CDATA[Import 2022-11-30 21:25]]></category><dc:creator><![CDATA[Vangelis Stykas]]></dc:creator><pubDate>Tue, 24 Apr 2018 12:52:00 GMT</pubDate><media:content url="https://stykas.com/content/images/max/800/1-bkan_0e1m8n1ezfsftcvig.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://stykas.com/content/images/max/800/1-bkan_0e1m8n1ezfsftcvig.jpg" alt="I spy with my little eye... #hakvision"><p><strong>tl;dr: </strong>Hikvisions cloud services (hik-connect.com) rely on a cookie value to determine with what user you are logged in.Changing the user id cookie value with another users id results into you being logged in as that user.While the user id is a hashed key we found a way to find out the user id of another user just by knowing the email,phone or username they used while registering, after that you can view the live feed of the cam/DVR, manipulate the DVR, change that user&#x2019;s email/phone and password and effectively lock the user out without leaving him an option to reuse that device with hik-connect even after a factory reset of the device.</p><h3 id="what-to-do-on-a-slow-friday-">What to do on a slow Friday&#x2026;</h3><p>After reading cybergibbons <a href="https://twitter.com/cybergibbons/status/986927765420150784" rel="noopener">tweet</a> about having 13 of the same camera model I remembered that I have a DVR on my home that I have never played around with and it was a REALLY SLOW Friday so I pinged my friend (and regular partner in all thing cyber) <a href="https://www.linkedin.com/in/georlav/" rel="noopener">George Lavdanis</a> and started tinkering stuff :). We are both mostly web guys so reversing the firmware was probably our last resort.<br>I found out that my DVR wanted to update to a new firmware and that update was introducing a new cloud service (hik-connect.com) that would help you access your camera without port forwarding on your router.As a friend says: &#x201C;don&#x2019;t look at the individual devices when you can look at the backend and pwn everyone&#x201D;.</p><hr><h3 id="identifying-the-bug">Identifying the bug</h3><p>Creating a user on hik-connect.com and playing around none of the usual suspects (DAO or some logic flow error) stand out until we looked at the cookie. There we saw that there was a LOT OF DATA. Username , user id and more stuff. We tried changing the username (AS_Username) and after a refresh we found the new (changed) value on the page. Ok no harm there is not a chance that this is the case with the user id (just trust the cookie without actually checking the session first).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-keq8_x2p0wxxntoclmxfjg.png" class="kg-image" alt="I spy with my little eye... #hakvision" loading="lazy" width="547" height="490"><figcaption>A lot of info on that&#xA0;cookie&#x2026;</figcaption></figure><p>Created a new user to verify that.After creating the new user we used the first users userid as the cookie value on AS_UserID and&#x2026;F**K, we can see the users devices.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-cegljp4qxzod1pifi8nhqg.png" class="kg-image" alt="I spy with my little eye... #hakvision" loading="lazy" width="1101" height="719" srcset="https://stykas.com/content/images/size/w600/max/800/1-cegljp4qxzod1pifi8nhqg.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-cegljp4qxzod1pifi8nhqg.png 1000w, https://stykas.com/content/images/max/800/1-cegljp4qxzod1pifi8nhqg.png 1101w" sizes="(min-width: 720px) 720px"><figcaption>That device does not belong to the logged in&#xA0;user&#x2026;</figcaption></figure><p>So we have confirmed that we can login as any user given that we know his/her user id. User id seems to be a hash (probably a salted md5) and not a sequential number so there is a danger but not that big. We spent quite some time trying to reverse it but seems that its either an md5 with a pretty good salt, a random string or an md5 of a random string that is assigned to the user upon registration. We quit trying to reverse it as it seemed to be a dead end.</p><hr><h3 id="user-id-hunting">User id hunting</h3><p>We then tried to find a user list or something that would give us a way to find a user id by providing some user info. Password reset could enumerate users by email, share device could also enumerate users existence by email or phone but was just returning a status code and nothing meaningful. We were pretty disappointed as we had a pretty nice bug that we couldn&#x2019;t really use. At that point George found out that our existing credentials were also working on ezvizlife.com . Ezviz is a different (older?) cloud service for hikvision which is mostly active x so it needed internet explorer and windows (and no chrome or firefox tools).</p><p>So lets fire up a virtual machine and explore it! It&#x2019;s mostly the same functionality BUT it also has another feature , you can mark a user as a friend with no interaction needed by the other user just by knowing the email or phone that the other user used upon registration (searching was using the endpoint queryByMobile.json and was returning the same status codes as the the search on hik-connect.com site).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-k40r_s0j0xqjgxmkvlc3cg.png" class="kg-image" alt="I spy with my little eye... #hakvision" loading="lazy" width="1295" height="896" srcset="https://stykas.com/content/images/size/w600/max/800/1-k40r_s0j0xqjgxmkvlc3cg.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-k40r_s0j0xqjgxmkvlc3cg.png 1000w, https://stykas.com/content/images/max/800/1-k40r_s0j0xqjgxmkvlc3cg.png 1295w" sizes="(min-width: 720px) 720px"><figcaption>Adding a&#xA0;friend</figcaption></figure><p>After befriending the user we saw an md5 hash in the url and started celebrating but that was wrong (bummer&#x2026;).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-n-vm6ow-imidwpexdaljfq.png" class="kg-image" alt="I spy with my little eye... #hakvision" loading="lazy" width="2000" height="598" srcset="https://stykas.com/content/images/size/w600/max/800/1-n-vm6ow-imidwpexdaljfq.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-n-vm6ow-imidwpexdaljfq.png 1000w, https://stykas.com/content/images/size/w1600/max/800/1-n-vm6ow-imidwpexdaljfq.png 1600w, https://stykas.com/content/images/size/w2400/max/800/1-n-vm6ow-imidwpexdaljfq.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>The not a friend&#xA0;request</figcaption></figure><p>After that, we explored a couple more ways of obtaining user ids but everything was a dead end. After everything we retried queryByMobile.json and it was returning WAY more than the usual status code (WTF just happened?). Re-validating and yes we have user ids&#x2026;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stykas.com/content/images/max/800/1-42jb1tajv-lsjflre9sifg.png" class="kg-image" alt="I spy with my little eye... #hakvision" loading="lazy" width="2000" height="709" srcset="https://stykas.com/content/images/size/w600/max/800/1-42jb1tajv-lsjflre9sifg.png 600w, https://stykas.com/content/images/size/w1000/max/800/1-42jb1tajv-lsjflre9sifg.png 1000w, https://stykas.com/content/images/size/w1600/max/800/1-42jb1tajv-lsjflre9sifg.png 1600w, https://stykas.com/content/images/max/800/1-42jb1tajv-lsjflre9sifg.png 2186w" sizes="(min-width: 720px) 720px"><figcaption>The friend&#xA0;request</figcaption></figure><p>It seems that after you mark a user as a friend you can query him and you get a userDTO which also has the (wanted) user id! So now we can login as any user as long as we have his email, phone number or username (endpoint was also returning data for username although there was no UI for it) and impersonate him. That is highly critical so we wrote a small report and send it to Hikvision.</p><hr><h3 id="exploitation-of-the-bug">Exploitation of the bug</h3><p>After that and while waiting for Hikvision lets see WHAT can we do from hik-connect and ezviz:</p><ul><li>We can (obviously) see the devices of the user, live video and playback from the device.</li><li>We can change the user email and phone number and effectively take over his account after resetting his password (in order to do that we will need to logout and click on forget password AFTER changing email/phone and input a new password).After that even factory reseting the device will not unbound it from our account.The victim will have to contact hikvision to do that.</li><li>If we change the password we can use the devices menu on the hik-connect android app and manage the device (update firmware and brick it or do whatever we want) without any password given.</li><li>We could be more silent and just add a share on our own account and the user will never know that we are watching if he is not checking the sharing tab in his app regularly.</li><li>Enumerating users with existing email, phone, user lists and then exploiting could lead to a HUGE data leak</li><li>Enumerating users with known hikvision employees emails and then using their elevated accounts (NOT verified as this would be highly illegal).</li><li>When sending feedback via the hik-connect iphone/android app you get assigned a WishlistResponsiblelist that seems to be a Hikvision employee.Guess what ? A userid also exists in there. (NOT verified if we can login with that user id though)</li></ul><h3 id="vendor-communication-">Vendor communication:</h3><ul><li>20/4/2018: Reached out to hikvision for guidance on proper disclosure procedure</li><li>21/4/2018: Hikvision responded.</li><li>21/4/2018: Vulnerability report sent.</li><li>23/4/2018: Hikvision responds that this will be fixed &#x201C;by this week&#x201D;.</li><li>24/4/2018: Hikvision released a fix on the issue at 2 p.m. and notified us.</li><li>24/4/2018: Verifying that Hikvision has nothing else to release before we publish this article.</li></ul><h3 id="postmortem-">Postmortem:</h3><p>If you are a developer never EVER trust anything from the users. Filter, check and sanitize external input.<br>If you are an end user try to keep your devices updated and limit your IoT devices via network segmentation.This vulnerability is a nice example of how a service that was developed to help towards extra security (no port forwarding and no IoT exposed on internet) backfired spectacularly. We don&#x2019;t know of any way to protect against these kind of attack other than use only products from well known vendors (which may also have issues of course but would have better monitoring and will respond -and not ignore everything like <a href="https://0x0.li/trackmageddon/" rel="noopener">trackmageddon</a> vendors-) or not use those devices at all.</p>]]></content:encoded></item><item><title><![CDATA[Row, row, row your boat: Pwning ship’s VSAT for fun and profit.]]></title><description><![CDATA[Some background:]]></description><link>https://stykas.com/pwning-ships-vsat-for-fun-and-profit/</link><guid isPermaLink="false">6387ca446e732287e2f9f3fc</guid><category><![CDATA[Import 2022-11-30 21:25]]></category><dc:creator><![CDATA[Vangelis Stykas]]></dc:creator><pubDate>Thu, 15 Feb 2018 21:11:11 GMT</pubDate><media:content url="https://stykas.com/content/images/max/800/1-u3oci-zdl26xbybv7hjdjg.png" medium="image"/><content:encoded><![CDATA[<h3 id="some-background-">Some background:</h3><img src="https://stykas.com/content/images/max/800/1-u3oci-zdl26xbybv7hjdjg.png" alt="Row, row, row your boat: Pwning ship&#x2019;s VSAT for fun and profit."><p>Recently a very close friend asked me to do a penetration test on the company that she works for. It is a maritime company so the pen-test would be fun AND dangerous so why the heck not, I thought. I had also recently read the article from Ken Munro on OSINT from ship satcoms (<a href="https://www.pentestpartners.com/security-blog/osint-from-ship-satcoms/" rel="noopener">https://www.pentestpartners.com/security-blog/osint-from-ship-satcoms/</a>) and thought that the results could provide some additional slides for his presentation.</p><p>I found that vessels were connected to the internet by using Navarino Infinity (<a href="https://navarino.gr/portfolio/infinity" rel="noopener">https://navarino.gr/portfolio/infinity</a>) which is exposing a web interface. The web interface was not available directly as the root was returning a 404.I downloaded Infinity&#x2019;s android app and found out that the app was connecting to an internal URL. When this URL was added as the http host header, you were presented with Infinity&#x2019;s login screen over the internet. <strong>Success!</strong></p><p>After a lot of testing and verification, 3 vulnerabilities were found (2 of them really critical). This was also quite tricky as you cannot use any tool that consumes a lot of bandwidth while a ship is at sea as it is deadly expensive so you have to keep it at a minimum.</p><hr><h3 id="blind-sql-injection-"><strong>Blind Sql injection:</strong></h3><p>I could see from the source that there was a script that was being used by the users to add more credit to their cards (or do some other stuff that I could not understand).That script was jq.php and after some quick tests I found out that it was prone to a blind sql injection attack which could be exploited to extract all data from underlying postgresql databases.</p><p><strong>Poc:</strong></p><p>/jq.php?action=loadtransactions&amp;rows=5 returns in 1 second<br>/jq.php?action=loadtransactions&amp;rows=5; pg_sleep(10) returns in 11 seconds</p><p>/jq.php?action=loadtransactions&amp;rows=5; pg_sleep(15) returns in 17 seconds</p><hr><h3 id="session-fixation-"><strong>Session fixation:</strong></h3><p>I also found that there was a phpsessid URL passed around as a URL parameter and this parameter was not changed after login. Thus phishing attacks become a plausible vector allowing you to login as the user or even worse chain it with the previous vulnerability to login as any user. This would also bypass 2-factor authentication that is available on certain installations of Navarino Infinity.</p><hr><h3 id="improper-handling-of-authentication-access-control"><strong>Improper handling of authentication / access control</strong></h3><p>As no proper pen test can be considered complete without some keyboard hitting, I randomly found out that if you change the class part in the URL to a class other than main but keep the function name as authenticate or validateAuthentication it will run that class&#x2019;s main function and return some sensitive data (nothing critical) with no authentication at all. Even worse if the class does not exist it will run main class main function and show the map with the areas of interests (but NO vessels). In general any AJAX request that would be done by those pages would fail with an authentication required error.</p><p><strong>Poc:</strong></p><p>/index.php/logs/authenticate/<br>/index.php/admin/validateAuthentication/</p><p>/index.php/foo/authenticate/<br>/index.php/users/validateAuthentication/</p><hr><p>After finishing the report I contacted Navarino who gave a quick response and acknowledged the vulnerabilities. They fixed everything and pushed a hotfix in less that 30 days in all installations which is impressive considering that there are over 6000 vessels (from what is stated in their website) we are talking about. That&#x2019;s how security incidents should be handled by companies who have internet connected devices.</p><p>Maritime is getting into the connected era really quickly and this can cause problems to anyone who can not adapt and evolve. Ignoring reports by not answering or going black after acknowledging should not be an acceptable choice for any company let alone companies that handle satcom for vessels!</p>]]></content:encoded></item></channel></rss>