玄机应急响应靶场题解
C3ngH Lv4

第一章 应急响应-webshell查杀

靶机账号密码 root xjwebshell

1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}

2.黑客使用的什么工具的shell github地址的md5 flag{md5}

3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx

4.黑客免杀马完整路径 md5 flag{md5}

在Windows下使用XShell+XFTP连接目标主机,然后一键下载/var/www/html文件夹到本地。

/var/www/html目录一般用于存储网站的HTML文件、图片、脚本等资源,供Web服务器(如Apache或Nginx)提供给访问者。

也可以使用tar命令打包,具体可以参照Linux tar命令 - 菜鸟教程

1
2
3
4
# 备份文件(tar默认只是打包不压缩,参数-z打包后进行gzip压缩,参数-j打包后进行bzip2压缩)
tar -cvf test.tar ./test # 得到test.tar备份文件
tar -zcvf test.tar.gz ./test # 得到test.tar.gz备份文件
tar -jcvf test.tar.bz2 ./test # 得到test.tar.bz2备份文件

解压

1
2
3
4
5
6
tar –xvf file.tar         # 解压 tar 包 
tar -xzvf file.tar.gz # 解压 tar.gz
tar -xjvf file.tar.bz2 # 解压 tar.bz2
tar –xZvf file.tar.Z # 解压 tar.Z
unrar e file.rar # 解压 rar
unzip file.zip # 解压 zip

下载源代码后使用D盾进行扫描,可以看到四个可疑文件。

image

可以在gz.php中找到flag1

image

google搜索webshell中的key可以看到是哥斯拉

image

github搜索得到flag2

也可以直接使用命令搜索找到可疑的webshell特征

1
2
3
4
5
6
7
8
#搜索目录下适配当前应用的网页文件,查看内容是否有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("

#对于免杀Webshell,可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"

根据D盾里的路径/var/www/html/include/Db/.Mysqli.php可以知道隐藏后门,在Linux里可以ls -a看到隐藏文件,得到flag3。

同理可以找到flag4是top.php。

第一章 应急响应-Linux日志分析

1.有多少IP在爆破主机ssh的root帐号,如果有多个使用",“分割
2.ssh爆破成功登陆的IP是多少,如果有多个使用”,“分割
3.爆破用户名字典是什么?如果有多个使用”,"分割
4.登陆成功的IP共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少

日志默认存放位置:/var/log/

查看日志配置情况:more /etc/rsyslog.conf

日志文件 说明
/var/log/cron 记录了系统定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog 记录邮件信息
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

比较重要的几个日志: 登录失败记录:/var/log/btmp //lastb 最后一次登录:/var/log/lastlog //lastlog 登录成功记录: /var/log/wtmp //last 登录日志记录:/var/log/secure

目前登录用户信息:/var/run/utmp //w、who、users

Linux日志分析技巧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1、定位有多少IP在爆破主机的root帐号:    
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure

4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure

5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)

sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

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

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

image

在Web根目录下使用命令find ./ type f -name "*.php" | xargs grep "eval("可以找到这三个文件,分别为.shell.php、index.php、1.php,1.php应为第一题的木马,可以根据index.php和.shell.php两个文件有相同的md5值猜测是通过index.php实时生成.shell.php。查看源代码也可知如此

image

shell内容如下

image

可以看到同目录下有一个elf文件,为Linux可执行二进制文件

image

dump下来后使用微步云沙箱分析,可以看到回连IP和端口

image

第二章 日志分析-Apache日志分析

快速定位到log位置

image

flag1可以使用该命令直接找到

1
awk '{print $1}' /var/log/apache2/access.log.1 | uniq -c | sort -n

flag2可以根据grep -Ea "192.168.200.2" /var/log/apache2/access.log.1得到指纹信息:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 并MD5得到

flag3是查看index.php的被访问次数

注意,要在grep的index.php加一个斜杠,因为可能是???index.php也被统计,而非正确的index.php

1
2
grep -Ea '/index.php' /var/log/apache2/access.log.1 | wc -l
#wc用于计算行数

flag4:grep -Ea "^192.168.200.2 - -" /var/log/apache2/access.log.1 | wc -l

flag5:grep -Ea "^[0-9]+.*+03/Aug/2023:[08|09]" /var/log/apache2/access.log.1 | awk '{print $1}' | uniq -c | wc -l

(感觉日志分析都比较固定,或许可以开发一个一把梭工具)

 评论
评论插件加载失败
正在加载评论插件
总字数 87.1k 访客数 访问量