整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          用powershell下載文件的姿勢你研究過嗎?

          本文作者:晚風(fēng),根據(jù)其之前的文章數(shù)量獎勵 50 元,以資鼓勵,希望可以繼續(xù)加油,再接再厲。

          的最大優(yōu)勢在于以 .NET 框架為基礎(chǔ)。 .NET 框架在腳本領(lǐng)域幾乎是無所不能,這是一個優(yōu)點(diǎn),也有可能成為一個方便黑客攻擊的一個強(qiáng)大的便利。

          滲透測試中,在正常的傳輸通道被禁止時,我們時常會劍走偏鋒,通過一些特殊的方法來進(jìn)行文件的傳輸。這篇文章將會描述使用 下載文件的三種方法,并評估它們的優(yōu)缺點(diǎn)。

          關(guān)于其他在 windows 系統(tǒng)下通過命令行上傳文件的姿勢,請查看前文:

          測試環(huán)境

          本次測試的目的在于展示執(zhí)行時間和性能的區(qū)別。

          測試環(huán)境主要是 Windows 10(x64) 的 5 和下載速度約為 3mb/s 的無線網(wǎng)絡(luò)連接。

          我將從我自己的服務(wù)器上

          下載一個測試文件 .txt ,文件大小為 25.45MB ,服務(wù)器公網(wǎng)帶寬 1Mbps 。我們會測試腳本 10 次并取平均值作為結(jié)果。

          讓我們開始吧!

          1.Invoke-

          說到使用 下載文件,最先想到的就是 Invoke- 命令。可能你有點(diǎn)不熟悉這個名字,它有 3 個別名,分別是 “iwr”、“wget”、“curl”。

          js下載文件 帶進(jìn)度條_js下載進(jìn)度條真實(shí)進(jìn)度_文件下載的進(jìn)度條

          js下載文件 帶進(jìn)度條_文件下載的進(jìn)度條_js下載進(jìn)度條真實(shí)進(jìn)度

          文件下載的進(jìn)度條_js下載進(jìn)度條真實(shí)進(jìn)度_js下載文件 帶進(jìn)度條

          平均用時:3分28秒

          優(yōu)點(diǎn)

          這個方法非常容易上手。如果你知道文件總的大小的話,結(jié)合 Write- 命令你可以很方便得看到腳本的運(yùn)行進(jìn)度。Cookie 也可以通過使用 -Session 和 - 參數(shù)在多個請求之間保留。

          缺點(diǎn)

          使用這個命令下載文件的速度很慢。我觀察到 HTTP 響應(yīng)流先全部緩存到了內(nèi)存中,一旦文件全部傳輸完畢,文件就會從內(nèi)存中一下子轉(zhuǎn)移到磁盤中。如果你要下載一個大文件,那么這種方式會造成巨大的性能問題和內(nèi)存的損耗。如果有人知道這個命令的具體操作細(xì)節(jié),請告訴我!我們可以一起討論一下。

          這種方法的另一個潛在的嚴(yán)重缺點(diǎn)是依賴 。比如,這個命令不能運(yùn)行在 Windows Server core 版本的服務(wù)器上,因為它默認(rèn)不包含 二進(jìn)制文件。在這種情況下,你可以使用 - 參數(shù),但它并不是在所有情況下都起作用。另外我在這里給出兩個讓 Invoke- 提速的方法。

          第一,使用 $='' 語句來隱藏滾動條,減小了資源的占用。

          js下載進(jìn)度條真實(shí)進(jìn)度_文件下載的進(jìn)度條_js下載文件 帶進(jìn)度條

          第二,就是使用上面提到的 - 參數(shù),這樣在 Invoke- 請求完數(shù)據(jù)后,就不會調(diào)用 IE 去進(jìn)行 DOM 樹結(jié)果的解析,效率會提高不少。

          結(jié)論

          當(dāng)你需要在多個請求時保留 Cookie(例如下載文件之前的 HTTP 表單驗證),那么這個命令會很有用。

          這種方法很適合用來下載小文件,但是如果你對下載速度有要求,那肯定會有更好的選擇。如果這個腳本要運(yùn)行在 Windows Server Core 版本的服務(wù)器上,那這個命令就不適用了。

          2.System.Net.

          .NET 框架中的 System.Net. 類就是一個用于下載文件的 .NET 類。

          js下載進(jìn)度條真實(shí)進(jìn)度_js下載文件 帶進(jìn)度條_文件下載的進(jìn)度條

          文件下載的進(jìn)度條_js下載進(jìn)度條真實(shí)進(jìn)度_js下載文件 帶進(jìn)度條

          平均用時:3分28秒

          優(yōu)點(diǎn)

          這個方法用起來也很簡單。這種方法的下載速度跟上一種差不多,在整個下載過程中 HTTP 響應(yīng)流被直接緩存到了磁盤中。

          你還可以用 System.Net..() 這個函數(shù)。可以很方便地在文件并行下載的同時繼續(xù)運(yùn)行腳本。

          缺點(diǎn)

          沒有一個下載進(jìn)度條(或者任何能查詢下載進(jìn)度的東西),也就是說你無法知道到底還要多久才能下載完成,也不知道目前到底下載了多少。并且這個命令是單線程的,所以會造成線程阻塞,只能一個下載任務(wù)完成了才能進(jìn)行下一個任務(wù)。

          結(jié)論

          當(dāng)需要下載文件時,System.Net. 是我的最佳選擇。這個方法也是完全兼容 Windows Server Core 版本的服務(wù)器。

          3. Start-

          如果你在之前沒聽說過后臺智能傳輸服務(wù)(BITS) 參考文檔:

          BITS 主要用于 Windows 系統(tǒng)的升級、自動更新等工作。工作方式為異步下載文件,并且用于同步下載文件時也有十分優(yōu)異的表現(xiàn)。還有一個 工具使用的也是這個后臺智能傳輸服務(wù)。

          js下載進(jìn)度條真實(shí)進(jìn)度_文件下載的進(jìn)度條_js下載文件 帶進(jìn)度條

          js下載進(jìn)度條真實(shí)進(jìn)度_文件下載的進(jìn)度條_js下載文件 帶進(jìn)度條

          js下載進(jìn)度條真實(shí)進(jìn)度_js下載文件 帶進(jìn)度條_文件下載的進(jìn)度條

          平均用時:3分33秒

          優(yōu)點(diǎn)

          文件下載的進(jìn)度條_js下載進(jìn)度條真實(shí)進(jìn)度_js下載文件 帶進(jìn)度條

          集成了進(jìn)度條可以讓我們清楚的了解文件的下載進(jìn)度。- 參數(shù)可用于異步傳輸隊列。異步就意味著無需等待上一個任務(wù)完成即可執(zhí)行下一個任務(wù),多個命令可以并行執(zhí)行。雖然在單任務(wù)狀態(tài)下較慢,但在多任務(wù)的情況下能提高效率。

          就個人而言,使用這個方法最大的優(yōu)勢是能夠在失敗的時候進(jìn)行重試操作并限制可用于傳輸?shù)膸捔俊?/p>

          缺點(diǎn)

          這個方法是我測試到現(xiàn)在最慢的方法!但是和其他兩個方法來比慢的也不太多。另外,雖然 BITS 在許多機(jī)器上默認(rèn)可用,但是你不能保證在所有的機(jī)器上都可以使用 BITS ,除非你在你的機(jī)器上確保已經(jīng)開啟了 BITS 。還有,由于 BITS 主要用于異步傳輸?shù)奶匦裕绻麆e的 BITS 任務(wù)正在后臺運(yùn)行,那么你的任務(wù)就會被加入隊列或者在片刻后再執(zhí)行,這就會阻礙你的腳本的執(zhí)行。

          總結(jié)

          在你想限制文件下載的帶寬或者不太考慮下載時間的情況下,這種方法是最完美的。得益于這種特性,我設(shè)置了一種夜間全速下載、白天半速下載的策略。并且 BITS 也易于觀察下載的進(jìn)度。

          總得來說

          我推薦使用 System.Net. 這種方法,因為它比較通用,下載速度也比較快。BITS 是我的第二個選擇因為它的靈活性和易于管理。

          在滲透測試中,利用系統(tǒng)自帶的一些工具進(jìn)行攻擊是一種不錯的方法。而 就是一把利器,由于它過于強(qiáng)大,很多系統(tǒng)管理員會直接禁用它,并且在 Windows 系統(tǒng)中,也是默認(rèn)禁止 *.ps1 腳本文件的執(zhí)行的。所以呢我們需要在執(zhí)行 ps 腳本的時候繞過一下這個默認(rèn)的策略。最簡單的方法就是執(zhí)行 .exe 附加需要執(zhí)行的命令,也可以將要執(zhí)行的腳本直接復(fù)制進(jìn) 的窗口。

          在執(zhí)行 ps1 腳本文件的時候加上一個 Bypass 參數(shù)就可以很簡單地繞過了。例如:

          .exe - Bypass -File .\t1.ps1

          js下載進(jìn)度條真實(shí)進(jìn)度_文件下載的進(jìn)度條_js下載文件 帶進(jìn)度條

          如果你知道其他的方法,請告訴我哦。

          個人作品展作者簡介

          作者目前位于移動支付之城—杭州。就讀于浙江水利水電學(xué)院。之前在學(xué)校的東旭工作室做的是網(wǎng)站的前端(FE),后來從工作室出來,和小伙伴一起創(chuàng)辦了紅楓信安協(xié)會,踏上了信息安全之旅。平時偶爾喜歡玩玩游戲,愛 RNG,愛 UZI。

          下面呢和大家分享一下我在信安方面的心路歷程。

          首先呢,帶我入門的還是東旭工作室,在工作室里學(xué)到了很多基礎(chǔ)的東西。比如一個網(wǎng)站的建設(shè)過程、整體架構(gòu),然后還有編程能力的提升等等。

          但是呢,在學(xué)的過程中發(fā)現(xiàn)了一些安全性的問題。比如在一次工作室的慶祝圣誕活動頁面上,有一個留言板。于是想到那時候剛學(xué)的 js,就寫了一段 js 提交上去,然后所有人的瀏覽器上都彈了窗... 一段時間以后才知道原來這就是 xss …后來從工作室出來,閑了一段時間,聽學(xué)姐推薦說去考一個軟考,以后畢業(yè)找工作多一個證書好找點(diǎn)。然后就去考了中級的信安工程師。

          在備考期間發(fā)現(xiàn)信息安全好有趣呀,精巧的密碼學(xué)設(shè)計,刺激的中間人攻擊,復(fù)雜又不失優(yōu)雅的認(rèn)證協(xié)議…… 還有很多很多有趣的技術(shù)。

          后來又接觸到了 CTF 比賽,跟紅楓信安的小伙伴一起去玩玩 CTF,很刺激很開心。最后希望能和有相同愛好的各位在信安之路上越走越遠(yuǎn)。想跟作者成為朋友嗎?那就加群吧!

          js下載進(jìn)度條真實(shí)進(jìn)度_文件下載的進(jìn)度條_js下載文件 帶進(jìn)度條


          主站蜘蛛池模板: 中文字幕乱码一区二区免费| 四虎一区二区成人免费影院网址| 无码国产精成人午夜视频一区二区| 国产一区二区在线观看app| 日韩一区二区精品观看| 亚洲线精品一区二区三区| 天堂资源中文最新版在线一区| 精品无码一区二区三区爱欲| 日本精品视频一区二区三区| 日本中文一区二区三区亚洲| 视频一区视频二区在线观看| 亚洲色精品vr一区二区三区| 中文字幕日韩丝袜一区| 日本精品一区二区久久久| 日本一区二区免费看| 国产一区二区三区小说| 夜夜添无码一区二区三区| 久久久精品人妻一区二区三区| 亚洲日韩中文字幕无码一区| 亚洲乱码国产一区网址| 亚洲国产成人久久综合一区| 免费无码一区二区| 国产亚洲一区二区手机在线观看| 五月婷婷一区二区| 精品人妻少妇一区二区三区在线| 午夜福利一区二区三区高清视频| 日韩精品电影一区| 无码av免费一区二区三区试看| 国产人妖视频一区二区破除 | 精品无码一区二区三区电影 | 夜夜添无码一区二区三区| 亚洲日韩国产一区二区三区在线 | 国产精品亚洲一区二区三区久久 | 免费一本色道久久一区| 国产一区二区三区夜色| 精品一区二区久久久久久久网精| 消息称老熟妇乱视频一区二区| 国产在线一区二区三区av| 夜色福利一区二区三区| 国产一区二区视频在线观看| 日韩精品福利视频一区二区三区|