知识点:js劫持 ,find命令 ,分析日志流量溯源技巧 ,mysql加固 ,linux命令劫持修复


前段时间突然对蓝队技术也有点感兴趣,之前在bugku就看到有应急响应的靶机,但是一直没尝试,前两天正好看到TLS的内部文档里有一篇讲解这个靶机的WP,便看着打了一遍,过程中学到了蛮多细节上的东西和小知识点,遂记录一下

首先,SSH连接服务器,了解一下开放的端口
[端口.png]

0x01 获取js劫持的域名

访问web目录,发生了自动跳转[web.png]
跳转的域名就是劫持的JS域名
https://www.194nb.com

0x02 黑客首次webshell 密码

先切换到/var/www/html web根目录,从文件名找找find /var/www/html -name "*.php" -maxdepth 10
这里-maxdepth 10限制了搜索的目录深度为10层[查看web目录.png]
在Upload目录下有php文件,这个6127的很有可能就是黑客上传的webshell
查看一下[应急2.png]
[应急3.png]
ok ,果然

0x03黑客首次攻击(非有效攻击)通过什么方式

首次入侵的方式我们需要去审计日志最开始查看端口信息可以知道中间件服务是Nginx,所以先去查看Nginx的配置信息find / -name "nginx.config"
查看后可以得到日志的位置

Settings
1
2
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

然后把日志文件下载到主机上,这样方便分析,我用的是xshell的xftp
然后搜索一下上传这个webshell的流量记录,溯源到了攻击者的ip
[应急4.png]
这样我们就可以从全部流量中过滤出黑客的操作

用notepad++查找攻击者的ip,然后提取有关键词的全部行,这也是我这次学到的一个操作,具体可参考NOTEPAD++提取含关键字的全部行这样就大大减轻了审计工作将提取出的流量保存在新的一个文件中[POST.png]搜索post,前面几个都看不出什么问题,第六个就是很明显的是XSS了直接提交

0x04请找到黑客留下的后门中黑客服务器的ip及端口

查看了一下上传的木马里面并没有黑客服务器的ip信息[应急5.png]
继续分析流量日志中找不到免杀马的落地记录,应该是流量经过编码了,分析一下流量[流量.png]继续看post请求,后面开始有大量的连续流量,随便url转码一个[应急6.png]
为了方便阅读可以把";'都替换为";\r\n"这样可以换行,清晰很多可以看到执行命令的语句,以及最后有每个包的传参拿着参数名字再搜索一下[应急7.png]
然后可以按照规则base64解码,这里我一开始拿着参数值转码怎么都是乱码,后来仔细分析发现原来忽略了substr的截取,substr(“xxxx”,2)是从第3个字符开始的,去掉前两个字符之后再转就好了
[应急8.png]
[应急9.png]
[应急13.png]
ok现在知道了每个参数则作用了,有指定shell脚本的,有指定目录的,有执行rce语句的那么我们就去/cache这个黑客进行操作的目录看看
[应急14.png]
ok啊反弹shell,拿下ip和端口

0x05提交黑客上传的第二个webshell内的flag

之前找到过webshell,但是没flag,那应该不止这一个,重新找一下:

1
2
find /var/www/html -name "*.php" -
maxdepth 10```

[webshell2.png]
/img还能找到一个.php[falg.png]

0x06修复mysql可getshell漏洞

这个是一点想法没有,看了大佬wp知道是要加固mysql的安全配置:secure_file_priv

首先是查看mysql的配置文件`vim /etc/mysql/my.cnf
[myconf.png]
可以看到secure-file-priv的值为空的,加固做法是直接注释掉就好了(

  • secure_file_priv 这个变量被用于限制导入和导出的数据目录,比如 LOAD DATA 和 SELECT … INTO OUTFILE 语句,以及 LOAD_FILE() 函数。这些操作限制了哪些用户拥有文件操作权限。

  • secure_file_priv 有些设置选项:

    • 如果为空,不做目录限制,即任何目录均可以。
    • 如果指定了目录,MySQL 会限制只能从该目录导入、或导出到该目录。目录必须已存在,MySQL 不会自动创建该目录。
    • 如果设置为 NULL,MySQL 服务器禁止导入与导出功能。
    • 该变量的默认值,是由编译时的 CMake 选项而定。
  • MySQL 服务器在启动时,会检查 secure_file_priv 变量值,如果值不安全会在错误日志中写一个 WARNING 级别的日志。以下情况属于不安全的设置:

    • 值为空
    • 值为–datadir目录或其子目录
    • 所有用户均有权限访问的目录

0x07找到黑客添加的账号并删除

cat /etc/shadow
[账号.png]
摘了一段

/etc/shadow 是干嘛用的?
/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。

早期的 UNIX 密码放在 /etc/passwd 文件中,由于该文件允许所有用户读取,易导致用户密码泄露,因此从 /etc/passwd 文件中分离出来,并单独放到了此文件中。/etc/shadow 文件只有 root 用户拥有读权限,保证了用户密码的安全性。

具体看Linux /etc/shadow(影子文件)内容详解_unix /etc/shadow-CSDN博客

发现aman账号userdel aman
发现无法删除要用groupdel aman
[del.png]
ai的解释

在Linux系统中,每个用户可以属于一个或多个组。其中一个组被称为用户的“主组”(primary group),通常用户的用户名和主组的组名是相同的。当尝试从一个组中删除用户时,如果该组是用户的主组,那么用户不会被从该组中删除。这是因为用户的主组通常与用户的个人目录和文件的权限设置相关联。

这条消息:userdel: group 'aman' not removed because it is not the primary group of user 'aman'
表明你尝试使用userdel命令删除名为aman的组,但是这个组不是用户aman的主组。如果你想删除用户aman,你需要确保他不属于任何文件的拥有者,并且没有任何进程正在运行,然后使用userdel命令来删除用户。

0x08修复黑客篡改的命令并且删除篡改命令生成的免杀马

使用 dpkg -V 查看系统被修改过的系统指令[dpkg.png]
重点关注两个/bin下的就好了使用ls -l可以查看目录中文件及其属性信息[ls-l.png]
可以看到修改时间和前面日志看到的攻击时间高度吻合,应该就是了[ps1.png]
是一个免杀马写入的程序(具体为什么我也不知道)
[-ls.png]
所幸有备份
![[cat ls.png]](https://github.com/P4nY0O/P4nY0O.github.io/blob/main/pic/cat ls.png?raw=true)
直接`cp /bin/ls2 /bin/ls
覆盖了即可修复再rm掉之前看到那个免杀马即可

0x09修复黑客篡改的命令2

ps命令,步骤同ls

0x10修复JS劫持

访问主页时抓包[抓包.png]
返回包搜索js能找到一段被加密过的的js代码,不出意外就是劫持代码了在网站根目录可以找到这段代码[删js.png]
删掉即可

⬆︎TOP