DC-6

admin 2024年1月7日14:05:18评论15 views字数 11376阅读37分55秒阅读模式

前言

首先大家一定要记住,所有未经授权的渗透都是违法的,所以大家切勿一通乱黑,被关进橘子有的哭了。我们可以在本地搭建一些本地靶场,比如Dvwa

项目介绍 

靶机:172,16,10,14

攻击机:172,16,10,10;172,16,10,12

一、信息收集   

1、主机信息   

DC-6

2、端口信息    

DC-6    

3、服务信息    

DC-6

二、漏洞分析    

1、访问Web    

注意这里直接访问Web是会报错的,原因是该服务器做了重定向,因为本机DNS没有该IP重定向后的域名对应关系,导致在访问时无法解析地址。解决办法在host文件中添加该IP与域名的对应关系即可。

172.16.10.14 wordy

现在在访问web就可以成功访问了

DC-6

页面给出了三个菜单栏,分别是Welcome、About US和Contract US,在这只能知道该网站是使用wordPress搭建的。访问WordPress自带的reade.html(WordPress安装导言)和wp-admin(这个是WordPress默认的定义注册用户的登陆页面地址,wp-admin下有很多个php.wen文件,默认打开的文件是login.php)看看能不能访问    

在readme.html中可以看到一些页面的访问方法。

DC-6

Readme.html

DC-6

WP-admin

发现都没有被关闭,在这里直接访问定义注册用户的登陆页面入口是因为WordPress的登入路径就是WP-admin,对网站和论坛有过基础的多少都知道些,下面是关于wordPress的各个文件作用详解。

2、WordPress文件详解  

