python中oxf2是什么_0x02-StartingPoint-Oopsie
Help Desk
經過第一篇文章,我思考了一下,已經存在太多的 walkthrough,不應該再去寫一樣的文章,而是應該著重寫思路。接下來的文章,會著重寫在什么情況下,應該做些什么,應該注意哪些信息,應該如何采取下一步操作。這樣,才能讓舉一反三的過程更加順利,和大家一起成長的速度才能更快。
HTB-Oopsie
這是一個 Web Application and Privilege Escalation 的練習。
Nmap
第一步不變, nmap 一下。
這些天又讀了很多文章,除了 nmap,還有很多優秀的掃描工具,如 masscan, unicorn scan, 值得一看
Nmap 結果:
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-17 04:51 EDT
Nmap scan report for 10.10.10.28 (10.10.10.28)
Host is up (0.23s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 61:e4:3f:d4:1e:e2:b2:f1:0d:3c:ed:36:28:36:67:c7 (RSA)
| 256 24:1d:a4:17:d4:e3:2a:9c:90:5c:30:58:8f:60:77:8d (ECDSA)
|_ 256 78:03:0e:b4:a1:af:e5:c2:f9:8d:29:05:3e:29:c9:f2 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Welcome
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/
.
Nmap done: 1 IP address (1 host up) scanned in 16.61 seconds
22 和80 開放.
SSH 服務還是挺可靠的,意思就是很難有可發掘的漏洞,要么就去爆破登錄密碼,但是基本很難成功。
目標肯定要落在 80 端口的網站上面。
當遇到一個網站,該做些什么?
查看 /robots.txt是否存在,如果存在,網站的部分目錄結構一目了然。
一定要看網頁源碼,在 firefox 中可以按 CTRL + U。尋找任何可可能泄露信息的地方,注釋,以及 js代碼。
著重瀏覽一下 js代碼,他會告訴你這個網頁想要做什么,這些很可能是線索。
如果源碼中沒有有用的信息,該去點點網頁上的按鈕了,或者改變一下地址欄,觸發一些報錯,看網站是否有合規的錯誤處理,如果沒有,那么網站后端的技術棧信息,很可能就泄露了。
最后當然還要讀一下網頁上的文字,很可能發現一些線索,可以讓我們能進行到下一步。
擴展閱讀
我列舉了一些在 Web App Pentest 中需要注意的事情,下面這篇文章講解更加詳細,值得一看。
在這個練習中,通過做上述的第四步,就可以發現,網頁聲稱需要登陸來獲取相關服務。
在這里插入圖片描述
線索:網頁說需要登錄,但是找不到任何登錄入口
思路:登錄入口隱藏在網站某個目錄,沒有公開
操作:使用諸如 dirbuster,gobuster,dirb,Burp Suite這些 WebApp分析爆破工具,找到隱藏的網站目錄。這里推薦 dirbuster,運行較快,也較精準,可以遞歸搜索,能生成報告,并且 GUI 支持直接在瀏覽器打開目標鏈接
在這里插入圖片描述
在這里插入圖片描述
很快就找到了 /uploads,/cdn-cgi/login,這些文件夾,相信這個登錄頁面肯定就在 /cdn-cgi/login 這個目錄里。
在這里插入圖片描述
在 Results 一欄中可以看到精確的路徑以及狀態碼,這個 index.php,是可以訪問的。
直接右鍵到瀏覽器打開。
在這里插入圖片描述
到了這里,又是一個頁面,我又重復了上面5個操作,但是什么信息都沒找到。結果這個練習和第一個是相關聯的,第一個練習中獲取的 admin 的密碼,在這里依舊可以用。
登錄信息是,admin,MEGACORP_4dm1n!!。
在這里插入圖片描述
源碼沒什么,點上面的按鈕,頁面上也沒什么內容,點上面的按鈕,到 Uploads 的時候,被告知權限不夠。
在這里插入圖片描述
我是 Admin,還有個 super admin。
線索:網站有 super admin 身份,現有的賬號登錄上去是 admin
思路:表單登錄,需要檢查一下登錄請求,找到能判斷身份的參數
操作:Burp Suie,截取請求,先找到判斷身份的參數
賬戶信息是在 Account 一欄里面,點擊一下,截取請求。
在這里插入圖片描述
請求里面有一個參數 id,并且帶上了 cookie,網頁給我們返回了當前用戶的 Access ID 和 Name。
在這里插入圖片描述
在這里插入圖片描述
刷新一下 Uploads 頁面,請求的時候沒有參數 id,而是帶上了標識用戶身份的 cookie 信息。
線索:服務端判斷身份的參數是 id,服務端根據 id 返回對應的 user 和 role,存入 cookie;當要訪問 Uploads 頁面的時候,帶上這個 cookie,就能判斷是否是 super admin
思路:如果能不斷嘗不同的 id 值,是不是可以試出 super admin 的 id
操作:Burp Suite Intruder 不斷使用順序 id 值 (1-500)去請求,看返回結果是否會有 super admin
小貼士:
Intruder 工作過程中,點擊 Length 將返回結果長度按降序排列,如果有明顯大于其他長度的結果,可能就已經命中目標
在這里插入圖片描述
成功獲取到 super admin 的 Access ID。
線索:獲得 super admin 的 Access ID
思路:使用該 Access ID 訪問 Uploads 頁面
操作:截取對于 Uploads 目錄的訪問請求,將請求中的 user 改為 86575
在這里插入圖片描述
在這里插入圖片描述
成功進入 Uploads 頁面。
線索:因為是 super admin,可以上傳任意文件(應該不會有 super super admin了)
思路:獲取目標機器控制的方式,第一步是設法得到一個 shell;網站后端是 php,可以上傳一個包含 php reverse shell 的文件,直接在瀏覽器訪問,代碼就可以成功被執行;當然要注意,要考慮目標機器有 AV 的可能,代碼中不要出現類似 pwn 這樣的敏感詞,會被系統攔截
操作:上傳 Kali 自帶的 php reverse shell,修改文件名,然后在瀏覽器訪問執行
擴展閱讀
從哪里找 php reverse shell?
/usr/share/webshells/php/php-reverse-shell.php
在這里插入圖片描述
修改 IP 和 PORT,具體操作見視頻。
上傳的時候,同樣要截取請求,用 super admin 身份上傳才能成功。
在這里插入圖片描述
線索:reverse shell 文件已經上傳,需要找到路徑執行
思路:記得用 dirbuster 搜索登錄入口的時候,有一個 /uploads 目錄,上傳的文件應該都存放在這里
操作:本地偵聽代碼中設定的端口號,然后瀏覽器訪問 10.10.10.28/uploads/image-processing.php
在這里插入圖片描述
當獲得了一個 shell,進入了目標機器,該做些什么?
查看用戶信息 - id
查看當前目錄里的文件 - ls -al
注意敏感文件和目錄 - .bashrc .ssh .config .cache
查看用戶當前 shell - echo $SHELL 如果沒有輸出,需要生成一個可交互 shell
查看 bash 是否存在 - which bash
查看 python 是否存在 - which python which python3
生成交互 shell - SHELL=/bin/bash script -q /dev/null python3 -c 'import pty;pty.spawn("/bin/bash")'
查看網站根目錄,查找配置文件包含的敏感信息 - /var/www/html
查看臨時文件夾 - /tmp
如果有用戶的登錄密碼,列舉出用戶可以使用 sudo 執行的命令 - sudo -l
擴展閱讀
這篇文章將了 script 命令的作用,看完就能理解為什么用它生成交互 shell
Script Command
在這里插入圖片描述
線索:在網站目錄下找到了另一個登錄信息
思路:因為是 mysql_conn,可以登錄數數據庫,但是登錄了數據庫沒什么可以干的,破壞數據不能達到控制目標的目的;還可以試一下用 ssh 登錄
操作:用登錄信息嘗試 ssh 到服務器
在這里插入圖片描述
成功登錄。
上面提到了進入了目標機器之后要做的事情,這里依舊要做。
在這里插入圖片描述
線索:id 命令之后發現用戶在一個特別的組里 bugtracker
思路:添加用戶到某個特定的組,是為了讓用戶能有執行某些命令的權限,通常這些程序或這命令的名字,會跟組名相同(例如virtualbox 會將用戶添加到 virtualbox 組中)
查找一下系統中跟組名相同的文件
在這里插入圖片描述
當找到一個敏感文件,該做些什么?
查看文件詳細信息,設置了 setuid/setgui 權限并且擁有者是 root 是最希望看到的結果 - ls -al
如果是可執行文件,運行,并嘗試多種輸入,盡可能觸發錯誤,能收集更多信息
在這里插入圖片描述
線索:程序設置了 setuid/setguid 的特殊權限
思路:如果程序可能被串改,運行自定義的腳本,就可以提權得到 root shell
操作:先運行一下程序,觀察程序行為
擴展閱讀
在這里插入圖片描述
線索:觸發錯誤之后看到程序其實是調用系統 cat 命令,到根目錄下讀取相應文件
思路:構造一個自定義的 cat 可執行文件,內容就是生成一個 bash shell,然后想辦法讓 bugtracker 調用自定義的 cat 即可
操作:自定義一個 cat 可執行文件,將其所在目錄添加到 $PATH 環境變量,然后再次執行 bugtracker
在這里插入圖片描述
I'm in :D
總結
以上是生活随笔為你收集整理的python中oxf2是什么_0x02-StartingPoint-Oopsie的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux设置历史命令保留数目限制,li
- 下一篇: 层次聚类python实现_Python机