压缩包数据清洗最佳实践

常用的压缩包格式有zip,rar,7z这三类。一开始在处理这些压缩包时,采用的思路是直接用python封装的第三方模块如zipfile、rarfile、py7zr这些直接处理原始压缩文件。

如果只是处理几百兆的小文件,是没有任何问题,但对于几十G的压缩包效率极其低下,尤其针对不解压提取压缩包内部的文件内容的场景,一个rar的压缩包处理时长可能花费数十个小时。

本文针对压缩包清洗,花费大量时间研究。深入分析清洗数据的坑点,以及优化思路。

阅读更多

Zerotier + Openwrt异地组网高阶配置

和朋友一起协同开发,需要打通双方的局域网互访,所以考虑到vpn的场景。一开始考虑frp+openvpn的实现。frp实现点对点穿透,openvpn负责组网。但是感觉这样配置较为繁琐,双方都需要部署frp和openvpn,体验不是很友好。

探索了多种方案最终选择了Zerotier,一个自带P2P打洞的vpn,同时满足需要。只需要自建一台有公网ip的moon服务器就可以高效实现各个zerotier节点之间的打洞。

阅读更多

0889挖矿团伙rootkit后门溯源排查记录

近期发现某国内的黑客团伙用0889.org作为恶意样本地址和通信域名,后面简称0889组织。最近一次排查某云上挖矿的case,发现该组织通过jenkins RCE漏洞突破边界,内网横向后拿到主机权限后,批量下发挖矿和rootkit后门。

挖矿就没什么好说的,本文重点分析该组织的rootkit后门隐藏手法以及应急排查思路。

阅读更多

rsync+tls 实现远程数据同步加密传输

rsync是一个高效的数据同步工具,但是使用rsync本身只支持ssh和rsync这两种传输协议。我最近遇到了一种场景是从境外的服务器上同步到国内的NAS上。直接传输很容易被GFW阻断掉,但是rsync本身不支持tls加密。

最终通过 trojan + rsync 实现伪装tls流量远程同步文件。

阅读更多

开发ko内核模块,无依赖实现监控DNS请求进程

监控Linux主机发起DNS请求的进程是应急响应中经常遇到的一个问题。虽然可以通过systemtap或者ebpf的方式实现,但是在实战场景下两者的安装都非常麻烦。

  1. ebpf不支持低版本的内核,升级内核又需要重启,真实场景下不太可能实现。并且大部分内核只支持源码编译安装ebpf,过程非常繁琐。
  2. systemtap必须安装当前指定内核版本的debuginfo,依赖多个包,动则几百M上G。镜像源都是国外的,在客户现场下载非常耗时。

监控发起DNS请求原本只是非常小的需求,用ebpf和systemtap简直是大材小用。我一直在思考有没有更轻量通用的解决方案。

阅读更多