渗透测试流程及信息收集 – 作者:如约而至ss

什么是渗透测试?

WEB安全渗透测试可不是随便拿个工具扫一下就可以做的,你不仅需要了解业务还需要给出相应的解决方案。这也是渗透测试和入侵的最大区别,入侵可以不择手段地(甚至是具有破坏性的)拿到系统权限,而渗透测试则是出于保护系统的目的,更全面地找出测试对象的安全隐患。渗透测试的第一步就是信息收集,这也是渗透测试最重要的一步,全面的信息收集是对渗透测试的保障。下面我就渗透测试相关术语、渗透测试完整流程、信息收集,这三点总结了一些东西,希望可以给看到的朋友们一些帮助。

一、渗透测试相关术语:

1、肉鸡:被黑客入侵并被长期驻扎的计算机或服务器。可以随意控制,可以是任意系统的设备,对象可以是企业,个人,政府等等所有单位。

2、抓鸡:利用使用量大的程序的漏洞,使用自动话方式获取肉鸡的行为。

3、提权:操作系统低权限的账户将自己提升为管理员权限使用的方法。

4、后门:黑客为了对主机进行长期的控制,在机器上种植的一段程序或留下的一个“入口”。

5、跳板:使用肉鸡IP来实施攻击其他目标,以便更好的隐藏自己的身份信息。

6、旁站入侵:即同服务器下的网站入侵,入侵之后可以通过提权目录等手段拿到目标网站的权限。

7、C段入侵:即同C段下服务器入侵。如目标IP为192.168.180.253入侵192.168.180.*的任意一台机器,然后利用一些黑客工具嗅探获取在网络上传输的各种信息。

8、黑盒测试:在未授权的情况下,模拟黑客的攻击方式和思维方式,来评估计算机网络系统可能存在的安全风险。黑盒测试不同于黑客入侵,并不等于黑站。黑盒测试考验的是综合的能力(OS、Database、Script code、思路、社工),思路与经验积累往往决定成败。

9、白盒测试:相对黑盒测试,白盒测试基本是从内部发起的。白盒测试与黑盒测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片段,也能够与单位的其他员工进行面对面的沟通。

10、黑白盒的另外一种说法:知道源代码和不知道源代码的渗透测试。这时,黑盒测试还是传统的渗透测试,而白盒测试就偏向于代码审计。

11、APT(Advanced Persistent Threat)攻击:高级可持续攻击,是指组织(特别是政府)或者小团体利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。这种攻击方式有三个特点:极强的隐蔽性、潜伏期长持续性强、目标性强。

12、CVE(Common Vulnerabilities and Exposures公共漏洞展示):最初不同安全工具和数据库对同一个漏洞采用各自的命名规则,导致不同安全工具之间交互十分困难;CVE旨在为同一个漏洞提供一个统一而权威的编号以消除命名混乱带来的困难。

13、CVSS(Common Vulnerability Scoring System,通用漏洞评分系统):CVSS是由NIAC(National Infrastructure Advisory Council)开发,FIRST(Forum of Incident Response and Security Teams)维护的一套漏洞评分系统,旨在给人们提供一种漏洞严重性量化方法,可直接使用评分计算器:https://www.first.org/cvss/calculator/3.0。

14、CWE(Common Weakness Enumeration,通用缺陷列表):CVE是对具体漏洞的编号,不同漏洞他们所属的漏洞类型可能是一样的,比如都是缓冲区溢出。CWE正是对漏洞类型的编号,CWE当前共收录了716类安全缺陷。CWE旨在按类型向用户介绍安全缺陷,并提供该缺陷类型的处理方法。漏洞分类最出名的大概是OWASP Top 10,但owasp首先是针对Web的然后是Top10所以它并不全,CWE是更加全面细致的划分。

15、0day:被发现(且一般有exp)但官方尚未发布补丁或者修复方法的Vulnerability。

1day:已被发现,官方刚发布补丁但网络上还大量存在的Vulnerability。

16、Poc(Proof of Concept):能证明漏洞存在的代码。

exp(exploit):能利用漏洞的方式。

payload:攻击载荷,被送到目标机器执行的整段代码。

17、WEB指纹:WEB指纹也叫WEB应用指纹。由于所使用的工具、技术、实现方式等因素的影响,每个web网站都形成了一些独有的特点,我们把这样的特点叫做WEB应用指纹。

WEB指纹分类:1606718893_5fc495adcdaba38d0cc2e.png!small

二、渗透测试完整流程:

常规渗透测试流程:

明确目标→信息收集→漏洞探测→漏洞验证→信息分析→获取所需→信息整理→形成报告

1、明确目标:

确认范围:测试目标的范围,IP,域名,内外网。

确认规则:能渗透到什么程度,时间,能否提权等。

确认需求:WEB应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)?人员权限管理漏洞(针对人员、权限)?等等,要做到立体全方位。

