mirror of
git://git.code.sf.net/p/xtables-addons/xtables-addons
synced 2025-09-06 04:35:12 +02:00
xt_pknock: import digest generation utility
This commit is contained in:
17
extensions/pknock/gen_hmac.py
Normal file
17
extensions/pknock/gen_hmac.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from Crypto.Hash import SHA256
|
||||
from Crypto.Hash import MD5
|
||||
import sys
|
||||
import hmac
|
||||
import struct
|
||||
import socket
|
||||
from time import time
|
||||
|
||||
def gen_hmac(secret, ip):
|
||||
epoch_mins = (long)(time()/60)
|
||||
s = hmac.HMAC(secret, digestmod = SHA256)
|
||||
s.update(socket.inet_aton(socket.gethostbyname(ip)))
|
||||
s.update(struct.pack("i", epoch_mins)) # "i" is for integer
|
||||
print s.hexdigest()
|
||||
|
||||
if __name__ == '__main__':
|
||||
gen_hmac(sys.argv[1], sys.argv[2])
|
15
extensions/pknock/knock.sh
Executable file
15
extensions/pknock/knock.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# $1 -> IP src
|
||||
# $2 -> IP dst
|
||||
# $3 -> PORT dst
|
||||
# $4 -> secret
|
||||
|
||||
if [ -z $4 ]; then
|
||||
echo "usage: $0 <IP src> <IP dst> <PORT dst> <secret>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
digest_file="/tmp/digest.txt"
|
||||
|
||||
python ../test/py/gen_hmac.py $4 $1 > $digest_file
|
||||
nemesis udp -S $1 -D $2 -y $3 -P $digest_file
|
Reference in New Issue
Block a user