攻防渗透之信息收集(打点)6000+ 文字的详细教程,关于信息收集技术看这一篇就够啦

目录

写在前面:

一、信息收集概述

1.1 信息收集的举例说明(理解信息收集)

二、真实IP获取

2.1真实IP介绍

2.2如何判断网站是否存在CDN

2.3绕过CDN真实IP获取

2.3.1子域名查询

2.3.2历史DNS解析记录

2.3.3国外ping探测

2.3.4利用网站漏洞

2.3.5邮件信息

三、旁站信息收集

3.1查询旁站的方式

四、C段主机查询

4.1C段获取的方式

五、子域名信息收集

5.1子域名信息收集-在线站点

5.2子域名信息收集-枚举

5.3子域名信息收集-搜索引擎

5.4子域名信息收集-空间搜索引擎

5.5子域名信息收集-透明证书

5.6子域名信息收集-聚合工具

六、端口信息收集

6.1端口信息收集的方式

七、whois查询

7.1whois介绍

7.2在线工具

八、主动信息收集之操作系统识别

8.1主动信息收集的介绍:

8.2主动信息收集的优缺点:

8.3防御手段及加固方法

九、主动信息收集之服务版本识别

9.1服务版本识别

9.2报错显示的加固方法

十、主动信息收集之指纹识别

十一、主动信息收集之敏感路径识别

11.1常见的敏感文件、目录:

11.2跑路径会经常看到的一些状态码:

十二、主动信息收集之历史漏洞信息识别

写在最后


写在前面:

本文章是作者针对于攻防对抗(hvv)中,对于信息收集技术 做了一些专对于hvv过程中的针对和优化,本文章还是初版,以后会对本文章做更多的优化和扩展,有任何不足欢迎大家指点出来,喜欢本文章的就点点收藏吧

一、信息收集概述

  • 在攻防渗透中,信息收集是非常重要的一步,通过信息收集可以了解渗透目标的网络架构,描述出相关的网络拓扑,缩小攻击范围。只有将目标的相关信息收集完整,才可以对攻击目标开启的主机及主机安装运行的应用针对性地进行有效攻击 有一句话叫,渗透测试的本质就是信息收集

1.1 信息收集的举例说明(理解信息收集)

知己知彼,方能百战不殆

信息收集也叫做打点,那么什么叫做打点呢?我给大家举例说明

比如说你是小偷,你要去抢劫,你们团伙有3个人,你们要抢劫的对象是一个金店,扛着AK47就要去抢劫,我们把抢劫的这个金子就叫做渗透。我们要成功的渗透一个目标,把它攻击下来,你们就可以理解成我要去抢金店,我要成功的把金子抢到手。
那么你第一步是不是直接把金子抢到手,扛着你的AK47就跑到金店直接去抢吗?

那肯定不是的,第一步是不是得先踩点啊,你派个脑袋机灵点的人去人家金店门口去看一下,比如说有没有摄像头,这个马路有多宽,叔叔来了得多久,成功后计划逃跑的路线等等,收集这个金店的信息,收集完成之后呢,然后你们根据收集完成的信息,找到薄弱点 ,比如说这个金店后门有个保安,天天晚上8点就去抽烟,一抽就花了半个小时,趁着这段时间,我们直接进后门,那个玻璃不是防爆玻璃,一锤子下去就能砸碎,把这些信息都收集好,列张纸,这不就完美了吗?这就叫打点 。本来这个东西是叫踩点的,踩点一听就不好听,犯罪份子才叫踩点,我们是做安全的,不能把它叫做踩点啊,所以叫做打点

把这个例子举到现实生活中,假如你是一个黑客,来自非洲的一个黑客,那家伙巨黑无比,你要攻击一个目标,那你直接去攻吗?肯定不是啊。

你要去找这个目标都开了哪些网站,开了哪些端口,是不是要找到关于这个目标的很多信息啊,只有你找到的信息够全,够多,你才越能攻击进去。
假如说你啥都不收集直接攻进去,你连人家的网站在哪你都不知道,那你还攻什么攻啊,门你都不知道你还怎么攻,所以说我们要收集足够多的信息,就类似犯罪份子看摄像头有几个啊,保安几点出去啊......

