【2024HW】|3-红队 | 外网快速打点方法技巧总结

news/2024/5/5 18:11:00

红队攻防-外网快速打点方法&技巧总结

一、打点的基本认识

做过红队的小伙伴,对打点一定不陌生,这是一项基本技能。

所谓打点,就是拿到一台机器的shell。

打点的一般目的在于利用这台机器,做一个跳板,然后进入内网。

通常给予充分时间的情况下,打点不是一件很难的事情,因为系统总会有漏洞,就算系统没有漏 洞,人也有漏洞,也可以进行钓鱼,甚至还可以近源,可以花钱买内鬼,一切都只是打点的时间和价格成本与打到点进内网的收益的核算问题,本质就是一道数学题。

但是以在公司干活的普通员工视角出发,一般项目时间很紧,同时外部资源少,基本能用的东西就是自己的技术。

对个体而言,这种条件下,个人技术成为了主导因素,也就是说,一个红队人员快速打点能力的强悍与否,成为了一个普通红队和优秀红队的差别所在。

当然,这里有人会讲,那么有的地方可以给很多时间,或者说自己在实战中,在搞别的站的时候, 不是特定项目中,是有大把时间来进行渗透和攻击的,可以慢慢搞。

主流的ctf赛事解题时间也只有1-2天,很多攻防项目也就是一周时间,src中第一个挖到洞的才给钱,这是客观条件,对大家都是平等的。

项目就只有几天,这就是游戏规则,是没有道理可讲的,所以还是不要找理由了,因为也没啥用。

当然,从公司的角度出发,因为项目时间紧,而很大程度上,打点又是个体力活,不涉及太多技术,所以投入信息搜集的人越多,效果一般是更加好的。

总而言之,打点本身就是一种遍历行为,被攻击的目标就好像一个被围墙保护的城堡,红队要做的事情就是围着围墙转来转去,敲敲打打,看看围墙哪里没修好,哪里空了一块,然后趁机溜进去, 这是一个体力劳动,尤其在面对很多目标的时候,是一项繁重的体力劳动,在下文中会详细解释为什么我反复强调这是一项体力劳动。

二、打点的基本方法

基本方法,无非就是信息搜集-->找到脆弱资产-->漏洞利用→getshell,说起来是很简单的。

这其中最肝的一个部分,莫过于信息搜集了,纯体力活。

当然,过程可以用工具相对优化,但我依旧认为是最无脑的一个部分,就像大学生和小学生(高阶和低阶技术人员)一起用计算器(各种工具 fofa goby oneforall等)来算1w道加减乘除题(大量的资产 域名子域名 c段等)一样,其实是区分不开技术人员的水平的,很多头部的公司早就认识到了这一点,于是在大型攻防演练中,通常是派大量的人来进行资产收集,然后筛选出其中的脆弱资产后把资产给后续的利用人员来进内网快速拿分。

虽然信息搜集很无脑,但是该说还是得说,这个事情一般有以下几个步骤。

1、当项目经理告诉了你攻击目标的时候 →得到公司名→上企查查搜公司名→搜出来一堆公司和子公司

2、拿到这堆公司和子公司的名字→oneforall来跑一遍→然后得到了一堆子域名

3、拿到这堆子域名丢给Eeyes跑一遍→得到对应子域名对应的ip和c段信息

4、将对应ip和c段丢给fofa和fscan→fofa能快速得到c段资产信息,fscan能快速扫一遍,顺便帮你打一下常用漏洞

5、如果你的运气足够好,这个时候fscan已经有漏洞爆出来了,可以直接去利用了(小概率事件),但是如果你的运气不好,就要看接下来的第6步

6、刚刚fofa得到的资产看一眼,这里可以配合ehole的指纹识别来帮助快速筛选,通过筛选敏感资产,例如shiro,fastjson等直接能够反序列化getshell的资产(小概率事件),如果你的运气好,那么这个时候已经有漏洞了,可以直接利用了,如果你的运气不好,就要看接下来的第7步

7、通过上面一番筛选,时间已经过去很久了,但是目前却毫无进展,其实心里有点郁闷,这个时候就不建议再搞了,先休息一下,调整下心态,不然后续的几天会大幅度降低工作效率,休息好了感觉又可以了,就看看下面的步骤8继续吧

8、其实经过上面的一番筛选,web这块的基本已经过完了,但是依旧还没有漏洞,说明这个系统平时自查搞的比较多,基本的高危漏洞修复已经完成了,如果是大型攻防演练,那就建议换个目标再用上面的方法轮一次,如果是就某家单位做的定向攻防,就继续看步骤9吧

