Skip to content

Instantly share code, notes, and snippets.


Ishan Jain ishanjain28

View GitHub Profile
gmurdocca /
Last active Jan 23, 2023
Circumventing Deep Packet Inspection with Socat and rot13

Circumventing Deep Packet Inspection with Socat and rot13

I have a Linux virtual machine inside a customer's private network. For security, this VM is reachable only via VPN + Citrix + Windows + a Windows SSH client (eg PuTTY). I am tasked to ensure this Citrix design is secure, and users can not access their Linux VM's or other resources on the internal private network in any way outside of using Citrix.

The VM can access the internet. This task should be easy. The VM's internet gateway allows it to connect anywhere on the internet to TCP ports 80, 443, and 8090 only. Connecting to an internet bastion box on one of these ports works and I can send and receive clear text data using netcat. I plan to use good old SSH, listening on tcp/8090 on the bastion, with a reverse port forward configured to expose sshd on the VM to the public, to show their Citrix gateway can be circumvented.

Rejected by Deep Packet Inspection

I hit an immediate snag. The moment I try to establish an SSH or SSL connection over o

AHaymond / gist:25587a93094fdffdcdbfeaa90f21337c
Last active Jan 14, 2023
Setting up Arch Linux LXC on ProxMox
View gist:25587a93094fdffdcdbfeaa90f21337c
1. Edit the mirror list located at /etc/pacman.d/mirrorlist and uncomment a preferred mirror (preferrably closest to you)
2. Initialize Pacman GPG Keys
- $> pacman-key --init
- $> pacman-key --populate archlinux
- $> pacman-key --refresh-keys -u --keyserver
*The use of the --keyserver flag is due to an error that currently occurs when using the default keyserver
3. Reinstall Arch keyring
- $> pacman -S archlinux-keyring
4. Install Yay (if desired)
- Create a user (you cannot run makepkg as root, you must be signed in as a user)
Matthias247 /
Created May 28, 2019
Async/Await - The challenges besides syntax - Cancellation

Async/Await - The challenges besides syntax - Cancellation

This is the second article in a series of articles around Rusts new async/await feature. The first article about interfaces can be found here.

In this part of the series we want to a look at a mechanism which behaves very different in Rust than in all other languages which feature async/await support. This mechanism is Cancellation.

flipace / gdpr-list.json
Last active Jun 6, 2020
List of URLs where you can request your data according to GDPR/DSGVO laws
View gdpr-list.json
{ "name": "Amazon", "url": "", "note": "Select, in this order: 'Digitale Dienste' -> 'Datenauskunft beantragen' -> 'Datenauskunft für eine spätere Zusendung beantragen' -> 'Daten aus allen Kategorien anfordern' -> Namen eingeben und Nachricht vervollständigen. -- Amazon Support Staff will review your request and send you an email, asking about a postal address. If you don't answer to their mail, your request won't be fulfilled." },
{ "name": "McDonalds", "url": "" },
{ "name": "", "url": "" },
{ "name": "Spotify", "url": "" },
{ "name": "Google", "url": "" },
{ "name": "PlayStation", "email": "" },
{ "name": "Humble Bundle", "email": "" },
{ "name": "REWE Group AT", "email": "" },
{ "name": "BILLA", "url": "https:
View gist:0f0fdf8f0de95211bde95dddbd7ab89d

Setting up Vim as your Go IDE

The final IDE


I've been wanting to do a serious project in Go. One thing holding me back has been a my working environment. As a huge PyCharm user, I was hoping the Go IDE plugin for IntelliJ IDEA would fit my needs. However, it never felt quite right. After a previous experiment a few years ago using Vim, I knew how powerful it could be if I put in the time to make it so. Luckily there are plugins for almost anything you need to do with Go or what you would expect form and IDE. While this is no where near comprehensive, it will get you writing code, building and testing with the power you would expect from Vim.

Getting Started

I'm assuming you're coming with a clean slate. For me this was OSX so I used MacVim. There is nothing in my config files that assumes this is the case.

braian87b /
Last active Jan 27, 2023
How to setup a Dumb AP, Wired backbone for OpenWRT / LEDE
stevedonovan /
Created Apr 14, 2017
An ergonomic way of saying Rc<RefCell>
use std::rc::Rc;
use std::cell::{RefCell,Ref, RefMut};
use std::ops::Deref;
use std::fmt;
struct Shared<T> {
v: Rc<RefCell<T>>