20169215 2016-2017-2 《网络攻防实践》/《网络攻击与防范》第五周学习总结

20169215 2016-2017-2 《网络攻防实践》/《网络攻击与防范》第五周学习总结

教材学习内容总结

Web应用体系结构

Web应用程序通常以浏览器支持的语言(JavaScript等脚本语言及HTML等渲染标记语言)所编写。Web应用程序与浏览器的完美配合造就了B/S计算结构。

Web体系结构中,浏览器作为客户端,和服务器端通过因特网或内联网上的HTTP/HTTPS应用层协议的请求与应答进行通信。其中服务器端由Web服务器软件、Web应用程序及后端数据库构成,并通过表示层、业务逻辑层和数据层三层架构进行组织构建。

最流行的浏览器客户端脚本语言JavaScript的引入使网页中可以为用户接口提供动态元素与客户端本地数据处理能力;Flash的引入提升了浏览器的动态展现效果;Ajax的诞生推动了浏览器端的可交互性。

Web服务器软件被描述为HTTP守护程序,负责接收客户端对资源的请求、响应的返回和一些基本的解析处理。

Web应用的核心是处于服务器端的业务逻辑,即Web应用程序,多采用表示层、业务逻辑层和数据层的三层体系结构。

Web应用体系结构存在的安全威胁有:

  • 针对浏览器和终端用户的Web浏览安全威胁;
  • 针对传输网络的网络协议安全威胁;
  • 系统层安全威胁;
  • Web服务器软件安全威胁;
  • Web应用程序安全威胁;
  • Web数据安全威胁。

针对Web应用程序的攻击主要集中在身份验证、会话管理、数据库操作、输入数据合法/合理性检查。

Web服务器平台中的安全漏洞主要有:

  • 数据驱动的远程代码执行安全漏洞;
  • 服务器功能扩展模块漏洞;
  • 样本文件安全漏洞;
  • 源代码泄露;
  • 资源解析攻击。

Web应用程序安全威胁从攻击技术角度可以分为6类:

  • 针对认证机制的攻击;
  • 授权机制的攻击;
  • 客户端攻击;
  • 命令执行攻击;
  • 信息暴露;
  • 逻辑攻击。

SQL注入

代码注入利用Web应用程序的输入验证不完善漏洞,使得Web应用程序执行由攻击者所注入的恶意指令和代码,造成敏感信息泄露、权限提升或对系统的未授权访问等危害后果。

SQL注入漏洞是由于用户输入没有被正确的过滤以消除SQL语言中的字符串转义字符或没有进行严格的类型判断,从而使用户可以输入并执行一些非预期的SQL指令代码。

SQL注入攻击步骤:

  1. 发现SQL注入点;
  2. 判断后台数据库类型;
  3. 后台数据库中管理员用户口令字猜解;
  4. 上传ASP后门,得到默认账户权限;
  5. 本地权限提升;
  6. 利用数据库扩展存储过程执行shell命令。

Web浏览的安全问题与威胁

Web浏览器也遭遇着软件安全困境三要素的问题,即复杂性、可扩展性和连通性。

网页木马

网页木马存在的技术基础是Web浏览端安全漏洞,其攻击是被动式的,本质特性是利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。

网页木马的本质核心是浏览器渗透攻击,其特性是:

  • 多样化的客户端渗透攻击位置和技术类型;
  • 分布式、复杂的微观链接结构;
  • 灵活多变的混淆与对抗分析能力。

网页挂马的机制主要有四种:

  • 内嵌HTML标签;
  • 而已Script脚本;
  • 内嵌对象链接;
  • ARP欺骗挂马。

网页木马分析与检测技术方法:

  • 基于特征码匹配的传统检测方法;
  • 基于统计与机器学习的静态分析方法;
  • 基于动态行为结果判定的监测分析方法;
  • 基于模拟浏览器环境的动态分析检测方法。

教材学习中的问题和解决过程

视频学习中的问题和解决过程

数据库评估

BBQSql

BBQSql是一个Python编写的盲注工具,是一个半自动工具,允许客户自定义参数。

DBPwAudit

是一个数据库用户名密码枚举工具。

破解SQLSever数据库:

./dbpwaudit -s IP -d master(数据库名) -D mssql(数据库类型) -U username(字典) -P password(字典)

破解MySql数据库

./dbpwaudit.sh-s -s IP -d mysql(数据库名) -D MySQL(数据库类型) -U username(字典) -P password(字典)

HexorBase

图形化的密码破解与连接工具,开源。

Jsql Injection

jSQL是一款轻量级安全测试工具,由java写的开源工具,可以检测SQL注入漏洞。

Oracle Scanner

是一个用Java开发的Oracle评估工具,它是基于插件的结构,当前有两个插件可以做:

  • Sid列举
  • 口令测试
  • 列举Oracle版本
  • 列举账号角色
  • 列举账号特权
  • 列举账号哈希
  • 列举审计信息
  • 列举口令策略
  • 列举数据库链接

SIDGusser

同样是针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串通过实例名+用户+密码连接。

SQLdict

是一个用户名密码枚举工具,通过Wine运行。

tnscmd10g

