基础环境

老师的相关笔记整合:

Linux 入侵排查:https://note.youdao.com/s/G7aD6Mr1

Linux 日志分析:https://note.youdao.com/s/cUd7HE68

网络应急相应:https://note.youdao.com/s/GFwnyXnG

Windows入侵排查:https://note.youdao.com/s/dqbJ8Bhs

Windows日志分析:https://note.youdao.com/s/WSByZXfc

Web日志分析:https://note.youdao.com/s/u0L1hIP

开源EDR:https://note.youdao.com/s/Uk1CwBI6

Atomic Red Team:https://note.youdao.com/s/48lZ1qQO

虚拟机

通过网盘分享的文件:渗透测试作业虚拟机

链接: https://pan.baidu.com/s/1Gs-PMI-ZYa-XyH4QPEru5g?pwd=wrpk 提取码: wrpk

VMware Wrokstation Pro 17.6.1 虚拟机

现如今的 VMware Workstation Pro(17.6.1) 已经免费开放了,现如今的 VMware 被博通收购了,官网的下载方式有所改变,需要先注册一个博通的账号,然后去博通网站上下载。

下载地址:https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware+Workstation+Pro

百度网盘链接:https://pan.baidu.com/s/1SMJBschWGoBZVoEcZok19w?pwd=t6vm

前置环境

导入虚拟机

右上角 -> 文件 -> 打开

点击 ovf 文件,选择打开

写入名称,并填写一个合适的地址

点击导入

Windows 环境的机器同理

Linux服务器应急排查(25分)

登录的账号为:root/Inch@957821. ( 注意这里有个点 !!!这是大写的i,不是小写的L!!!)

如果进不去的话,可以参考:CentOS7如果忘记密码,密码重置详细步骤_centos修改密码忘记密码-CSDN博客

直接把 root 密码重置掉

查看本机网卡 ifconfig

后续步骤是通过远程连接到机器做的

在排查之前先将主机名修改为姓名简拼:

a)提交攻击者IP

查看最近的登情况: grep "Accepted " /var/log/secure* | awk '{print1,2,$3,$9,$11}' 看最近的 root 用户登录情况

去掉第一个本机登录的,以及最后一个我们刚刚远程连接登录的,剩下的 192.168.20.1 就是攻击者 IP 地址

答案:192.168.20.1

b)提交攻击者修改的管理员密码(明文)

提交攻击者修改的管理员密码(明文)

使用 netstat -anlupt 查看当前运行的进程

发现有 Nginx,MySQL,存在网站,我们可以去看看网站的访问日志

查看Web服务的日志信息

到日志文件夹下:cd /www/wwwlogs/

查看access.log的最后10行记录:tail -n 10 access.log

发现存在 phpmyadmin,那么我们可以去找 phpmyadmin的配置文件config.inc.php

切换到网站主目录cd /www/

查找 config.inc.php:find -name config.inc.php

第三个是本机网站的配置,vim 打开即可

vim /www/wwwroot/127.0.0.1/lib/config.inc.php

查看数据库配置部分,可以查看到账号和密码

使用 mysql -u kaoshi -p5Sx8mK5ieyLPb84m 登录数据库

查看数据库show databases;

进入 kaoshi 数据库:use kaoshi;

查看数据表:show tables;

发现存在用户表,查看一下用户表的结构

我们只需要userid,username,userpassword 三列的信息即可

使用 select userid,username,userpassword from x2_user; 查询

可以看到 peadmin 的密码是:f6f6eb5ace977d7e114377cc7098b7e3

通过MD5解密出来结果为:Network@2020

答案:Network@2020

c)提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)

切换到root用户的家目录:cd ~

查看当前文件:ls

可以看到存在数据表1.pcapng,下载到电脑上进行流量分析

确认了攻击者的IP地址,直接通过HTTP协议查看流量数据 ip.addr == 192.168.20.1 && http,发现存在很多 /index.php?user-app-register

