渗透测试与CTF实战:全面信息收集指南

本文详细介绍了网络安全渗透测试和CTF比赛中常用的信息收集方法,涵盖源代码分析、目录扫描、敏感信息泄露、域名与IP查询等实战技巧,助你全面掌握靶标信息。

信息收集

面对任何一个问题,尽全力去熟悉他们我们才有可能更好的解决他们,这个熟悉的过程就是信息收集

1 查看源代码

1. 直接查看view-source

  • 主要注意源代码的中的注释,类似于

    注释里面一般藏有一些敏感信息,比如有关路径,题目的有关信息,甚至是 flag

  • 源代码中链接的一些奇怪路径(网站后台目录,编辑器)

源代码中不一样的链接

根据 ctfshow-web382,可以看到 3 链接有一个链接比其他链接多了一个目录,逐个路径 alsckdyf/layui/css,alsckdyf/layui,alschdyf/访问就有可能发现有意思的东西,比如说最后一个就是后台目录,甚至可以尝试去除根目录/layui/css

解释:

  • 这种情况,就有可能是个css页面前台用到了,后台也用到了,但是相关人员误把后台的 css 目录用作前台这就暴露了后台的路径

注意:

  1. 根据文件路径找到相关的编辑器 ctfshow-web14 ctfshow-web388
  2. 可以利用编辑器上传文件,允许上传 html,zip 等文件,我们可以利用 zip 文件上传一句话给日志文件之后执行之后包含目录访问一句话执行,详细操作可以参考ctfshow-web388wp
  3. 根据源码中的编辑器路径直接网站后台访问文件

编辑器路径在前端暴露

image (5)

  • 如果没办法查看源代码尝试利用 Burpsuite,查看数据包,比如 web2/3

  • 抓包过程可以同时注意 cookie 的设置,服务器的类型等等

2. 抓包查看的情况:

image (6)

flag 放在 cookie 的情况:

image (7)

3. 查看源代码的方式

2 扫目录

1. 常见的扫描工具

  • Dirsearch:

    Usage:

    python3 dirsearch.py -u "http://www.example.com/"

    dirsearch扫描

2. 常见的目录

  • robots 协议

    访问 http://www.example.com/robots.txt,这个文件会告诉我们哪些文件可以爬,哪些文件不可以用作爬虫,但在 ctf 题目中,常用来提示题目有关的重要文件

  • install 安装目录

    install安装目录未删除

3 源码泄漏(敏感目录的泄漏)

1. git 泄漏

  1. 漏洞描述:

  • 开发者在使用 git 作为版本控制时,在一个目录中初始化一个仓库以后 , 会在这个目录下产生一个名叫 .git 的隐藏文件夹,这个文件夹里面保存了这个仓库的所有版本等一系列信息。
  • 如果服务器将.git文件夹放在了 web 目录下,就可能导致攻击者利用.git文件夹内的信息获取应用程序所有源代码。
  1. 漏洞危害:

    • 攻击者利用此漏洞可获取应用程序源代码,分析源码进行进一步攻击利用;
    • 攻击者利用此漏洞可获取数据配置信息,可能直接导致应用程序用户信息泄漏,设置获取服务器权限;
  2. 修复建议

    • 删除网站目录下的.git文件
    • 中间件上设置.git目录访问权限,禁止访问
  3. 相关工具:

    • scrabble

      scrabble http://www.example.com/

      使用工具回滚

      查看回滚后的文件

    • githack

      python2 GitHack.py http://cb28608e-55f8-4dd3-98c7-f3a74b2abb0d.node3.buuoj.cn/.git/

    工具使用完之后,都会生成一个 index.html 或者是新的文件夹,查看。。。

