高手来解释一下图片木马是怎么工作的?

lv_kevin 2007-07-08 03:22:17
公司网站有上传文件接口,只对类型进行限制,可以传jpg/gif等图片.
没有对内容进行审查,总是被传入一大堆的各式各样的jpg/gif木马,
刚才没事干下下来两个看看,写的还真详细,什么功能都有.

我就很纳闷,这些人做这些功能如此复杂的木马传上来,怎么工作那?
jpg文件又不能执行,而且服务器整个图片目录都没有执行权限.
我想了半天只想出两个途径:
1就是复制到别的地方并改名,改成xx.asp在执行.
2就是在别的目录下的asp文件,里面include

可是我其它地方的程序基本上没有用到过fso,也大概没什么漏洞供他改名用,而第2种情况更不可能出现,在其它目录下怎么会出现asp文件那?除非他们有我ftp密码.

还好公司网站至今还是没有被黑过,不过每天传上来几十上百个木马的确有点...
高人给解释解释除了上面两种途径还有什么办法可以实用图片木马.
...全文
8959 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
loadown 2010-11-17
  • 打赏
  • 举报
回复
要看这些图片里的代码是服务端执行还是客户端执行的,客户端执行的一般都是用来钓鱼的,主要是利用IE的图片浏览漏洞,以前有个漏洞,就是图片内容如果是JS脚本或HTML就会被IE给执行了。
StillMiss 2010-08-08
  • 打赏
  • 举报
回复
关注、
qvbfndcwy 2010-06-28
  • 打赏
  • 举报
回复
给asp文件重命名为1.asa;1.jpg,然后在该asp文件最前面加上gif89a
似乎就可以。
cuixiping 2009-02-05
  • 打赏
  • 举报
回复
我在前公司写过一个ASP的上传时检测木马、对现有目录查杀图片目录的程序,支持GIF、BMP、PNG、JPEG。可惜离开公司时没有copy出来。
原理就是根据这些图片格式的二进制编码特征进行判断,与编码规范不符的就是可疑的。
wulang1988 2008-12-07
  • 打赏
  • 举报
回复
朋友这个问题我遇到过,我上个月帮朋友做的一个网站被另外一个朋友上传了一个马,后来他告诉了我,现在问题已经解决了,现在总结一下我的几点经验,是Asp.net的;网站地址是www.6wkj.cn,卖笔记本的网站.

