渗透测试之信息收集

学习渗透测试前的了解

什么是渗透测试?

渗透测试(Penetration Testing),简称渗透测试或者Pen测试,是一种专门的安全评估方法,旨在模拟恶意黑客的攻击,以评估计算机系统、网络或应用程序的安全性。渗透测试员(Penetration Tester)通过模拟攻击来发现系统中的弱点和漏洞,并向组织提供详细的报告,建议改进安全措施,以提高系统的安全性和抵抗恶意攻击的能力。
 

为什么要学渗透测试?

1.增强网络安全意识: 通过了解渗透测试的原理和方法,人们能够更好地了解网络安全的重要性,以及黑客可能利用的攻击技术和手段。
2.提高系统安全性: 渗透测试帮助组织发现并解决系统中的潜在安全漏洞,从而提高系统的安全性,减少遭受真实攻击的风险。
3.符合法规和标准: 许多行业都有关于数据安全和隐私保护的法规和标准,学习和实施渗透测试可以帮助组织符合这些法规和标准的要求。
4.职业发展: 在网络安全领域,渗透测试人员是非常受欢迎的角色。掌握渗透测试技能可以为个人的职业发展带来更多机会和挑战。

需要学好的前置技能

• HTTP协议基础知识。HTTP协议属于计算机网络的知识,因为渗透测试基本是对网站的请求数据进行修改,查找漏洞,所以了解HTTP协议请求的格式是必不可以的。
• cmd / shell 操作。这里说的 cmd 操作是指会使用 Windows 系统的 cmd 命令行窗口执行一些常见的命令,按 win + R 键,输入 cmd 回车,可以打开cmd 窗口。还有就是要会使用 linux 执行一些常见的 shell 命令。
• Linux 操作系统使用。由于很多渗透测试工具只能运行在 Linux 操作系统中,所以我们要会使用 Linux 系统,可以通过 VMWare 虚拟机软件安装 Ubuntu linux 虚拟机来练习使用,也可以直接安装 Kali Linux 来练习。

网络基础知识: 了解网络结构、协议、服务以及常见的网络攻击方式和防御措施。
操作系统知识: 熟悉常见的操作系统如Windows、Linux等,了解它们的工作原理、文件系统结构以及常见的安全配置。
编程和脚本语言: 掌握至少一种编程语言(如Python、Ruby等)和脚本语言(如Bash、PowerShell等),能够编写自动化工具和脚本来辅助渗透测试工作。
漏洞利用和逆向工程: 了解常见的漏洞利用技术和逆向工程原理,能够分析恶意软件和利用漏洞来进行渗透测试。
信息收集和分析技能: 能够有效地收集、分析和利用各种信息来进行渗透测试,包括网络架构、应用程序逻辑、用户行为等方面的信息。

在学习渗透测试前,可以先了解一下渗透测试有哪些方向,因为渗透测试的范围还是比较广的,按方向分,可以大致分为 Web 渗透 、 APP 渗透、 内网渗透 、物联网渗透、 工控渗透。

渗透测试:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法.
1.如何打靶
渗透测试步骤:1.确定目标 2.信息收集 3.发理漏洞 4.漏洞利用 5.权限提升
1.确定目标:在所有的靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,只是针对于我们现在这几十个场而言
其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap.
2.常见的信息收集:比如平常挖洞使用fofa,天眼查,ip域名等进行查找,在我们这个靶场中比如信息收集包括查看源码,使用工具dirb等
3.发现漏洞:之前你们看到那些理论比如sql注入,文件上传等,或者找到相关的系统信息,去网上找相关的exp这些都是为了拿到webshel
4.利用漏洞就是利用漏洞拿到webshell
5.权限提升,就是所谓的提权,因为一般进入拿到webshell后进入到服务器了都是低权限,在接下来的靶中我们的目标都是拿到root权限
所以拿到webshell后是低权限用户,这个时候我们需要一系列的方式进行提权,最后拿到root权限,即为结束。
 

 

需要掌握的技能方法

信息收集流程


如子域名收集、备案查询、github 敏感信息查找等等,知道的方式越多,收集的信息也越多。

