-
-
[原创]Hack-A-Sat 2020预选赛 beckley
-
发表于: 2022-12-11 12:30 13575
-
逛论坛发现了这本书:https://bbs.pediy.com/thread-275220.htm 好家伙,这不是日卫星吗,必须学一波
在 Github 搜了搜题目的源码:https://github.com/cromulencellc/hackasat-qualifier-2020,准备复现一遍,这一关叫做模拟卫星视角,给了我们一个卫星拍摄时的TLE,我们通过谷歌地球去设置卫星视角观察得到 flag
进入 generator-base 之后运行docker build -t generator-base .
把基础的镜像生成出来
然后进入 beckley 文件夹把 solver 和 challenge 文件夹中的 Dockerfile 的 get-pip.py 的 url 换一下,换成:
https://bootstrap.pypa.io/pip/2.7/get-pip.py
我会把我用的最终版本放在 https://github.com/yichen115/hackasat-qualifier-2020 用这个就不用改 url 了
使用make build
生成镜像,也可以用make challenge
只生成题目镜像
使用apt install socat
安装 socat
使用以下命令运行环境
咱也不知道这题是啥意思,按照 wp 先验证一下能不能拿到 flag,新开一个终端运行得到一些提示
然后运行下面的命令得到 flag
如图所示
按照 https://blog.csdn.net/hackasat/article/details/127814688 的描述,这道题环境搭建起来后你能看的就只有 static 文件夹里面的 remote.kml 和一个 172.17.0.1 19020 的地址
就从这两个提示开始入手,nc 连接之后获得了如下信息
大意是太空中有颗卫星于 2020 年 3 月 26 日 21:52:55 按照特定的视角拍到了华盛顿纪念碑,让我们通过 Google Earth Pro 的 KML 文件模拟卫星拍摄时的位置看一下华盛顿纪念碑从而获得 flag
Google Earth Pro 可以在这里下载到 https://www.google.com/earth/versions/
https://developers.google.com/kml/documentation/kmlreference
可以在谷歌地球上新建一个地标,试试 kml 文件是怎么创建的,点击这个黄色的工字钉
然后随便在地图上找个点,把工字钉拖上去,随便写点名称和说明
然后将右键地图上的工字钉,保存的时候选择类型是 kml 格式
可以看到主要的位置信息就是在 LookAt 这个标签里面的,LookAt 就是你从哪个视角来观看这个地标的
对应的,在题目给的 remote.kml 文件中也是要我们修改这个位置的信息
longitude 是经度,不用解释吧
latitude 是纬度,不用解释吧
altitude 是海拔,不用解释吧
heading 是飞行器前进的方向
tilt 是卫星与地球表面法线之间的角度
range 是卫星距离目标的距离
altitudeMode 是高度模式,这个不用咱们改
还有一个在这里面没有体现出来的 <Link> 标签,这个是用来通过网络链接获取 KML 文件,那我们先把这个 link 换成 nc 连接上后获得的地址 http://172.17.0.1:19021/cgi-bin/HSCKML.py,选择文件 -> 打开 -> remote.kml 把临时位置的层级全部展开,可以看到一个地标是 Keep Looking... 说明咱还没找到正确的观察视角
接下来我们研究研究 LookAt 要怎么设置,就是卫星拍到华盛顿纪念碑时的位置,相关线索就是 nc 上去输出的两行信息,这个叫做双线元素集 (TLE),好家伙,专业知识来了
https://www.space-track.org/documentation#/tle
卫星双线元素集(TLE)是一种编码格式,用于在两行中存储卫星的轨道参数。这些轨道参数是由观测到的卫星运动数据计算得出的。TLE 可以用来预测卫星的运动,并用于各种应用,例如卫星导航和通信
我们做个表说明一下这些数据的含义(感觉给的这些数据对不太起来)
第 0 行
列
数据
描述
1-24
REDACT
基于卫星目录的信息的对象的通用名称
第 1 行
列
数据
描述
1
1
行号
3-7
13337
北美防空司令部 的卫星编号
8
U
U 非保密的,C 机密的,S 绝密的
10-17
98067A
国际卫星标识符,98表示年,067表示这年第几次发射,A 表示卫星的第一部分
可以参考:https://www.zhihu.com/question/268074570/answer/332683919
19-32
20087.38052801
TLE历时,轨道数据的时间点,20 表示 20 年,087表示第 87 天(我咋算的 86 天),38052801 表示这一天的时刻
34-43
-.00000452
平均运动对时间的一阶导数
45-52
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
- 对某款智能手表的分析与攻击 6295
- [原创][车联网安全]使用STM32开发板实战汽车UDS诊断 14999
- [分享]binwalk路径穿越导致RCE(CVE-2022-4510) 9975
- [原创]Hack-A-Sat 2020预选赛 beckley 13576
- [原创]一个BLE智能手环的分析 31520