1. 基本工具-NETCAT
0x01 工具命令参数
root@main:/# netcat -h
[v1.10-41.1+b1]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
-c shell commands as `-e'; use /bin/sh to exec [dangerous!!]
-e filename program to exec after connect [dangerous!!]
-b allow broadcasts
-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
-k set keepalive option on socket
-l listen mode, for inbound connects
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-q secs quit after EOF on stdin and delay of secs
-s addr local source address
-T tos set Type Of Service
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-C Send CRLF as line-ending
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. 'ftp\-data').
常用参数
-v 显示详细的连接的输出内容
-n 不进行 DNS 解析
-l 打开一个侦听端口
-p 指定侦听端口
-q secs 若执行成功, 几秒退出
0x02 NC -- Telnet / Banner
不建议用 NETCAT 直接连接域名, 一般先将 IP地址 解析出来, 再用 NETCAT 连接 IP地址
【这里以 POP3 服务器为例, 其他的例如 SMTP, HTTP 大同小异】
-
找到 IP地址 ( 此处以 163.com 的 POP3 服务器为例 )
root@main:/# ping pop3.163.com PING pop3.163.com (220.181.12.110) 56(84) bytes of data. 64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=1 ttl=128 time=29.3 ms 64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=2 ttl=128 time=29.4 ms 64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=3 ttl=128 time=28.7 ms 64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=4 ttl=128 time=29.3 ms 64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=5 ttl=128 time=38.8 ms 64 bytes from 110.12.181.220.in-addr.arpa (220.181.12.110): icmp_seq=6 ttl=128 time=29.4 ms ^C --- pop3.163.com ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5013ms rtt min/avg/max/mdev = 28.710/30.816/38.779/3.568 ms
IP地址 -> 220.181.12.110
-
利用 NETCAT 连接 IP地址 的 110 端口
root@main:/# nc -nv 220.181.12.110 110 (UNKNOWN) [220.181.12.110] 110 (pop3) open +OK Welcome to coremail Mail Pop3 Server (163coms[10774b260cc7a37d26d71b52404dcf5cs])
COMMAND ->
nc -nv [ip address] [port]
通过 nc 也可以 查看服务器相关的一些 banner 信息 , 例如 此处可以看出
-
110 (pop3) open
说明 110 端口 是开放的 -
coremail
说明 POP3 所使用的服务器是 coremail .
-
-
然后, 可以在当前的连接上进行一些命令的输入
root@main:/# nc -nv 220.181.12.110 110 (UNKNOWN) [220.181.12.110] 110 (pop3) open +OK Welcome to coremail Mail Pop3 Server (163coms[10774b260cc7a37d26d71b52404dcf5cs]) USER 111 +OK core mail USER hello@163.com -ERR Command not valid in this state
然而, 这样其实是有问题的, 因为在 POP3 中, 输入的内容应该为 base64 编码之后的内容, 所以, 需要进一步编码......qwq
-
base64 编码
另起一个 shell , 输入
root@main:/# base64
按 Enter , 输入需要编码的字符串, 最后再 Ctrl + D , 得到 base64 结果......
root@main:/# base64 your_user_name@163.com eW91cl91c2VyX25hbWVAMTYzLmNvbQo= root@main:/#
-
然后再进行进一步操作就 ok 啦......AwA
-
连接端口
POP3 -> 110 端口
SMTP -> 25 端口
HTTP -> 80 端口
-
【关于SMTP , HTTP】例子
-
HTTP
root@main:/# nc -nv 192.168.40.128 80 (UNKNOWN) [192.168.40.128] 80 (http) open head / <html><head><title>Metasploitable2 - Linux</title></head><body> <pre> _ _ _ _ _ _ ____ _ __ ___ ___| |_ __ _ ___ _ __ | | ___ (_) |_ __ _| |__ | | ___|___ \ | '_ ` _ \ / _ \ __/ _` / __| '_ \| |/ _ \| | __/ _` | '_ \| |/ _ \ __) | | | | | | | __/ || (_| \__ \ |_) | | (_) | | || (_| | |_) | | __// __/ |_| |_| |_|\___|\__\__,_|___/ .__/|_|\___/|_|\__\__,_|_.__/|_|\___|_____| |_| Warning: Never expose this VM to an untrusted network! Contact: msfdev[at]metasploit.com Login with msfadmin/msfadmin to get started </pre> <ul> <li><a href="/twiki/">TWiki</a></li> <li><a href="/phpMyAdmin/">phpMyAdmin</a></li> <li><a href="/mutillidae/">Mutillidae</a></li> <li><a href="/dvwa/">DVWA</a></li> <li><a href="/dav/">WebDAV</a></li> </ul> </body> </html> root@main:/#
-
SMTP
root@main:/# nc -nv 220.181.12.18 25 (UNKNOWN) [220.181.12.18] 25 (smtp) open 220 163.com Anti-spam GT for Coremail System (163com[20141201])
-
0x03 NC -- 传输文本信息
可用于电子取证
一边 开放、侦听端口
另一边 连接端口
-
开放端口 :
root@main:/# nc -l -p 233
再开另一个 shell, 查看端口是否开放:
root@main:/# netstat -pantu | grep 233 tcp 0 0 0.0.0.0:233 0.0.0.0:* LISTEN 3329/nc
已开放 awa
再查看 IP 地址 -> 192.168.40.134
-
连接端口
root@main:/# nc -nv 192.168.40.134 233 (UNKNOWN) [192.168.40.134] 233 (?) open
成功 ! awa
-
随便在一个窗口发一条消息:
计算机 1:
root@main:/# nc -nv 192.168.40.134 233 (UNKNOWN) [192.168.40.134] 233 (?) open SSBsb3ZlIHlvdSwgcHggIQo=
计算机 2:
root@main:/# nc -l -p 233 SSBsb3ZlIHlvdSwgcHggIQo=
OK !
-
应用:
-
与
|
连用root@main:/usr# ls -l | nc -nv 192.168.40.134 233
-
"另存为"
root@main:/# nc -l -p 233 > ps.txt
root@main:/usr# ps aux | nc -nv 192.168.40.134 233 -q 1
-