群注意事項
STEP1:集群連線
STEP2:軟件配置
django寫了一個網站,在信息技術課上學生學習python用的,現在把整個過程寫成教程展現出來。先看幾個截圖:
python編程練習
代碼編譯界面
知識測試界面
這個網站是ubuntu21.10,anaconda3下用VScode來完成的,編程判題采用了QingdaoU/JudgeServerAPI,網站試題來自卓帆、百日沖刺和科教版高中信息技術教材上的一些內容,在此表示感謝!
為了本教程,全新配置了開發環境,整個網站復刻了一遍。
過程如下,有省略:
開發環境配置
開發環境配置續
項目文件夾almond下有一個同名子文件夾,我們稱為主應用,內有全局參數設置文件settings.py,全局路由文件urls.py,還有網關接口文件可以選擇其一asgi.py或wsgi.py; 項目目錄下的manage.py文件是整個項目的入口,在配置文件中有一行:WSGI_APPLICATION='almond.wsgi.application'指定了使用wsgi。
打算在主應用中加views.py和models.py,把網站的首頁、登錄功能放入views中,把網站的所有數據庫模型放在models中,供其它應用調用。
應用(app)是django管理代碼的一種方式,它對應一個文件夾,用以管理整個項目的功能分類和MTV模式實現。使用 django-admin startapp <appname>命令,創建應用(app)webcoding,在應用webcoding中實現在線的代碼編輯器功能,代碼執行由后端的JudgeServer來編譯執行,結果返回到前端。這個網站是提供統一的python編程環境和高中信息技術學業水平考試復習之用的。主應用almond和應用webcoding的目錄結構如下:
網站目錄結構
lichee[?la??t?i?]荔枝、almond [?ɑ?m?nd] 杏仁,這里選用的水果名作為目錄名稱,是因為短簡易記。almond 因首字母是a,在vscode中主應用almond顯示在最前面,便于使用。
vscode 打開 項目文件夾/home/lichee/almond,以下敘述都以項目文件夾為當前目錄,
點擊左下角更換 python解釋器,選擇 虛擬環境lichee-django,重啟vscode生效:
vsCode開發網站
在模塊almond文件中新建views.py文件,在其中寫一個視圖函數defalut,并在urls.py文件中導入這個視圖,添加兩行路由地址:
// almond/views.py
from django.shortcuts import render, HttpResponse
def default(request):
return HttpResponse("Hello world!!!") //把字符串作為回應返回到瀏覽器
// almond/urls.py
from django.urls import path, re_path
// 導入視圖模塊
import almond.views as tv
urlpatterns=[
path('admin/', admin.site.urls), // 系統自動產生,后臺管理的,請要是庫的CRUD
// 添加兩行路由地址
re_path(r'^$', tv.default, name='top'), // http://127.0.0.1:8000 訪問
path('index/', tv.default, name='index'), // http://127.0.0.1:8000/index 訪問
]
在vscode的終端啟動服務(系統終端中也可以):
conda activate lichee-django
cd /home/lichee/almond
python manage.py runserver
在瀏覽器中可以打開helloworld網頁了。視圖可以一個函數,也可以是一個類的方法,效果如下:
網站啟動命令
django 作為python網站開發的框架,使用了MTV模式,如下圖(來自互聯網)
MTV模式
剛才是通過 HttpResponse('string')返回前端的,現在改進一下,創建一個模板文件index.html,在視圖中rend()函數渲染好返回前端,這是體現MTV模式前后端代碼分離的基本行為。
在項目目錄中創建模板文件夾templates,在其中新建文件index.html。
在主應用中修改settings.py幾個地方:
//almond/settings.py
INSTALLED_APPS=[ //注冊應用,實際是讓項目能找到 對應的文件夾
......
'almond', //注冊主應用,因為在其他應用中 調用 主應用中 視圖和模型
//其他書籍和教程都沒這么用,我嘗試了是可以的
'webcoding', //注冊 在線編程應用,后續還要添加更多的應用
]
#模板文件夾
TEMPLATES=[{
......
// 模板文件夾 almond/templates
'DIRS': [ BASE_DIR/'templates' ], //BASE_DIR是項目文件夾的絕對路徑。
......
} ]
ALLOWED_HOSTS=[ '*' ] //指定IP地址,可以從其他機器訪問,'*'是任意的意 思,您的計算機可能在不同場合的ip不一樣,'*'就可以了。
//語言和時區
LANGUAGE_CODE='zh-hans'
TIME_ZONE='Asia/Shanghai'
//創建并配置 靜態文件夾almond/statics,存放 css js img media等資源文件。
STATIC_URL='/static/' //這個在html 或 瀏覽器中使用,名稱可自定義
STATICFILES_DIRS=[ BASE_DIR/'statics' ] //這個是實際位置
接下來,修改almond/views.py, templages/index.html 兩個文件:
// almond/views.py
from django.shortcuts import render, HttpResponse
class MainView():
def default(request):
myname="wuxiaochun 吳曉春"
return render(request, 'index.html', {'name':myname})
<!-- templates/index.html -->
<html>
<head>
<title> 這是首頁demo </title>
</head>
<body>
<p> <h1> Hello world !!!</h1>
<font color='blue' size='6'> I am {{name}} </font>
</p>
</body>
</html>
指定端口運行,效果如下:
網站運行效果
在視圖文件almond/views.py中把變量以字典的形式通過render()函數渲染給了模板文件templates/index.html,在index.html通過模板語法{{變量名}}的形式來顯示。
render函數中第三個參數也可以用 locals() 來代替。
在上面MTV模式圖中還有一個Model稱為模型,它是連接讀寫數據庫的中介,后續介紹。第一講就到這里,不足之處請指正。
FTP通常用作對遠程服務器進行管理,典型應用就是對web系統進行管理。一旦FTP密碼泄露就直接威脅web系統安全,甚至黑客通過提權可以直接控制服務器。這里剖析滲透FTP服務器的幾種方法。
(1)基礎爆破:ftp爆破工具很多,這里我推owasp的Bruter,hydra以及msf中的ftp爆破模塊。
(2) ftp匿名訪問:用戶名:anonymous 密碼:為空或者任意郵箱。
(3)后門vsftpd :version 2到2.3.4存在后門漏洞,攻擊者可以通過該漏洞獲取root權限。(https://www.freebuf.com/column/143480.html)
(4)嗅探:ftp使用明文傳輸技術(但是嗅探給予局域網并需要欺騙或監聽網關),使用Cain進行滲透。
(5)ftp遠程代碼溢出。(https://blog.csdn.net/weixin_42214273/article/details/82892282)
(6)ftp跳轉攻擊。(https://blog.csdn.net/mgxcool/article/details/48249473)
SSH 是協議,通常使用 OpenSSH 軟件實現協議應用。SSH 為 Secure Shell 的縮寫,由 IETF 的網絡工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其它網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
(1)弱口令,可使用工具hydra,msf中的ssh爆破模塊。
(2)防火墻SSH后門。(https://www.secpulse.com/archives/69093.html)
(3)28退格 OpenSSL
(4)openssh 用戶枚舉 CVE-2018-15473。(https://www.anquanke.com/post/id/157607)
telnet是一種舊的遠程管理方式,使用telnet工具登錄系統過程中,網絡上傳輸的用戶和密碼都是以明文方式傳送的,黑客可使用嗅探技術截獲到此類密碼。
(1)暴力破解技術是常用的技術,使用hydra,或者msf中telnet模塊對其進行破解。
(2)在linux系統中一般采用SSH進行遠程訪問,傳輸的敏感數據都是經過加密的。而對于windows下的telnet來說是脆弱的,因為默認沒有經過任何加密就在網絡中進行傳輸。使用cain等嗅探工具可輕松截獲遠程登錄密碼。
smtp:郵件協議,在linux中默認開啟這個服務,可以向對方發送釣魚郵件。
默認端口:25(smtp)、465(smtps)
(1)爆破:弱口令
(2)未授權訪問
53端口是DNS域名服務器的通信端口,通常用于域名解析。也是網絡中非常關鍵的服務器之一。這類服務器容易受到攻擊。對于此端口的滲透,一般有三種方式。
(1)使用DNS遠程溢出漏洞直接對其主機進行溢出攻擊,成功后可直接獲得系統權限。(https://www.seebug.org/vuldb/ssvid-96718)
(2)使用DNS欺騙攻擊,可對DNS域名服務器進行欺騙,如果黑客再配合網頁木馬進行掛馬攻擊,無疑是一種殺傷力很強的攻擊,黑客可不費吹灰之力就控制內網的大部分主機。這也是內網滲透慣用的技法之一。(https://baijiahao.baidu.com/s?id=1577362432987749706&wfr=spider&for=pc)
(3)拒絕服務攻擊,利用拒絕服務攻擊可快速的導致目標服務器運行緩慢,甚至網絡癱瘓。如果使用拒絕服務攻擊其DNS服務器。將導致用該服務器進行域名解析的用戶無法正常上網。(http://www.edu.cn/xxh/fei/zxz/201503/t20150305_1235269.shtml)
(4)DNS劫持。(https://blog.csdn.net/qq_32447301/article/details/77542474)
80端口通常提供web服務。目前黑客對80端口的攻擊典型是采用SQL注入的攻擊方法,腳本滲透技術也是一項綜合性極高的web滲透技術,同時腳本滲透技術對80端口也構成嚴重的威脅。
(1)對于windows2000的IIS5.0版本,黑客使用遠程溢出直接對遠程主機進行溢出攻擊,成功后直接獲得系統權限。
(2)對于windows2000中IIS5.0版本,黑客也嘗試利用‘Microsoft IISCGI’文件名錯誤解碼漏洞攻擊。使用X-SCAN可直接探測到IIS漏洞。
(3)IIS寫權限漏洞是由于IIS配置不當造成的安全問題,攻擊者可向存在此類漏洞的服務器上傳惡意代碼,比如上傳腳本木馬擴大控制權限。
(4)普通的http封包是沒有經過加密就在網絡中傳輸的,這樣就可通過嗅探類工具截取到敏感的數據。如使用Cain工具完成此類滲透。
(5)80端口的攻擊,更多的是采用腳本滲透技術,利用web應用程序的漏洞進行滲透是目前很流行的攻擊方式。
(6)對于滲透只開放80端口的服務器來說,難度很大。利用端口復用工具可解決此類技術難題。
(7)CC攻擊效果不及DDOS效果明顯,但是對于攻擊一些小型web站點還是比較有用的。CC攻擊可使目標站點運行緩慢,頁面無法打開,有時還會爆出web程序的絕對路徑。
135端口主要用于使用RPC協議并提供DCOM服務,通過RPC可以保證在一臺計算機上運行的程序可以順利地執行遠程計算機上的代碼;使用DCOM可以通過網絡直接進行通信,能夠跨包括HTTP協議在內的多種網絡傳輸。同時這個端口也爆出過不少漏洞,最嚴重的就是緩沖區溢出漏洞,曾經瘋狂一時的‘沖擊波’病毒就是利用這個漏洞進行傳播的。對于135端口的滲透,黑客的滲透方法為:
(1)查找存在RPC溢出的主機,進行遠程溢出攻擊,直接獲得系統權限。如用‘DSScan’掃描存在此漏洞的主機。對存在漏洞的主機可使用‘ms05011.exe’進行溢出,溢出成功后獲得系統權限。(https://wenku.baidu.com/view/68b3340c79563c1ec5da710a.html)
(2)掃描存在弱口令的135主機,利用RPC遠程過程調用開啟telnet服務并登錄telnet執行系統命令。系統弱口令的掃描一般使用hydra。對于telnet服務的開啟可使用工具kali鏈接。(https://wenku.baidu.com/view/c8b96ae2700abb68a982fbdf.html)
139端口是為‘NetBIOS SessionService’提供的,主要用于提供windows文件和打印機共享以及UNIX中的Samba服務。445端口也用于提供windows文件和打印機共享,在內網環境中使用的很廣泛。這兩個端口同樣屬于重點攻擊對象,139/445端口曾出現過許多嚴重級別的漏洞。下面剖析滲透此類端口的基本思路。
(1)對于開放139/445端口的主機,一般嘗試利用溢出漏洞對遠程主機進行溢出攻擊,成功后直接獲得系統權限。利用msf的ms-017永恒之藍。(https://blog.csdn.net/qq_41880069/article/details/82908131)
(2)對于攻擊只開放445端口的主機,黑客一般使用工具‘MS06040’或‘MS08067’.可使用專用的445端口掃描器進行掃描。NS08067溢出工具對windows2003系統的溢出十分有效,工具基本使用參數在cmd下會有提示。(https://blog.csdn.net/god_7z1/article/details/6773652)
(3)對于開放139/445端口的主機,黑客一般使用IPC$進行滲透。在沒有使用特點的賬戶和密碼進行空連接時,權限是最小的。獲得系統特定賬戶和密碼成為提升權限的關鍵了,比如獲得administrator賬戶的口令。(https://blog.warhut.cn/dmbj/145.html)
(4)對于開放139/445端口的主機,可利用共享獲取敏感信息,這也是內網滲透中收集信息的基本途徑。
1433是SQLServer默認的端口,SQL Server服務使用兩個端口:tcp-1433、UDP-1434.其中1433用于供SQLServer對外提供服務,1434用于向請求者返回SQLServer使用了哪些TCP/IP端口。1433端口通常遭到黑客的攻擊,而且攻擊的方式層出不窮。最嚴重的莫過于遠程溢出漏洞了,如由于SQL注射攻擊的興起,各類數據庫時刻面臨著安全威脅。利用SQL注射技術對數據庫進行滲透是目前比較流行的攻擊方式,此類技術屬于腳本滲透技術。
(1)對于開放1433端口的SQL Server2000的數據庫服務器,黑客嘗試使用遠程溢出漏洞對主機進行溢出測試,成功后直接獲得系統權限。(https://blog.csdn.net/gxj022/article/details/4593015)
(2)暴力破解技術是一項經典的技術。一般破解的對象都是SA用戶。通過字典破解的方式很快破解出SA的密碼。(https://blog.csdn.net/kali_linux/article/details/50499576)
(3)嗅探技術同樣能嗅探到SQL Server的登錄密碼。
(4)由于腳本程序編寫的不嚴密,例如,程序員對參數過濾不嚴等,這都會造成嚴重的注射漏洞。通過SQL注射可間接性的對數據庫服務器進行滲透,通過調用一些存儲過程執行系統命令。可以使用SQL綜合利用工具完成。
1521是大型數據庫Oracle的默認監聽端口,估計新手還對此端口比較陌生,平時大家接觸的比較多的是Access,MSSQL以及MYSQL這三種數據庫。一般大型站點才會部署這種比較昂貴的數據庫系統。對于滲透這種比較復雜的數據庫系統,黑客的思路如下:
(1)Oracle擁有非常多的默認用戶名和密碼,為了獲得數據庫系統的訪問權限,破解數據庫系統用戶以及密碼是黑客必須攻破的一道安全防線。
(2)SQL注射同樣對Oracle十分有效,通過注射可獲得數據庫的敏感信息,包括管理員密碼等。
(3)在注入點直接創建java,執行系統命令。
(4)https://www.leiphone.com/news/201711/JjzXFp46zEPMvJod.html
NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位于遠端NFS服務器上的文件,就像訪問本地文件一樣。如今NFS具備了防止被利用導出文件夾的功能,但遺留系統中的NFS服務配置不當,則仍可能遭到惡意攻擊者的利用。
未授權訪問:
(https://www.freebuf.com/articles/network/159468.html) (http://www.secist.com/archives/6192.htm)
3306是MYSQL數據庫默認的監聽端口,通常部署在中型web系統中。在國內LAMP的配置是非常流行的,對于php+mysql構架的攻擊也是屬于比較熱門的話題。mysql數據庫允許用戶使用自定義函數功能,這使得黑客可編寫惡意的自定義函數對服務器進行滲透,最后取得服務器最高權限。對于3306端口的滲透,黑客的方法如下:
(1)由于管理者安全意識淡薄,通常管理密碼設置過于簡單,甚至為空口令。使用破解軟件很容易破解此類密碼,利用破解的密碼登錄遠程mysql數據庫,上傳構造的惡意UDF自定義函數代碼進行注冊,通過調用注冊的惡意函數執行系統命令。或者向web目錄導出惡意的腳本程序,以控制整個web系統。
(2)功能強大的‘cain’同樣支持對3306端口的嗅探,同時嗅探也是滲透思路的一種。
(3)SQL注入同樣對mysql數據庫威脅巨大,不僅可以獲取數據庫的敏感信息,還可使用load_file()函數讀取系統的敏感配置文件或者從web數據庫鏈接文件中獲得root口令等,導出惡意代碼到指定路徑等。
3389是windows遠程桌面服務默認監聽的端口,管理員通過遠程桌面對服務器進行維護,這給管理工作帶來的極大的方便。通常此端口也是黑客們較為感興趣的端口之一,利用它可對遠程服務器進行控制,而且不需要另外安裝額外的軟件,實現方法比較簡單。當然這也是系統合法的服務,通常是不會被殺毒軟件所查殺的。使用‘輸入法漏洞’進行滲透。
(1)對于windows2000的舊系統版本,使用‘輸入法漏洞’進行滲透。
(2)cain是一款超級的滲透工具,同樣支持對3389端口的嗅探。
(3)Shift粘滯鍵后門:5次shift后門
(4)社會工程學通常是最可怕的攻擊技術,如果管理者的一切習慣和規律被黑客摸透的話,那么他管理的網絡系統會因為他的弱點被滲透。
(5)爆破3389端口。這里還是推薦使用hydra爆破工具。
(6)ms12_020死亡藍屏攻擊。(https://www.cnblogs.com/R-Hacker/p/9178066.html)
(7)https://www.cnblogs.com/backlion/p/9429738.html
4899端口是remoteadministrator遠程控制軟件默認監聽的端口,也就是平時常說的radmini影子。radmini目前支持TCP/IP協議,應用十分廣泛,在很多服務器上都會看到該款軟件的影子。對于此軟件的滲透,思路如下:
(1)radmini同樣存在不少弱口令的主機,通過專用掃描器可探測到此類存在漏洞的主機。
(2)radmini遠控的連接密碼和端口都是寫入到注冊表系統中的,通過使用webshell注冊表讀取功能可讀取radmini在注冊表的各項鍵值內容,從而破解加密的密碼散列。
PostgreSQL是一種特性非常齊全的自由軟件的對象–關系型數據庫管理系統,可以說是目前世界上最先進,功能最強大的自由數據庫管理系統。包括kali系統中msf也使用這個數據庫;淺談postgresql數據庫攻擊技術 大部分關于它的攻擊依舊是sql注入,所以注入才是數據庫不變的話題。
(1)爆破:弱口令:postgres postgres
(2)緩沖區溢出:CVE-2014-2669。(http://drops.xmd5.com/static/drops/tips-6449.html)
(3)遠程代碼執行:CVE-2018-1058。(https://www.secpulse.com/archives/69153.html)
5631端口是著名遠程控制軟件pcanywhere的默認監聽端口,同時也是世界領先的遠程控制軟件。利用此軟件,用戶可以有效管理計算機并快速解決技術支持問題。由于軟件的設計缺陷,使得黑客可隨意下載保存連接密碼的*.cif文件,通過專用破解軟件進行破解。這些操作都必須在擁有一定權限下才可完成,至少通過腳本滲透獲得一個webshell。通常這些操作在黑客界被稱為pcanywhere提權技術。
PcAnyWhere提權(https://blog.csdn.net/Fly_hps/article/details/80377199)
5900端口是優秀遠程控制軟件VNC的默認監聽端口,此軟件由著名的AT&T的歐洲研究實驗室開發的。VNC是在基于unix和linux操作系統的免費的開放源碼軟件,遠程控制能力強大,高效實用,其性能可以和windows和MAC中的任何一款控制軟件媲美。對于該端口的滲透,思路如下:
(1)VNC軟件存在密碼驗證繞過漏洞,此高危漏洞可以使得惡意攻擊者不需要密碼就可以登錄到一個遠程系統。
(2)cain同樣支持對VNC的嗅探,同時支持端口修改。
(3)VNC的配置信息同樣被寫入注冊表系統中,其中包括連接的密碼和端口。利用webshell的注冊表讀取功能進行讀取加密算法,然后破解。
(4)VNC拒絕服務攻擊(CVE-2015-5239)。(http://blogs.360.cn/post/vnc%E6%8B%92%E7%BB%9D%E6%9C%8D%E5%8A%A1%E6%BC%8F%E6%B4%9Ecve-2015-5239%E5%88%86%E6%9E%90.html)
(5)VNC權限提升(CVE-2013-6886)。
Redis是一個開源的使用c語言寫的,支持網絡、可基于內存亦可持久化的日志型、key-value數據庫。關于這個數據庫這兩年還是很火的,暴露出來的問題也很多。特別是前段時間暴露的未授權訪問。
(1)爆破:弱口令
(2)未授權訪問+配合ssh key提權。(http://www.alloyteam.com/2017/07/12910/)
7001/7002通常是weblogic中間件端口
(1)弱口令、爆破,弱密碼一般為weblogic/Oracle@123 or weblogic
(2)管理后臺部署 war 后門
(3)SSRF
(4)反序列化漏洞
(5)weblogic _ uachttps : // github . com / vulhub /vulhub /tree /master /weblogic/ ssrfhttps: // bbs . pediy.com/thread-224954.htmhttps://fuping.site/2017/06/05/Weblogic-Vulnerability-Verification/https://blog.gdssecurity.com/labs/2015/3/30/weblogic-ssrf-and-xss-cve-2014-4241-cve-2014-4210-cve-2014-4.html
8080端口通常是apache_Tomcat服務器默認監聽端口,apache是世界使用排名第一的web服務器。國內很多大型系統都是使用apache服務器,對于這種大型服務器的滲透,主要有以下方法:
(1)Tomcat遠程代碼執行漏洞(https://www.freebuf.com/column/159200.html)
(2)Tomcat任意文件上傳。(http://liehu.tass.com.cn/archives/836)
(3)Tomcat遠程代碼執行&信息泄露。(https://paper.seebug.org/399/)
(4)Jboss遠程代碼執行(http://mobile.www.cnblogs.com/Safe3/archive/2010/01/08/1642371.html)
(5)Jboss反序列化漏洞。(https://www.zybuluo.com/websec007/note/838374)
(6)Jboss漏洞利用。(https://blog.csdn.net/u011215939/article/details/79141624)
MongoDB,NoSQL數據庫;攻擊方法與其他數據庫類似。
(1)爆破:弱口令
(2)未授權訪問;(http://www.cnblogs.com/LittleHann/p/6252421.html)
(3)http://www.tiejiang.org
*請認真填寫需求信息,我們會在24小時內與您取得聯系。