Linux应急响应重点检查项程序员
用户帐号审计: cat /etc/passwd & cat /etc/shadowshell
在线帐户审计: w数据库
登陆情况审计: last编程
空口令帐户审计: awk -F: '($2 == "") { print $1 }' /etc/shadowwindows
主机配置检查中不容许存在空口令帐户,虽然空口令帐户暂时没发现利用的方式,可是不符合等级保护的基本原则。安全
特权帐户审计: awk -F: '($3 ==0) { print $1 }' /etc/passwd服务器
Linux中的特权帐号通常只有root,若是出现了除root之外的帐号则有必定风险,怀疑多是黑客建立的后门帐号。网络
进程审计:ps -ef(显示全格式全部进程) 或 ps auxfww(显示全部进程及全部命令行session
Linux进程审计是应急中重要关注点之一,大多数安全事件都会发现系统运行着恶意进程,跟踪和分析进程是应急响应必备技能之一。socket
端口和进程关联审计: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,则判断异常。