渗透流程梳理
概念认知
我一直对渗透测试都没有一个完整的理解。大学的注意精力都放在了打ctf和java安全研究去了。接触渗透也只是去参与某个环节。最近实习工作和出于个人的技能的考虑,去系统的参与了些项目和和问了下大哥,现在有了一些初步的理解了。
我们先看下定义,渗透测试是针对计算机系统进行的一种模拟网络攻击,目的是为了寻找可能被利用的漏洞。这是一项自我评估测试,用于评估计算机系统和网络中可被利用的漏洞。确实很学术,感觉没看一样。其实简单来讲,在我们日常工作中,其实我们会有两种工作形式,渗透测试和红队护网。他们其中的区别就在于信息收集这一环节。渗透测试可以理解为给你网站去测试出漏洞,红队护网是给你目标。这里我们要理解目标和网站的区别。一个目标可是有多个网站。这样我们可以理解红队护网流程和渗透测试是包含关系。
渗透流程梳理
子域名获取
首先我们开始,裁判方给了我们几个资产,一般是一个域名或者集团名字等。那么我们就要去获取尽可能多的它对应的网站。域名又有为顶级域名和子域名,常见的顶级域名如 .com/.net/.org/.cn以及一些类别域名如.ac(常用于科研网站)/.edu(教育机构)/.gov(政府部门)子域名顾名思义可以理解为顶级域名或者父域名的下一级域名,即我们传统概念上要访问的网站。
我们可以使用一些专业的工具如OneForAll来进行一个子域名爆破,或者是使用网络空间搜索引擎来搜索。网络空间搜索引擎可以简单理解显示内容侧重网站资产属性,而不是内容。
IP获取
我们有了域名以后,我们就要去查询它所对应的一个IP地址。去确定我们的一个机器地址,有利于我们后文进行端口探测时减少重复的一些工作。
端口探测收集
我们获得一个网站后,我们就要尝试进行一个攻击了。那么我们就要去确定它的端口,因为web漏洞不只是web服务,还有mysql和redis等其他服务的东西,而且有时候web服务的默认端口可能不是放在80端口的,所以我们就要对端口进行一个扫描
网站关键信息识别
我们有了网站的端口其实就是知道了每一个服务网站,我们就要使用一些指纹识别工具去获取对应的网站系统了。为后文我们去获取shell,提供信息基础。
SHELL获取
经常打CTF的人可能就有惯性思维,不喜欢用工具去自动。但其实如果是前面信息收集部分做的好,使用工具还是可以检测处一些漏洞。同时对于工具没法检测的漏洞,我们后面是要进行手动测试的。
内网隧道搭建
我们拿到了一个对应的shell以后,我们存在一个流量访问的一个问题。这时候我们就要使用一些流量转发工具。就是我们有些主机不能直接访问,我们使用这些工具,让他对流量进行转发。然后我们访问装有这个工具的机器即可。
内网信息收集
网络信息
如果我们想要获取内网的一个网络信息,可以使用内网扫描三剑客。首先使用netspy寻找到存活的一个网段,然后使用fscan来进行网段漏洞的扫描。最后使nmap来扫描探测到的主机的全端口。同时我们可以查询对应的一个arp表来添加进对应的一个nmap扫描结果。同时去查询本机的一些信息,是什么系统和版本。
域渗透
进行域渗透信息收集
首先我们要明确一个概念就是内网区别于外网是存在很多的一个windows电脑的。这些电脑是由一个叫域控的东西进行管理。其中其他的一些关于域的概念这里就不细谈了。这里我们主要使用cs获取一下域的信息,如域列表,和主域啥的。
域横向移动
就是我们已经有了一台机器后,我们如何去获取在内网的其他机器。这里就会涉及到一些攻击手法如hash传递攻击等攻击方式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通