右键追踪TCP流可以看到请求中包含PHP代码

使用URL解码工具:https://www.toolhelper.cn/EncodeDecode/Url

解码后得到PHP代码:

使用PHP代码格式化工具格式化:https://tool.uvooc.com/formatphp/

可以看到对应的 PHP 代码,发现是WebShell的链接脚本

确认链接为:/index.php?user-app-register

答案:index.php?user-app-register

d)提交Webshell连接密码

分析上面的PHP代码,是蚁剑的链接脚本,开头就是密码

答案:Network2020

e)提交数据包的flag1

既然确认了攻击者的IP地址,那么直接找到 HTTP 的GET协议的数据包即可

ip.addr 192.168.20.1 && http.request.method "GET"

可以看到flag1

右键追踪TCP流就可以看到flag

答案:flag1{Network@_2020_Hack}

f)提交攻击者使用的后续上传的木马文件名称

打开第二个请求,按照前面的方式解码发现存在base64 字符串

= 号前面是参数去掉,字符串的前两个Tt去掉,然后解码得到目录

查看 index.php 的最后一个请求 ( tcp.stream eq 27 ),按照前面的方式解码,发现创建了/www/wwwroot/127.0.0.1/version2.php,也就是后续上传的木马

答案:version2.php

g)提交攻击者隐藏的flag2

回到服务器,通过history查看攻击者都干了什么,发现修改了api 下的两个文件,并且创建了flag3

来到对应的目录:cd /www/wwwroot/127.0.0.1/.api/

查看文件,发现flag2:cat alinotify.php

答案:flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}

h)提交攻击者隐藏的flag3

答案:flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}

验证

Windows服务器应急排查(25分)

账号密码:administrator/xj@123456

a) 攻击者的两个IP地址

看到桌面上有小皮面板,打开网站的根目录查看一下日志文件

打开 D:\phpstudy_pro\Extensions\Apache2.4.39\logs 文件夹,查看access相关的日志

使用记事本打开即可,前两个都是空的,第三个有

看一下日志文件,发现只有两个IP地址访问,正好对应攻击者的两个IP

答案:192.168.75.129和192.168.75.130

b) 隐藏用户名称

刚刚打开机就能能看有一个奇奇怪怪的用户...

c) 黑客遗留下的flag1

来到攻击者的家目录的下载目录,发现一个奇奇怪怪的BAT文件

复制一份出来,后缀改成 txt 查看文件内容发现一个 flag

答案:flag{888666abc}

d) 黑客遗留下的flag2

既然存在脚本文件,那么肯定要执行,打开计划任务查看一下是否存在相关的人物

打开就发现一个任务名为Attack@Flag,描述中有Flag

答案:flag{zgsfsys@sec}

e) 黑客遗留下的flag3

打开小皮面板,访问一下我们的网站

这里没有管理员的密码,选择直接连接数据库查看一下,小皮面板安装HeidSQL

小皮面板点击数据库,鼠标移动到密码上,可以查看到密码

HeidSQL 新建连接,连接到数据库

进入zblog123 数据库,查看 zbp_member 表,在mem_intro 字段发现Flag

答案:flag{H@Ck@sec}

验证

监控与入侵响应系统的部署与测试(40分)

a) 部署Wazuh系统,并在Linux和Windows服务器上分别安装Wazuh代理,并能在Wazuh系统上看到代理上线的状态(5分)

在官网链接直接下载在Wazuh虚拟机

https://packages.wazuh.com/4.x/vm/wazuh-4.11.2.ova

如果一直卡在初始界面的话,可以试着把虚拟机升级一下

然后直接登录即可

用户名密码:wazuh-user/wazuh

最好确保虚拟机都是一个网段的,都是NAT即可

使用ifconfig查看wazuh服务器的IP地址

来到windows服务器,访问该IP地址,这里接受并继续即可

