<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUMGQH4_fSp7ImA9WhVUF0o.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230</id><updated>2012-05-23T14:50:21.045+02:00</updated><category term="WebApp" /><category term="Mobile" /><category term="Incident Handling" /><category term="PenTest" /><category term="GSM" /><category term="iphone" /><category term="OWASP" /><category term="Wi-Fi" /><category term="SMB" /><category term="Wireshark" /><category term="Vulnerability" /><category term="SSL" /><category term="GSM/UMTS/GPRS/EDGE/HSPA/LTE" /><category term="GPRS" /><category term="Tool" /><title>Taddong</title><subtitle type="html">Security in Depth</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.taddong.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.taddong.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jose Pico</name><uri>http://www.blogger.com/profile/11351143259307490487</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Taddong" /><feedburner:info uri="taddong" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEUBRHw6eSp7ImA9WhVWEko.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-8475160608599274887</id><published>2012-04-23T16:08:00.000+02:00</published><updated>2012-04-24T16:04:15.211+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-24T16:04:15.211+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OWASP" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>OWASP ZAP SmartCard Project</title><content type="html">&lt;a href="https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project"&gt;OWASP ZAP&lt;/a&gt;&amp;nbsp;(Zed Attack Proxy) has become THE open-source web application interception proxy and security auditing tool, replacing well known open-source players in this field we have been using all over the last decade, such as Paros, WebScarab, or AndiParos. The tool is under active development nowadays, with new features and fixes added every other month, and with more to come, for example, from &lt;a href="https://www.owasp.org/index.php/GSoC2012_Ideas#ZAP_Proxy"&gt;GSoC 2012&lt;/a&gt;. As a result of this tool progression and consolidation, ZAP was recently awarded the &lt;a href="http://holisticinfosec.blogspot.com.es/2012/02/2011-toolsmith-tool-of-year-owasp-zap.html"&gt;Toolsmith of the Year for 2011&lt;/a&gt;.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-U34NcXvfsxI/TzVdfHlY2rI/AAAAAAAAAAw/eNOLSIXmvcs/s1600/zap_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="69" src="http://2.bp.blogspot.com/-U34NcXvfsxI/TzVdfHlY2rI/AAAAAAAAAAw/eNOLSIXmvcs/s200/zap_logo.png" width="69" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Some time after Paros was discontinued (v3.2.13 back in August 2006), new fork projects derived from Paros' source code were born. Surprisingly, as this behavior is not common in our industry, &lt;a href="http://pentest4devs.blogspot.com/"&gt;Psiinon (author of the original ZAP tool)&lt;/a&gt; and &lt;a href="http://code.google.com/p/andiparos/"&gt;Axel (author of AndiParos)&lt;/a&gt;, left their egos apart :-) and took a really smart decision: They joined forces to develop a single and powerful web application security tool, instead of developing two very similar but less powerful tools. The result is what we know today as OWASP ZAP!&lt;br /&gt;
&lt;br /&gt;
However, inexplicably still today Paros is downloaded &lt;a href="http://sourceforge.net/projects/paros/"&gt;more than 2,500 times per week from the SourceForge.net project page&lt;/a&gt;, while &lt;a href="http://code.google.com/p/zaproxy/downloads/list?can=1&amp;amp;q=1.3.4&amp;amp;colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount"&gt;the latest ZAP stable version (1.3.4) has been downloaded only 15,000 times in total&lt;/a&gt;&amp;nbsp;during the last 5 months (&lt;i&gt;based on the official open-source platforms statistics&lt;/i&gt;). This demonstrates people are used to their routines, and that there is still a lot of work to do to promote and spread the word about the existence of ZAP, its features, and benefits.&lt;br /&gt;
&lt;br /&gt;
ZAP considerably and brightly stays on top of other commercial and open-source web application security tools and web interception proxies when assessing the security of web applications making use of smartcard-based authentication. When a target web application requests client authentication through digital certificates during the SSL/TLS handshake (re)negotiation, ZAP is able to access the local smartcard and authenticate the user as she would do when no interception proxy is in place.&amp;nbsp;ZAP provides support for multiple smartcard types under different operating systems (Windows, Linux, and Mac OS X) thanks to the Java smartcard built-in capabilities and its integration with PKCS#11 hardware modules.&amp;nbsp;&lt;a href="http://code.google.com/p/zaproxy/wiki/HelpReleases1_1_0"&gt;The original ZAP smartcard support (from version 1.1.0)&lt;/a&gt; was merged by Axel from Andiparos. The current ZAP smartcard support has been greatly simplified through the drivers.xml configuration file. This XML file offers a centralized and extensible architecture to easily add support for new smartcards.&lt;br /&gt;
&lt;br /&gt;
Although other security tools provide&amp;nbsp;support&amp;nbsp;for client digital certificates (x.509 certificates obtained from a file, referred as PKCS#12), we have identified both significant and subtle differences in several target web applications in the way they interact and&amp;nbsp;authenticate&amp;nbsp;the user when using a standard client digital certificate versus a smartcard. Hence, the need to be able to assess how the application behaves when a smartcard is involved.&lt;br /&gt;
&lt;br /&gt;
ZAP smartcard support can be found under the "Tools - Options" menu, within the "Certificate" category, and specifically, on the "PCKS#11" tab:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-DwIwiyFNwHs/T5UzVcQKB-I/AAAAAAAAABI/3Y44aDpzMew/s1600/ZAP_smartcard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/-DwIwiyFNwHs/T5UzVcQKB-I/AAAAAAAAABI/3Y44aDpzMew/s400/ZAP_smartcard.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As a result of my research focused on the &lt;a href="http://blog.taddong.com/2012/04/dnie-based-web-applications-security.html"&gt;security of web applications based on the DNIe&lt;/a&gt;, I have been working on and committing code to ZAP to improve the stability and usage of smartcards, using the Spanish national eID (DNIe) as a reference.&amp;nbsp;For example, capabilities to interact with target web applications that still provide support for unsafe SSL/TLS (HTTPS) renegotiation have been added (&lt;a href="http://blog.taddong.com/2010/04/certificate-based-client-authentication.html"&gt;see my original blog post on this topic from two years ago&lt;/a&gt;), as well as minor fixes for several bugs and issues found during the execution of &lt;a href="http://blog.taddong.com/2012/04/dnie-based-web-applications-security.html"&gt;multiple web application penetration tests on DNIe-based environments&lt;/a&gt;. One of the key fixes was an improvement to overcome PKCS#11 concurrency access conflicts between ZAP and web browsers (such as Firefox).&lt;br /&gt;
&lt;br /&gt;
Additionally, the Spanish DNIe implements brute-force protection capabilities by blocking the smartcard after three login attempts when the user fails to enter the associated access PIN or passcode. Once the DNIe is locked, the only chance to unlock it requires Spanish citizens to go to the police station and follow a custom unlocking procedure. There (in the police station), you can find proprietary DNIe kiosks that allow citizens to authenticate through their fingerprint, stored within a secure area of the smartcard at issuing time, and proceed to change the DNIe access PIN or passcode.&amp;nbsp;In order to avoid frequent visits to the police station&amp;nbsp;by security auditors and pentesters using their DNIe (or any other eID smartcard) while assessing the security of web applications, and entering by mistake the wrong PIN or passcode in ZAP, the tool now implements specific checks and warning messages to alert the user about failed login attempts, trying to avoid blocking the smartcard after three failed access attempts.&lt;br /&gt;
&lt;br /&gt;
All this DNIe-related functionality has been available on the &lt;a href="https://code.google.com/p/zaproxy/source/detail?r=1209"&gt;official ZAP SVN repository since revision 1209&lt;/a&gt;, live at RootedCON 2012 (&lt;a href="http://blog.taddong.com/2012/02/building-owasp-zap-using-eclipse-ide.html"&gt;check how to build ZAP from source code&lt;/a&gt;), and is currently available on the &lt;a href="http://code.google.com/p/zaproxy/downloads/list"&gt;latest downloadable version, ZAP 1.4.0.1&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
To extend this previous research and the implementation already available within ZAP, I have launched a new ZAP-related project focused on improving the support of smartcard-based authentication within ZAP to other eID cards. More information about the &lt;a href="https://code.google.com/p/zaproxy/wiki/SmartCards"&gt;"OWASP ZAP SmartCard Project"&lt;/a&gt; can be found at ZAP's official wiki.&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is to extend the currently available smartcard support within ZAP to other national eID cards worldwide (apart from the Belgium, Swiss, and Spanish eID's), as well as, to other proprietary smartcard solutions from commercial vendors (apart from ActivIdentity, Aladdin, or Axalto). The goal is for ZAP to provide the widest smartcard support within the web application security industry to be able to assess the security of any web application using smartcards and eIDs for authentication purposes through HTTPS (SSL/TLS). Besides that and based on my previous experience, the complementary goal is to extend ZAP with new features that might be required to deal with and manage the different smartcard types.&lt;br /&gt;
&lt;br /&gt;
The current set of supported smartcards within ZAP can be found at &lt;a href="https://code.google.com/p/zaproxy/wiki/SmartCards"&gt;ZAP's official wiki&lt;/a&gt;. This wiki page will be updated as soon as we add support for new smartcards within ZAP, although you can always directly check &lt;a href="https://code.google.com/p/zaproxy/source/browse/trunk/src/xml/drivers.xml"&gt;the "drivers.xml" file from the latest SVN revision&lt;/a&gt;.&amp;nbsp;The draft list of countries that already provide eIDs (electronic-based identification for their citizens) I am aware of is available on the same page (we hope to add support for all or most of them over the following months with the help of the web application development and security communities).&lt;br /&gt;
&lt;br /&gt;
The new "OWASP ZAP SmartCard Project" requires the implication of the community around the world to provide details and help to test new smartcard types. If you are interested on contributing to it, send me an e-mail or write to the &lt;a href="http://groups.google.com/group/zaproxy-develop"&gt;OWASP ZAP Google group (mailing list)&lt;/a&gt;. You can contribute in very different ways: from providing details about the existence of a new smartcard that is used in your country of origin or residence (or commercial smartcards used) for web-based authentication, as well as using ZAP to evaluate the security of smartcard-based web applications and &lt;a href="https://code.google.com/p/zaproxy/issues/list"&gt;report bugs or any other issues you may find&lt;/a&gt;, up to contributing new drivers.xml entries for new smartcards or additional operating systems.&lt;br /&gt;
&lt;br /&gt;
At the end of September I will be talking about the "Security of National eID (smartcard-based) Web Applications" during the &lt;a href="http://2012.brucon.org/"&gt;BruCON 2012 security conference&lt;/a&gt; in Ghent (Belgium) - &lt;i&gt;&lt;a href="http://blog.brucon.org/2012/04/registrations-are-open.html"&gt;first talks&lt;/a&gt;&amp;nbsp;pre-release&lt;/i&gt;&amp;nbsp;- and running the &lt;a href="http://2012.brucon.org/index.php/Training#Assessing_and_Exploiting_Web_Applications_with_Samurai-WTF_by_Raul_Siles"&gt;"Assessing and Exploiting Web Applications with Samurai-WTF"&lt;/a&gt; training.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-8475160608599274887?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/HwRMDtXRLOE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/8475160608599274887/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2012/04/owasp-zap-smartcard-project.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8475160608599274887?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8475160608599274887?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/HwRMDtXRLOE/owasp-zap-smartcard-project.html" title="OWASP ZAP SmartCard Project" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-U34NcXvfsxI/TzVdfHlY2rI/AAAAAAAAAAw/eNOLSIXmvcs/s72-c/zap_logo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2012/04/owasp-zap-smartcard-project.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4AQn8_fCp7ImA9WhVXEE4.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-7889525694961977552</id><published>2012-04-10T08:03:00.000+02:00</published><updated>2012-04-10T08:05:43.144+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-10T08:05:43.144+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="OWASP" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>DNIe-based Web Applications Security</title><content type="html">Early last month the third edition of&amp;nbsp;&lt;a href="http://www.rootedcon.es/"&gt;Rooted CON&lt;/a&gt;&amp;nbsp;took place in Madrid, Rooted CON 2012, with great contents and very interesting topics.&amp;nbsp;During the last day of the&amp;nbsp;conference&amp;nbsp;I presented the results of the research I've been involved in during 2011 and early 2012, focused on the security of web applications based on the Spanish electronic identity card or eID (electronic ID) smartcard, called DNIe ("Documento Nacional de Identidad electrónico", electronic National Identity Card).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-sNe5UJzWeIg/T4K82KAsWOI/AAAAAAAAAA4/XX03fxG18BE/s1600/DNIe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="149" src="http://2.bp.blogspot.com/-sNe5UJzWeIg/T4K82KAsWOI/AAAAAAAAAA4/XX03fxG18BE/s200/DNIe.png" width="200" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-3BR1jz994uE/T4K86rObRYI/AAAAAAAAABA/Yw4fYyfT26k/s1600/DNIe_smartcard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://3.bp.blogspot.com/-3BR1jz994uE/T4K86rObRYI/AAAAAAAAABA/Yw4fYyfT26k/s200/DNIe_smartcard.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The DNIe (or eDNI) is the electronic version of the national ID card for Spanish citizens, and it is currently used to access a great variety of digital services from public and private sectors all over the country, including eGovernment services and web portals plus services from financial institutions, insurance and telecomunication companies, or utility companies (gas, water, electricity...).&lt;br /&gt;
&lt;br /&gt;
Therefore, the DNIe is a key element to authenticate and identify users (Spanish citizens) within private and public critical web applications and services in today's information society in&amp;nbsp;Spain. However, due to the limitations to interact with smartcards and, in particular, the DNIe&amp;nbsp;of the currently available web auditing and pen-testing security tools... ¿are we really sure that the DNIe-based web application and services are secure? The DNIe is (assumed to be) secure, but... ¿is it used in a secure way? ¿Are the web-based client components associated to the DNIe secure? The presentation explored all these questions through new tools, real-world scenarios, and practical demonstrations.&lt;br /&gt;
&lt;br /&gt;
The DNIe is an ISO 7816 smartcard (an evolution from PCKS#15), that contains a pair of X.509 digital certificates plus the associated public and private keys. One certificate is used for authentication/identification purposes (&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;KeyUsage = Digital Signature&lt;/span&gt;) while the other is used for signature purposes (&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;KeyUsage = contentCommitment&lt;/span&gt;). It is important to emphasize that the latter has legal validity, similar to a traditional manuscript signature, what makes the DNIe a recognized&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;CWA 14169&amp;nbsp;&lt;/span&gt;secure signature-creation device&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&amp;nbsp;(EAL4+).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So far, the main DNIe (or generally speaking, smartcard) security threats assume the attacker was able to get physical access to the smartcard and the associated PIN/passcode, or was able to compromise the victim's computer where the smartcard is plugged to and used from. A couple of examples are last year's Rooted CON 2011 research on using a DNIe remotely through a proxying computer,&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;a href="http://www.rootedcon.es/index.php/rooted-con-2011/"&gt;“Man-In-Remote: PKCS11 for fun and non-profit”&lt;/a&gt; by&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;Gabriel González&lt;/span&gt;, or the &lt;a href="http://labs.alienvault.com/labs/index.php/2012/when-the-apt-owns-your-smart-cards-and-certs/"&gt;Sykipot trojan&lt;/a&gt;, targeting US DoD smartcards (ActivClient), reported by AlienVault.&lt;br /&gt;
&lt;br /&gt;
Considering Spain is the worldwide leader on digital identity and signature, with &lt;a href="http://www.mir.es/press/la-policia-nacional-supera-los-25-%20millones-de-dni-electronicos-expedidos-12920"&gt;more than 25 million DNIe issued as of September 29, 2011&lt;/a&gt;&amp;nbsp;(since this +341 million euros&amp;nbsp;project started in 2005), I feel we should lead too the security implications of web applications making use of the DNIe and similar smartcard solutions. In the same way Spain was significantly ahead on the &lt;a href="http://www.eaccessibility-monitoring.eu/descargas/MeAC2_Annual_Report_2011vfinal.docx"&gt;"Monitoring eAccessibility in Europe: 2011 Annual Report"&lt;/a&gt;, we must be ahead on the next eSecurity report (if any) too, both on the public and private sectors. It seems there are at least 26 countries worldwide providing smartcard-based (or digital certificate based) identification and signature solutions to their citizens, therefore this research has to be extended to other smartcard types and scenarios (&lt;i&gt;see [0]&lt;/i&gt;).&lt;br /&gt;
&lt;br /&gt;
I presented together with the smart and fun José A. Guasch,&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;security researcher and one of the editors of the security-related S&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;panish blog &lt;a href="http://www.securitybydefault.com/"&gt;Security By Default&lt;/a&gt;&lt;/span&gt;, as a while ago we realized we were researching about different (but related) security aspects of DNIe-based web applications, so our findings fit perfectly for a joint presentation on this topic.&lt;br /&gt;
&lt;br /&gt;
From a technical side,&amp;nbsp;I talked about the authentication and signature capabilities of web applications based on the DNIe, and the three main vulnerable areas: HTTPS (SSL/TLS), user authentication and registration through the DNIe, and session management in&amp;nbsp;web applications.&amp;nbsp;I have published details and tools previously on the &lt;a href="http://blog.taddong.com/2011/10/tlssled-v12.html"&gt;first (HTTPS)&lt;/a&gt; and &lt;a href="http://blog.taddong.com/2012/02/owasp-session-management-cheat-sheet.html"&gt;last (session management)&lt;/a&gt; topics, so the main focus was on the web interaction with the DNIe (and smartcards in general). During the talk I published live the new DNIe capabilities for web application pen-testers through the OWASP ZAP SVN repository (&lt;a href="https://code.google.com/p/zaproxy/source/detail?r=1209"&gt;SVN official revision 1209 - drivers.xml file&lt;/a&gt;). These new capabilities are available on the &lt;a href="https://code.google.com/p/zaproxy/source/checkout"&gt;ZAP SVN branch&lt;/a&gt; as well as the &lt;a href="https://code.google.com/p/zaproxy/downloads/list"&gt;OWASP ZAP 1.4.x version&lt;/a&gt;, published yesterday (&lt;i&gt;see [0]&lt;/i&gt;).&lt;br /&gt;
&lt;br /&gt;
The presentation covers in depth how to interact with PKCS#11 smartcard devices from Java, and how ZAP smartcard support has been enhanced with DNIe capabilities, stability fixes, and new functionality for the three most common pen-testing platforms: Windows, Linux, and Mac OS X. Additionally, the second portion of my talk presented the results and statistics (plus the associated recommendations) obtained from pen-testing the DNIe capabilities of 15 critical web applications during 2011.&amp;nbsp;The impact of the different vulnerabilities and weaknesses identified on this type of applications is very significant, specially considering the perceived extra security and confidence in the usage of smartcard authentication. If DNIe-based web applications are not securely architected and developed, an attacker can decrypt the victim's web traffic, launch Man-in-the-Middle (MitM) attacks, and manipulate the user registration and authentication processes, plus the user session, to fully impersonate legitimate users in the target web application. Unfortunately, based on the results obtained from these pen-tests there is still a long way to walk to be able to assert that relevant web applications making use of the DNIe are secure.&lt;br /&gt;
&lt;br /&gt;
José talked about the overall security, as well as specific vulnerabilities, that can be found on the client-side components used by web applications (Java applets and ActiveX controls) that interact with the DNIe. These components access the DNIe to (sometimes) provide authentication capabilities and (mainly) verify and generate digital signatures. More information is available on &lt;a href="http://www.securitybydefault.com/2012/04/seguridad-en-componentes-cliente-de.html"&gt;the associated Security By Default blog post(s)&lt;/a&gt; (in Spanish).&lt;br /&gt;
&lt;br /&gt;
This research, plus the additions we are currently working on, are going to be contributed over time to the &lt;a href="https://www.owasp.org/index.php/Spain/Projects/DNIe"&gt;OWASP DNIe project&lt;/a&gt; (in Spanish). This open initiative was launched in June 2011 with the goal of evaluating and improving the security of web applications based on the DNIe.&lt;br /&gt;
&lt;br /&gt;
The presentation&amp;nbsp;(in Spanish) can be downloaded from &lt;a href="http://www.taddong.com/docs/RootedCon2012-Seguridad_de_aplicaciones_web_basadas_en_el_DNIe-v1.0.pdf"&gt;Taddong's lab in PDF format&lt;/a&gt; and it is also available on-line (SlideShare) from the &lt;a href="http://www.rootedcon.es/index.php/ponencias/#dniesec"&gt;Rooted CON papers/talks archive&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
[0]: &lt;i&gt;More specific smartcard and DNIe-related ZAP details, as well as extended research&lt;/i&gt;&lt;i&gt;&amp;nbsp;I'm working on,&amp;nbsp;&lt;/i&gt;&lt;i&gt;will be published on a near future Taddong's blog post.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-7889525694961977552?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/B1ll6Ssu8Og" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/7889525694961977552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2012/04/dnie-based-web-applications-security.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/7889525694961977552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/7889525694961977552?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/B1ll6Ssu8Og/dnie-based-web-applications-security.html" title="DNIe-based Web Applications Security" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-sNe5UJzWeIg/T4K82KAsWOI/AAAAAAAAAA4/XX03fxG18BE/s72-c/DNIe.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2012/04/dnie-based-web-applications-security.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8CR3w5fCp7ImA9WhRaFkg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-2232809946293226237</id><published>2012-02-19T14:07:00.002+01:00</published><updated>2012-02-19T14:07:46.224+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-19T14:07:46.224+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OWASP" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>OWASP Session Management Cheat Sheet (v2.0) &amp; Podcast</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;On July 2011 the &lt;a href="http://blog.taddong.com/2011/07/owasp-session-management-cheat-sheet.html"&gt;OWASP Session Management CheatSheet&lt;/a&gt; was released with the main goal of becoming a useful security reference for web application architects, developers, and security professionals. The document tries to summarize in a concise way all the best practices, recommendations, and countermeasures required to improve the security of today's session management implementations in web applications. The results on our web application penetration tests over the last few years, unfortunately, ratify that session management vulnerabilities are very common and widely prevalent in critical web applications still today.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;&lt;br /&gt;

&lt;a href="https://www.owasp.org/index.php/User:Jmanico"&gt;Jim Manico&lt;/a&gt; gave me the opportunity to include this content in the famous &lt;a href="https://www.owasp.org/index.php/Category:Cheatsheets"&gt;OWASP CheatSheet series&lt;/a&gt; and talk about this topic. As a result, &lt;a href="https://www.owasp.org/download/jmanico/owasp_podcast_90.mp3"&gt;OWASP Podcast number 90, "Raul Siles"&lt;/a&gt;, has been released (check the whole &lt;a href="https://www.owasp.org/index.php/OWASP_Podcast"&gt;OWASP Podcast series&lt;/a&gt;). Thanks Jim!&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;&lt;a href="http://1.bp.blogspot.com/-tW11v_Gx268/TykFJtcxdsI/AAAAAAAAAAg/phGWpt75aV8/s1600/podcast.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="http://1.bp.blogspot.com/-tW11v_Gx268/TykFJtcxdsI/AAAAAAAAAAg/phGWpt75aV8/s200/podcast.jpg" width="100" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;
Around October 2011 I slightly updated the official CheatSheet version in the &lt;a href="https://www.owasp.org/index.php/Session_Management_Cheat_Sheet"&gt;OWASP Wiki&lt;/a&gt;, and last week, in sync with the podcast release, I've published a new version (v2.0). This updated&amp;nbsp;&lt;a href="http://www.taddong.com/en/lab.html#OWASPSESSMGMT2"&gt;downloadable version (in PDF format)&lt;/a&gt; includes the updates from October (check the Wiki and document changelog) plus a new feature I plan to expand in future versions of this document: It includes additional session management references to attacks, pen-testing and auditing techniques, tools, and demonstrations complementing the original security countermeasures and defensive recommendations.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;&lt;span class="Apple-style-span" style="font-size: small; margin-left: 1em; margin-right: 1em;"&gt;&lt;a href="http://4.bp.blogspot.com/-JRIsnS9KyGg/TykF5AjUdzI/AAAAAAAAAAo/0UQn8ebuQbw/s1600/cookie-monster.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://4.bp.blogspot.com/-JRIsnS9KyGg/TykF5AjUdzI/AAAAAAAAAAo/0UQn8ebuQbw/s200/cookie-monster.jpg" width="200" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;
This new version, v2.0, includes the first 10 references/demos, including the OWASP Cookie Database Project, the &lt;a href="http://blog.taddong.com/2011/12/cookie-decoder-f5-big-ip.html"&gt;BIG-­‐IP_cookie_decoder.py&lt;/a&gt; and &lt;a href="http://blog.taddong.com/2011/10/tlssled-v12.html"&gt;TLSSLed&lt;/a&gt; tools, the OddJob session hijacking banking trojan, and more.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;&lt;br /&gt;

I encourage everybody involved in web applications security to review the OWASP Session Management CheatSheet, apply its contents to the currently available web applications and implementations, help spreading the word and &lt;a href="https://www.owasp.org/index.php/Session_Management_Cheat_Sheet"&gt;contribute to it&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;Image src: http://www.gabrielwoo.com/cookie-monster.jpg&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-2232809946293226237?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/UVrvs-V9mmQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/2232809946293226237/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2012/02/owasp-session-management-cheat-sheet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2232809946293226237?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2232809946293226237?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/UVrvs-V9mmQ/owasp-session-management-cheat-sheet.html" title="OWASP Session Management Cheat Sheet (v2.0) &amp; Podcast" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-tW11v_Gx268/TykFJtcxdsI/AAAAAAAAAAg/phGWpt75aV8/s72-c/podcast.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2012/02/owasp-session-management-cheat-sheet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUMR38yeip7ImA9WhRbGEQ.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-6574888621661853369</id><published>2012-02-10T19:24:00.000+01:00</published><updated>2012-02-10T19:24:46.192+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-10T19:24:46.192+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="OWASP" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Building OWASP ZAP Using Eclipse IDE for Java… Pen-Testers (v2.0)</title><content type="html">The &lt;a href="https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project"&gt;OWASP Zed Attack Proxy (ZAP)&lt;/a&gt; is the &lt;a href="http://holisticinfosec.blogspot.com/2012/02/2011-toolsmith-tool-of-year-owasp-zap.html"&gt;Toolsmith Tool of the Year for 2011&lt;/a&gt;. Last Summer, the "&lt;a href="http://blog.taddong.com/2011/08/building-owasp-zap-using-eclipse-ide.html"&gt;Building OWASP ZAP Using Eclipse IDE for Java... Pen-Testers&lt;/a&gt;" (version 1.0) was&amp;nbsp;published, and as the beggining of 2012 seems to be the time for second editions of my work ;-)&amp;nbsp;(&lt;i&gt;check the upcoming blog post with v2.0 of the "OWASP Session Management CheatSheet"&lt;/i&gt;), a new version of the guide has been released.&lt;br /&gt;
&lt;br /&gt;
This new&amp;nbsp;"&lt;strong&gt;&lt;a href="http://www.taddong.com/en/lab.html#BUILDINGZAP2"&gt;Building OWASP ZAP Using Eclipse IDE for Java... Pen-Testers&lt;/a&gt;&lt;/strong&gt;" (version 2.0), available for download from &lt;a href="http://www.taddong.com/en/lab.html"&gt;Taddong's Lab&lt;/a&gt;, includes significant changes from the first version. It provides an updated&amp;nbsp;development environment not only to get and build the latest ZAP version from the official SVN repository, but to easily&amp;nbsp;commit your changes if you want to contribute to the ZAP project. The proposed environment is more user friendly than in the first version, without requiring any external SVN client. Eclipse and Subclipse provide all the development and SVN capabilities integrated into the same tool. The guide also references the recent &lt;a href="https://code.google.com/p/zap-extensions/"&gt;OWASP ZAP Extensions&lt;/a&gt; project and provides guidance to manage Java (JRE or JDK) updates in Eclipse.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-U34NcXvfsxI/TzVdfHlY2rI/AAAAAAAAAAw/eNOLSIXmvcs/s1600/zap_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="69" src="http://2.bp.blogspot.com/-U34NcXvfsxI/TzVdfHlY2rI/AAAAAAAAAAw/eNOLSIXmvcs/s200/zap_logo.png" width="69" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I encourage everyone involved in Web Application Security, from architects to developers, Q&amp;amp;A, auditors,&amp;nbsp;and pen-testers, to take a look at &lt;a href="https://code.google.com/p/zaproxy/"&gt;OWASP ZAP&lt;/a&gt;, the &lt;a href="https://code.google.com/p/zap-extensions/"&gt;OWASP ZAP Extensions&lt;/a&gt;, and use this new building ZAP guide to enjoy the most current version from SVN and contribute to the project. The official &lt;a href="https://code.google.com/p/zaproxy/wiki/Building"&gt;"Building ZAP" Wiki&lt;/a&gt; has been updated to link to both versions of this guide.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;NOTE:&lt;/u&gt;&lt;/strong&gt; I will be talking about OWASP ZAP and release new smartcard features during&amp;nbsp;my &lt;a href="http://www.rootedcon.es/index.php/agenda/"&gt;Rooted CON 2012&lt;/a&gt; talk:&amp;nbsp;"Security of Web Applications using the (Spanish) eID" ("&lt;em&gt;Seguridad de aplicaciones web basadas en el DNIe&lt;/em&gt;", in &lt;em&gt;Spanish&lt;/em&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-6574888621661853369?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/mlStN5TfAGQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/6574888621661853369/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2012/02/building-owasp-zap-using-eclipse-ide.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6574888621661853369?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6574888621661853369?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/mlStN5TfAGQ/building-owasp-zap-using-eclipse-ide.html" title="Building OWASP ZAP Using Eclipse IDE for Java… Pen-Testers (v2.0)" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-U34NcXvfsxI/TzVdfHlY2rI/AAAAAAAAAAw/eNOLSIXmvcs/s72-c/zap_logo.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.taddong.com/2012/02/building-owasp-zap-using-eclipse-ide.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ANQ34_eip7ImA9WhRQEkw.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-6275610344910381874</id><published>2011-12-06T23:42:00.001+01:00</published><updated>2011-12-07T00:56:32.042+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-07T00:56:32.042+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Cookie decoder: F5 BIG-IP</title><content type="html">I still remember with excitement the first time I found my first F5 BIG-IP load balancer persistent cookie, disclosing the network details of the internal hosts: IP address and TCP port. Although it was a few years ago during a pen-test, still today is very common to find them on lots of target environments. The BIG-IP cookie value (used by the F5 devices to balance the client web traffic load) &lt;a href="http://support.f5.com/kb/en-us/solutions/public/6000/900/sol6917.html"&gt;is encoded using a public algorithm&lt;/a&gt; (since May 2007) designed by F5 ("&lt;a href="http://support.f5.com/kb/en-us/solutions/public/6000/900/sol6917.html"&gt;SOL6917: Overview of BIG-IP persistence cookie encoding&lt;/a&gt;").&lt;br /&gt;
&lt;br /&gt;
As it is clearly described in the "&lt;a href="http://blog.taddong.com/2011/07/owasp-session-management-cheat-sheet.html"&gt;OWASP Session Management Cheat Sheet&lt;/a&gt;" I published this Summer (section "2.4. Session ID Content (or Value)"), it is not a very good practice to include any meaningful or sensitive data inside the session ID, or cookie in this case. At some point, someone will figure out how to decode it :-)... so, instead of encoding the data, it is better to use other kind of session ID values. F5 provides a solution to this issue based on encrypting these persistent cookies: "&lt;a href="http://support.f5.com/kb/en-us/solutions/public/7000/700/sol7784.html"&gt;SOL7784: Overview of cookie encryption&lt;/a&gt;".&lt;br /&gt;
&lt;br /&gt;
It is possible to decode the cookies manually reversing the F5 algorithm used to encode the data, but when you are dealing with multiple load balancers and/or internal servers, it is better to use a tool to help in decoding all the cookie values gathered.&amp;nbsp;Although this is an old and well known issue, based on the &lt;a href="http://penturalabs.wordpress.com/2011/03/29/how-to-decode-big-ip-f5-persistence-cookie-values/"&gt;Python script published by dusty&lt;/a&gt; on March 29, 2011, we decided to release a extended version of the script, called "BIG-IP_cookie_decoder.py" and &lt;a href="http://www.taddong.com/tools/BIG-IP_cookie_decoder.zip"&gt;available here&lt;/a&gt; (in ZIP format), that decodes both,&amp;nbsp;the internal host&amp;nbsp;IP address and TCP port. Usage example (as root - in fact not required ;-):&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-BYPaZuwCE1k/Tt6jzi70V-I/AAAAAAAAAAY/_RlCTXQox08/s1600/BIG-IP_cookie_decoder.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-BYPaZuwCE1k/Tt6jzi70V-I/AAAAAAAAAAY/_RlCTXQox08/s1600/BIG-IP_cookie_decoder.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Enjoy it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-6275610344910381874?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/rLxpO8-NKjs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/6275610344910381874/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/12/cookie-decoder-f5-big-ip.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6275610344910381874?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6275610344910381874?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/rLxpO8-NKjs/cookie-decoder-f5-big-ip.html" title="Cookie decoder: F5 BIG-IP" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-BYPaZuwCE1k/Tt6jzi70V-I/AAAAAAAAAAY/_RlCTXQox08/s72-c/BIG-IP_cookie_decoder.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.taddong.com/2011/12/cookie-decoder-f5-big-ip.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YDQHY6fSp7ImA9WhRbF0o.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-277039604045281506</id><published>2011-10-29T02:19:00.001+02:00</published><updated>2012-02-09T08:06:11.815+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-09T08:06:11.815+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Hacking Vulnerable Web Applications Without Going To Jail</title><content type="html">&lt;div&gt;
While teaching web application security and penetration testing, one of the most prevalent questions from the audience at the end of every week is: "&lt;i&gt;How and where can I (legally) put in practice all the knowledge and &lt;/i&gt;&lt;i&gt;test all &lt;/i&gt;&lt;i&gt;the different tools we have covered during the training (while preparing for the next real-world engagement)?&lt;/i&gt;" Along the years I have been providing multiple references to the attendees (including the option of testing real-world vulnerable open-source web applications) and mentioned several times that I had a pending blog post listing all them together... Today is the day! ;)... and I will be able to refer people here in future training sessions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This blog post provides an extensive and updated list (as of October 20, 2011) of vulnerable web applications you can test your web hacking knowledge, pen-testing tools, skills, and kung-fu on, with an added bonus... &lt;b&gt;without going to jail&lt;/b&gt; :) The vulnerable web applications have been classified in three categories: offline, VMs/ISOs, and online. Each list has been ordered alphabetically.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-0fL6WA_e59Q/Tp4CmaTA32I/AAAAAAAAAAQ/r0XKgf2Ej_g/s1600/get-out-of-jail.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5664968240196018018" src="http://2.bp.blogspot.com/-0fL6WA_e59Q/Tp4CmaTA32I/AAAAAAAAAAQ/r0XKgf2Ej_g/s320/get-out-of-jail.jpg" style="cursor: pointer; display: block; height: 214px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Offline&lt;/b&gt;: The following list references downloadable vulnerable web applications to play with that can be installed on a standard operating system (Linux, Windows, Mac OS X, etc) using a standard web platform (Apache/PHP, Tomcat/Java, IIS/.NET, etc).&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;b&gt;BodgeIt Store&lt;/b&gt; (Java): &lt;a href="http://code.google.com/p/bodgeit/"&gt;http://code.google.com/p/bodgeit/&lt;/a&gt; (&lt;a href="http://code.google.com/p/bodgeit/downloads/list"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;The &lt;b&gt;ButterFly Security&lt;/b&gt; Project (PHP): &lt;a href="http://sourceforge.net/projects/thebutterflytmp/"&gt;http://sourceforge.net/projects/thebutterflytmp/&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/thebutterflytmp/files/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Damn Vulnerable Web Application - &lt;b&gt;DVWA&lt;/b&gt; (PHP): &lt;a href="http://www.dvwa.co.uk/"&gt;http://www.dvwa.co.uk&lt;/a&gt; (&lt;a href="http://code.google.com/p/dvwa/downloads/list"&gt;download&lt;/a&gt;) &lt;/li&gt;
&lt;li&gt;OWASP &lt;b&gt;Hackademic Challenges&lt;/b&gt; Project (PHP): &lt;a href="https://www.owasp.org/index.php/OWASP_Hackademic_Challenges_Project"&gt;https://www.owasp.org/index.php/OWASP_Hackademic_Challenges_Project&lt;/a&gt; (&lt;a href="https://code.google.com/p/owasp-hackademic-challenges/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Google &lt;b&gt;Gruyere&lt;/b&gt; (Python): &lt;a href="http://google-gruyere.appspot.com/"&gt;http://google-gruyere.appspot.com&lt;/a&gt; (&lt;a href="http://google-gruyere.appspot.com/gruyere-code.zip"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hacme Bank&lt;/b&gt; (.NET): &lt;a href="http://www.mcafee.com/us/downloads/free-tools/hacme-bank.aspx"&gt;http://www.mcafee.com/us/downloads/free-tools/hacme-bank.aspx&lt;/a&gt; (&lt;a href="http://www.mcafee.com/apps/free-tools/termsofuse.aspx?url=/us/downloads/free-tools/hacme-bank.aspx"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hacme Books&lt;/b&gt; (Java): &lt;a href="http://www.mcafee.com/us/downloads/free-tools/hacmebooks.aspx"&gt;http://www.mcafee.com/us/downloads/free-tools/hacmebooks.aspx&lt;/a&gt; (&lt;a href="http://www.mcafee.com/apps/free-tools/termsofuse.aspx?url=/us/downloads/free-tools/hacmebooks.aspx"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hacme Casino&lt;/b&gt; (Ruby on Rails): &lt;a href="http://www.mcafee.com/us/downloads/free-tools/hacme-casino.aspx"&gt;http://www.mcafee.com/us/downloads/free-tools/hacme-casino.aspx&lt;/a&gt; (&lt;a href="http://www.mcafee.com/apps/free-tools/termsofuse.aspx?url=/us/downloads/free-tools/hacme-casino.aspx"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hacme Shipping&lt;/b&gt; (ColdFusion): &lt;a href="http://www.mcafee.com/us/downloads/free-tools/hacmeshipping.aspx"&gt;http://www.mcafee.com/us/downloads/free-tools/hacmeshipping.aspx&lt;/a&gt; (&lt;a href="http://www.mcafee.com/apps/free-tools/termsofuse.aspx?url=/us/downloads/free-tools/hacmeshipping.aspx"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hacme Travel&lt;/b&gt; (C++): &lt;a href="http://www.mcafee.com/us/downloads/free-tools/hacmetravel.aspx"&gt;http://www.mcafee.com/us/downloads/free-tools/hacmetravel.aspx&lt;/a&gt; (&lt;a href="http://www.mcafee.com/apps/free-tools/termsofuse.aspx?url=/us/downloads/free-tools/hacmetravel.aspx"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;OWASP &lt;b&gt;Insecure Web App&lt;/b&gt; Project (Java): &lt;a href="https://www.owasp.org/index.php/Category:OWASP_Insecure_Web_App_Project"&gt;https://www.owasp.org/index.php/Category:OWASP_Insecure_Web_App_Project&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/insecurewebapp/files/"&gt;download&lt;/a&gt; - &lt;i&gt;orphaned&lt;/i&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mutillidae&lt;/b&gt; (PHP): &lt;a href="http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10"&gt;http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10&lt;/a&gt; (&lt;a href="http://www.irongeek.com/mutillidae/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;OWASP &lt;b&gt;.NET Goat&lt;/b&gt; (C#): &lt;a href="https://owasp.codeplex.com/"&gt;https://owasp.codeplex.com&lt;/a&gt; (&lt;a href="https://owasp.codeplex.com/SourceControl/list/changesets#"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Peruggia&lt;/b&gt; (PHP): &lt;a href="http://peruggia.sourceforge.net/"&gt;http://peruggia.sourceforge.net&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/peruggia/files/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Puzzlemall&lt;/b&gt; (Java):&amp;nbsp;&lt;a href="https://code.google.com/p/puzzlemall/"&gt;https://code.google.com/p/puzzlemall/&lt;/a&gt; (&lt;a href="https://code.google.com/p/puzzlemall/downloads/list"&gt;download&lt;/a&gt;) (&lt;a href="https://code.google.com/p/puzzlemall/downloads/list"&gt;docs&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Stanford &lt;b&gt;Securibench&lt;/b&gt; (Java) &amp;amp; &lt;a href="http://suif.stanford.edu/~livshits/work/securibench-micro/"&gt;Micro&lt;/a&gt;: &lt;a href="http://suif.stanford.edu/~livshits/securibench/"&gt;http://suif.stanford.edu/~livshits/securibench/&lt;/a&gt; (&lt;a href="http://suif.stanford.edu/~livshits/securibench/download.html"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;OWASP &lt;b&gt;Vicnum&lt;/b&gt; Project (Perl &amp;amp; PHP): &lt;a href="https://www.owasp.org/index.php/Category:OWASP_Vicnum_Project"&gt;https://www.owasp.org/index.php/Category:OWASP_Vicnum_Project&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/vicnum/files/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VulnApp&lt;/b&gt; (.NET): &lt;a href="http://www.nth-dimension.org.uk/blog.php?id=88"&gt;http://www.nth-dimension.org.uk/blog.php?id=88&lt;/a&gt; (&lt;a href="http://projects.nth-dimension.org.uk/dir?d=VulnApp"&gt;CVS download&lt;/a&gt;&amp;nbsp;&amp;amp; &lt;a href="http://projects.nth-dimension.org.uk/rptview?rn=6"&gt;vulns&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WackoPicko&lt;/b&gt; (PHP): &lt;a href="https://github.com/adamdoupe/WackoPicko"&gt;https://github.com/adamdoupe/WackoPicko&lt;/a&gt; (&lt;a href="https://github.com/adamdoupe/WackoPicko/zipball/master"&gt;download&lt;/a&gt;) (&lt;a href="http://cs.ucsb.edu/~adoupe/static/black-box-scanners-dimva2010.pdf"&gt;whitepaper&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;OWASP &lt;b&gt;WebGoat&lt;/b&gt; (Java): &lt;a href="https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project"&gt;https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project&lt;/a&gt; (&lt;a href="http://code.google.com/p/webgoat/downloads/list"&gt;download&lt;/a&gt;) (&lt;a href="https://www.owasp.org/index.php/WebGoat_User_and_Install_Guide_Table_of_Contents"&gt;guide&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;OWASP ZAP &lt;b&gt;WAVE&lt;/b&gt; - Web Application Vulnerability Examples (Java): &lt;a href="http://code.google.com/p/zaproxy/downloads/list"&gt;http://code.google.com/p/zaproxy/downloads/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Wavsep&lt;/b&gt; - Web Application Vulnerability Scanner Evaluation Project (Java):&amp;nbsp;&lt;a href="https://code.google.com/p/wavsep/"&gt;https://code.google.com/p/wavsep/&lt;/a&gt; (&lt;a href="https://code.google.com/p/wavsep/downloads/list"&gt;download&lt;/a&gt;) (&lt;a href="https://code.google.com/p/wavsep/downloads/list"&gt;docs&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Virtual Machines (VMs) or ISO images&lt;/b&gt;: The following list references preinstalled and ready to use virtual machines (VMs) or ISO images that contain one or multiple vulnerable web applications to play with.&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;BadStore&lt;/b&gt; (ISO): &lt;a href="http://www.badstore.net/"&gt;http://www.badstore.net&lt;/a&gt; (&lt;a href="http://www.badstore.net/register.htm"&gt;download&lt;/a&gt; - registration required)&lt;/li&gt;
&lt;li&gt;OWASP &lt;b&gt;BWA&lt;/b&gt; - Broken Web Applications Project (VMware - &lt;a href="http://code.google.com/p/owaspbwa/wiki/ProjectSummary"&gt;list&lt;/a&gt;): &lt;a href="https://www.owasp.org/index.php/OWASP_Broken_Web_Applications_Project"&gt;https://www.owasp.org/index.php/OWASP_Broken_Web_Applications_Project&lt;/a&gt; (&lt;a href="http://code.google.com/p/owaspbwa/wiki/Downloads"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Exploit.co.il&lt;/b&gt; Vuln Web App (VMware): &lt;a href="http://exploit.co.il/projects/vuln-web-app/"&gt;http://exploit.co.il/projects/vuln-web-app/&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/exploitcoilvuln/files/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hackxor&lt;/b&gt; (VMware): &lt;a href="http://hackxor.sourceforge.net/cgi-bin/index.pl"&gt;http://hackxor.sourceforge.net/cgi-bin/index.pl&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/hackxor/files/"&gt;download&lt;/a&gt;) (&lt;a href="http://hackxor.sourceforge.net/cgi-bin/hints.pl"&gt;hints&amp;amp;tips&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LAMPSecurity&lt;/b&gt; (VMware): &lt;a href="http://sourceforge.net/projects/lampsecurity/"&gt;http://sourceforge.net/projects/lampsecurity/&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/lampsecurity/files/"&gt;download&lt;/a&gt;) (&lt;a href="http://sourceforge.net/projects/lampsecurity/files/Documentation/"&gt;doc&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Metasploitable&lt;/b&gt; (VMware): &lt;a href="http://blog.metasploit.com/2010/05/introducing-metasploitable.html"&gt;http://blog.metasploit.com/2010/05/introducing-metasploitable.html&lt;/a&gt; (&lt;a href="http://updates.metasploit.com/data/Metasploitable.zip.torrent"&gt;download&lt;/a&gt; - torrent) (&lt;a href="http://www.metasploit.com/learn-more/how-do-i-use-it/test-lab.jsp"&gt;doc&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Moth&lt;/b&gt; (VMware): &lt;a href="http://www.bonsai-sec.com/en/research/moth.php"&gt;http://www.bonsai-sec.com/en/research/moth.php&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/w3af/files/moth/moth/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Samurai WTF&lt;/b&gt; (ISO - list): &lt;a href="http://www.samurai-wtf.org/"&gt;http://www.samurai-wtf.org&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/samurai/files/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Sauron&lt;/b&gt;&amp;nbsp;(Quemu) [&lt;i&gt;Spanish&lt;/i&gt;]:&amp;nbsp;&lt;a href="http://sg6-labs.blogspot.com/2007/12/secgame-1-sauron.html"&gt;http://sg6-labs.blogspot.com/2007/12/secgame-1-sauron.html&lt;/a&gt; (&lt;a href="http://sg6-labs.blogspot.com/search/label/SecGame"&gt;solutions&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;UltimateLAMP&lt;/b&gt; (VMware - &lt;a href="http://www.metasploit.com/learn-more/how-do-i-use-it/test-lab.jsp"&gt;list&lt;/a&gt;): &lt;a href="http://ronaldbradford.com/blog/ultimatelamp-2006-05-19/"&gt;http://ronaldbradford.com/blog/ultimatelamp-2006-05-19/&lt;/a&gt; (&lt;a href="http://ronaldbradford.com/tmp/UltimateLAMP-0.2.zip"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Web Security Dojo&lt;/b&gt; (VMware, VirtualBox - &lt;a href="http://www.mavensecurity.com/web_security_dojo/"&gt;list&lt;/a&gt;): &lt;a href="http://www.mavensecurity.com/web_security_dojo/"&gt;http://www.mavensecurity.com/web_security_dojo/&lt;/a&gt; (&lt;a href="http://sourceforge.net/projects/websecuritydojo/files/"&gt;download&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Online/Live&lt;/b&gt;: The following list references online and live vulnerable web applications available on the Internet to play with.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Acunetix:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://testasp.vulnweb.com/"&gt;http://testasp.vulnweb.com&lt;/a&gt; (Forum - ASP)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://testaspnet.vulnweb.com/"&gt;http://testaspnet.vulnweb.com&lt;/a&gt; (Blog - .NET)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://testphp.vulnweb.com/"&gt;http://testphp.vulnweb.com&lt;/a&gt; (Art shopping - PHP)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Cenzic CrackMeBank: &lt;a href="http://crackme.cenzic.com/"&gt;http://crackme.cenzic.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google Gruyere (Python): &lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;a href="http://google-gruyere.appspot.com/start"&gt;http://google-gruyere.appspot.com/start&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span"&gt;HackThisSite (HTS - Basic &amp;amp; Realistic (web) Missions):&amp;nbsp;&lt;a href="http://www.hackthissite.org/"&gt;http://www.hackthissite.org&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;HP/SpiDynamics Free Bank Online: &lt;a href="http://zero.webappsecurity.com/"&gt;http://zero.webappsecurity.com&lt;/a&gt; (admin/admin) &lt;/li&gt;
&lt;li&gt;IBM/Watchfire AltoroMutual: &lt;a href="http://demo.testfire.net/"&gt;http://demo.testfire.net&lt;/a&gt; (jsmith/Demo1234)&lt;/li&gt;
&lt;li&gt;NTOSpider Web Scanner Test Site: &lt;a href="http://www.webscantest.com/"&gt;http://www.webscantest.com&lt;/a&gt; (testuser/testpass)&lt;/li&gt;
&lt;li&gt;OWASP Hackademic Challenges Project - Live (PHP - Joomla): &lt;a href="http://hackademic1.teilar.gr/"&gt;http://hackademic1.teilar.gr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
For completeness, there have been &lt;a href="https://www.owasp.org/index.php/Phoenix/Tools"&gt;some&lt;/a&gt; &lt;a href="http://www.irongeek.com/i.php?page=security/deliberately-insecure-web-applications-for-learning-web-app-security"&gt;other&lt;/a&gt; &lt;a href="http://securitythoughts.wordpress.com/2010/03/22/vulnerable-web-applications-for-learning/"&gt;similar&lt;/a&gt; lists published in the past that I'm aware of, and also some "in-the-cloud" commercial training lab options are getting popular (let's call them "pay-per-hack" :-). Enjoy all these different web vulnerable environments and sharp your web app pen-testing skills and tools practicing with them!&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Shameless plug&lt;/b&gt;: I will be teaching the 6-day SANS SEC542 training, "Web App Penetration Testing and Ethical Hacking", in &lt;a href="https://www.sans.org/madrid-2012-cs/"&gt;Spanish (March 12-17, 2012, in Madrid - Spain)&lt;/a&gt; and &lt;a href="https://www.sans.org/secure-amsterdam-2012/description.php?tid=4382"&gt;English (May 7-12, 2012, in Amsterdam - The Netherlands)&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Updates&lt;/b&gt;: (2011-10-31) Added VulnApp (.NET) &amp;amp; Sauron (Quemu).&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;NOTE&lt;/b&gt;: WAVE and Wapsec main goal is to evaluate the&amp;nbsp;features, quality, and accuracy of automatic web application vulnerability scanners.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;Image source: http://www.headhacker.net/wp-content/uploads/2010/04/get-out-of-jail.jpg&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-277039604045281506?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/MseayQeMulI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/277039604045281506/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/10/hacking-vulnerable-web-applications.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/277039604045281506?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/277039604045281506?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/MseayQeMulI/hacking-vulnerable-web-applications.html" title="Hacking Vulnerable Web Applications Without Going To Jail" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-0fL6WA_e59Q/Tp4CmaTA32I/AAAAAAAAAAQ/r0XKgf2Ej_g/s72-c/get-out-of-jail.jpg" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://blog.taddong.com/2011/10/hacking-vulnerable-web-applications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8HSHs5eCp7ImA9WhdbGUU.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-1411196905673719611</id><published>2011-10-12T23:28:00.028+02:00</published><updated>2011-10-19T02:40:39.520+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T02:40:39.520+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSL" /><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>TLSSLed v1.2</title><content type="html">&lt;div&gt;TLSSLed v1.2 has been released and can be downloaded, as usual, from &lt;a href="http://www.taddong.com/en/lab.html#TLSSLED"&gt;Taddong's lab&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This new version incorporates feedback from several people, as well as new features, including support for Mac OS X (TLSSLed should now run in both Linux and Mac OS X; check &lt;a href="https://www.titania-security.com/labs/sslscan"&gt;how to build sslscan on Mac OS X&lt;/a&gt; first), an initial check to verify if the target service speaks SSL/TLS (finishing its execution if it does not), a few other optimizations and error checks, and new tests for TLS v1.1 and v1.2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The latter feature has been added as a result of the recent BEAST vulnerability and research, CVE-2011-3389. In order to be able to check for TLS v1.1 and v1.2 you need to use openssl-1.0.1-stable, available from &lt;a href="ftp://ftp.openssl.org/snapshot/"&gt;the openssl snapshot repository&lt;/a&gt;. TLSSLed identifies if the target service supports TLS v1.1 and v1.2, if it does not, or if your local openssl version does not support these TLS versions. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This new test simply checks if the target service supports these two TLS versions, however, this does not mean the implementation is secure from a BEAST perspective, as lots of other factors can influence this, such as: &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The implementation could downgrade from TLS v1.1 or v1.2 to TLS v1.0 or SSLv3 if these versions are also supported by the server and a client requests it. &lt;/li&gt;&lt;li&gt;The implementation can use RC4 instead of AES CBC to mitigate this vulnerability.&lt;/li&gt;&lt;li&gt;Certain SSL/TLS implementations might not be vulnerable to BEAST, such as openssl since version 0.9.6d, as &lt;a href="http://www.openssl.org/~bodo/tls-cbc.txt"&gt;they already added empty plaintext fragments (problem #2)&lt;/a&gt; - if SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS &lt;a href="http://www.mail-archive.com/openssl-dev@openssl.org/msg29718.html"&gt;is not set&lt;/a&gt;. &lt;/li&gt;&lt;/ul&gt;The first two scenarios can be easily verified through the new "Testing for SSLv3 and TLSv1 support first ..." test. If you know how to remotely check for the third scenario using the openssl binary, I would love to hear about it and implement that inside the tool... Therefore, a careful and thorough brain-based analysis is still required :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The output below shows this new feature against "tls.woodgrovebank.com", an SSL/TLS public Interop Test Server from Microsoft, using openssl 1.0.1-dev:&lt;/div&gt;&lt;br /&gt;&lt;table bg="" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;$ ./TLSSLed.sh tls.woodgrovebank.com 443&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;------------------------------------------------------&lt;br /&gt;TLSSLed - (1.2) based on sslscan and openssl&lt;br /&gt;               by Raul Siles (www.taddong.com)&lt;br /&gt;------------------------------------------------------&lt;br /&gt;+ openssl version: OpenSSL 1.0.1-dev xx XXX xxxx&lt;br /&gt;+ sslscan version 1.8.2&lt;br /&gt;------------------------------------------------------&lt;br /&gt;&lt;br /&gt;[-] Analyzing SSL/TLS on tls.woodgrovebank.com:443 ..&lt;br /&gt;&lt;br /&gt;[*] The target service tls.woodgrovebank.com:443 seems to speak SSL/TLS...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[-] Running sslscan on tls.woodgrovebank.com:443...&lt;br /&gt;&lt;br /&gt;[*] Testing for SSLv2 ...&lt;br /&gt;  Accepted  SSLv2  168 bits  DES-CBC3-MD5&lt;br /&gt;  Accepted  SSLv2  128 bits  RC4-MD5&lt;br /&gt;&lt;br /&gt;[*] Testing for NULL cipher ...&lt;br /&gt;&lt;br /&gt;[*] Testing for weak ciphers (based on key length) ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[*] Testing for strong ciphers (AES) ...&lt;br /&gt;  Accepted  TLSv1  256 bits  AES256-SHA&lt;br /&gt;  Accepted  TLSv1  128 bits  AES128-SHA&lt;br /&gt;&lt;br /&gt;[*] Testing for MD5 signed certificate ...&lt;br /&gt;&lt;br /&gt;[*] Testing for certificate public key length ...&lt;br /&gt;  RSA Public Key: (2048 bit)&lt;br /&gt;&lt;br /&gt;[*] Testing for certificate subject ...&lt;br /&gt;  Subject: /C=US/ST=WA/L=Redmond/O=Microsoft/CN=tls.woodgrovebank.com&lt;br /&gt;&lt;br /&gt;[*] Testing for certificate CA issuer ...&lt;br /&gt;  Issuer: /CN=RSACERTSRV&lt;br /&gt;&lt;br /&gt;[*] Testing for certificate validity period ...&lt;br /&gt;  Today: Wed Oct 12 00:50:07 UTC 2011&lt;br /&gt;  Not valid before: Feb 14 22:52:50 2011 GMT&lt;br /&gt;  Not valid after: Feb 14 23:02:50 2012 GMT&lt;br /&gt;&lt;br /&gt;[*] Checking preferred server ciphers ...&lt;br /&gt;Prefered Server Cipher(s):&lt;br /&gt;  SSLv2  168 bits  DES-CBC3-MD5&lt;br /&gt;  SSLv3  128 bits  RC4-SHA&lt;br /&gt;  TLSv1  128 bits  AES128-SHA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[-] Testing for SSLv3/TLSv1 renegotiation vuln. (CVE-2009-3555) ...&lt;br /&gt;&lt;br /&gt;[*] Testing for secure renegotiation ...&lt;br /&gt;Secure Renegotiation IS supported&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[-] Testing for TLS v1.1 and v1.2 (CVE-2011-3389 aka BEAST) ...&lt;br /&gt;&lt;br /&gt;[*] Testing for SSLv3 and TLSv1 first ...&lt;br /&gt;  Accepted  SSLv3  168 bits  DES-CBC3-SHA&lt;br /&gt;  Accepted  SSLv3  128 bits  RC4-SHA&lt;br /&gt;  Accepted  SSLv3  128 bits  RC4-MD5&lt;br /&gt;  Accepted  TLSv1  256 bits  AES256-SHA&lt;br /&gt;  Accepted  TLSv1  128 bits  AES128-SHA&lt;br /&gt;  Accepted  TLSv1  168 bits  DES-CBC3-SHA&lt;br /&gt;  Accepted  TLSv1  128 bits  RC4-SHA&lt;br /&gt;  Accepted  TLSv1  128 bits  RC4-MD5&lt;br /&gt;&lt;br /&gt;[*] Testing for TLS v1.1 support ...&lt;br /&gt;TLS v1.1 IS supported&lt;br /&gt;&lt;br /&gt;[*] Testing for TLS v1.2 support ...&lt;br /&gt;TLS v1.2 IS supported&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[-] Testing for SSL/TLS security headers ...&lt;br /&gt;&lt;br /&gt;[*] Testing for Strict-Transport-Security (STS) header ...&lt;br /&gt;&lt;br /&gt;[*] Testing for cookies with the secure flag ...&lt;br /&gt;&lt;br /&gt;[*] Testing for cookies without the secure flag ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[-] New files created:&lt;br /&gt;-rw-r--r-- 1 root root 5684 2011-10-18 20:50 sslscan_tls...com:443_2011-10-18_20:49:23.log&lt;br /&gt;-rw-r--r-- 1 root root 2675 2011-10-18 20:50 openssl_HEAD_tls...com:443_2011-10-18_20:49:23.log&lt;br /&gt;-rw-r--r-- 1 root root 2408 2011-10-18 20:49 openssl_RENEG_tls...com:443_2011-10-18_20:49:23.log&lt;br /&gt;-rw-r--r-- 1 root root 540 2011-10-18 20:49 openssl_RENEG_tls...com:443_2011-10-18_20:49:23.err&lt;br /&gt;-rw-r--r-- 1 root root 523 2011-10-18 20:50 openssl_HEAD_tls...com:443_2011-10-18_20:49:23.err&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[-] done&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;/div&gt;&lt;div&gt;If the target service does not support TLS v1.1 or v1.2 it will say "... IS NOT supported" instead. If your local openssl version does not support TLS v1.1 and v1.2, you will get the following output:&lt;/div&gt;&lt;br /&gt;&lt;table bg="" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;$ ./TLSSLed.sh www.example.com 443&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;...&lt;br /&gt;[-] Testing for TLS v1.1 and v1.2 (CVE-2011-3389 aka BEAST) ...&lt;br /&gt;...&lt;br /&gt;[*] Testing for TLS v1.1 support ...&lt;br /&gt;The local openssl version does NOT support TLS v1.1&lt;br /&gt;&lt;br /&gt;[*] Testing for TLS v1.2 support ...&lt;br /&gt;The local openssl version does NOT support TLS v1.2&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Some people suggested new additions to TLSSLed based on adding checks from other already available SSL/TLS related tools, such as &lt;a href="http://wiki.debian.org/SSLkeys"&gt;openssl-blacklist&lt;/a&gt; or &lt;a href="http://unspecific.com/ssl/"&gt;ssl-cipher-check.pl&lt;/a&gt;. After a careful thought and detailed analysis process, TLSSLed will remain loyal to its original spirit and design, trying to keep to a minimum the prerequisites to run it (just openssl and sslscan since version 1.0). Therefore, the goal is not to make use of any additional tools from within TLSSLed except openssl and sslscan, unless there is a very critical security test that cannot be accomplished with these two. However, I'm open to implementing other missing tests using these two tools.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;One of the future releases will include an associated user guide that briefly explains the different TLSSLed results and their meaning, so that you can easily understand the security implications of the findings reported by the tool without been well versed on SSL/TLS (HTTPS).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Remember, the tool is open to comments, suggestions, improvements, and new tests from the community. Do not hesitate to contact me with ideas! Thanks to  Abraham Aranguren and others that want to remain anonymous for their feedback!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-1411196905673719611?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/TVl771TbIzY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/1411196905673719611/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/10/tlssled-v12.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/1411196905673719611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/1411196905673719611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/TVl771TbIzY/tlssled-v12.html" title="TLSSLed v1.2" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/10/tlssled-v12.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4HQnY_eyp7ImA9WhVXEUg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-2296158515915546640</id><published>2011-08-29T16:27:00.036+02:00</published><updated>2012-04-11T15:28:53.843+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-11T15:28:53.843+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GPRS" /><category scheme="http://www.blogger.com/atom/ns#" term="GSM" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="iphone" /><title>Using Signal to Detect Rogue Cellular Base Stations (Part Two)</title><content type="html">&lt;b&gt;Can Signal be used as a rogue base station detector?&lt;/b&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;For starters, this answer is subjected to the reliability and updating rate of the information source where Signal obtains the geographical location from.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;Provided that the previous condition is met, we can distinguish three different cases:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;If the attacker uses a non-existing cell identifier&lt;/b&gt;, the application will not provide any geographical information of it, and thus we will assume that the serving cell is false.&lt;/li&gt;&lt;li&gt;&lt;b&gt;If the attacker uses an existing cell identifier, belonging to a tower that is located far away from the place where the attacker is located&lt;/b&gt;, then Signal will report that we are in a location that does not match our real position. This fact will indicate that the serving cell is not legitimate.&lt;/li&gt;&lt;li&gt;&lt;b&gt;If the attacker configures his base station pretending to be one of the neighbor cells and achieves that the terminal registers to his base station&lt;/b&gt; (by emitting a signal that is perceived by the victim's terminal as much "better"), then Signal will not show any clue about the legitimacy of the cell. We must say that, in this situation, it is much more difficult for the attacker to force the terminal to register to his base station, due to the fact that the victim's terminal probably can see two radio signals with the same cell identifier (we don't know the terminal behavior in this case). To overcome this obstacle, the attacker could choose the identifier of an existing nearby cell, for which the terminal is not perceiving power at all.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;/div&gt;Our conclusion is that this application can help detecting whether the service that our terminal is receiving is legitimate or not, and it makes much more difficult for the attacker to maintain his attack undetected. However, it cannot be considered a 100% reliable method.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;Even so, we think that the use of the tower geographical location provides a very good way to help detecting rogue base station attacks, and it should be combined with other techniques as, for example, the GPS information of the terminal, the analysis of other parameters of the radio signal or the detection of some functionalities that a false network will not tipically implement.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Network traffic analysis&lt;/b&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;For each one of the performed tests we have obtained the corresponding traffic capture using Wireshark. We have done so because, if there is an information source from which one can extract the geographical location of a mobile base station, of course we want to know it.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;After analyzing some of the captures, we reach the conclusion that the source of such information was Google (what a surprise!). Also, we could realize that the answer/response has this appearence:&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-dBEQ8UVYyKk/Tl6qwkLTkWI/AAAAAAAAABw/pPEoVBZ4d9I/s1600/TCPStream.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 266px; text-align: center; " src="http://2.bp.blogspot.com/-dBEQ8UVYyKk/Tl6qwkLTkWI/AAAAAAAAABw/pPEoVBZ4d9I/s400/TCPStream.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5647138734090719586" /&gt;&lt;/a&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;In the previous picture you can see that the request is qualified by the cell identifier (MCC, MNC, LAC and CI), and that the answer comes in "longitude/lattitude" format.&lt;br /&gt;The "User-Agent" field reflects that we are using "wget" (instead of "Signal" as it would reflect any capture of the application traffic). This is because instead of using Signal we have written a little software tool to access this information, as explained below.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;tadbsl.sh tool&lt;/b&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;This application is a shell script that, taking the cell identifier as input data, performs the correctly-formatted request to Google, using wget. Once the answer from Google comes, it shows the longitude and latitude on the console and, optionally, it starts a web browser showing the geographical location of the tower in Google maps.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;The use instructions of the tool are shown here:&lt;br /&gt;&lt;table bg="" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;$ ./tadbsl.sh --help&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;tadbsl.sh --MCC=&lt;mcc&gt; --MNC=&lt;mnc&gt; --LAC=&lt;lac&gt; --CI=&lt;ci&gt; [-s | --show_in_browser]&lt;br /&gt;tadbsl.sh [-h | --help]&lt;br /&gt; Description: this script asks Google for a particular&lt;br /&gt; Cellular Base Station Location and shows the Google's answer.&lt;br /&gt; (Based on the traffic analysis of Signal Cydia application&lt;br /&gt;  from PlanetBeing)&lt;br /&gt; Arguments:&lt;br /&gt;  MCC: Mobile Country Code of the carrier owning the Base Station&lt;br /&gt;  MNC: Mobile Network Code of the carrier owning the Base Staion&lt;br /&gt;  LAC: Location Area Code of the Base Station&lt;br /&gt;  CI:  Cell Identificator of the Base Station&lt;br /&gt; Options:&lt;br /&gt;  -h | --help&lt;br /&gt;    Shows this help.&lt;br /&gt;  -s | --show_in_browser&lt;br /&gt;    If you specify this options the script will launch&lt;br /&gt;    your browser with the obtained coordinates.&lt;br /&gt;    You can configure your browser location in a&lt;br /&gt;    configuration variable inside the script.&lt;br /&gt;&lt;/ci&gt;&lt;/lac&gt;&lt;/mnc&gt;&lt;/mcc&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;An example of use is shown below:&lt;table bg="" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;tad3@ubuntu:~/tadbsl$ ./tadbsl.sh --MCC=302 --MNC=720 --LAC=65010 --CI=48626&lt;br /&gt;LOCATION: 49.1560525 , -123.1586519&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-PaG9oaG8LAc/Tl6vsPGnXPI/AAAAAAAAAB4/5deiQ2JyY0k/s1600/tadbsl_use.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/-PaG9oaG8LAc/Tl6vsPGnXPI/AAAAAAAAAB4/5deiQ2JyY0k/s400/tadbsl_use.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5647144157272562930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This tool is available at &lt;a href="http://www.taddong.com/en/lab.html#tadbsl"&gt;our lab&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;NOTE: We first published this article, in Spanish, in &lt;a href="http://www.seguridadapple.com/2011/08/signal-y-la-deteccion-de-estaciones_13.html"&gt;this post&lt;/a&gt; of the blog &lt;a href="http://www.seguridadapple.com/"&gt;“Seguridad Apple”&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-2296158515915546640?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/glLb-VKiIPA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/2296158515915546640/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/08/using-signal-to-detect-rogue-cellular_29.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2296158515915546640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2296158515915546640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/glLb-VKiIPA/using-signal-to-detect-rogue-cellular_29.html" title="Using Signal to Detect Rogue Cellular Base Stations (Part Two)" /><author><name>Jose Pico</name><uri>http://www.blogger.com/profile/11351143259307490487</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-dBEQ8UVYyKk/Tl6qwkLTkWI/AAAAAAAAABw/pPEoVBZ4d9I/s72-c/TCPStream.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.taddong.com/2011/08/using-signal-to-detect-rogue-cellular_29.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4BQno8eSp7ImA9WhVXEUg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-3525031908028056422</id><published>2011-08-26T17:53:00.032+02:00</published><updated>2012-04-11T15:29:13.471+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-11T15:29:13.471+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GPRS" /><category scheme="http://www.blogger.com/atom/ns#" term="GSM" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="iphone" /><title>Using Signal to Detect Rogue Cellular Base Stations (Part One)</title><content type="html">&lt;div style="text-align: justify;"&gt;Some days ago Chema Alonso informed us that an application was able to show the geographical location of the tower that was providing service to an iPhone, as well as that of adjacent towers. The application also showed some technical data about these towers. Chema's question was whether this application could be used to detect a rogue base station attack or not. To be able to answer that question, we performed some tests. Some of them are explained in this article, as well as the conclusions and other things that we have obtained along the way.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;The application is called Signal (available on Cydia) and has been written by PlanetBeing. The purpose of the authors is to create a map of nearby towers, measure their power and provide technical data about them.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Test I: testing the application with and without Internet access&lt;/b&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Testing Lab&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;To perform the tests, we set up the laboratory shown in the picture:&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-nGcdWet4CNE/Tl6bY_0vRJI/AAAAAAAAABo/P5Dk5mYWdf4/s1600/TestingLabI%2B-%2BEnglish.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 155px;" src="http://3.bp.blogspot.com/-nGcdWet4CNE/Tl6bY_0vRJI/AAAAAAAAABo/P5Dk5mYWdf4/s400/TestingLabI%2B-%2BEnglish.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5647121836520981650" /&gt;&lt;/a&gt;&lt;br /&gt;The main objective of this set up was to be able to analyze the traffic generated by the application so that we could obtain preliminary conclusions before deciding what tests would follow.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Installation and first execution&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;After jaiblreaking our iPhone and installing Cydia, we configured the device in the following way:&lt;ul&gt;&lt;li&gt;We disabled 3G service to only accept GSM (this way it would be easier to provide service using our rogue base station)&lt;/li&gt;&lt;li&gt;The first time the application is launched, it asks if we want to use localization services. We answered "no" because we wanted to limit the available resources for the software to calculate its location, i.e., no GPS in the game.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Afterwards, we could see the application showing a map with the location of the towers nearby our position (somewhere in Valencia area), and a number that represents the perceived power in dBm. We checked that the geographical location really showed our position:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-EhsGimd1vQY/Tl3YIhKJA9I/AAAAAAAAAAo/qVRb17_CpW0/s1600/MapI.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://3.bp.blogspot.com/-EhsGimd1vQY/Tl3YIhKJA9I/AAAAAAAAAAo/qVRb17_CpW0/s320/MapI.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646907148643926994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Running the application without Internet access&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;Since we suspected that the application obtained the geographical location of the towers from the Internet, we disabled all data services of the iPhone, including GPRS and WiFi.&lt;br /&gt;In these conditions, as soon as the application started, we could see that the serving cell was detected and data and parameters belonging to it were reported. Also, the geographical location of a set of nearby towers was shown in the map, but with a different format, as we can see in the following picture:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-cLyedVeeWQM/Tl3YfLEWFZI/AAAAAAAAAAw/5vPO6L5AH9g/s1600/MapII.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://2.bp.blogspot.com/-cLyedVeeWQM/Tl3YfLEWFZI/AAAAAAAAAAw/5vPO6L5AH9g/s320/MapII.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646907537851028882" /&gt;&lt;/a&gt;&lt;br /&gt;The legend of color codes in the application reads as follows:&lt;ul&gt;&lt;li&gt;Blue: Visible towers&lt;/li&gt;&lt;li&gt;Red: Connected tower&lt;/li&gt;&lt;li&gt;Gray: Unlocatable tower&lt;/li&gt;&lt;li&gt;Yellow: Previously seen tower&lt;/li&gt;&lt;/ul&gt;It seemed to us that Signal kept some kind of cache where it stored information about previously seen towers. As the application has the ability to “Reset tower data”, we checked that when we chose this option, all geographical information was lost, and it didn't come back after several runs of the application.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Running the application with Internet access&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;After enabling WiFi, we started again the application and at that moment it detected again where the towers were in our geographical area.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Conclusions obtained in Testing Phase I&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;From the tests performed we can infer that:&lt;ul&gt;&lt;li&gt;Signal obtains the geographical information about cellular base sations from the Internet&lt;/li&gt;&lt;li&gt;The application holds a cache where it stores geographical information of the towers that he has previously seen; this cache can be erased by using the “Reset tower data” option&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Test II: using a rogue base station&lt;/b&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Testing Lab&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;For this second phase of tests, we modified our lab to provide GSM service using our rogue base station. The following schema illustrates this set up:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-uj7ZoGHu2lI/Tl6af7bCWdI/AAAAAAAAABg/7KNDehPBDVc/s1600/TestingLabII.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/-uj7ZoGHu2lI/Tl6af7bCWdI/AAAAAAAAABg/7KNDehPBDVc/s400/TestingLabII.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5647120856086895058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Testing with a non-existent cell identifier&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;To perform this test we configured our rogue base station for emitting with a non-existent cell identifier, and then we turned on the iPhone inside the cage (remember that the iPhone was connected to the Internet inside the cage through our WiFi infrastructure, as shown in the previous picture).&lt;div&gt;&lt;/div&gt;&lt;br /&gt;When the Signal application started, it detected the servicing tower and correctly reported our false cell identificator, but it could not locate that cell geographically.&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Testing with a different cell identifier&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;In this test we used a cell identifier belonging to a cell that is located somewhere in the Madrid area (we were performing our tests in Valencia area) and, sure enough, the application located us in Madrid, next to that tower, as we can see in the following picture:&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-ce7zZoM_ZEI/Tl3Zt60mAkI/AAAAAAAAABI/SasbU69RSmQ/s1600/MapIII.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://1.bp.blogspot.com/-ce7zZoM_ZEI/Tl3Zt60mAkI/AAAAAAAAABI/SasbU69RSmQ/s320/MapIII.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646908890699661890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;Conclusions obtained in Testing Phase II&lt;/u&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;From these tests we can infer that:&lt;ul&gt;&lt;li&gt;The identifying information about servicing tower is obtained from the radio signal&lt;/li&gt;&lt;li&gt;The geographical information, that Signal obtains from the Internet, depends uniquely on the cell identifier (MCC|MNC|LAC|CI) where:&lt;ul&gt;&lt;li&gt;MCC:  Mobile Country Code&lt;/li&gt;&lt;li&gt;MNC: Mobile Network Code&lt;/li&gt;&lt;li&gt;LAC: Location Area Code&lt;/li&gt;&lt;li&gt;CI: Cell Identifier&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;NOTE: We first published this article, in Spanish, in &lt;a href="http://www.seguridadapple.com/2011/08/signal-y-la-deteccion-de-estaciones.html"&gt;this post&lt;/a&gt; of the blog &lt;a href="http://www.seguridadapple.com/"&gt;“Seguridad Apple”&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-3525031908028056422?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/sULHvkXY0Uw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/3525031908028056422/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/08/using-signal-to-detect-rogue-cellular.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/3525031908028056422?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/3525031908028056422?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/sULHvkXY0Uw/using-signal-to-detect-rogue-cellular.html" title="Using Signal to Detect Rogue Cellular Base Stations (Part One)" /><author><name>Jose Pico</name><uri>http://www.blogger.com/profile/11351143259307490487</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-nGcdWet4CNE/Tl6bY_0vRJI/AAAAAAAAABo/P5Dk5mYWdf4/s72-c/TestingLabI%2B-%2BEnglish.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/08/using-signal-to-detect-rogue-cellular.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFR3g-fip7ImA9WhdQEEg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-2111400143861152544</id><published>2011-08-11T10:20:00.015+02:00</published><updated>2011-08-11T12:38:36.656+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T12:38:36.656+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="OWASP" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Building OWASP ZAP Using Eclipse IDE for Java… Pen-Testers</title><content type="html">If I were only given a single tool for a web application penetration test, that would definitely be a web interception proxy!
&lt;br /&gt;
&lt;br /&gt;As you can check within &lt;a href="http://sourceforge.net/projects/samurai/"&gt;Samurai WTF&lt;/a&gt;, the number of web interception proxies available to web app analyst and pen-testers is... (at least) quite large. During the last years (after the old initial &lt;a href="http://www.mavensecurity.com/Achilles/"&gt;Achilles&lt;/a&gt; days... Wow!, from Oct 13, 2000), a few proxies have become the web application security assessment tool of choice. OWASP &lt;a href="https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;Webscarab&lt;/a&gt;, together with &lt;a href="http://www.parosproxy.org"&gt;Paros&lt;/a&gt; (Proxy), have been two of the most commonly used open-source alternatives, with &lt;a href="http://portswigger.net/burp/"&gt;Burp&lt;/a&gt; (Suite) on the free/commercial side (but not open-source).
&lt;br /&gt;
&lt;br /&gt;Unfortunately (or not... keep reading ;-p) Webscarab and Paros were somehow discontinued. The lastest official Webscarab build (not from GIT) is from May 2007, and &lt;a href="https://www.owasp.org/index.php/OWASP_WebScarab_NG_Project"&gt;Webscarab-NG&lt;/a&gt; (Next Generation) was born as a very promising Webscarab replacement, but is slowly progressing with new features and releases. Paros ended up on the famous 3.2.13 version from August 2006 (5 years ago!) and a replacement project or fork was born afterwards, called &lt;a href="https://code.google.com/p/andiparos/"&gt;Andiparos&lt;/a&gt;. In parallel, a new OWASP project saw the light, called ZAP (Zed Attack Proxy). On a very smart decision from their leaders (Psiinon and Axel), both projects joined forces to contribute to a single and common open-source web interception proxy (and security assessment tool, considering all the features currently available within ZAP), keeping the name of ZAP for the final project. Therefore, &lt;a href="https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project"&gt;OWASP ZAP (Zed Attack Proxy)&lt;/a&gt; is definitely the current open-source web interception proxy and security assessment tool of reference.
&lt;br /&gt;
&lt;br /&gt;What all these web interception proxy tools have in common? They have been developed in Java, what makes them great multi-platform (Windows, Linux, Mac OS X...) security assessment tools.
&lt;br /&gt;
&lt;br /&gt;Experience has demonstrated during the last few years that pen-testers need to use two types of tools on their daily activities: the latest official stable tool release, typically distributed by the project as a prepackaged and ready to install bundle (.tar.gz, .zip, .jar, etc), and the most current development tool revision, the one that includes the most cutting edge, neat and mighty features, options, and capabilities, typically distributed by the project from the official Subversion (SVN/CVS, GIT, etc) repository.
&lt;br /&gt;
&lt;br /&gt;Most pen-testing tools are developed using traditional languages, like C/C++ (e.g. nmap), where the standard 3-way build handshake works like a charm ("./configure", "make" &amp;amp; "sudo make install"), or using interpreted languages, where there is no need to build the package, such as Ruby (e.g. Metasploit), Python (e.g. w3af), or others.
&lt;br /&gt;
&lt;br /&gt;But... what about the Java-based web interception proxies? I've discovered that there is a significant barrier to entry that make it difficult for pen-testers to enter into the building process of this kind of tools, as a simple "javac" (Java compiler) invocation does not make the trick. In order to compile and build Java-based web interception proxy tools, as they make an extensive use of GUIs and library sets, a Java IDE (Integrated Development Environment) is required.
&lt;br /&gt;
&lt;br /&gt;As a result, lots of security professionals cannot and are not using the most current features of these tools until a new official version is released by the project. In order to overcome this, I have released the &lt;a href="http://www.taddong.com/en/lab.html#BUILDINGZAP"&gt;&lt;span style="font-weight: bold;"&gt;"Building OWASP ZAP Using Eclipse IDE for Java… Pen-Testers"&lt;/span&gt;&lt;/a&gt; guide, available for download (as usual) from &lt;a href="http://www.taddong.com/en/lab.html#BUILDINGZAP"&gt;Taddong's lab&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;The goal of this document is to provide a simplified step-by-step guide web app pen-testers can go through to be able to easily build the most current OWASP ZAP version from &lt;a href="https://code.google.com/p/zaproxy/source/checkout"&gt;the official Subversion repository&lt;/a&gt; by using the open-source &lt;a href="http://www.eclipse.org/"&gt;Eclipse Java IDE&lt;/a&gt;. A final appendix provides some brief guidance for those interested on, not only using the latest tool features, but &lt;a href="https://code.google.com/p/zaproxy/"&gt;contributing to the OWASP ZAP project&lt;/a&gt; (what I encourage you to do).
&lt;br /&gt;
&lt;br /&gt;Do not forget to always, but specially when using the most current development version, extensively test the tools on your lab environment before using them against the real pen-test targets, probably in production (at least, before you started using the tool... :-)
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-2111400143861152544?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/5IX5QADzhvc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/2111400143861152544/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/08/building-owasp-zap-using-eclipse-ide.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2111400143861152544?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2111400143861152544?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/5IX5QADzhvc/building-owasp-zap-using-eclipse-ide.html" title="Building OWASP ZAP Using Eclipse IDE for Java… Pen-Testers" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/08/building-owasp-zap-using-eclipse-ide.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4CQ38-fip7ImA9WhdQEEg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-2664025368674766231</id><published>2011-07-26T09:41:00.005+02:00</published><updated>2011-08-11T10:22:42.156+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T10:22:42.156+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OWASP" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>OWASP Session Management Cheat Sheet</title><content type="html">The results and conclusions obtained from dozens of web application penetration tests completed during the last few years confirm that session management is still today one of those  web application critical components prone to suffer multiple and critical vulnerabilities.
&lt;br /&gt;
&lt;br /&gt;Session management is a core and very complex module in modern web application architectures, and has to integrate smoothly and securely with other critical components, such as the authentication and access control modules:
&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://www.owasp.org/images/1/1d/Session-Management-Diagram_Cheat-Sheet.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 603px; height: 137px;" src="https://www.owasp.org/images/1/1d/Session-Management-Diagram_Cheat-Sheet.png" alt="" border="0" /&gt;&lt;/a&gt;Sessions, represented by a session ID or token, bind the user authentication credentials to the user HTTP traffic and the appropriate  access controls enforced by the web application. The stateless nature of the HTTP protocol, the complexity of  these three components (authentication, session management, and access  control) in modern web applications, plus the fact that its  implementation and binding resides on the web developer’s hands (as web  development framework do not provide strict relationships between these  modules), makes the implementation of a secure session management module  very challenging.
&lt;br /&gt;
&lt;br /&gt;Unfortunately most people put the focus on the top two or three risks or vulnerabilities, injection (being SQL injection the top one), Cross-Site Scripting (XSS) and (if lucky) Cross-Site Request Forgery (CSRF), but the &lt;a href="https://www.owasp.org/index.php/OWASP_Top_Ten_Project"&gt;OWASP Top 10&lt;/a&gt; already reflected the importance of session management flaws on its 2007 version (7th position - A7), and highlighted this fact even more in the 2010 version, raising authentication and session management risks ("A3: Broken Authentication and Session Management") to the 3rd position.
&lt;br /&gt;
&lt;br /&gt;Although the emphasis goes to authentication, due to all the weaknesses of the current authentication mechanisms (mainly based on username and password), session management tends to suffer serious vulnerabilities even for the most secure web applications. Do not forget that, once an authenticated session has been established, the session ID (or  token) is temporarily equivalent to the strongest authentication method  used by the web application, such as username and password, passphrase,  one-time password (OTP), client-based digital certificate, smartcard,  or biometrics (such as fingerprint or eye retina).
&lt;br /&gt;
&lt;br /&gt;For all these reasons, the &lt;a href="https://www.owasp.org/index.php/Session_Management_Cheat_Sheet"&gt;OWASP Session Management Cheat Sheet&lt;/a&gt; has been released, with the goal of providing guidance and best practices to web application architects, developers, and information security professionals when building or auditing the session management module of web applications.
&lt;br /&gt;
&lt;br /&gt;The whitepaper with the original content that has inspired and has been used for the creation of the first version of this OWASP cheatsheet is available in PDF format for easy download, distribution, and usage &lt;a href="http://www.taddong.com/en/lab.html#OWASPSESSMGMT"&gt;at Taddong's lab&lt;/a&gt;.  
&lt;br /&gt;
&lt;br /&gt;I encourage anyone involved in web application security to provide comments, feedback, and improvements to the OWASP Session Management Cheat Sheet, for the benefit of the whole web application community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-2664025368674766231?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/9pMxCcO6zJI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/2664025368674766231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/07/owasp-session-management-cheat-sheet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2664025368674766231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2664025368674766231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/9pMxCcO6zJI/owasp-session-management-cheat-sheet.html" title="OWASP Session Management Cheat Sheet" /><author><name>Raul Siles</name><uri>http://www.blogger.com/profile/06709503832135757060</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/07/owasp-session-management-cheat-sheet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYHRH48fyp7ImA9WhdTGE4.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-6863069182533858920</id><published>2011-07-16T01:52:00.019+02:00</published><updated>2011-07-16T17:28:55.077+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-16T17:28:55.077+02:00</app:edited><title>Our latest Security Challenge</title><content type="html">&lt;div&gt;In the past few years, some of us have had the opportunity to participate in some security challenges organized by different teams in different events. It has always been an experience where we have had a lot of fun and where we have learned a very useful knowledge. The way the sponsor have created the challenges it is always different and this point of view make you acquire another perspective. Also, the way that other participants or people in your team approach a problem is also extremely interesting and didactic. When the challenge finishes you always have this feeling of a very good job by everyone, and a very rich experience in the technical and personal area.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other times, we have been in charge of designing and prepare one or more security challenges in the context of a particular event. In this case, it is also a very interesting experience, because preparing a challenge makes your kwnowledge go deeper and wider. You also have a lot of fun trying to guess how the participant will behave when he is in front of the problems you are creating for him and, after that, you have the opportunity to check whether you were right or wrong, watching the participants make their way to the solution. Also, participants usually provide solutions that are different from those that you designed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For all these reasons we always encourage any person that likes computer security to participate in such activities.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At present, we are involved in a security challenge of the second flavour: Movistar Mexico, sponsor of Campus Party Mexico 2011, has asked us to prepare a set of security challenges in the context of the event. The challenge has been named "Retos Movistar - Security Geek" and &lt;a href="http://www.campus-party.com.mx/2011/actividades-movistar.html#secgeek"&gt;this&lt;/a&gt; is the official website.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have designed seven security challenges, grouped into two main categories:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;offline challenges, accessible by everyone that can be solved using only your own PC&lt;/li&gt;&lt;li&gt;online challenges, that are online accessible through internet if you have registered into the challenge&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;The tests that we have prepared cover different areas of security: from malware analysis to web security, from forensics to pen testing, and more... Tests are absolutely independent, so that participants can solve one test without even starting other.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The challenge has just started and will last until Saturday 23th of July. We hope that the experience will be fun and motivating for all participants. All the information can be found in &lt;a href="http://www.campus-party.com.mx/2011/actividades-movistar.html#secgeek"&gt;the web page of the challenge&lt;/a&gt; and news and notifications can be followed through the official twitter account @SecurityGeekCP3 (hashtag #secgeekcpmx3)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-6863069182533858920?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/00Sfe5QM9qw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/6863069182533858920/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/07/our-last-security-challenge.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6863069182533858920?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6863069182533858920?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/00Sfe5QM9qw/our-last-security-challenge.html" title="Our latest Security Challenge" /><author><name>Jose Pico</name><uri>http://www.blogger.com/profile/11351143259307490487</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/07/our-last-security-challenge.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMGQnw-eyp7ImA9WhdTEkQ.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-8578405336963238314</id><published>2011-07-10T12:50:00.001+02:00</published><updated>2011-07-10T13:13:43.253+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-10T13:13:43.253+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSL" /><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>TLSSLed v1.1</title><content type="html">A few weeks ago we &lt;a href="http://blog.taddong.com/2011/05/tlssled-v10.html"&gt;released TLSSLed v1.0&lt;/a&gt; with the goal of helping organizations to test their SSL/TLS (HTTPS) implementation for common flaws and misconfigurations. Today, we release an updated version, v1.1, that includes some additional tests.&lt;br /&gt;
&lt;br /&gt;
The new tests check the certificate public key length, the certificate subject and issuer (CA), as well as the validity period, but besides that, they focus on the existence of HTTP secure headers on the target website main page (by using the HTTP/1.0 HEAD method), such as Strict-Transport-Security and cookies with and without the "secure" flag set.&lt;br /&gt;
&lt;br /&gt;
TLSSLed v1.1 can be downloaded from &lt;a href="http://www.taddong.com/en/lab.html"&gt;Taddong's lab&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Future versions of the tool are open to improvements and new tests. Do not hesitate to contact me with ideas!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-8578405336963238314?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/TKVl1FKEAqU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/8578405336963238314/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/07/tlssled-v11.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8578405336963238314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8578405336963238314?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/TKVl1FKEAqU/tlssled-v11.html" title="TLSSLed v1.1" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/07/tlssled-v11.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkECQHs-fip7ImA9WhZVFUw.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-3648025386285756364</id><published>2011-05-27T19:51:00.000+02:00</published><updated>2011-05-27T19:51:01.556+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-27T19:51:01.556+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSL" /><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>TLSSLed v1.0</title><content type="html">When running web application security assessments it is mandatory to evaluate the security stance of the SSL/TLS (HTTPS) implementation and configuration. OWASP has a couple of references I strongly recommend to take a look at, the "&lt;a href="https://www.owasp.org/index.php/Testing_for_SSL-TLS_%28OWASP-CM-001%29"&gt;OWASP-CM-001: Testing for SSL-TLS&lt;/a&gt;" checks, part of the OWASP Testing Guide v3, and the &lt;a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet"&gt;Transport Layer Protection Cheat Sheet&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
We have had several tools to test for SSL and TLS security misconfigurations along the years, but still today, lots of people get the output from all these tools and are not very sure what they need to look at. Apart from the SSL/TLS web application best practices, it is important to also check the security of SSL/TLS at the web platform layer.&lt;br /&gt;
&lt;br /&gt;
The purpose of the TLSSLed tool (named from the idea of your website being TLS/SSL-ed, that is, using "https;//") is to simplify the output of a couple of commonly used tools, and highlight the most relevant security findings of any target SSL/TLS implementation. It is based on &lt;a href="http://sourceforge.net/projects/sslscan/"&gt;sslscan&lt;/a&gt;, a thorough SSL/TLS scanner that is based on the openssl library, and on the "&lt;a href="http://openssl.org/"&gt;openssl s_client&lt;/a&gt;" command line tool.&lt;br /&gt;
&lt;br /&gt;
TLSSLed is a Linux shell script inspired on ssl_test.sh by Aung Khant, where a few optimizations have been made to reduce the stress on the target web server (sslscan is run only once and the results are stored on a local file), and some tests have been added and tuned.&lt;br /&gt;
&lt;br /&gt;
The current tests include checking if the target supports the SSLv2 protocol, the NULL cipher, weak ciphers based on their key length (40 or 56 bits), the availability of strong ciphers (like AES), if the digital certificate is MD5 signed, and the current SSL/TLS renegotiation capabilities. The tool is open to comments, suggestions, improvements and new tests from the community. Do not hesitate to contact me with ideas!&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;NOTE&lt;/i&gt;: First idea for v1.1 - Would it be useful to check for the certificate key length (&amp;lt;= 1024 bits)?&lt;br /&gt;
&lt;br /&gt;
TLSSLed v1.0 can be downloaded from &lt;a href="http://www.taddong.com/en/lab.html"&gt;Taddong's lab&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The following output shows how to use TLSSLed and the kind of results you will get. It only requires two arguments ("&lt;i&gt;yes, I know, with no verification...&lt;/i&gt;"): the target HTTPS server hostname (or IP address) and the target port. The example below shows a secure implementation from https://www.owasp.org, because unfortunately, I'm sure you will find multiple insecure examples out there (Make your web environment look the same!):&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;$ ./TLSSLed.sh www.owasp.org 443&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span style="font-size: small;"&gt;------------------------------------------------------
 TLSSLed - (1.0) based on sslscan and openssl
 by Raul Siles (www.taddong.com)
 ( inspired by ssl_test.sh by Aung Khant )