2、信息收集:

方式:主动扫描,开放搜索:利用搜索引擎获得后台,未授权页面,敏感url等。

基础信息:真实IP,网段,域名,端口。

系统信息:操作系统的版本。

应用信息:各端口的应用,例如WEB应用,邮件应用等。

版本信息:所有这些探测到的东西的版本。

人员信息:域名注册人员信息,WEB应用中网站发帖人的id,管理员姓名等。

防护信息:试着看能否探测到防护设备。

3、漏洞探测:

方法:使用漏扫,例如:AWVS、IBM appscan等。

结合漏洞去exploit-db等网址找利用。

在网上寻找验证poc。

内容:系统漏洞:系统没有及时打补丁。

Websever漏洞:Websever配置问题。

Web应用漏洞:Web应用开发问题。

其它端口服务漏洞

通信安全

4、漏洞验证:

自动化验证:结合自动化扫描工具提供的结果。

手动验证:根据公共资源进行验证。

试验验证:自己搭建模拟环境进行验证。

登陆猜解:有时可以尝试猜解一下登陆的账号密码等信息。

业务漏洞验证:如发现业务漏洞,要进行验证。

5、信息分析:

精准打击:准备好上一步探测到的漏洞的exp,用来精准打击。

绕过防御机制:是否有防火墙等设备,如何绕过。

定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标。

绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)。

攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等。

6、获取所需:

实施攻击:根据前几步的结果,进行攻击。

获取内部信息:基础设施(网络连接,路由,拓扑等)。

进一步渗透:内网入侵,敏感目标。

持续性存在:一般我们对客户做渗透不需要。rootkit,后门,添加管理账号等。

清处痕迹:清理相关日志(访问,操作),上传文件等。

7、信息整理:

整理渗透工具:整理渗透过程中用到的代码,poc,exp等。

整理收集信息:整理渗透过程中收集的一切信息。

整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息。

目的:为了最后形成报告,形成测试结果使用。

8、形成报告:

按需整理:按照之前第一步跟客户确定好的范围,需要来整理资料,并将资料形成报告。

补充介绍:要对漏洞成因,验证过程和带来危害进行分析。

修补建议:当然要对所有产生的问题提出合理高效安全的解决办法。

渗透测试报告编写:

封皮

明确重点和要求

给谁看?不同职位的人关注的侧重点不一样

内容提要

漏洞列表(一页纸内)

过程清晰准确

工具(版本和功能)

渗透测试团队成员及联系方式

修补建议

流程总结:

1606726272_5fc4b28081d39e986fdcd.png!small?1606726272771

三、信息收集

1、域名信息——IP:

1.1、ping 域名:

1606726674_5fc4b412ec111c47c931c.png!small?1606726675165

1.2、nslookup命令:

1606726774_5fc4b4760ec8035b91922.png!small?1606726774230

1.3、站长之家在线工具网站:http://tool.chinaz.com/

2、绕过CDN查找真实IP的方法:

2.1、查询历史DNS解析记录:https://site.ip138.com/

2.2、站长之家ping测试:http://ping.chinaz.com/

2.3、使用国外主机名解析域名:国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。

2.4、查询子域名:毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。

2.5、网站邮件订阅查找:RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。或者通过网站注册等功能接收网站确认邮件。

2.6、手机APP端抓包:手机端的数据包抓到的可能是服务器真实IP。

3、搜索子域名:

3.1、谷歌语法:site:*.xx.com。

3.2、站长之家子域名查询寻:http://tool.chinaz.com/subdomain/

3.3、在线二级域名子域名查询:http://tools.bugscaner.com/subdomain/?domain

3.4、在线子域名查询-接口光速版:http://sbd.ximcx.cn/

3.5、DNSDB:https://dnsdb.io/zh-cn/

3.6、sublist3r:该工具会搜索多个数据来源,如Google、Yahoo、Bing、Baidu、Ask、Netcraft、Virustotal。同时,该工具也支持暴力枚举功能。

github项目地址:https://github.com/aboul3la/Sublist3r

命令举例:python3 sublist3r.py -d 17173.com -b -v -o 17173.txt

-d: 指定域名

-v: 详细信息

-b: 暴力破解(该工具自带子目录字典)

-o: 将结果保存到指定文件

3.7、手机站点:

情况一、手机网站和PC网站完全不一样。

情况二、手机网站和PC网站一样可以自适应。

4、whois查询:

4.1、站长之家whois查询:http://whois.chinaz.com/

4.2、爱站网whois查询:https://whois.aizhan.com/

4.3、万网whois查询:https://wanwang.aliyun.com/?utm_content=se_1006856273

4.4、IANA WHOIS Service:https://www.iana.org/whois

5、旁站/c段的查询:

5.1、站长之家查询旁站:http://stool.chinaz.com/same

