<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[ExclusionZone]]></title><description><![CDATA[Cheeki Breeki]]></description><link>http://exclusionzone.io/</link><image><url>http://exclusionzone.io/favicon.png</url><title>ExclusionZone</title><link>http://exclusionzone.io/</link></image><generator>Ghost 5.79</generator><lastBuildDate>Sun, 19 Apr 2026 10:58:48 GMT</lastBuildDate><atom:link href="http://exclusionzone.io/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[OTG PiZero]]></title><description><![CDATA[<!--kg-card-begin: html-->
<p>I dug out this old step by step I used to use for setting up Raspberry Pi Zeros as OTG devices. I had lost this for a while, so rather than filing it away somewhere that I may lose track of it again, I figured I&#x2019;d share it</p>]]></description><link>http://exclusionzone.io/otg-pizero-2/</link><guid isPermaLink="false">65cab19766fa3d000116726e</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Sun, 11 Apr 2021 23:43:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html-->
<p>I dug out this old step by step I used to use for setting up Raspberry Pi Zeros as OTG devices. I had lost this for a while, so rather than filing it away somewhere that I may lose track of it again, I figured I&#x2019;d share it here. This may be a bit dated as I think I wrote this a couple years back. This was pieced together from other guides, but I don&#x2019;t recall where from. I can&#x2019;t take full credit for all of this.</p>



<p>1) Flash Raspbian to SD card</p>



<p>2) Mount SD card</p>



<p>3) <code>vim /boot/config.txt</code> add <code>dtoverlay=dwc2</code> on a new line at the end.</p>



<p>4) <code>touch /boot/ssh</code></p>



<p>5) <code>vim /boot/cmdline.txt</code> (Be careful with this file, it is very picky with its formatting! Each parameter is seperated by a single space not newlines) Insert &#x2018;modules-load=dwc2,g_ether&#x2019;after <code>rootwait</code></p>



<p>6) Unmount SD card and power on Pi</p>



<p>7) <code>sudo dmesg<br>[ 1943.306812] usb 1-12: new high-speed USB device number 14 using xhci_hcd<br>[ 1943.494324] cdc_ether 1-12:1.0 usb0: register &apos;cdc_ether&apos; at usb-0000:00:14.0-12, CDC Ethernet Device, 2e:2f:d7:3d:10:88<br>[ 1943.526965] cdc_ether 1-12:1.0 enp0s20f0u12: renamed from usb0</code></p>



<p>8) <code>sudo avahi-autoipd -D enp0s20f0u12</code></p>



<p>9) <code>avahi-resolve -n raspberrypi.local</code></p>



<p>10) <code>ip a</code> (Note the inet6 address of the device)</p>



<p>11) <code>ssh -6 -o BindAddress=fe80::ccf3:3fff:3ff3:ccc1%enp0s20f0u12 pi@raspberrypi.local</code></p>



<p>12) <code>sudo vim /etc/network/interfaces</code><br></p>



<pre class="wp-block-code"><code># Start of file (you don&apos;t need to include this line)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
    address 10.2.2.3 # IP you want to assign to the RPi
    gateway 10.2.2.2 # IP you want to assign to the ethernet port
    network 10.2.2.0
    netmask 255.255.255.0
    broadcast 10.2.2.255</code></pre>



<pre class="wp-block-preformatted">13) <code>sudo vim /etc/resolv.conf</code></pre>



<pre id="block-9ebc2a3d-91c3-439a-8aeb-4611e8b8981a" class="wp-block-code"><code>nameserver 10.2.2.2<br>nameserver 8.8.8.8<br>nameserver 8.8.4.4</code></pre>



<p>14) <code>sudo reboot</code></p>



<p>Part III: Seting up forwarding to the pi (from Arch)<br>1) First make sure your pi is still the same name as before, and also note the name of the device you intend to share internet from (for me its my ethernet adapter enp3s0) by running:</p>



<p><code>ifconfig</code></p>



<p>and checking to see if the device name shows up<br>2) Lets make sure our device is up by running:</p>



<p><code>sudo ip link set up dev enp0s20f0u12</code></p>



<p>(NOTE: make sure to change the enp020f0u12 to your device name)<br>3) Lets add the IPv4 address for the device by running</p>



<p><code>sudo ip addr add 10.2.2.2 dev enp0s20f0u12</code></p>



<p>(NOTE: again the device name&#x2026;)<br>4) Lets enable packet forwarding to the device by running</p>



<p><code>sudo sysctl net.ipv4.ip_forward=1</code></p>



<p>5) Enable the NAT for the device by running the following 3 commands, making sure to use your device id, and changing enp3s0 to be the ethernet device id that you want to share with your pi!</p>



<p><code>sudo iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE<br>sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT<br>sudo iptables -A FORWARD -i enp0s20f0u12 -o enp3s0 -j ACCEPT</code></p>



<p>6) Lets assign the ip addresses to the Pi zero by running the following 3 commands, making sure to use your device id, and changing enp3s0 to be the ethernet device id that you want to share with your pi!</p>



<p><code>sudo iptables -I INPUT -p udp --dport 67 -i enp0s20f0u12 -j ACCEPT<br>sudo iptables -I INPUT -p udp --dport 53 -s 10.2.2.0/24 -j ACCEPT<br>sudo iptables -I INPUT -p tcp --dport 53 -s 10.2.2.0/24 -j ACCEPT</code></p>



<p>Part IV: Setup a network bridge to the pi so we can effectively share our internet with the pi zero<br>1) Lets use netctl to create a network bridge by copying the example network bridge file included in the netctl package by running</p>



<p><code>sudo cp /etc/netctl/examples/bridge /etc/netctl/bridge<br>cd /etc/netctl/</code></p>



<p>2) Lets modify the example network bridge to share internet between our devices, making sure to replace enp3s0 with the device id you want to share internet from and enp0s20f0u12 with the device id of your pi by running</p>



<p><code>sudo vim bridge</code></p>



<p>and changing the file to:</p>



<pre class="wp-block-code"><code># Start of file (you don&apos;t need to include this line)

Description=&quot;Example Bridge connection&quot;
Interface=br0
Connection=bridge
BindsToInterfaces=(enp3s0 enp0s20f0u12 )
IP=dhcp
## Ignore (R)STP and immediately activate the bridge
#SkipForwardingDelay=yes

# End of file (you don&apos;t need to include this line)</code></pre>



<p>Save the changes to the file&#x2026;</p>



<p>3) Now test the bridge connection using netctl by running:</p>



<p><code>sudo netctl start bridge</code></p>



<p>4) Now when we run</p>



<p><code>ifconfig</code></p>



<p>we should see our our bridge connection br0 in the output like so:</p>



<pre class="wp-block-code"><code>br0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet 192.168.0.104  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::3490:aff:f37f:fdf3  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 01:20:3f:27:1f:ff  txqueuelen 1000  (Ethernet)
        RX packets 34442  bytes 47881180 (45.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 29738  bytes 4640292 (4.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</code></pre>



<p>If you don&#x2019;t see this, something went wrong, so try hunting it down, or if you really can&#x2019;t find it on your own, as a question and be sure to post exactly what you did. Please don&#x2019;t waste my time without first really looking into it on your own first (at least spend a few hours debugging on your own&#x2026;).</p>



<p>5) Let&#x2019;s try ssh&#x2019;ing into that ipv4 address (inet):</p>



<p><code>ssh pi@192.168.0.104</code></p>



<p>Note: replace the 192.168.0.104 with whatever your inet address is.</p>



<p>6) If you can, then your pi now also has whatever internet connection your ethernet device has. Congrats! Now to ensure we can ssh into raspberrypi.local instead of having to specify the ip, run:</p>



<p><code>sudo avahi-resolve -n raspberrypi.local</code></p>



<p>Note: this may not always be necessary</p>



<p>7) Now we can ssh like normal:</p>



<p><code>ssh pi@raspberrypi.local</code></p>



<p>8) Now if you intend on leaving your pizero plugged into the same usb port and want to be able to ssh into it without having to do any setup when you reconnect or reboot, run:</p>



<p><code>sudo netctl enable bridge</code></p>



<p>Otherwise, if you intend on reconnecting the same pi device with the same operating system periodically, just run the</p>



