首页
社区
课程
招聘
[原创]Hack-A-Sat 2020预选赛 beckley
发表于: 2022-12-11 12:30 13575

[原创]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


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2022-12-11 12:32 被yichen115编辑 ,原因: 修改内容
收藏
免费 5
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//