Linux与windows的应急响应重点检查项
作为防御方,知道对方在本地驻扎的木马,病毒,后门等程序和产生恶意会话、恶意授权的程序,Linux与windows的应急响应重点检查就显得尤为重要。
Linux应急响应重点检查项
用户账号审计: cat /etc/passwd & cat /etc/shadow
在线账户审计: w
登录状况审计: last
空口令账户审计: awk -F: \'($2 == “”) { print $1 }\’ /etc/shadow
主机配置检查中不允许存在空口令账户,虽然空口令账户暂时没发现利用的方式,但是不符合等级保护的基本原则。
特权账户审计: awk -F: \'($3 ==0) { print $1 }\’ /etc/passwd
Linux中的特权账号一般只有root,如果出现了除root以外的账号则有一定风险,怀疑可能是黑客创建的后门账号。
进程审计:ps -ef(显示全格式所有进程) 或 ps auxfww(显示所有进程及所有命令行
Linux进程审计是应急中重要关注点之一,大多数安全事件都会发现系统运行着恶意进程,跟踪和分析进程是应急响应必备技能之一。
端口和进程关联审计:lsof -p PID 或lsof -i PORT
Linux系统中恶意进程往往都会进行socket绑定,在本地打开一个端口对外通信,通常怀疑某些端口运行恶意进程的时候都会做关联分析
网络连接审计:netstat -ano | grep ESTABLISHED(查看已经建立的网络连接)或netstat -antlp | grep LISTEN(查看处于监听状态的端口)
网络连接也是应急过程中重点关注点之一,其中“Foreign Address”中检查有无恶意IP(配合第三方IP信誉库),连接状态以及是否存在异常 socket。
计划任务审计:crontab -l
Linux计划任务中一般是通过cron程序去执行,黑客修改cron的目的一般是检查是否权限维持,以及操控DDoS肉鸡或者周期性对系统执行恶意操 作等目的。
系统运行状态审计:top
木马病毒等程序会对系统cpu、内存、磁盘IO、网络IO等造成一定程度影响。
arp路由表审计:arp –a
arp是地址解析协议,Linux系统的arp路由表里记录的是mac地址与IP的映射,攻击者往往通过修改arp映射来做中间人攻击。
Linux日志审计:
11.Linux日志审计
1) /var/log/messages或/var/log/syslog 系统活动日志
搜索squid程序活动日志。
2)/var/log/auth.log 涉及系统授权身份验证日志
搜索失败的的身份验证并结合IP来看可发现穷举攻击。
搜索”incomplete message”关键字可发现openSSH用户名枚举攻击。
3)/var/log/secure 主要用于跟踪系统授权情况,存储所有与安全相关的消息并跟踪系统安全服务守护进程记录的sudo信息、SSH登录和其他错误信息。
查看pam_unix(pam是Linux中的动态加载验证模块) session句柄打开的记录。
4)/var/log/boot.log 系统启动过程中引导信息存储日志
一般的安全事件很少触发到此日志中,除少数病毒木马等程序会对MBR做篡改。
5)/var/log/dmesg 包含内核缓冲区消息记录硬件设备或驱动程序相关信息
此类日志分析较难可忽略。
6)/etc/crontab 包含计划任务等周期性任务信息
此类日志多容易被黑客篡改,用于执行相关计划任务脚本, 比如黑客会每分钟执行一次服务器上的脚本来检查是否权限维持。
应急响应重点检查项
相关名词解释:
1.windows域(Domain):
域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当
一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共
享与管理,以及相互通信和数据传输。
通过命令运行
2.域控制器(Domain controller)
在“域”模式下,至少有一台服务器负责每一台联入网络的电脑和用户的验证工作,相当于一个单位的门卫一样,作为域控。域控制器中包含了由这
个域的账户、密码、属于这个域的计算机等信息构成的数据库。当电脑联入网络时,域控制器首先要鉴别这台电脑是否是属于这个域的,用户使用的登录账
号是否存在、密码是否正确。如果以上信息有一样不正确,那么域控制器就会拒绝这个用户从这台电脑登录。不能登录,用户就不能访问服务器上有权限保
护的资源,他只能以对等网用户的方式访问Windows共享出来的资源,这样就在一定程度上保护了网络上的资源。
3.命令提示符
在windows系统中命令提示符是一个与操作系统命令交互的程序,通过向操作系统分发命令,系统解释执行并反馈的一个过程,类似于微软的DOS操
作系统。
4.powershell
可以看做是命令提示符的升级版本,提供更多操作的访问系统变量及函数的API,可只支持.NET编程。
5..NET
.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。从技术的
角度,一个.NET应用是一个运行于.NET Framework之上的应用程序。(更精确的说,一个.NET应用是一个使用.NET Framework类库来编写,并运行于公
共语言运行时Common Language Runtime之上的应用程序。)如果一个应用程序跟.NET Framework无关,它就不能叫做.NET程序。比如,仅仅使用了
XML并不就是.NET应用,仅仅使用SOAP SDK调用一个Web Service也不是.NET应用。.NET是基于Windows操作系统运行的操作平台,应用于互联网的分
布式。
6.批处理(batch)
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows
系统中。批处理文件的扩展名为bat 。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来
批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量 地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、
goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和
第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中
运行。
7.脚本语言(script)
脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。它的命名起源于一个脚本
“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。
一个脚本通常是解释执行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言则可视为脚
本语言的分支,两者也有实质上的相同之处。
8.注册表(Registry,繁体中文版Windows操作系统称之为登录档)
注册表是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0推出OLE技术的时候,注册表就已经
出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从Microsoft Windows 95操作系统开始,注册表才真正成为
Windows用户经常接触的内容,并在其后的操作系统中继续沿用至今。
9.进程(process)
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向
进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描
述,进程是程序的实体。
10.共享文件夹(share)
共享文件夹是指某个计算机用来和其它计算机间相互分享的文件夹,所谓的共享就是分享的意思。、
11.启动项
启动项目,就是开机的时候系统会在前台或者后台运行的程序。当操作系统完成登录过程,进程表中出现了很多的进程。操作系统在启动的时候,自动
加载了很多程序。许多程序的自启动,给我们带来了很多方便,这是不争的事实,但不是每个自启动的程序对我们都有用;更甚者,也许有病毒或木马在自
启动行列。
12.缓冲区溢出
缓冲区溢出(buffer overflow),是针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),
从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权。
13.中断
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停
的程序继续运行。
14.API
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问
一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
15.端口通信
随着计算机网络技术的发展,原来物理上的接口(如键盘、鼠标、网卡、显示卡等输入/输出接口)已不能满足网络通信的要求,TCP/IP协议作为网络
通信的标准协议就解决了这个通信难题。TCP/IP协议集成到操作系统的内核中,这就相当于在操作系统中引入了一种新的输入/输出接口技术,因为在TCP/IP
协议中引入了一种称之为”Socket(套接字)”应用程序接口。有了这样一种接口技术,一台计算机就可以通过软件的方式与任何一台具有Socket接口的计算
机进行通信。端口在计算机编程上也就是”Socket接口”。
16.蠕虫病毒
蠕虫病毒是一种常见的计算机病毒。它是利用网络进行复制和传播,传染途径是通过网络和电子邮件。最初的蠕虫病毒定义是因为在DOS环境下,病毒
发作时会在屏幕上出现一条类似虫子的东西,胡乱吞吃屏幕上的字母并将其改形。蠕虫病毒是自包含的程序(或是一套程序),它能传播自身功能的拷贝或
自身的某些部分到其他的计算机系统中(通常是经过网络连接)。
17.木马病毒
木马(Trojan),也称木马病毒,是指通过特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是控制端,另一个是被控制
端。木马这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的特洛伊木马本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。
“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执
行,向施种木马者提供打开被种主机的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种主机。
18.威胁情报
什么是威胁情报,其实安全圈一直在使用着它们,漏洞库、指纹库、IP信誉库,威胁情报平台,它们都是威胁情报的一部分。情报就是线索,威胁情报
就是为了还原已发生的攻击和预测未发生的攻击所需要的一切线索。“所谓的威胁情报就是帮助我们发现威胁,并进行处置的相应知识。这种知识就是我们
所说的威胁情报”。
19.系统服务
系统服务(system services)是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。通过网络提供服务时,服务
可以在Active Directory(活动目录)中发布,从而促进了以服务为中心的管理和使用。
20.AD(Active Directory)
AD全称为Active Directory,是指Windows服务器操作系统中的目录服务。Active Directory提供了一系列集中组织管理和访问网络资源的目录服务功
能。Active Directory还可以集中管理对网络资源的访问,并允许用户只登陆一次就能访问在Active Directory上的所有资源。
21.病毒特征码
可以代表某个病毒分类的特征的代码段,一般是通过反汇编病毒可执行文件,找出比较特殊的汇编代码再反转机器码的十六进制数作为特征值。
22.逆向工程(又称逆向技术)
是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要
素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。其主要目的是在不能轻易获得必要的生产信息的情况下,直
接从成品分析,推导出产品的设计原理。
1.用户账号和组审计
1)描述:黑客通常对系统进行入侵后会添加后门账号,所以需要审计用户和组是否有被篡改的痕迹。
2)命令:lusrmgr.exe
3)检查方法:查看是否有可疑的用户名被创建,检查是否administrators组里有可疑的账户被授权。
2.自启动配置审计
1)描述:黑客修改自启动配置通常可以在系统启动之后加载黑客自定义脚本。
2)命令:msconfig.exe 或 wmic start up list full
3)检查方法:检查自启动程序信息,如非常规应用程序则需要定位程序位置,可配合360杀毒工具检查。
3.异常进程审计
1)描述:进程往往都是应急响应主要关注点之一,黑客维持对外通信都会在被入侵主机中打开独立进程,进程名经常会带迷惑性,例如svch0st.exe(应为
svchost.exe)或exp1orer.exe(应为explorer.exe)。
2)命令:taskmgr.exe中进程菜单或tasklist.exe
3)检查方法:仔细排查容易被木马感染的系统进程,定位进程源程序位置,可配合360杀毒工具进行查杀,对不确定的其他进程通过google查询进程功能,
有概率会获得恶意程序的威胁情报。
4.异常服务审计
1)描述:windows服务类似Linux的守护进程,黑客通过恶意程序创建自定义服务达成可持续控制肉鸡的目的。
2)命令:services.msc
3)检查方法:对windows系统常规服务进行了解,识别病毒经常创建服务的命名规则,例如:“xxxUpdate”带有这类关键字。小技巧:查看指定系统服务
的属性,看服务描述,如果服务描述很少或者比较非官方的语言,一般比较可疑。或者查看依存关系,针对使用RPC(Remote Procedure Call)的服务要重点
关注。
5.计划任务审计
1)描述:计划任务是计算机周期性执行的一系列操作的管理程序,黑客也会增加自定义计划任务来检测连接心跳或者发动DoS攻击等行为。
2)命令:schtasks.exe或者在控制面板>计划任务中找到GUI模式
3)检查方法:了解系统程序自带的计划任务,查看任务对应的文件夹,对照任务创建时间,释放文件等信息来判断是否是恶意计划任务。
6.系统运行状态审计
1)描述:病毒木马一般情况下会使系统CPU、内存、磁盘读写、网络IO的利用率变高,通过监控系统状态可以发现潜在的恶意程序。
2)命令:taskmgr.exe
3)检查方法:查看任务管理器中性能菜单,跟踪单位时间内CPU、内存、磁盘、网络运行情况,并打开监视器配合检查。
6.用户会话审计
1)描述:黑客通过3389登录系统会创建用户session,通过审计session查看是否有攻击者进行远程登录。
2)命令:query user
3)检查方法:输入命令查看是否会话异常,是否存在可疑的用户会话状态。
7.网络连接审计
1)描述:审计网络连接可以发现攻击者来源IP,以及开放端口、进程等信息。
2)命令:netstat -ano
3)检查方法:输入命令检查是否存在外部可疑IP处于“ESTABLISTHED”状态。
8.本地共享审计
1)描述:早期黑客攻击利用经典IPC$的攻击方式批量植入肉鸡。
2)命令:net share和net use
3)检查方法:输入net share检查本地开放了哪些共享,输入net use检查是否存在被映射的网络连接。
9.组策略审计
1)描述:是微软Windows NT家族操作系统的一个特性,它可以控制用户帐户和计算机帐户的工作环境。组策略提供了操作系统、应用程序和活动目录中用
户设置的集中化管理和配置。组策略的其中一个版本名为本地组策略(缩写“LGPO”或“LocalGPO”),这可以在独立且非域的计算机上管理组策略对
象。。
2)命令:gpedit.msc
3)检查方法:打开组策略面板,重点查看计算机配置和用户配置中的脚本子菜单,查看是否加载powershell脚本,分析脚本内容判断是否异常等。
10.日志审计
1)描述:windows日志包含系统日志,安全日志、应用日志等,通常通过windows内置的事件查看器查询。
2)命令:eventvwr
3)检查方法:打开windows日志查看器,根据安全事件发生时间区间筛选windows日志,一般重点查看“安全”、“应用”日志,黑客执行的恶意命令多
数被记录在这两个日志中。
一般情况下windows自带日志查看器显示不是很友好且不便于分析,所以通常配合日志解析工具LogParser.exe,可在微软官网下载对应的32或64位版本。
安装好之后可以像操作数据库一样查询日志信息。
由于路径问题往往将默认日志位置c:\Windows\system32\winevt\Logs\的日志文件拷贝到C盘根目录中分析:
10.注册表审计
1)描述:windows中注册表是存储系统和应用的设置信息数据库,通过键值对来配置。
2)命令:regedit.exe
3)检查方法:输入命令打开注册表程序,手工检查指定路径下的注册表键值或者配合杀毒软件检查。
例如:
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 查看系统哪些程序自启动
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 检查EnableLUA的值(0:关闭UAC,1:启动UAC)
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager 下查看是否存在ExcludeFromKnownDlls,如果存在值存在lpk.dll、
usp10.dll、msimg32.dll、midimap.dll、ksuser.dll、comres.dll、ddraw.dll这些dll,则判断异常。