作者:hacker发布时间:2023-02-02分类:网络黑客浏览:158评论:3
众多被广泛报道的大型消费企业入侵事件凸显了系统安全管理的重要性。幸运的是,有许多不同的应用程序可以帮助保护计算机系统。其中一个是 Kali,一个为安全和渗透测试而开发的 Linux 发行版。本文演示了如何使用 Kali Linux 来审视你的系统以发现弱点。
Kali 安装了很多工具,它们都是开源的,默认情况下安装了它们会让事情变得更容易。
(LCTT 译注:Kali 及其携带工具只应该用于对自己拥有合法审查权利的系统和设备,任何未经授权的扫描、渗透和攻击均是违法的。本文作者、译者均不承担任何非授权使用的结果。)
本文使用的系统是:
我在上面列出了硬件规格,因为一些任务要求很高,尤其是在运行 WordPress 安全扫描程序(WPScan)时对目标系统 CPU 的要求。
首先,我会在目标系统上进行基本的 Nmap 扫描(你可以阅读 使用 Nmap 结果帮助加固 Linux 系统一文来更深入地了解 Nmap)。Nmap 扫描是一种快速的方法,可以大致了解被测系统中哪些端口和服务是暴露的。
默认扫描显示有几个你可能感兴趣的开放端口。实际上,任何开放端口都可能成为攻击者破坏你网络的一种方式。在本例中,端口 21、22、80 和 443 是不错的扫描对象,因为它们是常用服务的端口。在这个早期阶段,我只是在做侦察工作,尽可能多地获取有关目标系统的信息。
我想用 Nmap 侦察 80 端口,所以我使用 -p 80 参数来查看端口 80, -A 参数来获取操作系统和应用程序版本等信息。
关键信息有:
现在我知道了这是一个 WordPress 服务器,我可以使用 WPScan 来获取有关潜在威胁的信息。一个很好的侦察方法是尝试找到一些用户名,使用 --enumerate u 告诉 WPScan 在 WordPress 实例中查找用户名。例如:
这显示有两个用户: admin 和 pgervase 。我将尝试使用密码字典来猜测 admin 的密码。密码字典是一个包含很多密码的文本文件。我使用的字典大小有 37G,有 3,543,076,137 行。
就像你可以选择不同的文本编辑器、Web 浏览器和其他应用程序 一样,也有很多工具可以启动密码攻击。下面是两个使用 Nmap 和 WPScan 的示例命令:
这个 Nmap 脚本是我使用的许多脚本之一,使用 WPScan 扫描 URL 只是这个工具可以完成的许多任务之一。你可以用你喜欢的那一个。
WPScan 示例在文件末尾显示了密码:
在末尾的“找到有效组合”部分包含了管理员用户名和密码,3231 行只用了两分钟。
我还有另一个字典文件,其中包含 3,238,659,984 行,使用它花费的时间更长并且会留下更多的证据。
使用 Nmap 可以更快地产生结果:
然而,运行这样的扫描可能会在目标系统上留下大量的 HTTPD 日志消息:
为了获得关于在最初的 Nmap 扫描中发现的 HTTPS 服务器的信息,我使用了 sslscan 命令:
它显示了有关启用的 SSL 协议的信息,在最下方,是关于 Heartbleed 漏洞的信息:
有很多方法可以保护你的系统免受大量攻击。几个关键点是:
本文对安全工具及其使用方法的介绍只是冰山一角。深入了解的话,你可能需要查看以下资源:
via:
作者:Peter Gervase选题:lujun9972译者:MjSeven校对:wxy
漏洞扫描
是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。
在网络设备中发现已经存在的漏洞,比如防火墙,路由器,交换机服务器等各种应用等等,该过程是自动化的,主要针对的是网络或应用层上潜在的及已知漏洞。漏洞的扫描过程中是不涉及到漏洞的利用的。
渗透测试
渗透测试服务(黑盒测试)是指在客户授权许可的情况下,利用各种主流的攻击技术对网络做模拟攻击测试,以发现系统中的安全漏洞和风险点,提前发现系统潜在的各种高危漏洞和安全威胁。
渗透测试员不仅要针对应用层或网络层等进行测试,还需要出具完整的渗透测试报告。一般的报告都会主要包括以下内容:渗透测试过程中发现可被利用的漏洞,出现的原因,解决方法等详细文字化的描述。
渗透测试是什么?
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。
渗透测试流程是怎样的?
步骤一:明确目标
1、确定范围:规划测试目标的范围,以至于不会出现越界的情况。
2、确定规则:明确说明渗透测试的程度、时间等。
3、确定需求:渗透测试的方向是web应用的漏洞?业务逻辑漏洞?人员权限管理漏洞?还是其他,以免出现越界测试。
步骤二:信息收集
1、基础信息:IP、网段、域名、端口
2、系统信息:操作系统版本
3、应用信息:各端口的应用,例如web应用、邮件应用等等
4、版本信息:所有探测到的东西的版本
5、人员信息:域名注册人员信息,web应用中网站发帖人的id、管理员姓名等
6、防护信息:试着看能否探测到防护的设备,像有没有CDN、waf等
步骤三:漏洞探索
利用上一步中列出的各种系统、应用等等,使用响应的漏洞
方法:
1、漏扫、awvs、IBM appscan等
2、结合漏洞去exploit-db等位置找利用
3、在网上寻找验证poc
步骤四:漏洞验证
将上述中发现有可能可以成功利用的全部漏洞都验证一遍,结合实际情况搭建模拟环境进行实验,成功后再引用于目标。
自动化验证:结合自动化扫描工具提供的结果
手工验证:根据公开的资源进行手工验证
试验验证:自己搭建模拟环境进行验证
登录猜解:可以尝试一下登录口的账号密码的发现
业务逻辑漏洞:如发现业务逻辑漏洞,进行验证
步骤五:信息分析
为下一步实施渗透做准备
1、精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
2、绕过防御机制:是否有防火墙等设备,如何绕过
3、定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
4、绕过检测机制:是否有检测机制,流量监控,杀毒软件 ,恶意代码检测等(免杀)
5、攻击代码:经过试验得来的代码,包括不限于XSS代码,SQL注入语句等
步骤六:获取所需
1、实施攻击,根据前几步的结果,进行攻击
2、获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)
3、进一步渗透:内网入侵,敏感目标
4、持续性存在:一般我们对客户做渗透不需要,但真实的环境中,我们会做rookit、后门,添加管理账号。驻扎手法。
5、清理痕迹:清理相关日志(访问,操作),上传文件等
步骤七:信息整理
1、整理渗透工具:整理渗透过程中用到的代码,poc、exp等
2、整理收集信息:整理渗透过程中收集到的一切信息
3、整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱的位置信息
(为了形成报告,形成测试结果使用)
步骤八:形成报告
1、按需整理:按照之前第一步跟客户确定好的范围和需求来整理资料,并将资料形成报告
2、补充介绍:要对漏洞成因、验证过程和带来的危害进行分析
3、修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
作为最常见、也是最热门的渗透测试方法,网络渗透测试能够协助安全测试人员检测和发掘网络系统以及各种基础设施中的潜在漏洞。网络渗透测试通常分为外部、内部和无线三种类型。具体请看下文:
外部网络渗透测试
外部网络渗透测试可以帮助我们探索网络系统对于外部威胁的响应能力。此类测试最常见的手段是,通过基于互联网的渗透测试,以识别出那些暴露在外部网络中,却属于系统内部的漏洞和弱点。
此类测试通常会针对防火墙的配置、防火墙的绕过、IPS的欺骗以及DNS级别的毒化攻击等网络攻击。为了实现自动化漏洞扫描的测试过程,安全人员往往会使用市面上常见的知名工具,去扫描和检测目标系统中的已知漏洞。当然,他们也会将手动利用技术与自动化工具相结合,针对检测到的漏洞弱点,发动模拟攻击,并旨在完全接管那些面向互联网的系统。
内部网络渗透测试
此类测试旨在通过漏洞扫描,检测并识别内部系统,发现基础设施中的网络安全弱点,进而采用各种利用技术,来查看内部系统的响应行为。内部网络渗透测试会从根本上去评估内部系统、以及组织员工遭受未授权、或恶意攻击的可能性。其中包括:潜在的未经授权的访问,个人信息与信任凭据的泄漏等方面。
无线渗透测试
黑客或攻击者通过无线的方式,渗透进目标系统,在威胁内网安全的同时,利用获取到的特权,去访问各类敏感信息,进而对系统的正常运行造成不利的影响。
网络
Scapy, Scapy3k: 发送,嗅探,分析和伪造网络数据包。可用作交互式包处理程序或单独作为一个库
pypcap, Pcapy, pylibpcap: 几个不同 libpcap 捆绑的python库
libdnet: 低级网络路由,包括端口查看和以太网帧的转发
dpkt: 快速,轻量数据包创建和分析,面向基本的 TCP/IP 协议
Impacket: 伪造和解码网络数据包,支持高级协议如 NMB 和 SMB
pynids: libnids 封装提供网络嗅探,IP 包碎片重组,TCP 流重组和端口扫描侦查
Dirtbags py-pcap: 无需 libpcap 库支持读取 pcap 文件
flowgrep: 通过正则表达式查找数据包中的 Payloads
Knock Subdomain Scan: 通过字典枚举目标子域名
SubBrute: 快速的子域名枚举工具
Mallory: 可扩展的 TCP/UDP 中间人代理工具,可以实时修改非标准协议
Pytbull: 灵活的 IDS/IPS 测试框架(附带超过300个测试样例)
调试和逆向工程
Paimei: 逆向工程框架,包含PyDBG, PIDA , pGRAPH
Immunity Debugger: 脚本 GUI 和命令行调试器
mona.py: Immunity Debugger 中的扩展,用于代替 pvefindaddr
IDAPython: IDA pro 中的插件,集成 Python 编程语言,允许脚本在 IDA Pro 中执行
PyEMU: 全脚本实现的英特尔32位仿真器,用于恶意软件分析
pefile: 读取并处理 PE 文件
pydasm: Python 封装的libdasm
PyDbgEng: Python 封装的微软 Windows 调试引擎
uhooker: 截获 DLL 或内存中任意地址可执行文件的 API 调用
diStorm: AMD64 下的反汇编库
python-ptrace: Python 写的使用 ptrace 的调试器
vdb/vtrace: vtrace 是用 Python 实现的跨平台调试 API, vdb 是使用它的调试器
Androguard: 安卓应用程序的逆向分析工具
Capstone: 一个轻量级的多平台多架构支持的反汇编框架。支持包括ARM,ARM64,MIPS和x86/x64平台
PyBFD: GNU 二进制文件描述(BFD)库的 Python 接口
Fuzzing
Sulley: 一个模糊器开发和模糊测试的框架,由多个可扩展的构件组成的
Peach Fuzzing Platform: 可扩展的模糊测试框架(v2版本 是用 Python 语言编写的)
antiparser: 模糊测试和故障注入的 API
TAOF: (The Art of Fuzzing, 模糊的艺术)包含 ProxyFuzz, 一个中间人网络模糊测试工具
untidy: 针对 XML 模糊测试工具
Powerfuzzer: 高度自动化和可完全定制的 Web 模糊测试工具
SMUDGE: 纯 Python 实现的网络协议模糊测试
Mistress: 基于预设模式,侦测实时文件格式和侦测畸形数据中的协议
Fuzzbox: 媒体多编码器的模糊测试
Forensic Fuzzing Tools: 通过生成模糊测试用的文件,文件系统和包含模糊测试文件的文件系统,来测试取证工具的鲁棒性
Windows IPC Fuzzing Tools: 使用 Windows 进程间通信机制进行模糊测试的工具
WSBang: 基于 Web 服务自动化测试 SOAP 安全性
Construct: 用于解析和构建数据格式(二进制或文本)的库
fuzzer.py(feliam): 由 Felipe Andres Manzano 编写的简单模糊测试工具
Fusil: 用于编写模糊测试程序的 Python 库
Web
Requests: 优雅,简单,人性化的 HTTP 库
HTTPie: 人性化的类似 cURL 命令行的 HTTP 客户端
ProxMon: 处理代理日志和报告发现的问题
WSMap: 寻找 Web 服务器和发现文件
Twill: 从命令行界面浏览网页。支持自动化网络测试
Ghost.py: Python 写的 WebKit Web 客户端
Windmill: Web 测试工具帮助你轻松实现自动化调试 Web 应用
FunkLoad: Web 功能和负载测试
spynner: Python 写的 Web浏览模块支持 Javascript/AJAX
python-spidermonkey: 是 Mozilla JS 引擎在 Python 上的移植,允许调用 Javascript 脚本和函数
mitmproxy: 支持 SSL 的 HTTP 代理。可以在控制台接口实时检查和编辑网络流量
pathod/pathoc: 变态的 HTTP/S 守护进程,用于测试和折磨 HTTP 客户端
要做网站渗透测试,首先我们要明白以下几点:
1、什么叫渗透测试?
渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
2、进行渗透测试的目的?
了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。
3、渗透测试是否等同于风险评估?
不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分。
4、渗透测试是否就是黑盒测试?
否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。
5、渗透测试涉及哪些内容?
技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
6、渗透测试有哪些不足之处?
主要是投入高,风险高。而且必须是专业的网络安全团队(或公司,像网堤安全)才能相信输出的最终结果。
看完以上内容,相信大家已经明白渗透测试是不能光靠工具的,还要有专业的人员才行。推荐还是选择专攻网络安全这一块的公司或团队进行。
标签:网络渗透测试的工具
已有3位网友发表了看法:
访客 评论于 2023-02-03 00:11:33 回复
: 截获 DLL 或内存中任意地址可执行文件的 API 调用diStorm: AMD64 下的反汇编库python-ptrace: Python 写的使用 ptrace 的调试器vdb
访客 评论于 2023-02-03 00:12:53 回复
试的程度、时间等。 3、确定需求:渗透测试的方向是web应用的漏洞?业务逻辑漏洞?人员权限管理漏洞?还是其他,以免出现越界测试。 步骤二:信息收集 1、基础信息:IP、网段、域名、端口 2
访客 评论于 2023-02-02 14:50:31 回复
n 的示例命令: 这个 Nmap 脚本是我使用的许多脚本之一,使用 WPScan 扫描 URL 只是这个工具可以完成的许多任务之一。你可以用你喜欢的那一个。 WPScan 示例在文件末尾显示了密