(1)若是在工做中怀疑一台主机上有恶意代码,但只是猜测,因此想监控下系统一每天的到底在干些什么。请设计下你想监控的操做有哪些,用什么方法来监控。html
我想了解的大概有linux
监控方法:git
(2)若是已经肯定是某个程序或进程有问题,你有什么工具能够进一步获得它的哪些信息。web
返回目录chrome
第一步:在windows命令行下输入命令:schtasks /create /TN 20155312netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
shell
【注】:经过阅读卢肖明学长的博客,我发现其实不用像后续操做这样复杂,其实只须要「编辑netstatlog.bat」->执行指令schtasks /create /TN 20155312netstat /sc MINUTE /MO 1 /TR "c:\netstatlog.bat"
两步便可建立一个每隔两分钟记录计算机联网状况的任务。但这里仍是详细的记录了我使用学姐的方法探索的过程,若是你们想省事,不用像我这么麻烦~小程序
c:\netstatlog.txt相似于Linux中的重定向,输出将存放在C盘下的netstatlog.txt文件中(自动生成)。windows
建立成功结果以下:浏览器
此命令完成后,每1分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里,为了显示日期和时间,咱们经过bat批处理文件来实现。安全
第二步:在C盘要目录下建一个文件c:\netstatlog.bat
type nul>netstatlog.bat
,结果提示拒绝访问。sudo
结果仍是提示拒绝访问。date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
第三步:编辑任务操做:
1.进入任务计划程序:“win+c”选择“设置”->进入“控制面板”->选择“管理工具”->进入“任务计划程序”
2.找到咱们的任务20155312netstat,双击点开
3.点击下方“操做”->右侧所选项栏中“属性”->属性页面上方的“操做”
4.双击任务进入“编辑操做”界面
5.在程序脚本处点击“浏览”->选择刚才建立的“netstat.bat”,“参数可选项”为空,
6.点击“肯定”完成修改,详细信息处以下图:
7.查看netstat.txt文件,已经有了时间的记录,至此完成了任务的建立:
第四步:等待一直两天;
【注】:这里须要一直保持开机联网状态,才能持续监控哦~天真的我甚至还关了机在那傻等……
此外,若是发现netstatlog.txt没有每分钟更新一次,多是由于设置时默认选择了“只有计算机使用交流电源时才启用此任务”,因此一旦咱们不给电脑充电,任务就无法运行。解决方法就是在netstat任务属性的设置中取消选中该选项,以下图所示,而后就能够发现每隔一分钟命令行会闪现一下,其中包含netstatlog.bat中的三行指令,netstatlog.txt本身就随之更新了。
第五步:用excel分析数据。
1.导入文本数据:新建excel文件->选择上方“数据”->选择“获取外部数据”->选择“自文本”
2.选择记录链接状况的文本netstatlog.txt,点击“导入”
3.进入文件导入向导第一步,选中“分隔符号”,点击“下一步”
4.进入文件导入向导第二步,选中所有分隔符号,点击“下一步”
5.进入文件导入向导第三步,列数据格式选择常规,点击“完成”。
6.鼠标选中左上角第一个单元格,而后点击“肯定”
待分析数据以下:
第六步:对数据进行统计学分析:
1.首先查看全部联网程序的联网次数,具体excel操做以下:
①首先选中咱们要分析的列:
②其次点击上方“插入”->“数据透视表”->“数据透视图”
③默认选择在一个新工做表中生成
④在右侧“选择要添加到报表的字段”中点击对应字段右侧的小箭头->取消选择那些没有意义的字段,而后点击“肯定”
②将该字段拖动到下方的“轴字段”和“数值”两个区域中
⑥而后就能够看到咱们的统计图进行分析了:
2.由上图所示,联网最多的是360浏览器对应的程序“360chrome.exe”,排名第二的是“wpscloud.exe”,它是wps软件云端的一个服务的进程。这里咱们还能够找到微信、虚拟机、后门程序zjy_backdoor.exe这些连网的进程。
没发现什么其余可疑的程序,既然这样咱们就分析一下wpscloud.exe连了哪里,大约干了什么吧。
经过查看表格,咱们发现它链接了外部网络119.75.216.20:443,猜想他就是不断的检测系统文件有没有更新,而后往云端传送吧。
第一步:肯定监控木匾。我感兴趣的是进程建立ProcessCreate、进程建立时间FileCreatTime、网络链接NetworkConnect、远程线程建立CreateRemoteThread。
第二步:写配置文件。
1.了解一下配置文件应该怎么写:
①进程建立ProcessCreate的过滤事件选项有:
UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
↑ 这里我用到了Image、SourceIp、SourcePort。
②进程建立时间FileCreatTime的过滤事件选项有:
UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
↑ 这里我用到了Image。
③网络链接NetworkConnect的过滤事件选项有:
UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
↑ 这里我用到了Image、SourceIp、SourcePort。
④远程线程建立CreateRemoteThread的过滤事件选项有:
UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
↑ 这里我用到了TargetImage、SourceImage。
其余时间过滤器、过滤事件的选项、onmatch选项可取值、condition可设置的值、配置文件样例,能够参考使用轻量级工具Sysmon监视你的系统
2.写与本身想要监控的事件想对应的配置文件。个人建立配置文件20155312Sysmoncfig.txt内容以下:(配置文件是xml文件,为了简单编辑就直接命令为.txt,每次用写字本打开。)
<Sysmon schemaversion="3.10"> <!-- Capture all hashes --> <HashAlgorithms>*</HashAlgorithms> <EventFiltering> <!-- Log all drivers except if the signature --> <!-- contains Microsoft or Windows --> <ProcessCreate onmatch="exclude"> <Image condition="end with">chrome.exe</Image> </ProcessCreate> <FileCreateTime onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </FileCreateTime> <NetworkConnect onmatch="exclude"> <Image condition="end with">chrome.exe</Image> <SourcePort condition="is">137</SourcePort> <SourceIp condition="is">127.0.0.1</SourceIp> </NetworkConnect> <NetworkConnect onmatch="include"> <DestinationPort condition="is">80</DestinationPort> <DestinationPort condition="is">443</DestinationPort> </NetworkConnect> <CreateRemoteThread onmatch="include"> <TargetImage condition="end with">explorer.exe</TargetImage> <TargetImage condition="end with">svchost.exe</TargetImage> <TargetImage condition="end with">winlogon.exe</TargetImage> <SourceImage condition="end with">powershell.exe</SourceImage> </CreateRemoteThread> </EventFiltering> </Sysmon>
解释:
3.把配置文件放在C盘下。
第三步: 启动sysmon。
1.下载老师提供的SysinternalsSuite201608压缩包,解压。
2.在命令提示符(管理员)中进入到该目录下。win8中用管理员身份运行cmd方法:使用“win+x”调出win8开始菜单->选择“命令提示符(管理员)”
2.安装sysmon:执行命令sysmon.exe -i C:\20155312Sysmoncfig.txt
,这里注意要把配置文件名换成本身的。
3.这里弹出的窗口点击agree:
4.成功安装的结果以下:
【注】:若是没有以管理员身份运行安装指令,安装后会提示:“You need to launch Sysmon as an Administrator.”以下图。且在第四步中将没法找到Windows下的Sysmon。
5.若是修改了配置文件,要运行指令:sysmon.exe -c C:\20155312Sysmoncfig.txt
第四步:在事件查看器里查看日志
1.桌面“这台电脑”图标,右键菜单中,点击打开“管理”。
2.点击左侧“系统工具”->“事件查看器”
3.点击“事件查看器”右侧小箭头,选择日志的位置:应用程序和服务日志/Microsoft/Windows/Sysmon/Operational。
4.利用Sysmon具体分析日志的例子我选择了本身实验二中生成的后门zjy_backdoor.exe进行分析。
第一步:启动回连、安装到目标主机。
14:21:28时可找到运行后门文件zjy_backdoor.exe相对应的日志以下:
与此同时,我还发现了一个名为360toasts.exe的程序,由于我运行后门时有被360拦截,因此它就是360检测到危险时运行的程序。
后来我添加后门到了信任文件,因此360卫士后续还运行了其余一些可执行文件,例如:360RealPro.exe、360sctblist.exe、360sclog.exe、360tray.exe、。
第二步:Linux执行了record_mic截获音频、webcam_snap截获照片、keyscan_start记录击键记录、getuid获取当前用户等操做。
15:16前我完成了record_mic截获音频、webcam_snap截获照片、keyscan_start记录击键记录、getuid获取当前用户等操做,相对应的观察日志文件发现有这样几条记录:
15:15:16时启动了conhost.exe的事件:
15:16:15时有一个启动了SearchFilterHost.exe的事件:
因此没分析出个因此然,这个日志看不出来是否获取了摄像头什么的。
第三步:既然上述行为暂时分析不出什么,咱们试试下面这些操做:dir、shell、getuid、getpid、ps等
①运行dir后,首先咱们发现了一个很是重要的进程svchost.exe:
②运行shell后,咱们能够观察到一个和咱们后门所在文件夹有关的C:\Windows\SysWOW64\cmd.exe程序以下图所示。
其余几个命令分析方法相似,通常Kali中执行个指令,Windows日志中就会记录这个C:\Windows\SysWOW64\cmd.exe。
分析该软件在(1)启动回连,(2)安装到目标机(3)及其余任意操做时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(1)读取、添加、删除了哪些注册表项
(2)读取、添加、删除了哪些文件
(3)链接了哪些外部IP,传输了什么数据(抓包分析)
第一步:下载安装Systracer。
1.首先下载完成后进行安装,步骤为:agree->选第二个(全面点总不会有错吧)
->设置监听端口号(我设成了后门生成时利用的端口)
->安装完成
2.在打开后门前先快照一下,点击“take snapshot”,如图,按照如下步骤进行:
完成后显示Snapshop #1
3.Kali打开msfconsole,完成相关设置后开始监听,Windows运行后门后,拍摄快照:
完成后显示Snapshop #2
4.进行分析:
①点击上方“Applications”->左侧“Running Processes”->找到后门进程“zjy_backdoor.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号:
②在快照界面“Snapshots”右下角点击“Compare”,比对一下回连先后计算机发生的变化:
全部蓝色标注的地方,就是先后发生变化的地方。例如,我发现后门启动后,对个人"Local Settings"->"Software"中的文件进行了修改:
此外还对注册表中hkey_local_machine根键的System子键进行了修改,修改内容以下:
此外,一些Systracer未受权的地方咱们是无法查看的。
5.接下来咱们访问让攻击机获取目标主机音频、摄像头、击键记录,而后生成快照,看看它又作了什么:
它改了HKEY_CURRENT_USER->software->SogouInput中用户搜狗输入的一部份内容,我以为好像和击键记录有关系,由于他确定是获取了我输入的权限。而HKEY_CURRENT_USER的做用以下:
对比结果以下:
此外,还有这些修改咱们是没有办法查看的,虽然不知道具体改了什么,但咱们仍是能够了解攻击机获取主机权限后修改了什么:
6.此外咱们能够经过查看后门软件的“opened handles”(打开的句柄)来对比他们都作了什么:
回连成功时:
获取权限进行相关操做后,跟只是回连相比,多了不少内容:
第二步:用wireshark抓包分析链接了哪些外部IP,传输了什么数据
1.在回连以前,开始捕获;
2.回连完成后结束捕获,并把过滤规则设置为ip.addr == 192.168.217.132
,这里我只想查看和虚拟机IP有关的数据包,因此把没用的包过滤掉:
3.接下来能够看看它链接了哪些外部IP:
4.再往下看看,发现本身的Windows主机IP:
5.看看都传了啥数据:
①第一条是Windows向Kali发出TCP同步请求包SYN:
②第二条是Kali给Windows的复位包RST和确认包ACK:
可是RST标示复位、用来异常的关闭链接。这样看来是Kali如今还不是和主机链接的时机哈哈哈哈,再往下看看。
③果真!找到了后面他们两个握手的包:
这是SYN同步请求包:
这是SYN+ACK:
后面Kali还给Windows传了一大堆ACK包,这里省略,有时还伴有PSH+ACK包。(PSH就表示有 DATA数据传输)
6.Kali获取下摄像头、录个音、获取击键记录并查看,再看看wireshark:
这回PSH+ACK的包好像多了些,具体的数值看不出个因此然,但一猜确定就是那些击键记录啥的呗。
经过本次实验,我学会了如何让计算机周期性执行一个任务,若是把命令行下的结果记录到文件中、如何利用.bat文件显示时间、如何利用excel分析数据、如何利用Sysmon监控本身感兴趣的事件、如何写配置文件、如何分析日志中的大量信息、如何对恶意代码进行进一步分析。
经过本身动手实践,实现了从攻击者身份到检测、分析者身份的转变,更全面的理解了前两次实验中生成的后门程序到底在作什么,对恶意代码有了更深刻的理解。