# wordpress各个文件作用详解1.index.php:wordpress核心索引文件,即博客输出文件。2.license.txt:WordPress GPL许可证文件。3.my-hacks.php:定义了博客输出之前处理的追加程序。默认安装中并没有这个文件,但如果存在,它就会被管理页面引用。4.readme.html:WordPress安装导言。5.wp-atom.php:输出Atom信息聚合内容。    6.wp-blog-header.php:根据博客参数定义博客页面显示内容。7.wp-cron.php8.wp-comments-post.php:接收评论,并把其添加到数据库。9.wp-commentsrss2.php:用来生成日志评论的RSS2信息聚合内容。10.wp-config-sample.php:把WordPress连接到MySQL数据库的示例配置文件。11.wp-config.php:这是真正把WordPress连接到MySQL数据库的配置文件。默认安装中虽不包括它,但由于WordPress运行需要这一文件,因此,用户需要编辑这个文件以更改相关设置。12.wp-feed.php:根据请求定义feed类型并其返回feed请求文件。13.wp-links-opml.php:生成OPML格式的链接(通过WordPress管理菜单添加)列表。14.wp-login.php:定义注册用户的登陆页面。15.wp-mail.php:用来获取通过邮件提交的博文。这个文件的URL通常被添加到cron任务中,这样cron就会定期检索文件并接收邮件日志。16.wp-pass.php:审核受密码保护文章的密码并显示被保护文章。17.wp-rdf.php:生成RDF信息聚合内容。18.wp-register.php:允许新用户通过联机表单注册用户名。19.wp-rss.php:生成RSS信息聚合内容。20.wp-rss2.php:生成RSS2信息聚合内容。21.wp-settings.php:运行执行前的例行程序,包括检查安装是否正确,使用辅助函数,应用用户插件,初始化执行计时器等等。22.wp-trackback.php:处理trackback请求。23.wp.php:显示博客日志的简单模板。并没有什么神奇之处,但包括了部分index.php内容。24.xmlrpc.php:处理xmlrpc请求。用户无需通过内置的网络管理界面就可发布文章。 wp-admin1.wp-admin/admin.php:管理文件的核心文件。用来连接数据库,整合动态菜单数据,显示非核心控制页面等。2.wp-admin/admin-db.php3.wp-admin/admin-footer.php:定义所有管理控制台的页脚。4.wp-admin/admin-functions.php:定义了管理控制台使用的多种函数。5.wp-admin/admin- header.php:定义了管理控制台的上半部分内容,包括菜单逻辑 (menu logic)的 menu-header.php文件。6.wp-admin/bookmarklet.php:使用书签功能时,定义弹出页面。撰写日志时使用默认的edit-form.php文件。7.wp-admin/categories.php:定义管理页面的类别管理。参考: Manage – Categories8.wp-admin/cat-js.php9.wp-admin/edit.php:定义管理页面的日志管理。参考: Manage – Posts10.wp-admin/edit-comments.php:定义管理页面的评论管理。参考: Manage – Comments11.wp-admin/edit-form-advanced.php:定义管理页面的日志高级编辑形式管理,包括post.php。参考: Write – Write Post – Advanced12.wp-admin/edit-form.php:定义管理页面的日志简单编辑形式管理,包括post.php。参考: Write – Write Post13.wp-admin/edit-form-comment.php:编辑特定日志评论。14.wp-admin/edit-form-ajax-cat.php15.wp-admin/edit-link-form.php    16.wp-admin/edit-page-form.php:定义管理模块页面的页面编辑,包括post.php和page-new.php。参考: Write – Write Page17.wp-admin/edit-pages.php:定义管理模块页面的页面管理。参考: Manage – Pages18.wp-admin/execute-pings.php19.wp-admin/import.php20.wp-admin/index.php:默认管理页面。根据用户请求显示相应的页面。21.wp-admin/inline-uploading.php22.wp-admin/install-helper.php:定义数据库维护函数,包括popular-in-plugins maybe_create_table() 和maybe_add_column()。23.wp-admin/install.php:安装WordPress。24.wp-admin/link-add.php:链接添加。参考: Links – Add Link25.wp-admin/link-categories.php:链接分类管理。参考: Links – Link Categories26.wp-admin/link-import.php:导入链接。参考: Links – Import Links27.wp-admin/link-manager.php:链接管理。参考: Links – Manage Links28.wp-admin/link-parse-opml.ph:导入链接时,用来解析OPML文件。29.wp-admin/list-manipulation.js30.wp-admin/list-manipulation.php31.wp-admin/menu-header.php:用于在管理界面显示菜单。32.wp-admin/menu.php:定义了默认管理菜单结构。33.wp-admin/moderation.php:定义了评论审核函数。34.wp-admin/options.php:升级后,用来更改所有设置。35.wp-admin/options-discussion.php:管理评论和trackback相关选项。参考: Options – Discussion36.wp-admin/options-general.php:管理基本配置选项。参考: Options – General37.wp-admin/options-head.php38.wp-admin/options-misc.php:设置文件上传,链接跟踪,自定义”hacks”等相关选项。参考:Options – Miscellaneous39.wp-admin/options-permalink.php:管理永久链接选项。参考: Options – Permalinks40.wp-admin/options-reading.php:设置如何把网站信息发送到读者浏览器或其它应用程序。参考: Options – Reading41.wp-admin/options-writing.php:管理日志撰写界面。参考:Options – Writing42.wp-admin/page-new.php:创建新页面。43.wp-admin/plugin-editor.php:编辑插件文件。44.wp-admin/plugins.php:管理插件。45.wp-admin/post.php:创建新日志。46.wp-admin/profile-update.php47.wp-admin/profile.php:管理个人资料或配置。48.wp-admin/setup-config.php:安装时,用来创建wp-config.php文件。49.wp-admin/sidebar.php50.wp-admin/templates.php:编辑服务器可写文件。51.wp-admin/theme-editor.php:编辑特定主题中的文件。52.wp-admin/themes.php:管理主题。53.wp-admin/update-links.php54.wp-admin/upgrade-functions.php:定义了版本升级函数。55.wp-admin/upgrade-schema.php:定义了升级中使用的默认表格结构和选项。    56.wp-admin/upgrade.php:版本升级。57.wp-admin/user-edit.php:编辑用户。58.wp-admin/users.php:管理用户。59.wp-admin/wp-admin.css:定义了管理控制台的默认样式表。60.wp-admin/xfn.jswp-includes wp-includes目录1.wp-includes/cache.php2.wp-includes/capabilities.php3.wp-includes/class-IXR.php:Incutio XML-RPC库。包括了 XML RPC支持函数。4.wp-includes/classes.php:包括了基本的类,如核心文章提取机制WP_Query和改写管理WP_Rewrite。5.wp-includes/class-pop3.php:包括了支持使用POP邮箱的类。可供wp-mail.php 使用。6.wp-includes/class-snoopy.php:Snoopy是一个PHP类,用来模仿Web浏览器的功能,它能自动完成检索网页和发送表单的任务。7.wp-includes/comment-functions.php8.wp-includes/default-filters.php9.wp-includes/feed-functions.php10.wp-includes/functions-compat.php:即新版本PHP中用来支持老版本PHP的函数文件。11.wp-includes/functions-formatting.php:用于清理XHTML和用特定字符集正确格式化文本。12.wp-includes/functions-post.php:定义了在数据库中管理日志,查询用户权限,提取和撰写评论等函数。13.wp-includes/functions.php:包含许多重要的支持函数,它是WordPress中最大的文件,函数数量几乎是第二大文件的两倍。14.wp-includes/gettext.php:PHP-gettext GPL 翻译库组成部分。15.wp-includes/kses.php:用来渲染和过滤日志或评论中的HTML。16.wp-includes/links.php:用来管理和使用WordPress的链接功能。17.wp-includes/locale.php:用来替代默认的星期和月份值。18.wp-includes/pluggable-functions.php19.wp-includes/registration-functions.php20.wp-includes/rss-functions.php21.wp-includes/streams.php:定义了包装文件流和字符流的类。22.wp-includes/template-functions-author.php:包含了与日志作者或评论人相关的主题函数。23.wp-includes/template-functions-category.php:包含了与类别相关的主题函数。24.wp-includes/template-functions-comment.php:包含了与评论相关的主题函数。25.wp-includes/template-functions-general.php:包含了常规主题函数。26.wp-includes/template-functions-links.php:包含了与链接相关的主题函数。27.wp-includes/template-functions-post.php:包含了与日志相关的主题函数。28.wp-includes/template-functions.php:包含了以上所有”template-”文件。29.wp-includes/template-loader.php30.wp-includes/vars.php:用来设置杂项变量。31.wp-includes/version.php:用来设置当前使用的WordPress版本。32.wp-includes/wp-db.php:包含了用来连接MySQL数据库的函数。33.wp-includes/wp-l10n.php:提供支持多语言版本的函数。    

