搭建CTF AWD訓練平台

2021-09-22 14:08:25 字數 3742 閱讀 1790

git clone
awd線下環境啟動說明

by hence zhang @lancet

比賽的環境介紹:

伺服器全部以docker形式部署在同一臺虛擬機器上。

check_server:

服務檢查伺服器,用於判定選手維護的服務是否可用,如果不可用,則會扣除相應的分數。不開啟任何埠。需要與flag伺服器通訊。

flag_server:

選手提交flag的伺服器,並儲存選手的分數。開啟80埠。

web_server:

選手連線的伺服器,選手需要對其進行維護,並嘗試攻擊其他隊伍的機器。通常開啟80埠,22埠,並將埠對映到主機。

比賽邏輯拓撲:

比賽入口伺服器

比賽啟動

1.根據當前隊伍數量copy所有的隊伍的比賽資料夾:

python batch.py web_dir team_number
for example: python batch.py web_server 5

2.啟動比賽:

python start.py ./ team_number
​ for example: python start.py ./ 5

3.啟動check指令碼:

docker attach check_server
python check.py
比賽引數

flag 提交: 172.17.0.6:80/flag_file.php?token=teamx&flag=***x (x為你們的隊伍號)

比賽規則(新):

1.每個隊伍分配到乙個docker主機,給定ctf使用者許可權,通過制定的埠和密碼進行連線;

2.每台docker主機上執行乙個web服務或者其他的服務,需要選手保證其可用性,並嘗試審計**,攻擊其他隊伍;

3.比賽開始後,前30分鐘,選手維護各自的主機,在這個階段,所有的攻擊和服務不可用不影響分數;

4.選手可以通過使用漏洞獲取其他隊伍的伺服器的許可權,讀取他人伺服器上的flag並提交到指定的flag伺服器:

http://flag伺服器ip:埠/fflag_file.php?token=隊伍token&flag=獲取到的flag 來獲得相應的分數。

例如:flag server位址為8.8.8.8,埠為8080,隊伍token為team1,flag為40ed892b93997142e46124516d0f5ac0,則請求來獲得相應分數。

每次成功攻擊可獲得2分,被攻擊者扣除2分;有效攻擊兩分鐘一輪;

5.選手需要保證己方服務的可用性,每次服務不可用,扣除1分,服務可用,加1分;服務檢測兩分鐘一輪;

6.選手可以從flag伺服器上獲取所有的攻擊情況以及當前的分數:

7.不允許使用任何形式的dos攻擊

比賽規則(舊):

1.每個隊伍分配到乙個docker主機,給定ctf使用者許可權,通過制定的埠和密碼進行連線;

2.每台docker主機上執行乙個web服務或者其他的服務,需要選手保證其可用性,並嘗試審計**,攻擊其他隊伍;

3.比賽開始後,前30分鐘,選手維護各自的主機,在這個階段,所有的攻擊和服務不可用不影響分數;

http://flag伺服器ip:埠/flag.php?token=隊伍token來獲得相應的分數。

例如:flag server位址為8.8.8.8,埠為8080,隊伍token為team1,則請求來獲得相應分數。

每次成功攻擊可獲得2分,被攻擊者扣除2分;有效攻擊兩分鐘一輪;

5.選手需要保證己方服務的可用性,每次服務不可用,扣除1分,服務可用,加1分;服務檢測兩分鐘一輪;

6.選手可以從flag伺服器上獲取所有的攻擊情況以及當前的分數:

7.不允許使用任何形式的dos攻擊

cd awd-platform
sudo docker pull zhl2008/web_14.04
緊接著就是修改docker映象的名稱(不改名稱的話請去修改**)

sudo docker tag zhl2008/web_14.04 web_14.04
然後就可以按照文件裡面的說明進行操作

例如:我建立兩個隊伍,使用的賽題是web_yunnan_******

python batch.py web_yunnan_****** 2
啟動比賽

python start.py ./ 2
check模組有問題的,不能正常使用,需要的可以自行依據賽題環境修改check**,規則大概是檔案存在check通過,不存在check失敗扣分。

然後就會在專案根目錄下會生成以隊伍名稱命名的目錄

靶機埠對映規則

team1 - 8801

team2 - 8802

...

ssh埠對映規則

team1 - 2201

team2 - 2201

...

ssh連線密碼awd-platform/pass.txt

team1:ctf:6f1704cbabd4e013bcdbd979665f2a9b

team2:ctf:ab0253740d7974fefb474f2f7e2da2c9

至此,賽題環境全部搭建起來了,下面是效果演示:

web介面

ssh 登陸

提交flag

初始分數榜(如果提交flag之後分數沒有變,請修改score.txt的許可權),有點low,可以自己寫乙個排行榜。

比較懶直接使用dalao@夜莫離的模板直接修改了。

比賽或者練習結束之後,需要清除docker環境,可以使用下面的命令(注:初始專案執行會直接刪除所有的container,需要自己修改**,血的教訓)

sudo python stop_clean.py
踩坑有點多,完

MTK平台搭建

mtk平台搭建 最近公司的專案差不多都做完了,趁新專案還沒來的時候學學東西。從朋友那裡搞來一套 mtk的源 學學 mtk的開發。選擇 mtk是因為,它跟我的工作所用的平台相似,學起來方便一點,另外一點是它可以在 pc上跑,不用自己去買硬體,成本不高。呵呵,從朋友那裡搞來的源 不用硬體,成本就只有時間...

MTK 平台搭建

首先要安裝編譯器ads v1.2,安裝目錄為c program files arm,版本應該是842以上版,如果版本不夠,需要將公升級的軟體包解壓,拷貝到c program files arm adsv1 2的目錄下,注意壓縮的7z工具要安裝442版本。然後需要安裝perl的編譯器,推薦安裝acti...

PHP平台搭建

今天把windows下的php開發平台搭建好了 html css和div開發 還是用的dw 感覺舒服也不想再換了 php開發用的是zend studio 8 網路上有註冊碼可以使用 底層用的是phpnow打包配置的 比較簡單 網上也有很多教程 主要是把虛擬主機配置好 ip設定正確就行了 然後在php...