所以这个就叫做信息收集 抢劫金店成不成功,就在于这个人踩点踩的成不成功,路线规划的成不成功 所以信息收集是非常关键的,有句话叫知己知彼,方能百战不殆

那么我们在现实生活中,信息收集都需要收集什么呢?别着急,随我一起看下去

二、真实IP获取

真实IP的获取并不一定是百分百成功的,我只是讲述一些可能成功的思路及方法,希望大家明鉴!!!

2.1真实IP介绍

什么叫真实IP:真实IP就是指公网IP地址,公网IP一共多少个呢,大约40亿个左右,范围是xxx.xxx.xxx.xxx,一个xxx是代表0-255,我们平时使用浏览器,使用的都是域名,域名的存在是为了方便人的记忆,其实浏览器本质还是访问真实IP地址来获取页面的。 为什么要找到真实IP:找到真实的IP我们就可以访问这个IP的C段和端口,方便进一步渗透,但是有的网站挂了CDN,我们必须绕过CDN获取真实IP

什么是CDN?


内容分发网络(CDN): 是指企业利用分布在不同区域的节点服务器群组成流量分配管理平台,为用户提供内容分散存储和高速缓存服务

在渗透测试过程中,经常会碰到网站有CDN的情况。CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说的简单点,就是一组在不同运营商之间的对接点上的高速缓存服务器,把用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验

CDN的优势

  • 提高用户访问速率,优化用户使用体验
  • 隐藏真实服务器的IP
  • 提供WAF功能,目前很多CDN也提供了WAF的功能,我们的访问请求会先经过CDN节点的过滤,该过滤可对SQL注入、XSS、Webshell上传、命令注入、恶意扫描等攻击行为进行有效检测和拦截。CDN节点将认为无害的数据提交给真实的主机服务器。

CDN几种访问方式的不同

  • 传统访问:用户访问域名–>解析服务器IP–>访问目标主机
  • 普通CDN:用户访问域名–>CDN节点–>真实服务器IP–>访问目标主机
  • 带WAF的CDN:用户访问域名–>CDN节点(云WAF)–>真实服务器IP–>访问目标主机

没有CDN:

使用CDN服务:

所以在渗透测试中,为了要知道网站服务器的真实IP,我们必须绕过CDN查找出网站的真实ip地址

2.2如何判断网站是否存在CDN

1、使用不同主机ping域名判断是否有CDN(多地ping)

原理:既然CDN会根据我的ip地址来自动分配离我最近的那个节点(随机发放,就近分配ip),假如说我们访问百度,那我们能不能找一些我的朋友,让我的朋友在广州、深圳、长沙、北京、上海、天津、北京、长沙、西安......每个地方都去ping一下百度,然后看返回的ip是否相同,如果返回的IP都是相同的,那么我就可以判断出这个网站没有挂载CDN,反之亦然。

但是你有那么多全国各地的朋友来帮你去ping一个站点吗?我想是没有的,所以就催生出了多地ping的在线站点。

在线网站如下

站长工具:http://ping.chinaz.com/

爱战网:https://ping.aizhan.com/

ITDOG:https://www.itdog.cn/ping/

2、使用nslookup域名解析判断是否有CDN nslookup”,命令对域名进行解析,如果发现有多个IP地址,可能使用了CDN技术

3.SearchMap判断目标有没有使用CDN

searchmap是一款集域名解析、IP反查域名、WHOIS查询、CDN检测、端口扫描、目录扫描、子域名挖掘为一体的前渗透测试综合信息收集工具

下载地址:GitHub - asaotomo/SearchMap: SearchMap是一款集域名解析、IP反查域名、WHOIS查询、CDN检测、端口扫描、目录扫描、子域名挖掘为一体的前渗透测试综合信息收集工具。

下载好SearchMap后使用以下命令安装依赖

python3 -m pip install -r requirements.txt

1.获取网站基本信息

python3 searchmap.py -u  https://www.baidu.com

python3 searchmap.py -u  106.53.143.192

2.使用nmap进行隐式端口扫描

python3 searchmap.py -u  https://www.baidu.com -p

3.批量扫描网站基本信息

python3 searchmap.py -r myurl.txt

4.使用多地ping来判断目标是否使用cdn加速
python3 searchmap.py -u  https://www.baidu.com -n

2.3绕过CDN真实IP获取 

2.3.1子域名查询