9、web的过完了,虽然没有直接能够rce的系统,但是我们获得了很多形形色色的登录后台\用户登录\注册\管理员登录等等等等交互类型的资产,这些资产虽然看起来没用,但是我这里要介绍一下攻防演练的三板斧漏洞,运气好的话,这些资产还是能够派上用场的

三板斧其一 反序列化漏洞:这个不用多说,我最喜欢的漏洞,只要有了这个漏洞,基本一台机子的shell就拿到了,看到就眼睛放光,但是可遇不可求,遍地都是shiro的时代已经渐渐过去了。

三板斧其二 文件上传:这个也是老熟人了,一般我会先看看是不是白名单,是白名单的话,就看看有没有文件包含之类的漏洞能组合利用下,如果是黑名单,就把文件上传的姿势对着上传点全部来一遍,看看有没有一个能中,如果能中,那就有了一个shell(没路径连不上但是确实是shell),虽然找上传路径也是一个拦路虎,但是至少比传不上去强。

三板斧其三 sql注入:这个更加老熟人了,注入之后,低权限,直接gg,高权限,试试吧,看能不能上shell。

至于其他漏洞,攻防演练就那么几天时间,八成是用不上,建议直接放弃,就把上面三个玩精(仅仅就攻防项目来说)。

10、对各种登录系统尝试弱口令/sql注入攻击,弱口令能登进去后台就找上传点,sql注入建议xray+burp来测,看到有戏的再上sqlmap。

还有一些信息搜集的方法,比如fofa搜关键字,title="单位名"等,这种方法可以自行穿插灵活使用,有时候有奇效,有时候没啥效果,看个人造化了。

还有些天选之人,直接一个弱口令登云桌面(horizon、vdi等)然后拿shell的,这种属于天赐shell,不在常规考虑范围之内,但也可以尝试。

11、弱口令如果爆不出账号密码,就考虑上网盘\github\sgk\泄露公开库搜对应人员的信息,看看好使不

12、如果还是没有用,就可以开始看公众号\app\小程序的信息

13、如果还是没有用,就要开始用域传送\备案号\ip反查网站\ssl证书\用google来搜c段

14、如果还是没有用,就用dirmap\dirsearch来对可疑的网站进行目录爆破,看看好使不

15、如果还是没有用,还可以钓鱼,发邮件也是一个体力活

16、如果还是没有用,拿上设备跟领导申请近源渗透吧

列了这么多,我就是想说明,虽然信息搜集是一项很重要的工作,是开启后渗透的基础,但这项工作是体力活真的是不争的事实,因为他没有门槛,基本谁都能做,无非就是用工具对着一项项checklist不断的去尝试而已。

因此通常意义上的快速打点,就是比谁先试完所有的checklist,虽然目前绝大部分工作都是由工 具来完成,整个项目呈一个半自动化的流程,但是仍然架不住资产量的庞大,一个信息收集熟练的人,无非也就是流水线的工人而已,对着巨量的资产不断的用工具筛选而已。

而一些高端打点技巧玩得好的人,例如电话钓鱼成功率很大的人,钓鱼邮件的撰写和钓鱼样本的开发做的很牛的人,在做这些事情之前,同样需要信息搜集,而能够玩高端技巧的人是不愿意来做信息搜集的,因为他们也是从小白阶段过来的,明白信息搜集这项繁重且技术含量低的工作完全可以找别人来做。

从公司层面上来讲,要快速打点,就要投入更多的人。从个人层面上来讲,要快速打点,要忍受枯燥的打点过程,然后提升自己的工具使用速度,最好自己能够进行二次开发,把一些半自动化的步骤连接起来,优化现有的步骤,从而进一步提升效率。

三、打点的技术区分线

很多时候,找到了一个脆弱资产,自己没利用成功,别人利用成功了,这是很普遍的现象。这就来到了打点的区分线,也就是漏洞利用上。

利用不成功有很多的原因,比如一台机器明明出网,但是反弹shell怎么都弹不回来。比如一台机器能够反弹shell,但是时不时就会断开。

比如一台机器能够写入一个内存马,也能够连接上,但是一旦下载或者上传一些较大的文件,就会失败。

比如一台机器,他能够执行命令,也能反弹shell,连接也稳定,但是执行特定的命令,就会失败。

