信息收集
# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:43:7c:b1, IPv4: 192.168.1.60
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.1.1 00:50:56:c0:00:08 VMware, Inc.
192.168.1.2 00:50:56:fe:b1:6f VMware, Inc.
192.168.1.98 00:0c:29:76:5d:ff VMware, Inc.
192.168.1.254 00:50:56:f6:02:1b VMware, Inc
探测目标靶机的IP地址!发现192.168.1.98是新增加的IP地址!
# nmap -sT --min-rate 10000 -p- 192.168.1.98 -oN port.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-31 16:13 CST
Nmap scan report for 192.168.1.98
Host is up (0.00075s latency).
Not shown: 65533 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 00:0C:29:76:5D:FF (VMware)
Nmap done: 1 IP address (1 host up) scanned in 3.43 seconds
目标靶机仅开放了两个端口,22和80端口,分别对应的是ssh和http服务!
# nmap -sT -sC -sV -O -p80,22 192.168.1.98 -oN details.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-31 16:13 CST
Nmap scan report for 192.168.1.98
Host is up (0.00037s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0)
| ssh-hostkey:
| 2048 35:a7:e6:c4:a8:3c:63:1d:e1:c0:ca:a3:66:bc:88:bf (RSA)
| 256 ab:ef:9f:69:ac:ea:54:c6:8c:61:55:49:0a:e7:aa:d9 (ECDSA)
|_ 256 7a:b2:c6:87:ec:93:76:d4:ea:59:4b:1b:c6:e8:73:f2 (ED25519)
80/tcp open http Apache httpd
|_http-server-header: Apache
|_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-title: Welcome to DC-8 | DC-8
MAC Address: 00:0C:29:76:5D:FF (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
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_kerne
22端口是OpenSSH 7.4 80端口是Apache起的http服务!暴露出来存在Drupal 7 同时robots文件中存在一下几个目录:/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
# nmap -sT --script=vuln -p80,22 192.168.1.98 -oN vuln.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-31 16:13 CST
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Nmap scan report for 192.168.1.98
Host is up (0.00023s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-csrf:
| Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=192.168.1.98
| Found the following possible CSRF vulnerabilities:
|
| Path: http://192.168.1.98:80/node/3
| Form id: webform-client-form-3
|_ Form action: /node/3
| http-enum:
| /rss.xml: RSS or Atom feed
| /robots.txt: Robots file
| /UPGRADE.txt: Drupal file
| /INSTALL.txt: Drupal file
| /INSTALL.mysql.txt: Drupal file
| /INSTALL.pgsql.txt: Drupal file
| /CHANGELOG.txt: Drupal v1
| /: Drupal version 7
| /README.txt: Interesting, a readme.
| /0/: Potentially interesting folder
|_ /user/: Potentially interesting folder
MAC Address: 00:0C:29:76:5D:FF (VMware)
Nmap done: 1 IP address (1 host up) scanned in 55.13 seconds
80端口说是存在CSRF,同时还有就是暴露出来的敏感文件信息!
渗透测试
既然只存在80和22端口,那就只能是在80端口上寻找立足点,22端口在渗透测试中优先级是拍后的!先看一下80端口上开放的服务吧:
首页很明显看到了Drupal,同时首页提示了我们一个非常重要的消息:整个意思是在说这个网站在接下来的几个星期中断,要解决某些问题,因此带来了某些不便深表歉意;
尝试访问一下,在信息收集过程中拿到了这些文件和目录信息:
该文件没什么重要信息;继续看其他的文件:
robots文件中禁止了很多东西,这里就不贴全了;
changelog文件,可以推断当前的drupal应该是在7.67之上的
user目录是用户的登录界面!尝试了几个账号密码,发现锁了admin:
尝试很多的公开漏洞,没能利用成功~
通过searchsploit进行搜索,其实能看到,符合当前的Drupal版本的漏洞没有~ 兜兜转转回到了页面上的功能点,查看是不是自己遗漏了什么东西:
三个功能,点击的时候看到了URL的变化,是通过uid来显示的,这个uid看起来很有可能存在sql注入!
添加单引号,发现页面报错了!看来是存在SQL注入了,直接上sqlmap了:
上面是存在的表,那就看看user吧!直接dump!
发现了两个用户,其中的密码还是加密的,直接尝试去在线解密,或者john直接破解:破解成功了一个:
这个密码是john用户的~ 那就先尝试一下能不能ssh直接登陆吧:
但是报错了~ 权限被拒绝 难道这是网页上的账号和密码?
确实是web上的用户和密码,直接登陆进来!那就看看有没有什么功能点,能够被我们利用!
这里卡住了,一直执行不了代码,后来看了一下wp:
其中必须要有能显示的文字才能执行php代码。因为该内容是在用户提交数据后显示的内容,如果没有能显示的内容,则这一部分内容将不会被引用,那么代码也就不会执行。
所以重新写一下:
先进行了测试,保存之后,去提交即可:
正常写内容提交下:
测试成功,直接写反弹shell:
再次提交,同时启动监听:
终于是拿到了立足点,准备提权!
提权
先提升一下shell的交互性:
python3 -c "import pty;pty.spawn('/bin/bash')"
查看/etc/passwd文件,发现了一个用户是dc8user!由于没有wwwdata的密码,所以无法查看sudo权限:
寻找suid文件:
存在exim4,尝试利用searchsploit进行公开漏洞的搜索:
发现了几个可以提权的公开利用,查看当前的exim版本:
4.89在漏洞范围之内,尝试利用!下载下来,起一个简单的http服务,传到靶机上,赋予执行权限去执行!
看到说明存在两种使用方法,第一种方法始终不成功,用了第二种方式,虽然成功了,但是提权之后,一会就断了~
最终快速的进入root目录,之后列文件,读取flag:
总结
年前的最后一个靶场了,大概是在11月份吧,开始练习vulnhub上面的靶场,具体时间自己也不太清楚了,当时看到了红笔师父的讲解,一步步自己跟着打,刚开始有点难度,很多时候都会被卡在寻找立足点,又或者是提权的路上,于是会看大佬们的wp,或者是看看红笔师父接下来的思路是什么;慢慢的自己也能盲打成功了,后来就盲打完,再去看红笔师父的打靶过程,很多时候与师父打靶的方法都一样,这种感觉真的很好,在看的时候,会比较惊喜,“原来还能这样打”,“太强了吧”,“思路真的清晰”;渗透测试最重要的,在个人看来就是思路,年前的目标是50个靶场,这是最后一个啦!不敢说自己进步有多大吧,但是思路会清晰了很多!加油,未来可期!