用户名密码均为admin

点击部署一个新的代理

填入相关信息,复制命令,注意这里的IP地址要看自己的Wazuh服务器,不一定是192.168.13.10

类似于:

Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.11.2-1.msi -OutFile $env:tmp\wazuh-agent; msiexec.exe /i $env:tmp\wazuh-agent /q WAZUH_MANAGER='192.168.13.10' WAZUH_AGENT_GROUP='default' WAZUH_AGENT_NAME='windows-web1'

在Powershell中执行,然后执行NET START WazuhSvc启动即可

在面板中可以看到连接的服务器

在创建一个Linux服务器的,点击Deploy new agent

同windows一样

两个都连接上了

b) 在Windows服务器上使用Atomic进行原子测试,利用T1218.010注册服务技术进行安全测试,并最终查看到弹窗效果(5分)

b)服务技术进行安全测试,并最终查看到弹窗效果(5分)

这里要下载:

创建C:\AtomicRedTeam

直接关闭windows病毒和威胁防护

这里要下载atomic-red-team和invoke-atomicredteam,百度网盘里面有,可以下载

复制 atomic-red-team 目录下的 atomics 文件夹到此目录下

复制 invoke-atomicredteam 文件夹到此目录下

打开powershell,并启动到当前目录

执行安装框架

Install-Module -Name powershell-yaml -Scope CurrentUser

验证安装情况

C:\Users\Administrator\Documents\WindowsPowerShell\Modules

下是否有powershell-yaml目录

导入模块

Import-Module "C:\AtomicRedTeam\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1" -Force

提示禁止脚本运行的话执行

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

执行攻击查看效果

Invoke-AtomicTest T1218.010

c) 在Windows服务器上进行文件完整性监控测试,当对windows服务器上的网站根目录进行文件操作时,观察SIEM状态,确保能监测到文件状态的变化(10分)

编辑Windows服务器的C:\Program Files (x86)\ossec-agent\ossec.conf

找到 </syscheck> 标签,在前面如下内容

<directories check_all="yes" report_changes="yes" realtime="yes">D:\phpstudy_pro\WWW</directories>

然后在 Wazuh 服务器重启一下让配置生效

sudo systemctl restart wazuh-manager.service

Windows端也要重启一下服务,在 PowerShell 中执行

Restart-Service wazuh

然后打开网站根目录,打开index.php随便改改,就能看到日志信息

请确定是windows机器

可以查看到事件

d) 在Linux服务器上进行恶意软件查杀验证,实现当在/var/www/html目录上传恶意文件时,能对其进行实时检测和查杀。(10分)

来到Linux服务器上,删除原有的yum源,使用阿里云源

