<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Andreas Happe</title>
    <link>https://snikt.net/</link>
    <description>Recent content on Andreas Happe</description>
    <generator>Hugo -- 0.147.7</generator>
    <language>en</language>
    <lastBuildDate>Wed, 15 Oct 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://snikt.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>LLMs as Hackers: Autonomous Linux Privilege Escalation Attacks</title>
      <link>https://snikt.net/blog/2025/10/15/llms-as-hackers-autonomous-linux-privilege-escalation-attacks/</link>
      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/10/15/llms-as-hackers-autonomous-linux-privilege-escalation-attacks/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Published in EMSE&lt;/strong&gt;, &lt;a href=&#34;https://arxiv.org/abs/2310.11409&#34;&gt;arxiv version&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Penetration-testing is crucial for identifying system vulnerabilities, with privilege-escalation being a critical subtask to gain elevated access to protected resources. Language Models (LLMs) presents new avenues for automating these security practices by emulating human behavior. However, a comprehensive understanding of LLMs&amp;rsquo; efficacy and limitations in performing autonomous Linux privilege-escalation attacks remains under-explored. To address this gap, we introduce hackingBuddyGPT, a fully automated LLM-driven prototype designed for autonomous Linux privilege-escalation. We curated a novel, publicly available Linux privilege-escalation benchmark, enabling controlled and reproducible evaluation.
Our empirical analysis assesses the quantitative success rates and qualitative operational behaviors of various LLMs &amp;ndash; GPT-3.5-Turbo, GPT-4-Turbo, and Llama3 &amp;ndash; against baselines of human professional pen-testers and traditional automated tools. We investigate the impact of context management strategies, different context sizes, and various high-level guidance mechanisms on LLM performance.
Results show that GPT-4-Turbo demonstrates high efficacy, successfully exploiting 33-83% of vulnerabilities, a performance comparable to human pen-testers (75%). In contrast, local models like Llama3 exhibited limited success (0-33%), and GPT-3.5-Turbo achieved moderate rates (16-50%). We show that both high-level guidance and state-management through LLM-driven reflection significantly boost LLM success rates.
Qualitative analysis reveals both LLMs&amp;rsquo; strengths and weaknesses in generating valid commands and highlights challenges in common-sense reasoning, error handling, and multi-step exploitation, particularly with temporal dependencies. Cost analysis indicates that GPT-4-Turbo can achieve human-comparable performance at competitive costs, especially with optimized context management.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing LineageOS on Xiaomi Mi Mix 3</title>
      <link>https://snikt.net/blog/2025/10/13/installing-lineageos-on-xiaomi-mi-mix-3/</link>
      <pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/10/13/installing-lineageos-on-xiaomi-mi-mix-3/</guid>
      <description>&lt;p&gt;I am using an (now 5 years old) &lt;a href=&#34;https://wiki.lineageos.org/devices/perseus/&#34;&gt;Xiaomi Mi Mix 3&lt;/a&gt; as a backup phone for travelling. Given its age, the phone is no longer receiving official updates from Xiaomi, which poses security risks and limits access to new features.&lt;/p&gt;
&lt;p&gt;To address this, I installed LineageOS, a popular custom ROM that provides regular updates and enhanced privacy features a couple of years back. Recently, I&amp;rsquo;ve updated the phone to the latest support version (LineageOS 22.2) and ran into some problems, whose solutions I want to share here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Can LLMs Hack Enterprise Networks? Autonomous Assumed Breach Penetration-Testing Active Directory Networks</title>
      <link>https://snikt.net/blog/2025/09/11/can-llms-hack-enterprise-networks-autonomous-assumed-breach-penetration-testing-active-directory-networks/</link>
      <pubDate>Thu, 11 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/09/11/can-llms-hack-enterprise-networks-autonomous-assumed-breach-penetration-testing-active-directory-networks/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Published in TOSEM&lt;/strong&gt;, &lt;a href=&#34;https://arxiv.org/abs/2502.04227&#34;&gt;arxiv version&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Enterprise penetration-testing is often limited by high operational costs and the scarcity of human expertise. This paper investigates the feasibility and effectiveness of using Large Language Model (LLM)-driven autonomous systems to address these challenges in real-world Active Directory (AD) enterprise networks.
We introduce a novel prototype designed to employ LLMs to autonomously perform Assumed Breach penetration-testing against enterprise networks. Our system represents the first demonstration of a fully autonomous, LLM-driven framework capable of compromising accounts within a real-life Microsoft Active Directory testbed, GOAD.
We perform our empirical evaluation using five LLMs, comparing reasoning to non-reasoning models as well as including open-weight models. Through quantitative and qualitative analysis, incorporating insights from cybersecurity experts, we demonstrate that autonomous LLMs can effectively conduct Assumed Breach simulations. Key findings highlight their ability to dynamically adapt attack strategies, perform inter-context attacks (e.g., web-app audits, social engineering, and unstructured data analysis for credentials), and generate scenario-specific attack parameters like realistic password candidates. The prototype exhibits robust self-correction mechanisms, installing missing tools and rectifying invalid command generations.
We find that the associated costs are competitive with, and often significantly lower than, those incurred by professional human pen-testers, suggesting a path toward democratizing access to essential security testing for organizations with budgetary constraints. However, our research also illuminates existing limitations, including instances of LLM ``going down rabbit holes&amp;rsquo;&amp;rsquo;, challenges in comprehensive information transfer between planning and execution modules, and critical safety concerns that necessitate human oversight.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adversarial Bug Reports as a Security Risk in Language Model-Based Automated Program Repair</title>
      <link>https://snikt.net/blog/2025/09/04/adversarial-bug-reports-as-a-security-risk-in-language-model-based-automated-program-repair/</link>
      <pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/09/04/adversarial-bug-reports-as-a-security-risk-in-language-model-based-automated-program-repair/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://arxiv.org/abs/2509.05372&#34;&gt;arxiv version&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Large Language Model (LLM) - based Automated Program Repair (APR) systems are increasingly integrated into modern software development workflows, offering automated patches in response to natural language bug reports. However, this reliance on untrusted user input introduces a novel and underexplored attack surface. In this paper, we investigate the security risks posed by adversarial bug reports &amp;ndash; realistic-looking issue submissions crafted to mislead APR systems into producing insecure or harmful code changes. We develop a comprehensive threat model and conduct an empirical study to evaluate the vulnerability of state-of-the-art APR systems to such attacks. Our demonstration comprises 51 adversarial bug reports generated across a spectrum of strategies, from manual curation to fully automated pipelines. We test these against leading APR model and assess both pre-repair defenses (e.g., LlamaGuard variants, PromptGuard variants, Granite-Guardian, and custom LLM filters) and post-repair detectors (GitHub Copilot, CodeQL). Our findings show that current defenses are insufficient: 90% of crafted bug reports triggered attacker-aligned patches. The best pre-repair filter blocked only 47%, while post-repair analysis-often requiring human oversight-was effective in just 58% of cases. To support scalable security testing, we introduce a prototype framework for automating the generation of adversarial bug reports. Our analysis exposes a structural asymmetry: generating adversarial inputs is inexpensive, while detecting or mitigating them remains costly and error-prone. We conclude with practical recommendations for improving the robustness of APR systems against adversarial misuse and highlight directions for future work on trustworthy automated repair.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On the Surprising Efficacy of LLMs for Penetration-Testing</title>
      <link>https://snikt.net/blog/2025/07/01/on-the-surprising-efficacy-of-llms-for-penetration-testing/</link>
      <pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/07/01/on-the-surprising-efficacy-of-llms-for-penetration-testing/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://arxiv.org/abs/2504.10112&#34;&gt;arxiv version&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This paper presents a critical examination of the surprising efficacy of Large Language Models (LLMs) in penetration testing. The paper thoroughly reviews the evolution of LLMs and their rapidly expanding capabilities which render them increasingly suitable for complex penetration testing operations. It systematically details the historical adoption of LLMs in both academic research and industry, showcasing their application across various offensive security tasks and covering broader phases of the cyber kill chain. Crucially, the analysis also extends to the observed adoption of LLMs by malicious actors, underscoring the inherent dual-use challenge of this technology within the security landscape.
The unexpected effectiveness of LLMs in this context is elucidated by several key factors: the strong alignment between penetration testing&amp;rsquo;s reliance on pattern-matching and LLMs&amp;rsquo; core strengths, their inherent capacity to manage uncertainty in dynamic environments, and cost-effective access to competent pre-trained models through LLM providers.
The current landscape of LLM-aided penetration testing is categorized into interactive &amp;lsquo;vibe-hacking&amp;rsquo; and the emergence of fully autonomous systems. The paper identifies and discusses significant obstacles impeding wider adoption and safe deployment. These include critical issues concerning model reliability and stability, paramount safety and security concerns, substantial monetary and ecological costs, implications for privacy and digital sovereignty, complex questions of accountability, and profound ethical dilemmas. This comprehensive review and analysis provides a foundation for discussion on future research directions and the development of robust safeguards at the intersection of AI and security.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Benchmarking Practices in LLM-driven Offensive Security: Testbeds, Metrics, and Experiment Design</title>
      <link>https://snikt.net/blog/2025/06/16/benchmarking-practices-in-llm-driven-offensive-security-testbeds-metrics-and-experiment-design/</link>
      <pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/06/16/benchmarking-practices-in-llm-driven-offensive-security-testbeds-metrics-and-experiment-design/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Presented at DeMeSSAI&#39;25 in Venice, Italy&lt;/strong&gt;, &lt;a href=&#34;https://arxiv.org/abs/2504.10112&#34;&gt;arxiv version&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Large Language Models (LLMs) have emerged as a powerful approach for driving offensive penetration-testing tooling. Due to the opaque nature of LLMs, empirical methods are typically used to analyze their efficacy. The quality of this analysis is highly dependent on the chosen testbed, captured metrics and analysis methods employed.
This paper analyzes the methodology and benchmarking practices used for evaluating Large Language Model (LLM)-driven attacks, focusing on offensive uses of LLMs in cybersecurity. We review 19 research papers detailing 18 prototypes and their respective testbeds.
We detail our findings and provide actionable recommendations for future research, emphasizing the importance of extending existing testbeds, creating baselines, and including comprehensive metrics and qualitative analysis. We also note the distinction between security research and practice, suggesting that CTF-based challenges may not fully represent real-world penetration testing scenarios.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Homeserver: Glances and Home Assistant for Monitoring</title>
      <link>https://snikt.net/blog/2025/04/30/homeserver-glances-and-home-assistant-for-monitoring/</link>
      <pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/04/30/homeserver-glances-and-home-assistant-for-monitoring/</guid>
      <description>&lt;p&gt;Now that I have a &lt;a href=&#34;https://snikt.net/blog/2025/04/05/building-a-little-home-server-with-linux-tailscale-protonvpn-docker-compose-and-vm-support/&#34;&gt;minimal home server running&lt;/a&gt;, I thought it would be good idea to monitor temperature, disk usage and such. The simplest solution that I found was to use &lt;a href=&#34;https://nicolargo.github.io/glances/en/index.html&#34;&gt;Glances&lt;/a&gt; and use Home Assistant to store and display the data.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Homeserver: Creating local Proton Drive/Mail Backups</title>
      <link>https://snikt.net/blog/2025/04/27/homeserver-creating-local-proton-drive/mail-backups/</link>
      <pubDate>Sun, 27 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/04/27/homeserver-creating-local-proton-drive/mail-backups/</guid>
      <description>&lt;p&gt;By now, I am using &lt;a href=&#34;https://go.getproton.me/SH1Yc&#34;&gt;Proton Drive&lt;/a&gt; for cloud data storage and &lt;a href=&#34;https://go.getproton.me/SH1Yd&#34;&gt;Proton Mail&lt;/a&gt; as my primary mail service. While I trust Proton with my data, I do not want to rely on them completely. As I have &lt;a href=&#34;https://snikt.net/blog/2025/04/05/building-a-little-home-server-with-linux-tailscale-protonvpn-docker-compose-and-vm-support/&#34;&gt;a small server&lt;/a&gt; standing around at home, it&amp;rsquo;s kinda obvious to use it for automatically performing backups of my cloud data.&lt;/p&gt;
