<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    藍隊面試題整理(防守方面試題整理)

    VSole2022-10-14 22:24:53

    一、應急響應

    A. 宏觀題

    1.基本思路流程

    • 收集信息:收集客戶信息和中毒主機信息,包括樣本
    • 判斷類型:判斷是否是安全事件,何種安全事件,勒索、挖礦、斷網、DoS 等等
    • 抑制范圍:隔離使受害?不繼續擴?
    • 深入分析:日志分析、進程分析、啟動項分析、樣本分析方便后期溯源
    • 清理處置:殺掉進程,刪除文件,打補丁,刪除異常系統服務,清除后門賬號防止事件擴大,處理完畢后恢復生產
    • 產出報告:整理并輸出完整的安全事件報告

    2.Windows入侵排查思路

    • 檢查系統賬號安全
    • 查看服務器是否有弱口令,遠程管理端口是否對公網開放(使用netstat -ano 命令、或者問服務器管理員)
    • lusrmgr.msc 命令查看服務器是否存在可疑賬號、新增賬號,如有管理員群組的(Administrators)里的新增賬戶,如有,請立即禁用或刪除掉
    • 用 D 盾或者注冊表中查看服務器是否存在隱藏賬號、克隆賬號
    • 結合日志,查看管理員登錄時間、用戶名是否存在異常

    檢查方法:Win+R 打開運行,輸入“eventvwr.msc”,回車運行,打開“事件查看器”,導出 Windows 日志–安全,利用 Log Parser 進行分析

    • 檢查異常端口、進程
    • netstat -ano檢查端口連接情況,是否有遠程連接、可疑連接
    • 任務管理器-進程
    • 檢查啟動項、計劃任務、服務
    • 檢查系統相關信息
    • 查看系統版本以及補丁信息
    • 查找可疑目錄及文件
    • 日志分析

    3.Linux入侵排查思路

    • 賬號安全
    who查看當前登錄用戶(tty本地登陸 pts遠程登錄)
    w 查看系統信息,想知道某一時刻用戶的行為
    uptime查看登陸多久、多少用戶,負載
    1、用戶信息文件/etc/passwd
    root:x:0:0:root:/root:/bin/bash
    account:password:UID:GID:GECOS:directory:shell
    用戶名:密碼:用戶ID:組ID:用戶說明:家目錄:登陸之后shell
    注意:無密碼只允許本機登陸,遠程不允許登陸
    2、影子文件/etc/shadow
    root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
    用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留
    

    /etc/passwd 存儲一般的用戶信息,任何人都可以訪問;/etc/shadow 存儲用戶的密碼信息,只有 root 用戶可以訪問

    • 歷史命令
    通過 .bash_history 查看帳號執行過的系統命令
    1、root的歷史命令 histroy
    2、打開 /home 各帳號目錄下的 .bash_history,查看普通帳號的歷史命令
    歷史操作命令的清除:history -c
    但此命令并不會清除保存在文件中的記錄,因此需要手動刪除.bash_profile文件中的記錄
    
    • 檢查異常端口
    netstat -antlp|more
    查看下pid所對應的進程文件路徑,
    運行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 為對應的pid 號)
    
    • 檢查異常進程
    ps aux | grep pid
    
    • 檢查開機啟動項
    開機啟動配置文件
    /etc/rc.local
    /etc/rc.d/rc[0~6].d
    
    • 檢查定時任務
    crontab -l 列出某個用戶cron服務的詳細內容
    Tips:默認編寫的crontab文件會保存在 (/var/spool/cron/用戶名 例如: /var/spool/cron/root
    crontab -r 刪除每個用戶cront任務(謹慎:刪除所有的計劃任務)
    crontab -e 使用編輯器編輯當前的crontab文件
    如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分鐘寫入文件
    2、利用anacron實現異步定時任務調度
    重點關注
    /var/spool/cron/*
    /etc/crontab
    /etc/cron.d/*
    /etc/cron.daily/*
    /etc/cron.hourly/*
    /etc/cron.monthly/*
    /etc/cron.weekly/
    /etc/anacrontab
    /var/spool/anacron/*
    
    • 檢查服務
    chkconfig --list 命令,可以查看系統運行的服務
    
    • 檢查異常文件
    • 檢查系統日志

    3.Linux的登錄日志查看文件

    • 日志默認存放位置:/var/log/
    • 查看可登錄的賬戶 cat/etc/passwd|grep ‘/bin/bash’
    • 查看所有用戶最后的登錄信息 lastlog
    • 查看用戶最近登錄信息 last 其中,/var/log/wtmp 存儲登錄成功的信息、btmp 存儲登錄失敗的信息、utmp 存儲當前正在登錄的信息
    • 查看當前用戶登錄系統情況 who

    4.Linux常用排查命令

    這個問題就是 linux 入侵排查排查的一部分
    https://cloud.tencent.com/developer/article/1822210
    
    • 系統信息
    • 查看當前系統狀態 top
    • 操作系統信息 uname -a
    • 查看當前系統進程信息 ps
    • 查看歷史命令 history
    • 列出本機所有的連接和監聽的端口 netstat
    • 查看誰在使用某個端口 lsof
    • 用戶登錄
    • 查看當前用戶登錄系統情況 who
    • 分析超級權限賬戶 awk-F:‘{if($3==0)print $1}’/etc/passwd
    • 查看可登錄的賬戶 cat/etc/passwd|grep ‘/bin/bash’
    • 查看用戶錯誤的登錄信息 lastb
    • 查看所有用戶最后的登錄信息 lastlog
    • 查看用戶最近登錄信息 last
    • /var/log/ 其中,/var/log/wtmp 存儲登錄成功的信息、btmp存儲登錄失敗的信息、utmp存儲當前正在登錄的信息
    • 查看空口令賬戶 awk-F:‘length($2)==0 {print $1}’/etc/shadow

    5.Linux基線規范

    每個公司有每個公司的基線規范體系,但是答題分為下列五個方面

    • 賬號管理和授權
    • 檢查特殊賬號,是否存在空密碼的賬戶和 root 權限賬戶
    • 禁用或刪除無用賬號
    • 添加口令策略:/etc/login.defs修改配置文件,設置過期時間、連續認證失敗次數
    • 禁止 root 遠程登錄,限制root用戶直接登錄。
    • 檢查 su 權限:vi /etc/pam.d/su添加auth required pam_wheel.so group=test
    • 服務
    • 關閉不必要的服務
    • SSH 服務安全
    • 不允許 root 賬號直接登錄系統,PermitRootLogin=no
    • 修改 SSH 使用的協議版本為 2
    • 修改允許密碼錯誤次數(默認 6 次),MaxAuthTries=3
    • 文件系統
    • 設置 umask 值 vi /etc/profile 添加行 umask 027
    • 設置登錄超時 vi /etc/profile 修改配置文件,將以 TMOUT= 開頭的行注釋,設置為 TMOUT=180
    • 日志
    • 啟用 syslogd 日志,配置日志目錄權限,或者設置日志服務器
    • 記錄所有用戶的登錄和操作日志,通過腳本代碼實現記錄所有用戶的登錄操作日志,防止出現安全事件后無據可查
    https://www.alibabacloud.com/help/zh/faq-detail/49809.htm
    
    • IP 協議安全要求
    • 遠程登錄取消 telnet 采用 ssh
    • 設置 /etc/hosts.allow 和 deny
    • 禁止 ICMP 重定向
    • 禁止源路由轉發
    • 防 ssh 破解,iptables (對已經建立的所有鏈接都放行,限制每分鐘連接 ssh 的次數)+ denyhost (添加 ip 拒絕訪問)
    Linux 安全基線檢查
    Linux:https://cloud.tencent.com/developer/article/1668982
    

    6.Windows 安全基線檢查

    windows安全基線檢查:
    Windows:https://cloud.tencent.com/developer/article/1668937
    

    主要包括五個方面:身份鑒別、訪問控制、安全審計、資源控制、剩余信息保護

    • 身份鑒別
    • 更改缺省賬戶
    • 檢查Guest用戶是否禁用
    • 密碼復雜性要求
    • 密碼長度最小不能小于8位
    • 訪問控制
    • 共享賬戶檢查
    • 遠程關機授權
    • 本地關機
    • 授權帳戶登陸
    • 安全審計
    • 用戶登錄日志記錄
    • 系統日志完備性檢
    • 登錄超時管理
    • 資源控制
    • 登錄超時管理
    • 遠程登錄超時配置
    • 剩余信息保護
    • 不顯示上次的用戶名
    • 關機前清除虛擬內存頁面
    • 不啟用可還原的加密來存儲密碼

    7.中間件基線規范(APACHE)

    中間件基線:
    https://www.alibabacloud.com/help/zh/faq-detail/52981.htm
    
    • 配置
    • 賬號
    • 授權
    • 日志
    • session 過期時間(防ddos)
    • 綁定監聽地址
    • 禁止
    • 目錄權限
    • 訪問外部文件
    • CGI
    • 非法HTTP方法(PUT DELETE)
    • 隱藏
    • 服務版本號
    • 重定向錯誤頁面
    • 刪除
    • 配置文件
    • 默認安裝的無用文件

    8.中間件常見漏洞

    https://www.freebuf.com/articles/web/192063.html
    

    (一) IIS

    1、PUT漏洞

    2、短文件名猜解

    3、遠程代碼執行

    4、解析漏洞

    (二) Apache

    1、解析漏洞

    2、目錄遍歷

    (三) Nginx

    1、文件解析

    2、目錄遍歷

    3、CRLF注入

    4、目錄穿越

    (四)Tomcat

    1、遠程代碼執行

    2、war后門文件部署

    (五)jBoss

    1、反序列化漏洞

    2、war后門文件部署

    (六)WebLogic

    1、反序列化漏洞

    2、SSRF

    3、任意文件上次

    4、war后門文件部署

    (七)其它中間件相關漏洞

    1、FastCGI未授權訪問、任意命令執行

    2、PHPCGI遠程代碼執行

    9.Linux、Windows安全加固

    IIS 服務器應該做哪些方面的保護措施?
    整理來源:http://www.williamlong.info/archives/118.html
    
    • IIS 服務器應該做哪些方面的保護措施?
    • 保持 Windows 升級
    • 使用 IIS 防范工具
    • 移除缺省的 Web 站點
    • 如果你并不需要 FTP 和 SMTP 服務,請卸載它們
    • 有規則地檢查你的管理員組和服務:
    • 嚴格控制服務器的寫訪問權限
    • 設置復雜的密碼
    • 減少/排除 Web 服務器上的共享
    • 禁用 TCP/IP 協議中的 NetBIOS
    • 使用 TCP 端口阻塞
    • 仔細檢查 .bat 和 .exe 文件:每周搜索一次 .bat
    • 管理 IIS 目錄安全
    • 使用 NTFS 安全
    • 管理用戶賬戶
    • 審計你的 Web 服務器
    • Linux系統安全加固需要注意的內容
    • 關閉不必要的系統服務
    • 更改 SSH 默認端口
    • 禁止 root 用戶遠程 ssh 登錄
    • 限制用戶使用 su 命令切換 root
    • 密碼復雜度策略
    • 檢查密碼重復使用次數限制
    • 檢查是否存在空口令賬號
    • 禁止同時按下 ctrl+alt+del 重啟
    • 禁用 telnet 服務
    • 框架漏洞&常見命令注入漏洞?php? Strust2 ?
    • Struts2 OGNL 注入
    • weblogic
    • fastjson
    • TP5 代碼執行
    • laravel:debug mode 遠程代碼執行漏洞(CVE-2021-3129)
    • Spring Expression Language SPEL 表達式注入
    • Spring Security Oauth2 遠程代碼執行
    • Spring框架漏洞總結

    10.常見安全工具、設備

    • 工具

    端口及漏洞掃描:Namp、Masscan

    抓包:Wireshark,Burpsuite、Fiddler、HttpCanary

    Web自動化安全掃描:Nessus、Awvs、Appscan、Xray

    信息收集:Oneforall、hole

    漏洞利用:MSF、CS

    Webshell 管理:菜刀、蟻劍、冰蝎、哥斯拉

    • 設備

    網絡安全設備常識

    常見的 HW 設備有:公安部網防G01、K01、360網康/網神防火墻、微步威脅情報、安恒云-Web應用防火墻(玄武盾)、默安蜜罐、知道創宇蜜罐、山石防火墻

    即客戶擁有物理的基礎設施(自建機房、自購設備、網絡)

    • NGAF/NGFW:下一代 Web 應用防火墻(Next Generation Application Firewall,通防火墻和下一代防火墻的區別),聚合了以下功能
    • IDS

    HIDS:基于主機的入侵檢測系統

    NIDS:基于網絡的入侵檢測系統

    HIDS+NIDS:基于混合數據源的入侵檢測系統

    • IPS:入侵防御系統
    • AV:反病毒系統
    • EDR:主機安全管理\終端檢測和響應

    EDR 實時監測終端上發生的各類行為,采集終端運行狀態,在后端通過大數據安全分析、機器學習、沙箱分析、行為分析、機器學習等技術,提供深度持續監控、威脅檢測、高級威脅分析、調查取證、事件響應處置、追蹤溯源等功能,可第一時間檢測并發現惡意活動,包括已知和未知威脅,并快速智能地做出響應,全面賦予終端主動、積極的安全防御能力

    簡單來說就是給內網環境中所有主機安裝管理軟件終端,可以在管理平臺集中管理和數據分析過濾,基本所有安全廠商都有自己的 EDR 產品

    • 運維審計和管理平臺(堡壘機
    • DAS:數據庫安全審計平臺
    • LAS:日志審計安全平臺
    • AC:上網行為管理系統
    • 偽裝欺騙系統(蜜罐、蜜網)
    • SIP:安全態勢感知平臺

    這個算是讓整套系統性能得到提升的靈魂了,定位為客戶的安全大腦,是一個集檢測、可視、響應處置于一體的大數據安全分析平臺。產品以大數據分析為核心,支持主流的安全設備、網絡設備、操作系統等多源數據接入,利用大數據、關聯分析、告警降噪等技術,實現海量數據的統一挖掘分析

    云網絡

    • 云網絡包括私有云和公有云
    • 云主機安全
    • 云防火墻
    • 云堡壘機
    • 云蜜罐
    • 云 DDOS 防護
    • 等等

    11.綠盟設備

    • 堡壘機 SAS-H Series,堡壘機采用“物理旁路,邏輯串聯”的部署思路
    • 綠盟威脅情報云 NTI https://nti.nsfocus.com/
    • 抗拒絕服務攻擊系統 ADS
    • 安全和漏洞管理 AIRO
    • 網絡入侵防護系統 IDPS
    • web 應用防火墻

    12.你拿到的cnvd

    • **工作經歷

    安全服務工程師

    參加滲透測試、地方服務、HW

    根據客戶方要求對所給資產進行了詳細細致的滲透測試。挖掘漏洞,發現漏洞的第一時間與客戶方匯報,使客戶方能夠及時整改修補問題漏洞,防止造成漏洞危害擴大

    • 攻防演練

    攻防演練中擔任什么角色

    • 護網的分組和流程?
    • 護網的分組是在領導小組之下分為防護檢測組,綜合研判組,應急溯源組。流程大致分為備戰,臨戰,決戰三個階段
    • 備戰階段,主要任務是進行兩方面的操作,一是減少攻擊面,即資產梳理,減少暴露面;二是排查風險點,即通過漏洞掃描,滲透測試,弱口令等進行自查
    • 臨戰階段,主要任務也大致可以分為兩個部分,一是進行內部演練,發現疏忽處并進行相應整改;二是可以適當增加安全設備,比如WAF,IPS,IDS,SOC,堡壘機等
    • 決戰階段,作為新人,主要就是堅守崗位,有應急日志就看自己能不能解決,不能就上報,服從上級安排,優化防護,持續整改
    • 簡歷有護網經歷,你能談談護網的情況嗎
    • 參加過護網藍隊,負責事件研判工作,主要使用 ips,ids 等設備做流量監控與日志分析工作判斷安全事件是否為誤判
    • 監控、研判、處置、溯源
    • 對安全管理中心發出的態勢排查單進行排查,并將排查結果反饋給安全管理中心,對安全管理中心發出的封堵工單和解封工單進行對應的封堵與解封,每兩小時反饋一次排查結果、設備巡檢報告、封堵情況。查看呼池 DDOS 設備,記錄并排查告警信息
    • 藍隊研判
    • 研判工作要充分利用已有安全設備(需要提前了解客戶的網絡拓撲以及部署設備情況),分析其近期的設備告警,將全部流量日志(日志條件:源地址,目的地址,端口,事件名稱,時間,規則 ID,發生 次數等)根據研判標準進行篩選(像挖礦、蠕蟲、病毒、拒絕服務這類不太可能為攻擊方發起的攻擊的事件,直接過濾掉,減少告警數量),一般情況下,真實攻擊不可能只持續一次,它一定是長時間、周期性、多 IP 的進行攻擊
    • 對于告警結合威脅情報庫如:微步、奇安信威脅情報中心、綠盟威脅情報云等對于流量日志的原 IP 地址進行分析,判斷其是否為惡意攻擊,推薦使用微步的插件,如果確認為攻擊行為或者不能確認是否為攻擊行為,進行下一步操作,在之前準備好的表格中查找 IP 是否為客戶內網部署的設備,如果不是,繼續進行下一步,在事件上報平臺查看是否有其他人提交過,如果沒有,則上報
    • 然后根據流量日志,對請求數據包和返回數據包分析判斷其是否為誤報,需要留意 X-Forwarded-For(簡稱XFF)和 x-real-ip 可以了解些 webshell 工具的流量特征,尤其是免殺 webshell,有可能不會被設備識別
    • 最后上報事件時,盡可能提供完整的截圖,包括源 ip、目的ip,請求包請求體,響應包響應體等重要信息,以方便后續人員研判溯源
    注:不要任意忽略內網告警,適當情況下可以往前推排查時間
    
    • 藍隊組成
    • 藍隊的主要工作包括前期安全檢查、整改與加固,演習期間進行網絡安全監測、預警、分析、驗證、處置,后期復盤總結現有防護工作中的不足之處,為后續常態化的網絡安全防護措施提供優化依據
    • 監控、研判、處置、溯源
    • SQL注入檢測
    • SQL注入攻擊檢測可根據入侵事件發生的前后進行區分,在入侵前可以對 Payload 進行檢測等方式以預防 SQL 注入攻擊。在入侵檢測后可以通過對數據庫、IIS 日志等進行檢查以進行判斷
    • 傳統的SQL注入檢測方法通常根據經驗提取特征,然后基于規則庫匹配的方法來檢測是否為 SQL 注入語句,其設計一般較為復雜,且規則模式更新頻繁,在此采用機器學習的方式嘗試對 SQL 注入語句進行檢測
    • DDOS CC應急思路以及如何防范

    目前對于低網絡層的 DDoS 攻擊有一些有效的防護手段,如丟棄第一次 SYN 包,上流量防護設備,上 WAF 封禁地址等

    比較難纏的是第七層,第八層的 CC 攻擊,它會找到目標網站上比較消耗資源的關鍵位置,重復發起攻擊以消耗 CPU/內存/數據庫/IO 等資源

    • 目前的應付手段有:
    • 優化資源消耗高位置的代碼
    • 增加硬件設備
    • 上云
    • 購買專業安全公司的安全服務
    • 除此之外,隱藏服務器的真實 IP、上云 WAF、CDN、 負載均衡等設備,或者暫時將域名解析到公安網警網站等也是可以作為選擇方案
    • 網絡設備設施
    • 拼帶寬,加大帶寬,但是成本太高
    • 使用硬件防火墻
    • 選用高性能設備
    • 抗 D 思想和方案
    • 負載均衡
    • 花錢買流量清洗服務
    • CDN:web 層,比如 cc 攻擊
    • 分布式集群防御
    • 高防:防大部分攻擊,udp、大型的 cc 攻擊
    • 預防為主
    • 系統漏洞
    • 系統資源優化
    • 過濾不必要的服務和端口
    • 限制特定流量:檢查訪問來源做適當限制

    13.挖礦病毒判斷&挖礦常見手段&處理

    • 挖礦木馬占用系統資源進行挖礦行為,一般電腦會有以下特征
    • 系統響應緩慢
    • CPU/顯卡使用率過高
    • 內存/帶寬占用高
    • 登錄進可疑主機后,可以通過以下方式確認挖礦木馬(即入侵排查流程)
    • 查看進程(系統命令 ps、Is 有可能被替換)
    • 檢查日志、檢查系統用戶
    • 發現異常文件
    • 挖礦常用手段
    • 未授權訪問或弱口令:Redis 未授權訪問、Docker API 未授權訪問、Hadoop Yarn 未授權訪問、NFS 未授權訪問、Rsync 弱口令、PostgreSQL 弱口令、Tomcat 弱口令、SSH 弱口令、Telnet 弱口令、Windows 遠程桌面弱口令
    • 遠程命令執行漏洞:WebLogic XML 反序列化漏洞、Jenkins 反序列化、Jboss 遠程代碼執行、Spring 遠程代碼執行、ElasticSearch 命令執行、永恒之藍、Struts2 系列漏洞、常見 CMS 的遠程命令執行漏洞
    • 新爆的高危漏洞:一般每次爆發新的高危漏洞,都會緊跟一波大規模的全網掃描利用和挖礦
    • 清除挖礦木馬
    • 原因排查

    一旦發現服務器被挖礦,應該首先查看挖礦進程所屬的用戶,根據挖礦進程的運行用戶去排查該用戶下是否還運行著其它進程,確定這些進程是否有上述經常被黑客利用的漏洞。如果有常見的漏洞,則應該重點對此進行排查找到原因

    • 清除木馬

    1.及時隔離主機

    部分帶有蠕蟲功能的挖礦木馬在取得本機的控制權后,會以本機為跳板機,對同一局域網內的其他主機進行已知漏洞的掃描和進一步利用, 所以發現挖礦現象后,在不影響業務的前提下應該及時隔離受感染主機,然后進行下一步分析

    2.刪除文件、阻斷與礦池通訊


    iptables -A INPUT -S xmr.crypto- pool.fr -j DROP
    iptables -A OUTPUT -d xmr.crypto- pool.fr -j DROP
    

    3.清除定時任務

    大部分挖礦進程會在受感染主機中寫入定時任務來完成程序的駐留,當安全人員只清除挖礦木馬時,定時任務會再次從服務器下載挖礦進程或者直接執行挖礦腳本,導致挖礦進程清除失敗

    4.清除啟動項

    有的挖礦進程為了實現長期駐留,會向系統中添加啟動項來確保系統重啟后挖礦進程還能重新啟動,所以在清除時還應該關注啟動項中的內容如果有可疑的啟動項,也應該進行排查,確認是挖礦進程后,對其進行清除

    5.kill 挖礦進程

    對于單進程挖礦程序,直接結束挖礦進程即可。但是對于大多數的挖礦進程,如果挖礦進程有守護進程,應先殺死守護進程再殺死挖礦進程,避免清除不徹底

    在實際的清除工作中,應找到本機上運行的挖礦腳本,根據腳本的執行流程確定木馬的駐留方式, 并按照順序進行清除, 避免清除不徹底

    6.清除公鑰文件

    在用戶 home 目錄的 .ssh 目錄下放置 authoruzed_keys 文件,從而免密登錄該機器也是一種常見的保持服務器控制權的手段。在排查過程中應該查看該文件中是否有可疑公鑰信息,有的話直接刪除,避免攻擊者再次免密登錄該主機

    14.服務器存在webshell,如何處理?

    網站被植入 webshell,意味著網站存在可利用的高危漏洞,攻擊者通過利用漏洞入侵網站,寫入 webshell 接管網站的控制權

    • 及時隔離主機
    • 定位事件范圍,查看文件 webshell 文件的創建時間,對 webshell 取證樣本
    • 通過創建時間結合日志分析可疑行為,以及啟動用戶的其他進程確定漏洞
    • 清除 webshell 及殘留文件,修復漏洞,參考上題

    15.排查 shell 應該用什么命令來進行排查

    find 命令
    find /var/www/html -name "*.php" |xargs egrep 'assert|eval|phpinfo\(\)|\(base64_decoolcode|shell_exec|passthru|file_put_contents\(\.\*\$|base64_decode\('
    

    16.如何檢測webshell

    • 主機層面
    • 靜態檢測

    靜態檢測通過匹配特征碼,特征值,危險函數函數來查找 webshell 的方法,只能查找已知的 webshell

    • 動態檢測

    webshell 傳到服務器了,在執行函數時這些對于系統調用、系統配置、數據庫、文件的操作動作都是可以作為判斷依據

    • 日志檢測

    使用 webshell 一般不會在系統日志中留下記錄,但是會在網站的 web 日志中留下 webshell 頁面的訪問數據和數據提交記錄

    • 語法檢測

    語法語義分析形式,是根據 php 語言掃描編譯的實現方式,進行剝離代碼、注釋,分析變量、函數、字符串、語言結構的分析方式,來實現關鍵危險函數的捕捉方式這樣可以完美解決漏報的情況但誤報上

    • 流量層面
    Webshell管理工具的流量特征
    https://www.freebuf.com/column/204796.html
    https://www.freebuf.com/articles/web/213905.html
    
    • 菜刀

    菜刀 webshell 只使用了 url 編碼 + base64 編碼

    shell 特征就是傳輸參數名為 z0,還存在int_set("display_erros","0")字符串特征

    • 蟻劍

    默認的蟻劍 shell,連接時會請求兩次,其請求體只是經過 url 編碼,其流量中也存在和蟻劍一樣的代碼

    第一次請求,關閉報錯和 magic_quotes,接下來去獲取主機的信息

    第二次請求,會把主機目錄列出來

    • 冰蝎2.0

    使用 aes 加密發起三次請求

    第一次請求服務端產生密鑰寫入 session,session 和當前會話綁定,不同的客戶端的密鑰也是不同的

    第二次請求是為了獲取 key,第三次使用 key 的 aes 加密進行通信

    • 冰蝎3.0

    使用 aes 加密發起兩次請求

    3.0 分析流量發現相比 2.0 少了動態密鑰的獲取的請求,不再使用隨機生成 key,改為取連接密碼的 md5 加密值的前 16 位作為密鑰

    一次請求為判斷是否可以建立連接,少了倆次 get 獲取冰蝎動態密鑰的行為,第二次發送 phpinfo 等代碼執行,獲取網站的信息

    • 哥斯拉

    支持 n 種加密

    采用了和冰蝎 3.0 一樣的密鑰交換方式,哥斯拉建立連接時會發起三次請求,第一次請求數據超級長,建立 session,第二三次請求確認連接

    17.常見端口漏洞

    • 數據庫類(掃描弱口令)

    1433:MSSQL

    1521:Oracle

    3306:Mysql

    5432:PostgreSQL

    • 特殊服務類(未授權/命令執行)

    443:ssl 心臟滴血

    873:Rsync 未授權

    5984:CouchDB http://xxx:5984/_utils/

    6379:Redis 未授權

    7001、7002:Weblogic 默認弱口令

    8088:Hadoop Yarn 資源管理系統 REST API 存在未授權

    8161:Apache ActiveMQ 未授權、弱口令,put 文件上傳,move 文件移動

    9200、9300:elasticsearch 命令執行

    11211:Memcache 未授權,telnet ip 就可以獲得服務器敏感信息

    27017、27018:Mongodb 未授權

    50000:SAP 命令執行

    50070、50030 Hadoop 未授權訪問

    • 常用端口類(弱口令/端口爆破)

    21:FTP 弱口令,匿名 anonymous/空登錄,以及 ms12-073

    25:SMTP 簡單郵件傳輸服務器端口

    23:Telnet 的端口,Telnet 是一種可以遠程登錄并管理遠程機器的服務

    22:ssh 端口,PcAnywhere 建立 TCP 和這一端口的連接可能是為了尋找 ssh,這一服務有許多弱點

    53:dns 端口

    139:屬于 TCP 協議,是為 NetBIOS Session Service 提供的,主要提供 Windows 文件和打印機共享以及 Unix 中的 Samba 服務

    445:網絡共享 smb 服務,嘗試利用 ms08067,ms17010 等以及 IPC$ 攻擊手段

    2601、2604:zebra 路由,默認密碼 zebra

    • 三次握手與四次揮手
    https://www.eet-china.com/mp/a44399.html
    

    背景:TCP 位于傳輸層,作用是提供可靠的字節流服務,為了準確無誤地將數據送達目的地,TCP 協議采納三次握手四次揮手策略

    • 三次握手(three-way handshaking)

    TCP 三次握手,其實就是 TCP 應用在發送數據前,通過 TCP 協議跟通信對方協商好連接信息,建立起 TCP 的連接關系

    第一次握手:客戶端發送 SYN 報文,并進入 SYN_SENT 狀態,等待服務器的確認

    第二次握手:服務器收到 SYN 報文,需要給客戶端發送 ACK 確認報文,同時服務器也要向客戶端發送一個 SYN 報文,所以也就是向客戶端發送 SYN + ACK 報文,此時服務器進入 SYN_RCVD 狀態

    第三次握手:客戶端收到 SYN + ACK 報文,向服務器發送確認包,客戶端進入 ESTABLISHED 狀態。待服務器收到客戶端發送的 ACK 包也會進入 ESTABLISHED 狀態,完成三次握手

    • 四次揮手(Four-Way-Wavehand)

    當我們的應用程序不需要數據通信了,就會發起斷開 TCP 連接。建立一個連接需要三次握手,而終止一個連接需要經過四次揮手

    第一次揮手:客戶端發送一個 FIN,用來關閉客戶端到服務端的數據傳送,客戶端進入 FIN_WAIT_1 狀態

    第二次揮手:服務端收到 FIN 后,發送一個 ACK 給客戶端,確認序號為收到序號 +1(與SYN相同,一個FIN占用一個序號),服務端進入 CLOSE_WAIT 狀態

    第三次揮手:服務端發送一個 FIN,用來關閉服務端到 客戶端的數據傳送,服務端進入 LAST_ACK 狀態

    第四次揮手:客戶端收到 FIN 后,客戶端進入 TIME_WAIT 狀態,接著發送一個 ACK 給服務端,確認序號為收到序號 +1,服務端進入 CLOSED 狀態,完成四次揮手

    18.一個大范圍影響的0day被曝光,作為甲方安全工程師,應該如何處理(★★)

    • 首先是評估 0day 對自身系統的影響(這部分評估需要根據漏洞利用的利用點、是否需要交互、是否會影響系統的 CIA,是否有在野利用 poc,影響資產是否暴露在公網等很多因素決定,詳情可以參考 CVSS )
    • 如果確定有影響的話且有 poc,第一件事是先分析 poc 執行后會在什么地方留下痕跡,我們有什么樣的設備去采集這些痕跡所留下的數據,比如說 ntlm relay 這種,可以考慮從 Windows 事件日志當中 event_id 等于 4769 的事件入手編寫對應的規則,這樣的話可以利用 SIEM 或者實時日志分析平臺跑起來,可以建立起初步的感知防線,后期觸發告警,人肉運營也可以快速止損
    • 日常建立完整的縱深防御體系,不要依賴于某一道防線

    19.服務器操作系統的安全防范?

    • 停止運行不需要的軟件(很可能成為外部攻擊的入口)
    • 定期實施漏洞防范措施(選定軟件時確認軟件的升級狀況,確定打補丁方式,關注各種漏洞信息,確認漏洞后調查補丁狀況以及防范對策,并制定對應計劃)
    • 對不需要對外公開的端口或者服務加以訪問限制(通過端口掃描確認各端口服務狀態)
    • 提高認證強度

    20.怎么發現有沒有被攻擊

    攻擊判斷可以建立在設備的基礎上,利用設備的告警,如果沒有設備的話可以參考以下

    • 網站被攻擊:網站被跳轉到賭博網站,網站首頁被篡改,百度快照被改,網站被植入 webshell 腳本木馬,網站被 DDOS、CC 壓力攻擊
    • 服務器被黑:服務器系統中木馬病毒,服務器管理員賬號密碼被改,服務器被攻擊者遠程控制,服務器的帶寬向外發包,服務器被流量攻擊,ARP攻擊(目前這種比較少了,現在都是基于阿里云,百度云,騰訊云等云服務器)
    • 對登錄記錄、系統日志、web 日志等進行分析

    B. 細節題

    1.你能大概說一下,比如數據包或者日志,你的分析思路是什么,以及你會用到哪些工具或者那些網站進行查詢?

    • 用流量監測的安全設備,比如天眼,查看報文,分析報文里和 host 和網站目錄路徑,查看是否可疑,使用微步查詢 host 是否為惡意,使用 wireshark 對數據包深度分析
    • 看一下請求的網站路徑,源 IP 與目的 IP 地址,host 字段的值以及發包內容等
    • 工具有 wireshark,網站的話微步在線等威脅情報中心

    2.文件上傳和命令執行,有看過相關日志嗎

    • 文件:可能在系統有上傳功能或者有文本編輯器,看一下是否有 base64 加密或者 url 加密,解碼驗證一下是否有惡意代碼
    • 系統日志:有沒有 web 容器做了一些危險行為,比如 bash 反彈 shell 等
    • 網絡應用日志:有沒有異常的網站文件,類似 webshell 等,就有可能是命令執行

    3.windows日志分析工具

    Log Parser、LogParser Lizard、Event Log Explorer

    4.Linux日志分析技巧命令

    • 定位有多少IP在爆破主機的root帳號:
    grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    
    • 定位有哪些IP在爆破:
    grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
    
    • 爆破用戶名字典是什么?
    grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print"$1\n";}'|uniq -c|sort -nr
    
    • 登錄成功的IP有哪些
    grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
    登錄成功的日期、用戶名、IP:
    grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
    
    • 增加一個用戶kali日志:
    Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
    Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001,
    home=/home/kali
    , shell=/bin/bash
    Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
    #grep "useradd" /var/log/secure
    
    • 刪除用戶kali日志:
    Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
    Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
    Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
    # grep "userdel" /var/log/secure
    
    • su切換用戶:
    Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by
    root(uid=0)
    sudo授權執行:
    sudo -l
    Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ;
    COMMAND=/sbin/shutdown -r now
    

    5.給你一個比較大的日志,應該如何分析

    • 攻擊規則匹配,通過正則匹配日志中的攻擊請求
    • 統計方法,統計請求出現次數,次數少于同類請求平均次數則為異常請求
    • 白名單模式,為正常請求建立白名單,不在名單范圍內則為異常請求
    • HMM 模型,類似于白名單,不同點在于可對正常請求自動化建立模型,從而通過正常模型找出不匹配者則為異常請求
    • 借助日志分析工具
    如 LogForensics 騰訊實驗室 https://security.tencent.com/index.php/opensource/detail/15
    

    6.Windows在應急響應中的安全日志以及對應場景

    • Windows和Linux的日志文件放在哪里
    • Windows 主要有以下三類日志記錄系統事件:應用程序日志、系統日志和安全日志

    系統日志:%SystemRoot%\System32\Winevt\Logs\System.evtx

    應用程序日志:%SystemRoot%\System32\Winevt\Logs\Application.evtx

    安全日志:%SystemRoot%\System32\Winevt\Logs\Security.evtx

    • Linux

    日志默認存放位置:/var/log/

    查看日志配置情況:more /etc/rsyslog.conf

    • 常見中間件的配置文件路徑
    • apache:/etc/httpd/conf
    • nginx:/etc/nginx
    • iis7:C:\Windows\System32\inetsrv\config\
    • 如何查看系統內存 shell
    • 文章匯總:link
    • 查殺內存馬:link
    • php、python、java內存馬分析:link
    • Java 內存馬排查
    https://www.freebuf.com/articles/web/274466.html
    

    如果我們通過檢測工具或者其他手段發現了一些內存webshell的痕跡,需要有一個排查的思路來進行跟蹤分析,也是根據各類型的原理,列出一個排查思路。

    • 如果是jsp注入,日志中排查可疑jsp的訪問請求。
    • 如果是代碼執行漏洞,排查中間件的error.log,查看是否有可疑的報錯,判斷注入時間和方法
    • 根據業務使用的組件排查是否可能存在java代碼執行漏洞以及是否存在過webshell,排查框架漏洞,反序列化漏洞。
    • 如果是servlet或者spring的controller類型,根據上報的webshell的url查找日志(日志可能被關閉,不一定有),根據url最早訪問時間確定被注入時間。
    • 如果是filter或者listener類型,可能會有較多的404但是帶有參數的請求,或者大量請求不同url但帶有相同的參數,或者頁面并不存在但返回200

    7.如何修改WEB端口?如果不能修改端口還有什么利用方法?

    • 修改 web 端口:修改中間件配置文件中的 web 服務端口即可
    • 不能修改的話可以使用端口映射,使用 nginx 反向代理也可以

    8.獲得文件讀取漏洞,通常會讀哪些文件,Linux和windows都談談

    • 通用

    找 Web 應用的配置文件,指不定有外聯數據庫

    找 Web 中間件的配置文件,指不定有 Tomcat 配置界面的用戶密碼

    找系統文件

    • linux
    • etc/passwd、etc/shadow直接讀密碼
    • /etc/hosts # 主機信息
    • /root/.bashrc # 環境變量
    • /root/.bash_history # 還有root外的其他用戶
    • /root/.viminfo # vim 信息
    • /root/.ssh/id_rsa # 拿私鑰直接ssh
    • /proc/xxxx/cmdline # 進程狀態枚舉 xxxx 可以為0000-9999 使用burpsuite
    • 數據庫 config 文件
    • web 日志 access.log, error.log
    • ssh 日志
    /root/.ssh/id_rsa
    /root/.ssh/id_rsa.pub
    /root/.ssh/authorized_keys
    /etc/ssh/sshd_config
    /var/log/secure
    /etc/sysconfig/network-scripts/ifcfg-eth0
    /etc/syscomfig/network-scripts/ifcfg-eth1
    
    • /var/lib/php/sess_PHPSESSID # 非常規問題 session 文件( 參考 平安科技的一道session包含http://www.jianshu.com/p/2c24ea34566b)
    • windows
    • C:\boot.ini //查看系統版本
    • C:\Windows\System32\inetsrv\MetaBase.xml //IIS 配置文件
    • C:\Windows\repair\sam //存儲系統初次安裝的密碼
    • C:\Program Files\mysql\my.ini //Mysql 配置
    • C:\Program Files\mysql\data\mysql\user.MY D //Mysql root
    • C:\Windows\php.ini //php 配置信息
    • C:\Windows\my.ini //Mysql 配置信息

    9.如何分析被代理出來的數據流

    分析數據包請求頭中的 xff、referer 等收集有用的信息
    https://www.freebuf.com/articles/web/245585.html
    

    10.windows端口進程間轉換

    • 端口->進程
    • netstat -ano | findstr “port”查看目前的網絡連接,定位可疑的 ESTABLISHED
    • 根據netstat 定位出的 pid,再通過tasklist命令進行進程定位 tasklist | findstr “PID”

    11.查看進程對應的程序位置

    任務管理器–選擇對應進程–右鍵打開文件位置運行輸入 wmic,cmd界面 輸入 process

    查看 Windows 服務所對應的端口

    %system%/system32/drivers/etc/services(一般 %system% 就是 C:\Windows)

    12.查看windows進程的方法

    • 查看進程的方法
    • 開始 – 運行 – 輸入msinfo32 命令,依次點擊 “軟件環境 – 正在運行任務” 就可以查看到進程的詳細信息,比如進程路徑、進程ID、文件創建日期以及啟動時間等
    • 打開D盾_web查殺工具,進程查看,關注沒有簽名信息的進程
    • 通過微軟官方提供的 Process Explorer 等工具進行排查
    • 查看可疑的進程及其子進程。可以通過觀察以下內容:
    • 沒有簽名驗證信息的進程
    • 沒有描述信息的進程
    • 進程的屬主
    • 進程的路徑是否合法
    • CPU 或內存資源占用長時間過高的進程

    13.你能說明文件上傳的原理嗎?

    • PHP:如果系統中存在可以上傳文件的功能點,就可以上傳后門腳本文件,通過一些方法繞過上傳限制,如果能訪問后門的的話,系統存在文件上傳漏洞,可以借助后門執行命令
    • Java:上傳 jsp 代碼
    • Asp/Aspx
    • Python:因為腳本需要譯后生成 pyc 字節碼文件,所以不存在文件上傳

    14.文件上傳攻擊特征?

    能夠上傳文件的接口,應用程序對用戶上傳文件類型不校驗或者校驗不嚴格可繞過,導致任意類型文件上傳,攻擊者可上傳 webshell 拿到服務器權限,在這個過程中攻擊者必然會上傳惡意腳本文件

    15.文件上傳加固方法?

    • 后端限制文件上傳白名單,頭像不允許上傳 svg
    • 上傳后文件隨機重命名,不要輸出保存文件位置
    • 圖片文件可以二次渲染,使用對象存儲 oss
    • 文件目錄取消執行權限,PHP 設置 basedir

    16.用過Nmap掃描工具嗎

    • nmap 掃描基礎命令
    • -sT TCP (全)連接掃描,準確但留下大量日志記錄
    • -sS TCP SYN (半)掃描,速度較快,不會留下日志
    • -sN null 掃描,標志位全為 0,不適用 Windows
    • -sF FIN 掃描,標志位 FIN=1,不適用 Windows
    • -O 查看目標主機系統版本
    • -sV 探測服務版本
    • -A 全面掃描

    17.你做過滲透測試的工作嗎?

    首先信息收集,收集子域名、Whois、C段、旁站、Web 系統指紋識別,然后測試 web 系統的漏洞

    18.暴力破解加固方法?

    • 添加強度較高的驗證碼,不易被破解
    • 修改密碼設置規則,提高用戶的密碼強度
    • 同一賬號登陸次數鎖定,生成鎖定日志
    • 定期排查弱口令

    19.Sql注入加固措施?

    • 對于輸入的字符進行過濾
    • 使用 PDO 預編譯語句處理

    20.一臺主機在內網進行橫向攻擊,你應該怎么做?

    • 確定攻擊來源,是不是員工內部誤操作,比如詢問運維是否有自動化輪訓腳本
    • 如果沒有,確定是攻擊,結合時間點,根據設備信息,看一下安全事件,進程,流量
    • 找到問題主機,開始應急響應流程:準備、檢測、遏制、根除、恢復、跟蹤,具體的操作要交給現場運維去處理

    21.你還用過其他態勢感知的產品嗎?

    ips,ids,hids,堡壘機等

    22.命令行工具用的什么比較多?

    xshell、xftp、finalshell

    23.你用過微步嗎?

    微步在線是一個威脅情報中心,可以通過 ip 或域名查詢其是不是惡意的,對于判斷惡意鏈接具有一定的參考性,他還有一個插件可以在頁面選中就能進行查詢,還是一個比較好用的工具

    24.什么是跨域,JSONP與CORS

    • 同源策略

    同源策略:域名、協議、端口均相同

    瀏覽器執行 JavaScript 腳本時,會檢查這個腳本屬于那個頁面,如果不是同源頁面,就不會被執行

    • 什么是跨域?

    跨域:指的是瀏覽器不能執行其它網站的腳本,它是由瀏覽器的同源策略造成的,是瀏覽器的安全限制!

    • JSONP跨域

    利用 js script 標簽中 src 屬性可以跨域的特性,使用 callback 參數的函數名來接收數據

    只支持 GET 請求,不支持 POST 等其它請求,也不支持復雜請求,只支持簡單請求

    • CORS跨域

    支持所有的請求,包含 GET、POST、OPTOIN、PUT、DELETE 等既支持復雜請求,也支持簡單請求

    JSONP 與 CORS 的使用目的相同,并且都需要服務端和客戶端同時支持,但 CORS 的功能更加強大

    • JSONP和CORS的優缺點
    • JSONP 的主要優勢在于對瀏覽器的支持較好;雖然目前主流瀏覽器都支持 CORS,但 IE9 及以下不支持 CORS
    • JSONP 只能用于獲取資源(即只讀,類似于 GET 請求);CORS 支持所有類型的 HTTP 請求,功能完善
    • JSONP 只會發一次請求;而對于復雜請求,CORS 會發兩次請求
    • 應用場景
    • 如果需要兼容IE低版本瀏覽器,無疑,JSONP
    • 如果需要對服務端資源進行操作,無疑,CORS
    • 其他情況的話,根據自己的對需求的分析來決定和使用

    25.http狀態與無連接

    • 無連接
    • 每一個訪問都是無連接,服務器挨個處理訪問隊列里的訪問,處理完一個就關閉連接,這事兒就完了,然后處理下一個新的
    • 無連接的含義是限制每次連接只處理一個請求服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接
    • 無狀態
    • 協議對于事務處理沒有記憶能力
    • 對同一個 url 請求沒有上下文關系
    • 每次的請求都是獨立的,它的執行情況和結果與前面的請求和之后的請求是無直接關系的,它不會受前面的請求應答情況直接影響,也不會直接影響后面的請求應答情況
    • 服務器中沒有保存客戶端的狀態,客戶端必須每次帶上自己的狀態去請求服務器

    26.什么是路由表

    在計算機網絡中,路由表(routing table)或稱路由擇域信息庫(RIB, Routing Information Base),是一個存儲在路由器或者聯網計算機中的電子表格(文件)或類數據庫路由表存儲著指向特定網絡地址的路徑(在有些情況下,還記錄有路徑的路由度量值)路由表中含有網絡周邊的拓撲信息路由表建立的主要目標是為了實現路由協議和靜態路由選擇

    • 每個路由器中都有一個路由表和 FIB(Forward Information Base) 表:路由表用來決策路由,FIB 用來轉發分組路由表中有三類路由:
    • 鏈路層協議發現的路由(即是直連路由)
    • 靜態路由
    • 動態路由協議 RIP、OSRF 發現的路由

    27.非sql數據庫

    Zookeeper,HBase、Redis、MongoDB、Couchbase、LevelDB

    28.常見OA系統

    • 28.PHP:通達OA、泛微 Eoffice
    • Java:泛微OA/云橋、致遠OA、藍凌OA、用友OA
    • ASP:啟萊OA

    29.橫向越權漏洞的修復

    • 橫向越權:橫向越權指的是攻擊者嘗試訪問與他擁有相同權限的用戶的資源
    • 縱向越權:縱向越權指的是一個低級別攻擊者嘗試訪問高級別用戶的資源
    • 對于縱向越權,我們可以通過設置用戶角色,為不同的角色提供不同的權限來避免
    • 為了防止橫向越權,我們可以使用緩存來進行輔助,當登錄成功或者進行操作時,我們在緩存中存儲一對由用戶名和一個唯一的數字組成的數據(token),然后返回放入的唯一數據在重置密碼時我們的參數不僅需要用戶名和密碼還需要前面生成的唯一數字,根據用戶名在緩存中取出對應的數字,如果取出的數字和參數中傳入的想等,則證明重置的當前用戶的密碼,否則不是,且不予以重置

    30.如何打擊黑灰產工具

    • 全面監控和快速響應(溯源):對黑灰進行長期跟進,了解黑灰產工具的傳播鏈條和路徑,第一時間捕獲活躍的黑灰產工具(建立特征詞監控,數據取樣、交叉分析)
    • 建立軟件指紋庫,增加風險識別能力
    • 建立黑灰產情報共享,最大化情報價值

    31.如何反爬

    • 后臺對訪問進行統計,如果單個 IP 訪問超過閾值,予以封鎖
    • 后臺對訪問進行統計,如果單個 session 訪問超過閾值,予以封鎖
    • 后臺對訪問進行統計,如果單個 userAgent 訪問超過閾值,予以封鎖
    • 以上的組合

    32.Linux下查找服務端口的命令

    • Linux下查找服務端口的命令?一句話查找80端口服務的命令?

    使用grep 命令 要使用 grep 命令在Linux 中查找指定服務的默認端口號,只需運行

    grep <port> /etc/services
    grep services /etc/services
    

    33.如何發現釣魚郵件

    • 釣魚郵件發現途徑如下:
    • 郵件系統異常登錄告警、員工上報、異常行為告警、郵件蜜餌告警
    • 推薦接入微步或奇安信的情報數據。對郵件內容出現的 URL 做掃描,可以發現大量的異常鏈接
    • 釣魚郵件處置
    https://www.freebuf.com/articles/es/264037.html
    
    • 屏蔽辦公區域對釣魚郵件內容涉及站點、URL 訪問

    1.根據辦公環境實際情況可以在上網行為管理、路由器、交換機上進行屏蔽

    2.郵件內容涉及域名、IP 均都應該進行屏蔽

    3.對訪問釣魚網站的內網 IP 進行記錄,以便后續排查溯源可能的后果

    • 屏蔽釣魚郵件

    1.屏蔽釣魚郵件來源郵箱域名

    2.屏蔽釣魚郵件來源 IP

    3.有條件的可以根據郵件內容進行屏蔽

    4.刪除還在郵件服務器未被客戶端收取釣魚郵件

    • 處理接收到釣魚郵件的用戶

    1.根據釣魚郵件發件人進行日志回溯

    2.此處除了需要排查有多少人接收到釣魚郵件之外,還需要排查是否公司通訊錄泄露。采用 TOP500 姓氏撞庫發送釣魚郵件的攻擊方式相對后續防護較為簡單。如果發現是使用公司通訊錄順序則需要根據通訊錄的離職情況及新加入員工排查通訊錄泄露時間。畢竟有針對性的社工庫攻擊威力要比 TOP100、TOP500 大很多

    3.通知已接收釣魚郵件的用戶進行處理

    4.刪除釣魚郵件

    5.系統改密

    6.全盤掃毒

    • 后續:溯源、員工培訓提升安全意識

    34.如何查看區分是掃描流量和手動流量

    (掃描數據量大,請求有規律,手動掃描間隔較少)

    • 遇到.exe文件如何處理?

    首先看它的來源和去向,然后可以下載但不運行,放入微步沙箱中,看是否有后門,若有后門,就用 IDA 反匯編得到惡意攻擊者的有用信息,再進一步描繪出攻擊者畫像進行溯源

    35.Linux 的 Selinux 是什么?如何設置 Selinux?

    SELinux 是一種安全子系統,它能控制程序只能訪問特定文件使用 setup 工具進入圖形化關閉搜索或者修改/etc/sysconfig/selinux 文件

    SELINUX=disabled
    

    防火墻打開使用 service iptables start 或則/etc/init.d/iptables start

    36.iptables 工作在 TCP/IP 模型中的哪層?

    • 網絡層
    • 日志分析ELK的使用和分析
    https://www.zhihu.com/question/21427267
    Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
    Logstash是一個完全開源的工具,他可以對你的日志進行收集、過濾,并將其存儲供以后使用(如,搜索)。
    Kibana 也是一個開源和免費的工具,它Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
    

    舉例-阿里規范 用戶歷史命令記錄

    缺點:安全性不夠。使用x-pack實現安全認證及權限管理功能

    37.awk sed的使用

    • Log4j
    • log4j 是 javaweb 的日志組件,用來記錄 web 日志
    • 去指定下載文件的 url 在搜索框或者搜索的 url 里面,加上 ${jndi:ldap://127.0.0.1/test} ,log4j 會對這串代碼進行表達式解析,給 lookup 傳遞一個惡意的參數指定,參數指的是比如 ldap 不存在的資源 $ 是會被直接執行的。后面再去指定下載文件的 url,去下載我們的惡意文件。比如是 x.class 下載完成后,并且會執行代碼塊
    • 修復:升級 Log4j 到最新版本,根據業務判斷是否關閉 lookup

    C. 入侵檢測&防御

    1.WAF產品如何來攔截攻擊?

    • Waf 產品有三種
    • 云 Waf

    用戶不需要在自己的網絡中安裝軟件程序或部署硬件設備,就可以對網站實施安全防護,它的主要實現方式是利用 DNS 技術,通過移交域名解析權來實現安全防護。用戶的請求首先發送到云端節點進行檢測,如存在異常請求則進行攔截否則將請求轉發至真實服務器

    • Web 防護軟件

    安裝在需要防護的服務器上,實現方式通常是 Waf 監聽端口或以 Web 容器擴展方式進行請求檢測和阻斷

    • 硬件 Web 防火墻

    Waf 串行部署在 Web 服務器前端,用于檢測、阻斷異常流量。常規硬件 Waf 的實現方式是通過代理技術代理來自外部的流量

    原理都相同,通過部署在 Web 服務器前方串行接入來將 Web 流量牽引到 WAF 設備中進行清洗或者攔截,最終只把正常用戶的請求轉發給服務器

    當前市場上 Waf 產品核心的防護機制是“規則”,每一個請求、會話,經過抓包,“開包檢查”,每一項規則都會檢查到,一旦檢查不通過,就會被認為是非法訪問,拒絕處理

    2.WAF有哪些防護方式?

    • Web基礎防護

    可防范常規的 web 應用攻擊,如 SQL 注入攻擊、XSS 跨站攻擊等,可檢測 webshell,檢查 HTTP 上傳通道中的網頁木馬,打開開關即實時生效

    • CC 攻擊防護

    可根據 IP、Cookie 或者 Referer 字段名設置靈活的限速策略,有效緩解 CC 攻擊

    • 精準訪問防護

    對常見 HTTP 字段進行條件組合, 支持定制化防護策略如CSRF防護,通過自定義規則的配置,更精準的識別惡意偽造請求、保護網站敏感信息、提高防護精準性

    • IP 黑白名單

    添加終攔截與始終放行的黑白名單 IP,增加防御準確性

    • 地理位置訪問控制

    添加地理位置訪問控制規則,針對來源 IP 進行自定義訪問控制

    • 網頁防篡改

    對網站的靜態網頁進行緩存配置,當用戶訪問時返回給用戶緩存的正常頁面,并隨機檢測網頁是否被篡改

    • 網站反爬蟲

    動態分析網站業務模型,結合人機識別技術和數據風控手段,精準識別爬蟲行為

    • 誤報屏蔽

    針對特定請求忽略某些攻擊檢測規則,用于處理誤報事件

    • 隱私屏蔽

    隱私信息屏蔽,避免用戶的密碼等信息出現在事件日志中

    • 防敏感信息泄露

    防止在頁面中泄露用戶的敏感信息,例如:用戶的身份證號碼、手機號碼、電子郵箱等

    3.不安全的第三方組件的漏洞如何做前置規避?

    第三方組件缺陷又被歸結為供應鏈安全問題,供應鏈安全需要多方面考慮。沒有萬能方案,但是組織可以用分層防御的組合來保護供應鏈

    • 安全戰略評估

    要評估風險與合規性,需要針對業務挑戰、需求和目標評估現有的安全治理框架——包括數據隱私、第三方風險和IT法規合規需求及差距。安全風險量化、安全開發、法規和標準合規性以及安全教育和培訓是關鍵

    • 事件響應計劃與編排

    提前為入侵、關閉或中斷做好準備,并擁有穩健的事件響應計劃很重要。通過實踐、測試和易執行的響應計劃和補救措施,防止損失

    https://www.freebuf.com/articles/neopoints/261681.html
    

    4.如果現在要你寫一個檢測命令注入的腳本?

    你會怎么寫,有哪些要注意的地方,如果別人的腳本檢測出來了你的腳本沒檢測出來你覺的你的腳本會存在什么問題,腳本檢測過程中如果沒有回顯你會怎么做

    二、溯源

    1.基本步驟

    • 攻擊源捕獲
    • 安全設備報警,如掃描IP、威脅阻斷、病毒木馬、入侵事件等
    • 日志與流量分析,異常的通訊流量、攻擊源與攻擊目標等
    • 服務器資源異常,異常的文件、賬號、進程、端口,啟動項、計劃任務和服務等
    • 郵件釣魚,獲取惡意文件樣本、釣魚網站 URL 等
    • 蜜罐系統,獲取攻擊者 ID、電腦信息、瀏覽器指紋、行為、意圖的相關信息
    • 溯源反制手段
    • IP 定位技術

    根據IP定位物理地址–代理 IP

    溯源案例:通過 IP 端口掃描,反向滲透服務器進行分析,最終定位到攻擊者相關信息

    • ID 追蹤術

    ID 追蹤術,搜索引擎、社交平臺、技術論壇、社工庫匹配

    溯源案例:利用 ID 從技術論壇追溯郵箱,繼續通過郵箱反追蹤真實姓名,通過姓名找到相關簡歷信息

    • 網站 url

    域名 Whois 查詢–注冊人姓名、地址、電話和郵箱 --域名隱私保護

    溯源案例:通過攻擊 IP 歷史解析記錄/域名,對域名注冊信息進行溯源分析

    • 惡意樣本分析

    提取樣本特征、用戶名、ID、郵箱、C2 服務器等信息–同源分析

    溯源案例:樣本分析過程中,發現攻擊者的個人 ID 和 QQ,成功定位到攻擊者

    • 社交賬號

    基于 JSONP 跨域,獲取攻擊者的主機信息、瀏覽器信息、真實 IP 及社交信息等

    利用條件:可以找到相關社交網站的 jsonp 接口泄露敏感信息,相關網站登錄未注銷

    • 攻擊者畫像
    • 攻擊路徑

    攻擊目的:拿到權限、竊取數據、獲取利益、DDOS 等

    網絡代理:代理 IP、跳板機、C2 服務器等

    攻擊手法:魚叉式郵件釣魚、Web滲透、水坑攻擊、近源滲透、社會工程等

    • 攻擊者身份畫像

    虛擬身份:ID、昵稱、網名

    真實身份:姓名、物理位置

    聯系方式:手機號、qq/微信、郵箱

    組織情況:單位名稱、職位信息

    • 技巧

    域名、ip 反查目標個人信息

    支付寶轉賬,確定目標姓氏

    淘寶找回密碼,確定目標名字

    企業微信手機號查公司名稱

    REG007 查注冊應用、網站

    程序 PDB 信息泄露

    2.主動防御

    https://www.freebuf.com/articles/web/245585.html
    瀏覽器指紋技術
    網絡欺騙技術,蜜罐蜜網
    

    3.流量溯源

    • 可利用流量工具 wireshark 進行溯源:
    • 查看 eval、 z0、 shell whoami 等關鍵字,查看出現次數過多的時候, 需要查看是哪個頁面發起的請求,有可能是 webshell
    • 通過 WireShark 工具快速搜索關鍵字,定位到異常流量包
    • 找出異常 IP 和所上傳的內容,查看是否為 webshell
    • 如何定位到攻擊IP:
    • 首先通過選擇 - 統計 - 對話查看流量的走向情況, 定位可疑的 IP 地址
    • 根據定位到的 IP 地址,嘗試對上傳的 webshell 進行定位
    ip.addr == ip && http matches
    "uploadllevallselectlxp_cmdshell" && http.request.method == "POST"
    
    • 查找到 webshell 后嘗試溯源漏洞位置
    http.request.uri contains "webshell.php"
    定位到最開始 webshell 執行或上傳的時候
    
    • 根據最開始的 HTTP 上傳包或者其他漏洞特征定位漏洞類型

    4.wireshark

    • wireshark 簡單的過濾規則
    • 過濾ip:
    過濾源 ip 地址:ip.src1.1.1.1
    目的 ip 地址:ip.dst1.1.1.1
    
    • 過濾端口:
    過濾80端口:tcp.port == 80
    源端口:tcp.srcport == 80
    目的端:tcp.dstport == 80
    
    • 協議過濾:直接輸入協議名即可,如 http 協議 http
    • http 模式過濾:過濾 get/post 包 httprequest.mothod == “GET/POST”

    5.常用取證工具

    Wireshark、xplico、 Volatility、 FastlR Collector、Autopsy、 Dumplt、 FTK Imager、Foremost、Scalpel、 Bulk_ exetractor 等

    優秀文章
    https://www.anquanke.com/post/id/260888
    
    1. 其他

    對蜜罐的了解-腦圖-圖源網絡侵刪

    webshell端口轉發
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    記得他當時是在本地模擬的一個實戰場景來做的這個測試實驗(繞過安全防護進行端口轉發)。
    隧道與端口轉發
    2021-11-18 08:26:13
    如果想獲得課程報名資格,請添加文末小助手微信咨詢。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協議。情況1:目標禁止出站ip如果目標主機設置了嚴格的策略,防火墻只允許目標內網機器主動連接公網指定的ip。這樣的話,沒法反彈shell。情況2:禁止出站端口Linux系統使用Linux系統自帶命令探測出網端口
    Windows如果RDP連接上去,可以使用圖形化工具(如御劍)。如果是webshell,可以使用fscan、nmap。重命名Dir,方便后續操作。將客戶端配置刪除?服務端監聽地址?服務端儀表板的端口。log_level記錄的日志級別。執行命令等待frpc連接./frps?#是該條規則在服務端開放的端口號,待會兒用proxyfier連的端口
    內網滲透合集(三)
    2023-01-28 09:44:16
    jsp端口轉發滲透過程中,由于windows和linux的差別以及運行語言環境的限制導致端口轉發經常出現問題。于是自己寫了個簡單的JSP的端口轉發腳本。仿造 LCX的功能,具有正向、反向、監聽三種模式。對于目前數量眾多的JAVA WEB網站來說,可以比較方便的實現端口轉發。在這里發布出來,小伙伴們使用過程中,如果發現什么bug歡迎提交哈~參數說明/KPortTran.jsp?lip = local ip / 本地ip //一般為內網主機IP. lp = local port / 本地端口 //一般為內網主機端口
    起因,由于前幾天拿了一個菠菜站的webshell,但是只有iis權限,執行無法創建用戶等操作,更無法對整個服務器進行控制了,于是此時便需要提權了,對于一個剛剛入門的小白來說,此刻真正意識到了提權的重要性,于是便開始學習提取相關知識,以拿下該菠菜的站點。提權前的準備工作1,通常來說,不同的腳本所處的權限是不一樣的。
    提權需要的東西有點兒多,筆記里出現的工具不建議在百度上下載。如果支持aspx,可以上傳aspx,通過aspx大馬,直接調用默認cmd掃描掃出了其他人的大馬可以嘗試用?
    內網滲透流程 一、內網信息收集 二、內網滲透方法 內網入侵是在攻擊者獲取目標webshell之后的一個后滲透的過程。 內網滲透流程 內網滲透大致可以分為兩部分一部分是內網信息收集,另一部分為內網入侵方法。 一、內網信息收集
    服務器的相關信息(真實ip,系統類型,版本,開放端口,WAF等) 網站指紋識別(包括,cms,cdn,證書等),dns記錄 whois信息,姓名,備案,郵箱,電話反查(郵箱丟社工庫,社工準備等) 子域名收集,旁站,C段等 google hacking針對化搜索,pdf文件,中間件版本,弱口令掃描等 掃描網站目錄結構,爆后臺,網站banner,測試文件,備份等敏感文件泄漏等 傳輸協議,通用漏洞,ex
    反彈Shell大全與原理
    2023-04-25 10:15:00
    reverse shell與telnet,ssh等標準shell對應,本質上是網絡概念的客戶端與服務端的角色反轉。對方主機在局域網內,從外網無法直接訪問。對方主機上存在WAF,對主動連接發來的請求數據檢測嚴格,而對向外發出的請求不進行檢測或檢測較少。對方由于防火墻等限制,對方機器只能發送請求,不能接收請求。在滲透測試過程中,得到webshell后一般我們會反彈shell。反彈shell原理A主機開啟9090端口的tcp服務
    內網滲透合集(二)
    2023-01-28 09:35:05
    接下來在內網肉雞再次執行:htran -p -slave 公網肉雞IP 119 127.0.0.1 8009?linux也有實現,感覺使用方法更加明朗,且與windows下的兼容 在此推薦下。把windows的小做修改下,重新編譯了下,源程序比較簡單就不上傳工程文件了,直接給個C文件,自己編譯下即可。linux下實現大同小異,只不過用的fork實現子線程。此時在滲透測試端192.168.10.50可看到通道連接成功,效果如圖4。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类