klsfct

又惘又怠

页首Html代码

安全应急与响应

 

进入安全运营部分的内容。

对于运营这个词大家可能不陌生,任何的活动、产品甚至内容都需要运营,运营做的事大部分是涵盖了整个项目、产品所有环节,比如产品运营,产品上线前需要搞清楚产品定位和目标用户,然后用户使用了产品,运营还需要收集和分析用户数据,参与优化产品,同时还少不了活动策划、用户沟通等;这其中少不了需要进行内容建设、用户维护等,整体其实围绕的就是为了让产品更好,用的人更多,带来的效益更高。

那么安全运营又是啥?目的是为了啥?

 

在说安全运营之前,我们先来说说企业安全的需求。我们常把企业安全挂在口头讲,但大家能讲清楚企业安全的需求是什么吗?

企业安全需求总体是保障安全,可能很多同学的答案也是这个,但具体怎么保障呢?又包含哪些方面呢?包含但不限于以下方面:

 

问题收敛就是通过一些检测手段、规范和流程,最大限度的避免安全问题的产生,或者在产品上线前或者上线后主动发现和修复问题;流程和规范这块主要通过安全开发流程和安全规范,基于相关流程规范进行开发和运维,能最大限度的避免一些人为不经意引入的安全问题;而通过代码审计、漏洞扫描等方式,可以主动发现业务代码中可能存在的漏洞,内部及时修复,避免导致的后续损失和风险扩大。

 

风险感知包含事前和事中感知,事前通过威胁情报、漏洞跟踪等方式提前预知可能面对的安全风险,提前制定相关安全方案进行应对、防范和修复;而事中则主要是入侵检测为主,在安全问题被利用的时候可以及时感知并且即使掐断黑客入侵渠道,避免损失扩大。

 

至于攻击防御,主要的是DDoS和Web应用攻击,DDoS方面需要有一定的预案和承受能力,在受到攻击要保障业务稳定不受影响;而Web攻击则同样需要阻断的能力,通过在边界部署WAF可以有效防御和阻断。

 

安全合规主要是为了满足相关合规需求,特别是针对一些金融等对安全级别要求比较高的企业,国家制定了一系列如等保的条例和要求,企业需要在各个方面满足合规要求才能进入对应市场提供相关服务。

 

至于最后的安全管理和应急响应,主要是穿插在各个环节中,也是安全运营的主要工作内容。在各个不同的环节都需要安全管理配置,如问题收敛中需要推行安全规范,这里就涉及管理的工作,而在入侵检测检测到入侵行为则需要应响应配置,进行溯源和入侵点排查等。

 

以上就是企业安全的一些需求,安全运营就是从以上的各个方面入手保障安全。

 

如何去满足上面列的那些点呢?在企业安全的建设中,是不是购买一些安全产品就可以了?当然不是的,安全是一个变化、复杂的工程,是一个持续过程,这在过程中少不了运营的工作,而绝不是购买几个安全产品放在那就可以了,安全产品更多的时候是安全运营的工具。回顾我们之前的课程,比如在攻击防御方面有针对Web攻击的WAF,有针对DDoS攻击的抗D产品,而在使用这些产品的过程,从来没有哪款产品敢说可以把所有的东西交给他们,而无需安全人员的干预,实则比如WAF,通过安全运营人员参与进行针对业务的规则配置,才能更好的起到防护的作用。

 

整体来说,安全运营的目的是推进安全流程,感知和确定安全威胁,实施控制安全风险,保障系统中信息资产的安全。

 

如何去落地这些安全运营工作?安全运营的工作需要为效果负责,所以说不限于使用什么样的方式。

通常我们评估自身业务场景和规模,可以选择购买相关安全产品并辅于一些开源或者自研工具完成对应监控、检测、运维、防护等安全流程和体系,这里会具体到一些具体的项里,我们通过漏洞收敛来举例:

漏洞的收敛一般会从源头遏制、事中检测、事后修复总结以及随时响应三块去落地:

源头

1、推动推动SDL,安全开发流程来规范开发,在开发环节避免产生漏洞

2、白盒代码审计及业务上线前安全检查,如通过在CI系统,也就是持续集成中加入自动化的代码静态或者动态检查,提前发现存在漏洞的代码进行修复

3、建立运维、发布安全规范,强制要求业务增加相关安全规则及防护措施

 

事中检测

1、弱口令、高危端口等周期检测

2、日志、流量审计检测,发现漏洞利用情况

3、黑盒测试、安全众测等手段手发现漏洞,这里安全众测包含SRC的方式

 

事后修复总结

1、外部报告漏洞响应和推动修复

2、总结漏洞,针对性培训和推动相关安全规范加强

3、内部PR,通过内部宣传加强员工安全意识

 

随时响应

1、随时随地关注最新漏洞动态和情报,评估自己的业务系统是否可能受影响,及影响范围,针对性进行处理

 

以上就是关于漏洞收敛这一个项的一些点,当然这些点可能不是完全覆盖了各个方面,但应该覆盖大部分情况,通过多种手段和方式的推进和落地,在这过程中需要一些安全工具包含安全产品的辅助,如自动化动静态代码审计、漏洞扫描、黑盒测试、日志、流量审计等,需要具有一定能力的对应安全产品和工具进行辅助,以此才能真正推动相关东西的落地。

 

这就是关于安全运营的落地,我们只是举了一个漏洞收敛这个例子,但实际上是不是每个企业都要实行我上面列举的那么多点呢?因企业而异,需要考虑办公和业务部署环境,区分对待,主要针对重点资源实现严格策略,对次要资产实现普通策略,不能以一概全。

 

除了以上的内容,在安全运营中大家有的时候还会经常听到安全运营中心,也就是SOC,Security Operations Center。一般地,SOC被定义为:以资产为核心,以安全事件管理为关键流程,采用安全域划分的思想,建立一套实时的资产风险模型,协助管理员进行事件分析、风险分析、预警管理和应急响应处理的集中安全管理系统。

 