&lt;p&gt;I try to use &lt;a href=&#34;https://systemd.io/&#34;&gt;systemd&lt;/a&gt; services and timers for this, as this makes monitoring and logging quite easy.&lt;/p&gt;
&lt;p&gt;This blog post mostly serves as a reminder for me, but maybe it helps someone else as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Homeserver: Services Pt. 1</title>
      <link>https://snikt.net/blog/2025/04/09/homeserver-services-pt.-1/</link>
      <pubDate>Wed, 09 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/04/09/homeserver-services-pt.-1/</guid>
      <description>&lt;p&gt;I am running a home server for a while now. I have been using it to host some services that I use regularly. In this post, I will share my experience with some of the services I have set up on my home server.&lt;/p&gt;
&lt;p&gt;This initial post will go over local &lt;code&gt;git&lt;/code&gt; hosting using &lt;a href=&#34;https://about.gitea.com/&#34;&gt;gitea&lt;/a&gt;, audiobook streaming using &lt;a href=&#34;https://audiobookshelf.org/&#34;&gt;audiobookshelf&lt;/a&gt; and a self-hosted RSS reader using &lt;a href=&#34;https://tt-rss.org/&#34;&gt;tt-rss&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using tailscale on Fedora Silverblue</title>
      <link>https://snikt.net/blog/2025/04/07/using-tailscale-on-fedora-silverblue/</link>
      <pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/04/07/using-tailscale-on-fedora-silverblue/</guid>
      <description>&lt;p&gt;I am using &lt;a href=&#34;https://fedoraproject.org/atomic-desktops/silverblue/&#34;&gt;Fedora Silverblue&lt;/a&gt; as one of my main desktops. Recently, I&amp;rsquo;ve been &lt;a href=&#34;https://snikt.net/blog/2025/04/05/building-a-little-home-server-with-linux-tailscale-protonvpn-docker-compose-and-vm-support/&#34;&gt;moving some services to a server behind tailscale&lt;/a&gt; but was still using its local IP address when at home at my Silverblue desktop. While doable, using an IP-address with an invalid HTTPS certificate wasn&amp;rsquo;t that pretty &amp;mdash; so why not just access it through tailscale even within the same network, it&amp;rsquo;s an overlay network overall (so it should do a direct connection between my desktop and the home-server).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a little home-server with Linux, TailScale, ProtonVPN, Docker Compose and VM support</title>
      <link>https://snikt.net/blog/2025/04/05/building-a-little-home-server-with-linux-tailscale-protonvpn-docker-compose-and-vm-support/</link>
      <pubDate>Sat, 05 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2025/04/05/building-a-little-home-server-with-linux-tailscale-protonvpn-docker-compose-and-vm-support/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using a mini-computer as home-server for the last couple of years. Originally, I used it to share files between my computers, but over time more and more services (like RSS-readers, media-libraries, home automation, etc.) were moved on that surprisingly capable mini-server.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve grown up using Linux (well, I was already 16 when Linux became available around here, but you get the gist) so it always felt natural to me to just just use a minimal Linux installation (debian) instead of using some NAS that supports add-on third-party software.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LangGraph: Adding Plan-and-Execute Planner</title>
      <link>https://snikt.net/blog/2024/10/14/langgraph-adding-plan-and-execute-planner/</link>
      <pubDate>Mon, 14 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2024/10/14/langgraph-adding-plan-and-execute-planner/</guid>
      <description>&lt;h1 id=&#34;adding-plan-and-execute-planner&#34;&gt;Adding Plan-and-Execute Planner&lt;/h1&gt;
&lt;p&gt;All sources can be found in &lt;a href=&#34;https://github.com/andreashappe/offensivegraphs/tree/dbe5ae76d044e6dc876dcb86029f853a30bac565&#34;&gt;our github history&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When using LLMs for complex tasks like hacking, a common problem is that they become hyper-focused upon a single attack vector and ignore all others. They go down a &amp;ldquo;depth-first&amp;rdquo; rabbit hole and never leave it. This was experienced by &lt;a href=&#34;https://arxiv.org/abs/2310.11409&#34;&gt;me&lt;/a&gt; and &lt;a href=&#34;https://arxiv.org/abs/2308.06782&#34;&gt;others&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;plan-and-execute-pattern&#34;&gt;Plan-and-Execute Pattern&lt;/h2&gt;
&lt;p&gt;One potential solution is the &lt;a href=&#34;https://arxiv.org/abs/2305.04091&#34;&gt;&amp;lsquo;plan-and-solve&amp;rsquo;-pattern&lt;/a&gt; (often also named &lt;a href=&#34;https://langchain-ai.github.io/langgraph/tutorials/plan-and-execute/plan-and-execute/&#34;&gt;&amp;lsquo;plan-and-execute&amp;rsquo;-pattern&lt;/a&gt;). in this strategy, one LLM (the &lt;code&gt;planner&lt;/code&gt;) is given the task of creating a high-level task plan based upon the user-given objective. The task plan is processed by another LLM module (the &lt;code&gt;agent&lt;/code&gt; or &lt;code&gt;executor&lt;/code&gt;). Basically, the next step from the task plan is taken and forwarded to the executer to solve within in a limited number of steps or time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LangGraph: Simplify our Tool-Calling Agent through `create_react_agent`</title>
      <link>https://snikt.net/blog/2024/10/12/langgraph-simplify-our-tool-calling-agent-through-create_react_agent/</link>
      <pubDate>Sat, 12 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2024/10/12/langgraph-simplify-our-tool-calling-agent-through-create_react_agent/</guid>
      <description>&lt;h1 id=&#34;simplify-our-tool-calling-agent-through-create_react_agent&#34;&gt;Simplify our Tool-Calling Agent through &lt;code&gt;create_react_agent&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;LangGraph has some amazing &lt;a href=&#34;https://langchain-ai.github.io/langgraph/reference/prebuilt/&#34;&gt;Prebuilt Components&lt;/a&gt;, one of them is the &lt;a href=&#34;https://langchain-ai.github.io/langgraph/reference/prebuilt/#langgraph.prebuilt.chat_agent_executor.create_react_agent&#34;&gt;&lt;code&gt;create_react_agent&lt;/code&gt; function&lt;/a&gt; that allows you to hughely simplify creating new tool-using agents.&lt;/p&gt;
&lt;p&gt;The full source code can be found &lt;a href=&#34;https://github.com/andreashappe/offensivegraphs/blob/b806dbc2196434137393cbc411ab7c879c70c7a9/src/switch-to-react.py&#34;&gt;within our github history&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;the-simplified-version&#34;&gt;The simplified version&lt;/h2&gt;
&lt;p&gt;This willb e based upon our &lt;a href=&#34;2024-10-11-configuration-for-tool-calls.md&#34;&gt;recent configuration-improved version&lt;/a&gt;. Similar to that version, we start by reading the configuration data, setting up our LLM, connecting to the target system via SSH, and configuring tools for usage through LLMs:&lt;/p&gt;</description>
    </item>
    <item>
      <title>LangGraph: Improving Configuration Handling, esp. for Tools</title>
      <link>https://snikt.net/blog/2024/10/11/langgraph-improving-configuration-handling-esp.-for-tools/</link>
      <pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2024/10/11/langgraph-improving-configuration-handling-esp.-for-tools/</guid>
      <description>&lt;h1 id=&#34;improving-configuration-handling-esp-for-tools&#34;&gt;Improving Configuration Handling, esp. for Tools&lt;/h1&gt;
&lt;p&gt;While being quite happy that the &lt;a href=&#34;2024-10-10-first-steps-and-initial-version.md&#34;&gt;initial prototype&lt;/a&gt; worked within hours, its code was very prototype-y, i.e., much of its configuration was hard-coded. In a second step, we want to fix this by making our target information (the SSH connection) configurable and remove all hard-coded credentials from the code.&lt;/p&gt;
&lt;h2 id=&#34;big-picture&#34;&gt;Big Picture&lt;/h2&gt;
&lt;p&gt;We are already using &lt;a href=&#34;https://pypi.org/project/python-dotenv/&#34;&gt;python-dotenv&lt;/a&gt; for some of our configuration so it makes sense to further utilize this for more configuration data. In the improved implementation, our &lt;code&gt;.env&lt;/code&gt; will look like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Work/Life Balance, pt. 3: Scheduling Work</title>
      <link>https://snikt.net/blog/2023/11/11/work/life-balance-pt.-3-scheduling-work/</link>
      <pubDate>Sat, 11 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/11/11/work/life-balance-pt.-3-scheduling-work/</guid>
      <description>&lt;p&gt;The first parts of this series were about &lt;a href=&#34;https://snikt.net/blog/2023/10/27/work/life-balance-pt.-1-prelude-and-experiments/&#34;&gt;getting more done while at work&lt;/a&gt; as well as &lt;a href=&#34;https://snikt.net/blog/2023/10/28/work/life-balance-pt.-2-separation-and-blurry-lines/&#34;&gt;making it easier to switch from work into leisure mode&lt;/a&gt;. Both have a rather bottom-up feeling to them. In contrast, this post will be top-down: investigating my scheduling habits and trying to get them to a point where they actually protect myself from over-scheduling too much work.&lt;/p&gt;
&lt;h2 id=&#34;my-scheduling-habits-thus-far&#34;&gt;My Scheduling Habits thus far&lt;/h2&gt;
&lt;p&gt;After years or trying different todo and task applications, I&amp;rsquo;ve settled upon a rather simplistic approach: simple markdown todo lists versioned through git. Mostly I use this for reminders, things that I need to do for work and, leisure activities such as reminding me to go do some yoga.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Work/Life Balance, pt. 2: Separation and Blurry Lines</title>
      <link>https://snikt.net/blog/2023/10/28/work/life-balance-pt.-2-separation-and-blurry-lines/</link>
      <pubDate>Sat, 28 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/10/28/work/life-balance-pt.-2-separation-and-blurry-lines/</guid>
      <description>&lt;p&gt;While the &lt;a href=&#34;https://snikt.net/blog/2023/10/27/work/life-balance-prelude-and-experiments-pt.-1/&#34;&gt;initial experiment focused upon productivity&lt;/a&gt;, the main goal of this series is to improve my work/life balance. Getting more productive should just allow me to switch from work to leisure earlier.&lt;/p&gt;
&lt;p&gt;Currently I have access to my university office, so I have a nice geographical separation between Work/&amp;ldquo;The Office&amp;rdquo; and &amp;ldquo;Everything Else&amp;rdquo;. So basically I want to keep work at the Office and leisure (mostly) outside of it: getting out of the office to recover while keeping distractions out of the office to let me get out of it faster. This is primarily about the office space, my coworkers are actually part of my recovery activities such as climbing. If I wouldn&amp;rsquo;t have access to the university office anymore I would have to get some shared office space.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Work/Life Balance, pt. 1: Prelude and Experiments</title>
      <link>https://snikt.net/blog/2023/10/27/work/life-balance-pt.-1-prelude-and-experiments/</link>
      <pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/10/27/work/life-balance-pt.-1-prelude-and-experiments/</guid>
      <description>&lt;p&gt;Last winter I was lucky to enroll in the so-far best lecture of my PhD studies: &lt;a href=&#34;https://www.tiss.tuwien.ac.at/course/courseDetails.xhtml?dswid=8056&amp;amp;dsrid=556&amp;amp;courseNr=199096&amp;amp;semester=2021W&#34;&gt;From Surviving to Thriving: Crafting your good personal Life&lt;/a&gt; by the great &lt;a href=&#34;https://en.wikipedia.org/wiki/Geraldine_Fitzpatrick&#34;&gt;Geraldine Fitzpatrick&lt;/a&gt;. The course was about stress, mindfullnes, crafting, productivity.. nothing mind-blowing nor rocket science but comprehensive, accessible, and charmingly presented. Recently I read &lt;a href=&#34;https://amzn.to/3Mhnrmt&#34;&gt;Do Nothing&lt;/a&gt; which I thoroughly enjoyed.&lt;/p&gt;