查询子域名 由于CDN加速需要支付一定的费用,很多网站只对主站做了CDN加速,子域名没有做CDN加速,子域名和主站很有可能在同一个服务器或者同一个C段中,可以通过探测子域名的方式 ,收集子域名的信息,查询子域名的IP地址来辅助判断主站的IP信息

2.3.2历史DNS解析记录

通过域名解析记录指向服务器,通过历史域名解析的记录就可以去查询一些网站的真实IP,一些网站在开始起家时,是没有使用CDN技术的,很可能是近几年才开始使用CDN技术的,如果你去查询这些网站所有的解析记录,甚至可以查询到刚开始这个网站没有使用CDN时的域名解析记录,那这时查出来的地址很可能就是真实IP

https://dnsdb.io/zh-cn/

https://x.threatbook.cn

https://viewdns.info/iphistory/

https://site.ip138.com/

我们拿https://viewdns.info/iphistory这个站点来举例

像我们这里去查询百度的域名解析记录

百度的域名解析记录结果如下

2.3.3国外ping探测

国外ping探测:

原理:跟国内多地ping原理相似,比如说有的网站它的主要业务范围都在国内,对于国外它没有架设CDN服务,毕竟CDN服务也挺贵的,那么我们就可以通过国外的主机来ping一下试试,如果它在国外没有架设相应的CDN服务,那么我们就有可能通过这个方法来解析到它的真实IP

在线网站如下

http://host-tracker.com/
http://www.webpagetest.org/
https://dnscheck.pingdom.com/

2.3.4利用网站漏洞

利用网站的漏洞和信息泄露的敏感文件信息,比如(phpinfo文件,网站源 码文件,Github文件泄露)等获取真实IP

2.3.5邮件信息

邮件信息中会记录邮件服务器的IP信息,有些站点类似于RSS邮件订阅的功 能,可以利用其发送邮件,通过查看源码的方式查看服务器的真实IP地址

2.3.6 通过空间安全搜索引擎

什么是网络空间搜索引擎?交换机、路由器、网络摄像头、私人网盘、打印机、ATM、物联网家电等等。这些所有的系统和设备,就是网络里面的一个个节点,共同组成了网络空间我们想直接通过引擎去搜索网络上的这些硬件设备 就有了网络空间搜索引擎

fofa网络空间搜索引擎

网站地址:https://fofa.info/

国产的网络空间搜索引擎,由白帽汇推出

像我们去用网络空间搜索引擎去搜索真实的IP可以借用证书的序列号去搜索

以下我们来做个演示:

我们来查看百度证书的序列号

将其复制下来,转换为十进制的结果

进制转换网站:https://tool.lu/hexconvert/

然后通过fofa引擎去搜索序列号,这时出来的网站很有可能就是一些真实的IP

其他的网络空间搜索引擎 

shodan网络空间搜索引擎
网站地址:https://www.shodan.io/

鹰图网络空间搜索引擎
网站地址:https://hunter.qianxin.com/

censys网络空间搜索引擎
网站地址:https://search.censys.io/

zoomeye 钟馗之眼网络空间搜索引擎
网站地址:https://www.zoomeye.org/

三、旁站信息收集

旁站是与攻击目标在同一服务器上的不同网站,在攻击目标没有漏洞的情况 下,可以通过查找旁站的漏洞攻击旁站,然后再通过提权拿到服务器的最高权限,拿到服务器的最高权限后攻击目标也就拿下了

3.1查询旁站的方式

获取旁站一般有这个几个方式:

1、通过站长工具进行同IP的查询

https://stool.chinaz.com/same

https://chapangzhan.com/

https://www.webscan.cc/

2、搜索引擎查询 通过bing搜索https://cn.bing.com/search?q=ip:这里填上你要搜索的IP地址

3、网络空间探测引擎搜索

四、C段主机查询

C段主机的查询这个技术点实施的前提下是一定要找到目标网站的真实IP!!!

C段查询主要是当前的IP攻击不下来的时候,可以攻击他的C段,比如IP是220.181.34.34是我们的目标,但是攻击不下来,可以去扫描220.181.34.0-255这个网段,看看能不能攻击下来

对于红蓝对抗和护网,C段扫描比较有意义。对于单独网站的渗透测试,C段扫描意义不大。C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。

4.1C段获取的方式

C段获取的方式主要是扫描C段的主机

