---
# System prepended metadata

title: 核心檢查

---

# 核心檢查
1. 確認資訊系統名稱 IP URL
2.	確認網路環境(模擬測試應該都沒有)
3.	NMAP SCAN
    *	Port Scan
    ```bash
    nmap -A <ip> -oN portscan.txt
    ```
    *   TCP Syn Scan
    ```bash
    nmap -sS <ip> -oN tcpsynscan.txt
    ```
    *	UDP Scan
    ```bash
    nmap -sU <ip> -oN udpscan.txt
    ```
4.	應用程式測試結果:
    *	電子郵件服務套件
        -    SMTP
        可確認如果再Port 25有可能為未加密，可改為Port 465 SMTPS
        -    POP3
        可確認如果再Port 110有可能為未加密，可改為Port 995
    *	檔案傳輸服務
        -   FTP
        可確認anonymous登入看看
        -   NETBIOS
        -	NFS
        可利用`showmount`確認NFS狀況(有可能可以直接mount)
    *	遠端連線服務套件
        -	SSH
        利用nmap確認是否有weak cipher，如NETBIOS有User可利用hydra確認弱密碼
        -	Telnet
        如有掃到建議關閉此服務，因明文傳輸不安全
        -	VNC
        如果nmap的port scan有找到vnc(通常port 5900,5901)可以再進階掃描，有時可以找到版本過舊的RCE漏洞，指令為:
        ```bash
        nmap -sC “vnc*” -p5900 <target_IP>
        ```

        -	RDP
        如果nmap的port scan有找到vnc(通常port 5900,5901)可以再進階掃描，有時可以找到版本過舊的RCE漏洞，指令為:
        ```bash
        nmap -sC “rdp*” -p3389 <target_IP>
        ```

    *	網路服務套件
        -	DNS
        如果nmap的port scan有找到dns(通常port 53)可以再進階掃描，有時可以找到版本過舊的RCE漏洞，指令為:
        ```bash
        nmap -sC “dns*” –p53 <target_IP>
        ```
        -	PROXY
        -	SNMP
        snmpwalker(待補)
    *	其他
        -	Firewall
        確認版本是否過舊，有無現成的exploit code可使用
        -	IDS/IPS
        -	Database
        是否為Default Password、Weak Password
        -	LDAP
        -	SMB
        -	LPD
        -	IPP
        -	Jetdirect
        -	RSTP
        是否有做限制，如沒有可以使用VLC直接串流
    
5. 	網頁應用程式設定
    可先使用ZAP掃描(但是會亂塞資料，Real world不建議)，以及path traversal
    *   設定管理網站
        -   網站應用程式設定
        -   網站檔案爬行
        沒時間用dirb，有時間用gobuster(可指定較大的字典檔案)
        ```bash
        dirb <TARGET_URL>
        ```
        ```bash
        gobuster dir -u <TARGET_URL> -w <worldlist> -x <html,php,txt>
        ```
        -   後端管理介面
        path traversal後看是否有admin、manager類似的介面，如果有可以看是否有現成的exploit code可以bypass authentication，或是使用hydra來試試看弱密碼
        -   HTTP協定
        看瀏覽器上的鎖頭
    *   使用者認證
        -   機敏資料加密傳送
        有些SSL/TLS版本有問題，可以檢查是否有較大的漏洞，例如heartbleed
        ```bash
        nmap -p443 -sC ssl-heartbleed <TARGET_IP>
        ```
        -   使用者帳號列舉測試
        指令為:
        ```bash
        hydra -L <USER_WORLDLIST> -p <PASSWORD> <TARGET_URL> http-post-form "<LOGIN_PAGE>:<PARTTERN>:<ERROR_MSG>"
        ```
        -   Cookie屬性測試
        有兩項會比較重要的http-only、secure這兩個須注意(devtools，F12)  
        http-only:會阻止JS Script訪問cookie，可減少XSS攻擊  
        Secure:確保cookie只能在安全傳輸協議進行  
        SameSite:限制XSS傳輸，通常會使用Lax or Strict當值，但較少使用  
        學校自行開發網站:  
        ![](https://hackmd.io/_uploads/HJOjUEn62.png)
        黑快馬(rpage):  
        ![](https://hackmd.io/_uploads/H1YlPE3Th.png)
        github:  
        ![](https://hackmd.io/_uploads/Syumw43an.png)
        -   Session資料更新測試
        每次登入看Session是否有更新，可以用devtools來確認
        -   Session變數傳遞測試
        與cookie相同，session傳遞攻擊大致有兩種  
        session fixation:先取得一組合法的session，再誘騙使用者用到攻擊者的session，通常此攻會搭配xss來做攻擊，每次登入session id須更新，設定secure header...etc  
        session hijeck:使用https流量
        -   CSRF 測試
        如果ZAP掃描到沒有CSRF TOKEN，可以試試看用其他人的Session來去改資料看看，攻擊通常會配合DOM XSS。
    *   使用者授權
        -   目錄跨越測試
        LFI測試，可使用LFIMAP
        -   網站授權機制測試
        -   權限控管機制測試
    *   邏輯漏洞
        -   網站功能測試
        -   網站功能設計缺失測試
        -   附件上傳測試
        如果有上傳檔案有限制檔案類型，可先改附檔名，如果不行可以改MAGIC NUMBER
    *   輸入驗證
        -   XSS
        如果ZAP掃描到可先使用簡單的`<script> alert(1) </script>`，如果不行可參考:
        https://cheatsheetseries.owasp.org/cheatsheets/XSS_Filter_Evasion_Cheat_Sheet.html
        -   SQL Injection
        如果ZAP掃描到後可使用SQLMAP去做驗證，操作教學:
        https://tryhackme.com/room/sqlmap
        -   XML Injection
        XXE會導致RCE、SSRF，通常可以使用wpscan尋找漏洞，然後用現成exploit code(例如CVE-2021-29447)
        -   SSL Injection
        
        -   XPath Injection
        XPath的繞過認證，與SQL Injection很像，但現在應該很少用了，一樣是用ZAP確認即可
        -   Code Injection
        通常確認用nikto確認以及application version確認，沒有就先算了
        -   OS Commandind
        -   Forge HTTP
    *   Web Service
        -   WSDL
        -   XML架構測試
        -   XML內容測試
        -   XML參數傳遞測試
    *   API
        -   API弱點測試
        