下面是我写的代码,加了几次图片上传验证方式(不过是C#版):

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.IO;
using System.Text;

/// <summary>
/// UpLoadFile 的摘要说明
/// </summary>
public class UpLoadFile:System.Web.UI.Page
{
public UpLoadFile()
{
//
// TODO: 在此处添加构造函数逻辑
//
}


/// <summary>
/// 文件上传
/// </summary>
/// <param name="UpFile">上传控件</param>
/// <param name="SourceImg">源图片名子</param>
/// <param name="SourcePage">那个页面的操作</param>
/// <returns>返回上传的文件名,可以为空</returns>
public static string UpLoadFileImg(HttpPostedFile UpFile, string SourceImg, System.Web.UI.Page SourcePage)
{
//锁定页面
SourcePage.Application.Lock();

string Img = UpFile.FileName.Trim();//获取文件名
string WebPath = SourcePage.Server.MapPath("UpLoadFile/UsersPhoto/");//上传到指定路径
string Exten = Path.GetExtension(UpFile.FileName).ToUpper();//获取文件的扩展名
int FileLength = UpFile.ContentLength;//文件大小
string FileType = UpFile.ContentType.ToUpper();//获取文件的类型

if (Img != "")
{
//上传文件第一级文件扩展名和类型验证
if (Exten != ".GIF" && Exten != ".JPG" && FileType != "" && FileType != "")
{
Img = "No";
WebScript.JavaScript.OnlyAlertMsg(SourcePage, "上传文件格式只能是(.jpg||.gif)格式!");
}
else if (FileLength / 1024 / 1024 > 1) //上传文件不能大于1M
{
Img = "No";
WebScript.JavaScript.OnlyAlertMsg(SourcePage, "上传图片不能超过1M");
}
else
{
Img = DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("-", "") + Exten;//以当前时间来命名

//上传文件
UpFile.SaveAs(WebPath + Img);

//最后一部高级验证,图片上传后的操作,判断是否真的是图片
StreamReader sr = new StreamReader(WebPath + Img, Encoding.Default);
string strContent = sr.ReadToEnd();
sr.Close();
string str = "request|script|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language=";
foreach (string s in str.Split('|'))
if (strContent.IndexOf(s) != -1)
{
File.Delete(WebPath + Img);
Img = "No";
WebScript.JavaScript.OnlyAlertMsg(SourcePage, "这张图片格式非法,请换一张,谢谢!");
break;
}

//删除源文件
if (Img != "No" && File.Exists(WebPath + SourceImg))
File.Delete(WebPath + SourceImg);//如果文件已经存在就删除
}
}
else
Img = SourceImg;

//取消锁定页面
SourcePage.Application.UnLock();

return Img;
}
}

lv_kevin 2007-07-09
  • 打赏
  • 举报
回复
继续讨论..
ice241018 2007-07-09
  • 打赏
  • 举报
回复
关注
lv_kevin 2007-07-09
  • 打赏
  • 举报
回复
学习是肯定的,现在没天都在研究这些jjww的东西,
以前光写程序也不用关心这些事情,现在管服务器的人走了,老板又不想招人,全成我的事情了,
从程序员兼成网管,不知道是进步还是退步.又要改程序,又要盯着服务器,麻烦阿.

对了,除了FSO还有什么方法改文件名?
joejoe1991 2007-07-09
  • 打赏
  • 举报
回复
楼主介不介意把你的站发出来参观一下下。。。。。
擒兽 2007-07-08
  • 打赏
  • 举报
回复
一般网上租用的空间被黑的可能性都很低,除非网站漏洞百出,让人拿走数据罢了。

资源丰富的自主服务器是首选,就算某些服务没有,有些大胆的会临时借用服务器做服务,呵呵。

完全取决于管理员勤奋不勤奋,能做到管理员这份上了,再花点时间研究技术都不难。
擒兽 2007-07-08
  • 打赏
  • 举报
回复
其实改名不一定要通过FSO,呵呵。

我所知道的就还有一种方式,一般挂马没有多大技术含量。这种木马一般的杀毒软件和安全设置都能对付。

高手一般不会用这种方式,顶多临时使用了会帮你删除掉,不仔细查是不会让你发现的。
lv_kevin 2007-07-08
  • 打赏
  • 举报
回复
wansai00(天紫) ( ) 信誉:92 Blog 加为好友 2007-7-8 19:10:09 得分: 0




上传的时候 最好传到另外一个静态站点的目录里 这样就基本没有什么威胁了

比如 你的站点是www.***.com 把上传的文件放到images.***.com这个静态站里面

这样他上传了文件不能被执行 他也不知道静态站的目录位置 也就无法再复制利用了



我现在服务器的上传目录已经没有执行权限了(这个IIS可以改的说),和你说的办法差不多了
而且目录\文件名都是系统生成,不存在他选择上传到什么地方的可能.
安全基本上是没问题,我只是好奇有没有其它的类似IIS漏洞可以使用到这些木马.
现在木马都在那里堆着,每天都有几十个,多了上百个,删是没法删,按天建目录每天都要传几千上万张图片,每天从中间挑出木马来删的话我就不用干别的了
lv_kevin 2007-07-08
  • 打赏
  • 举报
回复

图片木马是将自己伪装成为图片的格式一旦被浏览就会下载到机器当中,这个时候它还是安全的(机器不会自己“运行”一个图片),但同一个网页上还有一小段程序欺骗IE将木马还原,同时恶毒地将木马程序添加到启动项,直到这一刻都没有任何程序被“运行”,但你下一次启动机器的时候木马便会完成种植过程。

你这样说的话,还是需要有"网页中的一段程序欺骗IE将木马还原",可是,网页是我服务器上的,他又如何加入这一段程序呢?
说来说去,还是离不了修改页面,脱离了页面,这东西就是废物,可以这样定论嘛?
wansai00 2007-07-08
  • 打赏
  • 举报
回复

上传的时候 最好传到另外一个静态站点的目录里 这样就基本没有什么威胁了

比如 你的站点是www.***.com 把上传的文件放到images.***.com这个静态站里面

这样他上传了文件不能被执行 他也不知道静态站的目录位置 也就无法再复制利用了

我就经常用这个办法 可以借楼主参考下
zmjsx 2007-07-08
  • 打赏
  • 举报
回复
自学了一个晚上的木马原理和制作,发现这个小东西越来越对我的胃口,很小的一个程序却能让人琢磨很久。

木马归根结底就是一个EXE可执行文件,根据目的不同可以达到各种效果,比如偷QQ,删除文件,破坏系统等等,功能强大哈!

偷QQ的小木马制作非常简单,所以就从QQ木马说起。

会编程的人自己可以编写个小程序,原理是对方执行这个木马程序的时候,木马记录下你QQ的号码和密码然后利用你的网络发信,把信息传到一个指定的邮箱,或者嫌麻烦的直接下个《啊拉QQ木马大盗》就可以。

程序制作好了就可以把这个木马发给对方了吗?当然不,几乎没有人会傻到不安防火墙的打开一个可执行文件,下面才是开始。

文件捆绑。把木马程序和另外一个文件捆绑,比如和一个图片文件用常见的文件捆绑机合并成一个文件,然后把新生成文件的图表改为jpg图片格式的,文件的名字改为XXXXX.JPG.EXE(XXXXX即随便起),因为WINDOWS XP的初始设置为不显示已知文件类型的扩展名,这样,别人看到的这个文件就是一个完完全全的图片文件了。

哈哈,第一步完成,木马已经有了迷惑人心的能力了,下面,该让它骗过防火墙和杀毒软件了。

木马加壳。其实这一步是最难,也是最有挑战性的一步。木马加壳就是赋予一个程序防护外壳,使没有相应许可证的程序无法对它进行修改或者调用等。加壳的原理也是多种多样的,我们都知道杀毒软件的工作原理是采集多种木马和病毒的源文件,将其中一段标志性代码提取出来,这样在查毒的时候只要搜索文件中是否有相应的代码就知道这个文件是否带毒了。

根据杀毒软件的作用原理,可以在木马程序中加入一小段程序,使杀毒软件阅读到木马命令之前直接跳过,或者是将木马程序改为十六位进制的编码。这样,木马程序只有在执行的时候,才会将编码还原后执行它的秘密使命。

常用的UPX加壳方式,我们可以下载Obsidium程序进行。



这样,我们可以通过QQ或者邮箱发给对方一个文件,对方看见的可能是一个图片,一个EXCEL表格,一条新闻甚至一个笑话,殊不知木马已经绕过他的杀毒软件偷偷的在后台运行了,嘿嘿,这时候只要对方一上QQ,过一会你就守着邮箱等着接管对方的QQ号吧。



千日做贼,却没有千日防贼的,所以做小偷也要防着被人偷,那我们就可以采取下面的措施。

根据电脑配置,安装两个或多个杀毒软件,比如卡巴斯基(我的最爱,而且免费还自动更新)、诺顿(杀内存中的病毒效果超好)、瑞星(功能强大,就是贵啊!)、Anti-Virus(杀毒效果不错),这样,病毒就是逃过一个杀毒软件最终也逃不掉。

不轻易的打开未知的EXE文件,当然,文件查看方式要设置成可以看到文件的扩展名,如果一个文件的扩展名为XXXXX.jpg.exe或者XXXXX.doc.exe,想都不用想就是病毒。

如果你打开了一个不敢保证安全的文件之后,过了一会QQ忽然莫名其妙的掉线,而网页或者网游都正常,这时候马上打开杀毒软件和木马杀客后,上线去改QQ密码。

密码的输入也是有学问的,网游老鸟自然知道,就是删减乱序输入法,输入密码的几个字符之后加入几个错误的字符,然后把错误的字符删除再继续把密码输完,或者利用CTRL+C/V/X命令,把开始刻意输入的顺序错乱的密码改为正确的密码,因为木马是无法记录下删除命令和选中命令的。



这是网上的东西,摘自http://tianjiageng88.bokee.com/
zmjsx 2007-07-08
  • 打赏
  • 举报
回复
图片木马是将自己伪装成为图片的格式一旦被浏览就会下载到机器当中,这个时候它还是安全的(机器不会自己“运行”一个图片),但同一个网页上还有一小段程序欺骗IE将木马还原,同时恶毒地将木马程序添加到启动项,直到这一刻都没有任何程序被“运行”,但你下一次启动机器的时候木马便会完成种植过程。

这个应该就是你想要的答案了吧.
lv_kevin 2007-07-08
  • 打赏
  • 举报
回复
zmjsx(风向) ( ) 信誉:100 Blog 加为好友 2007-07-08 15:59:33 得分: 0


你应该查下这些"图"有没有挂接地址,如果有,应该注意一下了,他们的目标也许不是你们,而是"借刀杀人".


有的有,没有执行权限如何运行呢?
被用户下载然后中毒?
还是被用户下载回去再传到别的网站?
有jpg格式文件可以直接运行的可能嘛?
lv_kevin 2007-07-08
  • 打赏
  • 举报
回复
这样的工具不仅仅是单独使用的,往往都是通过windows操作系统和iis的漏洞来联合攻击的;

具体举个例子说说吧.很关心的说.
lv_kevin 2007-07-08
  • 打赏
  • 举报
回复
他们可以先上传jpg格式的木马到你的服务器上 再通过后台的一些功能把这个jpg格式的还原成asp的 好多后台有备份数据库 这个功能就可以使jpg木马还原成asp的 还有 如果你是2003的系统 只要你的文件夹名是 XXX.asp格式的 那无论这个文件夹下的文件是什么格式的 都会被asp.dll解析。
-------------------------------------------------------------------------
前面说过了,改名的机会基本没有,网站后台的是我写的没有一行开源代码,除了上传没有用到过fso,所以改名基本上没可能.数据库有专门的服务器群组,sqlserver的,不需要后台备份.
文件夹名称和文件名称一样都是系统生成的,没有.asp格式的.
zmjsx 2007-07-08
  • 打赏
  • 举报
回复
你应该查下这些"图"有没有挂接地址,如果有,应该注意一下了,他们的目标也许不是你们,而是"借刀杀人".
加载更多回复(3)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