1、nmap扫描c段主机

nmap -sn IP/24

2、搜索引擎C段信息 使用google或者百度进行语法搜索 site:x.x.x.*进行C段的探测

搜索引擎C段信息,比如 site:xxx.xxx.xxx.*

 3、工具搜索 使用C段扫描的工具

使用C段扫描的工具

4、使用网络空间探测引擎 IP="XXX.XXX.XXX.0/24"

存活资产探测 

C段+全段口会生成很多资产,但是其中会有不能访问的,所以我们需要资产探活。

使用方法就是,直接加IP地址段或者域名列表

url.txt放上需要查询的网址。

EHole -l url.txt

五、子域名信息收集

什么是域名?


域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。

由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

列如:baidu.com、qq.com、abc.com

域名的分类

一、种类分类

1、域名按语种的不同划分

中文域名、英文域名、日文域名和其他语种的域名

2、按域名所在的域的不同划分

顶级域名、二级域名.com域名是使用最早也最广泛的域名。例如表示工商企业的.com。表示网络提供商的.net。表示非盈利组织的.org。二是国家域名,又称为国内顶级域名(national top-level domainnames,简称nTLDs),即按照国家的不同分配不同后缀,这些域名即为该国的国家顶级域名。目前200多个国家和地区都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等

3、按管理机构的不同分为

国际域名由非营利性国际组织ICANN(The Internet Corporation for Assigned Names and Numbers)运营管理—以.com、.net、.org、.cc 、.tv等根域为后缀的域名,国家域名—在的后面再加上国家代码(如中国为.CN,日本为.JP,英国为.UK)后缀的域名

4、按后缀的不同形式分为

.COM 商业性的机构或公司
.ORG 非盈利的组织、团体
.GOV 政府部门
.MIL 军事部门
.NET 从事Internet相关的的机构或公司
.AC 科研机构
.EDU 教育机构,互联网通用顶级域之一,主要供教育机构,如大学等院校使用
.ARPA,由ARPANET(美国国防部高级研究计划局建立的计算机网)沿留的名称,被用于互联网内部功能
.BIZ 网络商务向导,适用于商业公司(注:biz是business的习惯缩用)
.info 提供信息服务的企业
.pro适用于医生、律师、会计师等专业人员的通用顶级域名
.name 适用于个人注册的通用顶级域名
.coop 适用于商业合作社的专用顶级域名
.travel 旅游域名,国际域名
.int 国际组织

什么是子域名?

子域名是父域名的下一级,像“ www.xxx.com ”这样的域名为企业的主站域名,企业对于主站域名的应用的防护措施比较健全,不管是应用本身的漏洞发现、漏洞修复,还是安全设备相关的防护都做得更加及时和到位,而企业可能有多个、几个甚至更多的子域名应用, 因为子域名数量多,企业子域名的防护可能没有主站的防护做的到位,攻击不到主站的时候,尝试攻击子域名,进行子域名的信息收集。

比如whoami.com是一个域名,那么a.whoami.com、b.whoami.com类似这样的格式的域名就是whoami.com的子域名,都是属于whoami.com的资产

5.1子域名信息收集-在线站点

除了使用工具去查询子域名,我们还可以使用在线网站去查询子域名

网址:https://site.ip138.com/

5.2子域名信息收集-枚举

枚举的方式就是进行暴力的破解,首先需要一个好的字典,这样会增加成功率。

5.3子域名信息收集-搜索引擎

使用google baidu bing 等搜索引擎搜索子域名。

5.4子域名信息收集-空间搜索引擎

使用fofa等工具进行搜索

5.5子域名信息收集-透明证书

当您通过安全连接(HTTPS) 访问某个网站时,该网站会向浏览器提供数字证书。此证书用于识别该网站的主机名,由已验证网站所有者的证书授权中心(CA) 签发。只要用户信任相应的CA,便可信任证书中提供的身份证明

https://crt.sh/

https://search.censys.io/

如果我们不想使用暴力枚举的方式获得子域名,我们还可以通过证书平台去获取子域名

我们使用谷歌浏览器打开百度

注意这个锁的图像,我们点击它

我们接着点击【连接是安全的】,跳出如下界面

我们接着点击【证书有效】

然后我们在证书的主题背景的备用名称中找到当前网站的子域名信息,如下图所示

