...

渗透测试-Web服务器信息收集

场景引入

双11前夕,受某电商公司所托,对其Web服务等进行全方位的渗透测试,为期1周,执行3轮渗透,并输出渗透测试报告,公司派遣你和其他两名同事入驻该公司。
当前:

  1. 已获得当前公司许可,人员已入驻该公司并联入内网;
  2. 已确定测试范围包含域名 *.aaa.com, *.bbb.com, *.ccc.com.cn
    你和同事如何开展渗透测试,从哪里开始入手?

PTES 渗透测试标准执行步骤

前期交互阶段
✅ 收集客户需求(拿到客户授权)
✅ 准备测试计划
✅ 定义测试范围与边界(确定渗透测试范围)
✅ 项目管理与规划等
2. 情报收集阶段 ⌛️
威胁建模阶段
漏洞分析阶段
渗透攻击阶段
后渗透攻击阶段
报告阶段

教学目标

教学目标
1.了解收集Web服务器哪些内容及实施顺序;
2.掌握Web搜索、DNS解析、路由探测、查点、扫描等信息收集方法
3.掌握dnsenum、nslookup、whois、traceroute、tcptraceroute、telnet、ping、fping、arping、nmap、p0f等工具的使用
重难点

  1. nmap命令等使用

Web服务器搜集那些内容

  1. 目标系统IP地址范围
  2. 详细的注册信息
  3. DNS服务位置
  4. 电话号段
  5. 外部网络拓扑结构
  6. 目标网络中活跃的主机
  7. 操作系统类型
  8. 开放的端口
  9. 是否存在已公开披露的安全漏洞
  10. 用户账号
  11. 共享资源
  12. 网络服务类型与版本号
  13. 服务器配置信息

Web搜索

搜索站点入口及其他不小心暴露的信息

  1. Google常见搜索语法
    site: 限定搜索域名
    intitle: 限定搜索标题
    allintitle: 限定标题包含所有关键字
    inurl: 限定搜索url
    allinurl: 限定url包含所有关键字
    filetype:限定文件类型
    “”: 精确匹配(不拆分关键字)
    +:包含关键字
    -:不包含的关键字

  2. 搜索什么
    查找利用php webshell
    intitle:"php shell*" "Enable stderr" filetype:php
    搜索INC敏感信息
    .org filetype:inc
    搜索robots等其他敏感信息
    "robots.tx"
    "disallow:"
    filetype:txt
    allinurl:/examples/jsp/snp/snoop.jsp
    allinurl:phpsysinfo
    ipsec filetype:conf
    搜索入口及配置文件等
    filetype:xls username password email
    "ws_ftp.log"
    "config.php"

DNS解析

确定某个域名对应的地址范围

  1. dnsenum命令
    dnsenum -enum <域名>
  2. nslookup命令
    nslookup <域名>
  3. whois命令
    whois是一个行业标准协议,能够通过互联网上面已有数据库查询某个域名的信息
    whois <域名>

路由探测

探测网络拓扑结构

  1. traceroute命令
    查看 从当前及其到目标ip中间经过到路由地址
    原理:使用IP报文等TTL字段,设置为1,设置为2... 发送报文,路由器获取到IP报文,将IP报文的ttl -1, 当ttl=0时访华一个ICMP报文给源主机,源主机就明确报文到达了哪台服务器
    traceroute <ip/域名>
  2. tcptraceroute命令
    区别:traceroute发送的时ICMP报文,tcptracerout发送的时TCP 第一次握手包
    image

查点

探测主机是否在线 指定端口是否可链接

  1. ping命令
    检查(主机是否在线存活)连通性
    -c 指定发送次数
    ping baidu.com -c 3
    (Linux)不填会一直发送
    -I 指定从哪个网卡发送
    -s 指定报文大小
    ping example.org -s 60000
    默认56,加上8个字节的ICMP包头共64字节
    ping attack
  2. telnet命令
    检查指定主机端口是否可连接
    telnet <ip/域名> 端口
    telnet www.baidu.com 80

输入
GET / HTTP/1.1

扫描

扫描存活主机几开放端口

  1. fping命令
    同时检查多个IP或某个网段所有ip
    fping ...
    fping -g <192.168.1.1/24>
  2. arping命令
    发起arp请求(局域网广播)对方无法拒绝
    image
    3.nmap命令
    Nmap(Network Mapper)是一个免费开放的网络扫描和嗅探工具包
    用途:
    a) 探测一组主机是否在线
    b) 扫描主机端口,嗅探所提供的网络服务
    c) 探测服务器指纹信息
    d) 推断主机所使用的操作系统
    a) -sP 使用ping的方式确定目标及其是否存活
    nmap -sP 192.168.37.22 扫描指定IP
    nmap -sP 192.168.37.22/24 扫描一段IP
    image
    b) 端口扫描
    nmap 192.168.37.37 扫描常用1000个端口
    nmap -p 0-65535 192.168.37.37 扫描所有端口
    常用参数:
    -sT: tcp connect扫描方式,正常的TCP端口探索,使用网络编程connect api 完成3次握手,判断对方该端口是TCP服务端口;
    -sU: udp扫描方式 发送一些UDP报文到目标端口,如果对方不回应,应该启动了UDP如果对方回应一些ICMP报文,端口不可达,UDP服务没启动,如果返回RST,TCP报文,则启动了TCP;
    -sS: syn扫描 只发送第一次握手包,观察回不回第二次握手,而不会完成第三次握手,完成3次握手服务器是可以感知的,需要root权限
    c) -sV 端口服务指纹识别
    nmap -sV -p 22 192.168.1.1
    image

漏洞案例

ftp服务vsftpd 2.3.4 笑脸漏洞
靶机:Metasploitable2
漏洞描述:特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
测试步骤:

  1. 使用nmap端口扫描metasploitable2主机开放的端口及对应的版本
  2. 发现21端口ftp服务开放,且使用的是vsftpd2.3.4版本(已知有漏洞)
  3. 使用Kali主机 ftp 命令链接靶机ftp服务,用户输入a:),密码输入111111,回车
  4. 使用Kali主机nc 6200 命令连接靶机6200端口,并执行任意shell命令
    image

今日作业

  1. 扫描Metasploitable2,使用指定的客户端(如ssh、mysql、psql等)尝试连接指定开放的端口
  2. 搭建Ubuntu虚拟机,安装并启动ftp、mysql、nginx等服务,使用nmap扫描当前虚拟机,获取开放的端口、服务版本及服务器版本等相关信息;
posted @ 2023-03-01 23:22  韩志超  阅读(386)  评论(0编辑  收藏  举报