CTF中的无线电以及一些取证题目
前言
好久没发博客了,我的GitHub搭建的博客主题改好了,也就不改了, 以后慢慢转到我的个人博客上面了,CSDN很少发了。可能会不定时发一些。
之前打的比赛,看了眼还有附件,于是就找一下wp并复现了一遍。
这个比赛我记得当时好像就web签到成功了,然后就没有然后了。
无线电
roarCTF
无线电的知识点——https://md.byr.moe/s/Bk6tsb2O8
Hi_433MHz
附件给的是扩展名为s8的文件,它是音频的原始数据。所以在给audacity中导入时,需要选择导入原始数据
打开在中间可以看到有数据模块,放大看是这样的。而且它每个部分有9个,不符合摩斯密码的规律(尝试转一下,转不出来)。
转换成01,细的为0,粗的为1。
01100110 01101100 01100001 01100111 01111011 00110010 00110101 01100011 00110010 00110001 01100010 00110000 01100100 00101101 00110110 01100001 00110001 00110001 00101101 00110100 00110011 00110001 00110010 00101101 00111001 00110111 00110001 01100010 00101101 00110100 00110010 00111000 01100100 00110000 00110001 01100011 01100100 01100011 00110101 00110011 00110100 01111101
将其转换为10进制数字,然后转成ASCII码就是flag
一个简单的Python脚本,进行转换
#!/usr/bin/python
# -*- coding: utf-8 -*-
# author: m0re
# blog: https://m0re.top
test = ['01100110', '01101100', '01100001', '01100111', '01111011', '00110010', '00110101', '01100011', '00110010', '00110001', '01100010', '00110000', '01100100', '00101101', '00110110', '01100001', '00110001', '00110001', '00101101', '00110100', '00110011', '00110001', '00110010', '00101101', '00111001', '00110111', '00110001', '01100010', '00101101', '00110100', '00110010', '00111000', '01100100', '00110000', '00110001', '01100011', '01100100', '01100011', '00110101', '00110011', '00110100', '01111101']
for number in test:
print(int(number, 2))
FM
这个题目是根据此篇博客进行复现。https://www.r00team.cc/writeup/2020-roarctf.html
做频谱图查看,
使用脚本进行处理,这里贴一下大师傅的脚本
import numpy as np
y = np.fromfile('fm-sample-rate-2MHz.iq', dtype = np.complex64)
re1 = y.real[:-1]
re2 = y.real[1:]
im1 = y.imag[:-1]
im2 = y.imag[1:]
y_demod = im2 * re1 - im1 * re2
y_demod = y_demod / np.max(np.abs(y_demod))
y_demod.tofile('out2.bin')
再次导入,数据格式为单通道32位浮点数,采样率2MHz。作频谱图
进行降采样,将上述信号的采样率降低10倍(200kHz),转换为可以处理和收听的音频信号
import numpy as np
import scipy.signal
y = np.fromfile('out2.bin', dtype = np.float32)
y_dec = scipy.signal.decimate(y, 10, ftype = 'fir')
y_dec.tofile('out2-dec.bin')
导入,按照原格式导入即可听到正常的音频。读的flag内容。
flag{82c83416-dadc-4947-80df-b84852b8f35d}
2018ciscn-misc-寻找入侵者
这个题目是在查找资料过程中,发现的一个不了解的知识。所以就也进行复现一下,了解一下这个知识。原文地址——https://www.anquanke.com/post/id/162546
打开wireshark,导入该数据包,可以看到很多的数据,
wireshark中无线帧的类型和过滤规则对照表
题目描述:“黑客使用无线钓鱼攻击一个SSID为‘CyberPeace’的热点”,我们可以先过滤SSID名为CyberPeace的Beacon的信标分组(一般通过Beacon就可以分析出AP的基本信息),过滤语句wlan.fc.type_subtype == 0x0008&&wlan.ssid==CyberPeace
详情:Beacon的说明如下
关于802.11帧格式
—https://www.cnblogs.com/shwang/p/12162692.html
这篇文章写得比较详细,比较容易懂。
看时间戳,普通的数据包的时间戳是
而看到不同的时间戳是00
就是到2153条数据时,是00,看到的mac地址是(88:25:93:c1:c8:eb)
可以筛选一下全部时间戳为00的数据。
过滤语句是wlan.fc.type_subtype == 0x0008&&wlan.ssid==CyberPeace&&wlan.fixed.timestamp == 0x00
时间戳全部都是00,而且Mac地址是一样的。
题目:握手包密码就是他的网卡地址
将密码写入TXT文件中,然后通过利用aircrack-ng工具(kali自带)进行验证密码的正确性。
aircrack-ng hanshake.cap -w m0re.txt
然后就是对cap包进行解密。
第一种方法
利用wireshark官方在线网站——https://www.wireshark.org/tools/wpa-psk.html输入密码和SSID就可以得到一串PSK
把hanshake.cap
在wireshark中打开。
在编辑——首选项——Protocols——IEEE 802.11
然后添加key-type为wpa-psk,添加key为刚才生成的PSK
点击OK就解密成功了。
第二种方法
使用airdecap-ng工具解密
#命令
airdecap-ng -p 88:25:93:c1:c8:eb -e Honey hanshake.cap
然后会生成解密后的流量包
再次打开就会发现跟之前不一样了。
有很多协议的数据,所以首先查看了一下http的。尝试导出http数据流。
导出数据收集信息。
再执行一下过滤语句,将GET请求方式筛选出来。
http.request.method==GET
很奇怪的是,导出http对象的时候,没有发现这个key压缩包,但是在筛选get请求方式的时候,发现了这个压缩包。
正常流程是访问网址,下载压缩包。
题目描述:他又发送重连请求的Malformat Frame试图崩溃我们的无线路由器
故攻击者发送了大量请求。所以筛选一下发送者的Mac地址发送的请求。
过滤语句:wlan.addr==88:25:93:c1:c8:eb
或者wlan.sa == 88:25:93:c1:c8:eb
然后emmmm,不是很懂最后这个
可以看看这篇博客
https://www.jianshu.com/p/04ef45f4b243
最后畸形数据Z9DY20jZIyjzY5vs0UQZVUg86eMYlNMzH
flag就是这个。
看了其他的wp,是strings命令解出来的
strings key.pcap
...
...
CyberPeace
0H`l-
ADSL Modem/Router
CyberPeace
0H`l-
!Z9DY20jZIyjzY5vs0UQZVUg86eMYlNMzH
也能得到最后这个答案。
未知信号
题目来源——点击传送ctfshow
下载下来直接使用SSTV软件打开就可以了。软件安装包链接——https://m0re.lanzoux.com/ibgwKk96pyj
简单介绍一下使用方法吧。
这边是接收和停止。
使用的时候先点接收,然后直接放音频,由于音频太长,设备不足,我没有继续进行(主要是5分钟的无线电波听着贼难受)
参考——https://wp.ctf.show/d/101
取证
以下题目来源——CTFhub
文件恢复
emmmm 工具一把梭。
一条命令解决
extundelete DR --restore-all
恢复出来的文件有Flag.txt
磁盘恢复
预期结吧
挂载到空文件夹上
mount 86b265d37d1fc10b721a2accae04a60d /root/桌面/m0re/
查看当前挂载的文件系统
df -lh
当前挂载在/dev/loop0系统下。
重新挂载分区,以只读方式
mount -r -o remount /dev/sdb2
-r
表示以只读方式,注意必须设置为只读方式
验证是否设置成功
cd /guazai
mkdir aa
mkdir: cannot create directory `aa': Read-only file system
表示设置只读方式成功。
执行debugfs
debugfs /dev/loop0
然后在debugfs提示符后面输入命令。
使用lsdel
命令,查看inode。
可以看到有两个inode,恢复文件时,不知道是哪个就挨个尝试一下。
使用ls -d
查看被删除的文件。这里发现有个secret.txt
文件,猜测应该就是flag所在了吧。
使用dump
命令恢复文件内容。
#使用 dump <inode> /路径
dump <12> /root/桌面/m0re.txt
然后查看文件内容。发现flag。
非预期解(大多是这样的解法)
直接strings即可。
strings 86b265d37d1fc10b721a2accae04a60d | grep FLAG
又或者是直接记事本打开搜索flag字段。拿到flag。
小结
此次学习无线电的基础知识,和一些文件恢复的知识点。
嗯,总结就这样水了吧,没了。