网页篡改实验
【实验目的】
通过本次实验需要掌握如何判断网页篡改,同时还需掌握相关的网页篡改的应急响应的排查方式,学会相关的系统,日志,漏洞发现,安全加固等技能。
【知识点】
进行此实验需要掌握判断网页篡改的方式,系统排查方法,日志排查方法,网神漏扫的使用以及椒图相关的waf加固。知识点详情参考任务文档预备知识。
【场景描述】
A企业的web服务器遭遇到黑客攻击,服务器上的网站首页被黑客劫持,当正常用户进行访问时,网站会自动跳转到博彩界面。应急工程师小王接收到A企业的通知,经网站用户的反馈,访问网站主页时无法正常访问到原本的主页,而是直接访问到一个博彩的界面。经用户的描述,小王初步认为该公司的网站首页受到了黑客的劫持。
【实验原理】
- 由用户反馈过来的现象发现,A企业的网站首页被黑客劫持了。由此判断该公司的服务器遭遇到了黑客的攻击。网站遭遇黑客攻击,作为一名应急响应工程师需要对服务器去做安全排查,阻断黑客攻击。
- 通过对服务器的相关文件内容,网站目录下的文件内容的检测,系统的进程排查,网络连接状况排查,日志的审查,网站漏洞的发掘以及相关的安全加固。来对服务器进行分析找出黑客预留的后门文件账号等,同时通过日志分析还原黑客的攻击路径。利用相关漏扫设备提前发现网站漏洞再进行相关的安全加固。
【实验设备】
- 安全设备:防火墙2台,openvas漏洞扫描器,天眼分析平台1套,天擎1台、WAF加固_A1台。
- 网络设备:路由器1台,交换机3台。
- 主机终端:kali linux 1台,Windows7主机3台,ubuntu16.04 2台,centos2台
【软件工具】
- 操作系统:Windows7
- 终端连接工具:putty
- 集成环境:宝塔面板
- 浏览器:谷歌浏览器
- webshell查杀工具:河马查杀工具
- 文本编辑器:sublime text3
- 抓包工具:burpsuite
- waf软件:phpwaf脚本
【实验拓扑】
实验拓扑。
网页篡改拓扑图
【实验目标】
- 学会判断网页篡改的方式,并清除相关的劫持代码;
- 通过河马WebShell查杀找到相关的WebShell并清除;
- 通过系统排查找到黑客留下的后门账号,进程,计划任务等;
- 通过日志的排查还原黑客的攻击路径。使用天眼对黑客行为进行分析;
- 利用漏扫对网站进行漏洞扫描,提前发现网站漏洞
- 利用相关waf脚本对网站进行安全加固
【实验思路】
- 通过浏览器跳转,burpsuite抓包分析出网页中嵌入的js劫持代码;
- 直接利用河马WebShell查杀工具,直接对网站目录进行相关的查杀;
- 分析服务器的网络连接情况判断是否存在异常连接,排查服务器的进程是否存在异常进程,排查可疑用户,可疑文件是否存在异常账号或者异常文件;
- 分析服务器的日志,根据黑客访问网站的行为,跟踪黑客行为并分析,分析出黑客是如何利用网站漏洞并对网站getshell的;
- 利用相关的安全设备对网站进行漏洞的扫描,安全的加固。
【实验步骤】
1.判断网页篡改
打开实验拓扑中A企业的Admin_A操作机,账号:Administrator密码:123456。
Admin_A操作机
打开实验拓扑中A企业的Admin_A主机,登录管理员终端,双击并运行桌面上的chrome浏览器,输入URL 进行访问,发现页面自动加载了博彩界面。
博彩界面
在Chrome浏览器界面键盘按键F12打开浏览器控制台→切换到【Network】标签页→刷新页面,发现页面一刷新很快就跳到了博彩界面,这里预先使用burpsuite抓包,尝试使该页面停留在正常首页上,然后通过控制台查看访问首页的时候浏览器加载的文件。但是这里发现,使用burpsuite还是不能直接是网页停留在原始界面,所以这里,直接使用burpsuite来分析(burpsuite位置在系统【文件管理】→【下载】→【j】→【-burp1.7】→Burpsuite_community_v1.7.30.jar。直接双击启动。使用burpsuite需要配置谷歌浏览器的代理。单击浏览器【设置】选项,在输入框中输入【代理】进行搜索。
代理设置
单击代理设置,进入【Internet属性】页面,单击选择【局域网设置】按钮。
局域网设置
然后勾选【为LAN使用代理服务器】,配置地址为127.0.0.1端口为8080的代理。
配置代理
然后单击【确定】保存,重新访问网站。运行burpsuite软件,进入抓包界面。
burpsuite的抓包
单击【intercept is on/intercept is off】这个按钮使其保持intercept is on。然后重新访问网站,获得数据包。右击抓到的数据包,在快捷菜单中选择【Send to Repeater】命令,发送到Repeater模块。
数据包发送到Repeater模块
在图中的模块中,单击go,等待web服务器的响应。
发送数据包
在相应的页面源代码中直接发现了嵌入网页的恶意源代码。如下图所示。
嵌入网页的恶意源代码
可疑文件
通过burpsuite返回的源代码发现,浏览器自动加载了1.js,而在正常的网站开发中任何文件的命名都是规范的,而1.js的命名不规范,因此认为它为可疑文件。尝试查看这个可疑文件,使用浏览器直接访问这个可以文件,发现这个可疑文件的文件内容为自动加载web服务器下的1.png图片,而1.png的内容就是一开始打开网页自动跳转到的博彩界面。通过查看文件内容,确定为恶意文件,其功能为判断访问者浏览器信息,当HTTP请求头部信息内容不包含Android/IPhone/IPad等信息时页面将跳转到恶意站点。
1.js文件
putty工具
运行桌面的putty工具,输入服务器IP:172.16.12.233,端口号:33244,单击【Open】按钮,输入用户名和密码进行远程登录,用户名为sw,密码为Asxz!@#q。
putty连接
历史命令备份
登录后,第一时间进行历史命令备份,因在排查过程中,会使用shell命令,所以先将历史命令信息备份,避免覆盖。执行cp .bash_history shell_sw备份sw用户历史命令;执行sudo -s回车并输入密码Asxz!@#q,切换root身份,执行cp /root/.bash_history /root/shell_root 备份root用户历史命令。这里需要注意,putty连接的是普通的用户,在执行root历史命令备份的时候需要切换到root权限。
备份sw用户历史命令
执行切换到root权限,需要执行sudo -s命令,执行完成之后会提示需要输入密码,这个密码为sw用户的密码。
切换到root权限并备份
结果确认
通过排查站点文件代码,确定恶意代码存在站点首页文件index.php中。(index.php文件路径/www/wwwroot/index.php)进行到这一步的时候,排查出恶意代码嵌入在正常的网站的文件中,需要使用vim等编辑器来对该文件进行编辑,删除恶意代码部分。如果是单独的一个恶意代码文件,直接删除就好。删除命令参考实验步骤3系统排查部分。
首页文件中恶意代码
删除上述的恶意代码之后,再次尝试访问网站首页,发现网站正常,初步的主页劫持篡改应急措施完成。
正常网站首页
2.WebShell查杀
在putty中执行cd /opt命令,选择本次用到的WebShell查杀工具,本次使用hm查杀工具。河马查杀工具已经放在被攻击的web服务器中了,只需要进入之后执行。
通过WebShell查杀工具进行扫描,查找WebShell文件。执行下述命令。
cd /opt
./hm scan /www/wwwroot/
WebShell查杀工具
查杀WebShell
扫描结果保存在result.csv文件中,通过cat命令查看扫描结果,并进行判断是否真实存在。
查看扫描结果
查杀结果
根据扫描结果,最终确认/www/wwwroot/sqlgunadmin/shell.php存在后门。
后门文件
发现恶意代码,编辑相关的文件,删除文件中的恶意代码。如果文件内容全是恶意代码,直接删除文件,如果文件正常内容里面嵌入了恶意代码,直接编辑文件,删除相关的恶意代码。如index.php,如直接删除图20中的恶意代码(index.php)。
index.php文件
这里需要注意一点,如图21的两个文件先不要删除,后面进行日志分析的时候需要使用到(实际生产环境中,一定记得要删除)。
日志文件
清除相关恶意代码,WebShell排查结束。
3.系统排查
排查网络连接及进程
使用命令netstat -antp查看服务器网络连接情况,需要相关的安全人员来对执行之后的结果进行一个分析。本次应急的web服务器如下,根据执行的结果结合管理员自己开放的相关端口状态来对服务器上的一个网络连接情况进行一个比对,比对是否存在异常端口开放,如果存在管理员没有开放的端口开放了,假设发现系统存在陌生IP连接服务主机54780端口的情况,由于服务管理人员确定没有开启54780端口的行为,也确定没有相关的应用程序在使用这个端口,判断这个端口为可疑端口进行进一步的排查,需要去查看该服务是实际运行程序的符号链接。web服务的网络连接情况如图22。
网络连接情况
发现web服务器的网络连接情况并没有异常。现在假设该服务器上的sshd开放的端口为异常端口,该端口为33244,发现该异常端口的PID号为2863,而且程序名称为sshd. 22端口对外监听着所有的流量。
发现该异常服务后,执行ls -l查看程序符号链接。
程序符号链接
发现这个IP正在通过33244端口调用sshd服务,管理人员确定没有相关IP的使用人员在调用该服务,则确定为恶意用户在调用该bash。然后kill掉相关的进程(注意:这里是假设,假设该端口为异常端口,不用kill该端口,如果实际生产环境中,发现了异常端口则必须kill掉)。
安全人员在登录服务器的时候感觉服务器有点卡顿,执行一下top命令,发现www这个用户使用cpu的资源比平时要高出很多,cpu资源占用。
cpu资源占用
www这个用户使用的cpu占用率特别高,然后尝试进一步排查。
看看都有哪些程序在使用CPU,执行如下命令。
ps aux | grep www
发现如图内容。
www用户CPU使用情况
www这个用户一直在调用bash执行shell语句,这个shell语句当条件为真的时候,执行echo,向www/wwwroot/shell.php里面输入一句话木马。进入相关的目录下面,查看文件的内容是否写入成功。这里需要注意一点查看shell.php的内容,因为存在一个竞争条件写入,如果看不到文件内容,多执行几次cat shell.php就可以了。
shell.php文件内容
发现这个写码操作,写入成功。删除了shell.php发现还有新的shell.php生成。这个是一个通过进程来执行的写码操作,也被叫做不死码,这种情况只能通过查杀进程来对这个文件进行删除。
找到shell.php之后,确定是一句话木马,尝试直接kill掉这个进程。执行
ps aux | grep shell.php
发现相关进程。
shell.php相关进程
尝试对这些进程进行kill,执行如下命令。
ps aux | grep shell.php | awk '{print $2}' | xargs kill -9
ps aux
: 这个命令列出了系统中所有正在运行的进程的详细信息。a
参数表示列出所有用户的进程,u
参数表示以用户为主的格式输出,x
参数则包含了没有控制终端的进程。grep shell.php
: 将ps aux
的输出通过管道传递给grep
命令,grep
用于过滤出包含字符串shell.php
的行。这意味着你正在查找所有与shell.php
相关的进程。awk '{print $2}'
: 接着,将grep
的输出通过管道传递给awk
。awk
是一个强大的文本分析工具,这里使用的命令'{print $2}'
告诉awk
打印每行的第二个字段。在ps
命令的输出中,第二个字段通常是进程ID(PID)。xargs kill -9
: 最后,通过管道,awk
的输出被传递给了xargs
。xargs
读取来自标准输入的数据,并将其作为参数传递给后面的命令。在这里,它将每个PID作为参数传递给kill -9
命令。kill -9
是一个强力信号,用于立即无条件终止指定PID的进程。因此,这一步骤会杀死所有之前找到的与shell.php
相关的进程。
执行完成之后没有回显。
尝试查看shell.php确认是否kill掉了相关进程。
kill进程结果
发现相关进程已经删除掉了。
删除相关的生产的shell.php。
删除shell.php文件
发现可以正常删除。排查网络连接及进程的实验就结束了。
排查可疑用户
查看/etc/passwd文件并且查找是否存在uid为0的特权用户,执行如下命令
awk -F: '$3==0{print $1}' /etc/passwd
特权用户
发现除了root之外没有相关的特权用户。
如果黑客在入侵之后留下了后门账号,该账号需要可以进行远程登录。尝试找出远程登录的用户。
执行如下命令。
awk '/\$1|\$6/{print $1}' /etc/shadow
之后发现存在四个可以远程登录的用户。
可以远程登录的用户
和管理人员确认之后发现,h123,paddy用户不是管理员所设置的用户,这两个账户为可疑账户。
查看相关的/etc/sudoers文件查看是否存在拥有sudo权限的用户。执行如下命令。
cat /etc/sudoers | grep -v '^#\|^$' | grep 'ALL=(ALL)'
grep -v '^#\|^$'
:
grep
是“global regular expression print”的简称,用于搜索含有指定模式的行。
-v
参数表示反向选择,即输出不匹配该模式的行。'^#\|^$'
是一个正则表达式,其中:
^#
匹配以井号(#)开始的行,通常表示注释行。^$
匹配空行。 综合起来,这行命令的作用是过滤掉所有注释行和空行,只保留实际的配置行。
sudo权限的用户
存在两个存在sudo权限的用户,其中一个为管理员自用账号,另一个为可疑账号。
发现了可疑账号,直接禁用可疑账号,然后删除该账号。执行以下操作。
usermod -L paddy
usermod -L h123
执行完成之后查看/etc/shadow文件第二栏开头是否存在一个!,如果存在则说明该账号禁用成功。
禁用结果
查看/home目录下发现还有一个家目录。接下来连同家目录直接将账号删除。
家目录
执行userdel -r paddy 将paddy用户删除,并将home目录下的paddy目录一起删除。
排查可疑文件
首先查看相关的敏感目录,看看下面是否有相关的隐藏文件或者以“…”开头的文件夹。
cd /tmp
执行ls -al 发现信息。
敏感目录信息
发现在/tmp目录下存在一个隐藏文件.shell.php,以及一个…shell文件夹。查看.shell.php的文件内容。
.shell.php的文件内容
发现是一个一句话木马,直接删除该文件。执行如下命令。
rm .shell.php
.shell.php文件删除结果
执行完成之后再次查看,看看是否已经删除了该文件,发现成功删除。
接着进入…shell文件夹,发现里面有一个shell.php,查看文件内容,发现是一句话,直接删除该文件以及文件夹。
…shell文件夹内容
执行
rm -rf ..shell/
执行完之后再次确认一下是否删除完成。发现删除完成。
…shell删除结果
根据上面排查出来的shell木马的创建时间为Mar 20 08:03,也就是在3月20号早上8点30该木马被创建成功,顺着这个时间,尝试寻找一下,/opt目录下最近一天之内的范围内访问过的文件。
执行以下命令:
find /opt -iname "*" -atime 1 -type f
查看范围内文件
发现并无异常文件。
同理查看其他目录下是否存在类似shell.php的类似文件,或者非系统非管理员创建的文件。
执行以下命令:
find /usr -iname "*" -atime 1 -type f
等等。
排查开机启动项
执行runlevel,查看系统运行级别,发现为5,这是正常的。
系统运行级别
查看/etc/rc.local配置文件发现没有相关的启动程序。
图表 1
然后进入rc5.d查看是否存在可疑程序的开启启动。
rc5.d文件夹
经过查看发现除了管理人员规定的开启启动项,还发现了S666shell启动项。
执行如下命令。
ls -l S666shell
查看该启动项的连接文件。
可疑启动项的连接文件
发现指向/etc/init.d/shell.sh文件,进入到该文件所在目录,查看文件内容。执行如下命令。
cd /etc/init.d/
然后查看该路径下的文件,查看该文件内容cat shell.sh 发现为入侵者预留的后门。
后门文件
直接执行rm shell.sh 删除该文件,然后再到/etc/rc5.d 下面执行rm S666shell 删除该文件。
删除后门
排查计划任务
根据前面排查出的可疑用户,开始对这些可疑用户的计划任务。执行命令依次对用户进行排查,入侵是通过web服务的www用户进来的,所以www用户也需要排查,但是www为apache服务需要用到的用户,属于系统正常用户,一定不要删除。
crontab -l -u paddy
crontab -l -u h123
crontab -l -u www
crontab -l
发现的计划任务。
计划任务
发现该用户一直在定时执行shell脚本,向服务器的网站目录下不断的写入一个shell,写入一个php一句话。
发现了网站目录下确实有一个shell.php的一句话木马(之前的WebShelll查杀,进程分析,以及分析过该文件了)。确定了该计划任务为恶意任务。
确定了恶意的任务,直接删除该计划任务。执行如下命令删除计划任务。
crontab -r
如果是其他用户存在异常的计划任务,直接执行下列命令进行删除。
crontab -r -u 用户名
删除计划任务
如果存在将计划任务直接写在正常用户的计划任务中,按照上面的删除计划任务会全部清空该用户的所有的计划任务。删除特定的可以使用crontab -e -u 用户名 来编辑计划任务,然后直接删除不需要的计划任务。
排除服务自启动
查看已经安装的软件包大致两种方式:(以实际的操作环境为主)
第一种:通过包管理方式来,不同的操作系统版本对应着不同的包管理方式,这里以Ubuntu和CentOS举例。根据实际的操作环境来选取相应的查看软件包的命令。
CentOS系统:
直接执行rpm -qa查看已经安装的软件包,查看已安装的软件包中是否存在非管理人员安装的软件包。
centos查看软件包
执行完成之后发现,都是管理人员正常的安装包。
Ubuntu:
直接执行dpkg -l查看已经安装的软件包,查看已安装的软件包中是否存在非管理人员安装的软件包。
ubuntu查看软件包
发现没有异常的软件安装包。
第二种:通过服务安装位置,源码包安装的服务来查看直接进入到/etc/init.d/目录下查看相应的软件包。这里的内容参考开机启动项的内容。
执行如下命令,查看相关的自启服务。
systemctl list-unit-files
自启服务
由于相关的自启服务太多,这里直接进行筛选,筛选相关的enable的服务,从上图的界面退出去重新执行命令,直接键盘按q键,可以退出服务。执行如下命令。
systemctl list-unit-files | grep enabled
筛选自启服务
经过相关任务的排查,并和管理员进行确认发现并没有异常进程。假设sshd.service(实际上该服务为正常ssd连接服务,假设为异常服务)为异常服务sshd.service 不是管理人员启动的服务,开始对相关服务进行排查。
发现了sshd.service服务为异常服务,执行cd /etc/systemd/system 进入相关的目录下,查看sshd.service服务的内容,执行cat sshd.service 查看服务内容。
查看服务内容
查找相关进程信息。
ps aux | grep sshd
相关进程信息
找到相关的进程信息直接执行如下命令kill掉。
kill -9 PID
执行完之后再次执行如下命令查看。
ps aux
确认一下是否相关进程被kill掉。
杀掉相关服务后,由于该异常服务是一个系统服务的自启动,还需要禁止该服务的自启动,执行如下命令。
systemctl disable sshd.service
关闭服务的自启动。然后再删除该服务的配置文件(注意一定不要删除该任务,这里是假想为异常服务)。关闭完相关的服务之后,cd /etc/system/system 下删除(假设sshd.service)服务文件。这里需要注意,很多时候存在一种情况,直接停止服务的自启动之后,该服务的配置文件会直接消失,这种情况下就不用手动再去删除了,但是为了以防万一还是需要手动去确认一下。
4.日志排查
中间件日志排查
执行cd /www/wwwlogs/ 进入宝塔的日志目录。执行如下命令。
head -n 100 172.16.12.233-access_log(查看日志的前100行)
执行完发现,同一个IP一直在访问网站不同的界面,而且很多界面是网站所没有的。而且这里根据日志记录的访问者的指纹信息,可以看出,攻击者在使用dirbuster对网站进行扫描。这里可以认为是攻击者发起攻击的前奏,攻击者在收集网站的目录信息。认定该IP为异常IP,对该IP进行进一步的排查。
日志信息
执行如下命令, 将日志复制重新命名,
cp 172.16.12.233-access_log access.log
再将access.log文件保存到本地,使用桌面上WinSCP工具将log文件传输到本地桌面,如下图所示。
保存日志
等待日志传输完毕,再使用桌面上的sublime打开,搜索上述找到的异常IP。
发现这个IP一直在对网站进行目录扫描,通过查看日志发现,在扫描结束之后,该攻击者在使用sqlmap对网站的同一个界面一直进行扫描。而且响应的状态码都为200,这里可以确定sqlgunsearch.php页面可能存在SQL注入漏洞由于默认的apache日志系统不记录POST数据,没有办法直接看到提交的参数信息。
日志信息1
接着往下看日志,发现sqlmap跑了一会,该入侵者使用浏览器对这个界面进行了访问,访问之后立马去了sqlgunadmin界面,这个admin界面为该网站的后台管理界面。这里根据该攻击者的行为可以推断,是否攻击者通过search界面的SQL注入漏洞,注入了网站的后台账号密码,然后去登录的后台。
日志信息2
接着往下看日志,发现该入侵者直接在访问后台的addnews,这里直接确定该入侵者已经进入了该网站的后台。
日志信息3
入侵者进入后台之后,对网站的各个目录进行查看,猜测可能在寻找相关的可以getshell(通俗理解为拿到网站的操作权限)的地方。
日志信息4
接着看日志,发现该入侵者在访问网站的后台上传界面,根据该网站使用的cms,搜索相关的安全漏洞,发现后台上传界面上是有一文件上传的漏洞。这里猜想,是不是这个入侵者使用了这个漏洞。
日志信息5
接着往下看日志,发现该入侵者通过这个文件上传,上传了相关文件。
日志信息6
进一步看日志,发现该入侵者直接使用蚁剑,从日志记录的来访者的设备信息可以看出。
日志信息7
分析到最后,发现很长一段时间,该用户一直都在使用蚁剑。这里猜测入侵者是不是直接从这个上传到地方进入的网站。去到相关的目录下面,发现内容。
后门文件
发现一句话木马,确定了入侵者是从这个文件上传的地方,使用了文件上传漏洞,直接getshell的。后面的日志很多都是正常用户的一个访问。
日志信息8
天眼日志排查
在登录天眼之前需要将操作机的网络进行修改,点击如下图的电脑图标,打开网络和共享中心,更改适配器设置,然后将本地连接4启用。
网络设置
更改适配器设置
启用本地连接4
然后打开桌面上的的谷歌浏览器,输入https://172.24.106.47/(以实际设备ip为准)登录天眼分析系统,进入之后出现如图。
隐私设置错误界面
直接鼠标点击浏览器,然后直接盲打键盘,thisisunsafe,输入结束之后,会自动跳转到登录界面。
登录界面
在登录界面输入天眼账号:tapadmin 密码:!1fw@2soc#3vpn,单击【立即登录】按钮成功登录。
天眼界面
单击【监测中心】→【总警告数量】,进入监控界面。
进入监控界面
进入之后根据需要在【时间】下拉列表选择相应的排查时间。
排查时间
选择完之后可以看到天眼的监控日志,发现记录下的最近的入侵者的一个攻击行为。攻击者利用了其他恶意软件漏洞,目录扫描等等的一个行为。
监控日志
在实际生产环境中,发现了以下的攻击行为可以利用天眼的行为阻断,直接断绝攻击者的一个攻击行为,即使网站有漏洞,攻击者也无法利用。阻断界面。
阻断界面
使用shell命令对linux日志进行排查
统计当天访问次数最多的IP,执行以下命令
cut -d- -f 1 access.log|uniq -c | sort -rn | head -2
次数最多IP统计
发现一个ip访问了9000多次,这个是绝对不正常的。
列出有多少IP在访问,执行以下命令:
awk '{print $1}' access.log|sort|uniq|wc -l
IP数量统计
发现有5个访问。
查看每个IP访问了多少界面,执行以下命令:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' access.log
IP访问统计
按IP访问的页面数进行排序,执行以下命令:
awk '{++S[$1]} END {for (a in S) print S[a],a}' access.log | sort -n
IP访问排序
查看特定IP访问了哪些页面,执行以下命令:
grep ^203.107.32.162 access.log| awk '{print $1,$7}' | more
IP访问页面
统计2021年3月27日07 08 09时时间段内的IP访问量。执行以下命令:
awk '{print $4,$1}' access.log | grep 27/Mar/2021:07 | awk '{print $2}'| sort | uniq | wc –l
IP访问量统计
统计http响应状态码,执行以下命令:
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn | more
http响应状态码统计
发现404报错过多,需要去查看是否网站存在异常。
5.利用openvas进行漏洞扫描
输入https://10.10.10.4:9392访问openvas漏动扫描。出现如下界面时,输入如下账号密码:
账号:admin 密码:admin
登录界面
依次点击【Configuration】–【targets】。
打开Targets
点击左上角的图标,新建目标站点,弹出如下窗口。
新建Target
然后配置需要扫描的目标服务器的信息,如下图所示。
配置
点击右下角的【Save】按钮,进行保存。保存成功出现如下目标信息。
保存
依次点击下图【Scans】–【Tasks】–【左上角的新建图标】。
扫描
在弹出来的窗口中按照如下图的配置进行配置。
新建任务
配置完成后点击Save进行保存。保存完毕之后点击下图的图标开始扫描。
开始扫描
等待扫描完毕。出现如下图标则代表着扫描完成。点击【Done】如下图的位置进行相关漏洞的查看
查看
在漏洞报告界面按照如下图的顺序点击,进行相关配置,显示出全部的漏洞信息。
配置
配置完毕之后点Update进行更新。然后点击【Results】进行相关的漏洞信息进行查看
结果查看
共扫描出38个漏洞。然后点击相关漏洞详情进行相关的漏洞信息查看。对漏扫给出的信息进行相关的漏洞修补或者进行相关的安全加固。如下图为FTP未加密明文登录,可以通过设置相关强口令,或者关闭不必要的服务进行安全加固,如存在相关0day漏洞及时更新版本。
查看漏洞详情
依次对扫出来的每个漏洞进行相关的查看,及时联系相关管理人员做好安全加固。
6.安全加固
利用WAF进行防护
从上面的日志分析黑客的入侵行为以及漏洞扫描的相关信息来看,小王发现了网站的很多漏洞,直接采用了自己写的waf,来对网站进行安全加固。执行cd ~/waf 目录里面,小王的waf就在里面。执行
cp ./waf.php /www/wwwroot/waf.php
如下图
复制
找到存在漏洞的界面,这里拿sqlgunsearch.php举例。使用vim编辑器,直接编辑sqlgunsearch.php 这个文件,在文件的第二行直接加上
require_once ‘./waf.php’;
如下图
添加代码
然后保存退出。再次使用浏览器,打开相关界面,判断是否waf在生效。
先正常对网站界面进行搜索,尝试搜索一个1,可以正常返回相关的内容,这是正常的搜索功能。如下图
搜索结果1
然后执行恶意语句的攻击。执行sql语句的查询-1%‘ union select 1,2,3#
搜索
网页直接进行拦截,阻止相关黑客的攻击行为。如下图所示
搜索结果
如果存在相关的恶意攻击,可以在/www/wwwroot/ 目录下的hazel.txt文件中查看相关的恶意攻击行为的日志,执行cat hazel.txt查看日志,如下图所示。下图日志标注了相关恶意用户的攻击类型,以及相关的payload。
查看日志
恶意用户的攻击防御完成。在实际生产中,可以通过这种方式来做相关的安全加固,如果部署了相关厂商的安全产品,可以通过联系相关的安全厂商来对相关的安全产品进行后续产品的更新维护。
【实验结果】
- 通过浏览器burpsuite抓包成功找到网页劫持的恶意代码。
- 使用河马成功找到相关的WebShell。
- 进行系统排查成功找到相关的恶意进程,可疑用户,可疑文件,可疑启动项。
- 进行日志分析成功分析出黑客的入侵思路。
- 利用漏扫成功发现网站的漏洞。
- 利用waf成功对网站进行了加固。
【实验思考】
- 如何利用攻击者的攻击痕迹进行反制。
- 网站漏洞存在的情况下,如何利用相关的waf阻断攻击者的攻击路线。