2020年 第 13 篇文章 ,flag 继续
每周至少更一篇
前言
本篇文章晚了两三天发,说明一下原因哈,最近在搞TSRC和青藤云的webshell挑战赛,时间被挤压了,文章会晚到,但不会缺席,继续今年的Flag。突然发现写完凌晨三点了,赶紧睡觉。。。
在上一篇文章中,我讲了认知方面的事情,主要包括 边界思想,复利模型和时间定价,算是这段时间读书的一个小分享,希望能对大家有一些启发,并应用到实践中。经常读一些思想方面的书,思考会逐渐变得深入全面,还是有很多不足,继续努力。
有一句话,我挺喜欢:
教育目的本质是改变自己,改变自己对经验的解读。
如果你买了很多书,买了很多课程, 想想这些到底有没有改变自己,自己是否在成长?
如果自己前后没有改变,那不就意味着为此付出的时间和金钱都浪费了吗?
因为焦虑去学习,只会让自己更加焦虑。
曾经读过曾国藩的传记,他对付太平天国的策略给我留下了深刻的印象,简单总结为六个字:
结硬寨,打呆仗
其实这是很多人不喜欢的“笨方法”,虽然注定能成功,可是觉得慢,觉得累,觉得克制,不过这确实是一条捷径:
认准目标,稳扎稳打,步步为营,不投机,始终掌握战略主动
不多说了,上周文章的最后预告了今天的内容是关于linux下的loader:用户态execve。
接下来会用 黄金思维圈 why-how-what 的方式来拆解这个问题。
一.Why:为什么研究用户态execve
why
做一件事情背后总有它根本的原因,不要被事情的表象迷惑。举个例子,老板让你给招聘会贴海报,那你直接去贴海报,其实有点单纯了。
同样,我不能直接给你摆出个linux下的loader,给答案是最没用的,对你们没有帮助,你们需要知道我研究它的原因和应用场景,以及我的思考过程。
研究用户态execve的实现,起初是从攻击的方向去思考的,在linux主机安全中,使用shell命令进行攻击是非常常见的场景,无论是横向移动,还是种马,很难不应用shell命令。
起初,我的想法是绕策略,可是想想这不通用,这家可以,到别家又不行。如果能避免被抓到shell命令,这应该是个通用的解决方案。
在之前的文章中,无"命令"反弹shell-逃逸基于execve的命令监控(上) 分享过关于shell命令的各种监控方式,其中最难绕过的是内核态的execve监控。
我的选择是抛弃execve系统调用来执行命令,而是思考自己实现用户态execve,这样就可以彻底摆脱命令监控,如果再延展一下,还会有更深层次的操作。
二.How:如何设计linux elf loader
how