
第一章 应急响应-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 | # 备份文件(tar默认只是打包不压缩,参数-z打包后进行gzip压缩,参数-j打包后进行bzip2压缩) |
解压
1 | tar –xvf file.tar # 解压 tar 包 |
下载源代码后使用D盾进行扫描,可以看到四个可疑文件。
可以在gz.php中找到flag1
google搜索webshell中的key可以看到是哥斯拉
github搜索得到flag2
也可以直接使用命令搜索找到可疑的webshell特征
1 | #搜索目录下适配当前应用的网页文件,查看内容是否有Webshell特征 |
根据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 | 1、定位有多少IP在爆破主机的root帐号: |
第一章 应急响应-Linux入侵排查
1.web目录存在木马,请找到木马的密码提交
2.服务器疑似存在不死马,请找到不死马的密码提交
3.不死马是通过哪个文件生成的,请提交文件名
4.黑客留下了木马文件,请找出黑客的服务器ip提交
5.黑客留下了木马文件,请找出黑客服务器开启的监端口提交
在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。查看源代码也可知如此
shell内容如下
可以看到同目录下有一个elf文件,为Linux可执行二进制文件
dump下来后使用微步云沙箱分析,可以看到回连IP和端口
第二章 日志分析-Apache日志分析
mysql应急响应 ssh账号 root 密码 xjmysql
ssh env.xj.edisec.net -p xxxxx
1.黑客第一次写入的shell flag{关键字符串}
2.黑客反弹shell的ip flag{ip}
3.黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx
4.黑客获取的权限 flag{whoami后的值}
快速定位到log位置
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 | grep -Ea '/index.php' /var/log/apache2/access.log.1 | wc -l |
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
(感觉日志分析都比较固定,或许可以开发一个一把梭工具)
第三章 权限维持-Linux权限维持-隐藏
ssh root@env.xj.edisec.net -p 密码 xjqxwcyc
1.黑客隐藏的隐藏的文件 完整路径md5
2.黑客隐藏的文件反弹shell的ip+端口 {ip:port}
3.黑客提权所用的命令 完整路径的md5 flag{md5}
4.黑客尝试注入恶意代码的工具完整路径md5
5.使用命令运行 ./x.xx 执行该文件 将查询的 Exec*** 值 作为flag提交 flag{/xxx/xxx/xxx}
Linux中查找所有隐藏文件和文件夹的命令
1 | #查找所有隐藏文件和文件夹 |
查找所有隐藏文件后发现在/tmp/.temp
目录似乎有些可疑
找到1.py
和shell.py
,1.py
是一个典型的Python反弹shell,此时可以确定黑客隐藏的文件路径和反弹shell的回连地址和端口号,至于出题人要哪个ip就只能试试看了,我个人觉得两个都是吧
解析1.py
和shell.py
的区别
1.py
作为守护进程运行,使用两次os.fork()
使得它可以脱离原始终端控制,sys.exit(0)
让父进程退出,而子进程在后台运行,确保进程不会因终端关闭而结束,并且使用 sys.stdout.flush()
、sys.stderr.flush()
以及 sys.stdout = fdreg
(fdreg
指向 /dev/null
),确保输出在终端中不可见。
shell.py
作为一次性shell,使用 dup2(s.fileno(), 0)
、dup2(s.fileno(), 1)
和 dup2(s.fileno(), 2)
将标准输入、输出和错误都重定向到 s
,然后直接执行 run(["/bin/bash","-i"])
getshell。
processhider.c
文件解析
懒得写了,问问GPT吧,感觉这个东西应该可以改个通用的来隐藏进程(?
1 |
|
Linux中常见的提权有SUID,可以直接尝试,也可以查看日志分析,可以查看浅析Linux SUID提权 | C3ngH’s B10g这篇博客内容学习SUID提权,此处直接给出命令,一眼看出来是find命令提权。
1 | find / -user root -perm -4000 -print 2>/dev/null |
下一步说黑客使用工具注入恶意代码,Linux系统下第三方软件通常安装在/opt
目录下,找到一个隐藏文件,google搜到该工具:akpotter/cymothoa - Github.com
最后一个是用命令执行x.xx文件(或许指的就是1.py?)exec命令用于替换当前进程,根据题意理解应该是要提交用于运行1.py
的命令,其实已经写在文件最前面了,直接看到#! /usr/bin/python3
即可