Home/渗透测试行为清单

Created Sat, 10 Sep 2022 02:10:40 +0800 Modified Fri, 23 Sep 2022 06:12:07 +0800

渗透测试简单来说是安全人员模拟黑客入侵的方式,评估目标安全防御能力的行为。根据测试人员获取信息的多少,可分为黑盒、白盒、灰盒三种类型。(ING)

简要步骤

  1. 明确目标。 需要明确渗透测试的范围(IP/域名/内外网)、规则(提权/数据/时间)、需求(Web应用漏洞/业务逻辑漏洞/人员权限管理漏洞等),针对性展开测试

  2. 信息收集。 主动扫描&搜索。基础信息(域名、子域名、IP、端口、CDN)、应用信息(服务器开启端口对应应用)、版本信息(探测到所有程序系统的版本)、人员信息(法人、管理员、用户)、防护信息(WAF、防火墙等防护设备)

    丰富的信息是后续漏洞发现和利用的基础。

  3. 漏洞探测。 框架组件公开漏洞(验证poc/exp)、传统漏洞(XSS/SQL/SSRF)、口令漏洞、代码业务逻辑漏洞、误配置漏洞等多种方式,通过自动化(AWVS/Nessus/appscan/OpenVAS)工具漏洞扫描或人工代码审计(fortify)实现。

  4. 漏洞验证。 结合自动化扫描工具的结果进行验证、手工搭建模拟环境验证等方式,确认漏洞的存在、可利用性、可能的危害。

  5. 发起攻击。 通过Metasploit等自动工具、编写脚本等方式实现。

  6. 信息获取。 实施攻击后,能够获得怎样的权限或者数据是需要。

    实施攻击 -> 获取内部信息 -> 内网渗透 -> 持续性存在 -> 痕迹清理

  7. 报告生成。 完成渗透测试实践后,还需整理过程中收集到的信息、编写的代码、POC、EXP等,详细分析漏洞成因、验证过程和危害,提出修补建议,生成详尽的渗透测试报告。

信息收集

类型:主动信息收集(主动访问/扫描等)、被动信息收集(google/shodan搜索等)

IP相关

IP获取

通过ping域名(ICMP协议)、nslookup命令、或站长之家支持在线查询的网站获取IP

CDN检测&真实IP获取

CDN(内容分发网络)服务根据地区选择线路提供访问,加速网站访问,隐藏真实IP

  1. 检测:全球ping/nslookup (站长工作/爱站网)。同一域名不同地区访问IP不同,则很可能使用CDN、ping到了vercel-dns/nslookup的name字段等有类似域名。
  2. 绕过:
    • 查询子域名。 很多网站只对主站做了CDN加速,子域名没有。子域名与主站很可能在同一服务器/同一C段网络中,通过子域名IP辅助判断主站IP真实性。
    • 查询历史DNS记录 。 (dnsdb/viewdns/微步在线等)
    • 使用国外主机请求域名。 部分CDN服务商只对国内线路做加速。
    • 网站信息泄露漏洞。 (phpinfo页面SERVER_ADDR字段-主机真实IP)
    • 邮件信息。 若该站点提供邮件系统(一般在内部),通过邮箱注册/密码找回/RSS订阅等,接收邮件查看源码可以获得真实IP。
    • App应用。 有App,通过流量抓包可能会找到真实IP。
    • 域名备案信息广域探测。 共用一台服务器的多个网站域名及子域有没做CDN的

旁站/C段查询

  • 旁站:同一服务器上的其他网站
  • C段:同一内网段内的其他服务器(最后一个三位数不同)

当前服务器-旁站入手。更多资产-C段入手。

站长之家、webscan、nmap等工具

端口扫描

  • nmap - 最最最常用

    -sS # TCP SYN扫描
    -sT # TCP connect() 扫描
    -sU # UDP扫描
    -sN # TCP Null
    -sF # FIN
    -sX # Xmas扫描
    -Pn # 不通过ICMP ping检测
    -sP # 通过ping ICMP检测
    
  • masscan

域名相关

子域名收集