域名收集

Whois查询

域名Whois查询 - 站长工具站长之家-站长工具提供whois查询工具,汉化版的域名whois查询工具。icon-default.png?t=N7T8http://whois.chinaz.com 

通过查询可以获得某一特定域名的注册人,地址,邮箱,DNS,手机号等各个信息

子域名收集

可以通过layer收集也可以通过kali里面的JSFinder模块收集

layer的使用

layer的下载链接

其中下载之后字典dic.txt需要自己在网上寻找资源

https://github.com/euphrat1ca/LayerDomainFinder
kali  JSFinder模块的使用
kali的安装,有kali的跳过此步骤

http://t.csdnimg.cn/FPzN8icon-default.png?t=N7T8http://t.csdnimg.cn/FPzN8

git clone https://github.com/Threezh1/JSFinder.git

下载JSFiner

cd JSFinder

跳转到JSFiner的目录下面

pip3 install -r requirements.txt、

安装依赖项

有些情况下可能会出现ping失败的情况

这种情况需要我们开启网卡,以及分配ip网卡

ifconfig eth0 up

dhclient eth0

命令分配IP地址

测试收集域名

python JSFinder.py -u "http://www.jd.com"

收集子域名成功

C段收集

“C段”的解释


"C段"指的是一个网络的子网范围,通常使用CIDR(无类域间路由)表示法来表示。CIDR表示法将IP地址和网络前缀长度组合在一起,形式为IP地址后跟斜杠("/")和网络前缀长度,例如,192.168.1.0/24表示一个C类网络,其中包含从192.168.1.0到192.168.1.255的所有IP地址。
收集C段的方法通常包括以下几种:

1.搜索引擎和公开数据: 通过搜索引擎和公开的数据源(如Shodan、Censys等)搜索特定IP范围内的主机信息。
2.子网扫描: 使用网络扫描工具(如nmap)扫描目标网络的子网范围,以获取其中的活动主机和开放端口。
3.路由追踪: 通过路由追踪工具(如traceroute)识别目标网络的路由路径,并确定其中的子网范围。
4.社交工程和信息收集: 通过社交工程手段和信息收集技术(如WHOIS查询、域名注册信息等)获取目标组织或网络的IP地址范围。

namp收集信息

利用kali自带的namp收集信息

收集C段内部属于目标的IP地址
内部服务只限IP访问,没有映射域名

1.nmap 扫描

Nmap -sn -PE -n ip/24-oX out.xml   Nmap-扫描C段主机存活

-sn   不扫描端口

-PE   ICMP扫描

-n   不进行dns解析

Nmap -sS -Pn -p 3389 ip  定向
-SS   半开放扫描
-Pn   不进行主机存活探测

Nmap -sS -Pn -p 1 -65535 -n ip  半开放扫描

只是检测是否联网

在Kali Linux中,你可以使用nmap模块来收集C段信息。以下是一个简单的示例:

打开终端并输入以下命令来启动nmap扫描特定C段的IP地址范围:

sudo nmap -sn 192.168.1.0/24

这将扫描192.168.1.0/24子网中的所有主机,但不会执行端口扫描(-sn选项表示只执行主机发现扫描)。

如果你想执行更详细的扫描,包括端口扫描,你可以使用以下命令:

sudo nmap -p 1-65535 192.168.1.0/24

这将扫描192.168.1.0/24子网中的所有主机,并尝试对每个主机的所有端口进行扫描(范围是1到65535)。
请注意,在使用nmap进行扫描时,最好是经过授权的,并且遵守法律和道德规范。未经授权的扫描可能会违反法律,并对网络和系统造成不必要的干扰。

dirsearch目录扫描

https://github.com/maurosoria/dirsearch

输入cmd,进入命令窗口之后输入命令PIP3 install DirSearch

加载以下页面等待完成

提示错误pip的版本不够

pip install --upgrade -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

需要通过命令升级一下依赖项

找到自己下载的python3的文件并且转到目录下执行命令

找到自己的目录只需要在后面加一个\python.exe -m pip install --upgrade pip

中间件版本识别                                                                                        
中间件的简单介绍

*中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。**以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值