信息安全漫谈-技术普及培训卫剑钒2016.3关于本培训•对象:对信息安全一知半解的•目的:对信息安全有稍微深入一点的了解•特点:主要是技术普及,讲点故事和八卦•时间:尽量控制在2个小时内2作者简介•卫剑钒–信息安全专业博士–15年信息安全工作经验–在科研、教学、培训、企业安全规划、管理、运营等方面有丰富实践和经验–著作《安全协议分析与设计》–《大教堂与集市》译者–联系方式:wjf@pku.org.cn3黑客的级别•黑客的级别:–毛贼–高手、大盗–国家机器4先看看毛贼•主要使用现成工具•试各种密码•技术功底较差、文化水平也低•经常被抓5黑客被抓6侵入高校网站篡改考试成绩•2013年11月12日,刘某因入侵高校网站篡改成绩被抓获归案,后其协助公安机关将教给他如何入侵的董某抓获。•19周岁的刘某只有初中文化。董某为大学文化,董某自行研发制作出正方教务系统漏洞的软件,并数次侵入高校的正方教务系统进行测试。•2013年4月7日,董某以网名“北方狼”在乌云网发布名为任意获取正方教务管理系统账号密码漏洞的帖子,并对正方教务系统漏洞进行描述。注:全国各大高校普遍使用正方教务系统,储存学生的个人信息及考试成绩。7漏洞帖子8经过•刘某浏览乌云网发现董某的帖子后,通过QQ和董某联系,希望学习侵入正方教务系统的方法,并允诺给予报酬。•董某表示同意,后通过网络告知刘某侵入方法并作侵入视频演示,刘某学会后董某将其制作的软件EXP通过QQ传输给刘某。•双方约定报酬人民币5000元,后董某通过网上银行实得人民币4950元。9被抓•刘某学会侵入教务系统的方法后,通过互联网查找相关需修改成绩的帖子。此后,刘某侵入多所大学网站,先后为20余名在校学生将不合格成绩改为合格成绩,非法获利人民币18万余元。•天津市东丽区人民法院经审理于2014年10月11日作出(2014)丽刑初字第459号刑事判决。认定刘某犯破坏计算机信息系统罪,判处有期徒刑六年;董某犯传授犯罪方法罪,判处拘役六个月,缓刑六个月。10毛贼最爱社工库11白帽子?•关于“白帽子”的规矩和道理•由“世纪佳缘”事件引发的更多讨论12拖库•2011年,互联网拖库事件引爆了整个信息安全界:天涯:31,758,468条,CSDN:6,428,559条,微博:4,442,915条,人人网:4,445,047条。13库是怎样被人拖•很多是通过SQL注入实现的。•所谓SQL注入,就是通过把SQL命令插入到Web表单提交、或输入URL请求的字符串,最终达到欺骗服务器执行恶意的SQL命令。14“万能钥匙”用户名:1′or1=1or‘1′=’1密码:123用户名:admin密码:1'or'1'='115“万能钥匙”16name=trim(request.Form(adminusername))pass=trim(request.Form(password))//利用server对象的createobject方法创建ADO组件的RecordSet对象setrs=server.createobject(adodb.recordset)//将用户名和密码放入查询语句中查询数据库sql=select*fromadminwherename='&name&'andpassword=’&pass&'rs.opensql,conn,1,1//rs.eof表示当前的记录位于RecordSet对象的最后一个纪录之后,not则相反ifnotrs.eofthenusername=rs(“name”)session(“lifeuser”)=usernamesession.Timeout=10//关闭对象,释放空间rs.closesetrs=nothingconn.closesetconn=nothing//利用response对象的redirect方法重定向到”index.asp?user=”&usernameresponse.redirect“index.asp?user=”&username原理•sql=”select*fromadminwherename=’1′or1=1or‘1′=’1′andpassword=’123′”•FalseorTrueorTrueandFalse逻辑运算结果?•sql=”select*fromadminwherename=’admin’andpassword=’1′or‘1′=’1′•TrueandFalseorTrue逻辑运算结果?*注意逻辑运算优先级:notandor17原理•表单提交处,POST或GET请求•如下形式的页面链接:=YY•Cookie参数提交•HTTP请求头部可修改的值,如Referer,User_Agent等处18测试注入点1998年,在黑客杂志《Phrack》第54期上,黑客rfp向公众介绍了这种攻击:•比如,一个应用的URL如下:•=2•执行的SQL语句为:•SELECTtitle,description,bodyFROMitemsWHEREID=2•如果攻击者构造如下的条件语句:•=2and1=2•实际执行的SQL语句就会变成•SELECTtitle,description,bodyFROMitemsWHEREID=2and1=219探测是否可以注入•由于and1=2是个假命题,对于Web应用来说,也不会将结果返回给用户,攻击者看到的页面结果将为空或者是一个出错页面。•为了进一步确认注入是否存在,攻击者继续构造如下请求:•=2and1=1•如果页面正常返回了,则说明SQL语句的and成功执行,就可以大致判断id参数存在SQL注入漏洞了20判断数据库•MSSQL数据库:–=100and(selectcount(*)fromsysobjects)0and1=1•Access数据库:–=100and(selectcount(*)frommsysobjects)0and1=1•Mysql数据库:–=100and(selectcount(*)frominformation_schema.TABLES)0and1=1•Oracle数据库:–=100and(selectcount(*)fromsys.user_tables)0and1=121判断表名•看是否存在admin表–=1and(selectcount(*)fromadmin)0•类似的:–可以判断列名、字段长度、字段值等等22使用工具注入23使用工具注入sqlmap.py-u”--data=gid=66&level=14&name=a&page=1&type=55-pname--tables242526如何防范•用户的输入绝对不能直接嵌入到SQL语句中。用户的输入的内容必须进行过滤,或者使用参数化的语句来传递用户输入的变量。•测试输入的大小和数据类型,强制执行适当的限制。测试字符串变量的内容,只接受所需的值。27史上最牛SQL注入28密码怎可明文放29大多数网站的做法301.Name=Bob,pwd=T3ed%gb1U2.GetsavedBob’shash3.Hash=6F91A7EF….4.Hash=MD5(pwd)5.IfHash==6F91A7EF….ThenuserisBobMD531MD5-科普•Message-DigestAlgorithm5•是使用最广泛的散列算法(Hash、哈希、杂凑),虽然面临一些攻击。•MD5是由国际著名密码学家、“图灵奖”获得者兼公钥加密算法RSA的创始人、麻省理工大学的RonaldRivest教授于1991年设计的。•输入为任意长度报文,输出为128bit。32MD5计算过程•计算过程很复杂。33优秀Hash算法应具备的性质–易用性:给定任意长输入,H可以产生定长的输出。计算H(x)比较容易。–单向性:给任意h,找到满足H(x)=h的x在计算上不可行。–抗弱碰撞性:给任意x,找到H(y)=H(x)的y在计算上不可行。–抗强碰撞性:找到任何H(x)=H(y)的偶对(x,y)在计算上不可行。34md5–s“weijianfan”MD5(weijianfan)=c49262b1117b9fd1d6ebd74aaa016f3emd5APT攻击9.10.mp4MD5(APT攻击9.10.mp4)=e9c2a884af7b7c6db7919f8cc8abc51b注:该视频362M。35MD5生成MD5加密、解密?36暴力破解MD5的难度37这份密码表里有16,449个hash过的密码,博客作者NateAnderson,使用工具破解了其中一半的密码。专业黑客破解速度•Ars网站请了三名专业黑客来破,使用同一款软件OclHashcat-Plus。–S.C.G.,使用一台只配置一块AMD7970GPU的家用电脑,花了20小时破解了90%,共14,734个密码。–OclHashcat-Plus的开发负责人JensSteube,在一个多小时的时间里,用一台双AMDHD6990GPU的机器,搞定了13,486个密码,占全部的82%!–另外一名诨号monikerradix的黑客,用一块AMD7970,搞定62%的密码,也差不多花了1个小时。38利用字典•黑客穷举破解密码所用的“字典”里,包括了很多密码明文,包括像“123456”,“password”之类,这些属于弱暴了的密码,像p@$$word、123456789j、LETMEin3等也同样不堪一击。在这些字典里,你还能找到一些理论上强悍的密码,比如“LOL1313le”、“1368555av”、“Oscar+emmy2”之类。•像这次参与PK的黑客手里的字典,有接近1亿种常见密码。39专业玩家的设备•搭建多GPU破解平台,配合HashCat,进行分布式破解作业。40暴力破解工具•目前流行的破解工具Hashcat•常用的几种算法的破解速度中–MD5最高80亿次每秒–SHA-1最高20亿次每秒–SHA-2512最高2亿次每秒•使用慢速hash函数让破解更加困难:–bcrypt()41配备高端显卡PC的计算速度42PC:Windows7,32bitCatalyst14.91xAMDhd79701000mhzcoreclockoclHashcatv1.35查表方式破解•查表破解(LookupTables):预先计算出密码字典中每一个密码的hash。然后把hash和对应的密码保存在一个表里。•彩虹表(RainbowTables):一种使用空间换取时间的技术。跟查表破解很相似。只是它牺牲了一些破解时间来达到更小的存储空间的目的。•查表和彩虹表的方式之所以有效是因为每一个密码的都是通过同样的方式来进行hash4344在线解密CMD5.com10位字母遍历45“世界震惊王小云破解全球两大密码算法”•“2004年8月,在美国加州圣芭芭拉召开的国际密码大会上,并没有被安排发言的王小云教授拿着自己的研究成果找到会议主席,要求进行大会发言。就这样,王小云在国际会议上首次宣布了她及她的研究小组近年来的研究成果——对MD5的破译结果。”•“王小云的研究成果作为密码学领域的重大发现宣告了固若金汤的世界通行密码标准MD5大厦轰然倒塌,引发了密码学界的轩然大波。这次会议的总结报告这样写道:“我们该怎么办?MD5被重创了,它即将从应用中淘汰。””•2005年的新闻报道。46王小云破解了MD5?47Sh