作者:hacker发布时间:2022-07-09分类:渗透网站浏览:183评论:2
第一个:NST
NST一套免费的开源应用程序,是一个基于Fedora的Linux发行版,可在32和64位平台上运行。这个可启动的Live
CD是用于监视、分析和维护计算机网络上的安全性;它可以很容易地将X86系统转换为肉机,这有助于入侵检测,网络流量嗅探,网络数据包生成,网络/主机扫描等。
第二个:NMAP
NMAP是发现企业网络中任何类型的弱点或漏洞的绝佳工具,它也是审计的好工具。该工具的作用是获取原始数据包并确定哪些主机在网络的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。NMAP对渗透测试过程的任何阶段都很有用并且还是免费的。
第三个:BeEF工具
BeEF工具主要利用移动端的客户,它的作用是用于检查Web浏览器,对抗Web抗击。BeEF用GitHub找漏洞,它探索了Web边界和客户端系统之外的缺陷。很重要的是,它是专门针对Web浏览器的,能够查看单个源上下文中的漏洞。
第四个:Acunetix Scanner
它是一款知名的网络漏洞扫描工具,能审计复杂的管理报告和问题,并且通过网络爬虫测试你的网站安全,检测流行安全漏洞,还能包含带外漏洞。它具有很高的检测率,覆盖超过4500个弱点;此外,这个工具包含了AcuSensor技术,手动渗透工具和内置漏洞测试,可快速抓取数千个网页,大大提升工作效率。
第五个:John the Ripper
它是一个简单可快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法,如DES、MD4、MD5等。
01、信息收集
1、域名、IP、端口
域名信息查询:信息可用于后续渗透
IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常
端口信息查询:NMap扫描,确认开放端口
发现:一共开放两个端口,80为web访问端口,3389为windows远程登陆端口,嘿嘿嘿,试一下
发现:是Windows Server 2003系统,OK,到此为止。
2、指纹识别
其实就是网站的信息。比如通过可以访问的资源,如网站首页,查看源代码:
看看是否存在文件遍历的漏洞(如图片路径,再通过…/遍历文件)
是否使用了存在漏洞的框架(如果没有现成的就自己挖)
02、漏洞扫描
1、主机扫描
Nessus
经典主机漏扫工具,看看有没有CVE漏洞:
2、Web扫描
AWVS(Acunetix | Website Security Scanner)扫描器
PS:扫描器可能会对网站构成伤害,小心谨慎使用。
03、渗透测试
1、弱口令漏洞
漏洞描述
目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。
渗透测试
① 如果不存在验证码,则直接使用相对应的弱口令字典使用burpsuite 进行爆破
② 如果存在验证码,则看验证码是否存在绕过、以及看验证码是否容易识别
风险评级:高风险
安全建议
① 默认口令以及修改口令都应保证复杂度,比如:大小写字母与数字或特殊字符的组合,口令长度不小于8位等
② 定期检查和更换网站管理口令
2、文件下载(目录浏览)漏洞
漏洞描述
一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。
渗透测试
① 查找可能存在文件包含的漏洞点,比如js,css等页面代码路径
② 看看有没有文件上传访问的功能
③ 采用…/来测试能否夸目录访问文件
风险评级:高风险
安全建议
① 采用白名单机制限制服务器目录的访问,以及可以访问的文件类型(小心被绕过)
② 过滤【./】等特殊字符
③ 采用文件流的访问返回上传文件(如用户头像),不要通过真实的网站路径。
示例:tomcat,默认关闭路径浏览的功能:
param-namelistings/param-name
param-valuefalse/param-value
3、任意文件上传漏洞
漏洞描述
目标网站允许用户向网站直接上传文件,但未对所上传文件的类型和内容进行严格的过滤。
渗透测试
① 收集网站信息,判断使用的语言(PHP,ASP,JSP)
② 过滤规则绕过方法:文件上传绕过技巧
风险评级:高风险
安全建议
① 对上传文件做有效文件类型判断,采用白名单控制的方法,开放只允许上传的文件型式;
② 文件类型判断,应对上传文件的后缀、文件头、图片类的预览图等做检测来判断文件类型,同时注意重命名(Md5加密)上传文件的文件名避免攻击者利用WEB服务的缺陷构造畸形文件名实现攻击目的;
③ 禁止上传目录有执行权限;
④ 使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。
4、命令注入漏洞
漏洞描述
目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句,导致各种调用系统命令的web应用,会被攻击者通过命令拼接、绕过黑名单等方式,在服务端运行恶意的系统命令。
渗透测试
风险评级:高风险
安全建议
① 拒绝使用拼接语句的方式进行参数传递;
② 尽量使用白名单的方式(首选方式);
③ 过滤危险方法、特殊字符,如:【|】【】【;】【’】【"】等
5、SQL注入漏洞
漏洞描述
目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句查询后台数据库相关信息
渗透测试
① 手动测试:判断是否存在SQL注入,判断是字符型还是数字型,是否需要盲注
② 工具测试:使用sqlmap等工具进行辅助测试
风险评级:高风险
安全建议
① 防范SQL注入攻击的最佳方式就是将查询的逻辑与其数据分隔,如Java的预处理,PHP的PDO
② 拒绝使用拼接SQL的方式
6、跨站脚本漏洞
漏洞描述
当应用程序的网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
三种XSS漏洞:
① 存储型:用户输入的信息被持久化,并能够在页面显示的功能,都可能存在存储型XSS,例如用户留言、个人信息修改等。
② 反射型:URL参数需要在页面显示的功能都可能存在反射型跨站脚本攻击,例如站内搜索、查询功能。
③ DOM型:涉及DOM对象的页面程序,包括:document.URL、document.location、document.referrer、window.location等
渗透测试
存储型,反射型,DOM型
风险评级:高风险
安全建议
① 不信任用户提交的任何内容,对用户输入的内容,在后台都需要进行长度检查,并且对【】【】【"】【’】【】等字符做过滤
② 任何内容返回到页面显示之前都必须加以html编码,即将【】【】【"】【’】【】进行转义。
7、跨站请求伪造漏洞
漏洞描述
CSRF,全称为Cross-Site Request Forgery,跨站请求伪造,是一种网络攻击方式,它可以在用户毫不知情的情况下,以用户的名义伪造请求发送给被攻击站点,从而在未授权的情况下进行权限保护内的操作,如修改密码,转账等。
渗透测试
风险评级:中风险(如果相关业务极其重要,则为高风险)
安全建议
① 使用一次性令牌:用户登录后产生随机token并赋值给页面中的某个Hidden标签,提交表单时候,同时提交这个Hidden标签并验证,验证后重新产生新的token,并赋值给hidden标签;
② 适当场景添加验证码输入:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串;
③ 请求头Referer效验,url请求是否前部匹配Http(s)😕/ServerHost
④ 关键信息输入确认提交信息的用户身份是否合法,比如修改密码一定要提供原密码输入
⑤ 用户自身可以通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie;
8、内部后台地址暴露
漏洞描述
一些仅被内部访问的地址,对外部暴露了,如:管理员登陆页面;系统监控页面;API接口描述页面等,这些会导致信息泄露,后台登陆等地址还可能被爆破。
渗透测试
① 通过常用的地址进行探测,如login.html,manager.html,api.html等;
② 可以借用burpsuite和常规页面地址字典,进行扫描探测
风险评级:中风险
安全建议
① 禁止外网访问后台地址
② 使用非常规路径(如对md5加密)
9、信息泄露漏洞
漏洞描述
① 备份信息泄露:目标网站未及时删除编辑器或者人员在编辑文件时,产生的临时文件,或者相关备份信息未及时删除导致信息泄露。
② 测试页面信息泄露:测试界面未及时删除,导致测试界面暴露,被他人访问。
③ 源码信息泄露:目标网站文件访问控制设置不当,WEB服务器开启源码下载功能,允许用户访问网站源码。
④ 错误信息泄露:目标网站WEB程序和服务器未屏蔽错误信息回显,页面含有CGI处理错误的代码级别的详细信息,例如SQL语句执行错误原因,PHP的错误行数等。
⑤ 接口信息泄露:目标网站接口访问控制不严,导致网站内部敏感信息泄露。
渗透测试
① 备份信息泄露、测试页面信息泄露、源码信息泄露,测试方法:使用字典,爆破相关目录,看是否存在相关敏感文件
② 错误信息泄露,测试方法:发送畸形的数据报文、非正常的报文进行探测,看是否对错误参数处理妥当。
③ 接口信息泄露漏洞,测试方法:使用爬虫或者扫描器爬取获取接口相关信息,看目标网站对接口权限是否合理
风险评级:一般为中风险,如果源码大量泄漏或大量客户敏感信息泄露。
安全建议
① 备份信息泄露漏洞:删除相关备份信息,做好权限控制
② 测试页面信息泄露漏洞:删除相关测试界面,做好权限控制
③ 源码信息泄露漏洞:做好权限控制
④ 错误信息泄露漏洞:将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因
⑤ 接口信息泄露漏洞:对接口访问权限严格控制
10、失效的身份认证
漏洞描述
通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌, 或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。
渗透测试
① 在登陆前后观察,前端提交信息中,随机变化的数据,总有与当前已登陆用户进行绑定的会话唯一标识,常见如cookie
② 一般现在网站没有那种简单可破解的标识,但是如果是跨站认证,单点登录场景中,可能为了开发方便而简化了身份认证
风险评级:高风险
安全建议
① 使用强身份识别,不使用简单弱加密方式进行身份识别;
② 服务器端使用安全的会话管理器,在登录后生成高度复杂的新随机会话ID。会话ID不能在URL中,可以安全地存储,在登出、闲置超时后使其失效。
11、失效的访问控制
漏洞描述
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
渗透测试
① 登入后,通过burpsuite 抓取相关url 链接,获取到url 链接之后,在另一个浏览器打开相关链接,看能够通过另一个未登入的浏览器直接访问该功能点。
② 使用A用户登陆,然后在另一个浏览器使用B用户登陆,使用B访问A独有的功能,看能否访问。
风险评级:高风险
安全建议
① 除公有资源外,默认情况下拒绝访问非本人所有的私有资源;
② 对API和控制器的访问进行速率限制,以最大限度地降低自动化攻击工具的危害;
③ 当用户注销后,服务器上的Cookie,JWT等令牌应失效;
④ 对每一个业务请求,都进行权限校验。
12、安全配置错误
漏洞描述
应用程序缺少适当的安全加固,或者云服务的权限配置错误。
① 应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。
② 默认帐户的密码仍然可用且没有更改。
③ 错误处理机制向用户披露堆栈跟踪或其他大量错误信息。
④ 对于更新的系统,禁用或不安全地配置最新的安全功能。
⑤ 应用程序服务器、应用程序框架(如:Struts、Spring、ASP.NET)、库文件、数据库等没有进行相关安全配置。
渗透测试
先对应用指纹等进行信息搜集,然后针对搜集的信息,看相关应用默认配置是否有更改,是否有加固过;端口开放情况,是否开放了多余的端口;
风险评级:中风险
安全建议
搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和示例。移除或不安装不适用的功能和框架。在所有环境中按照标准的加固流程进行正确安全配置。
13、使用含有已知漏洞的组件
漏洞描述
使用了不再支持或者过时的组件。这包括:OS、Web服务器、应用程序服务器、数据库管理系统(DBMS)、应用程序、API和所有的组件、运行环境和库。
渗透测试
① 根据前期信息搜集的信息,查看相关组件的版本,看是否使用了不在支持或者过时的组件。一般来说,信息搜集,可通过http返回头、相关错误信息、应用指纹、端口探测(Nmap)等手段搜集。
② Nmap等工具也可以用于获取操作系统版本信息
③ 通过CVE,CNVD等平台可以获取当前组件版本是否存在漏洞
风险评级:按照存在漏洞的组件的安全风险值判定当前风险。
安全建议
① 移除不使用的依赖、不需要的功能、组件、文件和文档;
② 仅从官方渠道安全的获取组件(尽量保证是最新版本),并使用签名机制来降低组件被篡改或加入恶意漏洞的风险;
③ 监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,可以考虑部署虚拟补丁来监控、检测或保护。
详细学习可参考:
一般渗透测试流程
1. 明确目标
l 确定范围:测试目标的范围、ip、域名、内外网、测试账户。
l 确定规则:能渗透到什么程度,所需要的时间、能否修改上传、能否提权、等等。
l 确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞、等等。
2. 信息收集、
l 方式:主动扫描,开放搜索等。
l 开放搜索:利用搜索引擎获得:后台、未授权页面、敏感url、等等。
l 基础信息:IP、网段、域名、端口。
l 应用信息:各端口的应用。例如web应用、邮件应用、等等。
l 系统信息:操作系统版本
l 版本信息:所有这些探测到的东西的版本。
l 服务信息:中间件的各类信息,插件信息。
l 人员信息:域名注册人员信息,web应用中发帖人的id,管理员姓名等。
l 防护信息:试着看能否探测到防护设备。
3. 漏洞探测
利用上一步中列出的各种系统,应用等使用相应的漏洞。
方法:
(1) 漏扫,awvs,IBM appscan等。
(2) 结合漏洞去exploit-db等位置找利用。
(3) 在网上寻找验证poc。
内容:
l 系统漏洞:系统没有及时打补丁
l WebSever漏洞:WebSever配置问题
l Web应用漏洞:Web应用开发问题
l 其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
l 通信安全:明文传输,token在cookie中传送等。
4. 漏洞验证
将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。
l 自动化验证:结合自动化扫描工具提供的结果
l 手工验证,根据公开资源进行验证
l 试验验证:自己搭建模拟环境进行验证
l 登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
l 业务漏洞验证:如发现业务漏洞,要进行验证
公开资源的利用
l exploit-db/wooyun/
l google hacking
l 渗透代码网站
l 通用、缺省口令
l 厂商的漏洞警告等等。
5. 信息分析
为下一步实施渗透做准备。
l 精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
l 绕过防御机制:是否有防火墙等设备,如何绕过
l 定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
l 绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)
l 攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
6. 获取所需
实施攻击:根据前几步的结果,进行攻击
l 获取内部信息:基础设施(网络连接,路由,拓扑等)
l 进一步渗透:内网入侵,敏感目标
l 持续性存在:一般我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等
l 清理痕迹:清理相关日志(访问,操作),上传文件等
7. 信息整理
l 整理渗透工具:整理渗透过程中用到的代码,poc,exp等
l 整理收集信息:整理渗透过程中收集到的一切信息
l 整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
8. 形成报告
l 按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告
l 补充介绍:要对漏洞成因,验证过程和带来危害进行分析
l 修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
流程总结
1、NMap
是一个开源且免费的安全扫描工具,可被用于安全审计和网络发现。能够工作在Windows、Linux、HP-UX、Solaris、BSD(包括Mac OS)、以及AmigaOS上。Nmap可用于探测网络中那些可访问的主机,检测它们操作系统的类型和版本,正在提供的服务,以及正在使用的防火墙或数据包过滤器的信息等。由于它既带有GUI界面,又提供命令行,因此许多网络与系统管理员经常将它运用到自己的日常工作中,其中包括:检查开放的端口,维护服务的升级计划,发现网络拓扑,以及监视主机与服务的正常运行时间等方面。
2、Wireshark
作为业界最好的工具之一,Wireshark可以提供免费且开源的渗透测试服务。通常,您可以把它当作网络协议分析器,以捕获并查看目标系统与网络中的流量。它可以在Linux、Windows、Unix、Solaris、Mac OS、NetBSD、FreeBSD、以及其他操作系统上运行。Wireshark广受教育工作者、安全专家、网络专业人员、以及开发人员的使用和喜爱。那些经由Wireshark还原的信息,可以被其图形用户界面(GUI)或TTY模式的TShark工具来查看。
3、Metasploit
作为一个安全项目,Metasploit可为用户提供有关安全风险或漏洞等方面的重要信息。该开源的框架可以通过渗透测试服务,让用户获悉各种应用程序、平台和操作系统上的最新漏洞,以及可以被利用的代码。从渗透测试角度来看,Metasploit可以实现对已知漏洞的扫描,侦听,利用,以及证据的收集。它提供可在Linux、Windows以及Apple Mac OS上运行的命令行和图形用户界面。虽然Metasploit是一种商业工具,但它附带有一个开源的有限试用版。
4、Netsparker
作为一款商业化的安全测试工具,Netsparker是一个精确、自动化且易用的Web应用安全扫描程序。该工具可以被用于自动化地识别Web应用服务中的跨站点脚本(XSS)和SQL注入等安全风险。通过基于证据的扫描技术,它不仅可以生成风险报告,还能够通过概念证明(Proof of Concept),来确认是否有误报,并能减少手动验证漏洞的时间。
5、Acunetix
是一款全自动化的Web漏洞扫描程序。它可以智能地检测、识别并报告超过4500种Web应用漏洞,其中包括XSS XXE、SSRF、主机头部注入(Host Header Injection)和SQL注入的所有变体。作为一种商业工具,Acunetix通过其DeepScan Crawler来扫描重AJAX(AJAX-heavy)客户端类型的单页面应用(SPA)和HTML5网站。
6、Nessus
是针对安全从业人员的漏洞评估解决方案。它能够协助检测和修复各种操作系统、应用程序、乃至设备上的漏洞、恶意软件、配置错误、以及补丁的缺失。通过运行在Windows、Linux、Mac、Solaris上,用户可以用它来进行IP与网站的扫描,合规性检查,敏感数据搜索等测试。
7、W3af
作为一个免费工具,W3af是一个Web应用攻击和审计框架。它通过搜索、识别和利用200多种已知的Web应用漏洞,来掌控目标网站的总体风险。这些漏洞包括:跨站点脚本(XSS)、SQL注入、未处理的应用错误、可被猜测的密钥凭据、以及PHP错误配置等。W3af不但适用于Mac、Linux和Windows OS,而且提供控制台和图形用户界面。
8、Zed Attack Proxy
由OWASP开发的免费且开源的安全测试工具。它可以让您在Web应用中发现一系列安全风险与漏洞。由于支持Unix/Linux、Windows和Mac OS,即使您是渗透测试的新手,也能轻松地上手该工具。
9、Burpsuite
作为一个严控“入侵者”扫描工具,Burpsuite被部分安全测试专家认为:“如果没有它,渗透测试将无法开展。”虽然不是免费,但是Burpsuite提供丰富的功能。通常,人们可以在Mac OS X、Windows和Linux环境中使用它,以实现爬取内容和功能,拦截代理,以及扫描Web应用等测试目的。
10、Sqlninja
作为最好的开源渗透测试工具之一,Sqlninja可以利用Microsoft SQL Server作为后端,来检测Web应用上的SQL注入威胁和漏洞。该自动化测试工具提供命令行界面,可以在Linux和Apple Mac OS X上被使用。Sqlninja具有包括:对远程命令进行计数,DB指纹识别,及其检测引擎等描述性功能。
标签:渗透网站需要哪些工具
已有2位网友发表了看法:
访客 评论于 2022-07-09 12:21:56 回复
受教育工作者、安全专家、网络专业人员、以及开发人员的使用和喜爱。那些经由Wireshark还原的信息,可以被其图形用户界面(GUI)或TTY模式的TShark工具来查看。3、Metasploit作为一个安全项目,Me
访客 评论于 2022-07-09 16:07:58 回复
关安全风险或漏洞等方面的重要信息。该开源的框架可以通过渗透测试服务,让用户获悉各种应用程序、平台和操作系统上的最新漏洞,以及可以被利用的代码。从渗透测试角度来看,Metasploit可以实现对已知漏洞的扫描,侦听,利用,以及证据的收集。它提供可在Linux、Wi