<p><code>sudo netctl start bridge</code></p>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[zerotier - The Dorknet rises]]></title><description><![CDATA[<!--kg-card-begin: html-->
<p>Some friends and I have been toying with setting up our own little mesh VPN dark net of sorts. Below are the first baby steps I&#x2019;ve been able to take in setting up ZeroTier on OPNSense. A few things this configuration enables are as follows.</p>



<ul><li>A self hosted</li></ul>]]></description><link>http://exclusionzone.io/zerotier-the-dorknet-rises-2/</link><guid isPermaLink="false">65cab19766fa3d000116726d</guid><category><![CDATA[DarkNet]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Networking]]></category><category><![CDATA[OpSec]]></category><dc:creator><![CDATA[John]]></dc:creator><pubDate>Tue, 10 Dec 2019 07:22:58 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html-->
<p>Some friends and I have been toying with setting up our own little mesh VPN dark net of sorts. Below are the first baby steps I&#x2019;ve been able to take in setting up ZeroTier on OPNSense. A few things this configuration enables are as follows.</p>



<ul><li>A self hosted ZeroTier controller through ZTNCUI</li><li>Bridging the ZeroTier subnet to locally provisioned devices without the need to have the ZeroTier client installed.</li><li>NATing of other local subnets which are not natively in the ZeroTier network to be able to mostly transparently route to hosts in the ZeroTier network.</li><li>Afformentioned NATing allows port forwarding to these local hosts not natively in the ZeroTier network through the network bridge.</li><li>Easy to remember IP allocation bounds.</li></ul>



<p><strong>01 Set up a VM to host ZTNCUI.</strong><br>I set up a VM with Debian10.</p>



<p><strong>01 A Install OS.</strong><br>The OS install is outside the scope of this guide, but below are some items to ensure are configured.<br><br>Give the VM at least 32 GB storage for scratch space and future growth.<br><br>Set up an administrative user other than root.<br><br>If you have a local domain set the domain name. The domain I use in my internal LAN is just &#x201C;lan&#x201D;.<br><br>Set strong passwords.</p>



<p><strong>01 B If you used Debian then set up sudo access for the admin user.</strong><br><code>root@Deb10:~# sed -i &quot;s/$(grep sudo /etc/group)/$(grep sudo /etc/group)/g&quot; /etc/group</code></p>



<p><strong>01 C Again if you used Debian edit apt sources to exclude the install cd/dvd.</strong><br><code>root@Deb10:~# grep -i &quot;s/deb cdrom/#deb cdrom/g&quot; /etc/apt/sources.list</code></p>



<p><strong>01 D Update OS, install some requisites and quality of life packages then reboot.</strong><br><code>root@Deb10:~# apt update &amp;&amp; apt full-upgrade -y<br>root@Deb10:~# apt install vim curl wget dnsutils<br>root@Deb10:~# /sbin/reboot</code></p>



<p><strong>01 E Install ZeroTier and ZTNCUI.</strong><br><a href="https://www.zerotier.com/download?ref=exclusionzone.io">https://www.zerotier.com/download</a><br><a href="https://key-networks.com/ztncui?ref=exclusionzone.io">https://key-networks.com/ztncui</a><br><code>john@Deb10:~# sudo curl -s &apos;https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg&apos; | gpg --import &amp;&amp; if z=$(curl -s &apos;https://install.zerotier.com/&apos; | gpg); then echo &quot;$z&quot; | sudo bash; fi<br>john@Deb10:~# sudo apt-get install ./ztncui_0.5.8_amd64.deb<br>john@Deb10:~# sudo sh -c &quot;echo &apos;HTTPS_PORT=3443&apos; &gt; /opt/key-networks/ztncui/.env&quot;<br>john@Deb10:~# sudo systemctl restart ztncui</code></p>



<p><strong>01 F Log onto ZTNCUI and change the default credentials.</strong><br>In a web browser navigate to https://127.0.0.1:3443 on the ZTNCUI host.<br><br>Log on with the following credentials.<br>UserName: &#x201C;admin&#x201D;<br>PassWord: &#x201C;password&#x201D;<br><br>Change the password to something more secure.<br><br>Log out then log back in.</p>



<p><strong>01 G Create the ZeroTier Network and define the subnet.</strong><br>In the top panel select &#x201C;Add network&#x201D;.<br><br>Define the network name. In this example we will use the name &#x201C;DorkNet&#x201D; to refer to our example ZeroTier network.<br><br>Select &#x201C;Create Network&#x201D;<br><br>Make note of the Network ID.<br><br>Select &#x201C;easy setup&#x201D;<br><br>Define your subnet and IP assignment pools. In this example we will use the following values. Some further explanation to follow in next steps.<br><br>&#x201C;Network address in CIDR notation&#x201D; = &#x201C;10.222.0.0/16&#x201D;<br>&#x201C;Start of IP assignment pool&#x201D; = &#x201C;10.222.201.1&#x201D;<br>&#x201C;End of IP assignment pool&#x201D; = &#x201C;10.222.255.254&#x201D;</p>



<p><strong>02 Log onto your OPNSense router as an administrative user.</strong></p>



<p><strong>02 A Install and activate the ZeroTier plugin then add the previously created DorkNet network.</strong><br><br>Navigate: System &gt; Firmware &gt; Plugins<br><br>Scroll to the bottom and click the &#x201C;+&#x201D; to install the ZeroTier Plugin.<br><br>Navigate: VPN &gt; ZeroTier &gt; Settings<br><br>Select the &#x201C;Enabled&#x201D; check box.<br><br>Navigate: Networks<br><br>Select &#x201C;+&#x201D;<br><br>Fill out the &#x201C;Network ID&#x201D; and &#x201C;Local Description&#x201D;.<br><br>Select &#x201C;Save&#x201D;<br><br>Select &#x201C;i&#x201D; button for the newly added network.<br><br>Make note of the first space delimited string. This is the Leaf ID of the bridge router.<br><br>Select the check box under the column &#x201C;Enabled&#x201D; to enable the network.</p>



<p><strong>02 B Approve the OPNSense VPN client and assign it a static IP.</strong><br>Open the ZTNCUI WebUI.<br><br>Navigate: Networks &gt; DorkNet / members<br><br>Identify the Leaf ID of the newly enabled OPNSense ZeroTier client / bridge router.<br><br>Select &#x201C;Authorized&#x201D; and &#x201C;Active Bridge&#x201D;.<br><br>Wait some moments and select the &#x201C;Refresh&#x201D; button. An IP address should be assigned to this leaf.<br><br>Select on the IP address which has been assigned to this leaf.<br><br>Identify a new static IP address for this bridge. Since I am using a large(ish) /16 subnet for the DorkNet I chose to break the bridge IPs into /24 subnets so that each bridge could then have roughly a /24 subnet of natively routable internal clients(excluding NAT clients) and be very easy to remember where the IP allocation bounds lay. Below are some example IP allocations for this scheme.<br><br>1st Bridge Router IP: 10.222.1.1<br>1st Bridge Client IPs: 10.222.1.{2-254}<br><br>2nd Bridge Router IP: 10.222.2.1<br>2nd Bridge Client IPs: 10.222.2.{2-254}<br><br>17th Bridge Router IP: 10.222.17.1<br>17th Bridge Client IPs: 10.222.17.{2-254}<br><br>Define the IP Address for this Bridge Router then click the &#x201C;+&#x201D; to assign it.<br><br>Select the trash can icon next to the old IP allocation to delete it.<br><br>Select &#x201C;Back&#x201D;.<br><br>Open the OPNSense WebUI.<br><br>Navigate: VPN &gt; ZeroTier &gt; Overview &gt; Networks<br><br>Select the down arrow next to the DorkNet Network ID to expand it.<br><br>Validate the IP allocation is accurate. If not then you may want to try cycling the ZeroTier plugin.</p>



