国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PowerShell > 正文

PowerShell腳本開發之對指定IP進行端口掃描

2020-05-30 20:17:33
字體:
來源:轉載
供稿:網友

前些天看到一篇關于Metasploit與PowerShell的文章,里面提到了一句關于端口掃描的語句,寫的很簡練,思路很不錯,可以拋開笨重的Nmap直接掃描指定的指定IP的端口:

代碼如下:
1..1024 | %{ echo ((new-object Net.Sockets.TcpClient).Connect("192.168.10.26",$_)) "$_ is open"} 2>$null

      語句中直接通過..列舉了1到1024之間的數字,通過管道次傳遞給后面的操作符,使用New-Object創建System.Net.Sockets.TCPClient對象,調用該對象的Connect()方法連接指定IP的指定端口,而端口則是由管道傳入的入組對象,也就是前面提到的1~1024及其之間的的數字,是由$_這個自動變量來代替,代表管道傳入的當前的對象。對于開放TCP端口是會有相應的程序監聽該端口的,等待程序連接,如果連接了一個未曾起監聽的端口,TCPClient對象是會拋出以下的異常

代碼如下:
“Exception calling "Connect" with "2" argument(s): "由于目標機器積極拒絕,無法連接。 192.168.10.26:1"”

     對于拋出的異常通過2>$null的方式將錯誤信息重定向到$null的空設備,而不再當前屏幕輸出,于此同時如果在對指定端口進行連接的過程中未曾拋出異常說明TCPClient對象可以正常連接到端口,則打印出該端口并提示該端口是打開的。

     通過PowerShell對.net對象的調用我們可以做很多的事情,基本上用WinForm和asp.net能做的事情大多可以通過PowerShell進行操作,與此同時我有了一個想法,通過PowerShell是否可以寫出一些常用的用于安全和滲透測試的工作腳本,這些腳本可以組合成一個工具集,這不就能在手邊沒有相關滲透工具的情況下用 輕量級的腳本環境+編程 實現安全相關的功能檢測呢?

    上面的腳本寫的很簡練了,但是有一個缺點,就是調用的TCPClient對象超時時間比較長,不管端口是否開發,都需要等到連接超時后才會掃描下一個端口,掃描一個區間的端口會耗費很多的時間,鑒于此我打算改造上面的腳本,為了便于函數的共享和重用,創建一個名為PSNet的工具集:

Step 1:創建PowerShell的工作文件夾(D:/My Documents/WindowsPowerShell/Modules)并創建系統環境變量指向該目錄,便于后續調用,如PSSpace
Step 2.在上述步驟中提到的PSSpace路徑中創建與目標module同名的目錄用于存放腳本,即在%PSSpace%下創建PSNet
Step 3.在PSNet目錄下創建與module同名的.psm1文件PSNet.psm1
Step 4.在PSNet目錄下創建相關細分的子函數目錄,便于不同類型操作進行分類,如創建TCPOp,用于創建TCP相關操作,并把Test-TCPPort.ps1放入其中
Step 5.打開PSNet.psm1加入行:.$PSSpace/TCPOp/Test-TCPPort.ps1 以后如果要創建任何相關函數文件都可以添加一條記錄到此文件,以便module初始化的時候可以初始化相關的函數,如果相關函數相互之間存在依賴關系,被依賴的文件初始化語句需要放在有依賴關系的文件語句之前

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝城县| 囊谦县| 涿州市| 景东| 平舆县| 成武县| 汉阴县| 乐平市| 蓬安县| 玉树县| 射洪县| 巢湖市| 安泽县| 玉田县| 体育| 紫金县| 夏津县| 吴桥县| 济阳县| 班玛县| 响水县| 华池县| 平顶山市| 甘南县| 得荣县| 霍城县| 合水县| 乐至县| 大关县| 高平市| 镶黄旗| 和林格尔县| 靖边县| 会理县| 陆丰市| 福贡县| 出国| 滦南县| 格尔木市| 永福县| 安宁市|