2017-2018-2 20179306 《网络攻防技术》第八周作业
第八章 Linux操作系統(tǒng)安全攻防
1.1 Linux操作系統(tǒng)基本框架概述
1.1.1 Linux操作系統(tǒng)發(fā)展與現(xiàn)狀
? ? ?? 在統(tǒng)一內核代碼庫的基礎上,Linux開源社區(qū)根據(jù)不同用戶群體的需求,也發(fā)展出數(shù)量眾多的操作系統(tǒng)發(fā)行版,流行的包括Ubuntu、Debian、Fedora、CentOS、RHEL、OpenSUSE和Slackware等。Linux操作系統(tǒng)之所以會成為目前最受關注的系統(tǒng)之一,主要原因是它的開放源代碼與免費。
1.1.2 Linux的優(yōu)勢
??????①跨平臺的硬件支持(Linux操作系統(tǒng)的內核大部分是用C語言編寫的,并采用了可移植的UNIX標準應用程序接口)
??????②豐富的軟件支持
??????③多用戶多任務(多個用戶可以在同一時間以網(wǎng)絡聯(lián)機的方式使用計算機系統(tǒng))
??????④可靠的安全性(利用Linux自帶防火墻、入侵檢測和安全認證等工具,及時修補系統(tǒng)的漏洞,就能大大提高Linux系統(tǒng)的安全性)
??????⑤良好的穩(wěn)定性(Linux內核源代碼是以標準規(guī)范的32位(在64位CPU上是64位)的計算機來做的最佳化設計,可確保其系統(tǒng)的穩(wěn)定性)
??????⑥完善的網(wǎng)絡功能
1.1.3 Linux系統(tǒng)結構
? ? ?? 一套基于Linux內核的完整操作系統(tǒng)叫做Linux操作系統(tǒng),Linux操作系統(tǒng)的結構包括Linux內核,一些GUN運行庫和工具,命令行Shell,圖形界面X窗口系統(tǒng)及相應桌面環(huán)境,并包含數(shù)千種從辦公包、編譯器、文本編輯器、科學工具到網(wǎng)絡服務的應用軟件。Linux操作系統(tǒng)內核的總體結構屬于一種典型的宏內核結構,并非Linux的前驅——Minix所采用的微內核結構。在Linux內核中,在硬件抽象層的各類設備驅動程序可以完全訪問硬件設備,方便地以模塊化形式設置,并在系統(tǒng)運行期間可直接通過LKM機制裝載或卸載。在硬件抽象層之上是內核服務功能模塊,包括進程管理、內存管理、文件系統(tǒng)、設備控制與網(wǎng)絡這五個子系統(tǒng);而這些內核模塊通過系統(tǒng)調用接口向用戶態(tài)的GUN運行庫及工具、命令行Shell、X窗口以及應用軟件提供服務。
1.2 Linux操作系統(tǒng)安全機制
1.2.1 Linux操作系統(tǒng)的核心安全機制
??????身份認證、授權與訪問控制、安全審計。
1.2.2 Linux身份認證機制
??????Linux是一個多用戶多任務的操作系統(tǒng),通過創(chuàng)建多種角色類型的用戶及用戶組來實施用戶身份管理,來確保多個用戶安全地使用Linux操作系統(tǒng)。
1.2.3 Linux用戶
??????在Linux系統(tǒng)中以用戶作為執(zhí)行進程完成特定操作任務的主體:①Root根用戶②普通用戶③系統(tǒng)用戶。Linux用戶信息保存在系統(tǒng)的/etc/password文件中,具體包括用戶名、每個用戶唯一的uid、使用Shell類型、用戶初始目錄等,而加密口令字則存放于/etc/shadow文件中,只對Root可讀。
1.2.4 Linux用戶組
??????Linux用戶組其實就是具有相同特征的用戶賬號集合,用于簡化整個系統(tǒng)的用戶權限管理。Linux用戶組信息保存在系統(tǒng)的/etc/group文件中,包括用戶組名稱、用戶組gid及用戶組所包含的用戶名列表,用戶組加密口令字則保存在/etc/gshadow文件中。可以使用id-a命令來查詢和顯示當前用戶所屬組,并通過groupadd命令添加用戶組,使用usermod-G group_name user name向特定組來添加用戶。
1.3 Linux系統(tǒng)遠程攻防技術
1.3.1 遠程網(wǎng)絡上入侵Linux系統(tǒng)的主要方法
??????①對Linux系統(tǒng)各種網(wǎng)絡服務的身份認證過程所涉及的用戶口令字進行猜測攻擊
??????②發(fā)掘Linux系統(tǒng)某個監(jiān)聽網(wǎng)絡服務的安全漏洞并進行利用,從而為攻擊者提供本地Shell的訪問權
??????③通過網(wǎng)頁木馬、發(fā)送欺詐郵件、提供特洛伊木馬程序等技術和社會工程學手段
??????④在Linux系統(tǒng)作為連接多個網(wǎng)絡的路由器,或者打開“混雜模式”實施網(wǎng)絡嗅探的監(jiān)聽器時,可能遭受攻擊者特意構造的數(shù)據(jù)包攻擊,從而被攻擊者取得訪問權
1.3.2 自動化的遠程口令猜測工具
??????①Brutus:號稱最快最靈活的遠程口令猜測破解工具
??????②THC Hydra:非常快速的網(wǎng)絡身份認正口令猜測破解工具
??????③Cain and Abel:“黑界神兵”,對Linux下的SSH和各類網(wǎng)絡應用服務的遠程口令猜測也具有非常好的支持
1.3.3 Linux網(wǎng)絡服務遠程滲透攻擊
??????Linux系統(tǒng)安全漏洞、滲透攻擊與補丁更新過程 針對Linux系統(tǒng)網(wǎng)絡服務的遠程滲透攻擊 Linux內核中的網(wǎng)絡協(xié)議棧實現(xiàn) LAMP Web網(wǎng)站構建解決方案中的網(wǎng)絡服務 FTP。Samba等文件共享服務 電子郵件收發(fā)服務 其他網(wǎng)絡服務
1.3.4 針對網(wǎng)絡服務遠程滲透攻擊的安全防范措施
??????①禁用所有不必要的網(wǎng)絡服務
??????②盡量選擇更安全的網(wǎng)絡協(xié)議與服務軟件,并使用最佳安全實踐進行部署
??????③及時更新網(wǎng)絡服務版本
??????④使用xinetd、防火墻為Linux網(wǎng)絡服務添加網(wǎng)絡訪問控制機制
??????⑤建立入侵檢測與應急響應計劃流程
1.4 Linux系統(tǒng)本地安全攻防技術
1.4.1 Linux本地特權提升
? ? ? 需要Root權限配置與管理系統(tǒng)時,通過su或者sudo命令提升至Root用戶帳戶。攻擊者在得到本地受限用戶訪問權之后,最簡單的特權提升途徑就是能夠破解出Root用戶的口令,然后執(zhí)行su或者sudo命令進行提升。讀取口令字密文文件/etc/shadow本身就需要攻擊者具有Root特權。通過利用一些以Root特權運行服務中存在的文件任意讀/寫漏洞,攻擊者還是可以先獲取到/ect/shadow文件,然后通過破解口令字將自身權限提升至Root特權用戶。 第二種特權提升途徑是發(fā)掘并利用su或者sudo程序中的安全漏洞。攻擊者在Linux系統(tǒng)上進行本地特權提升目前最為流行的途徑是直接攻擊那些具有Root特權程序中的任意代碼執(zhí)行漏洞,讓它們替攻擊者打開具有Root權限的Shell命令行連接。根據(jù)受攻擊目標程序的類型,這類途徑又分為攻擊用戶態(tài)SUID特權提升漏洞以及攻擊Linux內核代碼特權提升漏洞。在用戶態(tài)被設置了SUID位的網(wǎng)絡服務與程序,可以在運行過程中提升至文件擁有的權限,來執(zhí)行一些系統(tǒng)資源相關的操作。 最后一種本地特權提升技術則利用了系統(tǒng)中的一些配置不當,通過從系統(tǒng)中搜索全局可寫的敏感文件與目錄位置并加以利用,僅擁有首先用戶權限的攻擊者可能讓操作系統(tǒng)或特權程序執(zhí)行一些他們所預期的操作,從而獲得特權提升的機會。
1.4.2 Linux系統(tǒng)上的消蹤滅跡
? ? ? 清理系統(tǒng)日志,有效抹除掉自己的行動蹤跡。查看/etc/syslog.conf配置內容來了解系統(tǒng)當前正在實施的審計事件類型以及日志的存儲位置。還需清理在shell程序中所輸入的命令歷史記錄。
Kali視頻學習(31-35)
漏洞利用之SET
Social Engineering Toolkit(SET)是一個開源、Python驅動的社會工程學滲透測試工具。提供了非常豐富的攻擊向量庫。是開源的社會工程學利用套件,通常結合metasploit來使用。
輸入1,回車
1.魚叉式釣魚攻擊
2.網(wǎng)站攻擊
3.介質感染攻擊
4.創(chuàng)建Payload并監(jiān)聽
5.群發(fā)郵件攻擊
6.基于Arduino的攻擊
7.短信欺騙攻擊
8.無線接入點攻擊
9.二維碼攻擊
10.powershell攻擊
11.第三方模塊
嗅探欺騙與中間人攻擊
Linux下的中間人攻擊套路是一樣的,這里介紹進行ARP欺騙、DNS欺騙和嗅探以及會話劫持的方法。
為Kali設置開啟端口轉發(fā)
設置ssltrip,讓sslrtip在8081端口監(jiān)聽
ettercap的配置:配置文件是/etc/ettercap/etter.conf,首先要將ec_uid、ec_gid都變?yōu)?
將下面Linux分類下的if you use iptables這一行,將注釋去掉,保存退出
打開圖形化界面 ettercap -G
選擇嗅探網(wǎng)卡 默認eth0
打開ettercap,選擇sniff選項-unified sniffing-選擇網(wǎng)卡-hosts選項:先scan for hosts,等掃描完了選host list
權限維持之后門
權限維持包含Tunnel工具集、Web后門、系統(tǒng)后門三個子類。其中系統(tǒng)后門與Web后門統(tǒng)稱為后門,都是為滲透測試后,為方便再次進入系統(tǒng)而留下的惡意程序。
1、WEB后門
(1)Weevely
Weevely是一款使用python編寫的webshell工具(集webshell生成和連接于一身,僅限于安全學習教學之用,禁止非法用途),可以算作是linux下的一款菜刀替代工具(限于php),某些模塊在win上無法使用。
生成一個php后門,weevely generate test ~/1.php, test為密碼,在本地生成~/1.php
后門上傳到web,使用weevely連接
(2)WeBaCoo(Web Backdoor Cookie)script-kit
是一個小巧的、隱蔽的php后門,它提供了一個可以連接遠程web服務器并執(zhí)行php代碼的終端。WebaCoo使用HTTP響應頭傳送命令結果,shell命令經(jīng)base64編碼后隱藏在Cookie中。
2、系統(tǒng)后門
(1)Cymothoa系統(tǒng)后門
cymothoa -10500 -s -0 -y 2333 (注入2333端口),如果成功,可以連接2333端口返回一個shell
(2)dbd理解為加密版的nc
監(jiān)聽端:dbd -l -p 2333 -e /bin/bash -k password
攻擊端:dbd 127.0.0.1 2333 -k password
(3)sbd和dbd用法相同
(4)U3-Pwn
與Metasploit Payload結合使用的工具,菜單可以單刀多針對移動光驅設備如光驅鏡像,u盤等。
(5)Intersect
執(zhí)行后門,在目標機上執(zhí)行 1.py -b,則生成一個bind shell后門,如果之前設置好remote host和remote port,也可以設置為reverse shell,此時連接后門端口成功,返回shell
權限維持之Tunnel
權限維持包括Tunnel工具集、web后門、系統(tǒng)后門三個子類。Tunnel工具集包含了一系列用于建立通信隧道、代理的工具:
(1)Miredo
Miredo是一個網(wǎng)絡工具,主要用于BSD和Linux的IPV6 Teredo隧道鏈接,可以轉換不支持IPV6的網(wǎng)絡連接IPV6,內核中需要有IPV6和TUN隧道支持。
(2)DNS2TCP
DNS tunnel即DNS通道。從名字上看就是利用DNS查詢過程建立起隧道,傳輸數(shù)據(jù)。
在酒店等公共場所,通常有wifi信號,但當訪問第一個網(wǎng)站時,可能會彈出窗口,需要輸入用戶名密碼,登陸后才可以繼續(xù)上網(wǎng)(該技術一般為透明http代理)。但有時會發(fā)現(xiàn)獲取到的dns地址是有效的,并且可以進行dns查詢,這時可以使用DNS tunnel技術來實現(xiàn)免費上網(wǎng)。
DNS tunnel原理
通過特定服務器,讓局域網(wǎng)內的DNS服務器為我們實現(xiàn)數(shù)據(jù)轉發(fā)。DNS tunnel實現(xiàn)的工具有很多,比如:OzymanDNS, tcp-over-dns, heyoks, iodine, dns2tcp
(3)iodine
(4)Proxychains
內網(wǎng)滲透測試經(jīng)常會用到一款工具,如我們使用Meterpreter開設一個Socks4a代理服務,通過修改/etc/prosychains.conf配置文件,加入代理,即可使其他工具如sqlmap、namp直接使用代理掃描內網(wǎng)。
如proxychain namp 10.0.0.1/24
(5)Proxytunnel
Proxytunnel可以通過標準的Https代理來連接遠程服務器,這是一個代理,實現(xiàn)了橋接的功能。特別用于通過SSH進行Http(s)傳輸
Prosytunnel可用于:
使用http(s)代理(http connect 命令)創(chuàng)建通訊通道
為OpwnSSH寫一個客戶端驅動,并創(chuàng)建基于SSH連接的http(s)代理
作為一個獨立的應用,可以連接到遠程服務器
(6)Ptunnel
借助ICMP數(shù)據(jù)包建立隧道通信
(7)Pwant
內網(wǎng)下通過UDP通信
(8)sslh
一個ssl/ssh端口復用工具,sslh可以在同一個端口上接受https,ssh和openvpn連接。這使得通過443端口連接ssh服務器或者openvpn服務器同時在該端口上提供https服務成為可能。sslh可以作為一個研究端口復用的例子。
逆向工程工具
逆向工程是根據(jù)已有的東西和結果,通過分析來推導具體的實現(xiàn)方法。比如看到別人的某個exe程序能夠做出某種漂亮的動畫效果,可以通過反匯編、反編譯和動態(tài)跟蹤等方法,分析出其動畫效果的實現(xiàn)過程,這種行為就是逆向工程;不僅僅是反編譯,而且還要推倒出設計,并且文檔化,逆向軟件工程的目的是使軟件得以維護。
(1)Edb-Debugger
EDB(Evan's Debugger)是一個基于Qt4開發(fā)的二進制調試工具,主要是為了跟OllyDbg工具看齊,通過插件體系可以進行功能的擴充,當前只支持Linux
(2)Ollydbg
經(jīng)典的Ring3級調試器,是一個動態(tài)調試工具,將IDA與SoftICE結合起來的思想。在Kali下是Wine方式運行的Ollydbg
(3)jad
Java反編譯工具
(4)Redare2
是一款開放源代碼的逆向工程平臺,它可以反匯編、調試、分析和操作二進制文件
(5)Recstudio2
一款反編譯工具
(6)Apktool
GOOGLE提供的APK編譯工具,能夠反編譯及回編譯apk,同時安裝反編譯系統(tǒng)apk所需要的framework-res框架,清理上次反編譯文件夾等功能
(7)Clang、Clang++
Clang是一個C語言、C++、Objective-C、Objective-C++語言的輕量級編譯器,類似于gcc編譯器
Clang++是clang的另一個升級版本,使用方法其實都是一樣的,類似于gc++編譯器
(8)D2j-des2jar
反匯編dex文件到jar文件,進而可以使用其他工具查看源代碼
(9)Flasm
主要用于直接修改swf文件里的腳本actionscript。swf轉fla文件的軟件不能確保100%還原,如果只是修改as腳本代碼,flasm是最佳的選擇,因為他只修改腳本,資源數(shù)據(jù)不做修改
轉載于:https://www.cnblogs.com/werr370/p/8969815.html
總結
以上是生活随笔為你收集整理的2017-2018-2 20179306 《网络攻防技术》第八周作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SystemVerilog之interf
- 下一篇: 12个“无用”之美,你有没有被惊艳到?