forensics: add already solved challenges
|
@ -0,0 +1,2 @@
|
|||
Salted__Ó†<¦PÚÿO¾r †E~cbkí¦Æ’ÍÒp&®}î¦Ñé³Ô
|
||||
F
|
|
@ -0,0 +1 @@
|
|||
picoCTF{nc_73115_411_5786acc3}
|
|
@ -0,0 +1,20 @@
|
|||
Taken from `tcp.stream eq 0`
|
||||
|
||||
> Hey, how do you decrypt this file again?
|
||||
> You're serious?
|
||||
> Yeah, I'm serious
|
||||
> *sigh* openssl des3 -d -salt -in file.des3 -out file.txt -k supersecretpassword123
|
||||
> Ok, great, thanks.
|
||||
> Let's use Discord next time, it's more secure.
|
||||
> C'mon, no one knows we use this program like this!
|
||||
> Whatever.
|
||||
> Hey.
|
||||
> Yeah?
|
||||
> Could you transfer the file to me again?
|
||||
> Oh great. Ok, over 9002?
|
||||
> Yeah, listening.
|
||||
> Sent it
|
||||
> Got it.
|
||||
> You're unbelievable
|
||||
|
||||
`file.des3` taken from `tcp.stream eq 2`, by showing data as `Raw` and saving to file.
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p bash openssl
|
||||
|
||||
openssl des3 -d -salt -in file.des3 -out file.txt -k supersecretpassword123
|
|
@ -0,0 +1,122 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="drawing.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.69833333"
|
||||
inkscape:cx="400"
|
||||
inkscape:cy="538.41159"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1872"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="48"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<ellipse
|
||||
id="path3713"
|
||||
cx="106.2122"
|
||||
cy="134.47203"
|
||||
rx="102.05357"
|
||||
ry="99.029755"
|
||||
style="stroke-width:0.26458332" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke-width:0.26458332"
|
||||
id="path3717"
|
||||
cx="107.59055"
|
||||
cy="132.30211"
|
||||
r="3.3341289" />
|
||||
<ellipse
|
||||
style="fill:#000000;stroke-width:0.26458332"
|
||||
id="path3719"
|
||||
cx="107.45217"
|
||||
cy="132.10078"
|
||||
rx="0.027842503"
|
||||
ry="0.031820003" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:0.00352781px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
|
||||
x="107.43014"
|
||||
y="132.08501"
|
||||
id="text3723"><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.08501"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3748">p </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.08942"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3754">i </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.09383"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3756">c </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.09824"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3758">o </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.10265"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3760">C </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.10706"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3762">T </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.11147"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3764">F { 3 n h 4 n </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="107.43014"
|
||||
y="132.11588"
|
||||
style="font-size:0.00352781px;line-height:1.25;fill:#ffffff;stroke-width:0.26458332;"
|
||||
id="tspan3752">c 3 d _ d 0 a 7 5 7 b f }</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1 @@
|
|||
picoCTF{3nh4nc3d_d0a757bf}
|
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 9.8 KiB |
|
@ -0,0 +1,172 @@
|
|||
#!/bin/sh
|
||||
# This is a shell archive (produced by GNU sharutils 4.15.2).
|
||||
# To extract the files from this archive, save it to some FILE, remove
|
||||
# everything before the '#!/bin/sh' line above, then type 'sh FILE'.
|
||||
#
|
||||
lock_dir=_sh00046
|
||||
# Made on 2023-03-16 01:40 UTC by <root@e076735df429>.
|
||||
# Source directory was '/app'.
|
||||
#
|
||||
# Existing files will *not* be overwritten, unless '-c' is specified.
|
||||
#
|
||||
# This shar contains:
|
||||
# length mode name
|
||||
# ------ ---------- ------------------------------------------
|
||||
# 1092 -rw-r--r-- flag
|
||||
#
|
||||
MD5SUM=${MD5SUM-md5sum}
|
||||
f=`${MD5SUM} --version | egrep '^md5sum .*(core|text)utils'`
|
||||
test -n "${f}" && md5check=true || md5check=false
|
||||
${md5check} || \
|
||||
echo 'Note: not verifying md5sums. Consider installing GNU coreutils.'
|
||||
if test "X$1" = "X-c"
|
||||
then keep_file=''
|
||||
else keep_file=true
|
||||
fi
|
||||
echo=echo
|
||||
save_IFS="${IFS}"
|
||||
IFS="${IFS}:"
|
||||
gettext_dir=
|
||||
locale_dir=
|
||||
set_echo=false
|
||||
|
||||
for dir in $PATH
|
||||
do
|
||||
if test -f $dir/gettext \
|
||||
&& ($dir/gettext --version >/dev/null 2>&1)
|
||||
then
|
||||
case `$dir/gettext --version 2>&1 | sed 1q` in
|
||||
*GNU*) gettext_dir=$dir
|
||||
set_echo=true
|
||||
break ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
if ${set_echo}
|
||||
then
|
||||
set_echo=false
|
||||
for dir in $PATH
|
||||
do
|
||||
if test -f $dir/shar \
|
||||
&& ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
|
||||
then
|
||||
locale_dir=`$dir/shar --print-text-domain-dir`
|
||||
set_echo=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if ${set_echo}
|
||||
then
|
||||
TEXTDOMAINDIR=$locale_dir
|
||||
export TEXTDOMAINDIR
|
||||
TEXTDOMAIN=sharutils
|
||||
export TEXTDOMAIN
|
||||
echo="$gettext_dir/gettext -s"
|
||||
fi
|
||||
fi
|
||||
IFS="$save_IFS"
|
||||
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null
|
||||
then if (echo -n test; echo 1,2,3) | grep n >/dev/null
|
||||
then shar_n= shar_c='
|
||||
'
|
||||
else shar_n=-n shar_c= ; fi
|
||||
else shar_n= shar_c='\c' ; fi
|
||||
f=shar-touch.$$
|
||||
st1=200112312359.59
|
||||
st2=123123592001.59
|
||||
st2tr=123123592001.5 # old SysV 14-char limit
|
||||
st3=1231235901
|
||||
|
||||
if touch -am -t ${st1} ${f} >/dev/null 2>&1 && \
|
||||
test ! -f ${st1} && test -f ${f}; then
|
||||
shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"'
|
||||
|
||||
elif touch -am ${st2} ${f} >/dev/null 2>&1 && \
|
||||
test ! -f ${st2} && test ! -f ${st2tr} && test -f ${f}; then
|
||||
shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"'
|
||||
|
||||
elif touch -am ${st3} ${f} >/dev/null 2>&1 && \
|
||||
test ! -f ${st3} && test -f ${f}; then
|
||||
shar_touch='touch -am $3$4$5$6$2 "$8"'
|
||||
|
||||
else
|
||||
shar_touch=:
|
||||
echo
|
||||
${echo} 'WARNING: not restoring timestamps. Consider getting and
|
||||
installing GNU '\''touch'\'', distributed in GNU coreutils...'
|
||||
echo
|
||||
fi
|
||||
rm -f ${st1} ${st2} ${st2tr} ${st3} ${f}
|
||||
#
|
||||
if test ! -d ${lock_dir} ; then :
|
||||
else ${echo} "lock directory ${lock_dir} exists"
|
||||
exit 1
|
||||
fi
|
||||
if mkdir ${lock_dir}
|
||||
then ${echo} "x - created lock directory ${lock_dir}."
|
||||
else ${echo} "x - failed to create lock directory ${lock_dir}."
|
||||
exit 1
|
||||
fi
|
||||
# ============= flag ==============
|
||||
if test -n "${keep_file}" && test -f 'flag'
|
||||
then
|
||||
${echo} "x - SKIPPING flag (file already exists)"
|
||||
|
||||
else
|
||||
${echo} "x - extracting flag (text)"
|
||||
sed 's/^X//' << 'SHAR_EOF' | uudecode &&
|
||||
begin 600 flag
|
||||
M(3QA<F-H/@IF;&%G+R`@("`@("`@("`@,"`@("`@("`@("`@,"`@("`@,"`@
|
||||
M("`@-C0T("`@("`Q,#(T("`@("`@8`K'<>H`.Y*D@0`````!````$F2#<P4`
|
||||
M``#^`69L86<``$)::#DQ05DF4UF(WJSO```@____Y)U_U<SW/^OTZ?'U_=L^
|
||||
M[6U=O_O(8_WQ_?;^]R_>L[`!&U8(`T&F0VH`T&@:```#0!IH``&@'J:#1HT`
|
||||
M]"`!H-``!M0;4VH>IM3,:FH@T:&(#3)B:`T,F@:-!IDTT-&AHP3(&@T-,0T&
|
||||
M(&0Q#1IH/2`,(-H1H`R9`%4T3)H>D:`TR9&AHT`R!H&09#",0``8C0#$,@,@
|
||||
MR8F@`TT:!H:!D8C0`0`@`"01`H!^_$QU,`V*$A`!6'F(]N[-;FC]^&3PR1#9
|
||||
MPR,KRW><F<49%$Q!!N[Y?=40;N##KW4D[`_\>RXRA?-VG(E/=DW&Q`:DU8G>
|
||||
MMFW,-D>1C@-1P&"MR*[TX&O7KM9]S5=DU0VC=9?.T'0?DVD+/#[?',M)']85
|
||||
M*8@&IZ7%1U*=`[3V(?.C;*QER!+T,)6UYG?BLMV7!\L\;3$+^W%89SR(9RO(
|
||||
M>+3K'>QL]21+'O&!V`_:4<<C7R!.D'BG?GI\GT1*W#AC625`V>W`87AZF@[I
|
||||
M:]!!QL1^'NUJ#8O\=0A54@29A#E-6B(?TR(09S3_#,Z0H'SQBO?]^LMC2G$!
|
||||
MA!19*?93"DWLZ`^I!$.L*!%ILMU#!AJ3SP_!>:^5PJIFC)-,*5ERC!7="@"$
|
||||
M,$;I*<PV8-8[\ORRQ:K_%W)%.%"0B-ZL[\=Q``````````````$`````````
|
||||
M"P``````5%)!24Q%4B$A(0``````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
,````````````````
|
||||
`
|
||||
end
|
||||
SHAR_EOF
|
||||
(set 20 23 03 16 01 40 19 'flag'
|
||||
eval "${shar_touch}") && \
|
||||
chmod 0644 'flag'
|
||||
if test $? -ne 0
|
||||
then ${echo} "restore of flag failed"
|
||||
fi
|
||||
if ${md5check}
|
||||
then (
|
||||
${MD5SUM} -c >/dev/null 2>&1 || ${echo} 'flag': 'MD5 check failed'
|
||||
) << \SHAR_EOF
|
||||
0838b0ca0f0415b3cb6f24da377204de flag
|
||||
SHAR_EOF
|
||||
|
||||
else
|
||||
test `LC_ALL=C wc -c < 'flag'` -ne 1092 && \
|
||||
${echo} "restoration warning: size of 'flag' is not 1092"
|
||||
fi
|
||||
fi
|
||||
if rm -fr ${lock_dir}
|
||||
then ${echo} "x - removed lock directory ${lock_dir}."
|
||||
else ${echo} "x - failed to remove lock directory ${lock_dir}."
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
|
@ -0,0 +1 @@
|
|||
picoCTF{f1len@m3_m@n1pul@t10n_f0r_0b2cur17y_950c4fee}
|
|
@ -0,0 +1,2 @@
|
|||
7069636f4354467b66316c656e406d335f6d406e3170756c407431306e5f
|
||||
6630725f3062326375723137795f39353063346665657d0a
|
After Width: | Height: | Size: 858 KiB |
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# NOTE: this is the license in the EXIF data. Not easy to spot...
|
||||
#
|
||||
echo "cGljb0NURnt0aGVfbTN0YWRhdGFfMXNfbW9kaWZpZWR9" | base64 -d
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p bash ouch
|
||||
|
||||
cp 1000.tar.bak 1000.tar
|
||||
|
||||
for i in {1000..2}; do
|
||||
ouch decompress $i.tar
|
||||
mv $i/$((i-1)).tar .
|
||||
rm -rf $i $i.tar
|
||||
done
|
||||
|
||||
ouch decompress 1.tar
|
||||
mv 1/flag.png .
|
||||
rm -rf 1 1.tar
|
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
grep -o "picoCTF{.*}" anthem.flag.txt
|
After Width: | Height: | Size: 17 MiB |
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p bash zsteg
|
||||
|
||||
export RUBY_THREAD_VM_STACK_SIZE=500000000
|
||||
zsteg concat_v.png
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p bash poppler_utils
|
||||
|
||||
pdftotext ./Financial_Report_for_ABC_Labs.pdf - | grep -o "picoCTF{.*}"
|
|
@ -0,0 +1,37 @@
|
|||
Randomly found in udp stream 6 while going through all the data sent back and forth.
|
||||
|
||||
```
|
||||
70
|
||||
69
|
||||
63
|
||||
6f
|
||||
43
|
||||
54
|
||||
46
|
||||
7b
|
||||
53
|
||||
74
|
||||
61
|
||||
54
|
||||
33
|
||||
31
|
||||
33
|
||||
35
|
||||
35
|
||||
5f
|
||||
36
|
||||
33
|
||||
36
|
||||
66
|
||||
36
|
||||
65
|
||||
36
|
||||
65
|
||||
7d
|
||||
```
|
||||
|
||||
cyberchef says
|
||||
|
||||
```
|
||||
picoCTF{StaT31355_636f6e6e}
|
||||
```
|
After Width: | Height: | Size: 106 KiB |
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p bash exiftool
|
||||
|
||||
exiftool ./pico_img.png | grep -o "picoCTF{.*}"
|
|
@ -0,0 +1,9 @@
|
|||
Found in tcp stream 5, packet 827 (the first unencrypted stream)
|
||||
|
||||
`Gur synt vf cvpbPGS{c33xno00_1_f33_h_qrnqorrs}`
|
||||
|
||||
Seems flaglike, maybe rot13 to protect against text search?
|
||||
|
||||
**Output from cyberchef:**
|
||||
|
||||
`The flag is picoCTF{p33kab00_1_s33_u_deadbeef}`
|