<p><strong>02 C Set up the ZeroTier interfaces and bridge interface</strong><br>Navigate: Interfaces &gt; Assignments<br><br>At the bottom of the screen next to &#x201C;New interface:&#x201D; select the drop down box and select the interface starting with &#x201C;zt&#x201D;.<br><br>Select the &#x201C;+&#x201D; button then click &#x201C;save&#x201D;.<br><br>Under the column &#x201C;Interface&#x201D; click on the name of the newly assigned interface for the &#x201C;zt&#x201D; &#x201C;NIC&#x201D;.<br>Select &#x201C;Enable Interface&#x201D;.<br>Select &#x201C;Prevent interface removal&#x201D;.<br>Add &#x201C;ZT_DN_GW&#x201D; to the &#x201C;Description&#x201D; field.<br>Select &#x201C;Save&#x201D;.<br><br>Navigate: Interfaces &gt; Assignments<br><br>At the bottom of the screen next to &#x201C;New interface:&#x201D; select the drop down box and select the interface you wish to use as the internal LAN interface to route to the clients and servers hosted locally.<br><br>Select the &#x201C;+&#x201D; button then click &#x201C;save&#x201D;.<br><br>Under the column &#x201C;Interface&#x201D; click on the name of the newly assigned interface for the LAN &#x201C;NIC&#x201D;.<br>Select &#x201C;Enable Interface&#x201D;.<br>Select &#x201C;Prevent interface removal&#x201D;.<br>Add &#x201C;ZT_DN_LAN&#x201D; to the &#x201C;Description&#x201D; field.<br>Select &#x201C;Save&#x201D;.<br><br>Navigate: Interfaces &gt; Other Types &gt; Bridge<br><br>Select &#x201C;+ Add&#x201D;.<br><br>Under the &#x201C;Member interfaces&#x201D; drop down box select the &#x201C;ZT_DN_GW&#x201D; and &#x201C;ZT_DN_LAN&#x201D; interfaces.<br>Add &#x201C;ZT_DN_RB&#x201D; to the &#x201C;Description&#x201D; field.<br>Select &#x201C;Save&#x201D;.<br><br>Navigate Interfaces &gt; Assignments<br><br>At the bottom of the screen next to &#x201C;New interface:&#x201D; select the drop down box and select the bridge interface just created. It should be something like &#x201C;bridge1&#x201D;.<br><br>Select the &#x201C;+&#x201D; button then click &#x201C;save&#x201D;.<br><br>Under the column &#x201C;Interface&#x201D; click on the name of the newly assigned interface for the Bridge &#x201C;NIC&#x201D;.<br>Select &#x201C;Enable Interface&#x201D;.<br>Select &#x201C;Prevent interface removal&#x201D;.<br>Add &#x201C;ZT_DN_BR&#x201D; to the &#x201C;Description&#x201D; field.<br>Select &#x201C;Static IPv4&#x201D; as the &#x201C;IPv4 Configuration Type&#x201D;.<br>Add the Bridge Router IP previously assigned in the ZTNCUI under &#x201C;IPv4 address&#x201D;. <br>Select &#x201C;Save&#x201D;.</p>



<p><strong>02 D Modify relevant tunables</strong><br>Navigate: Settings &gt; Tunables<br><br>Modify &#x201C;net.link.bridge.pfil_member&#x201D; to be &#x201C;0&#x201D;<br>Modify &#x201C;net.link.bridge.pfil_bridge&#x201D; to be &#x201C;1&#x201D;</p>



<p><strong>02 E Define relevant firewall pass rule</strong><br>Navigate: Firewall &gt; Rules &gt; ZT_DN_BR</p>



<p>Click &#x201C;+ Add&#x201D;</p>



<p>&#x201C;Action&#x201D; = &#x201C;Pass&#x201D;<br>
&#x201C;Quick&#x201D; = &#x201C;Unselected&#x201D;<br>
&#x201C;Interface&#x201D; = &#x201C;ZT_DN_BR&#x201D;<br>
&#x201C;Direction&#x201D; = &#x201C;in&#x201D;<br>
&#x201C;TCP/IP Version&#x201D; = &#x201C;IPv4&#x201D;<br>
&#x201C;Protocol&#x201D; = &#x201C;Any&#x201D;<br>
&#x201C;Source&#x201D; = &#x201C;ZT_DN_BR net&#x201D;<br>
&#x201C;Destination&#x201D; = &#x201C;ZT_DN_BR net&#x201D;<br>
Select &#x201C;Save&#x201D;.</p>



<p><strong>02 F Optional set up NAT for other local subnets into the DorkNet.</strong><br>Navigate: Firewall &gt; NAT &gt; Outbound<br><br>Select &#x201C;Hybrid outbound NAT rule generation&#x201D;<br>Select &#x201C;Save&#x201D;<br><br>Select &#x201C;+ Add&#x201D;<br><br>&#x201C;Interface&#x201D; = &#x201C;ZT_DN_BR&#x201D;<br>&#x201C;TCP/IP Version&#x201D; = &#x201C;IPv4&#x201D;<br>&#x201C;Protocol&#x201D; = &#x201C;any&#x201D;<br>&#x201C;Source address&#x201D; =  Whatever LAN subnet you may have for your other internal traffic<br>&#x201C;Source port&#x201D; = &#x201C;any&#x201D;<br>&#x201C;Destination address&#x201D; = &#x201C;ZT_DN_BR net&#x201D;<br>&#x201C;Destination port&#x201D; = &#x201C;any&#x201D;<br>&#x201C;Translation / target&#x201D; = &#x201C;Interface address&#x201D;<br>Select &#x201C;Save&#x201D;</p>



