【攻防技术系列+反溯源】入侵痕迹清理

news/2024/7/4 16:21:35/文章来源:https://www.cnblogs.com/o-O-oO/p/18271286

#溯源 #入侵痕迹清理 #攻防演练

在授权攻防演练中,攻击结束后,如何不留痕迹的清除日志和操作记录,以掩盖入侵踪迹,这其实是一个细致的技术活。
在蓝队的溯源中,攻击者的攻击路径都将记录在日志中,所遗留的工具也会被蓝队进行分析,在工具中可以查找特征,红队自研工具更容易留下蛛丝马迹。

你所做的每一个操作,都要被抹掉;你所上传的工具,都应该被安全地删掉,以防被溯源在演练中失分。

一、Windows入侵痕迹清理

1.1 Windows日志清除

【系统日志】:%SystemRoot%\System32\Winevt\Logs\System.evtx
【安全日志】:%SystemRoot%\System32\Winevt\Logs\Security.evtx
【应用程序日志】:%SystemRoot%\System32\Winevt\Logs\Application.evtx
【日志在注册表的键】:HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Eventlog

1.2 windows日志清除方式`:

(1)最简单粗暴的方式

开始→运行,输入 eventvwr 进入事件查看器,右边栏选择清除日志。

或者使用wevtutil

wevtutil el             列出系统中所有日志名称
for /F "tokens=*" %a in ('wevtutil.exe el') DO wevtutil.exe cl "%a"  清除所有日志
wevtutil cl system      清理系统日志
wevtutil cl application 清理应用程序日志
wevtutil cl security    清理安全日志

(2)powershell一键清除Windows事件日志


PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}"
或
Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}

(3)利用脚本停止日志的记录

通过该脚本遍历事件日志服务进程(专用svchost.exe)的线程堆栈,并标识事件日志线程以杀死事件日志服务线程。

该脚本没有杀死进程,而是杀死了线程。因此,虽然事件日志服务似乎在系统中运行(因为没有终止进程),但它实际上并没有运行(因为终止了线程)并且系统不收集日志。

项目地址:hlldz/Phant0m: Windows Event Log Killer (github.com)

使用:

执行phant0m之后,尝试远程登录该服务器,并不会记录日志

(4)Windows单条日志清除

项目地址:QAX-A-Team/EventCleaner: A tool mainly to erase specified records from Windows event logs, with additional functionalities. (github.com)

该工具主要用于从Windows事件日志中删除指定的记录。同时也可以暂停日志线程,停止日志记录。

使用步骤:

1、EventCleaner closehandle   #解除 security.evtx的文件占坑
2、EventCleaner 100           #删除 event record id 为 100 的日志
3、EventCleaner suspend       #暂停日志线程,停止日志记录
4、do anything without worrying about logs
5、EventCleaner normal        #恢复日志线程
6、delete EventCleaner


(5)Windows日志伪造

使用eventcreate这个命令行工具来伪造日志或者使用自定义的大量垃圾信息覆盖现有日志。

eventcreate -l system -so administrator -t warning -d "this is a test" -id 500

IIS默认日志路径:

%SystemDrive%\inetpub\logs\LogFiles\W3SVC1\

清除WWW日志:

停止服务:net stop w3svc
删除日志目录下所有文件:del *.*
启用服务:net start w3svc

利用Windows自带命令进行安全擦除

(1)Shift+Delete快捷键永久删除

直接删除文件,还是能在回收站找到的,使用Shift+Delete快捷键可以直接永久删除了。

可以用数据恢复软件,删除的文件尽快恢复,否则新的文件存入覆盖了原来的文件痕迹就很难恢复了。
(2)Cipher 命令多次覆写

在删除文件后,可以利用Cipher 命令通过 /W 参数可反复写入其他数据覆盖已删除文件的硬盘空间,彻底删除数据防止被恢复。

比如,删除D:\tools目录下的文件,然后执行这条命令:

cipher /w:D:\tools

这样一来,D 盘上未使用空间就会被覆盖三次:一次 0x00、一次 0xFF,一次随机数,所有被删除的文件就都不可能被恢复了。
(3)Format命令覆盖格式化

Format 命令加上 /P 参数后,就会把每个扇区先清零,再用随机数覆盖。而且可以覆盖多次。比如:

format D: /P:8

这条命令表示把 D 盘用随机数覆盖 8 次。

清除远程桌面连接记录

当通过本机远程连接其他客户端或服务器后,会在本机存留远程桌面连接记录。代码保存为clear.bat文件,双击运行即可自动化清除远程桌面连接记录。

@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
cd %userprofile%\documents\
attrib Default.rdp -s -h
del Default.rdp

Metasploit 痕迹清除

(1)查看事件日志

meterpreter > run event_manager  -i   
[*] Retriving Event Log Configuration
Event Logs on System
====================Name                    Retention  Maximum Size  Records----                    ---------  ------------  -------Application             Disabled   20971520K     2149HardwareEvents          Disabled   20971520K     0Internet Explorer       Disabled   K             0Key Management Service  Disabled   20971520K     0Security                Disabled   20971520K     1726System                  Disabled   20971520K     3555Windows PowerShell      Disabled   15728640K     138

(2)清除事件日志(包括六种日志类型)

meterpreter > run event_manager  -c

(3)另外,也可以输入clearv命令清除目标系统的事件日志(仅包含三种日志类型)

meterpreter > clearev 
[*] Wiping 4 records from Application...
[*] Wiping 8 records from System...
[*] Wiping 7 records from Security...

清除recent

在文件资源管理器中点击“查看”->“选项”->在常规->隐私中点击”清除”按钮
或直接打开C:\Users\Administrator\Recent并删除所有内容
或在命令行中输入del /f /s /q “%userprofile%\Recent*.*

二、Linux入侵痕迹清理

( #管理员 $普通用户 / 表示 根目录 ~表示当前用户家目录)
清除history历史命令记录

查看历史操作命令:

history

history:显示内存和~/.bash_history中的所有内容;
内存中的内容并没有立刻写入~/.bash_history,只有当当前shell关闭时才会将内存内容写入shell

(1)编辑history记录文件,删除部分不想被保存的历史命令。

vim ~/.bash_history

(2)清除当前用户的history命令记录


history -c  # 删除内存中的所有命令历史
history -r  # 删除当前会话历史记录

(3)利用vim特性删除历史命令

#使用vim打开一个文件vi test.txt# 设置vim不记录命令,Vim会将命令历史记录,保存在viminfo文件中。:set history=0# 用vim的分屏功能打开命令记录文件.bash_history,编辑文件删除历史操作命令:vsp ~/.bash_history# 清楚保存.bash_history文件即可。

(4)在vim中执行自己不想让别人看到的命令

:set history=0
:!command

不记录history历史命令

(1)通过修改配置文件/etc/profile,使系统不再保存命令记录。

HISTSIZE=0

(2)登录后执行下面命令,不记录历史命令(.bash_history)

unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0

清除系统日志痕迹

Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志。


/var/run/utmp 记录现在登入的用户,使用w,who,users等命令查看
/var/log/wtmp 记录用户所有的登入和登出,使用last命令查看
/var/log/lastlog 记录每一个用户最后登入时间,使用lastlog命令查看
/var/log/btmp 记录所有登录失败信息,使用lastb命令查看
/var/log/auth.log 需要身份确认的操作
/var/log/secure 记录安全相关的日志信息
/var/log/maillog 记录邮件相关的日志信息
/var/log/message 记录系统启动后的信息和错误日志
/var/log/cron 记录定时任务相关的日志信息
/var/log/spooler 记录UUCP和news设备相关的日志信息
/var/log/boot.log 记录守护进程启动和停止相关的日志消息

(1)清空日志文件

以下几种方式:

cat /dev/null > filename
echo "" > filename
echo > filename
: > filename
> filename

(2)替换/删除部分日志

日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。

替换:

# 192.168.100.101为攻击者IP,10.0.0.55为伪造IP,-i编辑文件
sed 's/192.168.100.101/10.0.0.55/g' -i /var/log/btmp*
sed 's/192.168.100.101/10.0.0.55/g' -i /var/log/lastlog
sed 's/192.168.100.101/10.0.0.55/g' -i /var/log/wtmp
sed 's/192.168.100.101/10.0.0.55/g' -i secure
sed 's/192.168.100.101/10.0.0.55/g' -i /var/log/utmp

删除:

# 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip
sed  -i '/自己的ip/'d  /var/log/messages
sed  -i '/当天日期/'d  filename

一键清除history和系统日志脚本

#!/usr/bin/bash
echo > /var/log/syslog
echo > /var/log/messages
echo > /var/log/httpd/access_log
echo > /var/log/httpd/error_log
echo > /var/log/xferlog
echo > /var/log/secure
echo > /var/log/auth.log
echo > /var/log/user.log
echo > /var/log/wtmp
echo > /var/log/lastlog
echo > /var/log/btmp
echo > /var/run/utmp
rm ~/./bash_history
history -c

清除web日志痕迹

web日志同样可以使用sed进行伪造,例如apache日志、MySQL日志、php日志

sed 's/192.168.100.101/10.0.0.55/g' –i /var/log/apache/access.log
sed 's/192.168.100.101/10.0.0.55/g' –i /var/log/apache/error_logsed 's/192.168.100.101/10.0.0.55/g' –i /var/log/mysql/mysql_error.log
sed 's/192.168.100.101/10.0.0.55/g' –i /var/log/mysql/mysql_slow.logsed 's/192.168.100.101/192.168.1.4/g' –i /var/log/apache/php_error.log

清除部分相关日志:

# 使用grep -v来把我们的相关信息删除
cat /var/log/nginx/access.log | grep -v evil.php > tmp.log
# 把修改过的日志覆盖到原日志文件
cat tmp.log > /var/log/nginx/access.log/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/732431.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ProfibusDP主站转Modbus模块连接综合保护装置配置案例

常见的协议有Modbus协议,ModbusTCP协议,Profinet协议,Profibus协议,Profibus DP协议,EtherCAT协议,EtherNET协议等。本案例描述了如何使用ProfibusDP主站转Modbus模块(XD-MDPBM20)来连接综合保护装置(综保),实现数据交换和远程控制。通过配置ProfibusDP主站和Modbus…

HL集训日记(更新ing)

Day -inf 听说又要去海亮,感到恐慌,想起了被xxs碾压的日子,遂卷; Day -1 与学校说再见 Day 0 去机场,这次倒是没有人迟到力; 下大雨,冷,明明天气预报上气温是比DL热的,却这么冷!!! 到了HL,这回住进了24小时摆烂中心(确信,空调吹得好难受,,, gg并没有收手机,…

【计算机网络】TCP如何保证稳定性

连接管理 校验和 序列号/确认应答 流量控制 最大消息长度 超时重传 拥塞控制资料来源连接管理 TCP 使用三次握手和四次挥手保证可靠地建立连接和释放连接。 校验和 TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果接收端…

数据分析 | 数据清理的方法

数据清理的步骤# 一、读取数据 导入NumPy和Pandas数据库,用Pandas的read_csv函数读取原始数据集’e_commerce.csv’,使其转换成DataFrame格式,并赋值给变量df。 展示数据集的前5行和后5行。# 二、评估数据(整洁度、干净度) 创建一个新的变量cleaned_data = df(相当于复制…

iMovie视频剪辑入门

iMovie学习笔记自己不是摄影爱好者📹(也许以后是,说不准),想学视频剪辑的原因如下:大一的一些小组作业有拍视频的任务,有时需要我承担剪辑的工作。因为不熟练,只能用剪映瞎折腾,浪费不少时间。系统地学习可以让我更好地完成剪辑工作。 想了解iMovie本身。本文是我的i…

域渗透之CSMSF联动权限传递

cs与msf会话的相互派生,记个笔记以免忘记具体的操作。cs派生给msf环境:msf6 + cs4.8条件:目标已上线cs,获得控制权1)在msf上启用reverse_http模块监听本地端口: use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.88.128 set l…

免费可视化工具能为我们的工作带来什么好处?

免费可视化工具能为我们的工作带来什么好处?在如今数据密集的工作环境中,如何高效地处理和展示数据成为了每个行业的重要任务。传统的工具如Excel虽然强大,但在处理复杂数据和创建高级图表时往往显得力不从心。而免费可视化工具的出现,彻底改变了这一局面,不仅大大提升了工…

MCU点灯实验小结

设备采用芯片:STM32F407ZET6 4个LED灯,网络标号分别为LED0 ,LED1,FSMC D10,FSMC D11。对应的引脚号分别为PF9,PF10,PE12,PE13。 GPIO外设基本概念 General-Purpose Input Output,通用型输入输出的,也简称I/O口,有时也简写为IO口。用于电信号的传递,以实现与外部器件的通信…

南昌航空大学-23201406-耿乐-第三次OOP博客作业

对于最后两次题目集中的题目和做题情况的总结,包括电路模拟程序3和4。 一、前言总结两次题目集的题目情况关于题目集 最后两次题目集中都只有一道题目,是电路模拟程序的系列迭代,没有额外的题目。 题目本身 第七次题目集中的电路模拟3并不是太难,只要理清题目中的要求和电路…

记录c#开发Windows服务的过程

1.新建Windows服务项目 2.重命名Service1.cs 3.添加安装程序 4.修改service,修改信息如下:备注:ServiceName和安装后的服务名保持一致哦!!!5.修改serviceProcessInstaller1 6.编辑TransService代码 7.添加新项目窗体应用程序 代码:1 using System;2 using System.Win…

操作系统启动的过程

目录操作系统,启动!大致过程重要程序bootsect.ssetup.shead.s 操作系统,启动! 大致过程 ​ 计算机的工作方式是取指执行,而执行其的前提是内存中有代码。操作系统刚开始并不是在内存中,而是在磁盘上,因此第一步需要将其以一定的方式从磁盘读入内存。(1)x86PC刚开机时C…

(我个人的)atcoder我的补题记录汇总

2024.06.27 : 根据题目难度和standing最后提交人数是否补题,大概在难度600及以下的 补完2024.06.22及之前的

最近在读《谁说菜鸟不会数据分析 SPSS篇》pdf分享

《谁说菜鸟不会数据分析(SPSS篇)》继续采用职场三人行的方式来构建内容,细致梳理了准专业数据分析的常见问题,并且挑选出企业实践中最容易碰到的案例,以最轻松直白的方式来讲好数据分析的故事。谁说菜鸟不会数据分析 SPSS篇 《谁说菜鸟不会数据分析(SPSS篇)》继续采用职…

TypeScript实现贪吃蛇效果

项目参考教程:贪吃蛇案例1.项目搭建 1.1 项目结构搭建 创建一个名为xxx的项目 项目初始化 npm init -y 安装后面需要用到的依赖,在package.json中查看 项目根目录创建名为tsconfig.json的文件并更改内容如下: {"compilerOptions": {"module": "ES2…

m基于Googlenet深度学习的运动项目识别系统matlab仿真,包括GUI界面

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要基于GoogLeNet深度学习的运动项目识别系统,是利用深度神经网络技术,尤其是GoogLeNet架构,来自动识别视频或图像中的人类运动类型的过程。GoogLeNet(也称为Inception网络)在2014年由Google团队提出,因其高…

模拟集成电路设计系列博客——7.5.6 时间交错型ADC

7.5.6 时间交错型ADC 我们可以通过将多个ADC做并行来实现非常高速的ADC[Black, 1980]。下图展示了一个四通道时间交错型ADC的架构图:此处,\(\phi_0\)是一个四倍于\(\phi_1\)到\(\phi_4\)的速率的时钟。此外,\(\phi_1\)到\(\phi_4\)彼此都落后一个\(\phi_0\)的周期。这样每个…

(构造) CF1758D Range = √Sum

题意:思路:先钦定这个序列的和为4n^{2} ,那么差值就是2n 考虑一个初始序列1,2,3,⋯,n−1,2n+1.现在我们要做的就是将这个序列变成合法的我可以进行整体都+x的操作使得这个序列的和尽量逼近4n^{2}。直接算出每个数应该加上的x,还会有一点剩余,加到a[n-1]上即可,a[n-1]+n=…

Java探秘:揭秘栈帧的神秘面纱与内存占用之谜

哈喽,大家好,我是木头左!深入理解Java栈帧 在Java虚拟机(JVM)的运行时数据区中,每一个线程都有自己的栈(Stack),而栈中的每一个元素就是一个栈帧(Stack Frame)。当一个方法被调用时,一个新的栈帧会被创建并压入到栈中。这个栈帧包含了方法的局部变量、参数以及返回地…

数据库和Flask项目搭建

1 sqlalchemy原生操作 # 操作原生sql ---》用得少 import pymysql import threading # 1 导入 from sqlalchemy import create_engine from sqlalchemy.engine.base import Engine # 2 创建引擎 engine = create_engine("mysql+pymysql://root:1234@127.0.0.1:3306/cnblog…

flask定制Excel命令

定制excel命令并插入到数据库中 import osfrom flask import Flask from flask.cli import AppGroup import click import pymysql from openpyxl import load_workbookapp = Flask(__name__)@app.cli.group() def excel():"""Excel related commands."&qu…