------------------------------------------------------
+ openssl version: OpenSSL 0.9.8g 19 Oct 2007
+ sslscan version 1.8.2
------------------------------------------------------

[*] Analyzing SSL/TLS on www.owasp.org:443 ..

[*] Running sslscan on www.owasp.org:443...

[*] Testing for SSLv2 ...

[*] Testing for NULL cipher ...

[*] Testing for weak ciphers (based on key length) ...


[*] Testing for strong ciphers (AES) ...
    Accepted  SSLv3  256 bits  DHE-RSA-AES256-SHA
    Accepted  SSLv3  256 bits  AES256-SHA
    Accepted  SSLv3  128 bits  DHE-RSA-AES128-SHA
    Accepted  SSLv3  128 bits  AES128-SHA
    Accepted  TLSv1  256 bits  DHE-RSA-AES256-SHA
    Accepted  TLSv1  256 bits  AES256-SHA
    Accepted  TLSv1  128 bits  DHE-RSA-AES128-SHA
    Accepted  TLSv1  128 bits  AES128-SHA

[*] Testing for MD5 signed certificate ...

[*] Checking preferred server ciphers ...
  Prefered Server Cipher(s):
    SSLv3  256 bits  DHE-RSA-AES256-SHA
    TLSv1  256 bits  DHE-RSA-AES256-SHA


