Welcome to my write-up! Here you’ll find the steps needed to complete objectives and challenges. However some will not provide the answer. This is because if you follow the steps and understand what you’re doing; you’ll get the answer. If you’re only looking for the answer, there are other write-ups just a quick Google search away. This write-up will first cover the objectives followed by raspberry pi challenges.
Analyze image to find Santa’s gift for Josh Write. Relevant portion of image has been swirled which obfuscates the text. Need to “un-swirl” portions of the image to retrieve the flag.
This post details how to setup a root OpenSSL Certificate Authority using Elliptic-curve cryptography (ECC) based on the following two resources.
Tested with:
OpenBSD 6.6 GENERIC
LibreSSL 3.0.2
The greatest hurdle to building out a certificate infrastructure is planning. One must understand how certificates will be used short term and long term as both will impact the overall design. Much planning is centered around how certificates are issued to users/services. Not just…
Relayd is a free load-balancer, application layer gateway, transparent proxy, and SSL/TLS gateway. It’s safe to say I would avoid placing a web server directly on the internet without placing relayd infront of it. While it may not have all the functionality of competing products (e.g. F5, nginx, haproxy) it has the right balance.
The following relayd.conf is similar to what I use as it achieves these three goals:
Tested on:
OpenBSD 6.6 GENERIC
The default web server in OpenBSD is httpd
. A lightweight server with only the essentials and built secure from the ground up.
There are occasions when a website must be placed into maintenance and httpd.conf
makes this easy with pattern matching.
Tested on: OpenBSD 6.6 GENERIC
Save the following (or similar) page to the website root as maintenance.html
.
This technique will redirect all requests which is why no other files are referenced. Any styles or scripts must be specified directly in the maintenance page or hosted on a different website.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">…
Content Security Policy (CSP) is an HTTP response header used to protect the client against XSS, clickjacking, and loading untrusted content. When a page has internal scripts or styles, CSP can allow it by using a nonce or specifying it’s hash as a base64 encoded value. This post will show how to determine the value to be placed into the CSP.
For more information about the Content Security Policy specification see:
Content Security Policy Level 2 — W3C Recommendation, 15 December 2016
The following PowerShell function can be used to calculate the SHA256
hash. …
Online Certificate Status Protocol (OCSP) stapling is a standard for checking certificate revocation. Most commonly deployed on web servers using TLS and required if you’re aiming for an A+
on Qualys SSL Server Test. Even better, CloudFlare reports connection time improvement by up to 30% in some cases. [0]
The following is based on OpenBSD 6.7.
Manual page for relayd.conf states:
An optional OCSP staple file will be used during TLS handshakes with this server if it is found as a non-empty file in /etc/ssl/name:port.ocsp or /etc/ssl/name.ocsp. …
Microsoft Desired State Configuration (DSC) is a management platform where configurations use a declarative syntax. Traditionally configurations are made by finding the particular Group Policy setting (local or otherwise). With DSC, all of the settings are in a text file stating the desired value (i.e. declared) making configuration as code possible.
One of the difficulties adopting DSC is generating the configuration files as it can be quite time-consuming. Suppose you have a server in its production configuration that needs to be migrated to DSC. Generating the configuration for Services
alone will take significant time let alone the Security Policy
and…
There are services within Microsoft Windows operating system that one cannot easily configure as in StartupType=Disabled
. This post will show how to ensure a service is disabled regardless of errors encountered when using traditional means (e.g. gui (MMC), commandline (cmd), PowerShell) and without delving into ACLs.
This issue was identified while implementing Microsoft Desired State Configuration (DSC) on Windows Server 2019.
All of the following was launched from an elevated command prompt as Administrator.
When working with Microsoft Windows services, most use services.msc
. To launch, simply type services.msc
into the Run dialog box and click OK. Some services cannot be…
When implementing Server Side Includes (SSI) on nginx 1.16.1
, extra bytes were being returned in the responses. While this wouldn’t be noticed when viewed in a webpage, it can provide information disclosure when viewing the raw stream. The extra bytes were caused by Transfer-Encoding: Chunked
being used in the HTTP response.
The Transfer-Encoding
HTTP header is defined by RFC2616 as:
The Transfer-Encoding general-header field indicates what (if any)
type of transformation has been applied to the message body in order
to safely transfer it between the sender and the recipient. …
Configuring HTTPS is not a simple update to a configuration file. Making changes to HTTPS protocols in Microsoft Internet Information Services (IIS) requires modifying the registry which in turn requires a reboot for the changes to become active. For ciphers, thankfully there are PowerShell cmdlets to make changes immediately active.
The following will provide some background and PowerShell
snippets to help achieve that A+ on Qualys SSL Server Test. It has been tested on an Azure VM running the following:
See the update at the end of this post for…