一、思路及简介

靶机地址:HarryPotter: Fawkes ~ VulnHub

涉及攻击方法:

  • 主机发现
  • 端口扫描
  • web信息收集
  • FTP服务攻击
  • 缓存区溢出
  • 模糊测试
  • 漏洞利用代码编写
  • 流量转包分析
  • 堆溢出漏洞攻击
  • Metasploit(MSF)
  • 手动修复EXP代码
  • 本地提权

二、主机发现

arp-scan -l

目标靶机ip为10.0.2.14,其实靶机启动时,也会在页面显示这个IP

image-20240820140456296

三、端口扫描&&目录扫描

nmap -p- 10.0.2.14

全端口扫描发现21,22,80,2222,9898端口开放

image-20240820140836888

进一步进行详细扫描

nmap -p 21,22,80,2222,9898 -sV -sC 10.0.2.14

发现21端口ftp可以匿名登录

2222端口也是ssh服务

9898端口不知道是什么服务,nmap随便起的名字

先访问80端口,发现就是一张图片

image-20240820141249149

dirsearch -u http://10.0.2.14

目录扫描没发现任何有用的内容

image-20240820141525903

四、ftp登录

ftp 10.0.2.14
anonymous

ftp登录发现有一个可执行的文件

image-20240820141714966

get到kali中查看

get server_hogwarts

get到kali执行ftp的当前文件夹下

image-20240820142308892

使用file查看文件类型

file server_hogwarts

发现是个可执行文件

image-20240820142353888

在kali中授给文件可执行权限

启动服务

chmod +x server_hogwarts 
./server_hogwarts

启动后并没有看到任何动静

image-20240820143205555

查看进程是,服务是否启动成功

ps -aux |grep server  #查看服务是否启动成功
ss -pantu|grep server #ss查看服务对应的端口

ss命令相当于netstat 具体区别自行百度,之前面试被问到过

image-20240820143219884

发现服务对应的端口是9898

nc监听本地端口

nc 127.0.0.1 9898

image-20240820144003298

五、server_hogwarts调试

只有程序这一个入手点,由于没法获取到源码,只能做动态调试

进行测试之前,还得先关掉kali本机的alsr功能,alsr是一种内存地址随机化的安全技术, 不关掉的话会导致我们自己挖漏洞的时候挖不出来,每次内存地址都会变,需要把2改成0,这样就会关闭它

image-20240820144225185

下载一个图形化调试工具

sudo apt install edb-debugger

image-20240820161820385

具体调试过程,参考这个

打靶记录12——Fawkes - Fab1an - 博客园 (cnblogs.com)

六、反弹shell

/bin/sh -i # 升级一下终端
ls -al # 查看隐藏文件

image-20240820161923122

发现一个隐藏记事本,查看是一个字符串

image-20240820162045356

尝试一下ssh连接2222端口连接,登录成功,但是根据用户名猜测是个docker容器

image-20240820162156782

查看根目录所有文件,发现dockerenv发现2222端口对应的确实是一个docker容器

ls / -al

image-20240820162405618

sudo /bin/sh

经过一番尝试,提取到容器的root权限

image-20240820162552792

切换到root目录,发现两个记事本

一个是flag

有人尝试等你来ftp但是没有成功,通过分析流量来获取信息

image-20240820162648445

没法使用wireshark,只能使用tcpdump进行分析

抓取eth0网卡下21端口的流量

tcpdump -i eth0 port 21

等了半天才回显一点信息

image-20240820162945932

发现登录成功的账号和密码

账户:neville

密码:bL!Bsg3k

七、提权

再次尝试ssh连接这个用户

image-20240820163203538

登录成功

发现符合这个漏洞的提权条件

什么是Linux sudo权限漏洞(CVE-2021-3156)_云服务器 ECS(ECS)-阿里云帮助中心 (aliyun.com)

sudoedit -s /

image-20240820163639334

image-20240820163611894

使用这个脚本进行提权

CVE-2021-3156/exploit_nss.py at main · worawit/CVE-2021-3156 · GitHub

image-20240820164210115

但是需要改一下,靶机的sudo路径不是默认的路径,手动改一下exp中路径

image-20240820164753725

通过nc传输文件

nc -lvnp 4444 > exp.py
nc 10.0.2.14 4444 < exploit_nss.py -w 1

nc -lvnp 4444 > exp.py #靶机中执行这个命令,将传送过来的文件保存为exp.py
nc 10.0.2.14 4444 < exploit_nss.py -w 1 # kali中执行,将利用脚本传送到靶机 -w 1参数的意思是文件传输完成后隔1秒就断开连接

image-20240820165114291

image-20240820165133511

python执行,提权成功

image-20240820165526770

打靶完成

由于不会二进制动态调试,就根据文章比葫芦画瓢搞了一下,但是忘了截图了

参考文章:打靶记录12——Fawkes - Fab1an - 博客园 (cnblogs.com)