收集子域名可以扩大渗透范围,主站往往防御森严,从子域可以寻找更多突破口

  1. 搜索引擎查找。 site:baidu.com(google/shodan/360测绘空间/zoomeye等)
  2. 枚举爆破查找。 如在线子域名查询(站长之家等)、子域名挖掘机、sublist3r、FuzzDomain、SubDomainBrute、subfinder、OneForAll、ksubdomain、wydomain等
  3. 证书透明性信息。 查询共用SSL/TLS证书证书的网址可以找到其他域名。(crt.sh)
  4. DNS域传送。
  5. 递归爬取。 JSINFO-SCAN
  6. 构造域名。 altdns 基于已获得的子域名,置换探索相似域名
  7. 信息泄露。 跨域策略文件、站点地图、robots.txt、CSP、邮箱系统、仓库等

存活性探测: WebAliveScanbscanhttpxFinger等工具,检验域名是否存活,可能功能

站点相关

目录探测

  • 站点爬取方式:AWVS-Site Crawler、Burp Suite-Target-Site map、yuhScan、Dirmap
  • 搜索方式:谷歌搜索 site:xxx.com inurl:file intitle:后台
  • 爆破方式:御剑、Kali-DirBuster

指纹识别

指纹分类 示例
Web容器 Apache、IIS、Nginx、Tomcat、Weblogic
服务端语言 PHP、Java、.NET、Node.js
后端框架 Thinkphp、Struts2
CMS应用 Wordpress、seacms
前端框架 Vue、react、angularjs
前端语言 Javascript、less
运营商 移动、联通
第三方内容 YouTube、Bilibili
CDN运营商 阿里云、电信
WAF (规则/语义) 安全狗、D盾、宝塔 / 阿里云盾
  • 框架识别。 Powered by xxx关键语句/前端源码/meta标签、特定文件路径、响应头特定字段信息。(chrome wappalyzer/whatweb/Glass)
  • WAF识别。 (wafw00fidentYwaf、SQLMap-identify-waf) 基于WAF拦截页信息、HTTP头部信息 (Gotestwaf 评估WAF效果)
  • 服务器信息收集。 服务版本(nmap -sV -p 1-65535 x.x.x.x)、操作系统信息(nmap -O x.x.x.x)

社工相关

whois查询

域名的注册人信息,如联系方式、管理员信息等 ,包括DNS服务器信息

  • kali Whois命令/网上的whois工具,可以获得

After

完成渗透测试并生成报告后,安全维护者需要进行漏洞修复和防护升级,如WAF规则新增、更严格的输入验证、DDoS防护等。

漏洞探测

漏洞扫描-自动化

  1. 文件包含
  2. 命令执行
  3. SQL注入
  4. XSS注入
  5. 弱口令
  6. 其他

发起攻击

绕过WAF

  1. 云WAF防护。 找到网站IP,通过IP访问即可绕过

  2. 替换关键字。 ununionion selselectect - WAF采用替换或删除1个select/union关键词

  3. 绕过空格。 注释/xxx/、空白符号%20/%0、+代替空格,WAF替换注释或没有识别注释的情况 & 内联注释(MySQL: /*!注释内的语句被执行)

  4. 多参数请求拆分。多个参数拼接到同一条SQL语句,分割插入

  5. HTTP参数污染。 同一参数多次出现,不同中间件解析为不同结果

    color=red&color= blue为例

  6. 生僻函数替换。 报错注入里updatexml() -> polygon()

  7. URL编码(二次)。 URL编码、Unicode/Base64编码等

  8. 宽字节绕过。GBK编码,对单引号%27进行转义%5C%27,通过%df%27转义为%df%5C%27,其中前两个被视为新字节,%27作为单引号正常实现语句闭合

  9. 大小写混合。 WAF规则匹配只针对特定情况(几乎没有)

References

  1. https://blog.zjun.info/tech/web-penetration-information-collection-checklist/
  2. https://cloud.tencent.com/developer/article/1872310
  3. https://www.cnblogs.com/coderge/p/13736537.html
  4. https://www.freebuf.com/articles/web/229982.html
  5. https://www.freebuf.com/articles/web/229982.html
  6. https://cloud.tencent.com/developer/article/1820070
  7. https://xz.aliyun.com/t/7767