Make token generator script
This commit is contained in:
parent
63bfae1014
commit
8268fed28c
@ -57,5 +57,7 @@ FROM scratch
|
|||||||
|
|
||||||
COPY --from=mirror /out/ /
|
COPY --from=mirror /out/ /
|
||||||
COPY init /init
|
COPY init /init
|
||||||
|
COPY bin/ /bin/
|
||||||
COPY etc/ /etc/
|
COPY etc/ /etc/
|
||||||
COPY lib/ /lib/
|
COPY lib/ /lib/
|
||||||
|
COPY sbin/ /sbin/
|
||||||
|
93
challenge/bin/adlin
Executable file
93
challenge/bin/adlin
Executable file
@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# FUNCTIONS ###########################################################
|
||||||
|
|
||||||
|
# script usage
|
||||||
|
usage() {
|
||||||
|
>&2 cat <<EOF
|
||||||
|
ADLIN token generator
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# token generator
|
||||||
|
token_generator() {
|
||||||
|
{
|
||||||
|
echo -n ${PKEY}
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
echo -n :${d}
|
||||||
|
done
|
||||||
|
} | b2sum | cut -d ' ' -f 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# JSON token format helper
|
||||||
|
token_format() {
|
||||||
|
local TID=$1
|
||||||
|
local TOKEN=$2
|
||||||
|
shift 2
|
||||||
|
|
||||||
|
[ $# -gt 0 ] && {
|
||||||
|
local DATA=',
|
||||||
|
"data": [';
|
||||||
|
for d; do
|
||||||
|
[ -z "$Z" ] && Z=1 || DATA="$DATA, "
|
||||||
|
DATA="$DATA\"$d\""
|
||||||
|
done
|
||||||
|
DATA="$DATA]"
|
||||||
|
}
|
||||||
|
|
||||||
|
>&2 cat <<EOF
|
||||||
|
{
|
||||||
|
"login": "${ULGN}",
|
||||||
|
"challenge": ${TID},
|
||||||
|
"token": "${TOKEN}"${DATA}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# /proc/cmdline parser (from Gentoo Wiki)
|
||||||
|
cmdline() {
|
||||||
|
local value
|
||||||
|
value=" $(cat /proc/cmdline) "
|
||||||
|
value="${value##* $1=}"
|
||||||
|
value="${value%% *}"
|
||||||
|
[ "$value" != "" ] && echo "$value"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# GLOBAL VARIABLES ####################################################
|
||||||
|
|
||||||
|
ULGN=$(cmdline adlin.login)
|
||||||
|
PKEY=$(cmdline adlin.key)
|
||||||
|
|
||||||
|
|
||||||
|
# MAIN ################################################################
|
||||||
|
|
||||||
|
[ $# -lt 1 ] && { usage; exit 1; }
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
token1|token2)
|
||||||
|
HDATA=42
|
||||||
|
;;
|
||||||
|
token3|token6)
|
||||||
|
DATA=$(date +%s%N)
|
||||||
|
;;
|
||||||
|
token4)
|
||||||
|
echo "$1 is not here! Perhaps it has been accidentally deleted?" >&2
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
token5)
|
||||||
|
HDATA=$(dig +short +time=1 +tries=0 adlin.nemunai.re $2 | sed 's/"//g') || {
|
||||||
|
echo "Try again! Your resolver settings seems not good :(" >&2
|
||||||
|
exit 3
|
||||||
|
}
|
||||||
|
echo $HDATA | grep "not here" 2> /dev/null && exit 3
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Invalid argument: $1" >&2
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
token_format "${1#token}" "$(token_generator ${1#token} ${HDATA} ${DATA})" ${DATA}
|
@ -5,8 +5,6 @@ header: ADvanced LINux administration
|
|||||||
footer: EPITA SRS 2019
|
footer: EPITA SRS 2019
|
||||||
author: Écrit par Pierre-Olivier *nemunaire* Mercier <**nemunaire+adlin@nemunai.re**>
|
author: Écrit par Pierre-Olivier *nemunaire* Mercier <**nemunaire+adlin@nemunai.re**>
|
||||||
date: 2018-02-21
|
date: 2018-02-21
|
||||||
hyphenate: true
|
|
||||||
pandoc-version: true
|
|
||||||
...
|
...
|
||||||
|
|
||||||
# NOM
|
# NOM
|
||||||
@ -35,61 +33,61 @@ Outrepasser la phase de connexion et devenir **root** sur le système.
|
|||||||
|
|
||||||
## STAGE 1
|
## STAGE 1
|
||||||
|
|
||||||
**adlin token1 | curl -d @- https://172.23.0.1/challenge1**
|
**adlin token1 | curl -d @- http://172.23.0.1/challenge**
|
||||||
|
|
||||||
Voir aussi: **modprobe**(8), **fbi**(1), **ip**(8), **ip-link**(8), **ip-address**(8)
|
Voir aussi: **modprobe**(8), **fbi**(1), **ip**(8), **ip-link**(8), **ip-address**(8)
|
||||||
|
|
||||||
|
|
||||||
## STAGE 2
|
## STAGE 2
|
||||||
|
|
||||||
**adlin token2 | curl -d @- https://172.23.200.1/challenge2**
|
**adlin token2 | curl -d @- http://172.23.200.1/challenge**
|
||||||
|
|
||||||
Voir aussi: **ip-route**(8), **crontab**(1)
|
Voir aussi: **ip-route**(8), **crontab**(1)
|
||||||
|
|
||||||
|
|
||||||
## STAGE 3 (bonus)
|
## STAGE 3
|
||||||
|
|
||||||
**cat token3 | curl -d @- https://172.23.200.1/challenge3**
|
**adlin token3 | curl -d @- https://172.23.200.1/challenge**
|
||||||
|
|
||||||
Voir aussi: **mount**(8)
|
|
||||||
|
|
||||||
|
|
||||||
## STAGE 4
|
|
||||||
|
|
||||||
**token4 | curl -d @- https://172.23.200.1/challenge4**
|
|
||||||
|
|
||||||
Voir aussi: **ntpd**(1)
|
Voir aussi: **ntpd**(1)
|
||||||
|
|
||||||
|
|
||||||
## STAGE 4
|
## STAGE 4 (bonus)
|
||||||
|
|
||||||
**dig** *token4* **| curl -d @- https://172.23.200.1/challenge4**
|
**cat token4 | curl -d @- https://172.23.200.1/challenge**
|
||||||
|
|
||||||
Voir aussi: **resolv.conf**(5), **dig**(1)
|
Voir aussi: **mount**(8)
|
||||||
|
|
||||||
|
|
||||||
## STAGE 5
|
## STAGE 5
|
||||||
|
|
||||||
**adlin toke5 | curl -d @- https://adlin.nemunai.re/challenge5**
|
**dig** *token5* **| curl -d @- https://172.23.200.1/challenge**
|
||||||
|
|
||||||
|
Voir aussi: **resolv.conf**(5), **dig**(1)
|
||||||
|
|
||||||
|
|
||||||
|
## STAGE 6
|
||||||
|
|
||||||
|
**adlin token6 | curl -d @- https://adlin.nemunai.re/challenge**
|
||||||
|
|
||||||
Voir aussi: **ip-link**(8), **udhcpc**(1), **traceroute**(8), **tcpdump**(1), **sysctl**(8)
|
Voir aussi: **ip-link**(8), **udhcpc**(1), **traceroute**(8), **tcpdump**(1), **sysctl**(8)
|
||||||
|
|
||||||
|
|
||||||
## STAGE 6
|
## STAGE 7
|
||||||
|
|
||||||
**mail** [*OPTIONS*] **adlin@nemunai.re**
|
**mail** [*OPTIONS*] **adlin@nemunai.re**
|
||||||
|
|
||||||
Voir aussi: **dig**(1), **mail**(1)
|
Voir aussi: **dig**(1), **mail**(1)
|
||||||
|
|
||||||
|
|
||||||
## STAGE 7
|
## STAGE 8
|
||||||
|
|
||||||
**cat ~/.ssh/***id_ssh* **| curl -d @- https://adlin.nemunai.re/sshkey**
|
**cat ~/.ssh/***id_ssh* **| curl -d @- https://adlin.nemunai.re/sshkey**
|
||||||
|
|
||||||
Voir aussi: **ssh-keygen**(1)
|
Voir aussi: **ssh-keygen**(1)
|
||||||
|
|
||||||
|
|
||||||
## STAGE 8
|
## STAGE 9
|
||||||
|
|
||||||
**ssh -p** *23000* **root@adlin.nemunai.re**
|
**ssh -p** *23000* **root@adlin.nemunai.re**
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user