《Web 安全深度剖析 》 随手记(三)

第十一章(实战入侵与防范)
        渗透测试是通过模拟黑客攻击来评估安全性能。我们打好基础后可以通过靶场练习,
        来点实际的渗透测试,渗透只是手段,最终目的是加强安全防范。

        站点破解思路
        1.(0day)攻击
            0day就是破解的意思,特指通过尚未公开的漏洞发起攻击。
            配合google hiking黑客可以批量查找老版本的网站,发挥更大的威力
        2. 通过网站后台入侵,主要入侵方向有:
                1.网站模板执行恶意代码
                2.文件管理模块执行恶意代码
                3.利用SQL语句模块导出webshell文件
                4.数据库备份功能,上传图片木马。
        3. MD5破解,通过截获密码文件,查询彩虹表破解
        4. 拖库,拖库入侵方向有:
                1.asp.net 查web.config文件
                2.php网站 查inc、db、fun等目录的 config.php,conn.php,web.php 文件
                3.jsp网站 查properties文件、/web-inf/的文件
                4.获取到敏感信息后,用Navicat 快速拖库,
                    或SQLMap的dump命令转存,或Burp Suite导出数据或 上传拖库脚本执行


第十二章(暴力破解)
        暴力破解第一步是掌握账号信息,暴力破解代价很大,通常会辅以社工进行。

        1. C/S框架破解
                目的是破解 SQL Server的sa,MySQL的root,Oracle的System
                暴力破解软件的典范,Hydra和medusa,支持超多的协议。
                
        2. B/S框架破解
                破解B/S框架通常不是走常见的协议,需要我们来观察,登录成功和登录失败的区别点。
                入侵思路:1.正儿八经提交一次请求,使用代理截获。看看密码参数在哪里。
                        2.设置Payload,设置字典
                        3.设置标识位,用字符串匹配,比如:记住我,打钩状态。
                        4.点击破解,运行完成后看标志位列头,返回文件长度,状态码之类。
                            假如运气好,会发现有一条特别的记录,就是爆破成功的。

        3. 常见案例:破解OA系统                            
                第一步:收集用户名,很可能是公司邮箱,用自己的爬虫去爬这个网站的邮箱。
                            如果提示无效的用户名,可以考虑爆破用户名。
                第二步:破解验证码,如果验证码有30分钟,验证码只有4位,完全可以爆破。
                第三部:爆破该用户的密码

        4. 如何防止暴力破解
                1.密码复杂点,起码8位
                2.图片验证码复杂点
                3.登录日志记录,错误次数
                4.对于弱口令用户给予提醒更改密码                                            
                
第十三章(旁注攻击)
        这种攻击不和目标站点正面对抗,而是入侵目标站点所处服务器,通过提权入侵目标站点。

        1.旁注攻击发生在中小型网站身上比较多。                                          

        2.旁注攻击先要做IP逆向查询(信息收集),看看服务器有多少个网站。
        
        3.SQL跨库查询:
            如果旁站存在漏洞,假如是SQL注入漏洞,我们可以使用SQL拖库。
                这是由于服务器管理员没做到最小特权原则。
            
        4.目录越权:
            顾名思义,就是访问了不该访问的东西,也是没做到最小特权原则。
        
        5.构造注入点:
            如果目标站点的数据库权限做得特别烂,我们还可以通过数据库来跨目录读写文件。上传网页恶意脚本。

        6.CDN:
            CDN中文名是 内容分发网络,是个好东西,
                相当于缓存了你的网站在全国各地的网络节点上。隐藏真实的IP。
                对于CDN加速的网站,想获得其真实IP有以下思路:
                    1.找 phpinfo() 页面
                    2.找 子域名页面
                    3.通过境外网站查询网站的ip,和ip地址变化情况。
        
       

