Facebook CTF(Capture the flag)のインストールメモです。
インストール先は、 VirtualBox上にインストールしたUbuntu 16.04 LTSです。
インストール手順
インストールの手順自体は非常に簡単です。githubからソースコードを取得して、quick_setupコマンドを実行するだけです。
$sudo apt-get update
$sudo apt-get install git
$git clone https://github.com/facebook/fbctf
$cd fbctf
$source ./extra/lib.sh
$quick_setup install prod
エラー
すんなりとインストールできると思っていたら、大量のエラーが出ました。
[+] Running grunt to generate JS files/var/www/fbctf/node_modules/grunt/node_modules/mkdirp/lib/opts-arg.js:7
opts = { mode: 0o777, fs, ...opts }
^^^
SyntaxError: Unexpected token ...
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/var/www/fbctf/node_modules/grunt/node_modules/mkdirp/index.js:1:79)
xz: (stdin): File format not recognizedtar: Child died with signal 13
tar: Error is not recoverable: exiting now
curl: (23) Failed writing body (3766 != 11216)
インストール用スクリプトの修正
インストール用スクリプト(extra/lib.sh)のnodejsとzstdのインストール部分を修正することで、問題なくインストールできるようになりました。具体的には、nodejsのバージョンを6xから10xに変更し、zstdインストール時のtarのオプションを変更しました。
function install_nodejs() { # log "Downloading and setting node.js version 6.x repo information"
# dl_pipe "https://deb.nodesource.com/setup_6.x" | sudo -E bash -
log "Downloading and setting node.js version 10.x repo information"
dl_pipe "https://deb.nodesource.com/setup_10.x" | sudo -E bash -
log "Installing node.js"
package nodejs
}
function install_unison() {
# cd /
# dl_pipe "https://www.archlinux.org/packages/extra/x86_64/unison/download/" | sudo tar Jx
cd /tmp
sudo apt-get install -y zstd
curl -L https://www.archlinux.org/packages/extra/x86_64/unison/download/ --output unison.tar.zst
sudo tar -xf unison.tar.zst -C / --use-compress-program=zstd
}