这是一种通过证书查域名的方式

此外,我们还可以通过一些证书平台去查询域名

网站地址:https://crt.sh/

 点击【search】查询,查询结果如下

网站地址:https://search.censys.io/

 点击Search查询,查询结果如下

5.6子域名信息收集-聚合工具

聚合工具就是,结合和爆破,证书,搜索引擎,DNS解析记录等多个方式去探测子域名比如:oneforall

OneForAll


下载地址:GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具

在渗透测试中信息收集的重要性不言而喻,子域收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:

  • 不够强大,子域收集的接口不够多,不能做到对批量子域自动收集,没有自动子域解析,验证,FUZZ以及信息拓展等功能
  • 不够友好,固然命令行模块比较方便,但是当可选的参数很多,要实现的操作复杂,用命令行模式就有点不够友好,如果有交互良好,高可操作的前端那么使用体验就会好很多
  • 缺少维护,很多工具几年没有更新过一次,issues和PR是啥,不存在的
  • 效率问题,没有利用多进程,多线程以及异步协程技术,速度较慢

为了解决以上痛点,此项目应用而生,正如其名,OneForAll是一款集百家之长,功能强大的全面快速子域收集终极神器

工具的安装和使用


下载好OneForAll,进入到OneForAll的目录下,执行以下命令安装OneForAll所需的环境依赖

python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/


OneForAll扫描网站
单个目标网站扫描

 

python oneforall.py --target baidu.com run
# --target 指定扫描的网站


扫描完成后会在oneforall的目录下的result文件夹里生成爆破出来的子域名

批量扫描

python oneforall.py --targets target.txt run
#target.txt写上需要批量爬取域名


扫描后的结果同样会在oneforall的目录下的result文件夹里生成

全部扫描完成后还会生成一个excal表格,非常方便查看和筛选域名信息

subDomainBrute


subDomainsBrute是一款高并发的DNS暴力枚举工具

下载地址:GitHub - lijiejie/subDomainsBrute:渗透测试人员的快速子域 Brute 工具

工具的安装和使用

下载好subDomainsBrute后,进入目录,执行以下代码安装环境依赖

pip install dnspython gevent

用法:subDomainsBrute.py[选项]target.com
选项:
--version 显示程序的版本号并退出
-h、--help 显示此帮助消息并退出
-f FILE文件包含新的换行子,默认为subnames.txt文件。
--full 完全扫描,将使用NAMES FILE subnames_full.txt暴力破解
-i、 --ignore-intranet 忽略指向专用IP的域
-w、--wildcard  通配符测试失败后强制扫描
-t THREADS, --threads=THREADS 扫描线程数,默认200
-p PROCESS, --process=PROCESS 扫描进程数,默认为6
-o OUTPUT, --output=OUTPUT    输出文件名称 {target}.txt


subDomainsBrute扫描网站

python subDomainsBrute.py -t 20 baidu.com -o baidu.txt


当网站扫描完成后,会在 subDomainsBrute目录下生成一个baidu.txt文件,里面存放着百度的子域名信息

六、端口信息收集

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口,不同的端口对应不同的服务,计算机的端口是0-65535个,当80 443 等端口攻击不下来的时候通过端口测试,扫描其他端口,从而渗透成功

端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0到65535

我们平时去扫描这些端口,一是为了查看开放的服务,二是查看目标的资产,方便为我们后续的渗透行为做好铺垫

查看本机端口信息
对于本机端口信息,我们可以用以下两条命令来查询相应端口有没有开放。

windows:

netstat -aon|findstr 445 #查看本机445端口有没有运行


 linux:
 

netstat -an|grep 22 #查看本机22端口是否启动

常见端口及漏洞

分类

1、文件共享服务

2、远程连接服务

3、Web应用服务

4、数据库服务

5、邮件服务

6、网络常见协议

7、其他服务端口

 文件共享服务端口 

远程连接服务端口  

web应用服务端口

 数据库服务端口

邮件服务端口

 

网络常见协议端口

 特殊服务端口

6.1端口信息收集的方式

端口的发现一般是通过扫描技术或者网络空间探测引擎

6.1.1Zenmap扫描端口

1、使用Zenmap扫描端口 nmap -sV -p 1-65535 IP

6.1.2Nmap扫描端口

nmap扫描单个ip

