在某場比賽中師傅們說需要用到該工具,學習之
題目給了我們一個流量包,分析
發現 .hint.php.swp文件
該文件是使用 vim 編輯文件時異常退出而產生的,可以通過 vim -r 文件名 進行相應的恢復,但在這里我們直接跟蹤流向下看
存在提示:
You need to get two passwords. They are user passwords and website background passwords. After obtaining, submit using MD5 encryption.
也就是說在流量包里存在兩個密碼:user passwords和website background passwords
尋找一番,發現使用偽協議讀取 sql 文件的流量包:
導出流量包中的所有文件,發現test.sql的base64編碼:
解碼得到:
-- MySQL dump 10.13 Distrib 5.7.19, for Linux (i686) -- -- Host: localhost Database: test -- ------------------------------------------------------ -- Server version 5.7.19-0ubuntu0.16.04.1 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `admin` -- drop database if exists `test`; create database `test`; use test; DROP TABLE IF EXISTS `admin`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `admin` ( `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_name` varchar(255) NOT NULL DEFAULT '', `user_pass` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`user_id`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `admin` -- LOCK TABLES `admin` WRITE; /*!40000 ALTER TABLE `admin` DISABLE KEYS */; INSERT INTO `admin` VALUES (1,'admin','AA00A'); /*!40000 ALTER TABLE `admin` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `news` -- DROP TABLE IF EXISTS `news`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `news` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `news` varchar(255) NOT NULL DEFAULT '', `pub_date` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `news` -- LOCK TABLES `news` WRITE; /*!40000 ALTER TABLE `news` DISABLE KEYS */; INSERT INTO `news` VALUES (1,'這是第一條內容','2018-09-28'),(2,'這是第二條內容','2018-09-28'),(3,'這是第三條內容','2018-03-04'); /*!40000 ALTER TABLE `news` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2018-07-05 16:57:17
其中關鍵點在:
INSERT INTO `admin` VALUES (1,'admin','AA00A');
可知一個密碼為:AA00A
繼續尋找第二個密碼,發現shadow文件:
pgs用戶加密后的密碼為:
pgs:$6$NXa3ixa0$MWZrFvwSm2VoRLIg5twVGZmJtWqX4PIcdxyC.4mWidRnYgy3HmZ1lejm63mnUG3YrcNZmzszdujiGRnmBRZFE1:18345:0:99999:7:::
接着使用John the Ripper進行密碼的破解。
關於John the Ripper,有:
該工具 kali 自帶,但我虛擬機里沒有安裝kali,在雲服務器上使用 apt 命令進行安裝:
sudo apt-get install john
安裝完成后可以使用 john 查看參數
我們可以先本地練習一下其使用,創建 test 用戶,並將它的密碼設置為 test
sudo useradd -m test
設置密碼:
sudo passwd test
查看 /etc/shadow 文件,將test用戶那一行的shadow單獨取出來放在另一個文件 shadow2 里
使用命令:
john --wordlist=/usr/share/john/password.lst shadow2
使用 --wordlist 參數 指定安裝 john 時自帶的字典 password.lst 密碼文件進行爆破
可以看到爆破出密碼也為test,成功爆破
遺憾的是,雖然驗證了使用的基礎方法,但是還是沒能爆破出流量包里pgs用戶的密碼,有師傅說密碼是:newcount
但即便將密碼加到密碼字典里,仍然爆破不出密碼,還是字典不夠強大,本篇就當做是學習工具的使用了
參考鏈接: