渗透测试之学会高效信息收集!!!

零基础学黑客  搜索公众号:白帽子左一

简述

几乎每一个学习渗透的安全人员,都会被告知,信息收集是渗透测试的本质,那事实果真如此嘛?

答案是,是的!

信息收集作为渗透测试的前期主要工作,说白了叫做确定目标,以达到制作渗透计划的目的,这是非常重要的,甚至有的时候,仅仅通过信息收集,就可以拿到目标的shell了。

其实信息收集也是有分类的:分为主动信息收集+被动信息收集

主动信息收集,说白了,就是直接访问、扫描网站,这种流量将流经网站,不可避免的留下了自己来过的痕迹;

而被动信息收集呢,则是利用第三方的服务对目标进行访问了解,比如利用搜索引擎Google、Shodon等等。

收集的内容就有五花八门了,比如whois信息、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息等等,在我看来,收集的内容其实就两种:域名、IP。

一、关于域名

1.子域名收集

收集子域名可以扩大渗透范围,获得更多有关目标公司的资产信息,同一域名下的二级域名都属于目标范围,表现形式:域名加前缀,例如:域名 zkaq.cn 加前缀,abc.zkaq.cn。

a.搜索引擎查找

FOFA(https://fofa.so/) title="公司名称" ; domain="zkaq.cn"

百度(https://www.baidu.com/s):intitle=公司名称;site:zkaq.cn

Google(https://www.google.com/):intitle=公司名称;site:zkaq.cn

钟馗之眼(https://www.zoomeye.org/) site=域名即可 ;hostname:baidu.com

shodan(https://www.shodan.io/):hostname:"baidu.com"

360测绘空间(https://quake.360.cn/) :domain:"zkaq.cn"

b.在线查询

站长之家:http://tool.chinaz.com/

在线子域名查询:https://phpinfo.me/domain/

子域名扫描:https://www.t1h2ua.cn/tools/

dnsdumpster:https://dnsdumpster.com/

查询网:https://site.ip138.com/

爱站:http://dns.aizhan.com

c.工具

1. 子域名挖掘机: 图形化的使用方式。

2. SubDomainBrute工具: python3 subDomainsBrute.py -t 10 zkaq.cn -f subnames_full.txt -o 111.txt

3. Sublist3r工具 python3 sublist3r -t 10 -b -d zkaq.cn

4. OneForALL工具:python3 oneforall.py --target zkaq.cn run

5. Wydomain工具:python wydomain.py -d zkaq.cn -o zkaq.txt

6. FuzzDomain工具: 图形化的使用方式。

d.SSL/TLS证书查询

SSL/TLS安全评估报告:https://myssl.com

crt.sh:https://crt.sh/

SPYSE:https://spyse.com/tools/ssl-lookup

censy:https://censys.io/

2.端口型站点收集

收集端口型站点和收集子域名是一样的,都是扩大渗透范围,获得更多有关目标公司的资产信息,表现形式:域名后加【:端口号】,例如:域名 zkaq.cn 加后缀 zkaq.cn:8080。

3.目录文件扫描

目录扫描可以扫出来非常多重要的资源,比如目录型的站点,后台,敏感文件,比如.git文件泄露,.svn文件泄露,phpinfo泄露等等,表现形式:域名后加路径,例如:域名 zkaq.cn 加后缀 zkaq.cn/admin/admin.php。

a.目录扫描工具

御剑工具:图形化的使用方式。

7kbstorm工具:图形化的使用方式。

dirbuster工具:图形化的使用方式。

dirmap工具:python3 dirmap.py -i https://bbs.zkaq.cn -lcf

dirsearch工具:python3 dirsearch.py -u https://www.zkaq.cn -e php

gobuster工具:gobuster dir -u "https://bbs.zkaq.cn" -w "/root/tools/DirBrute/dirmap/data/fuzz_mode_dir.txt" -n -e -q --wildcard

b.github搜索

in:name huawei #仓库标题中含有关键字huawei

in:descripton Huawei.com #仓库描述搜索含有关键字huawei

in:readme huawei #Readme文件搜素含有关键字Huawei

smtp 58.com password 3306 #搜索某些系统的密码

c.google搜索

密码搜索:

        site:Github.com sa password

        site:Github.com root password

        site:Github.com User ID='sa';Password

        site:Github.com inurl:sql

SVN 信息收集

        site:Github.com svn

        site:Github.com svn username

        site:Github.com svn password

        site:Github.com svn username password

综合信息收集

        site:Github.com password

        site:Github.com ftp ftppassword

        site:Github.com 密码

        site:Github.com 内部

d.在线网站

乌云漏洞库:https://wooyun.website/

网盘搜索:

    凌云搜索 https://www.lingfengyun.com/

    盘搜搜:http://www.pansoso.com/

    盘搜:http://www.pansou.com/

e.文件接口工具

1.jsfinder:https://gitee.com/kn1fes/JSFinder

2.Packer-Fuzzer:https://github.com/rtcatc/Packer-Fuzzer

3.SecretFinder:https://gitee.com/mucn/SecretFinder

4.旁站和C段

旁站:同一个服务器内的站点。

C段:同网段,不同服务器内的站点

a.旁站查询

站长之家:http://stool.chinaz.com/same

在线:https://chapangzhan.com/

搜索引擎:fofa: ip="1.1.1.0/24"

b.C段查询

1. webscan:https://c.webscan.cc/

2. Nmap:

3. msscan:

5.网站技术架构信息

了解网站的基础架构信息,能够帮助我们更有信心的去测试目标系统。

a.基础知识

只列出一些↓:

常见的脚本类型语言:asp、php、aspx、jsp、cgi等等

网站类型:电商(偏向于业务逻辑漏洞)、论坛(站点层漏洞、逻辑类漏洞)、门户类(综合类漏洞)等等

数据库:access、mysql、mssql、oracle、postsql等等

源码与数据库组合:asp+access、php+mysql、aspx+mssql、jsp+mssql、oracle、python+mongdb等等

除了这些外,还有加密的结构、目录结构、常见端口号及对应的服务等等这些都需要再进行了解。

b.网站头信息

1.F12 , 浏览器内获取查看

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

3.插件:Wappalyzer   

4. curl命令查询头信息:curl https://bbs.zkaq.cn -i

6.CMS识别

CMS可以说指的是网站的源码,如果能识别出一个网站使用的哪一种CMS的话,那么可以通过搜索引擎去发现相应的漏洞,若网站管理员没有处理的话,则可以直接突破站点。

1.云悉:https://www.yunsee.cn/

2.潮汐指纹:http://finger.tidesec.net/

3.whatweb:http://whatweb.bugscaner.com/look/

4.github查找:https://github.com/search?q=cms识别

5.whatcms:whatweb bbs.zkaq.cn

6.cmsIdentification:python cmsIdentification.py https://bbs.zkaq.cn/

二、关于IP

1.CDN

CDN可以说是一种资源服务器,不仅可以加速网站访问,还可以提供waf服务,如防止cc攻击,SQL注入拦截等多种功能,除此之外,还可以隐藏服务器的真实IP,cdn服务会根据你所在的地区,选择合适的线路给予你访问,所以如何绕过CDN就十分重要了。

a.CDN检测

使用全球ping:不同的地区访问有着不同的IP,这样就确定了该域名使用了cdn了

    http://ping.chinaz.com/

https://www.17ce.com/

https://www.17ce.com/

b.CDN绕过

绕过的核心还是hosts绑定,当发现ip后,可以尝试nc端口探测,也可以用nmap进行服务探测,如果像正常的服务器,就可以模糊确定是真实IP。若发现真实ip,可进行hosts绑定,绕过CDN的防御,直接发起渗透,也可以进行IP反查,通过反查的网站来渗透。

1. 国外dns获取真实IP:部分cdn只针对国内的ip访问,如果国外ip访问域名 即可获取真实IP。

  https://www.wepcc.com/

http://www.ab173.com/dns/dns_world.php

https://dnsdumpster.com/

https://who.is/whois/zkaq.cn

2. DNS历史绑定记录

    https://dnsdb.io/zh-cn/  # DNS查询,查看A记录有哪些,需要会员。

    https://x.threatbook.cn/ # 微步在线,需要登录。

    https://viewdns.info/ # DNS、IP等查询。

    https://tools.ipip.net/cdn.php # CDN查询IP

    https://sitereport.netcraft.com/ # 记录网站的历史IP解析记录

    https://site.ip138.com/ # 记录网站的历史IP解析记录

3. 被动获取:让目标连接我们获得真实IP。比如网站有编辑器可以填写远程URL图片,或者有SSRF漏洞。

2.主机发现

a.二层发现

主要利用arp协议,速度快,结果可靠,不过只能在同网段内的主机。

arping工具:arping 192.168.1.2 -c 1

nmap工具:192.168.1.1-254 –sn

netdiscover -i eth0 -r 192.168.1.0/24

scapy工具:sr1(ARP(pdst="192.168.1.2"))

b.三层发现

主要利用ip、icmp协议,速度快但没有二层发现快,可以经过路由转发,理论上可以探测互联网上任意一台存活主机,但很容易被边界防火墙过滤。

ping工具:ping 192.168.1.2 –c 2

fping工具:fping 192.168.1.2 -c 1

Hping3工具:hping3 192.168.1.2 --icmp -c 2

Scapy工具:sr1(IP(dst="192.168.1.2")/ICMP())

nmap工具:nmap -sn 192.168.1.1-255

c.四层发现

主要利用tcp、udp协议,速度比较慢,但是结果可靠,可以发现所有端口都被过滤的存活主机,不太容易被防火墙过滤。

Scapy工具:

    sr1(IP(dst="192.168.1.2")/TCP(dport=80,flags='A') ,timeout=1))  #tcp发现

    sr1(IP(dst="192.168.1.2")/UDP(dport=33333),timeout=1,verbose=1)  #udp发现

nmap工具:

    nmap 192.168.1.1-254 -PA80 –sn #tcp发现

    nmap 192.168.1.1-254 -PU53 -sn #udp发现

hping3工具:

    hping3 192.168.1.1 -c 1 #tcp发现

    hping3 --udp 192.168.1.1 -c 1 #udp发现

3.操作系统识别

知道目标存活主机的操作系统后,可以依据操作系统来实施针对性的渗透测试。

1.TTL值:Windows(65~128),Linux/Unix(1-64),某些Unix(255)

2.nmap工具:nmap 192.168.1.1 -O

3.xprobe2工具:xprobe2 192.168.1.1

4.p0f工具:使用后,直接访问目标即可

4.端口扫描

端口探测可以发现目标服务器上开启的网络服务以及应用程序,这些都是更具体的一些攻击面。

scapy工具:

    sr1(IP(dst="192.168.1.1")/UDP(dport=53),timeout=1,verbose=1)    # UDP端口扫描

    sr1(IP(dst="192.168.1.1")/TCP(dport=80),timeout=1,verbose=1)    # TCP端口扫描

nmap工具:

    nmap -sU 192.168.1.1 -p 53  # UDP端口扫描

    nmap -sS 192.168.1.1 -p 80  # 半连接tcp扫描

    nmap -sT 192.168.1.1 -p 80 # 全连接TCP扫描

    nmap 192.168.1.1 -sI 192.168.1.2 -Pn -p 0-100 # 僵尸扫描

dmitry工具:dmitry -p 192.168.1.1

nc工具:nc -nv -w 1 -z 192.168.1.1 1-100

hping3工具:hping3 192.168.1.1 --scan 0-65535 -S

5.服务探测

nc工具:nc -nv 192.168.1.1 22

dmitry工具:dmitry -pb 192.168.1.1

nmap工具:

    nmap -sT 192.168.1.1 -p 22 --script=banner

    nmap 192.168.1.1 -p 80 -sV

amap工具:

    amap -B 192.168.1.1 1-65535 | grep on

    amap 192.168.1.1 20-30 -qb

a.SNMP服务

SNMP是简单网络管理协议,由于经常被管理员错误配置,导致很容易造成系统的信息泄露,可以说是“信息的金矿”。

onesixtyone工具:onesixtyone 192.168.1.1 public

snmpwalk工具:snmpwalk 192.168.1.1 -c public -v 2c

snmpcheck工具:snmpcheck -t 192.168.1.1 -c private -v 2

b.SMB服务

smb是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。默认开放,实现复杂,实现文件共享,这也是微软历史上出现安全问题最多的一个协议。

nmap工具:nmap -v -p139,445 --script=smb-check-vulns --script-args=unsafe=1 192.168.1.1

nbtscan工具:-r 192.168.1.0/24

enum4linux工具:enum4linux -a 192.168.1.1

c.SMTP服务

SMTP是一种提供可靠且有效的电子邮件传输的协议。如果能发现目标系统的邮箱账号,那么可以进行相关的攻击,比如钓鱼等。

nc工具:nc -nv 192.168.1.1 25

nmap工具:nmap smtp.163.com -p25 --script=smtp-open-relay.nse

smtp-user-enum工具:smtp-user-enum -M VRFY -U users.txt -t 192.168.1.1

6.其他识别

一些杂项识别,总之,信息收集就是收集有关目标系统的一切。

防火墙识别:nmap -sA 172.16.36.135 -p 22

负载均衡识别:lbd bbs.zkaq.cn

WAF识别:nmap bbs.zkaq.cn --script=http-waf-detect.nse

三、其他技术

1.搜索引擎

a.Google语法

+充值 -支付:+代表必须带关键字,-代表必须减去关键字

“充值 支付”:双引号内的内容,进行一个整体搜索

inurl:?id:URL中必须带?id

intitle:充值:网站标题中必须有充值

intext:充值:网站正文中必须有充值

filetype:pdf:找pdf文件

b.Shodon语法

Net:8.8.8.8 # 查询ip的相关的主机信息,也可以直接搜网段

City:Beijing # 查询城市为北京的设置

Country:CN # 查询属于中国的设备 。CN中国

Port:80 # 查询指定开放端口的设备。

Os:windows # 指定操作系统

Hostname:baidu.com # 搜索主机或域名为baidu.com的主机或设备

Server:Apache # 指定中间件

c.Fofa语法

1、同IP旁站:ip="192.168.0.1“

2、C段:ip="192.168.0.0/24“

3、子域名:domain="baidu.com“

4、标题/关键字:title="百度“

5、如果需要将结果缩小到某个城市的范围,那么可以拼接语句

title="百度"&& region="Beijing“

6.特征:body="百度"或header="baidu"

2.whois查询

注册域名的时候留下的信息。比如域名注册人的邮箱、电话号码、姓名等。根据这些信息可以尝试制作社工密码,或者查出更多的资产等等,也可以反查注册人,邮箱,电话,机构及更多的域名。

a.在线网站查询

站长之家域名WHOIS信息查询地址:http://whois.chinaz.com/

爱站网域名WHOIS信息查询地址https://whois.aizhan.com/

腾讯云域名WHOIS信息查询地址 https://whois.cloud.tencent.com/

美橙互联域名WHOIS信息查询地址https://whois.cndns.com/

爱名网域名WHOIS信息查询地址https://www.22.cn/domain/

易名网域名WHOIS信息查询地址 https://whois.ename.net/

中国万网域名WHOIS信息查询地址 https://whois.aliyun.com/

西部数码域名WHOIS信息查询地址https://whois.west.cn/

新网域名WHOIS信息查询地址 http://whois.xinnet.com/domain/whois/index.jsp

纳网域名WHOIS信息查询地址 http://whois.nawang.cn/

b.反查邮箱

福人:https://bbs.fobshanghai.com/checkemail.html

whois反查:https://www.benmi.com/rwhois

站长工具:http://whois.chinaz.com/reverse?ddlSearchMode=1

c.注册人反查

注册人查询:www.reg007.com

站长工具:http://whois.chinaz.com/reverse?ddlSearchMode=1

d.备案查询

天眼查 https://www.tianyancha.com/

爱站备案查询https://icp.aizhan.com/

域名助手备案信息查询 http://cha.fute.com/index

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

3.隐藏域名hosts碰撞

一般来说,通过ip直接访问目标,要比通过域名来访问目标网站,得到的信息会更多。

但如果域名绑定过多个ip的话,管理员出现配置上的失误,是会导致一些敏感信息泄露的

那么这种情况就可以通过域名+ip捆绑的形式进行碰撞,收集目标公司资产的域名以及解析过的所有ip,将他们一对多的形式进行碰撞,能发现一些很有意思的东西出现。

hosts碰撞参考文章:https://mp.weixin.qq.com/s/fuASZODw1rLvgT7GySMC8Q

四、参考文章

常见Web源码泄露总结:https://www.secpulse.com/archives/55286.html

github 关键词监控:https://www.codercto.com/a/46640.html

利用GitHub搜索敏感信息:http://www.361way.com/github-hack/6284.html

Github 泄露扫描系统:https://www.oschina.net/p/x-patrol?hmsr=aladdin1e1

监控github代码库:https://github.com/0xbug/Hawkeye

Goby工具:https://blog.csdn.net/Alexhcf/article/details/105109362

cms识别工具cmsIdentification:https://github.com/theLSA/cmsIdentification/

点我——免费领取网络安全学习资料

你可能感兴趣的:(渗透测试之学会高效信息收集!!!)