nmap 127.0.0.1

Nmap扫描整个子网 

nmap 192.168.0.1/24

 Namp参数语法:

nmap
-sV
版本检测、使用版本检测扫描之前需要先扫描开放了哪些端口
-PN
参数可以绕过PING命令,用于远程主机是存活在网络上的,目标主机禁ping的情况下
-A
使用所有高级扫描选项;全端口扫描
-O
操作系统探测;
-T
设置扫描速度,1-6 
-sP
主机存活性扫描,arp直连方式
6.1.3Masscan扫描端口 
masscan 127.0.0.1 -p 1-65535

2、使用端口扫描的工具

七、whois查询

7.1whois介绍

whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。

7.2在线工具

https://whois.chinaz.com/

https://mwhois.chinaz.com/   (移动接口,限制没那么高,查询的信息可能更多一些)

https://whois.aizhan.com/

https://whois.aliyun.com/

https://whois.cnnic.cn/WelcomeServlet

域名反查:

https://mwhois.chinaz.com/

https://whois.chinaz.com/

icp备案查询:

https://beian.mlit.gov.cn/

https://icp.chinaz.com/

https://beian88.com/

如上图,查询到了qq.com域名相关的信息 

7.3kali whois命令

域名:联系人:姓名、邮箱、手机号 (社工数据的基础,邮箱可以用来钓鱼,姓名可以用来编写社工字典)

反查:更多的域名 (扩大信息面,寻找更多的机会)

八、主动信息收集之操作系统识别

8.1主动信息收集的介绍:

主动信息收集通常是在被动信息收集之后分析出重要攻击⾯或者⽬标重要信息的时候再针对性地去做主动信息收集,
在主动信息收集的时候通常持续时间⽐较⻓⽽且会通过各种不同的⽅式与⽬标交互。实战中最常⽤的⼿段是模拟或者伪装正常的业务流程与⽬标交互。

8.2主动信息收集的优缺点:

优点:
 1.信息的针对性强 
2.信息的准确度和时效性⾼ 
3.能收集到未公开的敏感信息 
缺点: 
1.容易暴露,被发现的⻛险⾼ 
2.收集的信息量和覆盖⾯⽐较少  
主动信息搜集之前我们一定要挂上代理,一方面是为了隐藏自己,一方面是为了防止测试的时候被封ip导致无法进行继续的渗透活动。

操作系统识别:
Windows的TTL的值是128,而Linux的TTL大多是64。(默认情况下)

Windows

linux


nmap -O参数扫描系统


Windows操作系统:大小写不敏感
Linux操作系统:大小写敏感
红队攻击思路:
中间件服务版本、软件服务版本-》漏洞库-》RCE

8.3防御手段及加固方法

蓝队:
Windows加固:
点击“开始→运行”,在“运行”对话框中输入“regedit”命令并回车,弹出“注册表编辑器”对话框,展开“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters”
找到“DefaultTTL”,将该值修改为十进制,重新启动服务器系统后即可。ttl(0-255)

Windows 加固完之后的效果


Linux加固:
临时:echo 128 > /proc/sys/net/ipv4/ip_default_ttl(重启即失效)
长期:修改/etc/sysctl.conf配置文件,net.ipv4.ip_default_ttl=128

linux加固完之后的效果

九、主动信息收集之服务版本识别

9.1服务版本识别

1.流量包中的关键字

