键盘记录器数据存储在ADS中 - SANS互联网风暴中心
发布:2025-07-15 | 最后更新:2025-07-15 07:32:44 UTC
作者:Xavier Mertens
我发现了一个简单的Python键盘记录器,它使用ADS来存储捕获的击键:
1
2
3
4
|
hidden_dir = os.path.join(os.environ['APPDATA'], 'Microsoft\\Windows\\Cache')
os.makedirs(hidden_dir, exist_ok=True)
log_host_file = os.path.join(hidden_dir, "syscache.dat")
log_file = log_host_file + ":logdata"
|
还实现了第二层保护,使用SetFileAttributesW()[3]和标志0x02来隐藏文件:
1
2
3
4
5
|
try:
FILE_ATTRIBUTE_HIDDEN = 0x02
ctypes.windll.kernel32.SetFileAttributesW(log_host_file, FILE_ATTRIBUTE_HIDDEN)
except Exception as e:
print(f"Failed to hide host file: {e}")
|
该脚本是一个经典的键盘记录器,但还实现了剪贴板监视器来捕获所有文本内容:
1
2
3
4
5
|
try:
win32clipboard.OpenClipboard()
if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_TEXT):
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
|
该脚本(SHA256:9927159c39a0201e2fcd558c4716fc5cab7e1c6ab69a311f7a21cab3c5667980)的VT评分较低(仅3/64),即使没有进行混淆处理。该脚本没有外泄机制,因此我推测会有另一个组件来处理这个任务!
如何检测文件系统上的文件是否具有ADS?这可以通过几行PowerShell代码实现:
1
2
3
4
5
6
|
Get-ChildItem -Recurse -Path C:\ | ForEach-Object {
$streams = Get-Item $_.FullName -Stream * -ErrorAction SilentlyContinue
if ($streams.Count -gt 1) {
$streams
}
}
|
示例输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop\PURCHASE_ORDER.exe::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop
PSChildName : PURCHASE_ORDER.exe::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Users\REM\Desktop\PURCHASE_ORDER.exe
Stream : :$DATA
Length : 1044992
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop\PURCHASE_ORDER.exe:Zone.Identifier
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop
PSChildName : PURCHASE_ORDER.exe:Zone.Identifier
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Users\REM\Desktop\PURCHASE_ORDER.exe
Stream : Zone.Identifier
Length : 608
|
参考链接:
[1] https://infosecwriteups.com/ntfs-filesystem-alternate-data-stream-ads-c0e4a2402563
[2] https://en.wikipedia.org/wiki/Mark_of_the_Web
[3] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-setfileattributesw
关键词: ADS 备用数据流 剪贴板 键盘记录器 恶意软件 Python