[*] Testing for SSLv3/TLSv1 renegotiation vuln. (CVE-2009-3555) ...
depth=3 /L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy ...
... Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com
verify error:num=19:self signed certificate in certificate chain
verify return:0
RENEGOTIATING
Secure Renegotiation IS supported
12172:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:530:

[*] New files created:
-rw-r--r-- 1 samurai samurai 5980 2011-05-27 19:47 sslscan_www.owasp.org:443_2011-05-27_19:46:59.log


[*] done&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-3648025386285756364?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/-Afsr5CNFYk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/3648025386285756364/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/05/tlssled-v10.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/3648025386285756364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/3648025386285756364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/-Afsr5CNFYk/tlssled-v10.html" title="TLSSLed v1.0" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.taddong.com/2011/05/tlssled-v10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcFRHc-cCp7ImA9WhZXFUg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-6286069587365316017</id><published>2011-05-05T01:50:00.000+02:00</published><updated>2011-05-05T01:50:15.958+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T01:50:15.958+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="Wi-Fi" /><category scheme="http://www.blogger.com/atom/ns#" term="Vulnerability" /><title>Vulnerability in Android: To add, or not to add (a Wi-Fi network), that is the question</title><content type="html">&lt;b&gt;Title:&lt;/b&gt; Preferred Network List (PNL) disclosure vulnerability in Android based on the method used to add Wi-Fi networks&lt;br /&gt;
&lt;b&gt;Vulnerability ID:&lt;/b&gt; TAD-2011-003&lt;br /&gt;
&lt;b&gt;Credits:&lt;/b&gt; This vulnerability was discovered by Raul Siles, Founder and Senior Security Analyst with Taddong (&lt;a href="http://www.taddong.com/"&gt;www.taddong.com&lt;/a&gt;)&lt;br /&gt;
&lt;b&gt;Publication date:&lt;/b&gt; May 5, 2011&lt;br /&gt;
&lt;b&gt;Vendors contacted:&lt;/b&gt; Android Security Team&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerability Summary:&lt;/b&gt;&lt;br /&gt;
Depending on the method the user followed to add a Wi-Fi network to its Android mobile device, selecting it from the Wi-Fi networks scan list or manually through the “Add Wi-Fi Network” button, the network name could be disclosed in the air by Android and be used by an attacker to impersonate that network, forcing the victim mobile device to connect to it to capture and manipulate its traffic and launch more advanced attacks.&lt;br /&gt;
&lt;br /&gt;
For all broadcast Wi-Fi networks the user has previously connected to from the “Add Wi-Fi Network” button, it is advised to delete them all and re-add them back from the scan list once the user is under the network coverage.&lt;br /&gt;
&lt;br /&gt;
Android users should preferably connect to a new broadcast Wi-Fi network from the scan list and use the “Add Wi-Fi Network” button only for connecting to a non-broadcast Wi-Fi network. A non-broadcast Wi-Fi network does require a Wi-Fi client to expose the network name in its probe request packets in order to be able to successfully connect to the network, making the client vulnerable to the previously mentioned security threats.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerability Description:&lt;/b&gt; &lt;br /&gt;
Android mobile devices, as most Wi-Fi clients, keep a list of the wireless networks manually configured, plus the networks it has connected to in the past, on the Preferred Network List (PNL). Every time the Wi-Fi interface is turned on, and periodically once it has been activated (for example, to roam between access points), the device checks through 802.11 probe requests what networks in its PNL are available in the current location. Based on the responses obtained, it tries to connect to the most preferred network.&lt;br /&gt;
&lt;br /&gt;
In the past this network discovery process was performed by sending a generic probe request for the broadcast (or any) network plus specific requests for every network in the PNL. This meant devices disclosed the full PNL in the air [1], exposing themselves to karma-like attacks [2], where an attacker can identify all the networks (or access points) the mobile device is trying to connect to and impersonate them, forcing the victim device to connect to the attacker's network to capture and manipulate its traffic and launch more advanced attacks. &lt;br /&gt;
&lt;br /&gt;
In order to avoid this vulnerable behavior, modern operating systems and Wi-Fi supplicants changed the previous vulnerable behavior not to advertise the wireless networks in its PNL. Modern Wi-Fi clients only generate 802.11 probe requests for the broadcast network, generically asking for the networks available in the area. An exception to this behavior is presented by the existence of Wi-Fi hidden networks in the PNL: due to the fact hidden (or non-broadcast) networks do not include their SSID (Wi-Fi network name) in the beacon frames, and do not respond to generic queries asking for any network available, the Wi-Fi clients need to specifically ask for these hidden networks, disclosing its name and existence inside the device PNL. This makes devices vulnerable again to the aforementioned attacks.&lt;br /&gt;
&lt;br /&gt;
Android mobile devices provide two methods to add and configure Wi-Fi networks into the device. If the network is visible, it will appear on the Wi-Fi networks scan list. By simply selecting it form the list, and after providing the network credentials, the user can add the Wi-Fi network to the device.  Additionally, Android provides an “Add Wi-Fi network” button at the bottom of the scan list, to manually add Wi-Fi networks. This is the only method available to add hidden networks, as they will never appear on the scan list. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-j8VTuoL1Yo0/TcHlI9C5KcI/AAAAAAAAACk/hy_4JAvg8Ts/s1600/Android_Wi-Fi_TAD-2011-003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-j8VTuoL1Yo0/TcHlI9C5KcI/AAAAAAAAACk/hy_4JAvg8Ts/s400/Android_Wi-Fi_TAD-2011-003.png" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;However, Android does not provide any specific configuration option through this method to specify if a network is hidden (non-broadcast) or visible (broadcast). Although the most natural way of adding a network for end users is from the scan list (fortunately, for Android, this is the secure option), unfortunately, the method of manually adding Wi-Fi networks to a device is very common too, and recommended from a security perspective, as advanced users have more control over all the Wi-Fi network settings and options. &lt;br /&gt;
&lt;br /&gt;
This subtle configuration behavior has serious security implications. Depending on how the user added the Wi-Fi network to the device, selecting it from the scan list or through the "Add Wi-Fi network" button, you are vulnerable or not. As a result, all the Wi-Fi networks (hidden or visible) added to Android through the “Add Wi-Fi network” button are implicitly considered as hidden, its details will be revealed in the air, and the mobile device will be exposed to Karma-like attacks [2].&lt;br /&gt;
&lt;br /&gt;
The expected non-vulnerable behavior implies the propagation of probe requests only for the broadcast (or any) network plus all the intentionally configured hidden networks in the PNL. By default, unless it is clearly specified by the user, all networks should be treated as visible, not generating any probe request frames for them. &lt;br /&gt;
&lt;br /&gt;
The vulnerable behavior exists on the default Android configuration when adding a Wi-Fi network through the “Add Wi-Fi network” button; the Wi-Fi networks connected from the scan list are not exposed and hence not vulnerable.&lt;br /&gt;
&lt;br /&gt;
This vulnerable behavior is similar to TAD-2010-003 [3], but in the case of Android, only those Wi-Fi networks added through the “Add Wi-Fi Network” button are disclosed, instead of the full PNL.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Security Solutions, Workarounds, and Countermeasures:&lt;/b&gt;&lt;br /&gt;
Every time a user connects to a Wi-Fi network for the first time from her Android mobile device, it must select it from the Wi-Fi networks scan list, instead of using the “Add Wi-Fi Network” button except when connecting to hidden networks (option not recommended). This method ensures the Wi-Fi network will be added to the PNL in a secure way and won’t be disclosed through probe request scans.&lt;br /&gt;
&lt;br /&gt;
End users, corporate administrators, and security professionals, using or managing Android mobile devices must be aware of this behavior and ensure that all the Wi-Fi networks available on the device PNL are treated as visible.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, Android does not provide any indication on the user interface to be able to differentiate between the two types of networks (hidden or visible) for the already configured Wi-Fi networks. Once a Wi-Fi network has been added, the user cannot know if it was securely added or not. Thus, for all Wi-Fi networks previously added to the device the user must delete them all and re-add them again, selecting each of them from the scan list (and not using the “Add Wi-Fi Network”) once the user is under the network coverage (and it is visible).&lt;br /&gt;
&lt;br /&gt;
A similar scenario occurs for those Wi-Fi networks that were configured as hidden in the past, were manually and insecurely added to Android, and are configured as visible now because the administrator learned about Karma-like attacks and improved the security of the network by making it visible. It is highly recommended not to setup or connect to Wi-Fi hidden networks, as the Wi-Fi clients will be exposed to the attacks previously mentioned.&lt;br /&gt;
&lt;br /&gt;
A more granular solution is to monitor the mobile device Wi-Fi traffic, identify what Wi-Fi networks Android is generating probe requests for, and delete and re-add again only those networks.&lt;br /&gt;
&lt;br /&gt;
The recommended solution would be for Android to add a new configuration setting to the user interface that allows the user to specify if the network must be considered hidden or visible every time a new Wi-Fi network is added to the mobile device, independently of the method used, or at least when it is manually added through the vulnerable “Add Wi-Fi Network” button. The default value for this new setting must reflect that the network to connect to is visible (unless the user specifies otherwise by changing the default value). &lt;br /&gt;
&lt;br /&gt;
Besides that, Android users should be able to see and change this “type of network” setting at any time, that is, when the Wi-Fi network is added for the first time, or afterwards, through the "Edit network" button.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerable Platforms:&lt;/b&gt;&lt;br /&gt;
The vulnerable behavior was discovered on Android 2.2. &lt;br /&gt;
&lt;br /&gt;
The Android Security Team has confirmed this vulnerable behavior also affects all currently available Android 2.x and 3.x versions (such as 2.2.1, 2.2.2, 2.3, 2.3.2, 2.3.3, or 3.0).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vendor Information:&lt;/b&gt;&lt;br /&gt;
The Android Security Team confirmed the existence of this vulnerable behavior and is working on changing the "Add Wi-Fi Network" dialog box to read "Configure a non-broadcast network".  The original intent of the "Add Wi-Fi Network" dialog box was only to add non-broadcast networks; the wording will hopefully make that clearer.&lt;br /&gt;
&lt;br /&gt;
The new dialog box text will inform aware users that probe request messages will be sent from their device. They also confirmed there is no Android documentation available which describes the “scan list” versus the “Add Wi-Fi Network" behavior, hence the importance of the distribution of this security advisory in an effort to raise awareness on this issue.&lt;br /&gt;
&lt;br /&gt;
In the “Vulnerability Description” section above, Taddong generally recommends from a security perspective the method of manually adding Wi-Fi networks to a device so that advanced users have more control over all the Wi-Fi network settings and options. The Android Security Team thinks that adding a network via the scan list is more secure, because more critical security information can be conveyed automatically, rather than relying on the limited options available to the user. We (at Taddong) agree this could be true for the average user, especially to avoid misconfiguration and user mistakes, IF the user connects to a secure and properly configured Wi-Fi network, but unfortunately, this is not always the case.&lt;br /&gt;
&lt;br /&gt;
We at Taddong honestly believe this finding must be publicly known by end users and by the information security community in order to take appropriate countermeasures and mitigate the vulnerable behavior. Therefore, we have tried to coordinate the release of this security advisory together with the vendor, following responsible disclosure principles. This vulnerable behavior is especially relevant considering the broad market adoption of Android mobile devices (with significant increasing adoption estimations for the upcoming years), and its extensive usage to connect to Wi-Fi networks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerability Report Timeline:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;2011-04-08&lt;/b&gt;: Taddong contacts the Android Security Team to provide details about this vulnerable behavior. The Android Security Team requests more details and clarifies the expected behavior.&lt;br /&gt;
&lt;b&gt;2011-04-09&lt;/b&gt;: Taddong provides extra details after reanalyzing the expected behavior and ratifies the vulnerable behavior only when the  “Add Wi-Fi Network” button is used. Taddong asks for details to differentiate the two types of networks, available documentation, expected behavior, and future plans to mitigate the vulnerable behavior.&lt;br /&gt;
&lt;b&gt;2011-04-12&lt;/b&gt;: Taddong asks for feedback, and the Android Security Team replies back clarifying the previous questions and notifying future plans to improve the Android user interface. Both parties start to coordinate the public disclosure of this issue. &lt;br /&gt;
&lt;b&gt;2011-04-15&lt;/b&gt;: Taddong completes and provides an initial security advisory draft to the Android Security Team for its review and comments. The Android Security Teams confirms its reception, internal distribution, and feedback is expected for next week.&lt;br /&gt;
&lt;b&gt;2011-04-22&lt;/b&gt;: The Android Security Team confirms it is still collecting feedback regarding the security advisory draft.&lt;br /&gt;
&lt;b&gt;2011-04-28&lt;/b&gt;: Taddong tries to get an update of the status of the security advisory draft review process.&lt;br /&gt;
&lt;b&gt;2011-05-04&lt;/b&gt;: Taddong again tries to get an update of the status of the security advisory draft review process. The Android Security Team provides its review and comments to the security advisory draft.&lt;br /&gt;
&lt;b&gt;2011-05-05&lt;/b&gt;: Taddong publishes security advisory TAD-2011-003.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;
[1] "Trying to shut up your wireless chatty Windows". Raul Siles. 2005.&lt;br /&gt;
URL: &lt;a href="http://www.raulsiles.com/docs/Chatty_Windows_Wifi_Sep05.html"&gt;http://www.raulsiles.com/docs/Chatty_Windows_Wifi_Sep05.html&lt;/a&gt;&lt;br /&gt;
[2] "KARMA Wireless Client Security Assessment Tools". Dino A. Dai Zovi. 2005.&lt;br /&gt;
URL: &lt;a href="http://theta44.org/karma/index.html"&gt;http://theta44.org/karma/index.html&lt;/a&gt;&lt;br /&gt;
[3] “TAD-2010-003: Full 802.11 Preferred Network List (PNL) disclosure in windows Mobile 6.5”. Raul Siles. Taddong. 2010.&lt;br /&gt;
URL: &lt;a href="http://blog.taddong.com/2010/09/vulnerability-in-indiscreet-wi-fi.html"&gt;http://blog.taddong.com/2010/09/vulnerability-in-indiscreet-wi-fi.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;About Taddong:&lt;/b&gt;&lt;br /&gt;
Taddong (&lt;a href="http://www.taddong.com/"&gt;www.taddong.com&lt;/a&gt;)  is a company established in Spain in 2010 with the purpose of improving  customer's information security, by discovering and eliminating or  mitigating the real risks that threaten their networking and information  technology infrastructures. To achieve this goal, Taddong's portfolio  includes specialized information security services, requiring an  in-depth technical knowledge and broad understanding of the information  technology market, as well as training services, focused on providing  customers with auto-defense skills. Taddong remains at the forefront of  the security market through continuous research and education  activities.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Disclaimer:&lt;/b&gt;&lt;br /&gt;
The contents of  this security advisory are copyright (c) 2011 Taddong S.L., and may be  distributed freely provided that no fee is charged for this distribution  and proper credit is given.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-6286069587365316017?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/G9xY9De2K-E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/6286069587365316017/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/05/vulnerability-in-android-to-add-or-not.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6286069587365316017?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/6286069587365316017?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/G9xY9De2K-E/vulnerability-in-android-to-add-or-not.html" title="Vulnerability in Android: To add, or not to add (a Wi-Fi network), that is the question" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-j8VTuoL1Yo0/TcHlI9C5KcI/AAAAAAAAACk/hy_4JAvg8Ts/s72-c/Android_Wi-Fi_TAD-2011-003.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/05/vulnerability-in-android-to-add-or-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQMRH86eSp7ImA9WhdQEEg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-3366813223116382608</id><published>2011-05-03T22:43:00.026+02:00</published><updated>2011-08-11T11:03:05.111+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T11:03:05.111+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="GPRS" /><category scheme="http://www.blogger.com/atom/ns#" term="GSM" /><title>Selective attack with a rogue GSM/GPRS base station</title><content type="html">An attacker employing a rogue GSM/GPRS base station usually wants to compromise the communications of a particular user, while trying to generate the least possible activity for the rest of mobile users within his radio range. We call this a “selective attack”. In order to perform it, the attacker must know the victim’s IMSI (the number that identifies a SIM card) in advance.
&lt;br /&gt;There are two widespread misconceptions regarding this type of attack. Most people think that:
&lt;br /&gt;&lt;p style="padding-left: 50pt; color: #666666"&gt;A.- It is difficult to obtain the victim’s IMSI, and
&lt;br /&gt;B.- It is difficult not to affect the other users in the radio range of the rogue base station&lt;/p&gt;
&lt;br /&gt;However, there are some techniques that allow the attacker to solve the aforementioned issues. In this article we explain one of them as an illustrative example.&lt;div&gt;
&lt;br /&gt;&lt;b&gt;Discovering the victim’s IMSI&lt;/b&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To solve point A, the attacker could do the following:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Step 1: the attacker positions himself in the area where his victim lives (the victim’s home location) when the victim is inside and captures all the IMSIs in the range of his rogue base station. He will probably use a directional antenna to limit the geographical area where he is capturing IMSIs. During this operation, the rogue base station will reject all registration attempts from any mobile, but it will annotate the IMSI numbers of the subscribers that are trying to register.&lt;/li&gt;&lt;li&gt;Step 2: afterwards (for example the next working day), the attacker positions himself in the victim’s office location, and performs the same procedure. It is to be expected that the first IMSI that is present in both IMSI lists will be the one of the victim.&lt;/li&gt;&lt;li&gt;Step 3: after that, the attacker should authorize the registration of the victim’s IMSI (and only this one) in his rogue base station in order to intercept all its communications. The registration attempts from any other IMSI will be rejected.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Avoiding affecting the rest of users.&lt;/b&gt;&lt;div&gt;&lt;b&gt;
&lt;br /&gt;&lt;/b&gt;Once point A is solved, let’s see how the attacker can tackle point B. First, and most important, notice that the attacker didn’t leave the registration open for all mobile stations at any time, thus preventing the appearance of any symptom that could alert the mobile users in the area (such as a sudden change in the coverage indicator, any abnormal error in outgoing calls, the absence of incoming calls, etc.) and any overload problem for his rogue base station (that will typically have limited capabilities for traffic and call management).
&lt;br /&gt;For every aforementioned step, the attacker performs the following configuration actions to affect the least possible the rest of mobiles in his radio range:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Step 1: the attacker will configure its rogue base station so that each IMSI tries to register to it only once. This is convenient for him for several reasons: it will minimize any symptoms in the mobile phones in his range, and also he will reduce to the minimum redundant and useless information in his logs. One way to achieve this objective is to configure a Reject Cause Code 0x0C “Location Area Not Allowed”. This reject code is included by the base station in the “Location Update Procedure Reject” message, sent whenever the base station rejects a registration attempt. According to 3GPP 24.008 and the tests in our lab, the mobile station annotates the LAI (Location Area Identifier) in its “forbidden location areas” list and it will not try to register to any cell with this LAI (at least not until the mobile station is reset or the SIM is removed). This way, the attacker is forcing the mobile terminals in his range to try to register only once to his rogue base station, but they will continue to be able to register back to a legitimate base station.&lt;/li&gt;&lt;li&gt;Step 2: at this moment the attacker wants the victim’s mobile station to be rejected in its first registration attempt, as well as the other subscribers in his radio range. He can configure its rogue base station with a LAI different from the one used in the previous day, so that he will ensure that the mobile station will try to register again. Once identified the first IMSI matching any one stored the previous day, he shutdowns the base station.&lt;/li&gt;&lt;li&gt;Step 3: at this time, the attacker already knows the victim’s IMSI. He can then turn on again his rogue base station with a new LAI and with the victim’s IMSI authorized. When the victim’s mobile station tries to register, the registration will succeed and the attacker will be able to intercept the communications of the victim. All other mobile stations will try to register only once in the rogue base station and will register back to a legitimate cell, because the configured Reject Cause Code will still be 0x0C. &lt;/li&gt;&lt;/ul&gt;This procedure would allow an attacker to identify the victim’s IMSI with a first capture session that would last some minutes, and a second session in which he would be able to selectively intercept the victim’s communications. The only collateral effect on other mobile terminals in the attacker’s range would be that they would try to register to his rogue base station, but only once (or twice at most), and the users won’t even get an indication of this fact on their screens.
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;NOTE: We first published this article, in Spanish, in &lt;a href="http://www.elladodelmal.com/2011/04/ataque-selectivo-con-estacion-base.html"&gt;this post&lt;/a&gt; of the blog &lt;a href="http://www.elladodelmal.com/"&gt;“Un informático en el lado del mal”&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-3366813223116382608?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/yHvVlJs3s2I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/3366813223116382608/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/05/selective-attack-with-rogue-gsmgprs.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/3366813223116382608?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/3366813223116382608?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/yHvVlJs3s2I/selective-attack-with-rogue-gsmgprs.html" title="Selective attack with a rogue GSM/GPRS base station" /><author><name>Jose Pico</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.taddong.com/2011/05/selective-attack-with-rogue-gsmgprs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MGSH09eSp7ImA9WhZTFU4.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-8210862760501711709</id><published>2011-03-18T20:17:00.003+01:00</published><updated>2011-03-19T11:43:49.361+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-19T11:43:49.361+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Vulnerability in SAP NetWeaver Portal: Session Fixation</title><content type="html">&lt;b&gt;Title:&lt;/b&gt; Session fixation vulnerability in the SAP J2EE Engine affecting the core SAP NetWeaver platform&lt;br /&gt;
&lt;b&gt;Vulnerability ID:&lt;/b&gt; TAD-2011-002&lt;br /&gt;
&lt;b&gt;Credits:&lt;/b&gt; This vulnerability was discovered by Raul Siles, Founder and Senior Security Analyst with Taddong (&lt;a href="http://www.taddong.com/"&gt;www.taddong.com&lt;/a&gt;)&lt;br /&gt;
&lt;b&gt;Publication date:&lt;/b&gt; March 18, 2011&lt;br /&gt;
&lt;b&gt;Vendors contacted:&lt;/b&gt; SAP AG&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerability description:&lt;/b&gt; &lt;br /&gt;
SAP's NetWeaver platform is vulnerable to a (web based) session fixation vulnerability. An initial&amp;nbsp; HTTP connection to the J2EE Engine gets assigned a standard Java cookie, named JSESSIONID, that contains the user session ID pre-authentication. Once the user successfully authenticates through any SAP web application or module, hence using the SAP NetWeaver platform and the SAP J2EE Engine, the session ID is not renewed post-authentication, therefore, the platform is vulnerable to session fixation.&lt;br /&gt;
&lt;br /&gt;
SAP NetWeaver is SAP’s integrated technology platform and technical foundation for all SAP applications and modules:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-cgCeiE36Kaw/TYOi4dCkyBI/AAAAAAAAACg/NtkT8aUnGu8/s1600/SAP_architecture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="352" src="https://lh5.googleusercontent.com/-cgCeiE36Kaw/TYOi4dCkyBI/AAAAAAAAACg/NtkT8aUnGu8/s640/SAP_architecture.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
This session fixation vulnerability can be used to selectively attack targeted key business SAP users (regular or administrator), as well as any SAP user indiscriminately. As a result of the attack, the attacker will get unauthorized access to SAP by hijacking the victim user session and fully impersonating the user within the SAP environment.&lt;br /&gt;
&lt;br /&gt;
Session fixation vulnerabilities can be leveraged to bypass the most advanced authentication mechanisms, including passphrases, client-based digital certificates, smart cards, and biometrics. &lt;br /&gt;
&lt;br /&gt;
Considering SAP industry presence as the world’s leader in business software, and its current numbers (+100K customers in 120 countries, +140K installations, and +2,4K certified partners), the impact of this specific vulnerability is extremely high worldwide, affecting thousands of critical business environments and their daily activities.&lt;br /&gt;
&lt;br /&gt;
All the vulnerability details, how it was discovered, worldwide impact, and additional protections mechanisms (apart from the ones detailed in this advisory) are available on the associated presentation and whitepaper [1], and specifically on case study #3.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Security solutions, workarounds, and countermeasures:&lt;/b&gt;&lt;br /&gt;
Companies and organizations using SAP products and solutions, therefore the SAP NetWeaver platform, must apply the recommendations detailed on the associated SAP Security Note, 1310561 [2], and ensure that the newly added "SessionIdRegenerationEnabled" Web Container Service property is enabled. Turning on this property adds a new secure (HTTPS) cookie to sessions, called JSESSIONMARKID, that gets renewed after a successful login, thus mitigating session fixation attacks.&lt;br /&gt;
&lt;br /&gt;
By default, this property is disabled in previous/legacy versions (6.x), and it is enabled since version +7.11 SP06 and all SPs for 7.20 and 7.30. &lt;br /&gt;
&lt;br /&gt;
Taddong's Black Hat Europe 2011 presentation and whitepaper associated to this advisory [1] contain considerations for specific deployment scenarios, additional SAP security-related properties, and other recommended security best practices to mitigate session fixation (as well as other session management) attacks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerable platforms:&lt;/b&gt;&lt;br /&gt;
SAP has confirmed that multiple SAP NetWeaver versions are vulnerable, including 6.40 up to 7.20. See the associated SAP Security Note for details [2].&lt;br /&gt;
&lt;br /&gt;
The vulnerability was discovered on SAP NetWeaver Portal version 6.4.200607310245.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vendor information:&lt;/b&gt;&lt;br /&gt;
SAP confirmed the existence of this vulnerability on July 2009 and released an associated SAP Security Note, number 1310561, on December 2010 [2], acknowledging proper security researcher credit [3].&lt;br /&gt;
&lt;br /&gt;
We  at Taddong honestly believe this finding must be publicly known by the  information security community in order to take appropriate  countermeasures and mitigate the vulnerable behavior. Therefore, we have  tried to coordinate the release of this security advisory together with  the vendor, following responsible disclosure principles. This  vulnerability is extremely relevant considering the extensive number of SAP-based business environments available in the industry and the potential impact of  the associated attacks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerability report timeline: (Summary)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;2009-07-02&lt;/b&gt;: Taddong contacts SAP to provide details about this vulnerability.&lt;br /&gt;
&lt;b&gt;2009-07-14&lt;/b&gt;: SAP ratifies the vulnerability and provides the temporary available countermeasures ("SessionIdRegenerationEnabled"). The disclosure plans and estimated timeframe for a fix started to get discussed.&lt;br /&gt;
&lt;b&gt;2009-07-23&lt;/b&gt;: The initial estimated timeframe is set in two months (end of September), being both parties aware that most probably this is a best case scenario. &lt;br /&gt;
&lt;b&gt;2009-09-18&lt;/b&gt;: A few difficulties and stability issues associated to fixing the vulnerability started to arise, so a new fix estimate is set for January 2010. During the next couple of weeks different options are evaluated to reduce the newly estimated deadline, and to analyze the real impact worldwide.&lt;br /&gt;
&lt;b&gt;2009-11-24&lt;/b&gt;: An status update is requested by Taddong, and the January estimation is confirmed to be still valid. An initial technical solution was being tested by that time. Besides that, the disclosure plans and models of both parties continued being evaluated. SAP clarifies is in the process of evaluating its externally facing security program.&lt;br /&gt;
&lt;b&gt;2010-01-26&lt;/b&gt;: A solution is still not available, the issue was escalated internally, and several months were required to be able to fix the vulnerability for all the different releases affected (7 months after initial notification). During the process, responsible disclosure and impact are reevaluated.&lt;br /&gt;
&lt;b&gt;2010-03-08&lt;/b&gt;: A new deadline is established for September 2010 trying to cover all releases, as a few issues were found on legacy versions. In parallel, the option of providing partial fixes for specific customers is under evaluation (9 months after initial notification).&lt;br /&gt;
&lt;b&gt;2010-08-06&lt;/b&gt;: A meeting is scheduled for November 2010 with the goal of discussing in-depth the vulnerability details and conclusions, plus collaborating and agreeing on the final disclosure actions and release deadline (13 months after initial notification).&lt;br /&gt;
&lt;b&gt;2010-12-14&lt;/b&gt;: The vulnerability is privately released by SAP in the SAP Service Marketplace as Security Note 1310561 [2] to its customers and partners (18 months after initial notification).&lt;br /&gt;
&lt;b&gt;2011-03-17&lt;/b&gt;: The vulnerability and lessons learned are publicly released by Taddong during the Black Hat Europe 2011 conference in Barcelona [1] after an implementation time of three months (21 months after initial notification).&lt;br /&gt;
&lt;b&gt;2011-03-18&lt;/b&gt;: Taddong publishes this security advisory.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;
[1] "SAP: Session (Fixation) Attacks and Protections (in Web Applications)". Raul Siles. Taddong. Black Hat Europe 2011. March 2011.&lt;br /&gt;
URL (presentation): &lt;a href="http://www.taddong.com/docs/BlackHat_EU_2011_Siles_SAP_Session-Slides.pdf"&gt;http://www.taddong.com/docs/BlackHat_EU_2011_Siles_SAP_Session-Slides.pdf&lt;/a&gt;&lt;br /&gt;
URL (whitepaper): &lt;a href="http://www.taddong.com/docs/BlackHat_EU_2011_Siles_SAP_Session-WP.pdf"&gt;http://www.taddong.com/docs/BlackHat_EU_2011_Siles_SAP_Session-WP.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[2] SAP Security Note 1310561. SAP. December 2010. (Registration on the SAP Service Marketplace, SMP, is required).&lt;br /&gt;
URL: &lt;a href="https://websmp130.sap-ag.de/sap/support/notes/1310561"&gt;https://websmp130.sap-ag.de/sap/support/notes/1310561&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[3] SAP acknowledgements to security researchers. SAP. December 2010.&lt;br /&gt;
URL: &lt;a href="http://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/c05604f6-4eb3-2d10-eea7-ceb666083a6a"&gt;http://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/c05604f6-4eb3-2d10-eea7-ceb666083a6a&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;About Taddong:&lt;/b&gt;&lt;br /&gt;
Taddong (&lt;a href="http://www.taddong.com/"&gt;www.taddong.com&lt;/a&gt;)  is a company established in Spain in 2010 with the purpose of improving  customer's information security, by discovering and eliminating or  mitigating the real risks that threaten their networking and information  technology infrastructures. To achieve this goal, Taddong's portfolio  includes specialized information security services, requiring an  in-depth technical knowledge and broad understanding of the information  technology market, as well as training services, focused on providing  customers with auto-defense skills. Taddong remains at the forefront of  the security market through continuous research and education  activities.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Disclaimer:&lt;/b&gt;&lt;br /&gt;
The contents of  this security advisory are copyright (c) 2011 Taddong S.L., and may be  distributed freely provided that no fee is charged for this distribution  and proper credit is given.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-8210862760501711709?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/-EvGwpv3BaI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/8210862760501711709/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/03/vulnerability-in-sap-netweaver-portal.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8210862760501711709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8210862760501711709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/-EvGwpv3BaI/vulnerability-in-sap-netweaver-portal.html" title="Vulnerability in SAP NetWeaver Portal: Session Fixation" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/-cgCeiE36Kaw/TYOi4dCkyBI/AAAAAAAAACg/NtkT8aUnGu8/s72-c/SAP_architecture.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/03/vulnerability-in-sap-netweaver-portal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UNQX45fip7ImA9Wx9aFkQ.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-5924711342341803647</id><published>2011-03-09T18:16:00.002+01:00</published><updated>2011-03-09T18:21:30.026+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-09T18:21:30.026+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>﻿Browser Exploitation for Fun &amp; Profit Revolutions</title><content type="html">Unexpectedly, at the end of last week I had to prepare in less than 24 hours the third (and last by now) episode of the "Browser Exploitation for Fun and Profit" trilogy, dubbed "Revolutions". With this one, the "Matrix-like" series is over ;) &lt;br /&gt;
&lt;br /&gt;
I have had most of the ideas I wanted to highlight on the third episode on my mind for a few weeks/months, but had to put them all together on a slide deck for a last minute presentation slot on the awesome &lt;a href="http://www.rootedcon.es/"&gt;Rooted CON 2011&lt;/a&gt; Spanish security and hacking conference. It was the perfect scenario to finish the trilogy:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-SZ8RFGadMc4/TXeprxdDXnI/AAAAAAAAACc/IXfwSPoVQMI/s1600/253232848_small.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="https://lh6.googleusercontent.com/-SZ8RFGadMc4/TXeprxdDXnI/AAAAAAAAACc/IXfwSPoVQMI/s640/253232848_small.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: xx-small;"&gt;Picture by &lt;a href="http://twitpic.com/46rnps/full"&gt;@a_zumito&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
The full trilogy is available on three different Taddong's blog posts and associated presentations:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.taddong.com/2010/11/browser-exploitation-for-fun-profit.html"&gt;"Browser Exploitation for Fun and Profit"&lt;/a&gt;. November 2, 2010. SANS Special Webcast. Internet.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.taddong.com/2010/12/browser-exploitation-for-fun-profit.html"&gt;"Browser Exploitation for Fun and Profit Reloaded"&lt;/a&gt;. December 2, 2010. SANS@Night. SANS London 2010. London, UK.&lt;/li&gt;
&lt;li&gt;"Browser Exploitation for Fun and Profit Revolutions" (&lt;a href="http://blog.taddong.com/2011/03/browser-exploitation-for-fun-profit.html"&gt;this post&lt;/a&gt;). March 4, 2011. Rooted CON 2011. Madrid, Spain. Presentation &lt;a href="http://www.taddong.com/docs/Browser_Exploitation_for_Fun&amp;amp;Profit_Revolutions_Taddong-RaulSiles_RootedCon-2011.pdf"&gt;available here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;Each episode content somehow builds on the topics and knowledge covered on the previous episodes, trying to minimize the overlap, except for the most important messages and goals I wanted to address with this initiative:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;XSS vulnerabilities and attacks are undervalued, and both their risk and real impact must be seriously considered by any organization interested on protecting their web applications, and collaterally, their web users and clients.&lt;/li&gt;
&lt;li&gt;XSS (Cross-Site Scripting) should be renamed WCI (Web Content Injection) in order to reflect the real scope of the attack, as well as what can be really done with it.&lt;/li&gt;
&lt;li&gt;One of the main goals was to provide web application pen-testers with an open-source XSS exploitation platform, based on &lt;a href="http://sourceforge.net/projects/samurai/"&gt;Samurai WTF&lt;/a&gt;, &lt;a href="https://code.google.com/p/beef/"&gt;BeEF&lt;/a&gt; (&lt;a href="http://www.bindshell.net/tools/beef/"&gt;the old PHP-based&lt;/a&gt; and &lt;a href="https://code.google.com/p/beef/"&gt;the new Ruby-based&lt;/a&gt; versions) and &lt;a href="http://www.metasploit.com/"&gt;Metasploit&lt;/a&gt;, to push XSS vulnerabilities to the limit and be able to really demonstrate the impact of XSS.&lt;/li&gt;
&lt;/ul&gt;This third episode emphasizes all these main principles, focusing on the current XSS state-of-the-art and using (again) a practical and live demo, plus including two related topics I had a pending publication for:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;A “new” kind of XSS I have dubbed "Global (or URL-based) non-persistent XSS"&lt;/b&gt;: I've called it "new" not stating I'm the one that has discovered it, but emphasizing how most organization put all their attention on enforcing input validation and output encoding to mitigate XSS vulnerabilities mainly on HTTP parameters (GET and POST) and HTTP headers, forgetting about the URL itself.&lt;br /&gt;
There are specific scenarios, such as web applications with multi-language support, where this vulnerability is specially relevant, and in particular, due to its global nature, as it affects all the resources within the web application.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Multi-technology WCI (or XSS) on mobile devices&lt;/b&gt;: XSS, or better said WCI, not only affects the traditional web applications and web browsers but other "web clients" (or web-based user interfaces) associated to wireless technologies, such as the SMS or Bluetooth notification systems in mobile devices, like Windows Mobile (WM) 6.1, WM 6.5 (HTC), or Palm WebOS. My bet is that other inputs, such as barcodes, QR-codes, or audio, will affect mobile devices in the near future too!&lt;/li&gt;
&lt;/ul&gt;I added a new final step to the live demo to demonstrate the BeEF frame redirect plug-in capabilities (by Yori Kvitchko), where the victim user can remain hooked to the BeEF framework through the vulnerable web application, while the vulnerable web page is hidden under a 100% iframe showing a different page, such as Google. Although this technique still has a few drawbacks on the pen-tester side due to the original URL and favicon not being replaced by the new attacker's iframe, this can be easily bypassed on some (web clients of) mobile devices (e.g. iPhone and Android) using URL or address bar hiding techniques (see the references at the end of the presentation).&lt;br /&gt;
&lt;br /&gt;
I hope everybody attending any of the related presentations run during the last four moths, or that have simply read the material, enjoyed the whole trilogy. Now it is your turn to put that knowledge and skills into practice and help organizations to mitigate the impact and reduce the prevalence of XSS (or WCI) on web applications.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;i&gt;NOTE&lt;/i&gt;&lt;/u&gt;: In addition to these three episodes, I run an extra live episode on a special SANS promotion event in Madrid on January 25, 2011, "Browser Exploitation for Fun and Profit - Redux". It was a summary of episodes 1 and 2 in preparation for the last one (potentially) during Rooted CON 2011. The event was used to promote my upcoming 2-day &lt;a href="http://www.sans.org/madrid-2011-cs/"&gt;"Metasploit Kung Fu for Enterprise Pen Testing" (SEC580, June 1-2, 2011)&lt;/a&gt; and 6-day &lt;a href="http://www.sans.org/madrid-2011-emea-cs/"&gt;"Web App Penetration Testing and Ethical Hacking" (SEC542, September 19-24, 2011)&lt;/a&gt; training courses in Spanish in Madrid later this year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-5924711342341803647?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/06hcVsubs-k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/5924711342341803647/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/03/browser-exploitation-for-fun-profit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/5924711342341803647?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/5924711342341803647?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/06hcVsubs-k/browser-exploitation-for-fun-profit.html" title="﻿Browser Exploitation for Fun &amp; Profit Revolutions" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh6.googleusercontent.com/-SZ8RFGadMc4/TXeprxdDXnI/AAAAAAAAACc/IXfwSPoVQMI/s72-c/253232848_small.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/03/browser-exploitation-for-fun-profit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ECRHYyfyp7ImA9Wx9bE00.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-552916781674805455</id><published>2011-02-21T16:20:00.025+01:00</published><updated>2011-02-21T17:27:45.897+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-21T17:27:45.897+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GSM/UMTS/GPRS/EDGE/HSPA/LTE" /><category scheme="http://www.blogger.com/atom/ns#" term="Mobile" /><title>Does your phone warn you when it is not encrypting your calls?</title><content type="html">Looking at the following picture, do you know what the open lock icon, near the top left corner of the screen of the Nokia phone, mean?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-jwlPkw0wBdI/TWKEe5tzq0I/AAAAAAAAABE/Fa7JKGsXnYo/s1600/Nokia6230withSIM2-iPhone3GwithSIM1-OpenLock.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://3.bp.blogspot.com/-jwlPkw0wBdI/TWKEe5tzq0I/AAAAAAAAABE/Fa7JKGsXnYo/s400/Nokia6230withSIM2-iPhone3GwithSIM1-OpenLock.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5576164955061988162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In short, it means that the phone call is not being encrypted. But that being the case, shouldn't the iPhone be displaying a similar icon? (the call in progress in the picture was established between the two phones). Keep on reading, and you will see that there is more to it than meets the eye.&lt;br /&gt;&lt;br /&gt;GSM usually encrypts your calls to protect your privacy, and the same goes for your GPRS/EDGE data connections. Now, GSM has many security problems, but for the purpose of this discussion, let us concentrate on the "usually" part in the above sentence.&lt;br /&gt;&lt;br /&gt;The GSM specification gives full control to the network to select the encryption algorithm to be used to protect the communications on the radio interface, choosing from a set of supported algorithms, which nowadays in most cases include only two choices: A5/1, which is the most commonly used encryption algorithm in GSM networks (already broken, but that's another story), and A5/0, which is an euphemism for no-encryption-at-all. Thus, the network can choose to encrypt, or not, your communications.&lt;br /&gt;&lt;br /&gt;Most GSM operators do encrypt their subscribers' communications, but some may choose not to do it, and in some countries, like India, they may even be required by law not to use encryption. Making things even more worrisome, an attacker can very easily set up a rogue GSM base station, pretending to belong to your usual network operator, and route all your calls and data connections, unencrypted, through his base station.&lt;br /&gt;&lt;br /&gt;So, you cannot decide whether the communication will be encrypted or not. But, could you, at least, KNOW if your communication is being encrypted or not?&lt;br /&gt;&lt;br /&gt;The GSM specification states that you, the user, "should" be informed by your mobile device when the communication is not encrypted (3GPP Rel.9 TS 33.102-920  "3G Security Architecture" 5.5.1 Visibility):&lt;br /&gt;&lt;br /&gt;&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div style="color: black;margin: 20px;"&gt;&lt;br /&gt;&lt;em&gt;"Although in general the security features should be transparent to the user, for certain events and according to the user's concern, greater user visibility of the operation of security features should be provided. This yields to a number of features that inform the user of security-related events, such as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;indication of access network encryption: the property that the user is informed whether the confidentiality of user data is protected on the radio access link, in particular when non-ciphered calls are set-up;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;[...]&lt;br /&gt;The ciphering indicator feature is specified in 3GPP TS 22.101 [...]"&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The referenced 3GPP TS 22.101 specification (R99 22.101-3.17.0), on section 13, "Types of features of UEs", says:&lt;br /&gt;&lt;br /&gt;&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div style="color: black;margin: 20px;"&gt;&lt;br /&gt;&lt;em&gt;"The basic mandatory UE requirements are:&lt;br /&gt;[...]&lt;br /&gt;- Ciphering Indicator for terminals with a suitable display;&lt;br /&gt;The ciphering indicator feature allows the ME to detect that ciphering is not switched on and to indicate this to the user. The ciphering indicator feature may be disabled by the home network operator setting data in the SIM/USIM.  If this feature is not disabled by the SIM, then whenever a connection is in place, which is, or becomes unenciphered, an indication shall be given to the user. Ciphering itself is unaffected by this feature, and the user can choose how to proceed;"&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Interesting! So, according to the specification, our mobile devices should tell us that the communication is not encrypted and we should be allowed to choose how to proceed, unless our SIM card were configured to disable this feature. However, is that how it is in real life?&lt;br /&gt;&lt;br /&gt;In a little experiment we did in our lab, we took 2 SIM cards from 2 different network operators, let us call them Operator1 and Operator2, and we inserted them in the phones you saw in the previous picture, an old (2004) Nokia 6230, and a more recent (2008) iPhone 3G. Then, we established a call between them, using our own base station with A5/0, that is, no encryption, and the result was the one depicted in the previous picture: the old Nokia phone displayed the open lock icon, indicating that the call was not being encrypted, while the iPhone did not show any indication of this fact.&lt;br /&gt;&lt;br /&gt;Then, we swapped the SIM cards between the two phones, and established again a call between them. The result: this time neither the Nokia 6230 nor the iPhone 3G displayed any indication of the call not being encrypted, as you can see in the following picture:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-E9lzG09BdG8/TWKE66Acm9I/AAAAAAAAABM/bYfGTXhXDgA/s1600/Nokia6230withSIM1-iPhone3GwithSIM2-NoLock.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://4.bp.blogspot.com/-E9lzG09BdG8/TWKE66Acm9I/AAAAAAAAABM/bYfGTXhXDgA/s400/Nokia6230withSIM1-iPhone3GwithSIM2-NoLock.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5576165436176505810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The conclusions we can draw from this little experiment are:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;the Nokia 6230 will show an open lock icon when a call is not encrypted, unless the SIM card disables this feature,&lt;/li&gt;&lt;br /&gt;&lt;li&gt;the iPhone 3G will never notify the user about a call not being encrypted,&lt;/li&gt;&lt;br /&gt;&lt;li&gt;the SIM card from Operator1 (inserted in the Nokia Phone in the first picture) does not disable the ciphering indicator, and&lt;/li&gt;&lt;br /&gt;&lt;li&gt;the SIM card from Operator2 (inserted in the Nokia Phone in the second picture) disables the ciphering indicator&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Think about it for a second, and then try again to answer the question in the title of this article: does your phone warn you when it is not encrypting your calls?&lt;br /&gt;&lt;br /&gt;&amp;lt;plug&amp;gt;&lt;br /&gt;If you want to find out, bring your mobile phone and SIM card to our &lt;a href=http://www.taddong.com/en/training.html&gt;GSM/UMTS (2G/3G) SECURITY&lt;/a&gt; training course, and you will be able to test it yourself! Sessions available in English and in Spanish!&lt;br /&gt;&amp;lt;/plug&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-552916781674805455?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/uYsdFuXztxE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/552916781674805455/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/02/does-your-phone-warn-you-when-it-is-not.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/552916781674805455?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/552916781674805455?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/uYsdFuXztxE/does-your-phone-warn-you-when-it-is-not.html" title="Does your phone warn you when it is not encrypting your calls?" /><author><name>David Perez</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-jwlPkw0wBdI/TWKEe5tzq0I/AAAAAAAAABE/Fa7JKGsXnYo/s72-c/Nokia6230withSIM2-iPhone3GwithSIM1-OpenLock.jpg" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://blog.taddong.com/2011/02/does-your-phone-warn-you-when-it-is-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMCSH45fSp7ImA9WhZTFE0.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-8005307327754219919</id><published>2011-02-04T00:30:00.084+01:00</published><updated>2011-03-17T23:21:09.025+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-17T23:21:09.025+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="Vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Vulnerability in HTC Peep: Twitter Credentials Disclosure</title><content type="html">&lt;b&gt;Title:&lt;/b&gt; Twitter credentials disclosure in HTC Peep mobile app (default HTC Twitter client)&lt;br /&gt;
&lt;b&gt;Vulnerability ID:&lt;/b&gt; TAD-2011-001&lt;br /&gt;
&lt;b&gt;Credits:&lt;/b&gt; This vulnerability was discovered by Raul Siles, Founder and Senior Security Analyst with Taddong (&lt;a href="http://www.taddong.com/"&gt;www.taddong.com&lt;/a&gt;)&lt;br /&gt;
&lt;b&gt;Publication date:&lt;/b&gt; February 4, 2011&lt;br /&gt;
&lt;b&gt;Last update:&lt;/b&gt; March 17, 2011 - FOTA fixes released by HTC for Tattoo &amp;amp; Hero. See timeline and (&lt;span style="color: red;"&gt;UPDATE2&lt;/span&gt;) marks.&lt;br /&gt;
&lt;b&gt;Previous updates:&lt;/b&gt; February 14, 2011 - Fix released by HTC and validated by Taddong. See timeline and (&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) marks.&lt;br /&gt;
&lt;b&gt;Vendors contacted:&lt;/b&gt; HTC (and MITRE - CVE ID)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerability description:&lt;/b&gt; &lt;br /&gt;
The default Twitter client (or application) in HTC mobile devices is called HTC Peep. HTC Peep is vulnerable to two different credentials disclosure vulnerabilities during the authentication process against the Twitter service (twitter.com).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="176" src="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TTrI8oEUE0I/AAAAAAAAACM/sphIMEvUe5I/s200/HTC_Peep.png" width="200" /&gt;&lt;/div&gt;&lt;br /&gt;
During the authentication process, the HTC Peep app establishes an HTTP (TCP/80) connection against the twitter.com servers, sending a few HTTP OAuth-related requests. The first two HTTP GET requests try to gather and make use of an OAuth token: "GET /oauth/request_token" (the response contains the "oauth_token") and "GET /oauth/authorize?oauth_token=...". &lt;br /&gt;
&lt;br /&gt;
The first vulnerability resides in the third HTTP request, a POST request towards the "/oauth/authorize" resource, which contains several parameters, including the Twitter username and password in the clear, making the authentication process vulnerable to eavesdropping attacks:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;authenticity_token=c8b5abaf53f223e827d9258ddfef4285a816db5f&amp;amp;&lt;br /&gt;
oauth_token=I4FK956n1foaHjayLKXJT2IaBpsmoo0amKyPhebc&amp;amp;&lt;br /&gt;
session%5B&lt;b&gt;username_or_email%5D=USERNAME&amp;amp;session%5Bpassword%5D=PASSWORD&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
This authentication exchange should be protected by HTTPS, forcing the credentials to be sent over an encrypted channel.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aEtn4Xz5qsQ/TT1EBXlFXqI/AAAAAAAAACQ/zoG6SLR0Jv4/s1600/HTC_Peep_HTTP_OAuth_POST.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="http://4.bp.blogspot.com/_aEtn4Xz5qsQ/TT1EBXlFXqI/AAAAAAAAACQ/zoG6SLR0Jv4/s320/HTC_Peep_HTTP_OAuth_POST.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The second vulnerability resides in the way HTC Peep works. Once the Twitter session has been established, all the HTTP requests from the mobile device to the Twitter service include an HTTP Basic authentication header that contains the Twitter username and password (although the app is supposed to be using OAuth). Examples of standard Twitter resources retrieved through HTTP GET requests: "/direct_messages.json?count=50&amp;amp;page=1", "/favorites.json?page=2", "/statuses/friends_timeline.json?count=50&amp;amp;page=1", or "/statuses/mentions.json?count=50&amp;amp;page=1".&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GET /statuses/friends_timeline.json?count=50&amp;amp;page=1 HTTP/1.1&lt;br /&gt;
Accept: text/xml, application/xml;q=0.9, */*;q=0&lt;br /&gt;
&lt;b&gt;Authorization: Basic BASE64("USERNAME:PASSWORD")&lt;/b&gt;&lt;br /&gt;
User-Agent: TwitterEngine&lt;br /&gt;
Host: twitter.com&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;a href="http://oauth.net/"&gt;OAuth&lt;/a&gt; is a technology that enables applications to access a service, in this case Twitter, on behalf of the user, with the user approval, without asking the user directly for (or storing) her password. HTTP Basic authentication is one of the most basic, hence the name, and insecure web-based authentication mechanisms. The credentials are sent (almost) in the clear on every HTTP request from the web client to the web server. In fact, the credentials ("username:password") are encoded in Base64 in the HTTP "Authorization" header. Simply by capturing or eavesdropping the web traffic and looking at the HTTP request headers, an attacker can easily obtain the user Twitter credentials.&lt;br /&gt;
&lt;br /&gt;
The Twitter session can be protected by using a pure OAuth exchange, without making use of Basic authentication, or by protecting the whole session with HTTPS.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TT1EMVUppTI/AAAAAAAAACU/2Od1aU0XBNE/s1600/HTC_Peep_HTTP_Basic_Auth.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TT1EMVUppTI/AAAAAAAAACU/2Od1aU0XBNE/s320/HTC_Peep_HTTP_Basic_Auth.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Coincidentally, the discovery of these vulnerabilities was aligned with Twitter's announcement to increase the security of third-party apps: "Starting August 31, &lt;a href="http://blog.twitter.com/2010/08/twitter-applications-and-oauth.html"&gt;all applications will be required to use “OAuth” to access your Twitter account&lt;/a&gt;". This service switch didn't make any difference regarding this vulnerability, as HTC Peep still works through its OAuth capabilities. However, as this advisory demonstrate, technology must be implemented properly. Historically, Twitter developers have been able to choose one of two authentication methods: Basic Authentication or OAuth. Somehow, HTC Peep is using both methods simultaneously, exposing the user credentials.&lt;br /&gt;
&lt;br /&gt;
Modern mobile devices implement multiple communication technologies, such as IrDa, Bluetooth, Wi-Fi, and mobile (2G/3G). The last two, Wi-Fi and 2G/3G, are the most commonly used methods to establish data communications from the mobile device to other entities. Therefore, this vulnerability can be exploited on targeted attacks when the mobile device is using any of these two technologies:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Wi-Fi&lt;/b&gt;: When the mobile device connects to a Wi-Fi (802.11) network, an attacker can intercept all your web traffic if it is an open or WEP Wi-Fi network. If the network is based on WPA(2)-PSK, any user with access to that network can also collect all your traffic. You can protect your Wi-Fi data communications if you only connect to WPA2-Enterprise Wi-Fi networks (or, potentially, if you thoroughly make use of VPN technologies). Unfortunately, even when your device is not connected to any Wi-Fi network, still this vulnerability can be exploited in combination with other vulnerabilities, such as Karma-like attacks. See "&lt;a href="http://blog.taddong.com/2010/09/vulnerability-in-indiscreet-wi-fi.html"&gt;TAD-2010-003: Full 802.11 Preferred Network List (PNL) disclosure in Windows Mobile 6.5&lt;/a&gt;".&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2G/3G&lt;/b&gt;: When the mobile device connects to a mobile network (2G or 2.5G: GPRS or EDGE) an attacker can intercept all your web traffic. You can protect your mobile data communications if you only connect to +3G data networks. For more information see the "&lt;a href="http://blog.taddong.com/2010/09/gprsedge-security.html"&gt;GPRS/EDGE Security&lt;/a&gt;" blog post and the recent "&lt;a href="https://www.blackhat.com/html/bh-dc-11/bh-dc-11-archives.html#Perez"&gt;A practical attack against GPRS/EDGE/UMTS/HSPA mobile data communications&lt;/a&gt;" BlackHat DC 2011 Taddong &lt;a href="http://blogs.forbes.com/andygreenberg/2011/01/19/smartphone-data-vulnerable-to-base-station-spoof-trick/"&gt;presentation&lt;/a&gt;, by David and Jose.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Independently of the data network access used by the mobile device, at some point the web traffic will enter on the public Internet in the clear (unencrypted), where it can be intercepted by anyone with access to capture the traffic on any of the intermediate network segments between the mobile device and Twitter.&lt;br /&gt;
&lt;br /&gt;
The fact that Twitter credentials can be easily eavesdropped has a pretty significant impact, as most users assume other users credentials have not been hijacked, therefore, they blindly  trust tweets (or microblog/blog posts) coming from trusted parties (their friends, people they frequently follow, public personalities...). Twitter account hijacking can be used for web-based &amp;amp; client-based targeted attacks (specially through the use of short URLs), and can cause a significant damage to the image and credibility of the victim user. &lt;br /&gt;
&lt;br /&gt;
While analyzing in-depth the affected HTC Peep version and the version associated to the temporary hotfix provided by HTC (LEO_S01175.exe), we collected the following details from the Windows Mobile registry:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[HKEY_LOCAL_MACHINE\Software\OEM\MASD]&lt;br /&gt;
"Manila_Twitter"="2_5_19212224_0"&lt;br /&gt;
&lt;br /&gt;
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\HotFix]&lt;br /&gt;
"Social_Networks_Engine_version"="20101005-00"&lt;br /&gt;
"Manila_Twitter_version"="20101005-00"&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;i&gt;NOTE&lt;/i&gt;: Extract your own conclusions about the hotfix version number. &lt;i&gt;Hint:&lt;/i&gt; It looks like a date.&lt;br /&gt;
&lt;br /&gt;
(&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) While validating the software update released by HTC on February 10, 2011, the  version associated to the final hotfix (LEO_S01236.exe), replaces the following details on the Windows Mobile registry:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\HotFix]&lt;br /&gt;
"Social_Networks_Engine_version"="20110208-00"&lt;br /&gt;
"Manila_Twitter_version"="20110208-00"&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;i&gt;NOTE&lt;/i&gt;: It is a date ;) &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Security solutions, workarounds, and countermeasures:&lt;/b&gt;&lt;br /&gt;
(&lt;span style="color: red;"&gt;UPDATE2&lt;/span&gt;) HTC has publicly released a couple of FOTA (Firmware Over-The-Air) fixes or updates [3] for &lt;a href="http://www.htc.com/www/product/tattoo/specification.html"&gt;HTC Tattoo&lt;/a&gt; and &lt;a href="http://www.htc.com/www/product/hero/specification.html"&gt;HTC Hero&lt;/a&gt; associated to the HTC Peep Client. Please note that these two HTC mobile devices are &lt;b&gt;not based on Windows Mobile but on Android&lt;/b&gt;. &lt;br /&gt;
&lt;br /&gt;
(&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) HTC has publicly released a hotfix [2] that forces HTC Peep not to use HTTP Basic authentication but OAuth during the whole Twitter session, and that performs the authentication process over HTTPS (versus HTTP) against the "api.twitter.com" service on port TCP/443, not disclosing the user credentials for the Twitter service. However, after completing the OAuth authentication process over HTTPS, HTC Peep switches to HTTP for the remaining of the Twitter session, making the unencrypted session vulnerable to HTTP session hijacking attacks based on eavesdropping Twitter's session id (e.g. cookies).&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
We think HTC should release a software update to change the vulnerable behavior in the HTC Peep mobile application, solving both credentials disclosure issues: the usage of HTTP Basic authentication versus pure OAuth capabilities, and the usage of HTTP versus HTTPS during the authentication process (and preferably, for the whole HTTP(S) session).&lt;br /&gt;
&lt;br /&gt;
HTC has just confirmed (February 3, 2011 - 6pm CET) that an update is available, although it has not been released publicly. It will be delivered under request to any interested customer. If you are interested on the fix, you must contact HTC directly.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Due to the absence of a public software update at this time (5 months since the initial notification), we strongly recommend users not to use HTC Peep to connect to Twitter. Users must evaluate the usage of HTC Peep as their preferred mobile Twitter client, and use other Twitter clients available for their HTC mobile device instead. There are multiple third-party Twitter clients for Windows Mobile (available through a simple Google search: "windows mobile twitter app (or client)") such as: ceTwit, GPS Twit, Jitter, Locify with Twitter, Pocket Tweet, PocketTwit, Quakk, SQIJ, TinyTwitter, Twibble, Twikini, TwitToday, Twitter2Go, Twitter Answers, Twitter deBolsillo, Twitula, Twobile, Viigo, or direct access to the official Twitter Mobile homepage (https://moblie.twitter.com/login) from a mobile web browser.&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Disclaimer:&lt;/b&gt;&lt;/i&gt; These mobile Twitter applications have not been analyzed against these, similar, or other security vulnerabilities.&lt;br /&gt;
&lt;br /&gt;
Users must avoid reusing their Twitter credentials in other services and applications (a common security best practice), as their Twitter username and password can be easily retrieved by an attacker. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerable platforms:&lt;/b&gt;&lt;br /&gt;
HTC mobile devices running HTC Peep (HTC Peep is the default HTC Twitter client). HTC has confirmed HTC Peep is vulnerable at least in the following HTC mobile platforms: HD2, T-Mobile HD2, Topaz, Rhodium, and HD Mini.&lt;br /&gt;
&lt;br /&gt;
(&lt;span style="color: red;"&gt;UPDATE2&lt;/span&gt;) A new hotfix is available for &lt;span class="status-body"&gt;&lt;span class="status-content"&gt;&lt;span class="entry-content"&gt;HTC Tattoo &amp;amp; HTC Hero [3].&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
(&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) The final hotfix is available for &lt;span class="status-body"&gt;&lt;span class="status-content"&gt;&lt;span class="entry-content"&gt;HTC Touch Pro2/HTC HD2/HTC Touch Diamond2/HTC HD mini [2]. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Other mobile platforms running HTC Peep, based on Windows Mobile or other mobile operating system, such as Android (if available), could be affected too.&lt;br /&gt;
&lt;br /&gt;
The vulnerability was discovered on an HTC HD2 mobile device running Windows Mobile 6.5 Professional and the built-in HTC Peep version ("2_5_19212224_0").&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vendor information:&lt;/b&gt;&lt;br /&gt;
HTC has confirmed the existence of this vulnerability and it is working to release a hotfix to solve the issue. The temporary hotfix provided was named "LEO_S01175" but it still discloses the Twitter credentials by using HTTP instead of HTTPS.&lt;br /&gt;
&lt;br /&gt;
(&lt;span style="color: red;"&gt;UPDATE2&lt;/span&gt;) On March 11, 2011, HTC released &lt;span class="status-body"&gt;&lt;span class="status-content"&gt;&lt;span class="entry-content"&gt;a hotfix for the HTC Peep Client in the form of a FOTA update for HTC Tattoo and HTC Hero, both based on Android [3]. The build numbers after installing the updates will be 1.67.405.70 (for Tattoo) and 3.36.405.1 (for Hero): "&lt;i&gt;From the Home Screen go to MENU&amp;gt; Settings&amp;gt; About Phone&amp;gt; Software Information&amp;gt; Software number&lt;/i&gt;".&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
(&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) On February 10, 2011, HTC released &lt;span class="status-body"&gt;&lt;span class="status-content"&gt;&lt;span class="entry-content"&gt;a hotfix for this HTC Peep credentials disclosure security vulnerability for HTC Touch Pro2/HTC HD2/HTC Touch Diamond2/HTC HD mini [2]. The hotfix filename for the various HTC models varies: LEO_S01236.exe (HD2), PHO03880.exe (HD mini), RHO_S2_00923.exe (Touch Pro2), and TOP_S2_00478.exe (Touch Diamond2).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
We at Taddong honestly believe this finding must be publicly known by the information security community in order to take appropriate countermeasures and mitigate the vulnerable behavior. Therefore, we have tried to coordinate the release of this security advisory together with the vendor, following responsible disclosure principles. This vulnerability is especially relevant considering the extensive number of HTC mobile devices available in the market and the potential impact of the associated attacks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vulnerability report timeline:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;2010-08-21&lt;/b&gt;: Taddong tries to report the vulnerability to HTC through the standard channels (web, e-mail...) without success.&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;2010-08-23&lt;/b&gt;: Taddong contacts other security researchers (Thanks Alberto!) previously involved in reporting vulnerabilities to HTC in order to identify a valid contact or notification channel to let HTC know about the issue.&lt;br /&gt;
&lt;b&gt;2010-08-25&lt;/b&gt;: Taddong spends around a week trying to identify a secure channel to report the issue to HTC, without any success. Please, read "&lt;a href="http://blog.taddong.com/2010/08/seven-deadly-sins-of-security.html"&gt;The Seven Deadly Sins of Security Vulnerability Reporting&lt;/a&gt;"!! [1]&lt;br /&gt;
&lt;b&gt;2010-09-03&lt;/b&gt;: Taddong finally decides to notify HTC about the vulnerability through the only available (but insecure) web channel and sends a brief technical report.&lt;br /&gt;
&lt;b&gt;2010-09-04&lt;/b&gt;:  HTC confirms they "...will investigate (the issue) and get back to us as soon as they get a reply."&lt;br /&gt;
&lt;b&gt;2010-09-19&lt;/b&gt;: Taddong contacts HTC again (after 15 days) emphasizing this is a serious issue that requires immediate action, as Twitter credentials are directly exposed. Taddong tried to get an estimated date when an update would be available in order to proceed to publicly and responsibly disclose the vulnerability.&lt;br /&gt;
&lt;b&gt;2010-09-20&lt;/b&gt;: HTC replies and they "...&lt;span id="ctl00_ContentPlaceHolder1_GridView2_ctl02_Label4"&gt;apologize for the inconvenience and the delay. The case is being investigated and they will get back to us as soon as they get a reply.&lt;/span&gt;"&lt;br /&gt;
&lt;b&gt;2010-10-03&lt;/b&gt;: Taddong contacts HTC again (one month since the initial notification) in order to gather specific details, such as an official confirmation of the vulnerability and an estimated fix release date, trying to coordinate the publication of the associated advisory.&lt;br /&gt;
&lt;b&gt;2010-10-10&lt;/b&gt;: No response was received from HTC. Taddong tries to contact HTC again (+1 week).&lt;br /&gt;
&lt;b&gt;2010-10-22&lt;/b&gt;: HTC replies apologizing (again) for the delay and... asking for "all the details for further investigation"? Taddong replies and clarifies it is still waiting for a confirmation or any chance to discuss the technical details. At the same time, an estimated deadline is set by Taddong for the public release on November 4, 2010 (two months since the original notification).&lt;br /&gt;
&lt;b&gt;2010-10-26&lt;/b&gt;: HTC clarifies the reason for its previous request (for further details), as it is still starting to "...&lt;span id="ctl00_ContentPlaceHolder1_GridView2_ctl02_Label4"&gt;check if there is in fact a vulnerability and try to reproduce it&lt;/span&gt;". Taddong replies back clarifying the details were provided on September 3, 2010, and offering again another brief technical description.&lt;br /&gt;
&lt;b&gt;2010-11-06&lt;/b&gt;: Taddong contacts HTC again asking for the latest details or updates regarding the issue. The goal was to offer HTC an opportunity to step in prior to the public release, even delaying the previously set deadline (of Nov, 4), trying to be extremely responsible.&lt;br /&gt;
&lt;b&gt;2010-11-08&lt;/b&gt;: HTC replies back &lt;span id="ctl00_ContentPlaceHolder1_GridView2_ctl02_Label4"&gt;informing Taddong that currently they are still analyzing it and will issue a notification on their website once they have reached a conclusion.&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;2010-11-21&lt;/b&gt;: Taddong informs HTC that plans to release the vulnerability to the public on Monday, December 6, 2010, and encourage them to contact us during the remaining two week period, as the best option would be having a fix/update ready in order to offer a solution to end users.&lt;br /&gt;
&lt;b&gt;2010-11-22&lt;/b&gt;: HTC informs Taddong that the engineering department is investigating and finding a solution for this issue.&lt;br /&gt;
&lt;b&gt;2010-12-01&lt;/b&gt;: Taddong asks HTC about the availability of (or future plans to get) a CVE ID for this issue prior to the final public disclosure, trying to coordinate both parties.&lt;br /&gt;
&lt;b&gt;2010-12-02&lt;/b&gt;: HTC confirms the engineering department has been notified about the CVE proposal and will get back with a response (three months since the original notification).&lt;br /&gt;
&lt;b&gt;2010-12-11&lt;/b&gt;: Due to the lack of a response, Taddong finally requests one (or two; this is left up to MITRE) CVE ID(s) to MITRE. The CVE ID request process is the reason for a new delay in the second proposed deadline for the public disclosure (Dec, 6).&lt;br /&gt;
&lt;b&gt;2010-12-15&lt;/b&gt;: Taddong tries to confirm if the CVE ID request has been received by MITRE without success. Taddong never got a response from MITRE about the CVE ID request.&lt;br /&gt;
&lt;b&gt;2010-12-16&lt;/b&gt;: HTC provides a hotfix for testing to Taddong (named "LEO_S01175"). &amp;nbsp; &lt;br /&gt;
&lt;b&gt;2010-12-17&lt;/b&gt;: Taddong replies back confirming that the hotfix solves the Basic authentication issue, as OAuth is the only authentication method used after applying the hotfix. However, &lt;b&gt;still&lt;/b&gt; HTC Peep discloses the user credentials in the initial OAuth exchange through HTTP. Taddong suggests to use HTTPS for the whole Twitter session as the right solution (that would also solve other session-based attacks) and asks for the details of a future release.&lt;br /&gt;
&lt;b&gt;2010-12-20&lt;/b&gt;: HTC confirms the suggested solutions have been notified to the engineering department, and that the fix is available for several models. Taddong requests details of the affected models.&lt;br /&gt;
&lt;b&gt;2010-12-21&lt;/b&gt;: HTC confirms that the affected models include: HD2, T-Mobile HD2, Topaz, Rhodium, and HD Mini. There is no information yet about the web page where the update will be available.&lt;br /&gt;
&lt;b&gt;2011-01-17&lt;/b&gt;: Taddong tries to gather details about the web page where the update will be available, as well as information about the pending issue, the credentials being disclosed through HTTP (vs. HTTPS). It is four and a half months since the original notification.&lt;br /&gt;
&lt;b&gt;2011-01-18&lt;/b&gt;: HTC replies notifying they "haven’t received any further information yet (from engineering), and that they will resend our feedback regarding the update again and check with them if they will release any further upgrades soon".&lt;br /&gt;
&lt;b&gt;2011-01-24&lt;/b&gt;: Taddong sets the &lt;span id="ctl00_ContentPlaceHolder1_GridView2_ctl02_Label4"&gt;final vulnerability advisory release for February 4, 2011 (in +10 days and five months since the initial notification), and notifies HTC accordingly, asking for HTTPS support over the hotfix functionality, and trying to retrieve the specific webpage where the update will be available to include it in the advisory. HTC confirmed the reception of this notification. Taddong sent an e-mail to MITRE trying, once again, to get one (or two) CVE IDs for these vulnerabilities.&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;2011-02-03&lt;/b&gt;: One day before publishing the advisory, Taddong contacts HTC and tries to gather details about the&lt;span id="ctl00_ContentPlaceHolder1_GridView2_ctl02_Label4"&gt; web page from where users could download a fix for this vulnerability, trying to include an official solution in the advisory. HTC replies back informing "...that for the time being the update hasn’t yet been released on the website however, any customer who wishes to download it can contact us and we will send it out to them".&lt;/span&gt; &lt;br /&gt;
&lt;b&gt;2011-02-04&lt;/b&gt;: Taddong publishes security advisory TAD-2011-001.&lt;br /&gt;
&lt;b&gt;2011-02-04&lt;/b&gt;: (11:30pm CET) &lt;i&gt;Bugtraq ID&lt;/i&gt; assigned&lt;i&gt;: &lt;a href="http://www.securityfocus.com/bid/46153"&gt;46153&lt;/a&gt;&lt;/i&gt;.&lt;br /&gt;
&lt;b&gt;2011-02-10&lt;/b&gt;: (&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) HTC releases on its support website the fix for the HTC Peep credentials disclosure security vulnerability. The fix for the following models, &lt;span class="title_18"&gt;&lt;span id="ctl00_ContentPlaceHolder1_lblTitle"&gt;HTC Touch Pro2/HTC HD2/HTC Touch Diamond2/HTC HD mini&lt;/span&gt;&lt;/span&gt;, is available at &lt;a href="http://www.htc.com/europe/SupportViewNews.aspx?dl_id=1085&amp;amp;news_id=866"&gt;http://www.htc.com/europe/SupportViewNews.aspx?dl_id=1085&amp;amp;news_id=866&lt;/a&gt; [2]. &lt;br /&gt;
&lt;b&gt;2011-02-14&lt;/b&gt;: (&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) Taddong validates the fix on a HTC HD2 device and updates this advisory accordingly. &lt;br /&gt;
&lt;b&gt;2011-03-11&lt;/b&gt;: (&lt;span style="color: red;"&gt;UPDATE2&lt;/span&gt;) HTC released a new update for HTC Tattoo and HTC Hero, both based on Android (and not Windows Mobile).&lt;br /&gt;
&lt;b&gt;2011-03-17&lt;/b&gt;: (&lt;span style="color: red;"&gt;UPDATE2&lt;/span&gt;) Taddong updates this advisory with the new Android-based hotfixes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;
[1] "The Seven Deadly Sins of Security Vulnerability Reporting". Raul Siles. Taddong. August 15, 2010.&lt;br /&gt;
&lt;a href="http://blog.taddong.com/2010/08/seven-deadly-sins-of-security.html"&gt;http://blog.taddong.com/2010/08/seven-deadly-sins-of-security.html&lt;/a&gt;&lt;br /&gt;
[2] "&lt;span class="title_18"&gt;&lt;span id="ctl00_ContentPlaceHolder1_lblTitle"&gt;Update for HTC Touch Pro2/HTC HD2/HTC Touch Diamond2/HTC HD mini Peep Security update&lt;/span&gt;&lt;/span&gt;". HTC. February 10, 20111.&lt;br /&gt;
&lt;a href="http://www.htc.com/europe/SupportViewNews.aspx?dl_id=1085&amp;amp;news_id=866"&gt;http://www.htc.com/europe/SupportViewNews.aspx?dl_id=1085&amp;amp;news_id=866&lt;/a&gt;&lt;br /&gt;
[3] "HTC Support (Europe)". HTC. March 11, 2011.&lt;br /&gt;
&lt;a href="http://www.htc.com/europe/support.aspx"&gt;http://www.htc.com/europe/support.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;About Taddong:&lt;/b&gt;&lt;br /&gt;
Taddong (&lt;a href="http://www.taddong.com/"&gt;www.taddong.com&lt;/a&gt;) is a company established in Spain in 2010 with the purpose of improving customer's information security, by discovering and eliminating or mitigating the real risks that threaten their networking and information technology infrastructures. To achieve this goal, Taddong's portfolio includes specialized information security services, requiring an in-depth technical knowledge and broad understanding of the information technology market, as well as training services, focused on providing customers with auto-defense skills. Taddong remains at the forefront of the security market through continuous research and education activities.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Disclaimer:&lt;/b&gt;&lt;br /&gt;
The contents of this security advisory are copyright (c) 2011 Taddong S.L., and may be distributed freely provided that no fee is charged for this distribution and proper credit is given.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-8005307327754219919?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/FoJqcwMxb0M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/8005307327754219919/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/02/vulnerability-in-htc-peep-twitter.html#comment-form" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8005307327754219919?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/8005307327754219919?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/FoJqcwMxb0M/vulnerability-in-htc-peep-twitter.html" title="Vulnerability in HTC Peep: Twitter Credentials Disclosure" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TTrI8oEUE0I/AAAAAAAAACM/sphIMEvUe5I/s72-c/HTC_Peep.png" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://blog.taddong.com/2011/02/vulnerability-in-htc-peep-twitter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cFRnY8eip7ImA9WhVXEUg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-4426516473405325174</id><published>2011-01-24T09:30:00.021+01:00</published><updated>2012-04-11T15:30:17.872+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-11T15:30:17.872+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SMB" /><category scheme="http://www.blogger.com/atom/ns#" term="Wireshark" /><title>Wireshark SMB capture feature for Windows</title><content type="html">Since we published our "SMB export object" feature for wireshark a few people has asked for a windows version. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When a functionality is included in the wireshark development trunk, but is not yet included in an stable version, the only way to use it is to obtain the source code (by using "svn co http://anonsvn.wireshark.org/wireshark/trunk/ wireshark") and compile it. Although windows compilation has no technical secret since it is very well explained in &lt;a href="http://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html"&gt;Wireshark's development guide&lt;/a&gt;, it is a little bit of a burden because you have to install some tools (Microsoft C Compiler and SDK, cygwin, python, SVN client, etc.) before being able to compile it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For that reason, we've decided to build a Windows version of wireshark that includes our feature, and publish it in &lt;a href="http://www.taddong.com/es/lab.html#wiresharkexe"&gt;our Lab page&lt;/a&gt;. The file is a windows installer executable packaged with NSIS. It has been tested in a Windows XP system and a Windows 7 system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before install and use it, please be aware that this is a wireshark development version and, by definition, it is subject to errors (our functionality is not an exception). We are still working on some enhancements. Therefore, although running wireshark as a non-privileged user is always a good practice, in this case is even more recommended.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We will announce future improvements of the functionality via twitter and/or on this blog.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;(&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) This functionality is included in the oficial version of Wireshark for Windows from release 1.5.1 on.&lt;br /&gt;(&lt;span style="color: red;"&gt;UPDATE&lt;/span&gt;) We have released a patch that corrects some bugs in the export object SMB functionality of version 1.5.1. It has been included in development trunk from SVN revision 36979 on. Until Wireshark publishes release 1.5.2, you can obtain a windows installer from &lt;a href="http://www.taddong.com/en/lab.html#wiresharkexe"&gt;our lab&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-4426516473405325174?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/zLqRqMJ-q8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/4426516473405325174/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2011/01/wireshark-smb-capture-feature-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/4426516473405325174?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/4426516473405325174?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/zLqRqMJ-q8c/wireshark-smb-capture-feature-for.html" title="Wireshark SMB capture feature for Windows" /><author><name>Jose Pico</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2011/01/wireshark-smb-capture-feature-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQAQnw4eip7ImA9Wx9SGE8.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-630966044999620037</id><published>2010-12-08T18:12:00.000+01:00</published><updated>2010-12-08T18:12:23.232+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-08T18:12:23.232+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Browser Exploitation for Fun &amp; Profit Reloaded</title><content type="html">This week during the SANS London 2010 conference I presented the second part of the web browser exploitation series, "&lt;a href="http://www.taddong.com/docs/Browser_Exploitation_for_Fun&amp;amp;Profit_Reloaded_Taddong-RaulSiles_Dec2010_v1.0.pdf"&gt;Browser Exploitation for Fun and Profit Reloaded&lt;/a&gt;". This &lt;a href="http://www.taddong.com/docs/Browser_Exploitation_for_Fun&amp;amp;Profit_Reloaded_Taddong-RaulSiles_Dec2010_v1.0.pdf"&gt;presentation&lt;/a&gt; is a follow up of the previous "&lt;a href="http://blog.taddong.com/2010/11/browser-exploitation-for-fun-profit.html"&gt;Browser Exploitation for Fun and Profit&lt;/a&gt;" one from last month, and builds on top of the penetration testing setup previously described based on &lt;a href="http://sourceforge.net/projects/samurai/"&gt;Samurai WTF&lt;/a&gt; v0.9, plus &lt;a href="http://www.bindshell.net/tools/beef/"&gt;BeEF&lt;/a&gt; v0.4.0.3, and &lt;a href="http://www.metasploit.com/"&gt;Metasploit&lt;/a&gt; v3.5.x.&lt;br /&gt;
&lt;br /&gt;
This second part provides penetration testers with new tools, ideas, and techniques to demonstrate the impact of XSS vulnerabilities on the client side (but not only), with a specific focus on the top vulnerable (client-side) applications during the first three quarters of 2010: web browsers and their associated plug-ins.&lt;br /&gt;
&lt;br /&gt;
The core of the session covers Java and Adobe Reader exploitation, including the availability of related exploits in multiple criminal sploit packs, and several demonstrations of different complexity levels for these two vulnerable plug-ins. In some scenarios, extra steps on the pen-tester side are required. On the one hand, the MSF Java exploit for CVE-2010-0886 requires a few tweaks to avoid binding conflicts on the web-based ports between Apache (used by Samurai &amp;amp; BeEF) and Metasploit; see the details on part one of the series. On the other hand, the proposed pen-testing setup provides capabilities to turn file format exploits, such as the MSF CVE-2010-0188 exploit, into web application exploits. To be more realistic and succeed in real-world environments, this attack makes use of (a slightly modified version of) the MSF meterpreter reverse_https module, which requires again a few tweaks to avoid port binding conflicts between Apache &amp;amp; BeEF and MSF. Both modifications have been made available through the "misc" directory of the &lt;a href="http://sourceforge.net/projects/samurai/develop"&gt;SVN repository for the Samurai WTF project&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The presentation additionally introduces how to update Samurai v0.9 to the latest BeEF Ruby-based version, v0.4.2-alpha, as this is where the main XSS browser exploitation framework project is leading the industry to. Although the project is still in alpha state, the new features are very promising, and definitely opens the door for future presentations in this series ("To be continued..."). &lt;br /&gt;
&lt;br /&gt;
The third and final section of the presentation introduces web browsing best practices, pros and cons, extra countermeasures, and new industry movements into plug-in checking services and sandbox client applications. &lt;br /&gt;
&lt;br /&gt;
Thanks to all the people that showed up and the interesting debate afterward. Enjoy &lt;a href="http://www.taddong.com/docs/Browser_Exploitation_for_Fun&amp;amp;Profit_Reloaded_Taddong-RaulSiles_Dec2010_v1.0.pdf"&gt;the PDF file of the presentation&lt;/a&gt; (no, it is not malicious... ;-) and try to put all this info in practice within your pen-tests... of course... with authorization!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-630966044999620037?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/pAbiv1Qb13c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/630966044999620037/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2010/12/browser-exploitation-for-fun-profit.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/630966044999620037?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/630966044999620037?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/pAbiv1Qb13c/browser-exploitation-for-fun-profit.html" title="Browser Exploitation for Fun &amp; Profit Reloaded" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.taddong.com/2010/12/browser-exploitation-for-fun-profit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMSXs4fCp7ImA9Wx5bF0Q.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-2764241615863777178</id><published>2010-11-03T15:31:00.000+01:00</published><updated>2010-11-03T15:31:28.534+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-03T15:31:28.534+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Tool" /><category scheme="http://www.blogger.com/atom/ns#" term="WebApp" /><title>Browser Exploitation for Fun &amp; Profit</title><content type="html">This past Tuesday I run a &lt;a href="http://www.sans.org/info/65488"&gt;SANS special webcast titled "Browser Exploitation for Fun and Profit"&lt;/a&gt; complementing the &lt;a href="http://www.sans.org/london-2010/description.php?tid=4382"&gt;"Security 542: Web App Penetration Testing and Ethical Hacking"&lt;/a&gt; training I will run in SANS London 2010 at the end of November, early December:&lt;br /&gt;
&lt;br /&gt;
"&lt;i&gt;Cross-Site Scripting (XSS) is still one of the most prevalent  vulnerability on web applications, and its exploitation is a very  relevant threat to be considered by any organization. As the owner of  the web application, you don't want your visitors and customers to get  exploited through your website, and as the owner of any company, you  don't want your users, browsing the web innocently, to become victims of  large scale or targeted attacks. Browser exploitation frameworks, such  as BeEF, provide attackers and pen-testers advanced capabilities to  perform in-depth devastating attacks into an organization, using the  ubiquitous web browser as the entry point.&lt;/i&gt;"&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TNFxufW2gTI/AAAAAAAAACE/U5Aqc7e0z5s/s1600/no_surfing_S8021.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TNFxufW2gTI/AAAAAAAAACE/U5Aqc7e0z5s/s200/no_surfing_S8021.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The main goal was to introduce the state of the art of client vulnerabilities on the web browser and its associated plug-ins, and focus on the prevalence and impact of (the sometimes undervalued) XSS vulnerabilities. In order to change the general perception and help others to identify the real impact of XSS, pen-testers can make use of the attack platform suggested on the presentation: &lt;a href="http://sourceforge.net/projects/samurai/"&gt;Samurai WTF&lt;/a&gt; v0.9, plus &lt;a href="http://www.bindshell.net/tools/beef/"&gt;BeEF&lt;/a&gt; v0.4.0.3, and &lt;a href="http://www.metasploit.com/"&gt;Metasploit&lt;/a&gt; v3.5.x. The integration of BeEF and Metasploit provides the capabilities required for advanced attacks. The presentation guides pen-testers through the process of updating, configuring, and launching these tools, greatly simplified by using Samurai WTF as your favourite web-app pen-testing platform :)&lt;br /&gt;
&lt;br /&gt;
From the most commonly used web browser plug-ins (Adobe Reader, Flash Player, Java, Quick Time, Windows Media Player, RealPlayer…), I had to select one as my target, and Java was the (chosen) one as all webcast attendees had it installed; it is a pre-requisite for the Ellumitate Live! webcasting platform used by SANS. Despite the technical difficulties during the webcast (&lt;i&gt;it seems an XSS attack affected the slides and the application sharing capabilities of the webcast ;-p&lt;/i&gt; ), I could run a demo of a Java-based vulnerability (CVE-2010-0094) to show how smoothly the integration of these two tools work. Time constraints didn't allow me to run the second, and more advanced demo, exploiting a different Java-based vulnerability (CVE-2010-0886), but you have all the details on &lt;a href="http://www.taddong.com/docs/Browser_Exploitation_for_Fun&amp;amp;Profit_Taddong-RaulSiles_Nov2010_v1.1.pdf"&gt;the presentation&lt;/a&gt;. &lt;a href="http://www.taddong.com/docs/Browser_Exploitation_for_Fun&amp;amp;Profit_Taddong-RaulSiles_Nov2010_v1.1.pdf"&gt;This presentation&lt;/a&gt; is an extended version of the original one with extra detailed steps and references.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Unfortunately, we almost didn't have time for questions and answers, so feel free to &lt;a href="http://www.taddong.com/en/contact.html"&gt;send me an e-mail&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
This is the first of a series of XSS and browser exploitation presentations I will be running in the next few months. The next one will take place during the SANS London 2010 conference: Thursday, 2 December, from 19:30 - 20:45. This second part, titled "&lt;a href="http://www.sans.org/london-2010/night.php"&gt;Browser Exploitation for Fun and Profit Reloaded&lt;/a&gt;", will take the already covered setup for granted, and will describe and demo live more XSS attacks, tools, and techniques, including (if it is mature enough) the new Ruby-based BeEF, v0.4.1.x. &lt;b&gt;Hope to see you there!&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-2764241615863777178?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/yEJOuTwADzc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/2764241615863777178/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2010/11/browser-exploitation-for-fun-profit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2764241615863777178?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/2764241615863777178?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/yEJOuTwADzc/browser-exploitation-for-fun-profit.html" title="Browser Exploitation for Fun &amp; Profit" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TNFxufW2gTI/AAAAAAAAACE/U5Aqc7e0z5s/s72-c/no_surfing_S8021.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2010/11/browser-exploitation-for-fun-profit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYFQn04cCp7ImA9Wx5WEEs.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-1353162006085079711</id><published>2010-09-20T19:08:00.064+02:00</published><updated>2010-09-21T12:15:13.338+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-21T12:15:13.338+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GSM/UMTS/GPRS/EDGE/HSPA/LTE" /><category scheme="http://www.blogger.com/atom/ns#" term="Mobile" /><title>GPRS/EDGE Security</title><content type="html">&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;You should already know by now that &lt;a href="http://en.wikipedia.org/wiki/GSM"&gt;GSM &lt;/a&gt;voice calls and &lt;a href="http://en.wikipedia.org/wiki/SMS"&gt;SMS &lt;/a&gt;messages are not secure. Any third party can easily set up a rogue base station and listen to your calls, read your SMS messages, and reroute, drop, or alter any of them.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;Yes, GSM security is &lt;i style="mso-bidi-font-style: normal"&gt;&lt;u&gt;that&lt;/u&gt;&lt;/i&gt; broken.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;What you may not have realized yet, is that your &lt;a href="http://en.wikipedia.org/wiki/Gprs"&gt;GPRS&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/Enhanced_Data_Rates_for_GSM_Evolution"&gt;EDGE &lt;/a&gt;connections are just as insecure.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;Take a look at the following two pictures and try and answer this question: is the smartphone shown on those images connected, via GPRS and via EDGE, respectively, to the network operator "movistar"?&lt;/p&gt;&lt;div align="center"&gt;&lt;table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-yfti-tbllook: 1184; mso-padding-alt: 0mm 5.4pt 0mm 5.4pt; mso-border-insideh: none; mso-border-insidev: none" class="MsoTableGrid" border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;&lt;td style="PADDING-BOTTOM: 0mm; PADDING-LEFT: 5.4pt; WIDTH: 239.4pt; PADDING-RIGHT: 5.4pt; PADDING-TOP: 0mm; border-bottom:none" valign="top" width="319"&gt;&lt;p style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BaDa34raY3I/TJehi8BD42I/AAAAAAAAAAM/_9H7WFPdVwQ/s1600/IMG_0386+-+iphone+planeta+gprs_c.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 214px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5519057489964032866" border="0" alt="iphone gprs" src="http://4.bp.blogspot.com/_BaDa34raY3I/TJehi8BD42I/AAAAAAAAAAM/_9H7WFPdVwQ/s320/IMG_0386+-+iphone+planeta+gprs_c.png" /&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 0mm; PADDING-LEFT: 5.4pt; WIDTH: 239.4pt; PADDING-RIGHT: 5.4pt; PADDING-TOP: 0mm; border-bottom:none" valign="top" width="319"&gt;&lt;p style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BaDa34raY3I/TJeiXVgznBI/AAAAAAAAAAU/hKVp9bPkcdo/s1600/IMG_0385+-+iphone+planeta+edge_c.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 214px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5519058390161267730" border="0" alt="iphone edge" src="http://2.bp.blogspot.com/_BaDa34raY3I/TJeiXVgznBI/AAAAAAAAAAU/hKVp9bPkcdo/s320/IMG_0385+-+iphone+planeta+edge_c.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="TEXT-ALIGN: center" class="MsoNormal"&gt;Figure 1. iPhone 3G connected via GPRS and EDGE, respectively&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;Note for those of you unfamiliar with the iPhone: the smartphone in the pictures is an iPhone 3G, which, on the top left corner of the screen, it usually displays the name of the network operator it is connected to, and then, next to it, a symbol representing the type of data connection it has established: a circle, if it is connected using GPRS, or a letter "E", if it is connected using EDGE (or "3G" if it is connected using &lt;/i&gt;&lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Universal_Mobile_Telecommunications_System"&gt;UMTS&lt;/a&gt;&lt;/i&gt;&lt;i style="mso-bidi-font-style: normal"&gt;).&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;The right answer, sadly enough, is this:"Maybe it is, but then again, maybe it is not". That's the thing: you simply cannot tell!&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;In fact, the pictures were taken while the smartphone was connected to a rogue base station (&lt;a href="http://en.wikipedia.org/wiki/Base_transceiver_station"&gt;BTS&lt;/a&gt;) that we set up in Taddong's lab, pretending to belong to the network operator &lt;a href="http://www.movistar.com/"&gt;Movistar&lt;/a&gt;. The BTS, in turn, was connected to a PC that emulated a whole network operator (&lt;a href="http://en.wikipedia.org/wiki/Base_station_subsystem"&gt;BSC&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/GPRS_Core_Network#Serving_GPRS_Support_Node_.28SGSN.29"&gt;SGSN&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/GPRS_Core_Network#Gateway_GPRS_Support_Node_.28GGSN.29"&gt;GGSN&lt;/a&gt;, etc.) and had Internet access via ADSL. The PC would route any traffic between the smartphone and the Internet. The following diagram depicts the lab setup:&lt;/p&gt;&lt;table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-yfti-tbllook: 1184; mso-padding-alt: 0mm 5.4pt 0mm 5.4pt; mso-border-insideh: none; mso-border-insidev: none" class="MsoTableGrid" border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;&lt;td style="PADDING-BOTTOM: 0mm; PADDING-LEFT: 5.4pt; WIDTH: 600pt; PADDING-RIGHT: 5.4pt; PADDING-TOP: 0mm; border-bottom:none" valign="top"&gt;&lt;p style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BaDa34raY3I/TJejBpwU17I/AAAAAAAAAAk/3WpgLw1O8J4/s1600/lab_diagram.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 127px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5519059117149575090" border="0" alt="lab diagram" src="http://4.bp.blogspot.com/_BaDa34raY3I/TJejBpwU17I/AAAAAAAAAAk/3WpgLw1O8J4/s400/lab_diagram.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: center" class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figure 2. Diagram showing the lab setup&lt;/span&gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;Note: &lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;In this case, the Internet connection of the PC was established via ADSL, but we could have used any other access technology like cable, UMTS or even GPRS/EDGE. &lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;So, for example, when the user navigated to our web page (&lt;a href="http://www.taddong.com/"&gt;http://www.taddong.com/&lt;/a&gt;) using the web browser of the smartphone...&lt;/p&gt;&lt;table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-yfti-tbllook: 1184; mso-padding-alt: 0mm 5.4pt 0mm 5.4pt; mso-border-insideh: none; mso-border-insidev: none" class="MsoTableGrid" border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;&lt;td style="PADDING-BOTTOM: 0mm; PADDING-LEFT: 5.4pt; WIDTH: 600pt; PADDING-RIGHT: 5.4pt; PADDING-TOP: 0mm; border-bottom:none" valign="top" width="638"&gt;&lt;p style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BaDa34raY3I/TJeju4Gct4I/AAAAAAAAAAs/zoifJZzfHIo/s1600/IMG_0383+-+iphone+taddong_b.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 214px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5519059894094575490" border="0" alt="iphone homepage tadddong" src="http://1.bp.blogspot.com/_BaDa34raY3I/TJeju4Gct4I/AAAAAAAAAAs/zoifJZzfHIo/s320/IMG_0383+-+iphone+taddong_b.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="TEXT-ALIGN: center" class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figure 3. Smartphone browsing www.taddong.com&lt;/span&gt;&lt;/p&gt;... we could see those packets going through our PC, with as little effort as simply invoking good old &lt;a href="http://www.wireshark.org/"&gt;Wireshark&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-yfti-tbllook: 1184; mso-padding-alt: 0mm 5.4pt 0mm 5.4pt; mso-border-insideh: none; mso-border-insidev: none" class="MsoTableGrid" border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;&lt;td style="PADDING-BOTTOM: 0mm; PADDING-LEFT: 5.4pt; WIDTH: 600pt; PADDING-RIGHT: 5.4pt; PADDING-TOP: 0mm; border-bottom:none" valign="top" width="638"&gt;&lt;p style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BaDa34raY3I/TJekZKJzjEI/AAAAAAAAAA0/ODd2pQJfR4k/s1600/Capture01c.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 232px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5519060620494998594" border="0" alt="wireshark capture" src="http://1.bp.blogspot.com/_BaDa34raY3I/TJekZKJzjEI/AAAAAAAAAA0/ODd2pQJfR4k/s400/Capture01c.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="TEXT-ALIGN: center" class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figure 4. Wireshark's capture of the HTTP request from the smartphone to www.taddong.com&lt;/span&gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;The above example, in which a user simply navigates to a static web page and the attacker sniffs the connection is a really simple one, granted, but it does illustrate the point: the attacker is sitting between the user's smartphone and the Internet, with full control over any packet flowing between them. Now, think of the possibilities for mischief: the attacker could read any e-mail sent or received in cleartext, she could read any usernames and passwords sent in cleartext by the user to remote servers, she could redirect any outgoing HTTP request to a malicious web server that would then send malicious content back to the browser, etc.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;Just think about it the next time your smartphone tells you that it is using a GPRS/EDGE connection. Or, if you feel that your data is not interesting enough for an attacker, think about what might be going on the next time the smartphone of your CEO or any other VIP in your organization reports that it is using GPRS/EDGE. Would those connections be interesting to an attacker? Oh, yes!&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;So, what can you do to protect your GPRS/EDGE communications? We'll give you a short answer and a long answer.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;The short answer: Do not use GPRS or EDGE; instead, use only UMTS ("3G", "3.5G", &lt;a href="http://en.wikipedia.org/wiki/High_Speed_Packet_Access"&gt;HSPA&lt;/a&gt;). Alternatively, make sure you use end-to-end authentication and encryption for all aplications that you access wirelessly. Or, even better, do both.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;The long answer is actually a shameless plug &lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;;-): &lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;&amp;lt;plug&amp;gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;Come to our &lt;a href="http://www.taddong.com/en/training.html"&gt;GSM/UMTS Security training course&lt;/a&gt; and you will see for yourself! In the course, we cover everything you need to know about GSM and UMTS security, including voice calls, SMS messaging, and data connections (GPRS/EDGE/UMTS/HSPA). All packed in a very short, very intense training experience, with lots of interactive demonstrations, that will make you fully understand all the vulnerabilities and risks involved and all the countermeasures available.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;&lt;a href="http://www.taddong.com/en/EV_GSMSecurity_201011.html"&gt;In November 2010 we will be teaching it for the first time, in Valencia, in Spanish&lt;/a&gt;, but if you don't speak Spanish or can't make it this time, don't worry: we'll be running English editions soon enough. Follow our blog, tweets and/or web page, and you won't miss it when we announce them.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;&amp;lt;/plug&amp;gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;Finally, if you fear that this GPRS/EDGE problem might apply to more than just smartphones, your instincts are serving you well: it definetely does. We will talk about that on a future post.&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;In the meantime, &lt;a href="http://www.imdb.com/title/tt0091064/trivia?tr0777239"&gt;"be afraid, be very afraid..."&lt;/a&gt; of GPRS/EDGE connections!&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p style="TEXT-ALIGN: justify" class="MsoNormal"&gt;Jose Pico &amp;amp; David Perez&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-1353162006085079711?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/pNg_fcT7Ua4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/1353162006085079711/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2010/09/gprsedge-security.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/1353162006085079711?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/1353162006085079711?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/pNg_fcT7Ua4/gprsedge-security.html" title="GPRS/EDGE Security" /><author><name>David Perez</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_BaDa34raY3I/TJehi8BD42I/AAAAAAAAAAM/_9H7WFPdVwQ/s72-c/IMG_0386+-+iphone+planeta+gprs_c.png" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://blog.taddong.com/2010/09/gprsedge-security.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08GRnw9fSp7ImA9Wx5XFEg.&quot;"><id>tag:blogger.com,1999:blog-2773536350893785230.post-5312259652857687008</id><published>2010-09-14T11:14:00.002+02:00</published><updated>2010-09-14T11:17:07.265+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-14T11:17:07.265+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PenTest" /><category scheme="http://www.blogger.com/atom/ns#" term="Wi-Fi" /><title>More WPA2 Hole 196 Reflections and TCP/IP Stack (Mis)Behaviors</title><content type="html">This year I had the opportunity to gather the details of the latest vulnerability in Wi-Fi technologies before it's announcement during the BlackHat and DefCon conferences, dubbed "(WPA2) Hole 196", however at that point, I didn't have the time to analyze it and publish the details. I always like to perform an in-depth analysis and share my comments on the current Wi-Fi security threats, as I did during the last years in our &lt;a href="http://www.radajo.com/search/label/Wireless"&gt;original RaDaJo blog&lt;/a&gt; with the PTW WEP cracking attack (&lt;a href="http://www.radajo.com/2007/04/what-else-do-you-need-not-to-use-wep.html"&gt;104&lt;/a&gt; &amp;amp; &lt;a href="http://www.radajo.com/2007/04/breaking-40-bit-wep-in-less-than-30.html"&gt;40-bit&lt;/a&gt;), &lt;a href="http://www.radajo.com/2007/09/to-wep-or-not-to-wep-that-is-question.html"&gt;WEP cloaking&lt;/a&gt;, &lt;a href="http://www.radajo.com/2008/08/autoimmunity-disorder-in-wireless-lans.html"&gt;autoimmunity disorder in WLANs&lt;/a&gt; or the &lt;a href="http://www.radajo.com/2008/11/wpatkip-chopchop-attack.html"&gt;WPA/TKIP ChopChop attack&lt;/a&gt;. (WPA2) Hole 196 couldn't be left apart!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TIpTS8b-baI/AAAAAAAAAB8/sIvYT8g5QaU/s1600/great-blue-hole.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TIpTS8b-baI/AAAAAAAAAB8/sIvYT8g5QaU/s320/great-blue-hole.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
My last &lt;a href="http://www.radajo.com/2008/11/wpatkip-chopchop-attack.html"&gt;WPA/TKIP ChopChop attack&lt;/a&gt; analysis emphasized the temporary nature of TKIP, recommending WPA2/AES as the reference security technology for Wi-Fi networks. However, the first well-known vulnerability for WPA2-Enterprise has been released. During BlackHat and Defcon 2010, MD Sohail Ahmad senior wireless security researcher from AirTight Networks, presented "WPA Too!", demonstrating an inherent flaw in the design of WPA(2). Apart from the original &lt;a href="https://www.defcon.org/images/defcon-18/dc-18-presentations/Ahmad/DEFCON-18-Ahmad-WPA-Too.pdf"&gt;presentation&lt;/a&gt;, &lt;a href="https://www.defcon.org/images/defcon-18/dc-18-presentations/Ahmad/DEFCON-18-Ahmad-WPA-Too-WP.pdf"&gt;whitepaper&lt;/a&gt;, &lt;a href="http://blog.airtightnetworks.com/wpa2-finds-itself-in-a-hole-vulnerable-to-insider-attacks"&gt;blog post&lt;/a&gt;, &lt;a href="http://blog.airtightnetworks.com/wpa2-hole196-webinar-qa"&gt;webinar&lt;/a&gt; and &lt;a href="http://www.airtightnetworks.com/wpa2-hole196"&gt;FAQ&lt;/a&gt;, there is a great analysis by Glenn Fleishman available &lt;a href="http://arstechnica.com/business/news/2010/07/wifi-hole196-major-exploit-or-much-ado-about-little.ars"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
So, let's start this quick analysis emphasizing a security principle the infosec industry does not fully assimilate yet: "&lt;b&gt;If something is shared, it cannot be secret&lt;/b&gt;" ;) Hole 196 exploits this principle attacking the GTK, the Group Temporal Key shared by all Wi-Fi clients to exchange broadcast and multicast traffic. This principle is also what makes WPA(2)-PSK solutions vulnerable, as the Pre-Shared Key is known by all Wi-Fi clients, so any legitimate user can easily decrypt the Wi-Fi traffic from other users.&lt;br /&gt;
&lt;br /&gt;
Why "Hole 196"? Because it exploits a security weakness in the GTK pointed out on page 196 of the current &lt;a href="http://standards.ieee.org/getieee802/download/802.11-2007.pdf"&gt;IEEE 802.11-2007 specification&lt;/a&gt;. As this is a design flaw, fixing Hole 196 will require an update to the current IEEE 802.11 spec.:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aEtn4Xz5qsQ/TIYUBsNYKwI/AAAAAAAAAB0/Q38hdH_MxOo/s1600/802.11-2007_page196.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://3.bp.blogspot.com/_aEtn4Xz5qsQ/TIYUBsNYKwI/AAAAAAAAAB0/Q38hdH_MxOo/s640/802.11-2007_page196.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
To sum up, I agree with my friend &lt;a href="http://www.willhackforsushi.com/?p=495"&gt;Josh Wright&lt;/a&gt; that this new vulnerability won't make people to switch off their Wi-Fi networks (as WEP flaws did a few years back). What makes this finding more interesting is that it affects the most secure Wi-Fi environments nowadays, those based on WPA2/AES-Enterprise (802.1X). To put things in context, there are still thousands, or even millions, of Wi-Fi deployments that are based on WEP or WPA(2)-PSK vulnerable to much more relevant flaws than this one.&lt;br /&gt;
&lt;br /&gt;
(My personal) Hole 196 reflections:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;All WPA and WPA2 environments, independently of the encryption technology used (TKIP or AES) or the authentication method (Personal, PSK or Enterprise, 802.1X) are vulnerable. Hole 196 is particularly relevant on WPA2/AES-Enterprise.&lt;/li&gt;
&lt;li&gt;Hole 196 is an insider attack, meaning the attacker needs to be a legitimate Wi-Fi user to get access to the GTK. It therefore affects security conscious organizations concerned about the insider threat (unfortunately, still today not everybody is concerned) or the few Wi-Fi hotspots based on WPA(2)-Enterprise (where other legitimate users are not trusted users implicitly).&lt;/li&gt;
&lt;li&gt;It allows stealthier ARP poisoning (MitM) attacks, as the malicious ARP frames won't be seen on the wired network segments and, therefore, on a wired IDS/IPS. This could be a good reason for security conscious organizations, already using WPA2-Enterprise, to deploy a wireless IDS (WIDS).&lt;/li&gt;
&lt;li&gt;An attacker can use ARP poisoning techniques to get access to (decrypt) other users Wi-Fi traffic, as in a default WPA(2)-PSK setup or wired LAN, manipulate that traffic, or launch DoS attacks. Less-stealthier ARP poisoning attacks are possible on any Wi-Fi network (not just through Hole 196), and quite honestly, still today lots of organizations are unable to detect ARP poisoning attacks on their networks (LAN or WLAN) or even enforce secure wired or wireless network access through 802.1X authentication.&lt;/li&gt;
&lt;li&gt; A new kind of DoS is possible through Hole 196 by increasing the value of the packet number (PN) field, used by WPA2 to detect replay attacks. This attack joins the long list of Wi-Fi DoS attacks still possible today.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;In essence, Hole196 allows the injection of fake broadcast or multicast frames in the Wi-Fi network that all users will accept as legitimate. Therefore, an attacker can launch any kind of attack that implies the usage of broadcast or multicast traffic at layer 2, being ARP poisoning the best example. This is what the FAQ refers to as "&lt;i&gt;Other attacks such as port scanning, exploiting OS and application vulnerabilities, malware injection, DNS manipulation, denial of service, etc. are possible by misusing GTK.&lt;/i&gt;" &lt;/li&gt;
&lt;/ul&gt;In the absence of a WIDS, client-based detection capabilities are specially relevant to detect ARP spoofing attacks launched through Hole 196. This opens the door for a future blog post focused on analyzing nowadays &lt;a href="http://www.radajo.com/2007/03/common-misconceptions-about-arp-cache.html"&gt;ARP poisoning&lt;/a&gt; detection solutions on the client side (and in case you ask, Snort is not a client side solution for me), such as &lt;a href="ftp://ftp.ee.lbl.gov/arpwatch.tar.gz"&gt;arpwatch&lt;/a&gt; by &lt;a href="http://ee.lbl.gov/"&gt;LBNL&lt;/a&gt; (already analyzed in 2003 on my "&lt;a href="http://www.giac.org/certified_professionals/practicals/gcih/0487.php"&gt;Real Worl ARP Spoofing&lt;/a&gt;" GCIH paper), &lt;a href="http://www.irongeek.com/i.php?page=security/decaffeinatid-simple-ids-arpwatch-for-windows"&gt;DecaffeintID&lt;/a&gt; by IronGeek (Windows) or &lt;a href="http://www.chrismc.de/development/xarp/"&gt;XArp&lt;/a&gt; by Christoph P. Mayer (Windows and Linux). What are the solutions available for other Wi-Fi clients, such as mobile devices?&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;Hole 196 has favored new research focused on how the current TCP/IP stacks behave and respond to layer 3 (IP) unicast packets encapsulated in layer 2 (802.11 or Ethernet) broadcast or multicast frames. &lt;a href="http://www.packetstan.com/2010/08/windows-lan-addressing-validation-and.html"&gt;Josh opened Pandora's box on his Packetstan blog post&lt;/a&gt;. Although still it is not clear how this misbehavior can be fully exploited on any network, apart from bypassing layer-2 filters, it is particularly relevant for one-way attacks on Wi-Fi PSPF (Publicly Secure Packet Forwarding, aka "client isolation") environments through Hole 196.&lt;br /&gt;
&lt;br /&gt;
Following Josh research, I did a few extra tests with OS &amp;amp; platforms, and (in particular) mobile devices common  in Wi-Fi networks, and confirmed the following facts:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Josh mentioned Windows Vista and 7 accept LAN broadcast traffic sent to unicast IP addresses. I confirmed that Windows Vista SP2 under VMware Fusion 3.1.1 (LAN) in fact does accept this kind of traffic for ICMP, TCP or UDP for broadcast and multicast layer-2 addresses. The most surprising fact is that Windows Vista and 7 accept TCP  broadcast traffic. New TCP/IP stack implementations can always include  hidden gifts!&lt;/li&gt;
&lt;li&gt;Windows XP SP3 (WLAN) does not accept it for any of the protocols (ICMP, TCP or UDP), no matter the layer-2 address used, broadcast or multicast. So, does this mean XP is "more secure regarding Hole 196" than Vista &amp;amp; 7? ;) &lt;/li&gt;
&lt;li&gt;Linux 2.6 (2.6.30.9), for the records running inside VMware 6.5.4 (LAN),  accepts both broadcast and multicast traffic for ICMP and UDP. It  rejects it for TCP. From a layer 2 vs. protocol perspective it makes  sense, as ICMP and UDP protocols can make use of broadcast and multicast communications, while TCP cannot. However, the key question about this misbehavior is: should the layer 3 address  be verified against the layer 2 address by the OS TCP/IP stack before processing a frame/packet?&lt;/li&gt;
&lt;li&gt;iPhone 3.1.3 and 4.0.2 (WLAN) accept both broadcast and multicast traffic for ICMP and UDP, but rejects both layer-2 addressing types for TCP, like Linux 2.6.&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6.4 (WLAN) again behaves similarly to Linux 2.6, only accepting both broadcast and multicast traffic for ICMP and UDP.&lt;/li&gt;
&lt;li&gt; Windows Mobile 6.1 and 6.5 behave as Windows XP, not accepting this kind of traffic for any of the protocols (ICMP, TCP or UDP) no matter the layer-2 address used, broadcast or multicast.&lt;/li&gt;
&lt;/ul&gt;If you are interested on testing this kind of misbehaviors, you can use &lt;a href="http://www.packetstan.com/2010/08/windows-lan-addressing-validation-and.html"&gt;Josh's suggested packet crafting technique &lt;/a&gt;based on Python and &lt;a href="http://www.secdev.org/projects/scapy/"&gt;Scapy&lt;/a&gt; (for ICMP, TCP &amp;amp; UDP) on &lt;a href="http://www.secdev.org/projects/scapy/doc/installation.html#platform-specific-instructions"&gt;various platforms&lt;/a&gt;, including the standard Backtrack 4 Final VM I used for these tests (with Scapy v2.1.0), or a simpler multi-platform method (Windows, Linux &amp;amp; Mac) based on creating a static entry on the local ARP table using a broadcast or multicast layer-2 address, and generating traffic against the associated layer-3 address through ping (ICMP) or netcat (TCP &amp;amp; UDP).&lt;br /&gt;
&lt;br /&gt;
Example of an ICMP echo request packet addressed ("dst=") to a multicast layer-2 address and unicast layer-3 address in Scapy:&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;pre&gt;&amp;gt;&amp;gt;&amp;gt; &lt;b&gt;p = Ether(dst="01:00:5e:00:00:01", src="00:0c:29:01:02:03", type=0x800)&lt;/b&gt;&amp;nbsp;
&amp;gt;&amp;gt;&amp;gt; &lt;b&gt;p /= IP(src="192.168.100.2",dst="192.168.100.1")&lt;/b&gt;&amp;nbsp;
&amp;gt;&amp;gt;&amp;gt; &lt;b&gt;p/= ICMP()&lt;/b&gt;&amp;nbsp;
&amp;gt;&amp;gt;&amp;gt; &lt;b&gt;srp1(p)&lt;/b&gt;
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
&amp;lt;Ether  dst=00:0c:29:01:02:03 src=00:0a:0b:0c:0d:0e type=0x800 |
&amp;lt;IP  version=4L ihl=5L tos=0x0 len=28 id=741 flags= frag=0L ttl=128 
proto=icmp chksum=0x2877 src=192.168.100.1 dst=192.168.100.2 options=[] |
&amp;lt;ICMP  type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |&amp;lt;Padding 
load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;For TCP &amp;amp; UDP packets replace the "ICMP()" line above with the appropriate line:&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;b&gt;p /= TCP(sport=65000, dport=196)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;b&gt;p /= UDP(sport=65000, dport=196)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Example of Linux/Mac &amp;amp; Windows ARP static entry to associate a multicast layer-2 address to a unicast layer-3 address. All local traffic sent to the unicast layer-3 address will use the multicast layer-2 address. Don't forget to delete the new ARP entry (-d) when the tests are finished :)&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;# Linux/Mac &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;$ &lt;b&gt;sudo arp -s 192.168.100.1 01:00:5e:00:00:01&lt;/b&gt;&lt;br /&gt;
$ arp -an&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;? (192.168.100.1) at 01:00:5e:00:00:01 [ether] PERM on eth0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;$ &lt;b&gt;sudo arp -d 192.168.100.1&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;# Windows &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;C:\&amp;gt;&lt;b&gt;arp -s 192.168.100.1 01-00-5e-00-00-01&lt;/b&gt;&lt;br /&gt;
C:\&amp;gt;arp -a&lt;br /&gt;
Interface: 192.168.100.2 --- 0x4&lt;br /&gt;
&amp;nbsp; Internet Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Physical Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&lt;br /&gt;
&amp;nbsp; 192.168.100.1 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 01-00-5e-00-00-01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
For general operating systems, before testing, double check that the target TCP/IP stack, and  associated personal firewall, allows the ICMP, TCP &amp;amp; UDP traffic  used for the analysis (for example, using layer-2 &amp;amp; layer-3 unicast packets) and don't forget to launch the TCP &amp;amp; UDP listeners:&lt;br /&gt;
&lt;table bgcolor="#a6e1f4" border="1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;# TCP listener (you might need to manually close it after the incomplete&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;# SYN/SYN-ACK exchange when using the Scapy packet crafting technique): &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;$ echo "hole 196" | sudo nc -l -p 196&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;# UDP listener:&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;$ &lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;echo "hole 196" | sudo nc -u -l -p 196&lt;/b&gt; &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-size: x-small;"&gt;NOTE: It would be more secure not to use 196 as the target port (Hint: root level required if port &amp;lt;=1023).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
For mobile or embedded devices, where netcat cannot be used, you need to identify first an open TCP &amp;amp; UDP port that replies to standard unicast traffic. Remember that for UDP you also need to send a properly formatted packet to the target service in order to force a valid reply (Hint: ARP static entry &amp;amp; "nmap -n -Pn -sU -sV -p5353,137 192.168.100.1").&lt;br /&gt;
&lt;br /&gt;
Definitely, more research is needed if a relevant exploitation vector for this misbehavior is found, including the analysis of both broadcast and multicast packets, covering all interfaces (WLAN and LAN) just in case the TCP/IP stacks behave differently, and considering all kind of Wi-Fi clients such as mobile devices, printers, multimedia disks, etc.  Anything with a TCP/IP stack should be part of this extended research. BTW, for the layer 2 multicast address I used 01:00:5e:00:00:01, that corresponds  to 224.0.0.1 (&lt;a href="http://www.iana.org/assignments/multicast-addresses/"&gt;all systems on this subnet, IANA&lt;/a&gt;). If you test other platforms or have exploitation ideas, please share them in the comments section below, or &lt;a href="http://www.taddong.com/en/contact.html"&gt;send me an e-mail&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
I will cover Hole 196 as part of an in-depth technical look at the  current state of Wi-Fi (802.11) security and the still today prevalent and cutting-edge Wi-Fi  vulnerabilities and countermeasures, on my  "Wi-Fi (In)Security: All Your Air Are Belong To..." talk during the &lt;a href="https://www.govcert.nl/symposium/programme.html"&gt;GOVCERT.NL Symposium&lt;/a&gt; on November 16, 2010, in The  Netherlands.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;NOTE: The image above belongs to the &lt;a href="http://beautyofearth.net/the-legendary-great-blue-hole-of-belize-divers-paradise/"&gt;Great Blue Hole of Belize&lt;/a&gt;, in the Lighthouse Reef atoll, a legendary 125 meters deep underwater sinkhole. &lt;br /&gt;
Another awesome Taddong-related place!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2773536350893785230-5312259652857687008?l=blog.taddong.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Taddong/~4/Zr-ljnALy9E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.taddong.com/feeds/5312259652857687008/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.taddong.com/2010/09/more-wpa2-hole-196-reflections-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/5312259652857687008?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2773536350893785230/posts/default/5312259652857687008?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taddong/~3/Zr-ljnALy9E/more-wpa2-hole-196-reflections-and.html" title="More WPA2 Hole 196 Reflections and TCP/IP Stack (Mis)Behaviors" /><author><name>Raul Siles</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_aEtn4Xz5qsQ/TIpTS8b-baI/AAAAAAAAAB8/sIvYT8g5QaU/s72-c/great-blue-hole.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.taddong.com/2010/09/more-wpa2-hole-196-reflections-and.html</feedburner:origLink></entry></feed>