通俗的讲,SOC是一个安全运营的统一管理平台。过去我们都让安全专家来管理各种类型的防火墙、IDS和诸如此类的安全措施,这主要是因为安全问题一般都发生在网络中非常具体的某个地点。但是,现在的情况已经变化,安全问题已经不再像当年那么简单。安全是一个动态的过程,因为敌方攻击手段在变,攻击方法在变,漏洞不断出现;我方业务在变,软件在变,人员在变,妄图通过一个系统、一个方案解决所有的问题是不现实的,也是不可能的,安全需要不断地运营、持续地优化。安全措施应当被实施在应用层、网络层和存储层上。

 

构建SOC的目的是为了安全运维或者运营,通过联动各个安全产品,统一的管理和规则配置;借助SOC可以帮助安全运营人员更好的构建企业安全体系,响应相关安全问题和事件。

 

到了今天,大家已经就安全形成普遍共识,安全是一个动态的过程,是一个复杂的工程,需要持续的进行,所以安全运营的将变得越来越重要,而传统买完安全产品就放置不管,指望实现检测和防御的情况将会被舍弃。

 

安全运营是长期之事,具体细节有很多的内容,我们今天课程时间有限,就不展开细讲了,在后续课程我们将会针对一些经典场景和案例进行说明,那么今天课程就到这里了,谢谢大家。

 

扩展阅读:

1、金融行业企业安全运营之路 https://36kr.com/p/5055947.html

2、如何建设一个安全运营中心 https://www.freebuf.com/articles/es/177919.html

2 漏洞跟踪响应与预警

1、甲方漏洞跟踪响应流程图

 

 

3、怎么做漏洞跟踪与预警?

3.1 怎么及时关注到最新的漏洞?一般有几种方式:

 

1、自建监控系统,通过爬虫主动爬取网上公开的漏洞发布平台、安全资讯平台、RSS订阅源、相关著名安全研究人员的Twitter、微博等,爬取最新的符合条件,如特定关键词的漏洞信息,然后根据自己关注的组件进行筛选和邮件、短信推送等

 

2、关注微信朋友圈、群等社交平台安全行业内公司、人员发布的最新消息

 

3、一些安全团队、公司每日推送的安全预警内容

 

4、通过一些漏洞跟踪预警产品

 

3.2 在解决了监控问题,就需要专人跟踪评估每次爆发的漏洞,判断爆发的漏洞组件在自己公司业务中是否被使用,这里怎么判断呢?可能就涉及到另外一块内容,叫做资产普查,需要安全人员对自己公司业务使用的组件心里有数,因为在大部分时候,公司服务器和业务过多的情况下,运维或者开发人员也没有谁能够说清楚都用了哪些组件。

 

3.3 在跟踪漏洞的过程中主要要关注漏洞的危害程度和漏洞利用及影响版本,影响版本是用来判断自己公司业务中使用的该组件版本是否在影响范围内,而危害程度和漏洞利用则决定了这个漏洞对企业可能造成的损失;漏洞利用主要看着漏洞是否容易被利用,是否已经有PoC和Exp被公开出来了,如果有的话,则说明任何的黑客都可以轻而易举的使用该漏洞,如果没公开则说明只有一些顶尖的黑客才能利用漏洞或者漏洞利用方式根本没被公开,那么事情的严重程度就会降一个级别;而漏洞危害程度主要看漏洞类型,比如一个远程命令执行和XSS的危害程度完全不是一个层面的,XSS最多可以被利用进行欺诈等行为,而远程命令执行则可能导致服务器直接沦为黑客肉鸡。

 

3.4 在跟踪的同时需要根据漏洞最新的情况制定相应的安全修复方案,并且在同一时间普查公司所有受影响的业务,及时推动业务进行修复,这些都是要在评估漏洞影响后的第一时间并行处理的,漏洞的跟踪响应及推动修复要争取在1小时内,这样才能最大程度的避免损失,这个就是我们俗称的黄金1小时。

 

3.5 最后的话,推动修复漏洞后不是这样就完了,而是还要重新验证之前普查的影响业务是否都修复了,同时针对利用该漏洞的入侵需要在相关IDS等添加规则,避免前面环节的遗漏而导致黑客利用该漏洞入侵,这样也能及时感知并及时止损。然后整个流程结束后,还应该增加内宣也就是内部宣传,让业务团队意识漏洞的严重程度和安全团队做这些事的目的,以及加强培训、做总结,不断改进流程和配合等。

 

 

3 事件响应与处理1:入侵勒索加密

 

1、常见的勒索解密工具

网址:http://www.bkill.com/t/27056.html?_t=1553428507

2、常见的勒索病毒

 

1、Phobos病毒

中毒特征:<原文件名>.ID-<随机8位字符串>.<邮件地址>.Phobos

勒索信息:Encrypted.txt Phobos.hta data.hta

特征示例: readme.txt.ID-16E86DC7.[grunresrife1985@aol.com].phobos

特征后缀收集: [grunresrife1985@aol.com].phobos

 

2、GANDCRAB病毒

病毒版本:GANDCRAB V5.0.4 GANDCRAB V5.1 GANDCRAB V5.2

中毒特征:<原文件名>.随机字符串

勒索信息:随机字符串-DECRYPT.txt 随机字符串-MANUAL.txt

特征示例: readme.txt.pfdjjafw

 

3、GlobeImposter 3.0病毒(十二生肖病毒)

中毒特征:<原文件名>.XXXX4444

勒索信息:HOW_TO_BACK_FILES.txt how_to_back_files.htm

特征示例: readme.txt.Monkey4444

特征后缀收集: .China4444 .Help4444 .Rat4444 .Ox4444 .Tiger4444 .Rabbit4444 .Dragon4444 .Snake4444 .Horse4444 .Goat4444 .Monkey4444 .Rooster4444 .Dog4444 .all4444 .Pig4444 .Alco4444等

 

4、Crysis(Dharma)病毒

中毒特征:<原文件名>.ID-<随机8位字符串>.<邮件地址>.特征后缀

勒索信息:FILES ENCRYPTED.txt data files encrypted.txt info.hta

特征示例: readme.txt.ID-16E86DC7.[writehere@qq.com].btc readme.txt.id-F06E54C7.[decryptmyfiles@qq.com].ETH

特征后缀收集: .ETH .btc .adobe .bkpx .tron .bgtx .combo .gamma .block .bip .arrow .cesar .arena btc@fros.cc zikr@protonmail.comzikra@protonmail.com zikr@usa.comdecryptmyfiles@qq.com bebenrowan@aol.comMailPayment@decoder.com helpfilerestore@india.comdecryptmyfiles@qq.com decryptprof@qq.com1701222381@qq.com btccrypthelp@cock.li

 

5、CryptON(x3m)病毒

中毒特征:<原文件名>.<随机字符串ID>.<邮件地址>.x3m

勒索信息:DECRYPT-MY-FILES.txt HOW TO DECRYPT FILES.htm

特征示例: readme.txt.id16e86dc7[unlock@cock.li].x3m

特征后缀收集: .x3m .nemesis .x3m-pro .X3M .mf8y3 .nem2end

 

6、PRCP(Matrix变种)病毒

中毒特征:[邮件地址].密文1-密文2.PRCP

勒索信息:#README_PRCP#.rtf

特征示例: [radrigoman@protonmail.com].A6QkjniCc-Plvdd5kn.PRCP

radrigoman@tutanota.com radrigoman@airmail.cc

特征后缀收集: .PRCP

 

7、Clop病毒

中毒特征:<原文件名>.Clop

勒索信息:ClopReadMe.txt

特征示例:ReadMe.txt.Clop

mangagersmaers@tutanota.com

特征后缀收集: .Clop

 

8、PyLocky病毒

中毒特征:<原文件名>.pyd

勒索信息:LOCKY_README.txt

特征示例:ReadMe.txt.pyd ReadMe.txt.lockymap

特征后缀收集:.pyd .lockedfile .lockymap

 

9、其他病毒

特征示例:

{mattpear@protonmail.com}MTP

{Benjamin_Jack2811@aol.com}BJ

{Benjamin_Jack2811@aol.com}AOL

{MOLLYGREENS@PROTONMAIL.COM}MG

{mrgrayhorse@protonmail.com}MGH

{CALLMEGOAT@protonmail.com}CMG

{colin_farel@aol.com}XX sicck@protonmail.comsatan_pro@mail.ru skunkwoman_next@aol.comskunkwoman@india.com gotham_back@ao.comgotham_back@india.com crazyfoot_granny@aol.comcrazyfoot_granny@india.com mr_chack@aol.commr_chack33@india.com true_offensive@aol.comtrue_offensive777@india.commakgregorways@aol.com makgregorways@india.comyaya_captain@aol.com yaya_captain999@india.comdream_dealer@aol.com dream_dealer@india.comlin_chao1@aol.com bigbig_booty@aol.combigbig_booty@india.com sexy_chief@aol.comsexy_chief18@india.com third_work@aol.comthird3_work@india.com greenpeace-wtf@ao.comgreenpeace_28@india.com alcohol_walker@aol.comalcohol_walker@india.com vya_technology@aol.comvya_technology33@india.comcrypted_yoshikada@cock_lu techosupport@protonmail.com reserve_player@aol.frreserve_player11@india.com payday@cock.lifuck4u@cock.li mr_chack@aol.commr_chack33@india.com sexy_chief@aol.comlin_chao1@aol.com true_offensive@aol.comfreeman.dor@aol.com nmare@cock.liBenjamin_Jack2811@aol1.com colin_farel@aol3.compayransom@qq.com decryptdata@qq.com email-lybot@rape.lol_mrscratch Admin@decryption.bizfastsupport@airmail2.cc waltipanvi1983@aol.comstopencrypt@qq.com hellstaff@india1.comjohnsmith3210@india.com fileslocker@pm2.metravolta_john@aol1.com tttttlocked@protonmail.comdecryptprof@qq.com colin_farel@aol1.comcondneparrio1976@aol.com unlock@cock.liclaymore@airmail.cc eight@india.comcolin_farel@aol2.com Fruttella1@outlook.com1btcpayment@protonmail.comanticrypt@countermail.com online24files@airmail2.ccnmare@protonmail.com fairman@cock.lidreamunricha1981@aol.com candy@firemail.ccreturnfiles@airmail.cc AndDora@india.comHelperBTC@cock.li syndicateXXX@aol.com

特征后缀收集:

.HRM .ITLOCK .rapid .master .Lock .sicck .lucky .satan .Boom .Indrik .aes256 .tunca .vacv2 .bin .locked_by_mR_Anonymous(TZ_HACKERS) .luudjvu .udjvu .udjvuq .satana .vulston .wq2k (B2DR病毒) .nano (Scarab病毒) .nostro .cryptoid(RICKROLL LOCKER病毒) .tfudet .Djvur .Djvuu .djvut .rumba .tfudeq(Stop病毒) .xcry7684 (XCry病毒) .gif .AUF (Dharma病毒) .data .PC-FunHACKED!-Hello (Jigsaw病毒) .xyz (Paradise病毒) GMPF (Matrix病毒) .[Traher@Dr.Com] (Scarab病毒) .Anatova病毒 .jundmd@cock.li raphaeldupon@aol.com.btc .obfuscated .GMBN .SPCT .CHRB .PLANT .PEDANT (Matrix病毒) .xwx .USA .best .heets .qwex .air .888 .frend .amber .KARLS (Dharma病毒) .healforyou .ANAMI (GlobeImposter系列) .krab .cupcupcup .crash .GEFEST3 .secure .nosafe (Scarab病毒) .pennywise .paycoin (Jigsaw病毒) .[Jaffe@Tuta.Io] (Jaffe病毒) .adobe .rumba (Stop病毒) .cryptotes (Rotorcrypt病毒) .STUB (Paradise病毒) .locked (LockerGoga病毒) .vaca .mbrcodes .mafee .Mcafee (Xorist病毒) .cosanostra (GarrantyDecrypt病毒) .cripton(Creeper病毒)

.auchentoshan

 

4 事件响应与处理2:机器被黑挖矿

扩展阅读:

Hadoop Yarn REST API未授权漏洞利用挖矿分析: https://mp.weixin.qq.com/s/fF6a5Yhl5y6eSVskYtYSvw

Linux Redis自动化挖矿感染蠕虫分析及安全建议: https://mp.weixin.qq.com/s/inazTPN5mHJYnt2QDliv8w

安全研究 | Linux 遭入侵,挖矿进程被隐藏案例分析: https://mp.weixin.qq.com/s/1AF5cgo_hJ096LmX7ZHitA

1、挖矿木马处置流程

 

 

1.1、了解现状

第一时间了解目前什么情况:

 安全设备告警?

 CPU使用率突然很高?

 内网主机挂了?

1.2、了解发病时间

 设备告警最早发生时间?

 CPU使用率突然很高的开始时间?

 主机宕机时间?

了解事件发生时间,后面以此时间点做排查重点;

1.3、了解系统架构[服务器类型、网络拓扑等

 

 

 

 服务器类型:windows、linux

 cms:dedecms、phpcms、trs cms等

 中间件、容器、框架、数据库:tomcat、iis、apache、weblogic、struts、mysql等

 脚本语言:asp、php、jsp等

 业务架构:如前端网页内容是否是后端通过ftp上传的(新闻网偏多)等

这里了解的信息要尽量详细,为下一步分析收集足够证据; 

1.4、确认感染者

通过上面的定位,确认中招主机:

 

1.5、处置建议

断网或ACL隔离;

结束恶意进程;

提取木马样本;

删除木马;

 

1.6、防御措施

安装杀毒软件,对被感染机器进行安全扫描和病毒查杀;

对系统进行补丁更新,封堵病毒传播途径;

制定严格的口令策略,避免弱口令;

结合备份的网站日志对网站应用进行全面代码审计,找出攻击者利用的漏洞入口进行封堵; 

2、案例一、挖矿木马处置01

(1)事件概述

发现多台服务器被植入挖矿木马;

(2)事件分析 

登录被感染挖矿木马的服务器:x.x.x.x 首先通过本地DNS流量解析发现该机器确实存在挖矿木马;

 

 

 

➜ipconfig /displaydns 显示 DNS 解析程序缓存的内容

登录的这台机器可以看到DNS解析过该域名,由此判断该机器中了挖矿木马,

使用相关工具分析发现其中csrss.exe进程为伪装的系统进程,通过该进程有2个派生进程sqlserver.exe和mscorswv.exe,其中sqlserver.exe为loader程序负责加载mscorswv.exe和配置文件:

通过查看mscorswv.exe配置发现该程序会连接:xmr.crypt-pool.fr

通过对该木马分析后发现该木马会创建名称为:system_updatea的系统服务;

(3)结论

最后清理后,统一查看网络连接、进程、等是否正常,

 

5 入侵分析与溯源1:认识和了解溯源及思路

 1、勒索病毒处置流程

 

2、挖矿木马处置流程

 

3、DDos攻击处置流程

2.3.1、了解现状

第一时间了解目前什么情况:

l   流量异常增大?

l   哪些系统、业务受影响?

l   安全设备告警?

 

2.3.2、了解发病时间

l   流量异常发生时间?

l   设备告警发生时间?

了解事件发生时间,后面以此时间点做排查重点;

 

2.3.3、了解系统架构[网络拓扑、系统架构等]

l   了解当前的网络架构以及网络设备情况,同时了解业务系统架构,相关安全设备是否有告警等;

l   了解当前带宽总量,是否为重要业务系统设置QoS,进行带宽独享以及优化。

这里了解的信息要尽量详细,为下一步分析收集足够证据;

 

2.3.4、事件排查[知识点]

1、查看相关网络设备或安全设备,查看在异常时间段是否存在异常流量高峰;2、根据流量情况统计,查看流量分布情况,TCP以及UDP协议的流量分布情况,是否有明显的突增情况。

3、根据流量情况统计,查看流量协议的分布情况,查看入网的流量何种应用层协议的分布明显突增,如HTTP、DNS、SMB等。

 

判断依据:

(1)根据TCP/UDP层以及应用层协议的流量突增情况,可区分出当前遭受到的攻击是网络层攻击或应用层攻击以及属于哪一种协议的攻击;

 

(2)CC攻击所占用的资源分为三种,分别为:带宽、Web连接数、数据库连接数;目的通常是消耗网络资源以及系统性能资源,导致访问缓慢或业务系统崩溃。通过分析异常时间段内的Web访问日志或流量中HTTP访问记录,分析是否存在异常访问;主要关注IP分布、各个IP的请求数、请求URL。

 

l  带宽:

一般占用带宽的情况,主要表现为频繁大量的访问大资源文件,Web服务器的连接数并不高,但长期访问大资源文件,将导致带宽占满,导致业务中断,如访问rar、zip、数据备份、媒体资源文件等;

 

l  Web连接数:

一般占用Web服务器的连接数,主要表现为频繁大量的访问Web系统上的URL,包括动态资源或静态资源,将导致Web服务器的连接数占满,无法接收处置新的请求,最终导致业务中断;针对Web连接数的CC攻击可观察到当前有异常多的网络连接数以及Web服务进程的CPU使用率过高;

 

l  数据库连接数:

一般占用Web服务器的连接数同时占用数据库连接数,主要表现为频繁大量的访问Web系统上的动态资源URL,每次请求将创建一个HTTP会话连接以及一次数据库连接,将可能导致数据库连接数占满,同时Web服务器的连接数也可能占满,无法接收处置新的请求,最终导致业务中断;针对数据库连接数的CC攻击可观察到当前有异常多的来自Web服务器的连接,同时数据库进程的CPU使用率过高。

 

(3)如流量无明显突增,则可能是设备或应用故障造成,不符合DDoS的攻击特征。

6 入侵分析与溯源2:常见溯源方法

扩展阅读:

安全研究 | Linux 遭入侵,挖矿进程被隐藏案例分析 https://mp.weixin.qq.com/s/1AF5cgo_hJ096LmX7ZHitA

Linux 日志分析: https://www.cnblogs.com/yingsong/p/6022181.html

黑客入侵应急分析手工排查: https://www.cnblogs.com/shellr00t/p/6943796.html

PCHunter下载: http://www.xuetr.com/

Linux排查[综合]

1、文件排查

(1)敏感目录的文件分析[类/tmp目录,命令目录/usr/bin /usr/sbin等]

ls     用来显示目标列表

-a   显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);

-C     多列显示输出结果。这是默认选项;

-l       以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

-t       用文件和目录的更改时间排序;

(2) 查看tmp目录下的文件➜➜➜ ls –alt /tmp/

如图,发现多个异常文件,疑似挖矿程序病毒:

 

对已发现的恶意文件进行分析,查看559.sh脚本内容:脚本先是杀掉服务器上cpu占用大于20%的进程,然后从远程27.155.87.26(福建,黑客所控制的一个IDC服务器)下载了病毒程序并执行;

(3) 查看开机启动项内容➜➜➜ls -alt /etc/init.d/,/etc/init.d 是 /etc/rc.d/init.d 的软链接

 

(4) 安时间排序查看指定目录下文件➜➜➜ls -alt | head -n 10

 

 

针对可疑文件可以使用stat进行创建修改时间、访问时间的详细查看,若修改时间距离事件日期接近,有线性关联,说明可能被篡改或者其他。

(1)Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。

(2)Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。

(3)Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。

 

(5) 查看历史命令记录文件~/.bash_history

查找~/.bash_history命令执行记录,主要分析是否有账户执行过恶意操作系统;命令在linux系统里,只要执行过命令的用户,那么在这个用户的HOME目录下,都会有一个.bash_history的文件记录着这个用户都执行过什么命令;

 

那么当安全事件发生的时候,我们就可以通过查看每个用户所执行过的命令,来分析一下这个用户是否有执行恶意命令,如果发现哪个用户执行过恶意命令,那么我们就可以锁定这个线索,去做下一步的排查;

(6) 查看操作系统用户信息文件/etc/passwd

查找/etc/passwd文件, /etc/passwd这个文件是保存着这个linux系统所有用户的信息,通过查看这个文件,我们就可以尝试查找有没有攻击者所创建的用户,或者存在异常的用户。我们主要关注的是第3、4列的用户标识号和组标识号,和倒数一二列的用户主目录和命令解析程序。一般来说最后一列命令解析程序如果是设置为nologin的话,那么表示这个用户是不能登录的,所以可以结合我们上面所说的bash_history文件的排查方法。首先在/etc/passwd中查找命令解释程序不是nologin的用户,然后再到这些用户的用户主目录里,找到bash_history,去查看这个用户有没执行过恶意命令。

 

/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

 

(7) 查看新增文件

find:在指定目录下查找文件

-type b/d/c/p/l/f查是块设备、目录、字符设备、管道、符号、链    接、普通文件

-mtime -n +n       按文件更改时间来查找文件,-n指n天以内,+n指n天前

-atime -n +n         按文件访问时间来查找文件,-n指n天以内,+n指n天前

-ctime -n +n         按文件创建时间来查找文件,-n指n天以内,+n指n天前

find ./ -mtime 0 -name "*.php"(查找24小时内被修改的php文件)

 

 

find / -ctime 2(查找72小时内新增的文件)

PS:-ctime 内容未改变权限改变时候也可以查出;

grep 一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

-v      反转查找

-E      使用正则表达式选项

-n      输出包含匹配字符串的行数

--color=auto  标记匹配颜色

tail  查看档案的结尾,默认显示最后十行

 

-f      动态显示文件最新追加的内容;

 

(8) 特殊权限的文件查看

查找777的权限的文件➜➜➜ find / *.jsp -perm 4777

 

(9)隐藏的文件(以 "."开头的具有隐藏属性的文件)

 

PS:在文件分析过程中,手工排查频率较高的命令是 find grep ls 核心目的是为了关联推理出可疑文件;

2.4.2.2、进程排查

(1)使用top命令实时动态地查看系统的整体运行情况,主要分析CPU和内存多的进程,是一个综合了多方信息监测系统性能和运行信息的实用工具

 

字段含义如下表:

列名

含义

PID

进程id

PPID

父进程id

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

启动进程的终端名

PR

优先级

NI

nice值;负值表示高优先级,正值表示低优先级

RES

进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR

共享内存大小,单位kb

S

进程状态:

            D=不可中断的睡眠状态

            R=运行

            S=睡眠

            T=跟踪/停止

            Z=僵尸进程

%CPU

上次更新到现在的CPU时间占用百分比

%MEM

进程使用的物理内存百分比

TIME

进程使用的CPU时间总计,单位秒

TIME+

进程使用的CPU时间总计,单位1/100秒

COMMAND

命令名/命令行

 

(2)用netstat 网络连接命令,分析可疑端口、可疑IP、可疑PID及程序进程

netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

选项参数:

 

-a      显示所有连线中的Socket。

-n  直接使用IP地址,而不通过域名服务器。

-t      显示TCP传输协议的连线状况。

-u  显示UDP传输协议的连线状况。

-v  显示指令执行过程。

-p     显示正在使用Socket的程序识别码和程序名称。

-s     显示网络工作信息统计表。

netstat –antlp | more

 

说明:

a) "Recv-Q"和"Send-Q"指的是接收队列和发送队列。

b) Proto显示连接使用的协议;RefCnt表示连接到本套接口上的进程号;Types显示套接口的类型;State显示套接口当前的状态;Path表示连接到套接口的其它进程使用的路径名。

c)  套接口类型:

-t       TCP

-u     UDP

-raw   RAW类型

--unix  UNIX域类型

--ax25  AX25类型

--ipx    ipx类型

--netrom  netrom类型

d)状态说明:

LISTENING    侦听状态

ESTABLISHED  建立连接

CLOSE_WAIT   对方主动关闭连接或网络异常导致连接中断

 

如图,可查看到本地mysql数据库有外部连接行为:

(3)根据netstat 定位出的pid,使用ps命令,分析进程

-a      代表 all。同时加上x参数会显示没有控制终端的进程

-aux  显示所有包含其他使用者的行程(ps -aux --sort -pcpu | less根据cpt使用率进行排序)

-C       显示某的进程的信息

-axjf   以树形结构显示进程

-e       显示所有进程。和 -A 相同。

-f         额外全格式

-t ttylist by tty     显示终端ID在ttylist列表中的进程

ps aux | grep pid | grep –v grep

将netstat与ps 结合:

 

可以使用lsof -i:1677 查看指定端口对应的程序;

lsof:

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息。

 

lsof filename      显示打开指定文件的所有进程

lsof -i   用以显示符合条件的进程情况,在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

COMMAND:进程的名称

PID   进程标识符

USER        进程所有者

FD    文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

TYPE         文件类型,如DIR、REG等

DEVICE    指定磁盘的名称

SIZE 文件的大小

NODE       索引节点(文件在磁盘上的标识)

NAME       打开文件的确切名称

 

(4)使用ls 以及 stat 查看系统命令是否被替换

两种思路:

l   查看命令目录最近的时间排序

l   根据确定时间去匹配

ls -alt /usr/bin | head -10

​ls -al /bin /usr/bin /usr/sbin/ /sbin/ | grep "Jan 15"

备注:如果日期数字<10,中间需要两个空格。比如1月1日,grep “Jan 1”

 

(5)隐藏进程查看

ps -ef | awk '{print}' | sort -n | uniq >1

ls /proc | sort -n |uniq >2

diff 1 2

 

2.4.2.3、系统信息排查

(1)查看分析history (cat /root/.bash_history),曾经的命令操作痕迹,以便进一步排查溯源。运气好有可能通过记录关联到如下信息:

a) wget 远程某主机(域名&IP)的远控文件;

b) 尝试连接内网某主机(ssh scp),便于分析攻击者意图;

c) 打包某敏感数据或代码,tar zip 类命令

d) 对系统进行配置,包括命令修改、远控木马类,可找到攻击者关联信息…

(2)查看分析用户相关分析

a) useradd userdel 的命令时间变化(stat),以及是否包含可疑信息

b) cat /etc/passwd 分析可疑帐号,可登录帐号

查看UID为0的帐号➜➜➜awk -F: '{if($3==0)print $1}' /etc/passwd

查看能够登录的帐号➜➜➜cat /etc/passwd | grep -E "/bin/bash$"

PS:UID为0的帐号也不一定都是可疑帐号,Freebsd默认存在toor帐号,且uid为0.(toor 在BSD官网解释为root替代帐号,属于可信帐号);

(3)查看分析任务计划

crontab -u <-l, -r, -e>

-u      指定一个用户

-l       列出某个用户的任务计划

-r       删除某个用户的任务

-e  编辑某个用户的任务(编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件)

l   通过crontab –l 查看当前的任务计划有哪些,是否有后门木马程序启动相关信息;

l   查看etc目录任务计划相关文件,ls /etc/cron*

(4)查看linux 开机启动程序

l   查看rc.local文件(/etc/init.d/rc.local /etc/rc.local)

l   ls –alt /etc/init.d/

l   chkconfig

chkconfig是管理系统服务(service)的命令行工具,对开机启动的可疑程序进行更改;

设置service启动信息:

chkconfig name on/off/reset

设置service运行级别

chkconfig --level levels

(5)查看系统用户登录信息

a)使用lastlog命令,系统中所有用户最近一次登录信息。

b) 使用lastb命令,用于显示用户错误的登录列表;

c) 使用last命令,用于显示用户最近登录信息(数据源为/var/log/wtmp,var/log/btmp);

 

utmp文件中保存的是当前正在本系统中的用户的信息。

​wtmp文件中保存的是登录过本系统的用户的信息。

​/var/log/wtmp 文件结构和/var/run/utmp 文件结构一样,都是引用/usr/include/bits/utmp.h 中的struct utmp;

(6)系统路径分析

echo $PATH 分析有无敏感可疑信息

(7)指定信息检索

l   strings命令在对象文件或二进制文件中查找可打印的字符串;

l   分析sshd 文件,是否包括IP信息strings /usr/bin/.sshd | grep '[1-9]{1,3}.[1-9]{1,3}.'     

*PS:此正则不严谨,但匹配IP已够用;

l   根据关键字匹配命令内是否包含信息(如IP地址、时间信息、远控信息、木马特征、代号名称);

 

(8)查看ssh相关目录有无可疑的公钥存在

l   Redis(6379) 未授权恶意入侵,即可直接通过redis到目标主机导入公钥;

l   目录: /etc/ssh ./.ssh/

2.4.2.4、后门排查

(1)系统后门排查

➜chkrootkit:

chkrootkit是用来监测 rootkit 是否被安装到当前系统中的工具。rootkit ,是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工具,入侵者建立了一条能够常时入侵系统,或者说对系统进行实时控制的途径。所以,我们要用 chkrootkit 来定时监测系统,以保证系统的安全。

​下载链接:(www.chkrootkit.org)

chkrootkit主要功能:

l   检测是否被植入后门、木马、rootkit

l   检测系统命令是否正常

l   检测登录日志

 

a)          chkrootkit安装:

rpm -ivh chkrootkit-0.47-1.i386.rpm

b)          检测

# chkrootkit –n;如果发现有异常,会报出“INFECTED”字样。

 

c)          定时检测