5.2、webscan:https://webscan.cc/

5.3、nmap等工具查询c段。

6、目录信息收集:

6.1、AWVS爬取站点目录:Site Crawler站点目录爬取模块。

6.2、BURP爬取站点目录:Target的Site map模块。

6.3、御剑系列爆破站点目录。

6.4、kali下的工具DirBuster:是一个多线程的基于Java的应用程序设计用于暴力破解Web 应用服务器上的目录名和文件名的工具 。

6.5、利用谷歌语法发现关键目录信息:

搜索上传页面:inurl:upload site:17173.com

搜索后台/登录页面:intitle:后台 site:tflamps.com

搜索可能存在注入的页面:inurl:?id= site:wd-bearings.com

搜索可能存在文件包含的页面:inurl:?file= site:hkjc.com

7、网站指纹信息收集:

7.1、火狐浏览器插件——Wappalyzer。

7.2、AWVS中设置扫描对象后的第三个步骤Target中包含扫描对象的指纹信息。

7.3、whatweb在线网站:http://whatweb.bugscaner.com/look/

7.4、Finger-P指纹识别:https://fp.shuziguanxing.com/#/

7.5、云悉指纹识别:https://www.yunsee.cn/

7.6、潮汐指纹识别:http://finger.tidesec.net/

7.7、通过有特点的默认路径来判断CMS。

7.8、kali下的工具whatweb工具识别站点指纹信息:

whatweb -h

whatweb url

如:whatweb http://www.trustfar.cn/

8、端口和服务信息收集:

8.1、Nmap:被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、WAF识别及常见安全漏洞。

图形化界面——Zenmap

官网下载地址:https://nmap.org/download.html

例如:

nmap -h

nmap 192.168.0.155 –p 1-100

8.2、MASSCAN:masscan最大的优点就是扫描速度快。masscan与目标主机不建立完整的TCP连接,扫描者主机先向目标主机发送一个SYN请求连接数据包,目标主机会向扫描者主机回复一个SYN/ACK确认连接数据包,当扫描者主机收到目标主机发送回来的SYN/ACK确认连接数据包之后,扫描者主机向目标主机发送RST结束连接。选项–banners除外(因为要获取banner信息,必须要进行完整的三次握手)。

使用方式:masscan IP地址 -p 端口号

例如:masscan 192.168.0.155 -p 1-100

8.3、常见的服务和端口:

端口分为两种:TCP端口和UDP端口

计算机间相互通信的时候,分为两种方式:

(1)一种是发送信息以后,需要确认发送的信息是否到达,也就是有应答的方式,这种方式就是采用TCP协议。

(2)另一种就是发送信息以后就不管了,不去确认信息有没有到达,这种方式就是采用UDP协议。

TCP端口:20 服务:FTP(文件传输协议)

TCP端口:21 服务:FTP(文件传输协议)

TCP端口:22 服务:SSH(安全外壳协议)

TCP端口:23 服务:Telnet(远程终端协议)

TCP端口:25 服务:SMTP(简单邮件传输协议)

TCP/UDP端口:53 服务:DNS(域名系统)

UDP端口:67 服务:DHCP(动态主机配置协议)

UDP端口 : 68 服务:DHCP(动态主机配置协议)

TCP端口:80 服务:HTTP(超文本传输协议)

TCP端口:110 服务:pop3(邮局协议版本3)

TCP端口:443 服务:Https(超文本传输安全协议)

TCP端口:3306 服务:MySQL

TCP端口:3389 服务:远程桌面的服务端口

9、Fofa和Shodan

9.1、Fofa:https://fofa.so/

9.2、shodan:Shodan是一个搜素互联网链接设备的搜索引擎,不同于Google、Baidu这些搜素引擎。用户可以在Shodan上使用Shodan搜索语法查找链接到互联网的摄像头、路由器、服务器等设备信息。在渗透测试中是个非常非常不错的神器。官网:https://www.shodan.io/

shodan一些常用的语法:

hostname: 搜索指定的主机或域名。例如,hostname:”google”。

port: 搜索指定的端口或服务。例如, port:”21″。

country: 搜索指定的国家。例如, country:”CN”。

city: 搜索指定的城市。例如,city:”Hefei”。

org: 搜索指定的组织或公司。例如,org:”google”。

product: 搜索指定的操作系统/软件/平台。例如, product:”Apache httpd”。

version: 搜索指定的软件版本。例如, version:”1.6.2″。

geo: 搜索指定的地理位置,参数为经纬度。例如, geo:”31.8639,117.2808″。

before/after: 搜索指定收录时间前后的数据,格式为 dd-mm-yy。例如, before:”11-09-19″。

net: 搜索指定的IP地址或子网。例如,net:”210.45.240.0/24″。

来源:freebuf.com 2020-11-30 21:09:48 by: 如约而至ss

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论