Deciphering the FileMaker Server keystore
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
A few hours ago FileMaker 17 was released, and with it an updated Data API, which is now finally out of trial phase.
Let’s say you have a (Windows or Linux) EC2 instance in a private subnet and want to access it interactively. There are several ways to do this.
When you have set up your infrastructure with Terraform and then do any change to the user_data of a EC2 instance, Terraform will detect the change and gener...
For a little side project I wanted an easy way to perform regular backups of a MariaDB database and upload the resultant dump gzipped to S3.
AWS Lambda is Amazon’s “serverless” compute platform that basically lets you run code without thinking (too much) of servers. I used Lambda in the past, thou...
A couple of days ago I took the exam for the CRTP certification by Pentester Academy. In this review I want to give a quick overview of the course contents, ...
Have you ever wondered how a file in a file listing is shown with size 0 bytes but can still contain data? Or maybe wondered where all that meta data is stor...
Tutorial on setting up your Flask application to run on macOS with WSGI
How to get current readings from your Aranet4 CO2 monitor
An exploration of the fmp12 file format and account and password storage
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
For a little side project I wanted an easy way to perform regular backups of a MariaDB database and upload the resultant dump gzipped to S3.
Write-up of “Networked” from Hack The Box
Entering a long shell command and then moving the cursor around to correct parts of it always felt a bit clunky to me. I remembered some of the <ctrl>/...
Write-up of “Buff” from Hack The Box
To boot Linux without Data Execution Prevention, so that the OS doesn’t mark certain memory regions as non-executable, we…
Tutorial on creating Bokeh plots with an AJAX data source, served from an existing Flask app.
AWS Lambda is Amazon’s “serverless” compute platform that basically lets you run code without thinking (too much) of servers. I used Lambda in the past, thou...
Write-up of “Fuse” from Hack The Box
Write-up of “Bart” from Hack The Box
Regular expressions are often used to check if a user input should be allowed for a specific action or lead to an error as it might be malicious.
A couple of days ago I took the exam for the CRTP certification by Pentester Academy. In this review I want to give a quick overview of the course contents, ...
Description of a XXE vulnerability in the Claris FileMaker Platform
A couple of days ago I took the exam for the CRTP certification by Pentester Academy. In this review I want to give a quick overview of the course contents, ...
LaTeX is the de facto standard typesetting system for scientific writing. Find a a cheat sheet with the most frequent used mathematics commands here.
Write-up of “Cronos” from Hack The Box
Write-up of “Netmon” from Hack The Box
Write-up of “Networked” from Hack The Box
Description of a XXE vulnerability in the Claris FileMaker Platform
Write-up of “Tabby” from Hack The Box
Write-up of “Kotarak” from Hack The Box
Write-up of “Kotarak” from Hack The Box
Write-up of “Cronos” from Hack The Box
An exploration of the fmp12 file format and account and password storage
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
If you want to debug/inspect/analyze SSL/TLS traffic made by curl, you can easily do so by setting the environment variable SSLKEYLOGFILE to a file path of y...
Write-up of “Cronos” from Hack The Box
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
Here is a little story about resolving an issue with a web site that turned out not to be an issue with a web site :-)
For a little side project I wanted an easy way to perform regular backups of a MariaDB database and upload the resultant dump gzipped to S3.
When debugging code that integrates with the Claris FileMaker Data API, it is sometimes helpful to trace a request from your app all the way to the code of t...
When you want to debug an application in an environment which is hard to replicate locally and/or you cannot install additional software on the machine it is...
While searching for ways to debug code in a Jupyter notebook, I found a lot of outdated posts. So I decided to quickly write up my findings.
When you have set up your infrastructure with Terraform and then do any change to the user_data of a EC2 instance, Terraform will detect the change and gener...
Introduction on how to write infrastructure resource definitions and execute them using Terraform.
Currently, there’s a lot of hype around the behavior of Python’s tarfile module for extracting archives. In short: tarfile will not sanitize filenames in arc...
I recently came across an nginx server that had a vulnerable alias configuration which allowed anyone to read files outside the intended directory. In the fo...
Write-up of “Tabby” from Hack The Box
For a little side project I wanted an easy way to perform regular backups of a MariaDB database and upload the resultant dump gzipped to S3.
I was working with a fairly simple Dockerfile, defining an entrypoint and always got a “not found” error when trying to run the container.
Use host.docker.internal to connect to your host machine.
Let’s say you have a (Windows or Linux) EC2 instance in a private subnet and want to access it interactively. There are several ways to do this.
I recently bought an Intel NUC8i7HVK to work as an ESXi host. In this post I walk you through the process of installation and initial setup.
There are multiple reasons why you would want to share a VPN connection from your Mac with another device. Maybe you have to install a proprietary VPN client...
When trying to read an Excel file into a Pandas DataFrame gives you the following error, the issue might be that you are dealing with a password protected Ex...
Having been asked multiple times if I can quickly compare two numeric columns from an excel file, I set up a small Jupyter notebook (and an R script) to show...
Logarithms are widely used in computer science (e.g. for algorithm analyses, floating point number limitations, scaling data, feature transformations). Not c...
An exploration of the fmp12 file format and account and password storage
Recently, I needed to transfer a binary over a very limited network connection allowing only small packets to be sent. I ended up splitting the binary into p...
Tutorial on creating Bokeh plots with an AJAX data source, served from an existing Flask app.
Tutorial on setting up your Flask application to run on macOS with WSGI
An exploration of the fmp12 file format and account and password storage
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
An exploration of the fmp12 file format and account and password storage
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
To boot Linux without Data Execution Prevention, so that the OS doesn’t mark certain memory regions as non-executable, we…
Writing data to the output buffer before deciding that the response to the current HTTP request should actually be a redirect (for example when an unauthenti...
My notes of building a computer based on the 6502 microprocessor following Ben Eater’s design.
In a recent project I needed to anonymize IP addresses in tracking data. While masking a few bits from an IP address is not so interesting, it’s a good excus...
In a recent project I needed to anonymize IP addresses in tracking data. While masking a few bits from an IP address is not so interesting, it’s a good excus...
When you have set up your infrastructure with Terraform and then do any change to the user_data of a EC2 instance, Terraform will detect the change and gener...
Introduction on how to write infrastructure resource definitions and execute them using Terraform.
Writing data to the output buffer before deciding that the response to the current HTTP request should actually be a redirect (for example when an unauthenti...
Write-up of “Buff” from Hack The Box
A few examples on how to do http requests via PowerShell’s Invoke-Webrequest cmdlet.
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
A couple of months ago I built a JavaScript application that allows adding points and labels to locations on a building floorplan. The whole canvas (not HTML...
Today I was working with the MNIST handwritten digits data and wanted to display a few images in a Jupyter notebook. After looking at PIL, then Pillow, I fou...
While searching for ways to debug code in a Jupyter notebook, I found a lot of outdated posts. So I decided to quickly write up my findings.
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
Write-up of “Tabby” from Hack The Box
Write-up of “Kotarak” from Hack The Box
LaTeX is the de facto standard typesetting system for scientific writing. Find a a cheat sheet with the most frequent used mathematics commands here.
AWS Lambda is Amazon’s “serverless” compute platform that basically lets you run code without thinking (too much) of servers. I used Lambda in the past, thou...
Write-up of “Cronos” from Hack The Box
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
Learn how to handle interrupts and other signals in Python.
Description of a XXE vulnerability in the Claris FileMaker Platform
Write-up of “Tabby” from Hack The Box
Recently, I needed to transfer a binary over a very limited network connection allowing only small packets to be sent. I ended up splitting the binary into p...
To boot Linux without Data Execution Prevention, so that the OS doesn’t mark certain memory regions as non-executable, we…
Write-up of “Kotarak” from Hack The Box
Write-up of “TartarSauce” from Hack The Box
Write-up of “Cronos” from Hack The Box
Write-up of “Networked” from Hack The Box
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
Description of a XXE vulnerability in the Claris FileMaker Platform
Write-up of “Bart” from Hack The Box
Logarithms are widely used in computer science (e.g. for algorithm analyses, floating point number limitations, scaling data, feature transformations). Not c...
Recently, I wanted to watch a couple of log files for new entries and have them sent to an http endpoint for collection and later analysis. I did a quick res...
Have you ever wondered how a file in a file listing is shown with size 0 bytes but can still contain data? Or maybe wondered where all that meta data is stor...
LaTeX is the de facto standard typesetting system for scientific writing. Find a a cheat sheet with the most frequent used mathematics commands here.
Today I was working with the MNIST handwritten digits data and wanted to display a few images in a Jupyter notebook. After looking at PIL, then Pillow, I fou...
After having neglected my blog over the last few months, I want to start posting more frequently again (New Year’s resolutions and all that).
For a little side project I wanted an easy way to perform regular backups of a MariaDB database and upload the resultant dump gzipped to S3.
When searching for partial strings in MySQL with LIKE you will match case-insensitive by default*.
There are multiple reasons why you would want to share a VPN connection from your Mac with another device. Maybe you have to install a proprietary VPN client...
Have you ever wondered how a file in a file listing is shown with size 0 bytes but can still contain data? Or maybe wondered where all that meta data is stor...
Use host.docker.internal to connect to your host machine.
Recently, I needed to transfer a binary over a very limited network connection allowing only small packets to be sent. I ended up splitting the binary into p...
If you want to debug/inspect/analyze SSL/TLS traffic made by curl, you can easily do so by setting the environment variable SSLKEYLOGFILE to a file path of y...
Pivot by setting up a portproxy between your machine and a machine in another network using “netsh interface portproxy add v4tov4 listenport= connectport= co...
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
In a recent project I needed to anonymize IP addresses in tracking data. While masking a few bits from an IP address is not so interesting, it’s a good excus...
When debugging code that integrates with the Claris FileMaker Data API, it is sometimes helpful to trace a request from your app all the way to the code of t...
When you want to debug an application in an environment which is hard to replicate locally and/or you cannot install additional software on the machine it is...
Let’s say we have two integer NumPy arrays and want to count the number of elementwise matches.
Having been asked multiple times if I can quickly compare two numeric columns from an excel file, I set up a small Jupyter notebook (and an R script) to show...
The following code snippets should serve as an (incomplete) cheat sheet for accessing NumPy arrays. All examples expect an import numpy as np.
This is an old post. You may also be interested in accessing your FileMaker database via the new Data API. I wrote a Python wrapper to make it easier: python...
A few hours ago FileMaker 17 was released, and with it an updated Data API, which is now finally out of trial phase.
An exploration of the fmp12 file format and account and password storage
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
Writing data to the output buffer before deciding that the response to the current HTTP request should actually be a redirect (for example when an unauthenti...
Write-up of “Netmon” from Hack The Box
When trying to read an Excel file into a Pandas DataFrame gives you the following error, the issue might be that you are dealing with a password protected Ex...
Micro tutorial: select rows of a Pandas DataFrame that match a (partial) string.
Having been asked multiple times if I can quickly compare two numeric columns from an excel file, I set up a small Jupyter notebook (and an R script) to show...
This is an old post. You may also be interested in accessing your FileMaker database via the new Data API. I wrote a Python wrapper to make it easier: python...
How unpickling untrusted data can lead to remote code execution.
Pivot by setting up a portproxy between your machine and a machine in another network using “netsh interface portproxy add v4tov4 listenport= connectport= co...
Using the Invoke-Command Cmlet, you can execute a script block in the security context of a different user.
A few examples on how to do http requests via PowerShell’s Invoke-Webrequest cmdlet.
Write-up of “Buff” from Hack The Box
Pivot by setting up a portproxy between your machine and a machine in another network using “netsh interface portproxy add v4tov4 listenport= connectport= co...
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
Let’s say you have a (Windows or Linux) EC2 instance in a private subnet and want to access it interactively. There are several ways to do this.
A few hours ago FileMaker 17 was released, and with it an updated Data API, which is now finally out of trial phase.
Write-up of “TartarSauce” from Hack The Box
Write-up of “Bart” from Hack The Box
Regular expressions are often used to check if a user input should be allowed for a specific action or lead to an error as it might be malicious.
How unpickling untrusted data can lead to remote code execution.
Back in the dark ages the FileMaker Server admin console (then Java Web Start) allowed you to remotely upload new fmp12 files to the server. For some reason ...
Regular expressions are often used to check if a user input should be allowed for a specific action or lead to an error as it might be malicious.
Description of a XXE vulnerability in the Claris FileMaker Platform
Write-up of “Fuse” from Hack The Box
Micro tutorial: SQL select the count of related records and sort by it.
Write-up of “Cronos” from Hack The Box
Write-up of “Buff” from Hack The Box
Setting up a DNS tunnel and SOCKS proxy to send/receive data via restricted networks.
If you want to debug/inspect/analyze SSL/TLS traffic made by curl, you can easily do so by setting the environment variable SSLKEYLOGFILE to a file path of y...
Description of a XXE vulnerability in the Claris FileMaker Platform
Write-up of “Kotarak” from Hack The Box
A couple of months ago I built a JavaScript application that allows adding points and labels to locations on a building floorplan. The whole canvas (not HTML...
Write-up of “Fuse” from Hack The Box
How unpickling untrusted data can lead to remote code execution.
AWS Lambda is Amazon’s “serverless” compute platform that basically lets you run code without thinking (too much) of servers. I used Lambda in the past, thou...
Having been asked multiple times if I can quickly compare two numeric columns from an excel file, I set up a small Jupyter notebook (and an R script) to show...
I recently had the problem of needing to establish a connection to a server behind a VPN that was in the same subnet as the network I was connecting from. Ev...
There are multiple reasons why you would want to share a VPN connection from your Mac with another device. Maybe you have to install a proprietary VPN client...
Learn how to handle interrupts and other signals in Python.
Description of the issues I found in the implementation of various Admin Console restriction settings
Say you want to allow a non-root user on Linux to execute a couple of scripts as root or another user with more privileges. A common way of doing this is to ...
Let’s say you have a (Windows or Linux) EC2 instance in a private subnet and want to access it interactively. There are several ways to do this.
In a recent project I needed to anonymize IP addresses in tracking data. While masking a few bits from an IP address is not so interesting, it’s a good excus...
When you have set up your infrastructure with Terraform and then do any change to the user_data of a EC2 instance, Terraform will detect the change and gener...
Introduction on how to write infrastructure resource definitions and execute them using Terraform.
Write-up of “Tabby” from Hack The Box
Write-up of “Kotarak” from Hack The Box
Write-up of “Jerry” from Hack The Box
After having neglected my blog over the last few months, I want to start posting more frequently again (New Year’s resolutions and all that).
I recently had the problem of needing to establish a connection to a server behind a VPN that was in the same subnet as the network I was connecting from. Ev...
There are multiple reasons why you would want to share a VPN connection from your Mac with another device. Maybe you have to install a proprietary VPN client...
I recently bought an Intel NUC8i7HVK to work as an ESXi host. In this post I walk you through the process of installation and initial setup.
Tutorial on creating Bokeh plots with an AJAX data source, served from an existing Flask app.
Write-up of “Jerry” from Hack The Box
Tutorial on setting up your Flask application to run on macOS with WSGI
Description of the issues I found in the implementation of various Admin Console restriction settings
Let’s say you have a (Windows or Linux) EC2 instance in a private subnet and want to access it interactively. There are several ways to do this.
Description of a XXE vulnerability in the Claris FileMaker Platform
A couple of days ago I took the exam for the CRTP certification by Pentester Academy. In this review I want to give a quick overview of the course contents, ...
Write-up of “Buff” from Hack The Box
Write-up of “Fuse” from Hack The Box
Recently, I needed to transfer a binary over a very limited network connection allowing only small packets to be sent. I ended up splitting the binary into p...
Write-up of “Bart” from Hack The Box
Write-up of “Netmon” from Hack The Box
Using the Invoke-Command Cmlet, you can execute a script block in the security context of a different user.
Write-up of “Jerry” from Hack The Box
Pivot by setting up a portproxy between your machine and a machine in another network using “netsh interface portproxy add v4tov4 listenport= connectport= co...
A few examples on how to do http requests via PowerShell’s Invoke-Webrequest cmdlet.
Have you ever wondered how a file in a file listing is shown with size 0 bytes but can still contain data? Or maybe wondered where all that meta data is stor...
Today I needed to debug a scheduled script and test its behavior when run in the Windows Local System account instead of my regular domain user’s (this was o...
Back in the dark ages the FileMaker Server admin console (then Java Web Start) allowed you to remotely upload new fmp12 files to the server. For some reason ...
If you want to debug/inspect/analyze SSL/TLS traffic made by curl, you can easily do so by setting the environment variable SSLKEYLOGFILE to a file path of y...
Write-up of “TartarSauce” from Hack The Box
Description of the issues I found in the implementation of various Admin Console restriction settings
Description of a XXE vulnerability in the Claris FileMaker Platform
Description of a XXE vulnerability in the Claris FileMaker Platform
I was recently asked if it’s possible to post a message to a Slack channel whenever the state of a monitor on allgood.systems changes (for example, a web ser...
Since the launch of allgood.systems you were able to monitor if your background jobs, scheduled tasks, cron jobs, etc. were running whenever you expected the...
Tutorial about monitoring FileMaker scheduled scripts for uptime
TL;DR Want to monitor your websites or get notified when your cron jobs or scheduled tasks are not running when they are supposed to run? Check out https://a...
Write-up of “Kotarak” from Hack The Box
How to get current readings from your Aranet4 CO2 monitor
If you are getting UnicodeErrors when reading/manipulating files using a Python script launched by a LaunchAgent or crontab, the problem might lie in the “cu...
Even though launchd has been around for quite some time now, I was still using crontab for scheduling some of my scripts until recently. Since launchd Launch...
If you are getting UnicodeErrors when reading/manipulating files using a Python script launched by a LaunchAgent or crontab, the problem might lie in the “cu...
Even though launchd has been around for quite some time now, I was still using crontab for scheduling some of my scripts until recently. Since launchd Launch...
Even though launchd has been around for quite some time now, I was still using crontab for scheduling some of my scripts until recently. Since launchd Launch...
Recently, I wanted to watch a couple of log files for new entries and have them sent to an http endpoint for collection and later analysis. I did a quick res...
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
Learn how to handle interrupts and other signals in Python.
Description of a XXE vulnerability in the Claris FileMaker Platform
Use host.docker.internal to connect to your host machine.
If you are getting UnicodeErrors when reading/manipulating files using a Python script launched by a LaunchAgent or crontab, the problem might lie in the “cu...
Even though launchd has been around for quite some time now, I was still using crontab for scheduling some of my scripts until recently. Since launchd Launch...
I recently had the problem of needing to establish a connection to a server behind a VPN that was in the same subnet as the network I was connecting from. Ev...
Tutorial on setting up your Flask application to run on macOS with WSGI
There are multiple reasons why you would want to share a VPN connection from your Mac with another device. Maybe you have to install a proprietary VPN client...
I recently came across an nginx server that had a vulnerable alias configuration which allowed anyone to read files outside the intended directory. In the fo...
A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.
A few hours ago FileMaker 17 was released, and with it an updated Data API, which is now finally out of trial phase.
After having neglected my blog over the last few months, I want to start posting more frequently again (New Year’s resolutions and all that).
Write-up of “TartarSauce” from Hack The Box
Write-up of “TartarSauce” from Hack The Box
Currently, there’s a lot of hype around the behavior of Python’s tarfile module for extracting archives. In short: tarfile will not sanitize filenames in arc...
Entering a long shell command and then moving the cursor around to correct parts of it always felt a bit clunky to me. I remembered some of the <ctrl>/...
Write-up of “Kotarak” from Hack The Box
When trying to read an Excel file into a Pandas DataFrame gives you the following error, the issue might be that you are dealing with a password protected Ex...