chkrootkit自带的脚本并没有包括定时检测部分,而考虑到该工具的作用。建议编写一个脚本,并加入计划任务中。并把脚本加入crontab中:cp -p ./chkrootkit.sh /etc/cron.daily/

 

➜Rkhunter:

rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。  

rkhunter主要功能:

l   系统命令(Binary)检测,包括Md5 校验

l   Rootkit检测

l   本机敏感目录、系统配置、服务及套间异常检测

l   三方应用版本检测

➜RPM check检查

系统完整性也可以通过rpm自带的-Va来校验检查所有的rpm软件包,有哪些被篡改了,防止rpm也被替换,上传一个安全干净稳定版本rpm二进制到服务器上进行检查。

./rpm -Va > rpm.log

如果一切均校验正常将不会产生任何输出。如果有不一致的地方,就会显示出来。输出格式是8位长字符串,c 用以指配置文件, 接着是文件名. 8位字符的每一个 用以表示文件与RPM数据库中一种属性的比较结果 。 . (点) 表示测试通过。.下面的字符表示对RPM软件包进行的某种测试失败:

下图可知ps, pstree, netstat, sshd等等系统关键进程被篡改了:

 

 

➜Webshell Check

Webshell的排查可以通过文件、流量、日志三种方式进行分析,基于文件的命名特征和内容特征,相对操作性较高,在入侵后排查过程中频率也比较高。

a)Webshell的排查可以通过可根据webshell特征进行命令查找,简单的可使用(当然会存在漏报和误报)

find /var/www/ -name "*.php" |xargs egrep 'assert|phpspy|c99sh|milw0rm|eval|\(gunerpress|\(base64_decoolcode|spider_bc|shell_exec|passthru|\(\$\_\POST\[|eval \(str_rot13|\.chr\(|\$\{\"\_P|eval\(\$\_R|file_put_contents\(\.\*\$\_|base64_decode'

b)Github上存在各种版本的webshell查杀脚本,各有各的自己的特点,可使用河马shell查杀(shellpub.com)

综上所述,通过chkrootkit 、rkhunter、RPM check、Webshell Check 等手段得出以下应对措施:

1.根据进程、连接等信息关联的程序,查看木马活动信息。

2.假如系统的命令(例如netstat ls 等)被替换,为了进一步排查,需要下载一新的或者从其他未感染的主机拷贝新的命令。

3.发现可疑可执行的木马文件,不要急于删除,先打包备份一份。

4.发现可疑的文本木马文件,使用文本工具对其内容进行分析,包括回连IP地址、加密方式、关键字(以便扩大整个目录的文件特征提取)等。

 

(2)手工Webshell排查

通过文件内容中的危险函数,去找到网站中的web后门。最常见的Webshell文件内容中常见的恶意函数:

PHP

Eval、System、assert、……

JSP

getRunTime、 FileOutputStream、……

ASP

eval、execute、 ExecuteGlobal、……

➜➜➜find /var/www/html/ -type f -name  '*.php'|xargs grep 'eval' |more

 

除了通过grep去找webshell,我们还可以用类似 D盾之类的webshell查杀工具,把源码拖下来在本机查杀。

有时候黑客在上传完webshell后门,获取到自己想要的信息后,就会删除掉webshell,又或者遇到了一些变形过的webshell后门,我们的关键字没有搜索到,这时候通过文件去找到webshell的方法就不适用了。那么这个时候就只能通过分析web日志,来找到黑客的webshell文件。直接分析web日志的最直接方式就是通过web日志中的特征来判断是否存在恶意的webshell后门,比如上面列表展示的这些常见webshell会传递的get参数。常见webshell后门日志特征如下:

Darkblade:goaction=login

    JspSpy:o=login

    PhpSpy:action=phpinfo

    Regeorg: cmd=connect

Other:cmd=

不过这种方式能发现的问题不多,因为很多时候web后门接收参数的方式都是post,前面说了大部分中间件默认情况下只能记录get,如果需要记录post的话,就需要安装第三方模块。

Ps:常规黑客攻击流程,一个黑客通常通过web漏洞获取管理员密码进入后台,然后上传webshell,这个webshell文件在以前的访问记录是没有的,那么我们就可以通过统计每天访客所访问过的动态脚本文件,来列出每天新增加的文件入口的记录,快速查找webshell后门,最后我们可以根据统计低频访问的动态脚本文件,来找出可能是webshell的文件,因为一般来说webshell的访问ip只有几个,并且访问的次数也不多,那么根据这个分析模型,我们就可以发现可能是恶意的动态脚本文件。此排查需要懂一点了解编程,作为思路了解。

2.4.2.5、日志排查

Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd 或/etc/rsyslog.d,默认配置文件为 /etc/syslog.conf 或 rsyslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。

Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。  

(1)日志类型

下面是和排查相关的常见日志类型,但并不是所有的Linux发行版都包含这些类型:

类型

说明

auth

用户认证时产生的日志,如login命令、su命令。

authpriv

与 auth 类似,但是只能被特定用户查看。

console

针对系统控制台的消息。

cron

系统定期执行计划任务时产生的日志。

daemon

某些守护进程产生的日志。

ftp

FTP服务。

kern

系统内核消息。

mail

邮件日志。

mark

产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每

行的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此

推断系统发生故障的大概时间。

news

网络新闻传输协议(nntp)产生的消息。

ntp

网络时间协议(ntp)产生的消息。

user

用户进程。

(2)日志优先级:

优先级

说明

emerg

紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。

alert

需要立即修复,例如系统数据库损坏。

crit

危险情况,例如硬盘错误,可能会阻碍程序的部分功能。

err

一般错误消息。

warning

警告。

notice

不是错误,但是可能需要处理。

info

通用性消息,一般用来提供有用信息。

debug

调试程序产生的信息。

none

没有优先级,不记录任何日志消息。

(3)常用日志文件

日志目录

作用

/var/log/message

包括整体系统信息

/var/log/auth.log

包含系统授权信息,包括用户登录和使用的权限机制等

