基础环境
老师的相关笔记整合:
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
访问网站在登录界面尝试注入
存在日志