From 92f16b91d1262c8b5bc390dbc2c1b011f4e00fb9 Mon Sep 17 00:00:00 2001 From: Steven Van Acker Date: Sun, 19 Feb 2017 00:33:12 +0100 Subject: [PATCH] combine tools in travis-ci tests, add archlinux and fedora builds --- .travis.yml | 208 ++++++++-------------------------------------- Dockerfile.fedora | 19 +++++ 2 files changed, 55 insertions(+), 172 deletions(-) create mode 100644 Dockerfile.fedora diff --git a/.travis.yml b/.travis.yml index a26f7bd..f545817 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,184 +3,48 @@ sudo: required services: - docker before_install: +- if [ "$DISTRO" = "archlinux" ]; then docker build -t ctftools -f Dockerfile.archlinux .; fi +- if [ "$DISTRO" = "fedora" ]; then docker build -t ctftools -f Dockerfile.fedora .; fi - if [ "$DISTRO" = "xenial" ]; then docker build -t ctftools -f Dockerfile.xenial .; fi - if [ "$DISTRO" = "trusty" ]; then docker build -t ctftools -f Dockerfile .; fi env: -- DISTRO="trusty" TOOL="afl" -- DISTRO="trusty" TOOL="android-sdk" -- DISTRO="trusty" TOOL="angr" EXPECTFAIL=1 -- DISTRO="trusty" TOOL="apktool" -- DISTRO="trusty" TOOL="barf" -- DISTRO="trusty" TOOL="beef" EXPECTFAIL=1 ### unsupported for now, needs ruby with RVM -- DISTRO="trusty" TOOL="bindead" -- DISTRO="trusty" TOOL="binwalk" -- DISTRO="trusty" TOOL="burpsuite" -- DISTRO="trusty" TOOL="capstone" -- DISTRO="trusty" TOOL="checksec" -- DISTRO="trusty" TOOL="codereason" -- DISTRO="trusty" TOOL="commix" -- DISTRO="trusty" TOOL="cribdrag" -#- DISTRO="trusty" TOOL="cross2" ### takes too long for travis -#- DISTRO="trusty" TOOL="crosstool" ### takes too long for travis -- DISTRO="trusty" TOOL="df" -- DISTRO="trusty" TOOL="dirb" -- DISTRO="trusty" TOOL="dirsearch" -- DISTRO="trusty" TOOL="dislocker" -- DISTRO="trusty" TOOL="elfkickers" -- DISTRO="trusty" TOOL="elfparser" -- DISTRO="trusty" TOOL="evilize" -- DISTRO="trusty" TOOL="exetractor" -- DISTRO="trusty" TOOL="featherduster" -- DISTRO="trusty" TOOL="firmware-mod-kit" -- DISTRO="trusty" TOOL="foresight" -- DISTRO="trusty" TOOL="gdb" -- DISTRO="trusty" TOOL="gdb-heap" -- DISTRO="trusty" TOOL="gef" -- DISTRO="trusty" TOOL="hash-identifier" -- DISTRO="trusty" TOOL="hashkill" -- DISTRO="trusty" TOOL="hashpump" -- DISTRO="trusty" TOOL="hashpump-partialhash" -- DISTRO="trusty" TOOL="honggfuzz" -- DISTRO="trusty" TOOL="jdgui" -- DISTRO="trusty" TOOL="keystone" -- DISTRO="trusty" TOOL="libheap" -- DISTRO="trusty" TOOL="littleblackbox" -- DISTRO="trusty" TOOL="mitmproxy" -- DISTRO="trusty" TOOL="msieve" -- DISTRO="trusty" TOOL="panda" EXPECTFAIL=1 ### not sure why this fails, compilation errors -- DISTRO="trusty" TOOL="pathgrind" EXPECTFAIL=1 ### only works on kernel 2.4 or 2.6 -- DISTRO="trusty" TOOL="pdf-parser" -- DISTRO="trusty" TOOL="peda" -- DISTRO="trusty" TOOL="peepdf" -- DISTRO="trusty" TOOL="pemcrack" -- DISTRO="trusty" TOOL="pkcrack" -- DISTRO="trusty" TOOL="preeny" -- DISTRO="trusty" TOOL="pwndbg" -- DISTRO="trusty" TOOL="pwntools" EXPECTFAIL=1 -- DISTRO="trusty" TOOL="python-paddingoracle" -- DISTRO="trusty" TOOL="python-pin" -- DISTRO="trusty" TOOL="pyvmmonitor" -- DISTRO="trusty" TOOL="qemu" -- DISTRO="trusty" TOOL="qira" -- DISTRO="trusty" TOOL="radare2" -- DISTRO="trusty" TOOL="reveng" -- DISTRO="trusty" TOOL="ropper" -- DISTRO="trusty" TOOL="rp++" -- DISTRO="trusty" TOOL="scrdec18" -- DISTRO="trusty" TOOL="shellnoob" -- DISTRO="trusty" TOOL="shellsploit" -- DISTRO="trusty" TOOL="snowman" -- DISTRO="trusty" TOOL="sonic-visualizer" EXPECTFAIL=1 ### build errors -- DISTRO="trusty" TOOL="sqlmap" -- DISTRO="trusty" TOOL="ssh_decoder" -- DISTRO="trusty" TOOL="sslsplit" -- DISTRO="trusty" TOOL="steganabara" -- DISTRO="trusty" TOOL="stegdetect" -- DISTRO="trusty" TOOL="stegsolve" -- DISTRO="trusty" TOOL="subbrute" -- DISTRO="trusty" TOOL="taintgrind" EXPECTFAIL=1 ### missing Iop_* declarations -- DISTRO="trusty" TOOL="testdisk" -- DISTRO="trusty" TOOL="tor-browser" -- DISTRO="trusty" TOOL="unicorn" -- DISTRO="trusty" TOOL="veles" EXPECTFAIL=1 ### Cmake is too old -- DISTRO="trusty" TOOL="villoc" -- DISTRO="trusty" TOOL="virtualsocket" -- DISTRO="trusty" TOOL="wcc" EXPECTFAIL=1 ### depends on xenial -- DISTRO="trusty" TOOL="xortool" -- DISTRO="trusty" TOOL="xrop" EXPECTFAIL=1 -- DISTRO="trusty" TOOL="xspy" -- DISTRO="trusty" TOOL="yafu" -- DISTRO="trusty" TOOL="z3" -- DISTRO="trusty" TOOL="zsteg" -- DISTRO="xenial" TOOL="afl" -- DISTRO="xenial" TOOL="android-sdk" -- DISTRO="xenial" TOOL="angr" -- DISTRO="xenial" TOOL="apktool" -- DISTRO="xenial" TOOL="barf" -- DISTRO="xenial" TOOL="beef" EXPECTFAIL=1 ### unsupported for now, needs ruby with RVM -- DISTRO="xenial" TOOL="bindead" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="binwalk" -- DISTRO="xenial" TOOL="burpsuite" -- DISTRO="xenial" TOOL="capstone" -- DISTRO="xenial" TOOL="checksec" -- DISTRO="xenial" TOOL="codereason" -- DISTRO="xenial" TOOL="commix" -- DISTRO="xenial" TOOL="cribdrag" -#- DISTRO="xenial" TOOL="cross2" ### takes too long for travis -#- DISTRO="xenial" TOOL="crosstool" ### takes too long for travis -- DISTRO="xenial" TOOL="df" -- DISTRO="xenial" TOOL="dirb" -- DISTRO="xenial" TOOL="dirsearch" -- DISTRO="xenial" TOOL="dislocker" -- DISTRO="xenial" TOOL="elfkickers" -- DISTRO="xenial" TOOL="elfparser" -- DISTRO="xenial" TOOL="evilize" -- DISTRO="xenial" TOOL="exetractor" -- DISTRO="xenial" TOOL="featherduster" -- DISTRO="xenial" TOOL="firmware-mod-kit" -- DISTRO="xenial" TOOL="foresight" -- DISTRO="xenial" TOOL="gdb" -- DISTRO="xenial" TOOL="gdb-heap" -- DISTRO="xenial" TOOL="gef" -- DISTRO="xenial" TOOL="hash-identifier" -- DISTRO="xenial" TOOL="hashkill" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="hashpump" -- DISTRO="xenial" TOOL="hashpump-partialhash" -- DISTRO="xenial" TOOL="honggfuzz" -- DISTRO="xenial" TOOL="jdgui" -- DISTRO="xenial" TOOL="keystone" -- DISTRO="xenial" TOOL="libheap" -- DISTRO="xenial" TOOL="littleblackbox" -- DISTRO="xenial" TOOL="mitmproxy" -- DISTRO="xenial" TOOL="msieve" -- DISTRO="xenial" TOOL="panda" EXPECTFAIL=1 ### not sure why this fails, compilation errors -- DISTRO="xenial" TOOL="pathgrind" EXPECTFAIL=1 ### only works on kernel 2.4 or 2.6 -- DISTRO="xenial" TOOL="pdf-parser" -- DISTRO="xenial" TOOL="peda" -- DISTRO="xenial" TOOL="peepdf" -- DISTRO="xenial" TOOL="pemcrack" -- DISTRO="xenial" TOOL="pkcrack" -- DISTRO="xenial" TOOL="preeny" -- DISTRO="xenial" TOOL="pwndbg" -- DISTRO="xenial" TOOL="pwntools" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="python-paddingoracle" -- DISTRO="xenial" TOOL="python-pin" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="pyvmmonitor" -- DISTRO="xenial" TOOL="qemu" -- DISTRO="xenial" TOOL="qira" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="radare2" -- DISTRO="xenial" TOOL="reveng" -- DISTRO="xenial" TOOL="ropper" -- DISTRO="xenial" TOOL="rp++" -- DISTRO="xenial" TOOL="scrdec18" -- DISTRO="xenial" TOOL="shellnoob" -- DISTRO="xenial" TOOL="shellsploit" -- DISTRO="xenial" TOOL="snowman" -- DISTRO="xenial" TOOL="sonic-visualizer" EXPECTFAIL=1 ### build errors -- DISTRO="xenial" TOOL="sqlmap" -- DISTRO="xenial" TOOL="ssh_decoder" -- DISTRO="xenial" TOOL="sslsplit" -- DISTRO="xenial" TOOL="steganabara" -- DISTRO="xenial" TOOL="stegdetect" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="stegsolve" -- DISTRO="xenial" TOOL="subbrute" -- DISTRO="xenial" TOOL="taintgrind" EXPECTFAIL=1 ### missing Iop_* declarations -- DISTRO="xenial" TOOL="testdisk" -- DISTRO="xenial" TOOL="tor-browser" -- DISTRO="xenial" TOOL="unicorn" -- DISTRO="xenial" TOOL="veles" -- DISTRO="xenial" TOOL="villoc" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="virtualsocket" -- DISTRO="xenial" TOOL="wcc" EXPECTFAIL=1 ### depends on xenial -- DISTRO="xenial" TOOL="xortool" -- DISTRO="xenial" TOOL="xrop" EXPECTFAIL=1 -- DISTRO="xenial" TOOL="xspy" -- DISTRO="xenial" TOOL="yafu" -- DISTRO="xenial" TOOL="z3" -- DISTRO="xenial" TOOL="zsteg" EXPECTFAIL=1 +# Tests for fedora +- DISTRO="fedora" TOOL="apktool binwalk burpsuite capstone checksec commix cribdrag dirsearch elfkickers evilize exetractor foresight gdb gdb-heap gef jdgui libheap" +- DISTRO="fedora" TOOL="pdf-parser peda peepdf pkcrack python-paddingoracle pyvmmonitor radare2 reveng ropper rp++ scrdec18 shellnoob shellsploit ssh_decoder steganabara stegsolve subbrute unicorn virtualsocket" +- DISTRO="fedora" TOOL="xortool yafu z3" +- DISTRO="fedora" EXPECTFAIL=1 TOOL="afl android-sdk angr barf beef bindead codereason df dirb dislocker" +- DISTRO="fedora" EXPECTFAIL=1 TOOL="elfparser featherduster firmware-mod-kit hash-identifier hashkill hashpump hashpump-partialhash honggfuzz keystone" +- DISTRO="fedora" EXPECTFAIL=1 TOOL="littleblackbox mitmproxy msieve panda pathgrind pemcrack preeny pwndbg pwntools python-pin" +- DISTRO="fedora" EXPECTFAIL=1 TOOL="qemu qira snowman sonic-visualizer sqlmap sslsplit stegdetect taintgrind testdisk tor-browser" +- DISTRO="fedora" EXPECTFAIL=1 TOOL="veles villoc wcc xrop xspy zsteg" +# Tests for archlinux +- DISTRO="archlinux" TOOL="afl android-sdk apktool binwalk burpsuite checksec commix cribdrag" +- DISTRO="archlinux" TOOL="df dirb dirsearch evilize exetractor featherduster firmware-mod-kit foresight gdb gdb-heap gef" +- DISTRO="archlinux" TOOL="hashpump hashpump-partialhash jdgui keystone libheap msieve pdf-parser peda peepdf pemcrack pkcrack pwndbg" +- DISTRO="archlinux" TOOL="pwntools python-paddingoracle pyvmmonitor" +# - DISTRO="archlinux" TOOL="qemu" ### takes too long for travis-ci +- DISTRO="archlinux" TOOL="radare2 reveng rp++ scrdec18 shellnoob ssh_decoder sslsplit steganabara stegsolve subbrute testdisk tor-browser" +- DISTRO="archlinux" TOOL="unicorn veles virtualsocket xortool xrop yafu zsteg elfkickers honggfuzz" +- DISTRO="archlinux" EXPECTFAIL=1 TOOL="angr barf beef bindead capstone codereason dislocker elfparser hash-identifier" +- DISTRO="archlinux" EXPECTFAIL=1 TOOL="hashkill littleblackbox mitmproxy panda pathgrind preeny qira ropper shellsploit" +- DISTRO="archlinux" EXPECTFAIL=1 TOOL="snowman sonic-visualizer sqlmap stegdetect taintgrind villoc wcc xspy z3 python-pin" + +# Tests for trusty, grouped together to most optimally use a single build process +- DISTRO="trusty" TOOL="afl android-sdk apktool barf binwalk burpsuite capstone checksec codereason" +- DISTRO="trusty" TOOL="commix cribdrag df dirb dirsearch dislocker elfkickers elfparser evilize exetractor jdgui keystone libheap littleblackbox mitmproxy msieve pdf-parser peda peepdf pemcrack scrdec18 shellnoob shellsploit snowman sqlmap ssh_decoder sslsplit steganabara stegsolve subbrute bindead hashkill python-pin qira stegdetect villoc zsteg" +- DISTRO="trusty" TOOL="featherduster firmware-mod-kit foresight gdb gdb-heap gef hash-identifier hashpump hashpump-partialhash honggfuzz testdisk tor-browser unicorn virtualsocket xortool xspy yafu z3" +- DISTRO="trusty" TOOL="pkcrack preeny pwndbg python-paddingoracle pyvmmonitor qemu radare2 reveng ropper rp++" +- DISTRO="trusty" EXPECTFAIL=1 TOOL="angr beef panda pathgrind pwntools sonic-visualizer taintgrind veles wcc xrop" + +# Tests for xenial, grouped together to most optimally use a single build process +- DISTRO="xenial" TOOL="afl android-sdk angr apktool barf binwalk burpsuite capstone checksec codereason" +- DISTRO="xenial" TOOL="commix cribdrag df dirb dirsearch dislocker elfkickers elfparser evilize exetractor jdgui keystone libheap littleblackbox mitmproxy msieve pdf-parser peda peepdf pemcrack scrdec18 shellnoob shellsploit snowman sqlmap ssh_decoder sslsplit steganabara stegsolve subbrute" +- DISTRO="xenial" TOOL="featherduster firmware-mod-kit foresight gdb gdb-heap gef hash-identifier hashpump hashpump-partialhash honggfuzz testdisk tor-browser unicorn veles virtualsocket xortool xspy yafu z3" +- DISTRO="xenial" TOOL="pkcrack preeny pwndbg python-paddingoracle pyvmmonitor qemu radare2 reveng ropper rp++" +- DISTRO="xenial" EXPECTFAIL=1 TOOL="beef bindead hashkill panda pathgrind pwntools python-pin qira sonic-visualizer stegdetect taintgrind villoc wcc xrop zsteg" script: - ./bin/travis-ci.sh diff --git a/Dockerfile.fedora b/Dockerfile.fedora new file mode 100644 index 0000000..71f00f7 --- /dev/null +++ b/Dockerfile.fedora @@ -0,0 +1,19 @@ +FROM fedora + +RUN dnf -y install which sudo git + +RUN useradd -m ctf +COPY .git /home/ctf/tools/.git +RUN chown -R ctf.ctf /home/ctf/tools + +RUN echo "ctf ALL=NOPASSWD: ALL" > /etc/sudoers.d/ctf +USER ctf + +WORKDIR /home/ctf/tools +RUN git checkout . +RUN bin/manage-tools -s setup +RUN bin/ctf-tools-pip install appdirs +RUN echo "workon ctftools" >> /home/ctf/.bashrc + +WORKDIR /home/ctf +CMD bash -i