渗透测试之信息收集
0x01 前言
系统漏洞->中间件漏洞->web漏洞
信息收集分为:主动信息收集和被动信息收集
·主动信息收集:主动信息搜集是与目标主机进行直接交互,从而拿到我们的目标信息。
·被动信息收集:不与目标主机进行直接交互,通过搜索引擎或者社工等方式间接的获取目标主机的信息。
0x02 主动信息收集
1. 服务器和中间件信息
服务器信息:系统类型,如Ubuntu。
中间件信息:如Apache及其版本号等。
关于这两者的解释:
https://blog.csdn.net/sdb5858874/article/details/81171762
(1) 工具
·whatweb
·Nmap
·nc和telnet
(2) 手动
通过火狐浏览器的查看元素方法,查找信息。
有了服务器和中间件的信息,我们就可以查找已公布的漏洞信息。
2. 端口信息
端口作为服务器和客户端交互的接口,起着非常重要的作用。一些常见的端口标识出服务器开启了什么服务,比如3389端口开启,可以认为服务器系统为windows并且开启了远程服务的功能。所以,端口扫描在渗透测试中是非常重要的。
(1) 常见端口分析
端口号 |
端口服务/协议简要说明 |
端口利用方式 |
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
|
|
|
(2) 工具
Nmap 下面链接是使用原理和方法总结
https://blog.csdn.net/AspirationFlow/article/details/7694274
Masscan 官方github说明文档
https://github.com/robertdavidgraham/masscan
还有一些如:站长之家等。
Metasploit 进行端口扫描
3. 子域名搜集
先看一下什么是子域名:
https://baike.baidu.com/item/%E5%AD%90%E5%9F%9F%E5%90%8D/10937658?fr=aladdin
https://blog.csdn.net/xiaxiaoxian/article/details/79287458
(1) 搜索引擎枚举技术
(2) DNS区域传送漏洞
https://blog.csdn.net/c465869935/article/details/53444117
http://www.lijiejie.com/dns-zone-transfer-1/
(3) 子域名挖掘机Layer
(4) 在线版layer
(5) 大神的github工具列表
https://zhuanlan.zhihu.com/p/53112370
4. 域名目录遍历
御剑后台、dirbuster
5. 目标IP
(1) 什么是CDN
CDN是什么?使用CDN有什么优势? - 阿里云云栖社区的回答 - 知乎 https://www.zhihu.com/question/36514327/answer/193768864
(2) 如何绕过CDN,寻找真实IP地址
https://www.waitalone.cn/how-to-find-the-real-ip-address-of-the-site.html
0x03 被动信息收集
1.旁站C段查询
旁站是和目标网站在同一台服务器上的其它的网站;如果从目标站本身找不到好的入手点,这时候,如果想快速拿下目标的话,一般都会先找个目标站点所在服务器上其他的比较好搞的站下手,然后再想办法跨到真正目标的站点目录中。C段是和目标机器ip处在同一个C段的其它机器;通过目标所在C段的其他任一台机器,想办法跨到我们的目标机器上。
常用工具
Nmap
2. CMS类型
http://blog.51cto.com/simeon/2115190
每个cms都有其独有的特征,如:css、js命名、固定的管理员URL、robots.txt等。根据以上信息判断出网站所使用的cms类型和版本。通过与漏洞库进行匹配,从而找到渗透测试的切入点。
云溪CMS指纹识别系统
http://www.yunsee.cn
(1) robots.txt
(2) 查找源文件判断使用的是什么cms
(3) 计算网站的相关静态资源的md5值
计算网站所使用的中间件或cms目录下的静态文件的md5值。md5可以唯一的代表该文件的信息。静态文件包括html、css、image等
(4) URL关键字识别
通过上述URL关键字可以判断其cms内容
(5) 请求相应主体内容或头信息的关键字匹配
x-powered-by中可以看出使用的是thinkphp
(6) 工具总结
- 御剑web指纹识别程序
- Test404轻量WEB指纹识别
- Scan-T主机识别系统
https://github.com/nanshihui/Scan-T
- bugscanner
- https://github.com/iceyhexman/onlinetools
- whatweb
3. 敏感目录/文件
https://www.cnblogs.com/pannengzhi/p/2017-09-23-web-file-disclosure.html
(1) .git泄露
https://github.com/lijiejie/GitHack
(2) .SVN泄露
(3) .DS_Stroe文件泄露
(4) .hg源码泄露
4. whois信息
简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。