如何分析木马?,一目了然,教你如何识别和防止木马,警惕!如何识别并防止木马,一个简单指南

2年前 (2022-10-02)阅读4回复2最佳爬楼位置
丸子
丸子
  • 管理员
  • 注册排名9
  • 经验值277290
  • 级别管理员
  • 主题55458
  • 回复0
楼主

  近年来,随着计算机网络发展,网络安全问题日益显得尤其重要。黑客的入侵对网络安全造成了极大威胁。入侵的主要手段之一,就是使用木马技术,其破坏力之大,是绝不容忽视的。黑客是如何制造这种具有破坏力的木马程序,以及如何防范木马程序的入侵?这是本文着重要讨论的问题。

  本文首先从木马程序的隐藏技术、自动加载技术和通讯技术3个方面进行详细的技术分析研究,总结出木马程序的一般设计原理;其次,给出了防范木马程序入侵的一般方法。1木马程序的隐藏技术为了避免被发现,木马程序的服务器端,多数都要进行隐藏处理。早期的木马程序所采用的隐藏技术是比较简单的,早期最简单的隐藏方法是在任务栏目里隐藏程序。

  到后来发展到当按下Ctrl Alt Delete的时候,也就看不到这个程序。现在的木马在进程隐藏方面,已做了大的改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程,或者挂接PSAPI,实现木马程序的隐藏,甚至在WindowsNT/2000下,都能达到良好的隐藏效果。

  1。1在任务栏中隐形这是最基本的隐藏要求,其实现技术同样也是非常的简单。在VB中,只要把form的Visible属性设为False,将ShowInTaskBar设为False,程序就不会出现在任务栏中了。1。2在win9x的任务管理器中隐形这只要把木马服务器端的程序注册为一个服务就可以了,这样,程序就会从任务列表中消失,因为系统不认为该程序是一个进程,当按下Ctrl Alt Delete的时候,也就看不到这个程序。

  但是,这种方法只适用于Windows9x的系统,对于WindowsNT,Windows2000等,通过服务管理器,还是可以发现在系统中注册过的服务。将程序设为/系统服务0就可以隐藏。在VB中如下的代码可以实现这一功能:1声明部分PublicDeclareFunctionRegister2ServiceProcessLib/kernel320(ByValProcessIDAsLong,ByValServiceFlagsAsLong)AsLongPublicDeclareFunctionGetCurrentProcessIdLib/kernel320Alias/GetCurrentProcessId0()AsLong2函数部分PrivateSubFormLoad()RegisterServiceProcessGetCurrentProcessId,1(注册系统服务)EndSubPrivateSubFormUnload()RegisterServiceProcessGetCurrentProcessId,0(取消系统服务)EndSub1。

  3在winNT/win2000中的任务管理器中隐形在winNT/win2000中实现进程隐藏的方法有两种:一是采用API的拦截技术;二是采用DLL技术。1API的拦截技术在WINDOWS系统下,可执行文件主要是Exe和Com文件,这两种文件在运行时都有一个共同点,即均会生成一个独立的进程。

  在Windows中有多种方法能够看到进程的存在:PSAPI(ProcessStatusAPI),PDH(PerformanceDataHelper)和ToolHelpAPI。如果能够采用API的拦截技术,通过建立一个后台的系统钩子,拦截PSAPI的EnumProcessModules等相关的函数来实现对进程和服务的遍历调用的控制,当检测到进程ID(PID)为木马程序的服务器端进程的时候直接跳过,那样就实现了进程的隐藏。

  如果这个进程是一个木马的服务器部分程序,则显然就是现在win9x/win2000的任务管理器中隐藏的程序。2采用DLL技术DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成的,它并不能独立运行,一般都是由进程加载并调用的。

  因为DLL文件不能独立运行,所以,在进程列表中并不会出现。如果是一个木马DLL,并且通过别的进程来运行它,那么无论是在入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL。运行DLL文件最简单的方法是利用Rundll32。exe进行,但是很容易被识破。

  比较高级的方法是使用木马DLL替换常用的DLL文件,通过函数转发器将正常的调用转发给原DLL,截获并处理特定的消息。DLL木马的最佳隐藏方法是动态嵌入技术,动态嵌入技术是指将自己的代码嵌入正在运行的进程中的技术。与一般的木马不同,该技术基本上摆脱了原有的木马模式监听端口,而是采用替代系统功能的方法,即改写驱动程序或动态链接库。

  这样做的结果是:由于没有增加新的文件,因此不能用扫描的方法查杀;不需要打开新的端口,所以不能用端口监视的方法查杀;没有新的进程,所以使用进程查看的方法发现不了它,也就不能用kill进程的方法终止其运行。在正常运行时木马几乎没有任何的症状,而一旦木马的控制端向被控端发出特定的信息后,隐藏的程序就立即开始运作。

  1。4利用端口实现隐形一般来说,一个端口都应对着一种特定的服务。如果某一主机的某一端口处于开放状态,那就意味着这一主机将对互联网上的用户提供该服务,并且该服务程序已在这台主机上运行。反过来,如果某一主机上并未启动某端口服务,而该端口却莫明其妙处于开放状态,那么这一计算机就很可能已被入侵者投放了/木马0。

  一台机器由65536个端口,通常情况下木马端口一般都在1000个以上,而且呈越来越大的趋势。这是因为,1000以下的端口是常用端口,占用这些端口可能会造成系统不正常,这样,木马就会很容易暴露;而由于端口扫描是需要时间的,即使是一个速度较快的端口扫描器,在远程也需要大约20min才能扫完所有的端口,因此,使用诸如54321的端口很难发现它。

  冰河及很多比较新的木马都具有端口修改功能,因而木马大多都能在任何端口出现。现在有很多流行的端口扫描程序,比如portscan程序就很不错,在网上可免费下载。2程序的自加载运行技术让程序自运行的方法比较多,使用者当然不会指望在每次启动后点击木马图标来运行服务端,其实这是启动木马程序的最原始的方法。

  木马要做的第二件重要的事情就是如何在每次用户启动时自动装载服务端。目前木马程序最常见的启动方法为:加载程序到启动组,写程序启动路径到注册表的HKEYLOCALMACHINESOFTWAREMicrosoftWindowsCurrentVersionsRun。

  当然还有很多其他的方法,比如可以修改Boot。ini,或者通过注册表里的输入法键值直接挂接启动,以及通过修改Explorer。exe启动参数等,真可谓防不胜防。

0
回帖

如何分析木马?,一目了然,教你如何识别和防止木马,警惕!如何识别并防止木马,一个简单指南 相关回复(2)

淡淡清香
淡淡清香
沙发
如何分析木马?关键在于技术细节与行为模式洞察。
传说2分钟前回复00
清风拂面
清风拂面
2楼
如何分析木马?一目了然,教你识别与防止此文清晰实用,提升网络安全防护水平!高效辨明潜在威胁极佳之选!
传说1分钟前回复00
取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息