网吧网管如何在 DEF COOON CTF 中存活
全文都是流水帐
和 , writeup 没什么关系 。
俗话说的好
因为个人参与度的问题
Oh, Take Me Back, My Timemachine
在大学是跟着
工作之后无聊 职务了
The Order of Overflow
Summer Night Wind
实际
不
事情是这样的
- 一台用作路由器的
以及作为备份的树莓派, ; - 一台支持
防止, 当然事后证明多虑了, ; - 一块将近
足以支撑上述设备在没有电源供应的情况下满负载工作几个小时, 航空公司竟然真的让我把电池带上去了, ; - 以及一些笔记本和摄像头
用来协助做现场监视, 。
在提议将热点名称改成OpenVPN
R
正常运行Ra
Rp
第一天过去布好网络后最大的感受就是114.114.114.114
第二天的比赛xbox 360
dooom
网络恢复后
美好的做题时光总是短暂的dooom
我是在酒店看最后的颁奖典礼的
- 从来没有预计到
; - 酒店网络实在是糟糕
也不知道明年会在哪个酒店, 头大, ; - 今年攻击脚本没有发挥出最大的效用
表面原因还是大家的习惯问题, 但深层原因是协作本身的成本就很高, ; - 类似的
和我们一样, Tea Deliverers, idarling, 在赛前我们实际花了很多时间和精力处理。 相信, 但看来无论是我们还是, 都没有达到符合预期的成果, 深入思考后我觉得。 核心问题在于, 让实现, “ 协同逆向” 。
Baba O'Riley
实际去年在去
在这次
纯远程的比赛
- 和比赛方网络的连接
按照。 我们会通过一个带有, wireguard
jumpbox
考虑到美国云市场的情况。 估计他们用的就是, 所以在云上提前买了美国的机器, 用来写入, wireguard
。 - 选手接入网络
由于大多数选手都在国内。 因此需要准备好国内的, 并提前分发配置信息, 此外。 因为在美国也有同学参与比赛, 也需要准备给他们的, 不过需要在服务器上屏蔽掉对方的。 防止国内同学误接到国外, 或者反过来( ) 导致被, 。 - 我们自己的服务设施
根据业务特性的不同。 服务器可能需要在不同的地点, 比如。 协作平台的主要用户在国内, 因此相关服务要部署在国内的服务器上, 而有些。 比如涉及到侧信道的攻击方法( ) 因此需要在国外也准备服务器, 。 - 中美服务器网络的
因为所有的服务都部署在上。 考虑到中美之间的网络本身就不够稳定, 我们果断决定借用〇〇〇提供的专线, 将国内和国外的两个云内网接在一起, 。
大致决定好了基础网络架构后
+---------------------------------------------------------------------------+
| |
| >Other players in our team< |
| |
+-----------------+----------------------------------+----------------------+
| |
| |
| OpenVPN | OpenVPN
| | The `dc28-redir-controller`
+--------+------+ +------+--------+ is deployed here
| | | |
| VPN Endpoint | | VPN Endpoint | |
| for CHN users | | for USA users | |
| | | | v
+-------+-------+ +-------+-------+
| | +---------------------------+ +--------------------+
| bandwidth and ACL limited! | | | | |
| save some money ;) | | Jumpbox, config copied +-----+ OOO's WG endpoint |
| | | +-----+ from OOO's machine | | |
| | | | | | | |
+---------------------------------+ | v | | +---------------------------+ +--------------------+
| | +-----+-----+ +-----+-----+ |
| CPU-intensive applications | | | QoS Promised | | |
| since EPYC servers are only +------+ Gateway +------------------------+ Gateway +------+ +------------------------------------+
| available in CHN available zone | | China | MPLS VPN? not sure. | U.S West | | |
| | | | 110-130ms, <0.1% loss | +------------+ Latency-aware programs |
+---------------------------------+ +-----------+ +-----------+ | & |
| Traffic-heavy programs (like pcap) |
| Reduce costs under the ocean |
| |
+------------------------------------+
- All connections are using WireGuard unless specified.
- Netdata is installed on all machines so we can do remote telemetry
and receive alarms.
在比赛前
OOO
- 私有题目实例
导致就算你能, 其他队伍也不会被影响, 而且, 这无疑进一步加重了运维同学的工作量。 也带来了一些问题, 但可能更多的是他们的经验不够丰富, 因为在〇〇〇和〇〇〇〇等公司的, 为了阻止一些老搅〇棍, 以及我这种乐于看戏的( 获得乐趣) 就引入了这种方式, ; - 打到
结合之前的分段下线, 这个很好。 很活跃气氛, 而且实际上给了队伍更多动力, 能否找到更奇妙的利用方式: 能否找到更奇妙的洞? ?
云原生的好处就是iptables
因为赛中大家基本都在会议室pinboool
最后投入时间比较长的是gameboooy
比赛结束后会议室里的气氛并不算特别好
总之开心是很开心
- 疫情控制得当
在这次比赛中显然演变成了主场优势, 但人多带来的沟通问题和人力浪费问题也超过了预期, ; - KoH
虽然被打的有点惨, 但真的有意思, 比攻防有意思, 虽然会被人吐槽不纯粹( ) ; - 传数据包这种典型的大流量业务应该走公网的
不应该出问题后才扩容, 浪费了一些预算而且影响了业务, ; - 监控指标应该再精细一些
且占用带宽长期高于一定程度的话, 就应该先扩容了, 不应该等到丢包的地步, ; - 缺少更精细的流量调度能力
不过说是这么说, 到底要怎么调度, 也没有想好, …… ; - 协作方面
协作工具实际上并没有太大变化, 而且甚至都使用起了微信群, 个人觉得这个东西是真的不堪用, 不仅沟通效率低, 新来的人也不知道上下文, 而且这个小而美的应用可真的是, …… ; - 不过语音会议真的是个好东西
以至于在, 如果需要远程工作的场合, 都喜欢挂一个会议软件在线上, 这样别人要叫我的话只要加入会议就可以了, 。
一边开心
所以最后请吃饭了嘛
?
I Don't Wanna Leave Tonight
到了今年
新的网络
相比于前几年赛前组织的几次专门比赛
此外
+---------------------------------------------------------------------------+
| |
| >Other players in our team< |
| |
+----------+------------------------------------------------+---------------+
| |
| |
| OpenVPN | OpenVPN
+-----------------+ +------------------------+ +---------------------------------------------------------------------------------------+
| | | +---------------+ | | +---------------+ |
| | | | | | | | | |
| Meeting Rooms +---------+ VPN Endpoint | | | | VPN Endpoint | |
| | | | for CHN users | | | | for USA users | |
| | | | | | | | | The `dc28+redir+controller` |
| | | +-------+-------+ | | +-------+-------+ is deployed here |
+-----------------+ | | | | | |
| | | QoS Promised | | + |
| | <<-------------------------->> | | |
| | | MPLS VPN? not sure. | | v |
| | | 110+130ms, <0.1% loss | | |
| | | | | +---------------------------+ +--------------------+ |
| +-----+-----+ | bandwidth and ACL limited! | +-----+-----+ | | | | |
| | | | save some money ;) | | | | Jumpbox, config copied +-----+ OOO's WG endpoint | |
| | Other | | | | Other +---------+ from OOO's machine | | | |
| | Servers | | | | Servers | | | | | |
| | | | | | | +---------------------------+ +--------------------+ |
| +-----------+ | | +-----------+ |
| | | |
| Cloud VPC - CN | | Cloud VPC - US |
+---------------+--------+ +--------------------------------------+------------------------------------------------+
+ All connections are using WireGuard unless specified.
+ Netdata is installed on all machines so we can do remote telemetry
and receive alarms.
从
赛前整理了下手中的材料
- 比赛前从淘宝买到了一台
; - 在仓库中挖掘出若干态
; - 一台由
装好了, 在往年的比赛中。 这台路由器是放在酒店房间的, ; - 原本被用来
拆解测试的 一台, 有, 4, ;
除此之外在京东上买了一些网线
网络部署方案
- 从各个地方接出
接入交换机上, ; - 软路由作为网关
使用全部网口, 和交换机做, bonding
lacp( L2+L3 hash, ) 并透传所有, ; - 在交换机上划分出四类
分别用于, : - 用户接入
1000( ) ; - 流量路由
1500( ) ; - 网管
500( ) ; - 与公网上游互连
1200-1300( ) ;
- 用户接入
- 每个房间各部署
当作接入点使用, 链接到用户接入, 并通过调整接入点信号强度, 保证终端尽量落到最合适的接入点上, ; - 用交换机承载接入业务
DHCP( 三层路由到网关、 并实现部分) ; - 刚好剩下两个网口
在路由设备所在的会议室, 用有线预留几根网线, 供紧急情况下接入网管段, 或进行流量镜像使用, 。
因为所有
但仅通过LD_PRELOAD
理论上ip mptcp endpoint
除此之外
在决赛前一周的练习赛前
A-roll
决赛那周的周一晚上
因为今年是线上
周六凌晨一点
在若干脚本中game_state.json
while true; do ... done
不久后比赛开始
没等感叹完
第一轮比赛结束后
# route table eth1, gateway 192.168.1.254/24
default via 192.168.1.254 dev eth1 src 192.168.1.1 table eth1table
192.168.1.0/24 on link table eth1table ...
# route table eth2, gateway 192.168.2.254/24
default via 192.168.2.254 dev eth2 src 192.168.2.1 table eth2table
192.168.2.0/24 on link table eth2table ...
并添加这样的策略
3000: from 192.168.1.1 lookup table eth1table
3000: from 192.168.2.1 lookup table eth2table
这样的目的eth1
ping -c 1 --interface 192.168.1.1 192.168.1.254 # test link
ping -c 1 --interface 192.168.1.1 1.1.1.1 # test network
这样
default
nexthop via 192.168.1.254 dev eth1 src 192.168.1.1 weight 1
nexthop via 192.168.2.254 dev eth2 src 192.168.2.1 weight 1
来方便的控制路由ip link set dev eth1 down
iptables
trace
# ip route show table eth1table
default via 192.168.2.254 dev eth2 src 192.168.2.1 table eth2table
192.168.2.0/24 on link table eth2table ...
很灵异eth1table
eth2table
rt_tables
30 eth1table
30 eth2table
40 eth3table
40 eth4table
不同的编号被赋予了相同的名字
修好后broadcooom
ooows
broadcom
mosquitto
node
node.js
B-roll
解决了各种混乱的事情后
睡自然是睡不了多久的www
13.37.0.0/16
192.168.0.0/16
redsocks
redsocks
想来也是有趣
此外因为
你手里有一个
主办方后来还说他们还在网内放了几台
第二天结束后
题目本身是一个带有符号的VMREAD
hyper-o
init
ows
为了保证第三阶段我的脑子还在线
令人伤心的是bdooos
赛后大家拍合照的时候
比赛后整理了下服务器上的数据
- 多备份
多测试, 早上线, 早测试, 真的很重要, 虽然是有一些不可抗力的因素在。 但一些低级错误, 比如写错路由表名字( 还是不该发生的) ; - 复杂度太高不好
容易扯〇, 但多尝试总是好事, 只要不要太影响大家的信心( …… ; - 赛中为了应付
ogx
一度找不到服务器, 看来只靠云也不太行, ; - 今年比赛临时写的三四个脚本里
其实去年都写过, 所以资料保存很重要, 但复用也很重要, 不过这个意义不大了。 毕竟明年要换主办方, …… ; - 流量调度完全没做
也没有准备, 这可能也是, 侧面说明协作的重要性, ; - 服务器之间数据共享也有问题
一份流量传, 不过还好都是在同地域, 没有花流量费, …… 。
除了网络有点抖动外
在多人协作方面idarling
Komm, süsser Tod
流水帐很长
赛后看到了
很幸运能和这样的一群人打
没有人知道下一届
不过对我自己来说
每年八月
放下手頭的工作 , 在 , Las Vegas 見故交新知 並肩作戰 , 折騰平時不想折騰的軟件 , 速成平時用不到的技能 , 繼續發光發熱 , (與其讓生命生鏽) 享受這段時光 , 。
Rainy Days and Mondays
这几周
这可能也是把爱好当成工作的一个坏处
另一方面也发现
总之过段时间重写下