第十四章(提权)
        通常有价值的只是数据,黑客攻击一个网站为的是拿到数据,而不是服务器的控制权。
        如果目标网站安全措施很好,就得从旁站突破,所以提权常常用于辅助旁注攻击。
        提权分为两种,一、溢出提权,二、第三方组件提权
        
        1.溢出提权
            溢出分为远程溢出和本地溢出,随着集成补丁的普及,溢出漏洞已经是明日黄花。
            远程溢出原理:攻击者与服务器建立连接,上传相应的溢出程序,溢出root权限。
            本地溢出原理:攻击者已经有一个用户,上传本地溢出程序,溢出root权限。
            攻击思路: 
                Linux:  1.查看服务器内核版本,不同的版本溢出程序不同
                         2.本地接收服务器端数据,使用NC监听本地端口8888,等待服务器反向连接。
                         3.服务器端Shell反弹,溢出成功后一般会弹shell。拥有shell会方便很多。
                         4.利用shell上传本地溢出程序,继续提权获得root。

                Windows:1.探测脚本信息, 重点是看用户是否可执行溢出程序,ASP,ASP.NET,JSP用的脚本不一样。                        
                         2.执行简单的系统命令,通过系统不安全的组件执行系统命令最终执行本地溢出程序。

        2.第三方组件提权
            服务器通常会有许多组件,组件往往不是最新的版本,黑客可能利用组件提权。

            1.信息收集
                服务器支持哪些脚本语言
                服务器端口扫描,可以利用web shell,可以利用nmap,可以利用系统命令 netstat -an
                收集路径,看看主机文档、配置文档里可能有密码信息,快捷方式会暴露路径,注册表中有安装信息。
            2.数据库提权
                SQL Server利用注入点或sa账号提权,或者利用存储过程 xp_cmdshell提权。
                MySQL没有现成的给力函数,通常需要自定义函数UDF,5.1版本shellcode需要导入到plugin中                
            3.FTP提权
                FTP端口是20和21两个端口,第三方FTP软件有G6FTP/Serv-U/FileZilla
                攻击思路:找配置文件中的密码,或添加用户到配置文件中,
                        若不允许远程连接需要借助LXC进行端口转发,然后执行BAT文件,或者替换粘滞键sethc.exe
            
        3.虚拟主机提权
            虚拟主机是把物理主机分成多个逻辑存储单元,每个单元没有实体,但是在网络中就像真实的一样使用。
            虚拟主机是开源代码的Web应用服务器,如果存在0day,很可能会被秒杀。

        4.提权辅助
            1.3389端口,微软提供的远程桌面访问,cmd输入mstsc即可启动,或者利用bat代码启动3389端口。
            2.端口转发,攻击者在服务器使用lcx软件,让服务器与黑客电脑客户端连接。类似软件还有reDuh
            3.启动项提权,添加bat到程序/启动目录中
            4.DLL劫持,ipk.dll,特点是每个执行程序都会加载当前目录的ipk.dll,如果不存在,则执行system32的dll。
            5.添加后门,通常建立一个隐藏的账号,或者克隆guest账号,或者盗用administrator账号。
            
        5.服务器防提权措施,重点是防目录信息泄露,最小特权原则。

第十五章(ARP欺骗)
        1.ARP协议简介
            ARP是地址解析协议的英文缩写,以太网中,两台主机需要通信得知道对方MAC(介质访问控制)地址,
            ARP的工作是把网络地址映射成物理地址。
            
            ARP缓存表,所有安装了tcp/ip协议的主机都会有arp缓存表。使用 arp -a可以查看本机的缓存表
            局域网主机通信,不知道对方的mac地址时,使用arp广播,收到应答后更新缓存表
            ARP欺骗原理,发送虚假的arp请求或响应。
        2.ARP攻击
            C端攻击可以看作是另类的旁注攻击。指入侵同一网关下的主机后,进行arp嗅探攻击,甚至是中间人欺骗。
            Cain,强大的嗅探功能,嗅探局域网下的主机数据包,或者中间人攻击。
            Ettercap,强大的中间人攻击工具,DNS欺骗等。
            NetFuke,较老的工具,分析能力较弱,还有域名劫持功能。
        3.防御ARP攻击,静态绑定,arp防火墙。
      
第十六章(社会工程学)
        很猥琐的一门科学,通过对受害者心理弱点,本能反应,好奇心,贪婪进行欺骗、伤害。
        地域黑客凯文最擅长这个,社工师必看书籍《欺骗的艺术》,社工师就像一个魔术师,左手吸引你的注意,右手窃取你的秘密。
        1.信息收集
            如果目标是Web程序和服务器,收集站长的详细资料,手机号,生日,姓名,身份证号,邮箱,常用账号密码。
        2.沟通
            通过沟通,投其所好,获得信任或者想要的信息。
        3.伪造
            域名劫持,间接照成网站不可用。

你可能感兴趣的:(《*Web安全*》)