2.servers-db(nmap所维护的一个数据库,其中包含了各种网络服务的版本信息的特征数据,通过对目标服务发起请求,从响应中提取特征数据跟数据库中进行比对,就能识别出对应的版本

3.报错显示

9.2报错显示的加固方法

蓝队:
apache:找到apache路径/conf/extra/httpd-default.conf
ServerToken Full           -》 ServerToken Prod
ServerSignature On      -》  ServerSignature off

apache加固效果

nginx:找到nginx路径/conf/nginx.conf

$server_tokens off;       -》  server_tokens off;

nginx加固效果

常见组合:

Linux+Apache+PHP+MySQL

Linux+Nginx+PHP+MySQL

Windows+IIS+APS+SQL sever

Linux+Tomcat+JSP+MySQL

Linux+Tomcat+JSP+Oracle

十、主动信息收集之指纹识别

WAF指纹识别


什么是WAF


WAF的全称是(Web Application Firewall )Web 应用防火墙用来过滤HTTP/HTTPS的请求,

在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着我们不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。所以,我们需要手动进行WAF的绕过,而绕过WAF前肯定需要对WAF 的工作原理有一定的理解。本文主要从绕过WAF过程中需要注意的角色和点出发,尝试理解它们的运作,构建一个简单的知识框架。

首先,WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型WAF指的是硬件型WAF、云WAF、软件型WAF之类的;而嵌入型WAF指的是网站内置的WAF。非嵌入型WAF对Web流量的解析完全是靠自身的,而嵌入型WAF拿到的Web数据是已经被解析加工好的。所以非嵌入型的受攻击机面还涉及到其他层面,而嵌入型WAF从Web容器模块型WAF、代码层WAF往下走,其对抗畸形报文、扫操作绕过的能力越来越强。当然,在部署维护成本方面,也是越高的。

WAF的工作原理


WAF(Web Application Firewall) 可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。WAF针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。

WAF的主要难点是对入侵的检测能力,尤其是对Web服务入侵的检测,WAF最大的挑战是识别率。对于已知的攻击方式,可以谈识别率,但是对于未知的攻击手段,WAF是检测不到的。

基于规则库匹配的WAF

目前市面上大多数的WAF都是基于规则的WAF。即WAF对接数据收到的包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。

对于这种WAF,它的工作过程是这样的:解析HTTP请求——>匹配规则——>防御动作——>记录日志

具体实现如下:

解析http请求:协议解析模块
匹配规则:规则检测模块,匹配规则库
防御动作:return 403 或者跳转到自定义界面,或者不返回任何数据,或者拉黑IP
日志记录:记录到elk中


WAF识别


wafw00f识别WAF


WAFW00F 允许对保护网站的 Web 应用程序防火墙 (WAF) 产品进行识别和指纹识别

下载地址:GitHub - EnableSecurity/wafw00f: WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website.

下载文件之后,进入目录,执行以下命令安装

python setup.py install

进入wafw00f路径,执行

python main.py "url"

探测目标网站WAF

CMS指纹识别

在渗透测试中,对服务器进行指纹识别是相当重要的·,因为指纹识别出相应的Web容器或者CMS,才能查找与其相应的漏洞,然后才能进行相应的渗透操作,CMS又称整站系统

CMS的全称是 (C ontent M anagement S ystem)内容管理系统, CMS包括
博客(比如CSDN、博客园)、微博、团购网站、导航网站( hao123)、信息分类( 58)、 问网站(知乎)、商城、百科…… 企业官网、学校官网、医院官网等等都有使用CMS。

什么是指纹识别?


指纹识别指的是通过关键特征,识别出目标的CMS系统、服务 器、开发语言、操作系统、CDN、WAF的类别版本等等

识别对象

1、 CMS信息 :比如Discuz、织梦、帝国CMS、PHPCMS、ECshop等;
2、前端技术:比如HTML5、jquery、bootstrap、Vue、ace等;
3、开发语言:比如PHP、Java、Ruby、Python、C#等;
4、Web服务器:比如Apache、 Nginx、IIS、lighttpd等;
5、应用服务器:比如Tomcat、Jboss、Weblogic、Websphere等;
6、操作系统信息:比如Linux、win2k8、win7、Kali、Centos等;
7、 CDN信息 :是否使用CDN,如cloudflare、帝联、蓝讯、网宿、七牛云、阿里云等;
8、 WAF信息 :是否使用WAF,如D盾、云锁、宝塔、安全狗、360等

主流(开源)CMS

各类网站开源CMS

企业建站系统:MetInfo(米拓)、蝉知、SiteServer CMS等;
B2C商城系统:商派Shopex、ECshop、HiShop、XpShop等;
门户建站系统:DedeCMS(织梦)、帝国CMS、PHPCMS、动易、 CmsTop等;
博客系统:WordPress、Z-Blog等;
论坛社区:Discuz、PHPwind、WeCenter等;
问答系统:Tipask、whatsns等;
知识百科系统:HDwiki;
B2B门户系统:Destoon、B2Bbuilder、友邻B2B等;
人才招聘网站系统:骑士CMS、PHP云人才管理系统;
房产网站系统:FangCms等;
在线教育建站系统:Kesion、EduSoho;
电影网站系统:苹果CMS、ctcms、movcms等;
小说文学建站系统:杰 奇CMS;

CMS识别思路

可以通过版权信息 ,查看 特定文件MD5值 , 查看网页源代码 , 通过特定文件分析等等。


在线识别:
http://whatweb.bugscaner.com/
https://www.yunsee.cn/   (强推)

http://finger.tidesec.net/

效果图


工具:
1.whatweb

命令语法:

whatweb -v www.discut.net
#whatweb -v <网址>


2.cmseek

wappalyzer 插件识别CMS(不太好用,误报率很高)

浏览器插件
Wappalyzer:https://www.wappalyzer.com
whatruns :https://www.whatruns.com/
这是两款浏览器里可以下载查看CMS的插件,他们可以识别出当前网站使用了哪些服务。
                   

在浏览器的插件扩展中直接搜索添加该插件

wappalyzer自动识别CMS信息

十 一、主动信息收集之敏感路径识别

什么是目录扫描

目录扫描可以让我们发现这个网站存在多少个目录,多少个页面,探索出网站的整体结构。通过目录扫描我们还能扫描敏感文件,后台文件,数据库文件,和信息泄漏文件等等

常见的目录信息泄露 


目录遍历漏洞:
目录遍历(路径遍历)是由web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以是web根目录以外的文件),甚至执行系统命令。
目录遍历漏洞原理:
程序在实现上没有充分过滤用户输入的../之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。