允许用户向Oracle数据库中注入命令。

Sqlsus

sqlsus是一个开源的MySQL注入和接管工具,使用perl编写,基于命令行界面。sqlsus可以获取数据库结构,注入自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等。最好用的两点是注射获取数据速度快,自动搜索可写目录。

生成配置文件:

sqlsus -g test.conf


编辑配置文件:修改our $url_start = "";写入地址。

启动并测试:

sqlsus test.conf

获取数据库数据

查看全部数据库名字:

sqlsus> get databases

设定数据库:

sqlsus> set database
database = "sql"
sqlsus> set database mysql
database = "mysql"

获取表:

sqlsus> get tables

Sqlninja

sqlmap是sql注入方面的神器,但sqlninja也有自己的特点。sqlninja是一款perl编写的针对Microsoft SQL Server的sql注入工具。,其侧重于获得一个shell。可找到远程SQL服务器的标志和特征(版本、用户执行的查询、用户特权、xp_cmdshell的可用性、身份验证模式等)。用纯粹的ASCII GET/POST请求上载netcat.exe程序,不需要FTP连接。

在sqlninja生成的SQL代码上,执行的是自动化的URL编码,是的用户可以更精细的控制漏洞利用的字符串。如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。

sqlninja参数很少:

    -m                  #指定攻击模式,有以下几个
    t/test          #测试连接是否是注入点
    f/fingerprint   #指纹识别,判断用户,数据库,xp_cmdshell是否能用
    b/bruteforce    #暴力破解sa密码,可以-w指定字典
    e/escalation    #提权用,必须用-p制定sa的password,成功就会把当前数据库用户加入到sa组
    x/resurrectxp   #尝试恢复xp_cmdshell
    u/upload        #使用get和post上传二进制文件,-p可以指定sa
    s/dirshell      #获得目标主机的shell
    k/backscan      #查看开放的目标端口
    r/revshell      #反弹回一个shell,和dirshell相反
    d/dnstunnel     #指定使用dns作为传输通道,可用-p指定sa的password
    i/icmpshell     #dirshell和revshell失败,可用这个模式吧shell藏在icmp里
    c/sqlcmd        #可以用来执行简单的cmd命令,没有回显
    m/metasploit    #使用meterpreter作为shell
-f                  #指定配置文件,注入网址卸载配置文件里,默认是sqlninja.conf
    0 - 检测当前数据库版本
    1 - 当前数据库用户
    2 - 当前数据库用户权限
    3 - 检查xp_cmdshell是否可用
    4 - 是否windows本地系统权限
    a - 以上所有选项
    h - 显示当前帮助菜单
    q - 退出
-p                  #sa账户密码

Sqlmap

sqlmap是一个开源渗透测试工具,主要用于自动化侦测和实施SQL注入攻击以及神偷数据库服务器,适用于高级渗透测试用户,可以获得不同数据库的指纹信息,还可以从数据库中提取数据,处理潜在的文件系统以及通过外带数据连接执行系统命令等。

常见命令:

Web应用代理

burp Suite

burp Suite是用于攻击web应用程序的集成平台。Burp S uite带有一个代理,通过默认端口8080上运行,,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包。平台中所有工具共享同一robust框架。各个功能之间可以互相转发数据包。

设置完成后,访问百度:

点了forward之后网页才打开:

Prox提供一个直观、有好的用户界面,它的代理服务器包含非常详细的拦截规则,并能准确分析HTTP消息的结构与内容。

Spide爬行蜘蛛工具,可以用来抓取目标网站,一线是网站的内容,基本架构,和其他功能。

Scannery Web应用程序的安全漏洞进行自动发现工具。被设计用于渗透测试,适应执行手动和半自动化的web应用程序渗透测试。

Repeater可以让你手动重新发送单个HTTP请求。

Intruder是burp套件的又是,可以自动实施各种定制攻击,能够以最细化、最简单的方式访问它产生的请求与相应,允许组合利用个人只能与该工具的控制有点。

Sequencer 对话令牌,回话表示服或其他出于安全原因需要随机产生的键值得可预测性分析。

Decoder 转化成规范形式的编码数据,或转化成各种形式编码和三列的原始数据,它能够智能识别多种编码格式,使用自发式技术。

Comparer 是一个简单的工具,执行比较数据之间的任何两个项目。

OwaspZAP

OWASP是一款查找网页应用程序漏洞的综合类渗透测试工具,包含了拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能,是会话类调试工具,调式功能对网站不会发起大量请求,对服务器影响较小。

Paros

Webscarab

Fuzz工具

模糊测试是漏洞分析很重要的一步。

Bed.pl

是一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲区溢出,格式串漏洞,整数溢出等。

视频学习中的问题和解决过程

1、Sqlmap测试中靶机中找不到相应的目录。

2、burp suite测试时候,搜索东西直接就跳转了,没有先把包拦下来。

第五周进度

  • kali视频16-20
  • 课本最后两章

参考资料

  • html学习
  • 《网络攻防技术与实践》教材
  • kali视频

posted on 2017-03-31 18:45  20169215  阅读(284)  评论(5编辑  收藏

导航