请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,猫哥的秋刀鱼回忆录及文章作者不为此承担任何责任。猫哥的秋刀鱼回忆录公众号均不发表带有原创标志的文章,转载请附带公众号出处!此篇为红日安全vulnstack-ATT&CK实战系列 红队实战(一)靶场训练,旨在将攻击手段可视化,流程化,具现化。帮助新手检测Web信息收集,漏洞搜索与利用以及Getshell技巧能力是否达标。并且需要认知内网渗透信息收集与攻击姿势,掌握横向移动技术与通道的构建,并实现持久控制。
总是有些许许多多的事儿值得我们坚持下去,有一天,你遇到了一个让你眨眼睛都困难的女孩。这个时候,你过去直愣愣的说了一句:妞?你今年多大了?很明显,你是不是傻逼?
一个好的方案可以有很多,但是不可避免的要想法子去了解到兴趣、爱好、价值观、性别等等的差异信息。切换到实际渗透测试或者打靶训练思路当中的场景,倘若你直愣愣的打开靶场上扫描器,然后搜一大堆历史漏洞over,得到好的产出的可能性肯定不会很大。所以从某些角度来讲,整个渗透测试的过程中,最为重要的内容恰恰是起点的信息认知的关键性而非信息收集的广泛性。这其实和现今的认知作战是一致的,总得有战术也就是技战法,不可能直接撒豆成兵的。退其次我们都喜欢态势大图的花样和B格,为啥?因为直观,明确。当然也存在着面临分支过多而导致的穷竭而不能全部展示的毛病,所以往期后期的文章我会在少阐述基础,主要贯通思路,眼前一亮就对了!这,就是我的新年初衷。
这篇文章其实打算在年前就写了,拖了好久。本来想着一篇直接写完,但是绘图实在太麻烦了,这篇文章只好以外网打点为命题,阐述一下 思路梳理剖析&手法具现可视化 是个什么样的打靶学习流程,下一篇再说说内网渗透的命题点,算是给后期的同类型靶场训练标记样式,鼓励初学者多锻炼思考。自我感觉这样整要强于普通的训练手段,想法和实现呢也仅供新人与初学者参考。实际思路以个人为主。
这个是我根据红日官方提供的拓扑图进行重新绘制的网络拓扑图,我们照猫画虎按照配置即可实现环境的搭建与启动。
读了哈姆雷特,肯定有一千个莎士比亚,肯定的是这样的方式无非就是酷一点,我记得闲客师傅说如果来更牛逼的来打可能会有画不完的图,无可厚非的评价。我们关心的是:我们在面对时,能想出多少条路?能有多少更稳定直白的行进路线?我尚且不说奇技淫巧的关键性。单单对于新人,能够做好信息收集脑子里大概有个思路已经很不错了。奇技淫巧也是建立在长年累月的积累和经验上,我只是尽可能的画的好看点,思路再多一点,新手小白看的更仔细一点,让脑子里不成形的思路快速凝聚,下一次,或许你也能自己凝聚力量了,文字的力量是伟大的,知识对应于心心相应的人,街道上的人总是川流不息。
模拟的外网Web服务器IP:192.168.92.128,这就是我们首当其冲要拿下的目标服务器。在实际环境中可能这就是一台比较偏远的资产目标,我们代入后做的就是对它进行资产信息的梳理以及其脆弱资产的评估。阐述下大致的思路:端口-服务,这秉持着所有的入侵都源自于端口和它所提供的服务。我们就该选择使用什么样的工具来进行测试?流量的大小?结果的准确性?都是我们要考虑的问题。
在看到端口扫描得出的精确结果,我们基本就可以把方向划分为2个,Web服务与MySQL上下功夫。从Web服务我们尚且可知是PHP study的集成环境,确定为phpstudy与疑似存在的CMS这两个方向下手。所以还需要再进行广泛的目录扫描后,进一步梳理脆弱的点。
使用Dirmap或者其他工具扫描目录/二级目录,能发现一些信息泄露和备份文件以及有趣的服务。还是多多的进行测试并配以信息辅助,避免遗漏。
当然了这里不需要过多的深入指纹识别,在其他环境下我们还是要比较重视
基本用扫描器七七八八一遍,接下来就可以梳理我们应该从哪走了,7条:
C:/phpStudy/www/
从探针和PHP info页面我们就能收集一下组件配置的信息,我们能拿到网站的绝对路径对于马子的写入和定位是很有帮助的
我们就有理由怀疑是否存在CMS了,从备份文件泄露我们可以知道还存在一个YXCMS,这个就比较好办,查洞-Getshell-一步登天就可以了
从phpMyAdmin基本就是爆破写shell一条龙就可以了,MySQL账号密码爆破在探针还是phpMyAdmin页面撞击都无所谓,能出就行,然后Navicat连接进行数据库提权也是可以的
至于PHP study 后门利用可以看看文章,用burp的一个插件扫一下:BurpSuite-Extender-phpStudy-Backdoor-Scanner。看看能不能用,插件安装成功后,在每次抓包时就会自动的扫描分析漏洞是否存在,若存在漏洞,则会提示相应的告警信息。测试后发现没有后门文件可以利用。
说到备份文件还真的好好看一下,就会泄露很多关键的信息,比如后台地址和账号密码等等信息
可以利用的点真的的太多了,总之我们的目的就是传马子上去。
我首先想到的就是这个,就是看看general_log开启着没,general_log开启时所执行的SQL语句都会出现被写入在stu1.log文件中,如果修改general_log_file的值,那么所执行的SQL语句就会对应生成对应的文件中,进而达到getshell的目的
SHOW VARIABLES LIKE '%general%'
SET GLOBAL general_log = 'on'
SET GLOBAL general_log_file='C:/phpStudy/www/test.php'
SELECT '<?php eval($_POST["cmd"]);?>'
蚁剑连接即可
通过MySQL写入webshell的方式很多:
https://blog.csdn.net/weixin_39872872/article/details/112589789
PHPMyadmin后台getshell的几种方式:
利用之前得到的一些信息,登录后台,看看有没有上传或者什么可以写入shell的地方。也可以通过审计工具来进行快速审计下备份的源码,不过也比较容易找到一些前台模板与一些明显的写shell的地方。比如随便找一个模板进行修改,插入一句话木马。或者去搜搜历史存在的RCE,就更快了。如果实在没有可以现成利用的,请马上审计它。
我直接新建一个一句话木马,看到提示当前位置是在default文件下,我们配合着刚开始发现的备份文件beifen.rar可以快速找到目录。这个框架其实还有SQL注入,XSS等等漏洞,太多了就不做叙述了
综合下来莫非就是在不同的服务上找不同的出路,其实我们在真实环境中可能会遇到更麻烦的东西,比如MySQL拒绝外部连接,YXCMS被魔改了,泄露备份文件是不可能的,弱口令不存在,谁鸡巴用PHPstudy做环境啊,一句话木马上传被查杀,存在防护等等等等等诸如的问题,实际的麻烦很多很多,我相信你在看完上面的内容就可以把这个环境拿下了,如果再遇到困难一定也会想办法解决对不对?谷歌-必应-百度-会提问题再去问大佬。所以攻击效果评估是:鲁迅先生认为MySQL写一句话还是比较快捷稳健。
是不是觉得这也太简单了,TM这不是废话吗?你也不看看这好像是有手就行?
再看一遍图:
无论何种路线与行径,我们最终的打点目的就是拿下目标外网服务器的shell,为接下来的内网渗透做准备。做什么准备?
这感情好啊........
接下来就准备制作马子然后扔上去上线,开始激动人心的CS之旅即可
有什么好总结的?就是最最简单的Web渗透练手(水一篇),言归正传:
在这世上有些规律是需要遵守的,例如下面的定律:任何的工作刚开始都会充满了新鲜感,但时间久了,终归会变成一榔头下去就解决了。如何在信息收集阶段采取更为省力的方案?请结合前面信息搜集的流程图,思考整个关于渗透测试中对信息收集的思路设计及理论过程思考
算是简单的一个小问题作为这篇(水)文的结束语