测试环境

攻击机:kali linux 192.168.43.127
靶机:192.168.43.253

主机发现

执行命令nmap -sn 192.168.43.1/24
1.jpg

端口扫描

执行命令nmap 192.168.43.235 -p-
2.jpg

信息收集

一打开是一张图片,F12没有任何东西,扫描目录
3.jpg
打开secret目录又是一张图片,没有发现任何利用价值
whatweb查询一下,信息也挺少的
4.jpg
80端口貌似没有可以利用的点

转战ftp端口

ftp常用命令

1.登录ftp
方法一:直接输入ftp+ip ftp ip
方法二:直接输入ftp,进入ftp服务后输入open+ip open ip
2.查看ftp服务器上的文件
lsdirdir命令可以使用通配符
3.下载文件
get:下载指定文件get filename [newname]filename为下载的FTP服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存)
mget:下载多个文件(mget命令支持通配符“”“?”,比如:mget .mp3 表示下载FTP服务器当前目录下的所有扩展名为mp3的文件)
4.上传文件
put:上传指定文件put filename [newname]
send:上传指定文件send filename [newname]
filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传)
5. 结束并退出FTP
close:结束与服务器的FTP会话
quit:结束与服务器的FTP会话并退出FTP环境

ftp端口利用拿shell

尝试一下ftp匿名登录
如果允许匿名访问则可以使用用户名为anonymous密码为空来登录,发现里面有一个lol.pcap文件
5.jpg
下载到本地
6.jpg
wireshark打开,在FTP里面看到他的各种操作,最后发现一条流量
7.jpg
sup3rs3cr3tdirlol这个字符串也不知道是什么,看到里面有个dir,之前80端口网页上面没有任何突破,猜想这是不是一个目录,于是输入查看
8.jpg
下载这个文件
尝试运行一下它./roflmao
9.jpg
这里还可以strings roflmao
10.jpg
都有这句话,访问这个目录,所以我们就访问一下
11.jpg
里面分别是账号密码,用来登录ssh,所以我们用hydra爆破ssh,不过密码为Good_job_:)我觉得有点怪。。先爆破吧

hydra -L user -P Pass.txt ssh://192.168.43.235

12.jpg
没有爆出来,应该密码不是那个,想到那个文件夹名为this_folder_contains_the_password,这个文件夹包含有密码,文件夹打开是Pass.txt,那么密码是不是Pass.txt,试一下

hydra -L user -p Pass.txt ssh://192.168.43.235

果然
13.jpg
所以我们就登录ssh,这是一个低权限账户
14.jpg

权限提升(方法一,内核提权)

查看当前内核版本uname -a
15.jpg
searchsploit搜索一下是否有内核提权
16.jpg
exp放在kaliapache上面,然后下载,编译,运行拿到root权限
17.jpg
18.jpg

权限提升(方法二:计划任务反弹shell提权)

每隔一小段时间ssh会自动退出,猜想是执行了定时任务,于是在/var/log/cronlog里面看到计划任务cleaner.py
19.jpg
应该是分钟执行一次命令,在根目录下用find命令find -name cleaner.py找到cleaner.py的位置在/lib/log/cleaner.py
查看一下该文件权限,是root权限
20.jpg
查看一下文件内容
21.jpg
将里面的内容改为反弹shell,因为权限不够所以无法直接编辑cleaner.py,该靶机拥有nc所以编写好cleaner.py内容为反弹shell上传覆盖
22.jpg
等一会儿就拿到了root权限的shell
23.jpg
24.jpg

权限提升(方法三:计划任务提权)

一样nc上传cleaner.py,里面的内容为

import os
import sys
try:
    os.system('cp /bin/sh /tmp/sh')
    os.system('chmod u+s /tmp/sh')
except:
    sys.exit()

27.jpg
然后执行文件即可拿到root权限
28.jpg
29.jpg

权限提升(方法四:计划任务写ssh公钥提权)

首先在kali攻击上生成SSH密钥,使用命令ssh-keygen
25.jpg
还是使用nc上传cleaner.py,内容为写入ssh公钥
26.jpg
过一会儿去连ssh,就可以免密连接并且拿到的是root权限

知识小结

1.ftp常见命令以及匿名访问,如果开启了ftp匿名,匿名访问账号为anonymous,密码为空或者随意
2./var/log/cronlog里面计划任务提权
3.将/bin/sh或者/bin/bash这种文件复制出来利用计划任务提权的方法
4.ctf里面有未知文件可以使用strings+文件名或者运行它