rm -rf /etc/yum.repos.d/*
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache
yum install jq -y

在Linux端编辑配置文件

vim /var/ossec/etc/ossec.conf

在</syscheck>标签前添加

<directories realtime="yes">/www/wwwroot</directories>

创建响应脚本

touch /var/ossec/active-response/bin/remove-threat.sh

写入如下内容:

#!/bin/bash

LOCAL=`dirname $0`;
cd $LOCAL
cd ../

PWD=`pwd`

read INPUT_JSON
FILENAME=$(echo $INPUT_JSON | jq -r .parameters.alert.data.virustotal.source.file)
COMMAND=$(echo $INPUT_JSON | jq -r .command)
LOG_FILE="${PWD}/../logs/active-responses.log"

#------------------------ Analyze command -------------------------#
if [ ${COMMAND} = "add" ]
then
 # Send control message to execd
 printf '{"version":1,"origin":{"name":"remove-threat","module":"active-response"},"command":"check_keys", "parameters":{"keys":[]}}\n'

 read RESPONSE
 COMMAND2=$(echo $RESPONSE | jq -r .command)
 if [ ${COMMAND2} != "continue" ]
 then
  echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Remove threat active response aborted" >> ${LOG_FILE}
  exit 0;
 fi
fi

# Removing file
rm -f $FILENAME
if [ $? -eq 0 ]; then
 echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Successfully removed threat" >> ${LOG_FILE}
else
 echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Error removing threat" >> ${LOG_FILE}
fi

exit 0;

设置权限

sudo chmod 750 /var/ossec/active-response/bin/remove-threat.sh

sudo chown root:wazuh /var/ossec/active-response/bin/remove-threat.sh

重启Wazuh代理

sudo systemctl restart wazuh-agent

来到Wazuh服务器,编辑配置文件

sudo vim /var/ossec/etc/rules/local_rules.xml

写入如下内容

<group name="syscheck,pci_dss_11.5,nist_800_53_SI.7,">
    <!-- Rules for Linux systems -->
    <rule id="100200" level="7">
        <if_sid>550</if_sid>
        <field name="file">/www/wwwroot</field>
        <description>File modified in /www/wwwroot directory.</description>
    </rule>
    <rule id="100201" level="7">
        <if_sid>554</if_sid>
        <field name="file">/www/wwwroot</field>
        <description>File added to /www/wwwroot directory.</description>
    </rule>
</group>
<group name="virustotal,">
  <rule id="100092" level="12">
    <if_sid>657</if_sid>
    <match>Successfully removed threat</match>
    <description>$(parameters.program) removed threat located at $(parameters.alert.data.virustotal.source.file)</description>
  </rule>

  <rule id="100093" level="12">
    <if_sid>657</if_sid>
    <match>Error removing threat</match>
    <description>Error removing threat located at $(parameters.alert.data.virustotal.source.file)</description>
  </rule>
</group>

编辑/var/ossec/etc/ossec.conf,在末尾写入如下内容

这里是需要写入APIKEY的,如果有能力请前往:VirusTotal - Join us自己注册一个

免费的APIKEY

每分钟4个请求数,如果卡顿的话建议自己注册一个,替换凋<api_key>中的内容

<ossec_config> 
  <integration>
    <name>virustotal</name>
    <api_key>774b8b3e9066d43b8f83b0c3598ecb7d82f940c7571adbe303cf0d852ad9a127</api_key> 
    <rule_id>100200,100201</rule_id>
    <alert_format>json</alert_format>
  </integration>
</ossec_config>
<ossec_config>
  <command>
    <name>remove-threat</name>
    <executable>remove-threat.sh</executable>
    <timeout_allowed>no</timeout_allowed>
  </command>
  <active-response>
    <disabled>no</disabled>
    <command>remove-threat</command>
    <location>local</location>
    <rules_id>87105</rules_id>
  </active-response>
</ossec_config>

重启服务器

sudo systemctl restart wazuh-manager

下载一个测试病毒

sudo curl -Lo /www/wwwroot/eicar.com https://secure.eicar.org/eicar.com && sudo ls -lah /www/wwwroot/eicar.com

打开网页

可以看到检查成功

e) 对Linux服务器上进行SSH暴力破解测试,并观察wazuh的监控状态,并最终对SSH暴力破解进行告警(5分)

开一个Kali Linux

crunch 6 6 123456 -o passwd.txt

hydra -l root -P passwd.txt ssh://192.168.13.8

这里对Linux服务器进行爆破,注意IP地址

查看面板

可以看到很多的SSH暴力破解警告

f) 对Windows服务器进行SQL注入测试,观察wazuh的威胁监控状态,并最终能监测到SQL注入攻击。(5分)

在windows服务器的配置文件中写入如下内容

<ossec_config>
  <localfile>
    <log_format>apache</log_format>
   <location>D:\phpstudy_pro\Extensions\Apache2.4.39\logs\*</location>
  </localfile>
</ossec_config>

重启服务

Restart-Service wazuh

访问网站在登录界面尝试注入

存在日志

泥嚎~