【转载】网络信息搜集中的:真实IP、子域名、端口探测
真实IP
意义:找到准确目标,确定IP段。找到真实IP可以绕过一些云waf。
CDN概念
内容分发网络(content delivery network或content distribution network,缩写作CDN)指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。
主要就是通过多个不同节点加快网站的访问速度。
判断是否真实IP
nslookup
用了CDN的会返回多个IP地址
多地ping
看IP是否一致
在线工具:
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/
IP反查
反查IP有多个域名,那IP多半不是真实IP
绕CDN找真实IP
子域名
一般主站会有CDN,主站下子域名基本都是真实IP,收集子域名看IP就可以知道网站真实IP的C段了。
常用工具:
subdomainbrute
oneforall
历史DNS记录
查询未使用CDN前的DNS服务器解析记录
https://dnsdb.io/zh-cn/ ###DNS查询
https://x.threatbook.cn/ ###微步在线
http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP
邮件服务器
大部分网站会有注册,订阅,找回密码的功能会发送邮件,邮件头信息中会有真实IP
信息泄漏
有些网站会有phpinfo页面,一些debug模式不关等信息泄漏问题
上面会有真实IP
搜索引擎
LTM解码法
当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie:
BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。
子域名收集
常用工具,除了在线工具外
oneforall算是很好用的,其次subdomainbrute
爆破
也算是效果最好的办法
利用字典枚举子域名然后向DNS服务器查询是否存在记录
比如说,向114.114.114.114定向请求www.qq.com的记录,返回了一条A记录指向182.254.34.74,就说明存在这个域名;相应的请求wooyun.qq.com并没有相应的记录返回,这就说明没有这个域名存在。
注:一般只使用同一套主、副DNS,即8.8.8.8和8.8.4.4,DNS服务器不宜混搭,否则容易出现大量误报
发包可以用第三方库,比如说subDomainBrute使用了dnspython这个包。使用第三方包的确好,但是免不了一层封装和不能很好地理解DNS报文协议,也可能会降低一定的效率。
泛解析问题
域名泛解析是对抗子域名收集的一个方法。
泛解析这个问题的解决方法很简单,向DNS请求*记录,然后把枚举子域名回来的记录和*的记录比对,如果相同则直接排除。
DNS包的解析:
https://www.davex.pw/2016/07/01/How-To-Fuzz-Sub-Domain/
域传送漏洞
快速判断出某个特定区域的所有主机,获取域信息,如网络拓扑结构、服务器ip地址,为攻击者的入侵提供大量敏感信息。
常用DNS记录
主机记录(A记录): A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
IPv6主机记录(AAAA记录): 与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
别名(CNAME记录): CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
电子邮件交换记录(MX记录): 记录一个邮件域名对应的IP地址
域名服务器记录 (NS记录): 记录该域名由哪台域名服务器解析
反向记录(PTR记录): 也即从IP地址到域名的一条记录
TXT记录:记录域名的相关文本信息
DNS区域传送
DNS服务器分为主服务器、备份服务器和缓存服务器。而域传送指的是一台备用服务器使用来自主服务器的数据更新自己的域(zone)数据库。这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务器因意外故障变得不可用时影响到整个域名的解析。
域传送漏洞
DNS区域传送(DNS transfer)指后备DNS服务器从主服务器获取数据,以更新自己的zone数据库。这可以防止因主DNS服务器故障造成的业务中断,为DNS服务提供了冗余备份。但是许多DNS服务器却被错误配置成只要收到AXFR请求,就向对方进行域传送。
当存在这种错误配置时,攻击者就可以获取整个域的所有记录,造成整个网络架构泄露。正确的配置包括
allow-transfer {ipaddress;}; 通过ip限制可进行域传送的服务器
allow-transfer { key transfer; }; 通过key限制可进行域传送的服务器
检测
nmap脚本扫描
nmap –script dns-zone-transfer –script-args dns-zone-transfer.domain=targetdomain -p 53 -Pn dns.xxx
dig命令
dig @114.114.114.114 twosmi1e.com axfr
@指定DNS服务器, 后面指定域名,axfr为域传送请求
nslookup
输入nslookup命令进入交互式shell界面;
server 命令参数设定查询将要使用的DNS服务器;针对某个域名可先输入域名获取dns信息。
ls命令列出某个域中的所有域名;如果太长不适合查看可定向保存至文件夹中。
exit命令退出
HTTPS证书
证书透明日志
https://crt.sh/
https://censys.io/
https://developers.facebook.com/tools/ct/
https://google.com/transparencyreport/https/ct/
自身泄漏
robots.txt
crossdomain.xml(跨域策略文件cdx)
从流量中分析提取
Github泄露
端口探测
端口List
端口号 | 类型 | 服务名 | 可能存在的漏洞/利用方式 | 备注 |
21 | 服务类 | FTP | 1)远程溢出 | 20数据端口 |
22 | 服务类 | SSH | 1)爆破密码 | ms12-020好像只能打蓝屏 |
23 | 服务类 | telnet | 1)爆破 | telnet明文传输用户名密码 |
25 | 服务类 | SMTP邮件服务 | 邮件伪造 | 邮件发送协议 |
53 | 服务类 | DNS | 1)远程溢出 | 域名解析服务 |
67/68 | 服务类 | DHCP | 1)劫持 | IP分配 |
80/443 | 服务类 | http/https | 1)web应用漏洞 | |
81 | 其他 | ipcam | 1)暴力破解 | 监控,网络摄像头 |
110 | 服务类 | POP3 | 1)爆破 | 接收邮件服务 |
135 | 服务类 | RPC(远程过程调用)服务 | 1)利用RPC漏洞攻击计算机 | RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议 |
139 | 服务类 | Samba | 1)IPC$共享后的空链接漏洞 | 文件和打印共享 |
143 | 服务类 | IMAP | 爆破 | 邮件接收协议 |
161 | 服务类 | SNMP | 1)未授权 | 简单网络管理协议 |
389 | 服务类 | LDAP | 1)注入 | 目录访问协议 |
445 | 服务类 | SMB | 1)MS17-010漏洞2)MS06-040漏洞 | |
512/513/514 | 服务类 | Linux Rexec | 1)爆破 | https://www.cnblogs.com/lsdb/p/6604203.html |
873 | 服务类 | Rsync服务 | 1)文件上传 | rsync 是一个用于增量文件传输的开源工具 |
1080 | 服务类 | socket | 爆破 | 通信协议 |
1352 | 服务类 | Lotus domino | 1)爆破2 | 邮件服务 |
1433 | 数据库 | mssql | 1)爆破 | |
1521 | 数据库 | oracle | 1)爆破 | |
2049 | 服务类 | Nfs | 配置不当 | 网络文件系统,文件共享 |
2181 | 服务类 | zookeeper | 未授权访问 | 分布式协调服务 |
2375 | 中间件 | docker remote api | 未授权访问 | |
3306 | 数据库 | mysql | 1)爆破 | |
3389 | 服务类 | RDP | 1)爆破 | 远程桌面 |
4848 | 服务类 | GlassFish控制台 | 1)爆破 | |
4899 | 服务类 | radmini | 1)弱口令 | 远程控制软件 |
5000 | 数据库 | sybase/DB2数据库 | 1)爆破 | |
5432 | 数据库 | postgresql | 1)爆破 | 对象–关系型数据库管理系统 |
5632 | 服务类 | pcanywhere服务 | 1)抓密码 | 远程桌面控制 |
5900 | 服务类 | vnc | 1)爆破 | 远程桌面共享 |
6379 | 中间件 | Redis | 1)未授权访问 | 计划任务,写SSHkey |
7001/7002 | 中间件 | weblogic | 1)java反序列化 | |
8069 | 中间件 | zabbix服务 | 1)远程命令执行 | |
8161 | 中间件 | activemq | 1)弱口令 | 消息队列 |
8080/8089 | 中间件 | Jboss/Tomcat/Resin | 1)爆破 | Tomcat远程代码执行漏洞 |
8083/8086 | 数据库 | influxDB | 未授权访问 | |
9000 | 中间件 | fastcgi | 远程命令执行 | 快速通用网关接口 |
9090 | 其他 | Websphere控制台 | 1)爆破 | |
9200/9300 | 其他 | elasticsearch | 远程代码执行 | |
11211 | 其他 | memcached | 未授权访问 | |
27017/27018 | 数据库 | mongodb | 1)未授权访问 | NoSQL数据库 |
NMAP端口扫描原理
三次握手
TCP SYN scanning
这是Nmap默认的扫描方式,通常被称作半开放扫描(Half-open scanning)。该方式发送SYN到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是关闭的。如果没有收到回复,那么判断该端口被屏蔽(Filtered)。因为该方式仅发送SYN包对目标主机的特定端口,但不建立的完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用范围广。
TCP SYN探测到端口关闭:
TCP SYN探测到端口开启:
TCP connect scanning
TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。
TCP connect探测到端口关闭:
TCP connect探测到端口开放:
TCP ACK scanning
向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。
TCP ACK探测到端口被屏蔽:
TCP ACK探测到端口未被屏蔽:
TCP FIN/Xmas/NULL scanning
这三种扫描方式被称为秘密扫描(Stealthy Scan),因为相对比较隐蔽。FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包,如果收到对方RST回复包,那么说明该端口是关闭的;没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。
其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。
TCP FIN探测到主机端口是关闭的:
TCP FIN探测到主机端口是开放或屏蔽的:
UDP scanning
UDP扫描方式用于判断UDP端口的情况。向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就说明该端口是关闭的;如果没有收到回复,那说明UDP端口可能是开放的或屏蔽的。因此,通过反向排除法的方式来断定哪些UDP端口是可能处于开放状态。
UDP端口关闭:
UDP端口开放或被屏蔽:
其他方式
更多方式及详细原理http://nmap.org/book/idlescan.html
参考
https://www.davex.pw/2016/07/01/How-To-Fuzz-Sub-Domain/
https://blog.csdn.net/AspirationFlow/article/details/7694274
end
文章来源:雷石安全实验室