信息收集[汇总]

他会一天天地慢慢变老,也许这辈子都找不到奥丁,也遇不到下一个夏弥……这么回想起来在日本的那段日子虽然很狼狈但也蛮开心,有那么几个下雨的晚上他们在高天原的浴池里泡澡,拆客人送的礼物,路明非抱怨说恺撒的雪茄太呛人,恺撒说楚子航你泡澡就不要带刀了好么?楚子航枕在刀鞘上,听窗外的雨声……他忽然有点想念恺撒和路明非,可那之后差不多过去一年了,恺撒也跟他一样去了某个分部,再想聚一起泡澡是很难了。

在一开始我是想做一个自动化信息采集的工具,模型定位和功能都写好了,但是有些接口不确定再加上最近的作息太累迟迟没有动手,如果有想法的小伙伴可以把这个工作完成,业务不难,但是需要不少时间。

1 WAF识别
2 whois,网站IP,指纹,旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、邮箱搜集、端口信息、服务器和中间件信息
3 敏感文件、二级目录扫描,网站备份的压缩文件、说明.txt
4 Nmap扫描开放端口,系统服务

估计要扫描目录了  使用李姐姐的bbscan 顺便扫描一下备份文件
如果识别有WAF就不扫描了吧?

大致的需求就是这些,具体的接口有云悉,站长之家等等

个人理解

渗透测试的本质是信息的收集与知识点的串联使用(来自亮神和admintony老师的经验之谈),你要明白你收集这些信息的目的是什么,是不是非要收集到每样信息其实并不是太重要,重要的是你要结合漏洞去收集信息,比如当你看到一个动态链接,想到的是sql注入,目录遍历,任意文件下载,越权访问,看到输入框会想到xss,暴力破解,看到注册购买会想到逻辑漏洞等等,而这些,就需要你对漏洞的理解和丰富的经验,急不得,慢慢加油吧!

前言

信息搜集分为主动信息搜集和被动信息搜集,主动信息搜集是与目标主机进行直接交互,从而拿到我们的目标信息,而被动信息搜集恰恰与主动信息搜集相反,不与目标主机进行直接交互,通过搜索引擎或者社交等方式间接的获取目标主机的信息。

whois信息

whois信息可以获取关键注册人的信息,包括注册公司、注册邮箱、管理员邮箱、管理员联系手机等,对后期社工很有用。同时该工具还可以查询同一注册人注册的其他的域名,域名对应的NS记录、MX记录,自动识别国内常见的托管商(万网、新网等)。常用的工具有:站长之家,爱站网等等都提供了whois的查询,kali下的whois命令。

whois www.langzi.fun

然后可以看到注册人信息,邮箱等等这样我们可以进行邮箱反查域名,爆破邮箱,社工,域名劫持等等,总的来说这也就是个网站的身份证那样的作用,至于起到的作用就看你如何发挥了。

DNS服务器查询

除了whois查询之外,在kali下我们还可以通过host命令来查询dns服务器

DNS查询:
host -t a domainName
host -t mx domainName

优点:非常直观,通过查询DNS服务器的A记录、CNAME等,可以准确得到相关信息,较全。
缺点:有很大的局限性,很多DNS是禁止查询的。
参考:https://www.cnblogs.com/xuanhun/p/3489038.html

域传送漏洞

DNS暴力破解:fierce
参考链接:http://blog.csdn.net/jeanphorn/article/details/44987549

Passive DNS
参考链接:http://www.freebuf.com/articles/network/103815.html

格式:

host 命令

[-a CdlriTwv]

[-c class]

[-N ndots]

[-t type]

[-W time]

[-R number]

[-m flag]

hostname [server]

比如

host -t ns langzi.fun

DNS记录类型=>在买了域名后IDC的那个后台里,添加解析记录的地方就能看到

如果要获取IP

host -t a langzi.fun

子域名