这个时候,一个技术人员就脱离了苦力劳动的阶段,进入到了区分技术的时候了。区分一项工作是苦力劳动还是技术活其实很简单,看是不是谁都能做就行了。

有的漏洞利用在实战中涉及了一些很原理的东西,对于渗透人员的基本功考察以及联想能力的考查是很强的,因此这个时候技术更好的人就可以凸显优势。

举一个稍微极端的例子,那就是ctf,做题是需要理解的,不会就是不会,多久都做不出来,信息搜集只要告诉了基本方法,基本都能做,只是熟练度有差别,信息搜集的效率有差别而已。

就技术人员个体而言,单纯做一个熟练工,是很容易被淘汰的,应当花更多时间在技术的深化上, 建立自己的竞争壁垒。

技术的深化,代码能力是基础,进一步对各个系统和漏洞原理的理解,是延申,不断的学习和突破,最后技术就会越来越好,也就会脱离信息搜集的循环,迈入更高的层面。

不过做项目时候的信息搜集,那是公司项目,是不可避免的,公司花钱请人来就是干这个的。技术栈的突破和延申,是自己的事情。

我觉得更优的解法就是先集中花一部分时间练习信息收集,然后配合自研的小工具把效率提上去, 练到了一定程度,做项目的时候信息搜集基本都能出东西了,公司这边能跟客户交差了,再把时间花到漏洞的突破和延申上。

文章大体是讲思路,具体的技术细节,很多论坛上都有,这里不再赘述。

这里更大程度上,只是想把做一件事的动机以及如何权衡利弊做好一件事情的方法分享出来,大部分也是个人理解,难免会有错误,不足之处希望大家指正。


http://www.mrgr.cn/p/38730154

相关文章

【后端】PyCharm的安装指引与基础配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、PyCharm是什么二、PyCharm安装指引安装PyCharm社区版安装PyCharm专业版 三、配置PyCharm:四、总结 前言 随着开发语言及人工智能工具的普及&am…

可视化智慧工厂

在科技迅猛发展的今天,制造业正迎来一场深刻的变革——智慧工厂的崛起。可视化智慧工厂作为其中的重要一环,以其直观、高效、智能的特点,正成为制造业转型升级的关键所在。 一、什么是可视化智慧工厂? 传统的制造业生产方式往往依赖于人工…

机器学习/算法工程师面试题目与答案-数学基础部分

机器学习/算法工程师面试题目--数学基础部分 一、数学基础1、微积分SGD,Momentum,Adagard,Adam原理L1不可导的时候该怎么办sigmoid函数特性 2、统计学,概率论求 Max(a, b) 期望拿更长的玫瑰花的最好策略最大化工作天数的员工数切比雪夫不等式随机截成三段组成三角形…

详细谈电脑ip、域名、内网、外网、localhost、127.0.0.1、网关等通讯基础知识(易懂)

1. ip地址与域名的定义以及其关系 ip地址的定义: IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一…

如何查看eclipse版本

进入eclipse文件夹 点击readme 点击readme_eclipse.html 所跳转页面中release后的数字就是eclipse版本了 参考—— https://www.php.cn/faq/420634.html

链式栈————出栈、入栈

链式栈————出栈、入栈以链表作为基础实现栈空间(链式栈) 如果打算实现链式栈,一般是以链表作为基础,一般是把链表头部作为栈顶,方便数据的插入和删除(头插+头删),链式栈相当于是一个单向不循环的链表。链式栈要注意的点:出栈要考虑栈是否为空 入栈要考虑栈中是否有…

半导体晶圆厂内外网数据单向导出,什么样的方案才安全又便捷?

半导体晶圆厂企业为了隔绝外部⽹络有害攻击、保护⽹络和数据安全,通常采⽤物理隔离的⽅式,将企业内⽹与互联⽹隔离。⽹络隔离后,基于业务开展需求,部分重要数据仍需由内⽹导⼊及导出⾄外部⽹络区域。为保障数据的安全合规性,企业需要对⽂件导出导出⾏为进⾏管控。 不少晶圆…

打破国外垄断|暴雨发布纯血国产电脑

要说现在国产手机这边已然进入纯自研模式,但电脑这边却还是仍未打破国外技术垄断。但就在刚刚,暴雨发布自研架构台式机open Station X ,这是纯血鸿蒙系统之后国产又一款纯血产品发布!标志的我们已经彻底打破西方在硬件及软件方面的…