<p>Thats it, now go and help some of your friends get in on the fun.</p>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[PlugPi, Now with 90% less fire hazard]]></title><description><![CDATA[<!--kg-card-begin: html-->
<p>I&#x2019;m still waiting on the first print of the 3D printed base I drafted to come in to test fit before I work on the internal chassis model more, but in the mean time I put together a much safer version of the PlugPi with proper heat shrink</p>]]></description><link>http://exclusionzone.io/plugpi-now-with-90-less-fire-hazard-2/</link><guid isPermaLink="false">65cab19766fa3d000116726c</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Fri, 12 Apr 2019 16:06:34 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html-->
<p>I&#x2019;m still waiting on the first print of the 3D printed base I drafted to come in to test fit before I work on the internal chassis model more, but in the mean time I put together a much safer version of the PlugPi with proper heat shrink tubing rather than hot glue and duct tape. A reddit comment pointed out that power creates heat and things like hot glue and duct tape get soft when heat is introduced. Please don&#x2019;t use hot glue, but instead spring for the heat shrink tubing. I don&#x2019;t want you to burn your house down.</p>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="768" src="http://exclusionzone.io/content/images/wordpress/2019/04/IMG_20190412_115612_HDR-1024x768.jpg" alt class="wp-image-205" srcset="http://exclusionzone.io/content/images/wordpress/2019/04/IMG_20190412_115612_HDR-1024x768.jpg 1024w, http://exclusionzone.io/content/images/wordpress/2019/04/IMG_20190412_115612_HDR-300x225.jpg 300w, http://exclusionzone.io/content/images/wordpress/2019/04/IMG_20190412_115612_HDR-768x576.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px"></figure>



<figure class="wp-block-image"><img loading="lazy" width="768" height="1024" src="http://exclusionzone.io/content/images/wordpress/2019/04/IMG_20190412_115830_HDR-768x1024.jpg" alt class="wp-image-206" srcset="http://exclusionzone.io/content/images/wordpress/2019/04/IMG_20190412_115830_HDR-768x1024.jpg 768w, http://exclusionzone.io/content/images/wordpress/2019/04/IMG_20190412_115830_HDR-225x300.jpg 225w" sizes="(max-width: 768px) 100vw, 768px"></figure>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[PlugPi]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><strong>WARNING: This project deals with hacking on mains AC power. Please proceed carefully.</strong></p>
<p>I&apos;ve wanted an inconspicuous wall wart style raspberry pi case / enclosure for the longest time, but there aren&apos;t many options out there. I&apos;ve seen the PiPlug developed by the dude that</p>]]></description><link>http://exclusionzone.io/plugpi-2/</link><guid isPermaLink="false">65cab19766fa3d000116726b</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Sat, 06 Apr 2019 06:58:47 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><strong>WARNING: This project deals with hacking on mains AC power. Please proceed carefully.</strong></p>
<p>I&apos;ve wanted an inconspicuous wall wart style raspberry pi case / enclosure for the longest time, but there aren&apos;t many options out there. I&apos;ve seen the PiPlug developed by the dude that runs <a href="https://n-o-d-e.net/piplug2b.html?ref=exclusionzone.io">n-o-d-e.net</a>, but it wasn&apos;t quite what I was looking for. After some research; though, I think I&apos;ve hit on the just the right ingredients to easily build out very sleek and inconspicuous cases.</p>
<p>These are links to the components I landed on.</p>
<p>Case:<br>
<a href="https://www.polycase.com/pm2314?ref=exclusionzone.io">https://www.polycase.com/pm2314</a><br>
USB Chargers:<br>
<a href="https://www.amazon.com/gp/product/B076C6PW2V?ref=exclusionzone.io">https://www.amazon.com/gp/product/B076C6PW2V</a><br>
16 AWG Stranded Wire:<br>
<a href="https://www.amazon.com/gp/product/B0746HRVZP?ref=exclusionzone.io">https://www.amazon.com/gp/product/B0746HRVZP</a><br>
Assorted Heat Shrink:<br>
<a href="https://www.amazon.com/gp/product/B0771K1Z7Q?ref=exclusionzone.io">https://www.amazon.com/gp/product/B0771K1Z7Q</a><br>
30mm Heat Shrink Tubing:<br>
<a href="https://www.amazon.com/gp/product/B00MJVQP5C?ref=exclusionzone.io">https://www.amazon.com/gp/product/B00MJVQP5C</a><br>
Reversible Right Angle Micro USB Cables:<br>
<a href="https://www.amazon.com/gp/product/B07CBTVR8G?ref=exclusionzone.io">https://www.amazon.com/gp/product/B07CBTVR8G</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Here is one of the USB power supplies ripped apart next to an intact one. These things seem to be the best way to get cheap clean power in a small form factor. There are some other appealing options like the RAC05-05SK that are a bit cleaner and probably safer than cannibalizing a USB charger, but at 3x the price I decided I&apos;d go this route.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img1-1.jpg" class="kg-image" alt loading="lazy" width="768" height="1024" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img1-1.jpg 600w, http://exclusionzone.io/content/images/2022/01/img1-1.jpg 768w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>As you can see the Raspberry Pi and this power adapter board sit nicely in this little project enclosure.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img2-1.jpg" class="kg-image" alt loading="lazy" width="1024" height="768" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img2-1.jpg 600w, http://exclusionzone.io/content/images/size/w1000/2022/01/img2-1.jpg 1000w, http://exclusionzone.io/content/images/2022/01/img2-1.jpg 1024w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>Soldering to the power adapter is quite easy. The pads for the mains AC were large, and soldering the cannibalized USB cable to the USB pads was easy enough. I secured all of these wires with hot glue as well.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img3-1.jpg" class="kg-image" alt loading="lazy" width="1024" height="768" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img3-1.jpg 600w, http://exclusionzone.io/content/images/size/w1000/2022/01/img3-1.jpg 1000w, http://exclusionzone.io/content/images/2022/01/img3-1.jpg 1024w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img4-1.jpg" class="kg-image" alt loading="lazy" width="1024" height="768" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img4-1.jpg 600w, http://exclusionzone.io/content/images/size/w1000/2022/01/img4-1.jpg 1000w, http://exclusionzone.io/content/images/2022/01/img4-1.jpg 1024w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>Soldering to the poles inside the Polycase enclosure was tricky. I ruined the first one because I was hanging the soldering iron on the pole for too long and it melted the case causing it to become very unstable.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img5-1.jpg" class="kg-image" alt loading="lazy" width="1024" height="768" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img5-1.jpg 600w, http://exclusionzone.io/content/images/size/w1000/2022/01/img5-1.jpg 1000w, http://exclusionzone.io/content/images/2022/01/img5-1.jpg 1024w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>I then ripped off the little ground tab and hot glued the power adapter straight into the bottom of the enclosure. I would have used the 30mm heat shrink tubing to entirely wrap the power adapter entirely prior to securing it to the enclosure if I had actually thought about the size it for two second before impulsively hitting buy on Amazon and getting tubing that was 2x too large. I&apos;ll have it for the next iterations of this project though.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img65-1.jpg" class="kg-image" alt loading="lazy" width="768" height="1024" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img65-1.jpg 600w, http://exclusionzone.io/content/images/2022/01/img65-1.jpg 768w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>Here I just used some duct tape to keep the power adapter seperated from the Raspberry Pi. The 30mm heat shrink tubing will replace this mess in the future.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img7-1.jpg" class="kg-image" alt loading="lazy" width="768" height="1024" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img7-1.jpg 600w, http://exclusionzone.io/content/images/2022/01/img7-1.jpg 768w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>And here you can see that the USB cable can simply plug into the Pi&apos;s power port. The Pi has to sit in the enclosure at a slight angle, but it does sit in there will, and even with just a bit of wiggle room.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img8.jpg" class="kg-image" alt loading="lazy" width="1024" height="768" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img8.jpg 600w, http://exclusionzone.io/content/images/size/w1000/2022/01/img8.jpg 1000w, http://exclusionzone.io/content/images/2022/01/img8.jpg 1024w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>Finally here it is all buttoned up. Kind of boring, perfect.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="http://exclusionzone.io/content/images/2022/01/img9.jpg" class="kg-image" alt loading="lazy" width="768" height="1024" srcset="http://exclusionzone.io/content/images/size/w600/2022/01/img9.jpg 600w, http://exclusionzone.io/content/images/2022/01/img9.jpg 768w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>Prior to enclosing everything it would probably be wise to configure the Pi for remote access as all the ports are occluded with this enclosure. This is my standard headless config that I use for a base on nearly all my headless Pi based projects.</p>
<p>-1: Flash Raspbian to SD card and sync</p>
<pre><code>sudo dd if=~/Downloads/Raspbian_Image.img of=/dev/sdb bs=1M progress=status &amp;&amp; sudo sync &amp;&amp; sudo sync
</code></pre>
<p>-2: Remove and re-plug SD card if new partitions are not visible.<br>
-3: Mount SD card.</p>
<pre><code>sudo mkdir /mnt/piboot
sudo mkdir /mnt/piroot
sudo mount /dev/sdb1 /mnt/piboot
sudo mount /dev/sdb2 /mnt/piroot
</code></pre>
<p>-4: Enable SSH on boot.</p>
<pre><code>sudo touch /mnt/piboot/ssh
</code></pre>
<p>-5: Set up interfaces file to enable WiFi roaming.</p>
<pre><code>vim /mnt/piroot/etc/network/interfaces
</code></pre>
<pre><code># interfaces(5) file used by ifup(8) and ifdown(8)
Include files from /etc/network/interfaces.d:
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
auto eth0
iface eth0 inet dhcp

allow hotplug wlan0
iface wlan0 inet manual
	wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp
iface FBISurveilanceVan inet dhcp
iface BackupFBISurveilanceVan inet dhcp
iface CoffeeHouseWiFi inet dhcp
</code></pre>
<p>-6: Set up WiFi APs with priorities.</p>
<pre><code>vim /mnt/piroot/etc/wpa_supplicant/wpa_supplicant.conf
</code></pre>
<pre><code>update_config=1
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=US
ap_scan=1

network={
	ssid=&quot;FBISurveilanceVan&quot;
	psk=&quot;SecretPassword01&quot;
	id_str=&quot;FBISurveilanceVan&quot;
	scan_ssid=0
	priority=11
}

network={
	ssid=&quot;BackupFBISurveilanceVan&quot;
	psk=&quot;SecretPassword01&quot;
	id_str=&quot;BackupFBISurveilanceVan&quot;
	scan_ssid=0
	priority=10
}