&lt;p&gt;Maybe it&amp;rsquo;s time to experiment with my time (or rather life) management..&lt;/p&gt;
&lt;h2 id=&#34;my-background&#34;&gt;My Background&lt;/h2&gt;
&lt;p&gt;Just to give a bit of context: I am 41 and by now am back in Academia doing a PhD about the intersection of computer security and machine learning while I freelance as pen-tester and doing commercial security training workshops/talks, mostly about secure development and/or web security.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding Hackers&#39; Work: An Empirical Study of Offensive Security Practitioners</title>
      <link>https://snikt.net/blog/2023/08/23/understanding-hackers-work-an-empirical-study-of-offensive-security-practitioners/</link>
      <pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/08/23/understanding-hackers-work-an-empirical-study-of-offensive-security-practitioners/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Presented at FSE&#39;23 in San Francisco, US&lt;/strong&gt;, &lt;a href=&#34;https://arxiv.org/abs/2308.07057&#34;&gt;arxiv version&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Offensive security-tests are a common way to pro-actively discover potential vulnerabilities. They are performed by specialists, often called penetration-testers or white-hat hackers. The chronic lack of available white-hat hackers prevents sufficient security test coverage of software. Research into automation tries to alleviate this problem by improving the efficiency of security testing. To achieve this, researchers and tool builders need a solid understanding of how hackers work, their assumptions, and pain points.
In this paper, we present a first data-driven exploratory qualitative study of twelve security professionals, their work and problems occurring therein. We perform a thematic analysis to gain insights into the execution of security assignments, hackers&amp;rsquo; thought processes and encountered challenges.
This analysis allows us to conclude with recommendations for researchers and tool builders to increase the efficiency of their automation and identify novel areas for research.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting pwn&#39;d by AI: Penetration Testing with Large Language Models</title>
      <link>https://snikt.net/blog/2023/08/17/getting-pwnd-by-ai-penetration-testing-with-large-language-models/</link>
      <pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/08/17/getting-pwnd-by-ai-penetration-testing-with-large-language-models/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Presented at FSE&#39;23 in San Francisco, US&lt;/strong&gt;, &lt;a href=&#34;https://arxiv.org/abs/2308.00121&#34;&gt;arxiv version&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The field of software security testing, more specifically penetration testing, is an activity that requires high levels of expertise and involves many manual testing and analysis steps. This paper explores the potential usage of large-language models, such as GPT3.5, to augment penetration testers with AI sparring partners. We explore the feasibility of supplementing penetration testers with AI models for two distinct use cases: high-level task planning for security testing assignments and low-level vulnerability hunting within a vulnerable virtual machine. For the latter, we implemented a closed-feedback loop between LLM-generated low-level actions with a vulnerable virtual machine (connected through SSH) and allowed the LLM to analyze the machine state for vulnerabilities and suggest concrete attack vectors which were automatically executed within the virtual machine. We discuss promising initial results, detail avenues for improvement, and close deliberating on the ethics of providing AI-based sparring partners.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using WSL2 to hide from EDR</title>
      <link>https://snikt.net/blog/2023/01/27/using-wsl2-to-hide-from-edr/</link>
      <pubDate>Fri, 27 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/01/27/using-wsl2-to-hide-from-edr/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR WSL2 seems to be one big &lt;a href=&#34;https://lolbas-project.github.io/#&#34;&gt;lolbin&lt;/a&gt; when it comes to EDR&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;scenariobackground&#34;&gt;Scenario/Background&lt;/h2&gt;
&lt;p&gt;During a recent &lt;a href=&#34;https://www.sans.org/webcasts/assumed-breach-better-model/&#34;&gt;assumed-breach pen-test assignment&lt;/a&gt; I was stranded as a low-level user on a fully-updated Windows 10 Enterprise system (10.0.19045) including a deployed CrowdStrike Falcon EDR suite (6.49.16303.0). As I respect CrowdStrike I did not want to execute any malicious scripts on the host, so what to do?&lt;/p&gt;
&lt;h3 id=&#34;wsl2-to-the-rescue&#34;&gt;WSL2 to the rescue!&lt;/h3&gt;
&lt;p&gt;Installation was done quite comfortable through the company&amp;rsquo;s &lt;a href=&#34;https://learn.microsoft.com/en-us/mem/configmgr/core/understand/software-center&#34;&gt;Software Center&lt;/a&gt;, no local administrative rights required.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Active Directory: Using LDAP Queries for Stealthy Enumeration</title>
      <link>https://snikt.net/blog/2023/01/25/active-directory-using-ldap-queries-for-stealthy-enumeration/</link>
      <pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/01/25/active-directory-using-ldap-queries-for-stealthy-enumeration/</guid>
      <description>&lt;p&gt;During a recent &lt;a href=&#34;https://www.sans.org/webcasts/assumed-breach-better-model/&#34;&gt;assumed-breach pen-test assignment&lt;/a&gt; I ran into a problem: the customer had an up to date Windows Active Directory environment, CrowdStrike was rolled out as an EDR and a dedicated Incident Response Team was monitoring for alerts.. and I needed some Active Directory Enumeration to be done before I was planning out my next steps. I assumed, which later proved correctly, that just starting &lt;a href=&#34;https://github.com/BloodHoundAD/BloodHound&#34;&gt;BloodHound&lt;/a&gt; or &lt;a href=&#34;https://github.com/fortra/impacket/blob/master/examples/GetUserSPNs.py&#34;&gt;GetUserSPN.py&lt;/a&gt; would trigger defenders and defences.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enumerating User-Accessible Directories within Windows Network Shares</title>
      <link>https://snikt.net/blog/2023/01/23/enumerating-user-accessible-directories-within-windows-network-shares/</link>
      <pubDate>Mon, 23 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2023/01/23/enumerating-user-accessible-directories-within-windows-network-shares/</guid>
      <description>&lt;p&gt;During a recent security assignment I came upon a projects folder stored on a Microsoft Active Directory server and accessible thought the network (SMB/CIFS). It had the commonly used layout of a single subdirectory per project, users should only be able to access their corresponding projects and this is configured through ACLs. Initial tests did indicate that the access rights were given away sloppily as I was able to access some of those subdirectories.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trying my hand with hacking Active Directories with responder, mitm6, ntlmrelayx and crackmapexec</title>
      <link>https://snikt.net/blog/2022/10/12/trying-my-hand-with-hacking-active-directories-with-responder-mitm6-ntlmrelayx-and-crackmapexec/</link>
      <pubDate>Wed, 12 Oct 2022 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2022/10/12/trying-my-hand-with-hacking-active-directories-with-responder-mitm6-ntlmrelayx-and-crackmapexec/</guid>
      <description>&lt;p&gt;So a customer of mine thought about ordering a Red Team Assessment and wanted me to go through their local network beforehands &amp;mdash; no need to make it too easy for the red teamers. The customer&amp;rsquo;s network was a typical windows network, dated but kept up to date by two admins. Microsoft Defender was rolled out at all clients, and on some servers. A laptop with Kali Linux was connected to the local network, this was my starting point.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a 4G/LTE router&#43;accesspoint using hostapd, network-manager and modemmanager</title>
      <link>https://snikt.net/blog/2022/02/11/building-a-4g/lte-router-accesspoint-using-hostapd-network-manager-and-modemmanager/</link>
      <pubDate>Fri, 11 Feb 2022 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2022/02/11/building-a-4g/lte-router-accesspoint-using-hostapd-network-manager-and-modemmanager/</guid>
      <description>&lt;p&gt;So I&amp;rsquo;ve been using a &lt;a href=&#34;https://amzn.to/3oHoPTL&#34;&gt;Raspberry Pi 4b+&lt;/a&gt; together with a &lt;a href=&#34;https://amzn.to/34xLECl&#34;&gt;WaveShare LTE Modem&lt;/a&gt; as 4G router/access-point for my home network setup. I do like my hardware to be quiet and thus fan-less, alas the Raspberry Pi 4b+ gets a tad on the warm side. So this was a perfect opportunitiy to play around with an older &lt;a href=&#34;https://amzn.to/3LqliTj&#34;&gt;Raspberry Pi 3b+&lt;/a&gt; which should use approx. 20-25% less power (both, during idle and load) and with &amp;ldquo;new&amp;rdquo; software.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is AppSec anyways?</title>
      <link>https://snikt.net/blog/2021/06/03/what-is-appsec-anyways/</link>
      <pubDate>Thu, 03 Jun 2021 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2021/06/03/what-is-appsec-anyways/</guid>
      <description>&lt;p&gt;AppSec includes all tasks that (hopefully) introduce a secure software development life cycle to development teams. Its final goal is to improve security practices and, through that, to find, fix and preferably prevent security issues within applications. It encompasses the whole application life cycle from requirements analysis, design, implementation, verification as well as maintenance.&lt;/p&gt;
&lt;p&gt;To contrast AppSec with a traditional penetration-test: the latter tries to find vulnerabilities within an already existing application while AppSec focuses upon preventing vulnerabilities from entering the application code in the first place. Penetration Tests are also part of AppSec but they are used rather late in the project runtime to verify the security quality of the application and as input for how the development process can be augmented to prevent similar vulnerabilities from subsequently entering the application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Secure Software Development Lifecycle Basics</title>
      <link>https://snikt.net/blog/2021/05/23/secure-software-development-lifecycle-basics/</link>
      <pubDate>Sun, 23 May 2021 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2021/05/23/secure-software-development-lifecycle-basics/</guid>
      <description>&lt;p&gt;Recently I had a couple of customers that needed some guidance about secure software development. I assume that this happens because I am a developer gone pen-tester so I&amp;rsquo;ve seen both side of the &amp;ldquo;problem&amp;rdquo;. Of course, suggestions differ between software stacks and the overall customer professionalism level, but there is a common starting ground that should be suitable for any professional software project. Without those, anything more advanced would be built upon shaky grounds. Please note, that those are just the starting ground and should not be a limiting set for further improvements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HTTP Header Security</title>
      <link>https://snikt.net/blog/2021/04/12/http-header-security/</link>
      <pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2021/04/12/http-header-security/</guid>
      <description>&lt;p&gt;During a recent presentation on HTTP Header Security I was asked for a &amp;ldquo;simple&amp;rdquo; flow chart with directions which headers can be used without too many problems. The result was this:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;which http headers to use?&#34; loading=&#34;lazy&#34; src=&#34;https://snikt.net/assets/2021/http_header_security.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;What was the reasoning? Initially, basic headers that unify browser behavior are set. They control behavior that is already set when using modern browsers (e.g., &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy&#34;&gt;Referrer-Policy&lt;/a&gt;) or unify non-standard behavior (e.g, &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options&#34;&gt;X-Content-Type-Options: nosniff&lt;/a&gt;). The basic idea behind those headers is, that web developers need to make sure that their website works with those anyway (otherwise people using modern browsers might complain) so it makes sense to take care of those situations during development.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book Updates and Blog Posts..</title>
      <link>https://snikt.net/blog/2020/12/08/book-updates-and-blog-posts../</link>
      <pubDate>Tue, 08 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2020/12/08/book-updates-and-blog-posts../</guid>
      <description>&lt;p&gt;Given that I&amp;rsquo;ve spent more time in my flat (hello, COVID-19) I also spent more time looking at my book shelf.. and wasn&amp;rsquo;t too happy with it: in hindsight, some of the books I&amp;rsquo;ve read are way to pretentious and the &lt;a href=&#34;https://snikt.net/blog/2019/06/26/books-and-influences-of-mine/&#34;&gt;books I remember as life-changing&lt;/a&gt; were mostly read on my kindle anyways. Speaking of Kindles, my first kindle (must be bought around 2008 in the United States) was stored between the books.. with a quite bulging lithium ion battery.. good thing I did that cleanup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running OWASP Juice Shop with Root-the-Box on Google Cloud Platform</title>
      <link>https://snikt.net/blog/2020/12/02/running-owasp-juice-shop-with-root-the-box-on-google-cloud-platform/</link>
      <pubDate>Wed, 02 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2020/12/02/running-owasp-juice-shop-with-root-the-box-on-google-cloud-platform/</guid>
      <description>&lt;p&gt;So I am back at teaching web application security. This time I wanted to setup a &lt;a href=&#34;https://en.wikipedia.org/wiki/Wargame_(hacking)&#34;&gt;CTF challenge&lt;/a&gt; for my students. To not reinvent the wheel, or rather, to stand on the shoulders of giants I am reusing the &lt;a href=&#34;https://owasp.org/www-project-juice-shop/&#34;&gt;OWASP Juice Shop&lt;/a&gt; vulnerable web app in its CTF mode.&lt;/p&gt;