三、漏洞分析  

这里介绍两种技术

1、方法一  

(1)获取定义注册用户的登陆页面登入密码  

爬取该网站上使用的用户

# wpscan --url http://wordy -e u_______________________________________________________________         __          _______   _____                  / /  __  / ____|             /  / /| |__) | (___   ___  __ _ _ __ ®            /  / / |  ___/ ___  / __|/ _` | '_               /  /  | |     ____) | (__| (_| | | | |             /  /   |_|    |_____/ ___|__,_|_| |_|                    WordPress Security Scanner by the WPScan Team                         Version 3.8.24       Sponsored by Automattic - https://automattic.com/       @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart_______________________________________________________________           [+] URL: http://wordy/ [172.16.10.14][+] Started: Sat Jan  6 16:38:47 2024           Interesting Finding(s):           [+] Headers | Interesting Entry: Server: Apache/2.4.25 (Debian) | Found By: Headers (Passive Detection) | Confidence: 100%           [+] XML-RPC seems to be enabled: http://wordy/xmlrpc.php | Found By: Direct Access (Aggressive Detection) | Confidence: 100% | References: |  - http://codex.wordpress.org/XML-RPC_Pingback_API |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner/ |  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos/ |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login/ |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access/               [+] WordPress readme found: http://wordy/readme.html | Found By: Direct Access (Aggressive Detection) | Confidence: 100%           [+] The external WP-Cron seems to be enabled: http://wordy/wp-cron.php | Found By: Direct Access (Aggressive Detection) | Confidence: 60% | References: |  - https://www.iplocation.net/defend-wordpress-from-ddos |  - https://github.com/wpscanteam/wpscan/issues/1299           [+] WordPress version 5.1.1 identified (Insecure, released on 2019-03-13). | Found By: Rss Generator (Passive Detection) |  - http://wordy/index.php/feed/,https://wordpress.org/?v=5.1.1 |  - http://wordy/index.php/comments/feed/,https://wordpress.org/?v=5.1.1           [+] WordPress theme in use: twentyseventeen | Location: http://wordy/wp-content/themes/twentyseventeen/ | Last Updated: 2023-11-07T00:00:00.000Z | Readme: http://wordy/wp-content/themes/twentyseventeen/README.txt | [!] The version is out of date, the latest version is 3.4 | Style URL: http://wordy/wp-content/themes/twentyseventeen/style.css?ver=5.1.1 | Style Name: Twenty Seventeen | Style URI: https://wordpress.org/themes/twentyseventeen/ | Description: Twenty Seventeen brings your site to life with header video and immersive featured images. With a fo... | Author: the WordPress team | Author URI: https://wordpress.org/ | | Found By: Css Style In Homepage (Passive Detection) | | Version: 2.1 (80% confidence) | Found By: Style (Passive Detection) |  - http://wordy/wp-content/themes/twentyseventeen/style.css?ver=5.1.1, Match: 'Version: 2.1'           [+] Enumerating Users (via Passive and Aggressive Methods) Brute Forcing Author IDs - Time: 00:00:00 <===============================================================> (10 / 10) 100.00% Time: 00:00:00           [i] User(s) Identified:           [+] admin | Found By: Rss Generator (Passive Detection)     | Confirmed By: |  Wp Json Api (Aggressive Detection) |   - http://wordy/index.php/wp-json/wp/v2/users/?per_page=100&page=1 |  Author Id Brute Forcing - Author Pattern (Aggressive Detection) |  Login Error Messages (Aggressive Detection)           [+] graham | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection)           [+] mark | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection)           [+] sarah | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection)           [+] jens | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection)           [!] No WPScan API Token given, as a result vulnerability data has not been output.[!] You can get a free API token with 25 daily requests by registering at https://wpscan.com/register           [+] Finished: Sat Jan  6 16:38:50 2024[+] Requests Done: 62[+] Cached Requests: 6[+] Data Sent: 14.803 KB[+] Data Received: 641.26 KB[+] Memory used: 172.246 MB[+] Elapsed time: 00:00:03