network={
	ssid=&quot;CoffeeHouseWiFi&quot;
	psk=&quot;NotSoSecretPassword&quot;
	id_str=&quot;CoffeeHouseWiFi&quot;
	scan_ssid=0
	priority=9
}
</code></pre>
<p>-7: Set crontab to invoke wpa_cli scan every 5 minutes</p>
<pre><code>vim /mnt/piroot/etc/crontab
</code></pre>
<pre><code># m h  dom mon dow   command
*/5 * * * *	/usr/sbin/wpa_cli -i wlan0 scan
</code></pre>
<p>-8: Unmount SD card.</p>
<pre><code>sudo umount /mnt/piboot
sudo umount /mnt/piroot
</code></pre>
<p>-9: Plug SD card into Pi, power it on, SSH to it, and continue configuration as desired.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Raspberry Pi 3 WiFi FPV Drone Bridge]]></title><description><![CDATA[<!--kg-card-begin: html--><p>I recently got a cheap WiFi FPV drone. Specifically the Visuo XS809HW. I can&#x2019;t legally use it past line of site in the U.S., but I thought it&#x2019;d be cool to take a shot at boosting the WiFi range. Initially I installed an external antenna</p>]]></description><link>http://exclusionzone.io/raspberry-pi-3-wifi-fpv-drone-bridge-2/</link><guid isPermaLink="false">65cab19766fa3d000116726a</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Thu, 08 Mar 2018 00:15:43 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html--><p>I recently got a cheap WiFi FPV drone. Specifically the Visuo XS809HW. I can&#x2019;t legally use it past line of site in the U.S., but I thought it&#x2019;d be cool to take a shot at boosting the WiFi range. Initially I installed an external antenna which on its own will probably take the little thing out of my line of site, but I really wanted to take it a step further.</p>
<p><img loading="lazy" class="alignnone wp-image-108" src="http://exclusionzone.io/content/images/wordpress/2018/03/IMG_20180307_150940-1-292x300.jpg" alt width="426" height="438" srcset="http://exclusionzone.io/content/images/wordpress/2018/03/IMG_20180307_150940-1-292x300.jpg 292w, http://exclusionzone.io/content/images/wordpress/2018/03/IMG_20180307_150940-1-768x789.jpg 768w, http://exclusionzone.io/content/images/wordpress/2018/03/IMG_20180307_150940-1-997x1024.jpg 997w" sizes="(max-width: 426px) 100vw, 426px"></p>
<p>There are a couple cheap WiFi repeaters that can be used with pretty good results and I did buy one of them, but I really wanted to get it repeating from my 1000mw alfa with a nice 9dbi antenna to really be able to drive it out. On top of that I wanted to be able to easily take pcaps of the traffic so I can maybe work on reversing the protocols to get FPV and control native on the Pi.</p>
<p>Well I got it working with mixed results, but be warned, what follows isn&#x2019;t exactly kosher networking. It&#x2019;s not something I&#x2019;d advise implementing on a real network, or for that matter, on a drone you&#x2019;re not willing to see crash and burn.</p>
<p>The control latency is pretty good, but the FPV is pretty lossy with a full 1-2 second lag. In the future I&#x2019;m likely to try a DDWRT repeater, and I&#x2019;m considering working an angle to get my rtl8187 supported on LineageOS on my Pi via a custom kernel build or chrooted nix so I can run the XSW UFO app natively with the high power card and high gain antenna. Thats for a later day though, so lets begin with what we&#x2019;ve got now.</p>
<p>Everything beginning with &#x201C;pi#&#x201D; is to be run on the Pi&#x2019;s shell. Boxes following &#x201C;CONFIG:&#x201D; are inside a config file.</p>
<p>Starting with a fresh install of Raspbian Stretch lite install all updates and the requisite softwares. I use vim so if you like another editor then use that. Unless it&#x2019;s emacs then you can just go suck an egg. &#x1F61B; If you&#x2019;re not a nix nerd then you should probably use the nano editor instead of vim.</p>
<pre>pi# sudo apt update &amp;&amp; sudo apt full-upgrade
pi# sudo apt install vim dnsmasq hostapd parprouted avahi-daemon
</pre>
<p>Generate network interface names based on their mac addresses. This way even if one wireless card is brought up before the other during boot the config files wont need to be changed because the cards swapped the wlan0 and wlan1 names.</p>
<pre>pi# sudo rm /etc/systemd/network/99-default.link
pi# sudo vim /etc/systemd/network/99-default.link
</pre>
<p>CONFIG:</p>
<pre>[Link]
NamePolicy=kernel database onboard slot path mac
MACAddressPolicy=persistent
</pre>
<p>Reboot the Pi.</p>
<pre>pi# sudo reboot
</pre>
<p>After the device reboots ensure both of your WiFi devices are plugged in and run.</p>
<pre>pi# ifconfig
</pre>
<p>You should see something similar to the following picture. The device names beginning with wlx are what you want to take note of. These are the names with which we will be addressing the WiFi cards in the following config files. If you&#x2019;re unsure which card is which then just unplug one of them and run ifconfig again. The one that is still plugged in shows up. For the rest of this tutorial I will refer to the wired NIC as enx0 the card connecting to the drone as wlx0 and the card broadcasting the local network as wlx1, but you will need to use your device names.<br>
<img loading="lazy" class="alignnone  wp-image-160" src="http://exclusionzone.io/content/images/wordpress/2018/03/ifconfig-1-300x284.png" alt width="464" height="440" srcset="http://exclusionzone.io/content/images/wordpress/2018/03/ifconfig-1-300x284.png 300w, http://exclusionzone.io/content/images/wordpress/2018/03/ifconfig-1-768x726.png 768w, http://exclusionzone.io/content/images/wordpress/2018/03/ifconfig-1.png 910w" sizes="(max-width: 464px) 100vw, 464px"><br>
Edit your /etc/network/interfaces file to reflect the following. I just delete everything in there and use the following config. If your drone broadcasts a secured network then see this link and make changes as appropriate. <a href="https://learn.adafruit.com/adafruits-raspberry-pi-lesson-3-network-setup/setting-up-wifi-with-occidentalis?ref=exclusionzone.io">Adafruit WiFi Connection</a></p>
<pre>pi# sudo vim /etc/network/interfaces
</pre>
<p>CONFIG:</p>
<pre>auto lo
iface lo inet loopback

auto enx0
iface enx0 inet dhcp

auto wlx0
allow-hotplug wlx0
iface wlx0 inet dhcp
    wireless-essid Your-Drones-essid-Here
    post-up parprouted wlx1 wlx0
    post-up ip addr add $(/sbin/ip addr show wlx0 | perl -wne &apos;m|^\s+inet (.*)/| &amp;&amp; print $1&apos;)/32 dev wlx1
    post-down pkill -9 parprouted
    post-down sudo ip addr flush dev wlx0
    post-down sudo ip addr flush dev wlx1

auto wlx1
allow-hotplug wlx1
iface wlx1 inet manual
</pre>
<p>Set some iptables rules to set up NAT and allow multicast and broadcast forwarding. If someone who knows iptables a bit better can double check this I&#x2019;d be grateful.</p>
<pre>pi# sudo vim /etc/iptables.ipv4.nat
</pre>
<p>CONFIG:</p>
<pre>*filter
:INPUT ACCEPT [5:388]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3:392]
-A FORWARD -m pkttype --pkt-type multicast -j ACCEPT
-A FORWARD -m pkttype --pkt-type broadcast -j ACCEPT
-A FORWARD -i wlx1 -o wlx0 -j ACCEPT
-A FORWARD -i wlx0 -o wlx1 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:160]
:POSTROUTING ACCEPT [1:160]
-A POSTROUTING -o wlx1 -j MASQUERADE
COMMIT
</pre>
<p>Set up the dnsmasq.conf for the dhcp server. This bit is not exactly kosher. We&#x2019;re starting a second dhcp server on the same subnet. This makes me cringe, but its listening on a different interface, there should never be more than a couple hosts on this machine at any time, and the ip range is well away from where the drone&#x2019;s ip lease range starts. If someone out there can get dhcp-helper working reliably then that would be a much better solution.</p>
<pre>pi# sudo vim /etc/dnsmasq.conf
</pre>
<p>CONFIG:</p>
<pre>interface=wlx1
listen-address=192.168.0.2
bind-interfaces
server=192.168.0.1
domain-needed
bogus-priv
dhcp-range=192.168.0.100,192.168.0.150,4h
</pre>
<p>Edit rc.local so we start dnsmasq on boot and load in our iptables rules. Add the following lines just above the line &#x201C;exit 0&#x201D;</p>
<pre>pi# sudo vim /etc/rc.local
</pre>
<p>CONFIG:</p>
<pre>iptables-restore &lt; /etc/iptables.ipv4.nat
service dnsmasq start
</pre>
<p>Now we will enable ipv4 forwarding. Go into the sysctl.conf file, find and uncomment or add the following line to the file.</p>
<pre>pi# sudo vim /etc/sysctl.conf
</pre>
<p>CONFIG:</p>
<pre>net.ipv4.ip_forward=1
</pre>
<p>Next we will set up hostapd to manage the local repeated WiFi access point. I&#x2019;m boring, but you can change the values below to make your access point something more fun.</p>
<pre>pi# sudo vim /etc/hostapd/hostapd.conf
</pre>
<p>CONFIG:</p>
<pre>interface=wlx1
driver=nl80211
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ssid=PiBridge
wpa_passphrase=PassPhrase
</pre>
<p>Now we need to make sure that this hostapd file is actually getting loaded when hostapd starts. Modify the following /defaults/ file to match this.</p>
<pre>pi# sudo vim /etc/defaults/hostapd
</pre>
<p>CONFIG:</p>
<pre>DAEMON_CONF=&quot;/etc/hostapd/hostapd.conf&quot;
</pre>
<p>Now we&#x2019;re going to set up the avahi daemon. We need to enable mDNS relaying here. Do so by uncommenting the following line and ensuring it mirrors this.</p>
<pre>pi# sudo vim /etc/avahi/avahi-daemon.conf
</pre>
<p>CONFIG:</p>
<pre>enable-reflector=yes
</pre>
<p>Next make sure you&#x2019;re in your /home/ and create a little script to reconnect your Pi to your drone whenever you inevitably change the battery. Then make it executable.</p>
<pre>pi# cd ~
pi# vim ~/DroneConn.sh
</pre>
<p>CONFIG:</p>
<pre>#!/usr/bin/env bash
sudo ifdown wlx0
sleep 2
sudo ifup wlx0
</pre>
<pre>pi# sudo chmod +x DroneConn.sh
</pre>
<p>Finally disable unwanted services, enable the services you want to run at boot, reboot everything, and cross your fingers. I find that some times things fall over, but if I&#x2019;ve got the drone on to hand out an I.P. to wlx0 then the Pi boots fine.</p>
<pre>pi# sudo systemctl disable dhcpcd.service
pi# sudo systemctl enable hostapd.service
pi# sudo systemctl enable dnsmasq.service
pi# sudo reboot
</pre>
<p>Finally I want to shout out to the resources I used to piece this together.<br>
<a href="https://www.raspberrypi.org/forums/viewtopic.php?t=197537&amp;ref=exclusionzone.io">Surfer Tim on the RasPi forums</a><br>
<a href="https://pimylifeup.com/raspberry-pi-wifi-extender/?ref=exclusionzone.io">This pimylifeup.com guide</a><br>
<a href="https://wiki.debian.org/BridgeNetworkConnectionsProxyArp?ref=exclusionzone.io#DHCP_Relay">The Debian Wiki</a><br>
<a href="https://learn.adafruit.com/adafruits-raspberry-pi-lesson-3-network-setup/setting-up-wifi-with-occidentalis?ref=exclusionzone.io">This Adafruit Tutorial</a></p>
<p>Questions, Comments, Suggestions? Let me know. I&#x2019;m open to all of it.</p>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Cloud At Cost Remote Desktop]]></title><description><![CDATA[<!--kg-card-begin: html--><p>Recently I purchased a rather large Cloud At Cost service plan. It was like $240 for 8 CPUs, 8g memory, and an 80g HDD.</p>
<p>That&#x2019;s pretty great even though the machine crashes and burns wayyy more often than it should. Well I do dig that it&#x2019;s</p>]]></description><link>http://exclusionzone.io/cloud-at-cost-remote-desktop-2/</link><guid isPermaLink="false">65cab19766fa3d0001167269</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Mon, 31 Jul 2017 19:19:28 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html--><p>Recently I purchased a rather large Cloud At Cost service plan. It was like $240 for 8 CPUs, 8g memory, and an 80g HDD.</p>
<p>That&#x2019;s pretty great even though the machine crashes and burns wayyy more often than it should. Well I do dig that it&#x2019;s still somewhat powerful and I don&#x2019;t much care that it dies weekly as I only use it for hacking on till I break it anyway, but I don&#x2019;t like having to entirely rebuild my machine every time CaC borks it up.</p>
<p>To be a bit lazy there I hacked up a little script that helps me take their out of box Ubuntu 14 server and get it up as a remote desktop with some of my preferred tools. This could probably be used on any Ubuntu 14.04 server with minimal hackage.</p>
<p>It&#x2019;s a bit vulgar, but we&#x2019;re all adults here and it was hard to pass on this joke.</p>
<p><a href="https://github.com/snuffeluffegus/ErectMyCAC?ref=exclusionzone.io">https://github.com/snuffeluffegus/ErectMyCAC</a></p>
<p>Some notes to be aware of.</p>
<ol>
<li>You need to have the &#x2018;expect&#x2019; package installed. I think everything else is default.</li>
<li>It&#x2019;s not fire and forget yet. Keep an eye on it, you will be prompted for user input for grub and iptables.</li>
<li>It does not handle errors. I&#x2019;m too lazy to implement that in a non vital script.</li>
<li>If your latency is bananas then you probably need to up the sleep time inside the expects. Sometimes CaC is stupid slow.</li>
<li>Edit the line around ~118 if you want to add or remove packages.</li>
<li>The firewall is set up with ports for ssh, http, https, and NoMachine.</li>
<li>If you want to update the NoMachine.deb file go ahead and download the latest .deb package and just rename it correctly.</li>
<li>Bro is the coolest IDS ever so we installed that slice of awesome.</li>
<li>Your new passwords will be output to &#x2018;CAC_{$CACIP}.txt&#x2019;</li>
</ol>
<p>That&#x2019;s it. If you like it then enjoy, and if you&#x2019;ve got ideas then please let me know.</p>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Flash LibreBoot to Lenovo X200]]></title><description><![CDATA[<!--kg-card-begin: html--><p>I did this write up like a year or so ago, but I want to post it up here in case it disappears; though, I think that&#x2019;s a long shot. I don&#x2019;t have the very original write up I did and I&#x2019;m too lazy</p>]]></description><link>http://exclusionzone.io/flash-libreboot-to-lenovo-x200-2/</link><guid isPermaLink="false">65cab19766fa3d0001167268</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Tue, 20 Jun 2017 00:16:14 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html--><p>I did this write up like a year or so ago, but I want to post it up here in case it disappears; though, I think that&#x2019;s a long shot. I don&#x2019;t have the very original write up I did and I&#x2019;m too lazy to dig through github to get &#xA0;my original, so I need to give some credit to the others that edited the page as I didn&#x2019;t do literally everything you&#x2019;ll read.</p>
<p>Copyright &#xA9; 2014, 2015 Lawrence Wu&#xA0;<a href="mailto:sagnessagiel@gmail.com">sagnessagiel@gmail.com</a><br>
Copyright &#xA9; 2015 snuffeluffegus &lt;&gt;<br>
Copyright &#xA9; 2015 Kevin Keijzer &lt;&gt;<br>
Copyright &#xA9; 2016 Leah Rowe&#xA0;<a href="mailto:info@minifree.org">info@minifree.org</a></p>
<p>Also I&#x2019;d like to tip my hat to the LibreBoot folks, they&#x2019;re doing great work!</p>
<p>&#xA0;</p>
<p><span style="font-size: 24px; font-weight: bold;">Requirements:</span></p>
<ul>
<li>An x86, x86_64, or arm7l (for changing the libreboot.rom image mac address)</li>
<li>Raspberry Pi and peripherals</li>
<li>Relevant SOIC clip</li>
<li>6 female &#x2013; female jumpers</li>
<li>Internet connection</li>
<li>Screw drivers</li>
</ul>
<p>Follow the&#xA0;<a href="https://libreboot.org/docs/install/x200_external.html?ref=exclusionzone.io">ThinkPad X200: Initial installation guide</a>&#xA0;to disassemble the laptop, and access the BIOS rom chip.</p>
<p>Note:&#xA0;<code>x86#</code>&#xA0;refers to commands to be run on the x86 computer, and&#xA0;<code>pi#</code>&#xA0;refers to commands to be run on the pi. A good practice is to make a work directory to keep your libreboot stuff inside.</p>
<pre><code>x86# mkdir ~/work</code></pre>
<p>If you&#x2019;re running Raspian, you can do&#xA0;<strong>sudo raspi-config</strong>, enable SPI under Advanced and then spidev will be enabled. Simple, eh?</p>
<p><a href="https://libreboot.org/download/?ref=exclusionzone.io">Download Libreboot from their releases page</a>. For your safety, verify the GPG signature as well.</p>
<pre><code>x86# gpg --keyserver prefered.keyserver.org --recv-keys 0x656F212E