&lt;p&gt;Normally I would teach at a (physical) lab which would make the setup easy: all students are situated in the same physical room, I can setup the game server on my laptop and distribute virtual machines containing the vulnerable web app over the local network. Well, that thing called COVID-19 happened so this is not an option right now.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create a new Ubuntu 20.10 Desktop without too much Ubuntiness.</title>
      <link>https://snikt.net/blog/2020/10/13/create-a-new-ubuntu-20.10-desktop-without-too-much-ubuntiness./</link>
      <pubDate>Tue, 13 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2020/10/13/create-a-new-ubuntu-20.10-desktop-without-too-much-ubuntiness./</guid>
      <description>&lt;p&gt;After I&amp;rsquo;ve bought a &lt;a href=&#34;https://amzn.to/34Tqc6X&#34;&gt;new and fast 1TB SSD&lt;/a&gt;, it&amp;rsquo;s time to setup my aging Desktop again. Last time I went with &lt;a href=&#34;https://getfedora.org&#34;&gt;Fedora Core&lt;/a&gt;, this time I will try to reduce some of the ubuntu-iness of a &lt;a href=&#34;http://cdimage.ubuntu.com/daily-live/current/&#34;&gt;Ubuntu 20.10 Desktop&lt;/a&gt; for that. After preliminary tests Ubuntu seems to be more resource efficient than &lt;a href=&#34;https://silverblue.fedoraproject.org/&#34;&gt;Fedora Silverblue&lt;/a&gt; and I should be able to remove most of Ubuntu&amp;rsquo;s problematic packages. Given that my Notebook still runs Fedora Core, I&amp;rsquo;m also keeping in touch with both the Ubuntu/Debian as well as with the Redhat/Fedora world through that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a simple VPN with WireGuard with a Raspberry Pi as Server</title>
      <link>https://snikt.net/blog/2020/01/29/building-a-simple-vpn-with-wireguard-with-a-raspberry-pi-as-server/</link>
      <pubDate>Wed, 29 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2020/01/29/building-a-simple-vpn-with-wireguard-with-a-raspberry-pi-as-server/</guid>
      <description>&lt;p&gt;Now that wireguard will be part of the upcoming Linux 5.6 Kernel it&amp;rsquo;s time to see how to best integrate it with my &lt;a href=&#34;https://snikt.net/blog/2019/06/22/building-an-lte-access-point-with-a-raspberry-pi/&#34;&gt;Raspberry Pi based LTE-Router/Access Point Setup&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;what-is-my-scenario&#34;&gt;What is my scenario?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Raspberry Pi 3 with a LTE hat, using a public IP address. This will be the VPN server (called &lt;em&gt;edgewalker&lt;/em&gt; in this post)&lt;/li&gt;
&lt;li&gt;An Android Phone that should use the VPN for all communication when connected&lt;/li&gt;
&lt;li&gt;An Linux Laptop that should use the VPN only accessing network services that are exposed to the VPN&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each device connected to the VPN should be able to connect to all other devices, e.g., my phone should be able to connect to a webserver running on the laptop as long as both are part of the VPN network. If setup is easy enough I&amp;rsquo;m actually thinking about adding my (Ethernet-connected) Desktop to the VPN too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>2019 redux, what to expect in 2020</title>
      <link>https://snikt.net/blog/2020/01/01/2019-redux-what-to-expect-in-2020/</link>
      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2020/01/01/2019-redux-what-to-expect-in-2020/</guid>
      <description>&lt;p&gt;2019 was a year in which I expanded my comfort zone and forced myself to face some fears. I haven&amp;rsquo;t always been victorious, there&amp;rsquo;s enough to face next year. I see progress and hope; I do not feel trapped in my situation but rather see a comfy base from which I can explore further.&lt;/p&gt;
&lt;p&gt;I shed some possessions, mostly donated them or gave them away to friends. This calms my mind tremendously. There&amp;rsquo;s a song by &amp;ldquo;Down like Silver&amp;rdquo; that contains the fitting lines: &amp;ldquo;everything I own, owns me now&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Closing down my company</title>
      <link>https://snikt.net/blog/2019/12/20/closing-down-my-company/</link>
      <pubDate>Fri, 20 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/12/20/closing-down-my-company/</guid>
      <description>&lt;p&gt;After 15 or so years I&amp;rsquo;m finally closing down my own company (it was a small one-person vehicle, in Austrian Einzelpersonenunternehmen or EPU). How so?&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been self-employed since I&amp;rsquo;ve started to study at university. Mostly I did software engineering for &lt;a href=&#34;http://www.secoqc.net/&#34;&gt;various&lt;/a&gt; &lt;a href=&#34;https://www.ait.ac.at/themen/cyber-security/projects/archistar/&#34;&gt;research projects&lt;/a&gt; at &lt;a href=&#34;https.//www.ait.ac.at&#34;&gt;AIT&lt;/a&gt;. There was a short side-project (a failed startup that I created with friends of mine), after that more web development with other friends of mine. Slowly some changes happened, I&amp;rsquo;ve got down towards security/penetration-testing six or seven years ago. Five years ago I got an part-time employment at the research center, mostly for two EU &lt;a href=&#34;https://prismacloud.eu&#34;&gt;research&lt;/a&gt; &lt;a href=&#34;https://credential.eu&#34;&gt;projects&lt;/a&gt;. my work time got more and more split between pen-testing and research stuff.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding advertisement-filtering and spotify support to a Linux-based Access Point/Router</title>
      <link>https://snikt.net/blog/2019/12/08/adding-advertisement-filtering-and-spotify-support-to-a-linux-based-access-point/router/</link>
      <pubDate>Sun, 08 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/12/08/adding-advertisement-filtering-and-spotify-support-to-a-linux-based-access-point/router/</guid>
      <description>&lt;p&gt;The last weeks I&amp;rsquo;ve tried to improve upon my &lt;a href=&#34;https://snikt.net/blog/2019/06/22/building-an-lte-access-point-with-a-raspberry-pi/&#34;&gt;Raspberry Pi based LTE-Router/Access Point&lt;/a&gt;. Normally I would heave tons of software on it, try it out and let it simmer on. I did that this time too: the ELK-Stack (too little memory) and &lt;a href=&#34;https://www.home-assistant.io/&#34;&gt;HomeAssistant&lt;/a&gt; (too little SmartHome-devices in my flat) only had a short intermezzo on this hardware. What stuck?&lt;/p&gt;
&lt;p&gt;Before that a small note: originally I was using a &lt;a href=&#34;https://www.ikea.com/de/de/p/koppla-ladegeraet-mit-3-usb-ausgaengen-weiss-20415027/&#34;&gt;IKEA USB charger&lt;/a&gt;; its spec should be sufficient but I kept getting &amp;ldquo;Undervoltage detected&amp;rdquo; error messages in dmesg/syslog. I switched it out my Xiaomi Phone&amp;rsquo;s USB charger: the warnings disappeared.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FH-Lecture: Secure Operating Systems (SecOps)</title>
      <link>https://snikt.net/secops/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/secops/</guid>
      <description>&lt;p&gt;Nach dem guten Feedback meiner Studenten auf &lt;a href=&#34;https://snikt.net/websec&#34;&gt;meine Web Application Security Vorlesung&lt;/a&gt; lies ich mich überreden, im Wintersemester 2019 einen Teil einer weiteren Vorlesung zu halten: SecOps &amp;mdash; Secure Operating Systems, also quasi Security Themen für Administratoren. Mein Part umschloss Linux, Virtualisierung und (sehr kurz) Mobile Systeme.&lt;/p&gt;
&lt;p&gt;Mein BrainDump dieser Vorlesung &lt;a href=&#34;https://snikt.net/SecOpS.pdf&#34;&gt;kann hier bezogen werden&lt;/a&gt;. Es ist noch in einem frühen Stadium, aber ich hoffe es kann schon weiteren Personen helfen bzw. das Veröffentlichen wertvolles Feedback für die nächste Vorlesung liefern.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Einführung in die Web-Security</title>
      <link>https://snikt.net/websec/</link>
      <pubDate>Fri, 30 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/websec/</guid>
      <description>&lt;p&gt;Diese Unterlagen entstanden zeitgleich während einer von mir gehaltenen Vorlesung an dem Technikum/FH Wien. Nach dem positiven Feedback der Stundenten wurden die Unterlagen überarbeitet und ich hoffe, dass sie auch von anderen Personen genutzt werden können.&lt;/p&gt;
&lt;h2 id=&#34;inhalt&#34;&gt;Inhalt&lt;/h2&gt;
&lt;p&gt;Der Inhalt orientiert sich grob an den OWASP Top 10:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allgemeine Sicherheitsgrundlagen&lt;/li&gt;
&lt;li&gt;Was sind Web-Applikationen?&lt;/li&gt;
&lt;li&gt;Authentication und Authorization-Fehler&lt;/li&gt;
&lt;li&gt;Serverseite Injection-Angriffe (inkl. SQLi, SSTI, XEE, Type-Juggling, etc.)&lt;/li&gt;
&lt;li&gt;Clientseitige Angriffe (inkl. XSS, CSRF, Clickjacking, etc.)&lt;/li&gt;
&lt;li&gt;Clientsetiige Härtung&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;download&#34;&gt;Download&lt;/h2&gt;
&lt;p&gt;Das Skript kann von verschiedenen Quellen bezogen werden.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hi, I Care About Security</title>
      <link>https://snikt.net/about/</link>
      <pubDate>Fri, 30 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/about/</guid>
      <description>&lt;h3 id=&#34;from-coding&#34;&gt;From coding..&lt;/h3&gt;