2. .svn 泄漏

  1. 漏洞描述:

    • 使用svn管理本地文件代码的过程,会自动生成一个.svn的文件夹---包含这网站的重要信息

    • 如果网站管理员在发布网站的时候,没有使用到处功能,而是直接复制微网站后台的文件夹,就会导致.svn文件暴露在外网环境

    • 黑客可以借助其中包含的用于版本信息追踪的entries文件,获取站点信息

  2. 漏洞危害:

    • 攻击者可以利用.svn/entries文件,查找网站的应用程序源代码、svn 服务器账号密码等信息。
    • SVN 产生的.svn目录还包含了.svn-base结尾的源代码文件副本(低版本 SVN 具体路径为text-base目录,高版本 SVN 为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。
    • 攻击者利用该漏洞可下载网站源代码,获得数据库的连接账号密码等敏感信息;
    • 攻击者可通过获取的源代码进一步分析出新的系统漏洞,从而进一步入侵系统;
  3. 修复建议:

    • 查找服务器上所有.svn 隐藏文件夹,删除。
    • 开发人员在使用 SVN 时,严格使用导出功能,禁止直接复制代码。

3. HG 泄露

  1. Mercurial 是一种轻量级分布式版本控制系统,使用 hg init 的时候会生成.hg。

  2. 漏洞利用工具:dvcs-ripper

4. 文件恢复 Vim 临时文件缓存)

  1. 漏洞描述:

    • 有时候扫目录会出现.filename.swp,这就是在 vim 编辑 filename 时意外退出而产生的恢复文件
  2. vim 文件备份以及缓冲:

    • vim编辑的文件,在vim异常退出的时候,会生成.filename.swp的交换文件,用来恢复文件依次为.swo``.swn
    • vim编辑的文件,在修改的时候,会自动生成一个备份文件(修改之前的版本)
    1. 恢复文件的命令

      vi -r .filename.swp

      查看恢复之后的文件

5. 获取网站指纹信息:

  1. 漏洞描述:

    一个网站的 Banner 信息,即是该网站服务器对外现实的一些基础信息。

    比如:

    • 知道该网站的 Web 框架是什么,即可通过搜索引擎进行查找该 Web 框架的历史漏洞;
    • 或者是了解到了该网站的系统类型,即可利用相关特性以及漏洞。
  2. 搜集指纹库:

    • GitHub 公开的 CMS 指纹库
  3. 工具使用:

    • 技巧:

      在网站上随意输入一些 URL,有时会通过 404 页面或者是 302 跳转页面 发现一些有用信息。

      • 例如:开启了 Debug 选项的 ThinklPHP 网站会在一些错误提示页面显示 ThinkPHP 版本。

      • gedit备份文件:

        Linux中,使用gedit编辑器保存文件 flag 之后,会在当前目录下生成一个 flag~ 的文件,内容也是 flag 文件当中的内容。

        可通过浏览器访问该文件 ~,即可得到源代码

        备份文件

        查看

      • phps 泄漏:

        • 就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,

        • 因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。

        • 其实,只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型。 它的MIME类型为:text/html, application/x-httpd-php-source, application/x-httpd-php3-source。

        • 访问相关文件的 phps 后缀名

          phps备份文件

      • 网站备份文件泄露(压缩包)

        常见 .rar、.zip、.7z、.tar、.gz、.tar.gz、.bz2、.tar.bz2、.sql、.bak、.dat、.txt、.log、.mdb

        www.zip等这些都是可以用目录工具扫出来 ,之后进行查看

4 收集域名信息

获取域名注册信息:该域名DNS服务器信息、注册人联系信息

1. Whois 查询:

查询域名是否已被注册以及已被注册域名的详细信息(域名所有人、域名注册商等)

2. 备案信息查询

国家信息产业部对网站的一种管理,为防止在网上从事非法活动。主要针对国内网站,搭建在国外的网站,不需要备案。

3. 历史解析记录

DNS检查

通过 dns 检查查询 flag

5 寻找真实 IP

1. 判断是否存在CDN

2. 不存在 CDN

3. 存在 CDN

CDN 高速缓存服务器,主要解决因传输距离与不同运营商节点在承德网络速度性能低下的问题。把用户经常访问的静态数据资源直接缓存到节点服务器上,用户再次请求时,会直接分发到离用户较近的节点服务器来响应,只有用户有实际数据交互时才会从远程WEB服务器上进行响应。

  • 如果渗透目标购买了CDN服务器,我们直接进行ping目标的域名,得到的不是真正的Web服务器,而是离我们最近的一台CDN服务器,导致我们无法直接得到真实的IP范围。

  • 绕过 CDN 寻找真实 IP

    • 分站域名,ping 二级域名
    • ping 目标域名,观察域名解析情况(发现显示的是ping其他网站)
    • nslookup:发现返回时多个IP的话,多半使用了CDN
  • 国外代理访问

    • 在线代理网站
  • 查询域名解析记录

    • 网站

