freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

VulnHub-pWnOS: 2.0-靶机渗透学习
2020-12-27 16:40:21

靶机地址:https://www.vulnhub.com/entry/pwnos-20-pre-release,34/

靶机难度:中级(CTF

靶机发布日期:201174

靶机描述:pWnOS v2.0是一个Virutal机器映像,它托管一个服务器以进行实践渗透测试。它将测试您利用服务器的能力,并包含多个达到目标(根)的入口点。它是为与WMWare Workstation 7.0一起使用而设计的,但也可以与大多数其他虚拟机软件一起使用。

目标:得到root权限&找到flag.txt

作者:DXR嗯嗯呐




配置虚拟机

靶机规定了IP、网关、子网掩码,需要修改攻击者的地址,才能访问。

1609056885_5fe84275ee1308a8e6e3a.png!small?1609056884952

auto eth0

iface eth0 inet static

#配置eth0使用默认的静态地址

address 10.10.10.101

#配置eth0的IP地址

netmask 255.255.255.0

#配置eth0的子网掩码

gateway 10.10.10.15

#配置当前主机的默认网关

1609056902_5fe842862d47117ba61c8.png!small?1609056901112

启动网卡,修改IP成功

1609056906_5fe8428a96ea5c89877f0.png!small?1609056905799

如果你想你的物理机连接虚拟机,修改一下网卡 VMware Virtual Ethernet Adapter for VMnet8 的信息即可

1609058195_5fe8479324ece2e2ea428.png!small?1609058194125

信息收集

上面说了靶机的地址为10.10.10.100,现在nmap扫描一下看看

1609056954_5fe842baa43a49596eb47.png!small?1609056955822

nmap扫描端口信息

1609056924_5fe8429c9f1f5a54121b8.png!small?1609056938577

22 SSH

80 http

访问80端口,在前台界面获得一个邮箱,记下来

admin@isints.com

1609056937_5fe842a94d9bb080919e6.png!small?1609056938579

nikto扫描找到很多信息,这是一个登陆界面

1609056956_5fe842bc24f852a54289e.png!small?1609056955822

利用mysql LOCAL_INFILE 函数getshell

访问这个php,是个登陆界面,看一下有没有sql注入

1609056951_5fe842b7e273d2ffd38c5.png!small?1609056955821

email参数存在sql注入

1609056962_5fe842c23f28502b7d963.png!small?1609056961386

看一下可不可以直接使用sqlmap将反弹shell写入靶机

1609056975_5fe842cf06309cefd994d.png!small?1609056974129

执行sqlmap命令,通过mysql的LOCAL_INFILE 函数写入木马

sqlmap -r 2.txt --batch  --file-write /tmp/shell.php --file-dest /var/www/shell1.php

1609056986_5fe842daed3e90820ce05.png!small?1609056986214

1609057001_5fe842e9756df6638c5de.png!small?1609057000309

配置msf,获得shell

1609057007_5fe842efbea8427055f1e.png!small?1609057006879

1609057013_5fe842f5a1b1def95f4fd.png!small?1609057012505

利用文件上传getshell

我们这里采用其他思路获得shell

登陆界面

1609057210_5fe843ba0d5b0e31b62f9.png!small?1609057208943

sqlmap测试email参数存在注入

1609057214_5fe843beb163a07297efa.png!small?1609057213629

在ch16数据库存在users表,找到了admin@isints.com密码

sqlmap -r sqlmap.txt --batch -D ch16 -T users --dump

1609057221_5fe843c5531351737a46b.png!small?1609057220297

MD5解密

获得账号密码admin@isints.com/killerbeesareflying

1609057238_5fe843d69f56370a7527d.png!small?1609057237627

登陆没获得有用信息

1609057246_5fe843de844d576f294b1.png!small?1609057245434

dirb扫描发现blog目录

1609057251_5fe843e39ce310e737898.png!small?1609057250583

查看网页源代码发现靶机使用的是Simple PHP Blog 0.4.0

百度介绍

1609057258_5fe843ea9025a6fe984b0.png!small?1609057257413

1609057284_5fe84404c527b58c10945.png!small?1609057283766

看一下这个程序存在一个远程代码漏洞

1609057291_5fe8440b2a8cbf63b11c2.png!small?1609057290044

配置msf

1609057295_5fe8440f8cb6a12e4faaf.png!small?1609057294592

1609057305_5fe8441953f2b8b7ecf59.png!small?1609057304219

启动,没有获得shell,但是创建了一个账号

1609057312_5fe8442023e8834883f84.png!small?1609057311187

RG5Bqr/DHmsZA

登陆找到了一个图片上传点,上传一个木马

1609057320_5fe84428a52042e73ee1b.png!small?1609057319562

在之前dirb扫描的时候,我们发现过一个图片目录,看一下是不是上传这里了

1609057326_5fe8442eb982e874232ca.png!small?1609057325668

1609057337_5fe84439c1e2572877909.png!small?1609057336724

连个过滤都没有,可能是靶机太老了,毕竟是11年的

找到木马的路径http://10.10.10.100/blog/images/shell.php,连接木马,获得shell

1609057345_5fe8444128d90a77ded36.png!small?1609057344065

UDF提权

看mysql程序是root用户启动

1609057364_5fe8445437c44f62c5f20.png!small?1609057363143

没有没配置文件,记录了mysql的用户密码

在/var/www目录下找到

1609057376_5fe844605b425bc9fe9b3.png!small?1609057375252

但是登陆失败

又在/var目录下找到

1609057383_5fe844676c1c7b7456bb7.png!small?1609057382301

登陆mysql

1609057388_5fe8446c5e586ea40d7c0.png!small?1609057387393

因为前面都可以将文件写入/var/www目录了,应该可以UDF提权

show global variables like 'secure%';

  • 当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出文件,此时无法提权
  • 当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出文件只能发生在 /tmp/ 目录下,此时也无法提权
  • 当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出文件做限制,此时可提权
  • 查看mysql框架

1609057432_5fe84498ef5c6a95084ae.png!small?1609057431876

查看mysql框架

1609057473_5fe844c1d23715af3414a.png!small?1609057472749

在msf中找到合适的udf文件

1609057477_5fe844c5dd9a8fc8f8208.png!small?1609057476888

将文件上传到靶机上

1609057481_5fe844c9cdba5918254c9.png!small?16090574809331609057486_5fe844cee9d138fccd1b9.png!small?1609057485896

查看mysql数据库plugin目录位置

1609057502_5fe844de35e61cca03300.png!small?1609057501074

随便进入一个库,创建表,将文件内容写到表中


将表中数据,写到plugin目录,自定义一个文件名,并创建sys_eval函数

1609057523_5fe844f38ad8e2c1feb89.png!small?1609057541938

使用sys_eveal函数执行命令,获得root权限

1609057531_5fe844fb2f7080021b8bf.png!small?1609057545669

打算获得一个root权限的交互式界面,给find命令赋root的sid权限,并执行find命令,获得一个拥有sid root权限

1609057536_5fe84500457030d90b3c3.png!small?1609057545665


完成!!!

提权的方法就很多了,这里使用的是UDF提权,其他的方法就不测试了,有兴趣的同学可以试一下。总体来说这个靶机比较老了,我做的方法可能就和靶机设计的初衷不太一致了,不过也是学到了很多,现在靶机做的越来越顺了,高兴。

总结

  • 1、使用nikto找到login.php,登陆界面,使用sqlmap对登陆参数测试,发现email参数存在注入。
  • 2、直接使用sqlmap利用mysql的local_infile函数上传木马,获得shell;或者利用simple PHP Blog 0.4.0漏洞,创建一个账号,在利用文件上传漏洞,上面木马,获得shell。
  • 3、利用mysql数据库程序为root用户启动,利用mysql的udf漏洞提权,获得root用户。




# SQL注入 # web安全 # 数据安全 # linux安全 # 文件上传
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录