&lt;p&gt;My developer life started at 14 when I enrolled at the &lt;a href=&#34;https://www.htl-villach.at/&#34;&gt;HTL Villach&lt;/a&gt; with a focus on IT. In those five years I learned to code: Assembler, C, C++, COBOL, and that new thing: Java. I continued the path at the &lt;a href=&#34;https://www.tuwien.ac.at&#34;&gt;Technical University of Vienna&lt;/a&gt;, eventually earning my Master&#39;s Degree in Software Engineering.&lt;/p&gt;
&lt;p&gt;In parallel to my studies, I started to work at the &lt;a href=&#34;https://www.ait.ac.at&#34;&gt;Austrian Institue of Technology (AIT)&lt;/a&gt;, initially as part of an &lt;a href=&#34;https://en.wikipedia.org/wiki/Secure_Communication_based_on_Quantum_Cryptography&#34;&gt;EU FP7 Project on Quantum Key Distribution&lt;/a&gt;, later mostly on EU Horizon 2020 projects focusing on &lt;a href=&#34;https://prismacloud.eu/index.html&#34;&gt;Secure Data Storage&lt;/a&gt; and &lt;a href=&#34;https://credential.eu/&#34;&gt;Identity Management in the Cloud&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a secure torrent download station by combining Private Internet Access (PIA), OpenVPN and transmission through docker</title>
      <link>https://snikt.net/blog/2019/08/05/building-a-secure-torrent-download-station-by-combining-private-internet-access-pia-openvpn-and-transmission-through-docker/</link>
      <pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/08/05/building-a-secure-torrent-download-station-by-combining-private-internet-access-pia-openvpn-and-transmission-through-docker/</guid>
      <description>&lt;p&gt;Sometimes I want to work on client assignments (penetration-tests) from home, if I do that I am using my company VPN so that all traffic is routed thorugh their public IP address (which is white-listed by the client). I do not want for traffic to ever leave that VPN as that would look like as if I&amp;rsquo;d be performing cyber attacks from my private home IP address. The same requirements arise for different use-cases, e.g., when downloading bittorrent files or forcing traffic through the &lt;a href=&#34;https://www.torproject.org/&#34;&gt;tor network&lt;/a&gt; if whistle-blowing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to create a (good-looking) PDF and Kindle eBook from LaTeX</title>
      <link>https://snikt.net/blog/2019/07/29/how-to-create-a-good-looking-pdf-and-kindle-ebook-from-latex/</link>
      <pubDate>Mon, 29 Jul 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/07/29/how-to-create-a-good-looking-pdf-and-kindle-ebook-from-latex/</guid>
      <description>&lt;p&gt;So I held a lecture on &amp;ldquo;Web Application Security&amp;rdquo; for the FH/Technikum Wien last spring and wrote a small booklet for my students (partially because I wanted to avoid discussions during the final exam). I did volunteer for a anonymous feedback round which turned out very positive for me, the booklet was repeatatly mentioned positively. So I distilled and refined it, tried to improve its focus. As I will do the same lecture next year, I am in dire need of feedback so that I can improve it, so I went to dark places and &lt;a href=&#34;https://www.reddit.com/r/netsec/comments/c2ymjh/free_german_lecture_notes_from_a_introduction_to/&#34;&gt;published it on reddit&lt;/a&gt;. I was suprised by the kindness of strangers, also got some suggestions from them. I &lt;a href=&#34;https://special-circumstances.at/websec/&#34;&gt;offer the book for free under a creative commons license on my website&lt;/a&gt;, but also created a &lt;a href=&#34;https://amzn.to/2Ya7w2r&#34;&gt;kindle version of the book&lt;/a&gt;. If you&amp;rsquo;re into web security and have read the book, I&amp;rsquo;d be very happy if you leave a (hopefully positive) review of the book on Amazon. This blog post describes, how I&amp;rsquo;ve created both the PDF-Version as well as the Kindle-Version of the book.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LTE uplink for Raspberry Pi: Huawei E3372 vs Waveshare SIM7600E-H</title>
      <link>https://snikt.net/blog/2019/07/05/lte-uplink-for-raspberry-pi-huawei-e3372-vs-waveshare-sim7600e-h/</link>
      <pubDate>Fri, 05 Jul 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/07/05/lte-uplink-for-raspberry-pi-huawei-e3372-vs-waveshare-sim7600e-h/</guid>
      <description>&lt;p&gt;I spent some time playing around with various LTE-options for my &lt;a href=&#34;https://snikt.net/blog/2019/06/22/building-an-lte-access-point-with-a-raspberry-pi/&#34;&gt;Raspberry Pi Access Point/Router setup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My &lt;a href=&#34;https://amzn.to/2xvgRls&#34;&gt;Huawei E3372&lt;/a&gt; USB LTE modem works find but only implements a fake network card. This means that a virtual network card is emulated, all traffic is NATted over a virtual router located behind that virtual network card. This happens in addition to the network translation (NAT) that my Raspberry Pi access point already does. Also, I think that my Raspberry with the external USB LTE modem looks a bit unprofessional:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Books and influences of mine</title>
      <link>https://snikt.net/blog/2019/06/26/books-and-influences-of-mine/</link>
      <pubDate>Wed, 26 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/06/26/books-and-influences-of-mine/</guid>
      <description>&lt;p&gt;Most of you (and there are a couple of thousands of you) come for my tech-posts, but it seems that some of you get lost reading my non-techie posts too. Time to add on of those, it&amp;rsquo;s been a while..&lt;/p&gt;
&lt;p&gt;I breathe books, they give my brain constant input to thrive on. Recently I went through my goodreads list of &lt;a href=&#34;https://www.goodreads.com/review/list/39432996-andreas-happe?shelf=reread-great-books&#34;&gt;reread-good-books&lt;/a&gt; to check what influences me and started to reread some of them. Result: I removed some of the books as I had no clue why they were on there. In a flash of practical minimalism I started to think about those books that move(d) me, the result is this list:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building an LTE Access Point with a Raspberry Pi</title>
      <link>https://snikt.net/blog/2019/06/22/building-an-lte-access-point-with-a-raspberry-pi/</link>
      <pubDate>Sat, 22 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/06/22/building-an-lte-access-point-with-a-raspberry-pi/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;https://snikt.net/blog/2019/05/30/building-an-lte-access-point-with-openwrt-rooter/&#34;&gt;one of my last experiments&lt;/a&gt; I replaced my crappy T-Mobile (now Magenta) 4G modem/access point with an OpenWRT-based cheap travel router and a 4G USB LTE modem. That doubled my speed over the wireless (WLAN) network but the setup was limited by the outdated and under-powered travel rooter. So I got myself a cheap Raspberry Pi 3b+ and created a minimal Linux-based 4G router/access-point. My basic goal was to create the minimal feasible configuration so that I have a good starting point for future IoT/VPN/SmartHome experiments. I think I succeeded.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Switching a Xiaomi Mi Mix 2s to LinageOS (Android 9)</title>
      <link>https://snikt.net/blog/2019/06/11/switching-a-xiaomi-mi-mix-2s-to-linageos-android-9/</link>
      <pubDate>Tue, 11 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/06/11/switching-a-xiaomi-mi-mix-2s-to-linageos-android-9/</guid>
      <description>&lt;p&gt;Recently I upgraded from my &amp;ldquo;old&amp;rdquo; &lt;a href=&#34;https://amzn.to/2MBZOIL&#34;&gt;Motorola/Lenovo G6 plus&lt;/a&gt; to a &lt;a href=&#34;https://amzn.to/2IAkP1c&#34;&gt;Xiaomi Mi Mix 2s&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;why-the-new-phone&#34;&gt;Why the new phone?&lt;/h2&gt;
&lt;p&gt;Main reasons for that upgrade were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The old phone started to look like a banana. Seriously, I carry my phone in my back pockets and after a year that.. let to a more-than-slightly bent phone. This might have let to another problem: random vibra-call activation. Originally I thought that I was just imagining them, but recently my phone started to vibrate while it was in my hand &amp;mdash; while no notification or interaction at all was happening.&lt;/li&gt;
&lt;li&gt;Both the USB-C as well as the audio jack were already broken; cables tended to loose connection.. it was annoying to find out that the phone wasn&amp;rsquo;t charged up after a night because the connection was not stable.&lt;/li&gt;
&lt;li&gt;Size: the phone was just too big to carry around comfortably.&lt;/li&gt;
&lt;li&gt;Recently Lenovo&amp;rsquo;s software upgrade policy turned to the worse: while the phone was recently upgraded to Android 9, 6 months went by without any of the monthly Android security upgrades. As those included fixes for critical remote exploitable vulnerabilities, not having access to upgrades was a no-go for me (I do work in security after all).&lt;/li&gt;
&lt;li&gt;Mandatory apps; there were both Google&amp;rsquo;s (Keep, etc.) as well as Lenovo&amp;rsquo;s mandatory apps (LinkedIn, Outlook, etc.) installed on the old phone; as an user you are not able to remove them. This disturbed my sense of minimalism.&lt;/li&gt;
&lt;li&gt;No notification LED: this seems small, but a notification LED is something that I highly value. Periodically activating my phone just to check for new notifications is playing havoc with my concentration, so this feature is very dear to me.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I looked out for an &lt;a href=&#34;https://www.android.com/one/&#34;&gt;Android One&lt;/a&gt; or &lt;a href=&#34;https://linageos.org&#34;&gt;LinageOS&lt;/a&gt; phone, that was smaller than my current one and offered dual-SIM functionality (as I want to keep my old private phone number &amp;mdash; this one is used by Signal/WhatApp and I&amp;rsquo;d like to avoid notifying all my contacts).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building an LTE Access point with OpenWRT Rooter</title>
      <link>https://snikt.net/blog/2019/05/30/building-an-lte-access-point-with-openwrt-rooter/</link>
      <pubDate>Thu, 30 May 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/05/30/building-an-lte-access-point-with-openwrt-rooter/</guid>
      <description>&lt;p&gt;My LTE internet connection (70 Mbit downstream, 15 MBit upstream) came with a combined &lt;a href=&#34;https://amzn.to/30QwbXi&#34;&gt;Huawei B315s LTE modem/access point&lt;/a&gt;. As I was using it for the last two to three years a couple of problems did arise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the internet connection was often shaky, oftentimes the uplink connection got lost and I had to power-cycle the modem/access point. Subjectively this got improved with the last system upgrade.&lt;/li&gt;
&lt;li&gt;while the internet down speed on the wired connection was good, the speed achieved through the wireless connection was atrocious (see measurements later in this blog post)&lt;/li&gt;
&lt;li&gt;the power supply is badly built and takes the space of two power outlets.&lt;/li&gt;
&lt;li&gt;I am not trusting proprietary hardware and software too much.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some research showed that I should be able to replace the existing hardware with an &lt;a href=&#34;https://openwrt.org/&#34;&gt;OpenWRT&lt;/a&gt;-based access point and a single USB LTE-modem. I wasn&amp;rsquo;t sure if the drivers would work out and what the resulting internet performance would be but there&amp;rsquo;s only a single way to find that out: build it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>To Fuzz a WebSocket</title>
      <link>https://snikt.net/blog/2019/05/22/to-fuzz-a-websocket/</link>
      <pubDate>Wed, 22 May 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/05/22/to-fuzz-a-websocket/</guid>
      <description>&lt;p&gt;During a recent assignment the customer server was utilizing a WebSocket for some notification transport, part of my assignment was to fuzz-test the used WebSocket (and the messages transported over it).&lt;/p&gt;
&lt;p&gt;To do this, I turned to my typical tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://portswigger.net/burp&#34;&gt;PortSwigger BURP&lt;/a&gt; only supports display of WebSocket messages but not altering and/or automated fuzzing of websocket messages.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project&#34;&gt;OWASP ZAP&lt;/a&gt; can inject and fuzz web sockets (e. g. using &lt;a href=&#34;https://github.com/fuzzdb-project/fuzzdb&#34;&gt;FuzzDB&lt;/a&gt; vectors), alas the tested application disconnects the websocket and thus prevents ZAP from performing the fuzzing attack.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So again I had to write a small python script. This time i used the &lt;a href=&#34;https://github.com/cisco-sas/kitty&#34;&gt;Kitty fuzzing framework&lt;/a&gt; and the python web socket library to create a simple WebSocket transport/target for Kitty (&lt;code&gt;WebSocketTarget&lt;/code&gt;). This target reopens the web socket after each sent message, so the disconnect behavior would not limit the testing (but would decrease its performance &amp;mdash; I can live with that).&lt;/p&gt;</description>
    </item>
    <item>
      <title>JWT: Signature-vs-MAC attacks</title>
      <link>https://snikt.net/blog/2019/05/16/jwt-signature-vs-mac-attacks/</link>
      <pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/05/16/jwt-signature-vs-mac-attacks/</guid>
      <description>&lt;p&gt;During a recent pen-test I stumbled upon a &lt;a href=&#34;https://en.wikipedia.org/wiki/JSON_Web_Token&#34;&gt;JSON Web Token&lt;/a&gt;(in short: JWT) based authorization scheme. JWTs consist of three parts: header, payload and verification information. The initial header part contains the name of the algorithm that will later be used to generate the verification part of the JWT. This is dangerous as an attacker can change this information and thus (maybe) control what scheme will be used for verification by the server.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Reframing</title>
      <link>https://snikt.net/blog/2019/01/07/on-reframing/</link>
      <pubDate>Mon, 07 Jan 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/01/07/on-reframing/</guid>
      <description>&lt;p&gt;There’s power in switching mental models. In my work, switching from “there might be a vulnerability in this software” to “i just haven’t found the vulnerability” was a game changer for me. I get nervous prior to presentations; one switch that helped me was that instead of thinking “my goal is to look bright” I try to remember that my goal is to teach the audience something and it doesn’t matter who stupid I look as long as they gain something from me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Amazing (Physical) Access Control with HID RFID cards</title>
      <link>https://snikt.net/blog/2019/01/04/amazing-physical-access-control-with-hid-rfid-cards/</link>
      <pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2019/01/04/amazing-physical-access-control-with-hid-rfid-cards/</guid>
      <description>&lt;p&gt;So my company moved to a new building which uses &lt;a href=&#34;https://en.wikipedia.org/wiki/HID_Global&#34;&gt;HID RFID cards&lt;/a&gt; for access control. These cards are typically white with some sort of numeric code printed on one side of them. I have not included an image of my card due to (later) obvious reasons..&lt;/p&gt;
