在Linux中,Shell是指操作系统的命令行运行环境。同理WebShell是指通过Web方式提供的Shell环境。有些管理后台支持不登录服务器就使用Shell环境,它利用的是网页编程语言所支持的一些函数,比如php的system()、exec(),这类函数有执行系统命令的能力。通过程序包装可以实现在网页上进行仿真Shell环境的效果。
WebShell为网站管理员提供了方便,同时也存在巨大的安全隐患。通常一个网页存在漏洞,被黑客拿到权限后会上传一些木马,通过木马就可以实现一个WebShell。黑客通过WebShell即可不登录服务器而对服务器下发命令。
通常Web应用的执行权限越大,黑客拿到网页的WebShell后权限就越大。如果web服务器是使用root执行的,WebShell将拥有服务器的最高权限。并且网页上挂了WebShell,防火墙和管理员根本就无法感知。因为它是通过正常的端口出去的,也没有操作记录。在服务器的shell环境中通过history根本查不到操作记录,隐蔽性非常强。
Web应用最怕的就是有上传漏洞,有些web服务器存在权限配置错误,或者使用者根本不懂apache、tomcat如何配置,有可能打开了文件列表功能,黑客可以获取到目录结构。或者tomcat使用了默认的配置,把一些带管理功能的页面暴露在黑客面前。如果一个目录被上传了木马,同时上传的木马还能被访问,此时就有可能为对方提供WebShell环境。
简述黑客攻击路径:
木马上传成功,并躲过服务器上的杀毒软件查杀
木马的URL路径
木马的URL可访问,并且可执行
我们经常听到的一句话木马,基本上都是提供WebShell环境。有了WebShell,黑客就可以使用黑客工具连接WebShell,通过WebShell发送ls、pwd、cat命令,基本上可以获取整个系统的目录、文件,并具有上传、下载功能。黑客工具只是将命令执行的结果图形化了,而WebShell负责执行命令,输入结果。
了解黑客的攻击路径才能更好地进行防范,如是网页程序带有上传附件的功能,一定要对上传的文件类型进行约束。如果上传的是一句话木马,比如hack.php,上传至web目录下,如果url可访问,则木马就有可能被黑客执行。
参考: