赞
踩
很多种类的病毒都依赖网络进行传播和复制,并感染局域网中的大量终端。可以通过开放端口进行分析,有助于病毒对象的确认;下面提供一些常用的病毒使用的端口 信息,可以作为参考:
(1)查看环境 变量的设置
【我的电脑】➜【属性】➜【高级系统设置】➜【高级】➜【环境变量】
排查内容:temp变量的所在位置的内容;后缀映射PATHEXT是否包含有非windows的后缀;有没有增加其他的路径到PATH变量中(对用户变量和系统变量都要进行排查);
(2)Windows 计划任务
【程序】➜【附件】➜【系统工具】➜【任务计划程序】
(3)Windows帐号信息,如隐藏帐号等
【开始】➜【运行】➜【compmgmt.msc】➜【本地用户和组】➜【用户】 (用户名以$结尾的为隐藏用户,如:admin $)
lusrmgr.msc
命令行方式:net user,可直接收集用户信息(此方法看不到隐藏用户),若需查看某个用户的详细信息,可使用命令➜net user username;
(4)查看当前系统用户的会话
使用➜ query user 查看当前系统的会话,比如查看是否有人使用远程终端登录服务器;
logoff 踢出该用户;
(5)查看systeminfo 信息,系统版本以及补丁信息
例如系统的远程命令执行漏洞MS17-010(永恒之蓝)、MS08-067、MS09-001 …
若进行漏洞比对,建议使用Windows-Privilege-Escalation-Exploit;
http://blog.neargle.com/win-powerup-exp-index/
(1)PC Hunter 下载地址:http://www.xuetr.com/
PC Hunter是一个Windows系统信息查看软件
功能列表如下:
1.进程、线程、进程模块、进程窗口、进程内存信息查看,杀进程、杀线程、卸载模块等功能 2.内核驱动模块查看,支持内核驱动模块的内存拷贝 3.SSDT、Shadow SSDT、FSD、KBD、TCPIP、Classpnp、Atapi、Acpi、SCSI、IDT、GDT信息查看,并能检测和恢复ssdt hook和inline hook 4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除 5.端口信息查看,目前不支持2000系统 6.查看消息钩子 7.内核模块的iat、eat、inline hook、patches检测和恢复 8.磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除 9.注册表编辑 10.进程iat、eat、inline hook、patches检测和恢复 11.文件系统查看,支持基本的文件操作 12.查看(编辑)IE插件、SPI、启动项、服务、Host文件、映像劫持、文件关联、系统防火墙规则、IME 13.ObjectType Hook检测和恢复 14.DPC定时器检测和删除 15.MBR Rootkit检测和修复 16.内核对象劫持检测 17.WorkerThread枚举 18.Ndis中一些回调信息枚举 19.硬件调试寄存器、调试相关API检测 20.枚举SFilter/Fltmgr的回调
(2)ProcessExplorer
Windows系统和应用程序监视工具;
(3)Microsoft Network Monitor
一款轻量级网络协议数据分析工具;
(4)D盾Webshell 排查
(5)河马webshell查杀
(1)Windows登录日志排查
a)打开事件管理器
【开始】➜【管理工具】➜【事件查看】
【开始】➜【运行】➜【eventvwr】
b)主要分析安全日志,可以借助自带的筛选、查找、导出功能
可以把日志导出为文本格式,然后使用notepad++ 打开,使用正则模式去匹配远程登录过的IP地址,在界定事件日期范围的基础。
正则:
((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))
(2)IIS日志排查
a)查找IIS日志存放位置
【开始】➜【IIS管理器】➜【网站】➜【日志】
IIS7.0:%SystemDrive%\inetpub\logs\LogFiles
b)Log Parser 快速日志分析工具
Log Parser是一个用于日志文件分析的使用简单又强大的工具,多用于分析IIS web服务器的日志,支持基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件以及注册表、文件系统等内容,它可以把相应的分析结果以图形的形式展现出来,大大地方便了运营人员;
下载地址:
https://www.microsoft.com/en-us/download/confirmation.aspx?id=24659
用法:
LogParser.exe "select top 10 time, c-ip,cs-uri-stem, sc-status, time-taken from C:\Users\liuhao02\Desktop\应急\样本\iis.log" -o:datagrid
关于windows日志工具(log parser)有无图形界面版?
Log Parser Lizard 是一款用Vc++.net写的logParser增强工具。主要有以下特点:
a) 封装了logParser命令,带图形界面,大大降低了LogParser的使用难度。
b) 集成了几个开源工具,如log4net等。可以对IIS logs\EventLogs\active directory\log4net\File Systems\T-SQL进行方便的查询。
c) 集成了Infragistics.UltraChart.Core.v4.3、Infragistics.Excel.v4.3.dll等,使查询结果可以方便的以图表或EXCEL格式展示。
d) 集成了常见的查询命令,范围包含六大模块:IIS
e) 可以将查询过的命令保存下来,方便再次使用。
(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) 查看开机启动项内容,/etc/init.d 是 /etc/rc.d/init.d 的软链接
ls -alt /etc/init.d/
(4) 按时间排序查看指定目录下文件
ls -alt | head -n 10
针对可疑文件可以使用stat进行创建修改时间、访问时间的详细查看,若修改时间距离事件日期接近,有线性关联,说明可能被篡改或者其他。
stat /etc/passwd
(1)Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。
(2)Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
(3)Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
(5) 查看历史命令记录文件~/.bash_history
查找~/.bash_history命令执行记录,主要分析是否有账户执行过恶意操作系统;命令在linux系统里,只要执行过命令的用户,那么在这个用户的HOME目录下,都会有一个.bash_history的文件记录着这个用户都执行过什么命令;
cat /root/.bash_history
(6) 查看操作系统用户信息文件/etc/passwd
查找/etc/passwd文件, /etc/passwd这个文件是保存着这个linux系统所有用户的信息,通过查看这个文件,我们就可以尝试查找有没有攻击者所创建的用户,或者存在异常的用户。我们主要关注的是第3、4列的用户标识号和组标识号,和倒数一二列的用户主目录和命令解析程序。一般来说最后一列命令解析程序如果是设置为nologin的话,那么表示这个用户是不能登录的,所以可以结合我们上面所说的bash_history文件的排查方法。首先在/etc/passwd中查找命令解释程序不是nologin的用户,然后再到这些用户的用户主目录里,找到bash_history,去查看这个用户有没执行过恶意命令。
cat /etc/passwd
(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天前
查找24小时前被修改的php文件
find ./ -mtime +0 -name "\*.php"
查找72小时内新增的文件
(PS:-ctime 内容未改变权限改变时候也可以查出)
find / -ctime 2
grep 一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
-v 反转查找
-E 使用正则表达式选项
-n 输出包含匹配字符串的行数
--color=auto 标记匹配颜色
tail 查看档案的结尾,默认显示最后十行
tail -f /var/log/nps.log
-f 动态显示文件最新追加的内容;
(8) 特殊权限的文件查看
查找777 的权限的文件
find / -perm 777 | more
(9)隐藏的文件 (以 "."开头的具有隐藏属性的文件)PS:在文件分析过程中,手工排查频率较高的命令是 find grep ls 核心目的是为了关联推理出可疑文件
ls /etc -ar | grep "^\."
(1)使用top命令 实时动态地查看系统的整体运行情况,主要分析CPU和内存多的进程,是一个综合了多方信息监测系统性能和运行信息的实用工具
字段含义如下表:
(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 结合:
先用neststat查看外联进程,然后使用ps命令查看对应进程信息及所在位置
netstat -antlp
ps aux |grep 40634
可以使用lsof -i:1677 查看指定端口对应的程序
lsof(list openfiles)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息。
lsof filename 显示打开指定文件的所有进程
lsof -i 用以显示符合条件的进程情况,在终端下输入lsof即可显示系统打开的文件,因为 lsof需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
(4)使用ls 以及 stat 查看系统命令是否被替换
两种思路:
1、查看命令目录最近的时间排序
2、根据确定时间去匹配
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
(1)查看分析history ,曾经的命令操作痕迹,以便进一步排查溯源。运气好有可能通过记录关联到如下信息:
a) wget 远程某主机(域名&IP)的远控文件;
b) 尝试连接内网某主机(ssh scp),便于分析攻击者意图;
c) 打包某敏感数据或代码,tar zip 类命令
d) 对系统进行配置,包括命令修改、远控木马类,可找到攻击者关联信息…
cat /root/.bash_history
(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文件)
通过crontab –l 查看当前的任务计划有哪些,是否有后门木马程序启动相关信息;
查看etc目录任务计划相关文件,ls /etc/cron*
(4)查看linux 开机启动程序
查看rc.local文件(/etc/init.d/rc.local /etc/rc.local)
ls –alt /etc/init.d/
(5)查看系统用户登录信息
a)使用lastlog命令,系统中所有用户最近一次登录信息。
b) 使用lastb命令,用于显示用户错误的登录列表;
c) 使用last命令,用于显示用户最近登录信息
(6)系统路径分析
echo $PATH
分析有无敏感可疑信息
(7)查看ssh相关目录有无可疑的公钥存在
Redis(6379) 未授权恶意入侵,即可直接通过redis到目标主机导入公钥;
目录: /etc/ssh ./.ssh/
通过文件内容中的危险函数,去找到网站中的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只有几个,并且访问的次数也不多,那么根据这个分析模型,我们就可以发现可能是恶意的动态脚本文件。此排查需要懂一点了解编程,作为思路了解。
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 紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
***93道网络安全面试题***
![](https://img-blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png)
![](https://img-blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png)
![](https://img-blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png)
内容实在太多,不一一截图了
### 黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/586346
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。