- 等保2.0
-
5.2
Windows系統(tǒng)持久化
5.2.1. 隱藏文件
● 創(chuàng)建系統(tǒng)隱藏文件
attrib +s +a +r +h filename / attrib +s +h filename
● 利用NTFS ADS (Alternate Data Streams) 創(chuàng)建隱藏文件
● 利用Windows保留字
aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt9
5.2.2. UAC
5.2.2.1. 簡介
UAC (User Account Control) 是Windows的一個安全機制,當一些敏感操作發(fā)生時,會跳出提示顯式要求系統(tǒng)權(quán)限。
當用戶登陸Windows時,每個用戶都會被授予一個access token,這個token中有security identifier (SID) 的信息,決定了用戶的權(quán)限。
5.2.2.2. 會觸發(fā)UAC的操作
● 以管理員權(quán)限啟動應(yīng)用
● 修改系統(tǒng)、UAC設(shè)置
●修改沒有權(quán)限的文件或者目錄( %SystemRoot% / %ProgramFiles% 等 )
● 修改ACL (access control list) 安裝驅(qū)動
● 增刪賬戶,修改賬戶類型,激活來賓賬戶
5.2.3. 權(quán)限提升
權(quán)限提升有多重方式,有利用二進制漏洞、邏輯漏洞等技巧。利用二進制漏洞獲取權(quán)限的方式是利用運行在內(nèi)核態(tài)中的漏洞來執(zhí)行代碼。比如內(nèi)核、驅(qū)動中的UAF或者其他類似的漏洞,以獲得較高的權(quán)限。
邏輯漏洞主要是利用系統(tǒng)的一些邏輯存在問題的機制,比如有些文件夾用戶可以寫入,但是會以管理員權(quán)限啟動。
5.2.3.1. 任意寫文件利用
在Windows中用戶可以寫的敏感位置主要有以下這些:
● 用戶自身的文件和目錄,包括 AppData Temp
● C:\ ,默認情況下用戶可以寫入
● C:\ProgramData 的子目錄,默認情況下用戶可以創(chuàng)建文件夾、寫入文件
● C:\Windows\Temp 的子目錄,默認情況下用戶可以創(chuàng)建文件夾、寫入文件
具體的ACL信息可用AccessChk, 或者PowerShell的 Get-Acl 命令查看。
可以利用對這些文件夾及其子目錄的寫權(quán)限,寫入一些可能會被加載的dll,利用dll的加載執(zhí)行來獲取權(quán)限。
5.2.3.2. MOF
MOF是Windows系統(tǒng)的一個文件( c:/windows/system32/wbem/mof/nullevt.mof )叫做”托管對象格式”,其作用是每隔五秒就會去監(jiān)控進程創(chuàng)建和死亡。
當擁有文件上傳的權(quán)限但是沒有Shell時,可以上傳定制的mof文件至相應(yīng)的位置,一定時間后這個mof就會被執(zhí)行。
一般會采用在mof中加入一段添加管理員用戶的命令的vbs腳本,當執(zhí)行后就擁有了新的管理員賬戶。
5.2.3.3. sethc
sethc.exe 是 Windows系統(tǒng)在用戶按下五次shift后調(diào)用的粘滯鍵處理程序,當有寫文件但是沒有執(zhí)行權(quán)限時,可以通過替換 sethc.exe 的方式留下后門,在密碼輸入頁面輸入五次shift即可獲得權(quán)限。
5.2.3.4. 憑證竊取
● Windows本地密碼散列導出工具
mimikatz
wce
gsecdump
copypwd
Pwdump
● Windows本地密碼破解工具
L0phtCrack
SAMInside
Ophcrack
● 彩虹表破解
● 本機hash+明文抓取
● win8+win2012明文抓取
● ntds.dit的導出+QuarkPwDump讀取分析
● vssown.vbs + libesedb + NtdsXtract
● ntdsdump
● 利用powershell(DSInternals)分析hash
● 使用 net use \\%computername% /u:%username% 重置密碼嘗試次數(shù)
5.2.3.5. 其他
● 組策略首選項漏洞
● DLL劫持
● 替換系統(tǒng)工具,實現(xiàn)后門
5.3
Linux信息收集
5.3.1. 獲取內(nèi)核,操作系統(tǒng)和設(shè)備信息
● 版本信息
uname -a 所有版本
uname -r 內(nèi)核版本信息
uname -n 系統(tǒng)主機名字
uname -m Linux
● 內(nèi)核架構(gòu) 內(nèi)核信息 cat /proc/version
● CPU信息 cat /proc/cpuinfo
● 發(fā)布信息
cat /etc/*-release
cat /etc/issue
● 主機名 hostname
● 文件系統(tǒng) df -a
5.3.2. 用戶和組
● 列出系統(tǒng)所有用戶 cat /etc/passwd
● 列出系統(tǒng)所有組 cat /etc/group
● 列出所有用戶hash(root)“cat /etc/shadow“
● 用戶
查詢用戶的基本信息 finger
當前登錄的用戶 users who -a
● 目前登錄的用戶 w
● 登入過的用戶信息 last
● 顯示系統(tǒng)中所有用戶最近一次登錄信息 lastlog
5.3.3. 用戶和權(quán)限信息
● 當前用戶 whoami
● 當前用戶信息 id
● 可以使用sudo提升到root的用戶(root) cat /etc/sudoers
● 列出目前用戶可執(zhí)行與無法執(zhí)行的指令 sudo -l
5.3.4. 環(huán)境信息
● 打印系統(tǒng)環(huán)境信息 env
● 打印系統(tǒng)環(huán)境信息 set
● 環(huán)境變量中的路徑信息 echo $PATH
● 打印歷史命令 history
● 顯示當前路徑 pwd
● 顯示默認系統(tǒng)遍歷 cat /etc/profile
● 顯示可用的shell cat /etc/shells
5.3.5. 服務(wù)信息
● 查看進程信息 ps aux
● 由inetd管理的服務(wù)列表 cat /etc/inetd.conf
● 由xinetd管理的服務(wù)列表 cat /etc/xinetd.conf
● nfs服務(wù)器的配置 cat /etc/exports
5.3.6. 作業(yè)和任務(wù)
● 顯示指定用戶的計劃作業(yè)(root) crontab -l -u %user%
● 計劃任務(wù) ls -la /etc/cron*
5.3.7. 網(wǎng)絡(luò)、路由和通信
● 列出網(wǎng)絡(luò)接口信息 /sbin/ifconfig -a
● 列出網(wǎng)絡(luò)接口信息 cat /etc/network/interfaces
● 查看系統(tǒng)arp表 arp -a
● 打印路由信息 route
● 查看dns配置信息 cat /etc/resolv.conf
● 打印本地端口開放信息 netstat -an
● 列出iptable的配置規(guī)則 iptables -L
● 查看端口服務(wù)映射 cat /etc/services
5.4
入侵痕跡清理
5.4.1. Windows
● 操作日志:3389登錄列表、文件訪問日志、瀏覽器日志、系統(tǒng)事件
● 登錄日志:系統(tǒng)安全日志
5.4.2. Linux
● 清除歷史
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null;
● 刪除 ~/.ssh/known_hosts 中記錄
● 修改文件時間戳
touch –r
● 刪除tmp目錄臨時文件
5.4.3. 難點
● 攻擊和入侵很難完全刪除痕跡,沒有日志記錄也是一種特征
● 即使刪除本地日志,在網(wǎng)絡(luò)設(shè)備、安全設(shè)備、集中化日志系統(tǒng)中仍有記錄
● 留存的后門包含攻擊者的信息
● 使用的代理或跳板可能會被反向入侵
5.4.4. 注意
● 在操作前檢查是否有用戶在線
● 刪除文件使用磁盤覆寫的功能刪除
● 盡量和攻擊前狀態(tài)保持一致
(本文屬知識庫及科普性質(zhì),資料來源互聯(lián)網(wǎng),版權(quán)歸原作者所有)