用斐波那契数列感受算法的神奇(21亿耗时0.2毫秒)

目录 一、回顾斐波那契数列 二、简单递归方法 (一)解决思路 (二)代码展示 (三)性能分析 三、采用递归HashMap缓存 (一)解决思路 (二)代码展示 &…

UE5 GAS开发P34 游戏效果理论

GameplayEffects Attributes(属性)和Gameplay Tags(游戏标签)分别代表游戏中实体的特性和标识。 Attributes(属性):Attributes是用来表示游戏中实体的特性或属性的值,例如生命值、…

docker - [10] 容器数据卷

1、什么是容器数据卷?2、容器数据卷的使用将应用和环境打包成一个镜像,然后发布启动就成为一个容器了。 一、什么是容器数据卷容器数据卷(Container Data Volumes)是Docker管理的一种特殊类型的存储区域,它为容器提供了一种持久化数据、共享数据以及与宿主机或其他容器之…

dial tcp 192.168.0.190:443: connect: connection refused

1、场景 用nerdctl登录镜像仓库192.168.0.190(Harbor),报错 ERRO[0006] failed to call tryLoginWithRegHost error"failed to call rh.Client.Do: Get \"https://192.168.0.190/v2/\": dial tcp 192.168.0.190:…

shell脚本文本处理工具

声明: 以下内容为个人笔记,内容不完全正确,请谨慎参考。 文本处理工具 cut: cut 工作是“剪”,具体来说就是在文件中负责剪切数据。cut 命令从文件的每个行剪切字节、字符和字段输出。 1、基本语法: cut [选项参数] filename 说明:默认分隔符是副表符 2、选项参数说明 选…

网络隔离的最小配置

作者:任云康,青云科技研发工程师前言 对于项目下的网络隔离,有用户提出了以下疑问:网络隔离是针对 Pod 的吗? 网络隔离的最小配置是什么?配置后,哪些是可以访问的,哪些是不可以访问的? 通过 Ingress 暴露、LB 类型的 Service 暴露、NodePort 类型的 Service 暴露的流量…

输入‘(’和‘)’判断字符串有效的函数算法

`// 设置一个函数,通过输入键盘中的‘(’和‘)’判断字符串是否有效 // 顺序表中的元素数据类型是char类型 typedef char DataType_t; // 创建顺序栈SequenceStack各项数据(栈底地址 栈容量 栈顶元素下标)的结构体 typedef struct SequenceStack { DataType_t *Bottom;…

ctfshow web41-web50

web41 代码审计 <?php if(isset($_POST[c])){$c $_POST[c]; if(!preg_match(/[0-9]|[a-z]|\^|\|\~|\$|\[|\]|\{|\}|\&|\-/i, $c)){eval("echo($c);");} }else{highlight_file(__FILE__); } ?> 过滤了&#xff1a;[0-9] [a-z] ^ ~ $ [ ] { } & -…

Suno:一键生成原创音乐的AI!还不赶紧体验一下?

最近一两年,AI的发展是飞速的,从AI聊天到AI绘画,再到AI视频,一次一次的刷新我们的认知,最近AI一键生成音乐也出来了。不知道大家有没有刷到过。今天盘哥就来把它分享给大家,你也可以一键生成专属于自己的音乐。01 - Suno(网站) 它就是一个可以一键生成音乐的AI网站,我…

详解Al作画算法原理

ChatGPT AI作画算法&#xff0c;又称为AI图像生成算法&#xff0c;是一种人工智能技术&#xff0c;它可以根据给定的输入自动生成图像。这类算法近年来变得非常流行&#xff0c;尤其是随着深度学习技术的发展。这里我将聚焦于目前最先进的一类AI作画算法&#xff0c;即生成对抗…

3种方式自动化控制APP

自动化控制APP不管是在工作还是生活方面,都可以帮助我们高效地完成任务,节省时间和精力。本文主要介绍自动化控制APP的3种常用方式。 1、Python + adb这种方式需要对Android有一些基本的了解。adb是一种用于调试Android应用程序的工具。使用Python和adb可以轻松实现自动化控制…

Appium控件交互策略:优化自动化测试效率的关键方法

简介 与 Web 元素操作一样(参考 Selenium Web 元素操作),定位到 APP 控件元素后,可以对控件进行一系列的操作,实现与 APP 交互,比如点击、文本输入、元素属性获取等。 控件交互常用方法 常见操作点击方法 element.click()。 输入操作 element.send_keys(appium)。 清除操…