6 搜索引擎

1. Google 搜索引擎:

可以搜索 数据库文件、SQL注入、配置信息、源代码泄露、未授权访问、robots.txt等敏感信息

关键字目的
site指定域名
inurlurl 中存在关键字的网页
intext网页正文当中的关键字
filetype指定文件后缀、扩展名,即文件类型
intitle网页标题中的关键字
link返回所有和其做了链接的 url
info查找指定站点的一些基本信息
cache查找某些内容的缓存
site: nuc.edu.cn
inurl:login.php
inurl:admin/login.php intitle:管理
intitle:网络安全
intext:SQL注入
link:baidu.com
filetype:mdb
查找后台地址:
site:域名inurl:login|admin|manage|member|admin_login|login_admin|system|login|user|main|cms
查找文本内容:
site:域名 intext:管理|后台|登陆|用户名|密码|验证码|系统|admin|login|sys|managetem|password|username
查找可注入点:
site:域名 inurl:aspx|jsp|php|asp
查找上传漏洞:
site:域名 inurl:file|load|editor|Files
找eweb编辑器
site:域名 inurl:ewebeditor|editor|uploadfile|eweb|edit
存在的数据库:
site:域名 filetype:mdb|asp|#
查看脚本类型:
site:域名 filetype:asp/aspx/php/jsp
迂回策略入侵:
inurl:cms/data/templates/images/index/
Shodan
Fofa
Zoomeye

7 子域名信息收集

1. 子域名检测工具

  • Layer 子域名挖掘机
  • subDomainsBrute 可爆破出三级四级甚至五级等不易被探测到的域名

https://github.com/lijiejie/subDomainsBrute

cd /opt/
git clone https://github.com/lijiejie/subDomainsBrute.git
#用法
python subDomainsBrute.py [options] target.com
#实例
python subDomainsBrute.py csdn.net​

#注意
windows 在python路径下的script文件夹中需要执行
pip install dnspython gevent
pip install aiodns

image (15)

image (16)

Options:​

--version 显示版本号并退出​

-h, --help 帮助​

-f FILE 指定暴力猜解字典,默认使用subnames.txt.​

--full 全扫描,使用subnames_full.txt​

-i, --ignore-intranet​

忽略不想采集的IP地址​

-t THREADS, --threads=THREADS​

扫描线程数,默认200​

-p PROCESS, --process=PROCESS

​扫描进程数,默认为6​

-o OUTPUT, --output=OUTPUT​

输出文件名称 {target}.txt

8 收集端口信息

1. 扫描工具

  • Nmap
  • Masscan

  • ZMap

  • 御剑TCP端口扫描

2. 常见端口以及相应的攻击手段

9 探针信息

1. PHP 探针

php探针 是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。

常用4款PHP探针

如果有 phpinfo 界面,尝试 crtrl+f 搜索 flag 字样,还有一些其他的重要信息

php探针

10 CTF Show 思路总结

  • 第一步:查看 源代码

    • 右键查看源代码
    • F12 打开开发者工具

    • Ctrl + U 查看源代码

    • Burp 抓包查看

  • 抓包 可能发现一些有用信息

  • robots.txt

  • phps 源代码泄露

  • 下载源码文件、网站备份文件

  • 版本控制不要部署到生产环境中 .git .svn

  • Vim 缓存 .文件名.php.swp .文件名.php.swo .文件名.php.swn

  • cookie 的重要性

  • 域名、子域名 信息搜集 nslookup 在线网站

  • Banner 等公开信息 管理员密码 QQ QQ邮箱等 第三方软件查个人信息

  • 技术文档

  • 对应编辑器漏洞

  • 探针(phpinfo)

  • 前端源码 密钥泄露

  • db.mdb

留言讨论

0 条留言

正在加载留言...