Kali Linux 2019 学习手册(四)
原文:
annas-archive.org/md5/29591BFA2DAF3F905BBECC2F6DAD8828译者:飞龙
第十六章:最佳实践
首先,我个人想要恭喜你完成了这本书!你已经在网络安全方面获得了一些了不起的技能,特别是在渗透测试领域,使用了最流行的渗透测试 Linux 发行版之一:Kali Linux。在本书中,我们着重关注了成为渗透测试人员/道德黑客的技术和实际方面。
然而,还有渗透测试的最佳实践需要涵盖。了解最佳实践将帮助你在商业世界中提高自己。通过遵循推荐的程序,你将能够有效地工作并以高效的方式获得最佳结果。
在本章中,我们将涵盖以下话题:
-
渗透测试人员的指南
-
Web 应用程序安全蓝图和清单
-
网站和网络清单
技术要求
本章没有正式的技术要求。
渗透测试人员的指南
作为一个具有黑客技能的人,你必须意识到道德和犯罪活动之间的界限。请记住,使用计算系统执行任何侵入性行为以对他人或组织造成伤害是非法的。因此,渗透测试人员必须遵循行为准则,以确保他们始终在法律的正确一边。
在本节的其余部分,我们将涵盖以下关键点:
-
获得书面许可
-
做道德的事
-
渗透测试合同
-
参与规则(RoE)
-
额外的技巧和窍门
现在让我们详细看看这些话题。
获得书面许可
在对目标组织进行渗透测试之前,请确保你有来自该组织的书面许可。如果需要从其他机构获得额外许可,请确保你获得所有法律许可文件。拥有法律上的书面许可就像作为渗透测试人员拥有一张免于入狱的卡一样。渗透测试人员执行的任务涉及对目标组织进行模拟真实世界的网络攻击;这意味着通过任何可能的方式实际入侵他们的网络。一些攻击可能非常侵入性,并可能造成损害或网络中断;书面许可用于在法律上保护自己。
做道德的事
作为行业中的专业人士,在你的所有行为中始终要做到道德。在你练习渗透测试技能的过程中,我相信你已经意识到成为恶意黑客和渗透测试人员之间有一条细微的界限。主要区别在于渗透测试人员在执行任何攻击之前获得了合法许可,并且目标是帮助组织改善其安全状况并减少实际黑客可能利用的攻击面。做道德就是做正确的事情并坚持道德原则。
渗透测试合同
作为行业中的新兴专业人士,请确保你有一份经过律师审核和验证的渗透测试合同,其中包括保密和保密协议(NDA)。这是为了确保客户(目标组织)的信息得到保护,并且你(渗透测试人员)不会在没有法律要求的情况下透露客户的任何信息。此外,保密协议建立了客户和你之间的信任,因为许多组织不希望他们的漏洞被他人知晓。
如果在与新客户的商务会议中,他们询问您之前进行的渗透测试和客户信息,请不要透露任何细节。这将违反 NDA,该协议保护您的客户和自己,并建立信任。但是,您可以简单地向新潜在客户概述您可以为其组织做些什么,可以进行的测试类型以及在测试阶段可能使用的一些工具。
参与规则
在与客户(目标组织)的商务会议期间,确保您和客户在实际渗透测试之前了解 RoE。 RoE 只是由服务提供商(渗透测试人员)创建的文件,概述了应进行的渗透测试类型以及其他一些具体内容。这些包括要测试的网络区域,以及网络上的目标,如服务器、网络设备和工作站。简而言之,RoE 定义了应如何进行渗透测试,并指示与目标组织相关的任何边界。
确保在目标组织内部为紧急情况获取关键联系人的联系信息。作为渗透测试人员,可能会出现危机,您可能需要联系某人寻求帮助,例如如果您在工作时间之后在建筑物内进行测试。
在进行渗透测试时,如果发现目标组织系统或网络上有侵犯人权或非法活动的迹象,立即停止并向当地当局(警察)报告。如果发现网络基础设施存在安全漏洞,请立即停止并向组织内的权威人士和/或当地当局报告。作为渗透测试人员,您需要有良好的道德观念,遵守法律;人权和安全永远是第一位的,所有非法活动都应报告给必要的当局。
额外的提示和技巧
在对目标组织的网络运行任何渗透测试工具之前,始终在实验室环境中测试它们,以确定它们是否使用大量网络带宽,以及确定它们产生的噪音级别。如果工具使用大量带宽,则在网络速度较慢的目标组织上使用该工具是没有意义的。该工具可能会消耗网络段上的所有带宽,导致网络瓶颈;这是不好的。
使用漏洞扫描程序来帮助执行和自动化定期网络扫描。漏洞扫描程序可以帮助组织满足合规性和标准化。像 Nessus(www.tenable.com)和 Nexpose(www.rapid7.com)这样的工具是网络安全行业内有声誉的漏洞扫描程序和管理工具。
此外,了解不同的操作系统,如 Windows、Linux 和 macOS。将一些网络安全主题作为学习的一部分。了解网络安全和企业网络将有助于您更轻松地映射目标网络并绕过网络安全设备。
在下一节中,我们将看一下 Web 应用程序安全蓝图和清单。
Web 应用程序安全蓝图和清单
在对系统或网络进行渗透测试时,使用一组经批准或推荐的准则来确保实现期望的结果。渗透测试方法通常包括以下阶段:
-
信息收集
-
扫描和侦察
-
指纹识别和枚举
-
漏洞评估
-
利用研究和验证
-
报告
遵循这样的清单可以确保渗透测试人员在进入下一阶段之前完成该阶段的所有任务。在这本书中,我们从信息收集阶段开始,逐渐从那里开始。早期章节涵盖了早期阶段,并教会了您如何获取有关目标的敏感细节,而后期章节涵盖了使用找到的信息以各种方法访问目标。
在下一节中,我们将了解开放式 Web 应用安全项目(OWASP)十大。
OWASP
OWASP 是一个专注于使人们和社区能够开发、测试和维护所有人都可以信任的应用程序的非营利基金会。
OWASP 已创建了OWASP 十大网络漏洞列表,已成为 Web 应用程序测试的标准:
-
A1:2017-注入
-
A2:2017-破损身份验证
-
A3:2017-敏感数据暴露
-
A4:2017-XML 外部实体(XXE)
-
A5:2017-破损访问控制
-
A6:2017-安全配置错误
-
A7:2017-跨站脚本(XSS)
-
A8:2017-不安全的反序列化
-
A9:2017-使用已知漏洞的组件
-
A10:2017-日志记录和监控不足
每个类别都提供了所有漏洞、发现方法和技术、对策以及减少风险的最佳实践的详细分析。
有关OWASP 十大项目的更多信息,请访问www.owasp.org/index.php/Category:OWASP_Top_Ten_2017_Project。此外,OWASP 测试指南可在www.owasp.org/index.php/OWASP_Testing_Project找到。
此外,始终保持练习,以提高您在理解 OWASP 十大漏洞方面的技能。OWASP破损 Web 应用(BWA)项目将协助您在这一过程中。
在下一节中,我们将了解**渗透测试执行标准(PTES)**的各个阶段。
渗透测试执行标准
PTES 包括涵盖渗透测试各个方面的几个阶段:
-
预先交互
-
情报收集
-
威胁建模
-
漏洞分析
-
利用
-
后利用
-
报告
有关 PTES 的更多信息,请访问www.penteststandard.org/index.php/Main_Page。
渗透测试标准或框架的选择取决于客户请求的测试类型、目标行业(例如,健康行业的 HIPAA)甚至您组织的渗透测试方法论。
在下一节中,我们将讨论报告阶段的重要性。
报告
渗透测试的最后阶段是报告和交付结果。在这个阶段,渗透测试人员创建了一份官方文件,概述了以下内容:
-
目标上发现的所有漏洞
-
基于**通用漏洞评分系统(CVSS)**计算器,按高、中、低等级别对所有风险进行分类
-
发现的漏洞的建议修复方法
确保在撰写报告时,任何人都能理解,包括高级管理人员和执行人员等非技术受众。管理人员并不总是技术人员,因为他们更专注于确保组织内实现业务目标和目标。
报告还应包括以下内容:
-
封面
-
执行摘要
-
漏洞摘要
-
测试细节
-
测试期间使用的工具(可选)
-
原始工作范围
-
报告正文
-
摘要
有关撰写渗透测试报告的更多信息,请访问resources.infosecinstitute.com/writing-penetration-testing-reports/。
永远记住,如果你问 10 个不同的渗透测试人员如何撰写报告,他们都会根据自己的经验和雇主给出不同的答案。确保不要插入太多图片或太多技术术语来混淆读者。对于任何非技术背景的人来说,它应该是简单易懂的。
在接下来的章节中,我们将概述创建渗透测试清单的基本原则。
渗透测试清单
我建议渗透测试机器的以下硬件要求:
-
四核处理器
-
8 GB RAM(最低)
-
无线网络适配器
-
以太网网络接口卡
接下来,我们将熟悉创建信息收集清单。
信息收集
以下是在信息收集阶段之前和期间要执行的任务:
-
获得法律许可。
-
定义渗透测试的范围。
-
使用搜索引擎进行信息收集。
-
执行 Google 黑客技术。
-
使用社交网络网站进行信息收集。
-
执行网站足迹。
-
执行
WHOIS信息收集。 -
执行 DNS 信息收集。
-
执行网络信息收集。
-
执行社会工程。
在下一节中,我们将看一下网络扫描的清单。
网络扫描
以下是执行网络扫描的指南列表:
-
在网络上执行主机发现。
-
执行端口扫描以确定服务。
-
执行目标操作系统和端口的横幅抓取。
-
执行漏洞扫描。
-
创建目标网络的网络拓扑。
接下来,我们将了解枚举清单的基本要求。
枚举
以下是在目标系统上执行枚举的指南列表:
-
确定网络范围并计算子网掩码。
-
执行主机发现。
-
执行端口扫描。
-
执行 SMB 和 NetBIOS 枚举技术。
-
执行 LDAP 枚举。
-
执行 DNS 枚举。
在下一节中,我们将看一下利用清单。
获取访问
以下是获取访问网络/系统的指南列表:
-
执行社会工程。
-
进行肩部冲浪。
-
执行各种密码攻击。
-
执行网络嗅探。
-
执行中间人(MITM)攻击。
-
使用各种技术来利用目标系统并获得 shell(即通过命令行获取访问)。
-
发现使用横向移动的其他设备。
-
尝试提升对受损系统的权限。
在下一节中,我们将概述覆盖轨迹清单的基本原则。
覆盖轨迹
以下是覆盖轨迹的指南列表:
-
禁用系统上的审计功能。
-
清除日志文件。
通过完成本节,您现在具备创建适合您需求的完整渗透测试清单所需的技能。
总结
通过完成本章,您现在对渗透测试领域的最佳实践有了基础水平的理解。本章后面列出的指南将帮助您确定在渗透测试期间要采取的步骤。记住:你正在学习-发展自己的策略和技术将自然而然地出现。确保您在职业生涯中的进步中记录您的技术和技能。
我希望本章和本书对您的学习有所帮助,并将使您在网络安全领域的道路上受益。谢谢您的支持!
问题
-
在进行渗透测试之前,需要什么来确保渗透测试人员受到保护?
-
用于概述工作的文档类型是什么?
-
你如何确定漏洞的风险评级?
-
渗透测试的最后阶段是什么?
进一步阅读
-
RoE:
hub.packtpub.com/penetration-testing-rules-of-engagement/. -
渗透测试方法:
resources.infosecinstitute.com/penetration-testing-methodologies-and-standards/. -
其他渗透测试方法可以在
www.owasp.org/index.php/Penetration_testing_methodologies.找到。 -
以下是一些网站,将帮助您确定风险的严重程度并研究网络安全世界中的威胁:
-
CVE:
cve.mitre.org/ -
CVSS:
www.first.org/cvss/ -
OWASP:
www.owasp.org -
SANS:
www.sans.org/ -
Exploit-DB:
www.exploit-db.com/ -
SecurityFocus:
www.securityfocus.com/ -
最后,始终继续学习并提高自己的技能。以下是一些将为您作为渗透测试人员增添价值的认证:
-
Offensive Security Certified Professional (OSCP): www.offensive-security.com
-
Certified Ethical Hacker (CEH): www.eccouncil.org
-
GIAC Certifications: www.giac.org
第十七章:评估
入门黑客
-
脚本小子
-
掩盖踪迹
-
OWASP
-
黑盒测试
-
国家赞助
设置 Kali-部分
-
2 型虚拟化程序
-
所需的物理空间更少,功耗更低,成本更低
-
VMware ESXi,Oracle VirtualBox 和 Microsoft Virtual PC
-
使用
dpkg -i <应用程序文件>命令 -
客座操作系统
熟悉 Kali Linux 2019
-
BackTrack
-
apt-get update -
apt-get upgrade -
apt-get install <应用程序名称> -
定位<文件>
被动信息收集
-
收集有关目标的信息,例如网络和系统详细信息以及组织信息(例如公司目录和员工详细信息)
-
Maltego,Dig,NSlookup,Recon-ng,theHarvester 和 Shodan
-
通过使用
site: <关键词>语法 -
利用漏洞数据库
-
whois
-
通过使用 Sublist3r 工具
主动信息收集
-
将主机名解析为 IP 地址。
-
DNS 区传输允许将区文件从主 DNS 服务器复制到另一个服务器,例如辅助 DNS 服务器。
-
Nmap。
-
数据包分片。
-
JXplorer。
使用漏洞扫描器
-
server nessusd start -
支付卡行业数据安全标准(PCI DSS)
-
执行和自定义
-
Nikto,Burp Suite 和 WPScan
-
WPScan
了解网络渗透测试
-
macchanger -
特设,管理,主控,中继,辅助和监视器
-
ifconfig -
airmon-ng check kill
网络渗透测试-连接前攻击
-
airmon-ng
-
ESSID
-
代码 2-先前的身份验证不再有效,代码 3-解除身份 leaving
-
aireplay-ng
网络渗透测试-获取访问权限
-
高级加密标准(AES)
-
Citrix-enum-apps
-
3389 -
Ncrack,Hydra,John the Ripper 和 Hashcat
-
认证服务器(访问控制服务器)
-
search命令 -
IEEE 802.1x
网络渗透测试-连接后攻击
-
Yersinia
-
getsystem -
将 IP 地址解析为 MAC 地址
-
安全外壳(SSH)
-
通过使用
whoami命令
网络渗透测试-检测和安全
-
通过使用数据加密和安全协议。
-
ARP 欺骗。
-
DAI。
-
Telnet 以纯文本形式发送其数据包,不支持加密。
-
在 Nmap 中使用 sniffer-detect 脚本。
客户端攻击-社会工程
-
窃听
-
网络钓鱼
-
Smishing
-
SET 和 Ghost Phisher
执行网站渗透测试
-
Apache,IIS,Nginx
-
Dirb,DirBuster
-
HTTP 200 状态代码
-
跨站脚本(XSS)
-
结构化查询语言(SQL)注入
网站渗透测试-获取访问权限
-
FROM -
通过使用分号(
;) -
通过使用
INSERT命令 -
BeEF
最佳实践
-
来自目标组织的书面法律许可
-
与 RoE 签订合同
-
通过使用 CVSS 计算器
-
掩盖踪迹和报告