用 Emoji 符号表示八卦
码点 0x2630 ~ 0x2637,十进制 9776 ~ 9783 的 Unicode 正好是八卦符号,顺序是先天次序。
☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷
☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷
码点 0x2630 ~ 0x2637,十进制 9776 ~ 9783 的 Unicode 正好是八卦符号,顺序是先天次序。
☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷
☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷
是我和山妻结婚12周年纪念日。当年结婚的时候,正逢百年难遇的雪凌灾害,差点我们都不能出席自己的婚礼。今年寒假到海南度假,又遇到新冠状病毒肺炎疫情,全家人困在40平米的小房子中,实在无聊也只能在小区里面溜达溜达。所以有感而发。
昔遇雪灾迎美眷,
今逢时疫滞南琼。
斜阳碧海接天际,
巧妇拙夫困院中。
这是鼠年春节的时候我想到的一副春联,借用了西游记中猪八戒和老鼠精的别号来代指猪和鼠。
上联:天蓬元帅释厄去
下联:地涌夫人送宝来
横批:正果得成
今年9月,学生组队报名准备参加本年度的全市中职学生技能竞赛。由于我在学校一直负责学校服务器运维和学校网络维护的技术支持,加之刚刚在9月份参加了全省职工的网络安全大赛,取得了还算说得过去的成绩。所以学校这边也让我配合唐刚老师一起辅导参赛学生。
比赛原定于遵义市职校承办,但由于设备没有到位(不由吐槽一句,现在的技能大赛已经沦为设备厂商的推销大会了,好多的项目不是面向实际的职业技能,而是绑定到了具体的厂家具体的设备上面),市里面决定取消今年本项目的赛事。我校信息学部部长兼网信办主任张明庆老师知道了这个消息,很想把这个比赛承担下来。于是来征询我的意见,问我能不能搞定这套系统。我经过认真思考,综合考量了我校的硬件、技术、人员以及比赛时间等各个方面的情况后,觉得能把这个事情搞定。于是张老师请示了学校领导得到许可之后向市教育局提出了承办赛事的申请。市里面同意了我校的申请,此时距离比赛也就一个月左右的时间,其中还包含国庆节7天的假期。时间紧急,所以在放假前我们开发小组的几个人碰了头,首先确定系统的总体设计。
软件系统设计:我们分解了若干个子任务,分由不同的人负责。
首先确定了第一部分也就是单兵渗透测试部分,全部出Web方面的试题,分为3个大任务8个小任务,分别是:
然后我们就分配任务,我负责软硬件部分的总协调、路由器的配置、虚拟机的部署以及单兵模式的第二大题的出题。
一共有7支队伍参赛,因此我们调配了7个交换机来分组隔离,另外购买了两个8口的路由器来分别连接各组和服务器,购买两个的原因是一个使用一个后备。得到的路由器本身带有 iKuai 系统,但是经过测试,iKuai系统不能完成需求,于是我决定使用 pfSense 系统,具体配置过程如下。
设置规则策略,根据上面定义的IP和时间段定义不同时间的不同访问策略
浮动规则
中,让所有IP均可访问裁判机浮动规则
中,让所有IP在ctf2-2时段均可访问 ctf2-1~ctf2-7经测试,这样设定可以达到网络分组、定时通放的目标。只是在测试过程中,一台路由器不明原因死机,另一台不明原因温度飙升到50度,所以我们在后面一直提心吊胆,担心设备出现故障。
我自己写的部分并没有花费多少时间,倒是修改别的同事负责的部分费时不少。主要有这样一些值得说道的地方:
密码爆破
、古典加密
等部分的账号和密码,均改成了在第一次运行时动态生成。系统采用Linux,在上面部署一个具有上传、包含、注入等漏洞的CMS系统让选手通过Web攻击提权攻击,给选手一个低权限账号,并且把这个账号的主目录设置成Web的根目录,方便进去防守修改。另外再留一些系统后门。
系统后门我首先想到的是用netcat、后面还是选用了 php -S
来启动一个WEB服务器,再把/flag软链接到这个服务的根,当然这个服务必须用上面的低权限账号启动,这样防守的时候才能关闭。
另外我还设计了一个简单密码的系统账号,当然密码也是随机的,让选手使用SSH爆破登入。
最初我的flag是使用Bash生成的,调试的时候总是和裁判机对不上,后面反复调试才发现Bash的很多命令结果有换行符,最后还是用PHP写了一个,当然这个文件权限要设置为700,不能让选手阅读。
我最开始设想的是在服务器上部署虚拟机的方式,用桥接的方式即可拥有外部IP。但是我发现虚拟机的复制很麻烦,并且定制也很不方便。考虑到我们的题目都可以在Linux上部署,于是我决定使用Docker来完成需求,一个循环即可解决所有机器的部署。
至于靶机IP地址的解决,我是这样处理的:在Docker宿主机上设定网络别名,并设定IP和网络即可,概念代码如下:
ifdwon eh0:1
ifup eth0:1 10.10.10.10 netmask 255.255.0.0
然后在生成容器的时候把需要开放的端口映射到容器即可,对于网络攻防阶段的后门端口,我采取了容器内部固定,在启动容器时用随机端口映射的方式,因为时间关系,我把随机端口的范围限制到了 5000~10000。
因为前期考虑还算周到,加之其他同事的配合,学校有关部门对外部环境的保障有力。比赛过程还是很顺利的,基本没有什么意外出现。只是我过于高估了学生的水准,题目难度偏难了一点,第一阶段开始30分钟了还没有人得分,后面我紧急调低了试题的难度。对于修改Cookie和XSS攻击这两部分去掉了必须转码的限制,才让数据好看一点。也幸好采用了Docker部署,一个循环即可把改变后的题目部署到所有容器。
SciTE是一个非常轻量的开源的源代码编辑器,在Window和Linux下都能使用,不过默认不支持中文,这是中文支持的配置文件,通过菜单 Options | Open User Options File 输入。
code.page=65001 ; or cp936
output.code.page=65001; or cp936
font.base=font:!Monaco,size:16
font.small=font:!Monaco,size:12
font.comment=font:!Monaco,size:14
font.monospace=font:!文泉驿微米黑,size:16
font.code.comment.box=$(font.comment)
font.code.comment.line=$(font.comment)
font.code.comment.doc=$(font.comment)
font.code.comment.nested=$(font.comment)
font.text=font:!Monaco,size:16
font.text.comment=font:!Monaco,size:14
font.embedded.base=font:!Monaco,size:16
font.embedded.comment=font:!Monaco,size:16