在渗透测试的时候,往往主站的防御会很强,常常无从下手,那么子站就是一个重要的突破口,因此子域名是渗透测试的主要关注对象,子域名搜集的越完整,那么挖到的漏洞就可能更多,甚至漏洞的级别也会更高。常用的工具有下面这些

  • 子域名挖掘机Layer

使用方法:

图形化的,不多解释

使用方法:

进入文件目录下
python subDomainsBrute.py --full xxx.cn

-f 添加字典
--full 全体扫描
-t 线程
-o 输出文件
  • DNS区域传送漏洞

漏洞说明:

区域传送操作指的是一台后备服务器使用来自主服务器的数据刷新自己的zone数据库。一般来说,DNS区域传送操作只在网络里真的有后备域名DNS服务器时才有必要执行,但许多DNS服务器却被错误地配置成只要有人发出请求,就会向对方提供一个zone数据库的拷贝。当一个单位没有使用公用/私用DNS机制来分割外部公用DNS信息和内部私用DNS信息的时候,此时内部主机名和IP地址都暴露给了攻击者。就像是把一个单位的内部网络完整蓝图或导航图奉送给了别人。

检测方法:

出于习惯性反应,首先,你应该去查下目标的ns服务器是否允许区域传送,如果允许,直接把目标的整个子域备份过来即可,后面将要说的所有步骤就可以直接全省了,关于dig和nslookup的使用非常简单,请自行查看其命令帮助或谷歌,实际测试中,个人还是更推荐用dig [毕竟是从权威dns查的,结果相对较准]

查出目标所有的ns记录,然后挨个尝试目标ns服务器是否允许传送[这里要注意,务必是目标自己的ns服务器,第三方的不算],虽然说,可能性不太大,但运气好也不一定呢,总之,没尝试之前谁也不知道

# dig +short @8.8.8.8 cityu.edu.hk ns
  vax.cityu.edu.hk.
  cpccspc.cityu.edu.hk.
  cpccux0.cityu.edu.hk.

通过上面的查询,我们确定了目标自己的三个ns服务器,下面就开始来尝试逐个传送,这里还是要注意,必须用目标自己的ns服务器来解析它自己的子域,如果还没搞清楚传送的具体原理,请务必先自行谷歌理解漏洞原理再来搞

# dig +nocmd @vax.cityu.edu.hk cityu.edu.hk axfr
# dig +nocmd @cpccspc.cityu.edu.hk cityu.edu.hk axfr
# dig +nocmd @cpccux0.cityu.edu.hk cityu.edu.hk axfr

很显然,上面的这些ns服务器都不允许传送,为了给大家看看实际的传送效果,这里就给大家一个可以传送的实例

# dig +nocmd @dns2.communilink.net i-software.com.hk axfr

李姐姐对DNS区域传送漏洞的理解

  • KALI下 fierce -dns domainName

使用方法:

进入文件目录下
python dnsburte.py -d xxx.cn
-t 线程数
-d 接url
-f 字典名称
-o 最终结果的名字(就在当前目录下,result目录下各个接口结果)

使用方法:

-d 接url
-b 使用 subbrute模块
-p 使用特定TCP端口
-v 实时显示
-t 线程数量
-O 输出到
  • Google、baidu、Bing等传统搜索引擎

使用方法:

site:baidu.com inurl:baidu.com
搜target.com|公司名字

网络空间安全搜索引擎
zoomeye(钟馗之眼):https://www.zoomeye.org
shodan:https://www.shodan.io
Fofa:https://fofa.so
Censys:https://www.censys.io
Dnsdb搜索引擎:https://www.dnsdb.io
  • 在线查询接口

使用方法:

http://tool.chinaz.com/subdomain/
http://i.links.cn/subdomain/    
http://subdomain.chaxun.la/
http://searchdns.netcraft.com/
https://www.virustotal.com/
https://censys.io/
https://x.threatbook.cn
  • 综合搜索

    迅捷斥候提莫:https://github.com/bit4woo/teemo
    主要有三大模块:搜索引擎 第三方站点 枚举

    利用全网IP扫描http端口 在访问IP的80或者8080端口的时候,可能会遇到配置了301跳转的,可以在header里获取域名信息。
    全网扫描结果如下:https://scans.io/study/sonar.http