&lt;h2 id=&#34;setting-up-my-proxmark3-rdv4-reader&#34;&gt;Setting up my Proxmark3 RDV4 reader&lt;/h2&gt;
&lt;p&gt;Some time ago I joined the &lt;a href=&#34;https://www.kickstarter.com/projects/1408815241/proxmark3-rdv-40?lang=de&#34;&gt;Kickstarter for an updated version of the Proxmark3 RFID reader/writer&lt;/a&gt; and immediately broke it during the initial flash update. After I was able to &lt;a href=&#34;https://github.com/RfidResearchGroup/proxmark3/issues/35&#34;&gt;unbreak the reader&lt;/a&gt; (hint: kill network-manager and modem-manager before trying to flash the new image) this seems to be a good time to test those pesky access cards. Also a huge Thank you! to the Proxmark support team for helping me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>This year&#39;s review, 2018 edition</title>
      <link>https://snikt.net/blog/2018/12/31/this-years-review-2018-edition/</link>
      <pubDate>Mon, 31 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2018/12/31/this-years-review-2018-edition/</guid>
      <description>&lt;p&gt;This year was good work- and health-wise, but bad when it comes to money and relationships. Financially the stock market drop hurt, emotionally getting dumped was painful.&lt;/p&gt;
&lt;p&gt;For 2019, I plan to keep and improve my healthy 2018 habits: enjoy life as non-smoker, keep on bouldering (6a+ - 6c with a rare sent 7a in-between), finally finish a full Bikram yoga sequence and maybe meditate more often.&lt;/p&gt;
&lt;p&gt;In addition, I&amp;rsquo;d like to improve my sleep. This might lead to less screen time in the evening, more Kindle reading and maybe a slight drop in my caffeine consumption. Another thing that worries me is that many of my best stories start with &amp;ldquo;when we were out drinking..&amp;rdquo;. After quitting to smoke, it might be time to work on this area too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wireguard vs OpenVPN on a local Gigabit Network</title>
      <link>https://snikt.net/blog/2018/12/13/wireguard-vs-openvpn-on-a-local-gigabit-network/</link>
      <pubDate>Thu, 13 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2018/12/13/wireguard-vs-openvpn-on-a-local-gigabit-network/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.wireguard.com/&#34;&gt;Wireguard&lt;/a&gt; is recently making a splash as human-configurable low-overhead alternative to &lt;a href=&#34;https://openvpn.net/&#34;&gt;OpenVPN&lt;/a&gt; and IPSec. As some privacy-centric VPN providers are planning to support it (e.g., &lt;a href=&#34;https://www.privateinternetaccess.com/pages/buy-vpn/SNIKT001&#34;&gt;PIA&lt;/a&gt;) or already have a beta running (e.g., &lt;a href=&#34;https://arstechnica.com/gadgets/2018/12/testing-wireguard-with-an-early-adopter-vpn-service/&#34;&gt;IVPN, as tested by Ars Technica&lt;/a&gt;) it was time for me to look into it.&lt;/p&gt;
&lt;h2 id=&#34;the-setup&#34;&gt;The Setup&lt;/h2&gt;
&lt;p&gt;To get a better feeling about the used technology I directly connected my laptop to my desktop (gigabit Ethernet with no switch/router in between) and setup OpenVPN with a minimalist configuration as well as with a more realistic TLS-configuration. I took some bandwidth/latency measurements with &lt;a href=&#34;https://iperf.fr/&#34;&gt;iperf&lt;/a&gt; and &lt;a href=&#34;https://access.redhat.com/solutions/2122681&#34;&gt;qperf&lt;/a&gt; and compared those to a minimal Wireguard setup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Revising my lazy http/https interception setup</title>
      <link>https://snikt.net/blog/2018/11/23/revising-my-lazy-http/https-interception-setup/</link>
      <pubDate>Fri, 23 Nov 2018 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2018/11/23/revising-my-lazy-http/https-interception-setup/</guid>
      <description>Lazily creating an HTTP/HTTPS interception proxy with network-manager and mitmproxy</description>
    </item>
    <item>
      <title>Living with changes</title>
      <link>https://snikt.net/blog/2018/11/07/living-with-changes/</link>
      <pubDate>Wed, 07 Nov 2018 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2018/11/07/living-with-changes/</guid>
      <description>&lt;p&gt;This year seems to bring a lot of changes: I&amp;rsquo;ve switched employers after staying on/off at a research center or the last twelve years. When I started there, I was doing cool network coding for the SECOQC quantum key distribution network, it somehow felt as being a part of some bigger undertaking that finally let to something. My work had a tenable outcome, this compensated for the long hours and poor pay. Colleagues were (and have been until the end) good friends and oftentimes mentors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fun Hacking Stuff ahead</title>
      <link>https://snikt.net/blog/2018/10/23/fun-hacking-stuff-ahead/</link>
      <pubDate>Tue, 23 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2018/10/23/fun-hacking-stuff-ahead/</guid>
      <description>&lt;p&gt;Recently I&amp;rsquo;ve found an old post-it with guidelines I wrote myself a couple of years back, two of those stood out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;make mistakes&lt;/li&gt;
&lt;li&gt;don&amp;rsquo;t buy stupid stuff&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Seems like I haven&amp;rsquo;t been the most consistent person back then. The post-it got discovered during a clean-up session of my flat, the same session brought up the following stupidly-bought-and-never-used gadgets:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;one &lt;a href=&#34;https://de.wikipedia.org/wiki/BBC_micro:bit&#34;&gt;BBC micro:bit&lt;/a&gt; that should be able to &lt;a href=&#34;https://github.com/virtualabs/btlejack&#34;&gt;capture Bluetooth Low Energy transmissions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;one &lt;a href=&#34;https://www.kickstarter.com/projects/1408815241/proxmark3-rdv-40#&#34;&gt;Proxmark 3 RV4&lt;/a&gt; that should be able to do some nifty RFID stuff (and that I was recently &lt;a href=&#34;https://github.com/RfidResearchGroup/proxmark3/issues/35&#34;&gt;able to fix&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;one &lt;a href=&#34;https://www.rtl-sdr.com/about-rtl-sdr/&#34;&gt;Realtek Software-Defined Radio USB Stick&lt;/a&gt; (rtl-sdr)..&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My new year&amp;rsquo;s resolution (or rather near-future resolution) is to do /something/ hackery with that stuff. Suggestions more than welcome.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GnuPG/PGP and Evolution/Seahorse Private Key Woes</title>
      <link>https://snikt.net/blog/2016/12/01/gnupg/pgp-and-evolution/seahorse-private-key-woes/</link>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2016/12/01/gnupg/pgp-and-evolution/seahorse-private-key-woes/</guid>
      <description>&lt;p&gt;I have a quite simple setup: &lt;a href=&#34;https://getfedora.org/workstation/&#34;&gt;Fedora 23&lt;/a&gt; on
my Desktop, &lt;a href=&#34;http://cdimage.ubuntu.com/daily-live/current/&#34;&gt;Ubuntu 16.04&lt;/a&gt; on my
Notebook and a
&lt;a href=&#34;https://www.yubico.com/products/yubikey-hardware/yubikey4/&#34;&gt;YubiKey&lt;/a&gt; thrown
into the mix.&lt;/p&gt;
&lt;p&gt;I do have my normal GnuPG key
&lt;a href=&#34;https://pgp.mit.edu/pks/lookup?op=vindex&amp;amp;search=0x648B35DADD436203&#34;&gt;DD436203&lt;/a&gt;
that I&amp;rsquo;m using. There&amp;rsquo;s also an old and revoked key 3F5D00B6 with which I was
testing my YubiKey with (note to myself: don&amp;rsquo;t use an YubiKey-crested private
key as you cannot backup it). My main key offers an ElGamal 2048bit subkey &amp;ndash;
which does not work with the Yubikey (as that only supports 2048bit RSA). So I
&amp;rsquo;ve added a new subkey on my laptop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How (NOT) to hide OpenVPN behind HTTPS/SSL</title>
      <link>https://snikt.net/blog/2016/12/01/how-not-to-hide-openvpn-behind-https/ssl/</link>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2016/12/01/how-not-to-hide-openvpn-behind-https/ssl/</guid>
      <description>&lt;p&gt;Update 2017: Sadly I found out (thanks due to the comments on this blog post) that using port-share does not encapsulates subsequent traffic in normal TLS. So using this method will not fool Deep-Package Inspection Firewalls. If you need to mask all your traffic, this is not an option – you might need to investigate stunnel, information can be found &lt;a href=&#34;https://serverfault.com/questions/675553/stunnel-vpn-traffic-and-ensure-it-looks-like-ssl-traffic-on-port-443&#34;&gt;here&lt;/a&gt;, &lt;a href=&#34;https://www.bestvpn.com/how-to-hide-openvpn-traffic-an-introduction/&#34;&gt;here&lt;/a&gt; or &lt;a href=&#34;https://www.perfect-privacy.com/howto/openvpn-over-stunnel/&#34;&gt;here&lt;/a&gt;. I assume, that the higher success rate of this method could be related to some firewalls checking the target of the initial https request. This would yield a normal website with this setup and might be enough to fool some websites.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Secret-sharing described by Prismacloud</title>
      <link>https://snikt.net/blog/2016/02/27/secret-sharing-described-by-prismacloud/</link>
      <pubDate>Sat, 27 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2016/02/27/secret-sharing-described-by-prismacloud/</guid>
      <description>&lt;p&gt;One important part of the European &lt;a href=&#34;https://prismacloud.eu&#34;&gt;Prismacloud&lt;/a&gt;
project is dissemination: make ordinary people understand some of our
cryptographic directives. Out of this, the following clip originated:&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;The technique in question is called
&lt;a href=&#34;https://en.wikipedia.org/wiki/Secret_sharing&#34;&gt;secret-sharing&lt;/a&gt; and was
originally detailed in 1979.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Firejail: Chroot on Speed</title>
      <link>https://snikt.net/blog/2016/02/25/firejail-chroot-on-speed/</link>
      <pubDate>Thu, 25 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2016/02/25/firejail-chroot-on-speed/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://firejail.wordpress.com/&#34;&gt;Firejail&lt;/a&gt; describes itself as &lt;em&gt;a SUID program that reduces the risk of security breaches by restricing the running environment of running programs&lt;/em&gt;. We&amp;rsquo;ll just call it chroot or jail (for the BSDers out there).&lt;/p&gt;
