日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

[系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法

發布時間:2024/6/1 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

您可能之前看到過我寫的類似文章,為什么還要重復撰寫呢?只是想更好地幫助初學者了解病毒逆向分析和系統安全,更加成體系且不破壞之前的系列。因此,我重新開設了這個專欄,準備系統整理和深入學習系統安全、逆向分析和惡意代碼檢測,“系統安全”系列文章會更加聚焦,更加系統,更加深入,也是作者的慢慢成長史。換專業確實挺難的,逆向分析也是塊硬骨頭,但我也試試,看看自己未來四年究竟能將它學到什么程度,漫漫長征路,偏向虎山行。享受過程,一起加油~

前文帶領大家了解Metasploit技術,涉及后滲透相關的技術,包括信息收集、權限提權、移植漏洞模塊和后門。這篇文章詳細講解Powershell基礎入門知識,包括常見的用法,涉及基礎概念、管道和重定向、執行外部命令、別名用法、變量定義等。Powershell被廣泛應用于安全領域,甚至成為每一位Web安全必須掌握的技術。本文參考了Bilibili的Hack學習老師的課程,同時也結合了作者之前的編程經驗進行講解。作者作為網絡安全的小白,分享一些自學基礎教程給大家,希望你們喜歡。同時,這些大佬是真的值得我們去學習,獻上小弟的膝蓋~fighting!

  • 只有更深入的了解PowerShell基礎及用法,才能更好地檢測惡意代碼

文章目錄

  • 一.Powershell初識
    • 1.基礎概念
    • 2.為什么強大?
    • 3.控制臺和快捷鍵
    • 4.數學運算
  • 二.Powershell管道和重定向
    • 1.管道
    • 2.重定向
  • 三.Powershell執行外部命令及命令集
    • 1.外部命令
    • 2.命令集
  • 四.Powershell別名使用
    • 1.別名基本用法
    • 2.自定義別名
  • 五.Powershell變量基礎
    • 1.基礎用法
    • 2.變量操作
    • 3.自動化變量
    • 4.環境變量
  • 六.Powershell調用腳本程序
    • 1.腳本文件執行策略
    • 2.調用腳本程序
  • 七.總結

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

作者的github資源:

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

從2019年7月開始,我來到了一個陌生的專業——網絡空間安全。初入安全領域,是非常痛苦和難受的,要學的東西太多、涉及面太廣,但好在自己通過分享100篇“網絡安全自學”系列文章,艱難前行著。感恩這一年相識、相知、相趣的安全大佬和朋友們,如果寫得不好或不足之處,還請大家海涵!

接下來我將開啟新的安全系列,叫“系統安全”,也是免費的100篇文章,作者將更加深入的去研究惡意樣本分析、逆向分析、內網滲透、網絡攻防實戰等,也將通過在線筆記和實踐操作的形式分享與博友們學習,希望能與您一起進步,加油~

  • 推薦前文:網絡安全自學篇系列-100篇

前文分析:

  • [系統安全] 一.什么是逆向分析、逆向分析基礎及經典掃雷游戲逆向
  • [系統安全] 二.如何學好逆向分析及呂布傳游戲逆向案例
  • [系統安全] 三.IDA Pro反匯編工具初識及逆向工程解密實戰
  • [系統安全] 四.OllyDbg動態分析工具基礎用法及Crakeme逆向
  • [系統安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大戰僵尸游戲
  • [系統安全] 六.逆向分析之條件語句和循環語句源碼還原及流程控制
  • [系統安全] 七.逆向分析之PE病毒原理、C++實現文件加解密及OllyDbg逆向
  • [系統安全] 八.Windows漏洞利用之CVE-2019-0708復現及藍屏攻擊
  • [系統安全] 九.Windows漏洞利用之MS08-067遠程代碼執行漏洞復現及深度提權
  • [系統安全] 十.Windows漏洞利用之SMBv3服務遠程代碼執行漏洞(CVE-2020-0796)復現
  • [系統安全] 十一.那些年的熊貓燒香及PE病毒行為機理分析
  • [系統安全] 十二.熊貓燒香病毒IDA和OD逆向分析(上)病毒初始化
  • [系統安全] 十三.熊貓燒香病毒IDA和OD逆向分析(中)病毒釋放機理
  • [系統安全] 十四.熊貓燒香病毒IDA和OD逆向分析–病毒釋放過程(下)
  • [系統安全] 十五.Chrome瀏覽器保留密碼功能滲透解析、藍屏漏洞及某音樂軟件漏洞復現
  • [系統安全] 十六.PE文件逆向基礎知識(PE解析、PE編輯工具和PE修改)
  • [系統安全] 十七.Windows PE病毒概念、分類及感染方式詳解
  • [系統安全] 十八.病毒攻防機理及WinRAR惡意劫持漏洞(腳本病毒、自啟動、定時關機、藍屏攻擊)
  • [系統安全] 十九.宏病毒之入門基礎、防御措施、自發郵件及APT28宏樣本分析
  • [系統安全] 二十.PE數字簽名之(上)什么是數字簽名及Signtool簽名工具詳解
  • [系統安全] 二十一.PE數字簽名之(中)Signcode、PEView、010Editor、Asn1View工具用法
  • [系統安全] 二十二.PE數字簽名之(下)微軟證書漏洞CVE-2020-0601復現及Windows驗證機制分析
  • [系統安全] 二十三.逆向分析之OllyDbg動態調試復習及TraceMe案例分析
  • [系統安全] 二十四.逆向分析之OllyDbg調試INT3斷點、反調試、硬件斷點與內存斷點
  • [系統安全] 二十五.WannaCry勒索病毒分析 (1)Python復現永恒之藍漏洞實現勒索加密
  • [系統安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及病毒解析
  • [系統安全] 二十七.WannaCry勒索病毒分析 (3)蠕蟲傳播機制解析及IDA和OD逆向
  • [系統安全] 二十八.WannaCry勒索病毒分析 (4)全網"最"詳細的蠕蟲傳播機制解讀
  • [系統安全] 二十九.深信服分享之外部威脅防護和勒索病毒對抗
  • [系統安全] 三十.CS逆向分析 (1)你的游戲子彈用完了嗎?Cheat Engine工具入門普及
  • [系統安全] 三十一.惡意代碼檢測(1)惡意代碼攻擊溯源及惡意樣本分析
  • [系統安全] 三十二.惡意代碼檢測(2)常用技術詳解及總結
  • [系統安全] 三十三.惡意代碼檢測(3)基于機器學習的惡意代碼檢測技術
  • [系統安全] 三十四.惡意代碼檢測(4)編寫代碼自動提取IAT表、字符串及時間戳溯源地區
  • [系統安全] 三十五.Procmon工具基本用法及文件進程、注冊表查看
  • [系統安全] 三十六.APT系列(1)APT攻擊溯源防御與常見APT組織的攻擊案例
  • [系統安全] 三十七.APT系列(2)遠控木馬詳解與防御及APT攻擊中的遠控
  • [系統安全] 三十八.APT系列(3)惡意代碼與APT攻擊中的武器(強推Seak老師)
  • [系統安全] 三十九.APT系列(4)APT攻防溯源普及和醫療數據安全防御總結
  • [系統安全] 四十.APT系列(5)APT組織常用WinRAR漏洞復現(CVE-2018-20250)及惡意軟件劫持
  • [系統安全] 四十一.APT系列(6)Python解析PE文件并獲取時間戳判斷來源區域
  • [系統安全] 四十二.APT系列(7)基于溯源圖的APT攻擊檢測安全頂會論文總結
  • [系統安全] 四十三.APT系列(8)Powershell和PowerSploit腳本滲透攻擊手段詳解
  • [系統安全] 四十四.APT系列(9)Metasploit技術之基礎用法萬字詳解及防御機理
  • [系統安全] 四十五.APT系列(10)Metasploit后滲透技術信息收集、權限提權和功能模塊詳解
  • [系統安全] 四十六.Powershell惡意代碼檢測系列 (1)Powershell基礎入門及管道和變量的用法

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


一.Powershell初識

1.基礎概念

Windows PowerShell 是一種命令行外殼程序和腳本環境,使命令行用戶和腳本編寫者可以利用 .NET Framework的強大功能。它引入了許多非常有用的新概念,從而進一步擴展了您在 Windows 命令提示符和 Windows Script Host 環境中獲得的知識和創建的腳本。

傳統的CMD支持腳本編寫,但擴展性不好,而Powershell類似于Linux shell,具有更好的遠程處理、工作流、可更新的幫助、預定任務(Scheduled Job)、CIM等優點。

那么,如何進入Powershell呢?
一種方法是在運行中直接輸入Powershell打開,另一種方法是CMD中輸入Powershell打開。

不同操作系統內置的Powershell是不一樣的,比如win7或win2008,如何查看版本呢?

$psversiontable

輸出結果如下圖所示:


2.為什么強大?

首先,它可以進行計算任務,包括計算1gb大小(以字節為單位),還有基本的運算。

其次,Powershell可以獲取計算機的服務詳細信息、狀態等。

get-service

其顯示結果如下圖所示,采用動詞+名詞方式命名,比較清楚。

而CMD中無法獲取services的(輸入services.msc),它是以圖形化方式顯示出來的。

最后,由于Powershell具有以下特點,它被廣泛應用于安全領域,甚至成為每一位Web安全必須掌握的技術。

  • 方便
  • 支持面向對象
  • 支持和.net平臺交互
  • 強大的兼容性,和cmd、vbs相互調用
  • 可擴展性好,它可以用來管理活動目錄、虛擬機產品等平臺

3.控制臺和快捷鍵

鼠標右鍵屬性,可以對Powershell控制臺進行編輯,并且它支持兩種編輯模式,快速編輯模式默認鉤上的。

Powershell快捷鍵包括:

ALT+F7 清楚命令的歷史記錄 PgUp PgDn 翻頁 Enter 執行當前命令 End 將光標移動至當前命令的末尾 Del 從右開始刪除輸入的命令字符 Esc 清空當前命令行 F2 自動補充歷史命令至指定字符處 F4 刪除命令行至光標右邊指定字符處 F7 對話框顯示命令行歷史記錄 F8 檢索包含指定字符的命令行歷史記錄 F9 根據命令行的歷史記錄編號選擇命令,歷史記錄編號可以通過F7查看 左/右 左右移動光標 上/下 切換命令行的歷史記錄 Home 光標移至命令行字符最左端 Backspace 從右刪除命令行字符 Ctrl+C 取消正在執行的命令 Tab 自動補齊命令或文件名

例如,使用快捷鍵Ctrl+C打斷了正在運行的ping指令;使用tab快捷鍵補齊了service.msc命令。


4.數學運算

Powershell支持數學運算,比如:

PS C:\Users\yxz> 2+4 6 PS C:\Users\yxz> 4-2 2 PS C:\Users\yxz> 4*3 12 PS C:\Users\yxz> 9%2 1 PS C:\Users\yxz> (1+3*5)/2 8 PS C:\Users\yxz> 1gb/1mb 1024 PS C:\Users\yxz> 1gb/1mb*18kb 18874368 PS C:\Users\yxz> 1gb -gt 1mb True PS C:\Users\yxz> 0xabcd 43981

顯示結果如下圖所示:


二.Powershell管道和重定向

1.管道

Powershell管道旨在將上一條命令的輸出作為下一條命令的輸出。

管道并不是什么新事物,以前的Cmd控制臺也有重定向的命令,例如Dir | More可以將結果分屏顯示。傳統的Cmd管道是基于文本的,但是Powershell管道是基于對象。例如:

linux:ls cmd:dir

如果只獲取其中的name、mode值,則使用如下指令。

ls | format-table name, mode


2.重定向

重定向旨在把命令的輸出保存到文件中,‘>’為覆蓋,’>>’追加。

ls | format-table name, mode > demo.txt type demo.txt

上面代碼是將ls顯示文件內容的name和mode信息存儲至本地demo.txt文件夾中,再調用“type demo.txt”打印文件內容。如果兩個 >> 它會在原來的基礎上,再進行補充(類似 a+),而單個大于號是刪除原來的寫入(類似 w)。

輸出結果如下圖所示。


三.Powershell執行外部命令及命令集

1.外部命令

Powershell是CMD的一個擴展,仍然能夠讓CMD中的命令在Powershell中使用,Powershell初始化時會加載CMD應用程序,所以CMD命令正常情況下在Powershell中都能使用,例如ipconfig。

查看端口信息

netstat -ano

包括協議、本地地址、外部地址、狀態、PID(進程號)。

查看網絡配置信息

ipconfig

打印路由信息

route print

自定義文件路徑,打開應用程序

start notepad notepad

notepad放在C盤下面的Windows\System32文件中,能夠直接打開。

系統變量

$env:path

Python可以直接打開,Wordpad不能打開,需要添加環境變量中。


2.命令集

通過get-command獲取所有命令,通常是動名詞的方式。

get-command

獲取其用法的命令如下,簡稱gcm。

get-help get-command

獲取進程信息

get-process

獲取當前會話的別名

get-alias

獲取輸入的歷史命令信息

get-history

獲取當前時間

get-date


四.Powershell別名使用

1.別名基本用法

獲取所有命令get-command可以用別名gcm替代。

get-command gcm

獲取當前目錄的所有文件信息get-childitem,可以用ls、dir兩個命令達到同樣的效果。

get-childitem ls dir

獲取相關的幫助信息,其命令如下:

get-help get-childitem

獲取別名所對應真實的命令

get-alias -name ls get-alias -name dir

查找所有以Remove開頭的別名

get-alias | where{$_.definition.startswith("Remove")}

其中,where來做一個管道的篩選,$_表示當前的元素,definition 定義一個字符串數組類型。Powershell支持.net強大的類庫,里面的definition包括字符串startswith操作,獲取字符串開頭函數。

查找所有別名,并調用sort降序排序及計算排列。

get-alias | group-object definition | sort -descending Count

注意:自定義別名是臨時生效的,當關閉Powershell時就會失效。


2.自定義別名

設置別名,將notepad設置為新的別名pad。pad打開notepad,表明我們的別名創建成功。

set-alias -name pad -value notepad

別名是臨時生成的,關掉Powershell即可失效,也可以撰寫命令刪除。

del alias:pad

保存別名

export-alias demo.ps dir type demo.ps

導入別名命令如下,其中-force表示強制導入。

import-alias -force demo.ps

五.Powershell變量基礎

1.基礎用法

Powershell變量跟PHP很類似,如下所示。

$name='eastmount' $name $age=28 $age

Powershell對大小寫不敏感,$a 和 $A 一樣。復雜變量用大括號引起來,但不建議同學們這里定義。

${"I am a" var ()}="yxz" ${"I am a" var ()} $n=(7*6+8)/2 $n=3.14

變量也可以設置等于命令。

$n=ls

變量多個同時賦值,但不建議這么寫。

$n1=$n2=$n3=25 $n1,$n2,$n3


2.變量操作

變量的基本運算操作

$a=2 $b=10 $c=a+b $a,$b,$c

傳統變量交換方法

$num1=10 $num2=20 $temp=$num1 $num1=$num2 $num2=$temp $num1,$num2

現在變量交換的寫法

$num1=10 $num2=20 $num1,$num2=$num2,$num1 $num1,$num2

查看當前的變量

ls variable:

查找特定的變量值,星號表示代替所有的值(num開頭)。

ls variable:num* ls variable:num1

查找變量是否存在

test-path variable:num1 test-path variable:num0

刪除變量

del variable:num1 test-path variable:num1

專用變量管理的命令

clear-variable remove-variable new-variable

3.自動化變量

powershell打開會自動加載變量,例如:窗口打開它會自動加載大小,再比如程序的配置信息自動加載。

根目錄信息

$home

當前進程的標志符,該自動化內置變量只能讀取,不能寫入。

$pid $$


4.環境變量

查看當前環境變量

ls env:

打印某個環境變量的值

$env:windir

創建新的環境變量

$env:name='eastmount' ls env:na*

刪除環境變量

del env:name ls env:na*

更新環境變量,注意它只是臨時生效,并不會記錄到我們的系統中。

$env:OS $env:OS="Linux" $env:OS

永久生效如何實現呢?增加路徑至環境變量PATH中,只對User用戶生效。

[environment]::setenvironmentvariable("PATH","E:\","User") [environment]::getenvironmentvariable("PATH","User")

系統變量對所有用戶都生效,用戶變量只對當前用戶生效。

生效之后如下圖所示,用戶變量增加了相關值。


六.Powershell調用腳本程序

1.腳本文件執行策略

首先,發現我們的腳本文件是禁止執行的。

get-executionpolicy

接著,我們嘗試獲取策略幫助信息。

get-help set-executionpolicy

最后修改權限,讓其能運行Powershell腳本文件。

set-executionpolicy RemoteSigned

它會提示你需要啟動管理員身份運行。

通過管理員身份打開CMD,再設置其權限即可,設置完成之后可以調用相關的腳本程序。


2.調用腳本程序

(1) 定義一個demo.bat文件,其內容如下,關閉回寫,打印hello world。

@echo off echo hello world

運行命令打開:

cd desktop .\demo.bat

(2) 定義一個demo.vbs文件,內容如下:

msgbox "CSDN Eastmount"

運行命令打開:

cd desktop .\demo.vbs

(3) 運行Powershell腳本文件也類似。

$number=49 switch($number) {{($_ -lt 50) -and ($_ -gt 40)} {"此數值大于50且小于40"}50 {"此數值等于50"}{$_ -gt 50} {"此數值大于50"} }

運行結果如下圖所示:


那么,如何在CMD中運行Powershell文件呢?
我們將demo.bat修改為如下內容,其中&表示運行。

@echo off powershell "&'C:\Users\yxz\Desktop\demo.ps1'"


運行命令:

cd desktop .\demo.bat

下面方法也可以直接運行

start demo.bat demo.bat


七.總結

寫到這里,這篇文章就介紹完畢,希望您喜歡,本文主要介紹PowerShell基礎之后,這將為后續PowerShell惡意代碼檢測提供基礎。文章非常長,作者也花費了很長時間,但相信只要你認真讀完,肯定會有收獲,尤其是對MSF的理解。

  • 一.Powershell初識
    1.基礎概念
    2.為什么強大?
    3.控制臺和快捷鍵
    4.數學運算
  • 二.Powershell管道和重定向
    1.管道
    2.重定向
  • 三.Powershell執行外部命令及命令集
    1.外部命令
    2.命令集
  • 四.Powershell別名使用
    1.別名基本用法
    2.自定義別名
  • 五.Powershell變量基礎
    1.基礎用法
    2.變量操作
    3.自動化變量
    4.環境變量
  • 六.Powershell調用腳本程序
    1.腳本文件執行策略
    2.調用腳本程序
  • 七.總結

這篇文章中如果存在一些不足,還請海涵。作者作為網絡安全初學者的慢慢成長路吧!希望未來能更透徹撰寫相關文章。同時非常感謝參考文獻中的安全大佬們的文章分享,感謝師傅、師兄師弟、師姐師妹們的教導,深知自己很菜,得努力前行。

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

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

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


參考文獻:

  • [1] https://www.bilibili.com/video/av66327436 [推薦B站老師視頻]
  • [2]《安全之路Web滲透技術及實戰案例解析》陳小兵老師
  • [3] https://baike.baidu.com/item/Windows Power Shell/693789
  • [4] https://www.pstips.net/powershell-piping-and-routing.html
  • [5] https://www.pstips.net/using-the-powershell-pipeline.html
  • [6] 微軟官方PowerShell文檔

總結

以上是生活随笔為你收集整理的[系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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