聊一聊渗透测试过程中的脚本功能

今天就来给大家聊一聊在渗透测试中我们可能需要写的脚本功能,我平时代替手工提升效率使用的语言是 python,所以就以 python 为例贯穿整个渗透过程的功能,也可以作为指导,针对性的去学习和实践。

渗透过程中通常包含信息收集和漏洞利用两个主要部分,在信息收集中,我们要收集目标的外围资产信息,也就是我们在外部可以直接访问的服务器和应用,这其中包括:域名信息、IP 信息、企业内部员工信息、端口开放信息、web 应用信息等。

[[267041]]

信息收集

域名信息包含一级域名的注册信息以及企业对外解析的所有二级域名列表等,注册信息可以通过 whois 的方式去查看,互联网上存在很多网站提供 whois 查询的功能。

获取企业所有二级以上域名的途径很多,比如:

  • 通过爬虫的方式去目标网站爬取
  • 通过搜索引擎搜索相关数据
  • 通过字典进行枚举(dns 解析)

IP 信息是企业对外开放的所有 IP 列表,越多越好,获取 IP 的途径主要有两种,一种是通过收集到的域名解析出该企业的 IP 列表;第二种是通过 whois 查询这些 IP 信息,看这些 whois 信息中是否包含目标公司的信息,从而确认 IP 的归属,有的时候,whois 中包含的是一个 IP 段,获取你可以通过 IP 获取公司的整个 IP 段。

用户邮箱的收集主要通过搜索引擎寻找那些安全意识不到位公开泄漏的邮箱地址,还可以通过网上泄露的公司相关文档中保存的邮箱地址,更多的方式这里不说了,自己思考吧。

端口信息的获取主要通过扫描的方式,利用前面收集到的 IP 信息,利用端口扫描的方式获取所有开放的端口以及相关服务。

web 应用信息主要是方便我们寻找 web 应用的漏洞,其中包含 web 指纹、服务器信息、目录结构等。

涉及自动化的场景

(1) 如果我们需要测试的域名非常多时候,想要了解这些域名的基础信息,如果一个一个去 whois 查询,是不是会很累?我们能否进行自动化?当然可以,实现的方式也很简单,我们在网络上找一个可以查询域名 whois 信息的网站,查看其查询接口,使用 python 的 requests 库请求接口查询即可,然后写一个 for 循环,自动获取所有域名信息保存,跑完自己查看结果即可。

(2) 在收集二级域名列表时,我们需要从搜索引擎里提取相关记录,手工复制是不现实的,毕竟大厂的二级以上的域名都是上千上万的,所以我们需要从搜索引擎拿到搜索结果并将二级以上的域名提取出来,请求内容上面已经说了,提取域名主要用到的是 python 的 re 库,学习正则的使用至关重要。

(3) 收集域名列表除了爬虫、搜索引擎的方式外,还可以用字典枚举,枚举的过程主要用到的是 dns 的解析功能,python 中的 socket 库,其中有个函数 gethostbyname 可以实现你想要的功能,***准备一份字典就可以开跑了。

(4) 获取了一大批的 IP 地址,还想扩展更多的 IP,那么就需要对收集到的 IP 进行 whois 查询,Linux 下存在一个工具 whois 直接可以查询 IP 的 whois 信息,效率蛮高的,我们可以用 python 的 os 模块等可以执行系统命令的模块调用 Linux 下的 whois 程序查询你想查的 IP 地址,***处理查询的所有结果即可。

(5) IP 列表和 IP 段获得之后,我们要知道这些 IP 上开放了那些端口和服务,这时就需要对这些 IP 进行端口扫描,最简单的方式就是使用 nmap 来扫描,python 的调用方式跟上面的一样,我们还可以自己写端口扫描工具,其中最核心的是判断 IP 的某个端口是否开放,TCP 的三次握手原理我们要懂,可以用 python 的 socket 库,还可以用 scapy 库构造协议进行检测。

(6) 在端口扫描的时候,需要加快速度,降低检测的时间,那么就需要用到 python 的 threading 库,使用多线程技术,提升速度,在 guthub 上有很多封装好的 threadpool 库,直接利用就好。

(7) 对于 web 应用,***步是要获取基本的信息,我们可以使用 python 的 httplib、urllib、urllib2 等基础库,获取 IP 的 web 端口下的基本信息,包括 header 中的服务器信息、默认首页的标题和内容等。

(8) 目录结构信息获取的方式***种是通过爬虫根据网站的链接探测目录结构和文件列表,还可以通过自己收集的字典,进行枚举目录和文件,这里用到的库跟上面的类似,至于收集的全不全,就看你收集的字典够不够好。

漏洞利用

经过信息收集模块之后,我们对企业的资产信息有了大概的了解,其中可能会包含存在漏洞的应用,在漏洞利用阶段,需要自动化的地方不多,毕竟漏洞利用是具有破坏性的,大概提一下。

  • 网络层面的漏洞利用可以用 scapy 构造协议进行利用
  • web 层面主要是那些与 http 协议相关的库,如:urllib、httplib、requests 等

其他的大家可以补充讨论。

总结

这里提到的东西还是不全面,本文的主要目的是告诉大家,在搞渗透的时候,尽量实现自动化,总结规律,提升工作效率,在有限的生命里做更多的事,懒人是改变世界的主要驱动力,有些时候不要太勤快,容易导致你浪费大量不必要的时间。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/125913.html<

(0)
管理的头像管理
上一篇2025-02-23 23:29
下一篇 2025-02-23 23:31

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注