kanyewest CTF

勉強したことをメモしています。

COVID-19 CTF【Write-up】

Tiger King CTFと全部おなじ問題だと思って放置してました。一部の問題が同じですがこっちのほうが面白そうでしたね。

CovidScammers

Free Flag

1点なんでstringsコマンドかけてそれっぽいのがないか調べたらありました。

$ strings client | grep "{"
R)){R)){
:c|w{
c|w{
c|w{
c|w{
VjAj{j
jePj{jrj
jnj{j&
PjCj{j&
j{j
j?Vjhj{j
j1PjBj{j
I{{{
3K 3s$3S03{8
3K(3s,3S43{<
o{Pf
o{pf
o{@f
o{`f
jJPjwj{j
jHPjxj{j
juj{j
jvj{j
Vjmj{j%
jaPjej{j
j{RjBjzj
Pj{h
~{@f
o{@f
o{@f
o{@f
o{@f
o{@f
o{@f
o{pf
j{Ph
Pj{jkj
Pj{h
Pj{h
Pj{h
Pj{h
Kk{>n
,{gK
F1{C
.KX;`{
*w{7KL
{Fqh
6j{v
=P.{`o
{6Zgk
?)7{y
U{X4L
nyK{
{4]*9
"t{C
R{2Y
{U_Up
B'N{
{       iV
ms{|E
!{;-
F{h0p
-Q{,
|vg{~
2{$ZkKqN
HHRK{
{{RFXk
{hFD"
oc{qI
m{3fg
f{b2
u"{H
c*{:8
{A7"9
8.{E
d[m{
+{j|
~8{PAa
A{+d
Q{S0
NDZ}{
&C8{$
{%*'
G+|{e%
}eF{
k3I{
{|hN
#{-cO0
Td|v{_
{WNY
s\0{+
b{Yd
Vfhp68{
k8{:
U'{O
`u{w
V{UT
{%j}
oXA_{
g,Mn9{
{4tS
5Ix{:
_{:(
{J),
{ACM
kd{a
\7e{
{@(W
1G{14
J{8rs)F
{' D
Q&n{-w
U{ep3
y'{.U
)S{C
U {w
m5{RG5
Sj{T
<{#FX
`k@]{
4Yg#{J
{dI2
ZCh{
4{x1
+L0{
^2k_x{
        {53Zl
{6{&
{/lrx
[Wg*{
<W{.
D?]4    |{!
~cx{
p]X:q{>
ao{4
E{B!!
j{j"
PjAj{j"
Pj~j{j"
j{j.
jsPj{h
jtPj{
Wjmj{j2
Wjmj{j2
covid{freeFlagLookatMe}
H{1S
A4x{%`
{x`M`
{OJW
&5      M{
S[{Q
(fS{ggRcjh
{|WM
u;{Gk
{*eU
zj{&
E{B!!
&'&)&5&;&?&K&S&Y&e&i&o&{&
+'+1+3+=+?+K+O+U+i+m+o+{+
2)252Y2]2c2k2o2u2w2{2
5-535;5A5Q5e5o5q5w5{5}5
;!;#;-;9;E;S;Y;_;q;{;
=!=-=3=7=?=C=o=s=u=y={=
A!A3A5A;A?AYAeAkAwA{A
%*s%s OF %s {

Arch

$ file client 
client: ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=13b974db5ad86f4956c1373a90e6632104f7d1fa, not stripped

なのでアーキテクチャは、i386です。

Scouting

C2サーバのドメインを答える問題でした。 stringsでは見つからなかったですが、スタックに積まれてるっしょと思って適当にブレークポイント設置してスタックの中身みてたらそれっぽいのがあったので入力したらあってました。

0000| 0xffffcfa0 --> 0x56556fbc --> 0x62696c00 ('')
0004| 0xffffcfa4 --> 0xf7fddfcd (add    esp,0x30)
0008| 0xffffcfa8 --> 0xf7dc767c (<__GI_getenv+124>:   )
0012| 0xffffcfac --> 0x5669e24c ("OPENSSL_ia32cap")
0016| 0xffffcfb0 --> 0xf7d9d5fc --> 0x2a40 ('@*')
0020| 0xffffcfb4 --> 0x4 
0024| 0xffffcfb8 --> 0x742fdcf0 
0028| 0xffffcfbc ("mp/.serverauth.tn6aUcM0uF\002MNXXM2LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0032| 0xffffcfc0 ("serverauth.tn6aUcM0uF\002MNXXM2LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0036| 0xffffcfc4 ("erauth.tn6aUcM0uF\002MNXXM2LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0040| 0xffffcfc8 ("th.tn6aUcM0uF\002MNXXM2LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0044| 0xffffcfcc ("n6aUcM0uF\002MNXXM2LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0048| 0xffffcfd0 ("cM0uF\002MNXXM2LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0052| 0xffffcfd4 --> 0x4e4d0246 
0056| 0xffffcfd8 ("XXM2LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0060| 0xffffcfdc ("LEPNVUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0064| 0xffffcfe0 ("VUKZLQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0068| 0xffffcfe4 ("LQJF2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0072| 0xffffcfe8 ("2FGZKDOJCVI3KSFZDHEMDEJ4QX2===\n")
0076| 0xffffcfec ("KDOJCVI3KSFZDHEMDEJ4QX2===\n")
0080| 0xffffcff0 ("CVI3KSFZDHEMDEJ4QX2===\n")
0084| 0xffffcff4 ("KSFZDHEMDEJ4QX2===\n")
0088| 0xffffcff8 ("DHEMDEJ4QX2===\n")
0092| 0xffffcffc ("DEJ4QX2===\n")
0096| 0xffffd000 ("QX2===\n")
0100| 0xffffd004 --> 0xa3d3d ('==\n')
0104| 0xffffd008 --> 0x5674a5b0 ("covidfunds.net")

感想

時間なくて全然解けなかったですけどマルウェアを解析するっていう面白い問題なのでしっかり復習したいと思います。