&lt;h2 id=&#34;so-its-suid&#34;&gt;So, it&amp;rsquo;s SUID?&lt;/h2&gt;
&lt;p&gt;First things first: it&amp;rsquo;s SUID, so if there&amp;rsquo;s an error within the firejail binary
an attacker can gain root rights. This comes with the territory. How large is
Firejail and how many dependencies does it have? It&amp;rsquo;s written in C and:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Low-hanging Security/Privacy for the Lazy 2016!</title>
      <link>https://snikt.net/blog/2016/02/25/low-hanging-security/privacy-for-the-lazy-2016/</link>
      <pubDate>Thu, 25 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2016/02/25/low-hanging-security/privacy-for-the-lazy-2016/</guid>
      <description>&lt;p&gt;Keeping a good security and privacy is tough work. There&amp;rsquo;s always a trade-off
between effort and achieved security. In this blog post I&amp;rsquo;ll mention small
things that a ``normal&amp;rsquo;&amp;rsquo; person should be able to perform &amp;mdash; that still
increase the overall security of that user&amp;rsquo;s data. &lt;/p&gt;
&lt;h2 id=&#34;choose-your-liege&#34;&gt;Choose your Liege&lt;/h2&gt;
&lt;p&gt;Bruce Schneier talks about the comeback of &lt;a href=&#34;https://www.schneier.com/blog/archives/2012/12/feudal_sec.html&#34;&gt;feudal
security&lt;/a&gt;: you
choose your &lt;a href=&#34;https://en.wikipedia.org/wiki/Homage_%28feudal%29&#34;&gt;liege lord&lt;/a&gt; and
depend upon him for providing security. You pledge yourself to Google, Facebook
or Apple. Your liege protects his servers (with your data) and might defend
your data/emails in a legal court &amp;mdash; for which I as a private person would not
have the monies &amp;mdash; but for that it gets access to all your data. Choose your
liege carefully and only have few of them. For me Google is essential. It&amp;rsquo;s
hosted mail service gets all my possible password reminder/reset emails. If it
gets compromised, it&amp;rsquo;s game over for me. Similar for me is
&lt;a href=&#34;https://www.lastpass.com&#34;&gt;LastPass&lt;/a&gt;. Identify those main trust anchors and use
secure and unique passwords for them. If possible enable
two-factor-authentication (2FA). This forces an attacker to not just steal your
password in cyberspace, but she would also need to steal a second factor (i.e.
phone or RSA token) in the physical world. Few &amp;ldquo;private&amp;rdquo; hackers will escalate
to this level.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OSCP: Check!</title>
      <link>https://snikt.net/blog/2016/02/07/oscp-check/</link>
      <pubDate>Sun, 07 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2016/02/07/oscp-check/</guid>
      <description>&lt;p&gt;I have just received my
&lt;a href=&#34;https://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/&#34;&gt;OSCP&lt;/a&gt;
exam success notification. This is a penetration-testing certification by
&lt;a href=&#34;https://www.offensive-security.com&#34;&gt;Offensive Security&lt;/a&gt; with focus on
hands-on-training. You get an eBook and a week&amp;rsquo;s worth of video
lectures with guided exercises; access to a virtual lab with approximately 55
machines that you should gain full control over and will finish with an 24 hour
exam in which you are supposed to root five target machines. All this should be
documented and submitted at last 24 hours after your exam is over &amp;ndash; my
documentation had 264 pages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Network Concurrency Problem</title>
      <link>https://snikt.net/blog/2015/11/13/network-concurrency-problem/</link>
      <pubDate>Fri, 13 Nov 2015 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2015/11/13/network-concurrency-problem/</guid>
      <description>&lt;p&gt;A &lt;a href=&#34;https://www.github.com/archistar&#34;&gt;project&lt;/a&gt; I&amp;rsquo;m involved with has a traditional
distributed client-server architecture: multiple servers are interconnected,
clients connect to one more servers. In this use-case we&amp;rsquo;re expecting around
four to seven servers with long-running connections between them and approx.
a dozen clients with short-lived connections to the server.&lt;/p&gt;
&lt;p&gt;Initially I had used plain Java networking but during 2013 I&amp;rsquo;ve switched
over to &lt;a href=&#34;https://netty.io&#34;&gt;netty.io&lt;/a&gt; as a communication layer. Benefits
were more agile networking code, better concurrency, etc. At least in
theory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pathogen vs vundle</title>
      <link>https://snikt.net/blog/2015/02/18/pathogen-vs-vundle/</link>
      <pubDate>Wed, 18 Feb 2015 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2015/02/18/pathogen-vs-vundle/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/tpope/vim-pathogen&#34;&gt;Pathogen&lt;/a&gt; was the first vim plugin
management system that I&amp;rsquo;ve known of. The contender is &lt;a href=&#34;https://github.com/gmarik/Vundle.vim&#34;&gt;Vundle&lt;/a&gt; which seems
to be inspired in it&amp;rsquo;s configuration syntax (and name) by Ruby&amp;rsquo;s &lt;a href=&#34;http://bundler.io/&#34;&gt;Bundler&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So let&amp;rsquo;s compare those two.&lt;/p&gt;
&lt;h2 id=&#34;pathogen&#34;&gt;Pathogen&lt;/h2&gt;
&lt;p&gt;Pathogen&amp;rsquo;s workings are quite easy to grasp: each plugin
is a directory within &amp;ldquo;~/.vim/bundle/&amp;rdquo;; pathogen traverses through the plugin
list and includes each one of them. Let&amp;rsquo;s see a sample directory:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;~/.vim&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;$ ls -l bundle/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; andy andy &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt; Sep  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 22:20 ag
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; andy andy &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt; Sep  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 22:20 ctrlp.vim
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt; andy andy &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt; Sep  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 22:22 syntastic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x &lt;span style=&#34;color:#ae81ff&#34;&gt;13&lt;/span&gt; andy andy &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt; Sep  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 22:23 ultisnips
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt; andy andy &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt; Sep  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; 22:26 vim-airline
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It gets really powerful when you store you ~/.vim directory within a &lt;a href=&#34;https://github.com/andreashappe/config-vim&#34;&gt;git
repository&lt;/a&gt; and share it between multiple computers. If you use git
submodules for each plugin you even get versioned plugins for free.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Capybara for automating Pen-Tests</title>
      <link>https://snikt.net/blog/2014/09/09/capybara-for-automating-pen-tests/</link>
      <pubDate>Tue, 09 Sep 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/09/09/capybara-for-automating-pen-tests/</guid>
      <description>&lt;p&gt;After a successful penetration test a re-test is performed. The common approach is
that the customer fixes the code and I perform the necessary steps to confirm that
that initial security breach was closed. Sometimes it takes the customer a couple
of tries to achieve that.&lt;/p&gt;
&lt;p&gt;Most security problems (XSS, CSRF, SQLi) can easily be automated tested, but I had
problems automating server-side authentication and authorization problems. The
test would have to emulate multiple parallel user sessions. The tests mostly consists
of one session trying to access the resources of another user session.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating to Middleman</title>
      <link>https://snikt.net/blog/2014/09/09/migrating-to-middleman/</link>
      <pubDate>Tue, 09 Sep 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/09/09/migrating-to-middleman/</guid>
      <description>&lt;p&gt;My blog has a history of migrations. It started as wordpress, then was converted
Octopress. After &lt;a href=&#34;http://octopress.org/&#34;&gt;Octopress&lt;/a&gt; was missing update-love and &lt;a href=&#34;http://jekyllrb.com/&#34;&gt;jekyll&lt;/a&gt; started to be
actively maintained again it switched over to &lt;a href=&#34;http://jekyllrb.com/&#34;&gt;jekyll&lt;/a&gt;. And now, it finally is
based upon &lt;a href=&#34;http://middlemanapp.com/&#34;&gt;Middleman&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sorry for any inconvinient bugs or layout errors that will happen during the
migration.&lt;/p&gt;
&lt;p&gt;Why have I switched to middleman?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;as I&amp;rsquo;m a RoR devleoper it seems better suited for me. Jekyll always seemed
to be the choice for &amp;ldquo;web designer that need to add some dynamic content&amp;rdquo;
while middleman seems to incorporate the &amp;ldquo;web developer that needs some
blog&amp;rdquo;-attitude&lt;/li&gt;
&lt;li&gt;nice integration with bundler&lt;/li&gt;
&lt;li&gt;existing plugins for deployment. This replaced a lot of custom cruft that
I had to initially write for myself when I was using jekyll&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While in there I&amp;rsquo;ve switched from bootstrap to &lt;a href=&#34;http://bourbon.io/&#34;&gt;bourbon&lt;/a&gt;/&lt;a href=&#34;http://neat.bourbon.io/&#34;&gt;neat&lt;/a&gt;/&lt;a href=&#34;http://bitters.bourbon.io/&#34;&gt;bitters&lt;/a&gt;. Let&amp;rsquo;s see
how this works out. Wouldn&amp;rsquo;t mind the framework to be called Islay though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Review: Penetration Testing with BackBox</title>
      <link>https://snikt.net/blog/2014/09/09/review-penetration-testing-with-backbox/</link>
      <pubDate>Tue, 09 Sep 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/09/09/review-penetration-testing-with-backbox/</guid>
      <description>&lt;p&gt;Full-disclosure: I was asked by &lt;a href=&#34;https://www.packtpub.com/&#34;&gt;PacktPublishing&lt;/a&gt; to provide a review of &lt;a href=&#34;http://bit.ly/1fF2N6z&#34;&gt;Penetration Testing with BackBox&lt;/a&gt; by Stefan Umit Uygur. They offered me a free copy of the ebook; otherwise I have not been compensated by any means for this review.&lt;/p&gt;
&lt;p&gt;The book aims to be an introduction to penetration-testing for experienced Unix/Linux users or administrators (seems like there are Linux users that aren&amp;rsquo;t administrators by now). After reading the book I believe that the assumed use-case is an administrator that wants to gain some insight into the tools that might be used against his server. Other parts of the books (hash cracking, tools) might allure aspirating script kiddies.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using a (host) reverse-proxy together with LXC application servers</title>
      <link>https://snikt.net/blog/2014/04/25/using-a-host-reverse-proxy-together-with-lxc-application-servers/</link>
      <pubDate>Fri, 25 Apr 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/04/25/using-a-host-reverse-proxy-together-with-lxc-application-servers/</guid>
      <description>How to combine an reverse proxy (nginx) running on the host with virtualized aplication workers</description>
    </item>
    <item>
      <title>How to convert an KVM image into a LXC container</title>
      <link>https://snikt.net/blog/2014/04/07/how-to-convert-an-kvm-image-into-a-lxc-container/</link>
      <pubDate>Mon, 07 Apr 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/04/07/how-to-convert-an-kvm-image-into-a-lxc-container/</guid>
      <description>How to use convert an KVM image into a LXC container</description>
    </item>
    <item>
      <title>How to use virt-install to install new virtual machines within libvirt/kvm</title>
      <link>https://snikt.net/blog/2014/03/22/how-to-use-virt-install-to-install-new-virtual-machines-within-libvirt/kvm/</link>
      <pubDate>Sat, 22 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/03/22/how-to-use-virt-install-to-install-new-virtual-machines-within-libvirt/kvm/</guid>
      <description>How to use virt-install to install new virtual machines within libvirt/kvm</description>
    </item>
    <item>
      <title>Rogue Access Point and SSL Man-in-the-Middle the easy way</title>
      <link>https://snikt.net/blog/2014/03/20/rogue-access-point-and-ssl-man-in-the-middle-the-easy-way/</link>
      <pubDate>Thu, 20 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/03/20/rogue-access-point-and-ssl-man-in-the-middle-the-easy-way/</guid>
      <description>How to setup an rogue access point and do ssl interception using KDE and BURP</description>
    </item>
    <item>
      <title>How-to setup a rogue access point with a transparent HTTP(s) proxy</title>
      <link>https://snikt.net/blog/2014/02/24/how-to-setup-a-rogue-access-point-with-a-transparent-https-proxy/</link>
      <pubDate>Mon, 24 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/02/24/how-to-setup-a-rogue-access-point-with-a-transparent-https-proxy/</guid>
      <description>How to setup a rogue access point with a transparent HTTP(s) proxy</description>
    </item>
    <item>
      <title>Politics: there seems to be no middle anymore</title>
      <link>https://snikt.net/blog/2014/01/26/politics-there-seems-to-be-no-middle-anymore/</link>
      <pubDate>Sun, 26 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/01/26/politics-there-seems-to-be-no-middle-anymore/</guid>
      <description>&lt;p&gt;Yesterday was this year&amp;rsquo;s &amp;ldquo;Akademikerball&amp;rdquo; in Vienna. This is a continuation of the former WKR ball &amp;ndash; which is used for right-wing networking across Europe and organized by the Austrian Freedom Party. This party in turn is a right-wing party: populist, xenophobic, haven of people with a far-right history. Opposed to this party were protests mostly organized by the left-ish social party and the green-alternative party. Police forces were using this event as a show-of-strength. Traditionally the executive is seen as the long arm of the people&amp;rsquo;s party (OeVP) &amp;ndash; a party with historic roots in the christ-fascist party of the &amp;rsquo;30s, the last decades it is more of a liberal-economic party. True to it roots freedom-of-press and the right-to-assemble were severely limited during the event.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Luxury is Slavery</title>
      <link>https://snikt.net/blog/2014/01/05/luxury-is-slavery/</link>
      <pubDate>Sun, 05 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2014/01/05/luxury-is-slavery/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s weakness. Well at least un-enjoyed luxury that has become an everyday event is. This has nothing to do with morals.&lt;/p&gt;