x86# for signature in $(ls *.sig); do gpg --verify $signature; done</code></pre>
<p>Install dependencies:</p>
<pre><code>pi# sudo apt-get update &amp;&amp; sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion libusb-1.0-0-dev pciutils, zlib, libusb, build-essential</code></pre>
<p>Download and build flashrom.</p>
<pre><code>pi# svn co svn://flashrom.org/flashrom/trunk ~/flashrom

pi# cd ~/flashrom

pi# make

pi# sudo make install</code></pre>
<p>On your x86 box change the libreboot.rom mac address</p>
<pre><code>x86# cd ~/work/libreboot_bin/</code></pre>
<p>Change the mac address on the libreboot images to match yours.</p>
<pre><code>x86# ./ich9macchange XX:XX:XX:XX:XX:XX</code></pre>
<p>Move the libreboot.rom image over to your pi</p>
<pre><code>x86# scp ~/work/libreboot_bin/&lt;path_to_your_bin&gt; pi@your.pi.address:~/flashrom/libreboot.rom</code></pre>
<p>Shutdown your pi, write down your rom chip model, and wire up the clip</p>
<pre><code>pi# sudo shutdown now -hP</code></pre>
<p>Chip model name</p>
<div class="figure"><img src="https://libreboot.org/docs/install/images/rpi/0001.jpg"></div>
<p>Pinout. You may want to download the image so you can zoom in on the text.</p>
<div class="figure"><img src="https://libreboot.org/docs/install/images/rpi/0002.jpg"></div>
<table>
<thead>
<tr class="header">
<th align="left">Pin #</th>
<th align="left">SPI Pin Name</th>
<th align="left">Raspberry Pi Pin #</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">1</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="left">3.3V</td>
<td align="left">1</td>
</tr>
<tr class="odd">
<td align="left">3</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="even">
<td align="left">4</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="odd">
<td align="left">5</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="even">
<td align="left">6</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="odd">
<td align="left">7</td>
<td align="left">CS#</td>
<td align="left">24</td>
</tr>
<tr class="even">
<td align="left">8</td>
<td align="left">S0/SIO1</td>
<td align="left">21</td>
</tr>
<tr class="odd">
<td align="left">9</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="even">
<td align="left">10</td>
<td align="left">GND</td>
<td align="left">25</td>
</tr>
<tr class="odd">
<td align="left">11</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="even">
<td align="left">12</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="odd">
<td align="left">13</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="even">
<td align="left">14</td>
<td align="left"><em>not used</em></td>
<td align="left"><em>not used</em></td>
</tr>
<tr class="odd">
<td align="left">15</td>
<td align="left">S1/SIO0</td>
<td align="left">19</td>
</tr>
<tr class="even">
<td align="left">16</td>
<td align="left">SCLK</td>
<td align="left">23</td>
</tr>
</tbody>
</table>
<p>Note: The raspberry pi 3.3V rail should be sufficient to power the chip during flashing, so no external power supply should be required; however, at the time of writing that has only been tested and confirmed for one chip, the MX25L6405D.</p>
<p>Macronix Spec sheet so you can adjust your pinout for 8 pin 4Mb chips as necessary</p>
<div class="figure"><img src="https://libreboot.org/docs/install/images/rpi/0014.gif"></div>
<p>At this point connect your SOIC clip to the rom chip before powering on your PI.</p>
<p>Power on your Pi, and run the following. Ensure you swap out &#x201C;your_chip_name&#x201D; with the proper name/model of your chip. Check that it can be read successfully. If you cannot read the chip and receive an error similar to &#x201C;no EEPROM Detected&#x201D; or &#x201C;0x0 Chip detected&#x201D; then you may want to try powering off your PI, and switching the two pins which are connected to the IO ports. I.E. Connect pins (clip)8 to (pi)19 and pins (clip)15 to (pi)21</p>
<pre><code>pi# cd ~/flashrom

pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip &lt;your_chip_name&gt; -r romread1.rom

pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip &lt;your_chip_name&gt; -r romread2.rom

pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip &lt;your_chip_name&gt; -r romread3.rom

pi# sha512sum romread*.rom</code></pre>
<p>If they are identical sha512 hashes then you can generally assume that it&#x2019;s safe to flash your rom.</p>
<pre><code>pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip &lt;your_chip_name&gt; -w libreboot.rom</code></pre>
<p>It may fail a couple times, but keep at it and when you get the message&#xA0;<code>Verifying flash... Verified</code>&#xA0;or&#xA0;<code>Warning: Chip content is identical to the requested image</code>&#xA0;then you&#x2019;re done.</p>
<p>Shut down your pi, put your box back together, and install a libre OS for great good!</p>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Super Sweet Security Supplementals]]></title><description><![CDATA[<!--kg-card-begin: html--><p>This is a list of talks which I think are pretty great as supplemental study materials for anyone interested in learning a bit of the art and science behind keeping their computers and online presence a bit more secure. I selected these specifically to supplement crypto party workshops and talks,</p>]]></description><link>http://exclusionzone.io/super-sweet-security-supplementals-2/</link><guid isPermaLink="false">65cab19766fa3d0001167267</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Thu, 24 Nov 2016 23:28:05 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html--><p>This is a list of talks which I think are pretty great as supplemental study materials for anyone interested in learning a bit of the art and science behind keeping their computers and online presence a bit more secure. I selected these specifically to supplement crypto party workshops and talks, but each one stands on its own merit. With the exception of the first video, I listed them in alphabetical order as I feel they&#x2019;re all pretty vital, and I can&#x2019;t really pick and choose a fair ordering method.</p>
<p>Many of these videos use examples of people who did not use proper OpSec, Infosec, tools, etc. You may question why we should use these as materials to learn from. This is a fair question to pose. We certainly should study the right way to do things or else we will have nothing to model our security posture on, but that does not mean that we should not study those who failed so that we may learn from their lessons. I feel that the following riddle best explains my thoughts on this method. The answer to it is at the foot of this post.</p>
<p>Following the bombing of a major German city durring WWII the bomber crews were being debriefed by their Colonel. The Colonel asks the crews &#x201C;From what direction did the luftwaffe attack?&#x201D; Immediately and unanimously the entirety of the crews responded &#x201C;From above and behind.&#x201D; The Colonel wrote down the information and handed it to a courier ordering him to deliver it to the outgoing bomber crews immediately stating &#x201C;This information could save their lives.&#x201D; As the courier was about to exit the door the flight chief grabbed him by the arm and told him &#x201C;belay that order, that information could cost the outgoing flight crews their lives.&#x201D;</p>
<p>What was it that the flight chief was aware of that the colonel was not?</p>
<p>&#xA0;</p>
<p>All of these can be found on <a href="https://www.youtube.com/?ref=exclusionzone.io" target="_blank">youtube</a>, but I also mirror them on my site for posterity <a href="https://exclusionzone.org/files/Videos/Crypto_Party/?ref=exclusionzone.io" target="_blank">here</a>. I don&#x2019;t hold any copyright on these videos, and have accredited them to their presenters and organizations as best I can. If you&#x2019;ve got any comments or ideas of other videos to add to this list then please let me know. I&#x2019;d love to hear from you!</p>
<p>&#xA0;</p>
<p>The 1st presentation titled &#x201C;OPSEC &#x2013; Because Jail is for wuftpd&#x201D; is from the <a href="https://conference.hitb.org/?ref=exclusionzone.io" target="_blank">Hack in the Box conference</a> and is presented by The Grugq. This talk is about OPSEC (Operational Security). It is my personal favorite of this list, and if someone can find the time to watch only a single video from this list then this is the one I&#x2019;d point them to. I&#x2019;d be remiss to not link to The Grugq&#x2019;s blog; it is the third link below.<br>
<a href="https://youtu.be/9XaYdCdwiWU?ref=exclusionzone.io" target="_blank">https://www.youtu.be/9XaYdCdwiWU<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/HITB2012-OPSEC-Because_Jail_is_for_wuftpd.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/HITB2012-OPSEC-Because_Jail_is_for_wuftpd.mp4<br>
</a><a href="https://grugq.github.io/?ref=exclusionzone.io" target="_blank">https://grugq.github.io/</a></p>
<p>&#xA0;</p>
<p>The 2nd presentation titled &#x201C;TOR &#x2013; Hidden Services and Deanonymisation&#x201D; is from <a href="https://en.wikipedia.org/wiki/Chaos_Communication_Congress?ref=exclusionzone.io" target="_blank">31C3 (31st Chaos Communications Conference)</a> presented by Dr. Gareth Owen. It is a bit more technical, but, in my opinion, is pretty vital to people who might want to use T.O.R. for sensitive things.<br>
<a href="https://youtu.be/oZdeRmlj8Gw?ref=exclusionzone.io" target="_blank">https://youtu.be/oZdeRmlj8Gw</a><br>
<a href="https://exclusionzone.org/files/Videos/Crypto_Party/31C3-Tor-Hidden_Services_and_Deanonymisation.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/31C3-Tor-Hidden_Services_and_Deanonymisation.mp4</a></p>
<p>&#xA0;</p>
<p>The 3rd video titled &#x201C;Encryption and Security Agencies&#x201D; is from the <a href="https://www.youtube.com/user/Computerphile?ref=exclusionzone.io" target="_blank">Computerphile youtube channel</a>, and the speaker is Richard Mortier.<br>
<a href="https://youtu.be/sWeVOXpTOhk?ref=exclusionzone.io" target="_blank">https://youtu.be/sWeVOXpTOhk</a><br>
<a href="https://exclusionzone.org/files/Videos/Crypto_Party/Computerphile-Encryption_and_Seucrity_Agencies.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/Computerphile-Encryption_and_Seucrity_Agencies.mp4</a></p>
<p>&#xA0;</p>
<p>The 4th video titled &#x201C;Public Key Cryptography&#x201D; is from the <a href="https://www.youtube.com/user/Computerphile?ref=exclusionzone.io" target="_blank">Computerphile youtube channel</a>, and is presented by Robert Miles. It is a brief overview of how services like gpg work.<br>
<a href="https://youtu.be/GSIDS_lvRv4?ref=exclusionzone.io" target="_blank">https://youtu.be/GSIDS_lvRv4</a><br>
<a href="https://exclusionzone.org/files/Videos/Crypto_Party/Computerphile-Public_Key_Cryptography.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/Computerphile-Public_Key_Cryptography.mp4</a></p>
<p>&#xA0;</p>
<p>The 5th video titled &#x201C;Security of Data on Disk&#x201D; is from the <a href="https://www.youtube.com/user/Computerphile?ref=exclusionzone.io" target="_blank">Computerphile youtube channel</a>, and is presented by Professor Derek McAuley. This video explains a bit of how data is stored on solid state and magnetic disk mediums and can (or cannot) be securely deleted.<br>
<a href="https://youtu.be/4SSSMi4X_mA?ref=exclusionzone.io" target="_blank">https://youtu.be/4SSSMi4X_mA<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/Computerphile-Security_of_Data_on_Disk.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/Computerphile-Security_of_Data_on_Disk.mp4</a></p>
<p>&#xA0;</p>
<p>The 6th presentation titled &#x201C;Search and Seizure Explained &#x2013; They Took My Laptop&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 17</a> by Tyler Pitchford. It deals with some legal issues surrounding computers, encryption, privacy, and the like.<br>
<a href="https://youtu.be/ibQGWXfWc7c?ref=exclusionzone.io" target="_blank">https://youtu.be/ibQGWXfWc7c<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON17-Search_and_Seizure_Explained-They_Took_My_Laptop.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON17-Search_and_Seizure_Explained-They_Took_My_Laptop.mp4</a></p>
<p>&#xA0;</p>
<p>The 7th presentation titled &#x201C;Anonymous and Ourselves&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 19</a> by Aaron Barr, Joshua Corman, and Jericoh. This is a panel discussion, among other things, what the anonymous organization is, and in what ways that kind of model might or might not be useful.<br>
<a href="https://youtu.be/8NI21Zoqlu4?ref=exclusionzone.io" target="_blank">https://youtu.be/8NI21Zoqlu4<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON19-Anonymous_and_Ourselves.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON19-Anonymous_and_Ourselves.mp4</a></p>
<p>&#xA0;</p>
<p>The 8th presentation titled &#x201C;Crypto and the Cops &#x2013; The Law of Key Disclosure and Forced Decryption&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 20</a> by Marcia Hofmann. The title offers plenty of description here, and Marcia does an excellent job describing what kind of crap the &#x201C;authorities&#x201D; might try to pull on you.<br>
<a href="https://youtu.be/Jt7D4AIfqlQ?ref=exclusionzone.io" target="_blank">https://youtu.be/Jt7D4AIfqlQ<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON20-Crypto_and_the_Cops-The_Law_of_Key_Disclosure_and_Forced_Decryption.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON20-Crypto_and_the_Cops-The_Law_of_Key_Disclosure_and_Forced_Decryption.mp4</a></p>
<p>&#xA0;</p>
<p>The 9th presentation titled &#x201C;Forensic Fails &#x2013; Shift + Delete Wont Help you Here&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 21</a> by Eric Robi and Michael Perklin. In this presentation they talk about how you would want to and not want to destroy data on a disk as well as some things you should account for and know if you are considering storage or data destruction.<br>
<a href="https://youtu.be/NG9Cg_vBKOg?ref=exclusionzone.io" target="_blank">https://youtu.be/NG9Cg_vBKOg<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON21-Forensic_Fails-Shift_+_Delete_Wont_Help_you_Here.mkv?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON21-Forensic_Fails-Shift_+_Delete_Wont_Help_you_Here.mkv</a></p>
<p>&#xA0;</p>
<p>The 10th presentation titled &#x201C;Dont Fuck It Up&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 22</a> by Zoz. This talk is pretty dank tbh fam. Zoz talks about how to not fuck it up where (it == OpSec) | (it == InfoSec).<br>
<a href="https://youtu.be/J1q4Ir2J8P8?ref=exclusionzone.io" target="_blank">https://youtu.be/J1q4Ir2J8P8<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON22-Dont_Fuck_It_Up.mkv?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON22-Dont_Fuck_It_Up.mkv</a></p>
<p>&#xA0;</p>
<p>The 11th presentation titled &#x201C;Dropping Docs on Darknets &#x2013; How People Got Caught&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 22</a> by Adrian Crenshaw a.k.a. Iron Geek. In this video Adrian talks about T.O.R., Bitcoin, and how some people got themselves caught while giving some pointers on how to not do that.<br>
<a href="https://youtu.be/eQ2OZKitRwc?ref=exclusionzone.io" target="_blank">https://youtu.be/eQ2OZKitRwc<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON22-Dropping_Docs_on_Darknets-How_People_Got_Caught.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON22-Dropping_Docs_on_Darknets-How_People_Got_Caught.mp4</a></p>
<p>&#xA0;</p>
<p>The 12th presentation titled &#x201C;Crypto and State of the Law&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 24</a> by Nate Cardozo. It talks about the history of encryption legislation and how the U.S.A. government attempts to legislate on and control encryption technologies as of July(ish) 2016.<br>
<a href="https://youtu.be/YN_qVqgRlx4?ref=exclusionzone.io" target="_blank">https://youtu.be/YN_qVqgRlx4<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON24-Crypto_and_State_of_the_Law.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON24-Crypto_and_State_of_the_Law.mp4</a></p>
<p>&#xA0;</p>
<p>The 13th presentation titled &#x201C;How to Overthrow a Government&#x201D; was presented at <a href="https://defcon.org/?ref=exclusionzone.io" target="_blank">Defcon 24</a> by Chris Rock. It might give you some tips on how you might implement some tools and tactics to work against a tyranical state.<br>
<a href="https://youtu.be/m1lhGqNCZlA?ref=exclusionzone.io" target="_blank">https://youtu.be/m1lhGqNCZlA<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON24-How_to_Overthrow_a_Government.webm?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/DEFCON24-How_to_Overthrow_a_Government.webm</a></p>
<p>&#xA0;</p>
<p>The 14th presentation titled &#x201C;Destroying Evidence Before its Evidence&#x201D; was presented at <a href="http://shmoocon.org/?ref=exclusionzone.io" target="_blank">ShmooCon 2012</a> by Hanni Fakhoury. It deals with legalities around destruction of data. Hint, the scorched earth data retention policy is the best data retention policy.&#xA0; &#x1F609;<br>
<a href="https://youtu.be/lqBVAcxpwio?ref=exclusionzone.io" target="_blank">https://youtu.be/lqBVAcxpwio<br>
</a><a href="https://exclusionzone.org/files/Videos/Crypto_Party/Shmoocon2012-Destroying_Evidence_Before_its_Evidence.mp4?ref=exclusionzone.io" target="_blank">https://exclusionzone.org/files/Videos/Crypto_Party/Shmoocon2012-Destroying_Evidence_Before_its_Evidence.mp4</a></p>
<p>&#xA0;</p>
<p>The final videos I&#x2019;ll wrap this post up with is this youtube playlist. They&#x2019;re pretty great.<br>
<a href="https://www.youtube.com/playlist?list=PLC7A095EDCE81B09B&amp;ref=exclusionzone.io" target="_blank">https://www.youtube.com/playlist?list=PLC7A095EDCE81B09B</a></p>
<p>&#xA0;</p>
<p>The answer to the riddle above is: The flight chief was aware that since all of the men stated that they were attacked from above and behind the most fatal attacks might have come from a different direction, and the outgoing crews, equipped with incomplete information, would possibly fall to the same fate as the men that were shot down and did not return.</p>
<p>&#xA0;</p>
<p>&#xA0;</p>
<p>Happy Hacking!</p>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Hello, World!]]></title><description><![CDATA[<!--kg-card-begin: html--><p>Welcome to the site<br>
Something about a season<br>
This is now haiku</p>
<p>This is the site&#x2019;s rebirth. HTML was light and fast, but a pain to update. There might or might not be an influx of content generation and curation following.</p>
<!--kg-card-end: html-->]]></description><link>http://exclusionzone.io/hello-world-2-2/</link><guid isPermaLink="false">65cab19766fa3d0001167266</guid><dc:creator><![CDATA[John]]></dc:creator><pubDate>Thu, 24 Nov 2016 00:22:18 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html--><p>Welcome to the site<br>
Something about a season<br>
This is now haiku</p>
<p>This is the site&#x2019;s rebirth. HTML was light and fast, but a pain to update. There might or might not be an influx of content generation and curation following.</p>
<!--kg-card-end: html-->]]></content:encoded></item></channel></rss>