Fawkes
一、思路及简介
靶机地址:HarryPotter: Fawkes ~ VulnHub
涉及攻击方法:
- 主机发现
- 端口扫描
- web信息收集
- FTP服务攻击
- 缓存区溢出
- 模糊测试
- 漏洞利用代码编写
- 流量转包分析
- 堆溢出漏洞攻击
- Metasploit(MSF)
- 手动修复EXP代码
- 本地提权
二、主机发现
arp-scan -l |
目标靶机ip为10.0.2.14,其实靶机启动时,也会在页面显示这个IP
三、端口扫描&&目录扫描
nmap -p- 10.0.2.14 |
全端口扫描发现21,22,80,2222,9898端口开放
进一步进行详细扫描
nmap -p 21,22,80,2222,9898 -sV -sC 10.0.2.14 |
发现21端口ftp可以匿名登录
2222端口也是ssh服务
9898端口不知道是什么服务,nmap随便起的名字
先访问80端口,发现就是一张图片
dirsearch -u http://10.0.2.14 |
目录扫描没发现任何有用的内容
四、ftp登录
ftp 10.0.2.14 |
ftp登录发现有一个可执行的文件
get到kali中查看
get server_hogwarts |
get到kali执行ftp的当前文件夹下
使用file查看文件类型
file server_hogwarts |
发现是个可执行文件
在kali中授给文件可执行权限
启动服务
chmod +x server_hogwarts |
启动后并没有看到任何动静
查看进程是,服务是否启动成功
ps -aux |grep server #查看服务是否启动成功 |
ss命令相当于netstat 具体区别自行百度,之前面试被问到过
发现服务对应的端口是9898
nc监听本地端口
nc 127.0.0.1 9898 |
五、server_hogwarts调试
只有程序这一个入手点,由于没法获取到源码,只能做动态调试
进行测试之前,还得先关掉kali
本机的alsr
功能,alsr
是一种内存地址随机化的安全技术, 不关掉的话会导致我们自己挖漏洞的时候挖不出来,每次内存地址都会变,需要把2
改成0
,这样就会关闭它
下载一个图形化调试工具
sudo apt install edb-debugger |
具体调试过程,参考这个
打靶记录12——Fawkes - Fab1an - 博客园 (cnblogs.com)
六、反弹shell
/bin/sh -i # 升级一下终端 |
发现一个隐藏记事本,查看是一个字符串
尝试一下ssh连接2222端口连接,登录成功,但是根据用户名猜测是个docker容器
查看根目录所有文件,发现dockerenv发现2222端口对应的确实是一个docker容器
ls / -al |
sudo /bin/sh |
经过一番尝试,提取到容器的root权限
切换到root目录,发现两个记事本
一个是flag
有人尝试等你来ftp但是没有成功,通过分析流量来获取信息
没法使用wireshark,只能使用tcpdump进行分析
抓取eth0网卡下21端口的流量
tcpdump -i eth0 port 21 |
等了半天才回显一点信息
发现登录成功的账号和密码
账户:neville
密码:bL!Bsg3k
七、提权
再次尝试ssh连接这个用户
登录成功
发现符合这个漏洞的提权条件
什么是Linux sudo权限漏洞(CVE-2021-3156)_云服务器 ECS(ECS)-阿里云帮助中心 (aliyun.com)
sudoedit -s / |
使用这个脚本进行提权
CVE-2021-3156/exploit_nss.py at main · worawit/CVE-2021-3156 · GitHub
但是需要改一下,靶机的sudo路径不是默认的路径,手动改一下exp中路径
通过nc传输文件
nc -lvnp 4444 > exp.py |
nc -lvnp 4444 > exp.py #靶机中执行这个命令,将传送过来的文件保存为exp.py
nc 10.0.2.14 4444 < exploit_nss.py -w 1 # kali中执行,将利用脚本传送到靶机 -w 1参数的意思是文件传输完成后隔1秒就断开连接
python执行,提权成功
打靶完成
由于不会二进制动态调试,就根据文章比葫芦画瓢搞了一下,但是忘了截图了