/var/log/userlog

记录所有等级用户信息的日志

/var/log/cron

记录crontab命令是否被正确的执行

/var/log/vsftpd.log

记录Linux FTP日志

/var/log/lastlog

记录登录的用户,可以使用命令lastlog查看

/var/log/secure

记录大多数应用输入的账号与密码,登录成功与否

var/log/wtmp

记录登录系统成功的账户信息,等同于命令last

var/log/faillog

记录登录系统不成功的账号信息,一般会被黑客删除

 

 

(4)日志配置

linux系统日志相关配置文件为/etc/rsyslog.conf(syslog.conf),以下是对配置文件各项配置;

(5)日志分析

日志查看分析,主要为grep,sed,sort,awk的综合运用;

5.1、基于时间的日志管理:

5.1.1、/var/log/wtmp

l   /var/log/wtmp是一个二进制文件,记录每个用户的登录次数和持续时间等信息;

l   last命令

last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来;

-f:               <记录文件>:指定记录文件

-a:            把从何处登入系统的主机名称或ip地址,显示在最后一行

5.1.2、/var/run/utmp

/var/run/utmp是一个二进制文件,记录当前登录系统的用户信息。可用who命令显示当中的内容,Who的缺省输出包括用户名、终端类型、登录日期及远程主机;

5.1.3、/var/log/lastlog(lastlog)

/var/log/lastlog记录用户最后登录的时间和登录终端的地址,可使用lostlog命令查看;

5.1.4、/var/log/btmp(lastb)

/var/log/btmp记录错误登录的日志,可使用lostb查看,有很多黑客试图使用密码字典登录ssh服务,可以使用此日志查看恶意ip试图登录次数;

PS:登录日志可以关注Accepted、Failed password 、invalid特殊关键字;

5.2、系统日志

/var/log/secure

安全日志secure包含验证和授权方面信息,比如最常用的远程管理协议ssh,就会把所有授权信息都记录在这里。所以通过查看该日志,我们就能查看是否有人爆破ssh,通过查看存在过爆破记录的ip是否有成功登录的行为,我们就能知道是否有攻击者通过ssh暴力破解的方式成功攻击进来了。通过时间的纬度去判断,可以查看出是机器行为还是人为的,机器登录事件间隔特别密;

主要分析点:是否有ip爆破ssh成功;

定位有多少IP在爆破主机的root帐号:

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的IP有哪些:

grep "Accepted " /var/log/ secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

5.3、中间件日志

Web攻击的方法多种多样,但是默认情况下Web日志中所能记录的内容并不算丰富,最致命的是web日志是不会记录post内容的,想要从Web     日志中直接找出攻击者的webshell是非常难的,所以一般来说我们的分析思路都是先通过文件的方式找到webshell,然后再从日志里找到相应的攻击者ip,再去分析攻击者的整个攻击路径,来回溯攻击者的所有行为;

但各种各样的原因,如黑客在入侵完了之后把webshell删除了,通过文件搜索的方式找不到webshell或者只能通过分析web日志去发现webshell,比如这时候要排查的话,难度会稍大。Web日志主要分析access_log,本文以常见的中间件apache为例,其他中间件日志格式和分析思路大同小异;

Apache默认自动生成两个日志文件,访问日志access_log和error_log;

Apache日志字段说明:

字段

说明

远程主机IP

表明是谁访问了网站

空白(E-mail)

为了避免用户的邮箱被垃圾邮件骚扰,第二项就用“-”取代了

空白(登录名)

用于记录浏览者进行身份验证时提供的名字

请求时间

用方括号包围,而且采用“公用日志格式”或者“标准英文格式”。 时间信息最后的“+0800”表示服务器所处时区位于UTC之后的8小时

方法

资源

协议

请求的方式:METHOD、GET、POST、HEAD等

请求的文件

请求的协议:HTTP+版本号

状态码

请求的状态码

发送的字节数

表示发送给客户端的总字节数。它告诉我们传输是否被打断(该数值是否和文件的大小相同)

Referer

从哪个页面链接过来的

User-Agent

使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等信息

在url中视图搜索所有关键词为“union”的请求,可以发现172.24.123.120在尝试SQL注入,类似,通过通过特殊的关键词搜索web攻击。如/etc/passwd,alert等。但单凭web日志无法判断攻击者是否攻击成功了,只能知道攻击者在尝试攻击;

 

查询访问量前十的IP地址:

查询访问量前十的URL:

统计访问量前十QPS的时间点:

 

在对WEB日志进行安全分析时,可以按照下面两种思路展开,逐步深入,还原整个攻击过程;

1)首先确定受到攻击、入侵的时间范围,以此为线索,查找这个时间范围内可疑的日志,进一步排查,最终确定攻击者,还原攻击过程;

2)一般攻击者在入侵网站后,通常会上传一个后门文件,以方便自己以后访问。我们也可以以该文件为线索来展开分析;

5.4、数据库日志

数据库日志以常用的数据库Mysql数据库为例。Mysql数据库有五种日志,错误日志、查询日志、慢查询日志、更新日志、二进制日志,重点关注查询日志;

查看是否开启查询日志:

 

 

查看数据库文件:路径为/var/log/mysql/,记录一次数据库的连接、查询和退出中间的数据库操作;

 

 

在查询语句中搜索所有关键词为“union”的请求,可以发现172.24.123.120在尝试SQL注入,类似,通过通过特殊的关键词搜索有无敏感的数据库操作。如读取/etc/passwd敏感文件,写webshsll等;

 

2.4.2.6、相关处置

通过网络连接锁定的可疑进程,进行定位恶意程序后删除(kill):

kill -9

对设定文件不能删除、改名等权限,移除该权限:

chattr –i

对发现的webshell和恶意文件进行删除:

 

 

注:以上大多转自破壳笔记学习资料,欢迎大家前来报名学习

 

posted @ 2019-07-18 00:02  klsfct  阅读(1324)  评论(0编辑  收藏  举报