信息收集

信息收集

信息收集是渗透最重要的阶段,通过一系列的操作尽可能多的收集到多的目标的各种信息,只有先收集到多的信息之后才有利于后续的渗透。

信息收集方式

主动收集:

与目标主机进行直接交互,从而拿到目标信息,缺点是会记录自己的操作信息

被动收集:

不与目标主机进行直接交互,通过搜索引擎或者社会工程等方式间接的获取目标主机的信息

一、收集域名信息

知道目标的域名之后,我们要做的第一件事就是获取域名的注册信息,包括
域名 DNS 务器信息和注册人的联系信息等。
域名信息收集的常用方法有以下这几种:

1.whois查询

  • 用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
  • Whois查询我们主要关注的重点是注册商、注册人、邮件、DNS解析服务器、注册人联系电话。
  • whois信息在线收集地址
    站长之家: http://whois.chinaz.com/
    阿里云域名信息查询:https://whois.aliyun.com
    爱站:https://whois.aizhan.com/
    微步:https://x.threatbook.cn/
  • whois反查
    站长之家:http://whois.chinaz.com
    whois反查可根据whois获取到的域名所有人、域名注册商、域名注册日期和过期日期等,使用邮箱,电话等进行反查获取更多关联的域名等信息

2.备案信息查询

3.企业信息查询

  • 1.企业基本信息。

2.员工信息(手机号码、邮箱、姓名等),组织框架、企业法人、企业综合信息等。
3.其中员工信息收集是信息收集中的一项重要工作,员工信息包括:员工姓名、员工工号、员工家庭及交际信息、上网习惯等。(社会工程学)
4.员工身份信息:员工简历,员工身份证,手机号,生日,家乡,住址等个人信息。5、员工社交账号信息:QQ号,QQ群,微博,微信,支付宝,员工邮箱账号等。

2.搜索引擎

1.google hack语法

  • site 指定域名
    intext 正文中存在关键字的网页
    intitle 标题中存在关键字的网页
    info 一些基本信息
    inurl URL存在关键字的网页
    filetype 搜索指定文件类型 * 1、​site:baidu.com#收集百度子域名 * 2、intitle:管理登录 #查找后台管理登陆界面 * 3.filetype:php #查找php类型主页 * 4、inurl:file #查找url上含file的网址寻找上传漏洞​ * other
      site:xx.com filetype:txt 查找TXT文件 其他的以此类推
      查找后台
      site:xx.com intext:管理
      site:xx.com inurl:login
      site:xx.com intitle:后台
      查看服务器使用的程序
      site:xx.com filetype:asp
      site:xx.com filetype:php
      site:xx.com filetype:jsp
      site:xx.com filetype:aspx
      查看上传漏洞
      site:xx.com inurl:file
      site:xx.com inurl:load
      查找注射点
      site:xx.com filetype:asp
    

    2.网络组件搜索引擎

    如shodanhq.com、zoomeye.org、www.fofa.so

    3.第三方聚合应用枚举

  • 第三方服务聚合了大量的DNS数据集,并通过它们来检索给定域名的子域名。*
    (1)VirusTotal:https://www.virustotal.com/#/home/search
    (2)DNSdumpster:https://dnsdumpster.com/

    三、收集敏感信息

  • *讲解**:当某些站点无法直接通过技术层面进行渗透时,或者无法通过扫描进行信息收集时。这时候可利用搜索引擎搜索目标站点暴露在互联网上的关联信息。例如:数据库文件、sql注入、服务器配置信息、甚至是通过git找到站点泄露源代码、robots.txt等敏感信息。从而达到渗透测试目的。

    1.github敏感信息泄露

    当确定了公司后,我们可以去互联网上查询与该公司有关的任何信息。比如,公司的邮箱格式,公司的员工姓名,以及与该公司有关的任何信息。并且,我们还可以去Github、码云等代码托管平台上查找与此有关的敏感信息,有些粗心的程序员在将代码上传至代码托管平台后,并没有对代码进行脱敏处理。导致上传的代码中有包含如数据库连接信息、邮箱密码、还有可能有泄露的源代码等。
    详细语法请参考一下链接
    https://www.cnblogs.com/ichunqiu/p/10149471.html
    https://blog.csdn.net/qq_36119192/article/details/99690742

    2.通过谷歌语法进行信息收集

    googlehack是指使用google等搜索引擎对某些特定的网络主机暴露在公网上的信息进行搜索,已达到快速搜集相关敏感信息并进行利用的目的。

    3.工具主动扫描

    敏感目录文件

  • *讲解**:在渗透信息收集攻击中,收集敏感目录文件是非常关键的一步,可以帮助攻击者识别网站存在多少个目录,多少个页面,探索出网站的整体结构。还可以发现网站暴露在互联网的敏感文件、后台文件、数据库文件等
  • Google语法是万能的
    DirBuster(kali自带的一款扫描工具)
    Webdirscan(python编写的简易的扫描工具)
    御剑(操作简易方便)
    dirmap(一款高级web目录扫描工具,功能比较强大)
    7kbstorm https://github.com/7kbstorm/7kbscan-WebPathBrute
    爬虫(AWVS、Burpsuite、北极熊等)

