Lab01-03.exe
문제 및 분석
첫 번째 질문
http://www.VirusTotal.com/에 업로드 Lab01-03.exe 파일을 분석하고 보고서를 볼. 파일 안티 바이러스 소프트웨어 DO의 기존 기능에 맞게?
사용 virustotal.com
보고서 뷰어는 위의 기존 안티 바이러스 소프트웨어 기능에 맞게
- 의심스러운 의심스러운 질문
- 트로이 목마 / Win32.Agent 자동으로 트로이 목마는 영향을받는 시스템, 안티 바이러스 소프트웨어를 종료하려고 시도하는 동안, 다른 악성 프로그램을 다운로드하기 위해 네트워크에 연결된 사용자의 지식없이이 트로이 목마.
- Packer.FSG.A 트로이 목마는 해커가 원격으로 감염된 컴퓨터 시스템을 제어하고 다양한 작업을 수행 할 수 있습니다. 이러한 작업은 일반적으로 스팸 메일을 많이하게 또는 분산 서비스 거부 공격을 수행하기 위해 컴퓨터를, 정보를 도용 수정 또는 삭제 파일, 키로거, 봇넷 및 점유하는 데 사용되는 사용자 권한이 적용됩니다.
- 클릭하면 트로이 목마 바이러스 트로이 목마 클리
두 번째 질문
이 파일의 흔적은이 포장 또는 혼란 있습니까? 어떻게 그렇게, 이러한 징후는 무엇인가?
아래와 같이 먼저 사용 PEiD 분석은, 상기 프로그램이 FSG 1.0-> dulek / XT 쉘 추가되었음을 알 수있다
그럼 우리가 사용하는 Dependency Walker
우리가이 코드는 두 가지 기능이 가져 오기 테이블 KERNEL32.DLL을 찾을 것 LoadLibraryA
, GetProcAddress
이 두 가지 기능은 다음과 같습니다 징후 티켓 , 티켓 포격은 반드시이 두 가지 기능에있는 프로그램이 실행 때문에 .
우리가 사용하는 다음 PEview
다음과 같이 쉘 여부를 재확인 :
그림은 응용 프로그램이 포장 될 수 있음을 나타내는 표시되지 않은 섹션을 찾을 수 있습니다, 원본 데이터의 크기를 비교하자의 가상 크기, 당신은 명확하게 가상 크기가 데이터의 원래 크기보다 항상 큰 볼 수 있습니다, 그것은 할 수 있습니다 실제 프로그램은 쉘 무게
섹션 | 가상 크기 | 원본 데이터 크기 |
---|---|---|
처음 | 00003000 | 00004000 |
초 | 00001000 | 0000028C |
세 번째 | 00001000 | 00000200 |
下面准备尝试脱壳,首先由于不是UPX的壳所以不能使用UPX.exe脱掉壳. 这里我准备采用单步追踪法使用OllyDump进行脱壳
下图中是我发现在0050E1的位置有一个长跳JE 00401090
,这里可能是被加壳程序的入口
跳到00401090
后,下面应该是源程序,但由于没有找到如何手工脱壳的方法,所以这个方法搁浅了.
但是我在搜索资料的时候发现了一个宝贝,就是万能脱壳神器.我立马下载使用了一番,效果如下:
很高兴,这个壳被脱掉了,哈哈哈哈
第三问
有没有任何导入函数能够暗示这个程序的功能?如果有,是哪些导入函数,它们会告诉你什么?
现在我们继续对脱壳后的程序分析,使用Dependency Walker
对该程序进行分析:
这几个模块都是不怎么常见的模块.
MSVCRT.DLL (名称:Microsoft C Runtime Library)提供了printf,malloc,strcpy等C语言库函数,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能
__getmainargs 这个如果你有C语言的编程经验就好理解了,这是从stdin获取程序参数的函数,说明这个程序会从用户输入获得运行所必须的参数
__getmainargs 这个如果你有C语言的编程经验就好理解了,这是从stdin获取程序参数的函数,说明这个程序会从用户输入获得运行所必须的参数
_controlfp 这个函数从MSDN上的解释来说,是Get and set the floating-point control word.,翻译过来就是获取并设置浮点控制字,这个函数在MSDN中的定义是这样unsigned int _controlfp( unsigned int new , unsigned int mask );,对这个函数具体做什么感兴趣的同学可以点这里 -> _controlfp
_except_handler3 同样引用MSDN的说法,内部 CRT 函数。 由框架用于查找相应的异常处理程序,以处理当前异常,说明这个程序有一个自己的错误处理机制
__set_app_type 设置当前应用类型。,有这么几种方式,_UNKNOWN_APP 未知应用程序类型;_CONSOLE_APP 控台 (命令行) 应用程序;_GUI_APP (GUI) Windows 应用程序。
__p_fmode 指向_fmode 全局变量的指针,它为文件 I/O 操作指定默认 文件提交模式。,这个函数只供内部调用。
__p_commande 这个函数MSDN里面没用文档化,根据上面那个的解释推理,这是指向commande全局变量的指针,也是只供内部调用(因为前面两个下划线)
_exit 这个就好理解了,是程序的退出函数的
_XcpFliter 这也是MSDN里面未文档化的函数,暂时用途不明
__p_initenv 这也是MSDN未文档化的函数,不过我们知道initenv函数是初始化环境变量的函数,那同理可得__p_initenv是指向initenv变量的指针,也是只供内部调用
_initterm 调用所有的静态构造的模块中是通过函数指针阵列枚举,依次调用每一个指针的一个简单的事情,按照文档的解释,这个编译器会帮你完成
__setusermatherr 指定用户提供的事务来处理算术错误,而不是_matherr事务。
_adjust_fdiv 这个也是未文档化的函数
OLE32.DLL 文件是链接和嵌入在应用程序中的对象的过程文件。它是用于编写和整合来自不同应用程序的数据在Windows作业系统的骨干部分。
这里我没有能发现什么异常,最大的疑点就是这里的DLL不是常见的DLL
第四问
哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
下面使用Strings.exe对脱完壳的程序进行分析:
由上图可得,出现可疑的URL: www.malwareanalysisbook.com/ad.html 还有IE8.0 推测应该是使用IE打开该网站
关键提示和要求:
1、使用virustotal.com查看程序,分析报告;
2、用PEview分析是否加壳(注意该程序的节的名称);导入表叫什么名字?
3、使用PEiD做加壳分析,确认由什么方式加壳的。
분석 4하여 실행 종속 워커 임포트 기능.
인용문
- 마이클 시코 르 스키, 앤드류 호니으로 "실용 악성 코드 분석」· 2012
- 온라인 전임자 인해 너무 너무 작은, 여기에 열거 할에 액세스 작품의 일부.