前言
首先大家一定要记住,所有未经授权的渗透都是违法的,所以大家切勿一通乱黑,被关进橘子有的哭了。我们可以在本地搭建一些本地靶场,比如Dvwa
项目介绍
靶机:172,16,10,14
攻击机:172,16,10,10;172,16,10,12
一、信息收集
1、主机信息
2、端口信息
3、服务信息
二、漏洞分析
1、访问Web
注意这里直接访问Web是会报错的,原因是该服务器做了重定向,因为本机DNS没有该IP重定向后的域名对应关系,导致在访问时无法解析地址。解决办法在host文件中添加该IP与域名的对应关系即可。
172.16.10.14 wordy
现在在访问web就可以成功访问了
页面给出了三个菜单栏,分别是Welcome、About US和Contract US,在这只能知道该网站是使用wordPress搭建的。访问WordPress自带的reade.html(WordPress安装导言)和wp-admin(这个是WordPress默认的定义注册用户的登陆页面地址,wp-admin下有很多个php.wen文件,默认打开的文件是login.php)看看能不能访问
在readme.html中可以看到一些页面的访问方法。
Readme.html
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.php
8.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-admin
1.wp-admin/admin.php:管理文件的核心文件。用来连接数据库,整合动态菜单数据,显示非核心控制页面等。
2.wp-admin/admin-db.php
3.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 – Categories
8.wp-admin/cat-js.php
9.wp-admin/edit.php:定义管理页面的日志管理。参考: Manage – Posts
10.wp-admin/edit-comments.php:定义管理页面的评论管理。参考: Manage – Comments
11.wp-admin/edit-form-advanced.php:定义管理页面的日志高级编辑形式管理,包括post.php。参考: Write – Write Post – Advanced
12.wp-admin/edit-form.php:定义管理页面的日志简单编辑形式管理,包括post.php。参考: Write – Write Post
13.wp-admin/edit-form-comment.php:编辑特定日志评论。
14.wp-admin/edit-form-ajax-cat.php
15.wp-admin/edit-link-form.php
16.wp-admin/edit-page-form.php:定义管理模块页面的页面编辑,包括post.php和page-new.php。参考: Write – Write Page
17.wp-admin/edit-pages.php:定义管理模块页面的页面管理。参考: Manage – Pages
18.wp-admin/execute-pings.php
19.wp-admin/import.php
20.wp-admin/index.php:默认管理页面。根据用户请求显示相应的页面。
21.wp-admin/inline-uploading.php
22.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 Link
25.wp-admin/link-categories.php:链接分类管理。参考: Links – Link Categories
26.wp-admin/link-import.php:导入链接。参考: Links – Import Links
27.wp-admin/link-manager.php:链接管理。参考: Links – Manage Links
28.wp-admin/link-parse-opml.ph:导入链接时,用来解析OPML文件。
29.wp-admin/list-manipulation.js
30.wp-admin/list-manipulation.php
31.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 – Discussion
36.wp-admin/options-general.php:管理基本配置选项。参考: Options – General
37.wp-admin/options-head.php
38.wp-admin/options-misc.php:设置文件上传,链接跟踪,自定义”hacks”等相关选项。参考:Options – Miscellaneous
39.wp-admin/options-permalink.php:管理永久链接选项。参考: Options – Permalinks
40.wp-admin/options-reading.php:设置如何把网站信息发送到读者浏览器或其它应用程序。参考: Options – Reading
41.wp-admin/options-writing.php:管理日志撰写界面。参考:Options – Writing
42.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.php
47.wp-admin/profile.php:管理个人资料或配置。
48.wp-admin/setup-config.php:安装时,用来创建wp-config.php文件。
49.wp-admin/sidebar.php
50.wp-admin/templates.php:编辑服务器可写文件。
51.wp-admin/theme-editor.php:编辑特定主题中的文件。
52.wp-admin/themes.php:管理主题。
53.wp-admin/update-links.php
54.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.js
wp-includes
wp-includes目录
1.wp-includes/cache.php
2.wp-includes/capabilities.php
3.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.php
8.wp-includes/default-filters.php
9.wp-includes/feed-functions.php
10.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.php
19.wp-includes/registration-functions.php
20.wp-includes/rss-functions.php
21.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.php
30.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个账号
Admin
Graham
mark
sarah
jens
使用密码字典爆破这几个用户的字典,之前看过一个大佬用python写的也挺快,这里用bp和wpscan跑一下
BP爆破结果
WPscan爆破结果
两种方法都只爆出来一个用户,这是因为使用的是同一份字典,如果电脑配置高的话可以跑大点的字典,那跑出来的结果与期望值也会相会大些。
(2)登入Web
登入后没发现什么有用信息,在User哪里可以删除账号,但这对我们的帮助不大。
(3)漏洞利用
登入后没有发现有用信息后,把注意力放在了插件上,经过测试后发现Activity Monitor存在一个CVE-2018-15877漏洞。
在攻击机上运行Web服务,成功运行Web服务后在其站点下创建dajun.html文件,并配置为默认文档,内容如下图所示:
都运行完成后在攻击机上启动中国瑞士军刀监听
接着访问dajun.html这个文件并点击提交请求即可获取shell
成功标志如下所示:
2、方法二
使用方法一打入系统后,根据POC信息,回到Activity monitor插件看看信息,结果发现了一个ip解析工具,经过测试发现其存在命令执行漏洞。下面将给出过程:
(1)尝试列出当前目录文件
刚开始解析不来了,后面选择lookup方式发现直接列举出了当前目录下的所有文件,如下图所示:
想读取/etc/passwd发现长度被限制,最大值设置为15。将maxlength="15”更改为50后就可以读取/etc/passwd了
(2)反弹shell
在攻击机上用瑞士军刀监听9091,随后解析IP并反弹一个shell
现在已经成功获取到了shell
3、方法三
使用漏洞扫描工具找到漏洞有因为版本5.1.1=Version<6.4.2,使用漏洞扫描工具能扫出最少57个漏洞,这里就陈述了,有兴趣的可以自己研究一下。
四、权限提升
现在虽然已经拿到了操作系统的shell但我们还是没有足够的操作权限,这是需要我们进行提权操作。
1、查看具有sudo权限软件
发现没有可以sudo临时提权的软件
2、查看suid权限软件
这里有个Openssh的keysign,刚开始以为是可以打进去的,后面发现不行,于是只能找找其他线索了。
3、home信息
进入home目录看看有那些用户目录下有那些信息,最后在mark用户下面的stuff路径下找到一个名为things-to-do.txt文件内容如下所示:
大概意思是
恢复超级硬盘的全部功能(需要与Jens交谈)
-为萨拉的告别派对买礼物。
-添加新用户:graham-GSo7isUM1D4-完成
-申请OSCP课程
-买一台新的笔记本电脑给莎拉换。
拿着上面提到的用户和密码去尝试能不能登入系统,结果出乎意料的是成功登入系统,结果如下图所示:
user: graham - GSo7isUM1D4,这里大家可以直接su就行了,不用像我一样用ssh,我这里是因为要多创建了一个窗口。
4、查看sudu权限
结果发现可以以jens用户执行/home/jens/backups.sh(源码备份文件),且无需密码验证。
5、查看backups.sh权限
发现backups.sh所用用户都具有执行权限,用户具有写权限。尝尝试写入文件看看没有被限制,发现成功写入
以jens用户去执行backups.sh,发现已经切换到了jens用户。
查看sudo权限,发现可以以root用户执行nmap命令
既然能够使用nmap,那我们就写一个提权脚本去让他以root身份去执行,
发现现在已经提权到了root用户了,接着进入root目录产看flag信息
到这就已经拿到flag了
五、权限维持
略
六、痕迹清理
略
原文始发于微信公众号(Red Teams):DC-6
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论