如上图就是一个目录遍历漏洞。

敏感信息泄露:
由于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到
比如:

通过访问url下的目录,可以直接列出目录下的文件列表

输入错误的url参数后报错信息里面包含操作系统,中间件,开发语言的版本或其他信息(SQL注入)

前端的源码(html,css,js)里面包含了敏感信息,比如后台登录地址,内网接口信息,甚至账号密码等;

11.1常见的敏感文件、目录:

robots.txt          允许爬虫爬取的页面
sitemap.xml     指导搜索引擎搜索哪些页面
网站的备份文件 / 数据
后台登录的目录: /admin, /manage
安装包(源码)列如:1.zip,非开源,商用
上传的目录: 文件上传漏洞,  /upload,/upload.php
php的探针: phpinfo,雅黑探针
文本编辑器: kindeditor,CKeditor , Ueditor,文件上传漏洞、命令注入
Linux: /etc/passwd , /etc/shadow,/etc/sudoers
MacOS: .DS_Store
编辑器的临时文件 :.swp
目录穿越: Windows IIS , Apache
tomcat WEB-INF:

WEB-INF/web.xml : Web 应用程序配置文件 , 描述了 servlet 和其他的应用组件配置及命名规则 .
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放 Java 类文件 (.class)
WEB-INF/lib/ : 用来存放打包好的库 (.jar)
WEB-INF/src/ : 用来放源代码 (.asp 和 .php 等)
其他非常规文件 :secret.txt , password.txt

 dirsearch目录扫描

下载地址:dirsearch下载地址

采用默认设置扫描目标url:

python3 dirsearch.py -u https://target

 使用文件拓展名为php,html,js的字典扫描目标url:

python3 dirsearch.py -e php,html,js -u https://target

 指定线程(不建议线程数调整过大,可能会影响扫描的结果)

python3 dirsearch.py -e bak,zip,tgz,txt -u https://target -t 30
-u,--url                    目标url
-t,--threads         		线程数

文件扫描思路  

做法: 直接在域名后面拼接路径 / 文件名,如果返回 200 ,就是存在 。

扫描方法:递归,字典,暴力破解,爬虫,fuzz (模糊测试)。

11.2跑路径会经常看到的一些状态码:

401:
目前不允许您查看此资源,直到您通过网络应用程序获得授权,最常见的是使用用户名和密码。
403:
无论您是否登录,您都无权查看此资源。
404:
您请求的页面/资源不存在。
405:
资源不允许此方法请求(修改请求方式)

十二、主动信息收集之历史漏洞信息识别

来源:
社区,公众号,安全公司,实验室(0day)

国外:

https://www.exploit-db.com/

https://vulners.com/

国内:

https://www.cnvd.org.cn/

https://avd.aliyun.com/

漏洞库:

https://wiki.bylibrary.cn/

http://wiki.peiqi.tech/

https://wooyun.kieran.top/#!/

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值