当收集的子域名数量过大,手动筛选工作量太大,如何快速扫描,半自动的筛选出有效的可能存在漏洞的子域名。
参考链接

目标真实IP

验证是否存在CDN最简单的办法

现在大部分网站都加了CDN,CDN的虚假IP干扰了我们的渗透测试,如何绕过CDN查找到目标的真实IP,对我们来说非常重要。首先,我们需要判断下是否存在CDN,方法很简单,只要在不同地区进行ping检测就可以知道。不同地区ping同一个网址,得到不同的IP地址,那么该网站开启了CDN加速,相反如果得到的是同一个IP地址,那么极大可能不存在cdn,但是不绝对。常用的工具有多个地点ping服务器-网站测速-站长工具。其次,绕过CDN获取真实IP的方法互联网上有很多,我常用的有二级域名法,目标长得一般不会把所有的二级域名放在cdn上,伤钱呐,确定了没有使用CDN的二级域名后,本地将目标域名绑定到同ip,能访问就说明目标站与二级域名在同一服务器叶可能在同C段,扫描C段所有开80端口的ip,挨个尝试。nslookup法,大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率直接解析到真实IP,不过需要国外的冷门的DNS,如下:

209.244.0.3
64.6.64.6
8.8.8.8
9.9.9.9
8.26.56.26
199.85.126.10
208.67.222.222
195.46.39.39
69.195.152.204
208.76.50.50
216.146.35.35
37.235.1.174
198.101.242.72
77.88.8.8
91.239.100.100
74.82.42.42
109.69.8.51
156.154.70.1
1.1.1.1
45.77.165.194

通过在线的多地ping,通过每个地区ping的结果得到IP

看这些IP是否一致,如果都是一样的,极大可能不存在cdn,但不绝对

如果这些IP大多都不太一样或者规律性很强,可以尝试查询这些IP的归属地,判断是否存在CDN

查询子域名

很多网站主站的访问量会比较大。所以往往主站都是挂了CDN的

但是分站就不一定了,毕竟CDN要钱,而且也不便宜

所以可能一些分站就没有挂CDN,所以有时候可以尝试通过查看分站IP

可能是同个IP或者同个站都是没准的。Zoomeye.org, shodan.io ,fofa.so,微步在线,是我们不错的选择,使用api效果更佳

国外访问

国内的CDN往往只会针对国内用户访问加速

所以国外就不一定了。因此通过国外代理访问就能查看真实IP了

或者通过国外的DNS解析,可能就能得到真实的IP

查询历史DNS记录

查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/
https://x.threatbook.cn/
http://toolbar.netcraft.com/site_report?url=
http://viewdns.info/
http://ip138.com

接口

https://www.cdnplanet.com/tools/cdnfinder/

xcdn

https://github.com/3xp10it/xcdn

Zmap扫描全网

操作方法:http://bobao.360.cn/learning/detail/211.html

Tips:找到真实ip,绑定host ,是否可以打开目标网站,就是真实IP,对真实IP进行入侵测试,DDOS流量攻击,CC等等,实现无视CDN防御。

如何处理CDN,获取真实IP

  1. 通过一些没有设置cdn的子域名站点进行c段扫描,可能与其他站点属于同一个c段

  2. 历史DNS查询,很老的在未使用cdn时候的dns解析记录可能会暴露该信息

  3. 找国外的比较偏僻的DNS解析服务器进行DNS查询,因为大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP

SMTP发送邮件泄露源站ip

最简单,常见的方式。大部分公用SMTP服务在发信时邮件头会带上发件者ip,这样导致cdn直接失去对攻击者的防护意义。

