Yikjiang2025-04-11文章来源:SecHub网络安全社区
当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。
WEB入侵:网页挂马、主页篡改、Webshell
系统入侵:病毒木马、勒索软件、远控后门
网络攻击:DDOS攻击、DNS劫持、ARP欺骗
注意事项:弱口令、3389 等端口是否对外
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\
* 使用命令添加隐藏用户
net user test$ 123456 /add
net localgroup administrators test$ /add
- <font style="background-color:#FBDE28;">删除用户的方式,以及测试隐藏控制面板后D盾是否可以删除账号。</font>
- [https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%B8%90%E6%88%B7%E9%9A%90%E8%97%8F](https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%B8%90%E6%88%B7%E9%9A%90%E8%97%8F)
eventvwr.msc,然后使用 Log Parser 进行日志审计。
BTW:可以通过改注册表的方式,来建立隐藏的账户
检查端口连接情况,查看是否有远程连接,可以连接,查到可疑的IP的时候,可以使用微步在线进行查找。
netstat -ano
-a (all)显示所有选项,默认不显示LISTEN相关
-n 显示拥有的与每个连接关联的进程 ID
-o 显示拥有的与每个连接关联的进程 ID
"LISTENING":表示监听。即:这个端口正在开放 可以提供服务
"CLOSING":表示关闭的。即:表示端口人为或者防火墙使其关闭(也许服务被卸载)
"TIME WAIT":表示正在等待连接。即:你正在向该端口发送请求连接状态
"ESTABLISHED":表示是对方与你已经连接。即:正在通信交换数据
检查方法:
netstat -ano | findstr ESTABLISHE
tasklist | findstr "PID"
netstat -rn
msinfo32
查看系统信息及其补丁 systeminfo
msinfo32 然后依次打开->软件环境->正在运行的任务 进程路径、进程ID、文件创建日期、启动时间
显示 进程--PID--服务 tasklist tasklist | findstr PID
打开D盾进程查看,重点关注一下信息。
没有前面验证信息的进程 没有描述信息的进程 进程的属主 进程的路径是否合法 CPU或内存占用时间过长或过高的进程
taskkill /f /pid 123 /t
taskkill /f /im explorer.exe /t
wmic process
win+i 应用 启动
msconfig
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
win+r gpedit.msc 依次选择 【计算机配置】【Windows 设置】【脚本】【启动】
红色:表示该条目对应的应用没有数字签名、签名不匹配或没有发行商信息
黄色:表示该启动条目对应的文件已经不存在了
绿色:表示与之前保存的启动项配置比较,对比出来的差异将以绿色高亮进行显示。
services.msc
回收站
浏览器的下载记录、浏览记录
时间排序,查看最新的文件
修改时间在创建时间前的文件
可参考
compmgmt.msc---计算机管理 【包括 计划任务、事件查看器、共享文件夹、本地用户和组、设备管理器、磁盘管理、服务、WMI】
devmgmt.msc----设备管理器 【包含于compmgmt】
lusrmgr.msc----本地用户和组【包含于compmgmt】4. perfmon.msc----计算机性能监测程序 【包含于compmgmt】
diskmgmt.msc---磁盘管理实用程序 【包含于compmgmt】
fsmgmt.msc-----共享文件夹管理器 【包含于compmgmt】
services.msc---本地服务设置 【包含于compmgmt】
eventvwr.msc---事件查看器 【包含于compmgmt】
wmimgmt.msc----打开windows管理体系结构(WMI) 【包含于compmgmt】
gpedit.msc----组策略
regedt------注册表编辑器
Msconfig.exe--系统配置实用程序 【包括引导、服务、启动项和工具】
rsop.msc------组策略结果集
dcomcnfg------打开系统组件服务 【包括 组件服务、事件查看器、服务】
wscript-------windows脚本宿主设置
certmgr.msc---证书管理实用程序 【排查电脑内恶意证书】
secpol.msc----本地安全策略
sigverif------文件签名验证程序 【可以快速筛选出来没有通过签名验证的程序】
explorer-------打开资源管理器
notepad--------打开记事本
charmap--------打开字符映射表
calc-----------打开计算器
taskmgr--------打开任务管理器
mstsc----------远程桌面连接
write----------打开写字板
mspaint--------打开画图板
magnify--------放大镜实用程序
mmc-----------打开控制台
Sndvol32------打开音量控制程序
eudcedit------打开造字程序
cliconfg------SQL SERVER 客户端网络实用程序
osk-----------打开屏幕键盘
1odbcad32------ODBC数据源管理器
iexpress------捆绑工具,系统自带【可以用来制作免杀马】
cleanmgr-------打开磁盘清理工具 chkdsk.exe-----Chkdsk磁盘检查
dxdiag---------检查DirectX信息 winver---------检查Windows版本 sfc /scannow---扫描错误并复原 sfc.exe--------系统文件检查器
查看域中当前的主机列表:
net view /domain
查看当前域中的用户
net user /domain
增加一个本地用户
net user username password /add
将新增的用户加到本地管理员组
net localgroup "Administrators" username /add
查看域中的密码策略
net accounts /domain
查看本地组
net localgroup "Group"
查看域中的组信息
net group /domain
查看域中指定组的成员
net group "Domain group" /domain
查看当前机器所在的域名
net config workstation
查看当前服务器所在的域名
net config server
显示系统信息 systeminfo 查看远程主机的系统信息 systeminfo /S ip /U domain\user /P Pwd 显示进程和服务信息 tasklist /svc 显示所有进程以及DLL信息 tasklist /m 显示进程和所有者 tasklist /v 查看远程主机的进程列表 tasklist /S ip /v 显示具体的服务信息(包括二进制路径和运行使用) sc qc Spooler
查看网络信息
ipconfig
打印路由表
route print
保存当前主机上的所有WiFi信息
netsh wlan export profile folder=. key=clear
设置当前配置禁用防火墙
netsh advfirewall set currentprofile state off
设置端口转发
netsh interface portproxy add v4tov4 listenport=3000 listenaddress=l.l.l.l connectport=4000 connectaddress=2.2.2.2
启用远程访问
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
启用远程协助
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f
修改远程访问端口
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 12345 /f
1、用户信息文件/etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
注意:无密码只允许本机登陆,远程不允许登陆
2、影子文件/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
who 查看当前登录用户(tty本地登陆 pts远程登录) w 查看系统信息,想知道某一时刻用户的行为 uptime 查看登陆多久、多少用户,负载
查询特权用户(uid 为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
查询可以远程登录的帐号信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
禁用或删除多余及可疑的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel user 删除user用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除
通过.bash_history查看帐号执行过的系统命令
1、root的历史命令
histroy
2、打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令
为历史的命令增加登录的IP地址、执行命令时间等信息:
1)保存1万条命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的文件尾部添加如下行数配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########
3)source /etc/profile让配置生效
生成效果: 1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profile
3、历史操作命令的清除:history -c
但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录。
进入用户目录下 cat .bash_history >> history.txt
使用netstat 网络连接命令,分析可疑端口、IP、PID
netstat -pantu | more 查看下pid所对应的进程文件路径, 运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)
使用ps命令、分析进程
ps -aux | grep pid
系统运行级别示意图
运行级别 | 含义 |
---|---|
0 | 关机 |
1 | 单用户模式【类似于Windows安全模式,用于系统修复】 |
2 | 不完全的命令行模式,不含NFS服务 |
3 | 完全的命令行模式,标准字符界面 |
4 | 系统保留 |
5 | 图形模式 |
6 | 重启动 |
查看运行级别命令 runlevel
系统默认允许级别
vi /etc/inittab
id=3:initdefault 系统开机后直接进入哪个运行级别
开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d
例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的。
启动项文件:
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/
利用crontab创建计划任务
crontab -l 列出某个用户cron服务的详细内容
Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root
crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件
分钟 小时 日期 月份 星期
如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件
*: 表示所有可能的值。例如,* * * * * 表示每分钟都运行一次。
*/n: 表示每 n 个时间单位运行一次。例如,*/5 * * * * 表示每 5 分钟运行一次。
n: 表示特定的时间单位。例如,30 3 * * 1 表示在星期一的凌晨 3 点 30 分执行任务。
重点关注以下目录中是否存在恶意脚本
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/*
小技巧
more /etc/cron.daily/* 查看目录下所有文件
方法一
chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig –level 2345 httpd on 开启自启动
chkconfig httpd on (默认level是2345)
方法二
修改/etc/re.d/rc.local 文件 加入 /etc/init.d/httpd start
方法三
使用ntsysv命令管理自启动,可以管理独立服务和xinetd服务。
1、查询已安装的服务
RPM包安装的服务
chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务
系统在3与5级别下的启动项
中文环境
chkconfig --list | grep "3:启用\|5:启用"
英文环境
chkconfig --list | grep "3:on\|5:on"
源码包安装的服务
查看服务安装位置 ,一般是在/user/local/ service httpd start 搜索/etc/rc.d/init.d/ 查看是否存在
8.1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“…”为名的文件夹具有隐藏属性
8.2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
找出 /opt 下一天前访问过的文件
find /opt -iname "*" -atime 1 -type f
8.3、针对可疑文件可以使用stat进行创建修改时间。
日志默认存放位置/var/log
查看日志配置情况
more /etc/rsyslog.conf
日志文件 | 说明 |
---|---|
/var/log/cron | 记录了系统定时任务相关的日志 |
/var/log/cups | 记录打印信息的日志 |
/var/log/dmesg | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/mailog | 记录邮件信息 |
/var/log/message | 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系 统出现问题时,首先要检查的就应该是这个日志文件 |
/var/log/btmp | 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看 |
/var/log/lastlog | 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要 使用lastlog命令查看 |
/var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文 件也是一个二进制文件,不能直接vi,而需要使用last命令来查看 |
/var/log/utmp | 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登 录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询 |
/var/log/secure | 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换 用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
日志分析技巧
1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more
2、登录成功的IP有哪些
grep "Accepted" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/auth.log | awk '{print $1,$2,$3,$9,$11}'
河马webshell查杀:http://www.shellpub.com
深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html
a.chkrootkit
使用方法:
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense
#编译完成没有报错的话执行检查
./chkrootkit
b.rkhunter
网址:http://rkhunter.sourceforge.net
使用方法:
Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
tar -zxvf rkhunter-1.4.4.tar.gz
cd rkhunter-1.4.4
./installer.sh --install
rkhunter -c
https://github.com/grayddq/GScan
https://github.com/ppabc/security_check
https://github.com/T0xst/linux
当网站服务器被入侵时,我们需要一款Webshell检测工具,来帮助我们发现webshell,进一步排查系统可能存在的安全漏洞。
阿D出品,使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为。
兼容性:只提供Windows版本。
专注webshell查杀研究,拥有海量webshell样本和自主查杀技术,采用传统特征+云端大数据双引擎的查杀技术。查杀
速度快、精度高、误报低。
兼容性:支持Windows、linux,支持在线查杀。
http://tools.bugscaner.com/killwebshell/
试想一下,如果你的网站被入侵,攻击者留下隐藏的后门,你真的都可以找出来嘛?面对一个大中型的应用系统,数以百万级的代码行,是不可能做到每个文件每段代码进行手工检查的。即使是一款拥有99.9%的Webshell检出率的检测引擎,依然可能存在Webshell绕过的情况。另外,像暗链、网页劫持、页面跳转等常见的黑帽SEO手法,也很难通过手动检测或工具检测全部识别出来。最好的方式就是做文件完整性验证。通过与原始代码对比,可以快速发现文件是否被篡改以及被篡改的位置。当然,第一个前提是,你所在的团队已具备代码版本管理的能力,如果你是个人站长,相信你已经备份了原始代码。
下载D盾_Web查杀工具的时候,我们可以留意到下载的压缩包里,除了有一个exe可执行文件,还有一个文件md5值。这个是软件作者在发布软件时,通过md5算法计算出该exe文件的“特征值”。
下载地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip
文件MD5:29285decadbce3918a4f8429ec33df46 WebShellKill.exe
当用户下载软件时,可以使用相同的校验算法计算下载到exe文件的特征值,并与软件开发者发布的特征值比较。如果两个特征值相同,则认为下载到的exe文件是正确的。如果两个特征值不同,则认为下载到exe文件是被篡改过的。那同理可得,我们可以将所有网站文件计算一次hash值保存,当出现应急情况时,重新计算一次hash值,并与上次保存的hash值进行对比,从而输出新创建的、修改过及删除的文件列表。
文件hash值计算:
import hashlib
import os
def md5sum(file):
m = hashlib.md5()
if os.path.isfile(file):
with open(file, 'rb') as f:
for line in f:
m.update(line)
else:
m.update(file.encode('utf-8'))
return m.hexdigest()
def md5sum_for_directory(directory):
file_md5_dict = {}
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
md5 = md5sum(file_path)
file_md5_dict[file_path] = md5
return file_md5_dict
if __name__ == "__main__":
directory_path = 'your_directory_path_here' # 替换为你的文件夹路径
md5_dict = md5sum_for_directory(directory_path)
for file_path, md5 in md5_dict.items():
print(f"文件: {file_path}, MD5 校验和: {md5}")
对文件进行哈希值重新计算,进行校验对比,测试效果:
HashTool_v1.4.0
如上图,在上传目录新增了一个evil.php文件,还有一个被篡改的文件是low.php。使用常见的编辑器NotePad++进行对比,可以发现low.php文件里被插入了一句话webshell。
在linux中,我们经常使用diff来比较两个文本文件的差异。同样,我们可以通过一行命令快速找出两个项目文件的差异(如果只是想查看两个文件是否不同又不想显示差异之处的话,可以加上-q选项。)。
diff -c -a -r cms1 cms2
版本控制工具,比如说git,重新上传代码到git,add+commit+push,然后打开项目,点击commits,在历史提交版本里面,查看文件更改内容,很容易就可以发现代码被篡改的地方了。
另外,也可以通过git diff 用来比较文件之间的不同
代码对比工具,你会找到很多好用的工具,这里我们推荐两款效果还不错的工具,Beyond Compare和
WinMerge。
Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件,并将差异以
颜色标示,比较范围包括目录,文档内容等。
下载地址:http://www.scootersoftware.com/download.php
在双边栏输入文件夹路径,点击显示差别,列出差异部分的内容,紫色部分为新增文件,红色部分为篡改文件。
双击具体文件,进入代码对比,找到代码差异部分。
WinMerge是一款运行于Windows系统下的文件比较和合并工具,使用它可以非常方便地比较文件夹和文件,以易于理解的可视文本格式显示差异。
下载地址:https://winmerge.org/downloads/
文件–打开,选择文件或文件夹,然后点击进行比较。
在同一个界面里,通过颜色和文本提示,显示文件夹内容差异。
经常会有一些小伙伴问:中了勒索病毒,该怎么办,可以解密吗?
本文整理了一份勒索病毒自救指南,通过勒索病毒索引引擎查找勒索病毒相关信息,再通过各个安全公司提供的免费勒索软件解密工具解密。当然,能否解密全凭运气,so,平时还是勤打补丁多备份。
在勒索病毒搜索引擎输入病毒名、勒索邮箱、被加密后文件的后缀名,或直接上传被加密文件、勒索提示信息,即可快速查找到病毒详情和解密工具。这些网站的解密能力还在持续更新中,是值得收藏的几个勒索病毒工具型网站。
【360】 勒索病毒搜索引擎,支持检索超过800种常见勒索病毒
https://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
FireKylin中文名称叫:火麒麟,其实跟某氪金游戏火麒麟并没有关系,作为国产的网络安全工具名称取自中国神兽:麒麟。寓意是希望能够为守护中国网络安全作出一份贡献。其功能是收集操作系统各项痕迹,支持Windows和Linux痕迹收集其作用是为分析研判安全事件提供操作系统数据。其目的是让任何有上机排查经验和无上机排查经验的人都可以进行上机排查安全事件。
1、解压打开agent文件夹,找到对应系统的工具,在目标主机上运行
2、 双击FireKylinAgentWindows-x64,自动启动DOS窗口,输入start,开始采集信息,会生成一个.fkld文件
3、导入数据文件
4、加载完成后,即可看到各类信息