这些工具都自带字典,也可以自己手动添加,拥有强大的字典也是很关键的

四、指纹识别

讲解:指纹包含网站cms指纹、主机操作系统指纹、web容器指纹等。应用程序一般在html、jss、css等网站文件中包含一些特征码,另外http响应头中往往也会包含一些特征如x-powered-by、cookies等,这些特征码就是指纹信息的重要组成部分。

在web渗透过程中,对目标网站的指纹识别非常关键,通过工具扫描或者人工测试来识别cms系统是自建还是二次开发,还是直接使用公开的cms程序。通过获取的这些信息来决定后续渗透的思路和策略。指纹识别是黑客攻击环节中一个非常重要的阶段,也是是信息收集中的一个关键环节。
方式

  • 1、通过指定特殊目录或者特殊文件
    2、底部信息@pwoered by
    3、html中注释掉的内容
    4、robots.txt文件中的关键字
    5、火狐wappalyzer插件
    6、whatweb工具
    7、潮汐指纹:http://finger.tidesec.net
    8、CMS识别工具 http://whatweb.bugscaner.com/look
    CMS漏洞利用:确定了cms版本后,这里可以通过百度搜索相应漏洞

    五、Waf识别

    Waf也叫Web应用防火墙,是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
  • 方式:*
  • 手工 提交恶意数据
  • 工具(WAFW00Fhttps://github.com/EnableSecurity/wafw00f 、Nmap)

1.Nmap探测WAF有两种脚本。
一种是http-waf-detect。

命令:nmap -p80,443 –script=http-waf-detect ip

一种是http-waf-fingerprint。
>命令:nmap  -p80,443  --script=http-waf-fingerprint  ip

六、旁站、C段

旁站:是和目标网站在同一台服务器上的其它的网站。
C端:是和目标服务器ip处在同一个C段的其它服务器。
旁站和C段的查询方式:

1.确定有无cdn
使用全国ping 看看ip是否都是一样的 如果是不一样的就可能是使用了CDN的
2.使用 nslookup 进行检测,如果返回域名解析对应多个 IP 地址多半是使用了 CDN
3.通过谷歌插件(wapplayzer)查看判断是否有CDN

绕过CDN

  • 同国家IP地址访问查询
    子域名查询
    邮箱查询
    敏感文件(探针或phpinfo.php)
    扫描全网
    DNS历史记录
    黑暗引擎
    DDOS

1.通过子域名判断真实ip 因为子域名一般都是没有CDN的 CDN一般都是流量大的站才有
2.用国外地址请求 因为CDN一般都是针对国内的用户 如果是国外的话有可能是没有CDN 的 如果是国内的目标的话
3.通过敏感文件查看真实的ip 如phpinfo
4.查看DNS记录
可能有目标没有挂CDN时的DNS记录
5.黑暗引擎

  • zoomeye、fofa、shodan
    通过这些公开的安全搜索引擎爬取得历史快照,主要得一些特征总结如下:
    特有的http头部(如server类型、版本、cookie等信息)、
    特定keyword(如title、css、js、url等)、
    特定的IP段搜索(如fofa支持C段搜索),
    有些时候爬取的时候不一定含有上面那些特征,但是我们仍然需要仔细排查。

    八、端口信息收集

    通过nmap:

    Nmap常用扫描参数说明

    在这里插入图片描述

常见的端口信息及渗透方法:

端口号 端口服务/协议简要说明 关于端口可能的一些渗透用途
tcp 21 ftp 默认的数据和命令传输端口[可明文亦可加密传输] 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
tcp 22 ssh[数据ssl加密传输] 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输,等等…常用于linux远程管理…
tcp 23 telnet[明文传输] 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令,也许会有意想不到的收获
tcp 25 smtp[简单邮件传输协议,多数linux发行版可能会默认开启此服务] 邮件伪造,vrfy/expn 查询邮件用户信息,可使用smtp-user-enum工具来自动跑
tcp/udp 53 dns[域名解析] 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
tcp/udp 69 tftp[简单文件传输协议,无认证] 尝试下载目标及其的各类重要配置文件 tcp 80-89,443,8440-8450,8080-8089 web[各种常用的web服务端口] 各种常用web服务端口,可尝试经典的top n,vpn,owa,webmail,目标oa,各类java控制台,各类服务器web管理面板,各类web中间件漏洞利用,各类web框架漏洞利用等等……
tcp 110 [邮局协议,可明文可密文] 可尝试爆破,嗅探 tcp 137,139,445 samba[smb实现windows和linux间文件共享,明文] 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……
tcp 143 imap[可明文可密文] 可尝试爆破 udp 161 snmp[明文] 爆破默认团队字符串,搜集目标内网信息
tcp 389 ldap[轻量级目录访问协议] ldap注入,允许匿名访问,弱口令 tcp 512,513,514 linux rexec 可爆破,rlogin登陆
tcp 873 rsync备份服务 匿名访问,文件上传 tcp 1194 openvpn 想办法钓vpn账号,进内网
tcp 1352 Lotus domino邮件服务 弱口令,信息泄漏,爆破
tcp 1433 mssql数据库 注入,提权,sa弱口令,
爆破 tcp 1521 oracle数据库 tns爆破,注入,弹shell…
tcp 1500 ispmanager 主机控制面板 弱口令
tcp 1025,111,2049 nfs 权限配置不当
tcp 1723 pptp 爆破,想办法钓vpn账号,进内网
tcp 2082,2083 cpanel主机管理面板登录 弱口令
tcp 2181 zookeeper 未授权访问
tcp 2601,2604 zebra路由 默认密码zerbra
tcp 3128 squid代理服务 弱口令
tcp 3312,3311 kangle主机管理登录 弱口令
tcp 3306 mysql数据库 注入,提权,爆破
tcp 3389 windows rdp远程桌面 shift后门,爆破,ms12-020[蓝屏exp]
tcp 4848 glassfish控制台 弱口令
tcp 4899 radmin远程桌面管理工具, 抓密码拓展机器
tcp 5000 sybase/DB2数据库 爆破,注入
tcp 5432 postgresql数据库 爆破,注入,弱口令
tcp 5632 pcanywhere远程桌面管理工具 抓密码,代码执行
tcp 5900,5901,5902 vnc远程桌面管理工具 弱口令爆破,如果信息搜集不到位,成功几率很小
tcp 5984 CouchDB 未授权导致的任意指令执行
tcp 6379 redis未授权 可尝试未授权访问,弱口令爆破
tcp 7001,7002 weblogic控制台 java反序列化,弱口令
tcp 7778 kloxo 主机面板登录
tcp 8000 Ajenti主机控制面板 弱口令
tcp 8443 plesk主机控制面板 弱口令
tcp 8069 zabbix 远程执行,sql注入
tcp 8080-8089 Jenkins,jboss 反序列化,控制台弱口令
tcp 9080-9081,9090 websphere控制台 java反序列化/弱口令
tcp 9200,9300 elasticsearch 远程执行
tcp 10000 webmin linux主机web控制面板入口 弱口令
tcp 11211 memcached 未授权访问
tcp 27017,27018 mongodb 爆破,未授权访问
tcp 3690 svn服务 svn泄露,未授权访问
tcp 50000 SAP Management Console 远程执行
tcp 50070,50030 hadoop 默认端口未授权访问

Nmap脚本分类

auth: 负责处理鉴权证书(绕开鉴权)的脚本
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute: 提供暴力破解方式,针对常见的应用如http/snmp等
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
dos: 用于进行拒绝服务攻击
exploit: 利用已知的漏洞入侵系统
external: 利用第三方的数据库或资源,例如进行whois解析
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware: 探测目标机是否感染了病毒、开启了后门等信息
safe: 此类与intrusive相反,属于安全性脚本
version: 负责增强服务与版本扫描(Version Detection)功能的脚本
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067
常用的有 auth brute vuln