零基础学黑客 搜索公众号:白帽子左一
简述
几乎每一个学习渗透的安全人员,都会被告知,信息收集是渗透测试的本质,那事实果真如此嘛?
答案是,是的!
信息收集作为渗透测试的前期主要工作,说白了叫做确定目标,以达到制作渗透计划的目的,这是非常重要的,甚至有的时候,仅仅通过信息收集,就可以拿到目标的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.在线查询
在线子域名查询:https://phpinfo.me/domain/
子域名扫描:https://www.t1h2ua.cn/tools/
dnsdumpster:https://dnsdumpster.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/
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
搜索引擎: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的话,那么可以通过搜索引擎去发现相应的漏洞,若网站管理员没有处理的话,则可以直接突破站点。
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了
b.CDN绕过
绕过的核心还是hosts绑定,当发现ip后,可以尝试nc端口探测,也可以用nmap进行服务探测,如果像正常的服务器,就可以模糊确定是真实IP。若发现真实ip,可进行hosts绑定,绕过CDN的防御,直接发起渗透,也可以进行IP反查,通过反查的网站来渗透。
1. 国外dns获取真实IP:部分cdn只针对国内的ip访问,如果国外ip访问域名 即可获取真实IP。
http://www.ab173.com/dns/dns_world.php
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
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/
点我——免费领取网络安全学习资料