Skip to content

Instantly share code, notes, and snippets.

Avatar

Fernando Falci Falci

View GitHub Profile
View 103.196.38.38.txt
docker run redsift/dnstrace -n 100 -c 10 --server 103.196.38.38 --recurse 0b
Benchmarking 103.196.38.38:53 via udp with 10 conncurrent requests
Total requests: 1000 of 1000 (100.0%)
Connection errors: 0
Read/Write errors: 22
DNS success codes: 978
DNS response codes
View login-with-hns.js
const fs = require('fs');
const crypto = require('crypto');
const decB64 = b64 => Buffer.from(b64, 'base64').toString('ascii');
const encB64 = ascii => Buffer.from(ascii).toString('base64');
const saveKeyToFile = (filename, key) =>
fs.writeFileSync(filename, key.export({ type: 'pkcs8', format: 'pem' }));
const loadKeyFromFile = filename => loadRawKey(fs.readFileSync(filename));
const loadRawKey = raw => crypto.createPrivateKey(raw);
View falci.txt
;ii;;;;i:;i;:;;::;;:,::,,:,,,,,,,,,,,,,.,,,..,,,.,,;t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8t:::,,.,,,.,,,.,,,,,.........,.,.......,..,,...,.................
iiiii;;;;;;::;;:::::,::,,,,,,,,,,,,,,,.,..,.,,,.,,tL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f,. . . . . . .....................,..........,....
ii;;:;;;;::i;;:::,,::,,:,,,,,.,,,,,.,,.,..,....,i0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L:..
;;;;;;;:::i:;:;:::;::,:,,,,,,:,,..,.,,.,...,..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G;.
;;ii;i:;:;;:::::::::,::,,:,,,,,.,,,.,,.....,,t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;, ..
;;;;;;::;;;::;,;::,::,:,,,,.,,,,.,,.......,:0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8i:,
;;;;;;;::,::::::,::::,,,,,,:,:,,.,,,......,08@@@@@@@@@@@@8
View README.md

Brute Force

This script will hash "all" possible Handshake names (plus some invalids) and log the "smaller" (based on its position on the Urkel Tree)

Currently, the first name on the Urkel Tree is swaffield

View Login with Handshake.md

Hey folks, I'd like to share my view of the "login with HNS" feature (https://director.namebase.io/apps/p/login-with-handshake)

Overview:

  • Username and password.
  • Get the password and SHA-256;
  • Get the hash and use it as a private key, then using secp256k1 (https://en.bitcoin.it/wiki/Secp256k1) generate the public key
  • Get the public key and store it in HNS as a TXT for a domain: auth=02b562858a301a8721923b89df9963d30101639ac690cce5f555529b778c3dbfc7

When you login on a website using your Google account, you trust Google, but not necessarily the website you're log in;

View gist:b6ec015bdd80d3adfa9001cead432420
136,000 eth.ens.domains
136,000 gnunet.org
202,985 dnscrypt.info
202,985 marples.name
202,985 riseup.net
405,970 datprotocol.com
405,970 webtorrent.io
408,000 blockstack.com
608,955 mozilla.com
608,957 darksi.de
@Falci
Falci / parking.js
Last active Jul 29, 2020
This script parks a list of domain in parking.sinpapeles. It requires Bob Wallet.
View parking.js
const { WalletClient } = require('hs-client');
const { Network } = require('hsd');
const network = Network.get('main');
// Important: Bob needs to be running
// This is the phrase you use to unlock Bob Wallet.
const passphrase = 'MY PASSPPHASE';
// The list of domains you want to park;
View check_ip
#!/bin/bash
FILE=~/.ip
IP=$(curl -s ifconfig.co)
OLD=$(cat "$FILE");
if [[ "$OLD" == "$IP" ]]; then
echo "No IP change";
else
echo "IP changed";
View keybase.md

Keybase proof

I hereby claim:

  • I am falci on github.
  • I am falci (https://keybase.io/falci) on keybase.
  • I have a public key whose fingerprint is 6B39 1E26 80DF C0B9 9C8C 892B 8206 EE41 E720 442D

To claim this, I am signing this object:

View useStorage.jsx
import { useReducer } from "react";
const stored = localStorage.getItem("data");
const emptyStore = { ... };
const initialState = (stored && JSON.parse(stored)) || emptyStore;
const reducer = (state, action) => {
switch (action.type) {
case "increment":
return { count: state.count + 1 };