disucz论坛,我们可以通过注册账号 或者找回密码等 任何可以让网站发送一个邮件给我们的方式 来获取源ip,在邮箱中查看原文。

即可获得web服务器的源ip。 具体获得源ip后怎么利用在文末一起总结
解决方案:使用邮件头不显示ip的smtp服务,或者将邮件服务更改为使用WEBAPI发送邮件即可。

泄露IP的程序

扫描目标web目录 获取一个phpinfo 探针类文件 ,基本上都存有服务器真实ip,通过XSS盲打也能获取到ip,还可以通过命令执行反弹shell获取到ip地址。

SSRF

乌云峰会的时候 猪猪侠曾讲过”SSRF是只影响有钱人的漏洞” 但在渗透测试的时候 我们的目标并不是个个都是有钱人 有BAT他们那样大的内网
我们只是简单的想取一个源站ip,这时候SSRF也能帮我们一把
以discuz举例 (DZ官方似乎并不把SSRF当漏洞,所以该方案可行度很高)
我们这里用春秋论坛做例子,discuz ssrf的exp为:/forum.php?mod=ajax&action=dkwnremkteimg&message=[img=1,1]http://183.60.109.99:3319/aq9w.jpg[/lmg]
直接访问ip可以确定

验证是否为真实IP

  1. 浏览器直接访问ip,或者加上端口后访问
  2. 修改host文件,将网址对应的ip填写上去,访问网址,查看是否能正常访问网址

反向地址解析

我们经常使用到得DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”,正向查找区域就是我们通常所说的域名解析,反向查找区域即是这里所说的IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名.

由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名”in-addr.arpa”结尾。例如一个IP地址:222.211.233.244,其逆向域名表达方式为:244.233.221.222.in-addr.arpa

dig:使用dig进行反向解析的命令格式为:

dig -x ip @dnsserver #用 dig 查看反向解析

还可以在线查询查询

想要获得完整的信息,可以多尝试不同的工具,整合结果。很多工具无法做反向查询的原因,在于域名所有者没有添加反向解析记录。

旁站C段查询

旁站是和目标网站在同一台服务器上的其它的网站;如果从目标站本身找不到好的入手点,这时候,如果想快速拿下目标的话,一般都会先找个目标站点所在服务器上其他的比较好搞的站下手,然后再想办法跨到真正目标的站点目录中。C段是和目标机器ip处在同一个C段的其它机器;通过目标所在C段的其他任一台机器,想办法跨到我们的目标机器上。常用的工具有webscancc,Nmap,Zenmap。

旁站: 和目标网站在同一台服务器上的其它的网站
C段: 和目标机器ip处在同一个C段的其它机器,即都在同一个交换机下

现在市面上这类的工具也是多如牛毛,但各有优劣(可能是接口质量的差别吧),但大多数都是用bing的接口,把查询到的结果数据中的旁站链接提取出来,C段和旁站唯一不一样的地方,就是C段是把整个段的ip上的旁站都轮询一遍,不过在此之前你需要先申请一下bing的搜索api,其实我自己都是选择性的用,因为不太准,手工直接在bing里面翻翻可能就有了,因为工具本身有时可能会漏掉很多有价值的参考信息,反正我们的目的就是随便找个能进去的站即可,怎么找,随意,你自己觉得怎么快就怎么来,渗透在乎更多的是结果和效率,过程几乎都不会太在意

同IP网站及C段查询
IP反查域名

工具:御剑、K8
在线查询工具:
http://www.hackmall.cn/
http://www.webscan.cc/  推荐
https://phpinfo.me/bing.php 

将C段收集的相关IP,推测该单位所在的IP段,再针对IP段进行服务器端口扫描

服务指纹识别

主机系统的识别

