信息收集的种类
信息收集分为被动收集和主动收集两种方式。
- 被动信息收集:利用第三方的服务对目标进行访问:Google搜索、Shodan搜索、其他综合工具,被动信息收集是指京可能多低收集与目标相关的信息
- 主动信息收集:通过直接扫描目标主机或者网站,主动方式能获取更多的信息,目标系统可能会记录操作信息。
在信息收集中,需要收集的信息:目标主机的DNS信息
、目标IP地址
、子域名
、旁站和C段
、CMS类型
、敏感目录
、端口信息
、操作系统版本
、网站架构
、漏洞信息
、服务器与中间件信息
、邮箱
、人员
、地址
等。
在信息收集中,首先可以先进行被动收集,确定网络范围内目标,与目标相关的人员的邮箱,地址等信息,然后在选择出重点渗透的目标,在针对性的进行主动信息收集。
信息收集的工具介绍
1、Shodan
Shodan是一个搜索引擎,允许用户使用各种过滤器查找连接到互联网的特定类型的计算机(网络摄像头,路由器,服务器等),官方网址:https://www.shodan.io/ 。例如搜索“product:“SSH””,能够得到相对应的IP地址,主机名,ISP(组织),对应的国家,Banner信息等信息。
使用前需要注册一个账号,否则无法使用
还可以通过 过滤过轨来帮助精确性获取目标信息
搜索过滤规则 | 举例 |
---|---|
hostname: 搜索指定的主机或者域名 | hostname: “baidu” |
org: 搜索指定的组织 | org: “baidu” |
port: 搜索指定的端口 | port: “80” |
product: 搜索指定的操作系统/服务 | product: “SSH” |
net: 搜索指定的IP地址 | net: "192.168.0.0.1 " |
2、Google
谷歌
可以通过Google的语法规则,利用Google进行搜索,进行针对性的敏感信息搜集。
常用的语法参数:
参数 | 作用 |
---|---|
site | 可以限制搜索范围内的域名 |
inurl | 将搜索范围限制在指定的URL内 |
intext | 用于搜索网页的正文内容,忽略标题和URL等文字 |
intitle | 用于搜索包含关键字的网页 |
filetype | 搜索文件的后缀名或者扩展名 |
link | 用于查询所有连接到某一个特定URL的列表 |
使用场景:
可以通过组合使用的方法,从而得到获取铭感信息的目的。
3、Maltego
Maltego是一款综合信息收集工具,可以帮助获取和可视化情报收集。Maltego在Kali linux中自带。Maltego使用之前需要进行注册,注册之后可以使用社区版免费版,官方安装网址:https://www.paterva.com/downloads.php, 官方指导文档:https://docs.maltego.comen/user-guide/。
在Kali linux打开Maltego之后,利用之前注册的账户进行登录,然后就可以使用Maltego进行信息收集。首先,点击软件左上角创建一个项目,然后在软件左侧选择一个类型为目标,部分类型包括
如图使用domain(域名)为搜索目标。点击domain(域名)右侧可以选择搜索策略,默认选择第一个策略。默认策略包括DNS分析,IP地址,邮箱,地址电话等信息。等待一段时间后,就能得到生成的网络拓扑图
通过网络拓扑图,可以得到域名对应的服务器、网址、邮箱等信息。在得到拓扑图之后,还能根据得到的信息节点,在进行相对应的策略分析。
最后,分析得到的信息不仅可以导出为图片,还可以导出为PDF,详细分析收集的信息。
Maltego作为被动信息搜集工具,收集的信息相当的全面,包括选择目标的 IP地址、域名及域名的相关信息、邮箱信息、公司的地址、人员等信息。根据收集到的这些信息,可以进行综合分析,有助于确定后期渗透测试的攻击的范围和目标。
4、DNS域名信息收集
对于渗透目标为域名,需要收集域名对应的IP地址,域名注册信息、子域名等相关信息。
Whois
Linux 的whois指令可以获取目标域名的关键注册信息,包括注册公司、注册邮箱、管理员联系手机等。
dnsenum工具
linux下的工具,指令格式:dnsenum 域名,能够返回对应IP地址。可以输入指令:dnsmap --help查看帮助文档。
5、子域名收集
在真实场景中,主域名对应网站的安全措施会比较强,因此可以转向收集子域名的信息。这里介绍Windows中的子域名挖掘的工具Layer和开源扫描器onlinetools ,kali linux中fierce 工具。
Layer子域名收集器
输入需要查询的域名,点击开始,就能开始进行搜索,能够返回对应的子域名、IP地址、CDN列表、WEB服务器信息。下载链接
开源扫描器onlinetools
输入域名,点击查询
Github地址: https://github.com/iceyhexman/onlinetools
里面有详细的安装文档
fierce工具
fierce --domain baidu.com
使用fierce --help可以查看帮助文档
6、网站架构
针对网站的架构,主要收集:服务器操作系统、网站服务组件和和脚本类型、CMS类型、WAF等信息。
1、服务器类型
服务器类型包括常用的操作系统:Linux还是Windows,使用nmap能够辨别。
指令: nmap -A -T4 -v IP地址
2、网站服务组件和脚本类型
网站服务组件和脚本而理性可以利用linux的网站指纹识别工具:whatweb和浏览器插件Wappalyzer
Whatweb
Wappalyzer
一款Chrome浏览器的插件,可以查询网站是用什么技术进行编写的。
插件可以自行到Chrome扩展商店进行下载
3、CMS安装检测
CMS是一个内容管理系统,允许用户将内容直接发布到Web的接口
主流的cms有drupal,joomla,wordpress,dedecms判断出目标网站CMS,可以根据对应的CMS类型的漏洞进行攻击。目标网站的CMS识别和CMS安全检测,可以利用onlinetools工具分析。
4、防火墙识别
WAF(防火墙)是WEB应用的保护措施。目标网站的防火墙信息可以使用nmap和WAFW00F获取。
nmap
指令:nmap -p 80–script http-waf-detect.nse 域名
WAFW00F
WAFW00F是linux一款探测目标防火墙信息的工具。
指令:waf00f 域名。
7、旁站和C段
旁站:和目标网站在同一台服务器上的其它的网站。
C段:和目标服务器IP地址处在同一个C段的其它服务器。可以利用onlinetools工具和在线网站http://www.webscan.cc获取。
onlinetools
webscan
8、目标搜集
扫描网站的目录结构,收集铭感信息,利于对目标网站的渗透,部分敏感信息如下表:
常用的目录扫描工具有Window的御剑目录扫描器和7kbstorm,linux的Dirb。
御剑目录扫描器
配置字典之后(可以自行百度御剑字典),输入域名,然后设置好线程数以及超时时间即可扫描。
7kbstorm
使用方法:在扫描目录输入目标域名,点击开始即可。下载地址
Github地址:https://github.com/7kbstorm/7kbscan-WebPathBrute
Dirb
Dirb是一款基于字典的Web目录扫描工具。该工具能根据用户的字典对目标网站进行扫描。
9、端口信息扫描
通过扫描得到目标服务器的端口,根据端口对应的服务,从而进行针对性的攻击。部分常见的端口及对应的服务。常用的端口扫描工具nmap、zemap。
nmap
Nmap用于快速扫描一个网络和一台主机开放的端口,使用TCP/IP协议栈特征探测目标主机的操作系统版本。安装连接:https://nmap.org/download.html
Zenmap
Zenmap是Nmap官方提供的图形界面版本。安装连接:https://nmap.org/download.html ,常用的指令如表格。
10、漏洞扫描
网站漏洞扫描有助于帮助找到网站的脆弱点。这里介绍两款漏洞扫描工具:WAVS和Nessus。
AWVS
AWVS(Web Vulnerability Scanner)是一个知名的自动化的Web应用程序漏洞扫描工具,它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序,并且可以将扫描的结果生成可视化报告。安装连接:https://www.acunetix.com/vulnerability-scanner/download/
简单使用步骤:首先点击AWVS左侧的目标,然后再点击添加目标并输入需要攻击的目标网站。
然后可以进行参数的选择和配置,不进行修改则直接点击扫描,使用默认策略进行扫描。
待扫描结束之后,点击AWVS左侧的报告,还能生成规范详细的报告。
Nessuss
Nessus是一款经典且功能强大的漏洞扫描工具,该工具基于多种安全漏洞进行扫描。官方安装连接:https://www.tenable.com/downloads/nessus
首先需要在官方网站上注册账号,之后利用注册的账号登录使用Nessus。
简单使用步骤:首先,点击左上角的新建扫描。
然后会出现很多不同的扫描方式,这里选择第一个高级扫描方式。
然后,进行参数配置,输入要进行攻击的目标,然后点击完成,就开始进行对目标的扫描。
最后,能将扫描的结果生成相对应的报告。
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份完整版的网络安全(嘿客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】