安全三大准则
(The three laws of security - A. Shamir)
没有绝对安全的系统。
若要风险减半,需得开支增倍。
加密通常并非被攻破,而是被绕过。
案例一 某国企网络渗透测试
流程
1、前期交互
2、信息搜集、社会工程
3、Web 访问权限
4、Web 应用提权
5、Webshell
6、操作系统提权
7、内网渗透
8、报告、整改及回测
前期交互
1、明确用户的需求——确定用户的测试要求、类型等需求
2、划定边界——划定渗透测试的范围及边界(可为、不可为)
3、规避风险——协商测试环境,潜在风险,测试环境、生产环境
信息搜集、社会工程
目标
企业信息、组织架构、人员信息、硬件、电话、生日、帐号信息、规章制度、拓补结构……
信息搜集
Google, Weibo, Whois, DNS, Blog...
Google 搜索示例
网站特殊路径:Robots.txt
内部文件
管理规范、命名规范
网络信息探测——Whois, Passive DNS
Domain Name: xctf.org.cn ROID: 20140813s10051s00724664-cn Domain Status: ok Registrant ID: hc-740959249-cn Registrant: 南京赛宁信息技术有限公司 Registrant Contact Email: cyberpeace@qq.com Sponsoring Registrar: 阿里巴巴通信技术(北京)有限公司(原万网) Name Server: dns7.hichina.com Name Server: dns8.hichina.com Registration Time: 2014-08-13 13:42:36 Expiration Time: 2017-08-13 13:42:36 DNSSEC: unsigned
网络信息探测——DNS
; <<>> DiG 9.8.3-P1 <<>> xctf.org.cn ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 11396 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;xctf.org.cn. IN A ;; Query time: 722 msec ;; SERVER: 218.2.2.2#53(218.2.2.2) ;; WHEN: Sat Jul 11 10:41:11 2015 ;; MSG SIZE rcvd: 29
网络信息探测——CDN
扫描
CDN: 80
Origin: 21, 25, 80, 3306
提交头像 URL,让原始服务器主动向探测服务器发起请求。
社会工程
电话前台
星巴克 + Cookie 泄露
Cookie: Name=root; Session=ABCDE;
Web 应用访问权限
架构确定
404 Not Found /xsxt/1.jsp was not found on this server. Resin 2.1.14 (built Thu Jul 1 18:39:55 PDT 2004)
框架确定
Linux / Windows... Oracle / MySQL / SQLServer... Tomcat / Nginx / Apache / Lighttpd... PHP / .NET / Redin / J2EE...
第一道防线
1、账号探测
用户名错误?
密码错误?
2、验证码绕过
大量快速的测试,需要绕过验证码?
可被快速地光学字符识别(利用模式识别技术识别验证码)。
破解,缺乏安全意识的开发者常将 Cookie 解码,来得到实际验证码。
重放,缺乏安全意识的开发者会忽视验证码的重放攻击。
3、密码破解
暴力 / 字典:次数限制。
恢复 / 劫持:短信劫持、“短信保管箱”、邮件劫持。
4、审计缺陷
复用帐号:账号可能会重置密码。
临时帐号:创建隐蔽的临时账号。
Web 应用提权
1、SQL 注入提权
2、绕过访问控制提权
通过“隐藏”来实现权限控制或访问控制,是缺乏安全意识的开发者常犯的错误之一。
寻找规律
http://exp.com/news/action/forwardNewsList http://exp.com/files/action/forwardFilesList
尝试
http://exp.com/users/action/forwardUsersList (Wrong) http://exp.com/members/action/forwardMembersList (Right)
3、利用 Session 提权
用户临时参数的缺陷
http://exp.com/userCenter/updateUserConfig data: { confTypeId: "9", confEntryId: "9", dataType: "integer", code: "theme", content: "1" }
Webshell
1、SQL 注入过滤绕过示例
http://exp.com/index.do?query=abc' (Illegal Paras.) http://exp.com/non-exist.do?query=abc' (Illegal Paras.)
判断使用 Sprint 拦截器实现,获取任意参数进行字符检测。
发现 REST 风格请求:
http://exp.com/member/1024/info (Test) http://exp.com/member/10' or 1=2 --/info
找到 SQL 注入点
这需要各种系统、框架的开发经验,团队配合才能熟悉具体的开发过滤经验,熟悉对方弱点进行绕过。
2、报表导出缺陷
选定日期导入报表
发现是 Session 相关、文件缓存(可以伪造路径而造成任意文件下载)
3、文件上传绕过
http://exp.com/downloadFile?appName=gat&fileName=test.xls APP_WHITE_LIST: gat/htr/kpt/chg
对管理员提供白名单前缀设置选项,将前缀与文件名路径组合形成实际路径
发现 APP_WHITE_LIST 并未以 / 分割后再判断,而是简单搜索,即 gat/htr 也会被视为合法
此配置设置时仅做了前端校验
4、数据更新缺陷
管理员可配置 FTP 更新参数:
UPDATE_FTP_SERVER: 192.168.1.20 UPDATE_FTP_USER: admin UPDATE_FTP_PASS: laKSlec UPDATE_LOCAL_FILE: /tmp/update.tar UPDATE_REMOTE_FILE: /data/update.tar
管理员可配置附件存储服务器参数
操作系统提权
内网渗透
1、配置文件
2、不安全的“安全运维”
对所有服务器做日志安全分析、监控常规运维命令:重启机器、重启服务、自动更新
协议未加密(未严格检查证书合法性:自签名证书)