识别目标主机的操作系统,首先,可以帮助我们进一步探测操作系统级别的漏洞从而可以从这一级别进行渗透测试。其次,操作系统和建筑在本系统之上的应用一般是成套出现的,例如LAMP或者LNMP。操作系统的版本也有助于我们准确定位服务程序或者软件的版本,比如一般情况下windows server 2003 搭载的IIS为6.0,windows server 2008 R2 搭载的是IIS7.5。具体的查询方法如下

  • 很多站点,可能没有自定义错误信息。因此在url上随便输入一个不存在的地址,可能会返回有用的信息,比如PHP编写,Web服务器为Apathe/2.2.22,操作系统为Windows
  • 也可以抓包查看header的头部信息
  • 在站长之家之类的seo综合查询功能中也可以获取到详细信息
  • nmap判断:nmap -O langzi.fun
  • Banner抓取:Banner信息并不是操作系统本身的行为,是由应用程序自动返回的比如apathe、exchange。而且很多时候并不会直接返回操作系统信息,幸运的话,可能会看到服务程序本身的版本信息,并以此进行推断。

使用命令:

telnet www.langzi.fun 3306//返回3306端口的banner
  • 使用p0f进行操作系统探测:p0f是一款被动探测工具,能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。

使用方法:

p0f -i eth0 –p    //监听网卡eth0,并开启混杂模式。这样会监听到每一个网络连接。
也可以直接在终端输入 p0f ,然后回车,进行监听,一旦收到报文就会显示相关信息,并且不断刷新。
示例:在终端输入 p0f 然后回车,就可进行监听。然后浏览器打开 www.baidu.com即可,,就可以监听与百度的网络连接。也可通过其他方式。

网站程序CMS识别

服务器与中间件信息

  • 通过Nmap、Zmap等端口和指纹识别功能搜集,也可以使用nc和telnet获取Banner信息进行识别,常用工具有whatweb
  • 通过错误的页面也可以得到信息
  • 扫描端口,然后浏览器打开url+端口也可以获取一定信息

邮箱收集

首先确定目标的邮件服务器所在的真实位置,看看邮件服务器自身有没有什么错误配置,比如,没有禁用VREY或者EXPN命令导致用户信息泄露。然后从whois中获取域名的注册人、管理员邮箱,利用搜索引擎或者社工库查看有木有泄露的密码,然后尝试泄露的密码进行登录,最后从目标站点上搜集邮箱,例如网站上的联系我们,我们发发邮件钓鱼什么的。常用的工具有kali下的theharester。

使用方法:

最常见用法:theharvester -d 域名|公司名 -b 搜索来源(google,bing,pgp,linkedin等)

或者利用theHarvester的扫描在线账户的功能,例如邮箱帐号;简单用法:

$ theHarvester -d 163.com -l 1000 -b google
  -d 后跟服务器域名    163.com  hotmail.com  gmail.com  126.com  qq.com ... ...
  -l  限制显示数目      
  -b  调用搜索引擎(google,bing,bingapi,pgp,linkedin,google-profiles,people123,jigsaw,all)
     这样扫描的是以163.com为域名的所有服务器的管理员帐号和所有目前在线的帐号,所以每隔 一段时间扫描的结果是不一样的,除了网站管理员帐号不变外;别忘了google.com是要挂vpn才能访问的!

Theharvester+Hydra批量扫弱口令账户

敏感目录/文件

用扫描器扫描目录,这时候你需要一本强大的字典,重在平时积累。字典越强扫描处的结果可能越多,这一步主要扫出网站的管理员入口,一些敏感文件(.mdb,.excel,.word,.zip,.rar),查看是否存在源代码泄露。

常见有.git文件泄露,.svn文件泄露,.DB_store文件泄露,WEB-INF/web.xml泄露。目录扫描有两种方式,使用目录字典进行暴力才接存在该目录或文件返回200或者403;使用爬虫爬行主页上的所有链接,对每个链接进行再次爬行,收集这个域名下的所有链接,然后总结出需要的信息。