&lt;p&gt;Luxury costs money. Making money makes you dependant and consumes your free time, it reduces your financial freedom.&lt;/p&gt;
&lt;p&gt;So if you&amp;rsquo;re spending your life on luxury make sure that it counts and you&amp;rsquo;re enjoying it every moment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Review and New Year&#39;s resolutions</title>
      <link>https://snikt.net/blog/2013/12/31/review-and-new-years-resolutions/</link>
      <pubDate>Tue, 31 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/12/31/review-and-new-years-resolutions/</guid>
      <description>&lt;p&gt;Yeah, let&amp;rsquo;s make some new year&amp;rsquo;s resolutions so that I can feel bad breaking them. The big ones are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stop smoking. And nail-biting. Both might be the same outlet of my nervousness, let&amp;rsquo;s see if I can get them under control.&lt;/li&gt;
&lt;li&gt;Start doing Yoga and/or Meditation again. To be honest, this will be needed to get resolution #1 to work.&lt;/li&gt;
&lt;li&gt;Continue climbing. Alas my left wrist joint seems to have suffered sometime last year &amp;ndash; I&amp;rsquo;ll gonna go to the doctor, but might have to reduce my bouldering for a bit. I might try to soak up my free time with Yoga. Sarcastic, as doing yoga was replaced by bouldering in 2013.&lt;/li&gt;
&lt;li&gt;cooking vs. delivery-service: this will be a tough one. Currently I&amp;rsquo;m ordering way to much through the delivery service. In addition lots of the food eaten at home is just convinience food. I do not like the fact that delivery food is either way to expensive or unhealthy (or both).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then there are some &amp;ldquo;more of the same&amp;rdquo; resolutions:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cleaning Up</title>
      <link>https://snikt.net/blog/2013/12/29/cleaning-up/</link>
      <pubDate>Sun, 29 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/12/29/cleaning-up/</guid>
      <description>&lt;p&gt;With the year&amp;rsquo;s end comes the time for reviews and cleanups. Reducing cruft allows your mind to be free, with it comes a sense of closure and empowerement. Otherwise all my possessions would drag me down.&lt;/p&gt;
&lt;p&gt;Stuff I really like to do at this time is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;review existing bank accounts and service contracts (like phone/internet/power plans). Reduce them to maintain some sense of control.&lt;/li&gt;
&lt;li&gt;Books: I hoard them even if most of them are not exactly Pulitzer-price materiel. I&amp;rsquo;ve read each of them but won&amp;rsquo;t read most of them again &amp;ndash; so they&amp;rsquo;re mostly dead weight. There are places like public libraries or book sharing (i.e. &lt;a href=&#34;http://zwillingsleiden.blogspot.co.at/2011/12/wien-literatur-wortschatz-margareten-2.html&#34;&gt;Wortschatz&lt;/a&gt; in Vienna, Austria) places that love (and need) new books &amp;ndash; sharing is caring. Add your books to the &lt;a href=&#34;http://www.bookcrossing.com&#34;&gt;BookCrossing&lt;/a&gt; Index before sharing them and see where they have traveled and what people reading them think.&lt;/li&gt;
&lt;li&gt;Clothing drives. I try to make my garderobe work: so far I&amp;rsquo;m having far too many tshirts and am lacking other stuff (there&amp;rsquo;s not too much sense in having tshirts for four weeks when I&amp;rsquo;ll have to do my laundry every two weeks due to my trousers count). So I&amp;rsquo;ve imposed a new rule: when buying new clothes I have to donate at least on old cloth.&lt;/li&gt;
&lt;li&gt;old paper work: depending upon the jurisdiction you&amp;rsquo;re living under you might have to keep old (business) paper work. Here in Austria you&amp;rsquo;re allowed to discard paperwork after seven years &amp;ndash; so each time at the end of the year I&amp;rsquo;m going through the archives and find stuff that is not needed anymore but still wastes space.&lt;/li&gt;
&lt;li&gt;There&amp;rsquo;s another problem: I hoard stuff. For example I own some rare bottles of whisky that are (by now) too expensive to drink. This is stuff that won&amp;rsquo;t go away easily. My solution is to give them as presents upon special occations. To prevent this situation from happening again I&amp;rsquo;m imposing some new rules: I won&amp;rsquo;t buy new Whisky when my existing collection is worth more than 600 Euro.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>How to use FakeS3 for S3 testing</title>
      <link>https://snikt.net/blog/2013/12/24/how-to-use-fakes3-for-s3-testing/</link>
      <pubDate>Tue, 24 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/12/24/how-to-use-fakes3-for-s3-testing/</guid>
      <description>How to setup the Fake S3 gem to create a local fake S3 server (for testing purposes)</description>
    </item>
    <item>
      <title>Indulgence Galore!</title>
      <link>https://snikt.net/blog/2013/12/24/indulgence-galore/</link>
      <pubDate>Tue, 24 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/12/24/indulgence-galore/</guid>
      <description>&lt;p&gt;We&amp;rsquo;re living in a world of indulgence and seem not to cherish the small (or larger) daily treats anymore. As a cousin of mine once noted: we are able to go out for coffee and food daily without thinking to much of it&amp;rsquo;s costs. We&amp;rsquo;re the lucky few but somehow forgot about that. We&amp;rsquo;re privileged but we&amp;rsquo;ve got accustomed to it.&lt;/p&gt;
&lt;p&gt;Living in Austria our grand-parents and parents started with almost nothing after the second world war. Then came a long line of firsts: cars, television sets, an united Europe, mobile phones, the possibility of traveling abroads, higher-education. Things that my generation takes for granted.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux: How to force an application to use a given VPN tunnel</title>
      <link>https://snikt.net/blog/2013/10/20/linux-how-to-force-an-application-to-use-a-given-vpn-tunnel/</link>
      <pubDate>Sun, 20 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/10/20/linux-how-to-force-an-application-to-use-a-given-vpn-tunnel/</guid>
      <description>wicked_pdf allows generating PDFs from ruby on rails, for free!</description>
    </item>
    <item>
      <title>Git with transparent encryption</title>
      <link>https://snikt.net/blog/2013/10/10/git-with-transparent-encryption/</link>
      <pubDate>Thu, 10 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/10/10/git-with-transparent-encryption/</guid>
      <description>Using encryption to make git handle un-trusted remote storage server</description>
    </item>
    <item>
      <title>Encrypted S3 storage filesystems</title>
      <link>https://snikt.net/blog/2013/06/27/encrypted-s3-storage-filesystems/</link>
      <pubDate>Thu, 27 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/06/27/encrypted-s3-storage-filesystems/</guid>
      <description>Trying to use two s3-based storage methods that provide transparent encryption and compression</description>
    </item>
    <item>
      <title>Secure Online Data Backup using Duplicity</title>
      <link>https://snikt.net/blog/2013/06/27/secure-online-data-backup-using-duplicity/</link>
      <pubDate>Thu, 27 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/06/27/secure-online-data-backup-using-duplicity/</guid>
      <description>Encrypted incremental backup to clouds/ssh hosts using duplicity</description>
    </item>
    <item>
      <title>Penetration testing</title>
      <link>https://snikt.net/blog/2013/06/23/penetration-testing/</link>
      <pubDate>Sun, 23 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2013/06/23/penetration-testing/</guid>
      <description>Penetration testing</description>
    </item>
    <item>
      <title>Avoiding Internet/Network Surveillance</title>
      <link>https://snikt.net/blog/2012/12/10/avoiding-internet/network-surveillance/</link>
      <pubDate>Mon, 10 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/12/10/avoiding-internet/network-surveillance/</guid>
      <description>How to encrypt most of your communication data on the internet</description>
    </item>
    <item>
      <title>Linux: How to encrypt your data on hard drives, USB sticks, etc.</title>
      <link>https://snikt.net/blog/2012/12/02/linux-how-to-encrypt-your-data-on-hard-drives-usb-sticks-etc./</link>
      <pubDate>Sun, 02 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/12/02/linux-how-to-encrypt-your-data-on-hard-drives-usb-sticks-etc./</guid>
      <description>How to transparently encrypt hard drives/USB sticks/etc.</description>
    </item>
    <item>
      <title>Linux: How to forward port 3000 to port 80</title>
      <link>https://snikt.net/blog/2012/11/18/linux-how-to-forward-port-3000-to-port-80/</link>
      <pubDate>Sun, 18 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/11/18/linux-how-to-forward-port-3000-to-port-80/</guid>
      <description>Howto forward port 3000 to port 80 under Linux.</description>
    </item>
    <item>
      <title>Postgres: Howto change owner for all tables</title>
      <link>https://snikt.net/blog/2012/11/11/postgres-howto-change-owner-for-all-tables/</link>
      <pubDate>Sun, 11 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/11/11/postgres-howto-change-owner-for-all-tables/</guid>
      <description>Howto change owner of all tables of a database (in postgresql)</description>
    </item>
    <item>
      <title>Moving OctoPress to Amazon S3 and CloudFront</title>
      <link>https://snikt.net/blog/2012/11/03/moving-octopress-to-amazon-s3-and-cloudfront/</link>
      <pubDate>Sat, 03 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/11/03/moving-octopress-to-amazon-s3-and-cloudfront/</guid>
      <description>Moving OctoPress to Amazon S3 is easy, but how&amp;#39;s the performance?</description>
    </item>
    <item>
      <title>A full-powered shoebox-sized Desktop</title>
      <link>https://snikt.net/blog/2012/10/28/a-full-powered-shoebox-sized-desktop/</link>
      <pubDate>Sun, 28 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/10/28/a-full-powered-shoebox-sized-desktop/</guid>
      <description>Building a mini-ITX high-performance desktop that would fit into a shoebox</description>
    </item>
    <item>
      <title>The Lazy Engineer</title>
      <link>https://snikt.net/blog/2012/10/28/the-lazy-engineer/</link>
      <pubDate>Sun, 28 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/10/28/the-lazy-engineer/</guid>
      <description>How I operate</description>
    </item>
    <item>
      <title>Generating PDFs with wicked_pdf</title>
      <link>https://snikt.net/blog/2012/05/01/generating-pdfs-with-wicked_pdf/</link>
      <pubDate>Tue, 01 May 2012 00:00:00 +0000</pubDate>
      <guid>https://snikt.net/blog/2012/05/01/generating-pdfs-with-wicked_pdf/</guid>
      <description>wicked_pdf allows generating PDFs from ruby on rails, for free!</description>
    </item>
  </channel>
</rss>