从爬取结果上可以看到该网站上存在5个账号

AdminGrahammarksarahjens

使用密码字典爆破这几个用户的字典,之前看过一个大佬用python写的也挺快,这里用bp和wpscan跑一下    

DC-6

BP爆破结果

DC-6

WPscan爆破结果

两种方法都只爆出来一个用户,这是因为使用的是同一份字典,如果电脑配置高的话可以跑大点的字典,那跑出来的结果与期望值也会相会大些。    

(2)登入Web  

DC-6

登入后没发现什么有用信息,在User哪里可以删除账号,但这对我们的帮助不大。

(3)漏洞利用  

登入后没有发现有用信息后,把注意力放在了插件上,经过测试后发现Activity Monitor存在一个CVE-2018-15877漏洞。

在攻击机上运行Web服务,成功运行Web服务后在其站点下创建dajun.html文件,并配置为默认文档,内容如下图所示:

DC-6

都运行完成后在攻击机上启动中国瑞士军刀监听

DC-6

接着访问dajun.html这个文件并点击提交请求即可获取shell

DC-6    

成功标志如下所示:

DC-6

2、方法二  

使用方法一打入系统后,根据POC信息,回到Activity monitor插件看看信息,结果发现了一个ip解析工具,经过测试发现其存在命令执行漏洞。下面将给出过程:

(1)尝试列出当前目录文件  

刚开始解析不来了,后面选择lookup方式发现直接列举出了当前目录下的所有文件,如下图所示:

DC-6

想读取/etc/passwd发现长度被限制,最大值设置为15。将maxlength="15”更改为50后就可以读取/etc/passwd了    

DC-6

(2)反弹shell  

在攻击机上用瑞士军刀监听9091,随后解析IP并反弹一个shell

DC-6

DC-6

现在已经成功获取到了shell    

3、方法三  

使用漏洞扫描工具找到漏洞有因为版本5.1.1=Version<6.4.2,使用漏洞扫描工具能扫出最少57个漏洞,这里就陈述了,有兴趣的可以自己研究一下。

四、权限提升    

现在虽然已经拿到了操作系统的shell但我们还是没有足够的操作权限,这是需要我们进行提权操作。

1、查看具有sudo权限软件  

发现没有可以sudo临时提权的软件

DC-6

2、查看suid权限软件  

这里有个Openssh的keysign,刚开始以为是可以打进去的,后面发现不行,于是只能找找其他线索了。

DC-6

3、home信息  

进入home目录看看有那些用户目录下有那些信息,最后在mark用户下面的stuff路径下找到一个名为things-to-do.txt文件内容如下所示:    

DC-6

大概意思是

恢复超级硬盘的全部功能(需要与Jens交谈)-为萨拉的告别派对买礼物。-添加新用户:graham-GSo7isUM1D4-完成-申请OSCP课程-买一台新的笔记本电脑给莎拉换。

拿着上面提到的用户和密码去尝试能不能登入系统,结果出乎意料的是成功登入系统,结果如下图所示:

user: graham - GSo7isUM1D4,这里大家可以直接su就行了,不用像我一样用ssh,我这里是因为要多创建了一个窗口。

DC-6

4、查看sudu权限  

结果发现可以以jens用户执行/home/jens/backups.sh(源码备份文件),且无需密码验证。

DC-6

5、查看backups.sh权限  

DC-6

发现backups.sh所用用户都具有执行权限,用户具有写权限。尝尝试写入文件看看没有被限制,发现成功写入    

DC-6

以jens用户去执行backups.sh,发现已经切换到了jens用户。

DC-6

查看sudo权限,发现可以以root用户执行nmap命令

DC-6

既然能够使用nmap,那我们就写一个提权脚本去让他以root身份去执行,

DC-6

发现现在已经提权到了root用户了,接着进入root目录产看flag信息

DC-6

到这就已经拿到flag了

五、权限维持    

六、痕迹清理    

略     

原文始发于微信公众号(Red Teams):DC-6

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月7日14:05:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DC-6https://cn-sec.com/archives/2372363.html

发表评论

匿名网友 填写信息