常用的工具有:

  • 御剑
  • kali下的dirb,DirBrute。
  • 以前写的一个扫描器,扫描备份文件和源码泄露准确率非常高地址
  • robots.txt可能存在一些敏感路径
  • 路径fuzz:例如猪猪侠的工具:https://github.com/ring04h/weakfilescan
  • 以前写的扫描备份文件工具地址
  • 以前写的探测敏感信息的工具地址
  • 一个url路径模糊测试工具地址

使用说明:

这个工具主要就是先爬取网页的路径,然后再对每个路径进行fuzz,这种思路跟以前的路径fuzz的差别就在于可获取更多存在的链接进行fuzz;而不单单只是进行对根目录或者某个路径进行字典加载。网友优化后的轮子(https://github.com/Mosuan/FileScan)
  • Wfuzz:Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、头部等等。

使用说明:

你可以用Wfuzz找到下面的漏洞:

可预测的认证
可预测的session标志(session id)
可预测的资源定位(目录和文件)
注入
路径遍历
溢出
跨站脚本
认证漏洞
不安全的直接对象引用
特性

Wfuzz是用来帮助测试人员评估WEB应用的渗透测试工具。

递归(目录发掘)
Post数据爆破
头部爆破
输出HTML(详细报告,点击链接查看内容,POST数据也能阅览)
多彩输出
返回码、词数、行数等等来隐藏结果。
URL编码
Cookie
多线程
代理支持
多参数fuzz

端口信息

服务和安全是相对应的,每开启一个端口,那么攻击面就大了一点,开启的端口越多,也就意味着服务器面临的威胁越大。开始扫描之前不妨使用telnet先简单探测下某些端口是否开放,避免使用扫描器而被封IP,扫描全端口一般使用Nmap,masscan进行扫描探测,尽可能多的搜集开启的端口好已经对应的服务版本,得到确切的服务版本后可以搜索有没有对应版本的漏洞。

在渗透过程中,对端口信息的收集就是一个很重要的过程;然后对症下药就可以更快的渗透进入我们需要的服务器;接下来就详细通过渗透实战对端口的渗透进行更加深入的剖析;

端口渗透过程中我们需要关注几个问题:

  • 端口的banner信息
  • 端口上运行的服务
  • 常见应用的默认端口

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

端口号       端口服务/协议简要说明           关于端口可能的一些渗透用途
tcp 20,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后门[需要03以下的系统],爆破,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    默认端口未授权访问

分目录/端口信息

当一个网址由多个CMS,或者说多个系统组成的时候,在其下的分目录下可能隐藏了很多重要信息,比如

  1. www.langzi.fun

这个是主站点,在这个主站点下面由多个系统组成,比如由发货模块,购买模块,论坛模块

  1. www.langzi.fun/cms
  2. www.langzi.fun/buy
  3. www.langzi.fun/bbs

这个时候扫描主站点如果没有什么信息的话,可以去扫描分站点,这个时候可以获取更多的敏感信息,获取分站点可以方式有很多,比如你在页面中分析就能找到,使用google hacking也可以,甚至使用御剑扫描目录也行。

有的时候会出现分端口信息,比如

  1. www.langzi.fun:8080
  2. www.langzi.fun:8089
  3. www.langzi.fun:999

当你获取到了真实IP,发现开启了一些奇怪的端口的时候,可以尝试访问域名+端口号,有的时候会有意想不到的收获,这种大部分都是登陆地址,管理地址,以及一些其他功能的系统。如果不能获取到IP,或者获取开放端口失败的时候,我写过扫描器实现尝试域名+端口号一个一个的测试,看哪个返回正常。

WAF检测

后台管理地址

常见后台页面

按照经验加上后台管理目录进行访问。常见的后台有:

  1. /admin
  2. /login
  3. /system
  4. /manage
  5. /guanli

等等,有的时候后台目录就是网址的域名加上常见后台文件名也有可能,比如:

  1. /admin/admin.php
  2. /admin/login.php
  3. /manage/login.php

等等

有些时候后台地址与管理员的名字有关,有的时候地址会在域名目录下,比如:

  1. http://www.langzi.fun/langzi/langzi.php

在网页中寻找

在robots.txt中看能否发下敏感目录,有的话尝试访问该目录,有的时候运气好,会在网站的底部看到有管理登陆的网址。

或者通过查看一些图片的属性路径,运气好会发现很多隐藏的目录,这个时候结合域名+目录,用御剑进行扫描,当然也可以手动输入一些常见的后台管理地址进行访问。

在其他端口中寻找

就好比在上面的介绍中,访问网站的不同端口,说不定有一些就是专门的后台管理地址,这个我已经用多进程异步协程写出来了,扫描50000个域名+端口的网站不到三分钟。

并且发现很多网址的8080,8081端口是网站的管理地址,比如:

  1. http://www.langzi.fun:8080

在网站分目录下寻找

有的时候网站会把管理地址放在一个分目录下,有的时候一个网站比较大,后台管理页面也比较多,就要分目录的去找,比如:

  1. http://www.langzi.fun/langzi/admin/manage.php

你可以通过一些方式获取到网站的目录,然后在这个目录下进行扫描,这点在我都经验中很重要,当一个网站你扫描根目录啥都没有发现,各种方式都找不到,这个时候通过分析网站的目录结构,然后扫描域名+目录,就能找出他的后台管理地址。

网站爬行

通过awvs,burpsuite的爬行功能,可以拓扑出网站的目录结构,有的时候运气好能在网页的目录结构中找到好东西,不过爬行一般会结合工具扫描,比如你构造域名+目录,然后扫描这个。

通过工具扫描

最经典的就是御剑,以及一些自己个性化定制的目录扫描器,如果网站存在waf的话,建议把线程设置成1,请求方式设置成get请求方式,慢慢的扫。

扫描的网站也有讲究,一般来说只要字典足够强大,网站不是足够奇葩,都能找到。如果主页的根目录找不到,就主动去网页中找一些目录或者通过上文的爬虫等方法找到网站的目录,然后尝试扫描域名+目录的方式,经常能找到好东西。

子域名下

有的时候网站的管理地址会放在子域名下,所以主站什么都找不到的情况下,如果发现子域名,就通过这些方法去子域名下找一下吧。

Google hacking

这里专门把搜索引擎拿出来说,涉及只是比较多

对于普通的用户而言,Google是一个强大的搜索引擎;而对于黑客而言,则可能是一款绝佳的黑客工具。正因为google的检索能力强大,黑客可以构造特殊的关键字语法,使用Google搜索互联网上的相关隐私信息。通过Google,黑客甚至可以在几秒种内黑掉一个网站。这种利用Google搜索相关信息并进行入侵的过程就叫做Google Hack。 下面介绍一些常用的所谓“谷歌黑客语法”。

例如批量查找学校网站的后台 输入如下关键字

site:xxx.edu.cn  intext:管理|后台|登录|用户名|密码|验证码|系统|账号|后台管理|后台登录

intext: 把网页中的正文内容中的某个字符做为搜索条件.

例如在google里输入:intext:杭电.将返回所有在网页正文部分包含”杭电”的网页 

allintext:使用方法和intext类似. 

intitle: 搜索网页标题中是否有我们所要找的字符.

例如搜索:intitle:杭电.将返回所有网页标题中包含”杭电”的网页.同理allintitle:也同intitle类似. 

cache: 搜索google里关于某些内容的缓存,有时候往往能找到一些好东西. 

define: 搜索某个词的定义,例如搜索:define:杭电,将返回关于“杭电”的定义. 

filetype: 搜索制定类型的文件,例如:filetype:doc.将返回所有以doc结尾的文件URL.

info: 查找指定站点的一些基本信息. 

inurl: 搜索我们指定的字符是否存在于URL中.

例如输入:inurl:admin,将返回N个类似于这样的连接:http://xxx/admin,

常用于查找通用漏洞、注入点、管理员登录的URL

allinurl:也同inurl类似,可指定多个字符. 

linkurl: 例如搜索:inurl:hdu.edu.cn可以返回所有和hdu.edu.cn做了链接的URL. 

site: 搜索指定域名,如site:hdu.edu.cn.将返回所有和hdu.edu.cn有关的URL. 

实际操作时需根据情况组合使用,下面列举些常用的

intext:to parent directory

inurl:upload.php

intitle:powered by xxx

index of/upload

Filetype:txt

inurl:robots.txt

index of /passwd

site:xxx.com filetype:mdb|ini|php|asp|jsp

site:xxx.com warning|mysql错误|error|

获取物理路径

通过探针文件获取

比如探针文件,网站搭建的遗留文件,比如(网站目录下的说明.txt,使用方法.docx),不过大部分都是一些服务器探针,已经写出高效率的专门搜索探针文件的扫描器,不过还在完善中。

当然可以通过御剑扫描,也可以找到这种探针文件,常见的探针文件有:

  1. phpinfo.php
  2. p.php
  3. l.php
  4. info.php
  5. p.asp
  6. l.asp
  7. tanzhen.asp

这些探针文件一般都在根目录下,也有部分存在分目录下。

通过页面报错获取

通过访问不存在的资源,或者在网址中加上一些特殊符号让web容器强制报错,然后显示出来。

或者通过sql注入,页面会把报错的信息显示出来。

在iis7-8.6高版本中,访问不存在的目录,会提示错误,并且直接爆出物理路径说xxx目录不存在。

管理地址

有的后台管理页面中会显示服务器的信息数据。

需要注意的位置

这个完完全全是靠经验,比如你看到一个动态链接想到的是sql注入,但是有些人就能想到注入,越权,任意代码执行等,你一看到一个登陆框,想到的就是测试弱口令,有时候还能想起会试一试爆破,但是人家不仅会测试sql注入,xss,爆破,还会尝试分析请求数据尝试越权绕过等等,这个就是要靠经验的,但是一些常见的,可能存在漏洞的地方还是可以注意一下的。

注册/登陆框

  1. 自己写工具探测管理员登录名,用户登录名
  2. sql注入,万能密码
  3. 通过xss,得到cookie
  4. 发掘漏洞,尝试越权
  5. 注册用户,登陆后找上传点或者其他可利用点
  6. 等等

文件下载

比如下面这两个下载文件的链接:

  1. http://www.langzi.fun/upload/www.zip
  2. http://www.langzi.fun/download.php?files=upload/www.zip

第一种虽然利用效果不大,但是还是可以用御剑之类的扫一扫upload目录,碰碰运气。第二种就可以好好利用了

一般链接形式:

download.php?path=
down.php?file=
data.php?file=

或者包含参数:

&Src=
&Inputfile=
&Filepath=
&Path=
&Data=

这个时候你尝试访问下面的网址:

http://www.langzi.fun/download.php?files=../../index.php

逐一的探测,如果没有什么过滤之类的,可以读取许多关键性的信息。

第三方未公开数据

“社工库”是运用社会工程学进行攻击的时候积累的各方面数据的结构化数据库。这个数据库里有大量信息,甚至可以找到每个人的各种行为记录,比如酒店开房记录、个人身份证、姓名和电话号码。

例如查询某QQ号老密码。findmima.com(要爬墙)

更多的社工库需要花钱或者自己搜索整理了

漏洞扫描

使用扫描器对网址目标进行检测,常见的扫描器有大型的awvs,appscan和小型的表哥自己写

  • awvs
  • Arachni
  • XssPy
  • w3af
  • Nikto
  • Wfuzz
  • WebInspect
  • netsparker
  • APPscan
  • xyntax:下载地址
  • GITHUB开源扫描器:地址

参考链接

参考链接

参考链接

参考链接

参考链接

坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------

版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%